服務器數據恢復—RAIDZ離線硬盤數超過熱備盤數導致陣列崩潰的數據恢復案例

服務器存儲數據恢復環境:
ZFS Storage 7320存儲陣列中有32塊硬盤。32塊硬盤分為4組,每組8塊硬盤,共組建了3組RAIDZ,每組raid都配置了熱備盤。

服務器存儲故障:
服務器存儲運行過程中突然崩潰,排除人為誤操作、斷電、進水和其他機房不穩定因素。管理員重啟服務器存儲,系統無法進入,需要恢復服務器存儲中的數據。

服務器存儲數據恢復過程:
1、將故障服務器存儲中所有硬盤標記后取出,以只讀方式進行扇區級完整鏡像,鏡像完成后將所有磁盤按照原樣還原到原存儲中,后續的數據分析和數據恢復操作都基于鏡像文件進行,避免對原始磁盤數據造成二次破壞。
2、基于鏡像文件分析所有硬盤中的底層數據,發現服務器存儲中的熱備盤全部啟用,上層采用ZFS文件系統。
Tips:
在ZFS文件系統中,存儲池被稱為ZPOOL。ZPOOL可以有各種類別的子設備:塊設備、文件、磁盤等等。本案例中ZPOOL的子設備是三組RAIDZ作為子設備。
經過對底層數據的分析發現,三組RAIDZ中的兩組RAIDZ啟用的熱備盤的個數分別為1和3。啟用熱備盤后,第一組RAIDZ中又有一塊盤離線,第二組RAIDZ中則又有兩塊硬盤離線。
根據上述分析結果模擬故障現場:三組RAIDZ中的兩組RAIDZ出現硬盤離線的情況,熱備盤自動上線替換離線盤。在熱備盤無冗余的情況下第一組RAIDZ中又有一塊盤離線,第二組RAIDZ中則有兩塊盤離線,ZPOOL進入高負荷狀態(每次讀取數據都需要校驗);當第二組RAIDZ中出現第三塊離線盤的時候,該組RAIDZ崩潰,ZPOOL下線,服務器存儲崩潰。
3、ZFS管理的存儲池與常規存儲池不同。在ZFS文件系統下,ZFS管理所有磁盤。常規RAID在存儲數據時會按照特定的規則組建池,并不關心文件在子設備上的位置。在ZFS下,存儲數據時會為每次寫入的數據分配適當大小的空間,并計算出指向子設備的數據指針。所以RAIDZ缺盤時無法直接通過校驗得到數據,必須將整個ZPOOL作為一個整體進行解析。
4、北亞企安數據恢復工程師手工截取事務塊數據,并編寫程序獲取最大事務號入口。
獲取文件系統入口:

5、獲取到文件系統入口后,北亞企安數據恢復工程師編寫數據指針解析程序進行地址解析。
解析數據指針:

6、獲取到文件系統入口點在各磁盤上的分布情況后,北亞企安數據恢復工程師開始手工截取并分析文件系統內部結構。入口點所在的磁盤組無缺失盤,可直接提取信息。根據ZFS文件系統的數據存儲結構順利找到映射的LUN的名稱,進而找到其節點。
7、經過分析發現此存儲中的ZFS版本與開源版本有較大差別,無法使用之前開發的解析程序進行解析,所以北亞企安數據恢復工程師重新編寫程序進行解析。

8、由于缺盤個數較多,每個IO流都需要通過校驗得到,進度極為緩慢。與用戶方溝通后得知此ZVOL卷映射到XenServer作為存儲設備,所需要的文件在一個vhd內。提取ZVOL卷頭部信息,按照XenStore卷存儲結構進行分析,發現該vhd在整個卷的尾部。計算出其起始位置后從此位置開始提取數據。
9、Vhd提取完畢后,驗證其內部的壓縮包、圖片、視頻等文件,均可正常打開。
10、交由用戶方驗證恢復出來的數據。經過驗證,發現恢復出來的文件數量與系統自動記錄的文件數量差不多,稍微有點出入。丟失的極少量文件應該是因為這些文件是新生成的還未存儲到磁盤。隨機驗證恢復出來的文件,全部可正常打開。用戶方認可數據恢復結果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63551.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63551.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63551.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java轉C++之編程范式

1. 過程式編程(Procedural Programming) 在 C 中的表現 過程式編程是通過一系列的函數調用來實現程序的功能。函數是核心構建單元,數據和操作通過函數進行交互。 C 中:可以使用普通的函數和全局變量來進行過程式編程。Java 中&…

llama2中的model.py中的結構示意圖

參考文章:https://zhuanlan.zhihu.com/p/679640407

開放詞匯目標檢測(Open-Vocabulary Object Detection, OVOD)綜述

定義 開放詞匯目標檢測(Open-Vocabulary Object Detection, OVOD)是一種目標檢測任務,旨在檢測和識別那些未在訓練集中明確標注的物體類別。傳統的目標檢測模型通常只能識別有限數量的預定義類別,而OVOD模型則具有識別“開放詞匯…

Vue與React:前端框架的巔峰對決

文章目錄 一、引言(一)前端框架發展現狀簡述 二、Vue 與 React 框架概述(一)Vue.js 簡介(二)React.js 簡介 三、開發效率對比(一)Vue 開發效率分析(二)React …

3分鐘讀懂數據分析的流程是什么

數據分析是基于商業目的,有目的地進行收集、整理、加工和分析數據,提煉出有價值的 信息的一個過程。整個過程大致可分為五個階段,具體如下圖所示。 1.明確目的和思路 在開展數據分析之前,我們必須要搞清楚幾個問題,比…

vba批量化調整word的圖和圖表標題

vba代碼 將圖片進行居中操作 Sub ChangePictureFormate()Dim oPara As ParagraphDim oRange As RangeDim i As LongDim beforeIsPicture As BooleanbeforesIsPicture False 確保文檔中至少有圖片If ActiveDocument.InlineShapes.Count 0 ThenMsgBox "沒有找到圖片。&qu…

llama.cpp:PC端測試 MobileVLM -- 電腦端部署圖生文大模型

llama.cpp:PC端測試 MobileVLM 1.環境需要2.構建項目3.PC測試 1.環境需要 以下是經實驗驗證可行的環境參考,也可嘗試其他版本。 (1)PC:Ubuntu 22.04.4 (2)軟件環境:如下表所示 工…

詞嵌入(Word Embedding):自然語言處理的基石

目錄 ?編輯 詞嵌入(Word Embedding):自然語言處理的基石 引言 詞嵌入的基本概念 詞嵌入的主要方法 1. Word2Vec 2. GloVe 3. FastText 4. ELMo 5. BERT 詞嵌入的應用場景 詞嵌入的研究進展 結論 詞嵌入(Word Embedd…

AutoSarOS中調度表的概念與源代碼解析

--------AutoSarOS調度表的概念 一、AutoSarOS 是什么以及調度表的重要性 AutoSar(Automotive Open System Architecture)是汽車行業的一個開放式軟件架構標準哦。它就像是一種大家都遵循的規則,能讓不同的軟件供應商一起合作開發汽車軟件,這樣軟件就能被重復使用,開發效…

半連接轉內連接 | OceanBase SQL 查詢改寫

查詢優化器是關系型數據庫系統的核心模塊,是數據庫內核開發的重點和難點,也是衡量整個數據庫系統成熟度的“試金石”。為了幫助大家更好地理解 OceanBase 查詢優化器,我們撰寫了查詢改寫系列文章,帶大家更好地掌握查詢改寫的精髓&…

android opencv導入進行編譯

1、直接新建module進行導入,選擇opencv的sdk 導入module模式,選擇下載好的sdk,修改module name為OpenCV490。 有報錯直接解決報錯,沒報錯直接運行成功。 2、解決錯誤,同步成功 一般報錯是gradle版本問題較多。我的報…

通過阿里云 Milvus 與 PAI 搭建高效的檢索增強對話系統

背景介紹 阿里云向量檢索服務Milvus版(簡稱阿里云Milvus)是一款云上全托管服務,確保了了與開源Milvus的100%兼容性,并支持無縫遷移。在開源版本的基礎上增強了可擴展性,能提供大規模 AI 向量數據的相似性檢索服務。相…

【批量生成WORD和PDF文件】根據表格內容和模板文件批量創建word文件,一次性生成多個word文檔和批量創建PDF文件

如何按照Word模板和表格的數據快速制作5000個word文檔 ? 在與客戶的合作的中需要創建大量的合同,這些合同的模板大概都是一致的,是不是每次我們都需要填充不一樣的數據來完成? 今天用表格數據完成合同模板的填充,批量…

pip使用方法

1. 安裝包: pip install :安裝指定的 Python 包。 pip install :安裝特定版本的 Python 包。 pip install -r requirements.txt:從文件中讀取依賴列表并安裝所有列出的包。 pip install --pre :允許安裝預發布或開發版…

Windows11 安裝 Ubuntu-20.04,同時安裝配置 zsh shell,配置 git 別名(alias),大大提高開發效率

背景:家里配置了一臺 Windows 電腦,有時候需要用到 vscode 開發測試一些代碼,在使用過程中發現原生 windows 敲代碼不是很友好,于是想到配置 wsl,安裝 Ubuntu,并安裝配置 zsh shell,同時配置 gi…

什么是漸進式 Web 應用,有哪些特點

漸進式 Web 應用 (Progressive Web Apps, PWAs) 的定義與特點 一、定義 漸進式 Web 應用(Progressive Web App,簡稱 PWA)是一種結合了傳統 Web 技術和現代移動應用特性的新型應用程序形式。PWAs 可以像普通網站一樣通過瀏覽器訪問&#xff…

鴻蒙心路旅程:HarmonyOS NEXT 心路旅程:技術、成長與未來

HarmonyOS NEXT 心路旅程:技術、成長與未來 技術的浪潮中,總有一些瞬間讓人感到心潮澎湃。作為一名HarmonyOS NEXT開發者,我有幸成為這個時代科技創新的一部分。從最初的接觸到深入學習、開發,以及如今規劃未來的職業方向&#x…

勤研低代碼平臺:重塑軟件開發協作新生態

在當今數字化浪潮洶涌澎湃的時代,軟件開發的效率與質量成為企業競爭的關鍵因素之一。勤研低代碼開發平臺以創新性的實際頁面 - 功能設計 - 頁面設計 - 原型頁面切換功能,脫穎而出,為軟件開發過程中的團隊協作、客戶溝通以及項目推進帶來了前所…

ChatGPT等大語言模型與水文水資源、水環境領域的深度融合

聚焦GPT等大語言模型與水文水資源領域的深度融合,通過系統化內容與實踐案例,講解如何高效完成時間序列分析、空間數據處理、水文模型優化以及智能科學寫作等任務。同時,展示AI在高級機器學習模型開發、資源優化算法編程與模型微調中的最新應用…

node安裝,npm安裝,vue-cli安裝以及element-ui配置項目

node.js Node.js主要用于開發高性能、高并發的網絡服務器,特別適合構建HTTP服務器、實時交互應用(如聊天室)和RESTful API服務器等。?它使用JavaScript語言,基于Chrome V8引擎,提供模塊化開發和豐富的npm生態系統&…