如何使用 virsh 命令创建、还原和删除 KVM 虚拟机快照
创始人
2024-03-01 22:53:20
0

在虚拟化平台上进行系统管理工作时,经常需要在开始重大操作比如部署补丁和代码前先设置一个虚拟机 快照 snapshot 。

虚拟机快照是特定时间点的虚拟机磁盘的副本。换句话说,快照保存了给定的时间点虚拟机的状态和数据。

我们可以在哪里使用虚拟机快照?

如果你在使用基于 KVM 的 虚拟机管理程序 ( hypervisor ) ,那么可以使用 virsh 命令获取虚拟机或域快照。快照在一种情况下变得非常有用,当你已经在虚拟机上安装或应用了最新的补丁,但是由于某些原因,虚拟机上的程序变得不稳定,开发团队想要还原所有的更改和补丁。如果你在应用补丁之前设置了虚拟机的快照,那么可以使用快照将虚拟机恢复到之前的状态。

**注意:**我们只能对磁盘格式为 Qcow2 的虚拟机的进行快照,并且 kvm 的 virsh 命令不支持 raw 磁盘格式,请使用以下命令将原始磁盘格式转换为 qcow2。

# qemu-img convert -f raw -O qcow2 image-name.img image-name.qcow2

创建 KVM 虚拟机(域)快照

我假设 KVM 管理程序已经在 CentOS 7 / RHEL 7 机器上配置好了,并且有虚拟机正在运行。我们可以使用下面的 virsh 命令列出虚拟机管理程序中的所有虚拟机,

[root@kvm-hypervisor ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 94    centos7.0                      running
 101   overcloud-controller           running
 102   overcloud-compute2             running
 103   overcloud-compute1             running
 114   webserver                      running
 115   Test-MTN                       running

假设我们想创建 webserver 虚拟机的快照,运行下面的命令,

语法:

# virsh snapshot-create-as –domain {vm_name} –name {snapshot_name} –description “enter description here”
[root@kvm-hypervisor ~]# virsh snapshot-create-as --domain webserver --name webserver_snap --description "snap before patch on 4Feb2018"
Domain snapshot webserver_snap created

创建快照后,我们可以使用下面的命令列出与虚拟机相关的快照:

[root@kvm-hypervisor ~]# virsh snapshot-list webserver
 Name                 Creation Time             State
------------------------------------------------------------
 webserver_snap       2018-02-04 15:05:05 +0530 running
[root@kvm-hypervisor ~]#

要列出虚拟机快照的详细信息,请运行下面的 virsh 命令:

[root@kvm-hypervisor ~]# virsh snapshot-info --domain webserver --snapshotname webserver_snap
Name:           webserver_snap
Domain:         webserver
Current:        yes
State:          running
Location:       internal
Parent:         -
Children:       0
Descendants:    0
Metadata:       yes

我们可以使用下面的 qemu-img 命令查看快照的大小:

[root@kvm-hypervisor ~]# qemu-img info /var/lib/libvirt/images/snaptestvm.img

qemu-img-command-output-kvm

还原 KVM 虚拟机快照

假设我们想要将 webserver 虚拟机还原到我们在上述步骤中创建的快照。使用下面的 virsh 命令将 Webserver 虚拟机恢复到其快照 webserver_snap 时。

语法:

# virsh snapshot-revert {vm_name} {snapshot_name}
[root@kvm-hypervisor ~]# virsh snapshot-revert webserver webserver_snap

删除 KVM 虚拟机快照

要删除 KVM 虚拟机快照,首先使用 virsh snapshot-list 命令获取虚拟机的快照详细信息,然后使用 virsh snapshot-delete 命令删除快照。如下示例所示:

[root@kvm-hypervisor ~]# virsh snapshot-list --domain webserver
 Name                 Creation Time             State
------------------------------------------------------------
 webserver_snap       2018-02-04 15:05:05 +0530 running
[root@kvm-hypervisor ~]# virsh snapshot-delete --domain webserver --snapshotname webserver_snap
Domain snapshot webserver_snap deleted

这就是本文的全部内容,我希望你们能够了解如何使用 virsh 命令来管理 KVM 虚拟机快照。请分享你的反馈,并不要犹豫地分享给你的技术朋友

相关内容

bbrkvmdebian
“bbrkvmdebian” 是一个基于 Debian 操作系统的...
2024-11-26 20:31:05
Android模拟器:/d...
在Android模拟器中出现"/dev/kvm未找到,支持Vt-x...
2024-10-09 08:02:36
Android错误:I/d...
这个错误是由于Android应用程序的堆空间不足导致的。为了解决这...
2024-10-06 22:02:15
AWS存储网关-串行控制台...
如果您在使用AWS存储网关时遇到串行控制台 - KVM Linux...
2024-09-24 16:02:14
AWS存储网关 - 串行控...
遇到AWS存储网关串行控制台(KVM Linux)的问题时,可能需...
2024-09-24 16:01:06
Autohotkey如何检...
Autohotkey可以使用GetRawInputDeviceIn...
2024-09-23 05:02:21

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...