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을 사용하기 위해서는 아래의 절차가 필요합니다.
PV 생성 -> VG 생성 -> LV 생성 -> LV 포맷 -> mount -> /etc/fstab 설정
아래의 LVM을 CentOS7 을 사용해 구축하면서 사용법을 기술하겠습니다.
디스크 확인
현재 sdb, sdc, sdd라는 5G까지 용량을 가진 sdb, sdc, sdd라는 디스크가 있습니다.
1
2
3
4
5
6
7
8
# 서버에서 인식하고 있는 디스크들 Tree 형태로 확인
lsblk
# 전체 디스크 목록과 디스크 파티션 목록 확인
fdisk -l
# 마운트 되어 있는 디스크 확인
df -h
3.1 PV 만들기
1. lvm2 package 다운로드
1
yum -y install lvm2
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} #Frist Sector 지정
{Enter} #Last Sector 지정
=> t # 파일 시스템 타입 설정 8e -> LVM으로 사용될 파티션
=> p # 현재 설정한 정보 확인
=> w # 현재 설정한 정보대로 Write
3. PV 생성
1
pvcreate {파티션명}
3.2 VG 만들기
1
vgcreate {VG 이름} {VG에 포함될 PV목록}
3.3 LV 만들기
1
2
3
4
5
6
lvcreate --size {lv 사이즈} --name {lv 이름} {VG 이름}
---
## PV의 용량을 5x3개 15로 했으나 실제로는 15G보다 작은 용량이 할당되게 됩니다. 따라서 lv1을 만들고 남은 VG의 용량을 모두 lv2에 할당하는 명령어를 사용했습니다.
lvcreate --extents 100%FREE --name {lv 이름} {VG 이름}
3.4 LV 포맷 (ext4 형식으로)
1
mkfs.ext4 {LV 경로}
3.5 Mount 및 /etc/fstab 설정
1
mount -t {파일 타입} {마운트 할 LV} {LV가 마운트 될 디렉토리}
/etc/fstab 설정 (vi Editor 사용)
1
2
3
12행, 13행에 lv1, lv2 추가
/etc/fstab을 설정해주지 않을 시 재부팅 하면 마운트가 풀립니다.
/etc/fstab을 설정 후 정상적으로 재부팅이 되고 mount가 잘 되어있는지 확인 후 사용해주세요.
3.6 확인
생성된 PV, VG, LV 상태는 아래의 명령어로 확인 가능합니다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
---
## PV상태확인
pvdisplay #자세하게 확인
pvscan #간단하게 확인
---
## VG상태확인
vgdisplay
vgscan
---
## LV상태확인
lvdisplay
lvscan
[결과1] PV 상태
[결과2] VG 상태
[결과3] LV 상태
4. 그 외 명령어
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# VG 명령어
---
## VG 삭제
vgremove {vg_name}
---
## VG 확장
vgextend {vg_name} {pv_name}
---
## VG 안에 있는 PV 삭제
vgreduce {vg_name} {pv_name}
# LV 명령어
---
## LV 삭제
lvremove {lv_name}
---
## LV 크기를 {+Size}만큼 확장
lvextend -L {+Size} {lv_path}
---
## LV 크기를 {-Size}만큼 축소
lvreduce -L {-Size} {lv_path}
# 파일 시스템 및 포맷, 사이즈 재 할당 명령어
---
## ext 파일시스템 타입의 LV 사이즈 재조정
resize2fs {lv_path}
---
## xfs 파일시스템 타입의 LV 사이즈 재조정
xfs_growfs {lv_path}
궁금하신 점이나 추가해야할 부분은 댓글이나 아래의 링크를 통해 문의해주세요.
Written with KKam._.Ji