본문으로 바로가기

논리 볼륨(Logical Volume) 관리

category MLOps/Linux 2022. 1. 26. 21:09

1. 논리 볼륨 (Logical Volume)

- Partitioning은 한번 구성된 파티션 장치의 레이아웃 설정이나 할당된 사이즈를 변경하기 어려움 -> 유연성, 확장성 부족

- 볼륨의 데이터를 유지한 상태로 크기를 변경하거나 사이즈 확장 가능 심지어 디스크 제거도 가능

- RAID를 적용한 볼륨 생성 가능

RAID (Redundant Array of Independent)
- 여러 개의 디스크를 묶어서 사용할 수 있는 기술

 

1) 논리 볼륨 구성

- PV (Physical Volume): 논리 볼륨에서 디스크를 사용하기 위한 기본 단위

- VG (Volume Group): 1개 이상의 PV로 이뤄진 PV의 집합

- LV (Logical Volume): LVM에서 데이터를 저장할 때 사용하는 볼륨

 

- PE (Physical Extent):  PV에서 사용하는 최소의 기본 데이터 저장 단위, 기본값 4MB

- LE (Logical Extent):  LV에서 사용하는 최소의 기본 데이터 저장 단위, 기본값 4MB


2. 논리 볼륨 생성

- 과정: PV 생성 -> VG 생성 -> LV 확인

* LV 장치 파일 경로: /dev/VG_NAME/LV_NAME, /dev/mapper/VG_NAME-LV_NAME

 

1) PV 생성을 위한 파티션 생성

-  PV는 파티션 단위로 생성

- System Id를 "Linux LVM"으로 설정

# 파티션 생성
fdisk /dev/<partition-name>

# "t"
# 파티션 타입이 정확하지 않을 경우 RAID 형태로 논리 볼륨 생성 x
t
8e

# "L" -> 시스템 id 확인
L

# 파티션 정보 갱신
partprobe <partition-name>

# 논리 볼륨을 구성하기 위한 파티션 정보 확인
lvmdiskscan

 

2) PV 생성

# PV 생성
pcvcreate <partition-name> <partition-name> <partition-name>

 

3) VG 구성

# VG 생성
vgcreate [option] <volume-group-name> <physical-volume1> <physical-volume2> ...

# PE size 지정 시
vgcreate -s 8M ~~

 

4) LV 생성

# LV 생성
lvcreate -n <LV_NAME> -L <LV_SIZE> <volume-group-name> # 사이즈 지정
lvcreate -n <LV_NAME> -l <LE_CNT> <volume-group-name> # PE개수 지정

# 파일시스템 초기화
mkfs -t <FSTYPE> <DEVICE>

# mount

 

6) 논리 볼륨 확인

# PV check
pvdisplay [option]

# VG check
vgdisplay [option]

# LV check
lvdisplay [option]

3. 논리 볼륨 제거

# LV 구성 제거 과정
# 1. LV 제거
lvremove <LV_DEVICE>

# 2. VG 제거
vgremove <VG_NAME>

# 3. PV 제거
pvremove <PV_DEVICE>

# 4. 파티션 제거
fdisk <DEVICE>

5. 파티션 구성 정보 갱신
partprobe <DEVICE>

4. VG & LV 관리 (확장 및 축소)

- 확장은 제약 없지만 축소는 선행 단계를 완료한 뒤에 진행 가능

# VG 확장
vgextend <volume-group-name> <phsical-volume1> <physical-volume2> ...

# VG 축소
# 여분의 PV에 데이터를 옮기는 것이 선행되어야 함
pvmove <physical-volume>
vgreduce <volume-group-name> <phsical-volume1> <physical-volume2> ...

# LV 확장
lvextend [option] <logical-volume-path> # -L or -l

# filesystem 용량 확장
# EXT 계열
resize2fs <LV_DEVICE>

# XFS 계열
xfs_growfs <LV_DEVICE>

# LV & filesystem 한번에 수행
lvextend -L <SIZE> <LV_DEVICE> -r

# LV 축소
lvreduce [option] <logical-volume-path> # -L or -l

# xfs 계열의 파일시스템 축소는 불가능 / ext만 가능
resize2fs <logical-volume-path> <size>

'MLOps > Linux' 카테고리의 다른 글

소프트웨어 패키지 (RPM, YUM)  (0) 2022.01.27
Systemd  (0) 2022.01.26
디스크 관리 및 파일시스템  (0) 2022.01.25
작업 스케줄링  (0) 2022.01.25
고급 권한 관리  (0) 2022.01.24