歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> AIX下刪除LV後的現場保護和數據恢復方案

AIX下刪除LV後的現場保護和數據恢復方案

日期:2017/3/3 15:23:54   编辑:Unix基礎知識

在AIX環境下,因維護誤操作、存儲mapping錯誤等,不小心將LV誤刪除,這種損失通常是巨大的。刪除後的不當保護及恢復操作可能使數據無法恢復,也可能增加處理的時間與算法復雜度。如何有效保護現場,並選擇正確的數據恢復方案是非常重要的。

AIX的存儲層有太多文章描述,做為鋪墊,簡要描述一下。PV相當於物理磁盤(對於存儲,是存儲映射過來的卷,對於操作系統而言,等同於物理硬盤),若干個PV組成一個VG,意味著可以將容量不同的存儲空間合起來統一分配。為了實現這個目的,AIX把同一個VG的所有PV按相同大小的存儲顆粒進行空間編排,這個存儲顆粒就是PP。而分配空間時,以若干個PP(可能是不同PV上的),做為使用集合,這個集合就是LV。

AIX的LVM層VGDA區域有一個固定的PP到LV的映射表,稱為PPMAP。每個PV的所有PP從第一個(PP#1)開始,以固定大小的32個字節記錄本PP歸屬於哪個LV。刪除AIX中VG的某個LV,底層上最根本的就是釋放這個LV原先占用的PP,也就是清0之前所有占用PP的32字節PPMAP條目,另外還會做一些諸如LV名稱的清理、LV設備摘要信息的清理等工作。

LV被刪除後,不建議貿然嘗試用mklv等操作試圖進行災難恢復。雖然mklv本質上不會清除pp內容區,但有些情況會損壞數據,比如:如果故障前後的PP分配表不相同,但前面PP表分配正確,這樣,文件系統可能可以識別,甚至於可以掛上。不過,麻煩的是,掛上後某些結構可能會出現錯誤,以至於被系統自動修正,事情就會變得更糟。即便是只讀方式mount,也不是最優選的做法。

如果時間允許,AIX LV刪除後的恢復方案大致為:

1、保持VG狀態,不新建任何LV。

2、使用備份手段,對VG中所有的PV做完整鏡像。

3、在鏡像中進行數據提取恢復。或保護鏡像後以分析好的PPMAP,重建丟失的LV。

上述方案的宗旨為:所有操作盡可能可回溯。

【如何完整鏡像故障卷】

來說說如何對AIX中的PV做完整鏡像(從目前的數據恢復技術看,多數處理和分析過程首選是WINDOWS環境,所以,鏡像方案盡量兼顧鏡像出來的數據可以在WINDOWS下直接訪問):

第一種方法:如果存儲自身有卷鏡像功能,可以嘗試之。

第二種方法:如果AIX環境中有足夠空間,放得下需要鏡像的pv,可以將pv鏡像成文件(或LV)。如果是文件,可以通過FTP等手段傳出來。(不建議此方法)

第三種方法:另外構建一台NFS server,以nfs的方式用dd將pv鏡像到nfs上。當然如果aix上可以掛載cifs,甚至於直接可以鏡像到windows的共享文件夾下。但windows下如果生成大文件,有可能會越來越慢,可以盡量使用WINDOWS2008或選擇其他方案。

第四種方法:建議的方案。具體為構建塊設備mapping至aix環境,直接以塊設備至塊設備的方法進行鏡像。可選擇的塊設備有fc lun,iscsi等。如果不具備fc環境的支撐,至少iscsi(可以是軟iscsi)是足夠好的方案。

以windows端做iscsi target,AIX環境做iscsi initiator為例,下面為詳細過程:

1、在配置網絡環境,保證AIX與WINDOWS網絡可通。

2、在WINDOWS上搭建ISCSI TARGET,以 下圖starwind為例,創建了一個名稱為pv0的iscsi磁盤。

3、返回aix平台,確定是否安裝iscsi initiator:

lsdev |grep iscsi,如果提示“iscsi0 Available iSCSI Protocol Device” 表示ISCSI客戶端已經安裝,設備號是iscsi0。

也可以用lslpp -L|grep -i iscsi 確認是否已經安裝了ISCSI軟件包。

如未安裝,先安裝iscsi initiator。

4、修改aix環境中/etc/iscsi/targets文件,在最後增加一行(本例中windows iscsi target的ip是192.168.1.9,iqn見上圖)

192.168.1.9 3260 iqn.2008-08.com.starwindsoftware:tel-pv0

5、在aix平台執行cfgmgr -l iscsi0 (見步驟3中的設備號),重新掃描iscsi設備。

6、lspv 查看是否識別到iscsi設備。本例結果如下:

可以看到hdisk3已經認到,可以使用lsattr -El hdisk3 查看設備詳細情況,命令結果為:

可以看到明確的iscsi設備細節,還可以通過bootinfo -s hdisk3查看目標iscsi容量是否正確(單位為MB,本例為演示,僅創建了個大小為4GB的ISCSI存儲卷)

7、使用dd命令對故障存儲做完整鏡像(建議使用塊設備路徑進行鏡像):

dd if=/dev/rhdisk0 of=/dev/rhdisk3 bs=4096k conv=noerror,sync

更詳細部分,可參考之前的文章:<如何為IBM AIX的數據卷做完整鏡像> 以及 <最全面的關於LINUX與UNIX下的dd命令詳解>

【AIX LV誤刪除數據恢復方案】

在完整備份故障PV後,就可以著手恢復數據了。大致有3種方案可對數據進行恢復

方案一:

分析得到原LV的PPMAP,之後通過mklv -m <指定的ppmap文件>的方式重建與原先LV相同的分配表,以激活原LV,從而恢復數據。

方案二:

分析得到原LV的PPMAP,直接通過第三方軟件(北亞開發有WINDOWS端的JFS2文件系統解釋軟件)進行JFS2文件系統解釋。如果是裸設備(RAW),可完整讀出後再重新按塊寫回。

方案三:

如果原LV中存儲的是ORACLE數據庫,可以針對oracle數據文件的特征,以碎片的方式,從所有PP中提取並組合好所有的特定數據文件,再災難方式恢復oracle系統。

本文出自 “張宇(數據恢復)” 博客,請務必保留此出處http://zhangyu.blog.51cto.com/197148/1103101

Copyright © Linux教程網 All Rights Reserved