LVM 논리 볼륨 관리 방법

기본 개념 이해

논리 볼륨 매니저(Logical Volume Manager, LVM)는 물리적 스토리지의 유연한 관리를 가능하게 하는 기술입니다. 주요 구성 요소는 다음과 같습니다:

  • 물리 볼륨 (PV): 실제 디스크나 파티션으로, fdisk 등을 사용해 타입을 8e로 설정하면 LVM이 인식할 수 있습니다.
  • 볼륨 그룹 (VG): 하나 이상의 물리 볼륨을 모아 만든 저장 공간 집합.
  • 논리 볼륨 (LV): 특정 볼륨 그룹에서 할당된 가상 디스크 공간.

이 구조를 통해 여러 개의 작은 디스크를 하나의 큰 논리 디스크처럼 사용할 수 있으며, 크기 조정도 쉽게 수행됩니다.

왜 LVM을 사용하는가?

  • 대용량 스토리지 구성: 단일 디스크로는 불가능한 용량(예: 30TB)을 여러 디스크를 병합해 구현 가능.
  • 유연한 확장 및 축소: 초기 계획과 실제 사용량 사이의 차이를 보완하기 위해 런타임에 볼륨 크기를 조정할 수 있음.

디스크 추가 및 준비

  1. 새로운 디스크(/dev/sdb)를 시스템에 연결.
  2. 파티셔닝:
    fdisk /dev/sdb
    # 파티션 1과 2 생성 후, 타입을 8e로 변경

물리 볼륨 생성

pvcreate /dev/sdb1

생성 확인:

pvs

볼륨 그룹 생성

vgcreate vg0 /dev/sdb1
# 또는 지정된 크기로 생성
vgcreate -s 2G vg0 /dev/sdb1

확인 명령:

vgs

논리 볼륨 생성

lvcreate -n app_data -L 2G vg0

확인:

lvs

파일 시스템 포맷팅

mkfs.ext4 /dev/vg0/app_data

마운트 및 자동 마운트 설정

  1. 마운트 포인트 생성:
  2. mkdir /mnt/app_data
  3. 임시 마운트:
  4. mount /dev/vg0/app_data /mnt/app_data
  5. 자동 마운트 등록 (/etc/fstab에 추가):
  6. /dev/vg0/app_data /mnt/app_data ext4 defaults 0 0

온라인 확장 (확장)

볼륨 그룹에 여유 공간이 있는 경우:

lvextend -L +3G /dev/vg0/app_data
resize2fs /dev/vg0/app_data

한 번에 확장 및 파일 시스템 동기화:

lvextend -r -L 6G /dev/vg0/app_data

오프라인 축소 (단, ext4만 지원)

  1. 마운트 해제:
  2. umount /mnt/app_data
  3. 파일 시스템 검사:
  4. fsck -f /dev/vg0/app_data
  5. 파일 시스템 축소:
  6. resize2fs /dev/vg0/app_data 3G
  7. 논리 볼륨 축소:
  8. lvreduce -L 3G /dev/vg0/app_data
  9. 재마운트:
  10. mount -a

ext4 파일 시스템에서 스냅샷 생성

lvcreate -s -n db_snapshot -L 500M -p r /dev/vg0/app_data

읽기 전용 스냅샷 마운트:

mount /dev/vg0/db_snapshot /mnt/snap

스냅샷 복원

  1. 마운트 해제:
  2. umount /mnt/app_data /mnt/snap
  3. 스냅샷 복원:
  4. lvconvert --merge /dev/vg0/db_snapshot
  5. 재마운트:
  6. mount -a

xfs 파일 시스템에서 스냅샷

먼저 xfs 볼륨 생성:

lvcreate -n log_vol -L 2G vg0
mkfs.xfs /dev/vg0/log_vol
mkdir /mnt/log
mount /dev/vg0/log_vol /mnt/log

스냅샷 생성 및 마운트:

lvcreate -s -n log_snap -L 500M /dev/vg0/log_vol
mount -o ro,nouuid /dev/vg0/log_snap /mnt/snap

복원 절차:

  1. 마운트 해제:
  2. umount /mnt/log /mnt/snap
  3. 복원:
  4. lvconvert --merge /dev/vg0/log_snap
  5. 재마운트:
  6. mount -a

정리 및 리소스 제거

  1. 마운트 해제:
  2. umount /mnt/log /mnt/app_data
  3. 논리 볼륨 삭제:
  4. lvremove /dev/vg0/log_vol
    lvremove /dev/vg0/app_data
  5. 볼륨 그룹 삭제:
  6. vgremove vg0
  7. 물리 볼륨 제거:
  8. pvremove /dev/sdb1
  9. 파티션 삭제:
  10. fdisk /dev/sdb
    # d → 1, d → 2 → w
  11. 디스크 제거

태그: LVM linux logical volume volume group physical volume

7월 1일 02:51에 게시됨