21.14. virt-sparsify: 빈 디스크 공간 회수
virt-sparsify 명령줄 툴을 사용하여 가상 머신 디스크(또는 디스크 이미지) 스파스를 만들 수 있습니다. 이를 씬 프로비저닝이라고도 합니다. 디스크 이미지의 여유 디스크 공간이 호스트의 여유 공간으로 변환됩니다.
virt-sparsify 명령은 ext2, ext3, ext4, btrfs, NTFS와 같은 대부분의 파일 시스템에서 작동할 수 있습니다. 또한 LVM 물리 볼륨에서 작동합니다. virt-sparsify 는 가상 머신 디스크 이미지뿐만 아니라 모든 디스크 이미지에서 작동할 수 있습니다.
주의
라이브 가상 머신에서 virt-sparsify 를 사용하거나 다른 디스크 편집 툴과 동시에 사용하면 디스크 손상이 발생할 수 있습니다. 이 명령을 사용하려면 가상 머신을 종료해야 합니다. 또한 디스크 이미지를 동시에 편집해서는 안 됩니다.
명령을 사용하여 일부 디스크 형식 간에 변환할 수도 있습니다. 예를 들어 virt-sparsify 는 원시 디스크 이미지를 씬 프로비저닝된 qcow2 이미지로 변환할 수 있습니다.
참고
가상 머신에 여러 개의 디스크가 있고 볼륨 관리를 사용하는 경우 virt-sparsify 가 작동하지만 제대로 작동하지 않습니다.
입력이 raw 이면 기본 출력은 raw sparse 입니다. 스파스를 이해하는 툴을 사용하여 출력 이미지의 크기를 확인해야 합니다.
$ ls -lh test1.img -rw-rw-r--. 1 rjones rjones 100M Aug 8 08:08 test1.img $ du -sh test1.img 3.6M test1.img
ls 명령은 100M로 된 이미지 크기를 보여줍니다. 그러나 du 명령은 3.6M이 될 이미지 크기를 올바르게 표시합니다.
중요한 제한 사항
다음은 중요한 제한 목록입니다.
- virt-sparsify 를 사용하기 전에 가상 머신을 종료해야 합니다.
- 심각한 경우 virt-sparsify 는 소스 디스크 이미지의 가상 크기보다 두 배가 필요할 수 있습니다. 임시 복사용이고 하나는 대상 이미지용입니다.
--in-place
옵션을 사용하는 경우 대량의 임시 공간이 필요하지 않습니다. - virt-sparsify 는 디스크 이미지의 크기를 조정하는 데 사용할 수 없습니다. 디스크 이미지의 크기를 조정하려면 virt-resize. virt-resize 에 대한 자세한 내용은 21.8절. “virt-resize: 게스트 가상 머신 오프라인 크기 조정” 을 참조하십시오.
- 암호화된 디스크를 확장할 수 없기 때문에 virt-sparsify 는 암호화된 디스크에서 작동하지 않습니다.
- virt-sparsify 는 파티션 간의 공간을 강화할 수 없습니다. 이 공간은 종종 부트로더와 같은 중요한 항목에 사용되므로 실제로는 사용되지 않는 공간이 아닙니다.
복사
모드에서 qcow2 내부 스냅샷은 대상 이미지에 복사되지 않습니다.
예
virt-sparsify
를 설치하려면 다음 명령 중 하나를 실행합니다.
# yum install /usr/bin/virt-sparsify
또는
# yum install libguestfs-tools-c
디스크를 확장하려면 다음을 수행합니다.
# virt-sparsify /dev/sda1 /dev/device
/dev/sda1
의 콘텐츠를 /dev/device
에 복사하여 출력을 스파스로 만듭니다. /dev/device
가 이미 있는 경우 덮어씁니다. /dev/sda1
의 형식이 탐지되어 /dev/device
의 형식으로 사용됩니다.
형식 간에 변환하려면 다음을 수행합니다.
# virt-sparsify disk.raw --convert qcow2 disk.qcow2
0으로 설정하면 소스 디스크 이미지 내에서 찾을 수 있는 모든 파일 시스템에서 여유 공간이 확보됩니다.
특정 파일 시스템에서 0으로 여유 공간을 덮어쓰지 않도록 하려면 다음을 수행합니다.
# virt-sparsify --ignore /dev/device /dev/sda1 /dev/device
0이 있는 파일 시스템의 여유 공간을 덮어쓰지 않고 디스크 이미지의 모든 파일 시스템에서 스파인 디스크 이미지를 생성합니다.
임시 복사본을 생성하지 않고 디스크 이미지를 스파스로 만들려면 다음을 수행합니다.
# virt-sparsify --in-place disk.img
지정된 디스크 이미지를 스파스로 만들고 이미지 파일을 덮어씁니다.
virt-sparsify 옵션
다음 명령 옵션을 virt-sparsify 와 함께 사용할 수 있습니다.
명령 | 설명 | 예제 |
---|---|---|
--help | 특정 명령 또는 virt-sparsify 유틸리티에 대한 간략한 도움말 항목을 표시합니다. 추가 도움말은 virt-sparsify man 페이지를 참조하십시오. | virt-sparsify --help |
--check-tmpdir ignore |continue |warn |fail | tmpdir 에 작업을 완료하기에 충분한 공간이 있는지 추정합니다. 지정된 옵션에서 작업을 완료하기에 충분한 공간이 없는 경우 동작을 결정합니다.
--in-place 옵션과 함께 사용할 수 없습니다. |
virt-sparsify --check-tmpdir ignore
/dev/sda1 /dev/device
virt-sparsify --check-tmpdir continue
/dev/sda1 /dev/device
virt-sparsify --check-tmpdir warn
/dev/sda1 /dev/device
virt-sparsify --check-tmpdir fail
/dev/sda1 /dev/device
|
--compress | 출력 파일을 압축합니다. 이는 출력 형식이 qcow2인 경우에만 작동합니다. 이 옵션은 --in-place 옵션과 함께 사용할 수 없습니다. | virt-sparsify --compress /dev/sda1 /dev/device |
--convert |
지정된 형식을 사용하여 스파스 이미지를 생성합니다. 형식을 지정하지 않으면 입력 형식이 사용됩니다.
다음 출력 형식이 지원되며, raw, qcow, vdi로 알려져 있습니다.
QEMU 에뮬레이터에서 지원하는 모든 형식을 사용할 수 있습니다.
--convert 옵션을 사용하는 것이 좋습니다. 이렇게 하면 virt-sparsify 가 입력 형식을 추측할 필요가 없습니다.
이 옵션은
--in-place 옵션과 함께 사용할 수 없습니다.
|
virt-sparsify --convert raw
/dev/sda1 /dev/device
virt-sparsify --convert qcow2
/dev/sda1 /dev/device
virt-sparsify --convert other_format indisk outdisk
|
--format | 입력 디스크 이미지의 형식을 지정합니다. 지정하지 않으면 이미지에서 형식이 감지됩니다. 신뢰할 수 없는 원시 형식 게스트 디스크 이미지로 작업할 때는 형식을 지정해야 합니다. |
virt-sparsify --format raw
/dev/sda1 /dev/device
virt-sparsify --format qcow2
/dev/sda1 /dev/device
|
--ignore |
지정된 파일 시스템 또는 볼륨 그룹을 무시합니다.
파일 시스템을 지정하고
--in-place 옵션을 지정하지 않으면 파일 시스템의 사용 가능한 공간이 0되지 않습니다. 그러나 기존 제로 블록은 스파르화되어 있습니다. --in-place 옵션을 지정하면 파일 시스템이 완전히 무시됩니다.
볼륨 그룹을 지정하면 볼륨 그룹이 무시됩니다. 볼륨 그룹 이름은 /dev/ 접두사 없이 사용해야 합니다. 예를 들면 --ignorevirtualization_foo입니다.
--ignore 옵션은 명령에 여러 번 포함될 수 있습니다.
|
virt-sparsify --ignore filesystem1
/dev/sda1 /dev/device
virt-sparsify --ignore volume_group
/dev/sda1 /dev/device
|
--in-place |
임시 복사본을 만드는 대신 이미지 스파스를 위치에 만듭니다. 인플레이션 스파화는 스파저션을 복사하는 것보다 더 효율적이지만 스파재를 복사하는 것과는 상당히 많은 디스크 공간을 복구할 수 없습니다. 내부 스파화는 삭제 (Fours or unmap) 지원을 사용하여 작동합니다.
인플레이션 스파 기능을 사용하려면 제대로 작동하는 디스크 이미지를 지정합니다.
인플레이스 스파 기능을 지정할 때 다음 옵션을 사용할 수 없습니다.
| virt-sparsify --in-place disk.img |
-x | libguestfs API 호출 추적을 활성화합니다. | virt-sparsify -x filesystem1 /dev/sda1 /dev/device |
추가 옵션을 포함한 자세한 내용은 libguestfs.org 를 참조하십시오.