專利名稱:盤陣列裝置、數(shù)據(jù)恢復(fù)方法和計(jì)算機(jī)產(chǎn)品的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種盤陣列裝置,包括多個(gè)磁盤裝置和并行地操作磁盤裝置以控制對(duì)數(shù)據(jù)的讀取和寫入的盤陣列控制器。
背景技術(shù):
傳統(tǒng)盤陣列裝置(廉價(jià)冗余磁盤陣列RAID)能夠高速地存取大量存儲(chǔ)在與主計(jì)算機(jī)相連的外部存儲(chǔ)設(shè)備上的數(shù)據(jù),在發(fā)生錯(cuò)誤時(shí)由于提供了數(shù)據(jù)冗余而具有改善的可靠性(例如,參見日本特開2004-164675號(hào)公報(bào))。通常,將盤陣列裝置分為六個(gè)等級(jí),RAID0到RAID5。在RAID1中,將相同的數(shù)據(jù)寫入兩個(gè)磁盤裝置中。因此,即使兩個(gè)磁盤裝置中的一個(gè)發(fā)生故障,也可從另一個(gè)磁盤裝置中讀取數(shù)據(jù),由此改善了數(shù)據(jù)的安全性。
將把同一數(shù)據(jù)存儲(chǔ)在兩個(gè)或者更多個(gè)磁盤裝置中的方法稱為數(shù)據(jù)鏡像,并且將實(shí)現(xiàn)該鏡像的結(jié)構(gòu)稱為鏡像磁盤結(jié)構(gòu)。可以通過各種方式實(shí)現(xiàn)鏡像或者鏡像磁盤結(jié)構(gòu)。圖7是具有鏡像磁盤結(jié)構(gòu)的傳統(tǒng)盤陣列裝置110的示意圖。將盤陣列裝置110連接到作為上位設(shè)備的主計(jì)算機(jī)140。盤陣列裝置110包括作為硬盤裝置的8個(gè)磁盤裝置121a到121h;連接到主計(jì)算機(jī)140的兩個(gè)通道適配器131a和131b;執(zhí)行從主計(jì)算機(jī)140接收的命令的四個(gè)中央管理單元132;與磁盤裝置121a到121h相連的四個(gè)設(shè)備適配器133a到133d。盤陣列裝置110可以存儲(chǔ)數(shù)據(jù),同時(shí)還可以對(duì)數(shù)據(jù)進(jìn)行鏡像。磁盤裝置121e到121h分別存儲(chǔ)與磁盤裝置121a到121d中的數(shù)據(jù)相同的數(shù)據(jù)。
盤陣列裝置110包括四個(gè)中央管理單元132a到132d。每個(gè)中央管理單元控制磁盤裝置121a到121h中的預(yù)定磁盤裝置。中央管理單元132a包括命令處理執(zhí)行單元151a,和存儲(chǔ)數(shù)據(jù)的高速緩沖存儲(chǔ)器152a。高速緩沖存儲(chǔ)器152a包括本地高速緩沖區(qū)域153a,存儲(chǔ)在讀取數(shù)據(jù)時(shí)從預(yù)定磁盤裝置中讀取的數(shù)據(jù)和在寫入數(shù)據(jù)時(shí)要寫入預(yù)定磁盤的數(shù)據(jù);以及,鏡像高速緩沖區(qū)域154a,用于對(duì)要寫入預(yù)定磁盤裝置的數(shù)據(jù)進(jìn)行復(fù)制。其它的中央管理單元132b到132d具有與中央管理單元132a相同的結(jié)構(gòu)。以循環(huán)的方式利用鏡像高速緩沖區(qū)域復(fù)制全部中央管理單元的本地高速緩沖區(qū)域。例如,利用鄰近的中央管理單元132b的鏡像高速緩沖區(qū)域154b來復(fù)制中央管理單元132a的本地高速緩沖區(qū)域153a。
下面對(duì)將存儲(chǔ)在高速緩沖存儲(chǔ)器中的數(shù)據(jù)寫入磁盤裝置的回寫(write-back)處理進(jìn)行說明。例如,對(duì)將數(shù)據(jù)從主計(jì)算機(jī)140寫入磁盤裝置121a的情況進(jìn)行說明。通道適配器131a接收寫入命令以指示從主計(jì)算機(jī)140寫入數(shù)據(jù),并且與校驗(yàn)信息一起寫入該數(shù)據(jù),該校驗(yàn)信息表示添加在管理磁盤裝置121a(在寫入命令中指定的存取目的地)的中央管理單元132a的本地高速緩沖區(qū)域153a中的數(shù)據(jù)的有效性。同時(shí),通道適配器131b從主計(jì)算機(jī)140接收寫入命令,并且與校驗(yàn)信息一起寫入該數(shù)據(jù),該校驗(yàn)信息表示添加在管理磁盤裝置121e(其對(duì)磁盤裝置121a進(jìn)行復(fù)制,下文稱為“鏡像用磁盤裝置”)的中央管理單元132b的鏡像高速緩沖區(qū)域154b中的數(shù)據(jù)的有效性。因此,將相同數(shù)據(jù)存儲(chǔ)在磁盤裝置121a和121e中。
假設(shè)本地高速緩沖區(qū)域153a中的數(shù)據(jù)是異常數(shù)據(jù)(corrupt data)。在此情況下,由于在磁盤裝置121a中存儲(chǔ)有相同的數(shù)據(jù),所以意味著在磁盤裝置121a中存在的數(shù)據(jù)也同樣是異常數(shù)據(jù)。假設(shè)在鏡像高速緩沖區(qū)域154b中和磁盤裝置121e中存儲(chǔ)有正常數(shù)據(jù)。
基于這些假設(shè),當(dāng)主計(jì)算機(jī)140執(zhí)行數(shù)據(jù)讀取命令,以讀取寫入磁盤裝置121a中的數(shù)據(jù)時(shí),通道適配器131a將數(shù)據(jù)讀取命令傳送給管理磁盤裝置121a的中央管理單元132a,以執(zhí)行該數(shù)據(jù)讀取命令。此時(shí),如果在本地高速緩沖區(qū)域153a中存在對(duì)應(yīng)的數(shù)據(jù),則從本地高速緩沖區(qū)域153a中讀取數(shù)據(jù)。另一方面,如果在本地高速緩沖區(qū)域153a中不存在對(duì)應(yīng)的數(shù)據(jù),則將該數(shù)據(jù)從磁盤裝置121a中展開到本地高速緩沖區(qū)域153a中。通道適配器131a執(zhí)行錯(cuò)誤校驗(yàn),并且根據(jù)該數(shù)據(jù)中的校驗(yàn)信息來判斷該數(shù)據(jù)是否是正常數(shù)據(jù)。因?yàn)樵诖思僭O(shè)高速緩沖存儲(chǔ)器152a中的數(shù)據(jù)是異常數(shù)據(jù),所以通道適配器131a判定該數(shù)據(jù)是異常數(shù)據(jù)。因?yàn)樗x取的數(shù)據(jù)是異常數(shù)據(jù),所以執(zhí)行從磁盤裝置121e讀取相同數(shù)據(jù)的處理。通道適配器131b將數(shù)據(jù)讀取命令傳送給中央管理單元132b,以將數(shù)據(jù)從磁盤裝置121e中展開到本地高速緩沖區(qū)域153b中。此后,通道適配器131b對(duì)展開到本地高速緩沖區(qū)域153b中的數(shù)據(jù)執(zhí)行錯(cuò)誤校驗(yàn)。在該示例中,因?yàn)榇鎯?chǔ)在磁盤裝置121e中的數(shù)據(jù)是正常數(shù)據(jù),所以通道適配器將存儲(chǔ)在高速緩沖存儲(chǔ)器152b的本地高速緩沖區(qū)域153b中的數(shù)據(jù)返回給主計(jì)算機(jī)140。此后,根據(jù)來自主計(jì)算機(jī)140的用戶或者盤陣列裝置110的管理員的命令,以正常數(shù)據(jù)替換磁盤裝置121a中的異常數(shù)據(jù)。
如上所述,在傳統(tǒng)的盤陣列裝置中,即使數(shù)據(jù)在回寫處理時(shí)變?yōu)楫惓?shù)據(jù),但是該異常數(shù)據(jù)也被寫入了磁盤裝置。直到用戶或者管理員注意到在磁盤裝置中存在異常數(shù)據(jù)并且指示在異常數(shù)據(jù)上覆寫正常數(shù)據(jù),該異常數(shù)據(jù)才會(huì)被正常數(shù)據(jù)替換。因此,如果在磁盤裝置中存在異常數(shù)據(jù)的事實(shí)未被注意到,則該異常數(shù)據(jù)將存留在磁盤裝置中而不會(huì)被恢復(fù)。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是至少解決傳統(tǒng)技術(shù)中的這些問題。
根據(jù)本發(fā)明的一個(gè)方面,一種盤陣列裝置與外部設(shè)備相連,在數(shù)據(jù)寫入操作中存儲(chǔ)從外部設(shè)備接收的數(shù)據(jù),并且在數(shù)據(jù)讀取操作中,基于來自外部設(shè)備的讀取命令,將數(shù)據(jù)返回給外部設(shè)備,該盤陣列裝置包括盤陣列單元,包括存儲(chǔ)數(shù)據(jù)的第一存儲(chǔ)器和對(duì)已經(jīng)存儲(chǔ)在第一存儲(chǔ)器中的數(shù)據(jù)進(jìn)行復(fù)制的第二存儲(chǔ)器;多個(gè)中央管理單元,各中央管理單元包括高速緩沖存儲(chǔ)器和命令處理執(zhí)行單元,該高速緩沖存儲(chǔ)器具有本地高速緩沖區(qū)域和鏡像高速緩沖區(qū)域,該本地高速緩沖區(qū)域在執(zhí)行數(shù)據(jù)讀取操作時(shí)存儲(chǔ)從第一存儲(chǔ)器或第二存儲(chǔ)器讀取的數(shù)據(jù),并且在執(zhí)行數(shù)據(jù)寫入操作時(shí)存儲(chǔ)從外部設(shè)備接收的數(shù)據(jù),該鏡像高速緩沖區(qū)域在數(shù)據(jù)寫入操作期間對(duì)已經(jīng)存儲(chǔ)在本地高速緩沖區(qū)域中的數(shù)據(jù)進(jìn)行復(fù)制,該命令處理執(zhí)行單元在第一次接收到讀取命令時(shí)將存儲(chǔ)在第一存儲(chǔ)器中的第一數(shù)據(jù)展開到本地高速緩沖區(qū)域中,并且在第二次接收到讀取命令時(shí)將第二數(shù)據(jù)從第二存儲(chǔ)器中展開到本地高速緩沖區(qū)域中;多個(gè)通道適配器,各通道適配器包括校驗(yàn)信息添加單元和錯(cuò)誤校驗(yàn)單元,該校驗(yàn)信息添加單元將錯(cuò)誤校驗(yàn)用的校驗(yàn)信息添加到從外部設(shè)備接收的用于存儲(chǔ)在第一存儲(chǔ)器中的數(shù)據(jù)上,該錯(cuò)誤校驗(yàn)單元基于該校驗(yàn)信息對(duì)本地高速緩沖區(qū)域中的數(shù)據(jù)執(zhí)行錯(cuò)誤校驗(yàn);恢復(fù)處理執(zhí)行判定單元,其在完成與外部設(shè)備的輸入/輸出處理之后,在錯(cuò)誤校驗(yàn)單元判定第一數(shù)據(jù)出現(xiàn)錯(cuò)誤而第二數(shù)據(jù)正常時(shí),向命令處理執(zhí)行單元輸出回寫命令。該命令處理執(zhí)行單元將存儲(chǔ)在本地高速緩沖區(qū)域中的第二數(shù)據(jù)復(fù)制到其它中央管理單元的高速緩沖存儲(chǔ)器的鏡像高速緩沖區(qū)域中,并且在恢復(fù)處理執(zhí)行判定單元輸出回寫命令后,執(zhí)行用于將第二數(shù)據(jù)傳送給第一存儲(chǔ)器和第二存儲(chǔ)器的回寫操作。
根據(jù)本發(fā)明的另一個(gè)方面,一種用于盤陣列裝置的數(shù)據(jù)恢復(fù)方法,該盤陣列裝置包括用于復(fù)制并存儲(chǔ)數(shù)據(jù)的第一存儲(chǔ)器和第二存儲(chǔ)器、在對(duì)第一存儲(chǔ)器或者第二存儲(chǔ)器進(jìn)行存取時(shí)存儲(chǔ)數(shù)據(jù)的第一高速緩存單元和對(duì)存儲(chǔ)在第一高速緩存單元中的來自外部的數(shù)據(jù)進(jìn)行復(fù)制的第二高速緩存單元,所述方法包括當(dāng)基于來自與盤陣列裝置相連的外部設(shè)備的數(shù)據(jù)讀取命令而從第一存儲(chǔ)器寫入第一高速緩存單元中的第一數(shù)據(jù)中存在錯(cuò)誤時(shí),基于從外部設(shè)備再次接收的數(shù)據(jù)讀取命令,將第二數(shù)據(jù)從第二存儲(chǔ)器寫入第一高速緩存單元中;對(duì)第二數(shù)據(jù)執(zhí)行錯(cuò)誤校驗(yàn);當(dāng)基于錯(cuò)誤校驗(yàn)判定第二數(shù)據(jù)正常時(shí),將第二數(shù)據(jù)發(fā)送給外部設(shè)備;將寫入第一高速緩存單元中的第二數(shù)據(jù)復(fù)制到第二高速緩存單元中;并且將寫入第一高速緩存單元和第二高速緩存單元中的第二數(shù)據(jù)分別回寫入第一存儲(chǔ)器和第二存儲(chǔ)器中。
根據(jù)本發(fā)明的另一個(gè)方面,一種計(jì)算機(jī)可讀記錄介質(zhì),其中存儲(chǔ)有使計(jì)算機(jī)實(shí)現(xiàn)上述數(shù)據(jù)恢復(fù)方法的計(jì)算機(jī)程序。
本發(fā)明的其它目的、特征和優(yōu)點(diǎn)將從本發(fā)明的以下詳細(xì)說明中得到具體地闡述,或者通過結(jié)合附圖進(jìn)行閱讀而變得明了。
圖1是根據(jù)本發(fā)明的實(shí)施例的盤陣列裝置的方框圖;圖2是圖1所示的通道適配器的功能框圖;圖3是數(shù)據(jù)結(jié)構(gòu)的一個(gè)示例;圖4是圖1所示的中央管理單元的功能框圖;圖5是數(shù)據(jù)的回寫處理過程的流程圖;圖6A是數(shù)據(jù)恢復(fù)的處理過程的流程圖,并且圖6B是圖6A中所示的流程圖的繼續(xù);以及圖7是傳統(tǒng)盤陣列裝置的框圖。
具體實(shí)施例方式
下面將結(jié)合附圖詳細(xì)解釋本發(fā)明的示例性實(shí)施例。
圖1是根據(jù)本發(fā)明的實(shí)施例的盤陣列裝置10的框圖。盤陣列裝置10與作為上位設(shè)備的主計(jì)算機(jī)40相連,并且用作主計(jì)算機(jī)40的外部存儲(chǔ)設(shè)備。可以將多個(gè)主計(jì)算機(jī)通過網(wǎng)絡(luò)等與盤陣列裝置相連。盤陣列裝置10包括存儲(chǔ)數(shù)據(jù)的盤陣列單元20,和控制盤陣列單元20的盤陣列控制單元30。
盤陣列單元20包括多個(gè)磁盤裝置(硬盤驅(qū)動(dòng)器),并具有RAID1結(jié)構(gòu)或者RAID0+1結(jié)構(gòu)。典型地,RAID1結(jié)構(gòu)具有用于存儲(chǔ)數(shù)據(jù)的磁盤裝置和用于鏡像該數(shù)據(jù)的磁盤裝置,以此來提供對(duì)數(shù)據(jù)的冗余。RAID0+1結(jié)構(gòu)基本包括在n個(gè)磁盤裝置中分配并存儲(chǔ)數(shù)據(jù)的RAID0結(jié)構(gòu)(其中,n是大于1的正整數(shù)),并且包括用于進(jìn)行鏡像的n個(gè)磁盤裝置,以提供對(duì)數(shù)據(jù)的冗余。不考慮該結(jié)構(gòu),RAID系統(tǒng)至少包括用于存儲(chǔ)數(shù)據(jù)的磁盤裝置,和用于復(fù)制數(shù)據(jù)的磁盤裝置。有時(shí),將存儲(chǔ)數(shù)據(jù)的磁盤裝置稱為主磁盤而將鏡像數(shù)據(jù)的磁盤裝置稱為副磁盤。因?yàn)楦贝疟P對(duì)數(shù)據(jù)進(jìn)行鏡像,所以有時(shí)也將副磁盤稱為鏡像用磁盤裝置。
盤陣列單元20包括例如8個(gè)磁盤裝置(硬盤驅(qū)動(dòng)器)21a到21h。磁盤裝置21a到21d是主磁盤,而磁盤裝置21e到21h是副磁盤。磁盤裝置21a到21h包括由主計(jì)算機(jī)40識(shí)別的邏輯單元(未示出)。磁盤裝置的數(shù)目不限于8個(gè)。
盤陣列控制單元30包括多個(gè)通道適配器31a和31b,執(zhí)行對(duì)于主計(jì)算機(jī)40的接口控制;中央管理單元32a到32d,控制盤陣列單元20;以及,多個(gè)設(shè)備適配器33a到33d,控制磁盤裝置21a到21h。通道適配器、中央管理單元和設(shè)備適配器的數(shù)目分別不限于2個(gè)、4個(gè)和4個(gè)。
通道適配器31a和31b是與主計(jì)算機(jī)40的接口。圖2是通道適配器31a的示例性功能框圖。通道適配器31b具有相同的結(jié)構(gòu)。通道適配器31a包括命令處理單元311,處理來自主計(jì)算機(jī)40的命令;校驗(yàn)信息添加單元312,生成用于對(duì)從主計(jì)算機(jī)40寫入盤陣列裝置10的數(shù)據(jù)執(zhí)行錯(cuò)誤校驗(yàn)的校驗(yàn)信息,并且將所生成的校驗(yàn)信息添加給該數(shù)據(jù);錯(cuò)誤校驗(yàn)單元313,對(duì)所存取的數(shù)據(jù)執(zhí)行錯(cuò)誤校驗(yàn);以及,控制單元314,控制每個(gè)處理單元。
命令處理單元311具有以下功能將從主計(jì)算機(jī)40發(fā)送的命令傳送給中央管理單元32a到32d中的預(yù)定中央管理單元,將命令執(zhí)行結(jié)果從預(yù)定中央管理單元發(fā)送給主計(jì)算機(jī)40,并且向預(yù)定中央管理單元通知命令執(zhí)行結(jié)果或者錯(cuò)誤校驗(yàn)結(jié)果。例如,如圖1所示,當(dāng)設(shè)置有多個(gè)中央管理單元32a到32d時(shí),各中央管理單元32a到32d對(duì)預(yù)定磁盤裝置21a到21h進(jìn)行管理,命令處理單元311基于命令的存取目的地(例如邏輯單元或者邏輯單元與邏輯塊地址的組合)識(shí)別中央管理單元32a到32d中的要向其傳送命令的一個(gè)中央管理單元,并且將所接收的命令傳送給所識(shí)別出的中央管理單元。
從命令處理單元311通知給預(yù)定中央管理單元的重要信息包括錯(cuò)誤通知信息和處理完成通知信息。錯(cuò)誤通知信息是用于在錯(cuò)誤校驗(yàn)單元313判定數(shù)據(jù)中存在錯(cuò)誤時(shí),通知預(yù)定中央管理單元發(fā)生錯(cuò)誤的信息,而處理完成通知信息是用于在將命令執(zhí)行結(jié)果返回到主計(jì)算機(jī)40之后隨即通知預(yù)定中央管理單元關(guān)于主計(jì)算機(jī)40的處理已完成的信息。
校驗(yàn)信息添加單元312具有如下功能生成在讀取稍后將從主計(jì)算機(jī)40寫入磁盤裝置21a到21h的數(shù)據(jù)時(shí)判斷是否在該數(shù)據(jù)中存有錯(cuò)誤的過程中使用的信息,并且將所生成的校驗(yàn)信息添加給該數(shù)據(jù)。對(duì)于錯(cuò)誤校驗(yàn),例如可以使用循環(huán)冗余校驗(yàn)(CRC)。
圖3是添加有校驗(yàn)信息的數(shù)據(jù)的示意圖。校驗(yàn)信息71包括塊ID 72和校驗(yàn)碼73,并且將其添加到要寫入盤陣列裝置10的數(shù)據(jù)70中。塊ID72是邏輯地址和數(shù)據(jù)的特性信息,校驗(yàn)碼73是用于校驗(yàn)數(shù)據(jù)有效性的錯(cuò)誤校正碼。例如,針對(duì)每個(gè)預(yù)定數(shù)據(jù)大小的塊生成校驗(yàn)碼73,并且將其添加給數(shù)據(jù)70作為校驗(yàn)信息71。在使用CRC的時(shí)候,校驗(yàn)碼73是通過將數(shù)據(jù)假設(shè)為多項(xiàng)式,并且將該多項(xiàng)式除以生成多項(xiàng)式而獲得的余式。
錯(cuò)誤校驗(yàn)單元313在將要存儲(chǔ)在盤陣列單元20a到20h或者高速緩沖存儲(chǔ)器323中的數(shù)據(jù)發(fā)送給主計(jì)算機(jī)40時(shí),使用添加給數(shù)據(jù)70的校驗(yàn)信息71來對(duì)于該數(shù)據(jù)執(zhí)行待發(fā)送的數(shù)據(jù)70是否正常的錯(cuò)誤校驗(yàn)。錯(cuò)誤校驗(yàn)的方法包括由校驗(yàn)信息添加單元312以與生成校驗(yàn)信息71相同的方式來生成用于數(shù)據(jù)70的代碼,并且將實(shí)際計(jì)算出的數(shù)據(jù)與包含在添加給數(shù)據(jù)70的校驗(yàn)信息中的校驗(yàn)碼73進(jìn)行比較,以檢測(cè)數(shù)據(jù)中的錯(cuò)誤。
圖4是中央管理單元32a的示例性功能框圖。中央管理單元32b到32d具有相同的配置。中央管理單元32a包括資源控制單元321,執(zhí)行資源管理;RAID控制單元322,控制各個(gè)RAID級(jí)別中的磁盤裝置21a到21h的輸入/輸出(I/O);高速緩沖存儲(chǔ)器323,臨時(shí)存儲(chǔ)數(shù)據(jù);命令處理執(zhí)行單元326,對(duì)所接收的命令執(zhí)行處理并對(duì)高速緩沖存儲(chǔ)器323進(jìn)行控制;恢復(fù)處理執(zhí)行判定單元327,判斷由于在磁盤裝置21a到21h中存在具有錯(cuò)誤的數(shù)據(jù)而是否需要進(jìn)行恢復(fù)處理;以及控制單元328,對(duì)各個(gè)處理單元進(jìn)行控制。當(dāng)如圖1所示,設(shè)置多個(gè)中央管理單元32a到32d時(shí),預(yù)先確定以由各個(gè)中央管理單元32a到32d控制的磁盤裝置21a到21h形成的邏輯單元的范圍。
資源控制單元321具有如下功能區(qū)域獨(dú)占功能,用于當(dāng)連接多個(gè)主計(jì)算機(jī)時(shí),當(dāng)其它主計(jì)算機(jī)已存取了數(shù)據(jù)時(shí),對(duì)可對(duì)同一數(shù)據(jù)執(zhí)行修改的主計(jì)算機(jī)進(jìn)行限制;以及,資源控制功能,用于控制各個(gè)處理單元中的I/O相關(guān)處理。
RAID控制單元322具有如下功能將物理磁盤裝置21a到21h轉(zhuǎn)換為邏輯單元級(jí)別,并且對(duì)各RAID級(jí)別中的磁盤裝置21a到21h的I/O進(jìn)行控制,例如針對(duì)各RAID級(jí)別進(jìn)行鏡像或者逐條進(jìn)行控制或管理。
高速緩沖存儲(chǔ)器323是對(duì)從主計(jì)算機(jī)40存取的數(shù)據(jù)或者要寫入磁盤裝置21a到21h中的數(shù)據(jù)進(jìn)行存儲(chǔ)的臨時(shí)存儲(chǔ)單元,包括本地高速緩沖區(qū)域324,用于臨時(shí)存儲(chǔ)要從主計(jì)算機(jī)40寫入盤陣列單元20的數(shù)據(jù)或者從盤陣列單元20讀取的數(shù)據(jù);以及,鏡像高速緩沖區(qū)域325,用于在向盤陣列單元20中寫入數(shù)據(jù)時(shí),臨時(shí)存儲(chǔ)用于對(duì)要寫入的數(shù)據(jù)進(jìn)行復(fù)制(鏡像)的數(shù)據(jù)。此外,在中央管理單元32的鏡像高速緩沖區(qū)域中,不僅對(duì)相同高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中存儲(chǔ)的數(shù)據(jù)進(jìn)行了復(fù)制,而且也對(duì)在中央管理單元32a到32d中的其它相鄰中央管理單元的高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域中存儲(chǔ)的數(shù)據(jù)進(jìn)行了復(fù)制。因此,以循環(huán)的方式對(duì)所有的中央管理單元32a到32d的本地高速緩沖區(qū)域324和鏡像高速緩沖區(qū)域325進(jìn)行了復(fù)制。
在圖1示出的示例中,將從主計(jì)算機(jī)40寫入中央管理單元32a的高速緩沖存儲(chǔ)器323中的數(shù)據(jù)復(fù)制在中央管理單元32b的高速緩沖存儲(chǔ)器323的鏡像高速緩沖區(qū)域325中。類似地,將中央管理單元32b的本地高速緩沖區(qū)域324復(fù)制在中央管理單元32c的鏡像高速緩沖區(qū)域325中,將中央管理單元32c的本地高速緩沖區(qū)域324復(fù)制在中央管理單元32d的鏡像高速緩沖區(qū)域325中,并且將中央管理單元32d的本地高速緩沖區(qū)域324復(fù)制在中央管理單元32a的鏡像高速緩沖區(qū)域325中。
命令處理執(zhí)行單元326具有如下功能對(duì)用于I/O的高速緩沖存儲(chǔ)器323進(jìn)行管理和控制,并對(duì)所接收的命令執(zhí)行處理。例如,當(dāng)命令處理執(zhí)行單元326從通道適配器31a或者31b的命令處理單元311接收到讀取數(shù)據(jù)的請(qǐng)求時(shí),命令處理執(zhí)行單元326確定關(guān)于I/O的高速緩沖存儲(chǔ)器323的高速緩存選中(cache hit)/高速緩存未選中(cache miss)。在高速緩沖存儲(chǔ)器選中的情況下,命令處理執(zhí)行單元326準(zhǔn)備存儲(chǔ)在高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中的數(shù)據(jù),并且在高速緩存未選中的情況下,通過執(zhí)行將數(shù)據(jù)從磁盤裝置21a到21h展開到高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324的登臺(tái)操作(stage operation)來準(zhǔn)備數(shù)據(jù)。類似地,當(dāng)命令處理執(zhí)行單元326接收到寫入數(shù)據(jù)的請(qǐng)求時(shí),命令處理執(zhí)行單元326將寫入高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324的數(shù)據(jù)復(fù)制到鏡像高速緩沖區(qū)域325中,并且將數(shù)據(jù)分別寫入主磁盤和副磁盤中。此外當(dāng)高速緩沖存儲(chǔ)器323耗盡時(shí),命令處理執(zhí)行單元326執(zhí)行回寫處理,以將存儲(chǔ)在高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中的異常數(shù)據(jù)回寫入磁盤裝置21a到21h中,或者執(zhí)行例如從高速緩沖存儲(chǔ)器323刷新數(shù)據(jù)的調(diào)度。
恢復(fù)處理執(zhí)行判定單元327判斷被主計(jì)算機(jī)40存取的某些數(shù)據(jù)是否是異常數(shù)據(jù),該異常數(shù)據(jù)表示存儲(chǔ)在高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中的數(shù)據(jù)與存儲(chǔ)在主磁盤中的數(shù)據(jù)不匹配,并且當(dāng)判定是異常數(shù)據(jù)時(shí),指示命令處理執(zhí)行單元326執(zhí)行回寫處理,以將存儲(chǔ)在本地高速緩沖區(qū)域324中的數(shù)據(jù)回寫入盤陣列單元20中。當(dāng)從作為主磁盤的磁盤裝置21a到21d讀取的數(shù)據(jù)中存在錯(cuò)誤時(shí),并且當(dāng)從作為副磁盤的磁盤裝置21e到32h中讀取的數(shù)據(jù)正常時(shí),恢復(fù)處理執(zhí)行判定單元327判定需要執(zhí)行恢復(fù)處理,并且使命令處理執(zhí)行單元326在完成與主計(jì)算機(jī)40的I/O之后,執(zhí)行將正常數(shù)據(jù)回寫入盤陣列單元20的處理。
通過以下方式來進(jìn)行判斷當(dāng)從主磁盤讀取的數(shù)據(jù)具有錯(cuò)誤時(shí),使用首先從通道適配器31a和31b的命令處理單元311接收的錯(cuò)誤通知信息,并且當(dāng)從副磁盤讀取的數(shù)據(jù)正常時(shí),使用稍后從通道適配器31a和31b的命令處理單元311接收的處理完成通知信息。換言之,僅當(dāng)在已經(jīng)接收到錯(cuò)誤通知信息之后接收到關(guān)于某數(shù)據(jù)的處理完成通知信息時(shí),恢復(fù)處理執(zhí)行判定單元327才指示對(duì)于磁盤裝置21a到21h執(zhí)行恢復(fù)處理。利用該恢復(fù)處理,消除了存儲(chǔ)在高速緩沖存儲(chǔ)器323中的數(shù)據(jù)與存儲(chǔ)在主磁盤中的數(shù)據(jù)(將其存儲(chǔ)在與存儲(chǔ)在高速緩沖存儲(chǔ)器323中的數(shù)據(jù)相同的位置上)之間的差異,并且保持非異常狀態(tài)。
設(shè)備適配器33a和33b具有在中央管理單元32a到32d和磁盤裝置21a到21h之間交換命令或者數(shù)據(jù)的功能,以基于來自中央管理單元32a到32d的命令來控制磁盤裝置21a到21h。
盤陣列裝置10是主計(jì)算機(jī)40的外部存儲(chǔ)設(shè)備,通過來自主計(jì)算機(jī)40的寫入命令將必要的數(shù)據(jù)寫入其中。此外,盤陣列裝置10在通過來自主計(jì)算機(jī)40的寫入命令將數(shù)據(jù)寫入高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324和鏡像高速緩沖區(qū)域325中之后,執(zhí)行將存儲(chǔ)在高速緩沖存儲(chǔ)器323中的數(shù)據(jù)回寫入相應(yīng)的磁盤裝置21a到21h中的處理(回寫處理)。此后,執(zhí)行來自主計(jì)算機(jī)40的各種命令,例如讀取命令。下面對(duì)當(dāng)要寫入主磁盤中的所存取的數(shù)據(jù)具有錯(cuò)誤并且存儲(chǔ)在副磁盤的數(shù)據(jù)正常時(shí)的如下處理進(jìn)行說明(1)數(shù)據(jù)的回寫處理以及;(2)對(duì)盤陣列裝置10的恢復(fù)處理。
圖5是數(shù)據(jù)回寫的處理過程的流程圖。在該示例中,將數(shù)據(jù)回寫入圖1所示的磁盤裝置21a和21e中,并且中央管理單元32a對(duì)磁盤裝置21a和21e進(jìn)行管理。如上所述,利用中央管理單元32b的鏡像高速緩沖區(qū)域325復(fù)制中央管理單元32a的本地高速緩沖區(qū)域324。首先,當(dāng)通道適配器31a從主計(jì)算機(jī)40接收數(shù)據(jù)寫入命令(步驟S11)時(shí),通道適配器31a的校驗(yàn)信息添加單元312生成用于所接收的數(shù)據(jù)的校驗(yàn)信息,并且將所生成的校驗(yàn)信息添加到該數(shù)據(jù)中(步驟S12)。通道適配器31a的命令處理單元311獲取該數(shù)據(jù)的存取目的地(例如邏輯單元號(hào)和邏輯塊地址)(步驟S13),并且選擇管理與存取目的地相對(duì)應(yīng)的磁盤裝置21a的中央管理單元32a。
通道適配器31a的命令處理單元311將添加有校驗(yàn)信息的數(shù)據(jù)存儲(chǔ)在所選擇的中央管理單元32a的高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中,以及中央管理單元32b到32d中的用于復(fù)制該數(shù)據(jù)的其它中央管理單元的高速緩沖存儲(chǔ)器323的鏡像高速緩沖區(qū)域325中(步驟S14)。接著,通道適配器31a的命令處理單元311通知主計(jì)算機(jī)40完成了寫入數(shù)據(jù)(步驟S15),中央管理單元32a的命令處理執(zhí)行單元326將存儲(chǔ)在其自己的高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中的數(shù)據(jù)回寫入主磁盤(磁盤裝置21a)中,并且其它中央管理單元32b的命令處理執(zhí)行單元326將存儲(chǔ)在其自己的高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中的數(shù)據(jù)回寫入副磁盤中(磁盤裝置21e)(步驟S16)。利用這種機(jī)制,完成了數(shù)據(jù)的回寫處理。
圖6A和6B是當(dāng)存儲(chǔ)在主磁盤中的首先存取的數(shù)據(jù)中存在錯(cuò)誤,而存儲(chǔ)在副磁盤中的數(shù)據(jù)正常時(shí)的數(shù)據(jù)恢復(fù)的處理過程的流程圖。在此示例中,處理是通過圖5中描述的過程來讀取存儲(chǔ)在磁盤裝置21a和21e中的數(shù)據(jù)。假設(shè)存儲(chǔ)在作為主磁盤的磁盤裝置21a中的數(shù)據(jù)具有錯(cuò)誤,并且存儲(chǔ)在作為副磁盤的磁盤裝置21e中的數(shù)據(jù)正常。首先,通道適配器31a從主計(jì)算機(jī)40接收到讀取命令(步驟S31),并且確定數(shù)據(jù)的存取目的地(步驟S32)。換言之,通道適配器31a基于包括在該命令中的表示存取目的地的位置的存取目的地信息(例如邏輯單元或者邏輯塊地址)來選擇對(duì)存取目的地的磁盤裝置21a進(jìn)行管理的中央管理單元32a,并且將所接收的命令通知中央管理單元32a。
中央管理單元32a的命令處理執(zhí)行單元326判斷在高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中是否存儲(chǔ)有存取目的地的數(shù)據(jù)(步驟S33)。當(dāng)在本地高速緩沖區(qū)域324中沒有存儲(chǔ)該數(shù)據(jù)時(shí)(步驟S33中為“否”),命令處理執(zhí)行單元326請(qǐng)求設(shè)備適配器33a執(zhí)行登臺(tái)處理,以將對(duì)應(yīng)的數(shù)據(jù)從主磁盤(磁盤裝置21a)展開到高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中。根據(jù)該請(qǐng)求,設(shè)備適配器33a從主磁盤讀取對(duì)應(yīng)的數(shù)據(jù),并且將所讀取的數(shù)據(jù)展開到高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中(步驟S34)。此后,或者當(dāng)步驟S33中在本地高速緩沖區(qū)域324中存儲(chǔ)有存取目的地的數(shù)據(jù)(步驟S33中為“是”)時(shí),通道適配器31a的命令處理單元311從本地高速緩沖區(qū)域324中讀取與存取目的地相對(duì)應(yīng)的數(shù)據(jù)(步驟S35)。
通道適配器31a的錯(cuò)誤校驗(yàn)單元313使用預(yù)定方法對(duì)所讀取的數(shù)據(jù)執(zhí)行錯(cuò)誤校驗(yàn)(步驟S36)。當(dāng)不存在錯(cuò)誤(步驟S37中為“否”)時(shí),通道適配器31a的命令處理單元311將存儲(chǔ)在本地高速緩沖區(qū)域324中的數(shù)據(jù)發(fā)送給主計(jì)算機(jī)40(步驟S38),并且完成讀取命令的處理。另一方面,當(dāng)檢查出錯(cuò)誤時(shí)(步驟S37中為“是”),通道適配器31a的命令處理單元311向主計(jì)算機(jī)40通知該錯(cuò)誤(步驟S39),并且將該錯(cuò)誤通知信息通知給中央管理單元32a(步驟S40)。在接收到錯(cuò)誤通知后,主計(jì)算機(jī)40重試讀取命令。中央管理單元32a的恢復(fù)處理執(zhí)行判定單元327將錯(cuò)誤通知信息與作為錯(cuò)誤通知信息源的命令一起進(jìn)行存儲(chǔ)。
盤陣列裝置10的通道適配器31a接收用于重試的讀取命令(步驟S41),并且以與步驟S32中描述的相同方式來確定存取目的地(步驟S42)。即通道適配器31a基于包含在該命令中的表示存取目的地的位置的存取目的地信息(例如邏輯單元或者邏輯塊地址),來選擇對(duì)存取目的地的磁盤裝置21e進(jìn)行管理的中央管理單元32a,并且將所接收的命令傳送給中央管理單元32a。此時(shí),因?yàn)樵撁钍菍?duì)先前命令的重試,所以中央管理單元32a的命令處理執(zhí)行單元將所需的數(shù)據(jù)從副磁盤(鏡像用的磁盤裝置21e)展開到高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中(步驟S43)。
此后,通道適配器31a的命令處理單元311從高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中讀取與存取目的地相對(duì)應(yīng)的數(shù)據(jù)(步驟S44),并且錯(cuò)誤校驗(yàn)單元313對(duì)所讀取的數(shù)據(jù)執(zhí)行錯(cuò)誤校驗(yàn)(步驟S45)。當(dāng)存在錯(cuò)誤(步驟S46中為“是”)時(shí),命令處理單元311向主計(jì)算機(jī)通知該錯(cuò)誤(步驟S47),并且因?yàn)樵诖饲闆r下不能執(zhí)行另一個(gè)恢復(fù)處理,所以結(jié)束恢復(fù)處理。另一方面,當(dāng)不存在錯(cuò)誤(步驟S46中為“否”)時(shí),則命令處理單元311將存儲(chǔ)在本地高速緩沖區(qū)域324中的數(shù)據(jù)發(fā)送給主計(jì)算機(jī)40(步驟S48),并且向中央管理單元32通知表示關(guān)于主計(jì)算機(jī)40的處理已完成的處理完成通知信息(步驟S49)。
因?yàn)樵诓襟E40中已經(jīng)接收到錯(cuò)誤通知信息,并且在步驟S49中已經(jīng)接收到處理完成通知信息,所以在接收到處理完成通知信息后,中央管理單元32a的恢復(fù)處理執(zhí)行判定單元327識(shí)別出存儲(chǔ)在高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中的數(shù)據(jù)和存儲(chǔ)在主磁盤(磁盤裝置21a)中的相應(yīng)數(shù)據(jù)之間存在差異,并且通知命令處理執(zhí)行單元326執(zhí)行回寫處理。命令處理執(zhí)行單元326將存儲(chǔ)在中央管理單元32a的高速緩沖存儲(chǔ)器323的本地高速緩沖區(qū)域324中的數(shù)據(jù)復(fù)制到中央管理單元32b的高速緩沖存儲(chǔ)器323的鏡像高速緩沖區(qū)域325中(步驟S50),并且將存儲(chǔ)在本地高速緩沖區(qū)域324中的數(shù)據(jù)回寫入存儲(chǔ)有具有錯(cuò)誤的數(shù)據(jù)的主磁盤(磁盤裝置21a)中(步驟S51)。同時(shí),中央管理單元32b的命令處理執(zhí)行單元326將存儲(chǔ)在其自己的高速緩沖存儲(chǔ)器323的鏡像高速緩沖區(qū)域325中的數(shù)據(jù)回寫入副磁盤(鏡像用磁盤裝置21d)中。通過上述步驟,完成了將正常數(shù)據(jù)回寫入其中存儲(chǔ)有具有錯(cuò)誤的數(shù)據(jù)的高速緩沖存儲(chǔ)器323中或與高速緩沖存儲(chǔ)器323相對(duì)應(yīng)的磁盤裝置21a中的處理。
根據(jù)本實(shí)施例,說明了對(duì)高速緩沖存儲(chǔ)器和磁盤裝置進(jìn)行復(fù)制的一個(gè)示例,然而,也同樣可以以相同方式應(yīng)用于具有三個(gè)或者更多個(gè)高速緩沖存儲(chǔ)器和磁盤裝置的系統(tǒng),以進(jìn)行多重復(fù)制。
上述從目標(biāo)器(target)側(cè)向始發(fā)器(initiator)側(cè)發(fā)布命令的方法可通過以下方式來實(shí)現(xiàn)將包括該方法的處理過程的該計(jì)算機(jī)程序存儲(chǔ)在計(jì)算機(jī)可讀記錄介質(zhì)中,并且通過具有在盤陣列裝置中處理該計(jì)算機(jī)程序的功能的操作處理單元來讀取并執(zhí)行該計(jì)算機(jī)程序。計(jì)算機(jī)可讀記錄介質(zhì)例如包括便攜記錄介質(zhì),例如軟盤、光盤只讀存儲(chǔ)器(CD-ROM)、光磁盤、數(shù)字萬能光盤(DVD)和集成電路(IC)卡;固定記錄介質(zhì),例如計(jì)算機(jī)內(nèi)置硬盤驅(qū)動(dòng)器或者外置硬盤驅(qū)動(dòng)器、隨機(jī)存取存儲(chǔ)器(RAM)、和只讀存儲(chǔ)器(ROM);以及,在傳送計(jì)算機(jī)程序時(shí)臨時(shí)存儲(chǔ)計(jì)算機(jī)程序的通信介質(zhì),例如通過調(diào)制解調(diào)器連接的公共線、和局域網(wǎng)(LAN)/廣域網(wǎng)(WAN)。
如上所述,根據(jù)本實(shí)施例,通道適配器31a在將主計(jì)算機(jī)40所需的數(shù)據(jù)返回之前對(duì)該數(shù)據(jù)執(zhí)行錯(cuò)誤校驗(yàn)。當(dāng)在存儲(chǔ)在主磁盤中的數(shù)據(jù)中存在錯(cuò)誤時(shí),將錯(cuò)誤通知信息發(fā)送給中央管理單元32a,并且當(dāng)存儲(chǔ)在副磁盤中的對(duì)應(yīng)數(shù)據(jù)正常時(shí),將表示完成了對(duì)來自主計(jì)算機(jī)40的命令進(jìn)行處理的處理完成通知信息發(fā)送給中央管理單元32a。中央管理單元32a基于錯(cuò)誤通知信息和處理完成通知信息來判斷是否有必要對(duì)存儲(chǔ)在盤陣列單元20中的具有錯(cuò)誤的數(shù)據(jù)進(jìn)行恢復(fù),并且當(dāng)在已經(jīng)接收錯(cuò)誤通知信息之后接收到處理完成通知信息時(shí),在重試時(shí)使用寫入高速緩沖存儲(chǔ)器323中的數(shù)據(jù)來執(zhí)行該恢復(fù)處理。
利用這種機(jī)制,當(dāng)盤陣列裝置10具有錯(cuò)誤數(shù)據(jù)時(shí),能夠在對(duì)盤陣列裝置10的輸入/輸出的延續(xù)中自動(dòng)執(zhí)行數(shù)據(jù)恢復(fù)處理。在恢復(fù)處理中,因?yàn)槭褂昧藦淖鳛楦贝疟P的鏡像用磁盤裝置21e到21h寫入高速緩沖存儲(chǔ)器323中的數(shù)據(jù),所以與稍后執(zhí)行恢復(fù)處理的情況相比,能夠有效地使用恢復(fù)處理所需的步驟和資源。此外,當(dāng)盤陣列裝置10認(rèn)識(shí)到存在具有錯(cuò)誤的數(shù)據(jù)時(shí),立即執(zhí)行恢復(fù)處理,因此,盤陣列裝置10可總保持其中存儲(chǔ)有正常數(shù)據(jù)的狀態(tài)。此外,實(shí)際上能夠在未被用戶或者盤陣列裝置的管理員發(fā)現(xiàn)的情況下,防止在盤陣列裝置10中長(zhǎng)期存留具有錯(cuò)誤的數(shù)據(jù)的狀態(tài)。
根據(jù)本發(fā)明,當(dāng)在從外部設(shè)備對(duì)存儲(chǔ)在盤陣列裝置中的數(shù)據(jù)進(jìn)行存取時(shí)檢測(cè)到異常數(shù)據(jù)時(shí),在完成對(duì)數(shù)據(jù)的存取之后將異常數(shù)據(jù)恢復(fù)為正常數(shù)據(jù)。因此用戶或者管理員不必一定要發(fā)現(xiàn)盤陣列裝置中存在異常數(shù)據(jù)。因此,能夠減少用戶或者管理員的工作負(fù)擔(dān)。此外,因?yàn)樵诖嫒?shù)據(jù)的時(shí)候發(fā)現(xiàn)異常數(shù)據(jù),所以幾乎可以即時(shí)地恢復(fù)該異常數(shù)據(jù)。此外,因?yàn)樵诖嫒?shù)據(jù)時(shí)使用了展開到本地高速緩沖區(qū)域的正常數(shù)據(jù),所以能夠在數(shù)據(jù)恢復(fù)中有效地使用資源。例如,如果用戶或者管理員執(zhí)行恢復(fù)處理,則必需再次將數(shù)據(jù)展開到高速緩沖存儲(chǔ)器中。然而根據(jù)本發(fā)明,因?yàn)樵诖嫒r(shí)將數(shù)據(jù)展開到高速緩沖存儲(chǔ)器中,所以能夠最小化恢復(fù)處理中的工作次數(shù)。此外,實(shí)際上還能夠防止長(zhǎng)期存留具有錯(cuò)誤的數(shù)據(jù)。
雖然為了完整和清楚公開的目的,根據(jù)具體的實(shí)施例描述了本發(fā)明,但后附的權(quán)利要求并未因此而受到限制,而應(yīng)將其解釋為包含了完全落入本文所闡述的基本教義中的、本領(lǐng)域的技術(shù)人員所能想到的所有改進(jìn)和替換結(jié)構(gòu)。
權(quán)利要求
1.一種盤陣列裝置,該盤陣列裝置與外部設(shè)備相連,在數(shù)據(jù)寫入操作中,存儲(chǔ)從外部設(shè)備接收的數(shù)據(jù),并且在數(shù)據(jù)讀取操作中,基于來自外部設(shè)備的讀取命令,將數(shù)據(jù)返回給該外部設(shè)備,所述盤陣列裝置包括盤陣列單元,包括存儲(chǔ)數(shù)據(jù)的第一存儲(chǔ)器;和對(duì)已經(jīng)存儲(chǔ)在第一存儲(chǔ)器中的數(shù)據(jù)進(jìn)行復(fù)制的第二存儲(chǔ)器;多個(gè)中央管理單元,各個(gè)中央管理單元包括高速緩沖存儲(chǔ)器,其具有本地高速緩沖區(qū)域,用于在執(zhí)行數(shù)據(jù)讀取操作時(shí)存儲(chǔ)從第一存儲(chǔ)器或第二存儲(chǔ)器中讀取的數(shù)據(jù),并且在執(zhí)行數(shù)據(jù)寫入操作時(shí)存儲(chǔ)從外部設(shè)備接收的數(shù)據(jù);和鏡像高速緩沖區(qū)域,其在數(shù)據(jù)寫入操作期間對(duì)已經(jīng)存儲(chǔ)在本地高速緩沖區(qū)域中的數(shù)據(jù)進(jìn)行復(fù)制;以及命令處理執(zhí)行單元,其在第一次接收到讀取命令后,將存儲(chǔ)在第一存儲(chǔ)器中的第一數(shù)據(jù)展開到本地高速緩沖區(qū)域中,并且在第二次接收到讀取命令后,將第二數(shù)據(jù)從第二存儲(chǔ)器展開到本地高速緩沖區(qū)域中;多個(gè)通道適配器,各個(gè)通道適配器包括校驗(yàn)信息添加單元,將用于錯(cuò)誤校驗(yàn)的校驗(yàn)信息添加給從外部設(shè)備接收的用于存儲(chǔ)在第一存儲(chǔ)器中的數(shù)據(jù);錯(cuò)誤校驗(yàn)單元,基于校驗(yàn)信息對(duì)本地高速緩沖區(qū)域中的數(shù)據(jù)執(zhí)行錯(cuò)誤校驗(yàn);和恢復(fù)處理執(zhí)行判定單元,其在與外部設(shè)備的輸入/輸出處理完成之后,當(dāng)錯(cuò)誤校驗(yàn)單元判定第一數(shù)據(jù)具有錯(cuò)誤而第二數(shù)據(jù)正常時(shí),向命令處理執(zhí)行單元輸出回寫指令,其中所述命令處理執(zhí)行單元將存儲(chǔ)在本地高速緩沖區(qū)域中的第二數(shù)據(jù)復(fù)制到其它中央管理單元的高速緩沖存儲(chǔ)器的鏡像高速緩沖區(qū)域中,并且在恢復(fù)處理執(zhí)行判定單元輸出回寫指令后,執(zhí)行將第二數(shù)據(jù)傳送給第一存儲(chǔ)器和第二存儲(chǔ)器的回寫操作。
2.根據(jù)權(quán)利要求1所述的盤陣列裝置,其中所述第一存儲(chǔ)器和所述第二存儲(chǔ)器是磁盤。
3.根據(jù)權(quán)利要求1所述的盤陣列裝置,其中所述盤陣列單元具有RAID1結(jié)構(gòu)。
4.根據(jù)權(quán)利要求1所述的盤陣列裝置,其中所述盤陣列單元具有RAID0+1結(jié)構(gòu)。
5.一種用于盤陣列裝置的數(shù)據(jù)恢復(fù)方法,該盤陣列裝置包括用于復(fù)制和存儲(chǔ)數(shù)據(jù)的第一存儲(chǔ)器和第二存儲(chǔ)器;第一高速緩存單元,其在對(duì)第一存儲(chǔ)器或者第二存儲(chǔ)器進(jìn)行存取時(shí)存儲(chǔ)數(shù)據(jù);以及,第二高速緩存單元,其對(duì)存儲(chǔ)在第一高速緩存單元中的來自外部的數(shù)據(jù)進(jìn)行復(fù)制,所述數(shù)據(jù)恢復(fù)方法包括以下步驟當(dāng)基于來自與盤陣列裝置相連的外部設(shè)備的數(shù)據(jù)讀取命令而從第一存儲(chǔ)器寫入第一高速緩存單元中的第一數(shù)據(jù)中存在錯(cuò)誤時(shí),基于從外部設(shè)備再次接收的數(shù)據(jù)讀取命令,將第二數(shù)據(jù)從第二存儲(chǔ)器寫入第一高速緩存單元中;對(duì)第二數(shù)據(jù)執(zhí)行錯(cuò)誤校驗(yàn);當(dāng)基于所述錯(cuò)誤校驗(yàn)判定第二數(shù)據(jù)正常時(shí),將第二數(shù)據(jù)發(fā)送給外部設(shè)備;將寫入第一高速緩存單元中的第二數(shù)據(jù)復(fù)制到第二高速緩存單元中;并且將寫入第一高速緩存單元和第二高速緩存單元中的第二數(shù)據(jù)分別回寫入第一存儲(chǔ)器和第二存儲(chǔ)器中。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)恢復(fù)方法,其中所述第一存儲(chǔ)器和所述第二存儲(chǔ)器是磁盤。
7.一種計(jì)算機(jī)可讀記錄介質(zhì),其中存儲(chǔ)有使計(jì)算機(jī)執(zhí)行用于盤陣列裝置的數(shù)據(jù)恢復(fù)方法的計(jì)算機(jī)程序,該盤陣列裝置包括用于復(fù)制和存儲(chǔ)數(shù)據(jù)的第一存儲(chǔ)器和第二存儲(chǔ)器;在對(duì)第一存儲(chǔ)器或者第二存儲(chǔ)器進(jìn)行存取時(shí)存儲(chǔ)數(shù)據(jù)的第一高速緩存單元;對(duì)存儲(chǔ)在第一高速緩存單元中的來自外部的數(shù)據(jù)進(jìn)行復(fù)制的第二高速緩存單元;以及,對(duì)讀取或?qū)懭霐?shù)據(jù)的處理進(jìn)行控制的盤陣列控制單元,所述計(jì)算機(jī)程序使計(jì)算機(jī)執(zhí)行從與盤陣列裝置相連的外部設(shè)備接收數(shù)據(jù)讀取命令;當(dāng)從第一存儲(chǔ)器寫入第一高速緩存單元中的與數(shù)據(jù)讀取命令相對(duì)應(yīng)的第一數(shù)據(jù)中存在錯(cuò)誤時(shí),將與數(shù)據(jù)讀取命令相對(duì)應(yīng)的第二數(shù)據(jù)從第二存儲(chǔ)器寫入第一高速緩存單元中;對(duì)從第二存儲(chǔ)器寫入第一高速緩存單元中的第二數(shù)據(jù)執(zhí)行錯(cuò)誤校驗(yàn);當(dāng)基于所述錯(cuò)誤校驗(yàn)判定第二數(shù)據(jù)正常時(shí),將第二數(shù)據(jù)發(fā)送給外部設(shè)備;將寫入第一高速緩存單元中的第二數(shù)據(jù)復(fù)制到第二高速緩存單元中;以及將寫入第一高速緩存單元和第二高速緩存單元中的第二數(shù)據(jù)分別回寫入第一存儲(chǔ)器和第二存儲(chǔ)器中。
8.根據(jù)權(quán)利要求7所述的計(jì)算機(jī)可讀記錄介質(zhì),其中所述第一存儲(chǔ)器和所述第二存儲(chǔ)器是磁盤。
全文摘要
盤陣列裝置、數(shù)據(jù)恢復(fù)方法和計(jì)算機(jī)產(chǎn)品。通過盤陣列控制單元將主磁盤和復(fù)制主磁盤中的數(shù)據(jù)的副磁盤與主計(jì)算機(jī)相連。盤陣列控制單元包括多個(gè)中央管理單元。各中央管理單元包括用于寫入所存取的數(shù)據(jù)的高速緩沖存儲(chǔ)器和基于所接收的命令來執(zhí)行處理的命令處理執(zhí)行單元。各中央管理單元執(zhí)行的處理包括當(dāng)存儲(chǔ)在主磁盤中的數(shù)據(jù)存在錯(cuò)誤而存儲(chǔ)在副磁盤中的數(shù)據(jù)正常時(shí),判定恢復(fù)處理是必要的,該恢復(fù)處理進(jìn)行如下的處理在與主計(jì)算機(jī)的輸入/輸出處理完成之后,將寫入高速緩沖存儲(chǔ)器中的數(shù)據(jù)復(fù)制到其它中央管理單元的高速緩沖存儲(chǔ)器中,并且將寫入高速緩沖存儲(chǔ)器中的數(shù)據(jù)回寫入主磁盤和副磁盤。
文檔編號(hào)G06F11/10GK1773443SQ20051005895
公開日2006年5月17日 申請(qǐng)日期2005年3月25日 優(yōu)先權(quán)日2004年11月8日
發(fā)明者小林明人, 長(zhǎng)島克彥, 內(nèi)田幸治, 小林史明 申請(qǐng)人:富士通株式會(huì)社