LVM (Logical Volume Manager)
LVM은 리눅스 환경에서 유연하고 효율적인 디스크 관리 기능을 제공하는 논리 볼륨 관리 시스템
디스크 공간을 논리적으로 관리하고 확장하거나 축소할 수 있으며, 물리적인 디스크 파티션에 의존하지 않고도 유연한 디스크 관리를 가능하게 함
LVM 주요 개념 3가지
1. Physical Volume (PV)
실제 물리적 디스크 또는 디스크의 파티션
예: /dev/sda1
, /dev/sdb1
pvcreate
명령으로 생성
2. Volume Group (VG)
여러 PV를 묶어 하나의 논리적 디스크 풀(pool)로 만듭니다.
VG는 디스크의 물리적 경계를 초월하여 디스크를 통합 관리할 수 있게 합니다.
예: vgcreate my_vg /dev/sda1 /dev/sdb1
3. Logical Volume (LV)
VG에서 원하는 크기의 논리 디스크를 할당하여 생성한 가상의 디스크입니다.
일반 파일 시스템처럼 마운트하여 사용합니다.
LV는 필요에 따라 크기를 동적으로 조정할 수 있습니다.
예: lvcreate -L 20G -n my_lv my_vg
LVM 주요 기능
- 유연한 디스크 관리
- 디스크 추가/제거가 간단하며, 운영 중에도 가능
- 파티션 크기 조정이 자유로움.
- 디스크 공간 통합
- 여러 디스크를 하나의 Volume Group으로 통합하여 사용할 수 있음
- 스냅샷 기능
- 현재 상태의 복사본(Snapshot)을 생성하여 백업이나 테스트에 사용
- 디스크 확장/축소
- LV와 VG의 크기를 유동적으로 조정 가능
- RAID 기능 지원
- LVM은 소프트웨어 RAID와 함께 사용하여 데이터 중복성을 제공할 수 있음
LVM 장점
- 디스크 크기 및 배치 유연성
- 디스크 추가 및 제거가 쉬움
- 파일 시스템 확장/축소가 가능
- 스냅샷으로 데이터 백업 및 복구 용이
LVM 단점
- 설정이 일반 파티션보다 복잡
- 추가 추상화 계층으로 인해 성능 오버헤드 발생 가능
- 설정 오류 시 데이터 복구가 더 어려울 수 있음
LVM 실습
# lvm2 패키지 다운로드 sudo apt update sudo apt -y install lvm2
ls -a /dev/sd* # Linux LVM 타입으로 파티션 생성 fdisk /dev/sdb fdisk /dev/sdc
# 물리 볼륨으로 변경 pvcreate /dev/sdb1 pvcreate /dev/sdc1 # 볼륨 "myVG" 그룹 생성 vgcreate "myVG" /dev/sdb1 /dev/sdc1 # 볼륨 확인 vgdisplay
# Logical Volume 1G, 3G, 1G 설정 lvcreate --size 1G --name myLG1 myVG lvcreate --size 3G --name myLG2 myVG # 저장 공간이 정확하게 떨어지지 않을 수 있기 때문에 나머지를 전부 사용하는 방법(extents)으로 함 lvcreate --extents 100%FREE --name myLG3 myVG # 확인 lvdisplay # 확인 ls -l /dev/myVG
# file system 생성 및 포맷 mkfs.ext4 /dev/myVG/myLG1 mkfs.ext4 /dev/myVG/myLG2 mkfs.ext4 /dev/myVG/myLG3 # 마운트 작업 mkdir /lvm1 /lvm2 /lvm3 mount /dev/myVG/myLG1 /lvm1 mount /dev/myVG/myLG2 /lvm2 mount /dev/myVG/myLG3 /lvm3 # 재부팅 자동 마운트 등 gedit /etc/fstab /dev/myVG/myLG1 /lvm1 ext4 defaults 0 0 /dev/myVG/myLG2 /lvm2 ext4 defaults 0 0 /dev/myVG/myLG3 /lvm3 ext4 defaults 0 0