13.2. 명령줄 인터페이스를 사용하여 가상 머신 스냅샷 생성
VM(가상 머신)의 상태를 스냅샷에 저장하려면 virsh snapshot-create-as
명령을 사용하면 됩니다.
사전 요구 사항
- 호스트가 RHEL 9.4 이상을 사용하고 있습니다.
VM은 파일 기반 스토리지를 사용합니다. 이 경우 있는지 확인하려면 다음 명령을 사용하고
disk
장치의 경우disk type
을file
로 표시하십시오.# virsh dumpxml <vm-name> | grep "disk type" <disk type='file' device='disk'> <disk type='file' device='cdrom'>
실행 중인 VM의 메모리가 포함된 VM 스냅샷을 생성하려면 VM의 메모리를 저장하기에 충분한 디스크 공간이 있어야 합니다.
- VM의 메모리를 저장하기 위한 최소 권장 공간은 VM의 할당된 RAM과 동일합니다. 예를 들어 32GB RAM이 있는 VM의 메모리를 저장하려면 최대 32GB의 디스크 공간이 필요합니다.
- VM이 I/O 로드가 많은 경우 상당한 추가 디스크 공간이 필요할 수 있습니다.
- VM에 VFIO 패스스루 장치를 할당한 경우 추가 디스크 공간이 필요할 수 있습니다.
VM을 일시 중지하지 않고 스냅샷을 생성하는 경우 추가 디스크 공간이 필요할 수 있습니다.
주의Red Hat은 워크로드가 매우 크거나 VFIO 패스스루 장치를 사용하는 실행 중인 VM의 메모리를 저장하지 않는 것이 좋습니다. 이러한 VM의 메모리를 저장하면 호스트 디스크를 채우고 시스템의 성능이 저하될 수 있습니다. 대신 이러한 VM에 대한 메모리 없이 스냅샷을 생성하는 것이 좋습니다.
또한 일부 VFIO 장치가 메모리로 스냅샷을 생성할 수 있는 것은 아닙니다. 현재 메모리로 스냅샷을 생성하면 연결된 VFIO 장치가 마이그레이션 기능이 활성화된 Mellanox VF인 경우에만 올바르게 작동합니다.
프로세스
필수 매개 변수를 사용하여 VM 스냅샷을 생성하려면
virsh snapshot-create-as
명령을 사용합니다.# virsh snapshot-create-as <vm-name> <snapshot-name> <optional-description> <additional-parameters>
종료 VM의 스냅샷을 생성하려면
--disk-only
매개변수를 사용합니다. 예를 들어 다음 명령은 shut-downTestguest1
VM의 현재 disk-state에서Snapshot1
을 생성합니다.# virsh snapshot-create-as Testguest1 Snapshot1 --disk-only Domain snapshot Snapshot1 created.
실행 중인 VM의 disk-state를 저장하는 스냅샷을 만들려면
--disk-only --quiesce
매개변수를 사용합니다. 예를 들어 다음 명령은 설명clean system install
을 사용하여 실행 중인Testguest2
VM의 현재 디스크 상태에서Snapshot2
를 생성합니다.# virsh snapshot-create-as Testguest2 Snapshot2 "clean system install" --disk-only --quiesce Domain snapshot Snapshot2 created.
실행 중인 VM을 일시 중지하고 디스크 상태 및 메모리를 저장하는 스냅샷을 생성하려면
--memspec
매개변수를 사용합니다. 예를 들어 다음 명령은Testguest3
VM을 일시 중지하고 VM의 현재 디스크 및 메모리 상태에서Snapshot3
을 생성합니다. VM 메모리는/var/lib/libvirt/images/saved_memory.img
파일에 저장됩니다. 스냅샷이 완료되면 VM이 작업을 자동으로 다시 시작합니다.# virsh snapshot-create-as Testguest3 Snapshot3 --memspec /var/lib/libvirt/images/saved_memory.img Domain snapshot Snapshot3 created.
스냅샷 프로세스 중에 VM을 일시 중지하면 다운 타임이 발생하지만 특히 로드가 많은 VM의 경우 실행 중인 VM의
실시간
스냅샷을 생성하는 것보다 더 안정적으로 작동할 수 있습니다.실행 중인 VM과 라이브 메모리의 disk-state를 저장하는 스냅샷을 생성하려면
--live --memspec
매개변수를 사용합니다. 예를 들어 다음 명령은 실행 중인Testguest4
VM의 현재 디스크 및 메모리 상태에서Snapshot4
를 생성하고 메모리 상태를/var/lib/libvirt/images/saved_memory2.img
파일에 저장합니다.# virsh snapshot-create-as Testguest4 Snapshot4 --live --memspec /var/lib/libvirt/images/saved_memory2.img Domain snapshot Snapshot4 created.
VM의 메모리를 스냅샷에 저장하면 실행 중인 프로세스의 상태가 VM의 게스트 운영 체제에 저장됩니다. 그러나 이러한 스냅샷으로 되돌리면 네트워크 연결 손실 또는 동기화되지 않은 시스템 시간 등 다양한 요인으로 인해 프로세스가 실패할 수 있습니다.
검증
지정된 VM과 연결된 스냅샷을 나열합니다.
# virsh snapshot-list <Testguest1> Name Creation Time State -------------------------------------------------------------- Snapshot1 2024-01-30 18:34:58 +0100 shutoff
스냅샷이 external 로 생성되었는지 확인합니다.
# virsh snapshot-dumpxml <Testguest1> <Snapshot1> | grep external <disk name='vda' snapshot='external' type='file'>
이 명령의 출력에
snapshot='external'
이 포함된 경우 스냅샷은 외부이므로 Red Hat에서 완전히 지원합니다.
추가 리소스
- 스냅샷 메타데이터에 대한 업스트림 libvirt 정보
-
시스템의
virsh
도움말 페이지