如何在Linux KVM VM /域中创建快照
时间:2020-01-09 14:17:01 来源:igfitidea点击:
问题描述:
在升级虚拟机之前,我想做一个快照。
如果升级出现问题,我想将域/VM恢复为快照。
有运行虚拟机(VM)快照的命令吗?
qemu-kvm支持实时快照创建吗?
回答:
是的,KVM(内核虚拟机)确实支持实时和正常快照。
快照必须基于qcow2类型的磁盘。
您也可以从参数创建快照(磁盘和RAM)。
仅在KVM VM主机服务器上支持快照。
您不能在KVM VM中创建快照。
您需要使用以下任一命令:
- qemu-img命令QEMU磁盘镜像实用程序。切勿使用qemu-img修改正在运行的虚拟机或任何其他进程正在使用的镜像。机器必须处于关机状态才能使用qemu-img命令。
- virsh命令virsh程序是用于管理包括KVM在内的virsh来宾域的主要界面。在本教程中,我们将使用virsh命令。
在Linux中为KVM VM创建快照的语法
virsh命令可以使用virsh snapshot-create从XML文件创建快照,或者直接使用virsh snapshot-create-as从一组选项中创建快照。
在Linux中为KVM vm制作快照的语法如下:
virsh snapshot-create-as --domain {VM-NAME} --name "{SNAPSHOT-NAME}"
其中:
- `--domain {VM-NAME}:域名/VM名称/id/uuid--名称" {SNAPSHOT-NAME}"":快照名称
例子
从主机os运行VMS/guests/domain的第一个列表:
# virsh list
输出示例:
Id Name State --------------------------------------------------- 1 freebsd running 2 openbsd running 3 centos7 running
要查看名为openbsd的域的现有快照(如果有),请执行:
# virsh snapshot-list --domain openbsd
输出示例:
Name Creation Time State ----------------------------------------------------------- 3sep2015 2015-09-02 13:38:18 -0500 shutoff 3sep2015u1 2015-09-02 15:04:50 -0500 shutoff
让我们为freebsd域创建一个快照。
首先,确保使用qcow2磁盘的freebsd域:
# virsh dumpxml freebsd | grep -i qemu
输出示例:
<driver name='qemu' type='qcow2'/> <driver name='qemu' type='raw'/>
要为名为freebsd的域/VM创建快照,请执行:
# virsh snapshot-create-as --domain freebsd \ --name "5sep2015s0" \ --description "Snapshot before upgrading to FreeBSD 11" \ --live
输出示例:
Domain snapshot 5sep2015s0 created
您只是从正在运行的来宾那里拍摄了快照。
这仅捕获磁盘的状态,而不捕获内存的状态。
要为名为freebsd的VM Guest拍摄新快照,该快照当前未运行:
# virsh shutdown freebsd # virsh snapshot-create-as --domain freebsd \ --name "5Sep2015_S1" \ --description "My First Snapshpot" # virsh start freebsd
要列出名为freebsd的域的快照,请执行:
# virsh snapshot-list --domain freebsd
或对于ubuntu-box2 vm:
$ virsh snapshot-list --domain ubuntu-box2
如何在Linux上使用virsh KVM列出快照
要查看名为freebsd的域的详细快照信息,请执行:
# virsh snapshot-info --domain freebsd --snapshotname 5Sep2015_S1
使用virsh创建和管理KVM快照
如何使用/还原/还原快照?
要将域恢复为快照,请执行:
# virsh shutdown --domain freebsd # virsh snapshot-revert --domain freebsd --snapshotname 5Sep2015_S1 --running
如何删除域快照?
使用以下语法:
# virsh snapshot-delete --domain freebsd --snapshotname 5Sep2015_S2
如何捕获磁盘状态而不是虚拟机状态
传递" --disk-only",如下所示:
# virsh snapshot-create-as --name "snap01" \ --description "RHEL 7.6 snapshot" \ --disk-only \ --live --domain rhel7-vm2
如何获取有关快照创建为命令的帮助
运行:
virsh help snapshot-create-as
输出示例:
OPTIONS [--domain] <string> domain name, id or uuid --name <string> name of snapshot --description <string> description of snapshot --print-xml print XML document rather than create --no-metadata take snapshot but create no metadata --halt halt domain after snapshot is created --disk-only capture disk state but not vm state --reuse-external reuse any existing external files --quiesce quiesce guest's file systems --atomic require atomic operation --live take a live snapshot --memspec <string> memory attributes: [file=]name[,snapshot=type] [--diskspec] <string> disk attributes: disk[,snapshot=type][,driver=type][,file=name]