LVM(Logical Volume Manager)은 리눅스에서 디스크·파티션을 유연하게 관리하기 위한 논리적 스토리지 관리 기술입니다. 일반적인 고정 파티션과 달리, LVM을 사용하면 디스크 공간을 동적으로 확장하거나 축소하고, 여러 물리 디스크를 하나처럼 묶어서 사용할 수 있습니다.
LVM은 크게 세 단계 구조로 이루어져 있습니다.
/dev/sda1, /dev/nvme0n1p2vg_main/dev/vg_main/lv_homelvextend -L +10G /dev/vg_main/lv_data
resize2fs /dev/vg_main/lv_data디스크 파티션 작업 하기 (sdb 디스크 기준)
해당 방법대로 모든 디스크 파티션 작업을 진행합니다.
# 파티션 생성
# /dev/sdb1 /dev/sdc1
[root@ftp]# fdisk /dev/sdb -> 디스크 선택
Command (m for help): n -> 새로운 파티션 분할
Select (default p): p -> Primary 파티션 선택
Partition number(1-4, default 1): 1 -> 파티션 번호 선택
First sector (2048-4194303, default 2024): [enter] -> 시작 섹터 번호
Last sector ... (2028-4194303, default 4194303): [enter] -> 마지막 섹터 번호
Command (m for help): p -> 설정 내용 확인
Command (m for help): w -> 설정 저장

[root@localhost ~]# pvcreate /dev/sdb1
[root@localhost ~]# pvcreate /dev/sdc1
# 확인
[root@localhost ~]# pvdisplay

[root@localhost ~]# vgcreate /dev/testVG /dev/sdb1 /dev/sdc1
#확인
[root@localhost ~]# vgdisplay

# 1기가 짜리 논리 그룹 2개와 나머지 용량 전부를 사용하는 논리 그룹 생성
[root@localhost ~]# lvcreate --size 1G --name testLV1 testVG
[root@localhost ~]# lvcreate --size 1G --name testLV2 testVG
[root@localhost ~]# lvcreate --extents 100%FREE --name testLV3 testVG
# lv 확인
[root@localhost ~]# lvdisplay

링크파일) 윈도우의 바로가기 파일과 같이 testLV1 → ../dm-2 를 가리키는 것과 같습니다.
testVG 볼륨 그룹 내의 세 개의 논리 볼륨(testLV1, testLV2, testLV3)에 각각 ext4 파일 시스템을 생성
[root@localhost ~]# mkfs.ext4 /dev/testVG/testLV1
[root@localhost ~]# mkfs.ext4 /dev/testVG/testLV2
[root@localhost ~]# mkfs.ext4 /dev/testVG/testLV3
동일한 LV(testLV3)를 세 개의 디렉터리(lvm1, lvm2, lvm3)에 각각 마운트
[root@localhost ~]# mount /dev/testVG/testLV3 /lvm1
[root@localhost ~]# mount /dev/testVG/testLV3 /lvm2
[root@localhost ~]# mount /dev/testVG/testLV3 /lvm3
sdb1과 sdc1을 나눠서 분배하고 있는 모습을 볼 수 있다.

먼저 디스크를 하나 추가해 위에서 작업했던 것처럼 디스크 파티션 작업합니다.
이 후 아래와 같이 작업을 진행합니다.
# 피지컬 볼륨을 생성
[root@localhost ~]# pvcreate /dev/sdd1
# 기존 볼륨그룹에 추가
[root@localhost ~]# vgextend testVG /dev/sdd1
# 현재 남아있는 잔여 용량을 testLV1에 추가
[root@localhost ~]# lvextend -l +100%FREE /dev/testVG/testLV1
# 용량 변경 적용 (마운트 되어있는 상태여도 적용 가능)
[root@localhost ~]# resize2fs /dev/testVG/testLV1
sdd1 이 추가되어 같이 분배하고 있는 모습을 볼 수 있다.

