專利名稱:提供混合的盤鏡像和盤分條的方法、裝置和程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理,特別是獨(dú)立盤冗余陣列。更具體地說,本發(fā)明提供一種方法、裝置和程序,用于在一個(gè)盤子系統(tǒng)中開發(fā)分條和鏡像的混合,而不增加盤驅(qū)動(dòng)器的個(gè)數(shù)。
背景技術(shù):
獨(dú)立盤冗余陣列(RAID)是一個(gè)增強(qiáng)性能和提供容錯(cuò)的盤子系統(tǒng)。RAID需要由含有兩個(gè)或更多個(gè)硬盤的一組硬盤以及合有RAID功能的專用的盤控制器。RAID當(dāng)初是為服務(wù)器和獨(dú)立的盤存儲(chǔ)器系統(tǒng)開發(fā)的,但現(xiàn)在RAID變得越來越多地應(yīng)用于桌面?zhèn)€人計(jì)算機(jī),這主要是為了容錯(cuò)。RAID還可以只使用軟件實(shí)現(xiàn),但性能要差些,特別是當(dāng)出現(xiàn)故障之后重建數(shù)據(jù)時(shí)。
盤分條是RAID的一個(gè)級(jí)別,它在多個(gè)驅(qū)動(dòng)器上交錯(cuò)存放多個(gè)字節(jié)或多組字節(jié),使一個(gè)以上的盤同時(shí)進(jìn)行讀和寫,從而改善其性能。數(shù)據(jù)被按字節(jié)或扇區(qū)跨驅(qū)動(dòng)器交錯(cuò)存放。例如,利用設(shè)計(jì)成重疊讀、寫的四個(gè)驅(qū)動(dòng)器和一個(gè)控制器,能在通常讀一個(gè)扇區(qū)所用的時(shí)間內(nèi)讀出四個(gè)扇區(qū)。盤分條被稱作RAID級(jí)別0(零)或RAID0。盤分條并不是固有地提供容錯(cuò)或檢錯(cuò),然而,分條能與用作容錯(cuò)的其他方法結(jié)合使用。
容錯(cuò)可通過鏡像實(shí)現(xiàn)。鏡像涉及在兩個(gè)驅(qū)動(dòng)器上的數(shù)據(jù)備份。數(shù)據(jù)可被寫入同一系統(tǒng)內(nèi)的兩個(gè)單獨(dú)的盤中。一個(gè)失效的驅(qū)動(dòng)器可由新的驅(qū)動(dòng)器替代,而RAID控制器能自動(dòng)重建丟失的數(shù)據(jù)。盤鏡像被稱作RAID級(jí)別1(壹)或RAID1。
結(jié)合使用盤分條(RAID0)和盤鏡像(RAID1)可提供分條的性能和鏡像的可靠性。RAID0和RAID1的組合被稱作RAID0/1。然而,結(jié)合使用RAID0和RAID1至少需要四個(gè)盤驅(qū)動(dòng)器,兩個(gè)驅(qū)動(dòng)器用于分條,兩個(gè)驅(qū)動(dòng)器用于對(duì)各數(shù)據(jù)條進(jìn)行鏡像處理。大多數(shù)小辦公室和家庭辦公室一般使用通用個(gè)人計(jì)算機(jī)。由于其尺寸和成本的限制,這些計(jì)算機(jī)通常最多有兩個(gè)盤驅(qū)器。這樣,當(dāng)要在一個(gè)通用個(gè)人計(jì)算機(jī)上實(shí)現(xiàn)RAID時(shí),必須在分條和鏡像之間做出抉擇。
所以,在盤子系統(tǒng)中開發(fā)出分條和鏡像的混合而不增加所需盤驅(qū)動(dòng)器的個(gè)數(shù)是有好處的。
發(fā)明內(nèi)容
本發(fā)明使用硬盤驅(qū)動(dòng)器對(duì)數(shù)據(jù)進(jìn)行鏡像和分條處理。在寫的時(shí)候,硬盤控制器可把第一數(shù)據(jù)條寫入第一硬盤并在第二硬盤上分配適當(dāng)空間量以對(duì)該數(shù)據(jù)條進(jìn)行鏡像處理。與此同時(shí),第二數(shù)據(jù)條可被寫入第二硬盤并在第一硬盤上分配適當(dāng)空間量以對(duì)第二數(shù)據(jù)條進(jìn)行鏡像處理。關(guān)于哪些數(shù)據(jù)條以被鏡像以及哪些數(shù)據(jù)條尚未被鏡像的信息被存儲(chǔ)在存儲(chǔ)器中。其后,例如在盤空閑期間,控制器或文件系統(tǒng)可把相應(yīng)的數(shù)據(jù)條復(fù)制到預(yù)先分配的空間,從而使各驅(qū)動(dòng)器之間的數(shù)據(jù)同步。在盤空閑期間,控制器或文件系統(tǒng)還可驗(yàn)證各數(shù)據(jù)條,以識(shí)別被破壞的數(shù)據(jù)。
這樣,人們可以實(shí)現(xiàn)由分條提高的性能和由鏡像增強(qiáng)的可靠性,無需四個(gè)或更多個(gè)硬盤驅(qū)動(dòng)器。另一種作法是,用戶可指定是否在寫數(shù)據(jù)時(shí)對(duì)數(shù)據(jù)進(jìn)行鏡像處理和是否在讀數(shù)據(jù)時(shí)驗(yàn)證數(shù)據(jù)。所以,用戶可針對(duì)讀和寫,在速度和可靠性之間進(jìn)行抉擇。
在所附權(quán)利要求中列出相信能表征本發(fā)明的新特性。然而,結(jié)合附圖參考下文中對(duì)一實(shí)施示例的詳細(xì)描述,將最好地理解發(fā)明本身及其優(yōu)選實(shí)施方式、進(jìn)一步的目的和優(yōu)點(diǎn),這些附圖是
圖1是根據(jù)本發(fā)明的優(yōu)選實(shí)施例可在其中實(shí)現(xiàn)本發(fā)明的一個(gè)數(shù)據(jù)處理系統(tǒng)的圖形表示;圖2是可在其中實(shí)現(xiàn)本發(fā)明的一個(gè)數(shù)據(jù)處理系統(tǒng)的方框圖;圖3A-3C是對(duì)數(shù)據(jù)進(jìn)行分條和鏡像處理的現(xiàn)有技術(shù)方框圖;圖4是根據(jù)本發(fā)明的優(yōu)選實(shí)施例結(jié)合使用數(shù)據(jù)分條和數(shù)據(jù)鏡像的方框圖;以及圖5是流程圖,顯示根據(jù)本發(fā)明的優(yōu)選實(shí)施例一個(gè)硬盤控制器或文件系統(tǒng)所進(jìn)行的操作。
具體實(shí)施例方式
現(xiàn)在參考附圖,特別是參考圖1,圖中給出根據(jù)本發(fā)明的優(yōu)選實(shí)施例在其中可實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)的圖形表示。圖中所示計(jì)算機(jī)100包括系統(tǒng)單元100、視頻顯示終端102、鍵盤104、存儲(chǔ)設(shè)備108以及鼠標(biāo)器106,其中存儲(chǔ)設(shè)備108可包括軟盤驅(qū)動(dòng)器和其他類型的永久和可卸存儲(chǔ)介質(zhì)。附加的輸入設(shè)備可包括在個(gè)人計(jì)算機(jī)100中,如游戲棒、觸摸墊、觸摸屏、跟蹤球、送話器等。計(jì)算機(jī)100能用任何適用的計(jì)算機(jī)實(shí)現(xiàn),如IBMRS/6000計(jì)算機(jī)或IntelliStation計(jì)算機(jī),它們是位于紐約Armonk的國際商業(yè)機(jī)器公司的產(chǎn)品。盡管所描繪的圖形表示顯示一個(gè)計(jì)算機(jī),但本發(fā)明的其他實(shí)施例可以以其他形式的數(shù)據(jù)處理系統(tǒng)實(shí)現(xiàn),如網(wǎng)絡(luò)計(jì)算機(jī)。優(yōu)選地,計(jì)算機(jī)100還包括一個(gè)圖形用戶界面,它可由在計(jì)算機(jī)100內(nèi)操作的計(jì)算機(jī)可讀介質(zhì)中駐留的系統(tǒng)軟件實(shí)現(xiàn)。
現(xiàn)在參考圖2,圖中顯示在其中可實(shí)現(xiàn)本發(fā)明的一個(gè)數(shù)據(jù)處理系統(tǒng)的方框圖。數(shù)據(jù)處理系統(tǒng)200是一個(gè)計(jì)算機(jī)(如圖1中的計(jì)算機(jī)100)的實(shí)例,實(shí)現(xiàn)本發(fā)明的處理過程的代碼或指令可位于其中。數(shù)據(jù)處理系統(tǒng)200利用外圍部件互連(PCI)局部總線體系結(jié)構(gòu)。盡管所描繪的例子使用PCI總線,但也可使用其他總線體系結(jié)構(gòu),如圖形加速端口(AGP)和工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)。處理器202和主存儲(chǔ)器204通過PCI橋208與PCI局部總線206相連。PCI橋208還可包括一個(gè)用于處理器202的集成的存儲(chǔ)器控制器和高速緩沖存儲(chǔ)器。到PCI局部總線206的其他連接可通過直接部件互連或通過附件板來實(shí)現(xiàn)。在所描繪的例子中,局域網(wǎng)(LAN)適配器210、小型計(jì)算機(jī)系統(tǒng)接口SCSI主機(jī)總線適配器212以及擴(kuò)展總線接口214通過直接部件連接而連到PCI局部總線206。與此對(duì)照的是,音頻適配器216、圖形適配器218以及音頻/視頻適配器219則由插入擴(kuò)展槽的附件板連接到PCI局部總線206。擴(kuò)展總線接口214為鍵盤和鼠標(biāo)適配器220、調(diào)制解調(diào)器222以及附加存儲(chǔ)器224提供連接。硬盤適配器212為硬盤驅(qū)動(dòng)器226、228提供連接。典型的PCI局部總線實(shí)現(xiàn)將支持三個(gè)或四個(gè)PCI擴(kuò)展槽或附件連接器。
一個(gè)操作系統(tǒng)在處理器202上運(yùn)行并用于協(xié)調(diào)和控制圖2中的數(shù)據(jù)處理系統(tǒng)200內(nèi)的各個(gè)部件。該操作系統(tǒng)可以是市場上可得到的操作系統(tǒng),如Windows2000,它可從微軟公司得到。一個(gè)面向?qū)ο蟮木幊滔到y(tǒng),如Java,可與操作系統(tǒng)結(jié)合運(yùn)行并提供從在數(shù)據(jù)處理系統(tǒng)200上執(zhí)行的Java程序或應(yīng)用對(duì)操作系統(tǒng)的調(diào)用?!癑ava”是微系統(tǒng)公司的商標(biāo)。用于操作系統(tǒng)、面向?qū)ο蟮木幊滔到y(tǒng)以及應(yīng)用或程序的指令位于存儲(chǔ)設(shè)備上(例如硬盤驅(qū)動(dòng)器226)并可被加載到主存儲(chǔ)器204中,供處理器202執(zhí)行。
本領(lǐng)域技術(shù)人員將會(huì)理解,圖2中的硬件可根據(jù)具體實(shí)現(xiàn)而改變。其他內(nèi)部硬件或外部設(shè)備,如閃速ROM(或等效的非易失存儲(chǔ)器)或光盤驅(qū)動(dòng)器等,可用于補(bǔ)充或替代圖2中描繪的硬件。再有,本發(fā)明的過程可應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)處理系統(tǒng)200可以是一個(gè)個(gè)人數(shù)字助理(PDA),它被配置成具有ROM和/或閃速ROM以提供非易失存儲(chǔ)器,用于存儲(chǔ)操作系統(tǒng)文件和/或用戶產(chǎn)生的數(shù)據(jù)。
圖2中描繪的例子以及上文描述的例子不意味對(duì)體系結(jié)構(gòu)的限制。例如,數(shù)據(jù)處理系統(tǒng)200除了采取PDA的形式外,還可以是筆記本計(jì)算機(jī)或手持計(jì)算機(jī)。數(shù)據(jù)處理系統(tǒng)200還可以是一個(gè)kiosk系統(tǒng)或Web設(shè)備。
本發(fā)明的過程是由處理器202使用計(jì)算機(jī)實(shí)現(xiàn)的指令完成的,這些指令可位于存儲(chǔ)器中,如主存儲(chǔ)器204、存儲(chǔ)器224,或一個(gè)或多個(gè)硬盤226、228中。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,專門化的硬盤適配器212或文件系統(tǒng)使用硬盤226、228提供獨(dú)立盤冗余陣列(RAID)子系統(tǒng)。
圖3A-3C是方框圖,顯示對(duì)數(shù)據(jù)進(jìn)行分條和鏡像處理的現(xiàn)有技術(shù)。具體地說,參考圖3A,圖中顯示數(shù)據(jù)分條(RAID0)。當(dāng)數(shù)據(jù)被寫入時(shí),數(shù)據(jù)被分成兩個(gè)數(shù)據(jù)條,即數(shù)據(jù)A和數(shù)據(jù)B。數(shù)據(jù)A312可被寫入硬盤310,而數(shù)據(jù)B322可被同時(shí)寫入硬盤320。數(shù)據(jù)還可被分成更多數(shù)據(jù)條并寫入更多個(gè)硬盤或成對(duì)地寫入硬盤310、320。當(dāng)讀數(shù)據(jù)時(shí),數(shù)據(jù)A可從硬盤310中被讀出,而數(shù)據(jù)B從硬盤320中被讀出。數(shù)據(jù)分條允許同時(shí)讀或?qū)懚鄠€(gè)數(shù)據(jù)條,從而使性能提高。
現(xiàn)在轉(zhuǎn)到圖3B,圖中顯示數(shù)據(jù)鏡像(RAID1)的方框圖。當(dāng)數(shù)據(jù)被寫入硬盤330時(shí),數(shù)據(jù)同時(shí)被復(fù)制到硬盤340上。在數(shù)據(jù)A332被寫入硬盤330的同時(shí),數(shù)據(jù)A342被鏡像到硬盤340上。類似地,在數(shù)據(jù)B334被寫入硬盤330的同時(shí),數(shù)據(jù)B344被寫入硬盤340。數(shù)據(jù)鏡像通過在兩個(gè)驅(qū)動(dòng)器上復(fù)制數(shù)據(jù)提供容錯(cuò)功能。當(dāng)讀數(shù)據(jù)時(shí)可進(jìn)行驗(yàn)證。例如,當(dāng)數(shù)據(jù)B334被從硬盤330中讀出時(shí),數(shù)據(jù)B344可同時(shí)從硬盤340中讀出??蛇M(jìn)行比較以識(shí)別數(shù)據(jù)破壞。失效的驅(qū)動(dòng)器可由新的驅(qū)動(dòng)器取代,而RAID控制器能自動(dòng)重建丟失的數(shù)據(jù)。
現(xiàn)在參考圖3C,所示方框圖顯示結(jié)合使用數(shù)據(jù)分條和數(shù)據(jù)鏡像(RAID0/1)。當(dāng)寫數(shù)據(jù)時(shí),數(shù)據(jù)被分成兩個(gè)數(shù)據(jù)條,即數(shù)據(jù)A和數(shù)據(jù)B。數(shù)據(jù)A352可被寫入硬盤350,而數(shù)據(jù)B362可同時(shí)被寫入硬盤360。再有,當(dāng)數(shù)據(jù)A352被寫入硬盤350時(shí),數(shù)據(jù)A372同時(shí)被鏡像到硬盤370。類似地,當(dāng)數(shù)據(jù)B362被寫入硬盤360時(shí),數(shù)據(jù)B382同時(shí)被寫入硬盤380。
數(shù)據(jù)分條允許同時(shí)將各數(shù)據(jù)條寫入硬盤350、360或從硬盤350、360中讀出從而提高了性能。數(shù)據(jù)鏡像允許通過比較硬盤350、360上的各數(shù)據(jù)條與硬盤370、380上的各數(shù)據(jù)條,來驗(yàn)證數(shù)據(jù)。結(jié)合使用數(shù)據(jù)分條(RAID0)和數(shù)據(jù)鏡像(RAID1)可提供分條的性能和鏡像的可靠性。
然而,結(jié)合使用RAID0和RAID1需要至少四個(gè)盤驅(qū)動(dòng)器,兩個(gè)用于分條,再有兩個(gè)用于對(duì)數(shù)據(jù)條做鏡像。例如,硬盤350、360可為20GB的硬盤。這樣,硬盤370、380必須也是20GB的硬盤。為使用RAID0/1,一臺(tái)計(jì)算機(jī)必須支持四個(gè)20GB硬盤。大多數(shù)小辦公室或家庭辦公室使用通用個(gè)人計(jì)算機(jī)。這些計(jì)算機(jī)通常由于尺寸和成本的限制最多有兩個(gè)盤驅(qū)動(dòng)器。由于計(jì)算機(jī)殼體內(nèi)部的可用空間或可用驅(qū)動(dòng)器架個(gè)數(shù)的限制,使尺寸受到限制。大多數(shù)個(gè)人計(jì)算機(jī)在其母板上置有兩個(gè)集成驅(qū)動(dòng)器接口(IDE)通道(控制器)。一個(gè)通道通常用做存儲(chǔ)設(shè)備,如光盤驅(qū)動(dòng)器、數(shù)字視盤(DVD)驅(qū)動(dòng)器、壓縮介質(zhì)驅(qū)動(dòng)器。另一個(gè)通道通常用于硬盤驅(qū)動(dòng)器,通常是一個(gè),但最多為兩個(gè)驅(qū)動(dòng)器。再有,額外硬盤的費(fèi)用可限制使用RAID0/1。所以,當(dāng)在通用計(jì)算機(jī)上實(shí)現(xiàn)RAID時(shí),必須在分條和鏡像之間做出抉擇。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例、一個(gè)硬盤驅(qū)動(dòng)器可同時(shí)被用作數(shù)據(jù)鏡像和分條。在寫的時(shí)候,硬盤控制器可把第一數(shù)據(jù)條寫入第一硬盤并在第二硬盤上分配適當(dāng)空間量以對(duì)該數(shù)據(jù)條鏡像。與此同時(shí),第二數(shù)據(jù)條可被寫入第二硬盤并在第一硬盤上分配適當(dāng)空間量以對(duì)第二數(shù)據(jù)條鏡像。關(guān)于哪些數(shù)據(jù)條已被鏡像而哪些數(shù)據(jù)條尚未被鏡像的信息被存儲(chǔ)在存儲(chǔ)器中。其后,例如在盤空閑期間,控制器或文件系統(tǒng)可把相應(yīng)的數(shù)據(jù)條復(fù)制到預(yù)先分配的空間,從而使各驅(qū)動(dòng)器之間的數(shù)據(jù)同步。在盤空閑期間,控制器或文件系統(tǒng)還可驗(yàn)證各數(shù)據(jù)條,以識(shí)別被破壞的數(shù)據(jù)。還可在其他時(shí)間驗(yàn)證數(shù)據(jù),如在系統(tǒng)啟動(dòng)的時(shí)候。
參考圖4,圖中的方框圖說明根據(jù)本發(fā)明的優(yōu)選實(shí)施例結(jié)合使用數(shù)據(jù)分條和數(shù)據(jù)鏡像。在寫的時(shí)候,數(shù)據(jù)A412被寫入硬盤410并在硬盤420上分配適當(dāng)?shù)目臻g量以對(duì)該數(shù)據(jù)條進(jìn)行鏡像處理。與此同時(shí),數(shù)據(jù)B422被寫入硬盤420并在硬盤410上分配適當(dāng)?shù)目臻g量以對(duì)該數(shù)據(jù)條進(jìn)行鏡像處理。其后,通過把數(shù)據(jù)A424復(fù)制到硬盤420上的預(yù)分配空間中和把數(shù)據(jù)B414復(fù)制到硬盤410上的預(yù)分配空間中使驅(qū)動(dòng)器之間的數(shù)據(jù)同步。
這樣,人們可以實(shí)現(xiàn)由分條提高的性能和由鏡像增強(qiáng)的可靠性,無需四個(gè)或更多個(gè)硬盤驅(qū)動(dòng)器。硬盤410、420必須支持為單獨(dú)進(jìn)行分條或鏡像所需容量的兩倍。然而,對(duì)雙倍容量的硬盤尺寸沒有付出代價(jià)。例如,40GB硬驅(qū)動(dòng)器所占空間與20GB硬驅(qū)動(dòng)器所占空間相同。而且,相對(duì)于雙倍驅(qū)動(dòng)器個(gè)數(shù)據(jù)而言,雙倍其容量成本不是那么高。例如,40GB硬驅(qū)動(dòng)器的費(fèi)用少于兩個(gè)20GB硬驅(qū)動(dòng)器。
在另一個(gè)實(shí)施例中,用戶可指定是否在寫數(shù)據(jù)時(shí)對(duì)數(shù)據(jù)鏡像和是否在讀數(shù)據(jù)時(shí)驗(yàn)證數(shù)據(jù)。所以,用戶可對(duì)讀和寫在速度和可靠性之間進(jìn)行抉擇。例如,一臺(tái)計(jì)算機(jī)可主要用于存儲(chǔ)數(shù)據(jù)。于是用戶可指定該計(jì)算機(jī)在盤空閑期間對(duì)數(shù)據(jù)鏡像,而在讀數(shù)據(jù)時(shí)驗(yàn)證數(shù)據(jù)。與此相反,一臺(tái)計(jì)算機(jī)可能用于存儲(chǔ)數(shù)據(jù)和反復(fù)訪問所存儲(chǔ)的數(shù)據(jù)。于是用戶可指定在寫數(shù)據(jù)時(shí)對(duì)數(shù)據(jù)鏡像以保證其可靠性,但在讀數(shù)據(jù)時(shí)不進(jìn)行數(shù)據(jù)的,從而提高讀分條的數(shù)據(jù)的速度。
現(xiàn)在參考圖5,所示流程圖說明根據(jù)本發(fā)明的優(yōu)選實(shí)施例一個(gè)硬盤控制器或文件系統(tǒng)的操作。過程開始時(shí)確定是否要進(jìn)行寫(步驟502)。如果是要寫數(shù)據(jù),則過程寫分條的數(shù)據(jù)(步驟504)并確定該RAID子系統(tǒng)是否被配置成在寫的時(shí)候做鏡像(步驟506)。如果該子系統(tǒng)是被配置成在寫時(shí)做鏡像,則過程寫鏡像數(shù)據(jù)(步驟508)并確定是否要進(jìn)行讀操作(步驟512)。
如果在步驟506該子系統(tǒng)未被配置成在寫時(shí)做鏡像,則過程為鏡像數(shù)據(jù)分配存儲(chǔ)區(qū)(步驟510)并進(jìn)入步驟512,確定是否要進(jìn)行讀操作?;氐讲襟E502,如果不是要進(jìn)行寫操作,則過程進(jìn)入步驟512,確定是否要進(jìn)行讀操作。
如果要讀數(shù)據(jù),則過程讀分條的數(shù)據(jù)(步驟514)并確定該RAID子系統(tǒng)是否被配置成在讀時(shí)驗(yàn)證數(shù)據(jù)(步驟516)。如果該子系統(tǒng)是被配置成在讀時(shí)驗(yàn)證數(shù)據(jù),則如果數(shù)據(jù)已被鏡像的話便驗(yàn)證數(shù)據(jù)(步驟518)并確定該硬盤是否空閑(步驟520)。
如果在步驟516中該子系統(tǒng)未被配置成在讀時(shí)驗(yàn)證數(shù)據(jù),則過程進(jìn)入步驟520,確定該硬盤是否空閑?;氐讲襟E512,如果沒有要進(jìn)行讀操作,則過程進(jìn)入步驟520,確定該硬盤是否空閑。
如果硬盤空閑,則過程寫那些在初始寫時(shí)尚未被鏡像的數(shù)據(jù)(步驟522)并驗(yàn)證被鏡像的數(shù)據(jù)(步驟524)。然后,確定是否存在退出條件(步驟526),例如,當(dāng)計(jì)算機(jī)系統(tǒng)關(guān)機(jī)時(shí)或當(dāng)電源管理子系統(tǒng)使硬盤進(jìn)入“睡眠”或休止方式時(shí)便可存在退出條件。如果在步驟520中硬盤不空閑,則過程進(jìn)入步驟526,確定是否存在退出條件。如果存在退出條件,則過程結(jié)束。如果在步驟526中不存在退出條件,則過程返回步驟502,確定是否要寫數(shù)據(jù)。
這樣,本發(fā)明提供多種類型RAID而無需增加所需盤驅(qū)動(dòng)器個(gè)數(shù),從而克服了現(xiàn)有技術(shù)的缺點(diǎn)。本發(fā)明對(duì)數(shù)據(jù)分條并在第二個(gè)硬盤上分配適當(dāng)?shù)目臻g量以對(duì)各數(shù)據(jù)條做鏡像。關(guān)于哪些數(shù)據(jù)條已被鏡像而哪些數(shù)據(jù)條尚未被鏡像的信息被存儲(chǔ)在存儲(chǔ)器中。其后,例如在盤空閑期間,控制器或文件系統(tǒng)可把相應(yīng)的數(shù)據(jù)條復(fù)制到預(yù)先分配的空間,從而使各驅(qū)動(dòng)器之間的數(shù)據(jù)同步。在盤空閑期間,控制器或文件系統(tǒng)還可驗(yàn)證各數(shù)據(jù)條,以識(shí)別被破壞的數(shù)據(jù)。這樣,人們可以實(shí)現(xiàn)由分條提高的性能和由鏡像增強(qiáng)的可靠性,無需四個(gè)或更多個(gè)硬盤驅(qū)動(dòng)器。用戶還可指定是否在寫數(shù)據(jù)時(shí)對(duì)數(shù)據(jù)鏡像和是否在讀數(shù)據(jù)時(shí)驗(yàn)證數(shù)據(jù)。所以,用戶可針對(duì)讀和寫,在速度和可靠性之間進(jìn)行抉擇。
盡管已在全功能數(shù)據(jù)處理系統(tǒng)的上下文中詳細(xì)描述了本發(fā)明,但本領(lǐng)域普通技術(shù)人員將會(huì)理解,本發(fā)明的過程能以指令的計(jì)算機(jī)可讀介質(zhì)形式和各種形式分發(fā),而且不管實(shí)際用于進(jìn)行分發(fā)的信號(hào)承載介質(zhì)的特定形式如何,本發(fā)明能同樣地應(yīng)用;指出這些是重要的。計(jì)算機(jī)可讀介質(zhì)的實(shí)例包括可記錄型介質(zhì),如軟盤、硬盤驅(qū)動(dòng)器、RAM、CD-ROM、DVD-ROM,以及傳輸型介質(zhì),如數(shù)字的和模擬的通信鏈路,使用諸如射頻和光波傳輸?shù)刃问降挠芯€或無線通信鏈路。計(jì)算機(jī)可讀介質(zhì)可采取編碼格式的形式,它們被解碼后實(shí)際用于一個(gè)特定數(shù)據(jù)處理系統(tǒng)中。
本發(fā)明的描述是為了說明和描述的目的給出的,不是要把本發(fā)明窮盡和限定于所公開的形式。對(duì)于本領(lǐng)域普通技術(shù)人員而言,許多修改和變化是顯然的。實(shí)施例的選擇和描述是為了最好地解釋本發(fā)明的原理和實(shí)際應(yīng)用,并使本領(lǐng)域其他普通技術(shù)人員能理解本發(fā)明以實(shí)現(xiàn)具有各種修改的各種實(shí)施例,以適用于所考慮的特定應(yīng)用。
權(quán)利要求
1.一種用于存儲(chǔ)數(shù)據(jù)的方法,包括把數(shù)據(jù)至少分成第一數(shù)據(jù)條和第二數(shù)據(jù)條;把第一數(shù)據(jù)條存儲(chǔ)在第一存儲(chǔ)器中,同時(shí)把第二數(shù)據(jù)條存儲(chǔ)在第二存儲(chǔ)器中;在第二存儲(chǔ)器中為第一數(shù)據(jù)條分配空間并在第一存儲(chǔ)器中為第二數(shù)據(jù)條分配空間;以及把第一數(shù)據(jù)條復(fù)制到供第一數(shù)據(jù)條用的空間并把第二數(shù)據(jù)條復(fù)制到供第二數(shù)據(jù)條用的空間。
2.權(quán)利要求1的方法,進(jìn)一步包括驗(yàn)證第一數(shù)據(jù)條。
3.權(quán)利要求2的方法,其中驗(yàn)證第一數(shù)據(jù)條的步驟包括將第一存儲(chǔ)器中的第一數(shù)據(jù)條與在第二存儲(chǔ)器中的復(fù)制的第一數(shù)據(jù)條進(jìn)行比較。
4.權(quán)利要求2的方法,其中驗(yàn)證第一數(shù)據(jù)條的步驟是在盤空閑期間進(jìn)行的。
5.權(quán)利要求2的方法,其中驗(yàn)證第一數(shù)據(jù)條的步驟是在啟動(dòng)時(shí)進(jìn)行的。
6.權(quán)利要求1的方法,其中復(fù)制第一數(shù)據(jù)條和復(fù)制第二數(shù)據(jù)條的步驟是在盤空閑期間進(jìn)行的。
7.一種用于存儲(chǔ)數(shù)據(jù)的方法,包括把數(shù)據(jù)至少分成第一數(shù)據(jù)條和第二數(shù)據(jù)條;把第一數(shù)據(jù)條存儲(chǔ)在第一存儲(chǔ)器中和把第二數(shù)據(jù)條存儲(chǔ)在第二存儲(chǔ)器中;把第一數(shù)據(jù)條復(fù)制到第二存儲(chǔ)器中和把第二數(shù)據(jù)條存儲(chǔ)到第一存儲(chǔ)器中;以及驗(yàn)證第一數(shù)據(jù)條。
8.權(quán)利要求7的方法,其中復(fù)制第一數(shù)據(jù)條和復(fù)制第二數(shù)據(jù)條的步驟包括在第二存儲(chǔ)器中為第一數(shù)據(jù)條分配空間和在第一存儲(chǔ)器中為第二數(shù)據(jù)條分配空間;以及把第一數(shù)據(jù)條復(fù)制到供第一數(shù)據(jù)條用的空間中和把第二數(shù)據(jù)條復(fù)制到供第二數(shù)據(jù)條用的空間中。
9.權(quán)利要求8的方法,其中復(fù)制第一數(shù)據(jù)條和復(fù)制第二數(shù)據(jù)條的步驟是在盤空閑期間進(jìn)行的。
10.權(quán)利要求7的方法,其中是在把第一數(shù)據(jù)條存儲(chǔ)到第一存儲(chǔ)器中時(shí)把第一數(shù)據(jù)條復(fù)制到第二存儲(chǔ)器中。
11.權(quán)利要求7的方法,其中復(fù)制第一數(shù)據(jù)條和復(fù)制第二數(shù)據(jù)條的步驟是在盤空閑期間進(jìn)行的。
12.權(quán)利要求11的方法,其中第一數(shù)據(jù)條和第二數(shù)據(jù)條是同時(shí)被復(fù)制的。
13.權(quán)利要求7的方法,其中驗(yàn)證第一數(shù)據(jù)條的步驟是在盤空閑期間進(jìn)行的。
14.權(quán)利要求7的方法,其中驗(yàn)證第一數(shù)據(jù)條的步驟是在讀第一數(shù)據(jù)條時(shí)進(jìn)行的。
15.權(quán)利要求7的方法,其中驗(yàn)證第一數(shù)據(jù)條的步驟包括將第一存儲(chǔ)器中的第一數(shù)據(jù)條與在第二存儲(chǔ)器中的復(fù)制的第一數(shù)據(jù)條進(jìn)行比較。
16.一種用于存儲(chǔ)數(shù)據(jù)的設(shè)備,包括分條裝置,用于把數(shù)據(jù)至少分成第一數(shù)據(jù)條和第二數(shù)據(jù)條;存儲(chǔ)裝置,用于把第一數(shù)據(jù)條存儲(chǔ)在第一存儲(chǔ)器中,同時(shí)把第二數(shù)據(jù)條存儲(chǔ)在第二存儲(chǔ)器中;分配裝置,用于在第二存儲(chǔ)器中為第一數(shù)據(jù)條分配空間并在第一存儲(chǔ)器中為第二數(shù)據(jù)條分配空間;以及復(fù)制裝置,用于把第一數(shù)據(jù)條復(fù)制到供第一數(shù)據(jù)條用的空間并把第二數(shù)據(jù)條復(fù)制到供第二數(shù)據(jù)條用的空間。
17.權(quán)利要求16的設(shè)備,進(jìn)一步包括驗(yàn)證裝置,用于驗(yàn)證第一數(shù)據(jù)條。
18.權(quán)利要求17的設(shè)備,其中驗(yàn)證裝置包括比較裝置,用于將第一存儲(chǔ)器中的第一數(shù)據(jù)條與在第二存儲(chǔ)器中的復(fù)制的第一數(shù)據(jù)條進(jìn)行比較。
19.權(quán)利要求17的設(shè)備,其中驗(yàn)證裝置包括在盤空閑期間驗(yàn)證第一數(shù)據(jù)條的裝置。
20.權(quán)利要求17的設(shè)備,其中驗(yàn)證裝置包括在啟動(dòng)時(shí)驗(yàn)證第一數(shù)據(jù)條的裝置。
21.權(quán)利要求16的設(shè)備,其中復(fù)制裝置包含在盤空閑期間復(fù)制第一數(shù)據(jù)條和第二數(shù)據(jù)條的裝置。
22.一種用于存儲(chǔ)數(shù)據(jù)的設(shè)備,包括分條裝置,用于把數(shù)據(jù)至少分成第一數(shù)據(jù)條和第二數(shù)據(jù)條;存儲(chǔ)裝置,用于把第一數(shù)據(jù)條存儲(chǔ)在第一存儲(chǔ)器中和把第二數(shù)據(jù)條存儲(chǔ)在第二存儲(chǔ)器中;復(fù)制裝置,用于把第一數(shù)據(jù)條復(fù)制到第二存儲(chǔ)器中和把第二數(shù)據(jù)條存儲(chǔ)到第一存儲(chǔ)器中;以及驗(yàn)證裝置,用于驗(yàn)證第一數(shù)據(jù)條。
23.權(quán)利要求22的設(shè)備,其中復(fù)制裝置包括分配裝置,用于在第二存儲(chǔ)器中為第一數(shù)據(jù)條分配空間和在第一存儲(chǔ)器中為第二數(shù)據(jù)條分配空間;以及復(fù)制裝置,用于把第一數(shù)據(jù)條復(fù)制到供第一數(shù)據(jù)條用的空間中和把第二數(shù)據(jù)條復(fù)制到供第二數(shù)據(jù)條用的空間中。
24.權(quán)利要求23的設(shè)備,其中復(fù)制裝置包含在盤空閑期間復(fù)制第一數(shù)據(jù)條和第二數(shù)據(jù)條的裝置。
25.權(quán)利要求22的設(shè)備,其中是在把第一數(shù)據(jù)條存儲(chǔ)到第一存儲(chǔ)器中時(shí)把第一數(shù)據(jù)條復(fù)制到第二存儲(chǔ)器中。
26.權(quán)利要求22的設(shè)備,其中復(fù)制裝置包含在盤空閑期間復(fù)制第一數(shù)據(jù)條和第二數(shù)據(jù)條的裝置。
27.權(quán)利要求26的設(shè)備,其中第一數(shù)據(jù)條和第二數(shù)據(jù)條是同時(shí)被復(fù)制的。
28.權(quán)利要求22的設(shè)備,其中驗(yàn)證裝置包括在盤空閑期間驗(yàn)證第一數(shù)據(jù)條的裝置。
29.權(quán)利要求22的設(shè)備,其中驗(yàn)證裝置包括在讀第一數(shù)據(jù)條時(shí)驗(yàn)證第一數(shù)據(jù)條的裝置。
30.權(quán)利要求22的設(shè)備,其中驗(yàn)證裝置包括比較裝置,用于將第一存儲(chǔ)器中的第一數(shù)據(jù)條與在第二存儲(chǔ)器中的復(fù)制的第一數(shù)據(jù)條進(jìn)行比較。
31.一種用于存儲(chǔ)數(shù)據(jù)的設(shè)備,包括第一存儲(chǔ)器;第二存儲(chǔ)器;以及控制器,它把數(shù)據(jù)至少分成是第一數(shù)據(jù)條和第二數(shù)據(jù)條,把第一數(shù)據(jù)條存儲(chǔ)在第一存儲(chǔ)器中并同時(shí)把第二數(shù)據(jù)條存儲(chǔ)在第二存儲(chǔ)器中,在第二存儲(chǔ)器中為第一數(shù)據(jù)條分配空間和在第一存儲(chǔ)器中為第二數(shù)據(jù)條分配空間,以及把第一數(shù)據(jù)條復(fù)制到供第一數(shù)據(jù)條用的空間中和把第二數(shù)據(jù)條復(fù)制到供第二數(shù)據(jù)條用的空間中。
32.一種用于存儲(chǔ)數(shù)據(jù)的設(shè)備,包括第一存儲(chǔ)器;第二存儲(chǔ)器;以及控制器,它把數(shù)據(jù)至少分成是第一數(shù)據(jù)條和第二數(shù)據(jù)條,把第一數(shù)據(jù)條存儲(chǔ)在第一存儲(chǔ)器中和把第二數(shù)據(jù)條存儲(chǔ)在第二存儲(chǔ)器中,把第一數(shù)據(jù)條復(fù)制到第二存儲(chǔ)器中和把第二數(shù)據(jù)條復(fù)制到第一存儲(chǔ)器中,以及驗(yàn)證第一數(shù)據(jù)條。
33.一種在計(jì)算機(jī)可讀介質(zhì)中的用于存儲(chǔ)數(shù)據(jù)的計(jì)算機(jī)程序產(chǎn)品,包括用于把數(shù)據(jù)至少分成是第一數(shù)據(jù)條和第二數(shù)據(jù)條的指令;用于把第一數(shù)據(jù)條存儲(chǔ)在第一存儲(chǔ)器中并同時(shí)把第二數(shù)據(jù)條存儲(chǔ)在第二存儲(chǔ)器中的指令;用于在第二存儲(chǔ)器中為第一數(shù)據(jù)條分配空間并在第一存儲(chǔ)器中為第二數(shù)據(jù)條分配空間的指令;以及用于把第一數(shù)據(jù)條復(fù)制到供第一數(shù)據(jù)條用的空間并把第二數(shù)據(jù)條復(fù)制到供第二數(shù)據(jù)條用的空間的指令。
34.一種在計(jì)算機(jī)可讀介質(zhì)中的用于存儲(chǔ)數(shù)據(jù)的計(jì)算機(jī)程序產(chǎn)品,包括用于把數(shù)據(jù)至少分成是第一數(shù)據(jù)條和第二數(shù)據(jù)條的指令;用于把第一數(shù)據(jù)條存儲(chǔ)在第一存儲(chǔ)器中和把第二數(shù)據(jù)條存儲(chǔ)在第二存儲(chǔ)器中的指令;用于把第一數(shù)據(jù)條復(fù)制到第二存儲(chǔ)器中和把第二數(shù)據(jù)條復(fù)制到第一存儲(chǔ)器中的指令;以及用于驗(yàn)證第一數(shù)據(jù)條的指令。
全文摘要
硬盤驅(qū)動(dòng)器(410、420)用于對(duì)數(shù)據(jù)進(jìn)行鏡像和分條處理。在寫的時(shí)候,硬盤控制器把第一數(shù)據(jù)條(420)寫(504)到第一硬盤(410)中并在第二硬盤(420)上分配(510)適當(dāng)?shù)目臻g量以對(duì)該數(shù)據(jù)條進(jìn)行鏡像處理。與此同時(shí),第二數(shù)據(jù)條(422)可被寫入第二硬盤(420)并在第一硬盤(410)上分配適當(dāng)空間量以對(duì)第二數(shù)據(jù)條進(jìn)行鏡像處理。關(guān)于哪些數(shù)據(jù)條已被鏡像而哪些數(shù)據(jù)條尚未被鏡像的信息被存儲(chǔ)在存儲(chǔ)器中。其后,例如在盤空閑期間,控制器或文件系統(tǒng)可把相應(yīng)的數(shù)據(jù)條復(fù)制(508)到預(yù)先分配的空間,從而使各驅(qū)動(dòng)器(410、420)之間的數(shù)據(jù)同步。在盤空閑期間,控制器或文件系統(tǒng)還可驗(yàn)證(518)各數(shù)據(jù)條,以識(shí)別被破壞的數(shù)據(jù)。用戶可指定是否在寫數(shù)據(jù)時(shí)對(duì)數(shù)據(jù)鏡像和是否在讀數(shù)據(jù)時(shí)驗(yàn)證數(shù)據(jù)。所以,用戶可對(duì)讀和寫分別獨(dú)立地在速度和可靠性之間進(jìn)行抉擇。
文檔編號(hào)G06F11/20GK1518697SQ01823378
公開日2004年8月4日 申請(qǐng)日期2001年12月17日 優(yōu)先權(quán)日2001年4月19日
發(fā)明者J·瓊斯, D·羅特爾特, J 瓊斯, 囟 申請(qǐng)人:國際商業(yè)機(jī)器公司