説明

データ記憶ライブラリのための重複排除プロトコルを選択する装置および方法

【課題】
RAIDアレイとして構成された複数個のデータ記憶装置を含むデータ記憶ライブラリに対する重複排除プロトコルを選択する方法を提供する。
【解決手段】
本方法は、正規の重複排除プロトコル、RAID障害対応の重複排除プロトコル、および複数記憶装置障害対応の重複排除プロトコルを設定する。本方法は、複数個のインターリーブしたデータ・ブロックを含むホスト・データを受け取る。システムが如何なる記憶装置障害もなく作動している場合、本方法は正規の重複排除プロトコルを使用してホスト・データを処理する。システムが記憶装置障害を生じたまま作動している場合、本方法はRAID障害対応の重複排除プロトコルを使用してホスト・データを処理する。システムが複数記憶装置障害を生じたまま作動している場合、本方法は複数記憶装置障害対応の重複排除プロトコルを使用してホスト・データを処理する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ記憶ライブラリのための重複排除(deduplication)プロトコルを選択する装置および方法に関する。
【背景技術】
【0002】
コンピュータ・システムは情報を生成する。複数のデータ記憶媒体を使用して、そのような情報を格納することが知られている。新磁気ディスク制御機構(RAID)構成では、耐障害性およびデータ・アクセス性能の改善を提供するために、情報はデータ記憶媒体のアレイに格納される。RAIDは、特殊なハードウェアまたはソフトウェアのどちらかを使用することにより、複数の物理データ記憶媒体を結合して単一の論理ユニットにしている。
【0003】
RAID3、4、5、または6アレイ構成では、「データ・ストライピング」として知られているプロセスが、パリティ・データ、即ち、コード化冗長(encoded redundant)情報と組み合わせて使用される。RAID6では、列ストライプおよび対角ストライプの両方が使用され、二重冗長のためには1つのパリティ・セットが各列ストライプに関連付けられ、別のパリティ・セットが各対角ストライプに関連付けられる。RAID6では、列パリティが単一の列パリティ記憶媒体に集中され、対角パリティが異なる単一の対角パリティ記憶媒体に集中され得る。或いは、列および対角パリティがアレイにおけるすべてのデータ記憶媒体にわたって分布され得る。各RAIDストライプは、所定数の連続した論理的ブロック・アレイを含む。
【0004】
データをストライプすることおよびアレイにおけるすべてのドライブにわたってパリティを分布させることにより、単一のドライブに対する一定のアクセスを最小にすることで最適の性能が実現される。RAID6アレイ構成における1つのドライブが障害を生じる場合、その障害のあるドライブに書込まれたデータは残りのドライブにおけるパリティ・データを使用して再構築され得る。アレイがオンライン予備ドライブにより構成される場合、障害のあるドライブが検知されたとき、RAIDの再構築が自動的に始まる。アレイが予備ドライブでもって構成されない場合、RAIDの再構築は、障害のあるドライブが交換された後に始まる。
【0005】
失われたデータを再構築するために、失われた各ストライプがアレイにおける残りのドライブから読取られる。失われたストライプは、RAIDコントローラXORエンジンによって遂行される排他的OR(XOR)オペレーションを使用して回復される。XORエンジンがその失われたストライプを回復した後、その回復したストライプは置換ドライブまたはオンライン予備ドライブに書込まれる。RAIDレベル3、4、および5に関しては、再構築プロセスは、アレイにおけるオプショナル・ドライブからの(N−1)個の読取り、及び置換ドライブまたはオンライン予備ドライブへの単一の書込みを含む。ストライプが完全に回復するとき、再構築プロセスは次の失われたストライプを回復させように進行する。RAIDレベル6の下での二重障害に関しては、列ストライプおよび対角ストライプの両方が、2つの予備ドライブに再構築されるドライブ・データを構成するために使用される。
【0006】
再構築プロセス中、アレイはユーザにとってアクセス可能のままである。RAIDコントローラは、ホスト入出力要求を処理するように、およびRAID再構築を処理するようにシステム・リソースを割振らなければならない。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、RAIDアレイとして構成された複数個のデータ記憶装置を含むデータ記憶ライブラリのための重複排除プロトコルを選択する方法を提供することにある。
【課題を解決するための手段】
【0008】
本発明の方法は、正規の重複排除プロトコル、RAID障害対応の重複排除プロトコル、および複数記憶装置障害対応の重複排除プロトコルを設定する。本方法は、複数のインターリーブしたデータ・ブロックを含むホスト・データを受け取る。システムが如何なる記憶装置障害もなく作動している場合、本方法は正規の重複排除プロトコルを使用してホスト・データを処理する。システムが1つの記憶装置障害を生じたまま作動している場合、本方法はRAID障害対応の重複排除プロトコルを使用してホスト・データを処理する。システムが複数記憶装置障害を生じたまま作動している場合、本方法は複数記憶装置障害対応の重複排除プロトコルを使用してホスト・データを処理する。
【0009】
或る実施例では、本方法は重複排除プロトコルを動的に設定する。これらの実施例では、重複排除プロトコルは、障害のあるデータ記憶装置の数、実際のRAID再構築率、最小RAID再構築率閾値、および最大RAID再構築率閾値の関数である。
【図面の簡単な説明】
【0010】
【図1】本発明の実施例によるデータ記憶装置システムの1つの実施例を示すブロック図である。
【図2】ファイバ・チャンネル・アービトレート型ループを使用して複数個のデータ記憶媒体とコミュニケーションしている1つのRAIDコントローラを示すブロック図である。
【図3】二重ファイバ・チャンネル・アービトレート型ループを使用して、複数個のデータ記憶媒体とコミュニケーションしている2つのRAIDコントローラを示すブロック図である。
【図4】本発明の第1実施例による方法におけるステップを要約したフローチャートである。
【図5】本発明の第2実施例による方法におけるステップを要約したフローチャートである。
【図6】第2実施例における追加のステップを要約したフローチャートである。
【発明を実施するための形態】
【0011】
本発明は、図面を参照しながら好適な実施例に関する以下の記述において説明される。図面では、同じ参照番号は同じまたは同様の要素を表わす。本明細書を通して「1つの実施例」、「或る実施例」、または同様の用語の引用は、その実施例に関連して記述された特定の特徴、構造、または特性が本発明の少なくとも1つの実施例に含まれるということを意味する。従って、本明細書を通しての「1つの実施例における」、「或る実施例における」という語句および同様の用語の出現は、すべて同じ実施例を指し得るが、必ずしもそうではないことがある。
【0012】
本発明の記述された特徴、構造、または特性は、1つまたは複数の実施例において任意の適切な方法で組み合わされてもよい。以下の説明では、本発明の実施例の十分な理解を与えるために、多数の特定の細部が詳述される。しかし、本発明が、1つまたは複数の特定の詳述がなくても、他の方法、コンポーネント、材料等を用いて実施され得るということは当業者には明らかであろう。別の実施例では、本発明の諸局面を不明瞭にすることを回避するために、周知の構造、材料、またはオペレーションは詳細には図示または記述されない。
【0013】
図1の実施例では、データ処理システム100は、RAIDコントローラ120、データ記憶媒体130、140、150、および160を含む。図1の実施例では、RAIDコントローラ120は、I/Oプロトコル132、142、152、および162を介して、それぞれ、データ記憶媒体130、140、150、および160とコミュニケーションを行う。I/Oプロトコル132、142、152、および162は、ファイバ・チャネル・ループ、SCSI(Small Computer System Interface)、iSCSI(Internet SCSI)、SAS(Serial Attach SCSI)、Fiber Channel、SCSI over Fiber Channel、Ethernet、FiberChannel over Ethernet、Infiniband、およびSATA(Serial ATA)を、それに限定することなく含む任意の種類のI/Oプロトコルを含み得る。
【0014】
「データ記憶媒体」は、本明細書では、情報記憶媒体に情報を書込むためにおよびそこから情報を読取るために必要なハードウェア、ファームウェア、および/またはソフトウェアと結合したそのような情報記憶媒体を意味する。或る実施例では、情報記憶媒体は、磁気ディスク、磁気テープ等のような磁気情報記憶媒体を、それらに限定することなく含む。或る実施例では、情報記憶媒体は、CD、DVD(Digital Versatile Disk)、HD−DVD(High Definition DVD)、BD(Blue-Ray Disk)等のような光学的情報記憶媒体を、それらに限定することなく含む。或る実施例では、情報記憶媒体は、PROM、EPROM、EEPROM、Flash PROM、コンパクトフラッシュ、スマートメディア等のような電子情報記憶媒体を、それらに限定することなく含む。或る実施例では、情報記憶媒体はホログラフィ情報記憶媒体を含む。
【0015】
更に、図1の実施例では、本明細書におけるRAIDコントローラ120は、ホスト・コンピュータ102、104、および106とのコミュニケーションを行う。一般的なこととして、ホスト・コンピュータ102、104、および106の各々は、メインフレーム、パーソナル・コンピュータ、ワークステーション、およびそれらの組合せのようなコンピューティング・システムを含み、それの Windows、AIX、Unix、MVS、LINUX 等のようなオペレーティング・システムを内蔵する。(Windows はマイクロソフト社の商標であり、AIX および MVS はIBM社の商標であり、Unix は、The Open Group を介して排他的にライセンスされた商標である。The Open Group および LINUX は Linus Torvald の商標である)。或る実施例では、1つまたは複数のホスト・コンピュータ102、104、および/または106は、更に、ストレージ管理プログラムを含む。或る実施例では、そのストレージ管理プログラムは、IBM MVS オペレーティング・システムに実装されたIBM DFSMS のような、データ記憶装置および検索システムへのおよびそれらからのデータの転送を管理する分野において知られているストレージ管理タイプのプログラムの機能を、それに限定することなく含み得る。
【0016】
図1の実施例では、本明細書におけるRAIDコントローラ120は、プロセッサ128、XORエンジン129、コンピュータ可読媒体121、コンピュータ可読媒体121に書込まれたマイクロコード122、およびコンピュータ可読媒体121に書込まれた命令124を含む。プロセッサ128は、RAIDコントローラ120を作動するためにマイクロコード122を利用する。図1の実施例では、RAIDコントローラ120は更に再構築ビットマップ126を含む。その再構築ビットマップ126はN個のインディケータを含み、各インディケータは異なるデータ・ストライプに関連付けられる。i番目のインディケータが第1の値にセットされる場合には、その関連するデータ・ストライプは再構築されてなく、i番目のインディケータが第2の値にセットされる場合には、その関連するデータ・ストライプは再構築されている。なお、iは、1よりも小さいかまたは1に等しく、Nよりも大きいかまたはNに等しい。
【0017】
例えば、データの重複排除のような、しかもそれに限定されない、1つまたは複数のホスト・コンピュータから受け取られたデータに関連した入出力(I/O)オペレーションの処理に加えて、プロセッサ128は、例えば、パリティのチェックおよび認証、RAID再構築、および他の「ハウスキーピング」作業のような、しかもそれに限定されない、バックグラウンド・オペレーションも遂行する。或る実施例では、プロセッサ128は、データの重複排除およびRAID再構築の間でプロセッサ・リソースの割振りのような、しかもそれに限定されない、システム・リソースの割振りを行わなければならない。
【0018】
図1の実施例では、ホスト・コンピュータ102、104、および106は、それぞれ、I/Oプロトコル103、105、および107を利用してファブリック110に接続される。I/Oプロトコル103、105、および107は、ファブリック110との間で情報を転送するために、任意のタイプのI/Oプロトコル、例えば、Fiber Channel(FC)ループ、ファブリック110への直接接続、またはホスト・コンピュータ102、104、および106によって使用される1つまたは複数個の信号線であってもよい。
【0019】
或る実施例では、ファブリック110は、例えば、1つまたは複数個のFCスイッチ115を含む。或る実施例では、それらの1つまたは複数個のスイッチ115は、1つまたは複数個の一般的なルータ・スイッチを含む。図1の実施例では、1つまたは複数個のスイッチ115は、ホスト・コンピュータ102、104、および106を、I/Oプロトコル117を介してRAIDコントローラ120に相互接続する。I/Oプロトコル117は、任意のタイプの入出力インターフェース、例えば、Fibre Channel、Infiniband、Gigabit Ethernet、TCP/IP、iSCSI、SCSI I/O インターフェース、またはFCスイッチによって使用される1つまたは複数個の信号線を含み、RAIDコントローラ120との間で及びその後はデータ記憶媒体130、140、150、および160との間で情報を転送し得る。別の実施例では、例えば、ホスト・コンピュータ102、104、および106のような、しかもそれらに限定されない、1つまたは複数個のホスト・コンピュータが、I/Oプロトコル103、105、および107を使用して、RAIDコントローラ120と直接にコミュニケーションを行う。
【0020】
図2の実施例では、本発明のRAIDコントローラ120は、スイッチのファイバ・チャネル・アービトレーテッド(FC−AL)ループを使用して、データ記憶媒体130、140、150、および160とコミュニケーションを行う。なお、コントローラ120、並びに、媒体130、140、150、および160は、情報記憶および検索システム200内に配される。当業者には明らかなように、情報記憶および検索システム200は、更に、1つまたは複数個のホスト・アダプタ、1つまたは複数個の装置アダプタ、データ・キャッシュ、不揮発性記憶装置等のような、しかもそれに限定されない、追加の要素を含む。図2の実施例は、ファイバ・チャネル・ネットワークまたは装置を使用するように本発明を限定するものと解されるべきではない。別の実施例では、SAS装置および/またはSATA装置を限定としてではなく含む他のネットワーク・トポロジおよび装置が利用される。
【0021】
図3の実施例では、本発明の情報記憶および検索システム202は、RAIDコントローラ120AおよびRAIDコントローラ120Bが2つのFC−ALループによって相互接続されるスイッチの二重FC−ALループを含む。各FC−ALループは、ローカル・コントローラ210、220、230、240、250、および260のような1つまたは複数個のローカル・コントローラを含む。当業者には明らかなように、情報記憶および検索システム200は、更に、1つまたは複数個のホスト・アダプタ、1つまたは複数個の装置アダプタ、データ・キャッシュ、不揮発性記憶装置等のような、しかもそれらに限定されない、追加の要素を含む。図3の実施例では、各RAIDコントローラは、複数個の第1データ記憶媒体270、複数個の第2データ記憶媒体280、および複数個の第3データ記憶媒体290とコミュニケーションを行う。
【0022】
図3の実施例は、ファイバ・チャネル・ネットワークまたは装置の使用に本発明を限定するものと解されるべきではない。図3の実施例において、2つのFC−ALループを詳説したものも本発明の1つの実施例である。別の実施例では、SAS装置および/またはSATA装置を限定ではなく含む他のネットワーク・トポロジおよび装置が利用される。
【0023】
当業者には明らかなように、データ重複排除は、冗長なデータを除去するためのプロセスを含む。重複排除プロセスでは、重複データが削除され、保存されるべきデータのコピーを1つだけ残す。或る実施例では、それまでに必要とされたすべてのデータの指標が保持される。重複排除は、唯一無二のデータだけが保存されるので、RAIDアレイの記憶機能を強化することができる。
【0024】
データ重複排除は、一般に、ファイル・レベルまたはデータ・ブロック・レベルで操作することができる。ファイル・レベルの重複排除は重複ファイルを除去するが、これは重複排除の真に効率的な手段ではない。ブロック・レベルの重複排除はファイル内を見て、各ブロックまたはビットの唯一無二の反復を保存する。データの各チャンクが、MD5またはSHA−1のようなハッシュ・アルゴリズムを使用して処理される。このプロセスは、その後指標として格納される各断片の一意的な番号を生成する。
【0025】
ファイルが更新される場合、その変更されたデータだけが保存される。即ち、ドキュメントまたはプレゼンテーションのうちの数バイトしか変更されない場合、その変更されたブロックまたはバイトだけが保存され、変更は完全に新しいファイルを構成するものではない。従って、ブロックの重複排除は、ファイルの重複排除より多くの記憶空間を節約する。しかし、ブロックの重複排除は、より多くのプロセッサ資源を必要とする。
【0026】
RAID再構築中に、本発明のRAIDコントローラは、RAID再構築とデータの重複排除との間で処理資源を割振る。図4は、RAID再構築を行うと同時にデータの重複排除プロトコルを選択するための本発明の方法を要約する。図4を参照すると、ステップ310において、その方法は、RAIDコントローラおよびRAIDアレイを含むデータ記憶システムを提供する。
【0027】
ステップ315において、その方法は正規の重複排除プロトコルを設定する。或る実施例では、ステップ315の正規の重複排除プロトコルは、1つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの約90パーセント乃至100パーセントを重複排除する。或る実施例では、ステップ315の正規の重複排除プロトコルは、1つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの100パーセントを重複排除する。
【0028】
或る実施例では、ステップ310のデータ記憶システムの製造者がステップ315を遂行する。或る実施例では、ステップ310のデータ記憶システムの所有者および/またはオペレータがステップ315を遂行する。或る実施例では、ステップ310のデータ記憶システムと相互接続されたホスト・コンピュータがステップ315を遂行する。
【0029】
ステップ320において、その方法はRAID障害対応の重複排除プロトコルを設定する。本明細書では、「RAID障害」は、RAIDアレイとして構成された1つのデータ記憶装置の障害を意味する。或る実施例では、ステップ320のRAID障害対応の重複排除プロトコルは、1つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの約40%乃至60パーセントを重複排除する。或る実施例では、ステップ320のRAID障害対応の重複排除プロトコルは、1つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの約50パーセントを重複排除する。
【0030】
或る実施例では、ステップ310のデータ記憶装置システムの製造者がステップ320を遂行する。或る実施例では、ステップ310のデータ記憶システムの所有者および/またはオペレータがステップ320を遂行する。或る実施例では、ステップ310のデータ記憶システムと相互接続されたホスト・コンピュータがステップ320を遂行する。
【0031】
ステップ325において、本方法は、複数装置障害対応の重複排除プロトコルを設定する。或る実施例では、ステップ325の複数装置障害対応の重複排除プロトコルが、1つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの約15パーセント乃至約35パーセントを重複排除する。或る実施例では、ステップ325の複数装置障害対応の重複排除プロトコルが、1つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの約25パーセントを重複排除する。
【0032】
或る実施例では、ステップ310のデータ記憶システムの製造者がステップ325を遂行する。或る実施例では、ステップ310のデータ記憶システムの所有者および/またはオペレータがステップ325を遂行する。或る実施例では、ステップ310のデータ記憶システムと相互接続されたホスト・コンピュータがステップ325を遂行する。
【0033】
ステップ330において、本方法は、複数個のインターリーブしたデータ・ブロックを含むホスト・データを提供する。或る実施例では、ステップ330のデータがRAIDコントローラによって受け取られる。或る実施例では、ステップ330はホスト・コンピュータによって遂行される。
【0034】
ステップ335において、本方法は、ステップ310のデータ記憶システムがRAID障害を生じたまま作動しているかどうか、即ち、データ記憶装置の障害が検出されたかどうかを決定する。
【0035】
ステップ335において、本方法は、ステップ310のデータ記憶システムがRAID障害を生じたまま作動してはいないということ決定し、しかる後、本方法はステップ335からステップ345に移行する。ステップ345では、本方法は、ステップ315の正規の重複排除プロトコルを使用してステップ330のホスト・データを処理する。或る実施例では、ステップ345はRAIDコントローラによって遂行される。或る実施例では、ステップ345はホスト・コンピュータによって遂行される。
【0036】
ステップ355において、本方法は、更なるホスト・データが受け取られたかどうかを判断する。或る実施例では、ステップ355はRAIDコントローラによって遂行される。或る実施例では、ステップ355はホスト・コンピュータによって遂行される。
【0037】
ステップ355において、本方法が、如何なる更なるホスト・データも受け取られなかったということを判断する場合、本方法はステップ355からステップ370に移行し、終了する。一方、更なるホスト・データが受け取られたということを、本方法がステップ355において判断する場合、本方法はステップ355からステップ335に移行し、上述のように継続する。
【0038】
ステップ310のデータ記憶システムがRAID障害を生じたまま作動しているということを、本方法がステップ335で判断する場合、本方法は、ステップ335からステップ340に移行する。ステップ340において、本法は、ステップ310のデータ記憶システムが複数データ記憶装置障害を生じたまま作動しているかどうかを判断する。或る実施例では、ステップ340はRAIDコントローラによって遂行される。或る実施例では、ステップ340はホスト・コンピュータによって遂行される。
【0039】
ステップ310のデータ記憶システムが複数データ記憶装置障害を生じたまま作動していないということを、本方法がステップ340で判断する場合、本方法は、ステップ340からステップ350に移行する。ステップ350において、本方法は、ステップ320のRAID障害対応の重複排除プロトコルを使用して、ステップ330のホスト・データを処理する。或る実施例では、ステップ350はRAIDコントローラによって遂行される。或る実施例では、ステップ350はホスト・コンピュータによって遂行される。本方法はステップ350からステップ355に移行し、上述のように継続する。
【0040】
ステップ310のデータ記憶システムが複数データ記憶装置障害を生じたまま作動しているということを、本方法がステップ340で判断する場合、本方法は、ステップ340からステップ360に移行する。ステップ360において、本方法は、ステップ325の複数装置障害対応の重複排除プロトコルを使用して、ステップ330のホスト・データを処理する。或る実施例では、ステップ360はRAIDコントローラによって遂行される。或る実施例では、ステップ360はホスト・コンピュータによって遂行される。本方法はステップ360からステップ355に移行し、上述のように継続する。
【0041】
或る実施例として、図5の方法は、重複排除プロトコルを動的にセットするための本発明の方法のステップを要約する。図5を参照すると、ステップ410において、本方法は、RAIDコントローラおよびRAIDアレイを含むデータ記憶システムを提供する。
【0042】
ステップ420において、本方法は、複数個のインターリーブしたデータ・ブロックを含むホスト・データを提供する。或る実施例では、ステップ420のデータはRAIDコントローラによって受け取られる。或る実施例では、ステップ420はホスト・コンピュータによって遂行される。
【0043】
ステップ430において、本方法は、RAIDアレイとして構成された障害のあるデータ記憶装置の数Mを決定する。或る実施例では、ステップ430はRAIDコントローラによって遂行される。或る実施例では、ステップ430はホスト・コンピュータによって遂行される。
【0044】
ステップ440において、本方法は、オフセット係数Oに対する値を設定する。或る実施例では、Oは、0よりも大きいかまたは0に等しく、2よりも小さいかまたは2に等しい。或る実施例では、Oは、0よりも大きいかまたは0に等しく、3よりも小さいかまたは3に等しい。或る実施例では、Oは、0よりも大きいかまたは0に等しく、4よりも小さいかまたは4に等しい。或る実施例では、ステップ440はRAIDコントローラに
よって遂行される。或る実施例では、ステップ440はホスト・コンピュータによって遂行される。
【0045】
ステップ450において、本方法は下記の式を使ってNに対する値を計算する。
(数式1)

N=(M+1)+M*O
或る実施例では、ステップ450はRAIDコントローラによって遂行される。或る実施例では、ステップ450はホスト・コンピュータによって遂行される。
【0046】
ステップ460において、本方法は、ステップ420のホスト・データにおける識別された重複データ・ブロックをN個ごとに重複排除する。或る実施例では、ステップ460はRAIDコントローラによって遂行される。或る実施例では、ステップ460はホスト・コンピュータによって遂行される。
【0047】
下記の例は、図5の方法を作成および使用する方法を当業者に説明するために示される。しかし、これらの例は、本発明の技術的範囲に関する限定として意図されるものではない。
【0048】
例1
ステップ410のデータ記憶システムが如何なるデータ記憶装置障害もなく作動している場合、数式1を使ってNが1であると計算される。この例では、本方法は、ステップ420のホスト・データにおける識別された重複データ・ブロック毎に重複排除される。
【0049】
例2
ステップ410のデータ記憶システムがデータ記憶装置障害を生じたまま作動している場合、およびOが0にセットされる場合、数式1を使ってNが2であると計算される。この例では、本方法は、ステップ420のホスト・データにおける識別された重複データ・ブロックの50パーセントを重複排除する。
【0050】
例3
ステップ410のデータ記憶システムがデータ記憶装置障害を生じたまま作動している場合、およびOが1にセットされる場合、数式1を使ってNが3であると計算される。この例では、本方法は、ステップ420のホスト・データにおける識別された重複データ・ブロックの33.3パーセントを重複排除する。
【0051】
或る実施例では、図5に示されたステップ440は、図6に詳細に示されたステップを含む。図6を参照すると、ステップ510において、本方法は、最小RAID再構築閾値を設定する。或る実施例では、本方法は、ステップ510において、例えば、しかも限定としてではなく、毎時約100GBの最小RAID再構築率を設定する。或る実施例では、ステップ410のデータ記憶システムの製造者がステップ510を遂行する。或る実施例では、ステップ410のデータ記憶システムの所有者および/またはオペレータがステップ510を遂行する。或る実施例では、ステップ410のデータ記憶システムが相互接続されたホスト・コンピュータがステップ510を遂行する。
【0052】
ステップ520において、本方法は、最大RAID再構築閾値を設定する。或る実施例では、本方法は、ステップ520において、例えば、しかも限定としてではなく、毎時約200GBの最大RAID再構築率を設定する。或る実施例では、ステップ410のデータ記憶システムの製造者がステップ520を遂行する。或る実施例では、ステップ410のデータ記憶システムの所有者および/またはオペレータがステップ520を遂行する。或る実施例では、ステップ410のデータ記憶システムに相互接続されたホスト・コンピュータがステップ520を遂行する。
【0053】
ステップ530において、本方法は実際のRAID再構築率を決定する。或る実施例では、ステップ530はRAIDコントローラによって遂行される。或る実施例では、ステップ530はホスト・コンピュータによって遂行される。
【0054】
ステップ540において、本方法は、ステップ530の実際のRAID再構築率が、ステップ510の最小RAID再構築率閾値よりも小さいかどうかを判断する。或る実施例では、ステップ540はRAIDコントローラによって遂行される。或る実施例では、ステップ540はホスト・コンピュータによって遂行される。
【0055】
ステップ530の実際のRAID再構築率がステップ510の最小RAID再構築率閾値よりも小さいということを本方法がステップ540において決定する場合、本方法はステップ540からステップ550に移行し、ステップ550では、本方法はオフセット係数Oを2に設定する。或る実施例では、ステップ550はRAIDコントローラによって遂行される。或る実施例では、ステップ550はホスト・コンピュータによって遂行される。本方法はステップ550からステップ450に移行し、前述したように継続する。
【0056】
ステップ530の実際のRAID再構築率がステップ510の最小RAID再構築率閾値よりも小さくないということを本法がステップ540で決定する場合、本方法はステップ540からステップ560に移行し、ステップ560において、本方法は、ステップ530の実際のRAID再構築率がステップ520の最大RAID再構築率閾値よりも小さいかどうかを判断する。或る実施例では、ステップ560はRAIDコントローラによって遂行される。或る実施例では、ステップ560はホスト・コンピュータによって遂行される。
【0057】
ステップ530の実際のRAID再構築率がステップ520の最大RAID再構築率閾値よりも小さいということを、本方法がステップ560で決定する場合、本方法はステップ560からステップ570に移行し、ステップ570において、本方法はオフセット係数Oを1に設定する。或る実施例では、ステップ570はRAIDコントローラによって遂行される。或る実施例では、ステップ570はホスト・コンピュータによって遂行される。本方法はステップ570からステップ450に移行し、前述したように継続する。
【0058】
これらとは別に、ステップ550の実際のRAID再構築率がステップ520の最大RAID再構築率閾値よりも小さくないということを、本方法がステップ560において決定する場合、本方法はステップ560からステップ580に移行し、ステップ580において、本方法はオフセット係数Oを0に設定する。本方法はステップ580からステップ450に移行し、前述したように継続する。
【0059】
或る実施例では、図4、図5、および図6に示された個々のステップが組み合わされ、削除され、或いは再順序付けされてもよい。
【0060】
或る実施例では、本発明は、例えば、コンピュータ可読媒体121(図1)のようなコンピュータ可読媒体に存在する命令124(図1)のような命令を含み、それらの命令は、プロセッサ128(図1)のようなプロセッサによって実行され、図4に示されたステップ315、320、325、330、335、340、345、350、355、360、および/または370の1つまたは複数個、図5に示されたステップ420、430、440、450および/または460の1つまたは複数個、および/または、図6に示されたステップ510、520、530、540、550、560、570および/または580のうちの1つまたは複数個を遂行する。
【0061】
他の実施例では、本発明における命令は、任意のコンピュータ・プログラムに存在する命令を含み、それらの命令は、データ記憶システム100(図1)、200(図2)または202(図3)の外部または内部のコンピュータによって実行され、図4に示されたステップ315、320、325、330、335、340、345、350、355、360、および/または370の1つまたは複数個、図5に示されたステップ420、430、440、450および/または460の1つまたは複数個、および/または、図6に示されたステップ510、520、530、540、550、560、570および/または580のうちの1つまたは複数個を遂行する。いずれの場合も、命令は、例えば、磁気的情報記憶媒体、光学的情報記憶媒体、電子的記憶媒体等を含むコンピュータ可読媒体においてコード化され得る。「電子的記憶媒体」は、PROM、EPROM、EEPROM、Flash PROM、コンパクトフラッシュ、スマートメディア等のような、しかもそれに限定されない、1つまたは複数個の装置を意味する。
【0062】
本発明の好ましい実施例を詳細に説明したが、「特許請求の範囲」に記載された本発明の技術的範囲から逸脱することなく、これらの実施例に対する修正およびアダプテーションを当業者が想起し得ることは明らかであろう。

【特許請求の範囲】
【請求項1】
RAIDアレイとして構成された複数個のデータ記憶装置を含むデータ記憶ライブラリにおいて使用するための重複排除プロトコルを選択する方法であって、
正規の重複排除プロトコルを設定するステップと、
RAID障害対応の重複排除プロトコルを設定するステップと、
複数記憶装置障害対応の重複排除プロトコルを設定するステップと、
複数個のインターリーブしたデータ・ブロックを含むホスト・データを受け取るステップと、
前記RAIDアレイがRAID障害を生じたまま作動しているかどうかを判断するステップと、
前記RAIDアレイがRAID障害を生じたまま作動していないとき、前記正規の重複排除プロトコルを使って前記ホスト・データを処理するステップと
を含む、方法。
【請求項2】
前記正規の重複排除プロトコルは、重複しているホスト・データ・ブロックの約90パーセント乃至約100パーセントを重複排除する、請求項1に記載の方法。
【請求項3】
前記RAIDアレイがRAID障害を生じたまま作動しているとき、前記RAIDアレイが複数記憶装置障害を生じたまま作動しているかどうかを判断するステップと、
前記RAIDアレイがRAID障害を生じたまま作動しているが、複数記憶装置障害を生じたまま作動していないとき、前記RAID障害対応の重複排除プロトコルを使って前記ホスト・データを処理するステップと
を更に含む、請求項1に記載の方法。
【請求項4】
前記RAID障害対応の重複排除プロトコルは、重複しているホスト・データ・ブロックの約40パーセント乃至約60パーセントを重複排除する、請求項3に記載の方法。
【請求項5】
前記RAIDアレイが複数記憶装置障害を生じたまま作動している場合、前記複数記憶装置障害対応の重複排除プロトコルを使って前記ホスト・データを処理するステップを更に含む、請求項3に記載の方法。
【請求項6】
前記複数記憶装置障害対応の重複排除プロトコルは、重複しているホスト・データ・ブロックの約15パーセント乃至約35パーセントを重複排除する、請求項5に記載の方法。
【請求項7】
RAIDアレイとして構成された複数個のデータ記憶装置を含むデータ記憶ライブラリにおいて使用するためのデータ重複排除プロトコルを設定する方法であって、
複数個のインターリーブした情報のブロックを受け取るステップと、
障害のあるデータ記憶ブロックの数Mを決定するステップと、
オフセット係数Oの値を設定するステップと、
N=(M+1)+M*O としてNに対する値を計算するステップと、
N個のデータ・ブロックごとに重複排除するステップと
を含む、方法。
【請求項8】
Mが0に等しいとき、Oを0に等しく設定するステップを更に含む、請求項7に記載の方法。
【請求項9】
Mが1に等しいとき、Oを1に等しく設定するステップを更に含む、請求項7に記載の方法。
【請求項10】
Mが2に等しいとき、Oを2に等しく設定するステップを更に含む、請求項7に記載の方法。
【請求項11】
最小RAID再構築率閾値を設定するステップと、
最大RAID再構築率閾値を設定するステップと、
実際のRAID再構築率を決定するステップと、
前記実際のRAID再構築率が前記最小RAID再構築率閾値よりも小さいかどうかを判断するステップと、
前記実際のRAID再構築率が前記最小RAID再構築率閾値よりも小さいとき、Oを2に等しく設定するステップと
を更に含む、請求項7に記載の方法。
【請求項12】
前記実際のRAID再構築率が前記最小RAID再構築率閾値よりも小さくないとき、前記実際のRAID再構築率が前記最大RAID再構築率閾値よりも小さいかどうかを判断するステップと、
前記実際のRAID再構築率が前記最小RAID再構築率閾値よりも小さくなく、前記最大RAID再構築率閾値よりも小さいとき、Oを1に等しく設定するステップと
を更に含む、請求項11に記載の方法。
【請求項13】
前記実際のRAID再構築率が前記最大RAID再構築率閾値よりも小さくない場合、Oを0に等しく設定するステップを更に含む、請求項12に記載の方法。
【請求項14】
プロセッサおよびコンピュータ可読媒体を含み、前記コンピュータ可読媒体は、前記プロセッサによって実行されるときに請求項1乃至請求項13のいずれかに記載のステップを遂行するプログラム・コードを含む、RAIDコントローラ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−43449(P2012−43449A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2011−207613(P2011−207613)
【出願日】平成23年9月22日(2011.9.22)
【分割の表示】特願2010−550113(P2010−550113)の分割
【原出願日】平成21年2月18日(2009.2.18)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ETHERNET
2.コンパクトフラッシュ
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100085545
【弁理士】
【氏名又は名称】松井 光夫
【復代理人】
【識別番号】100118599
【弁理士】
【氏名又は名称】村上 博司
【Fターム(参考)】