本發(fā)明涉及存儲數(shù)據(jù)保護技術領域,更具體地說,涉及一種元數(shù)據(jù)的冗余備份方法及裝置。
背景技術:
在當今信息化時代,數(shù)據(jù)是一種重要的資源,保證客戶數(shù)據(jù)不丟失是對各存儲廠商最基本的要求。元數(shù)據(jù)(metadata)為描述數(shù)據(jù)的數(shù)據(jù),主要描述數(shù)據(jù)的屬性信息,用來支持如指示存儲位置、數(shù)據(jù)大小、數(shù)據(jù)創(chuàng)建及修改時間等功能。對元數(shù)據(jù)的存儲方法,是客戶數(shù)據(jù)能否正確存取的關鍵。
現(xiàn)有的存儲系統(tǒng)為了方便管理,可以將元數(shù)據(jù)以可讀文件或者二進制形式存儲到存儲系統(tǒng)的配置文件中,從而在存儲設備重啟時,由該配置文件中讀取元數(shù)據(jù)以組建對應raid、lun等。但是如果存儲系統(tǒng)的配置文件被損壞,就會導致配置文件中的元數(shù)據(jù)不可讀或者丟失,從而使得無法順利實現(xiàn)存儲設備的重啟,也即按照上述方式實現(xiàn)元數(shù)據(jù)存儲的可靠性較低。
綜上所述,如何提供一種可靠性較高的用于存儲元數(shù)據(jù)的技術方案,是目前本領域技術人員亟待解決的問題。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種元數(shù)據(jù)的冗余備份方法及裝置,以達到較高的可靠性。
為了實現(xiàn)上述目的,本發(fā)明提供如下技術方案:
一種元數(shù)據(jù)的冗余備份方法,包括:
在每個硬盤上分別設置主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū);
將每個所述硬盤的所述主元數(shù)據(jù)區(qū)劃分為第一主元數(shù)據(jù)區(qū)和第二主元數(shù)據(jù)區(qū)、所述備元數(shù)據(jù)區(qū)劃分為第一備元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū);
當接收到需要存儲的待存儲數(shù)據(jù)時,如果所述待存儲數(shù)據(jù)為硬盤元數(shù)據(jù),則將所述待存儲數(shù)據(jù)存儲至對應硬盤的第一主元數(shù)據(jù)區(qū)和第一備元數(shù)據(jù)區(qū),如果所述待存儲數(shù)據(jù)為raid元數(shù)據(jù)和/或與raid對應的lun元數(shù)據(jù),則將所述待存儲數(shù)據(jù)存儲至對應硬盤的第二主元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū)。
優(yōu)選的,將所述待存儲數(shù)據(jù)存儲至對應硬盤中,包括:
獲取當前時刻的時間戳,并將所述時間戳與所述待存儲數(shù)據(jù)存儲至對應硬盤中。
優(yōu)選的,還包括:
當需要讀取任一硬盤上的目標元數(shù)據(jù)時,判斷存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)是否均可以被讀取,其中所述目標元數(shù)據(jù)包括硬盤元數(shù)據(jù)和/或raid元數(shù)據(jù)和/或lun元數(shù)據(jù);
如果存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及備元數(shù)據(jù)區(qū)均可以被讀取且對應的所述目標元數(shù)據(jù)的時間戳相同,則由所述主元數(shù)據(jù)區(qū)中讀取所述目標元數(shù)據(jù),如果存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及備元數(shù)據(jù)區(qū)均可以被讀取且對應的所述目標元數(shù)據(jù)的時間戳不相同,則由時間戳的生成時間距離當前時刻最近的主元數(shù)據(jù)區(qū)或備元數(shù)據(jù)區(qū)中讀取所述目標元數(shù)據(jù);
如果存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)和對應備數(shù)據(jù)區(qū)中的一個可以被讀取,則由可以被讀取的主元數(shù)據(jù)區(qū)或備元數(shù)據(jù)區(qū)中讀取所述目標元數(shù)據(jù)。
優(yōu)選的,判斷判斷存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)是否均可以被讀取之后,還包括:
如果存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)均不可以被讀取,則確定所述硬盤發(fā)生故障,并輸出對應的故障信息。
優(yōu)選的,還包括:
當存在新的硬盤被插入存儲系統(tǒng)時,則由該新的硬盤中讀取到raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù),并將讀取到的raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù)存儲至所述存儲系統(tǒng)的配置文件中,以指示所述存儲系統(tǒng)基于所述配置文件中的raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù)組建對應的raid及l(fā)un。
一種元數(shù)據(jù)的冗余備份裝置,包括:
設置模塊,用于:在每個硬盤上分別設置主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū);
劃分模塊,用于:將每個所述硬盤的所述主元數(shù)據(jù)區(qū)劃分為第一主元數(shù)據(jù)區(qū)和第二主元數(shù)據(jù)區(qū)、所述備元數(shù)據(jù)區(qū)劃分為第一備元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū);
存儲模塊,用于:當接收到需要存儲的待存儲數(shù)據(jù)時,如果所述待存儲數(shù)據(jù)為硬盤元數(shù)據(jù),則將所述待存儲數(shù)據(jù)存儲至對應硬盤的第一主元數(shù)據(jù)區(qū)和第一備元數(shù)據(jù)區(qū),如果所述待存儲數(shù)據(jù)為raid元數(shù)據(jù)和/或與raid對應的lun元數(shù)據(jù),則將所述待存儲數(shù)據(jù)存儲至對應硬盤的第二主元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū)。
優(yōu)選的,所述存儲模塊包括:
存儲單元,用于獲取當前時刻的時間戳,并將所述時間戳與所述待存儲數(shù)據(jù)存儲至對應硬盤中。
優(yōu)選的,還包括:
讀取模塊,用于:當需要讀取任一硬盤上的目標元數(shù)據(jù)時,判斷存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)是否均可以被讀取,其中所述目標元數(shù)據(jù)包括硬盤元數(shù)據(jù)和/或raid元數(shù)據(jù)和/或lun元數(shù)據(jù);如果存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及備元數(shù)據(jù)區(qū)均可以被讀取且對應的所述目標元數(shù)據(jù)的時間戳相同,則由所述主元數(shù)據(jù)區(qū)中讀取所述目標元數(shù)據(jù),如果存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及備元數(shù)據(jù)區(qū)均可以被讀取且對應的所述目標元數(shù)據(jù)的時間戳不相同,則由時間戳的生成時間距離當前時刻最近的主元數(shù)據(jù)區(qū)或備元數(shù)據(jù)區(qū)中讀取所述目標元數(shù)據(jù);如果存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)和對應備數(shù)據(jù)區(qū)中的一個可以被讀取,則由可以被讀取的主元數(shù)據(jù)區(qū)或備元數(shù)據(jù)區(qū)中讀取所述目標元數(shù)據(jù)。
優(yōu)選的,還包括:
輸出模塊,用于:判斷判斷存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)是否均可以被讀取之后,如果存儲所述目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)均不可以被讀取,則確定所述硬盤發(fā)生故障,并輸出對應的故障信息。
優(yōu)選的,還包括:
組建模塊,用于:當存在新的硬盤被插入存儲系統(tǒng)時,則由該新的硬盤中讀取到raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù),并將讀取到的raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù)存儲至所述存儲系統(tǒng)的配置文件中,以指示所述存儲系統(tǒng)基于所述配置文件中的raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù)組建對應的raid及l(fā)un。
本發(fā)明提供了一種元數(shù)據(jù)的冗余備份方法及裝置,其中該方法包括:在每個硬盤上分別設置主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū);將每個所述硬盤的所述主元數(shù)據(jù)區(qū)劃分為第一主元數(shù)據(jù)區(qū)和第二主元數(shù)據(jù)區(qū)、所述備元數(shù)據(jù)區(qū)劃分為第一備元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū);當接收到需要存儲的待存儲數(shù)據(jù)時,如果所述待存儲數(shù)據(jù)為硬盤元數(shù)據(jù),則將所述待存儲數(shù)據(jù)存儲至對應硬盤的第一主元數(shù)據(jù)區(qū)和第一備元數(shù)據(jù)區(qū),如果所述待存儲數(shù)據(jù)為raid元數(shù)據(jù)和/或與raid對應的lun元數(shù)據(jù),則將所述待存儲數(shù)據(jù)存儲至對應硬盤的第二主元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū)。本申請公開的技術方案中,將元數(shù)據(jù)存儲至硬盤中,且將元數(shù)據(jù)存儲至硬盤中時,將硬盤自身的元數(shù)據(jù)寫入該硬盤中互為備份的第一主元數(shù)據(jù)區(qū)和第一備元數(shù)據(jù)區(qū),將硬盤對應的raid、lun的元數(shù)據(jù)寫入該硬盤中互為備份的第二主元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū),由此,當需要獲取元數(shù)據(jù)時,即使存儲系統(tǒng)的配置文件被損壞,也可以由硬盤上獲取,且即使硬盤上的一份元數(shù)據(jù)損壞,還可以由該硬盤中獲取另一份對應元數(shù)據(jù),從而一定程度上提高了元數(shù)據(jù)存儲的可靠性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份方法的流程圖;
圖2為本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份方法中硬盤內各元數(shù)據(jù)區(qū)的分布示例圖;
圖3為本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份裝置的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,其示出了本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份方法的流程圖,可以包括以下步驟:
s11:在每個硬盤上分別設置主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū)。
需要說明的是,存儲系統(tǒng)一般包括有多個硬盤,當然也可以包括一個硬盤,本申請中實現(xiàn)的元數(shù)據(jù)的冗余備份方法針對包括的多個硬盤中每個硬盤或者僅包含的一個硬盤實現(xiàn)。在每個硬盤上分別設置主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū),從而使得每個硬盤均具有自己的主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū),至于主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū)的占用空間大小可以根據(jù)實際需要進行預先設定。
s12:將每個硬盤的主元數(shù)據(jù)區(qū)劃分為第一主元數(shù)據(jù)區(qū)和第二主元數(shù)據(jù)區(qū)、備元數(shù)據(jù)區(qū)劃分為第一備元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū)。
將每個硬盤的主元數(shù)據(jù)區(qū)及備元數(shù)據(jù)區(qū)進行上述劃分之后,每個硬盤均具有自己的第一主元數(shù)據(jù)區(qū)、第一備元數(shù)據(jù)區(qū)、第二主元數(shù)據(jù)區(qū)及第二備元數(shù)據(jù)區(qū),其中各元數(shù)據(jù)區(qū)的占用空間大小可以根據(jù)實際需要進行設定。
s13:當接收到需要存儲的待存儲數(shù)據(jù)時,如果待存儲數(shù)據(jù)為硬盤元數(shù)據(jù),則將待存儲數(shù)據(jù)存儲至對應硬盤的第一主元數(shù)據(jù)區(qū)和第一備元數(shù)據(jù)區(qū),如果待存儲數(shù)據(jù)為raid元數(shù)據(jù)和/或與raid對應的lun元數(shù)據(jù),則將待存儲數(shù)據(jù)存儲至對應硬盤的第二主元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū)。
需要說明的是,第一主元數(shù)據(jù)區(qū)和第一備元數(shù)據(jù)區(qū)互為備份,用于存儲硬盤自身的元數(shù)據(jù),而第二主元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū)互為備份,用于存儲硬盤對應的raid、lun的元數(shù)據(jù)。具體來說,硬盤的元數(shù)據(jù)可以包括硬盤的廠商、sn號、介質、容量、硬盤的uuid(universallyuniqueidentifier,通用唯一識別碼)、硬盤smart信息等,raid的元數(shù)據(jù)可以包括raid的uuid、id、name、類型、容量、創(chuàng)建時間、所擁有的硬盤數(shù)量、每塊硬盤的uuid、每塊硬盤在raid中的索引、raid的strip大小、該raid所屬的pool、該raid所包含的lun信息(lun信息可以包括lun的uuid、name、類型、容量,lun的extent和raid的extent之間的映射表等)等;其中一個raid由一個或者一組(多個)硬盤構成,將硬盤上一塊由若干地址連續(xù)的硬盤塊構成的、大小固定的區(qū)域定義為條帶(strip),由若干連續(xù)的strip可以組成extent,extent是組建lun的最小單位。
本申請公開的技術方案中,將元數(shù)據(jù)存儲至硬盤中,且將元數(shù)據(jù)存儲至硬盤中時,將硬盤自身的元數(shù)據(jù)寫入該硬盤中互為備份的第一主元數(shù)據(jù)區(qū)和第一備元數(shù)據(jù)區(qū),將硬盤對應的raid、lun的元數(shù)據(jù)寫入該硬盤中互為備份的第二主元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū),由此,當需要獲取元數(shù)據(jù)時,即使存儲系統(tǒng)的配置文件被損壞,也可以由硬盤上獲取,且即使硬盤上的一份元數(shù)據(jù)損壞,還可以由該硬盤中獲取另一份對應元數(shù)據(jù),從而一定程度上提高了元數(shù)據(jù)存儲的可靠性及安全性。
另外需要說明的是,本發(fā)明實施例提供的上述技術方案中各元數(shù)據(jù)區(qū)的分布示例圖可以如圖2所示,其中主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū)分別位于硬盤開頭(硬盤出廠時已經(jīng)具有的廠商元數(shù)據(jù)區(qū)后面)和末尾;具體來說,第一主元數(shù)據(jù)區(qū)a1的起始位置位于硬盤開始位置(廠商元數(shù)據(jù)區(qū)后面),第二主元數(shù)據(jù)區(qū)a2位于第一主元數(shù)據(jù)區(qū)a1之后,第一備元數(shù)據(jù)區(qū)a1’的結束位置位于硬盤末尾,第二備元數(shù)據(jù)區(qū)a2’的起始位置在第一備元數(shù)據(jù)區(qū)a1’之前與第一備元數(shù)據(jù)區(qū)a1’相連。另外圖中的數(shù)據(jù)區(qū)a是用于存儲硬盤中需要存儲的其他數(shù)據(jù)的,可以根據(jù)實際需要確定,在此不做限定。
本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份方法,將待存儲數(shù)據(jù)存儲至對應硬盤中,可以包括:
獲取當前時刻的時間戳,并將時間戳與待存儲數(shù)據(jù)存儲至對應硬盤中。
需要說明的是,時間戳是一個能表示一份數(shù)據(jù)在某個特定時間之前已經(jīng)存在的、完整的、可驗證的數(shù)據(jù),通常是一個字符序列,唯一地標識某一刻的時間。本申請中在存儲元數(shù)據(jù)時(包括硬盤的元數(shù)據(jù)、raid的元數(shù)據(jù)及l(fā)un的元數(shù)據(jù)),將當前時刻的時間戳與元數(shù)據(jù)一并存儲至對應硬盤中,能夠在后期通過該時間戳獲知對應元數(shù)據(jù)的存儲時間。
本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份方法,還包括:
當需要讀取任一硬盤上的目標元數(shù)據(jù)時,判斷存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)是否均可以被讀取,其中目標元數(shù)據(jù)包括硬盤元數(shù)據(jù)和/或raid元數(shù)據(jù)和/或lun元數(shù)據(jù);
如果存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及備元數(shù)據(jù)區(qū)均可以被讀取且對應的目標元數(shù)據(jù)的時間戳相同,則由主元數(shù)據(jù)區(qū)中讀取目標元數(shù)據(jù),如果存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及備元數(shù)據(jù)區(qū)均可以被讀取且對應的目標元數(shù)據(jù)的時間戳不相同,則由時間戳的生成時間距離當前時刻最近的主元數(shù)據(jù)區(qū)或備元數(shù)據(jù)區(qū)中讀取目標元數(shù)據(jù);
如果存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)和對應備數(shù)據(jù)區(qū)中的一個可以被讀取,則由可以被讀取的主元數(shù)據(jù)區(qū)或備元數(shù)據(jù)區(qū)中讀取目標元數(shù)據(jù)。
當存儲系統(tǒng)上電或者其他需要獲知元數(shù)據(jù)的情況,可以將需要獲知的元數(shù)據(jù)稱為目標元數(shù)據(jù)。如果目標元數(shù)據(jù)所在的主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū)均可以正常讀取且目標元數(shù)據(jù)在主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū)的時間戳相同,則由主元數(shù)據(jù)區(qū)讀取該數(shù)據(jù);如果目標元數(shù)據(jù)所在的主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū)均可以正常讀取且目標元數(shù)據(jù)在主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū)的時間戳不同,則讀取時間戳距離當前時刻最近的元數(shù)據(jù)區(qū)中的目標元數(shù)據(jù),并利用讀取到的目標元數(shù)據(jù)區(qū)覆蓋時間戳距離當前時刻最遠的元數(shù)據(jù)區(qū)中的目標元數(shù)據(jù);如果目標元數(shù)據(jù)所在的主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū)中只有一個可以被正常讀取,則讀取能夠被正常讀取的那個元數(shù)據(jù)區(qū)中的目標元數(shù)據(jù)。對應的,元數(shù)據(jù)區(qū)為主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū)的統(tǒng)稱,元數(shù)據(jù)為硬盤、raid及l(fā)un的元數(shù)據(jù)的統(tǒng)稱。從而實現(xiàn)元數(shù)據(jù)的有效讀取。
本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份方法,判斷判斷存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)是否均可以被讀取之后,還可以包括:
如果存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)均不可以被讀取,則確定硬盤發(fā)生故障,并輸出對應的故障信息。
如果存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)均不可以被讀取,則將故障信息輸出,具體來說,可以將存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)均不可以被讀取的信息發(fā)送至與工作人員對應的指定終端,以使得工作人員盡快獲知該信息并實現(xiàn)對應的修復等操作。
本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份方法,還可以包括:
當存在新的硬盤被插入存儲系統(tǒng)時,則由該新的硬盤中讀取到raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù),并將讀取到的raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù)存儲至存儲系統(tǒng)的配置文件中,以指示存儲系統(tǒng)基于配置文件中的raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù)組建對應的raid及l(fā)un。
需要說明的是,如果存在新的硬盤被插入存儲系統(tǒng),則需要由該新的硬盤中讀取到raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù),然后可以將讀取到的元數(shù)據(jù)與存儲系統(tǒng)中已有的元數(shù)據(jù)進行比對,如果讀取到的元數(shù)據(jù)存在于存儲系統(tǒng)已有的元數(shù)據(jù)中,則說明該新的硬盤屬于存儲系統(tǒng),直接對其進行使用即可,如果讀取的元數(shù)據(jù)不存在于存儲系統(tǒng)已有的元數(shù)據(jù)中,則說明該新的硬盤不屬于存儲系統(tǒng),需要通過處理使其成為能夠被存儲系統(tǒng)使用的硬盤。具體來說,可以將讀取到的元數(shù)據(jù)寫入存儲系統(tǒng)的配置文件中,存儲系統(tǒng)則能夠按照現(xiàn)有技術中對應實現(xiàn)方案按照配置文件中存在的元數(shù)據(jù)組建對應的raid及l(fā)un,可以是先組建對應的raid,然后按照raid與lun的extent映射表組建lun,并將lun的信息寫入配置文件中。從而使得存儲系統(tǒng)支持第三方raid,即使硬盤所屬的存儲系統(tǒng)損壞,將硬盤插入新的存儲系統(tǒng)中后可以由該新的存儲系統(tǒng)組建與硬盤對應的第三方raid,保證硬盤上的數(shù)據(jù)仍然可訪問,提高數(shù)據(jù)的可用性。其中通常會將損壞的存儲系統(tǒng)包含的raid下的全部硬盤插入新的存儲系統(tǒng)中,以由新的存儲系統(tǒng)組建與這些硬盤對應的raid及l(fā)un。
另外本申請公開的技術方案中,在硬盤被插入存儲系統(tǒng)后的上線過程中,可以檢查該硬盤內部是否包括按照本申請公開的步驟s11至步驟s13生成的第一主元數(shù)據(jù)區(qū)、第二主元數(shù)據(jù)區(qū)、第一備元數(shù)據(jù)區(qū)及第二備元數(shù)據(jù)區(qū),如果是,則直接使用該硬盤,如果不是,則按照步驟s11至步驟s13對該硬盤進行格式化,并且按照元數(shù)據(jù)格式在該硬盤中寫入真實或默認的元數(shù)據(jù)值,如:對于第一主元數(shù)據(jù)區(qū)可以直接寫入硬盤真實的元數(shù)據(jù),對于第二主元數(shù)據(jù)區(qū)可以寫入默認的raid及l(fā)un的元數(shù)據(jù)。
本發(fā)明實施例還提供了一種元數(shù)據(jù)的冗余備份裝置,如圖2所示,可以包括:
設置模塊11,用于:在每個硬盤上分別設置主元數(shù)據(jù)區(qū)和備元數(shù)據(jù)區(qū);
劃分模塊12,用于:將每個硬盤的主元數(shù)據(jù)區(qū)劃分為第一主元數(shù)據(jù)區(qū)和第二主元數(shù)據(jù)區(qū)、備元數(shù)據(jù)區(qū)劃分為第一備元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū);
存儲模塊13,用于:當接收到需要存儲的待存儲數(shù)據(jù)時,如果待存儲數(shù)據(jù)為硬盤元數(shù)據(jù),則將待存儲數(shù)據(jù)存儲至對應硬盤的第一主元數(shù)據(jù)區(qū)和第一備元數(shù)據(jù)區(qū),如果待存儲數(shù)據(jù)為raid元數(shù)據(jù)和/或與raid對應的lun元數(shù)據(jù),則將待存儲數(shù)據(jù)存儲至對應硬盤的第二主元數(shù)據(jù)區(qū)和第二備元數(shù)據(jù)區(qū)。
本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份裝置,存儲模塊可以包括:
存儲單元,用于獲取當前時刻的時間戳,并將時間戳與待存儲數(shù)據(jù)存儲至對應硬盤中。
本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份裝置,還可以包括:
讀取模塊,用于:當需要讀取任一硬盤上的目標元數(shù)據(jù)時,判斷存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)是否均可以被讀取,其中目標元數(shù)據(jù)包括硬盤元數(shù)據(jù)和/或raid元數(shù)據(jù)和/或lun元數(shù)據(jù);如果存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及備元數(shù)據(jù)區(qū)均可以被讀取且對應的目標元數(shù)據(jù)的時間戳相同,則由主元數(shù)據(jù)區(qū)中讀取目標元數(shù)據(jù),如果存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及備元數(shù)據(jù)區(qū)均可以被讀取且對應的目標元數(shù)據(jù)的時間戳不相同,則由時間戳的生成時間距離當前時刻最近的主元數(shù)據(jù)區(qū)或備元數(shù)據(jù)區(qū)中讀取目標元數(shù)據(jù);如果存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)和對應備數(shù)據(jù)區(qū)中的一個可以被讀取,則由可以被讀取的主元數(shù)據(jù)區(qū)或備元數(shù)據(jù)區(qū)中讀取目標元數(shù)據(jù)。
本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份裝置,還可以包括:
輸出模塊,用于:判斷判斷存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)是否均可以被讀取之后,如果存儲目標元數(shù)據(jù)的主元數(shù)據(jù)區(qū)及對應備數(shù)據(jù)區(qū)均不可以被讀取,則確定硬盤發(fā)生故障,并輸出對應的故障信息。
本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份裝置,還可以包括:
組建模塊,用于:當存在新的硬盤被插入存儲系統(tǒng)時,則由該新的硬盤中讀取到raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù),并將讀取到的raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù)存儲至存儲系統(tǒng)的配置文件中,以指示存儲系統(tǒng)基于配置文件中的raid元數(shù)據(jù)及l(fā)un元數(shù)據(jù)組建對應的raid及l(fā)un。
本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份裝置中相關部分的說明請參見本發(fā)明實施例提供的一種元數(shù)據(jù)的冗余備份方法中對應部分的詳細說明,在此不再贅述。另外本發(fā)明實施例公開的上述技術方案中與現(xiàn)有技術中對應技術方案實現(xiàn)原理一致的部分并未詳細說明,以免過多贅述。
對所公開的實施例的上述說明,使本領域技術人員能夠實現(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。