如何在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]