2017年1月31日 星期二

備份前務必注意Hyper-V的avhdx檔案


前陣子要移轉Hyper-V VM的時候發現問題,無法直接用「匯出」功能,後來發現VM的VHDX檔案分成很多個副檔名為.avhdx的檔案,似乎要先合併才能匯出。


但問題來了,我使用HyperV Manager的合併功能,手動一個一個將為數眾多,且不知何時出先的VHDX「分身檔」合併到父系檔案,但不知怎的檔案被我合併到壞掉了!!
這台VM的VHDX就不能用了!即使我用新增VM的方式也無法將此vhdx檔案加回使用

頓時晴天霹靂啊!!!我還沒來得及做備份!!

於是直覺認為問題出在衍生出的avhdx檔案。

上網Google了一下發現avhdx是VHD的一種格式,會出現此檔案通常是有做snapshot,也就是有開啟「檢查點」功能(Hyper 3.0以前稱作「快照」),可以把此檔案當作是一種Hyper-V差異備份。

可是我沒有要對VM做差異備份(平常已經用Acronis備份),本來還懷疑是不是VM有透過Azure做DR,會不斷對VM不定時做快照(後來印證Azure做ASR,會啟動VM複寫功能,並開啟檢查點功能,如下圖)。後來發現是我手賤,為了移轉前取消檢查點功能(其實本來就沒有開啟),而去點選了檢查點再取消,殊不知程式已經對VM進行差異備份,原VM連結的vhdx檔案就已經被變更(vhdx檔名會改為很長一串英數字),而不是原始你所指定的那個檔案。

圖:Azure Site Recovery啟動HyperV複寫,並產生檢查點

必須要讓HV Manager自動合併完成,將快照合併回父系檔,沒有差異備份檔存在時,VM才能有進一步的動作。

而我沒等合併完成就取消,改為手動合併,,雖然程式會自動尋找父系檔名,但你仍無法保證這是正確無誤的檔案,手動合併仍舊有高度風險,這樣操作就很有可能造成檔案損毀而無法使用,就像我這次一樣!手動合併完無法使用,資料毀於一旦,後悔莫及!

不幸中的大幸是我還保有上次備份的VM,存有完整的虛擬硬碟檔案,只是資料很舊,損失的資料要靠人工救援。還是可以搬出來用,不至於使公司系統開天窗。

這次「手殘」給我的教訓就是:

1. 任何系統移轉都是一種高風險行為,要執行任何步驟前務必備份,備份,再備份!(很重要所以說三次),再進行下一步動作。

2. 遇到不清楚或需要尋找資料的問題先暫停動作,不要拿滑鼠亂點功能造成無法預期的情況發生。

3. IT這行永遠都有你意想不到的情況,如果本身技術又不夠純熟,只能摸著石頭過河,逼著你去學習、檢討,否則就會溺死。壓力很大但這也是無法逃避的事實。