next up previous contents
Next: 問題與解決 Up: 管理 KVM 虛擬機 Previous: 虛擬機快照-qcow2   Contents

虛擬機還原

  1. 建立虛擬機快照 snapshot 的目的就是要在短時間內還原,而不必重安裝虛擬機。先列出所有虛擬機狀況如下:
    [root@dywftp ~]# virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     -     crtusb                         shut off
     -     kvm6                           shut off
     -     kvmusb                         shut off
     -     livecd                         shut off
     -     osusb                          shut off
    
  2. 啟動虛擬機 kvm6。
    [root@dywftp ~]# virsh start kvm6
    Domain kvm6 started
    
  3. 列出虛擬機 kvm6 的快照,有一個 2014-08-25 建立的快照,名為 snap1-kvm6。
    [root@dywftp ~]# virsh snapshot-list kvm6
     Name                 Creation Time             State
    ------------------------------------------------------------
     snap1-kvm6           2014-08-25 14:43:48 +0800 running
    
  4. 查詢 kvm6 目前的快照,並沒有目前快照。
    [root@dywftp ~]# virsh snapshot-current kvm6
    error: domain 'kvm6' has no current snapshot
    
  5. 將 snap1-kvm6 設定為虛擬機 kvm6 的目前快照。
    [root@dywftp ~]# virsh snapshot-current kvm6 snap1-kvm6
    Snapshot snap1-kvm6 set as current
    
  6. 再查詢虛擬機 kvm6 的目前快照為 snap1-kvm6,列出快照的 xml 訊息。
    <domainsnapshot>
      <name>snap1-kvm6</name>
      <description>kvm6 system snapshot1</description>
      <state>running</state>
      <creationTime>1408949028</creationTime>
    .......
    .......
    
  7. 以虛擬機 kvm6 的目前快照 snap1-kvm6 還原。
    [root@dywftp ~]# virsh snapshot-revert kvm6 --current
    
  8. 也可以指定快照 snap1-kvm6 還原虛擬機 kvm6。
    [root@dywftp ~]# virsh snapshot-revert kvm6 snap1-kvm6
    
  9. Bug:還原時出現以下錯誤訊息,查詢目前的 libvirt 套件版本為 0.10.2。
    error: revert requires force: target device address type none does not match source pci
    [root@dyw219 ~]# rpm -qa | grep libvirt
    libvirt-python-0.10.2-18.el6.x86_64
    libvirt-0.10.2-18.el6.x86_64
    libvirt-client-0.10.2-18.el6.x86_64
    
  10. Bug 解決:libvirt 套件 0.10.2 版本才會出現此問題,降低版本為 0.9.10 後問題解決。
    [root@dyw219 ~]# rpm -qa | grep libvirt
    libvirt-python-0.9.10-21.el6.x86_64
    libvirt-0.9.10-21.el6.x86_64
    libvirt-client-0.9.10-21.el6.x86_64
    
  11. Bug:libvirt 套件 0.9.10 雖解決還原問題,但卻出現虛擬機關機後快照不見的新問題。
  12. Bug 解決:因為虛擬機不是使用 virt-install 安裝,而是使用 virsh create xmlfile 產生,必須設定自動重啟,否則關機後虛擬機就消失,使用 /etc/init.d/libvirtd restart 重啟服務,雖然可以找回消失的虛擬機,但其快照卻無法復原,解決方式是設定此虛擬機自動重啟。
    [root@dyw219 ~]# virsh shutdown kvm6
    [root@dyw219 ~]# virsh define /etc/libvirt/qemu/kvm6.xml
    [root@dyw219 ~]# virsh start kvm6
    [root@dyw219 ~]# virsh autostart kvm6
    
  13. DYW Linux 降低版本安裝。
    [root@dyw219 ~]# yum downgrade libvirt libvirt-client libvirt-python \
    python-virtinst virt-manager virt-viewer qemu-img-rhev qemu-kvm-rhev
    



2018-04-25