如果你在使用基于 KVM 的虛擬機(jī)管理程序,那么可以使用 virsh 命令獲取虛擬機(jī)或域快照。-- Kumar
有用的原文鏈接請?jiān)L問文末的“原文鏈接”獲得可點(diǎn)擊的文內(nèi)鏈接、全尺寸原圖和相關(guān)文章。
致謝編譯自|
作者| Kumar
譯者| 共計(jì)翻譯:709篇 貢獻(xiàn)時(shí)間:1655 天
在虛擬化平臺(tái)上進(jìn)行系統(tǒng)管理工作時(shí)虛擬機(jī)創(chuàng)建完怎么用,經(jīng)常需要在開始重大操作比如部署補(bǔ)丁和代碼前先設(shè)置一個(gè)虛擬機(jī)快照。
虛擬機(jī)快照是特定時(shí)間點(diǎn)的虛擬機(jī)磁盤的副本。換句話說,快照保存了給定的時(shí)間點(diǎn)虛擬機(jī)的狀態(tài)和數(shù)據(jù)。
我們可以在哪里使用虛擬機(jī)快照?
如果你在使用基于KVM的虛擬機(jī)管理程序,那么可以使用virsh命令獲取虛擬機(jī)或域快照。快照在一種情況下變得非常有用,當(dāng)你已經(jīng)在虛擬機(jī)上安裝或應(yīng)用了最新的補(bǔ)丁,但是由于某些原因,虛擬機(jī)上的程序變得不穩(wěn)定虛擬機(jī)創(chuàng)建完怎么用,開發(fā)團(tuán)隊(duì)想要還原所有的更改和補(bǔ)丁。如果你在應(yīng)用補(bǔ)丁之前設(shè)置了虛擬機(jī)的快照,那么可以使用快照將虛擬機(jī)恢復(fù)到之前的狀態(tài)。
注意:我們只能對磁盤格式為Qcow2的虛擬機(jī)的進(jìn)行快照,并且 kvm 的virsh命令不支持 raw 磁盤格式,請使用以下命令將原始磁盤格式轉(zhuǎn)換為 qcow2。
# qemu-img convert -f raw -O qcow2 image-name.img image-name.qcow2
創(chuàng)建 KVM 虛擬機(jī)(域)快照
我假設(shè) KVM 管理程序已經(jīng)在 7 / RHEL 7 機(jī)器上配置好了,并且有虛擬機(jī)正在運(yùn)行。我們可以使用下面的virsh命令列出虛擬機(jī)管理程序中的所有虛擬機(jī),
[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
假設(shè)我們想創(chuàng)建 虛擬機(jī)的快照,運(yùn)行下面的命令,
語法:
# 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
創(chuàng)建快照后,我們可以使用下面的命令列出與虛擬機(jī)相關(guān)的快照:
[root@kvm-hypervisor ~]# virsh snapshot-list webserver
?Name???????????????? Creation Time??? ?????????State
------------------------------------------------------------
?webserver_snap?????? 2018-02-04 15:05:05 +0530 running
[root@kvm-hypervisor ~]#
要列出虛擬機(jī)快照的詳細(xì)信息,請運(yùn)行下面的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---kvm
還原 KVM 虛擬機(jī)快照
假設(shè)我們想要將 虛擬機(jī)還原到我們在上述步驟中創(chuàng)建的快照。使用下面的virsh命令將 虛擬機(jī)恢復(fù)到其快照 時(shí)。
語法:
# virsh snapshot-revert {vm_name} {snapshot_name}
[root@kvm-hypervisor ~]# virsh snapshot-revert webserver webserver_snap
刪除 KVM 虛擬機(jī)快照
要?jiǎng)h除 KVM 虛擬機(jī)快照,首先使用virsh -list命令獲取虛擬機(jī)的快照詳細(xì)信息,然后使用virsh -命令刪除快照。如下示例所示:
[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
這就是本文的全部內(nèi)容,我希望你們能夠了解如何使用virsh命令來管理 KVM 虛擬機(jī)快照。請分享你的反饋,并不要猶豫地分享給你的技術(shù)朋友