两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

存儲系統(tǒng)及其控制方法和程序的制作方法

文檔序號:6635008閱讀:163來源:國知局
專利名稱:存儲系統(tǒng)及其控制方法和程序的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及用于通過高速緩沖存儲器來處理從上級裝置到RAID(獨(dú)立盤冗余陣列)配置的存儲裝置的輸入/輸出請求的存儲系統(tǒng)及其控制方法和程序;更具體地,涉及用于將在高速緩沖存儲器中更新了的最新數(shù)據(jù)回寫到形成RAID 5的冗余配置的存儲裝置的存儲系統(tǒng)及其控制方法和程序。
背景技術(shù)
傳統(tǒng)上,在用于處理來自主機(jī)的輸入/輸出請求的RAID裝置中,按圖1的方式,高速緩沖存儲器102設(shè)置在RAID裝置100的控制模塊101中,從主機(jī)至盤裝置104-1至104-4(其構(gòu)成了RAID-5組105)的輸入/輸出請求被構(gòu)成為在高速緩沖存儲器102中被處理。按頁單位對這種RAID裝置100的高速緩存數(shù)據(jù)進(jìn)行管理,并且,按圖2的方式,例如以66,560個字節(jié)作為一頁的方式來管理高速緩存頁106。高速緩存頁106包括多個用作主機(jī)的存取單位的塊單位中的用戶數(shù)據(jù),其中用戶數(shù)據(jù)的一個塊為512字節(jié),每512字節(jié)向其加入8字節(jié)的塊校驗(yàn)碼(BCC),將520字節(jié)塊的128塊單位作為一頁來管理,因此,一頁為520×128=66,560字節(jié)。為管理高速緩存頁106準(zhǔn)備稱為高速緩存包元素(CBE)的高速緩存管理表。在高速緩存管理表中,存在對應(yīng)于每一頁的管理記錄,該管理記錄例如保持有邏輯單元號(LUN)、邏輯塊地址(LBA)和臟數(shù)據(jù)(其中由一個比特來表示一個塊)的臟數(shù)據(jù)位圖。高速緩存管理表的一頁具有與構(gòu)成RAID組的各個盤裝置的條帶(strip)區(qū)的大小相同的大小。這里,當(dāng)RAID 5用作RAID裝置100的冗余配置時,在高速緩沖存儲器102中設(shè)置有用于存儲高速緩存數(shù)據(jù)的高速緩存區(qū)108,并且,與高速緩存區(qū)108分立地,設(shè)置有用于存儲舊數(shù)據(jù)和舊奇偶校驗(yàn)(parity)的數(shù)據(jù)緩沖區(qū)110和用于存儲新奇偶校驗(yàn)的奇偶校驗(yàn)緩沖區(qū)112,作為用于在回寫處理中產(chǎn)生新奇偶校驗(yàn)的工作區(qū)。在回寫處理中,例如,如果產(chǎn)生了將作為一頁數(shù)據(jù)存在于高速緩存區(qū)108的新數(shù)據(jù)(D2)new回寫到盤裝置104-2的請求,則在高速緩沖存儲器102中保留了數(shù)據(jù)緩沖區(qū)110和奇偶校驗(yàn)緩沖區(qū)112之后執(zhí)行回寫處理。這里,由于將新數(shù)據(jù)(D2)寫入盤裝置中的一個,所以該回寫處理稱為小寫入(smallwrite)。在小寫入中,從盤裝置104-2讀出舊數(shù)據(jù)(D2)old,并將其存儲在數(shù)據(jù)緩沖區(qū)110中,并且,從盤裝置104-4讀出舊奇偶校驗(yàn)(P)old,也將其存儲在數(shù)據(jù)緩沖區(qū)110中。隨后,計算新數(shù)據(jù)(D2)new、舊數(shù)據(jù)(D2)old和舊奇偶校驗(yàn)(P)old的異或(XOR)116,從而獲得新奇偶校驗(yàn)(P)new,將其存儲在奇偶校驗(yàn)緩沖區(qū)112。最后,將新數(shù)據(jù)(D2)new和新奇偶校驗(yàn)(P)new分別寫入盤裝置104-2和104-4,處理結(jié)束。在新數(shù)據(jù)以對應(yīng)于全部盤裝置104-1至104-3的方式存在(條帶區(qū)的全部數(shù)據(jù))的情況下的回寫稱為寬帶寫入(band-wide write);在寬帶寫入中,將新奇偶校驗(yàn)計算為對應(yīng)于盤裝置104-1至104-3的條帶區(qū)的全部數(shù)據(jù)的異或,并執(zhí)行向盤裝置104-1至104-4的寫入以結(jié)束處理。在任一種情況下,當(dāng)完成寫入時,釋放數(shù)據(jù)緩沖區(qū)110和奇偶校驗(yàn)緩沖區(qū)112。此外,在這種形成RAID 5的冗余配置的RAID裝置中,例如,如圖3所示,如果在回寫處理中例如在兩個盤裝置104-3和104-4出現(xiàn)差錯,則在盤裝置104-1至104-4的條帶區(qū)中產(chǎn)生根據(jù)RAID 5的數(shù)據(jù)的一致性被破壞的故障。即,作為回寫處理失敗的結(jié)果,僅僅盤裝置104-2具有新數(shù)據(jù)(D2)new,而盤裝置104-3和104-4保持具有舊數(shù)據(jù)(D3)old和舊奇偶校驗(yàn)(P)old。在以上述方式破壞了一致性的狀態(tài)下,如果盤裝置104-1進(jìn)一步以圖4的方式出現(xiàn)故障從而使RAID-5組退化并導(dǎo)致三裝置配置,那么,由于來自主機(jī)118的讀取數(shù)據(jù)D2的請求在高速緩沖存儲器102中引起未命中(miss-hit),從而試圖從盤裝置104-1移動(staging)。然而,由于其處于盤裝置104-1出現(xiàn)故障并被從RAID-5組105去除的退化狀態(tài),所以執(zhí)行用于通過對正常盤裝置104-2至104-4的數(shù)據(jù)和奇偶校驗(yàn)進(jìn)行異或來恢復(fù)數(shù)據(jù)D1的再生讀取。然而,由于盤裝置104-2至104-4的數(shù)據(jù)和奇偶校驗(yàn)的一致性已經(jīng)被破壞,所以通過異或可能恢復(fù)錯亂數(shù)據(jù)(D?)。此外,在RAID裝置中,使設(shè)置有高速緩沖存儲器的控制模塊雙工以確??煽啃裕⒒貙懱幚碇猩傻钠媾夹r?yàn)保存在備用側(cè)的控制模塊中。因此,當(dāng)像圖4那樣盤裝置出現(xiàn)故障從而導(dǎo)致狀態(tài)退化(其中由于回寫處理的差錯而破壞了盤裝置的一致性)時,控制模塊101-1按圖5的方式獲取保存在備用側(cè)的控制模塊101-2中的新奇偶校驗(yàn)(P)new,并執(zhí)行寫入糾錯(Write Correct),以將高速緩沖存儲器102中的新數(shù)據(jù)(D2)new和(D3)new寫入對應(yīng)的盤裝置104-2至104-3,從而恢復(fù)盤裝置104-1至104-4的一致性。
日本專利申請?zhí)亻_平(Kokai)No.05-303528[專利文獻(xiàn)2]日本專利申請?zhí)亻_平(Kokai)No.08-115169然而,在這種傳統(tǒng)的高速緩存控制處理中,如果發(fā)生其中在控制模塊出現(xiàn)故障且處理轉(zhuǎn)移到備用控制模塊的退化,則不能保存奇偶校驗(yàn);因此,如果RAID組的盤裝置的一致性被破壞,則不能進(jìn)行通過如圖5的使用奇偶校驗(yàn)的寫入糾錯來恢復(fù)一致性。因此,按照圖6的方式,由于控制模塊101-1出現(xiàn)差錯而接管處理的控制模塊101-2不能獲得高速緩沖存儲器102中的奇偶校驗(yàn);因此,通過對盤裝置104-1至104-3中的數(shù)據(jù)的異或來重新計算奇偶校驗(yàn)(P),并將其寫入盤裝置104-3,從而恢復(fù)盤裝置104-1至104-4的一致性,然后,按圖7的方式,在根據(jù)保留在高速緩沖存儲器102中的新數(shù)據(jù)(D2)new和(D3)new計算新奇偶校驗(yàn)(P)new之后,執(zhí)行用于在盤裝置104-2至104-4中執(zhí)行寫入的正?;貙?。然而,如果在如圖7的控制模塊退化的狀態(tài)下盤裝置104-1又出現(xiàn)故障并且RAID-5組105退化,則與圖6不同,不能在退化的RAID-5組105中執(zhí)行對奇偶校驗(yàn)的重新計算;因此不能恢復(fù)一致性,并且,除非禁止存取RAID-5組的全部條帶,否則產(chǎn)生數(shù)據(jù)錯亂的風(fēng)險,這是有問題的。根據(jù)本發(fā)明,提供了一種存儲系統(tǒng)及其控制方法和程序,用于在RAID-5組的一致性已被破壞并且已出現(xiàn)存儲裝置的退化的情況下恢復(fù)存取過程中發(fā)生的差錯,從而對于存取提高數(shù)據(jù)可靠性。

發(fā)明內(nèi)容
本發(fā)明提供了一種存儲系統(tǒng)。本發(fā)明的存儲系統(tǒng)的特征在于包括高速緩存控制單元,用于按頁區(qū)單位來管理在高速緩沖存儲器中的數(shù)據(jù),并處理從上級裝置至存儲裝置的輸入/輸出請求;RAID控制單元,用于按與頁區(qū)具有相同大小的條帶區(qū)單位來管理多個存儲裝置中的每一個中的數(shù)據(jù),并按條帶區(qū)單位來管理共同具有同一地址的多個數(shù)據(jù)用條帶區(qū)和一個奇偶校驗(yàn)用條帶區(qū),并形成RAID的冗余配置,在RAID的冗余配置中,每當(dāng)改變條帶區(qū)的地址時,就改變其上設(shè)置有奇偶校驗(yàn)用條帶區(qū)的存儲裝置;回寫處理單元,用于當(dāng)產(chǎn)生了用于將高速緩沖存儲器中的新數(shù)據(jù)回寫到存儲裝置的回寫請求時,在高速緩沖存儲器中保留奇偶校驗(yàn)緩沖區(qū),生成新奇偶校驗(yàn),然后將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的存儲裝置;以及恢復(fù)處理單元,用于當(dāng)在回寫處理單元進(jìn)行寫入時在多個存儲裝置中出現(xiàn)RAID的一致性被破壞的差錯時,在高速緩沖存儲器中保留用于存儲包括待回寫新數(shù)據(jù)的整個條帶的數(shù)據(jù)的高速緩存條帶區(qū),并使得高速緩存控制單元對其進(jìn)行管理。
這里,當(dāng)在回寫處理單元執(zhí)行寫入時在兩個或更多個存儲裝置中發(fā)生差錯時,恢復(fù)處理單元確定已經(jīng)發(fā)生了RAID的一致性被破壞的差錯。
在保留高速緩存條帶區(qū)之后,恢復(fù)處理單元使得回寫處理單元釋放存儲新奇偶校驗(yàn)的奇偶校驗(yàn)緩沖區(qū)。
如果在高速緩存條帶區(qū)中存在未使用區(qū),則恢復(fù)處理單元將通過對同一區(qū)中的新數(shù)據(jù)與奇偶校驗(yàn)緩沖區(qū)的新奇偶校驗(yàn)的異或而獲得的新數(shù)據(jù)移動到該未使用區(qū)。
如果在高速緩存條帶區(qū)存在通過對同一區(qū)中的新數(shù)據(jù)與奇偶校驗(yàn)緩沖區(qū)的新奇偶校驗(yàn)的異或而獲得的新數(shù)據(jù)不能移動到的未使用區(qū),則恢復(fù)處理單元將從存儲裝置讀出的數(shù)據(jù)移動到該未使用區(qū)。
如果數(shù)據(jù)從存儲裝置到未使用區(qū)的移動失敗,則恢復(fù)處理單元將該高速緩存條帶區(qū)指定為存取受限區(qū)(鎖定條帶(Pinned Stripe)),并使得高速緩存控制單元對其進(jìn)行管理。
如果從上級裝置向被指定為存取受限區(qū)的高速緩存條帶區(qū)請求讀取,則高速緩存控制單元在高速緩存命中時將命中數(shù)據(jù)作為讀取響應(yīng),當(dāng)高速緩存未命中時,在執(zhí)行基于RAID冗余配置的從存儲裝置的移動禁止數(shù)據(jù)恢復(fù)(再生讀取)之后高速緩存命中時執(zhí)行讀取響應(yīng)。
如果從上級裝置向被指定為存取受限區(qū)的高速緩存條帶區(qū)請求寫入,則高速緩存控制單元將寫入數(shù)據(jù)寫入對應(yīng)區(qū)。
如果在消除了存儲裝置的差錯之后產(chǎn)生對被指定為存取受限區(qū)的高速緩存條帶區(qū)的回寫請求,并且如果回寫處理單元執(zhí)行基于RAID冗余配置的從存儲裝置到高速緩存條帶區(qū)的未使用區(qū)的移動禁止數(shù)據(jù)恢復(fù)并保留了整個條帶的數(shù)據(jù),則回寫處理單元在高速緩沖存儲器中保留奇偶校驗(yàn)緩沖區(qū),并根據(jù)整個條帶的數(shù)據(jù)生成新奇偶校驗(yàn)數(shù)據(jù),然后,執(zhí)行將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)存儲裝置的處理(寬帶寫入)。
本發(fā)明提供了一種存儲系統(tǒng)的控制方法。根據(jù)本發(fā)明的存儲系統(tǒng)的控制方法的特征在于包括以下步驟高速緩存控制步驟,按頁區(qū)單位來管理高速緩沖存儲器中的數(shù)據(jù),并處理從上級裝置至存儲裝置的輸入/輸出請求;RAID控制步驟,用于按與頁區(qū)具有相同大小的條帶區(qū)單位來管理多個存儲裝置中的每一個中的數(shù)據(jù),并按條帶區(qū)單位來管理共同具有同一地址的多個數(shù)據(jù)用條帶區(qū)和一個奇偶校驗(yàn)用條帶區(qū),并形成RAID的冗余配置,在RAID的冗余配置中,每當(dāng)改變條帶區(qū)的地址時,就改變其上設(shè)置有奇偶校驗(yàn)用條帶區(qū)的存儲裝置;回寫處理步驟,當(dāng)產(chǎn)生了將高速緩沖存儲器中的新數(shù)據(jù)回寫到存儲裝置的回寫請求時,在高速緩沖存儲器中保留奇偶校驗(yàn)緩沖區(qū),生成新奇偶校驗(yàn),然后將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的存儲裝置;以及差錯恢復(fù)處理步驟,當(dāng)在根據(jù)回寫處理步驟進(jìn)行寫入時在多個存儲裝置中發(fā)生RAID 5的一致性被破壞的差錯時,在高速緩沖存儲器中保留用于對包括待回寫新數(shù)據(jù)的整個條帶的數(shù)據(jù)進(jìn)行存儲的高速緩存條帶區(qū),并使得高速緩存控制步驟對其進(jìn)行管理。
本發(fā)明提供了一種由存儲系統(tǒng)的計算機(jī)執(zhí)行的程序。本發(fā)明的程序的特征在于使得存儲系統(tǒng)的計算機(jī)執(zhí)行以下步驟高速緩存控制步驟,按頁區(qū)單位來管理高速緩沖存儲器中的數(shù)據(jù),并處理從上級裝置至存儲裝置的輸入/輸出請求;
RAID控制步驟,用于按與頁區(qū)具有相同大小的條帶區(qū)單位來管理多個存儲裝置中的每一個中的數(shù)據(jù),并按條帶區(qū)單位來管理共同具有同一地址的多個數(shù)據(jù)用條帶區(qū)和一個奇偶校驗(yàn)用條帶區(qū),并形成RAID 5的冗余配置,在RAID 5的冗余配置中,每當(dāng)改變條帶區(qū)的地址時,就改變其上設(shè)置有奇偶校驗(yàn)用條帶區(qū)的存儲裝置;回寫處理步驟,當(dāng)產(chǎn)生將高速緩沖存儲器中的新數(shù)據(jù)回寫入存儲裝置的回寫請求時,在高速緩沖存儲器中保留奇偶校驗(yàn)緩沖區(qū),生成新奇偶校驗(yàn),然后,將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的存儲裝置;以及差錯恢復(fù)處理步驟,當(dāng)在根據(jù)回寫處理步驟進(jìn)行寫入時在多個存儲裝置中發(fā)生RAID 5的一致性被破壞的差錯時,在高速緩沖存儲器中保留用于對包括待回寫新數(shù)據(jù)的整個條帶的數(shù)據(jù)進(jìn)行存儲的高速緩存條帶區(qū),并使得高速緩存控制步驟對其進(jìn)行管理。
注意,本發(fā)明中的存儲系統(tǒng)的控制方法和程序的細(xì)節(jié)與在本發(fā)明的存儲系統(tǒng)的情況下的細(xì)節(jié)基本相同。
根據(jù)本發(fā)明,當(dāng)在具有RAID 5的冗余配置的RAID裝置的回寫處理中發(fā)生破壞存儲裝置條帶的一致性的差錯、此外存儲裝置由于故障等也退化時,在釋放奇偶校驗(yàn)緩沖區(qū)的奇偶校驗(yàn)之前,在高速緩沖存儲器中保留具有包括待回寫新數(shù)據(jù)的整個條帶的正確數(shù)據(jù)的高速緩存條帶區(qū);結(jié)果,防止了出現(xiàn)由于在RAID 5的一致性被破壞的狀態(tài)下基于冗余配置并響應(yīng)于來自上級裝置的存取而執(zhí)行的故障裝置數(shù)據(jù)恢復(fù)從而導(dǎo)致的數(shù)據(jù)錯亂,并改善了RAID裝置的差錯恢復(fù)性能,從而提高了數(shù)據(jù)保護(hù)的可靠性。而且,當(dāng)高速緩存條帶區(qū)中部分地存在空間時,將該空間指定為存取受限區(qū),結(jié)果,當(dāng)響應(yīng)于從上級裝置到未使用區(qū)的讀取請求由于未命中而從存儲裝置執(zhí)行移動時,通過基于RAID 5的冗余配置的數(shù)據(jù)恢復(fù)來執(zhí)行移動禁止讀取,從而可靠地防止由于RAID 5的一致性被破壞而導(dǎo)致生成錯亂數(shù)據(jù)。參照附圖,根據(jù)下面的詳細(xì)描述,本發(fā)明的上述及其他目的、特征和優(yōu)點(diǎn)將更加顯見。


圖1是傳統(tǒng)的回寫處理的說明圖;圖2是傳統(tǒng)系統(tǒng)中的高速緩存頁的說明圖;圖3是在回寫處理中RAID-5組的一致性被破壞的狀態(tài)的說明圖;圖4是在RAID 5的一致性被破壞的狀態(tài)下在主機(jī)讀取請求下生成錯亂了數(shù)據(jù)的狀態(tài)的說明圖;圖5是使用保存的奇偶校驗(yàn)來恢復(fù)一致性的傳統(tǒng)寫入糾錯處理的說明圖;圖6是當(dāng)不存在保存的奇偶校驗(yàn)時根據(jù)RAID 5的數(shù)據(jù)來恢復(fù)一致性的傳統(tǒng)處理的說明圖;圖7是在圖6恢復(fù)了一致性之后從高速緩沖存儲器回寫新數(shù)據(jù)的處理的說明圖;圖8A和圖8B是應(yīng)用本發(fā)明的RAID裝置的硬件配置的框圖;圖9是應(yīng)用本發(fā)明的RAID裝置的另一硬件配置的框圖;圖10是根據(jù)本發(fā)明的RAID裝置的功能配置的框圖;圖11是高速緩存頁和條帶區(qū)以及盤裝置的條帶區(qū)的說明圖;圖12是由于回寫處理中發(fā)生的差錯而導(dǎo)致RAID-5組的一致性被破壞的狀態(tài)的說明圖;圖13是在圖12的差錯狀態(tài)下盤裝置出現(xiàn)故障且RAID-5組退化的狀態(tài)的說明圖;圖14是本發(fā)明的用于在高速緩沖存儲器中保留正確數(shù)據(jù)配置的高速緩存條帶區(qū)的恢復(fù)處理的說明圖;圖15是在圖14后之后的釋放了奇偶校驗(yàn)緩沖區(qū)的狀態(tài)的說明圖;圖16是在響應(yīng)于來自主機(jī)的寫入請求而執(zhí)行的對高速緩存區(qū)的回寫中出現(xiàn)了破壞RAID-5組的一致性的差錯的狀態(tài)的說明圖;圖17是本發(fā)明的用于在高速緩沖存儲器中保留高速緩存條帶區(qū)的恢復(fù)處理的說明圖;圖18是本發(fā)明的用于將數(shù)據(jù)移動到高速緩存條帶區(qū)中的空間的恢復(fù)處理的說明圖;圖19是在圖18之后的釋放了奇偶校驗(yàn)緩沖區(qū)的狀態(tài)的說明圖;
圖20A和圖20B是本發(fā)明的包括恢復(fù)處理的回寫處理的流程圖。
具體實(shí)施例方式
圖8A和圖8B是應(yīng)用本發(fā)明的RAID裝置的硬件配置的框圖,其中采用了大規(guī)模的裝置的配置作為示例。在圖8A和8B中,針對RAID裝置10設(shè)置有基于大型機(jī)的主機(jī)12和基于UNIX(R)/IA服務(wù)器的主機(jī)14。在RAID裝置10中設(shè)置有配置有CPU 15的通道適配器16-1和16-2;控制模塊18-1至18-n;后臺路由器20-1和20-2;盤裝置22-1至22-4,例如硬盤驅(qū)動,其用作存儲裝置并形成RAID 5的冗余配置;以及前端路由器32-1和32-2。在最大結(jié)構(gòu)中,在RAID裝置10中可以安裝有8個控制模塊。通道適配器16-1和16-2設(shè)置有CPU 15,并將基于大型機(jī)的主機(jī)12連接到控制模塊18-1。此外,通道適配器26-1和26-2將基于UNIX(R)/IA服務(wù)器的主機(jī)14連接到控制模塊18-1。通道適配器16-1和16-2以及通道適配器26-1和26-2通過設(shè)置在控制模塊18-1中的通信單元25、然后經(jīng)由前端路由器32-1和32-2連接到其他控制模塊18-2(未示出)至18-n。在控制模塊18-1至18-n中的每一個中,如在控制模塊18-1中代表性地示出的,設(shè)置有CPU 24、通信單元25、高速緩沖存儲器28和裝置接口30-1及30-2。CPU 24設(shè)置有輸入/輸出處理功能,所述輸入/輸出處理功能用于在高速緩沖存儲器28中處理與來自主機(jī)12或主機(jī)14的寫入命令或讀取命令對應(yīng)的輸入/輸出請求以響應(yīng)該命令,此外,通過程序控制來執(zhí)行對高速緩沖存儲器28的控制和管理,對經(jīng)由高速緩沖存儲器28然后經(jīng)由后臺路由器20-1和20-2將高速緩存數(shù)據(jù)回寫到盤裝置22-1至22-4、以及將盤數(shù)據(jù)從盤裝置22-1至22-4移動等進(jìn)行控制。前端路由器32-1和32-2將其他控制模塊18-2(未示出)至18-n連接到控制模塊18-1,從而對控制進(jìn)行復(fù)用。控制模塊18-1至18-n中的每一個連接到后臺路由器20-1和20-2,并根據(jù)控制模塊側(cè)的CPU 24執(zhí)行的RAID控制來執(zhí)行數(shù)據(jù)輸入/輸出處理。這里,將n個控制模塊18-1至18-n中的一個指派為備用控制模塊。
圖9是應(yīng)用本發(fā)明的RAID裝置的另一硬件配置的框圖,其中采用與圖8A和8B的大規(guī)模裝置相比具有小規(guī)模的小型或中型裝置作為示例。在圖9中,RAID裝置10設(shè)置有配置有CPU 15的通道適配器16、具有雙工結(jié)構(gòu)的控制模塊18-1和18-2、以及形成至少RAID 5的冗余配置的盤裝置22-1至22-4。這里,控制模塊18-1用于常規(guī)使用,而控制模塊18-2用于備用,從而通過雙工形成冗余配置。在控制模塊18-1或18-2中,如在控制模塊18-1中所代表性示出的,設(shè)置有CPU 24、通信單元25、高速緩沖存儲器28以及裝置接口30-1和30-2。基于UNIX(R)/IA服務(wù)器的主機(jī)14經(jīng)由通道適配器26連接到控制模塊18-1。對應(yīng)于小型或中型的圖9中的RAID裝置10具有小規(guī)模配置,其中從圖8A和8B的RAID裝置10中去除了后臺路由器20-1和20-2以及前端路由器32-1和32-2。除此之外,該配置與圖8A和8B的配置基本相同。
圖10是根據(jù)本發(fā)明的RAID裝置的功能配置的框圖。在圖10中,通過設(shè)置在圖9中的控制模塊18-1中的CPU 24執(zhí)行的程序控制來實(shí)現(xiàn)RAID裝置10的功能,從而如控制模塊18-1中所示,形成資源處理單元34、高速緩存處理單元36、RAID控制單元38和復(fù)制處理單元40。在高速緩存處理單元36中,設(shè)置有高速緩存控制單元42、高速緩存管理表44、回寫處理單元45、恢復(fù)處理單元46以及高速緩沖存儲器28。在高速緩沖存儲器28中設(shè)置有高速緩存區(qū)48,當(dāng)接收到來自主機(jī)12或主機(jī)14的寫入請求時設(shè)置該高速緩存區(qū)48以將數(shù)據(jù)寫入其中;數(shù)據(jù)緩沖區(qū)50,在用于將高速緩存區(qū)48中的高速緩存數(shù)據(jù)寫入由物理裝置22表示的RAID-5組54的盤裝置的回寫處理中設(shè)置該數(shù)據(jù)緩沖區(qū)50;以及奇偶校驗(yàn)緩沖區(qū)52。高速緩存控制單元42按頁區(qū)單位來管理高速緩沖存儲器28中的數(shù)據(jù),并且處理主機(jī)12或主機(jī)14對于物理裝置22(其通過多個盤裝置形成RAID組)的輸入/輸出請求。即,如圖11所示,高速緩存控制單元42通過包括128塊520字節(jié)塊數(shù)據(jù)(所述520字節(jié)塊數(shù)據(jù)是從主機(jī)側(cè)的存取單位,包括512字節(jié)用戶數(shù)據(jù)和8字節(jié)BCC)的66,560字節(jié)形成一頁作為高速緩存頁58。在高速緩存管理表44中按頁單位對這種高速緩沖存儲器28中的高速緩存頁58進(jìn)行記錄和管理,高速緩存管理表44中的記錄例如包括邏輯單元號(LUN)、邏輯塊地址(LBA)和通過比特來表示包括新數(shù)據(jù)的塊的臟數(shù)據(jù)位圖(128比特)。再次參照圖10,RAID控制單元38在通過多個盤裝置構(gòu)成的RAID-5組54的物理裝置22上執(zhí)行根據(jù)本發(fā)明中的RAID 5的冗余配置的RAID控制。即,如圖11的盤裝置22-1至22-4中所示,RAID控制單元38將盤裝置22-1至22-4中的數(shù)據(jù)分別作為條帶區(qū)54-1、54-2、54-3和54-4(所述條帶區(qū)各自具有與高速緩沖存儲器28中的高速緩存頁58相同的大小)來管理,并將具有相同地址的多個條帶區(qū)54-1至54-4共同作為條帶區(qū)56來管理。在RAID 5的冗余配置的情況下,例如在條帶區(qū)56的情況下,數(shù)據(jù)D1、D2和D3分別存儲在盤裝置22-1至22-3的條帶區(qū)54-1到54-3中,奇偶校驗(yàn)P存儲在剩下的盤裝置22-4的條帶區(qū)54-4中。在RAID 5的冗余配置的情況下,每次條帶區(qū)56的地址改變時,存儲奇偶校驗(yàn)P的盤的位置改變。再次參照圖10,當(dāng)產(chǎn)生將高速緩沖存儲器28中的新數(shù)據(jù)(臟數(shù)據(jù))回寫到盤裝置22-1至22-4的回寫請求時,回寫處理單元45在高速緩沖存儲器28中保留奇偶校驗(yàn)緩沖區(qū)52,生成新奇偶校驗(yàn),然后將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的盤裝置中。當(dāng)在回寫處理單元45執(zhí)行寫入時發(fā)生RAID-5組54的一致性被破壞的差錯時,恢復(fù)處理單元46在高速緩沖存儲器28中保留用于存儲包括待寫入新數(shù)據(jù)的整個條帶的數(shù)據(jù)的高速緩存條帶區(qū),并且使得高速緩存控制單元42對其進(jìn)行管理。此外,此時,其使得回寫處理單元45釋放存儲新奇偶校驗(yàn)的奇偶校驗(yàn)緩沖區(qū)52。這里,當(dāng)在回寫處理單元45執(zhí)行寫入時在兩個或更多個存儲裝置中發(fā)生差錯時,恢復(fù)處理單元46確定發(fā)生了RAID-5組54的一致性被破壞的差錯。一致性被破壞的差錯例如是由于控制模塊18-1的差錯而使得在回寫處理中對盤裝置的寫入失敗(控制模塊的退化)、然后盤裝置由于失敗等而出現(xiàn)故障(RAID 5的退化)的情況。因?yàn)榛謴?fù)處理單元46在高速緩存中保留的高速緩存條帶區(qū)在高速緩沖存儲器中保存著一致性已經(jīng)被破壞的RAID-5組的整個條帶區(qū)的正確數(shù)據(jù),所以當(dāng)存在未使用頁時,將通過對相同區(qū)內(nèi)的新數(shù)據(jù)和奇偶校驗(yàn)緩沖區(qū)52的新奇偶校驗(yàn)的異或而獲得的新數(shù)據(jù)移動到該未使用頁區(qū)。在這種情況下,由于未使用區(qū)并非總是按頁單位,所以即使在對通過異或獲得的新數(shù)據(jù)進(jìn)行移動后仍可能存在未使用區(qū)。在這種情況下,將從盤裝置讀取出的裝置移動到未使用區(qū)。當(dāng)將數(shù)據(jù)從盤裝置向高速緩存條帶區(qū)的未使用區(qū)的移動又失敗時,將該高速緩存條帶區(qū)被指定為用作鎖定條帶的存取受限區(qū),并使得高速緩存控制單元42對其進(jìn)行管理。高速緩存控制單元42和回寫處理單元45根據(jù)存取限制對被指定為存取受限區(qū)的高速緩存條帶區(qū)的處理如下所述。(1)當(dāng)從主機(jī)請求讀取時,高速緩存控制單元42在高速緩存命中時將命中數(shù)據(jù)作為讀取響應(yīng),并且,當(dāng)高速緩存未命中時,在從存儲裝置22-1至22-4執(zhí)行基于RAID冗余配置的移動禁止數(shù)據(jù)恢復(fù)(即禁止再生讀取)之后高速緩存命中時進(jìn)行讀取響應(yīng)。(2)當(dāng)從主機(jī)請求寫入時,高速緩存控制單元42將寫入數(shù)據(jù)寫入對應(yīng)區(qū)。這與普通的高速緩存控制相同。(3)當(dāng)例如根據(jù)LRU控制產(chǎn)生對高速緩存條帶區(qū)的回寫請求時,回寫處理單元45對高速緩存條帶區(qū)中的未使用區(qū)執(zhí)行基于RAID 5冗余配置的從盤裝置的移動禁止數(shù)據(jù)恢復(fù),即禁止再生讀取,從而保留整個條帶的數(shù)據(jù),并且,當(dāng)可以保留時,在高速緩沖存儲器28中保留奇偶校驗(yàn)緩沖區(qū)52并根據(jù)整個條帶的數(shù)據(jù)生成新的奇偶校驗(yàn)數(shù)據(jù),然后,執(zhí)行用于將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的盤裝置的寬帶寫入。接著,通過采用對圖9的控制模塊進(jìn)行雙工的情況作為示例來詳細(xì)說明本發(fā)明的恢復(fù)處理單元46執(zhí)行的處理。圖12是由于在回寫處理中發(fā)生的差錯而使得RAID-5組的一致性被破壞的狀態(tài)的說明圖。
在圖12中,如果在與控制模塊18-1的高速緩沖存儲器28中管理的條帶對應(yīng)的高速緩存頁58-2和58-3中的新數(shù)據(jù)(D2)new和(D3)new是要回寫的,則在高速緩沖存儲器28中保留數(shù)據(jù)緩沖區(qū)50,從盤裝置22-1讀出與新數(shù)據(jù)(D2)new和(D3)new具有相同條帶地址的舊數(shù)據(jù)(D1)old以對其進(jìn)行移動,然后,保留奇偶校驗(yàn)緩沖區(qū)52。接著,計算對舊數(shù)據(jù)(D1)old、新數(shù)據(jù)(D2)new和新數(shù)據(jù)(D3)new的異或,從而獲得新奇偶校驗(yàn)(P)new,并將其存儲在奇偶校驗(yàn)緩沖區(qū)52。然后,執(zhí)行將新數(shù)據(jù)(D2)new、新數(shù)據(jù)(D3)new和新奇偶校驗(yàn)(P)new分別寫入對應(yīng)的盤裝置22-2、22-3和22-4的處理。然而,在這種回寫處理中,如果向盤裝置22-3和22-4的寫入例如由于圖9所示的控制模塊18-1中的裝置接口30-1的差錯而失敗,則僅僅盤裝置22-2被重新寫入新數(shù)據(jù)(D2)new,盤裝置22-3和22-4仍然保持舊數(shù)據(jù)(D3)old和舊奇偶校驗(yàn)(P1)old。因此,RAID-5組54中的被回寫的條帶的一致性被破壞。同時,根據(jù)控制模塊18-1的差錯,例如,當(dāng)存在圖9所示的控制模塊18-2作為備用時,將高速緩存控制從控制模塊18-1轉(zhuǎn)移到控制模塊18-2,從而控制模塊退化。
圖13示出了由于控制模塊18-1的差錯而使得控制轉(zhuǎn)移到設(shè)置為備用的控制模塊18-2之后的控制模塊退化狀態(tài),以及除了上述狀態(tài)之外,由于故障(例如發(fā)生在設(shè)置于RAID-5組54的盤裝置22-1中的故障)而使得RAID-5組54退化的狀態(tài)。當(dāng)在RAID-5組54的一致性被破壞的狀態(tài)下用作該組的一個裝置的盤裝置22-1又發(fā)生故障從而導(dǎo)致退化時,在本發(fā)明中,在控制模塊18-2的高速緩沖存儲器28中保留有條帶區(qū)(即,包括三頁高速緩存頁58-1、58-2和58-3的高速緩存條帶區(qū)60)的全部數(shù)據(jù),并且在高速緩存頁58-2和58-3中存儲有待回寫的新數(shù)據(jù)(D2)new和新數(shù)據(jù)(D3)new。此外,不釋放存儲在奇偶校驗(yàn)緩沖區(qū)52中的新奇偶校驗(yàn)(P)new,而將其保留。接著,按圖14的方式,恢復(fù)處理單元46基于存儲在高速緩存條帶區(qū)60中的新數(shù)據(jù)(D2)new和新數(shù)據(jù)(D3)new以及存儲在奇偶校驗(yàn)緩沖區(qū)52中的新奇偶校驗(yàn)(P)new,通過運(yùn)算單元62執(zhí)行異或計算,以將新數(shù)據(jù)(D1)new移動到作為對應(yīng)于故障盤22-1的未使用頁的高速緩存頁58-1。因此,在高速緩沖存儲器28中保留的高速緩存條帶區(qū)60中,RAID-5組54中的一致性被破壞的條帶的全部數(shù)據(jù)可以被保存為新數(shù)據(jù)(臟數(shù)據(jù)),即,正確數(shù)據(jù)。當(dāng)按上述方式在高速緩沖存儲器28中保留了高速緩存條帶區(qū)60(其用于存儲一致性被破壞的RAID-組54中的整個條帶區(qū)的正確數(shù)據(jù))時,如圖15所示,恢復(fù)處理單元46使得回寫處理單元45釋放存儲新奇偶校驗(yàn)(P)new的奇偶校驗(yàn)緩沖區(qū)52。結(jié)果,在高速緩沖存儲器28中保留高速緩存條帶區(qū)60(用于存儲與一致性被破壞的RAID-5組54中的條帶對應(yīng)的正確數(shù)據(jù)),高速緩存控制單元42在高速緩存條帶區(qū)60針對來自主機(jī)的存取執(zhí)行處理,當(dāng)根據(jù)例如LRU的回寫條件成立時,回寫處理單元45執(zhí)行回寫處理。當(dāng)然,例如,當(dāng)在用正常盤裝置替換RAID-5組54的故障盤裝置22-1且差錯恢復(fù)之后LRU條件成立時,執(zhí)行回寫處理單元45的回寫。在這種情況下,在整個高速緩存條帶區(qū)60中保存新數(shù)據(jù),沒有剩下未使用區(qū),因此,不用執(zhí)行存取限制,按與正常高速緩存區(qū)的方式完全相同的方式來執(zhí)行針對來自主機(jī)的輸入/輸出請求的高速緩存控制。由于與RAID-5組54的對應(yīng)條帶對應(yīng)的全部正確新數(shù)據(jù)保存在高速緩存條帶區(qū)60中,所以來自上級裝置的讀取請求總是實(shí)現(xiàn)高速緩存命中,不執(zhí)行從一致性被破壞的RAID-5組54的盤裝置22-1至22-4的移動;因此,根本不執(zhí)行對一致性被破壞的條帶的數(shù)據(jù)的移動、以及用于通過對其他盤的異或來恢復(fù)故障盤的數(shù)據(jù)的再生讀取等,結(jié)果,徹底防止了由于從一致性已經(jīng)被破壞的RAID-5組54的盤裝置的移動而導(dǎo)致的數(shù)據(jù)錯亂。接著,將說明在恢復(fù)處理單元在高速緩沖存儲器中保留的高速緩存條帶區(qū)中存在未使用區(qū)的情況下的處理。圖16是在響應(yīng)于來自主機(jī)的寫入請求而執(zhí)行的對高速緩存區(qū)的回寫過程中發(fā)生破壞RAID-5組一致性的差錯的狀態(tài)的說明圖。
在圖16中,控制模塊18-1針對常規(guī)使用而運(yùn)行,當(dāng)其從主機(jī)接收到寫入寫入數(shù)據(jù)64的請求時,在高速緩沖存儲器28中管理的高速緩存頁58-1和58-2的舊數(shù)據(jù)上覆寫寫入數(shù)據(jù)64,從而提供新數(shù)據(jù)(D1)new和新數(shù)據(jù)(D2)new。這里,在高速緩存頁58-2中,寫入數(shù)據(jù)64不占據(jù)整個頁,而是部分寫入數(shù)據(jù);因此,例如在對寫入數(shù)據(jù)64進(jìn)行寫入后產(chǎn)生未使用區(qū)66。當(dāng)在將這種寫入數(shù)據(jù)64寫入高速緩沖存儲器28之后例如根據(jù)LRU的回寫條件成立時,通過對高速緩存頁58-1、58-2和58-3的數(shù)據(jù)的異或來計算新奇偶校驗(yàn)(P)new,并將其存儲在奇偶校驗(yàn)緩沖區(qū)52中,然后,分別將新數(shù)據(jù)(D1)new、作為高速緩存頁58-2的一部分的新數(shù)據(jù)(D21)new和新奇偶校驗(yàn)(P)new寫入RAID-5組54的對應(yīng)盤裝置22-1、22-2和22-4。此時,例如,如果向盤裝置22-2和盤裝置22-4的寫入例如由于控制模塊18-1的裝置接口的差錯而失敗時,僅向盤裝置22-1寫入新數(shù)據(jù)(D1)new,盤裝置22-2和盤裝置22-4分別繼續(xù)保持舊數(shù)據(jù)(D2)old和舊奇偶校驗(yàn)(P)old,從而破壞了待回寫的RAID-5組54的條帶的數(shù)據(jù)的一致性。由于在回寫處理過程中在控制模塊18-1中例如由于裝置接口故障而發(fā)生了差錯,所以控制轉(zhuǎn)移到備為備用的控制模塊18-2,從而使控制模塊退化。
圖17示出了控制模塊退化狀態(tài),其中控制模塊18-1出現(xiàn)差錯且控制轉(zhuǎn)移到控制模塊18-2,其中,在該狀態(tài)下,假定設(shè)置在RAID-5組54中的盤裝置22-1由于失敗等進(jìn)一步出現(xiàn)故障,且RAID-5組54也退化。當(dāng)RAID-5組54的條帶的一致性被破壞且發(fā)生盤裝置的退化時,本發(fā)明的恢復(fù)處理單元46確定該差錯的發(fā)生,并在接管控制的控制模塊18-2的高速緩沖存儲器28中保留與一致性已被破壞的RAID-5組54的條帶對應(yīng)的高速緩存條帶區(qū)60。根據(jù)差錯確定而保留的高速緩存條帶區(qū)60包括高速緩存頁58-1,用于存儲新數(shù)據(jù)(D1)new;高速緩存頁58-2,部分存儲新數(shù)據(jù)(D21)new,剩下的作為未使用區(qū)66;以及作為未使用頁的高速緩存頁58-3。此外,恢復(fù)處理單元46同時保留用于存儲新奇偶校驗(yàn)(P)new的奇偶校驗(yàn)緩沖區(qū)52。
接著,如圖18所示,恢復(fù)處理單元46使用存在于高速緩存條帶區(qū)60中的新數(shù)據(jù)(D1)new和新數(shù)據(jù)(D21)new以及奇偶校驗(yàn)緩沖區(qū)52中的新奇偶校驗(yàn)(P)new,通過運(yùn)算單元68執(zhí)行異或計算,并且將新數(shù)據(jù)(D31)new移動到作為未使用頁的高速緩存頁58-3。由于在高速緩存頁58-2中存在未使用區(qū)65,所以新數(shù)據(jù)(D31)new留下相同大小的未使用區(qū)70。對于如上所述在高速緩存條帶區(qū)60中的通過異或計算獲得的新數(shù)據(jù)不能移動到的這種未使用區(qū)65和70,從RAID-5組54的對應(yīng)盤裝置22-2和22-3中讀出數(shù)據(jù)并對其進(jìn)行移動。
圖19示出了舊數(shù)據(jù)(D22)old和舊數(shù)據(jù)(D32)old從盤裝置22-2和22-3正常移動到未使用區(qū)66和70的高速緩存條帶區(qū)60的狀態(tài),并且,因此,將與一致性已經(jīng)被破壞的RAID-5組54的對應(yīng)條帶相關(guān)的全部正確數(shù)據(jù)保留在高速緩存條帶區(qū)60中。在該狀態(tài)下,恢復(fù)處理單元46釋放存儲有新奇偶校驗(yàn)(P)new的奇偶校驗(yàn)緩沖區(qū)52,并且,像正常的高速緩存區(qū)那樣,將確定的高速緩存條帶區(qū)60傳送給針對從主機(jī)執(zhí)行的輸入/輸出處理的高速緩存控制單元42的控制。此外,當(dāng)在通過例如修復(fù)或替換盤裝置22-1而消除了RAID-5組54的退化之后相對于高速緩存條帶區(qū)60例如根據(jù)LRU控制的回寫條件成立時,按與正常高速緩存區(qū)相似的方式執(zhí)行回寫處理。另一方面,當(dāng)圖18中的從盤裝置22-2和22-3到未使用區(qū)66和70的移動失敗時,在圖19的未使用區(qū)66和70中不存在有效數(shù)據(jù);因此,在這種情況下,高速緩存控制單元42和回寫處理單元將高速緩存條帶區(qū)60指定為禁止存取區(qū),并在下述的方式中將其作為鎖定條帶來對待。注意,這一點(diǎn)包括與上述(1)到(3)相同的內(nèi)容。
(1)當(dāng)從主機(jī)請求讀取時,當(dāng)高速緩存命中時將命中數(shù)據(jù)作為讀取響應(yīng),且當(dāng)高速緩存未命中時,在執(zhí)行基于RAID 5冗余配置的從盤裝置22-1至22-4的移動禁止數(shù)據(jù)恢復(fù)(即禁止再生讀取)之后高速緩存命中時進(jìn)行讀取響應(yīng)。
(2)當(dāng)主機(jī)請求寫入時,將寫入數(shù)據(jù)寫入對應(yīng)區(qū)。這與正常的高速緩存控制相同。
(3)當(dāng)例如根據(jù)LRU控制產(chǎn)生對高速緩存條帶區(qū)的回寫請求時,執(zhí)行基于RAID 5冗余配置的從盤裝置至高速緩存條帶區(qū)的未使用區(qū)的移動禁止數(shù)據(jù)恢復(fù),即執(zhí)行禁止再生讀取,從而保存了整個條帶的數(shù)據(jù),當(dāng)可以對其進(jìn)行保存時,在高速緩沖存儲器28上保留奇偶校驗(yàn)緩沖區(qū)52并根據(jù)整個條帶的數(shù)據(jù)生成新奇偶校驗(yàn)數(shù)據(jù),然后,執(zhí)行用于將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)盤裝置的寬帶寫入。
如上所述,即使在高速緩存條帶區(qū)60中存在從盤到其的移動失敗的未使用區(qū)66和70,當(dāng)來自主機(jī)對于未使用區(qū)66和70的讀取請求導(dǎo)致未命中時,執(zhí)行借助于從一致性被破壞的RAID-5組54的基于冗余配置的數(shù)據(jù)恢復(fù)的移動禁止再生讀??;因此,可以可靠地防止由于根據(jù)一致性已被破壞的數(shù)據(jù)的再生讀取而導(dǎo)致生成錯亂數(shù)據(jù)。
圖20A和20B是包括根據(jù)本發(fā)明的恢復(fù)處理的回寫處理的流程圖。在圖20A和20B中,當(dāng)例如根據(jù)LRU的回寫條件成立時,執(zhí)行該回寫處理。在回寫處理中,在步驟S1中,提取要回寫的高速緩沖存儲器中的新數(shù)據(jù),然后,在步驟S2中,檢查該新數(shù)據(jù)是否對應(yīng)于目標(biāo)條帶的一頁。如果它是對應(yīng)于一頁的新數(shù)據(jù),則在步驟S3中設(shè)置小寫入。在小寫入過程中,在步驟S4中,保留數(shù)據(jù)緩沖區(qū)50,并將舊數(shù)據(jù)和舊奇偶校驗(yàn)從盤裝置移動到構(gòu)成條帶并且是除新數(shù)據(jù)區(qū)之外的區(qū)的頁區(qū);然后,在步驟S5中,保留奇偶校驗(yàn)緩沖區(qū)52,并根據(jù)新數(shù)據(jù)、舊數(shù)據(jù)和舊奇偶校驗(yàn)通過異或計算來計算新奇偶校驗(yàn),并將其存儲;然后,在步驟S9中,將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的盤裝置。另一方面,如果在步驟S2中新數(shù)據(jù)是對應(yīng)于條帶的多個頁的數(shù)據(jù),則處理進(jìn)行到步驟S6,在步驟S6設(shè)置寬帶寫入。在寬帶寫入過程中,在步驟S7中,如果存在任何未使用頁,則保留數(shù)據(jù)緩沖區(qū)50并從盤裝置移動舊數(shù)據(jù),并移動條帶的全部頁的數(shù)據(jù);然后,在步驟S8中,保留奇偶校驗(yàn)緩沖區(qū)52,且根據(jù)條帶的全部數(shù)據(jù)計算新奇偶校驗(yàn)并將其存儲;然后,在步驟S9中,將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的盤裝置。在步驟S10中,檢查在步驟S9的回寫處理的對盤裝置的寫入是否存在差錯,如果不存在差錯,則在步驟S20中釋放奇偶校驗(yàn)緩沖區(qū)和數(shù)據(jù)緩沖區(qū)以結(jié)束處理。如果確定有差錯,則處理進(jìn)行到步驟S11,在步驟S11檢查是否由于兩個或更多個盤裝置的差錯而導(dǎo)致了不一致。如果這是由于一個盤裝置的差錯,則處理進(jìn)行到步驟S21,在步驟S21中將差錯盤設(shè)定為RAID 5的恢復(fù)對象盤;然后,在步驟S22中,釋放奇偶校驗(yàn)緩沖區(qū)和數(shù)據(jù)緩沖區(qū)以結(jié)束處理??梢酝ㄟ^基于RAID冗余配置的對差錯盤的數(shù)據(jù)恢復(fù)(即再生讀取)來管理一個盤裝置的差錯。如果在步驟S11中確定了不一致是由于兩個或更多個盤裝置的差錯;則處理進(jìn)行到步驟S12,在步驟S12中,根據(jù)本發(fā)明的恢復(fù)處理單元46在高速緩沖存儲器中設(shè)置發(fā)生了差錯的條帶的高速緩存條帶區(qū)以移動新數(shù)據(jù),并保存此時的新奇偶校驗(yàn);隨后,在步驟S13中,檢查在高速緩存條帶區(qū)內(nèi)是否存在未使用頁。如果存在未使用頁,則在步驟S14中執(zhí)行所謂的高速緩存內(nèi)移動,其中根據(jù)高速緩存條帶區(qū)的新數(shù)據(jù)和新奇偶校驗(yàn)來計算用于該區(qū)中的未使用頁的新數(shù)據(jù),并對其進(jìn)行移動。隨后,在步驟S15中,檢查在高速緩存條帶區(qū)的頁中是否存在空間。如果在頁內(nèi)有空間,則在步驟S16中,從對應(yīng)的盤裝置讀出數(shù)據(jù)并將其移動到頁中的未使用區(qū)。在步驟S17中,檢查從盤裝置的移動是否成功,如果移動失敗,則處理進(jìn)行到步驟S18,在步驟S18中將高速緩存條帶區(qū)指定為存取受限區(qū),即鎖定條帶。最后,在步驟S19中,釋放奇偶校驗(yàn)緩沖區(qū)和數(shù)據(jù)緩沖區(qū)以結(jié)束一系列的處理。此外,本發(fā)明提供了一種設(shè)置在RAID裝置中的計算機(jī),即,由設(shè)置在控制模塊內(nèi)的CPU 24執(zhí)行的程序,該程序的細(xì)節(jié)如流程圖20A和20B所示。在上述實(shí)施例中,當(dāng)由于由恢復(fù)處理單元46運(yùn)行其處理的兩個或更多個盤裝置的差錯而導(dǎo)致不一致的狀態(tài)時,常規(guī)使用的控制模塊出現(xiàn)故障,從而退化到備用控制模塊18-2,在該控制模塊退化狀態(tài)下,構(gòu)成RAID-5組54的盤裝置中的一個出現(xiàn)故障,從而導(dǎo)致退化,在高速緩存中保留用于存儲對應(yīng)于條帶的全部數(shù)據(jù)的高速緩存條帶區(qū)60以對其進(jìn)行高速緩存控制。然而,根據(jù)本發(fā)明的恢復(fù)處理還可以對在除上述外的差錯狀態(tài)下產(chǎn)生與由于兩個盤裝置差錯而出現(xiàn)不一致實(shí)際相同的差錯狀態(tài)的情況進(jìn)行管理。此外,本發(fā)明包括不損害其目的和優(yōu)點(diǎn)的適當(dāng)修改,并不限于上述實(shí)施例中示出的數(shù)值。
本申請要求基于2005年3月14日在日本提交的在先申請No.JP2005-070963的優(yōu)先權(quán)。
權(quán)利要求
1.一種存儲系統(tǒng),其特征在于包括高速緩存控制單元,用于按頁區(qū)單位管理高速緩沖存儲器中的數(shù)據(jù),并處理從上級裝置至存儲裝置的輸入/輸出請求;RAID控制單元,用于按與頁區(qū)具有相同大小的條帶區(qū)單位來管理多個存儲裝置中的每一個中的數(shù)據(jù),并按條帶區(qū)單位來管理共同具有同一地址的多個數(shù)據(jù)用條帶區(qū)和一個奇偶校驗(yàn)用條帶區(qū),并形成RAID 5的冗余配置,在RAID 5的冗余配置中,每當(dāng)改變條帶區(qū)的地址時,就改變其上設(shè)置有奇偶校驗(yàn)用條帶區(qū)的存儲裝置;回寫處理單元,用于當(dāng)產(chǎn)生了用于將高速緩沖存儲器中的新數(shù)據(jù)回寫到存儲裝置的回寫請求時,在高速緩沖存儲器中保留奇偶校驗(yàn)緩沖區(qū),生成新奇偶校驗(yàn),然后將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的存儲裝置;以及恢復(fù)處理單元,用于當(dāng)在回寫處理單元進(jìn)行寫入時在多個存儲裝置中出現(xiàn)RAID 5的一致性被破壞的差錯時,在高速緩沖存儲器中保留用于對包括待回寫新數(shù)據(jù)的整個條帶的數(shù)據(jù)進(jìn)行存儲的高速緩存條帶區(qū),并使得高速緩存控制單元對其進(jìn)行管理。
2.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,當(dāng)在回寫處理單元執(zhí)行寫入時在兩個或更多個存儲裝置中發(fā)生差錯時,恢復(fù)處理單元確定發(fā)生了RAID 5的一致性被破壞的差錯。
3.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,在保留高速緩存條帶區(qū)之后,恢復(fù)處理單元使得回寫處理單元釋放存儲新奇偶校驗(yàn)的奇偶校驗(yàn)緩沖區(qū)。
4.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,如果在高速緩存條帶區(qū)中存在未使用區(qū),則恢復(fù)處理單元將通過對同一區(qū)中的新數(shù)據(jù)與奇偶校驗(yàn)緩沖區(qū)中的新奇偶校驗(yàn)的異或而獲得的新數(shù)據(jù)移動到該未使用區(qū)。
5.根據(jù)權(quán)利要求1所述的存儲系統(tǒng),其特征在于,如果在高速緩存條帶區(qū)存在通過對同一區(qū)中的新數(shù)據(jù)與奇偶校驗(yàn)緩沖區(qū)中的新奇偶校驗(yàn)的異或而獲得的新數(shù)據(jù)不能移動到的未使用區(qū),則恢復(fù)處理單元將從存儲裝置讀出的數(shù)據(jù)移動到該未使用區(qū)。
6.根據(jù)權(quán)利要求5所述的存儲系統(tǒng),其特征在于,如果數(shù)據(jù)從存儲裝置到未使用區(qū)的移動失敗,則恢復(fù)處理單元將該高速緩存條帶區(qū)指定為存取受限區(qū),并使得高速緩存控制單元對其進(jìn)行管理。
7.根據(jù)權(quán)利要求6所述的存儲系統(tǒng),其特征在于,如果從上級裝置向被指定為存取受限區(qū)的高速緩存條帶區(qū)請求讀取,則高速緩存控制單元在高速緩存命中時使命中數(shù)據(jù)經(jīng)受讀取響應(yīng),當(dāng)高速緩存未命中時,在執(zhí)行基于RAID 5冗余配置的從存儲裝置的移動禁止數(shù)據(jù)恢復(fù)之后高速緩存命中時執(zhí)行讀取響應(yīng)。
8.根據(jù)權(quán)利要求7所述的存儲系統(tǒng),其特征在于,如果從上級裝置向被指定為存取受限區(qū)的高速緩存條帶區(qū)請求寫入,則高速緩存控制單元將寫入數(shù)據(jù)寫入對應(yīng)的區(qū)。
9.根據(jù)權(quán)利要求7所述的存儲系統(tǒng),其特征在于,如果在消除了存儲裝置的差錯之后產(chǎn)生了對被指定為存取受限區(qū)的高速緩存條帶區(qū)的回寫請求,并且如果回寫處理單元執(zhí)行基于RAID 5冗余配置的從存儲裝置到高速緩存條帶區(qū)中的未使用區(qū)的移動禁止數(shù)據(jù)恢復(fù)并保留了整個條帶的數(shù)據(jù),則回寫處理單元在高速緩沖存儲器中保留奇偶校驗(yàn)緩沖區(qū),并根據(jù)整個條帶的數(shù)據(jù)生成新奇偶校驗(yàn)數(shù)據(jù),然后,將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的存儲裝置。
10.一種存儲系統(tǒng)的控制方法,其特征在于包括以下步驟高速緩存控制步驟,按頁區(qū)單位來管理高速緩沖存儲器中的數(shù)據(jù),并處理從上級裝置至存儲裝置的輸入/輸出請求;RAID控制步驟,用于按與頁區(qū)具有相同大小的條帶區(qū)單位來管理多個存儲裝置中的每一個中的數(shù)據(jù),并按條帶區(qū)單位來管理共同具有同一地址的多個數(shù)據(jù)用條帶區(qū)和一個奇偶校驗(yàn)用條帶區(qū),并形成RAID 5的冗余配置,在RAID 5的冗余配置中,每當(dāng)改變條帶區(qū)的地址時,就改變其上設(shè)置有奇偶校驗(yàn)用條帶區(qū)的存儲裝置;回寫處理步驟,當(dāng)產(chǎn)生了用于將高速緩沖存儲器中的新數(shù)據(jù)回寫到存儲裝置的回寫請求時,在高速緩沖存儲器中保留奇偶校驗(yàn)緩沖區(qū),生成新奇偶校驗(yàn),然后,將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的存儲裝置;以及差錯恢復(fù)處理步驟,當(dāng)在根據(jù)回寫處理步驟進(jìn)行寫入時在多個存儲裝置中發(fā)生RAID 5的一致性被破壞的差錯時,在高速緩沖存儲器中保留用于對包括待回寫新數(shù)據(jù)的整個條帶的數(shù)據(jù)進(jìn)行存儲的高速緩存條帶區(qū),并使得高速緩存控制步驟對其進(jìn)行管理。
11.根據(jù)權(quán)利要求10所述的存儲系統(tǒng)的控制方法,其特征在于,當(dāng)在根據(jù)回寫處理步驟進(jìn)行寫入時在兩個或更多個存儲裝置中發(fā)生差錯時,在差錯恢復(fù)處理步驟中確定發(fā)生了RAID 5的一致性被破壞的差錯。
12.根據(jù)權(quán)利要求10所述的存儲系統(tǒng)的控制方法,其特征在于,在保留高速緩存條帶區(qū)之后,差錯恢復(fù)處理步驟使得回寫處理步驟釋放存儲新奇偶校驗(yàn)的奇偶校驗(yàn)緩沖區(qū)。
13.根據(jù)權(quán)利要求10所述的存儲系統(tǒng)的控制方法,其特征在于,如果在高速緩存條帶區(qū)中存在未使用區(qū)時,則在差錯恢復(fù)處理步驟中將通過對同一區(qū)中的新數(shù)據(jù)與奇偶校驗(yàn)緩沖區(qū)的新奇偶校驗(yàn)進(jìn)行異或而獲得的新數(shù)據(jù)移動到該未使用區(qū)。
14.根據(jù)權(quán)利要求10所述的存儲系統(tǒng)的控制方法,其特征在于,如果在高速緩存條帶區(qū)中存在通過對在同一區(qū)內(nèi)的新數(shù)據(jù)與奇偶校驗(yàn)緩沖區(qū)內(nèi)的新奇偶校驗(yàn)進(jìn)行異或而獲得的新數(shù)據(jù)不能移動到的未使用區(qū),則在差錯恢復(fù)處理步驟中將從存儲裝置讀出的數(shù)據(jù)移動到該未使用區(qū)。
15.根據(jù)權(quán)利要求14所述的存儲系統(tǒng)的控制方法,其特征在于,如果數(shù)據(jù)從存儲裝置到未使用區(qū)的移動失敗,則在恢復(fù)處理步驟中將該高速緩存條帶區(qū)指定為存取受限區(qū),并使得高速緩存控制步驟對其進(jìn)行管理。
16.根據(jù)權(quán)利要求15所述的存儲系統(tǒng)的控制方法,其特征在于,如果從上級裝置向被指定為存取受限區(qū)的高速緩存條帶區(qū)請求讀取,則在高速緩存控制步驟中,在高速緩存命中時使命中數(shù)據(jù)經(jīng)受讀取響應(yīng),當(dāng)高速緩存未命中時,在執(zhí)行基于RAID 5冗余配置的從存儲裝置的移動禁止數(shù)據(jù)恢復(fù)之后高速緩存命中時執(zhí)行讀取響應(yīng)。
17.根據(jù)權(quán)利要求16所述的存儲系統(tǒng)控制方法,其特征在于,如果從上級裝置向被指定為存取受限區(qū)的高速緩存條帶區(qū)請求寫入,則在所述高速緩存控制步驟中將寫入數(shù)據(jù)寫入對應(yīng)的區(qū)。
18.根據(jù)權(quán)利要求16所述的存儲系統(tǒng)控制方法,其特征在于,如果在消除了存儲裝置的差錯之后產(chǎn)生了對被指定為存取受限區(qū)的高速緩存條帶區(qū)的回寫請求,并且如果從存儲裝置到高速緩存條帶區(qū)的未使用區(qū)執(zhí)行基于RAID 5冗余配置的移動禁止數(shù)據(jù)恢復(fù)并保留了整個條帶的數(shù)據(jù),則在回寫處理步驟中,在高速緩沖存儲器中保留奇偶校驗(yàn)緩沖區(qū),并根據(jù)整個條帶的數(shù)據(jù)生成新奇偶校驗(yàn),然后,將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的存儲裝置。
19.一種用于控制存儲系統(tǒng)的程序,其中所述程序使得計算機(jī)執(zhí)行以下步驟高速緩存控制步驟,按頁區(qū)單位來管理高速緩沖存儲器中的數(shù)據(jù),并處理從上級裝置至存儲裝置的輸入/輸出請求;RAID控制步驟,用于按與頁區(qū)具有相同大小的條帶區(qū)單位來管理多個存儲裝置中的每一個中的數(shù)據(jù),并按條帶區(qū)單位來管理共同具有同一地址的多個數(shù)據(jù)用條帶區(qū)和一個奇偶校驗(yàn)用條帶區(qū),并形成RAID 5的冗余配置,在RAID 5的冗余配置中,每當(dāng)改變條帶區(qū)的地址時,就改變其上設(shè)置有奇偶校驗(yàn)用條帶區(qū)的存儲裝置;回寫處理步驟,當(dāng)產(chǎn)生用于將高速緩沖存儲器中的新數(shù)據(jù)回寫到存儲裝置的回寫請求時,在高速緩沖存儲器中保留奇偶校驗(yàn)緩沖區(qū),生成新奇偶校驗(yàn),然后,將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的存儲裝置;以及差錯恢復(fù)處理步驟,當(dāng)在根據(jù)回寫處理步驟進(jìn)行寫入時在多個存儲裝置中發(fā)生RAID 5的一致性被破壞的差錯時,在高速緩沖存儲器中保留用于對包括待回寫新數(shù)據(jù)的整個條帶的數(shù)據(jù)進(jìn)行存儲的高速緩存條帶區(qū),并使得高速緩存控制步驟對其進(jìn)行管理。
20.根據(jù)權(quán)利要求19所述的程序,其特征在于,當(dāng)在根據(jù)回寫處理步驟進(jìn)行寫入時在兩個或更多個存儲裝置中發(fā)生差錯時,在差錯恢復(fù)處理步驟中確定發(fā)生了RAID 5的一致性被破壞的差錯。
全文摘要
存儲系統(tǒng)及其控制方法和程序。當(dāng)產(chǎn)生將高速緩沖存儲器中的新數(shù)據(jù)回寫到形成RAID冗余配置的盤裝置的回寫請求時,回寫處理單元在高速緩沖存儲器中保留奇偶校驗(yàn)緩沖區(qū),生成新奇偶校驗(yàn),然后將新數(shù)據(jù)和新奇偶校驗(yàn)寫入對應(yīng)的盤裝置。當(dāng)在由回寫處理單元執(zhí)行寫入時在多個盤裝置中發(fā)生RAID一致性被破壞的差錯時,恢復(fù)處理單元在高速緩沖存儲器中保留用于對包括待回寫新數(shù)據(jù)的整個條帶的數(shù)據(jù)進(jìn)行存儲的高速緩存條帶區(qū),并使得高速緩存控制單元對其進(jìn)行管理。
文檔編號G06F12/08GK1834943SQ20051008954
公開日2006年9月20日 申請日期2005年7月29日 優(yōu)先權(quán)日2005年3月14日
發(fā)明者池內(nèi)和彥, 伊藤實(shí)希夫, 大黑谷秀治郎, 望月信哉, 高橋秀夫, 紺田與志仁, 佐藤靖丈, 越智弘昭, 牧野司, 久保田典秀 申請人:富士通株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
珲春市| 旌德县| 秦安县| 青田县| 若尔盖县| 兴山县| 郸城县| 宜兰市| 哈巴河县| 五河县| 乾安县| 津南区| 文登市| 麻江县| 泸州市| 钦州市| 三台县| 九江市| 钦州市| 淅川县| 普陀区| 宜丰县| 淮北市| 门源| 香河县| 建水县| 铜山县| 冷水江市| 乳山市| 登封市| 阜康市| 兴化市| 都匀市| 琼结县| 长治市| 于田县| 长泰县| 永嘉县| 怀远县| 泰兴市| 布尔津县|