20.13.2. 이미지를 저장하여 백업 체인 단축
virsh blockpull 는 다음 애플리케이션에서 사용할 수 있습니다.
- 백업 이미지 체인의 데이터로 채워 이미지를 병합합니다. 이렇게 하면 이미지 파일 자체가 더 이상 백업 이미지에 의존하지 않고 다음과 같이 표시됩니다.
- 이전: base.img 활성화
- after: guest가 base.img를 더 이상 사용하지 않고 Active에는 모든 데이터가 포함됩니다.
- 백업 이미지 체인의 일부를 병합합니다. 이는 스냅샷을 최상위 이미지로 병합하는 데 사용할 수 있으며 다음과 같습니다.
- 이전: 기본 sn1 octetssn2 활성
- 뒤: base.img가 활성화됨. 이제 active 에는 sn1 및 sn2 의 모든 데이터가 포함되어 있으며 게스트에서 sn1 또는 sn2를 사용하지 않습니다.
- 디스크 이미지를 호스트의 새 파일 시스템으로 이동합니다. 게스트가 실행되는 동안 이미지 파일을 이동할 수 있으며 다음과 같이 표시됩니다.
- 이전 (원본 이미지 파일):
/fs1/base.vm.img
- 이후:
/fs2/active.vm.qcow2
는 이제 새 파일 시스템이며/fs1/base.vm.img
가 더 이상 사용되지 않습니다.
- 복사 후 스토리지 마이그레이션을 통해 실시간 마이그레이션에 유용합니다. 디스크 이미지는 실시간 마이그레이션이 완료된 후 소스 호스트에서 대상 호스트로 복사됩니다.이 문제는 다음과 같이 발생합니다.This is what happens: 이전:
/destination-host/base.vm.img
뒤:/destination-host/active.vm.qcow2
./source-host/base.vm.img
가 더 이상 사용되지 않습니다.
절차 20.2. 데이터를 병합하여 백업 체인을 줄이는 방법
- virsh blockpull 를 실행하기 전에 스냅샷을 만드는 것이 유용할 수 있습니다. 이렇게 하려면 virsh snapshot-create-as 명령을 사용합니다. 다음 예에서 guest1 을 게스트 가상 머신의 이름으로 바꾸고 snap1 을 스냅샷 이름으로 바꿉니다.
# virsh snapshot-create-as guest1 snap1
--disk-only
- 체인이 다음과 같은 경우: base snap1 octets snap2 active, 다음 명령을 입력하여 guest1 을 게스트 가상 머신의 이름으로, path1 을 디스크의 소스 경로로 바꿉니다(예:
/home/username/VirtualMachines/*
).# virsh blockpull guest1 path1
이 명령은 snap1 의 백업 파일을 snap2 에서 활성 상태로 가져옵니다. 기본 snap1은 활성 상태로 만듭니다. - virsh blockpull 가 완료되면 체인에서 추가 이미지를 만든 스냅샷의 libvirt 추적은 더 이상 유용하지 않습니다. 이 명령으로 오래된 스냅샷에서 추적을 삭제하고 guest1을 게스트 가상 머신 이름으로 교체하고 snap1을 스냅샷 이름으로 바꿉니다.
# virsh snapshot-delete guest1 snap1 --metadata
virsh blockpull 의 추가 애플리케이션은 다음과 같이 수행할 수 있습니다.
예 20.31. 단일 이미지를 병합하고 백업 이미지 체인의 데이터로 채우는 방법
다음 예제에서는 게스트 guest1 에 vda 가상 디스크를 병합하고 백업 이미지 체인의 데이터로 이미지를 채우며 채우기 작업이 완료될 때까지 대기합니다.
# virsh blockpull guest1 vda --wait
예 20.32. 백업 이미지 체인의 일부를 병합하는 방법
다음 예제에서는 /path/to/base.img 디스크 이미지를 기반으로 게스트 guest1 에서 vda 가상 디스크를 병합합니다.
# virsh blockpull guest1 vda /path/to/base.img --base
--wait
예 20.33. 디스크 이미지를 호스트의 새 파일 시스템으로 이동하는 방법
디스크 이미지를 호스트의 새 파일 시스템으로 이동하려면 다음 두 명령을 실행합니다. 각 명령에서 guest1 을 게스트 가상 머신의 이름으로 바꾸고 disk1 을 가상 디스크 이름으로 바꿉니다. XML 파일 이름 및 스냅샷의 위치 및 이름에 대한 경로를 변경합니다.
# virsh snapshot-create guest1 --xmlfile /path/to/snap1.xml --disk-only
# virsh blockpull guest1 disk1 --wait
예 20.34. 복사 후 스토리지 마이그레이션에서 실시간 마이그레이션을 사용하는 방법
post-copy 스토리지 마이그레이션을 통해 실시간 마이그레이션을 사용하려면 다음 명령을 입력합니다.
대상에 백업 파일을 호스트의 백업 파일 이름 및 위치로 교체한 다음 명령을 입력합니다.
# qemu-img create -f qcow2
-o
backing_file=/source-host/vm.img
/destination-host/vm.qcow2
소스에서 다음 명령을 입력하여 guest1 을 게스트 가상 머신 이름으로 교체합니다.
# virsh migrate guest1
대상에 guest1 을 게스트 가상 머신의 이름으로 바꾸고, disk1 을 가상 디스크 이름으로 바꿉니다.
# virsh blockpull guest1 disk1 --wait