歡迎光臨
每天分享高質量文章

如何使用 virsh 命令建立、還原和刪除 KVM 虛擬機器快照 | Linux 中國

如果你在使用基於 KVM 的虛擬機器管理程式,那麼可以使用 virsh 命令獲取虛擬機器或域快照。
— Pradeep Kumar


致謝
編譯自 | https://www.linuxtechi.com/create-revert-delete-kvm-virtual-machine-snapshot-virsh-command/ 
 作者 | Pradeep Kumar
 譯者 | geekpi ? ? 共計翻譯:709 篇 貢獻時間:1655 天

在虛擬化平臺上進行系統管理工作時,經常需要在開始重大操作比如部署補丁和程式碼前先設定一個虛擬機器快照snapshot

虛擬機器快照是特定時間點的虛擬機器磁碟的副本。換句話說,快照儲存了給定的時間點虛擬機器的狀態和資料。

我們可以在哪裡使用虛擬機器快照?

如果你在使用基於 KVM 的虛擬機器管理程式hypervisor,那麼可以使用 virsh 命令獲取虛擬機器或域快照。快照在一種情況下變得非常有用,當你已經在虛擬機器上安裝或應用了最新的補丁,但是由於某些原因,虛擬機器上的程式變得不穩定,開發團隊想要還原所有的更改和補丁。如果你在應用補丁之前設定了虛擬機器的快照,那麼可以使用快照將虛擬機器恢復到之前的狀態。

註意:我們只能對磁碟格式為 Qcow2 的虛擬機器的進行快照,並且 kvm 的 virsh 命令不支援 raw 磁碟格式,請使用以下命令將原始磁碟格式轉換為 qcow2。

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

建立 KVM 虛擬機器(域)快照

我假設 KVM 管理程式已經在 CentOS 7 / RHEL 7 機器上配置好了,並且有虛擬機器正在執行。我們可以使用下麵的 virsh 命令列出虛擬機器管理程式中的所有虛擬機器,

  1. [root@kvm-hypervisor ~]# virsh list --all

  2.  Id    Name                           State

  3. ----------------------------------------------------

  4.  94    centos7.0                      running

  5.  101   overcloud-controller           running

  6.  102   overcloud-compute2             running

  7.  103   overcloud-compute1             running

  8.  114   webserver                      running

  9.  115   Test-MTN                       running

假設我們想建立 webserver 虛擬機器的快照,執行下麵的命令,

語法:

  1. # virsh snapshot-create-as domain {vm_name} name {snapshot_name} description enter description here

  1. [root@kvm-hypervisor ~]# virsh snapshot-create-as --domain webserver --name webserver_snap --description "snap before patch on 4Feb2018"

  2. Domain snapshot webserver_snap created

建立快照後,我們可以使用下麵的命令列出與虛擬機器相關的快照:

  1. [root@kvm-hypervisor ~]# virsh snapshot-list webserver

  2.  Name                 Creation Time             State

  3. ------------------------------------------------------------

  4.  webserver_snap       2018-02-04 15:05:05 +0530 running

  5. [root@kvm-hypervisor ~]#

要列出虛擬機器快照的詳細資訊,請執行下麵的 virsh 命令:

  1. [root@kvm-hypervisor ~]# virsh snapshot-info --domain webserver --snapshotname webserver_snap

  2. Name:           webserver_snap

  3. Domain:         webserver

  4. Current:        yes

  5. State:          running

  6. Location:       internal

  7. Parent:         -

  8. Children:       0

  9. Descendants:    0

  10. Metadata:       yes

我們可以使用下麵的 qemu-img 命令檢視快照的大小:

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

qemu-img-command-output-kvm

還原 KVM 虛擬機器快照

假設我們想要將 webserver 虛擬機器還原到我們在上述步驟中建立的快照。使用下麵的 virsh命令將 Webserver 虛擬機器恢復到其快照 webserver_snap 時。

語法:

  1. # virsh snapshot-revert {vm_name} {snapshot_name}

  1. [root@kvm-hypervisor ~]# virsh snapshot-revert webserver webserver_snap

刪除 KVM 虛擬機器快照

要刪除 KVM 虛擬機器快照,首先使用 virsh snapshot-list 命令獲取虛擬機器的快照詳細資訊,然後使用 virsh snapshot-delete 命令刪除快照。如下示例所示:

  1. [root@kvm-hypervisor ~]# virsh snapshot-list --domain webserver

  2.  Name                 Creation Time             State

  3. ------------------------------------------------------------

  4.  webserver_snap       2018-02-04 15:05:05 +0530 running

  5. [root@kvm-hypervisor ~]# virsh snapshot-delete --domain webserver --snapshotname webserver_snap

  6. Domain snapshot webserver_snap deleted

這就是本文的全部內容,我希望你們能夠瞭解如何使用 virsh 命令來管理 KVM 虛擬機器快照。請分享你的反饋,並不要猶豫地分享給你的技術朋友

贊(0)

分享創造快樂