微吼云上線多路互動直播服務 加速多場景互動直播落地
703
2025-04-05
某教育局存儲,raid崩潰導致存儲無法啟動。存儲內部共有虛擬機若干臺(≥ 5),其中linux虛擬機3臺為客戶重要數據。
恢復流程:
1、制定恢復方案。經過與客戶溝通及查看底層存儲情況分析本例中存儲層次結構,初步分析如下
存儲結構
1、重組raid;重組過程中發現本raid5缺失2塊盤(第一掉線盤掉線后熱備盤頂替,之后又掉線一塊盤使得RAID5處于降級狀態。最后在掉線第三塊盤時盤片劃傷RAID崩潰),無法通過校驗直接獲取丟失盤的數據,所以只能使用磁盤同等大小的全0鏡像進行重組(此方法只可用于緊急情況,因為依賴空鏡像組成的raid文件系統結構會被嚴重破壞,相當于每個條帶都會缺失兩個塊的數據)。
重建raid
2、提取LUN;分析存儲結構,獲取存儲劃分的MAP塊。在找到MAP塊之后解析得到各個LUN的數據塊指針,編寫數據提取程序提取LUN碎片。提取完成后進行碎片拼接,組成完整LUN。
提取LUN
3、導出LUN內所有虛擬機,嘗試啟動;因虛擬機名稱涉及客戶隱私且導出過程較為簡單,此處不再贅述。導出虛擬機后嘗試啟動,同預想相同,操作系統被破壞虛擬機無法啟動。
4、提取虛擬機內文件;在虛擬機無法啟動的情況下只能退而求其次,提取虛擬機內文件。在取出文件后進行測試,發現大多數文件都被破壞,只有少部分小文件可以打開。
虛擬機內取出圖片
5、與客戶溝通分析后續恢復可能性,制定后續恢復方案;在與客戶溝通后得知虛擬機內有mysql數據庫,因為數據庫底層存儲的特殊性,可以通過掃描數據頁進行數據提取。在找到此虛擬機后發現虛擬機啟用快照,父盤和快照文件都被損壞的情況下常規合并操作無法完成,使用本公司自主研發VMFS快照合并程序進行快照合并。
6、獲取mysql數據頁并分析;根據mysql數據頁特征進行數據頁掃描并導出(innodb引擎可以使用此方案,myisam因為沒有“數據頁”概念所以不可用),分析系統表獲取各用戶表信息,根據各個表的id進行數據頁分割。因為表內容涉及用戶隱私,此處未配圖
7、提取表結構;因為數據庫使用時間已久,表結構也曾多次變更,加上系統表在存儲損壞后也有部分數據丟失,記錄提取過程遇到很大阻力。首先獲取最初版本數據庫各個表的表結構:合并快照前的父盤因為寫入較早,使用第一塊掉線盤進行校驗獲取到這個文件的完整數據,然后提取出其中數據庫各個表的表結構,之后客戶方提供了最新版的數據庫建表腳本。
8、提取記錄;分別使用兩組不同表結構對數據記錄進行提取并導入恢復環境中的mysql數據庫內,然后剔除各個表中因為表結構變更造成的亂碼數據,最后將兩組數據分別導出為.sql文件。
9、驗證數據;因為兩個版本的數據庫表結構不同,所以聯系了客戶方的應用工程師進行調試。調試完成后導入平臺,平臺調試成功,數據恢復完畢。
數據庫
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。