基于硬件故障分配數(shù)據(jù)的制作方法
【專(zhuān)利說(shuō)明】基于硬件故障分配數(shù)據(jù) 相關(guān)申請(qǐng)的交叉引用
[0001] 本申請(qǐng)要求均在2013年5月15日提交的第13/895,237號(hào)和第13/895,205號(hào) 共同未決美國(guó)專(zhuān)利申請(qǐng)的優(yōu)先權(quán),所述專(zhuān)利申請(qǐng)的內(nèi)容的全文以引用的方式并入本文中。 本申請(qǐng)為關(guān)于2013年5月15日提交、標(biāo)題為"通過(guò)控制數(shù)據(jù)訪問(wèn)減少干擾(REDUCING INTERFERENCE THROUGH CONTROLLED DATA ACCESS)"的第 13/895, 205 號(hào)美國(guó)專(zhuān)利申請(qǐng)的主 旨,所述專(zhuān)利申請(qǐng)的內(nèi)容的全文以引用的方式并入本文中。
【背景技術(shù)】
[0002] 數(shù)據(jù)存儲(chǔ)系統(tǒng)已進(jìn)化且繼續(xù)進(jìn)化以滿足使用其的組織的需求。除其它原因外,出 于大量數(shù)據(jù)的數(shù)據(jù)歸檔、冗余和存儲(chǔ)的目的,諸多組織例如利用數(shù)據(jù)存儲(chǔ)系統(tǒng)。.盡管現(xiàn)代 數(shù)據(jù)存儲(chǔ)系統(tǒng)具有諸多優(yōu)點(diǎn),但其含有由數(shù)據(jù)存儲(chǔ)系統(tǒng)提供者和利用其的組織需承受的固 有風(fēng)險(xiǎn)。例如,盡管已盡最大努力避免,但數(shù)據(jù)存儲(chǔ)系統(tǒng)常包括可易于起因于由各種移動(dòng)部 件(諸如旋轉(zhuǎn)磁介質(zhì))造成的系統(tǒng)振動(dòng)而導(dǎo)致過(guò)熱和/或疲勞損壞的組件。因此,數(shù)據(jù)存 儲(chǔ)系統(tǒng)中所含的數(shù)據(jù)可能易于被損壞或丟失。諸如通過(guò)適當(dāng)冗余數(shù)據(jù)存儲(chǔ)適當(dāng)?shù)亟鉀Q這些 風(fēng)險(xiǎn)對(duì)依賴(lài)于數(shù)據(jù)存儲(chǔ)系統(tǒng)的組織和服務(wù)提供者添加額外成本。 附圖簡(jiǎn)述 將參考附圖描述根據(jù)本公開(kāi)的各種實(shí)施方案,在附圖中:
[0003] 圖1示出可以實(shí)行各種實(shí)施方案的環(huán)境的說(shuō)明性實(shí)例;
[0004] 圖2示出可以實(shí)行各種實(shí)施方案的環(huán)境的說(shuō)明性實(shí)例;
[0005] 圖3示出根據(jù)至少一個(gè)實(shí)施方案的用于存儲(chǔ)數(shù)據(jù)的過(guò)程的說(shuō)明性實(shí)例;
[0006] 圖4示出含有多個(gè)多存儲(chǔ)裝置單元(諸如"集束磁盤(pán)"單元(JBOD))的數(shù)據(jù)存儲(chǔ) 系統(tǒng)機(jī)柜的說(shuō)明性實(shí)例;
[0007] 圖5示出可以在數(shù)據(jù)存儲(chǔ)機(jī)柜內(nèi)所含的多存儲(chǔ)裝置單元(諸如JB0D)的說(shuō)明性實(shí) 例;
[0008] 圖6示出可以托管數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)施的說(shuō)明性實(shí)例;
[0009] 圖7示出根據(jù)至少一個(gè)實(shí)施方案的用于存儲(chǔ)數(shù)據(jù)對(duì)象的過(guò)程的說(shuō)明性實(shí)例;
[0010] 圖8示出根據(jù)至少一個(gè)實(shí)施方案的用于追蹤數(shù)據(jù)存儲(chǔ)系統(tǒng)中的硬件故障的過(guò)程 的說(shuō)明性實(shí)例;
[0011] 圖9示出根據(jù)至少一個(gè)實(shí)施方案的用于將數(shù)據(jù)對(duì)象片段放置到數(shù)據(jù)存儲(chǔ)裝置中 的過(guò)程的說(shuō)明性實(shí)例;
[0012] 圖10示出根據(jù)至少一個(gè)實(shí)施方案的用于從數(shù)據(jù)存儲(chǔ)裝置檢索數(shù)據(jù)對(duì)象的過(guò)程的 說(shuō)明性實(shí)例;
[0013] 圖11示出根據(jù)至少一個(gè)實(shí)施方案的用于將數(shù)據(jù)對(duì)象片段放置到數(shù)據(jù)存儲(chǔ)裝置中 的過(guò)程的說(shuō)明性實(shí)例;和
[0014] 圖12示出可以實(shí)行各種實(shí)施方案的環(huán)境的說(shuō)明性實(shí)例。
【具體實(shí)施方式】
[0015] 在下文描述中,將描述各種實(shí)施方案。出于解釋的目的,闡述特定配置和詳情以便 提供對(duì)實(shí)施方案的透徹了解。然而,還將對(duì)所屬領(lǐng)域的一般技術(shù)人員明顯的是,可以在沒(méi)有 特定詳情的情況下實(shí)行實(shí)施方案。此外,熟知特征可以被省略或簡(jiǎn)化以免使所述實(shí)施方案 變模糊。
[0016] 本文中所述和所建議的技術(shù)涉及數(shù)據(jù)存儲(chǔ)和訪問(wèn)同時(shí)最小化數(shù)據(jù)丟失或損壞的 風(fēng)險(xiǎn)。在實(shí)施方案中,實(shí)體(例如,組織)諸如通過(guò)對(duì)服務(wù)的適當(dāng)配置的應(yīng)用編程接口(API) 調(diào)用來(lái)聯(lián)系服務(wù),以請(qǐng)求對(duì)數(shù)據(jù)對(duì)象的歸檔或訪問(wèn)(例如,數(shù)據(jù)對(duì)象檢索)。在實(shí)施方案 中,實(shí)體為操作數(shù)據(jù)存儲(chǔ)服務(wù)的計(jì)算資源服務(wù)提供者的客戶。在接收請(qǐng)求之后,服務(wù)提供者 可以從客戶接收數(shù)據(jù)對(duì)象,且通過(guò)使用冗余編碼算法將對(duì)象轉(zhuǎn)換成各種片段以存儲(chǔ)在系統(tǒng) 中。算法可以例如為一種將數(shù)據(jù)對(duì)象分成冗余片段使得僅一些片段需要重新編譯對(duì)象的算 法。示例性算法包括利用糾刪碼以將位序列變換成全體大于位序列的多個(gè)位序列使得多個(gè) 位序列的適當(dāng)子集適于重建位序列的算法。
[0017] 在各種實(shí)施方案中,通過(guò)使用各種網(wǎng)絡(luò)機(jī)柜促進(jìn)數(shù)據(jù)存儲(chǔ)系統(tǒng)。這些機(jī)柜含有各 種多存儲(chǔ)裝置單元(諸如JB0D),多存儲(chǔ)裝置單元轉(zhuǎn)而可以由各種存儲(chǔ)裝置(諸如利用旋 轉(zhuǎn)磁介質(zhì)(例如,磁盤(pán))的存儲(chǔ)裝置、磁帶存儲(chǔ)裝置或固態(tài)驅(qū)動(dòng)器(SSD))組成。這些存儲(chǔ) 裝置可能易于由于操作環(huán)境發(fā)生故障。例如,在存儲(chǔ)裝置利用旋轉(zhuǎn)磁介質(zhì)的情況下,每個(gè)存 儲(chǔ)裝置產(chǎn)生可以影響近距離其它存儲(chǔ)裝置的振動(dòng)。這種類(lèi)型的振動(dòng)可以導(dǎo)致磁頭碰撞(例 如,存儲(chǔ)裝置臂上的讀取/寫(xiě)入磁頭接觸旋轉(zhuǎn)磁盤(pán),從而物理地破壞一個(gè)或多個(gè)磁盤(pán))和數(shù) 據(jù)損失。存儲(chǔ)裝置還易于過(guò)熱,從而可能降低存儲(chǔ)裝置自身的使用壽命。服務(wù)提供者可以 具有關(guān)于數(shù)據(jù)存儲(chǔ)系統(tǒng)中的故障模式的信息,且使用這個(gè)信息可以嘗試減輕破壞和數(shù)據(jù)損 失的風(fēng)險(xiǎn)。重要的是,應(yīng)注意,這些故障模式不一定是已知為造成故障的模式,但如果所述 故障模式將造成故障,那么其可以是將削弱數(shù)據(jù)持久性的模式。例如,計(jì)算機(jī)資源服務(wù)提供 者可以不具有用來(lái)確定是否存在明顯數(shù)據(jù)丟失風(fēng)險(xiǎn)、是否將數(shù)據(jù)寫(xiě)入到不同存儲(chǔ)裝置中的 相同磁盤(pán)的信息,但由于起因于故障的潛在破壞,服務(wù)提供者可能想要避免這種情況。
[0018] 在各種實(shí)施方案中,服務(wù)提供者以將降低由于硬件故障的數(shù)據(jù)丟失的風(fēng)險(xiǎn)的方式 確定數(shù)據(jù)存儲(chǔ)系統(tǒng)中的片段的放置。放置可以指示數(shù)據(jù)存儲(chǔ)系統(tǒng)中的物理位置。物理位置 可以特定到服務(wù)提供者能夠控制的物理位置。例如,對(duì)于多個(gè)片段中的每個(gè)片段,放置可以 指示或以其它方式對(duì)應(yīng)于片段位置的一個(gè)或多個(gè)物理特性,諸如將存儲(chǔ)片段的地理區(qū)域、 數(shù)據(jù)中心、數(shù)據(jù)中心機(jī)房、機(jī)柜、機(jī)柜單元(例如,機(jī)柜內(nèi)的多存儲(chǔ)裝置單元)和/或存儲(chǔ)裝 置。在一些實(shí)施方案中,服務(wù)提供者可以對(duì)數(shù)據(jù)放置具有甚至更大粒度的控制,且如此,對(duì) 于多個(gè)片段中的每個(gè)片段,放置可以指示或以其它方式對(duì)應(yīng)于以下項(xiàng)的物理特性:諸如具 有旋轉(zhuǎn)磁介質(zhì)(磁盤(pán))的存儲(chǔ)裝置中的磁盤(pán)的位置、磁盤(pán)側(cè)、磁盤(pán)上的環(huán)形區(qū)域、可供存儲(chǔ) 裝置的特定磁頭訪問(wèn)的磁盤(pán)上位置和/或其它物理位置。服務(wù)提供者可以具有在被配置來(lái) 作出放置決定以減輕這個(gè)丟失的放置引擎中所闡述的特定規(guī)則。例如,服務(wù)提供者可以使 用數(shù)據(jù)存儲(chǔ)系統(tǒng)中的硬件故障來(lái)更新并入到放置引擎中的規(guī)則以避免重復(fù)這個(gè)硬件故障 和其它故障模式。
[0019] 在一些實(shí)例中,放置引擎接收用來(lái)將數(shù)據(jù)對(duì)象片段放置到數(shù)據(jù)存儲(chǔ)系統(tǒng)中的請(qǐng) 求。在放置引擎已確定第一片段的位置之后,引擎可以基于由服務(wù)提供者闡述的各種規(guī)則 選擇下一片段的數(shù)據(jù)存儲(chǔ)位置以便減輕數(shù)據(jù)丟失的風(fēng)險(xiǎn)。例如,如果后續(xù)片段的選定位置 不滿足在引擎中所闡述的規(guī)則,那么其將繼續(xù)為所述片段重選位置直到識(shí)別適當(dāng)位置為 止。此時(shí),放置引擎將移動(dòng)到下一片段,或如果沒(méi)有片段要分析,那么將所有片段放置到數(shù) 據(jù)存儲(chǔ)系統(tǒng)中。
[0020] 在各種情況下,數(shù)據(jù)存儲(chǔ)系統(tǒng)可以同時(shí)處理來(lái)自眾多客戶的眾多請(qǐng)求,或出于其 它原因(例如,垃圾收集)通??梢栽谡?qǐng)求處理期間訪問(wèn)數(shù)據(jù)存儲(chǔ)裝置。因此,在數(shù)據(jù)存儲(chǔ) 系統(tǒng)內(nèi)的存儲(chǔ)至少部分響應(yīng)于請(qǐng)求的數(shù)據(jù)的存儲(chǔ)裝置可以在由客戶作出用來(lái)訪問(wèn)或歸檔 數(shù)據(jù)對(duì)象的請(qǐng)求時(shí)進(jìn)行操作。如上述,存儲(chǔ)裝置可產(chǎn)生振動(dòng)且可能易于過(guò)熱。因此,在各種 實(shí)施方案中,服務(wù)提供者通過(guò)例如防止在歸檔或檢索過(guò)程期間透過(guò)使用放置引擎中的規(guī)則 訪問(wèn)特定存儲(chǔ)裝置來(lái)減輕數(shù)據(jù)丟失的風(fēng)險(xiǎn)。例如,如果放置引擎已建立片段將存儲(chǔ)在特定 存儲(chǔ)裝置中但相鄰存儲(chǔ)裝置在使用中,那么引擎可以在將片段放置在數(shù)據(jù)存儲(chǔ)裝置中之前 確定任何其它片段的位置。在數(shù)據(jù)檢索的實(shí)例中,數(shù)據(jù)存儲(chǔ)系統(tǒng)可以執(zhí)行相似于上述操作 的操作,但相反可以選擇僅獲得重新編譯數(shù)據(jù)對(duì)象所要的必需片段。在一些實(shí)施方案中,讀 取、寫(xiě)入和/或刪除操作可以被延遲直到數(shù)據(jù)存儲(chǔ)系統(tǒng)的狀態(tài)使得允許執(zhí)行讀取、寫(xiě)入和/ 或刪除操作以降低故障風(fēng)險(xiǎn)為止。例如,如果數(shù)據(jù)將寫(xiě)入到特定存儲(chǔ)裝置、從特定存儲(chǔ)裝置 讀取或從特定存儲(chǔ)裝置刪除,那么寫(xiě)入、讀取或刪除數(shù)據(jù)可以被延遲直到任何相鄰存儲(chǔ)裝 置處于閑置狀態(tài)為止
[0021] 以此方式,數(shù)據(jù)存儲(chǔ)系統(tǒng)中的數(shù)據(jù)較不易于由于系統(tǒng)內(nèi)的硬件故障而發(fā)生丟失。 此外,本文中所述和所建議的技術(shù)促進(jìn)額外技術(shù)優(yōu)點(diǎn)。例如,在一些實(shí)施方案中,因?yàn)榭梢?在任何給出時(shí)間基于操作環(huán)境限制對(duì)某些存儲(chǔ)裝置的訪問(wèn),所以數(shù)據(jù)存儲(chǔ)系統(tǒng)內(nèi)所含的硬 件較不易于發(fā)生疲勞破壞且因此可以降低服務(wù)提供者的維護(hù)成本。這轉(zhuǎn)而可以導(dǎo)致客戶成 本的降低。還通過(guò)本文中所述的各種技術(shù)啟用額外用途。
[0022] 圖1示出可以實(shí)行各種實(shí)施方案的環(huán)境100的說(shuō)明性實(shí)例。在環(huán)境100中,客戶 102將數(shù)據(jù)對(duì)象104(例如,這可以包括由一個(gè)或多個(gè)位組成的文件,諸如但不限于可執(zhí)行 程序、圖和文本文檔)傳輸?shù)接?jì)算資源服務(wù)提供者以存儲(chǔ)在數(shù)據(jù)存儲(chǔ)系統(tǒng)中??蛻艉陀?jì)算 資源服務(wù)提供者可以是組織實(shí)體,諸如公司或其它組織。應(yīng)注意,雖然本公開(kāi)論述與計(jì)算資 源服務(wù)提供者進(jìn)行通信的客戶,但除非上下文另有清楚說(shuō)明,否則這些通信可以經(jīng)由通過(guò) 使用一個(gè)或多個(gè)通信協(xié)議(諸如下述通信協(xié)議)的組織操作和/或代表組織操作的裝置 (例如,計(jì)算機(jī)系統(tǒng))發(fā)生。
[0023] 通過(guò)冗余編碼引擎106處理數(shù)據(jù)對(duì)象104。冗余編碼引擎106可以利用一種或多 種算法以將由客戶102提供的數(shù)據(jù)對(duì)象轉(zhuǎn)換成眾多數(shù)據(jù)片段108。數(shù)據(jù)存儲(chǔ)系統(tǒng)可以維護(hù) 使父數(shù)據(jù)對(duì)象104的識(shí)別符與數(shù)據(jù)片段108的數(shù)據(jù)存儲(chǔ)位置相關(guān)聯(lián)的數(shù)據(jù)庫(kù)。此外,數(shù)據(jù) 片段108可以被編碼來(lái)在系統(tǒng)內(nèi)進(jìn)行追蹤。例如,可以在以后某個(gè)時(shí)間用父數(shù)據(jù)對(duì)象104 的名稱(chēng)和重新編譯數(shù)據(jù)對(duì)象所要的片段的數(shù)量對(duì)數(shù)據(jù)片段108進(jìn)行編碼。
[0024] 隨后,如圖1中所示,通過(guò)確定數(shù)據(jù)存儲(chǔ)系統(tǒng)中的每個(gè)數(shù)據(jù)片段108的位置的放置 引擎110處理數(shù)據(jù)片段108。放置引擎110可以是被配置來(lái)應(yīng)用規(guī)則集以將數(shù)據(jù)片段108 放置到數(shù)據(jù)存儲(chǔ)系統(tǒng)中的存儲(chǔ)裝置(例如,驅(qū)動(dòng)器)112中的計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)系統(tǒng)組 件。放置引擎110可以使用由服務(wù)提供者指定的各種規(guī)則來(lái)確定適當(dāng)位置。一旦已指定每 個(gè)數(shù)據(jù)片段108的位置,那么將數(shù)據(jù)片段108傳送到對(duì)應(yīng)存儲(chǔ)裝置112以便存儲(chǔ)。
[0025] 存儲(chǔ)裝置112可以由旋轉(zhuǎn)磁介質(zhì)、磁帶驅(qū)動(dòng)器、SSD或任何其它形式的數(shù)據(jù)存儲(chǔ)裝 置組成。數(shù)據(jù)片段108可以駐留在這些存儲(chǔ)裝置112中直到客戶102將用來(lái)修改數(shù)據(jù)對(duì)象 104的請(qǐng)求提供到服務(wù)提供者時(shí)為止。例如,客戶102可以請(qǐng)求刪除、取代或重寫(xiě)數(shù)據(jù)對(duì)象 104。在這個(gè)實(shí)例中,服務(wù)提供者將訪問(wèn)含有數(shù)據(jù)對(duì)象108的存儲(chǔ)裝置112且遵從客戶請(qǐng)求。
[0026] 圖2示出可以實(shí)行本公開(kāi)的各種實(shí)施方案的環(huán)境200的說(shuō)明性實(shí)例。圖2中所示 的環(huán)境200可以包括諸如上文結(jié)合圖1所述的組件的組件。例如,圖2中的環(huán)境200包括 客戶202和計(jì)算資源服務(wù)提供者206。可以諸如上文結(jié)合圖1所述般配置客戶202和計(jì)算 資源服務(wù)提供者206。如圖2中所示