關於匯出XenServer底層VHD磁碟的方法

2021-07-12 04:07:40 字數 2062 閱讀 7722

之前朋友分享的經驗。

大家知道從

xencenter

層面,只能匯出

ovf、

ova、

xva的格式,那如何將某台虛機的

vhd檔案匯出來呢?你可能會想到

xenconvert

,是的,

xenconvert

可以實現將虛機轉換成

vhd,但若是虛機檔案過大,花費的時間就會很久,且往往在轉換過程中失敗,軟體的限制太多。那怎麼辦?其實有乙個相對便捷的方式,就是從

xs底層去取。對於

xs,所有的虛擬機器存在於

sr中,其實就是

vhd格式,但

xs不能像

vsphere

xs基於

centos

開發,我們可以借助工具,像

ssh client

、winscp

、xftp

等支援sftp

協議的工具,連線至

xs系統,從

sr中將虛擬機器的

vhd檔案拿出來。具體操作步驟:

1.    ssh至xs

(以xftp

為例),登入成功後,左邊列表是本地目錄,右邊是

通過瀏覽

/var/run/sr-mount

,可以看到所有的

sr(以

uuid

命名),定位到虛機所在的

sr資料夾(sr的

uuid

可以在sr

的常規選項卡中查到,或者在

xs中執行

選中所需的虛機

vhd,直接拖拽到本地計算機路徑即可,這裡注意,虛擬機器的

vhd也是以

uuid

的方式命名的;可以通過:

xevm-disk-list name-label=*** (***

為虛機的在

xs上的名稱,可以在虛機的常規選項卡中查到

根據vhd

的uuid

定位到虛機檔案,複製出來即可。

ps:有乙個特殊情況,若該虛機存在快照,可能會導致

vhd大小不匹配,以上圖為例,虛機的

vdi明明有近

300gb

,為什麼

sr中卻只有

28gb呢。

其實都是快照惹得禍,因為在生成快照的時候,

xs會將當前的狀態禁止並儲存為乙個

base copy

的vhd

檔案,之後對該虛機的修改,都會在乙個新的

vhd上增量,以

tree

的形式進行鏈結,所以看到的

28gb

,其實是生成快照後的增量大小,單純匯出該

vhd是沒辦法還原該虛機的,經過測試,就算我們在

xencenter

刪除了快照鏈結,對於存放的

vhd來講,它不會自動做合併,大小仍然那麼大。

那怎麼辦?我們可以通過

fullcopy

該虛擬機器的方式,讓

xs自動合併

vhd,當然

vhd的

uuid

需要重新確認。

XenServer中虛擬機器和快照匯出與匯入

我們在工作中經常會遇到,把xenserver中的虛擬機器或者快照匯出,然後匯入到另一台xenserver,或者匯出來備份下來,以防虛擬機器出現故障。下面介紹一下用xe命令如何匯出 匯入虛擬機器或快照,當然也可以直接用xencenter來匯出匯入,不過前者速度要快得多。匯出 匯入虛擬機器 1 關閉需要...

關於i 的底層實現原理

大家都知道i 在做運算的時候,是先賦值再自加1,但底層究竟是怎樣實現的呢?下面,就三個例子來說明一下i 的底層實現原理。第乙個例子 public class test1 程式輸出為10。因為i 在作計算的時候要引入乙個臨時的變數,底層是這樣實現的 temp i i i 1 i temp 先把i的值賦...

關於oracle 匯入匯出

根據需求,將一資料庫匯出 用exp 命令匯出。資料量比較大 dmp都50g左右 資料量達到 千萬行。匯出來就後悔了,早知道就用資料幫浦了。匯出命令 exp username passwd orcl file test owner test 之後搭建新的資料庫環境.注意 新搭建的環境例項名 sid 使...