LVM(Logical Volume Manager)-개념, 사용 방법
1. LVM(Logical Volume Manager)의 개념
LVM이란 리눅스와 유닉스 기반 운영체제에서 Logical Volume을 효율적이고 유연하게 관리하기 위한 커널의 한 부분이자 프로그램입니다. LVM은 물리적인 디스크를 논리적인 볼륨으로 추상화하여 유연하게 디스크 공간을 활용할 수 있게 해줍니다.
-> LV2를 사용 중 디스크 용량이 더 필요하다면? 디스크를 추가 장착한 뒤 VG에 편입하고 LV2에 볼륨 사이즈를 추가로 할당할 수 있습니다.
2. LVM의 구성 요소
LVM은 PV, PE, VG, LV, LE의 총 5가지로 구성됩니다.
2.1. PV(Physical Volume)
LVM에서 블록 장치를 사용하려면 PV로 초기화 후 사용이 가능합니다. PV란 블록 장치 전체 또는 그 장치를 이루고 있는 파티션들을 LVM에서 사용할 수 있게 변환한 것을 말합니다.
PE - PV는 데이터를 저장하는 각각의 고정된 크기의 논리적 블록으로 나뉘는데, 이를 PE(Physical Extent)라고 합니다. PV는 여러 개의 PE로 구성됩니다.
2.2. VG(Volume Group)
VG는 PV를 모아놓은 것으로, LV를 할당할 수 있는 공간입니다.
즉 PV로 초기화된 장치들은 VG로 통합되게 되고, VG 안의 공간을 사용해 LV를 만들 수 있습니다.
2.3. LV(Logical Volume)
LV는 VG에서 공간을 할당받아 사용자가 최종적으로 다룰 수 있는 논리적인 스토리지(실제 데이터를 저장)입니다. LV는 PV와 동일하게 LE(Logical Extent)라는 일정한 크기의 블록 단위로 나뉘며 각각의 LE들은 PE와 1:1로 매핑되어 사용됩니다.
LV는 LE들의 집합이며 LE는 PE와 1:1로 매핑, VG에서 필요한 크기를 할당받아 필요 시 크기를 조정 가능
3. LVM 사용법
LVM을 사용하기 위해서는 아래의 절차가 필요합니다.
3.1.1. 절차 요약
PV 생성 → VG 생성 → LV 생성 → LV 포맷 → 마운트 → /etc/fstab 설정
아래 LVM 예시는 CentOS 7을 사용해 구축했습니다.
3.1.2. 디스크 확인
현재 sdb, sdc, sdd 세 개의 5GB 디스크가 추가로 연결되어 있습니다.
1
2
3
4
5
6
7
8
# 서버에서 인식하고 있는 디스크들 Tree 형태로 확인
lsblk
# 전체 디스크 목록과 디스크 파티션 목록 확인
fdisk -l
# 마운트되어 있는 디스크 확인
df -h
3.2. PV 만들기
3.2.1. lvm2 package 다운로드
1
yum -y install lvm2
3.2.2. 파티션 생성 (sdb, sdc, sdd 모두에 적용)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fdisk /dev/sdb
=> n # 새 파티션 생성
Command :
p
{Enter} # primary
{Enter} # 파티션 개수
{Enter} # First Sector 지정
{Enter} # Last Sector 지정
=> t # 파일 시스템 타입을 8e(LVM)로 설정
=> p # 현재 설정한 정보 확인
=> w # 현재 설정한 정보대로 저장
3.2.3. PV 생성
1
pvcreate {파티션명}
3.3. VG 만들기
1
vgcreate {VG 이름} {VG에 포함될 PV목록}
3.4. LV 만들기
1
lvcreate --size {lv 사이즈} --name {lv 이름} {VG 이름}
PV의 용량을 5GB × 3개(15GB)로 구성했으나 실제 사용 가능 용량은 약간 작습니다. 따라서 lv1을 만든 뒤 남은 VG 용량을 모두 lv2에 할당했습니다.
1
lvcreate --extents 100%FREE --name {lv 이름} {VG 이름}
3.5. LV 포맷 (ext4 형식으로)
1
mkfs.ext4 {LV 경로}
3.6. Mount 및 /etc/fstab 설정
1
mount -t {파일 타입} {마운트 할 LV} {LV가 마운트 될 디렉토리}
3.6.1. /etc/fstab 설정 (vi Editor 사용)
- 12행, 13행에 lv1, lv2를 추가합니다.
- /etc/fstab을 설정하지 않으면 재부팅 시 마운트가 해제됩니다.
- /etc/fstab 설정 후 재부팅하여 마운트가 정상인지 확인하세요.
3.7. 확인
생성된 PV, VG, LV 상태는 아래의 명령어로 확인 가능합니다
3.7.1. PV 상태 확인
1
2
pvdisplay # 자세하게 확인
pvscan # 간단하게 확인
3.7.2. VG 상태 확인
1
2
vgdisplay
vgscan
3.7.3. LV 상태 확인
1
2
lvdisplay
lvscan
```
3.7.1. [결과1] PV 상태
3.7.2. [결과2] VG 상태
3.7.3. [결과3] LV 상태
4. 그 외 명령어
VG 관리
vgremove {vg_name}: VG 삭제vgextend {vg_name} {pv_name}: VG 확장vgreduce {vg_name} {pv_name}: VG에서 특정 PV 제거
LV 관리
lvremove {lv_name}: LV 삭제lvextend -L {+Size} {lv_path}: LV 크기를{+Size}만큼 확장lvreduce -L {-Size} {lv_path}: LV 크기를{-Size}만큼 축소
파일 시스템 조정
resize2fs {lv_path}: ext 계열 파일 시스템 크기 조정xfs_growfs {lv_path}: XFS 파일 시스템 크기 조정
궁금하신 점이나 추가해야 할 부분은 댓글이나 아래의 링크를 통해 문의해주세요.
Written with KKamJi
