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

2021-08-27 06:57:48 字數 4949 閱讀 7182

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] [-fformat] [-ooptions] [-ooutput_format]filenameoutput_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檔案的設定,啟動虛擬機器了。
這一部分,網上有很多的文件可供參考。

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] [-fformat] [-ooptions] [-ooutput_format]filenameoutput_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檔案的設定,啟動虛擬機器了。
這一部分,網上有很多的文件可供參考。

openstack 虛擬機器 遷移

遷移。如果 你的 雲 系統 正在 使用 共享 儲存,使用 nova live migration 命令 就可以。首先,要 獲得 需要 被 遷移 的 例項 列表 nova list host c01.example.com all tenants 接下來,把 它們 乙個 乙個 移走 nova live...

Openstack中虛擬機器的Resize功能詳解

摘要 在openstack中生成vm後,由於業務的變更或業務量的增加,需要對vm進行擴充套件。目前openstack中提供了resize功能,本文對openstack中的原始碼進行了測試和分析,並進行了一定的修改。環境 2臺centos6.2機器 hosta 10.28.170.93 8core 1...

openstack虛擬機器網路配置

登陸horizon介面 1.用admin使用者登陸,在管理員下把預設的網路刪除 先刪路由器 2.在管理員下用admin使用者建立新的網路 newnet 其中選擇外部,共享,管理員狀態選項,在 newnet 網路下建立新的子網 192.168.2.0 24,閘道器為 192.168.2.150,192...