IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7556656オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断
<>
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図1
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図2
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図3
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図4
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図5
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図6
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図7
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図8
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図9
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図10
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図11
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図12
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図13
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図14
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図15
  • 特許-オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断
(51)【国際特許分類】
   G06F 12/0868 20160101AFI20240918BHJP
   G06F 13/10 20060101ALI20240918BHJP
   G06F 3/06 20060101ALI20240918BHJP
【FI】
G06F12/0868 105
G06F13/10 340A
G06F3/06 302A
【請求項の数】 15
(21)【出願番号】P 2022561139
(86)(22)【出願日】2021-03-25
(65)【公表番号】
(43)【公表日】2023-05-25
(86)【国際出願番号】 CN2021083008
(87)【国際公開番号】W WO2021208699
(87)【国際公開日】2021-10-21
【審査請求日】2023-08-10
(31)【優先権主張番号】16/848,403
(32)【優先日】2020-04-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ハーディ、クリント、エイ
(72)【発明者】
【氏名】グプタ、ロケッシュ、モーハン
(72)【発明者】
【氏名】ニールセン、カール、アーレン
(72)【発明者】
【氏名】リンダルディ、ブライアン、アンソニー
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2007-87094(JP,A)
【文献】特開2008-40713(JP,A)
【文献】米国特許出願公開第2015/0134914(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/10
G06F 13/10
G06F 3/06
G06F 12/0868
(57)【特許請求の範囲】
【請求項1】
コンピュータ・システムが実行する方法であって、前記コンピュータ・システムが、
フルストライド・デステージに対応する第1のスコア、ストリップ・デステージに対応する第2のスコア、及び個別的トラック・デステージに対応する第3のスコアを計算することであって、前記第1のスコア、前記第2のスコア、及び前記第3のスコアは、第1の尺度及び第2の尺度に基づいて、入力/出力(I/O)オペレーションのグループについて計算され、前記第1の尺度は、データ転送のパフォーマンスに影響するように構成され、かつ前記第2の尺度は、ドライブ寿命に影響するように構成されること、及び
前記第1のスコア、前記第2のスコア及び前記第3のスコアに基づいて実行すべきデステージ・タイプの判断を行う
ことを含む方法。
【請求項2】
データ転送の前記パフォーマンスに影響するように構成される前記第1の尺度は、I/O動作及びランク上の帯域幅、不揮発性ストレージ(NVS)容量、パリティ・ロック競合、ホール、及びストライド内の未修正データを含む
請求項1に記載の方法。
【請求項3】
前記ドライブ寿命に影響するように構成される前記第2の尺度は、ドライブの消耗レベル、ドライブのライト・パー・デイ・クラシフィケーション及びストライド内での修正データ量を含む
請求項2に記載の方法。
【請求項4】
さらに、前記コンピュータ・システムが、
前記第1のスコア、前記第2のスコア、及び前記第3のスコアのうち前記第1のスコアが最高であるとの判断に応答して、前記フルストライド・デステージを実行すること
を含む、請求項3に記載の方法。
【請求項5】
さらに、前記コンピュータ・システムが、
前記第1のスコア、前記第2のスコア、及び前記第3のスコアのうち前記第2のスコアが最高であるとの判断に応答して、前記ストリップ・デステージを実行すること
を含む、請求項3に記載の方法。
【請求項6】
さらに、前記コンピュータ・システムが、
前記第1のスコア、前記第2のスコア、及び前記第3のスコアのうち前記第3のスコアが最高であるとの判断に応答して、前記個別的トラック・デステージを実行すること
を含む、請求項3に記載の方法。
【請求項7】
さらに、前記コンピュータ・システムが、
構成データ構造から前記第1の尺度についての第1の重み及び前記第2の尺度についての第2の重みを読み出すこと、及び
前記第1の尺度に基づいて計算される第1のサブスコアに提供される前記第1の重み及び前記第2の尺度に基づいて計算される第2のサブスコアに提供される前記第2の重みに基づいて、前記第1のスコア、前記第2のスコア、及び前記第3のスコアを計算すること
を含む請求項1に記載の方法。
【請求項8】
システムであって、
メモリ及び
前記メモリに結合されるプロセッサであって、前記プロセッサが動作を実行し、前記プロセッサにより実行される前記動作が、
フルストライド・デステージに対応する第1のスコア、ストリップ・デステージに対応する第2のスコア、及び個別的トラック・デステージに対応する第3のスコアを計算することであって、前記第1のスコア、前記第2のスコア、及び前記第3のスコアは、第1の尺度及び第2の尺度に基づいて、入力/出力(I/O)動作のグループについて計算され、前記第1の尺度は、データ転送のパフォーマンスに影響するように構成され、かつ前記第2の尺度は、ドライブ寿命に影響するように構成されること、及び
前記第1のスコア、前記第2のスコア及び前記第3のスコアに基づいて実行すべきデステージ・タイプの判断を行う
ことを含むシステム。
【請求項9】
データ転送の前記パフォーマンスに影響するように構成される前記第1の尺度は、I/O動作及びランク上の帯域幅、不揮発性ストレージ(NVS)容量、パリティ・ロック競合、ホール、及びストライド内の未修正データを含む
請求項8に記載のシステム。
【請求項10】
前記ドライブ寿命に影響するように構成される前記第2の尺度は、ドライブの消耗レベル、ドライブのライト・パー・デイ・クラシフィケーション及びストライド内での修正データ量を含む
請求項9に記載のシステム。
【請求項11】
前記動作がさらに、
前記第1のスコア、前記第2のスコア、及び前記第3のスコアのうち前記第1のスコアが最高であるとの判断に応答して、前記フルストライド・デステージを実行すること
を含む、請求項10に記載のシステム。
【請求項12】
前記動作がさらに、
前記第1のスコア、前記第2のスコア、及び前記第3のスコアのうち前記第2のスコアが最高であるとの判断に応答して、前記ストリップ・デステージを実行すること
を含む、請求項10に記載のシステム。
【請求項13】
さらに前記動作が、
前記第1のスコア、前記第2のスコア、及び前記第3のスコアのうち前記第3のスコアが最高であるとの判断に応答して、前記個別的トラック・デステージを実行すること
を含む、請求項10に記載のシステム。
【請求項14】
さらに前記動作が、
構成データ構造から前記第1の尺度についての第1の重み及び前記第2の尺度についての第2の重みを読み出すこと
前記第1の尺度に基づいて計算される第1のサブスコアに提供される前記第1の重み及び前記第2の尺度に基づいて計算される第2のサブスコアに提供される前記第2の重みに基づいて、前記第1のスコア、前記第2のスコア、及び前記第3のスコアを計算すること
を含む請求項8に記載のシステム。
【請求項15】
請求項1~請求項7いずれか一項に記載の方法をコンピュータ・システムに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、オペレーションのパフォーマンスとドライブ寿命の維持との間の優先順位に基づく実行すべきデステージ・タイプの判断に関する。
【背景技術】
【0002】
一定のストレージ・システム環境においては、ストレージ・コントローラ(又はストレージ・コントローラ複合体)は、互いに結合された、複数のストレージ・サーバを含むことができる。ストレージ・コントローラは、ホスト・コンピューティング・システムがストレージ・コントローラによって制御されるストレージ・デバイスと入力/出力(I/O)オペレーションを実行することを許容し、そこでは、ホスト・コンピューティング・システムは、ホストとして参照される。
【0003】
ストレージ・コントローラは、2つ又はそれ以上のサーバを含むことができ、そこでは、それぞれのサーバは、ノード、ストレージ・サーバ、プロセッサ複合体、セントラル・プロセッサ複合体(Central Processor Complex: CPC)、又はセントラル・エレクトロニクス複合体(Central Electronics Complex: CEC)として参照されることができる。それぞれのサーバは、複数のプロセッサ・コアを有すると共に、サーバは、ストレージ・コントローラのワークロードを共有することができる。デュアル・サーバ・ベースのストレージ・コントローラとしてまた参照される、ストレージ・コントローラの2つのサーバの構成においては、2つのサーバのうちの1つの故障の事態において、故障していない他のサーバは、故障したサーバによって実行されていた動作を承継することができる。
【0004】
ホストから書き込まれるデータは、ストレージ・コントローラのキャッシュに格納されることができ、かつ適切な時間でキャッシュ内に格納されていたデータがストレージ・デバイスへとデステージされることができる(すなわち、移動されるか又はコピーされる)。データはまた、ストレージ・デバイスからストレージ・コントローラのキャッシュへと、ステージ(すなわち、移動されるか又はコピーされる)されることができる。ストレージ・コントローラは、もしも読み出しI/Oリクエストについてのデータがキャッシュ内において利用可能ならば、ホストからの読み出しI/Oリクエストにキャッシュから応答することができ、そうでなければデータは、読み出しI/Oリクエストに応答するために、ストレージ・デバイスからキャッシュへとステージされることができる。ホストからの書き込みI/Oリクエストは、書き込まれるべき書き込みに対応するデータをキャッシュへと書き込ませると共に、その後、適切な時間で書き込まれたデータは、キャッシュからストレージ・デバイスへとデステージされることができる。キャッシュのストレージ容量は、ストレージ・デバイスのストレージ容量に比較して相対的に小さいので、データは、定期的にキャッシュからデステージされて、キャッシュ内に空のストレージ空間を生成することができる。データは、ストレージ・デバイスからの読み出し及び書き込みに比較して、キャッシュからはるかに速く書き込み及び読み出しされることができる。
【0005】
コンピュータ・データ・ストレージにおいては、データ・ストリッピングは、論理的にシーケンシャルなファイルといったデータをセグメント化する技術であり、結果としてのセグメントがディスクといった異なる物理的ストレージ・デバイス上に格納される。動作が次のディスクについて継続する前にディスクとの間で書き込み、又は読み出しされるシーケンシャル・データのセグメントは、通常、チャンク、ストライド、又はストライプ・ユニットと呼ばれ、単一のストリップされた動作を形成するそれらの複数の論理的グループは、ストリップス又はストライプスと呼ばれる。
【0006】
ストリッピングは、リダンダント・アレイ・オブ・ディスクズ(Redundant array of Independent disks: RAID)ストレージにおいて、ディスクを横断して使用される。RAIDは、データ冗長化及びパフォーマンス向上の目的のため、多数の物理ディスク・ドライブのコンポーネントを、1つ又はそれ以上の論理的ユニットへと結合するデータ・ストレージの仮想化技術である。データは、要求される冗長化及びパフォーマンスのレベルに依存して、RAIDレべルとして参照される、いくつかの仕方のうちの1つにおいてドライブを横断して分散される。異なるスキーム又はデータ分散レイアウトは、単語“RAID”に続く数字、例えばRAID0又はRAID1により名付けられる。各スキーム又はRAIDレベルは、信頼性、可用性、パフォーマンス及び容量のキーとなる目標の間で、異なるバランスを提供する。RAID0よりも大きなRAIDレベルは、格納されたデータについて保持されるパリティ情報を介する全物理ドライブの故障に対応することに加え、リカバー不能のセクタ・リード・エラーに対する保護を提供する。ストリップは、単一のディスクに関連する用語であり、そのディスク内で事前定義された数の連続的にアドレス可能なブロックである。ストライプは、RAIDセットの場合において動作し、かつそのRAIDセット内の全ドライブを横断して広がるストリップスのセットである。
【発明の概要】
【0007】
提供されるものは、方法、システム及びプログラム製品であり、フルストライド・デステージに対応する第1のスコア、ストリップ・デステージに対応する第2のスコア、及び個別的トラック・デステージに対応する第3のスコアが計算され、前記第1のスコア、前記第2のスコア、及び前記第3のスコアは、第1の尺度及び第2の尺度に基づいて、入力/出力(I/O)オペレーションのグループについて計算され、前記第1の尺度は、データ転送のパフォーマンスに影響するように構成され、かつ前記第2の尺度は、ドライブ寿命に影響するように構成される。前記第1のスコア、前記第2のスコア及び前記第3のスコアに基づいて実行すべきデステージ・タイプの判断が行われる。
【0008】
追加的な実施形態においては、データ転送の前記パフォーマンスに影響するように構成される前記第1の尺度は、I/Oオペレーション及びランク上の帯域幅、不揮発性ストレージ(NVS)容量、パリティ・ロック競合、ホール、及びストライド内の未修正データを含む。
【0009】
さらなる実施形態においては、前記ドライブ寿命に影響するように構成される前記第2の尺度は、ドライブの消耗レベル、ドライブのライト・パー・デイ・クラシフィケーション及びストライド内での修正データ量を含む。
【0010】
一定の実施形態においては、前記第1のスコア、前記第2のスコア、及び前記第3のスコアのうち前記第1のスコアが最高であるとの判断に応答して、前記フルストライド・デステージが実行される。
【0011】
一定の実施形態においては、前記第1のスコア、前記第2のスコア、及び前記第3のスコアのうち前記第2のスコアが最高であるとの判断に応答して、前記ストリップ・デステージが実行される。
【0012】
一定の実施形態においては、前記第1のスコア、前記第2のスコア、及び前記第3のスコアのうち前記第3のスコアが最高であるとの判断に応答して、前記個別的トラック・デステージが実行される。
【0013】
さらなる実施形態においては、構成データ構造から前記第1の尺度についての第1の重み及び前記第2の尺度についての第2の重みが読み出される。前記第1のスコア、前記第2のスコア、及び前記第3のスコアを計算することは、前記第1の尺度に基づいて計算される第1のサブスコアに提供される前記第1の重み及び前記第2の尺度に基づいて計算される第2のサブスコアに提供される前記第2の重みに基づく。
【0014】
ここで、図面を参照するが、これらを通じて同様の参照番号は、対応する部分を表す。
【図面の簡単な説明】
【0015】
図1図1は、一定の実施形態による1つ又はそれ以上のホスト及び1つ又はそれ以上のストレージ・デバイスに結合されたストレージ・コントローラを含むコンピューティング環境のブロック図を示す。
図2図2は、一定の実施形態によるストレージ・コントローラによって実行されることができるデステージ・タイプを示すブロック図を示す。
図3図3は、一定の実施形態によるそれぞれのデステージ・タイプについて計算されたスコア・タイプを示すブロック図を示す。
図4図4は、一定の実施形態によるパフォーマンス・ベースのスコアについてのファクタを示すブロック図である。
図5図5は、一定の実施形態によるドライブ寿命ベースのスコアについてのファクタを示すブロック図である。
図6図6は、一定の実施形態による実行するべきデステージ・タイプを選択するためのフローチャートを示す。
図7図7は、一定の実施形態による実行すべきデステージ・タイプを選択するためのフローチャートである。
図8図8は、一定の実施形態によるパフォーマンス・ファクタに基づくスコアリンスのためのブロック図を示す。
図9図9は、一定の実施形態によるパフォーマンス・ファクタに基づくスコアリングのためのブロック図を示す。
図10図10は、一定の実施形態によるパフォーマンス・ファクタに基づくスコアリングのためのブロック図を示す。
図11図11は、一定の実施形態によるパフォーマンス・ファクタに基づくスコアリングのためのブロック図を示す。
図12図12は、一定の実施形態によるドライブ寿命ファクタに基づくスコアリングのためのブロック図を示す。
図13図13は、一定の実施形態による実行するべきデステージ・タイプを選択するためのフローチャートを示す。
図14図14は、一定の実施形態によるクラウド・コンピューティング環境のブロック図を示す。
図15図15は、一定の実施形態による図14のクラウド・コンピューティング環境のさらなる詳細なブロック図を示す。
図16図16は、一定の実施形態による図1~15に記載されたストレージ・コントローラ又はホストに含まれることができる一定の要素を示す計算機システムのブロック図である。
【発明を実施するための形態】
【0016】
以下の説明において、参照は、本明細書の部分を形成し、かついくつかの実施形態を例示する添付の図面を参照する。他の実施形態が利用でき、かつ構造的及び動作的変更が成しえることが理解される。
【0017】
一定の実施形態においては、ストレージ・コントローラは、デステージのパフォーマンス及びドライブ寿命に影響する種々のファクタに基づいて、フルストライド・デステージ、又はフルストライド・デステージではない複数のデステージ(例えばストリップ・デステージ又は個別的トラック・デステージ)を実行することができる。フルストライド・デステージにおいては、ストライズ(又はストライプス)全部内の全部のデータ及びパリティがデステージの間に書き込まれる。ストリップ・デステージにおいては、1つ又はそれ以上のストリップスが、デステージの間に書き込まれる。トラック・デステージにおいては、1つ又はそれ以上の複数のトラックが、デステージの間に書き込まれる。
【0018】
デステージを実行する間には、多くのファクタがデステージのパフォーマンス及びドライブ寿命に影響する可能性があり、ここで、パフォーマンスは、どれだけデステージが迅速に完了するかを参照し、かつドライブ寿命は、ドライブの寿命見込み又は耐久性を参照する。デステージのパフォーマンス及びドライブ寿命に影響するそのようなファクタとしては:
1.不揮発性ストレージ(NVS)が満杯か否か;
2.ストライド内の修正データ量;
3.パリティ・ロック競合
4.I/Oがシーケンシャルか否か;
5.データがシーケンシャルにディスクに書き込まれるか否か;
6.ストライド内に既に存在する未修正データ、又はステージの必要性;
7.ランク上で帯域幅の使用
8.ランク上での現在の1秒当たりのI/Oオペレーション数(I/O operations per second:IOPS)
9.ストライド内のホールの数
10.フラッシュ消耗レベル
11.ドライバのライト・パー・デイ・クラシフィケーション(Write Per Day Classification)
12.フルストライド・デステージvs.ストリップ・デステージvs.個別的トラック・デステージについてのIOPS数
13.ランク上でのステージ/デステージについてのレスポンス時間
【0019】
カスタマーは、デステージ動作のドライブ寿命と、パフォーマンスとの間をうまくバランスすることを好む可能性がある。一定の実施形態においては、ストレージ・コントローラは、フルストライド・デステージを実行するか、又はフルストライド・デステージを実施しないか(例えば、ストリップ・デステージ又は個別的トラック・デステージ)を、パフォーマンスに影響するファクタに基づいて、及びドライブ寿命に影響するファクタに基づいて判断する。
【0020】
ファクタのいくつかは、ドライブの耐久性(すなわち、ドライブの寿命)に影響するが、他は、パフォーマンスに影響する。一定のカスタマーは、ドライブ寿命よりもパフォーマンスを好む可能性があるが、他は、パフォーマンスよりもドライブ寿命を好む可能性がある。一定の実施形態は、パフォーマンス及びドライブ寿命について、複数のファクタに基づいて別々のスコアを計算し、かつ特定のカスタマーについてどのスコアが好ましいかを決定する構成設定を可能とする。
【0021】
ある実施形態は、2次ストレージを形成するフラッシュ・ドライブの寿命を最適化する尺度及びデータ転送のパフォーマンスを最適化する尺度に基づいて、I/Oオペレーションのグループについてのフルストライド・デステージ、ストリップ・デステージ、及び個別的トラック・デステージについてのスコアを計算し、これにおいて、ドライブ寿命のための尺度は、フラッシュ・ドライブの消耗レベル及びライト・パー・デイ・クラシフィケーション及びストライドにおいての修正データ量を含み、かつパフォーマンスについての尺度は、I/Oオペレーション及びランク上の帯域幅、NVSストレージ容量、パリティ・ロック競合、ホール、及びストライドにおける未修正データを含む。実行するべきデステージ・タイプの選択は、計算されたスコアに基づき、これは、フラッシュ・ドライブのドライブ寿命を最適化すると共に、またデステージについて、データ転送のパフォーマンスを最適化する。結果として、ストレージ・コントローラの動作における改善が成される。
実施例としての実施形態
【0022】
図1は、キャッシュ104及び不揮発性ストレージ(NVS)106を有し、1つ又はそれ以上のホスト108及び1つ又はそれ以上のストレージ・デバイス110、112に結合されたストレージ・コントローラ102を含むコンピューティング環境100のブロック図を示す。1つ又はそれ以上のストレージ・デバイス110、112は、RAIDに構成されたストレージ114を形成する。
【0023】
ストレージ・コントローラ102は、1つ又はそれ以上のホスト108がストレージ・コントローラ102によって維持される論理ストレージと、入力/出力(I/O)オペレーションを実行することを許容する。論理ストレージに対応する物理ストレージは、ストレージ・コントローラ102のストレージ・デバイス110、112又はキャッシュ104、又は不揮発性ストレージ(NVS)106又はこれらの組み合わせの1つ又はそれ以上において見出すことができる。
【0024】
ストレージ・コントローラ102及びホスト108は、当技術において現在知られている、パーソナル・コンピュータ、ワークステーション、サーバ、メインフレーム、ハンドヘルド・コンピュータ、パームトップ・コンピュータ、電話デバイス、ネットワーク機器、ブレード・コンピュータ、処理デバイス、コントローラなどといった如何なる好適な計算機デバイスを含むことができる。一定の実施形態においては、ストレージ・コントローラ102は、複数のサーバを含む。複数のサーバは、もしも1つのサーバが故障となり、それからのリカバリが不可能となる場合に代替的なサーバが故障したサーバの機能を提供することを可能とするので、冗長性を提供する。複数のサーバのそれぞれは、処理複合体として参照され、かつ1つ又はそれ以上のプロセッサ又はプロセッサ・コア、又はこれらの両方を含むことができる。
【0025】
ストレージ・コントローラ102及び1つ又はそれ以上のホスト108は、ストレージ・エリア・ネットワーク、ワイド・エリア・ネットワーク、インターネット、イントラネットと言った如何なる好適なネットワークにおける要素とすることができる。一定の実施形態においては、ストレージ・コントローラ102及び1つ又はそれ以上のホスト108は、クラウド・コンピューティング環境内の要素とすることができる。
【0026】
キャッシュ104及び不揮発性ストレージ106は、本技術において知られているか、又は将来開発される如何なる好適なメモリとすることができる。キャッシュ104及び不揮発性ストレージ106は、ストレージ・コントローラ102のデュアル・サーバ構成における2つのサーバの間に分散されることができる。ソフトウェア、ハードウェア、ファームウェア、又はこれらの如何なる組み合わせにおいて、ストレ―ジ・コントローラ102内に実装されるデステージ管理アプリケーション116は、ストレージ・コントローラ102からの、ストレージ・デバイス110、112を含む2次ストレージへのデステージ動作を制御することができる。
【0027】
複数のストレージ・デバイス110、112は、本技術において既知の如何なるストレージ・デバイスを含むことができる。例えば、ストレージ・デバイス110は、ソリッド・ステート・ドライブ(SSD)とすることができると共に、ストレージ・デバイス112は、ハードディスク・ドライブ(HDD)とすることができる。
【0028】
I/Oオペレーションのパフォーマンスのための重み(参照番号120により示される)を提供すると共にドライブ寿命についての重み(参照番号122により示される)を提供する構成データ構造118は、ストレージ・コントローラ102によって保持されることができ、ここで、重みは、I/Oオペレーションのパフォーマンスよりもドライブ寿命を優先するか否か、若しくはドライブ寿命よりもI/Oオペレーションのパフォーマンスを優先するか否かを指示するカスタマー又は管理者又はユーザにより与えられる。それは、ドライブ(特にソリッド・ステート・ドライブといったフラッシュ・ドライブの場合)のドライブ寿命を低下させる書き込みをすることであろう。
【0029】
図2は、一定の実施形態による、RAID構成内に格納されたデータを有するストレージ・コントローラ102によって実行されることができるデステージ・タイプを示すブロック図200を示す。デステージのタイプは、フルストライド・デステージ202、ストリップ・デステージ204及び個別的トラック・デステージ206を含む。
【0030】
フルストライド・デステージ202においては、全部のストライズがデステージされる。ストリップ・デステージ204においては、選択されたストリップスがデステージされる。個別的トラック・デステージ206においては、選択された複数のトラックがデステージされる。ストリップは、複数のトラックを含むことについて留意されるべきである。
【0031】
図3は、一定の実施形態による、それぞれのデステージ・タイプについて計算されたスコア・タイプを示すブロック図を示す。デステージ・タイプそれぞれについて計算されるスコア・タイプ(フルストライド・デステージ202、ストリップ・デステージ204、個別的トラック・デステージ206)は、パフォーマンス・ベース・スコア302及びドライブ寿命ベース・スコア304を含む。パフォーマンス・ベース・スコア302は、ディスクI/Oオペレーションに影響するファクタに基づき、かつドライブ寿命ベース・スコア304は、ディスクの耐久性(寿命)に影響するファクタに基づく。
【0032】
図4は、一定の実施形態による、パフォーマンス・ベース・スコアを要素化するブロック図400を示す。パフォーマンス・ベース・スコアについてのファクタは、以下を含む:
1.NVS満杯か否か(参照番号402)
2.フルストライド・デステージvs.ストリップ・デステージvs.個別的トラック・デステージについて1秒当たりのI/Oオペレーション数(IOPS)(参照番号404)
3.パリティ・ロック競合(参照番号406)
4.I/Oがシーケンシャルか否か(参照番号408)
5.データがシーケンシャルにディスクに書き込まれたか否か(参照番号410)
6.ストライドにすでに存在している未修正データ又はステージの必要性(参照番号412)
7.ランク上での帯域幅の使用(参照番号414)
8.ランク上での現在のIOPS数(参照番号416);及び
9.ストライド内のホール数(参照番号418)
【0033】
さらに、これらのパフォーマンス・ファクタのそれぞれの詳細は、本開示において後に説明されるであろう。パフォーマンス・ファクタのそれぞれは、直接に、又は間接的にデステージ動作の間のディスクI/Oパフォーマンスに影響する。
【0034】
図5は、一定の実施形態によるドライブ寿命ベースのスコアについてのファクタを示すブロック図500を示す。ドライブ寿命ベースのスコアについてのファクタは、以下を含む:
1.ストライド内の修正データ量(参照番号502)
2.フラッシュ消耗レベル(参照番号504);及び
3.ドライブのライト・パー・デイ・クラシフィケーション(参照番号506)
【0035】
これらのドライブ寿命ファクタのそれぞれのさらなる詳細については、本開示において後に説明されるであろう。パフォーマンス・ファクタのそれぞれは、直接又は間接的にデステージ動作の間のドライブ寿命に影響する。
【0036】
図6は、一定の実施形態による実行するべきデステージ・タイプを選択することについてのフローチャート600を示す。一定の実施形態においては、図6に示す動作は、ストレージ・コントローラ102内で実行するデステージ管理アプリケーション116によって実行されることができる。
【0037】
制御は、ブロック602で開始し、そこでは、デステージ管理アプリケーション116は、フルストライド・デステージ202、ストリップ・デステージ204、及び個別的トラック・デステージ206について、パフォーマンス・ベース・スコア302及びドライブ寿命ベース・スコア304を計算する。制御は、ブロック604に進み、そこで、デステージ管理アプリケーション116は、構成データ構造118内に作成された構成設定に基づいて、フルストライド・デステージ202、ストリップ・デステージ204、及び個別的トラック・デステージ206を選択する。例えば、もしもパフォーマンスについての重み120が、ドライブ寿命についての重み122よりも大きければ、その後、パフォーマンス・ベース・スコア302がドライブ受領ベース・スコア304よりも、より重み付けされる。
【0038】
結果的に、構成データ構造118内のカスタマーにより提供された指示に基づいて、パフォーマンス及びドライブ寿命についての最適化が行われる。例えば、フルストライド・デステージは、一定の実施形態においてはカスタマーによって提供された指示に密着するために最適である可能性があるが、他の実施形態では、ストライプ・デステージ又は個別的トラック・デステージが最適である可能性がある。
【0039】
図7は、ある実施形態による実行するべきデステージ・タイプを選択するためのフローチャート700を示す。一定の実施形態においては、図7に示す動作は、ストレージ・コントローラ102内で実行するデステージ管理アプリケーション116によって実行されることができる。
【0040】
制御は、ブロック702で開始し、そこでプロセスは、変数、FullStrideScore、 StripScore、及び IndividualTrackScoreを0に初期化し、その後、パフォーマンス・ファクタに基づいて、フルストライド・デステージ、ストリップ・デステージ、及び個別的トラック・デステージのそれぞれについてパフォーマンス・スコアを計算する(ブロック704で)。
【0041】
制御は、またブロック706で開始し(ブロック702に並列的に)、そこでは、プロセスは、FullStrideScore、StripScore及び IndividualTrackScoreを0に初期化し、その後、ドライブ寿命ファクタに基づいて、フルストライド・デステージ、ストリップ・デステージ、及び個別的トラック・デステージのそれぞれについてドライブ寿命スコアを計算する(ブロック708で)。
【0042】
ブロック704及びブロック708が完了すると、制御はブロック710に進み、そこで、プロセスは、以下のように重み付きフルストライド・スコアを計算する:
【0043】
【数1】
【0044】
PerformanceWeightは、構成データ構造118内に提供された、パフォーマンスについての重み120であり、DrivelifeWeightは、ドライブ寿命の重み122である。
【0045】
ブロック710が完了すると、制御は、ブロック712に進み、そこでプロセスは、重み付けストリップ・スコアを計算する:
【0046】
【数2】
【0047】
ブロック712が完了すると、制御は、ブロック714に進み、そこで、プロセスは、重み付け個別的トラック・スコアを以下のように計算する:
【0048】
【数3】
【0049】
ブロック714から、制御は、ブロック716へと進み、そこで、プロセスは、WeightedFullStrideScore、WeightedStripScore 及び WeightedIndividualTrackScoreのどれが最も高いかを判断し、対応するデステージ・メカニズムを使用する。例えば、もしもWeightedFullStrideScoreが最高ならば、その後、フルストライド・デステージが実行される。
【0050】
図8~11は、FullStrideScore, StripScore and IndividualTrackScoreを0に初期化した後の図7のブロック704に示された動作についての詳細を提供する。これらのスコアは、連続して説明される図8~11において増分される。動作は、疑似コードにおいて自己説明的に示される。代替的な実施形態は、異なる仕方でスコアを計算することができ、図8~11に示されるものは、実施例である。
【0051】
図8は、一定の実施形態によるパフォーマンス・ファクタに基づくスコアリングについてのブロック図800を示す。
【0052】
ブロック802は、以下の疑似コードを介して、NVSが満杯か否かのパフォーマンス・ファクタを説明する(図4の参照番号402を介して示される):
【0053】
【数4】
【0054】
ブロック804は、フルストライド・デステージvs.ストリップ・デステージvs.個別的トラック・デステージのIOPS数のパフォーマンス・ファクタを(図4の参照番号404を介して示される)、以下の疑似コードにより説明する。
【0055】
【数5】
【0056】
図9は、一定の実施形態によるパフォーマンス・ファクタに基づくスコアリングのためのブロック図900を示す。
【0057】
ブロック902は、パリティ・ロック競合のパフォーマンス・ファクタ(図4の参照番号406を介して示される)を、以下の疑似コードを介して説明する:
【0058】
【数6】
【0059】
ブロック904は、I/Oがシーケンシャルか否かのパフォーマンス・ファクタ(図4の参照番号408を介して示される)を以下の疑似コードで説明する。
【0060】
【数7】
【0061】
ブロック906は、データがディスク上でシーケンシャルに書き込みされているか否か(図4の参照番号410を介して示される)を説明する。もしもデータが以前にディスク上にシーケンシャルに書き込まれているのであれば、その後、フルストライド・デステージを行うことがより好ましい。これは、トラックの論理-物理マッピングを見ることによってチェックすることができる。もしも、論理-物理マッピングがストライド内のすべてのトラックについて同一の順序であるならば、データは、以前にフルストライドとしてデステージされたものである。
疑似コードは、以下の通りである:
【0062】
【数8】
【0063】
図10は、ある実施形態によるパフォーマンス・ファクタに基づくスコアリングのためのブロック図1000を示す。
【0064】
ブロック1002は、ストライド内に既に存在する未修正データ、又はステージの必要があるパフォーマンス・ファクタ(図4の参照番号412を介して示される)を説明する。そのような場合には、もしもストライドの大部分がキャッシュ内にあり修正又は未修正のどちらかであれば、ステージはそれほど必要なく、かつこのことは、フルストライド・デステージが利益的であり、その後にストリップ及びその後に個別的トラックの順である。疑似コードは、以下の通りである:
【0065】
【数9】
【0066】
実施形態は、25%、50%、75%で閾値を有する。これらのパーセンテイジは、RAIDアレイ(RAID5、RAID-6など)のジェオメトリに基づいて変化することができる。
【0067】
ブロック1004は、ランク上での帯域幅使用のパフォーマンス・ファクタを説明する(図4の参照番号414を介して示される)。そのような状況においては、もしも帯域幅使用が高いならば、その後フルストライド又はストリップでデステージすることは、パフォーマンスを害する。疑似コードは、以下の通りである:
【0068】
【数10】
【0069】
図11は、一定の実施形態による、パフォーマンス・ファクタに基づくスコアリングのためのブロック図1100を示す。
【0070】
ブロック1102は、現在のランク上のIOPS数のパフォーマンス・ファクタを記載する(図4の参照番号416を介して示される)。もしもIOPS数が大きいのであれば、それがストリップvs.個別的トラックvs.に対して小さいIOPS数を有するので、フルストライドがより好ましい。疑似コードは、以下のとおりである:
【0071】
【数11】
【0072】
ブロック1104は、“ストライド中のホール数”のパフォーマンス・ファクタ(図4の参照番号418を介して示される)を説明する。
より多くのホール数では、フルストライド・デステージを行うことがより好ましく、その後にストリップ、その後に個別的トラックの順である。疑似コードは、以下のとおりである:
【0073】
【数12】
【0074】
図12は、一定の実施形態によるドライブ寿命ファクタに基づくスコアリングのブロック図1200を示す。図12は、FullStrideScore、StripScore及び IndividualTrackScoreを0に初期化した後の図7のブロック708に示される動作についての詳述を提供する。これらのスコアは、続いて説明される図12に示される動作において増分される。
【0075】
ブロック1202は、“ストライド中の修正データ量”のドライブ寿命ファクタを説明する(図5の参照番号502を介して示される)。修正データ量が多い場合、フルストライドが好適であり、その後、ストリップ・デステージ、個別的トラックの順である。疑似コードは、以下の通りである:
【0076】
【数13】
【0077】
ブロック1204は、“フラッシュ消耗レベル”のドライブ寿命ファクタを説明する(図5の参照番号504を介して示される)。もしもフラッシュ消耗レベルが高いのであれば、その後まさに修正データをデステージすることが利益的である。疑似コードは、以下の通りである:
【0078】
【数14】
【0079】
ブロック1206は、“ドライブのライト・パー・デイ・クラシフィケーション”のドライブ寿命ファクタを説明する(図5の参照番号506を介して示される)。ライト・パー・デイ・クラシフィケーションがより高くなると、フラッシュを消耗させずにデステージされることができるより多くのデータが存在する。ライト・パー・デイ・クラシフィケーションが高い場合には、フルストライド・デステージを行うことがより良い。疑似コードは、以下のとおりである:
【0080】
【数15】
【0081】
図13は、一定の実施形態による実行するべきデステージ・タイプを選択するためのフローチャートを示す。一定の実施形態においては、図13に示す動作は、ストレージ・コントローラ102内で実行するデステージ管理アプリケーション116によって実行されることができる。
【0082】
制御は、ブロック1300で開始し、これは、フルストライド・デステージに対応する第1のスコア、ストリップ・デステージに対応する第2のスコア、及び個別的トラック・デステージに対応する第3のスコアを計算し、ここで、第1のスコア、第2のスコア、及び第3のスコアは、第1の尺度及び第2の尺度に基づいて、入力/出力(I/O)動作のグループについて計算され、ここで、第1の尺度は、データ転送のパフォーマンスに影響するように構成され、かつ第2の尺度は、ドライブ寿命に影響するように構成される。
【0083】
ブロック1302から制御は、ブロック1304へと進み、ここで第1のスコア、第2のスコア及び第3のスコアに基づいて実行すべきデステージ・タイプの判断を行う。ある実施形態においては、実行すべきデステージ・タイプは、第1のスコア、第2のスコア及び第3のスコアの間で第1のスコアが最高との判断に応答してフルストライド・デステージであると判断される。一定の実施形態においては、実行すべきデステージ・タイプは、第1のスコア、第2のスコア及び第3のスコアの間で第2のスコアが最高との判断に応答してストリップ・デステージであると判断される。一定の実施形態においては、実行すべきデステージ・タイプは、第1のスコア、第2のスコア及び第3のスコアの間で第3のスコアが最高との判断に応答して個別的トラック・デステージであると判断される。
【0084】
追加的な実施形態においては、データ転送のパフォーマンスに影響するように構成される第1の尺度は、I/Oオペレーション及びランクの帯域幅、不揮発性ストレージ(NVS)容量、パリティ・ロック競合、及びストライド内でのホール及び未修正データを含む。ドライブ寿命に影響するように構成される第2の尺度は、ドライブの消耗レベル、ドライブのライト・パー・デイ・クラシフィケーション及びストライド内での修正データ量を含む。
【0085】
ある実施形態においては、第1の尺度につての第1の重み120及び第2の尺度についての第2の重み122は、構成データ構造118から読み出される。第1のスコア、第2のスコア及び第3のスコアを計算することは、第1の尺度に基づいて計算される第1のサブスコアについて与えられる第1の重みと、第2の尺度に基づいて計算される第2のサブスコアについて与えられる第2の重みとに基づく。
【0086】
図1~13において説明された実施形態は、変数、FullStrideScore、StripScore及びIndividualTrackScoreについて一定の増分を示すが、代替的な実施形態においては、他の増分を使用することができる。例えば、増分1及び2の代わりに、代替的な実施形態ではそれぞれX及びY増分することができ、ここで、X及びYは、自然数であり、Yは、Xよりも大きい。同様に、実施形態に示される一定のパーセンテイジは、代替的な実施形態において異なる可能性がある。実施形態における一定の代表的な値が割り当てられる他のパラメータが存在し、これらのパラメータは、代替的な実施形態において異なる可能性がある。
【0087】
したがって、図1~13は、パフォーマンスについての、構成データ構造118において提供される重み及びドライブ寿命についての重みに密着して実行するべきデステージ・タイプを判断する一定の実施形態を示す。
クラウド・コンピューティング環境
【0088】
クラウド・コンピューティングは、最小限の管理労力又はサービス提供者との交流をもって、迅速に提供及び開放構成可能なコンピューティング資源(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン及びサービス)の共用されるプールにアクセスするための利便性のある、オンデマンドのネットワークアクセスのためのサービス提供のモデルである。
【0089】
ここで、図14を参照して例示的なクラウド・コンピューティング環境50を図示する。図示するように、クラウド・コンピューティング環境50は、1つ又はそれ以上のクラウド・コンピューティング・ノード10を含み、それらと共にクラウド・コンシューマにより使用される例えばパーソナル・デジタル・アシスタント(PDA)又はセルラ電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、又は自動車コンピュータ・システム54N又はこれらの組合せといったローカル・コンピューティング・デバイスが通信する。ノード10は、互いに通信することができる。これらは、上述したプライベート、コミュニティ、パブリック、又はハイブリッド・クラウド、又はそれらの組合せといった、1つ又はそれ以上のネットワーク内で、物理的又は仮想的にグループ化することができる(不図示)。これは、クラウド・コンピューティング環境50が、クラウド・コンシューマがローカルなコンピューティング・デバイス上のリソースを維持する必要を無くするための、インフラストラクチャ、プラットホーム、又はソフトウェア・アズ・ア・サービスを提供することを可能とする。図10に示すコンピューティング・デバイス54A~Nのタイプは、例示を意図するためのみのものであり、コンピューティング・ノード10及びクラウド・コンピューティング環境50は、任意のタイプのネットワーク、又はアドレス可能なネットワーク接続(例えばウェブ・ブラウザ)、又はそれらの両方を通じて、いかなるタイプのコンピュータ化デバイスとも通信することができることが理解される。
【0090】
図15を参照すると、クラウド・コンピューティング環境50(図14)により提供される機能的抽象レイヤのセットが示される。予め、図15に示したコンポーネント、レイヤ、及び機能は、例示することのみを意図したものであり、本発明の実施形態は、これらに限定されることは無いことは理解されるべきである。
【0091】
ハードウェア及びソフトウェア・レイヤ60は、ハードウェア及びソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの実施例は、メインフレーム、1つの実施例では、IBM zSeriesシステム;RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ、1つの実施例では、IBM pSeriesシステム;IBM xSeriesシステム;IBM BladeCenterシステム;ストレージ・デバイス;ネットワーク及びネットワーキング・コンポーネントを含む。ソフトウェア・コンポーネントの実施例は、ネットワーク・アプリケーション・サーバ・ソフトウェア、1つの実施例では、IBM WebSphereアプリケーション・サーバ・ソフトウェア;及びデータベース・ソフトウェア、1つの実施例ではIBM DB2データベース・ソフトウェアを含む。
【0092】
可視化レイヤ62は、それから後述する仮想エンティティの実施例が提供される抽象レイヤ;仮想サーバ;仮想ストレージ;仮想プライベート・ネットワークを含む仮想ネットワーク;仮想アプリケーション及びオペレーティング・システム;及び仮想クライアントを提供する。
【0093】
1つの実施例では、マネージメント・レイヤ64は、下記の機能を提供することができる。リソース提供部は、コンピューティング資源及びクラウド・コンピューティング環境内でタスクを遂行するために用いられる他の資源の動的獲得を提供する。
計測及び価格設定部は、クラウド・コンピューティング環境内で資源が使用されるとコストの追跡を提供すると共に、これらの資源の消費に対する課金又は請求を提供する。
1つの実施例では、これら資源としてはアプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティ部は、クラウト・コンシューマ及びタスクの同定及び認証と共にデータ及び他の資源の保護を提供する。ユーザ・ポータル部は、コンシューマに対するクラウド・コンピューティング環境及びシステム・アドミニストレータへのアクセス性を提供する。サービスレベル・マネージメント部は、クラウド・コンピューティング資源の割り当て及び管理を提供し、必要なサービス・レベルに適合させる。
サービス・レベル・アグリーメント(SLA)プランニング・フルフィルメント部は、SLAにしたがって将来的な要求が要求されるクラウド・コンピューティング資源の事前準備を行うと共にその獲得を行う。
【0094】
ワークロード・レイヤ66は、クラウド・コンピューティング環境を利用するための機能の例示を提供する。このレイヤから提供される可能性のあるワークロード及び機能の実施例は:マッピング及びナビゲーション;ソフトウェア開発及びライフサイクル・マネージメント;仮想教室教育伝達;データ分析処理;トランザクション・プロセッシング;及び図1~15に示されるデステージ管理68を含む。
追加的な実施例の詳細
【0095】
説明した動作は、標準的なプログラミング又はエンジニアリング技術又はそれらの両方を使用して方法、装置又はコンピュータ・プログラム製品として実装されてソフトウェア、ファームウェア、ハードウェア、又はこれらの如何なる組み合わせを製造することができる。したがって、実施形態の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、滞在型ソフトウェア、マイクロ・コードなど)の形態、又はすべてが一般に本明細書において“回路”、“モジュール”、又は“システム”として参照される可能性のあるソフトウェア及びハードウェアの組み合わせの実施形態を取ることができる。さらに、実施系の側面は、コンピュータ・プログラム製品の形態を取ることができる。コンピュータ・プログラム製品は、それ上に、プロセッサをして本発明の実施形態を実行させるためのコンピュータ可読なプログラムを有するコンピュータ可読な媒体(又は複数の媒体)を含むことができる。
【0096】
コンピュータ可読な記録媒体は、命令実行デバイスが使用するための複数の命令を保持し格納することができる有形のデバイスとすることができる。コンピュータ可読な媒体は、例えば、これらに限定されないが、電気的記録デバイス、磁気的記録デバイス、光学的記録デバイス、電気磁気的記録デバイス、半導体記録デバイス又は上述のものの、如何なる好ましい組み合わせとすることができる。コンピュータ可読な記録媒体の非消尽的な実施例は、次のポータブル・コンピュータ・ディスク、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能なプログラマブル・リード・オンリー・メモリ(EPROM又はフラッシュ・メモリ(登録商標))、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・イオンリー・メモリ(CD-ROM)、デジタル多目的ディスク(DVD)、メモリ・スティック、フロッピー・ディスク(登録商標)、パンチ・カード又は命令を記録した溝内に突出する構造を有する機械的にエンコードされたデバイス、及び上記のものの好ましい如何なる組合せを含む。本明細書で使用するように、コンピュータ可読な記録媒体は、ラジオ波又は他の自由に伝搬する電磁波、導波路又は他の通信媒体(例えば、光ファイバ・ケーブルを通過する光パルス)といった電磁波、又はワイヤを通して通信される電気信号といったそれ自体が一時的な信号として解釈されることはない。
【0097】
本明細書において説明されるコンピュータ可読なプログラムは、コンピュータ可読な記録媒体からそれぞれのコンピューティング/プロセッシング・デバイスにダウンロードでき、又は例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク又はワイヤレス・ネットワーク及びそれからの組み合わせといったネットワークを介して外部コンピュータ又は外部記録デバイスにダウンロードすることができる。ネットワークは、銅通信ケーブル、光通信ファイバ、ワイヤレス通信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ及びエッジ・サーバ又はこれらの組み合わせを含むことができる。それぞれのコンピューティング/プロセッシング・デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読なプログラム命令を受領し、このコンピュータ可読なプログラム命令を格納するためにそれぞれのコンピューティング/プロセッシング・デバイス内のコンピュータ可読な記録媒体内に転送する。
【0098】
本発明の操作を遂行するためのコンピュータ可読なプログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械語命令、マシン依存命令、マイクロ・コード、ファームウェア命令、状態設定データ、集積回路のための構成データ、又は1つ又はそれ以上の、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、“C”プログラミング言語又は類似のプログラム言語といった従来の手続き型プログラミング言語を含むプログラミング言語のいかなる組合せにおいて説明されたソース・コード又はオブジェクト・コードのいずれかとすることができる。コンピュータ可読なプログラム命令は、全体がユーザ・コンピュータ上で、部分的にユーザ・コンピュータ上でスタンドアローン・ソフトウェア・パッケージとして、部分的にユーザ・コンピュータ上で、かつ部分的にリモート・コンピュータ上で、又は全体がリモート・コンピュータ又はサーバ上で実行することができる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)を含むいかなるタイプのネットワークを通してユーザ・コンピュータに接続することができ、又は接続は、外部コンピュータ(例えばインターネット・サービス・プロバイダを通じて)へと行うことができる。いくつかの実施形態では、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電気回路がコンピュータ可読なプログラム命令を、コンピュータ可読なプログラム命令の状態情報を使用して、本発明の特徴を実行するために電気回路をパーソナライズして実行することができる。
【0099】
本明細書で説明した本発明の側面を、本発明の実施形態にしたがい、フローチャート命令及び方法のブロック図、又はそれらの両方、装置(システム)、及びコンピュータ・プログラム製品を参照して説明した。フローチャートの図示及びブロック図又はそれら両方及びフローチャートの図示におけるブロック、又はブロック図、又はそれらの両方のいかなる組合せでもコンピュータ可読なプログラム命令により実装することができることを理解されたい。
【0100】
コンピュータ可読なプログラム命令は、コンピュータのプロセッサ又は機械を生成するための汎用目的、特定目的のコンピュータ、又は他のプログラマブル・データ・プロセッシング装置に提供することができ、コンピュータのプロセッサ又は他のプログラマブル・データ・プロセッシング装置による実行がフローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作を実装するための手段を生成する。コンピュータ、プログラマブル・データ・プロセッシング装置及び他の装置又はこれらの組み合わせが特定の仕方で機能するように指令するこれらのコンピュータ可読なプログラム命令は、またコンピュータ可読な記録媒体に格納することができ、その内に命令を格納したコンピュータ可読な記録媒体は、フローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作の側面を実装する命令を含む製造品を構成する。
【0101】
コンピュータ可読なプログラム命令は、またコンピュータ、他のプログラマブル・データ・プロセッシング装置、又は他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、又は他のデバイス上で操作ステップのシリーズに対してコンピュータ実装プロセスを生じさせることで、コンピュータ、他のプログラマブル装置又は他のデバイス上でフローチャート及びブロック図のブロック又は複数のブロック又はこれらの組み合わせで特定される機能/動作を実装させる。
【0102】
図のフローチャート及びブロック図は、本発明の種々の実施形態にしたがったシステム、方法及びコンピュータ・プログラム製品のアーキテクチャ、機能、及び可能な実装動作を示す。この観点において、フローチャート又はブロック図は、モジュール、セグメント又は命令の部分を表すことかでき、これらは、特定の論理的機能(又は複数の機能)を実装するための1つ又はそれ以上の実行可能な命令を含む。いくつかの代替的な実装においては、ブロックにおいて説明された機能は、図示した以外で実行することができる。例えば、連続して示された2つのブロックは、含まれる機能に応じて、実際上同時的に実行することができ、若しくは複数のブロックは、時として逆の順番で実行することができる。またブロック図及びフローチャートの図示、又はこれらの両方及びブロック図中のブロック及びフローチャートの図示又はこれらの組み合わせは、特定の機能又は動作を実行するか又は特定の目的のハードウェア及びコンピュータ命令を遂行する特定目的のハードウェアに基づいたシステムにより実装することができることを指摘する。
【0103】
図16は、一定の実施形態によるストレージ・コントローラ102又はホスト108又は他の計算機デバイスに含まれる可能性のある一定の要素を示すブロック図を示す。
システム1600は、少なくともプロセッサ1604を含む一定の実施形態における回路1602を含むことができる。システム1600はまた、メモリ1606(例えば、揮発性メモリ・デバイス)及びストレージ1608を含むことができる。ストレージ1608は、不揮発性メモリ・デバイス(例えば、EEPROM、ROM、PROM、フラッシュ、ファームウェア、プログラム可能論理など)、磁気ディスク・ドライブ、光学的ディスク・ドライブ、テープ・ドライブなどを含むことができる。ストレージ1608は、内部ストレージ・デバイス、取付けされたストレージ・デバイス又はネットワークアクセス可能なストレージ・デバイス又はこれらの組み合わせを含むことができる。システム1600は、メモリ1606にロードされることができ、プロセッサ1604又は回路1602によって実行されることができるコード1612を含むプログラム論理1610を含むことができる。一定の実施形態においては、コード1612を含むプログラム論理1610は、ストレージ1608に格納されることができる。一定の実施形態では、プログラム論理1610は、回路1602内に実装されることができる。システム1600内のコンポーネントの1つ又はそれ以上は、バス又は他の結合又は接続1614を介して通信することができる。したがって、図16は、プログラム論理1610を他の要素から別に示しているが、プログラム論理1610は、メモリ1606又は回路1602又はそれらの両方に実装することができる。
【0104】
一定の実施形態は、コンピューティング・システムに対して、人又はコンピュータ可読なコードを一体化させる自動化された処理によりコンピューティング命令を配置するための方法を指向することができ、ここで、コンピューティング・システムに組み合わされるコードは、説明した実施形態の動作を実行することを可能とする。
【0105】
用語、“1つの実施形態”、“実施形態”、“複数の実施形態”、“本実施形態”、“複数の本実施形態”、“1つ又はそれ以上の実施形態”、“いくつかの実施形態”、及び“1実施形態”は、それ以外が明示的に特定されない限り、本発明(複数でもよい)“1つ又はそれ以上(全部ではない)”の実施形態を意味する。
【0106】
用語、“含む”、“包含する”、“有する”及びそれらのバリエーションは、それ以外が明示的に特定されない限り、“含むが、それに限定されない”ことを意味する。
【0107】
アイテムの数値化したリストは、それ以外が明示的に特定されない限り、アイテムの何れか又は全部が相互に排他的であることを意味しない。
【0108】
用語“a”、“an”及び“the”は、それ以外が明示的に特定されない限り、“1つ又はそれ以上”を意味する。
【0109】
それ以外が明示的に特定されない限り、互いに通信するデバイスは、互いに連続する通信にある必要はない。加えて、互いに通信するデバイスは、1つ又はそれ以上の中継装置を通して直接的に又は間接的に通信することができる。
【0110】
互いに通信するいくつかのコンポーネントについての実施形態の説明は、すべてでそのようなコンポーネントを要求することを意味しない。対照的に、種々の任意的なコンポーネントは、本発明の広く、かつ種々の可能な実施形態を例示するために説明された。
【0111】
さらに、プロセス・ステップ、方法ステップ、アルゴリズムなどをシーケンシャルな順序において説明されることができるが、そのようなプロセス、方法、及びアルゴリズムは、代替的な順序で動作するように構成することができる。言い換えれば、説明することができる如何なる順序又はステップ順は、複数のステップがその順序で実行される要求を必ずしも示していない。プロセスのステップは、実際的に如何なる順序において実行することができる。さらにいくつかのステップは、同時的に実行されることができる。
【0112】
単一のデバイス又は製品が本明細書において説明される場合、1つより多くのデバイス/製品(それらが協働するか否かによらず)が単一のデバイス/製品の代わりに使用される可能性がある。同様に、本明細書において1つ以上のデバイス又は製品が説明されている場合(それらが協働するか否かによらず)、単一のデバイス/製品が1つ以上のデバイス又は製品の代わりに使用することができること、若しくは、異なる数のデバイス/製品がデバイス又はプログラムについて示された数の代わりに使用することができることは容易に認識されるであろう。デバイスの機能又は特徴又はそれらの両方は、そのような機能/特徴を有するものとして明示的に説明されない1つ又はそれ以上のデバイスによって代替的に実装することができる。したがって、本発明の他の実施形態は、デバイスそれ自体を含む必要はない。
【0113】
図に示された少なくとも一定の動作は、一定の順序で発生する一定のイベントを示す。代替的な実施形態においては、一定の動作は、異なる順序で、修正され、又は取り去られて実行されることができる。さらに、上述の論理に対してステップを追加することができ、さらに説明された実施形態に適合させることができる。さらに、本明細書において説明された動作は、連続的に発生することができ、又は一定の動作は、並列的に処理されることができる。さらに、動作は、単一の処理ユニットにより、又は分散された処理ユニットにより実行される可能性がある。
【0114】
本発明の種々の実施形態の上述の説明が、例示及び説明の目的のために提示された。本発明を開示された精密な形態に尽きるものとか、限定するとかを意図するものではない。多くの修正及び変形は上述の教示に照らして可能である。本発明の範囲はこの詳述した説明に限定されるのではなく、むしろ本明細書に添付する請求項によって限定されることを意図するものである。上述した明細書、実施例、及びデータは、本発明の構造の製造及び使用の完全な説明を提供する。本発明の範囲は、後に添付される請求項に存在する。
IBM、zSeries、pSeries、xSeries、BladeCenter、WebSphere及びDB2は、世界中の多くの権利に登録されたインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16