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