Ceph qemu-nbd and zerofill 사용하고 다시 줄어든 용량 적용해주기

리눅스/Ceph|2017. 7. 7. 11:13
반응형
블록 스토리지를 사용하는 사람이 용량을 많이 사용했다 줄여도
백업은 최대로 사용했던 용량만큼 진행되게 됩니다.
고객이 왜이렇게 오래 걸리는지 문의를 해오면 해당내용 설명하고
고객 동의 얻고 서버에 로그인하여 아래처럼 최대 사용량을 조정해주는 방법이 있습니다.


동적으로 확장된 이미지 크기 변환 (zero-fill)

:: HOST 내에서 인식중인 디스크 크기확인 (동적으로 확장된 이미지)
qemu-img info disk
image: disk
file format: qcow2
virtual size: 160G (171798691840 bytes)
disk size: 7.2G
cluster_size: 65536
backing file: /var/lib/nova/instances/_base/xxxxxe63f446daf1f5522
Format specific information:
    compat: 1.1
    lazy refcounts: false
    corrupt: false

:: 이미지 마운트
# qemu-nbd -c /dev/nbd0 disk
kpartx  -a /dev/nbd0
mount /dev/mapper/nbd0p1 /mnt

:: 실제 사용중인 디스크 크기 (VM에서 인식되는)
df -Th |grep mnt
/dev/mapper/nbd0p1 ext4      7.8G  766M  6.6G  11% /mnt

dd if=/dev/zero of=/mnt/file.zeros
dd: `/mnt/file.zeros' 로 쓰는 중: 장치에 남은 공간이 없음
14606969+0 레코드 들어옴
14606968+0 레코드 나감
7478767616 바이트 (7.5 GB) 복사됨, 550.691 초, 13.6 MB/초

:: 삭제 & umount 
rm -rf /mnt/file.zero
umount  /mnt 
kpartx  -d /dev/nbd0
qemu-nbd -d /dev/nbd0
/dev/nbd0 disconnected

:: 이미지 convert
qemu-img convert  disk -O qcow2 disk_resize.qcow2
qemu-img info disk_resize.qcow2 
image: disk_resize.qcow2
file format: qcow2
virtual size: 160G (171798691840 bytes)
disk size: 832M
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    corrupt: false



[출처] https://chonnom.com/bbs/board.php?bo_table=B19&wr_id=813&sca=&sfl=wr_subject%7C%7Cwr_content&stx=zero&sop=and


반응형

댓글()