openstack中 虛擬機器例項的備份 與 恢復
openstack中,虛擬機器例項一般是放在nova/instances目錄底下.
該目錄的典型結構如下所示:
[email protected]:~# ls /opt/stack/nova/instances/
_base instance-0000001a
其中
_base目錄中存放的是虛擬機器例項的base image
而instance-0000001a存放的是虛擬機器例項映象的增量部分。
instance-0000001a目錄有如下的一些檔案:
[email protected]e77:~# 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 工具可以檢視該資訊,如下:
[email protected]:/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)
[email protected]:/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] [-fformat
] [-ooptions
] [-Ooutput_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 [-fformat
] [-u] -bbacking_file
[-Fbacking_format
]filename
正確處理完磁碟檔案後,剩下的工作就是按照libvirt.xml檔案的設定,啟動虛擬機器了。
這一部分,網上有很多的文件可供參考。