리눅스 LVM
IT 위키
(논리 볼륨 관리자에서 넘어옴)
하드디스크 및 파티션을 유동적으로 관리할 수 있게 해 주는 프로그램
- 여러개의 하드를 뭉쳐서 하나의 하드처럼 만들 수 있고, 2개의 하드디스크를 3개의 하드디스크인 것처럼도 만들 수 있다.
- 물리적 볼륨(PV : Physical Volume) : 물리적인 하드를 지칭
- 물리적 확장(PE : Physical Extent) : PV에서 나누어서 사용하는 블록 단위 영역
- 볼륨 그룹(VG : Volume Group) : 물리적 볼륨의 집합이자 PE의 집합
- 논리적 볼륨(LV : Logical Volume) : VG에서 필요한만큼 할당해서 만드는 논리적인 단위
실제 디스크의 분할된 파티션으로 물리적 볼륨을 생성하고, 볼륨 그룹을 모아서 생성된 것을 논리적 볼륨이라고 한다. 논리적 볼륨은 볼륨 그룹에서 사용자가 필요한 만큼 할당해서 만들어지는 공간이라고 볼 수 있다.
- 디스크 설치 -> 물리적 볼륨 할당 -> 볼륨 그룹 확장 -> 논리적 볼륨 확장
파티션디바이스의 /dev/sdb1에 10G, /dev/sdb2에10G를 이용하여 20G의 /data 디렉토리를생성하는 과정
- 1. PV (Physical Volume) 생성
[root@ihd ~]# pvcreate /dev/sdb1 /dev/sdb2
- 2. VG (Volume Group) 볼륨 그룹 생성
[root@ihd ~]# vgcreate ihd_vg /dev/sdb1 /dev/sdb2
- 3. LV (Logical Volume) 생성
[root@ihd ~]# lvcreate -L 20G ihd_vg -n data
- 동적 크기 조정 : 서비스 중에도 LV 를 확장할 수 있다. 여유 공간이 없으면 VG 에 PV 를 추가하면 된다.
- 여러 디스크 통합 : 물리 디스크 용량을 넘는 볼륨을 만들 수 있다.
- 스냅숏 : 특정 시점의 LV 상태를 얼려 백업 대상으로 쓸 수 있다.
- 디스크 교체 용이 :
pvmove로 데이터를 다른 PV 로 옮긴 뒤 기존 디스크를 빼낼 수 있다.
| 대상 | 생성 | 조회 | 기타 |
|---|---|---|---|
| PV | pvcreate
|
pvs, pvdisplay
|
pvmove, pvremove
|
| VG | vgcreate
|
vgs, vgdisplay
|
vgextend, vgreduce
|
| LV | lvcreate
|
lvs, lvdisplay
|
lvextend, lvreduce, lvremove
|
# 1) 물리 볼륨 생성 # pvcreate /dev/sdb1 /dev/sdc1 # 2) 볼륨 그룹 생성 (PE 크기 8MB 지정) # vgcreate -s 8M vg_data /dev/sdb1 /dev/sdc1 # 3) 논리 볼륨 생성 (20GB) # lvcreate -L 20G -n lv_home vg_data # 4) 파일 시스템 생성 후 마운트 # mkfs.ext4 /dev/vg_data/lv_home # mount /dev/vg_data/lv_home /home # 5) 나중에 10GB 확장 (파일 시스템까지 함께) # lvextend -L +10G -r /dev/vg_data/lv_home
