운영중인 kvm qcow2 이미지 최대 축소 하기

| 2019년 3월 15일 | 0 Comments

kvm을 이용하여 가상 서버를 운영하는 경우 대부분 qcow2 이미지 형식으로 운영을 많이 합니다.

qcow2 이미지의 특징은 정해진 이미지 사이즈에서 사용하는 양만큼만 디스크에 할당을 해서 사용을 하는데 버그중에 사용하는 양이 늘었다가 줄어들었을때 호스트 서버에서 확인시 용량이 줄어들지 않는 문제점이 있습니다.

이럴 경우엔 이미지를 마운트 하여 더미 파일 생성후 파티션 100% 사용양으로 만들고 파일을 삭제후 convert 작업을 하면 용량이 줄어드는걸 확인할수 있습니다.

 


  • 가상 이미지 용량 확인

root@test:~## ls
Windows_2016_STD

root@test:~## ll -h Windows_2016_STD 
-rw-r--r-- 1 dicaniu dicaniu 28G Mar 15 10:16 Windows_2016_STD

  • 더미 파일 생성

root@test:~## dd if=/dev/zero of=./erase count=4 bs=1G
4+0 records in
4+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 2.52047 s, 1.7 GB/s

  • 마운트 & 이미지내에 더미 파일 생성

root@test:~## guestfish --rw -a Windows_2016_STD 

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

Type: 'help' for help on commands
      'man' to read the manual
      'quit' to quit the shell

> run
> list-filesystems 
/dev/sda1: ntfs
/dev/sda2: ntfs
> mount /dev/sda2 /
> ls /
$Recycle.Bin
BOOTNXT
Documents and Settings
Logs
PerfLogs
Program Files
Program Files (x86)
ProgramData
Recovery
System Volume Information
Users
Windows
bootmgr
hello2.txt
pagefile.sys
> df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/root        4128448   530532   3388204  14% /
tmpfs              96136       96     96040   1% /run
/dev              236944        0    236944   0% /dev
shmfs             240332        0    240332   0% /dev/shm
/dev/sda2       51914748 17124192  34790556  33% /sysroot

> upload erase /erase
 100% [####################################################################################################################################################################################################] 00:00
> dd /erase /erase2
> dd /erase /erase3
> dd /erase /erase4
> dd /erase /erase5
> dd /erase /erase6
> dd /erase /erase7
> dd /erase /erase8
> dd /erase /erase9
libguestfs: error: dd: /erase: /erase9: dd: error writing '/sysroot/erase9': No space left on device
1208+0 records in
1207+0 records out
1265774592 bytes (1.3 GB, 1.2 GiB) copied, 12.8447 s, 98.5 MB/s
> df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/root        4128448   530532   3388204  14% /
tmpfs              96136       96     96040   1% /run
/dev              236944        0    236944   0% /dev
shmfs             240332        0    240332   0% /dev/shm
/dev/sda2       51914748 51914748         0 100% /sysroot

> ls /
$Recycle.Bin
BOOTNXT
Documents and Settings
Logs
PerfLogs
Program Files
Program Files (x86)
ProgramData
Recovery
System Volume Information
Users
Windows
bootmgr
erase
erase2
erase3
erase4
erase5
erase6
erase7
erase8
erase9
hello2.txt
pagefile.sys
> rm-rf /erase
> rm-rf /erase2
> rm-rf /erase3 
> rm-rf /erase4
> rm-rf /erase5
> rm-rf /erase6 
> rm-rf /erase7
> rm-rf /erase8
> rm-rf /erase9
> df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/root        4128448   530532   3388204  14% /
tmpfs              96136       96     96040   1% /run
/dev              236944        0    236944   0% /dev
shmfs             240332        0    240332   0% /dev/shm
/dev/sda2       51914748 17124196  34790552  33% /sysroot

> ls /
$Recycle.Bin
BOOTNXT
Documents and Settings
Logs
PerfLogs
Program Files
Program Files (x86)
ProgramData
Recovery
System Volume Information
Users
Windows
bootmgr
hello2.txt
pagefile.sys
> quit
  • convert 작업 & 줄어든 용량 확인

root@test:~## qemu-img convert -c -p Windows_2016_STD -O qcow2 Windows_2016_STD.qcow2
    (100.00/100%)

root@test:~## ll -h Windows_2016_STD.qcow2
-rw-r--r-- 1 root root 7.8G Mar 15 10:39 Windows_2016_STD.qcow2

Category: 가상화/클라우드

장영호

About the Author ()