openstack中 虛擬機實例的備份 與 恢復

轉自:http://blog.csdn.net/weiyuanke/article/details/7639742#


openstack中,虛擬機實例一般是放在nova/instances目錄底下.

該目錄的典型結構如下所示:

root@node77:~# ls /opt/stack/nova/instances/
_base instance-0000001a

 

其中

_base目錄中存放的是虛擬機實例的base image

而instance-0000001a存放的是虛擬機實例鏡像的增量部分。

 

instance-0000001a目錄有如下的一些文件:

root@node77:~# ls /opt/stack/nova/instances/instance-0000001a/
console.log disk disk.local libvirt.xml

 

其中

console.log 保存虛擬機啓動的日誌信息

disk 和 disk.local爲虛擬機實例的鏡像文件

libvirt.xml爲配置文件。

 

這其中需要注意的是,disk和disk.local並沒有包含該虛擬機的所有數據,它們只是基於base image的增量部分

我們通過kvm-image 工具可以查看該信息,如下:

root@node77:/opt/stack/nova/instances/instance-0000001a# kvm-img info disk
image: disk
file format: qcow2
virtual size: 50G (53687091200 bytes)
disk size: 1.6G
cluster_size: 2097152
backing file: /opt/stack/nova/instances/_base/5dcb736a3fbb7f5b92657095aa77a877f4039ec0_10 (actual path: /opt/stack/nova/instances/_base/5dcb736a3fbb7f5b92657095aa77a877f4039ec0_10)

 

root@node77:/opt/stack/nova/instances/instance-0000001a# kvm-img info disk.local 
image: disk.local
file format: qcow2
virtual size: 40G (42949672960 bytes)
disk size: 4.0M
cluster_size: 2097152
backing file: /opt/stack/nova/instances/_base/ephemeral_0_40_None (actual path: /opt/stack/nova/instances/_base/ephemeral_0_40_None)

其中backing file 即是base image

 

因此我們在備份虛擬機實例的時候,不僅要備份instance-0000001a目錄下的數據,而且要備份該虛擬機相關的base image數據,即backing file給出的文件。

 

對於該例子:

我們需要備份如下的文件:

(1)console.log

(2)disk

(3)disk.local

(4)libvirt.xml

(5)/opt/stack/nova/instances/_base/ephemeral_0_40_None

(6)/opt/stack/nova/instances/_base/5dcb736a3fbb7f5b92657095aa77a877f4039ec0_10

 

如何根據備份的文件,在另外一臺機器上恢復該虛擬機:

方法1:

我們將disk 和 disk.local磁盤文件分別和它們的base image合併,生成兩個新的磁盤文件,那麼這兩個磁盤文件將包含虛擬機所有的數據。

 qemu-img convert [-c] [-f format] [-o options] [-O output_format] filename output_filename
qemu-img convert disk –O qcow2 newdisk
 qemu-img convert disk.local –O qcow2 newdisk.local

 

方法2:

我們修改disk和disk.local文件中backing file的位置,爲當前base image的位置

qemu-img rebase [-f format] [-u] -b backing_file [-F backing_format] filename
正確處理完磁盤文件後,剩下的工作就是按照libvirt.xml文件的設置,啓動虛擬機了。
這一部分,網上有很多的文檔可供參考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章