vdo (중복제거 및 압축)와 lvm 디바이스를 구성하는 방법에 대한 post
RHEL / Oracle / Alma Linux에도 동일 적용됨.
목차
Rocky Linux 8에서 구성
1) 블럭디바이스 /dev/sdb / 100G 할당
2) vdo 패키지 설치 및 서비스 start & on
# dnf install -y kmod-kvdo vdo
# systemctl enable --now vdo
3) 리부팅
# reboot
4) vdo 장치 생성 및 확인 (여기선 300G로 Assign)
# vdo create --name=vdo1 --device=/dev/sdb --vdoLogicalSize=300G
# ls -la /dev/mapper/vdo1
# vdostats --hu
# vdostats --verbose /dev/mapper/vdo1 | grep -B6 'saving percent'
5) lvm 및 파일시스템 생성
# pvcreate /dev/mapper/vdo1
# vgcreate vg01 /dev/mapper/vdo1
# lvcreate -l 100%FREE -n lv01 vg01
# mkfs.xfs -K /dev/vg01/lv01
6) 마운트
# echo '/dev/vg01/lv01 /home xfs defaults 0 0' >> /etc/fstab
# mount -a
7) 확인
# df -h | grep home
/dev/mapper/vg01-lv01 300G 2.2G 298G 1% /home
# vdostats --hu
Device Size Used Available Use% Space saving%
/dev/mapper/vdo1 100.0G 4.1G 95.9G 4% 99%
- RHEL 8 VDO 문서 - Maintaining VDO on RHEL 8
Rocky Linux 9에서 구성
9 버전은 vdo 구성 방법이 8과 조금 다르다.
vdo 서비스 데몬과 vdo 명령이 별도로 없고, lv 생성 시 vdo를 만들고 vdo 서비스데몬 없이 동작한다.
1) 블럭디바이스 /dev/sdb / 100G 할당
2) vdo 패키지 설치 및 kmod 로딩
# dnf install -y kmod-kvdo vdo
# modprobe kvdo
3) pv 및 vg 생성
# pvcreate /dev/sdb
# vgcreate vg01 /dev/sdb
4) lvm with vdo 생성
# lvcreate -l 100%FREE -n lv01 --type vdo --virtualsize 300G vg01
5) 나머지 과정은 동일
6) 만약 dedup이나 compression을 disable 시키려면
# lvchange --compression y|n vg-name/vdopoolname
# lvchange --deduplication y|n vg-name/vdopoolname
- RHEL 9 VDO 문서 : Deduplicating and compressing logical volumes on RHEL 9
테스트
# df -h | grep home
/dev/mapper/vg01-lv01 300G 2.2G 298G 1% /home
# mount /dev/sr0 /mnt
# mkdir /home/test1 ; mkdir /home/test2
# cp -rv /mnt /home/test1/
# cp -rv /mnt /home/test2/ # --> 동일 데이터를 vdo 블럭에 다시 한번 copy
# df -h | grep home
/dev/mapper/vg01-lv01 300G 24G 277G 8% /home # --> 두 벌의 동일 데이터 저장으로 24G 용량을 사용 중으로 확인됨
# vdostats --hu
Device Size Used Available Use% Space saving%
/dev/mapper/vdo1 100.0G 14.5G 85.5G 14% 50%
# --> 실제 저장된 데이터는 중복제거율로 인해 50%의 데이터만 차지 (Space saving%). 즉, 두 번째 copy 데이터는 100% 중복 제거됨
VDO Disk with LVM