QCOW2 이미지를 사용하여 여러 KVM VM을 만들었습니다.
각 VM에는 자체 qcow2 파일이 있으며 백업 파일을 기반으로 하지 않습니다.
내 질문은 특히 실행 중인 VM의 QCow2 이미지 스냅샷과 관련이 있습니다.
실행 중인 VM에서 다음 명령을 실행하는 경우:
qemu-img snapshot -c backup /vms/vm10001.qcow2
위 명령이 실행 중인 VM 파일 시스템에 해를 끼치나요?
내 의도는 다음을 사용하여 스냅샷을 qcow2 이미지로 변환하는 것입니다.
qemu-img convert -s backup /vms/vm10001.qcow2 /vms/output.qcow2
"virsh" 명령을 사용할 수 없어서 qemu-img로 작업을 수행하는 방법을 찾으려고 노력 중입니다.
답변 / 업데이트 1:
네, 여러 테스트 VM에서 이것을 테스트했는데 위의 내용은 불가능합니다. qemu-img snapshot
일시 중지하지 않고는 라이브 VM에서 실행할 수 없습니다 .
RHEL 기본 노드에서 이를 수행하는 유일한 방법은 다음을 사용하는 것입니다.
virsh snapshot-create <dom>
위의 내용은 VM 상태를 저장한 다음 내부적으로 호출합니다 qemu-img snapshot -c
. 그러나 두 번째 질문이 발생하는 데 시간이 좀 걸릴 수 있습니다.
질문 2:
virsh snapshot-create <dom> --disk-only --atomic
qemu-kvm은 매우 오래되었기 때문에 RHEL 유형(RHEL 7 포함)인 기본 노드에서는 지원되지 않습니다.
따라서 유일한 옵션은 virsh snapshot-create <dom>
다소 느린 것을 사용하는 것입니다.
다음을 수행하는 것이 가능합니까?
virsh suspend <dom>
qemu-img snapshot -c backup /vms/<dom>.qcow2
virsh resume <dom>
위 작업은 snapshot-create보다 훨씬 빠른 것 같습니다.
답변 / 업데이트 2:
위의 질문 2도 가능하지 않습니다. 많은 연구를 한 후에 나는 같은 결론을 내 렸습니다.
질문 3:
RHEL 6/7 기본 노드에 Qcow2 디스크가 있는 온라인 VM에 대한 스냅샷을 생성한 다음 나중에 복원하기 위해 스냅샷을 백업할 수 있는 방법이 있습니까?
답변1
이것은 정확한 대답은 아니지만 길을 보여줄 것입니다.
우리는 오랫동안 Linux KVM을 사용하고 있습니다. 예전에는 qcow2가 스냅샷을 지원하지 않았습니다. 첫 번째 KVM 호스트에서는 LVM 스냅샷을 사용하고 싶지 않았기 때문에 라이브 백업을 수행할 수 없었습니다.
그러다가 우리는 발견했습니다Linux 핫 복사 도구.
이 도구를 사용하여; 전체 호스트 파일 시스템을 동결하고 사용자 정의 백업 스크립트를 사용하여 qcow를 외부 디스크에 복사할 수 있었습니다.
우리의 백업 스크립트는 다음과 같습니다.
# Mount Usb
mount /dev/sdb1 /USBDISK
# Mount file system as ro to temp folder
hcp --read-only --mount-point /SNAPSHOT /dev/md1
# Copy files out
cp /SNAPSHOT/*.qcow2 /USBDISK
# Stop Hot Copy
hcp --remove /dev/hcp1
# Remove Usb
umount /USBDISK
답변2
KVM에 대한 내 경험은 실제로 매우 제한적이지만 매우 유사한 상황에 있으므로 이것이 나에게 도움이 되었습니다.
먼저 MACHINE이라는 VM에 대한 구성을 백업합니다.
# virsh dumpxml MACHINE > /path/to/configfile.xml
그런 다음 새로 생성된 시스템의 손상을 방지하기 위해 MACHINE이라는 VM을 일시 중단합니다.
# virsh suspend MACHINE
다음으로 qemu-img 명령을 사용하여 MACHINE이라는 VM에서 MACHINE-BAK.qcow2라는 스냅샷을 생성합니다. 이는 일반적으로 형식 간 변환에 사용되는 경우에도 마찬가지입니다.
# qemu-img convert -O qcow2 /path/to/MACHINE.qcow2 /path/to/MACHINE-BAK.qcow2
다음으로 MACHINE이라는 원래 VM에 대한 정상적인 작동을 재개합니다.
# virsh resume MACHINE
crontab 자동화를 통해 실행되는 스크립트에 이러한 간단한 단계를 적용하면 가동 중지 시간을 최소화하면서 실행 중인 VM의 주기적인 전체 백업을 얻을 수 있습니다(원래 VM의 크기에 따라 다름. 위에서 설명한 것처럼 복제하는 동안 원본 VM)