經(jīng)由來(lái)自在第二塊尺寸的塊內(nèi)仿真第一塊尺寸的塊的盤驅(qū)動(dòng)器的通知對(duì)破壞性寫入的指示的制作方法
【專利摘要】盤驅(qū)動(dòng)器接收寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求,其中該盤驅(qū)動(dòng)器被配置為存儲(chǔ)在尺寸上大于所述第一塊尺寸的第二塊尺寸的塊,并且其中,所述盤驅(qū)動(dòng)器經(jīng)由仿真將多個(gè)第一塊尺寸的仿真塊存儲(chǔ)在所述第二塊尺寸的每個(gè)塊中。所述盤驅(qū)動(dòng)器響應(yīng)于讀取在其中經(jīng)由仿真寫入所述至少一個(gè)第一塊尺寸的塊的第二塊尺寸的所選塊而生成讀取錯(cuò)誤。所述盤驅(qū)動(dòng)器執(zhí)行對(duì)導(dǎo)致生成該讀取錯(cuò)誤的第一塊尺寸的所選仿真塊的破壞性寫入。所述盤驅(qū)動(dòng)器在第二塊尺寸的所選塊中寫入至少一個(gè)第一塊尺寸的塊。所述盤驅(qū)動(dòng)器發(fā)送通知以指示破壞性寫入的執(zhí)行。
【專利說(shuō)明】經(jīng)由來(lái)自在第二塊尺寸的塊內(nèi)仿真第一塊尺寸的塊的盤驅(qū)動(dòng)器的通知對(duì)破壞性寫入的指示
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及一種用于經(jīng)由來(lái)自在第二塊尺寸的塊內(nèi)仿真第一塊尺寸的塊的盤驅(qū)動(dòng)器的通知來(lái)指示破壞性寫入的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。
【背景技術(shù)】
[0002]多個(gè)盤(disk)可被耦接(couple)到控制該多個(gè)盤的存儲(chǔ)控制器。例如,配置為簡(jiǎn)單磁盤捆綁(JB0D)、獨(dú)立磁盤冗余陣列(RAID)等等的盤可耦接到存儲(chǔ)控制器。耦接到存儲(chǔ)控制器的一個(gè)或多個(gè)主機(jī)可以通過(guò)發(fā)送命令到存儲(chǔ)控制器來(lái)相對(duì)于該多個(gè)盤執(zhí)行輸入/輸出(I/O)操作。
[0003]扇區(qū)(sector)是盤的特定大小的分區(qū)。以前,盤的一個(gè)扇區(qū)一般被配置成容納512字節(jié)的信息。然而,最近,某些盤正被盤廠商配置成容納4096字節(jié)(即4千字節(jié))的信
肩、O
[0004]塊(block)是操作系統(tǒng)可以尋址的盤的一組扇區(qū)。計(jì)數(shù)鍵數(shù)據(jù)(CKD)是某些操作系統(tǒng)的盤數(shù)據(jù)組織模型,其中盤被假定為包含固定數(shù)量的磁道,每個(gè)磁道具有最大數(shù)據(jù)容量。不同長(zhǎng)度的多個(gè)記錄可以被寫入到CKD盤的每個(gè)磁道上,并且每個(gè)磁道的可用容量取決于寫入到該磁道上的記錄數(shù)。CKD架構(gòu)從記錄格式得到其名稱,所述記錄格式包括包含數(shù)據(jù)的字節(jié)數(shù)和記錄地址的字段、可選的鍵字段,以及數(shù)據(jù)本身。CKD記錄存儲(chǔ)在512字節(jié)的塊中,駐留在主機(jī)上的操作系統(tǒng)可以尋址該512字節(jié)的塊。某些其它盤數(shù)據(jù)組織模型也可以由操作系統(tǒng)以512字節(jié)的塊來(lái)尋址。
【發(fā)明內(nèi)容】
[0005]提供了一種方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品,其中盤驅(qū)動(dòng)器接收寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求,其中該盤驅(qū)動(dòng)器被配置為存儲(chǔ)在尺寸上大于所述第一塊尺寸的第二塊尺寸的塊,并且其中,所述盤驅(qū)動(dòng)器經(jīng)由仿真將多個(gè)第一塊尺寸的仿真塊存儲(chǔ)在所述第二塊尺寸的每個(gè)塊中。盤驅(qū)動(dòng)器響應(yīng)于讀取在其中要經(jīng)由仿真寫入所述至少一個(gè)第一塊尺寸的塊的第二塊尺寸的所選塊而生成讀取錯(cuò)誤。所述盤驅(qū)動(dòng)器執(zhí)行對(duì)于導(dǎo)致生成該讀取錯(cuò)誤的第一塊尺寸的所選仿真塊的破壞性寫入。盤驅(qū)動(dòng)器在第二塊尺寸的所選塊中寫入至少一個(gè)第一塊尺寸的塊。盤驅(qū)動(dòng)器發(fā)送通知以指示執(zhí)行了破壞性寫入。
[0006]在附加實(shí)施例中,第一塊尺寸是512字節(jié),第二塊尺寸是4千字節(jié)。
[0007]在另外的附加實(shí)施例中,通知被異步地發(fā)送給控制器,并且盤驅(qū)動(dòng)器保持(maintain)指示在其上執(zhí)行了破壞性寫入的那些仿真塊的指示器,其中,即使響應(yīng)于正在生成讀取錯(cuò)誤,也滿足寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求。
[0008]在進(jìn)一步的實(shí)施例中,控制器接收由盤驅(qū)動(dòng)器發(fā)送的通知??刂破魍ㄟ^(guò)復(fù)制來(lái)自對(duì)應(yīng)于所選仿真塊中的數(shù)據(jù)的鏡像數(shù)據(jù)的數(shù)據(jù)來(lái)恢復(fù)在其上由盤驅(qū)動(dòng)器執(zhí)行了破壞性寫入的所選仿真塊中的數(shù)據(jù),其中所述鏡像數(shù)據(jù)經(jīng)由控制器保持。[0009]在另外的進(jìn)一步實(shí)施例中,盤驅(qū)動(dòng)器耦接到鏡像盤驅(qū)動(dòng)器中存儲(chǔ)的數(shù)據(jù)的控制器。由該控制器從主機(jī)接收所述請(qǐng)求,所述主機(jī)的操作系統(tǒng)被配置成訪問(wèn)配置為512字節(jié)的第一塊尺寸的塊。此外,盤驅(qū)動(dòng)器保持的盤對(duì)于浪費(fèi)的存儲(chǔ)空間具有較小的容忍度,對(duì)于用于執(zhí)行讀取和寫入操作的增加的處理時(shí)間具有較大的容忍度。
【專利附圖】
【附圖說(shuō)明】
[0010]現(xiàn)在參照附圖,整個(gè)附圖中相同的標(biāo)號(hào)代表相應(yīng)的部分:
[0011]圖1示出根據(jù)某些實(shí)施例的計(jì)算環(huán)境的框圖,該計(jì)算環(huán)境包括耦接到主機(jī)的控制器和在JBOD配置中配置的多個(gè)盤;
[0012]圖2示出根據(jù)某些實(shí)施例的、示出在以4K塊尺寸配置的盤中仿真512字節(jié)的塊的框圖;
[0013]圖3示出根據(jù)某些實(shí)施例的、顯示了盤驅(qū)動(dòng)器如何執(zhí)行破壞性寫入和異步通知的框圖;
[0014]圖4示出根據(jù)某些實(shí)施例的、顯示了由主機(jī)、控制器和盤驅(qū)動(dòng)器執(zhí)行的某些操作的流程圖;
[0015]圖5示出根據(jù)某些實(shí)施例的、顯示了由盤驅(qū)動(dòng)器執(zhí)行的某些操作的流程圖;
[0016]圖6示出根據(jù)某些實(shí)施例的、顯示了由控制器執(zhí)行的某些操作的流程圖;
[0017]圖7示出根據(jù)某些實(shí)施例的、顯示了在存儲(chǔ)控制器之外實(shí)施的盤控制器的框圖;
[0018]圖8示出根據(jù)某些實(shí)施例的、顯示了在存儲(chǔ)控制器之內(nèi)實(shí)施的盤控制器的框圖;
[0019]圖9示出根據(jù)某些實(shí)施例的、顯示了可以包括在控制器或盤驅(qū)動(dòng)器之中的某些元件的計(jì)算系統(tǒng)的框圖。
【具體實(shí)施方式】
[0020]在以下描述中,參考形成其部分并示出若干實(shí)施例的附圖。應(yīng)理解,可以利用其它實(shí)施例,并且可以做出結(jié)構(gòu)和操作上的改變。
[0021]用于在4K塊中存儲(chǔ)512字節(jié)塊的仿真
[0022]物理盤由盤制造商預(yù)先配置成512字節(jié)的扇區(qū)。最近已可得到配置成4千字節(jié)扇區(qū)的物理盤。然而,即使在使用配置到4K塊的物理盤時(shí),諸如CKD的某些盤數(shù)據(jù)組織模型仍依賴于經(jīng)由512字節(jié)塊的操作系統(tǒng)訪問(wèn)。
[0023]在某些實(shí)施例中,以4K塊存儲(chǔ)數(shù)據(jù)的盤驅(qū)動(dòng)器仿真在4K塊內(nèi)對(duì)512字節(jié)塊的存儲(chǔ)。然而,當(dāng)讀取數(shù)據(jù)時(shí)必須讀取完整的4K塊。在存儲(chǔ)空間不被浪費(fèi)的某些實(shí)施例中,盤驅(qū)動(dòng)器可以仿真多個(gè)512字節(jié)塊存儲(chǔ)在4K塊內(nèi)。例如,如果仿真要在單一 4K塊內(nèi)存儲(chǔ)八個(gè)512塊,則在該單一 4K塊內(nèi)沒(méi)有浪費(fèi)空間。然而,由于盤驅(qū)動(dòng)器被配置成相對(duì)于4K塊的整體執(zhí)行1/0,因此存在性能損失。例如,如果即使要在4K塊內(nèi)寫入單一的仿真的512字節(jié)塊,也必須在對(duì)該4K塊進(jìn)行任何修改和寫入之前讀取整個(gè)4K塊。
[0024]在某些實(shí)施例中,響應(yīng)于存儲(chǔ)驅(qū)動(dòng)器讀取4K塊以滿足對(duì)于某些512字節(jié)塊的寫入請(qǐng)求,可能會(huì)生成媒體錯(cuò)誤。媒體錯(cuò)誤可能是無(wú)法糾正的錯(cuò)誤。然而,不希望使該寫入請(qǐng)求失敗。在某些實(shí)施例中,破壞性地寫入導(dǎo)致在4K字節(jié)塊內(nèi)生成讀取錯(cuò)誤的仿真的512字節(jié)塊,即,存儲(chǔ)在導(dǎo)致生成讀取錯(cuò)誤的仿真的512字節(jié)塊內(nèi)的數(shù)據(jù)被指示為被破壞且不再有效。破壞性寫入的通知由盤驅(qū)動(dòng)器發(fā)送到控制器,并且滿足該寫入請(qǐng)求。隨后,控制器可使用由該控制器控制的先前存儲(chǔ)的鏡像數(shù)據(jù)以恢復(fù)破壞性寫入的仿真的512塊中的數(shù)據(jù)。應(yīng)注意,盤驅(qū)動(dòng)器不知道由控制器執(zhí)行的數(shù)據(jù)的鏡像。
[0025]無(wú)論主機(jī)還是盤驅(qū)動(dòng)器都不必知道對(duì)方固有支持的塊尺寸。盤驅(qū)動(dòng)器執(zhí)行對(duì)于由主機(jī)的操作系統(tǒng)固有使用的更小的塊尺寸的塊的仿真以提供到由盤的配置固有使用的更大的塊尺寸的塊的映射。
[0026]示例性實(shí)施例
[0027]圖1示出根據(jù)某些實(shí)施例的計(jì)算環(huán)境100的框圖,該計(jì)算環(huán)境100包括耦接到一個(gè)或多個(gè)主機(jī)104的控制器102和配置為控制在示例性的簡(jiǎn)單盤捆綁(JBOD)配置108中的盤的多個(gè)盤驅(qū)動(dòng)器106a...106η。可在替代實(shí)施例中使用諸如獨(dú)立盤冗余陣列(RAID)的
其它盤配置。
[0028]控制器102和主機(jī)104可包含包括那些在本領(lǐng)域中目前已知的任何合適的計(jì)算設(shè)備,諸如個(gè)人計(jì)算機(jī)、工作站、服務(wù)器、大型機(jī)、手持式計(jì)算機(jī)、掌上計(jì)算機(jī)、電話設(shè)備、網(wǎng)絡(luò)設(shè)施、刀片計(jì)算機(jī)、服務(wù)器等。多個(gè)盤驅(qū)動(dòng)器106a...106η可以控制本領(lǐng)域中已知的任何合適的物理硬盤。在替代實(shí)施例中,多個(gè)盤驅(qū)動(dòng)器106a...106η可以控制如固態(tài)盤、光盤等的其它類型的盤。
[0029]主機(jī)104可以包括被配置為使用512字節(jié)塊尺寸用于訪問(wèn)塊的操作系統(tǒng)110。每個(gè)示例性盤108被配置為用于4千字節(jié)塊尺寸。因此相對(duì)于由盤驅(qū)動(dòng)器106a...106η控制的多個(gè)盤的讀取可以 以4千字節(jié)的塊尺寸進(jìn)行。因此,在圖1所示的實(shí)施例中,JBOD配置108的多個(gè)盤被配置為用于4千字節(jié)塊尺寸,而主機(jī)104上的操作系統(tǒng)110被配置為使用512字節(jié)塊尺寸。
[0030]控制器102包括處理器112、存儲(chǔ)器114和控制器應(yīng)用116。控制器應(yīng)用116可以以硬件、軟件、固件或它們的任意組合來(lái)實(shí)現(xiàn),并且還可以鏡像存儲(chǔ)在盤驅(qū)動(dòng)器106a...106η的示例性盤108中的數(shù)據(jù)。
[0031]如圖1的示例性盤驅(qū)動(dòng)器106a、106η中所示,盤驅(qū)動(dòng)器106a...106η包括處理器118、120和存儲(chǔ)器122、124。每個(gè)盤驅(qū)動(dòng)器還執(zhí)行在由每個(gè)盤驅(qū)動(dòng)器固有支持的4Κ字節(jié)塊內(nèi)仿真512字節(jié)塊的仿真器和破壞性寫入通知應(yīng)用(由參考標(biāo)號(hào)126、128示出)。當(dāng)在固有支持的4Κ塊內(nèi)的仿真512字節(jié)塊上執(zhí)行破壞性寫入時(shí),該仿真器和破壞性寫入通知應(yīng)用126、128還發(fā)送通知到控制器102。該仿真器和破壞性寫入通知應(yīng)用126、128還在盤驅(qū)動(dòng)器106a…106η內(nèi)存儲(chǔ)的指示器130、132中跟蹤破壞性寫入的512字節(jié)塊。
[0032]該仿真器和破壞性寫入通知應(yīng)用126、128解釋來(lái)自主機(jī)104的對(duì)于512字節(jié)塊的輸入/輸出(I/o)請(qǐng)求,并映射這樣的請(qǐng)求以經(jīng)由仿真相對(duì)于JBOD配置108中的盤來(lái)讀取和寫入數(shù)據(jù)。盤驅(qū)動(dòng)器106a…106η不必要向主機(jī)104告知盤驅(qū)動(dòng)器106a…106η是否支持主機(jī)104的操作系統(tǒng)110所使用的512字節(jié)塊尺寸。
[0033]圖2示出根據(jù)某些實(shí)施例的、示出在固有支持4Κ塊尺寸的盤中仿真512字節(jié)塊的框圖200。第一 4Κ塊202存儲(chǔ)了八個(gè)512字節(jié)塊204,而不浪費(fèi)任何存儲(chǔ)空間。類似地,第二 4Κ塊206存儲(chǔ)了八個(gè)512字節(jié)塊208,而不浪費(fèi)任何存儲(chǔ)空間。在替代實(shí)施例中,在每個(gè)4Κ塊中可以仿真較少數(shù)量的512字節(jié)塊,并因此一些存儲(chǔ)空間可能不被使用。
[0034]圖3示出根據(jù)某些實(shí)施例的、顯示了盤驅(qū)動(dòng)器如何執(zhí)行破壞性寫入和異步通知的框圖300。主機(jī)104發(fā)起的寫入八個(gè)512字節(jié)塊的命令由盤驅(qū)動(dòng)器106a經(jīng)由控制器102接收,其中五個(gè)512字節(jié)塊將被寫入到第一 4K塊202,其余的三個(gè)512字節(jié)的塊將被寫入第二4K塊206 (由參考標(biāo)號(hào)302示出)。在4K塊內(nèi)仿真512字節(jié)塊期間沒(méi)有必要將數(shù)據(jù)以對(duì)齊的方式存儲(chǔ)。
[0035]在某些實(shí)施例中,在接收到寫入請(qǐng)求時(shí),盤驅(qū)動(dòng)器106a嘗試讀取第一 4K塊,并由于不能讀取某些512字節(jié)塊(由參考標(biāo)號(hào)304示出)而生成讀取錯(cuò)誤。盤驅(qū)動(dòng)器106a執(zhí)行對(duì)塊304的破壞性寫入,并生成該破壞性寫入的異步通知用于發(fā)送給控制器102(如由參考標(biāo)號(hào)306示出)。此外,五個(gè)新的512字節(jié)塊被寫入(由參考標(biāo)號(hào)308示出)第一 4K塊202,三個(gè)新的512字節(jié)塊被寫入(由參考標(biāo)號(hào)310示出)第二 4K塊206。
[0036]圖4示出根據(jù)某些實(shí)施例的、顯示了由主機(jī)104、控制器102和示例性盤驅(qū)動(dòng)器106a執(zhí)行的某些操作的流程圖400。
[0037]控制開(kāi)始于方框402,其中主機(jī)104將寫入一個(gè)或多個(gè)512字節(jié)塊的請(qǐng)求發(fā)送到控制器102。該控制器102將該寫入一個(gè)或多個(gè)512字節(jié)塊的請(qǐng)求處理并接著轉(zhuǎn)發(fā)(在方框404)到盤驅(qū)動(dòng)器106a。以4K塊(每個(gè)4K塊仿真八個(gè)512字節(jié)塊)存儲(chǔ)信息的盤驅(qū)動(dòng)器106a接收(在方框406)該寫入一個(gè)或多個(gè)512字節(jié)塊的請(qǐng)求。
[0038]盤驅(qū)動(dòng)器106a在讀取仿真八個(gè)512字節(jié)塊的4K塊時(shí)生成(在方框408)讀取錯(cuò)誤。當(dāng)不能讀取塊在4K塊內(nèi)存儲(chǔ)的某些512字節(jié)塊時(shí)可能導(dǎo)致讀取錯(cuò)誤。
[0039]響應(yīng)于該讀取錯(cuò)誤,盤驅(qū)動(dòng)器106a在導(dǎo)致該讀取錯(cuò)誤的那些512字節(jié)塊上執(zhí)行(在方框410)破壞性寫入,并在指示器130內(nèi)存儲(chǔ)被破壞的512字節(jié)塊的指示。盤驅(qū)動(dòng)器106a從該盤驅(qū)動(dòng)器106a發(fā)送(在方框412)該破壞性寫入的異步通知給控制器102。
[0040]在某些實(shí)施例中,在接收到破壞性寫入的通知時(shí),控制器102可以可選地通過(guò)從控制器102保持的先前鏡像的數(shù)據(jù)中復(fù)制數(shù)據(jù)來(lái)恢復(fù)(在方框416)被破壞的512字節(jié)塊。例如,如果控制器102已鏡像數(shù)據(jù),則破壞性地寫入的數(shù)據(jù)仍然是可得的,并且可以通過(guò)從先前鏡像的數(shù)據(jù)復(fù)制數(shù)據(jù)來(lái)校正被破壞的512字節(jié)塊。優(yōu)選不延遲被破壞的數(shù)據(jù)的恢復(fù),因?yàn)殓R像數(shù)據(jù)可能由于各種原因在未來(lái)潛在地成為不可得,并且在這種情況下,鏡像數(shù)據(jù)可能不可用于恢復(fù)被破壞的數(shù)據(jù)。
[0041]圖5示出根據(jù)某些實(shí)施例的、顯示了由盤驅(qū)動(dòng)器106a執(zhí)行的某些操作500的流程圖。圖5所示的操作500可以通過(guò)在盤驅(qū)動(dòng)器106a內(nèi)執(zhí)行的仿真器和破壞性寫入通知應(yīng)用126來(lái)執(zhí)行。
[0042]盤驅(qū)動(dòng)器106a接收(在方框502)寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求,其中所述盤驅(qū)動(dòng)器106a被配置為存儲(chǔ)在尺寸上大于第一塊尺寸的第二塊尺寸的塊,并且其中,所述盤驅(qū)動(dòng)器106a經(jīng)由仿真在第二塊尺寸的每個(gè)塊中存儲(chǔ)多個(gè)第一塊尺寸的仿真塊。在某些實(shí)施例中,所述第一塊尺寸為512字節(jié),第二塊尺寸為4千字節(jié)。
[0043]控制前進(jìn)到方框504,其中,響應(yīng)于讀取在其中要經(jīng)由仿真寫入至少一個(gè)第一塊尺寸的塊的第二塊尺寸的所選塊(由圖3中的參考標(biāo)號(hào)202示出),所述盤驅(qū)動(dòng)器106a生成讀取錯(cuò)誤。盤驅(qū)動(dòng)器106a執(zhí)行(在方框506)對(duì)導(dǎo)致生成讀取錯(cuò)誤的第一塊尺寸的所選仿真塊(由圖3中的參考標(biāo)號(hào)304不出)的破壞性與入。
[0044]控制前進(jìn)到方框508,其中盤驅(qū)動(dòng)器106a在第二塊尺寸的所選塊中寫入至少一個(gè)第一塊尺寸的塊(由圖3中參考標(biāo)號(hào)308示出)。盤驅(qū)動(dòng)器106a發(fā)送(在方框510)通知以指示執(zhí)行了破壞性寫入。
[0045]圖6示出根據(jù)某些實(shí)施例的、顯示了由控制器102執(zhí)行的某些操作的流程圖600。圖6所示的操作可由在控制器102內(nèi)執(zhí)行的控制器應(yīng)用116執(zhí)行。
[0046]控制開(kāi)始于方框602,其中,響應(yīng)于盤驅(qū)動(dòng)器106a發(fā)送(在圖5的方框510)通知以指示執(zhí)行了破壞性寫入,控制器102接收由盤驅(qū)動(dòng)器106a發(fā)送的通知??刂破?02通過(guò)從對(duì)應(yīng)于所選仿真塊中的數(shù)據(jù)的鏡像數(shù)據(jù)中復(fù)制數(shù)據(jù)來(lái)恢復(fù)(在方框604)在其上被盤驅(qū)動(dòng)器執(zhí)行了破壞性寫入的所選仿真塊中的數(shù)據(jù),其中鏡像數(shù)據(jù)經(jīng)由控制器保持。
[0047]因此,圖1-6示出了某些實(shí)施例,其中盤驅(qū)動(dòng)器發(fā)送通知給存儲(chǔ)控制器,該通知指示在盤驅(qū)動(dòng)器內(nèi)已經(jīng)發(fā)生了破壞性寫入。在某些實(shí)施例中,從存儲(chǔ)控制器保持的鏡像數(shù)據(jù)恢復(fù)被破壞的數(shù)據(jù)。應(yīng)注意,盤驅(qū)動(dòng)器的固有塊尺寸大于操作系統(tǒng)尋址的固有塊尺寸,并且盤驅(qū)動(dòng)器仿真操作系統(tǒng)尋址的固有塊尺寸。
[0048]圖7示出根據(jù)某些實(shí)施例的、顯示了在存儲(chǔ)控制器之外實(shí)施的盤控制器設(shè)備702、704的框圖700。在某些實(shí)施例中,盤控制器設(shè)備702、704可以控制配置為JB0D、RAID等示例性盤。兩個(gè)存儲(chǔ)控制器706、708形成耦接到多個(gè)主機(jī)712a...712η的存儲(chǔ)子系統(tǒng)710,其中主機(jī)712a...712η的至少一個(gè)或多個(gè)被配置為訪問(wèn)512字節(jié)的塊尺寸的數(shù)據(jù)。存儲(chǔ)控制器706耦接到在存儲(chǔ)控制器706外部的盤控制器設(shè)備702,存儲(chǔ)控制器708耦接到在存儲(chǔ)控制器708外部的盤控制器設(shè)備704,其中,所述盤控制器設(shè)備702和704分別控制多個(gè)盤714a...714η 和 716a...716η,其中所述多個(gè)盤 714a...714η 和 716a...716η 以 4Κ 塊尺寸存儲(chǔ)數(shù)據(jù)。存儲(chǔ)控制器706和708可以相互代替,以響應(yīng)來(lái)自主機(jī)712a...712η的任一個(gè)的請(qǐng)求。
[0049]因此,圖7示出了某些實(shí)施例,其中在存儲(chǔ)子系統(tǒng)內(nèi)的存儲(chǔ)控制器的外部的盤控制器經(jīng)由仿真將512塊尺寸的請(qǐng)求映射到以4千字節(jié)的塊尺寸存儲(chǔ)數(shù)據(jù)的配置中。
[0050]圖8示出根據(jù)某些實(shí)施例的、示出在存儲(chǔ)控制器806、808之內(nèi)實(shí)施的盤控制器802,804的框圖800。兩個(gè)存儲(chǔ)控制器806、808形成耦接到多個(gè)主機(jī)812a...812η的存儲(chǔ)子系統(tǒng)810,其中主機(jī)812a...812η的至少一個(gè)或多個(gè)被配置為訪問(wèn)512字節(jié)的塊尺寸的數(shù)據(jù)。存儲(chǔ)控制器806耦接到在該存儲(chǔ)控制器806內(nèi)部的盤控制器設(shè)備802,存儲(chǔ)控制器808耦接到在該存儲(chǔ)控制器808內(nèi)部的盤控制器設(shè)備804,其中,所述盤控制器設(shè)備802和804分別控制多個(gè)盤814a...814η和816a...816η,并且其中所述多個(gè)盤814a...814η和816a...816η以4K塊尺寸存儲(chǔ)數(shù)據(jù)。存儲(chǔ)控制器806和808可以相互代替,以響應(yīng)來(lái)自主機(jī)812a...812η的任一個(gè)的請(qǐng)求,并且存儲(chǔ)控制器806、808中的每一個(gè)除所述盤控制器外還至少包括處理器和存儲(chǔ)器(由指示處理器的參考標(biāo)號(hào)818、820,以及指示存儲(chǔ)器的參考標(biāo)號(hào)822、824示出)。
[0051]因此,圖8示出了某些實(shí)施例,其中在存儲(chǔ)子系統(tǒng)內(nèi)的存儲(chǔ)控制器的內(nèi)部的盤控制器經(jīng)由仿真將512塊尺寸的請(qǐng)求映射到以4千字節(jié)的塊尺寸存儲(chǔ)數(shù)據(jù)的配置中。
[0052]因此,圖1-8示出了某些實(shí)施例,其中控制固有地以4Κ塊存儲(chǔ)數(shù)據(jù)的盤的盤驅(qū)動(dòng)器被用于仿真由操作系統(tǒng)尋址的512字節(jié)塊。多個(gè)512塊被存儲(chǔ)在4Κ塊內(nèi),以便減少對(duì)存儲(chǔ)空間的浪費(fèi)。然而,在某些實(shí)施例中,當(dāng)讀取4Κ塊時(shí)可能發(fā)生讀取錯(cuò)誤,導(dǎo)致該讀取錯(cuò)誤的512字節(jié)塊被盤驅(qū)動(dòng)器破壞性寫入。盤驅(qū)動(dòng)器可以發(fā)送通知給存儲(chǔ)控制器,指示在該盤驅(qū)動(dòng)器內(nèi)已經(jīng)發(fā)生了破壞性寫入。從存儲(chǔ)控制器保持的鏡像數(shù)據(jù)恢復(fù)被破壞的數(shù)據(jù)。[0053]應(yīng)注意,主機(jī)不必要知道JBOD或其它盤配置不固有地支持該主機(jī)所使用的塊尺寸。此外,盤配置不必要知道主機(jī)不固有地支持該盤配置用以在盤中存儲(chǔ)信息所使用的塊尺寸。
[0054]還應(yīng)注意,在某些實(shí)施例中,兩個(gè)盤控制器可以共享相同的盤。例如,在圖7中,盤控制器702和704兩者可以共享盤714a...714η。在某些實(shí)施例中,如同兩個(gè)存儲(chǔ)控制器可相互替換那樣,兩個(gè)盤控制器也可以相互替換。應(yīng)注意,在某些替代實(shí)施例中,由盤驅(qū)動(dòng)器所執(zhí)行的操作可以由盤控制器代替執(zhí)行。
[0055]附加實(shí)施例細(xì)節(jié)
[0056]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,在一些實(shí)施例中,本發(fā)明的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0057]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0058]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0059]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0060]可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如“C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0061]下面將參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0062]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)0
[0063]計(jì)算機(jī)程序指令也可以被加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上,以引起在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)施的處理,使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖和/或方框圖或多個(gè)方框方框中指定的功能/動(dòng)作的處理。
[0064]圖9示出根據(jù)某些實(shí)施例的、顯示了可以包括在存儲(chǔ)控制器102或盤驅(qū)動(dòng)器106a…106η之中的某些元件的框圖。系統(tǒng)900可以包括存儲(chǔ)控制器706、708、806、808或盤驅(qū)動(dòng)器106a...106η,或盤控制器702、704、802、804,并且可以包括在某些實(shí)施例中可以至少包括處理器904的電路902。系統(tǒng)900還可以包括存儲(chǔ)器906(例如,易失性存儲(chǔ)器件)和貯存器908。貯存器908可包括非易失性存儲(chǔ)器件(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、閃存、固件、可編程邏輯等)、盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器等。貯存器908可以包括內(nèi)部存儲(chǔ)設(shè)備、附接存儲(chǔ)設(shè)備和/或網(wǎng)絡(luò)可訪問(wèn)的存儲(chǔ)設(shè)備。系統(tǒng)900可以包括包含可以被加載到存儲(chǔ)器906并由處理器904或電路902執(zhí)行的代碼912的程序邏輯910。在某些實(shí)施例中,包括代碼912的程序邏輯910可以被存儲(chǔ)在貯存器908中。在某些其它實(shí)施例中,程序邏輯910可以 在電路902中實(shí)現(xiàn)。因此,雖然圖9示出程序邏輯910與其它元件分離,該程序邏輯910也可以在存儲(chǔ)器906和/或電路902中實(shí)現(xiàn)。
[0065]某些實(shí)施例可針對(duì)一種用于通過(guò)人或集成計(jì)算機(jī)可讀代碼的自動(dòng)處理將計(jì)算指令部署到計(jì)算系統(tǒng)中的方法,其中,與所述計(jì)算系統(tǒng)結(jié)合的代碼能夠執(zhí)行所描述的實(shí)施例的操作。
[0066]除非另外明確指定,術(shù)語(yǔ)“一實(shí)施例”、“實(shí)施例”、“多個(gè)實(shí)施例”、“該實(shí)施例”、“該多個(gè)實(shí)施例”、“一個(gè)或多個(gè)實(shí)施例”、“某些實(shí)施例”和“一個(gè)實(shí)施例”是指“本發(fā)明的一個(gè)或多個(gè)(但不是全部的)實(shí)施例”。
[0067]除非另外明確指定,術(shù)語(yǔ)“包括”、“包含”、“具有”及其各種變型是指“包括但不限于”。
[0068]除非另外明確指定,所列舉的項(xiàng)目列表并不意味著任何或全部項(xiàng)目是相互排斥的。
[0069]除非另外明確指定,術(shù)語(yǔ)“一(a)”、“一個(gè)(an)”和“該(the)”是指“一個(gè)或多個(gè)”。
[0070]除非另外明確指定,彼此通信的設(shè)備不必要持續(xù)地與彼此通信。此外,彼此通信的設(shè)備可以通過(guò)一個(gè)或多個(gè)媒介直接或間接地彼此通信。
[0071]具有彼此通信的若干組件的實(shí)施例的描述并不意味著需要所有這些組件。相反,描述多種可選組件以說(shuō)明本發(fā)明的各種可能的實(shí)施例。
[0072]此外,盡管可能以順序的次序來(lái)描述處理步驟、方法步驟、算法等,但這樣的處理、方法和算法可以被配置為以交替的次序工作。換句話說(shuō),描述的步驟的任何順序或次序并不一定指示要求以該次序執(zhí)行所述步驟。本文描述的處理的步驟可以以任何實(shí)用的次序執(zhí)行。此外,某些步驟可以被同時(shí)執(zhí)行。
[0073]當(dāng)本文描述了單個(gè)設(shè)備或物品時(shí),很顯然,可以使用多于一個(gè)的設(shè)備/物品(無(wú)論它們是否協(xié)作)來(lái)代替單個(gè)設(shè)備/物品。類似地,在本文描述多于一個(gè)的設(shè)備或物品(無(wú)論它們是否協(xié)作)的情況中,很顯然,可以使用單個(gè)設(shè)備/物品來(lái)代替多于一個(gè)的設(shè)備或物品,或者可以使用不同數(shù)量的設(shè)備/物品代替所示數(shù)量的設(shè)備或程序。設(shè)備的功能和/或特征可以可替換地由沒(méi)有被明確描述為具有此類功能/特征的一個(gè)或多個(gè)其它設(shè)備來(lái)實(shí)施。因此,本發(fā)明的其它實(shí)施例不必要包括設(shè)備本身。
[0074]可能已在附圖中示出的至少某些操作顯示某些事件以一定的次序發(fā)生。在替代實(shí)施例中,某些操作可以以不同的次序來(lái)執(zhí)行、修改或刪除。此外,可以對(duì)上述邏輯添加步驟并且仍然符合所描述的實(shí)施例。此外,本文所描述的操作可以順序地發(fā)生,或者某些操作可以并行地進(jìn)行處理。更進(jìn)一步地,操作可以由單個(gè)處理單元、或通過(guò)分布式處理單元來(lái)執(zhí)行。
[0075]已經(jīng)呈現(xiàn)了本發(fā)明的各種實(shí)施例的前述描述用于說(shuō)明和描述的目的。并非旨在窮盡或?qū)⒈景l(fā)明限制為所公開(kāi)的精確形式。根據(jù)上述教導(dǎo)許多修改和變型是可能的。意圖是,本發(fā)明的范圍不受該詳細(xì)描述的限制,而是由所附的權(quán)利要求書(shū)所限制。以上說(shuō)明、示例和數(shù)據(jù)提供了本發(fā)明的組合物的制造和使用的完整描述。由于可以在不脫離本發(fā)明的精神和范圍的情況下做出本發(fā)明的許多實(shí)施例,因此本發(fā)明存在于所附的權(quán)利要求書(shū)中。
[0076]_
[0077]*java是Oracle公司和/或其所屬公司的商標(biāo)或注冊(cè)商標(biāo)。
【權(quán)利要求】
1.一種方法,包括: 由盤驅(qū)動(dòng)器接收寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求,其中所述盤驅(qū)動(dòng)器被配置為存儲(chǔ)在尺寸上大于所述第一塊尺寸的第二塊尺寸的塊,并且其中,所述盤驅(qū)動(dòng)器經(jīng)由仿真將多個(gè)第一塊尺寸的仿真塊存儲(chǔ)在所述第二塊尺寸的每個(gè)塊中; 由所述盤驅(qū)動(dòng)器響應(yīng)于讀取在其中要經(jīng)由仿真寫入所述至少一個(gè)第一塊尺寸的塊的第二塊尺寸的所選塊而生成讀取錯(cuò)誤; 由所述盤驅(qū)動(dòng)器執(zhí)行對(duì)導(dǎo)致生成所述讀取錯(cuò)誤的第一塊尺寸的所選仿真塊的破壞性與入; 由所述盤驅(qū)動(dòng)器在第二塊尺寸的所選塊中寫入所述至少一個(gè)第一塊尺寸的塊;以及 由所述盤驅(qū)動(dòng)器發(fā)送通知以指示所述破壞性寫入的執(zhí)行。
2.根據(jù)權(quán)利要求1所述的方法,其中: 所述第一塊尺寸是512字節(jié);以及 所述第二塊尺寸是4千字節(jié)。
3.根據(jù)權(quán)利要求1所述的方法,其中所述通知被異步地發(fā)送給控制器,所述方法還包括: 由所述盤驅(qū)動(dòng)器保持指示在其上執(zhí)行了所述破壞性寫入的那些仿真塊的指示器,其中,即使響應(yīng)于正在生成所述讀取錯(cuò)誤,所述寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求也被滿足。
4.根據(jù)權(quán)利要求1所述的方法,所述方法還包括: 由控制器接收由所述盤驅(qū)動(dòng)器發(fā)送的通知;以及 由所述控制器通過(guò)復(fù)制來(lái)自對(duì)應(yīng)于所選仿真塊中的數(shù)據(jù)的鏡像數(shù)據(jù)的數(shù)據(jù)來(lái)恢復(fù)在其上被所述盤驅(qū)動(dòng)器執(zhí)行了破壞性寫入的所選仿真塊中的數(shù)據(jù),其中所述鏡像數(shù)據(jù)經(jīng)由所述控制器保持。
5.根據(jù)權(quán)利要求1所述的方法,其中: 所述盤驅(qū)動(dòng)器耦接到鏡像所述盤驅(qū)動(dòng)器中存儲(chǔ)的數(shù)據(jù)的控制器; 由所述控制器從主機(jī)接收所述請(qǐng)求,所述主機(jī)的操作系統(tǒng)被配置成訪問(wèn)配置為512字節(jié)的第一塊尺寸的塊;并且 所述盤驅(qū)動(dòng)器保持的盤對(duì)于浪費(fèi)的存儲(chǔ)空間具有較小的容忍度,對(duì)于用于執(zhí)行讀取和寫入操作的增加的處理時(shí)間具有較大的容忍度。
6.一種盤驅(qū)動(dòng)器,包括: 存儲(chǔ)器;以及 耦接到所述存儲(chǔ)器的處理器,其中所述處理器執(zhí)行操作,所述操作包括: 接收寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求,其中所述盤驅(qū)動(dòng)器被配置為存儲(chǔ)在尺寸上大于所述第一塊尺寸的第二塊尺寸的塊,并且其中,所述盤驅(qū)動(dòng)器經(jīng)由仿真將多個(gè)第一塊尺寸的仿真塊存儲(chǔ)在所述第二塊尺寸的每個(gè)塊中; 響應(yīng)于讀取在其中要經(jīng)由仿真寫入所述至少一個(gè)第一塊尺寸的塊的第二塊尺寸的所選塊而生成讀取錯(cuò)誤; 執(zhí)行對(duì)導(dǎo)致生成所述讀取錯(cuò)誤的第一塊尺寸的所選仿真塊的破壞性寫入; 在第二塊尺寸的所選塊中寫入所述至少一個(gè)第一塊尺寸的塊;以及發(fā)送通知以指示所述破壞性寫入的執(zhí)行。
7.根據(jù)權(quán)利要求6所述的盤驅(qū)動(dòng)器,其中: 所述第一塊尺寸是512字節(jié);以及 所述第二塊尺寸是4千字節(jié)。
8.根據(jù)權(quán)利要求6所述的盤驅(qū)動(dòng)器,其中所述通知被異步地發(fā)送給控制器,所述操作還包括: 保持指示在其上執(zhí)行了所述破壞性寫入的那些仿真塊的指示器,其中,即使響應(yīng)于正在生成所述讀取錯(cuò)誤,所述寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求也被滿足。
9.根據(jù)權(quán)利要求6所述的盤驅(qū)動(dòng)器,其中控制器耦接到所述盤驅(qū)動(dòng)器,其中所述控制器接收由所述盤驅(qū)動(dòng)器發(fā)送的通知,并且其中所述控制器通過(guò)復(fù)制來(lái)自對(duì)應(yīng)于所選仿真塊中的數(shù)據(jù)的鏡像數(shù)據(jù)的數(shù)據(jù)來(lái)恢復(fù)在其上被所述盤驅(qū)動(dòng)器執(zhí)行了破壞性寫入的所選仿真塊中的數(shù)據(jù),其中所述鏡像數(shù)據(jù)經(jīng)由所述控制器保持。
10.根據(jù) 權(quán)利要求6所述的盤驅(qū)動(dòng)器,其中: 所述盤驅(qū)動(dòng)器耦接到鏡像所述盤驅(qū)動(dòng)器中存儲(chǔ)的數(shù)據(jù)的控制器; 由所述控制器從主機(jī)接收所述請(qǐng)求,所述主機(jī)的操作系統(tǒng)被配置成訪問(wèn)配置為512字節(jié)的第一塊尺寸的塊;并且 所述盤驅(qū)動(dòng)器保持的盤對(duì)于浪費(fèi)的存儲(chǔ)空間具有較小的容忍度,對(duì)于用于執(zhí)行讀取和寫入操作的增加的處理時(shí)間具有較大的容忍度。
11.一種系統(tǒng),包括: 控制器;以及 耦接到所述控制器的盤驅(qū)動(dòng)器,所述系統(tǒng)執(zhí)行操作,所述操作包括: 由所述盤驅(qū)動(dòng)器接收寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求,其中所述盤驅(qū)動(dòng)器被配置為存儲(chǔ)在尺寸上大于所述第一塊尺寸的第二塊尺寸的塊,并且其中,所述盤驅(qū)動(dòng)器經(jīng)由仿真將多個(gè)第一塊尺寸的仿真塊存儲(chǔ)在所述第二塊尺寸的每個(gè)塊中; 由所述盤驅(qū)動(dòng)器響應(yīng)于讀取在其中要經(jīng)由仿真寫入所述至少一個(gè)第一塊尺寸的塊的第二塊尺寸的所選塊而生成讀取錯(cuò)誤; 由所述盤驅(qū)動(dòng)器執(zhí)行對(duì)導(dǎo)致生成所述讀取錯(cuò)誤的第一塊尺寸的所選仿真塊的破壞性與入; 由所述盤驅(qū)動(dòng)器在第二塊尺寸的所選塊中寫入所述至少一個(gè)第一塊尺寸的塊;以及 由所述盤驅(qū)動(dòng)器發(fā)送通知以指示所述破壞性寫入的執(zhí)行。
12.根據(jù)權(quán)利要求9所述的系統(tǒng),其中: 所述第一塊尺寸是512字節(jié);以及 所述第二塊尺寸是4千字節(jié)。
13.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述通知被異步地發(fā)送給控制器,所述操作還包括: 由所述盤驅(qū)動(dòng)器保持指示在其上執(zhí)行了破壞性寫入的那些仿真塊的指示器,其中,即使響應(yīng)于正在生成所述讀取錯(cuò)誤,所述寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求也被滿足。
14.根據(jù)權(quán)利要求9所述的系統(tǒng),所述操作還包括: 由控制器接收由所述盤驅(qū)動(dòng)器發(fā)送的通知;以及由所述控制器通過(guò)復(fù)制來(lái)自對(duì)應(yīng)于所選仿真塊中的數(shù)據(jù)的鏡像數(shù)據(jù)的數(shù)據(jù)來(lái)恢復(fù)在其上被所述盤驅(qū)動(dòng)器執(zhí)行了破壞性寫入的所選仿真塊中的數(shù)據(jù),其中所述鏡像數(shù)據(jù)經(jīng)由所述控制器保持。
15.根據(jù)權(quán)利要求9所述的系統(tǒng),其中: 所述盤驅(qū)動(dòng)器耦接到鏡像所述盤驅(qū)動(dòng)器中存儲(chǔ)的數(shù)據(jù)的控制器; 由所述控制器從主機(jī)接收所述請(qǐng)求,所述主機(jī)的操作系統(tǒng)被配置成訪問(wèn)配置為512字節(jié)的第一塊尺寸的塊;并且 所述盤驅(qū)動(dòng)器保持的盤對(duì)于浪費(fèi)的存儲(chǔ)空間具有較小的容忍度,對(duì)于用于執(zhí)行讀取和寫入操作的增加的處理時(shí)間具有較大的容忍度。
16.一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括在其上包含計(jì)算機(jī)可讀程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀程序代碼被配置為執(zhí)行操作,所述操作包括: 由盤驅(qū)動(dòng)器接收寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求,其中所述盤驅(qū)動(dòng)器被配置為存儲(chǔ)在尺寸上大于所述第一塊尺寸的第二塊尺寸的塊,并且其中,所述盤驅(qū)動(dòng)器經(jīng)由仿真將多個(gè)第一塊尺寸的仿真塊存儲(chǔ)在所述第二塊尺寸的每個(gè)塊中; 由所述盤驅(qū)動(dòng)器響應(yīng)于讀取在其中要經(jīng)由仿真寫入所述至少一個(gè)第一塊尺寸的塊的第二塊尺寸的所選塊而生成讀取錯(cuò)誤; 由所述盤驅(qū)動(dòng)器執(zhí)行對(duì)導(dǎo)致生成所述讀取錯(cuò)誤的第一塊尺寸的所選仿真塊的破壞性與入; 由所述盤驅(qū)動(dòng)器在第二塊尺寸的所選塊中寫入所述至少一個(gè)第一塊尺寸的塊;以及 由所述盤驅(qū)動(dòng)器發(fā)送通知以指示所述破壞性寫入的執(zhí)行。
17.根據(jù)權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其中: 所述第一塊尺寸是512字節(jié);以及 所述第二塊尺寸是4千字節(jié)。
18.根據(jù)權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其中所述通知被異步地發(fā)送給控制器,該操作還包括: 由所述盤驅(qū)動(dòng)器保持指示在其上執(zhí)行了破壞性寫入的那些仿真塊的指示器,其中,即使響應(yīng)于正在生成所述讀取錯(cuò)誤,所述寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求也被滿足。
19.根據(jù)權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,所述操作還包括: 由控制器接收由所述盤驅(qū)動(dòng)器發(fā)送的通知;以及 由所述控制器通過(guò)復(fù)制來(lái)自對(duì)應(yīng)于所選仿真塊中的數(shù)據(jù)的鏡像數(shù)據(jù)的數(shù)據(jù)來(lái)恢復(fù)在其上被所述盤驅(qū)動(dòng)器執(zhí)行了破壞性寫入的所選仿真塊中的數(shù)據(jù),其中所述鏡像數(shù)據(jù)經(jīng)由所述控制器保持。
20.根據(jù)權(quán)利要求16所述的計(jì)算機(jī)程序產(chǎn)品,其中: 所述盤驅(qū)動(dòng)器耦接到鏡像所述盤驅(qū)動(dòng)器中存儲(chǔ)的數(shù)據(jù)的控制器; 由所述控制器從主機(jī)接收所述請(qǐng)求,所述主機(jī)的操作系統(tǒng)被配置成訪問(wèn)配置為512字節(jié)的第一塊尺寸的塊;并且 所述盤驅(qū)動(dòng)器保持的盤對(duì)于浪費(fèi)的存儲(chǔ)空間具有較小的容忍度,對(duì)于用于執(zhí)行讀取和寫入操作的增加的處理時(shí)間具有較大的容忍度。
21.—種部署計(jì)算基礎(chǔ)設(shè)施的方法,包括將計(jì)算機(jī)可讀代碼集成到至少盤驅(qū)動(dòng)器中,其中所述代碼至少與所述盤驅(qū)動(dòng)器結(jié)合地執(zhí)行操作,所述操作包括: 由所述盤驅(qū)動(dòng)器接收寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求,其中所述盤驅(qū)動(dòng)器被配置為存儲(chǔ)在尺寸上大于所述第一塊尺寸的第二塊尺寸的塊,并且其中,所述盤驅(qū)動(dòng)器經(jīng)由仿真將多個(gè)第一塊尺寸的仿真塊存儲(chǔ)在所述第二塊尺寸的每個(gè)塊中; 由所述盤驅(qū)動(dòng)器響應(yīng)于讀取在其中要經(jīng)由仿真寫入所述至少一個(gè)第一塊尺寸的塊的第二塊尺寸的所選塊而生成讀取錯(cuò)誤; 由所述盤驅(qū)動(dòng)器執(zhí)行對(duì)導(dǎo)致生成所述讀取錯(cuò)誤的第一塊尺寸的所選仿真塊的破壞性與入; 由所述盤驅(qū)動(dòng)器在第二塊尺寸的所選塊中寫入所述至少一個(gè)第一塊尺寸的塊;以及 由所述盤驅(qū)動(dòng)器發(fā)送通知以指示所述破壞性寫入的執(zhí)行。
22.根據(jù)權(quán)利要求21所述的部署計(jì)算基礎(chǔ)設(shè)施的方法,其中: 所述第一塊尺寸是512字節(jié);以及 所述第二塊尺寸是4千字節(jié)。
23.根據(jù)權(quán)利要求21所述的部署計(jì)算基礎(chǔ)設(shè)施的方法,其中所述通知被異步地發(fā)送給控制器,所述操作還包括: 由所述盤驅(qū)動(dòng)器保持指示在其上執(zhí)行了破壞性寫入的那些仿真塊的指示器,其中,即使響應(yīng)于正在生成所述讀取錯(cuò)誤,所述寫入至少一個(gè)第一塊尺寸的塊的請(qǐng)求也被滿足。
24.根據(jù)權(quán)利要求21所述的部署計(jì)算基礎(chǔ)設(shè)施的方法,其中控制器接收由所述盤驅(qū)動(dòng)器發(fā)送的通知,并且其中,所述控制器通過(guò)復(fù)制來(lái)自對(duì)應(yīng)于所選仿真塊中的數(shù)據(jù)的鏡像數(shù)據(jù)的數(shù)據(jù)來(lái)恢復(fù)在其上由所述盤驅(qū)動(dòng)器執(zhí)行了破壞性寫入的所選仿真塊中的數(shù)據(jù),其中所述鏡像數(shù)據(jù)經(jīng)由所述控制器保持。
25.根據(jù)權(quán)利要求21所述的部署計(jì)算基礎(chǔ)設(shè)施的方法,其中: 所述盤驅(qū)動(dòng)器耦接到鏡像所述盤驅(qū)動(dòng)器中存儲(chǔ)的數(shù)據(jù)的控制器; 由所述控制器從主機(jī)接收所述請(qǐng)求,所述主機(jī)的操作系統(tǒng)被配置成訪問(wèn)配置為512字節(jié)的第一塊尺寸的塊;并且 所述盤驅(qū)動(dòng)器保持的盤對(duì)于浪費(fèi)的存儲(chǔ)空間具有較小的容忍度,對(duì)于用于執(zhí)行讀取和寫入操作的增加的處理時(shí)間具有較大的容忍度。
【文檔編號(hào)】G06F13/00GK103748568SQ201280040303
【公開(kāi)日】2014年4月23日 申請(qǐng)日期:2012年6月28日 優(yōu)先權(quán)日:2011年8月18日
【發(fā)明者】M.T.本哈斯, 小安德魯.B.麥克內(nèi)爾 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司