가상 머신에 쓰기가 어떻게 이루어지는지 이해하려고 합니다. 백업용으로 복사하면서 실행하는 것은 차단되지 않는 것 같습니다. 복사본에 수정된 파일(예: 시작 로그)이 포함되어 있습니까? 아니면 Windows와 같은 "섀도 복사본"에서 복사하는 것입니까?
예를 들어, 가상 머신이 켜져 있는 동안 복제를 시작하면 어떻게 되는지에 대한 반대 질문을 할 수 있습니다. 메커니즘이 비슷한 것 같아요. 복사하는 동안 변경사항이 있으면 복사된 파일도 변경됩니까? 내 현재 추측으로는 복사되지 않은 파일이 변경된 경우에만 발생한다는 것입니다. 이런 방식으로 복사된 VM을 테스트했는데 눈에 띄는 손상은 없었지만 다른 작업을 수행하기 위해 복사된 다른 파일에 의존하여 파일이 변경된 경우 파일이 손상될 수 있다고 상상할 수 있습니다.
따라서 피할 수 없는 질문은 가상 머신이 실행되는 동안 변경되지만 적극적으로 사용되지 않는 이러한 파일이 있습니까? apt Upgrade를 실행하는 것은 나쁜 생각이라고 생각할 수도 있지만, VM이 방금 켜져 있고 유휴 상태로 실행될 때 위험이 거의 없이 백업을 수행할 수 있는지 궁금합니다.
저는 virt-manager를 사용하고 있지만 VM 호스트 소프트웨어보다 이미지 파일 형식(qcow2 또는 raw)에 따라 대답이 더 많이 좌우되는 것 같습니다. 또한 qcow2가 이와 관련하여 원시 이미지에 비해 장점이나 단점이 있는지 알고 싶습니다.
답변1
일관되지 않은 파일 시스템 상태가 표시되지만 QCOW2 디스크 이미지를 사용하는 솔루션이 있습니다. qemu-ga
첫 번째 단계에서 디스크(일반적으로 사전 설치됨)를 정리하려면 게스트 운영 체제에서 QEMU 게스트 에이전트( ) 서비스를 실행합니다.
게스트 디스크를 정리하여 시작할 수 있습니다(선택 사항).
virsh domfstrim $vmname
백업 중 디스크 쓰기를 위해 임시 스냅샷이 생성됩니다.
virsh snapshot-create-as $vmname --no-metadata $snapname --disk-only --quiesce --atomic
를 사용할 수도 있습니다
--diskspec
. 바라보다man virsh
.백업용 원본 QCOW2 디스크 이미지를 복사합니다(쓰기는 임시 디스크 이미지 $snapname에 기록됩니다).
백업이 완료된 후 임시 디스크 이미지를 커밋합니다.
virsh blockcommit $vmname vda --wait --active --pivot --delete
또는
--delete
아직 구현되지 않았고 임시 디스크 이미지가 여전히 존재하는 경우입니다.virsh blockcommit $vmname vda --wait --active --pivot rm /var/lib/libvirt/images/<diskimage>.$snapname
저장 유형에 따라 교체하십시오
vda
.sda