일반적인 스토리지 관리 방식보다 유연한 스토리지 관리를 위해 사용한다.
구성
- 물리볼륨 : 디스크 전체 또는 일부를 파티션으로 지정. 데이터 저장 영역, 논리 볼륨의 메타데이터 저장 영역으로 나눔.
- 볼륨그룹: 1개 이상의 물리볼륨 집합
- 논리볼륨: 생성시 볼륨 그룹을 지정하고, 최대 볼륨 그룹의 크기만큼 지정 가능하다. Thin Provisioning 형태로 생성시 볼륨 그룹보다 더 큰 사이즈로 생성 가능하다.
practice
- 1G 크기의 파티션을 3개 만들고 나머지 공간은 하나의 파티션으로 만드세요.(모두 primary)
- 모든 파티션을 물리볼륨으로 만드세요.
pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3

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

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

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


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

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

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

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