(57)【要約】【課題】  ＲＡＩＤアレイとして構成された複数個のデータ記憶装置を含むデータ記憶ライブラリに対する重複排除プロトコルを選択する方法を提供する。【解決手段】  本方法は、正規の重複排除プロトコル、ＲＡＩＤ障害対応の重複排除プロトコル、および複数記憶装置障害対応の重複排除プロトコルを設定する。本方法は、複数個のインターリーブしたデータ・ブロックを含むホスト・データを受け取る。システムが如何なる記憶装置障害もなく作動している場合、本方法は正規の重複排除プロトコルを使用してホスト・データを処理する。システムが記憶装置障害を生じたまま作動している場合、本方法はＲＡＩＤ障害対応の重複排除プロトコルを使用してホスト・データを処理する。システムが複数記憶装置障害を生じたまま作動している場合、本方法は複数記憶装置障害対応の重複排除プロトコルを使用してホスト・データを処理する。【選択図】  図４
2011515746.tif 000002
【特許請求の範囲】
【請求項１】
ＲＡＩＤアレイとして構成された複数個のデータ記憶装置を含むデータ記憶ライブラリにおいて使用するための重複排除プロトコルを選択する方法であって、
正規の重複排除プロトコルを設定するステップと、
ＲＡＩＤ障害対応の重複排除プロトコルを設定するステップと、
複数記憶装置障害対応の重複排除プロトコルを設定するステップと、
複数個のインターリーブしたデータ・ブロックを含むホスト・データを受け取るステップと、
前記ＲＡＩＤアレイがＲＡＩＤ障害を生じたまま作動しているかどうかを判断するステップと、
前記ＲＡＩＤアレイがＲＡＩＤ障害を生じたまま作動していないとき、前記正規の重複排除プロトコルを使って前記ホスト・データを処理するステップと
を含む、方法。
【請求項２】
前記正規の重複排除プロトコルは、重複しているホスト・データ・ブロックの約９０パーセント乃至約１００パーセントを重複排除する、請求項１に記載の方法。
【請求項３】
前記ＲＡＩＤアレイがＲＡＩＤ障害を生じたまま作動しているとき、前記ＲＡＩＤアレイが複数記憶装置障害を生じたまま作動しているかどうかを判断するステップと、
前記ＲＡＩＤアレイがＲＡＩＤ障害を生じたまま作動しているが、複数記憶装置障害を生じたまま作動していないとき、前記ＲＡＩＤ障害対応の重複排除プロトコルを使って前記ホスト・データを処理するステップと
を更に含む、請求項１に記載の方法。
【請求項４】
前記ＲＡＩＤ障害対応の重複排除プロトコルは、重複しているホスト・データ・ブロックの約４０パーセント乃至約６０パーセントを重複排除する、請求項３に記載の方法。
【請求項５】
前記ＲＡＩＤアレイが複数記憶装置障害を生じたまま作動している場合、前記複数記憶装置障害対応の重複排除プロトコルを使って前記ホスト・データを処理するステップを更に含む、請求項３に記載の方法。
【請求項６】
前記複数記憶装置障害対応の重複排除プロトコルは、重複しているホスト・データ・ブロックの約１５パーセント乃至約３５パーセントを重複排除する、請求項５に記載の方法。
【請求項７】
ＲＡＩＤアレイとして構成された複数個のデータ記憶装置を含むデータ記憶ライブラリにおいて使用するためのデータ重複排除プロトコルを設定する方法であって、
複数個のインターリーブした情報のブロックを受け取るステップと、
障害のあるデータ記憶ブロックの数Ｍを決定するステップと、
オフセット係数Ｏの値を設定するステップと、
Ｎ＝（Ｍ＋１）＋Ｍ＊Ｏ  としてＮに対する値を計算するステップと、
Ｎ個のデータ・ブロックごとに重複排除するステップと
を含む、方法。
【請求項８】
Ｍが０に等しいとき、Ｏを０に等しく設定するステップを更に含む、請求項７に記載の方法。
【請求項９】
Ｍが１に等しいとき、Ｏを１に等しく設定するステップを更に含む、請求項７に記載の方法。
【請求項１０】
Ｍが２に等しいとき、Ｏを２に等しく設定するステップを更に含む、請求項７に記載の方法。
【請求項１１】
最小ＲＡＩＤ再構築率閾値を設定するステップと、
最大ＲＡＩＤ再構築率閾値を設定するステップと、
実際のＲＡＩＤ再構築率を決定するステップと、
前記実際のＲＡＩＤ再構築率が前記最小ＲＡＩＤ再構築率閾値よりも小さいかどうかを判断するステップと、
前記実際のＲＡＩＤ再構築率が前記最小ＲＡＩＤ再構築率閾値よりも小さいとき、Ｏを２に等しく設定するステップと
を更に含む、請求項７に記載の方法。
【請求項１２】
前記実際のＲＡＩＤ再構築率が前記最小ＲＡＩＤ再構築率閾値よりも小さくないとき、前記実際のＲＡＩＤ再構築率が前記最大ＲＡＩＤ再構築率閾値よりも小さいかどうかを判断するステップと、
前記実際のＲＡＩＤ再構築率が前記最小ＲＡＩＤ再構築率閾値よりも小さくなく、前記最大ＲＡＩＤ再構築率閾値よりも小さいとき、Ｏを１に等しく設定するステップと
を更に含む、請求項１１に記載の方法。
【請求項１３】
前記実際のＲＡＩＤ再構築率が前記最大ＲＡＩＤ再構築率閾値よりも小さくない場合、Ｏを０に等しく設定するステップを更に含む、請求項１２に記載の方法。
【請求項１４】
プロセッサおよびコンピュータ可読媒体を含み、前記コンピュータ可読媒体は、前記プロセッサによって実行されるときに請求項１乃至請求項１３のいずれかに記載のステップを遂行するプログラム・コードを含む、ＲＡＩＤコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ記憶ライブラリのための重複排除（deduplication）プロトコルを選択する装置および方法に関する。
【背景技術】
【０００２】
コンピュータ・システムは情報を生成する。複数のデータ記憶媒体を使用して、そのような情報を格納することが知られている。新磁気ディスク制御機構（ＲＡＩＤ）構成では、耐障害性およびデータ・アクセス性能の改善を提供するために、情報はデータ記憶媒体のアレイに格納される。ＲＡＩＤは、特殊なハードウェアまたはソフトウェアのどちらかを使用することにより、複数の物理データ記憶媒体を結合して単一の論理ユニットにしている。
【０００３】
ＲＡＩＤ３、４、５、または６アレイ構成では、「データ・ストライピング」として知られているプロセスが、パリティ・データ、即ち、コード化冗長（encoded redundant）情報と組み合わせて使用される。ＲＡＩＤ６では、列ストライプおよび対角ストライプの両方が使用され、二重冗長のためには１つのパリティ・セットが各列ストライプに関連付けられ、別のパリティ・セットが各対角ストライプに関連付けられる。ＲＡＩＤ６では、列パリティが単一の列パリティ記憶媒体に集中され、対角パリティが異なる単一の対角パリティ記憶媒体に集中され得る。或いは、列および対角パリティがアレイにおけるすべてのデータ記憶媒体にわたって分布され得る。各ＲＡＩＤストライプは、所定数の連続した論理的ブロック・アレイを含む。
【０００４】
データをストライプすることおよびアレイにおけるすべてのドライブにわたってパリティを分布させることにより、単一のドライブに対する一定のアクセスを最小にすることで最適の性能が実現される。ＲＡＩＤ６アレイ構成における１つのドライブが障害を生じる場合、その障害のあるドライブに書込まれたデータは残りのドライブにおけるパリティ・データを使用して再構築され得る。アレイがオンライン予備ドライブにより構成される場合、障害のあるドライブが検知されたとき、ＲＡＩＤの再構築が自動的に始まる。アレイが予備ドライブでもって構成されない場合、ＲＡＩＤの再構築は、障害のあるドライブが交換された後に始まる。
【０００５】
失われたデータを再構築するために、失われた各ストライプがアレイにおける残りのドライブから読取られる。失われたストライプは、ＲＡＩＤコントローラＸＯＲエンジンによって遂行される排他的ＯＲ（ＸＯＲ）オペレーションを使用して回復される。ＸＯＲエンジンがその失われたストライプを回復した後、その回復したストライプは置換ドライブまたはオンライン予備ドライブに書込まれる。ＲＡＩＤレベル３、４、および５に関しては、再構築プロセスは、アレイにおけるオプショナル・ドライブからの（Ｎ−１）個の読取り、及び置換ドライブまたはオンライン予備ドライブへの単一の書込みを含む。ストライプが完全に回復するとき、再構築プロセスは次の失われたストライプを回復させように進行する。ＲＡＩＤレベル６の下での二重障害に関しては、列ストライプおよび対角ストライプの両方が、２つの予備ドライブに再構築されるドライブ・データを構成するために使用される。
【０００６】
再構築プロセス中、アレイはユーザにとってアクセス可能のままである。ＲＡＩＤコントローラは、ホスト入出力要求を処理するように、およびＲＡＩＤ再構築を処理するようにシステム・リソースを割振らなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、ＲＡＩＤアレイとして構成された複数個のデータ記憶装置を含むデータ記憶ライブラリのための重複排除プロトコルを選択する方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の方法は、正規の重複排除プロトコル、ＲＡＩＤ障害対応の重複排除プロトコル、および複数記憶装置障害対応の重複排除プロトコルを設定する。本方法は、複数のインターリーブしたデータ・ブロックを含むホスト・データを受け取る。システムが如何なる記憶装置障害もなく作動している場合、本方法は正規の重複排除プロトコルを使用してホスト・データを処理する。システムが１つの記憶装置障害を生じたまま作動している場合、本方法はＲＡＩＤ障害対応の重複排除プロトコルを使用してホスト・データを処理する。システムが複数記憶装置障害を生じたまま作動している場合、本方法は複数記憶装置障害対応の重複排除プロトコルを使用してホスト・データを処理する。
【０００９】
或る実施例では、本方法は重複排除プロトコルを動的に設定する。これらの実施例では、重複排除プロトコルは、障害のあるデータ記憶装置の数、実際のＲＡＩＤ再構築率、最小ＲＡＩＤ再構築率閾値、および最大ＲＡＩＤ再構築率閾値の関数である。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例によるデータ記憶装置システムの１つの実施例を示すブロック図である。
【図２】ファイバ・チャンネル・アービトレート型ループを使用して複数個のデータ記憶媒体とコミュニケーションしている１つのＲＡＩＤコントローラを示すブロック図である。
【図３】二重ファイバ・チャンネル・アービトレート型ループを使用して、複数個のデータ記憶媒体とコミュニケーションしている２つのＲＡＩＤコントローラを示すブロック図である。
【図４】本発明の第１実施例による方法におけるステップを要約したフローチャートである。
【図５】本発明の第２実施例による方法におけるステップを要約したフローチャートである。
【図６】第２実施例における追加のステップを要約したフローチャートである。
【発明を実施するための形態】
【００１１】
本発明は、図面を参照しながら好適な実施例に関する以下の記述において説明される。図面では、同じ参照番号は同じまたは同様の要素を表わす。本明細書を通して「１つの実施例」、「或る実施例」、または同様の用語の引用は、その実施例に関連して記述された特定の特徴、構造、または特性が本発明の少なくとも１つの実施例に含まれるということを意味する。従って、本明細書を通しての「１つの実施例における」、「或る実施例における」という語句および同様の用語の出現は、すべて同じ実施例を指し得るが、必ずしもそうではないことがある。
【００１２】
本発明の記述された特徴、構造、または特性は、１つまたは複数の実施例において任意の適切な方法で組み合わされてもよい。以下の説明では、本発明の実施例の十分な理解を与えるために、多数の特定の細部が詳述される。しかし、本発明が、１つまたは複数の特定の詳述がなくても、他の方法、コンポーネント、材料等を用いて実施され得るということは当業者には明らかであろう。別の実施例では、本発明の諸局面を不明瞭にすることを回避するために、周知の構造、材料、またはオペレーションは詳細には図示または記述されない。
【００１３】
図１の実施例では、データ処理システム１００は、ＲＡＩＤコントローラ１２０、データ記憶媒体１３０、１４０、１５０、および１６０を含む。図１の実施例では、ＲＡＩＤコントローラ１２０は、Ｉ／Ｏプロトコル１３２、１４２、１５２、および１６２を介して、それぞれ、データ記憶媒体１３０、１４０、１５０、および１６０とコミュニケーションを行う。Ｉ／Ｏプロトコル１３２、１４２、１５２、および１６２は、ファイバ・チャネル・ループ、ＳＣＳＩ（Small Computer System Interface）、ｉＳＣＳＩ（Internet SCSI）、ＳＡＳ（SerialAttach SCSI）、Fiber Channel、SCSI over Fiber Channel、Ethernet、Fiber Channel overEthernet、Infiniband、およびＳＡＴＡ（Serial ATA）を、それに限定することなく含む任意の種類のＩ／Ｏプロトコルを含み得る。
【００１４】
「データ記憶媒体」は、本明細書では、情報記憶媒体に情報を書込むためにおよびそこから情報を読取るために必要なハードウェア、ファームウェア、および／またはソフトウェアと結合したそのような情報記憶媒体を意味する。或る実施例では、情報記憶媒体は、磁気ディスク、磁気テープ等のような磁気情報記憶媒体を、それらに限定することなく含む。或る実施例では、情報記憶媒体は、ＣＤ、ＤＶＤ（DigitalVersatile Disk）、ＨＤ−ＤＶＤ（High Definition DVD）、ＢＤ（Blue-Ray Disk）等のような光学的情報記憶媒体を、それらに限定することなく含む。或る実施例では、情報記憶媒体は、PROM、EPROM、EEPROM、FlashPROM、コンパクトフラッシュ、スマートメディア等のような電子情報記憶媒体を、それらに限定することなく含む。或る実施例では、情報記憶媒体はホログラフィ情報記憶媒体を含む。
【００１５】
更に、図１の実施例では、本明細書におけるＲＡＩＤコントローラ１２０は、ホスト・コンピュータ１０２、１０４、および１０６とのコミュニケーションを行う。一般的なこととして、ホスト・コンピュータ１０２、１０４、および１０６の各々は、メインフレーム、パーソナル・コンピュータ、ワークステーション、およびそれらの組合せのようなコンピューティング・システムを含み、それの Windows、AIX、Unix、MVS、LINUX 等のようなオペレーティング・システムを内蔵する。（Windows はマイクロソフト社の商標であり、AIX および MVS はＩＢＭ社の商標であり、Unix は、The Open Group を介して排他的にライセンスされた商標である。The Open Group および LINUX は Linus Torvald の商標である）。或る実施例では、１つまたは複数のホスト・コンピュータ１０２、１０４、および／または１０６は、更に、ストレージ管理プログラムを含む。或る実施例では、そのストレージ管理プログラムは、IBM MVS オペレーティング・システムに実装されたIBM DFSMS のような、データ記憶装置および検索システムへのおよびそれらからのデータの転送を管理する分野において知られているストレージ管理タイプのプログラムの機能を、それに限定することなく含み得る。
【００１６】
図１の実施例では、本明細書におけるＲＡＩＤコントローラ１２０は、プロセッサ１２８、ＸＯＲエンジン１２９、コンピュータ可読媒体１２１、コンピュータ可読媒体１２１に書込まれたマイクロコード１２２、およびコンピュータ可読媒体１２１に書込まれた命令１２４を含む。プロセッサ１２８は、ＲＡＩＤコントローラ１２０を作動するためにマイクロコード１２２を利用する。 図１の実施例では、ＲＡＩＤコントローラ１２０は更に再構築ビットマップ１２６を含む。その再構築ビットマップ１２６はＮ個のインディケータを含み、各インディケータは異なるデータ・ストライプに関連付けられる。ｉ番目のインディケータが第１の値にセットされる場合には、その関連するデータ・ストライプは再構築されてなく、ｉ番目のインディケータが第２の値にセットされる場合には、その関連するデータ・ストライプは再構築されている。なお、ｉは、１よりも小さいかまたは１に等しく、Ｎよりも大きいかまたはＮに等しい。
【００１７】
例えば、データの重複排除のような、しかもそれに限定されない、１つまたは複数のホスト・コンピュータから受け取られたデータに関連した入出力（Ｉ／Ｏ）オペレーションの処理に加えて、プロセッサ１２８は、例えば、パリティのチェックおよび認証、ＲＡＩＤ再構築、および他の「ハウスキーピング」作業のような、しかもそれに限定されない、バックグラウンド・オペレーションも遂行する。或る実施例では、プロセッサ１２８は、データの重複排除およびＲＡＩＤ再構築の間でプロセッサ・リソースの割振りのような、しかもそれに限定されない、システム・リソースの割振りを行わなければならない。
【００１８】
図１の実施例では、ホスト・コンピュータ１０２、１０４、および１０６は、それぞれ、Ｉ／Ｏプロトコル１０３、１０５、および１０７を利用してファブリック１１０に接続される。Ｉ／Ｏプロトコル１０３、１０５、および１０７は、ファブリック１１０との間で情報を転送するために、任意のタイプのＩ／Ｏプロトコル、例えば、Fiber Channel（ＦＣ）ループ、ファブリック１１０への直接接続、またはホスト・コンピュータ１０２、１０４、および１０６によって使用される１つまたは複数個の信号線であってもよい。
【００１９】
或る実施例では、ファブリック１１０は、例えば、１つまたは複数個のＦＣスイッチ１１５を含む。或る実施例では、それらの１つまたは複数個のスイッチ１１５は、１つまたは複数個の一般的なルータ・スイッチを含む。図１の実施例では、１つまたは複数個のスイッチ１１５は、ホスト・コンピュータ１０２、１０４、および１０６を、Ｉ／Ｏプロトコル１１７を介してＲＡＩＤコントローラ１２０に相互接続する。Ｉ／Ｏプロトコル１１７は、任意のタイプの入出力インターフェース、例えば、FibreChannel、Infiniband、Gigabit Ethernet、TCP/IP、iSCSI、SCSI I/O インターフェース、またはＦＣスイッチによって使用される１つまたは複数個の信号線を含み、ＲＡＩＤコントローラ１２０との間で及びその後はデータ記憶媒体１３０、１４０、１５０、および１６０との間で情報を転送し得る。別の実施例では、例えば、ホスト・コンピュータ１０２、１０４、および１０６のような、しかもそれらに限定されない、１つまたは複数個のホスト・コンピュータが、Ｉ／Ｏプロトコル１０３、１０５、および１０７を使用して、ＲＡＩＤコントローラ１２０と直接にコミュニケーションを行う。
【００２０】
図２の実施例では、本発明のＲＡＩＤコントローラ１２０は、スイッチのファイバ・チャネル・アービトレーテッド（ＦＣ−ＡＬ）ループを使用して、データ記憶媒体１３０、１４０、１５０、および１６０とコミュニケーションを行う。なお、コントローラ１２０、並びに、媒体１３０、１４０、１５０、および１６０は、情報記憶および検索システム２００内に配される。当業者には明らかなように、情報記憶および検索システム２００は、更に、１つまたは複数個のホスト・アダプタ、１つまたは複数個の装置アダプタ、データ・キャッシュ、不揮発性記憶装置等のような、しかもそれに限定されない、追加の要素を含む。図２の実施例は、ファイバ・チャネル・ネットワークまたは装置を使用するように本発明を限定するものと解されるべきではない。別の実施例では、ＳＡＳ装置および／またはＳＡＴＡ装置を限定としてではなく含む他のネットワーク・トポロジおよび装置が利用される。
【００２１】
図３の実施例では、本発明の情報記憶および検索システム２０２は、ＲＡＩＤコントローラ１２０ＡおよびＲＡＩＤコントローラ１２０Ｂが２つのＦＣ−ＡＬループによって相互接続されるスイッチの二重ＦＣ−ＡＬループを含む。各ＦＣ−ＡＬループは、ローカル・コントローラ２１０、２２０、２３０、２４０、２５０、および２６０のような１つまたは複数個のローカル・コントローラを含む。当業者には明らかなように、情報記憶および検索システム２００は、更に、１つまたは複数個のホスト・アダプタ、１つまたは複数個の装置アダプタ、データ・キャッシュ、不揮発性記憶装置等のような、しかもそれらに限定されない、追加の要素を含む。図３の実施例では、各ＲＡＩＤコントローラは、複数個の第１データ記憶媒体２７０、複数個の第２データ記憶媒体２８０、および複数個の第３データ記憶媒体２９０とコミュニケーションを行う。
【００２２】
図３の実施例は、ファイバ・チャネル・ネットワークまたは装置の使用に本発明を限定するものと解されるべきではない。図３の実施例において、２つのＦＣ−ＡＬループを詳説したものも本発明の１つの実施例である。別の実施例では、ＳＡＳ装置および／またはＳＡＴＡ装置を限定ではなく含む他のネットワーク・トポロジおよび装置が利用される。
【００２３】
当業者には明らかなように、データ重複排除は、冗長なデータを除去するためのプロセスを含む。重複排除プロセスでは、重複データが削除され、保存されるべきデータのコピーを１つだけ残す。或る実施例では、それまでに必要とされたすべてのデータの指標が保持される。重複排除は、唯一無二のデータだけが保存されるので、ＲＡＩＤアレイの記憶機能を強化することができる。
【００２４】
データ重複排除は、一般に、ファイル・レベルまたはデータ・ブロック・レベルで操作することができる。ファイル・レベルの重複排除は重複ファイルを除去するが、これは重複排除の真に効率的な手段ではない。ブロック・レベルの重複排除はファイル内を見て、各ブロックまたはビットの唯一無二の反復を保存する。データの各チャンクが、ＭＤ５またはＳＨＡ−１のようなハッシュ・アルゴリズムを使用して処理される。このプロセスは、その後指標として格納される各断片の一意的な番号を生成する。
【００２５】
ファイルが更新される場合、その変更されたデータだけが保存される。即ち、ドキュメントまたはプレゼンテーションのうちの数バイトしか変更されない場合、その変更されたブロックまたはバイトだけが保存され、変更は完全に新しいファイルを構成するものではない。従って、ブロックの重複排除は、ファイルの重複排除より多くの記憶空間を節約する。しかし、ブロックの重複排除は、より多くのプロセッサ資源を必要とする。
【００２６】
ＲＡＩＤ再構築中に、本発明のＲＡＩＤコントローラは、ＲＡＩＤ再構築とデータの重複排除との間で処理資源を割振る。図４は、ＲＡＩＤ再構築を行うと同時にデータの重複排除プロトコルを選択するための本発明の方法を要約する。図４を参照すると、ステップ３１０において、その方法は、ＲＡＩＤコントローラおよびＲＡＩＤアレイを含むデータ記憶システムを提供する。
【００２７】
ステップ３１５において、その方法は正規の重複排除プロトコルを設定する。或る実施例では、ステップ３１５の正規の重複排除プロトコルは、１つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの約９０パーセント乃至１００パーセントを重複排除する。或る実施例では、ステップ３１５の正規の重複排除プロトコルは、１つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの１００パーセントを重複排除する。
【００２８】
或る実施例では、ステップ３１０のデータ記憶システムの製造者がステップ３１５を遂行する。或る実施例では、ステップ３１０のデータ記憶システムの所有者および／またはオペレータがステップ３１５を遂行する。或る実施例では、ステップ３１０のデータ記憶システムと相互接続されたホスト・コンピュータがステップ３１５を遂行する。
【００２９】
ステップ３２０において、その方法はＲＡＩＤ障害対応の重複排除プロトコルを設定する。本明細書では、「ＲＡＩＤ障害」は、ＲＡＩＤアレイとして構成された１つのデータ記憶装置の障害を意味する。或る実施例では、ステップ３２０のＲＡＩＤ障害対応の重複排除プロトコルは、１つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの約４０％乃至６０パーセントを重複排除する。或る実施例では、ステップ３２０のＲＡＩＤ障害対応の重複排除プロトコルは、１つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの約５０パーセントを重複排除する。
【００３０】
或る実施例では、ステップ３１０のデータ記憶装置システムの製造者がステップ３２０を遂行する。或る実施例では、ステップ３１０のデータ記憶システムの所有者および／またはオペレータがステップ３２０を遂行する。或る実施例では、ステップ３１０のデータ記憶システムと相互接続されたホスト・コンピュータがステップ３２０を遂行する。
【００３１】
ステップ３２５において、本方法は、複数装置障害対応の重複排除プロトコルを設定する。或る実施例では、ステップ３２５の複数装置障害対応の重複排除プロトコルが、１つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの約１５パーセント乃至約３５パーセントを重複排除する。或る実施例では、ステップ３２５の複数装置障害対応の重複排除プロトコルが、１つまたは複数個のホスト・コンピュータから受け取られた情報内に配された重複データ・ブロックの約２５パーセントを重複排除する。
【００３２】
或る実施例では、ステップ３１０のデータ記憶システムの製造者がステップ３２５を遂行する。或る実施例では、ステップ３１０のデータ記憶システムの所有者および／またはオペレータがステップ３２５を遂行する。或る実施例では、ステップ３１０のデータ記憶システムと相互接続されたホスト・コンピュータがステップ３２５を遂行する。
【００３３】
ステップ３３０において、本方法は、複数個のインターリーブしたデータ・ブロックを含むホスト・データを提供する。或る実施例では、ステップ３３０のデータがＲＡＩＤコントローラによって受け取られる。或る実施例では、ステップ３３０はホスト・コンピュータによって遂行される。
【００３４】
ステップ３３５において、本方法は、ステップ３１０のデータ記憶システムがＲＡＩＤ障害を生じたまま作動しているかどうか、即ち、データ記憶装置の障害が検出されたかどうかを決定する。
【００３５】
ステップ３３５において、本方法は、ステップ３１０のデータ記憶システムがＲＡＩＤ障害を生じたまま作動してはいないということ決定し、しかる後、本方法はステップ３３５からステップ３４５に移行する。ステップ３４５では、本方法は、ステップ３１５の正規の重複排除プロトコルを使用してステップ３３０のホスト・データを処理する。或る実施例では、ステップ３４５はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ３４５はホスト・コンピュータによって遂行される。
【００３６】
ステップ３５５において、本方法は、更なるホスト・データが受け取られたかどうかを判断する。或る実施例では、ステップ３５５はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ３５５はホスト・コンピュータによって遂行される。
【００３７】
ステップ３５５において、本方法が、如何なる更なるホスト・データも受け取られなかったということを判断する場合、本方法はステップ３５５からステップ３７０に移行し、終了する。一方、更なるホスト・データが受け取られたということを、本方法がステップ３５５において判断する場合、本方法はステップ３５５からステップ３３５に移行し、上述のように継続する。
【００３８】
ステップ３１０のデータ記憶システムがＲＡＩＤ障害を生じたまま作動しているということを、本方法がステップ３３５で判断する場合、本方法は、ステップ３３５からステップ３４０に移行する。ステップ３４０において、本法は、ステップ３１０のデータ記憶システムが複数データ記憶装置障害を生じたまま作動しているかどうかを判断する。或る実施例では、ステップ３４０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ３４０はホスト・コンピュータによって遂行される。
【００３９】
ステップ３１０のデータ記憶システムが複数データ記憶装置障害を生じたまま作動していないということを、本方法がステップ３４０で判断する場合、本方法は、ステップ３４０からステップ３５０に移行する。ステップ３５０において、本方法は、ステップ３２０のＲＡＩＤ障害対応の重複排除プロトコルを使用して、ステップ３３０のホスト・データを処理する。或る実施例では、ステップ３５０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ３５０はホスト・コンピュータによって遂行される。本方法はステップ３５０からステップ３５５に移行し、上述のように継続する。
【００４０】
ステップ３１０のデータ記憶システムが複数データ記憶装置障害を生じたまま作動しているということを、本方法がステップ３４０で判断する場合、本方法は、ステップ３４０からステップ３６０に移行する。ステップ３６０において、本方法は、ステップ３２５の複数装置障害対応の重複排除プロトコルを使用して、ステップ３３０のホスト・データを処理する。或る実施例では、ステップ３６０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ３６０はホスト・コンピュータによって遂行される。本方法はステップ３６０からステップ３５５に移行し、上述のように継続する。
【００４１】
或る実施例として、図５の方法は、重複排除プロトコルを動的にセットするための本発明の方法のステップを要約する。図５を参照すると、ステップ４１０において、本方法は、ＲＡＩＤコントローラおよびＲＡＩＤアレイを含むデータ記憶システムを提供する。
【００４２】
ステップ４２０において、本方法は、複数個のインターリーブしたデータ・ブロックを含むホスト・データを提供する。或る実施例では、ステップ４２０のデータはＲＡＩＤコントローラによって受け取られる。或る実施例では、ステップ４２０はホスト・コンピュータによって遂行される。
【００４３】
ステップ４３０において、本方法は、ＲＡＩＤアレイとして構成された障害のあるデータ記憶装置の数Ｍを決定する。或る実施例では、ステップ４３０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ４３０はホスト・コンピュータによって遂行される。
【００４４】
ステップ４４０において、本方法は、オフセット係数Ｏに対する値を設定する。或る実施例では、Ｏは、０よりも大きいかまたは０に等しく、２よりも小さいかまたは２に等しい。或る実施例では、Ｏは、０よりも大きいかまたは０に等しく、３よりも小さいかまたは３に等しい。或る実施例では、Ｏは、０よりも大きいかまたは０に等しく、４よりも小さいかまたは４に等しい。 或る実施例では、ステップ４４０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ４４０はホスト・コンピュータによって遂行される。
【００４５】
ステップ４５０において、本方法は下記の式を使ってＮに対する値を計算する。
(数式１)
Ｎ＝（Ｍ＋１）＋Ｍ＊Ｏ
或る実施例では、ステップ４５０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ４５０はホスト・コンピュータによって遂行される。
【００４６】
ステップ４６０において、本方法は、ステップ４２０のホスト・データにおける識別された重複データ・ブロックをＮ個ごとに重複排除する。或る実施例では、ステップ４６０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ４６０はホスト・コンピュータによって遂行される。
【００４７】
下記の例は、図５の方法を作成および使用する方法を当業者に説明するために示される。しかし、これらの例は、本発明の技術的範囲に関する限定として意図されるものではない。
【００４８】
例１ 
ステップ４１０のデータ記憶システムが如何なるデータ記憶装置障害もなく作動している場合、数式１を使ってＮが１であると計算される。この例では、本方法は、ステップ４２０のホスト・データにおける識別された重複データ・ブロック毎に重複排除される。
【００４９】
例２
ステップ４１０のデータ記憶システムがデータ記憶装置障害を生じたまま作動している場合、およびＯが０にセットされる場合、数式１を使ってＮが２であると計算される。この例では、本方法は、ステップ４２０のホスト・データにおける識別された重複データ・ブロックの５０パーセントを重複排除する。
【００５０】
例３
ステップ４１０のデータ記憶システムがデータ記憶装置障害を生じたまま作動している場合、およびＯが１にセットされる場合、数式１を使ってＮが３であると計算される。この例では、本方法は、ステップ４２０のホスト・データにおける識別された重複データ・ブロックの３３.３パーセントを重複排除する。
【００５１】
或る実施例では、図５に示されたステップ４４０は、図６に詳細に示されたステップを含む。図６を参照すると、ステップ５１０において、本方法は、最小ＲＡＩＤ再構築閾値を設定する。或る実施例では、本方法は、ステップ５１０において、例えば、しかも限定としてではなく、毎時約１００ＧＢの最小ＲＡＩＤ再構築率を設定する。或る実施例では、ステップ４１０のデータ記憶システムの製造者がステップ５１０を遂行する。或る実施例では、ステップ４１０のデータ記憶システムの所有者および／またはオペレータがステップ５１０を遂行する。或る実施例では、ステップ４１０のデータ記憶システムが相互接続されたホスト・コンピュータがステップ５１０を遂行する。
【００５２】
ステップ５２０において、本方法は、最大ＲＡＩＤ再構築閾値を設定する。或る実施例では、本方法は、ステップ５２０において、例えば、しかも限定としてではなく、毎時約２００ＧＢの最大ＲＡＩＤ再構築率を設定する。或る実施例では、ステップ４１０のデータ記憶システムの製造者がステップ５２０を遂行する。或る実施例では、ステップ４１０のデータ記憶システムの所有者および／またはオペレータがステップ５２０を遂行する。或る実施例では、ステップ４１０のデータ記憶システムに相互接続されたホスト・コンピュータがステップ５２０を遂行する。
【００５３】
ステップ５３０において、本方法は実際のＲＡＩＤ再構築率を決定する。或る実施例では、ステップ５３０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ５３０はホスト・コンピュータによって遂行される。
【００５４】
ステップ５４０において、本方法は、ステップ５３０の実際のＲＡＩＤ再構築率が、ステップ５１０の最小ＲＡＩＤ再構築率閾値よりも小さいかどうかを判断する。或る実施例では、ステップ５４０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ５４０はホスト・コンピュータによって遂行される。
【００５５】
ステップ５３０の実際のＲＡＩＤ再構築率がステップ５１０の最小ＲＡＩＤ再構築率閾値よりも小さいということを本方法がステップ５４０において決定する場合、本方法はステップ５４０からステップ５５０に移行し、ステップ５５０では、本方法はオフセット係数Ｏを２に設定する。或る実施例では、ステップ５５０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ５５０はホスト・コンピュータによって遂行される。本方法はステップ５５０からステップ４５０に移行し、前述したように継続する。
【００５６】
ステップ５３０の実際のＲＡＩＤ再構築率がステップ５１０の最小ＲＡＩＤ再構築率閾値よりも小さくないということを本法がステップ５４０で決定する場合、本方法はステップ５４０からステップ５６０に移行し、ステップ５６０において、本方法は、ステップ５３０の実際のＲＡＩＤ再構築率がステップ５２０の最大ＲＡＩＤ再構築率閾値よりも小さいかどうかを判断する。或る実施例では、ステップ５６０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ５６０はホスト・コンピュータによって遂行される。
【００５７】
ステップ５３０の実際のＲＡＩＤ再構築率がステップ５２０の最大ＲＡＩＤ再構築率閾値よりも小さいということを、本方法がステップ５６０で決定する場合、本方法はステップ５６０からステップ５７０に移行し、ステップ５７０において、本方法はオフセット係数Ｏを１に設定する。或る実施例では、ステップ５７０はＲＡＩＤコントローラによって遂行される。或る実施例では、ステップ５７０はホスト・コンピュータによって遂行される。本方法はステップ５７０からステップ４５０に移行し、前述したように継続する。
【００５８】
これらとは別に、ステップ５５０の実際のＲＡＩＤ再構築率がステップ５２０の最大ＲＡＩＤ再構築率閾値よりも小さくないということを、本方法がステップ５６０において決定する場合、本方法はステップ５６０からステップ５８０に移行し、ステップ５８０において、本方法はオフセット係数Ｏを０に設定する。本方法はステップ５８０からステップ４５０に移行し、前述したように継続する。
【００５９】
或る実施例では、図４、図５、および図６に示された個々のステップが組み合わされ、削除され、或いは再順序付けされてもよい。
【００６０】
或る実施例では、本発明は、例えば、コンピュータ可読媒体１２１（図１）のようなコンピュータ可読媒体に存在する命令１２４（図１）のような命令を含み、それらの命令は、プロセッサ１２８（図１）のようなプロセッサによって実行され、図４に示されたステップ３１５、３２０、３２５、３３０、３３５、３４０、３４５、３５０、３５５、３６０、および／または３７０の１つまたは複数個、図５に示されたステップ４２０、４３０、４４０、４５０および／または４６０の１つまたは複数個、および／または、図６に示されたステップ５１０、５２０、５３０、５４０、５５０、５６０、５７０および／または５８０のうちの１つまたは複数個を遂行する。
【００６１】
他の実施例では、本発明における命令は、任意のコンピュータ・プログラムに存在する命令を含み、それらの命令は、データ記憶システム１００（図１）、２００（図２）または ２０２（図３）の外部または内部のコンピュータによって実行され、図４に示されたステップ３１５、３２０、３２５、３３０、３３５、３４０、３４５、３５０、３５５、３６０、および／または３７０の１つまたは複数個、図５に示されたステップ４２０、４３０、４４０、４５０および／または４６０の１つまたは複数個、および／または、図６に示されたステップ５１０、５２０、５３０、５４０、５５０、５６０、５７０および／または５８０のうちの１つまたは複数個を遂行する。いずれの場合も、命令は、例えば、磁気的情報記憶媒体、光学的情報記憶媒体、電子的記憶媒体等を含むコンピュータ可読媒体においてコード化され得る。「電子的記憶媒体」は、PROM、EPROM、EEPROM、FlashPROM、コンパクトフラッシュ、スマートメディア等のような、しかもそれに限定されない、１つまたは複数個の装置を意味する。
【００６２】
本発明の好ましい実施例を詳細に説明したが、「特許請求の範囲」に記載された本発明の技術的範囲から逸脱することなく、これらの実施例に対する修正およびアダプテーションを当業者が想起し得ることは明らかであろう。
【図１】
2011515746.tif 000003
【図２】
2011515746.tif 000004
【図３】
2011515746.tif 000005
【図４】
2011515746.tif 000006
【図５】
2011515746.tif 000007
【図６】
2011515746.tif 000008
【手続補正書】
【提出日】平成22年12月29日(2010.12.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＲＡＩＤアレイとして構成された複数個のデータ記憶装置を含むデータ記憶ライブラリにおいて使用するための重複排除プロトコルを選択する方法であって、
正規の重複排除プロトコルを設定するステップと、
ＲＡＩＤ障害対応の重複排除プロトコルを設定するステップと、
複数記憶装置障害対応の重複排除プロトコルを設定するステップと、
複数個のインターリーブしたデータ・ブロックを含むホスト・データを受け取るステップと、
前記ＲＡＩＤアレイがＲＡＩＤ障害を生じたまま作動しているかどうかを判断するステップと、
前記ＲＡＩＤアレイがＲＡＩＤ障害を生じたまま作動していないとき、前記正規の重複排除プロトコルを使って前記ホスト・データを処理するステップと
を含む、方法。
【請求項２】
前記正規の重複排除プロトコルは、重複しているホスト・データ・ブロックの約９０パーセント乃至約１００パーセントを重複排除する、請求項１に記載の方法。
【請求項３】
前記ＲＡＩＤアレイがＲＡＩＤ障害を生じたまま作動しているとき、前記ＲＡＩＤアレイが複数記憶装置障害を生じたまま作動しているかどうかを判断するステップと、
前記ＲＡＩＤアレイがＲＡＩＤ障害を生じたまま作動しているが、複数記憶装置障害を生じたまま作動していないとき、前記ＲＡＩＤ障害対応の重複排除プロトコルを使って前記ホスト・データを処理するステップと
を更に含む、請求項１に記載の方法。
【請求項４】
前記ＲＡＩＤ障害対応の重複排除プロトコルは、重複しているホスト・データ・ブロックの約４０パーセント乃至約６０パーセントを重複排除する、請求項３に記載の方法。
【請求項５】
前記ＲＡＩＤアレイが複数記憶装置障害を生じたまま作動している場合、前記複数記憶装置障害対応の重複排除プロトコルを使って前記ホスト・データを処理するステップを更に含む、請求項３に記載の方法。
【請求項６】
前記複数記憶装置障害対応の重複排除プロトコルは、重複しているホスト・データ・ブロックの約１５パーセント乃至約３５パーセントを重複排除する、請求項５に記載の方法。
【請求項７】
ＲＡＩＤアレイとして構成された複数個のデータ記憶装置を含むデータ記憶ライブラリにおいて使用するためのデータ重複排除プロトコルを設定する方法であって、
複数個のインターリーブした情報のブロックを受け取るステップと、
障害のあるデータ記憶ブロックの数Ｍを決定するステップと、
オフセット係数Ｏの値を設定するステップと、
Ｎ＝（Ｍ＋１）＋Ｍ＊Ｏ  としてＮに対する値を計算するステップと、
Ｎ個のデータ・ブロックごとに重複排除するステップと
を含む、方法。
【請求項８】
Ｍが０に等しいとき、Ｏを０に等しく設定するステップを更に含む、請求項７に記載の方法。
【請求項９】
Ｍが１に等しいとき、Ｏを１に等しく設定するステップを更に含む、請求項７に記載の方法。
【請求項１０】
Ｍが２に等しいとき、Ｏを２に等しく設定するステップを更に含む、請求項７に記載の方法。
【請求項１１】
最小ＲＡＩＤ再構築率閾値を設定するステップと、
最大ＲＡＩＤ再構築率閾値を設定するステップと、
実際のＲＡＩＤ再構築率を決定するステップと、
前記実際のＲＡＩＤ再構築率が前記最小ＲＡＩＤ再構築率閾値よりも小さいかどうかを判断するステップと、
前記実際のＲＡＩＤ再構築率が前記最小ＲＡＩＤ再構築率閾値よりも小さいとき、Ｏを２に等しく設定するステップと
を更に含む、請求項７に記載の方法。
【請求項１２】
前記実際のＲＡＩＤ再構築率が前記最小ＲＡＩＤ再構築率閾値よりも小さくないとき、前記実際のＲＡＩＤ再構築率が前記最大ＲＡＩＤ再構築率閾値よりも小さいかどうかを判断するステップと、
前記実際のＲＡＩＤ再構築率が前記最小ＲＡＩＤ再構築率閾値よりも小さくなく、前記最大ＲＡＩＤ再構築率閾値よりも小さいとき、Ｏを１に等しく設定するステップと
を更に含む、請求項１１に記載の方法。
【請求項１３】
前記実際のＲＡＩＤ再構築率が前記最大ＲＡＩＤ再構築率閾値よりも小さくない場合、Ｏを０に等しく設定するステップを更に含む、請求項１２に記載の方法。
【請求項１４】
請求項１乃至請求項１３のいずれかに記載のステップをプロセッサに実行させるプログラム。
【国際調査報告】
2011515746.tif 000009
2011515746.tif 000010
2011515746.tif 000011