專利名稱:儲存系統及其不良儲存裝置資料維持方法
技術領域:
本發明是關于磁碟陣列儲存系統,尤指一種儲存系統的不良儲存裝置資料維持方法。
背景技術:
高容量、快速以及高可用性是磁碟陣列(Redundant Array ofInexpensive/Independent Disks,RAID)系統受到青睞的主因。廣義的RAID系統包括N-RAID(Non-RAID,或稱磁碟擴展(Disk Spanning))、RAID 0(DiskStriping)、RAID 1、RAID 2、RAID 3、RAID 4、RAID 5及RAID 6等型態及其各種不同的組合,其中RAID 1的主要特征為鏡像(Mirroring),使供通過鏡像來備份資料,該備份資料通常稱為檢查資料(Check Data);RAID3RAID 5的檢查資料是通過互斥或運算(XOR Operation)所產生的同位資料(Parity Data)來維持資料一致性,使當磁碟機發生錯誤時能夠確保資料的完整性。RAID 6則需要較多的檢查資料,以允許較多的磁碟機異常時,還能維持資料的完整。
請參閱圖1所示,為現有習知的磁碟陣列系統的示意圖,例如為RAID 4系統,其是由復數個磁碟機D1,D2,D3,D4所組成,這些磁碟機稱為此磁碟陣列系統的成員磁碟機,而互為冗余磁碟機或稱為相關磁碟機,且被劃分為復數個等量磁區條帶(stripe),每一等量磁區條帶由每一成員磁碟機的一等量磁區(chunk)所構成,且一等量磁區是包含復數個區塊(block或sector)。在成員磁碟機中,位于同一等量磁區條帶的使用者資料與檢查資料互為冗余資料,或稱為相關資料。在正常情況下,若其中一個磁碟機D2的資料D21發生錯誤,則可通過讀取與資料D21位于同一等量磁區條帶(Stripe)上的相關資料D11,D31及P1,并對其進行互斥或運算來產生與資料D21相同的資料,亦即D21=P1D11D31。當然,若整個磁碟機D2發生故障(Fail)時,亦可通過上述的互斥或運算來重建(Rebuild)整個磁碟機D2中的資料。
然而,當該等磁碟機D1,D2,D3,D4的其中一個因故障而進行重建時,若在重建時,又發生一筆資料讀取錯誤,則將有可能無法完成重建動作。
請參閱圖2所示,是現有習知的在降次模式(Degraded Mode)下進行資料重新建構的示意圖,其是包括復數個磁碟機D1,D2,D3及D4,其中資料D12,D22,D32以及同位資料P2位于同一等量磁區條帶20,資料D13,D23,D33以及同位資料P3位于同一等量磁區條帶21。當磁碟機D1發生故障而進行重建時,若要重建資料D12,則讀取同一等量磁區條帶20上的資料D22,D32及同位資料P2,若讀取資料D22時發生媒體錯誤(Media Error)而導致無法讀取,則資料D21將無法被重新建構。此外,現有習知的系統可能會因為一直嘗試讀取資料D22而使得重建磁碟機D1上的資料無法順利進行。
然而,若跳過該區塊而略過對資料D12進行重新建構,以繼續對其他區塊進行重建,如此將會使得之后再次存取資料D12時,雖然可以讀取該筆資料D12,但此時所讀取到的資料D12是錯誤的,如此將造成需求應用端不知道而使用錯誤的資料。
請參閱圖3所示,顯示美國專利案號US5913927(下述簡稱’927)為解決上述問題的流程圖,其是在重建或資料重新建構時進行。首先,判斷是否需要進行整個磁碟機的重建動作(步驟S 300),若需要對整個磁碟機進行重建,則插入新磁碟機(步驟S301),接著開始進行同位重建,以重建毀損的磁碟機的資料,亦即通過讀取其他成員磁碟機中的相關資料,并執行互斥或運算來重建資料(步驟S302),若不需執行磁碟機的重建動作,而只針對特定資料來進行重新建構(Reconstruction)動作,則直接執行步驟S302。
在執行互斥或運算之前,會先讀取其他成員磁碟機中的相關資料,并判斷所讀取的資料是否為壞資料(步驟S308)。若讀取資料時沒有壞資料,則通過上述的互斥或運算來完成資料重建。若在讀取資料時,所讀取的資料為壞資料,則繼續判斷該筆壞資料是否位于同位區塊中(步驟S309),若該筆資料位于同位區塊,則代表該筆資料為一同位資料,但是該筆資料是壞的,此時將一具有特定值的充填區塊(Filler)填入待重建資料的區塊,以使得待重建的資料成為一特定值,但該特定值不等于原本的資料,也就是說該填入特定值后的重建資料相對于未毀損前的資料(原本的資料)而言是無效(Invalid)的(步驟S303)。接著,重新對重建資料所屬的等量磁區條帶上的相關資料以及該筆填入特定值的重建資料進行互斥或運算,以獲得一新的同位資料,并以新的同位資料更新同位資料區塊(步驟S305)。
若所讀取的資料為壞資料,且該筆壞資料不在同位區塊中,則將具有特定值的充填區塊填入待重建資料區塊以及所讀取的壞的資料區塊,以使得其資料成為一特定值,但該特定值不等于原本的資料,也就是說該等特定值對于未毀損前的資料(原本的資料)而言是無效的(步驟S304)。繼而,再執行步驟S305,以重新進行互斥或運算并將所獲得的同位資料更新同位資料區塊。
由于上述填入特定值的資料區塊,其值是錯誤的,因此為了避免將來主機端讀取該等區塊時發生讀取錯誤資料的情形,’927專利是將填入特定值的資料區塊的位址記錄于一壞資料表(BDT)中,并在完成互斥或運算后更新該壞資料表(步驟S306)。最后,再繼續下一資料區塊的重建動作,直到重建動作完成(步驟S307)。因此,當主機端讀取到填入特定值的資料區塊時,將得到一錯誤訊息,直到主機端再將新的資料覆寫于該等先前填入特定值的資料區塊時,才會將壞資料表中的記錄取消。
然而,上述作法對于資料保護的可靠度并不佳。例如若在進行資料重建時,讀取資料發生媒體錯誤的情形,即馬上將一充填區塊填入該讀取的資料區塊。由于,發生媒體錯誤的情形有可能是因為電壓不穩、溫度過高、系統不穩等暫態因素而發生,雖然該筆資料暫時有可能無法讀取,但下一次還是有機會可以被成功讀取,是故馬上填入充填區塊將導致該筆資料永久遺失,使得系統的可靠度不佳。
由此可見,上述現有的磁碟儲存系統及其不良儲存裝置資料維持方法在結構、方法與使用上,顯然仍存在有不便與缺陷,而亟待加以進一步改進。為了解決儲存系統及其不良儲存裝置資料維持方法存在的問題,相關廠商莫不費盡心思來謀求解決之道,但長久以來一直未見適用的設計被發展完成,而一般產品又沒有適切的結構能夠解決上述問題,此顯然是相關業者急欲解決的問題。因此如何能創設一種新的儲存系統及其不良儲存裝置資料維持方法,便成了當前業界極需改進的目標。
有鑒于上述現有的儲存系統及其不良儲存裝置資料維持方法存在的缺陷,本發明人基于從事此類產品設計制造多年豐富的實務經驗及專業知識,并配合學理的運用,積極加以研究創新,以期創設一種新的儲存系統及其不良儲存裝置資料維持方法,能夠改進一般現有的儲存系統及其不良儲存裝置資料維持方法,使其更具有實用性。經過不斷的研究、設計,并經反復試作樣品及改進后,終于創設出確具實用價值的本發明。
發明內容
本發明的目的在于,克服現有的儲存系統存在的缺陷,而提供一種新型結構的儲存系統,所要解決的技術問題是使其能夠提供一較佳的資料保護。
本發明的另一目的在于,克服現有的儲存系統的不良儲存裝置資料維持方法存在的缺陷,而提供一種新的儲存系統的不良儲存裝置資料維持方法,所要解決的技術問題是使其可以提供一較佳的資料保護。
本發明的再一目的是在提供一種儲存系統及其不良儲存媒體資料維持方法,所要解決的技術問題是使其能夠提高系統整體可靠度,從而更加適于實用。
本發明的目的及解決其技術問題是采用以下技術方案來實現的。依據本發明提出的不良儲存裝置資料維持方法,是使用于一降次模式下的儲存系統中,其中在該降次模式下是有一筆目標資料需重新建構,該方法包括下述步驟一讀取相關資料步驟,讀取至少一筆相關資料,其中該至少一筆相關資料是與該目標資料相關;一注記步驟,若該至少一筆相關資料讀取錯誤而致該目標資料無法重新建構,且該讀取錯誤的相關資料為使用者資料,則注記一第一注記于該讀取錯誤的相關資料的位置,而該需重新建構的目標資料若為使用者資料,則一并對該目標資料的位置注記為一第二注記;以及一更新檢查資料步驟,通過沒有被注記的該等相關資料中的使用者資料來重新計算出一新的檢查資料,并以之更新原有的檢查資料。
本發明的目的及解決其技術問題還采用以下技術措施來進一步實現。
前述的不良儲存裝置資料維持方法,其中被注記為該第一注記的相關資料再次被讀取時,若讀取成功,則該第一注記可被刪除,并在刪除該第一注記后,更新與被刪除該第一注記的資料相關的檢查資料。
前述的不良儲存裝置資料維持方法,其中更包含若寫入一筆新資料于一已經被注記的資料的位置時,則刪除該資料的位置的注記,且寫入該筆新資料與更新與該新資料相關的檢查資料。
前述的不良儲存裝置資料維持方法,其中更包含在寫入一筆新資料前,是記錄與該筆目標資料相關的檢查資料的位置,并在完成寫入該筆新資料與更新檢查資料后,刪除先前記錄的該位置。
前述的不良儲存裝置資料維持方法,其中若讀取一筆資料且該筆資料的位置被注記為該第二注記,則回傳一錯誤訊息回一需求應用端。
前述的不良儲存裝置資料維持方法,其中若讀取一筆資料錯誤且該筆資料的位置被注記為該第一注記,則回傳一錯誤訊息回一需求應用端。
前述的不良儲存裝置資料維持方法,其中若讀取一筆資料錯誤而該筆資料的位置沒有被注記,則通過讀取其他相關資料來重新產生該筆資料。
本發明的目的及解決其技術問題是采用以下技術方案來實現的。依據本發明提出的不良儲存裝置資料維持方法,是用于儲存系統的資料寫入儲存裝置時,而當有一新的資料待寫入且需重新計算一新的檢查資料之時,該方法包括下述步驟一注記步驟,若該新的資料的至少一筆相關資料無法讀取而致該新的檢查資料無法產生,其中若該至少一筆相關資料為使用者資料且因媒體錯誤而無法讀取,則對其位置注記一第一注記,若該至少一筆相關資料為使用者資料且因儲存裝置故障而無法讀取,則對其位置注記一第二注記;以及一更新檢查資料步驟,通過沒有被注記的該等相關資料中的使用者資料與該新的資料來重新計算出一新的檢查資料,并以之更新原有的檢查資料,其中若該新的資料寫入時,寫入資料的位置已經有注記,則刪除該注記。
本發明的目的及解決其技術問題還采用以下技術措施來進一步實現。
前述的不良儲存裝置資料維持方法,其中被注記為該第一注記的相關資料再次被讀取時,若讀取成功,則該第一注記被刪除,并在刪除該第一注記后,更新與被刪除該第一注記的資料相關的檢查資料。
前述的不良儲存裝置資料維持方法,其中若讀取一筆資料且該筆資料的位置被注記為該第二注記,則回傳一錯誤訊息回一需求應用端。
前述的不良儲存裝置資料維持方法,其中若讀取一筆資料錯誤且該筆資料的位置被注記為該第一注記,則回傳一錯誤訊息回一需求應用端。
前述的不良儲存裝置資料維持方法,其中若讀取一筆資料錯誤而該筆資料的位置沒有被注記,則通過讀取其他相關資料來重新產生該筆資料。
本發明的目的及解決其技術問題是采用以下技術方案來實現的。依據本發明提出的儲存系統,其包括一需求應用端;一控制器,與該需求應用端耦接;一儲存裝置陣列,與該控制器耦接,且其具有復數儲存裝置;以及至少一錯誤資料區塊表,記錄有一第一注記與一第二注記,其中該第一注記用以注記暫時無法讀取的資料的位置,該第二注記用以注記資料遺失無法重新產生的資料的位置,且在注記該第一注記與該第二注記后,是會產生一新的檢查資料,其中該新的檢查資料不保護該等位置被注記的資料。
本發明的目的及解決其技術問題還采用以下技術措施來進一步實現。
前述的儲存系統,其中所述的至少一錯誤資料區塊表是能分別儲存于每一儲存裝置中。
前述的儲存系統,其中所述的至少一錯誤資料區塊表是能儲存于一非揮發性儲存單元中。
前述的儲存系統,其中被注記為該第一注記的相關資料再次被讀取時,若讀取成功,則該第一注記被刪除,并在刪除該第一注記后,更新與被刪除該第一注記的資料相關的檢查資料。
前述的儲存系統,其中若讀取一筆資料且該筆資料的位置被注記為該第二注記,則回傳一錯誤訊息至該需求應用端。
前述的儲存系統,其中若讀取一筆資料錯誤而該筆資料的位置沒有被注記,則通過讀取其他相關資料來重新產生該筆資料。
前述的儲存系統,其中更包含若寫入一筆新資料于一已經被注記的資料的位置時,則刪除該資料的位置的注記,且寫入該筆新資料與更新與該新資料相關的檢查資料。
前述的儲存系統,其中若讀取一筆資料錯誤且該筆資料的位置被注記為該第一注記,則回傳一錯誤訊息至該需求應用端。
本發明與現有技術相比具有明顯的優點和有益效果。由以上技術方案可知,本發明儲存系統及其不良儲存裝置資料維持方法至少具有下列優點本發明儲存系統及其不良儲存裝置資料維持方法是提供“未保護”注記及/或“壞資料”注記來管理資料,其中“未保護”注記用來注記發生媒體錯誤而導致無法重新產生檢查資料的儲存裝置中的使用者資料的位置,使當其位置被注記為“未保護”注記的資料被成功讀取時,該資料仍為有效的,且該“未保護”注記可被取消,使能在媒體錯誤情形下維持該資料。此外,“壞資料”注記是用于故障的儲存裝置中的使用者資料的位置,其中在降次模式時,該故障的儲存裝置是為待重建的儲存裝置;在資料寫入且有儲存裝置發生讀取異常時,該故障的儲存裝置是為資料沒有寫入的非目標儲存裝置。在此“壞資料”是指該筆資料或許可以被讀取,但其值為錯誤的,因此被讀取時,主機將接收到一資料錯誤訊息,因此藉由上述手段來達成提供一較佳的資料保護以及提高系統整體可靠度。
綜上所述,本發明特殊的儲存系統及其不良儲存裝置資料維持方法,其具有上述諸多的優點及實用價值,并在同類產品及方法中未見有類似的結構設計及方法公開發表或使用而確屬創新,其不論在產品結構、方法或功能上皆有較大的改進,在技術上有較大的進步,并產生了好用及實用的效果,且較現有的儲存系統及其不良儲存裝置資料維持方法具有增進的多項功效,從而更加適于實用,誠為一新穎、進步、實用的新設計。
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其他目的、特征和優點能夠更明顯易懂,以下特舉較佳實施例,并配合附圖,詳細說明如下。
圖1顯示習知磁碟陣列系統的示意圖。
圖2顯示習知降次模式下進行重建的示意圖。
圖3顯示習知在降次模式下進行資料管理的流程圖。
圖4顯示本發明較佳實施例的儲存系統示意圖。
圖5顯示本發明較佳實施例的動作流程圖。
圖6顯示本發明較佳實施例的待重建資料是為使用者資料的示意圖。
圖7a顯示本發明較佳實施例的寫入資料流程圖。
圖7b顯示本發明較佳實施例的讀取資料流程圖。
圖7c顯示本發明較佳實施例的移除未保護注記的流程圖。
圖8顯示本發明較佳實施例的移除未保護注記的示意圖。
圖9顯示本發明于資料寫入時發生儲存裝置讀取異常而致新的檢查資料無法被產生的資料維持示意圖。
具體實施例方式
為更進一步闡述本發明為達成預定發明目的所采取的技術手段及功效,以下結合附圖及較佳實施例,對依據本發明提出的儲存系統及其不良儲存裝置資料維持方法其具體實施方式
、結構、方法、步驟、特征及其功效,詳細說明如后。
本發明所提供的儲存系統及其不良儲存裝置資料維持方法是能用在冗余儲存裝置的降次模式(Degraded Mode)下又發生媒體錯誤(Media Error)時的資料處理,或者用于資料寫入且有儲存裝置發生讀取異常而致新的檢查資料無法被產生時,其中儲存裝置可為磁帶(Tape)、磁碟機(Disk Drive)、記憶體(Memory)或光儲存記錄媒體或其他等效的儲存裝置。在RAID1,3,4,5降次模式時,已有一第一儲存裝置無法讀取資料,若此時又有一第二儲存裝置無法讀取資料,則將使得該第一儲存裝置的資料無法被重建,但在RAID6中,則允許同時有較多的儲存裝置讀不到資料,而能進行資料重建。因此,本發明提供“未保護”注記及/或“壞資料”注記來進行資料管理,能使得其他沒有被注記之資料能維持較佳的保護,其中被注記為“未保護”的資料是指該筆資料暫時無法讀取,但若再次讀取時,該筆資料的內容仍有可能讀取成功,若讀取成功則該筆資料仍是有效(Valid)的資料;被注記為“壞資料”的資料是指該筆資料已經遺失,但該筆資料所在位置也許可以被讀取,但卻是無效的資料。此外,本發明并在注記資料后重新計算新的檢查資料(Check Data),其中新的檢查資料計算時是不包括被注記為“壞資料”與“未保護”的資料,亦即檢查資料沒有保護被注記為“壞資料”與“未保護”的資料。
圖4顯示本發明的較佳實施例的儲存系統示意圖,其包括主機41、控制器42以及實體儲存裝置陣列43,其中實體儲存裝置陣列43具有復數個實體磁碟機431,432,433,434,435,該等磁碟機431,432,433,434,435可相連接于同一通道(Channel)(或匯流排介面)或不同通道上。
在本實施例中,是設置有錯誤資料區塊表以記錄被注記資料的位置,而每一磁碟陣列(RAID)均設有一錯誤資料區塊表,其中該磁碟陣列由復數儲存裝置(例如磁碟機、記憶體、磁帶等)所組成,而該磁碟陣列可為RAID 1、RAID 3、RAID 4、RAID 5、RAID 6或其他磁碟陣列階層(組態)。
如圖4所示,該等磁碟機431,432,433,434,435皆儲存有錯誤資料區塊表44,供其中至少一磁碟機故障時,錯誤資料區塊表44仍會存在,且錯誤資料區塊表44亦不會因為控制器42故障而不見。在其他實施例中,錯誤資料區塊表44可儲存于一非揮發性儲存單元(Non-Volatile StorageUnit)中,其中該非揮發性儲存單元可位于控制器42內部或位于控制器42外部。在此,該非揮發性儲存單元可以為快閃記憶體(Flash)、磁性隨機存取記憶體(Magnetic Random Access Memory,MRAM)、鐵電記憶體(Ferroelectronic RAM,FRAM)、磁帶或磁碟機。有關如何通過錯誤資料區塊表44來達成錯誤資料管理,敬請參照下述說明。
圖5顯示本發明較佳實施例的動作流程圖,有關其說明,敬請一并參照圖4及圖6,在本實施例中,是以RAID 4為例。當實體儲存裝置陣列43的其中一個磁碟機發生故障而需進行重建(Rebuild)時,是開始執行步驟S500。在本實施例中,是以圖6中的磁碟機432發生故障而進行重建,當資料D151進行重新建構時,是讀取與資料D151相關的其他資料(包括使用者資料D141,D161,D171及同位資料P4)(步驟S505),并判斷該等相關的其他資料是否因媒體錯誤而導致讀取錯誤(步驟S510),若該等相關的其他資料皆讀取成功,則對該等相關的其他資料進行互斥或運算,以重新建構資料D151(步驟S540)。
若在讀取該等相關的其他資料時,有一筆資料因媒體錯誤而導致讀取錯誤,則判斷該筆讀取錯誤的資料是否為使用者資料(步驟S515),若該筆讀取錯誤的資料(例如為資料D161)為使用者資料,則對資料D161的位置注記為“未保護”,亦即在錯誤資料區塊表44中對資料D161的位置注記為“未保護”。若該筆讀取錯誤的資料不是使用者資料,或者在執行完步驟S520后,繼續判斷需要重新建構的資料(在此稱為目標資料(Target Data))是否為使用者資料(步驟S525),若目標資料為使用者資料(在本實施例中,目標資料D151為使用者資料)卻無法重新建構,因此資料將會遺失,繼而在錯誤資料區塊表44中注記該資料的位置為“壞資料”(步驟S530)。
若目標資料D151不是使用者資料,或者在執行完步驟S530后,則對沒有被注記的資料進行互斥或運算,以獲得新的同位資料,并將其更新(覆寫舊的同位資料)(步驟S535)。在本實施例中,同位資料即為檢查資料。
在本實施例中,目標資料D151的位置與讀取錯誤的資料D161的位置分別被注記為“壞資料”與“未保護”,因此在更新同位資料時,只有讀取使用者資料D141,D171來進行互斥或運算,使得新的同位資料P4’=D141D171,能維持使用者資料D141,D171與新的同位資料P4’具有資料一致性,以保護資料D141,D171。如此,在之后的資料存取時,若使用者資料D141,D171與新的同位資料P4’其中一個資料發生問題而無法存取時皆能通過互斥或運算再次重新產生(Regenerate)。
在上述該等實施例當中,每一筆資料可包含一個或多個區塊的資料,同時“未保護”注記及“壞資料”注記可以針對資料區塊來進行。當然,雖然上述該等實施例是以RAID 4為例,其亦可應用于RAID 1,3,5,6及其延伸與組合。唯,應用于RAID 6時,由于其是有較多的檢查資料,因此可以容許有較多的錯誤,所以在重新建構資料時,若有儲存裝置無法讀取資料而致無法重新建構該資料時,即可適用。
圖7a顯示本發明較佳實施例的寫入資料流程圖,有關其說明,敬請一并參照圖4的系統示意圖。當寫入新資料(步驟S705)時,控制器42會先計算待寫入資料的相關的新同位資料,并記錄其位置于控制器42的非揮發性記憶體(圖未示)中,以防止寫入資料因電源中斷而未完成寫入,而能通過上述計算的新同位資料及寫入位置的記錄來進行資料回復(步驟S710)。接著,控制器42通過錯誤資料區塊表來判斷待寫入資料的位置是否有被注記(步驟S715),若待寫入資料的位置有被注記,則先刪除該待寫入資料的位置的注記(步驟S720),繼而寫入新的資料與新的同位資料(步驟S725)。若待寫入資料的位置沒有被注記,則直接寫入新的資料與新的同位資料(步驟S725)。在完成上述資料寫入動作后,控制器42并將先前所記錄的待寫入資料的位置予以刪除(步驟S730),繼而回傳一寫入資料完成訊息給需求應用端,其可為一裝置或一應用軟體(圖未示)。
圖7b顯示本發明較佳實施例的讀取資料流程圖,有關其說明,敬請一并參照圖4的系統示意圖。當讀取資料(步驟S740)時,控制器42會先判斷待讀取資料的位置是否被注記為“壞資料”(步驟S745)。若待讀取資料的位置有被注記為“壞資料”,則回傳一媒體錯誤訊息給需求應用端(例如主機41)(步驟S780)。若待讀取資料的位置沒有被注記為“壞資料”,則讀取資料(步驟S750);在讀取資料時,并判斷是否發生媒體錯誤(Media Error)(步驟S755)。
若讀取資料時發生媒體錯誤,則判斷該待讀取資料的位置是否有被注記為“未保護”(步驟S760)。若該待讀取資料的位置被注記為“未保護”,表示該待讀取資料沒有被同位資料保護,因此無法通過讀取其他相關資料來重新產生,并回傳媒體錯誤訊息給需求應用端(步驟S780);若待讀取資料的位置沒有被注記為“未保護”,則控制器42通過讀取與待讀取資料相關的其他資料來重新產生(Regenerate)該待讀取資料(步驟S765)。
在執行資料重新產生時,有可能因為其中一筆冗余資料無法讀取而導致資料重新產生失敗。因此,在執行完資料重新產生后,控制器42判斷是否成功重新產生資料(步驟S770)。若成功重新產生資料,則回傳重新產生的待讀取資料至需求應用端(步驟S775);若沒有成功重新產生資料,則回傳媒體錯誤訊息給需求應用端(步驟S780)。
在步驟S755中,若讀取資料時沒有發生媒體錯誤,則判斷該待讀取資料的位置是否有被注記為“未保護”(步驟S790)。若該讀取資料的位置沒有被注記為“未保護”,則回傳該資料至需求應用端(步驟S775);若該讀取資料的位置有被注記為“未保護”,則可初始化一消除“未保護注記”程序(步驟S795),并回傳讀取資料(步驟S775)。有關消除“未保護注記”程序的詳細說明,敬請參照圖7c與圖8。
在圖8中,使用者資料D15,D25,D 35與同位資料P5位于同一等量磁區條帶(Stripe)80,使用者資料D25為待讀取資料,且其被注記為“未保護”。由于使用者資料D25被注記,所以同位資料P5是由使用者資料D15,D35通過互斥或運算計算而來。
在圖7c中,在開始執行消除“未保護”程序(步驟S796)時,由于資料D25已成功讀取,是故必須重新計算與該資料D25位于同一等量磁區條帶80上的新同位資料P5’,以保護該等資料D15,D25,D35。首先,讀出與該讀取資料D25位于同一等量磁區條帶的同位資料P5,該同位資料P5可由控制器42中的快取記憶體(圖未示)讀出或由相關的磁碟機中讀出(步驟S797)。接著,藉由已讀取的資料D25與舊的同位資料P5重新計算一新的同位資料P5’(步驟S798)。然而,為了避免寫入新的同位資料P5’時發生電源中斷而導致未完成寫入新的同位資料P5’,所以控制器42會記錄新的同位資料P5’所位于的等量磁區條帶的位置于控制器42的非揮發性記憶體(圖未示)中(步驟S711)。繼而控制器42寫入新的同位資料P5’以及將錯誤資料區塊表中有關資料D25的“未保護”注記予以刪除(步驟S799)。之后,控制器42將先前所記錄的新的同位資料P5’的等量磁區條帶位置予以刪除(步驟S731)。
圖9顯示本發明實施于資料寫入且發生儲存裝置讀取異常而致新的檢查資料無法被產生的示意圖。在圖9中,其是包括有主機41、控制器42以及實體儲存裝置陣列43,其中控制器42具有記憶體421,實體儲存裝置陣列43具有磁碟機431,432,433,434及435。在該等磁碟機431,432,433,434及435中分別具有使用者資料R1,R2,R3,R4及同位資料P6,且其是位于同一等量磁區條帶90上,同位資料P6是由該等使用者資料R1,R2,R 3及R4進行互斥或運算所獲得,亦即P6=R1R2R3R4。
當主機41通過控制器42將一待寫入資料W1寫入磁碟機431時,若此時磁碟機431及432皆發生媒體錯誤(例如在磁碟機431中的使用者資料R1讀取錯誤,在磁碟機432中的使用者資料R2亦讀取錯誤),則此時需進行資料保護機制。在本實例中,由于磁碟機431發生媒體錯誤,待寫入資料W1寫入磁碟機時可以直接覆寫舊的使用者資料R1或通過重新分配(Reassign)機制來將待寫入資料W1寫至其他位置。
但在寫入待寫入資料W1時,亦必須重新計算同位資料,而位于磁碟機432中的使用者資料R2無法讀取,因而導致新的同位資料無法建立,因此本發明將使用者資料R2的位置注記為“未保護”,亦即計算新的同位資料時不包含使用者資料R2。此時,新的同位資料P6’會由該寫入資料W1與使用者資料R3,R4來通過互斥或運算產生,亦即P6’=W1R3R4。也就是說,新的同位資料P6’僅保護該寫入資料W1與使用者資料R3,R4,而不會保護其位置被注記的使用者資料R2,能藉此維持資料保護。但如果使用者資料R2能再被讀取成功,其資料仍是正確的,只是沒有受到同位資料P6’的保護。有關注記于使用者資料R2的位置的“未保護”注記的移除及移除后的相關處理,上述實施例已說明,在此不再詳加描述。
在其他實施例中,有可能磁碟機432已發生故障而儲存系統在降次模式下,若此時磁碟機431在寫入資料W1前先讀取資使用者資料R1亦發生媒體錯誤,則此時使用者資料R2將會遺失而無法重新產生,故使用者資料R2的位置會被注記為“壞資料”注記。相類似的,新的同位資料P6’仍然由該寫入資料W1與使用者資料R3,R4來通過互斥或運算產生。
在某些情況下,磁碟機431有可能發生故障,且另一磁碟機432可能發生媒體錯誤的情形,此時雖然因為磁碟機431故障而待寫入資料W1不會馬上被寫入,但新的同位資料P6’仍會被更新,即P6’=W1R3R4。由于磁碟機432發生媒體錯誤,因此使用者資料R2的位置會被注記為“未保護”注記,是故新的同位資料P6’不會保護使用者資料R2。之后,以另一個磁碟機來替代故障的磁碟機431時,該寫入資料W1可通過讀取之前被保護的使用者資料R3,R4與新的同位資料P6’,并將其進行互斥或運算來產生之,亦即W1=P6’R3R4,且該寫入資料W1在重新產生后,會被寫入該替代的磁碟機。相類似地,本實施例亦能適用于RAID 1,3,5,6及其延伸與組合。
以上所述,僅是本發明的較佳實施例而已,并非對本發明作任何形式上的限制,雖然本發明已以較佳實施例揭露如上,然而并非用以限定本發明,任何熟悉本專業的技術人員,在不脫離本發明技術方案范圍內,當可利用上述揭示的方法及技術內容作出些許的更動或修飾為等同變化的等效實施例,但是凡是未脫離本發明技術方案的內容,依據本發明的技術實質對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發明技術方案的范圍內。
權利要求
1.一種不良儲存裝置資料維持方法,使用于一降次模式下的儲存系統中,其中在該降次模式下是有一筆目標資料需重新建構,其特征在于該方法包括下述步驟一讀取相關資料步驟,讀取至少一筆相關資料,其中該至少一筆相關資料是與該目標資料相關;一注記步驟,若該至少一筆相關資料讀取錯誤而致該目標資料無法重新建構,且該讀取錯誤的相關資料為使用者資料,則注記一第一注記于該讀取錯誤的相關資料的位置,而該需重新建構的目標資料若為使用者資料,則一并對該目標資料的位置注記為一第二注記;以及一更新檢查資料步驟,通過沒有被注記的該等相關資料中的使用者資料來重新計算出一新的檢查資料,并以之更新原有的檢查資料。
2.根據權利要求1所述的不良儲存裝置資料維持方法,其特征在于其中被注記為該第一注記的相關資料再次被讀取時,若讀取成功,則該第一注記可被刪除,并在刪除該第一注記后,更新與被刪除該第一注記的資料相關的檢查資料。
3.根據權利要求1所述的不良儲存裝置資料維持方法,其特征在于其中更包括若寫入一筆新資料于一已經被注記的資料的位置時,則刪除該資料的位置的注記,且寫入該筆新資料與更新與該新資料相關的檢查資料。
4.根據權利要求1所述的不良儲存裝置資料維持方法,其特征在于其中更包括在寫入一筆新資料前,記錄與該筆目標資料相關的檢查資料的位置,并在完成寫入該筆新資料與更新檢查資料后,刪除先前記錄的該位置。
5.根據權利要求1所述的不良儲存裝置資料維持方法,其特征在于其中若讀取一筆資料且該筆資料的位置被注記為該第二注記,則回傳一錯誤訊息回一需求應用端。
6.根據權利要求1所述的不良儲存裝置資料維持方法,其特征在于其中若讀取一筆資料錯誤且該筆資料的位置被注記為該第一注記,則回傳一錯誤訊息回一需求應用端。
7.根據權利要求1所述的不良儲存裝置資料維持方法,其特征在于其中若讀取一筆資料錯誤而該筆資料的位置沒有被注記,則通過讀取其他相關資料來重新產生該筆資料。
8.一種不良儲存裝置資料維持方法,用于儲存系統的資料寫入儲存裝置時,而當有一新的資料待寫入且需重新計算一新的檢查資料之時,其特征在于該方法包括下述步驟一注記步驟,若該新的資料的至少一筆相關資料無法讀取而致該新的檢查資料無法產生,其中若該至少一筆相關資料為使用者資料且因媒體錯誤而無法讀取,則對其位置注記一第一注記,若該至少一筆相關資料為使用者資料且因儲存裝置故障而無法讀取,則對其位置注記一第二注記;以及一更新檢查資料步驟,是通過沒有被注記的該等相關資料中的使用者資料與該新的資料來重新計算出一新的檢查資料,并以之更新原有的檢查資料,其中若該新的資料寫入時,寫入資料的位置已經有注記,則刪除該注記。
9.根據權利要求8所述的不良儲存裝置資料維持方法,其特征在于其中被注記為該第一注記的相關資料再次被讀取時,若讀取成功,則該第一注記被刪除,并在刪除該第一注記后,更新與被刪除該第一注記的資料相關的檢查資料。
10.根據權利要求8所述的不良儲存裝置資料維持方法,其特征在于其中若讀取一筆資料且該筆資料的位置被注記為該第二注記,則回傳一錯誤訊息回一需求應用端。
11.根據權利要求8所述的不良儲存裝置資料維持方法,其特征在于其中若讀取一筆資料錯誤且該筆資料的位置被注記為該第一注記,則回傳一錯誤訊息回一需求應用端。
12.根據權利要求8所述的不良儲存裝置資料維持方法,其特征在于其中若讀取一筆資料錯誤而該筆資料的位置沒有被注記,則通過讀取其他相關資料來重新產生該筆資料。
13.一種儲存系統,其特征在于其包括一需求應用端;一控制器,與該需求應用端耦接;一儲存裝置陣列,與該控制器耦接,且其具有復數儲存裝置;以及至少一錯誤資料區塊表,記錄有一第一注記與一第二注記,其中該第一注記用以注記暫時無法讀取的資料的位置,該第二注記用以注記資料遺失無法重新產生的資料的位置,且在注記該第一注記與該第二注記后,會產生一新的檢查資料,其中該新的檢查資料不保護該等位置被注記的資料。
14.根據權利要求13所述的儲存系統,其特征在于其中所述的至少一錯誤資料區塊表能分別儲存于每一儲存裝置中。
15.根據權利要求13所述的儲存系統,其特征在于其中所述的至少一錯誤資料區塊表能儲存于一非揮發性儲存單元中。
16.根據權利要求13所述的儲存系統,其特征在于其中被注記為該第一注記的相關資料再次被讀取時,若讀取成功,則該第一注記被刪除,并在刪除該第一注記后,更新與被刪除該第一注記的資料相關的檢查資料。
17.根據權利要求13所述的儲存系統,其特征在于其中若讀取一筆資料且該筆資料的位置被注記為該第二注記,則回傳一錯誤訊息至該需求應用端。
18.根據權利要求13所述的儲存系統,其特征在于其中若讀取一筆資料錯誤而該筆資料的位置沒有被注記,則通過讀取其他相關資料來重新產生該筆資料。
19.根據權利要求13所述的儲存系統,其特征在于其中更包括若寫入一筆新資料于一已經被注記的資料的位置時,則刪除該資料的位置的注記,且寫入該筆新資料與更新與該新資料相關的檢查資料。
20.根據權利要求13所述的儲存系統,其特征在于其中若讀取一筆資料錯誤且該筆資料的位置被注記為該第一注記,則回傳一錯誤訊息至該需求應用端。
全文摘要
本發明是有關于一種儲存系統及其不良儲存裝置資料維持方法,其是提供第一注記及/或第二注記用于冗余儲存裝置的降次模式(Degraded Mode)狀況下又發生媒體錯誤(Media Error)時的資料處理,或者用于資料寫入且有儲存裝置發生讀取異常而致新的檢查資料無法被產生時,能提供一較佳的資料保護方式。該方法包括下述步驟讀取相關資料步驟;注記步驟;以及更新檢查資料步驟。該儲存系統包括需求應用端;控制器;儲存裝置陣列;以及至少一錯誤資料區塊表。本發明的儲存系統及其不良存儲裝置資料維持方法可以提供較佳的資料保護,并可以提高整個系統的穩定性。
文檔編號G06F12/16GK1815455SQ20051013026
公開日2006年8月9日 申請日期2005年12月12日 優先權日2004年12月10日
發明者洪清海 申請人:普安科技股份有限公司