LVM(Logical Volume Manager)은 리눅스에서 디스크·파티션을 유연하게 관리하기 위한 논리적 스토리지 관리 기술입니다. 일반적인 고정 파티션과 달리, LVM을 사용하면 디스크 공간을 동적으로 확장하거나 축소하고, 여러 물리 디스크를 하나처럼 묶어서 사용할 수 있습니다.
예: 100GB SSD + 500GB HDD → 하나의 큰 Volume Group으로 사용
3. 스냅샷(Snapshot)
특정 시점의 데이터 복제본 생성
백업, 업그레이드 테스트에 유용
4. 온라인 확장
파일 시스템을 마운트한 상태에서 LV 확장이 가능 (ext4, xfs 등)
Linux에서 LVM 해보기
디스크 파티션 작업 하기 (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 -> 설정 저장
# 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
동일한 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