LVM 이란 무엇인가요?
LVM (Logical Volume Manager) 은 디스크 공간을 유연하게 관리하고 확장할 수 있도록 도와주는 스토리지 관리 시스템입니다.
2025년 05월 20일

LVM 이란 무엇인가요?
LVM (Logical Volume Manager) 는 리눅스에서 디스크 공간을 유연하고 효율적으로 관리하기 위한 논리 볼륨 관리 시스템입니다. 기존의 고정된 파티션 방식과 달리, LVM은 물리적인 디스크를 추상화하여 논리적인 볼륨으로 관리함으로써 스토리지 확장, 축소, 이동 등을 보다 쉽게 수행할 수 있습니다.
LVM은 리눅스 시스템에서 스토리지를 보다 유연하게 관리할 수 있는 강력한 도구입니다. 특히, 스토리지 확장이나 재구성이 빈번한 환경에서 그 진가를 발휘합니다.

1. LVM 의 기본 구성 요소
- PV (Physical Volume)
- 물리적인 디스크나 파티션을 LVM에서 사용할 수 있도록 초기화한 단위입니다.
- VG (Volume Group)
- 하나 이상의 PV를 묶어 만든 논리적인 스토리지 풀입니다. VG는 논리 볼륨(LV)을 생성하는 기반이 됩니다.
- LV (Logical Volume)
- VG에서 할당된 공간으로, 실제 파일 시스템을 생성하고 데이터를 저장하는 단위입니다.
- PE (Physical Extent)
- PV를 구성하는 최소 단위의 블록으로, 일반적으로 4MB 크기를 가집니다.
2. LVM 의 주요 장점
- 유연한 스토리지 관리: LV의 크기를 동적으로 조절할 수 있어, 디스크 공간의 확장이나 축소가 용이합니다.
- 스토리지 스냅샷: LV의 특정 시점 상태를 스냅샷으로 저장하여, 백업이나 복구에 활용할 수 있습니다.
- 디스크 통합 및 분할: 여러 개의 디스크를 하나의 VG로 통합하거나, 하나의 디스크를 여러 개의 LV로 분할하여 사용할 수 있습니다.
- 데이터 이동의 용이성: LV를 다른 PV로 이동시킬 수 있어, 디스크 교체나 재배치가 간편합니다.
3. LVM 설정 절차
- 물리 볼륨 생성: pvcreate /dev/sdX 명령어를 사용하여 디스크를 PV로 초기화합니다.
- 볼륨 그룹 생성: vgcreate vg_name /dev/sdX 명령어로 VG를 생성합니다.
- 논리 볼륨 생성: lvcreate -L 10G -n lv_name vg_name 명령어로 LV를 생성합니다.
- 파일 시스템 생성 및 마운트: mkfs.ext4 /dev/vg_name/lv_name으로 파일 시스템을 생성하고, mount /dev/vg_name/lv_name /mnt로 마운트합니다
4. 활용 예시
- 서버 환경: 데이터베이스 서버에서 데이터 증가에 따라 스토리지를 확장할 때 유용합니다.
- 백업 및 복구: 스냅샷 기능을 활용하여 시스템 백업 및 복구 시점을 관리할 수 있습니다.
- 테스트 환경: 여러 개의 테스트 환경을 구성할 때, LV를 분할하여 독립적인 공간을 제공합니다
LVM 구성 요소 비교
리눅스의 LVM(Logical Volume Manager)은 디스크 공간을 유연하게 관리하기 위한 시스템으로, 주요 구성 요소는 PV (Physical Volume), VG (Volume Group), LV (Logical Volume), PE (Physical Extent), LE (Logical Extent)입니다. 아래 표는 각 구성 요소의 차이점, 생성 순서, 논리화 수준을 정리한 것입니다.
구성 요소 | 설명 | 생성 순서 | 논리화 수준 | 주요 특징 |
---|---|---|---|---|
PV (Physical Volume) | 물리 디스크나 파티션을 LVM에서 사용할 수 있도록 초기화한 단위 | 1단계 | 가장 낮음 (물리 계층) | 디스크나 파티션을 pvcreate로 초기화하여 LVM에 포함시킴 |
PE (Physical Extent) | PV를 일정 크기로 나눈 블록 단위 (기본 4MB) | PV 생성 시 자동 생성 | 낮음 | LVM이 데이터를 관리하는 최소 단위 |
VG (Volume Group) | 하나 이상의 PV를 묶은 논리적 스토리지 풀 | 2단계 | 중간 | vgcreate로 생성하며, LV를 생성할 수 있는 기반이 됨 |
LV (Logical Volume) | VG에서 할당된 공간으로, 실제 파일 시스템을 생성하고 데이터를 저장하는 단위 | 3단계 | 높음 | lvcreate로 생성하며, 파일 시스템을 생성하고 마운트하여 사용 |
LE (Logical Extent) | LV를 구성하는 블록 단위로, PE와 1:1 매핑됨 | LV 생성 시 자동 생성 | 가장 높음 (논리 계층) | LV의 데이터를 구성하는 최소 단위 |
리눅스에서 디스크 초기화부터 LVM 설정 및 파일 저장까지의 전체 과정 요약
- 디스크 확인 및 초기화: lsblk로 디스크를 확인하고, 필요한 경우 fdisk나 parted로 파티션을 생성합니다.
- PV 생성: pvcreate /dev/sdX 명령어로 물리 볼륨을 생성합니다.
- VG 생성: vgcreate vg_name /dev/sdX 명령어로 볼륨 그룹을 생성합니다.
- LV 생성: lvcreate -L 10G -n lv_name vg_name 명령어로 논리 볼륨을 생성합니다.
- 파일 시스템 생성 및 마운트: mkfs.ext4 /dev/vg_name/lv_name으로 파일 시스템을 생성하고, mount /dev/vg_name/lv_name /mnt로 마운트합니다.
디스크 초기화 부터 파일 저장까지
- LVM을 사용하면 디스크 공간을 유연하게 관리할 수 있으며, 필요에 따라 논리 볼륨의 크기를 동적으로 조절할 수 있습니다.
- 스냅샷 기능을 활용하여 특정 시점의 데이터를 보존하거나 복구할 수 있습니다.
- 여러 디스크를 하나의 볼륨 그룹으로 묶어 사용할 수 있어, 스토리지 확장성이 뛰어납니다.
1. 디스크 확인 및 초기화
a. 디스크 확인
lsblk
시스템에 연결된 디스크와 파티션 정보를 확인합니다.
b. 디스크 초기화
새로운 디스크를 사용할 경우, 파티션을 생성하거나 전체 디스크를 LVM에 사용할 수 있습니다.
- 파티션 생성 예시
fdisk /dev/sdb
n을 눌러 새 파티션을 생성하고, t로 파티션 타입을 8e(Linux LVM)로 설정합니다.
- 전체 디스크 사용 예시
파티션을 생성하지 않고 전체 디스크를 LVM에 사용할 수도 있습니다.
2. 물리 볼륨(PV) 생성
디스크 또는 파티션을 LVM에서 사용할 수 있도록 초기화합니다.
pvcreate /dev/sdb1
여러 디스크를 사용할 경우, 공백으로 구분하여 여러 개를 지정할 수 있습니다.
3. 볼륨 그룹(VG) 생성
하나 이상의 물리 볼륨을 묶어 볼륨 그룹을 생성합니다.
vgcreate my_vg /dev/sdb1
my_vg는 볼륨 그룹의 이름이며, 원하는 이름으로 지정할 수 있습니다.
4. 논리 볼륨(LV) 생성
볼륨 그룹에서 논리 볼륨을 생성합니다.
lvcreate -L 10G -n my_lv my_vg
- L 10G: 10GB 크기의 논리 볼륨을 생성합니다.
- n my_lv: 논리 볼륨의 이름을 my_lv로 지정합니다.
5. 파일 시스템 생성
논리 볼륨에 파일 시스템을 생성합니다.
mkfs.ext4 /dev/my_vg/my_lv
다른 파일 시스템을 사용하려면 ext4 대신 xfs, btrfs 등을 사용할 수 있습니다.
6. 마운트 및 자동 마운트 설정
a. 마운트 포인트 생성 및 마운트
mkdir /mnt/my_mount
mount /dev/my_vg/my_lv /mnt/my_mount
b. 부팅 시 자동 마운트 설정
/etc/fstab 파일에 다음 라인을 추가하여 부팅 시 자동으로 마운트되도록 설정합니다.
/dev/my_vg/my_lv /mnt/my_mount ext4 defaults 0 0
파일 시스템 종류(ext4)는 실제 사용한 파일 시스템에 맞게 변경해야 합니다.
7. 상태 확인 명령어
물리 볼륨 확인 : pvs
볼륨 그룹 확인 : vgs
논리 볼륨 확인 : lvs
마운트 상태 확인 : df -h
리눅스 논리 볼륨 관리자 비교
리눅스에서 LVM(Logical Volume Manager)과 비교할 수 있는 주요 논리 볼륨 관리 시스템으로는 ZFS, Btrfs, Stratis가 있습니다. 아래 표는 이들 시스템의 주요 기능과 차이점을 비교한 것입니다:
기능/특징 | LVM | ZFS | Btrfs | Stratis |
---|---|---|---|---|
개발사/출시 | Linux 커뮤니티 / 1998년 | Sun Microsystems / 2005년 (현재 OpenZFS로 오픈소스화) | Oracle / 2009년 (리눅스 커널에 통합) | Red Hat / 2018년 |
구조 | 볼륨 관리 계층 (파일 시스템과 분리) | 파일 시스템과 볼륨 관리 통합 구조 | 파일 시스템과 볼륨 관리 통합 구조 | LVM 및 XFS 기반의 사용자 공간 구성 |
파일 시스템 | ext4, XFS 등 선택 가능 | 자체 파일 시스템(ZFS) | 자체 파일 시스템(Btrfs) | XFS 사용 |
스냅샷 | 지원 (기본적이며 성능 저하 가능) | 고급 스냅샷 및 클론 기능 제공 | 고급 스냅샷 및 서브볼륨 기능 제공 | 지원 (XFS 기반) |
데이터 무결성 | 없음 | 종단 간 체크섬 및 자동 복구 기능 제공 | 체크섬 및 일부 자동 복구 기능 제공 | 없음 |
RAID 지원 | mdadm 또는 LVM RAID 사용 | 자체 RAID-Z 지원 | 자체 RAID 0/1/5/6/10 지원 | LVM RAID 사용 |
압축/중복 제거 | 없음 | 지원 (압축 및 중복 제거) | 지원 (압축 및 중복 제거) | 없음 |
암호화 | LUKS 등 외부 도구 사용 | 자체 암호화 기능 제공 | 자체 암호화 기능 제공 | LUKS 등 외부 도구 사용 |
확장성 | 우수 (온라인 확장 및 축소 지원) | 매우 우수 (페타바이트급 확장성) | 우수 (다중 디스크 및 서브볼륨 지원) | 우수 (LVM 기반 확장성) |
성능 | 낮은 오버헤드, 파일 시스템에 따라 다름 | 높은 메모리 사용, 고성능 캐시 및 로그 시스템 제공 | 중간 수준의 오버헤드, Copy-on-Write로 인한 성능 저하 가능 | 낮은 오버헤드, XFS 성능에 의존 |
사용 사례 | 전통적인 서버, 가상 머신, 단순 스토리지 관리 | 데이터 무결성이 중요한 엔터프라이즈 환경, NAS, 백업 시스템 | 데스크탑, 개발 환경, 스냅샷 및 서브볼륨 활용이 필요한 경우 | Fedora, RHEL 등에서의 간편한 스토리지 관리 |
요약
- LVM: 유연한 볼륨 관리를 제공하지만, 데이터 무결성 보호 기능은 부족합니다. 다양한 파일 시스템과의 호환성이 장점입니다.
- ZFS: 파일 시스템과 볼륨 관리가 통합되어 있으며, 데이터 무결성 보호, 스냅샷, 압축 등 고급 기능을 제공합니다. 그러나 높은 메모리 사용량과 리눅스에서의 제한된 지원이 단점입니다.
- Btrfs: ZFS와 유사한 기능을 제공하며, 리눅스 커널에 통합되어 있습니다. 스냅샷, 서브볼륨, 압축 등을 지원하지만, 일부 기능은 아직 안정성 문제로 제한적일 수 있습니다.
- Stratis: LVM과 XFS를 기반으로 하며, 사용자 공간에서 동작하는 데몬을 통해 ZFS/Btrfs와 유사한 기능을 제공합니다. 그러나 기능 면에서는 제한적일 수 있습니다.
각 시스템의 선택은 사용자의 요구사항과 환경에 따라 달라질 수 있습니다. 예를 들어, 데이터 무결성이 중요한 환경에서는 ZFS가 적합할 수 있으며, 리눅스 환경에서의 통합성과 유연성을 원한다면 Btrfs나 Stratis를 고려할 수 있습니다.
마무리
LVM(Logical Volume Manager)은 리눅스에서 디스크 공간을 유연하고 효율적으로 관리하기 위한 논리 볼륨 관리 시스템입니다. 기존의 고정된 파티션 방식과 달리, LVM은 물리적인 디스크를 추상화하여 논리적인 볼륨으로 관리함으로써 스토리지 확장, 축소, 이동 등을 보다 쉽게 수행할 수 있습니다.
LVM은 리눅스 시스템에서 스토리지를 보다 유연하게 관리할 수 있는 강력한 도구입니다. 특히, 스토리지 확장이나 재구성이 빈번한 환경에서 그 진가를 발휘합니다.