논리 볼륨 관리(LVM, Logical Volume Manager)는 리눅스 환경에서 스토리지 관리를 보다 유연하고 효율적으로 할 수 있게 도와주는 도구입니다. LVM을 사용하면 물리적 볼륨(PV), 볼륨 그룹(VG), 논리 볼륨(LV)을 생성하고 관리하여 하드 디스크의 용량을 최적화할 수 있습니다.
이번 글에서는 LVM의 기본 개념과 함께 PV, VG, LV의 생성, 삭제, 조회 및 추가 방법에 대해 자세히 알아보겠습니다.
![]()
LVM의 기본 개념

LVM은 물리적 저장 장치를 논리적으로 관리할 수 있는 기능을 제공합니다. 기존의 파티셔닝 방식은 고정된 크기의 파티션을 사용하는 반면, LVM은 논리적 볼륨의 크기를 유동적으로 조정할 수 있습니다.
이를 통해 데이터의 이전이나 삭제 없이도 스토리지를 확장하거나 축소할 수 있습니다. LVM의 주요 구성 요소는 다음과 같습니다.
| 구성 요소 | 설명 |
|---|---|
| PV (Physical Volume) | 실제 물리적 디스크 장치 또는 파티션을 의미합니다. |
| PE (Physical Extent) | PV를 구성하는 일정한 크기의 블록으로, 기본 크기는 4MB입니다. |
| VG (Volume Group) | 여러 개의 PV를 합쳐서 하나의 그룹으로 만든 것입니다. |
| LV (Logical Volume) | 사용자가 최종적으로 사용하는 저장 공간의 단위입니다. |
LVM의 목표는 저장 공간의 효율적인 관리와 유연성을 제공하는 것입니다. 사용자는 VG와 LV를 통해 필요에 따라 저장소를 조정할 수 있습니다.
PV (Physical Volume) 생성

LVM에서 가장 먼저 수행해야 할 작업은 PV를 생성하는 것입니다. PV를 생성하기 위해서는 먼저 디스크를 파티셔닝해야 합니다.
fdisk 명령어를 사용하여 파티션을 생성한 후, pvcreate 명령어로 물리적 볼륨을 초기화합니다.
fdisk명령어로 디스크를 확인합니다.
bash
fdisk -l
fdisk를 사용하여 새로운 파티션을 생성합니다.n을 입력하여 새로운 파티션을 추가하고, 필요한 크기를 설정합니다.t를 입력하여 파티션의 타입을 변경합니다. LVM으로 사용할 경우, 타입 코드는8e입니다.-
w를 입력하여 변경 사항을 저장하고 종료합니다. -
pvcreate명령어로 물리적 볼륨을 생성합니다.
bash
pvcreate /dev/sdc1
pvcreate /dev/sdd1
이제 두 개의 PV가 생성되었습니다. 생성된 PV는 pvdisplay 명령어를 통해 확인할 수 있습니다.
| 명령어 | 설명 |
|---|---|
pvcreate |
물리적 볼륨을 생성합니다. |
pvdisplay |
생성된 물리적 볼륨의 정보를 표시합니다. |
VG (Volume Group) 생성
PV가 생성되었다면, 이제 여러 개의 PV를 묶어 하나의 VG를 생성할 차례입니다. VG를 생성하면 여러 PV의 용량을 하나로 합쳐 관리할 수 있습니다.
vgcreate명령어를 사용하여 VG를 생성합니다.
bash
vgcreate my_volume_group /dev/sdc1 /dev/sdd1
이 명령어는 두 개의 PV를 포함하는 VG를 생성합니다. 생성된 VG는 vgdisplay 명령어로 확인할 수 있습니다.
| 명령어 | 설명 |
|---|---|
vgcreate |
새로운 볼륨 그룹을 생성합니다. |
vgdisplay |
생성된 볼륨 그룹의 정보를 표시합니다. |
- VG를 삭제하고 싶다면,
vgremove명령어를 사용합니다.
bash
vgremove my_volume_group
VG를 삭제하기 전에는 해당 VG에 속한 모든 LV를 삭제해야 합니다.
LV (Logical Volume) 생성
이제 VG가 생성되었으니, 이 VG에서 원하는 크기로 LV를 생성할 수 있습니다. LV는 사용자가 직접 데이터를 저장할 수 있는 공간을 제공합니다.
lvcreate명령어를 사용하여 LV를 생성합니다.
bash
lvcreate -L 10G -n my_logical_volume my_volume_group
위 명령어는 my_volume_group에서 10GB 크기의 my_logical_volume을 생성합니다. 생성된 LV는 lvdisplay 명령어로 확인할 수 있습니다.
| 명령어 | 설명 |
|---|---|
lvcreate |
논리 볼륨을 생성합니다. |
lvdisplay |
생성된 논리 볼륨의 정보를 표시합니다. |
- LV를 삭제하려면
lvremove명령어를 사용합니다.
bash
lvremove /dev/my_volume_group/my_logical_volume
LV를 삭제하기 전에는 해당 LV가 마운트되어 있지 않아야 합니다.
LVM 확장 및 축소
LVM의 가장 큰 장점 중 하나는 저장 공간을 쉽게 확장할 수 있다는 점입니다. 저장 공간이 부족해질 경우 추가 디스크를 장착하고, 새로운 PV를 생성하여 VG에 추가하면 됩니다.
- 새로운 디스크를 추가하고, 해당 디스크에 파티션을 생성합니다.
pvcreate명령어로 새로운 PV를 생성합니다.vgextend명령어로 VG에 새로운 PV를 추가합니다.
bash
vgextend my_volume_group /dev/sde1
- 이제 LV의 크기를 늘리기 위해
lvresize명령어를 사용합니다.
bash
lvresize -L +5G /dev/my_volume_group/my_logical_volume
이 명령어는 LV의 크기를 5GB 늘립니다.
| 명령어 | 설명 |
|---|---|
vgextend |
볼륨 그룹에 물리적 볼륨을 추가합니다. |
lvresize |
논리 볼륨의 크기를 조정합니다. |
LVM 삭제 및 관리
LVM을 삭제할 때는 주의가 필요합니다. LV를 삭제한 후, VG를 삭제하고 마지막으로 PV를 삭제해야 합니다.
- LV가 마운트되어 있는지 확인합니다. 마운트된 LV는
umount명령어로 해제합니다.
bash
umount /dev/my_volume_group/my_logical_volume
- LV를 삭제합니다.
bash
lvremove /dev/my_volume_group/my_logical_volume
- VG를 삭제합니다.
bash
vgremove my_volume_group
- 마지막으로 PV를 삭제합니다.
bash
pvremove /dev/sdc1
| 명령어 | 설명 |
|---|---|
lvremove |
논리 볼륨을 삭제합니다. |
vgremove |
볼륨 그룹을 삭제합니다. |
pvremove |
물리적 볼륨을 삭제합니다. |
결론
LVM은 리눅스 시스템에서 데이터 저장 공간을 효율적으로 관리할 수 있는 강력한 도구입니다. PV, VG, LV의 생성과 삭제, 조회 및 추가 방법에 대해 알아보았으며, 이러한 과정들은 데이터를 보다 유연하고 안전하게 관리하는 데 큰 도움이 됩니다.
LVM을 통해 사용자는 필요에 따라 저장 공간을 조정하고, 시스템의 가용성을 극대화할 수 있습니다. LVM의 활용은 오늘날의 데이터 관리 환경에서 필수적인 요소로 자리잡고 있습니다.