專利名稱::基于彼特森的網絡存儲結構的數據存儲方法
技術領域:
:本發明涉及信息網絡
技術領域:
,特別涉及一種基于彼特森的網絡存儲結構的數據存儲方法。
背景技術:
:目前信息
技術領域:
已經從面向計算為中心的架構,轉向以存儲為中心的架構。這樣的轉變是隨著互聯網絡的逐步發展壯大而日益產生的海量信息產生的,海量信息面臨著處理、存儲、共享等問題。在數據存儲過程中,為了解決單塊磁盤的數據可靠性和性能問題,人們提出了RAID技術。RAID是"RedundantArrayofIndependentDisk"的縮寫,中文意思是獨立冗余磁盤陣列。冗余磁盤陣列技術誕生于1987年,由美國加州大學伯克利分校提出。簡單地解釋RAID磁盤陣列,就是將N臺硬盤通過RAIDController(分硬件、軟件)結合成虛擬單臺大容量的硬盤使用,其特色是N臺硬盤同時讀取,讀取速度得以加快,同時可提供容錯性,所以RAID是當成平時主要訪問數據的存儲而不是數據備份的。目前的RAID磁盤陣列技術用于單機內嵌控制器的方式,或者外部的單獨磁盤陣列硬件,或者在操作系統中置入軟RAID控制器的方式,這三種實現方法普遍局限于單機或局域網絡范圍內,可以應對單塊磁盤的故障,但不能應對整機硬件或軟件出現故障的情況。另外,圖2是Peterson圖的組成節點編號示意圖。如圖2所示,Peterson圖是由10個節點組成的固定結構,其特點是每個節點的度等于3,任何兩個節點之間的距離不大于2,其用于并行計算領域,具有非常高的可靠性。
發明內容本發明的目的在于,在廣域網絡環境下構建基于Peterson圖結構的數據存儲方法,由存儲節點構成的強結構規則圖結構,除控制節點外,在其他節點間使用RAID風格的磁盤條帶技術,從而提供一種基于彼特森的網絡存儲結構的數據存儲方法,該方法在強結構下廣域網中使用NRAID結構,既具有傳統RAID的數據可靠性和高性能,又能避免單點問題。在20世紀80年代后期,隨著分布式系統的日益成熟,同樣由加州大學伯克利分校提出一種無服務器網絡文件系統(xFS),本發明的目的正是在這種系統中的多臺機器的硬盤之間使用了RAID風格的磁盤條帶技術,我們稱之為NRAID(NetworkRedundentArrayIndependentDisk),即網絡冗余磁盤陣列NRAID,網絡冗余磁盤陣列NRAID在網絡環境中進行網絡可靠性存儲。這個系統的使用環境限定在對等的工作站之間,這類似于目前比較流行的對等系統。在此后在網絡環境下使用RAID的方式基本上與xFS相同,其他的廣域存儲系統基本上都是分布式文件系統。上述NRAID技術是在局域網絡環境下使用到磁盤條帶技術,主要是為了加快數據讀取速度(這點類似于本發明中的NRAIDO),沒有數據的校驗等可靠性保證;分布式文件系統為了提高文件的可靠性,采用的是一份數據多次冗余存儲的方法,普遍存在存儲利用率較低的問題,其可靠性依賴于現有的存儲系統(如DAS、NAS或SAN)。本發明將RAID技術網絡化,首先,解決的是常規RAID系統單地點放置,容易出現該點出現斷電等故障,數據就不能使用的問題;第d,利用Peterson圖的強結構特征,可以保障存儲點間的數據通道連通性,同時保障時延等指標在容許范圍之內;第三,Peterson圖中的每個節點均作為控制器點,共10個控制器點,這樣就不存在常規RAID控制器單點問題。為了實現上述目的,本發明的一種基于彼特森的網絡存儲結構的數據存儲方法,其特征在于,該方法是在廣域網絡環境下將IO個存儲節點按照彼特森圖的方式形成強結構規則圖結構,并利用多臺網絡主機的磁盤存儲能力,借鑒多種可靠性等級的單機RAID技術的實現方式,實現網絡環境下多種可靠性等級的網絡冗余磁盤陣列NRAID支持的數據存儲;所述的強結構規則圖結構,以進入的任意一個存儲節點作為控制節點,其他9個存儲節點作為該控制節點的鄰居節點,其中,3個為一跳鄰居節點,6個為兩跳鄰居節點;所述的控制節點,用于存儲數據的元數據信息,并發出訪問數據的信息;所述的鄰居節點,用于提供數據存儲服務。所述的每個存儲節點的存儲形式包括直接附接存儲、網絡附接存儲或存儲區域網絡。所述的直接附接存儲采用單盤方式或者RAID方式。所述的網絡冗余磁盤陣列NRAID技術可以采用6個級別的網絡冗余磁盤陣列NRAID0NRAID5中的任意一種。下面針對每級網絡冗余磁盤陣列提供相應的網絡冗余磁盤陣列實現方法1)所述的數據存儲方法采用網絡冗余磁盤陣列NRAIDO;所述的網絡冗余磁盤陣列NRAID0為無差錯控制的帶區組,除控制節點外,有兩個以上的鄰居節點,數據分成數據塊保存在不同存儲節點上,可以同時讀取。該網絡冗余磁盤陣列實現方法將不同的數據分布在不同存儲節點上,所以數據吞吐率大大提高,存儲節點的負載也比較平衡。如果剛好所需要的數據在不同的存儲節點上效率最好。它不需要計算校驗碼,實現容易。它的缺點是它沒有數據差錯控制,如果一個存儲節點中的數據發生錯誤,即使其它存儲節點上的數據正確也無濟于事了。因此,不應該將它用于對數據穩定性要求高的場合。同時,NRAIDO可以提高數據傳輸速率,比如所需讀取的文件分布在兩個存儲節點上,這兩個存儲節點可以同時讀取,那么原來讀取同樣文件的時間被縮短為1/2。在所有的級別中,NRAIDO的速度是最快的,但是NRAIDO沒有冗余功能,如果一個存儲節點(物理)損壞,則所有的數據都無法使用。2)所述的數據存儲方法采用網絡冗余磁盤陣列NRAID1;所述的網絡冗余磁盤陣列NRAID1為鏡像結構,所述的控制節點同時對兩個存儲節點進行讀操作和對兩個存儲節點進行寫操作,該兩個存儲節點中一為主存儲節點,另一為鏡像存儲節點。該網絡冗余磁盤陣列實現方法是鏡像結構,所以在一個存儲節點出現問題時,可以使用鏡像,提高系統的容錯能力,即當主存儲節點損壞時,鏡像存儲節點就可以代替主存儲節點工作,鏡像存儲節點相當于一個備份存儲節點,可想而知,這種存儲節點模式的安全性是非常高的,NRAID1的數據安全性在所有的NRAID級別上來說是最好的。而且,它比較容易設計和實現,每讀一次存儲節點只能讀出一塊數據,也就是說數據塊傳送速率與單獨的存儲的讀取速率相同。因為NRAID1的校驗十分完備,因此對系統的處理能力有很大的影響,通常的RAID1功能由軟件實現,而這樣的實現方法在服務器負載比較重的時候會大大影響服務器效率。當您的系統需要極高的可靠性時,如進行數據統計,那么使用NRAID1比較合適。而且NRAID1技術支持"熱替換",即不斷電的情況下對故障存儲節點進行更換,更換完畢只要從鏡像存儲節點上恢復數據即可。但是其存儲節點空間的利用率卻只有50%,是所有NRAID級別中最低的。3)所述的數據存儲方法采用網絡冗余磁盤陣列NRAID2;所述的網絡冗余磁盤陣列NRAID2為帶海明碼校驗的數據條帶結構,該結構將數據條塊化分布于不同的存儲節點上,條塊化的數據的單位為位或字節,然后使用一定的編碼技術來提供錯誤檢査及恢復,該編碼技術需要多個節點存放檢查及恢復信息。由于海明碼的特點,它可以在數據發生錯誤的情況下將錯誤校正,以保證輸出的正確。它的數據傳送速率相當高,如果希望達到比較理想的速度,那最好提高保存校驗碼ECC碼的存儲節點的速度,對于控制節點的設計來說,輸出數據的速率與存儲節點組中速度最慢的相等。4)所述的數據存儲方法采用網絡冗余磁盤陣列NRAID3;所述的網絡冗余磁盤陣列NRAID3為帶奇偶校驗碼的并行傳送結構;每個控制節點存儲其n(n大于等于3,小于等于9)個鄰居節點的地址信息和存儲數據的交叉存放規則信息,其中,n-l個鄰居節點用于存儲數據,第n個鄰居節點作為冗余奇偶校驗信息的專用存儲節點;所述的控制節點讀寫元數據操作之后,并行地從n個鄰居節點上讀取數據和校驗信息,由讀取端合并數據并進行驗證。這種校驗碼只能查錯不能糾錯,它訪問數據時一次處理一個帶區,這樣可以提高讀取和寫入速度。校驗碼在寫入數據時產生并保存在另一個存儲節點上。需要實現時要使用控制節點的三個直接鄰接存儲節點,寫入速率與讀出速率都很高,因為校驗位比較少,因此計算時間相對而言比較少。NRAID3使用單個節點存放奇偶校驗信息,如果一個存儲節點失效,奇偶節點及其他數據存儲節點可以重新產生數據;如果奇偶節點失效,則不影響數據使用。NRAID3對于大量的連續數據可提供很好的傳輸率,但對于隨機數據,奇偶節點會成為寫操作的瓶頸。利用單獨的校驗節點來保護數據雖然沒有鏡像的安全性高,但是存儲利用率得到了很大的提高,為(N-l)/N。5)所述的數據存儲方法采用網絡冗余磁盤陣列NRAID4;所述的網絡冗余磁盤陣列NRAID4為帶奇偶校驗碼的獨立存儲節點結構;每個控制節點存儲其n(n大于等于3,小于等于9)鄰居節點的地址信息和存儲數據的交叉存放規則信息,其中,n-l個鄰居節點用于存儲數據,第n個鄰居節點作為冗余奇偶校驗信息的專用存儲節點;所述的控制節點讀寫元數據操作之后,按照存儲節點進行數據塊的訪問,每次訪問一個存儲節點,最后,由讀取端從n個鄰居節點上讀取數據和校驗信息,合并數據并進行驗證。這種校驗碼同樣只能査錯不能糾錯。所述的讀取端可以是控制節點,也可以是讀取客戶端。6)所述的數據存儲方法采用網絡冗余磁盤陣列NRAID5;所述的網絡冗余磁盤陣列NRAID5為分布式奇偶校驗的獨立存儲節點結構,其奇偶校驗碼存在于所有存儲節點上,并且分布在不同的存儲節點上,以數據的校驗位來保證數據的安全,將數據段的校驗位交叉存放于各個存儲節點上。任何一個存儲節點損壞,都可以根據其它存儲節點上的校驗位來重建損壞的數據。NRAID5也是以數據的校驗位來保證數據的安全,但它不是以單獨存儲節點來存放數據的校驗位,而是存儲的利用率為(N-l)/N。NRAID-5的優點是提供了冗余性(支持一個存儲節點掉線后仍然正常運行),空間利用率較高((N-1)/N),讀寫速度較快(N-l倍)。但當一個存儲節點宕掉之后,運行效率大幅下降。與目前的結構和方法相比,本發明具有下列優點將Peterson圖的特殊性質與RAID技術相結合,利用Peterson圖的強結構特征,可以保障存儲點間的數據通道連通性,同時保障時延等指標在容許范圍之內;而且,Peterson圖中的每個節點均作為控制器點,共10個控制器點,這樣就不存在常規RAID控制器單點問題。本發明從單個節點看的結構都是相同的,得到的性能相似,任何單個節點上執行的算法就是相同的,從而實現網絡RAID,提高了網絡條件下數據存儲的可靠性,可用于廣域數據存儲。圖1為基于Peterson圖的存儲網絡結構示意圖。圖2為Peterson圖節點編號示意圖。圖3為北京市區Peterson存儲結構。具體實施例方式下面結合附圖和具體實施例對本發明提供的基于Peterson圖的網絡冗余磁盤陣列(NRAID)實現方法作進一步闡述。本發明的目的在于提供基于Peterson圖的網絡冗余磁盤陣列實現方法。其中Peterson存儲網絡10個存儲節點形成,這樣構成的存儲網絡結構如圖1所示;其中網絡冗余磁盤陣列共分6級(NRAID0NRAID5),針對每級網絡冗余磁盤陣列提供相應的網絡冗余磁盤陣列實現方法;其中每個存儲節點帶有自身的存儲,可以是DAS(直接附接存儲,可以是單盤方式和RAID方式)、NAS(網絡附接存儲)和SAN(存儲區域網絡)。為達到上述發明目的,本發明的Peterson存儲網絡的存儲節點標號如圖2所示,其中每個節點的鄰居節點(l跳鄰居3個,2跳鄰居6個)是通過測試或人工配置的方式確定的,一旦確定,就不能改變,這類似于傳統RAID中的盤片初始化過程。其中每個節點是與其鄰居的控制節點,即訪問數據的信息由該節點發出,其他鄰居節點提供數據存儲服務,該節點存儲數據的元數據信息(如數據條帶化之后條帶存儲在哪里的信息)。實施例下面結合應用場景說明基于Peterson圖的網絡冗余磁盤陣列(NRAID)實現方法。如圖3所示,本發明提供的一個應用場景假定在X(比如,北京)城市某存儲服務運行公司根據市區、郊縣部署10個存儲節點,節點之間帶寬均為>500Mbps的良好鏈路連接的,這10個節點配置成Peterson圖結構,其編號按圖2所示。該Peterson圖各節點的節點度以及各節點間的距離如下表1和表2所示。表l:節點度節點編號節點度132333435363738393103表2:節點間距離<table>tableseeoriginaldocumentpage10</column></row><table>下面選取一個節點的3個直接鄰居節點存儲數據,以NRAID0、NRAID3為例說明本實施中的網絡冗余磁盤陣列實現方法。4-9個鄰居節點存儲數據的情形可類推。(1)NRAID0每個節點存儲其直接的三個鄰居的地址信息,比如節點1存儲節點5、6、2的地址信息,根據上文中提到的NRAID0的實現方法,節點l作為控制器,該節點存儲數據的條帶化分割規則信息,數據按照條帶化存儲于節點5、6、2上。讀寫元數據操作由節點1進行,之后可并行地從節點5、6、2上讀取數據,并由讀取端(可以是節點l,也可以是讀取客戶端)合并數據。(2)NRAID3每個節點存儲其直接的三個鄰居的地址信息,比如節點1存儲節點5、6、2的地址信息,根據上文中提到的NRAID3的實現方法,節點l作為控制器,該節點存儲數據的交叉存放規則信息,數據存儲于節點5、6,節點2作為冗余奇偶校驗信息的專用存儲節點。讀寫元數據操作由節點1進行,之后可并行地從節點5、6、2上讀取數據和校驗信息,并由讀取端(可以是節點1,也可以是讀取客戶端)合并數據并進行驗證。本實施例雖然選取一個節點的3個直接鄰居節點存儲數據,以NRAID0、NRAID3為例說明在Peterson圖上的網絡冗余磁盤陣列實現方法,但其方法是具有代表性的,普通技術人員可據本
發明內容類似實現其他四種網絡冗余磁盤陣列實現方法。說明文檔中的其他內容針對本專業領域內的普通技術人員,均可進行技術實現,這里不再贅述。權利要求1、一種基于彼特森的網絡存儲結構的數據存儲方法,其特征在于,該方法是在廣域網絡環境下將10個存儲節點按照彼特森圖的方式形成強結構規則圖結構,并利用多臺網絡主機的磁盤存儲能力,借鑒多種可靠性等級的單機RAID技術的實現方式,實現網絡環境下多種可靠性等級的網絡冗余磁盤陣列NRAID支持的數據存儲;所述的強結構規則圖結構,以進入的任意一個存儲節點作為控制節點,其他9個存儲節點作為該控制節點的鄰居節點,其中,3個為一跳鄰居節點,6個為兩跳鄰居節點;所述的控制節點,用于存儲數據的元數據信息,并發出訪問數據的信息;所述的鄰居節點,用于提供數據存儲服務。2、如權利要求1所述的基于彼特森的網絡存儲結構的數據存儲方法,其特征在于,所述的每個存儲節點的存儲形式包括直接附接存儲、網絡附接存儲或存儲區域網絡。3、如權利要求2所述的基于彼特森的網絡存儲結構的數據存儲方法,其特征在于,所述的直接附接存儲采用單盤方式或者RAID方式。4、如權利要求1所述的基于彼特森的網絡存儲結構的數據存儲方法,其特征在于,所述的網絡冗余磁盤陣列NRAID采用網絡冗余磁盤陣列NRAIDO;所述的網絡冗余磁盤陣列NRAID0為無差錯控制的帶區組,除控制節點外,有兩個以上的鄰居節點,數據分成數據塊保存在不同存儲節點上,可以同時讀取。5、如權利要求1所述的基于彼特森的網絡存儲結構的數據存儲方法,其特征在于,所述的網絡冗余磁盤陣列NRAID采用網絡冗余磁盤陣列NRAID1;所述的網絡冗余磁盤陣列NRAID1為鏡像結構,所述的控制節點同時對兩個存儲節點進行讀操作和對兩個存儲節點進行寫操作,該兩個存儲節點中一為主存儲節點,另一為鏡像存儲節點。6、如權利要求1所述的基于彼特森的網絡存儲結構的數據存儲方法,其特征在于,所述的網絡冗余磁盤陣列NRAID采用網絡冗余磁盤陣列NRAID2;所述的網絡冗余磁盤陣列NRAID2為帶海明碼校驗的數據條帶結構,該結構將數據條塊化分布于不同的存儲節點上,條塊化的數據的單位為位或字節,然后使用一定的編碼技術來提供錯誤檢査及恢復,該編碼技術需要多個磁盤存放檢査及恢復信息。7、如權利要求1所述的基于彼特森的網絡存儲結構的數據存儲方法,其特征在于,所述的網絡冗余磁盤陣列NRAID采用網絡冗余磁盤陣列NRAID3;所述的網絡冗余磁盤陣列NRAID3為帶奇偶校驗碼的并行傳送結構;每個控制節點存儲其n個鄰居節點的地址信息和存儲數據的交叉存放規則信息,其中,3Si^9,n-l個鄰居節點用于存儲數據,第n個鄰居節點作為冗余奇偶校驗信息的專用存儲節點;所述的控制節點讀寫元數據操作之后,并行地從n個鄰居節點上讀取數據和校驗信息,由讀取端合并數據并進行驗證。8、如權利要求1所述的基于彼特森的網絡存儲結構的數據存儲方法,其特征在于,所述的網絡冗余磁盤陣列NRAID采用網絡冗余磁盤陣列NRAID4;所述的網絡冗余磁盤陣列NRAID4為帶奇偶校驗碼的獨立存儲節點結構;每個控制節點存儲其n個鄰居節點的地址信息和存儲數據的交叉存放規則信息,其中,35nS9,n-l個鄰居節點用于存儲數據,第n個鄰居節點作為冗余奇偶校驗信息的專用存儲節點;所述的控制節點讀寫元數據操作之后,按照存儲節點進行數據塊的訪問,每次訪問一個存儲節點,最后,由讀取端從n個鄰居節點上讀取數據和校驗信息,合并數據并進行驗證。9、如權利要求7或8所述的基于彼特森的網絡存儲結構的數據存儲方法,其特征在于,所述的讀取端可以是控制節點,也可以是讀取客戶端。10、如權利要求1所述的基于彼特森的網絡存儲結構的數據存儲方法,其特征在于,所述的網絡冗余磁盤陣列NRAID采用網絡冗余磁盤陣列NRAID5;所述的網絡冗余磁盤陣列NRAID5為分布式奇偶校驗的獨立存儲節點結構,將數據段的校驗位交叉存放于各個存儲節點上,其奇偶校驗碼存在于所有存儲節點上,并且分布在不同的存儲節點上,以數據的校驗位來保證數據的安全。全文摘要本發明提供了一種基于彼特森的網絡存儲結構的數據存儲方法,該方法是在廣域網絡環境下將10個存儲節點按照彼特森圖的方式形成強結構規則圖的網絡結構,并利用多臺網絡主機的磁盤存儲能力,借鑒多種可靠性等級的單機RAID技術的實現方式,實現網絡環境下多種可靠性等級的網絡冗余磁盤陣列NRAID支持的數據存儲;所述的強結構規則圖的網絡結構,以進入的任意一個存儲節點作為控制節點,其他9個存儲節點作為該控制節點的鄰居節點,其中,3個為一跳鄰居節點,6個為兩跳鄰居節點;所述的控制節點,用于存儲數據的元數據信息,并發出訪問數據的信息;所述的鄰居節點,用于提供數據存儲服務。本發明將彼特森圖的特殊性質與RAID技術相結合,提高了網絡條件下數據存儲的可靠性。文檔編號G06F12/00GK101645038SQ200910084150公開日2010年2月10日申請日期2009年5月20日優先權日2009年5月20日發明者尤佳莉,王勁林,王玲芳,鄧浩江申請人:中國科學院聲學研究所