[Linux] Logical Volume

조성열·2025년 9월 29일

Toss - Linux

목록 보기
7/15
post-thumbnail
일반적인 스토리지 관리 방식보다 유연한 스토리지 관리를 위해 사용한다.

구성

  • 물리볼륨 : 디스크 전체 또는 일부를 파티션으로 지정. 데이터 저장 영역, 논리 볼륨의 메타데이터 저장 영역으로 나눔.
  • 볼륨그룹: 1개 이상의 물리볼륨 집합
  • 논리볼륨: 생성시 볼륨 그룹을 지정하고, 최대 볼륨 그룹의 크기만큼 지정 가능하다. Thin Provisioning 형태로 생성시 볼륨 그룹보다 더 큰 사이즈로 생성 가능하다.

practice

  1. 1G 크기의 파티션을 3개 만들고 나머지 공간은 하나의 파티션으로 만드세요.(모두 primary)
  2. 모든 파티션을 물리볼륨으로 만드세요.
# history
pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3 # 물리 볼륨 생성

  1. 2개의 파티션을 묶어서 practice-vg 라는 볼륨그룹을 만드세요. 이때, PE사이즈는 2M로 합니다.
# history
vgcreate practice-vg /dev/sdb1 /dev/sdb2 -s 2M

  1. 생성한 볼륨 그룹에서 100M 크기의 논리볼륨을 생성하세요. 이름은 practice-lv 로 합니다.
# history
lvcreate -L 100M practice-vg -n practice-lv

  1. 논리볼륨의 파일시스템을 xfs로 만들고 /mnt/lvm-xfs 디렉토리에 영구마운트 설정하세요.
# history
mkfs.xfs /dev/practice-vg/practice-lv
echo "/dev/practice-vg/practice-lv /mnt/vm-xfs xfs defaults 0 0" >> /etc/fstab
lsblk

  1. 마운트 후에 해당 디렉토리에 현재 사용자 홈디렉토리에 있는 모든 파일을 복사하세요.
# history
su user
cp -a ~/ /mnt/lvm-xfs
su root

  1. dd 명령어를 이용해서 100M 크기의 파일을 생성해보세요.
# history
dd if=/dev/zero of=/mnt/lvm-xfs/size-test bs=1024k count=100
  1. 논리볼륨의 크기를 확인해보고 해당 논리볼륨의 크기를 1G 더 늘려주고 다시 size-test 파일을 생성해보세요. (확장 시 파일시스템까지 확장해야 합니다.)
# history
lvs
lvextend -L +1G /dev/practice-vg/practice-lv
xfs_growfs /mnt/lvm-xfs
df -h

  1. 다시 확장해서 논리볼륨 크기를 2.1G로 늘릴 수 있도록 볼륨그룹 및 논리볼륨을 확장하세요.
# history
vgextend practice-vg /dev/sdb3
lvextend -L 2.1G /dev/practice-vg/practice-lv
  1. 4번 파티션을 볼륨그룹에 추가합니다.
# history
vgextend practice-vg /dev/sdb4

  1. 1번 파티션을 제거할 수 있도록 해당 파티션의 데이터를 모두 옮기세요.
  2. 1번 파티션을 제거하고 물리볼륨을 삭제하세요.
  3. 논리볼륨의 상태를 확인해보고 파일들이 잘 저장되어 있는지 확인해보세요.
# history
pvmove /dev/sdb1
vgreduce practice-vg /dev/sdb1
pvremove /dev/sdb1
lvdisplay

profile
Blue Team

0개의 댓글