1. LVM(Logical Volume Manager)
1.1. 파티션을 Logical Volume으로 나누어 효율적/유연하게 관리하기 위한 프로그램
※ LVM을 사용하는 이유?
- 기존에는 File System이 직접 물리적인 Block Storage에 접근해서 작업
· 용량이 부족한 경우, 더 큰 용량의 Storage로 모든 contents를 옮겨야 함
- LVM은 File System이 LVM을 통해 물리적인 Block Storage에 접근해서 작업
· 기존 방식에서는 분할이 불가능했던 Block Storage가 LVM 안에서 자유롭게 분할/추가 가능
· 이로써 용량 조절, 장치명 변경 등이 자유로워져 파티션을 효율적/유연하게 관리할 수 있게 됨
· 이 외에도, 크기 조정이 가능한 스토리지 풀(Pool), 디스크 스트라이핑, 미러볼륨 제공 등의 장점이 있음
1.2. 주요 개념
1.2.1. PV(Physical Volume)
- 파티션을 LVM에서 사용할 수 있게 변환하는 것 (Block Storage를 PV로 초기화)
1.2.1.1. 명령어
pvcreate DEVICE |
DISK를 PV로 변환 | ||
pvremove DEVICE |
PV를 파티션으로 되돌림 | ||
pvs | pvscan | pvdisplay | PV 확인 |
1.2.2. PE(Physical Extent)
- PV를 구성하고 있는 일정한 크기의 블록
- LVM의 가장 개선된 버전인 LVM2에서 PE는 4MB
- LE와 1:1 대응하며, LE와 크기가 항상 같음
1.2.3. VG(Volume Group)
- PV들의 집합 (말 그대로 (Physical) Volum의 Group)
- VG에서 LV를 할당할 수 있기 때문에 BaseCamp의 역할
1.2.3.1. 명령어
vgcreate VGNAME PVNAME1... |
PV를 VG로 생성 | ||
vgremove VGNAME |
VG 삭제 | ||
vgextend VGNAME PVNAME1... |
VG에 PV 추가 | ||
vgreduce VGNAME PVNAME1... |
VG에서 PV 제거 | ||
vgs | vgscan | vgdisplay | VG 확인 |
1.2.4. LV(Logical Volume)
- 사용자가 최종적으로 다루게 될 Logical Storage
1.2.4.1. 명령어
lvcreate -L 용량 -n LVNAME VGNAME | VG에 LV 생성 | ||
lvremove LVNAME | LV 삭제 | ||
lvextend | -L 용량 | DEVICE | 해당 장치에 용량 추가 |
-l EXTENTS | 해당 장치에 용량(extents 수) 추가 | ||
-l 100%VG | 해당 장치에 잔여 용량의 100% 추가 | ||
lvs | lvscan | lvdisplay | LV 확인 |
※ lvreduce를 사용하지 않는 이유?
- 데이터 디스크에 순차적으로 작성되는 것이 아니라, 무작위로 작성
- 즉, 디스크 안의 데이터의 자리(위치)를 특정할 수 없음
- 이런 상태에서 용량을 떼어낸다면 해당 용량에 어떤 데이터가 있을지 알 수 없기 때문
1.2.5. LE(Logical Extent)
- LV를 구성하고 있는 일정한 크기의 블록
- PE와 1:1 대응하며, PE와 크기가 항상 같음
1.3. LVM 사용
1.3.1. 5G 디스크를 LVM으로 파티션 생성
1.3.2. PV 생성 및 확인
1.3.3. 기존 prac VG에 PV 추가 및 확인
1.3.4. /home과 /에 2G씩 추가 및 확인
'Linux' 카테고리의 다른 글
21_Linux: 패키지 관리① (0) | 2022.03.28 |
---|---|
19_Linux: 디스크 관리③ (0) | 2022.03.25 |
17_Linux: 디스크 관리① (0) | 2022.03.24 |
16_Linux: 사용자 계정 및 그룹 관리② (0) | 2022.03.22 |
15_Linux: 사용자 계정 및 그룹 관리① (0) | 2022.03.22 |