본문 바로가기

리눅스

리눅스 LVM

LVM (Logical Volume Manager)란?

LVM은 Logical Volume Manager의 약자로, 리눅스에서 디스크 관리의 유연성을 제공하는 기술입니다. 물리적 저장 장치를 논리적 단위로 추상화하여 파일 시스템 크기를 동적으로 조정하거나 디스크를 효율적으로 관리할 수 있게 해줍니다.


LVM의 주요 구성 요소

  1. Physical Volume (PV)
    • 실제 디스크나 디스크 파티션입니다.
    • pvcreate 명령으로 생성됩니다.
  2. Volume Group (VG)
    • 하나 이상의 Physical Volume을 묶어서 만든 논리적 그룹입니다.
    • VG는 LVM의 저장 공간 풀(pool) 역할을 합니다.
    • vgcreate 명령으로 생성됩니다.
  3. Logical Volume (LV)
    • Volume Group에서 생성된 논리적 디스크입니다.
    • LV를 파일 시스템으로 포맷한 후 마운트하여 사용합니다.
    • lvcreate 명령으로 생성됩니다.
  4. Physical Extents (PE)
    • Physical Volume에서 고정 크기로 나뉜 가장 작은 단위입니다.
    • 기본적으로 4MB 단위로 할당됩니다.

LVM의 장점

  1. 유연한 공간 관리
    • 디스크 공간을 동적으로 조정할 수 있습니다.
    • 디스크 크기를 쉽게 확장(extend)하거나 축소(reduce)할 수 있습니다.
  2. 스냅샷(Snapshot)
    • 파일 시스템의 특정 시점 상태를 저장할 수 있어 백업에 유용합니다.
  3. 디스크 통합
    • 여러 개의 물리 디스크를 하나의 논리 디스크처럼 사용할 수 있습니다.
  4. 장애 복구 지원
    • 미러링 등을 통해 장애 발생 시 데이터를 보호할 수 있습니다.

LVM 기본 명령어

1. Physical Volume 생성

pvcreate /dev/sdX

2. Volume Group 생성

vgcreate my_vg /dev/sdX /dev/sdY

3. Logical Volume 생성

lvcreate -L 10G -n my_lv my_vg
  • -L: 생성할 논리 볼륨의 크기
  • -n: 논리 볼륨의 이름

4. 파일 시스템 생성 및 마운트

mkfs.ext4 /dev/my_vg/my_lv
mount /dev/my_vg/my_lv /mnt

5. LVM 크기 조정

  • 확장
    lvextend -L +5G /dev/my_vg/my_lv
    resize2fs /dev/my_vg/my_lv  # 파일 시스템 크기 조정
    
  • 축소
    umount /mnt
    resize2fs /dev/my_vg/my_lv 5G
    lvreduce -L 5G /dev/my_vg/my_lv
    mount /dev/my_vg/my_lv /mnt
    

6. LVM 스냅샷 생성

lvcreate -L 1G -s -n my_lv_snapshot /dev/my_vg/my_lv
  • -s: 스냅샷 생성 옵션

LVM 상태 확인

  1. PV 상태 확인
  2. pvdisplay
  3. VG 상태 확인
  4. vgdisplay
  5. LV 상태 확인
  6. lvdisplay

주의사항

  • 축소 작업 시 데이터 손실 가능성이 있으므로 꼭 백업을 수행하세요.
  • LVM은 강력한 도구이지만 잘못된 명령 사용은 데이터 손실로 이어질 수 있습니다. 신중히 작업하세요.