【伺服器資料恢復】xen server常見故障的資料恢復方案

北亞資料恢復發表於2022-11-23

xen server常見故障:
1、sr無法識別,所有虛擬磁碟(vdi)丟失。
2、sr中的虛擬磁碟(vdi)訪問時報錯。
3、虛擬磁碟(vdi)刪除或丟失。
4、快照(snapshot)刪除或丟失。
5、sr初始化。
6、sr所在的LVM結構損壞。
7、sr所屬的PV分割槽表損壞。
8、其他故障。
 
xen server故障分析:
上述故障是使用者介面層的常見故障表現,解決這些故障問題首先要明白xen server sr層的結構組成。
xen server sr儲存庫的結構組成多數基於linux lvm,sr中的vdi相當於lvm中的lv,而構建lvm則可以基於傳統MBR的分割槽表或GPT的分割槽表來管理。舉個例子說,如果有一塊1TB的單硬碟,假設為/dev/sdb,想要初始化為SR,通常是1T的PV先進行分割槽(MBR或GPT,當然也可以不分),分好區後,
再將/dev/sdb1(假設要處理第一個分割槽)建立成LVM卷,然後再建立LV,這些LV就是VDI。
xen server會備份這些LVM資訊並存放在/etc/lvm下,名稱如VG_XenStorage-151befd1-2224-5e06-914e-f15243f649d7_00103.vg,內容是標準的LVM  XML資訊格式描述。
上述的就是SR儲存庫的幾乎所有結構資訊,所有種類的損壞幾乎都是因為上述資訊的不完整所導致的。
SR儲存庫結構資訊的不同損壞組合衍生出不同的解決方案。
 
xen server常見故障解決方案:
方案一、PV分割槽表損壞(適用於上述xen server常見故障的1、7):
PV分割槽表損壞其實與SR沒關係,只是影響到SR的訪問,其修復過程與普通的分割槽表修復相同,即修正MBR分割槽表或GPT分割槽表。
方案二、LVM結構損壞(適用於上述xen server常見故障的1、6):
LVM結構損壞大多數情況下就是LVM XML資訊區的損壞,可考慮使用xen server的LVM資訊備份進行恢復。
方案三、LVM結構損壞,同時備份資訊也損壞(適用於上述xen server常見故障的1、6):    
LVM結構及其備份資訊損壞導致所有LV的片段索引資訊全部丟失,這種情況下主要工作就是找回每個VDI的LV EXTENTS資訊。XEN的VDI是基於Connectix和微軟聯合開發的VHD格式,通常採用精簡增長模式(如同ESX VMDK的精簡模式),也就是說vdi隨著使用的增長而增長,並不是分配多少佔用多少。
這種模式的好處是可以節約空間,壞處就是分配不可能太連續,總會同時有幾個vdi互動申請空間。要想恢復這些片斷(碎片資訊),上層可參考的資訊是非常有限的。多數情況下只能按照VHD格式內部的相關性,從VDI的頭部開始,透過一些可前後匹配的資訊,按LV PE的偏移,不斷對extent碎片結構進行糾正。
這個過程如果人工進行操作不僅工作量大而且繁瑣。北亞資料恢復工程師專門開發了對vhd格式進行從前向後偏移校驗的程式來進行匹配。獲取到每個VDI的碎片資訊後,可透過碎片資訊修正LVM資訊或直接匯出成VHD檔案。
方案四、vdi內部結構損壞(適用於上述xen server所有可能的故障):
vdi內部結構的損壞等同於vhd格式磁碟的修復。對於一個vhd虛擬磁碟而言,每一個轉化後的物理塊都由索引表和塊內容組成,如果這兩部分資訊都可以找到,這個位置的塊即可修復。所有可修復的塊加上無法修復的塊組成的一個VHD就像一塊壞道盤,這時候就要看內部檔案系統的結構破壞情況了。

小結:
上述4種解決方案的不同組合是針對所有xen server sr故障的解決方案。例如,vdi的刪除就是要先看是否有LVM備份,如果有,按備份恢復;如果沒有,按vdi內部結構進行復雜組合。

相關文章