本發明專利技術提供一種RAID陣列同步方法,應用于網絡存儲設備上,其中RAID陣列中至少有一塊磁盤被預先指定為同步校驗盤,該方法包括:從RAID陣列中除同步校驗盤外的每個磁盤上讀取未完成同步的同步塊上的數據,其中每個磁盤的同步塊隸屬于一個同步條帶,同步條帶中的每一個同步塊大小相同;根據RAID校驗算法對讀取的多個同步塊數據進行校驗以生成同步校驗數據,并將所述同步校驗數據寫入同步校驗盤上的同步塊上,以使得所述同步條帶上的數據呈現一致性。本發明專利技術可復用部分重建功能的開發成果,降低了開發與維護成本。其次本發明專利技術不局限于條帶為單位進行操作,可以使用更大的同步條帶進行操作,大大提升了同步速度與性能。
【技術實現步驟摘要】
本專利技術涉及網絡存儲技術,尤其涉及一種更加簡潔有效的RAID陣列同步方法及>J-U ρ α裝直。
技術介紹
獨立磁盤RAID陣列(Redundant Array of Independent Disks, RAID)技術廣泛應用于存儲領域,在網絡存儲上尤其流行。RAID技術主要是通過磁盤的冗余性來保證存儲在其上數據的可用性,在使用陣列之前通常要進行陣列 的同步,主要目的包括(I)保證RAID各個條帶上數據的一致性,使其具備數據冗余性;(2)在后續的業務流量中,能夠提升業務流量的性能。RAID陣列進行同步的作用主要是為了提升后續寫入的效率。首先,如果RAID陣列沒有進行過同步,業務數據在RAID算法(以RAID5為例)中只能通過重構寫的方式進行條帶的寫處理,因為不知道條帶上的各個條帶塊(Segment)的數據是否具備一致性,不能使用在隨機流量下性能更好的讀修改寫(Read Modify Write)算法。重構寫(Reconstruct Write)的處理過程包括從當前條帶中不需要修改的Segment中讀取原來的數據,再和本條帶中所有需要修改的Segment上的新數據計算奇偶校驗值,并將新的Segment數據以及新的奇偶校驗值一并寫入到當前條帶。顯然重構寫在隨機流量模型下要牽涉更多的I/O操作。舉例來說,如果RAID陣列的磁盤數為9塊,某時刻一個IO只更新了一個條帶的I個Segment,剩余7個沒有更新。在重構寫模式下,會將沒有被更新的7個Segment的數據讀出,和需要更新的前I個Segment的數據計算出校驗數據,然后將這I個Segment連同校驗數據所在的Segment —并寫入2磁盤。可以看出,這個操作共有讀七個Segment中數據的操作和寫兩個segment的操作。其次,如果RAID陣列進行過同步,則可以根據下發的業務數據所在磁盤個數計算出最優的算法,可能使重構寫也可能是讀修改寫。先從需要修改的Segment上讀取舊的數據,再從條帶上讀取舊的奇偶校驗值;根據舊數據、舊校驗值和需要修改的Segment上的新數據計算出這個條帶上的新的校驗值;最后寫入新的數據和新的奇偶校驗值。這個過程中包含讀取、修改和寫入的一個循環周期,因此稱為讀改寫。讀改寫計算新校驗值的公式為新校驗數據=(老數據EOR新數據)EOR老校驗數據。如果待更新的Segment已經超過了條帶中總Segment數量的一半,則此時不適合用讀改寫,因為讀改寫需要讀出這些Segment中的數據和校驗數據。而如果采用重構寫,只需要讀取剩余不準備更新數據的Segment中的數據即可,因為后者讀數量比前者要少。所以超過一半用重構寫,不到一半用讀改寫。整條更新就用整條寫。因此在隨機寫或磁盤個數較多時,陣列同步后使用讀修改寫的方式可以使系統訪問IO磁盤的次數最少,以提升性能。請參考圖I以及圖2,現有技術中RAID陣列(以RAID5為例)的同步功能均是使用通用的算法在每個條帶上計算出校驗盤的位置,然后通過讀該條帶的數據盤數據,進行校驗后,把校驗數據寫入校驗盤。以同步StripeO為例,同步過程包括a.確定校驗盤的位置為3號盤;b.讀出數據盤DO,Dl和D2在stripeO上的數據;c.異或校驗,獲取校驗盤數據P0=D0 EOR Dl EOR D2 ;d.把PO校驗數據寫入校驗盤。現有技術中陣列同步的處理流程復雜度與RAID陣列重建復雜度處于同一個量級,同步通常會略低于重建;但二者均是以條帶為單元進行遍歷整個陣列進行處理,處理流程較長。首先,在單個磁盤容量越來越大的今天,同步的處理時 間會相應增加,影響用戶體驗。其次,同步與重建之間最大的區別在于在RAID陣列投入使用之后,重建流程可能會經常被使用到(每次有磁盤故障或者管理員更換磁盤),而同步流程通常只會使用一次。這意味著,對于存儲設備廠商來說,需要為不常用的同步功能付出較高的開發成本。
技術實現思路
有鑒于此,本專利技術提供一種RAID陣列同步裝置,應用于網絡存儲設備上,其中該網絡存儲設備包括RAID陣列,所述RAID陣列包括多塊磁盤;其中RAID陣列中至少有一塊磁盤被預先指定為同步校驗盤,其特征在于,該裝置包括數據讀取單元,用于從RAID陣列中除同步校驗盤外的每個磁盤上讀取未完成同步的同步塊上的數據,其中每個磁盤的同步塊隸屬于一個同步條帶,同一個同步條帶中的每一個同步塊大小相同;校驗寫入單元,用于根據RAID陣列對應的RAID校驗算法對讀取的多個同步塊數據進行校驗以生成同步校驗數據,并將所述同步校驗數據寫入所述同步校驗盤上的同步塊上,以使得所述同步條帶上的數據呈現一致性。本專利技術還提供一種RAID陣列同步方法,應用于網絡存儲設備上,其中該網絡存儲設備包括RAID陣列,所述RAID陣列包括多塊磁盤;其中RAID陣列中至少有一塊磁盤被預先指定為同步校驗盤,其特征在于,該方法包括A、從RAID陣列中除同步校驗盤外的每個磁盤上讀取未完成同步的同步塊上的數據,其中每個磁盤的同步塊隸屬于一個同步條帶,同一個同步條帶中的每一個同步塊大小相同;B、根據RAID陣列對應的RAID校驗算法對讀取的多個同步塊數據進行校驗以生成同步校驗數據,并將所述同步校驗數據寫入所述同步校驗盤上的同步塊上,以使得所述同步條帶上的數據呈現一致性。通過本專利技術的設計,首先可以使得同步的業務處理特點更為接近重建業務處理特點,可以有效地復用部分重建功能的開發成果,降低了開發與維護成本。其次本專利技術不再局限于條帶這樣的同步操作對象,可以使用更大的同步條帶進行操作,大大提升了同步速度與性能。附圖說明圖I是現有技術中同步過程中數據處理示意圖。圖2是現有技術中同步過程的流程圖。圖3是本專利技術一種實施方式RAID陣列同步裝置邏輯結構圖。圖4是本專利技術一種實施方式RAID陣列同步方法的處理流程圖。圖5是本專利技術一種實施方式中一個條帶上數據同步過程示意圖。圖6是本專利技術一種實施方式中采用更大同步塊的同步過程示意圖。具體實施例方式請參考圖3,本專利技術提供一種新的RAID陣列同步裝置,應用于網絡存儲設備上,其中該網絡存儲設備包括RAID陣列,所述RAID陣列包括多塊磁盤;以計算機程序實現為例,該同步裝置包括狀態標記單元、數據讀取單元以及校驗寫入單元。該裝置運行于網絡設備時執行如下步驟 步驟101,當有業務數據寫入RAID陣列時,采用重構寫的方式進行業務數據寫入;如
技術介紹
所說的那樣,在同步沒有完成之前,業務數據的寫入都是按照重構寫模式進行與入的。步驟102,從冗余磁盤中選定一個磁盤作為同步校驗盤;步驟103,數據讀取單元從RAID陣列中除同步校驗盤外的每個磁盤上讀取未完成同步的同步塊上的數據,其中每個磁盤的同步塊隸屬于一個同步條帶,同一個同步條帶中的每一個同步塊大小相同;步驟104,校驗寫入單元根據RAID陣列對應的RAID校驗算法對讀取的多個同步塊上的數據進行校驗以生成同步校驗數據,并將所述同步校驗數據寫入所述同步校驗盤上的同步塊上,以使得所述同步條帶上的數據呈現一致性。步驟105,校驗寫入單元進一步檢查同步是否已經完成;如果是則結束,否則返回步驟103。通過以上的流程可以看出,首先本專利技術將RAID陣列中的一個磁盤指定為同步校驗盤,生成的同步校驗數據總是寫入同一個磁盤中;本文檔來自技高網...
【技術保護點】
一種RAID陣列同步裝置,應用于網絡存儲設備上,其中該網絡存儲設備包括RAID陣列,所述RAID陣列包括多塊磁盤;其中RAID陣列中至少有一塊磁盤被預先指定為同步校驗盤,其特征在于,該裝置包括:數據讀取單元,用于從RAID陣列中除同步校驗盤外的每個磁盤上讀取未完成同步的同步塊上的數據,其中每個磁盤的同步塊隸屬于一個同步條帶,同一個同步條帶中的每一個同步塊大小相同;校驗寫入單元,用于根據RAID陣列對應的RAID校驗算法對讀取的多個同步塊數據進行校驗以生成同步校驗數據,并將所述同步校驗數據寫入所述同步校驗盤上的同步塊上,以使得所述同步條帶上的數據呈現一致性。
【技術特征摘要】
【專利技術屬性】
技術研發人員:張鍵,
申請(專利權)人:浙江宇視科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。