Linux中國

如何使用 virsh 命令創建、還原和刪除 KVM 虛擬機快照

在虛擬化平台上進行系統管理工作時,經常需要在開始重大操作比如部署補丁和代碼前先設置一個虛擬機 快照 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 虛擬機快照。請分享你的反饋,並不要猶豫地分享給你的技術朋友


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國