Ubuntu - LVM (Logical Volume Manager)
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 실습
bash
# lvm2 패키지 다운로드
sudo apt update
sudo apt -y install lvm2
bash
ls -a /dev/sd*
# Linux LVM 타입으로 파티션 생성
fdisk /dev/sdb
fdisk /dev/sdc
bash
# 물리 볼륨으로 변경
pvcreate /dev/sdb1
pvcreate /dev/sdc1
# 볼륨 "myVG" 그룹 생성
vgcreate "myVG" /dev/sdb1 /dev/sdc1
# 볼륨 확인
vgdisplay
bash
# 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
bash
# 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