LVM은 「물리 디스크를 논리적으로 묶고 자유롭게 분할·확장」하는 도구.
「디스크 두 개를 한 볼륨으로」, 「볼륨 크기 동적 변경」 같은 유연성 제공.
구조.
1) PV(Physical Volume) — 물리 파티션을 LVM용으로.
2) VG(Volume Group) — PV들을 묶음.
3) LV(Logical Volume) — VG에서 잘라낸 논리 볼륨, 진짜 파일시스템.
기본 흐름.
1) sudo pvcreate /dev/sda2 — PV 만들기.
2) sudo vgcreate myvg /dev/sda2 — VG.
3) sudo lvcreate -L 50G -n root myvg — VG에서 50GB 잘라 LV(root).
4) mkfs.ext4 /dev/myvg/root — 파일시스템.
5) mount해서 사용.
유연성.
1) 확장 — 디스크 추가 → vgextend → lvextend → resize2fs로 파일시스템도 늘림.
마운트 상태로도 확장 가능.
2) 축소 — 가능하지만 위험·느림.
3) 스냅샷 — lvcreate -s로 즉시 스냅샷, 백업·테스트에 활용.
4) 디스크 이동 — pvmove로 한 PV의 데이터를 다른 PV로 옮김 — 무중단.
활용.
1) 대용량 서버 — 여러 디스크를 한 큰 볼륨으로.
2) 동적 확장 필요 — DB·로그 폭증 시.
3) 스냅샷 — 백업·실험.
단점 — 약간의 복잡성과 성능 오버헤드.
단순 시스템은 직접 파티션이 더 단순.
한 줄 요약
LVM은 PV → VG → LV 계층으로 디스크 유연 관리 — 동적 확장·스냅샷·디스크 이동.
대용량·동적·실험에 강점, 단순 시스템은 직접 파티션이 더 단순.
더 알아볼 것
- thin provisioning — LVM thin pool
- 스냅샷으로 백업 일관성
- ZFS·btrfs — 통합 대안