專利名稱:用于提供對存儲系統的延遲維護的系統和方法
技術領域:
本發明通常涉及存儲系統維護領域。更具體地,本發明涉及提供對存儲 系統的延遲維護的方法。
背景技術:
典型的數據中心的存儲需要已經增加了 一段時間,并且預期在可預見的 未來繼續增加。即使盤驅動器的容量已經增加,但是存儲要求的增加導致在 數據中心中具有更多的盤驅動器和更多的存儲系統。
大多數存儲系統的典型服務模式是盤驅動器故障時的按需式
(on-demand)模式,使用可用的備用之一來重建故障驅動器的數據。同時, 被通知了該故障的服務工程師通常在24小時內調度訪問,以便用新的驅動器 替換故障的驅動器,該新的驅動器現在變為新的備用(在一些實現中,在將 數據從備用復制到新的驅動器以后,將新的驅動器插入陣列中,從而將備用 返回到池(pool))。對于具有若干盤驅動器(500或更多)的數據中心,在任 何時間點存在至少一個故障盤驅動器的概率相當高。
按需式維護模式對大的安裝具有以下不利影響與用于替換驅動器的服 務工程師訪問相關聯的高服務成本,以及錯誤的驅動器可能被拔出系統的可 能性。
為了減少與盤驅動器的按需式維護相關聯的成本,有時使用延遲 (deferred)維護模式。在此情況下,創建備用盤驅動器的池,使得多個備用 可用。當一個盤驅動器出故障時,使用來自池中的一個備用用于替換。如果 第二個驅動器出故障,則可以使用來自池中的另一個備用。只有在備用的數 量低于最小值時才需要服務行動。
不同于為每個單獨的驅動器故障調度訪問,服務工程師可以將多個替換 行動打包為單個訪問,并且最小化服務成本。這種方案可以工作于具有若干 盤驅動器的大型存儲系統,其中備用池可用于遍及連接到系統的所有驅動器 的替換。圖1圖示了大型存儲系統,其中這種大型存儲系統包括100- 500個驅動 器。在這種存儲系統中,可以容易地創建大的備用驅動器池,以便延遲維護 行動。各備用驅動器可以由控制器訪問,以便替換存儲系統內的已經出故障 的任何驅動器。要注意的是,圖1所示的兩個控制器典型用于主動(active) -主動配置,即,在正常條件下,兩個控制器都主動地管理驅動器,但是如果 一個控制器出故障,則另一個管理整個驅動器組,直到故障的控制器被替換。 各驅動器全部使用RAID方案配置,使得在驅動器故障時,沒有數據損失。 然而,需要將備用放入具有故障驅動器的陣列以便替代它。在故障和重建階 段期間陣列可操作,其中對應于故障驅動器的數據被重建到備用上。然而, 如果丟失了另 一個驅動器(對于只能容忍一個故障的RAID方案(如RAID 5 和RAIDl)),則將存在數據丟失。 一旦數據已經重建到備用上,則陣列能夠 容納另一個驅動器的故障。
然而,在具有若干存儲子系統的安裝中,每個存儲子系統具有有限數量 的盤驅動器,不能創建所有存儲子系統能夠使用的大的備用池,因為每個存 儲子系統只能使用直接連接的盤驅動器。這種安裝具有在這樣的環境中的應 用,其中存儲子系統因為成本考慮而缺乏可升級性或者缺乏處理大量盤驅動 器的性能。
圖2中描述了這種小的存儲系統,其只包括例如10-30個驅動器。在這 種系統中,創建大的備用池將意味著大部分驅動器將不會用于活動存儲,降 低了利用并增加了成本。
因此,需要開發一種方案,其能夠帶來對其中存在若干存儲子系統的安 裝中的延遲維護的益處,每個存儲子系統具有有限數量的盤驅動器。
無論上述引證的參考文件具有什么精確優點、特征和好處,它們中沒有 一個實現或完成本發明的目的。
發明內容
本發明提供了 一種用于延遲存儲系統的維護的基于計算機的方法,該存 儲系統包括多個存儲子系統,每個子系統包含由一組盤形成的盤陣列,每個 盤陣列^1配置為除了一個或多個凝:據分區(partition)外還具有一個或多個備 用分區,在檢測包含故障盤的故障陣列時,該方法包括以下步驟(a)將包 含所述故障盤的所述故障陣列中的數據移動到剩余陣列中的一個或多個備用分區;(b)重新配置所述故障陣列以形成沒有所述故障盤的新陣列;(c)將 數據從其它陣列中的一個或多個備用分區移動到在(b)中重新配置的沒有故 障盤的所述新陣列;(d)監視以便在全部盤陣列中的整體備用容量低于預定 閾值時標識;以及其中在超過所述預定閾值時,所述基于計算機的方法調度 用于故障盤的替換的服務訪問。本發明還提供一種實現上述方法的制造產品。
在優選實施例中,盤陣列的每個盤的備用分區大小相等。
在另一擴展實施例中,在基于所述調度訪問的故障驅動器的替換后,所 述方法還包括以下步驟(e)將每個之前的故障陣列中的數據移動到剩余陣 列的一個或多個備用分區;(f)重新配置每個之前的故障陣列以包括新替換 的盤;以及(g)將數據移動回到在(f)中的重新配置的陣列。
在另一擴展實施例中,該方法還包括將在(a)中移動的數據永久地維持 在一個或多個備用分區中的步驟。
在擴展實施例中,本發明并入可視化層,其確保移動對訪問所述盤陣列 中的數據的主機和應用是透明的。
每個盤陣列實現為RAID陣列。能夠結合本發明實現的RAID類型的具 體示例包括^旦不限于RAID 1 、 RAID 5或RAID 6
本發明還提供了 一種用于延遲對存儲系統的維護的基于計算機的方法, 其中所述基于計算機的方法包括(a)指定一組存儲子系統中的盤的子集用 作部分備用池;(b )在包括所述部分備用池的每個存儲子系統中創建盤陣列; (c)配置所述部分備用池除了數據分區外還具有備用分區;(d)在檢測包含 故障盤的故障陣列時,將故障陣列中的數據移動到遍及所述部分備用池分布 的備用存儲;(d)重新配置所述故障陣列以旁路所述故障盤;(e)將數據從 所述備用存儲的部分移動到在(d)中重新配置的陣列中;其中當整體備用容 量低于閾值時,調度服務訪問來替換全部故障驅動器。
圖1圖示大型存儲系統,其中這種大型存儲系統包括100 - 500個驅動器;
圖2圖示小型存儲系統,其中這種小型存儲系統包括10-30個驅動器;
圖3示出了使用多個小型存儲系統的安裝;
圖4圖示按照本發明教導的存儲系統的示例;
圖5圖示具有故障驅動器jl的存儲系統的示例;以及圖6圖示按照本發明教導的存儲系統中的重新配置的存儲陣列的示例。
具體實施例方式
盡管在優選實施例中圖示和描述了本發明,但是本發明可以以許多不同 配置來產生。在附圖中描繪了并且將在此詳細描述本發明的優選實施例,要 理解的是本公開要被當作本發明的原理和用于其解釋的相關功能說明的示 例,并且意圖不在于將本發明限制于圖示的實施例。本領域技術人員將預見 本發明范圍內的許多其它可能的變化。
圖3示出了使用多個小型存儲系統(現在稱為子系統,因為存儲系統包 括整個子系統組加上可視化應用)的安裝。在這種安裝中, 一個子系統上的 備用驅動器不能被另一個子系統使用,因為每個子系統只能訪問其自己的驅 動器。在這種類型的安裝中本發明將實現提供延遲維護的益處。備用容量貫 穿全部子系統分布。每個子系統可以只具有小的備用容量,也就是說等效于 單個驅動器。但是通過具有許多子系統,在邏輯意義上有效地存在許多"備 用"驅動器。現在當任何驅動器出故障時,受影響的陣列上的數據被分布到 剩余子系統的備用容量上。該陣列被重新配置以移除故障的驅動器(例如, 如果是15驅動器上的RAID 5,則其將被重新配置為14驅動器上的RAID 5 )。 在重新配置結束時,該陣列現在能夠容忍另一個驅動器故障。移出該陣列的 數據現在被移回到該陣列上。
圖4圖示按照本發明教導的存儲系統的非限制示例。在圖4中,遍及安 裝中的整個存儲子系統組(同類的)創建了多個盤陣列402、 404和406。在 該非限制示例中,盤陣列402包含盤a!、 b!、 Cl、山、e!、 f,、 gl、 h,、 h和j" 盤陣列404包含盤32、 b2、 c2、 d2、 e2、 f2、 g2、 h2、 ^和J2;并且盤陣列406
包含盤an、 bn、 Cn、 dn、 en、 fn、 gn、 hn、 in和jn。根據本發明的教導,特定驅
動器沒有被標記為備用,但是對應于要求的備用量的物理空間遍及全部陣列 分布。因此,每個陣列將不會完全利用用戶數據來包裝(pack)-將存在可 用的備用容量。圖1所示的每個驅動器中的陰影面積對應于為備用數據分配 的空間。盡管圖l描述了在盤陣列402、 404和406中的相等數量的驅動器, 但是要注意的是,驅動器的數量可以變化并且不必相等。
盡管圖4描述了每個驅動器具有備用分區(陰影面積),但是要注意的是, 可以指定該驅動器組中的子組具有存儲備用數據的備用分區。同樣,可以遍
8及驅動器的子組刪除(strip)備用數據。
在優選實施例中,給定陣列的每個驅動器(或指定驅動器的子組的每個) 中的備用分區大小相等。然而,要注意的是,如果需要的話,可以實現各驅 動器之間的備用分區的大小變化。
根據本發明的教導,當驅動器出故障時,(具有故障的驅動器的)陣列中 的數據被移到其它陣列中的可用的備用空間,從而清空原始陣列。例如,圖
5圖示了盤陣列402中的驅動器j,已經出故障的情景。盤陣列402需要被重 新配置以將故障驅動器j從其中移出。為了實現該目的,對應于盤陣列102 的數據(即,a,、 b,、 Cl、山、e,、 f,、 gl、 h,和i!中的數據)被復制到剩余 盤陣列(即,盤陣列1-404到盤陣列n-406)中的一個或多個備用分區。
當這種復制完成時,現在重新配置盤陣列402以將故障驅動器從其中移 出。圖6示出了重新配置的示例,其中從盤陣列402中移出了故障驅動器jp 并且配置的新的盤陣列具有驅動器a,、 b。 Cl、 d,、 e,、 f,、 gl、 h!和i,。
接著,移動到其它陣列中的備用空間的數據現在被移動回到原始陣列。
在一個實施例中,(對應于一個驅動器容量的)這些數據的一些可以永久 地留在其它陣列的一個或多個的備用空間中。
上面的可視化層確保移動對訪問數據的主機和應用是透明的。這種可視 化層可以以帶中(in-band)應用、作為帶外(out-of-band)應用、作為存儲 系統的部分、或以存儲(或SAN)開關實現。本發明可以結合在名為"IBM System Storage SAN Volume Controller"的書中扭克括的存儲可視化技術來實現。
當整個備用容量低于閾值時,調度服務訪問以替換安裝中的所有故障驅 動器。替換操作后,可以一次執行類似的移動以便
利用替換的驅動器清空子系統中的陣列的所有數據,
*重新配置這些陣列以包括替換驅動器,以及
將數據移動到這些陣列。
備用容量因為累積的故障盤而降低(即,遍及所有陣列的組合的備用容 量逐步用于保持已經出故障的驅動器中之前包含的數據)。
在一個實施例中,依賴于存儲設備的存儲需要,驅動器中(或指定驅動 器的子組中)的備用分區可以動態變化。
如可以從上面的要素中看到的,該方案可以給現有RAID存儲系統(具 體來說,RAID 1、 RAID 5或RAID 6系統)提供延遲維護的益處。要注意的是,本發明在存儲子系統外部,并且可以使用而不用對現有存 儲子系統進行任何改變。
根據一個實施例,本發明提供了 一種用于延遲存儲系統的維護的基于計 算機的方法,該存儲系統包括多個由一組盤形成的盤陣列,每個陣列被配置 為除了數據分區外還具有備用分區,在檢測包含故障盤的故障陣列時,該方
法包括以下步驟(a)將包含所述故障盤的所述故障陣列中的數據移動到剩 余陣列中的一個或多個備用分區;(b)重新配置所述故障陣列以形成沒有所 述故障盤的新陣列;(c)將數據從其它陣列中的一個或多個備用分區移動到 在(b)中重新配置的沒有故障盤的所述新陣列;(d)監視以便在全部盤陣列 中的整體備用容量低于預定閾值時標識;以及其中在超過所述預定閾值時, 所述基于計算機的方法調度用于故障盤的替換的服務訪問。 本發明還提供一種實現上述方法的制造產品。
在另一擴展實施例中,在基于所述調度訪問的故障驅動器的替換后,所 述方法還包括以下步驟(e)將每個之前的故障陣列中的數據移動到剩余陣 列的一個或多個備用分區;(f)重新配置每個之前的故障陣列以包括新替換 的盤;以及(g)將數據移動回到在(f)中的重新配置的陣列。
在另一擴展實施例中,該方法還包括將在(a)中移動的數據永久地維持 在一個或多個備用分區中的步驟。
在擴展實施例中,本發明并入可視化層,其確保移動對訪問所述盤陣列 中的數據的主;f幾和應用是透明的。
在優選實施例中,盤陣列的每個盤的備用分區大小相等。
每個盤陣列實現為RAID陣列。能夠結合本發明實現的RAID類型的具 體示例包括但不限于RAID 1 、 RAID 5或RAID 6
本發明還提供了 一種用于延遲對存儲系統的維護的基于計算機的方法, 其中所述基于計算機的方法包括(a)指定一組存儲子系統中的盤的子集用 作部分備用池;(b )在包括所述部分備用池的每個存儲子系統中創建盤陣列; (c)配置所述部分備用池除了數據分區外還具有備用分區;(d)在檢測包含 故障盤的故障陣列時,將故障陣列中的數據移動到遍及所述部分備用池分布 的備用存儲;(d)重新配置所述故障陣列以旁路所述故障盤;(e)將數據從 所述備用存儲的部分移動到在(d)中重新配置的陣列中;其中當整體備用容 量低于閾值時,調度服務訪問來替換全部故障驅動器。
10此外,本發明提供一種制造產品,其中包括計算機可讀程序代碼,用于 實現一個或多個模塊,實現用于對存儲子系統提供延遲維護的方法。此外, 本發明包括一種基于計算機程序代碼的產品,該產品是在其中存儲有程序代 碼的存儲介質,該程序代碼可用于指令計算機執行與本發明相關聯的任何方
法。該計算機存儲介質包括但不限于以下的任何CD-ROM、 DVD、磁帶、 光盤、硬驅動器、軟盤、鐵電存儲器、閃存、鐵磁存儲器、光存儲、電荷耦 合設備、磁或光卡、智能卡、EEPROM、 EPROM、 RAM、 ROM、 DRAM、 SRAM、 SDRAM或任何其它適當的靜態或動態存儲器或數據存儲設備。
本發明還提供一種制造產品,其包括在其中包括計算機可讀程序代碼的 計算機用戶介質,該計算機可讀程序代碼實現用于存儲系統的延遲維護的方 法,該存儲系統包括由一組盤形成的盤陣列,所述盤組中的盤的子集被配置 為除了數據分區外,還具有大小相同的備用分區,其中在檢測包含故障盤的 故障陣列時(a)計算機可讀程序代碼幫助將包含所述故障盤的所述故障陣 列中的數據移動到所述盤的子集中的一個或多個備用分區;(b)計算機可讀 程序代碼幫助重新配置所述故障陣列以形成沒有所述故障盤的新陣列;(c) 計算機可讀程序代碼幫助將數據從所述盤的子集中的一個或多個備用分區移 動到所述在(b)中的重新配置的沒有故障盤的新陣列;(d)計算機可讀程序 代碼幫助監視以便在所述備用部分中的整體備用容量低于預定閾值時標識; 以及在超過所述預定閾值時,(e)計算機可讀程序代碼幫助調度用于故障盤 的替換的服務訪問。
結論
在上面的實施例中已經示出了用于有效實現用于對存儲子系統提供延遲 維護的方法的系統和方法。經過已經示出和描述了各種優選實施例,但是將 理解的是,意圖不在于通過這種公開限制本發明,而是意圖在于覆蓋落入如 權利要求中定義的本發明的精神和范圍內的所有修改。例如,本發明不應當 受分配給備用部分的空間的百分比、陣列中的驅動器數目、軟件/程序、計算 環境、或特定計算硬件的限制。
上面的增加在各種計算環境中實現。例如,本發明可以在^^務器或其等
*々 夂乂上《々i: f /6:'l-A" c a 、t A: r a 、t 、 A: W《々i Z rH /Ur RTl 、imrri7
7入、 ;x r ,g、 ',; 、 ,p Lm丄、;八la丄、乂 -Aj""i八'"v a、 p乂匕 、,p ,h r" 、vv vv vv 、
無線web)上實現。涉及的所有程序和數據存儲在計算機存儲器中,靜態或 動態的,并且可以由用戶以以下的任何取回傳統計算機存儲、顯示器(例如,CRT)和/或硬拷貝(例如,打印)形式。本發明的程序可以由存儲系統 領域的普通技術人員實現。
權利要求
1. 一種用于延遲存儲系統的維護的基于計算機的方法,該存儲系統包括多個存儲子系統,每個存儲子系統包含由一組盤形成的盤陣列,每個盤被配置為除了一個或多個數據分區外還具有一個或多個備用分區,在檢測包含故障盤的故障陣列時,所述基于計算機的方法包括以下步驟a. 將包含所述故障盤的所述故障陣列中的數據移動到剩余陣列中的一個或多個備用分區;b. 重新配置所述故障陣列以形成沒有所述故障盤的新陣列;c. 將數據從剩余陣列中的所述一個或多個備用分區移動到在(b)中所述重新配置的沒有故障盤的所述新陣列;d. 監視以便在所述備用分區中的整體備用容量低于預定閾值時標識;以及其中在超過所述預定閾值時,所述基于計算機的方法調度用于故障盤的替換的服務訪問。
2. 如權利要求1所述的基于計算機的方法,其中所述備用分區大小相等。
3. 如權利要求1所述的基于計算機的方法,其中每個盤陣列中所述數據 分區和所述備用分區之間的比率由所述存儲系統根據存儲需要來動態改變。
4. 如權利要求1所述的基于計算機的方法,其中可視化層確保移動對訪 問所述盤陣列中的數據的主機和應用是透明的。
5. 如權利要求1所述的基于計算機的方法,其中在基于所述調度訪問的 故障驅動器的替換后,所述方法還包括以下步驟e. 將與每個之前的故障陣列相關聯的盤中的數據移動到一個或多個備 用分區;f. 重新配置所述每個之前的故障陣列以包括新替換的盤;以及g. 將數據移動回到(f)中的所述重新配置的陣列。
6. 如權利要求1所述的基于計算機的方法,其中每個所述盤陣列是RAID陣列。
7. 如權利要求6所述的基于計算機的方法,其中所述RAID陣列是以下 的任何RAID 1 、 RAID 5或RAID 6。
8. 如權利要求1所述的基于計算機的方法,其中所述基于計算機的方法還包括將(a)中的所述移動的數據永久地維持在所述一個或多個備用分區中。
9. 一種用于延遲對存儲系統的維護的基于計算機的方法,所述基于計算 才幾的方法包4舌a. 從一組盤中創建多個盤陣列;b. 指定所述盤的子組中的一組盤用作備用池,其中所述盤的子組中的每 個盤的相等部分專用于備用存儲;c. 在檢測包含故障盤的故障陣列時,將所述故障陣列中的數據移動到遍 及所述盤的子組分布的所述備用存儲;d. 重新配置所述故障陣列以旁路所述故障盤;e. 將數據從所述備用存儲移動到(d)中的所述重新配置的陣列;其中當整體備用容量低于閾值時,調度服務訪問來替換全部故障驅動器。
10. 如權利要求9所述的基于計算機的方法,其中可視化層確保(c)和 (e )中的所述移動對訪問所述盤陣列中的數據的主^L和應用是透明的。
11. 如權利要求9所述的基于計算機的方法,其中在基于所述調度訪問 的故障驅動器的替換后,所述方法還包括以下步驟f. 將之前的故障陣列中的數據移動到所述備用存儲;g. 重新配置所述每個之前的故障陣列以包括新替換的盤;以及h. 將數據移動回到(g)中的所述重新配置的陣列。
12. 如權利要求9所述的基于計算機的方法,其中所述盤陣列的每個是 RAID陣列。
13. 如權利要求12所述的基于計算機的方法,其中所述RAID陣列是以 下的任何RAID 1 、 RAID 5或RAID 6。
14. 如權利要求9所述的基于計算機的方法,其中所述基于計算機的方 法還包括將(c)中的所述移動的數據永久地維持在所述一個或多個備用分區 中。
15. —種用于延遲存儲系統的維護的計算機系統,該存儲系統包括多個 存儲子系統,每個存儲子系統包含由一組盤形成的盤陣列,每個盤被配置為 除了 一個或多個數據分區外還具有一個或多個備用分區,其中在檢測包含故 障盤的故障陣列時,所述系統包括a.幫助將包含所述故障盤的所述故障陣列中的數據移動到剩余陣列中 的一個或多個備用分區的部件;b. 幫助重新配置所述故障陣列以形成沒有所述故障盤的新陣列的部件;c. 幫助將數據從剩余陣列中的一個或多個備用分區移動到在(b)中所 述重新配置的沒有所述故障盤的新陣列的部件;d. 幫助監視以便在所述備用分區中的整體備用容量低于預定閾值時標 識的部件;以及e. 在超過所述預定閾值時,幫助調度用于故障盤的替換的服務訪問的部件。
16. 如權利要求15所述的系統,其中所述系統還包括可視化層,其確保 移動對訪問所述盤陣列中的數據的主機和應用是透明的。
17. 如權利要求15所述的系統,其中每個所述盤陣列是RAID陣列。
18. 如權利要求17所述的系統,其中所述RAID陣列是以下的任何 RAID 1 、 RAID 5或RAID 6。
19. 如權利要求15所述的系統,其中所述系統還包括幫助將(a)中的 所述移動的數據永久地維持在所述一個或多個備用分區中的計算機可讀程序 代碼。
20. 如權利要求15所述的系統,其中每個盤陣列中所述數據分區和所述 備用分區之間的比率由所述存儲系統根據存儲需要來動態改變。
21. 如權利要求15所述的系統,其中所述備用分區大小相等。
22. 如權利要求15所述的系統,其中只有所述盤組中的盤的子組被配置 來具有所述一個或多個備用分區。
全文摘要
多個盤陣列中的一組盤被配置為具有一個或多個備用分區。在檢測故障陣列中的故障盤時,該方法包括以下步驟(a)將包含所述故障盤的所述故障陣列中的數據移動到一個或多個備用分區;(b)重新配置所述故障陣列以形成沒有所述故障盤的新陣列;(c)將數據從盤組中的一個或多個備用分區移動到所述重新配置的新陣列;(d)監視以便在整體備用容量低于預定閾值時標識;以及在超過所述預定閾值時,調度用于故障盤的替換的服務訪問。
文檔編號G06F11/07GK101470640SQ20081017682
公開日2009年7月1日 申請日期2008年11月25日 優先權日2007年12月27日
發明者丹尼爾·E·波夫, 克里施納庫瑪·R·薩拉古奇, 布倫特·阿巴里, 莫哈梅德·巴尼卡澤米, 詹姆斯·L·哈夫納 申請人:國際商業機器公司