Ceph qcow2 실제 디스크 사용량으로 변환 (zero-fill)

리눅스/Ceph|2017. 7. 7. 11:14
반응형
qcow2 이미지는 동적이미지로 할당된 이미지사이즈에서 실제 디스크 사용량만큼 증가하게 되는데....일정수치만큼 증가후에 실데이타를 삭제하게 되었을경우 비어있는(지워버린) 데이타를 감지하지 못합니다.
이럴경우 비어있는(zero area or zero-fill) 데이터를 삭제하여 이미지 크기를 실싸이즈로 변환해주는 방법입니다.


VM 실제 사용용량
[root@CHONNOM ~]# df -Th
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/vda1      ext3    99G   23G   71G  25% /
tmpfs          tmpfs  499M     0  499M   0% /dev/shm


HOST 내에서 확인해보는 디스크사용량
# qemu-img info 192.168.30.193.qcow2 
image: 192.168.30.193.qcow2
file format: qcow2
virtual size: 100G (107374182400 bytes)
disk size: 41G
cluster_size: 65536
==>> VM내에서 사용되고 있는 디스크량(23G)과 HOST에서 확인하는 디스크 싸이즈 차이남!


ZERO AREA 삭제방법
방법1) VM에서 남은공간을 zero 파일로 만들고 삭제후 컨버팅
VM
# dd if=/dev/zero of=file.zeros
dd: writing to `file.zeros': 장치에 남은 공간이 없음
158729705+0 records in
158729704+0 records out
81269608448 bytes (81 GB) copied, 735.199 s, 111 MB/s
# rm -rf file.zeros
# shutdown -h now

HOST
# qemu-img convert 192.168.30.193.qcow2 -O qcow2 convert_192.168.30.193.qcow2
# qemu-img info convert_192.168.30.193.qcow2 
image: convert_192.168.30.193.qcow2
file format: qcow2
virtual size: 100G (107374182400 bytes)
disk size: 23G
cluster_size: 65536
# rm -rf 192.168.30.193.qcow2
# mv convert_192.168.30.193.qcow2 192.168.30.193.qcow2
qemu 시작


방법2) 압축옵션으로 컨버팅
HOST
# qemu-img convert -c 192.168.30.193_7250_vm04020.qcow2 -O qcow2 chk.qcow2
단점) -c 옵션없이 convert 할때에 비해 시간이 4~5배 오래걸림
장점) 좀더 확인해봐야되나....작업시 시스템 로드는 반으로 줄어듬

# qemu-img info chk.qcow2 
image: chk.qcow2
file format: qcow2
virtual size: 100G (107374182400 bytes)
disk size: 13G   -->> 원래싸이즈보다도 줄어듬
cluster_size: 65536


※ qemu-img convert
'-c' indicates that target image must be compressed (qcow format only
'-S' indicates the consecutive number of bytes that must contain only zeros
       for qemu-img to create a sparse image during conversion


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

반응형

댓글()