(57)【要約】【課題】  １つまたは複数の論理ユニット（ＬＵＮ）に接続され、１つまたは複数のボリュームグループの作成を介して１つまたは複数のＬＵＮへのアクセスを管理するボリュームマネージャをホストするように動作するホストで使用するためにデータを抽出する方法を提供する。【解決手段】  本発明に係る方法は、１つまたは複数のクエリをボリュームマネージャに与えること、各ボリュームグループに関して、クエリの結果に基づいて、１つまたは複数のＬＵＮのどれがボリュームグループのメンバーであるかをそれぞれ決定することとを含む。【選択図】図２
2004152284.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数の論理ユニット（ＬＵＮ）（２０１）に接続され、１つまたは複数のボリュームグループ（５０２）の作成を介して前記１つまたは複数のＬＵＮへのアクセスを管理するボリュームマネージャ（１２８）をホストするように動作するホスト（２０４）で使用するためにデータを抽出する方法であって、
１つまたは複数のクエリ（３０６、３１２）を前記ボリュームマネージャに与えることと、
前記各ボリュームグループに関して、前記クエリの結果（３０８、３１４）に基づいて、前記１つまたは複数のＬＵＮのどれが前記ボリュームグループのメンバーであるかをそれぞれ決定する（３１６）こと
とを含む方法。
【請求項２】
前記各ボリュームグループは、１つまたは複数の論理ボリューム（５１４、５１６、５１８）を含み、
前記各論理ボリュームに対して、前記クエリの前記結果に基づいて、前記１つまたは複数の論理ボリュームに割り当てられた前記１つまたは複数のＬＵＮの部分をそれぞれ特定すること（３１６）
をさらに含む請求項１に記載の方法。
【請求項３】
前記各部分は、それぞれの前記ＬＵＮとそれぞれの前記論理ボリューム（ＬＶ）とのマッピングにより表され、
前記マッピングは、
それぞれの前記ＬＵＮ（５０４〜５１２）から物理ストレージブロック（ＰＳＢ）（５３２〜５４６）へのマップと、
前記ＰＳＢから論理ストレージブロック（ＬＳＢ）（５２０〜５２６）への少なくとも間接的なマップと、
前記ＬＳＢからそれぞれの前記ＬＶ（５１４〜５１８）へのマップと
を含む、
請求項２に記載の方法。
【請求項４】
前記マッピングは、標準化されたデータセット（３１６）で表される
請求項３に記載の方法。
【請求項５】
前記標準化されたデータセット（３１６）の内容は、前記クエリが与えられた前記ボリュームマネージャの種類とは独立している
請求項４に記載の方法。
【請求項６】
前記標準化されたデータセットは、ＸＭＬ（３１８）で記述されている
請求項４に記載の方法。
【請求項７】
１つまたは複数の論理ユニット（ＬＵＮ）（２０１）に接続され、１つまたは複数のボリュームグループ（５０２）の作成を介して前記１つまたは複数のＬＵＮへのアクセスを管理するボリュームマネージャ（１２８）をホストするように動作するホスト（２０４）で使用するためのコンピュータにより読み取り可能な媒体上のコード配列であって、なお前記ホストの１つまたは複数のプロセッサによる該コード配列の実行により、前記ボリュームマネージャからデータが抽出され、該コード配列は、
１つまたは複数のクエリ（３０６、３１２）を前記ボリュームマネージャに与えるクエリコードセグメントと、
前記各ボリュームグループに関して、前記クエリの結果（３０８、３１４）に基づいて、前記１つまたは複数のＬＵＮのどれが前記ボリュームグループのメンバーであるかをそれぞれ決定する（３１６）決定コードセグメントと
を含むコード配列。
【請求項８】
前記各ボリュームグループが、１つまたは複数の論理ボリューム（５１４、５１６、５１８）を含み、
前記各論理ボリュームに対して、前記クエリの前記結果に基づいて、前記１つまたは複数の論理ボリュームに割り当てられた前記１つまたは複数のＬＵＮの部分をそれぞれ特定する（３１６）特定コードセグメント、
をさらに含む、請求項９に記載のコンピュータにより読み取り可能なコード配列。
【請求項９】
前記各部分は、それぞれの前記ＬＵＮとそれぞれの前記論理ボリューム（ＬＶ）とのマッピングで表され、
前記マッピングは、
それぞれの前記ＬＵＮ（５０４〜５１２）から物理ストレージブロック（ＰＳＢ）（５３２〜５４６）へのマップと、
前記ＰＳＢから論理ストレージブロック（ＬＳＢ）（５２０〜５２６）への少なくとも間接的なマップと、
前記ＬＳＢからそれぞれの前記ＬＶ（５１４〜５１８）へのマップと
を含む
請求項８に記載のコンピュータにより読み取り可能なコード配列。
【請求項１０】
１つまたは複数の論理ユニット（ＬＵＮ）（２０１）に接続され、１つまたは複数のボリュームグループ（５０２）の作成を介して前記１つまたは複数のＬＵＮへのアクセスを管理するボリュームマネージャ（１２８）をホストするように動作可能に接続されて、前記ボリュームマネージャからデータを抽出するようにするデータ抽出装置であって、
１つまたは複数のクエリ（３０６、３１２）を前記ボリュームマネージャに与えるクエリ手段（２４０）と、
前記各ボリュームグループに関して、前記クエリの結果に基づいて、前記１つまたは複数のＬＵＮのどれが前記ボリュームグループのメンバーであるかをそれぞれ決定する（３１６）決定手段（２４０）と
を備えるデータ抽出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ボリュームグループおよび論理ユニットに関する情報の抽出に関する。
【背景技術】
【０００２】
ストレージエリアネットワーク（ＳＡＮ）は、統合されたハードウェアとソフトウェアを利用して堅牢で高速のストレージバックボーンを提供する高速、広帯域のサーバ間ネットワークである。
ＳＡＮを使用することで、ＳＡＮのトポロジに応じて、サーバのクラスタが排他的なデータアクセスによりストレージを共有したり、共通のストレージデバイス上でデータを共有することが可能になる。
ＳＡＮネットワークは、たとえば、各顧客と各取引について収集された何テラバイトもの情報のストレージが必要な完全にネットワーク化された企業において有用である。
データの高い可用性と高いセキュリティへのニーズが増大する要求に拍車をかけている。
ＳＡＮは、企業全体で共用可能でありながら、簡略化された操作で管理可能な高速で可用性の高いストレージのプールを提供する。
【０００３】
ＳＡＮには、複数のハードディスクドライブ、テープなどの多数のストレージ要素の集合が含まれている。
ＳＡＮの適切なパフォーマンスを保証するために、データとメトリクス（パフォーマンス、容量、効率などの測定値）が収集される。
これらのメトリクスは特に、発生し得る問題（帯域ボトルネックなど）を予測して防止することが可能なパフォーマンスの傾向と統計値を決定するために使用される。
【０００４】
従来技術によるＳＡＮやその他のストレージ環境では、ストレージエリアマネージャ（ＳＡＭ）プロセスをＳＡＮ内のサーバで実行することが知られている。
その名前が示すように、ＳＡＭは、その一部の機能としてストレージ環境のコンポーネント間の相互作用、さらにはストレージへの要求を行うアプリケーションプログラム（コンシューマ）とストレージ環境のコンポーネントとの相互作用を管理する。
【０００５】
図１はＳＡＭ１２０、ＳＡＮ１０８、コンシューマ１３０を含むシステム１００のブロック図である。
ＳＡＭ  １２０は、管理ホストデバイス１０６上にロード可能である。
グラフィックユーザインターフェイス（ＧＵＩ）を備えるクライアント１２２も管理ホスト１０６上にロードされる。
管理ホスト１０６は、Ｗｉｎｄｏｗｓ  ＮＴまたはＷｉｎｄｏｗｓ  ２０００オペレーティングシステムのいずれかを実行可能である。
ＳＡＭ  １２０は、たとえばＬＡＮ上でＪＡＶＡ  ＲＭＩを使用してホストエージェント１２６と通信可能である。
【０００６】
ストレージのコンシューマ、つまりストレージコンシューマ１３０は、被管理ホスト１０４上にロード可能である。
また、ボリュームマネージャ１２８とＳＡＭ１２０のホストエージェント１２６も被管理ホスト１０４上にロード可能である。
ボリュームマネージャ１２８は（したがって被管理ホスト１２６も）、（ファイバチャネル、ｉＳＣＳＩなどのリンクを介して）ＳＡＮ１０８および／または（ＳＣＳＩリンクを介して）ローカル／専用ＳＣＳＩデバイス１１８と通信可能である。
【０００７】
ＳＡＮ１０８には、ＳＣＳＩ／ＦＣデバイス１１２や、ブリッジ１１６を介して接続されるＳＣＳＩデバイス１１４など、様々なストレージデバイスが接続されている。
ＳＡＮ１０８は、ＳＡＭ１２０がＳＡＮ１０８と通信できるようにするＳＮＭＰデバイス１１０も備える。
【０００８】
参照先をわかりやすくするために、ＳＡＮおよび関連するストレージリソースの周囲にブロックが描かれている。
このブロックには、参照番号１０２が与えられ、ＳＡＮ＋リソースというラベルが付けられている。
論理ユニット（ＬＵＮ）（非図示）は、ＳＡＮ＋リソース１０２へのアクセスのパスを表す。
【０００９】
ホストエージェント１２６はビルダコンポーネント１３２を備え、ＳＡＭ１２０は対応するビルダコンポーネント１２４を備える。
ビルダコンポーネント１３２は、ボリュームギャザラ１３４、ユーザギャザラ１３６、ファイルギャザラ１３８を含む。
ボリュームギャザラ１３４は、ストレージコンシューマ１３０による消費に関する概要情報を収集する。
ユーザギャザラ１３６は、ストレージを消費可能なユーザを特定する。
ファイルギャザラ１３８は、だれ（どのユーザ）と何（データ型の一覧）との双方が、使用可能なストレージを消費しているかについて詳細情報を収集する。
【００１０】
クライアント１２２を介して、ＳＡＭ１２０のユーザは、論理ボリューム上で使用可能なストレージの総量と、消費された使用可能なストレージの量を監視することができる。
しかし、論理ボリュームとそれに関連付けられたＬＵＮとの間の関係に関する追加情報は、クライアント１２２を介してＳＡＭ１２０から得ることはできない。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、１つまたは複数の論理ユニット（ＬＵＮ）に接続され、１つまたは複数のボリュームグループの作成を介して１つまたは複数のＬＵＮへのアクセスを管理するボリュームマネージャをホストするように動作するホストで使用するためにデータを抽出する方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一実施形態は、１つまたは複数の論理ユニット（ＬＵＮ）に接続され、１つまたは複数のボリュームグループの作成を介して１つまたは複数のＬＵＮへのアクセスを管理するボリュームマネージャをホストするように動作するホストで使用するためにデータを抽出する方法を提供する。
このような方法は、１つまたは複数のクエリをボリュームマネージャに与えること、各ボリュームグループに関して、クエリの結果に基づいて、１つまたは複数のＬＵＮのどれがボリュームグループのメンバーであるかをそれぞれ決定することとを含む。
【００１３】
本発明のそれ以外の機能と利点は、以下の発明を実施するための最良の形態、添付の特許請求の範囲、添付図面からより完全に明らかになろう。
【００１４】
ＵＭＬシーケンス図内のアクションは、様々な種類の矢印で表されている。
【００１５】
【数１】
2004152284.tif 000003
【００１６】
上記矢印１は、応答アクションを予定しているアクションを示している。
【００１７】
【数２】
2004152284.tif 000004
【００１８】
上記矢印２は、応答アクションを示している。
【００１９】
【数３】
2004152284.tif 000005
【００２０】
上記矢印３は、応答が行われる可能性のあるアクションを示している。
【００２１】
【数４】
2004152284.tif 000006
【００２２】
上記矢印４は、応答が予定されていないアクションを示している。
【００２３】
添付図面は、本発明の例示的な実施形態を示すことを意図しており、その範囲を限定するものとして解釈されるべきではなく、明示されている場合を除き正確な縮尺では描かれていないと考える。
【発明の効果】
【００２４】
本発明によれば、１つまたは複数の論理ユニット（ＬＵＮ）に接続され、１つまたは複数のボリュームグループの作成を介して１つまたは複数のＬＵＮへのアクセスを管理するボリュームマネージャをホストするように動作するホストで使用するためにデータを抽出することができる。
【発明を実施するための最良の形態】
【００２５】
図２は、本発明の一実施形態によるシステム２００のブロック図である。
システム２００は、ＳＡＮ＋リソース１０２、被管理ホスト２０４（ＳＡＮ＋リソース１０２に接続）、管理ホスト２０６（ＳＡＮ＋リソース１０２と被管理ホスト２０４のホストエージェント２２６にそれぞれ接続）を備える。
ＳＡＮ＋リソース１０２は、従来技術のＳＡＮ＋リソースと同じとすることもできる。
被管理ホスト２０４と管理ホスト２０６はそれぞれ、一般的なコンピュータにより実装可能である。
一般的なコンピュータは、たとえば、ＣＰＵ、揮発性メモリ（ＲＡＭ、ＤＲＡＭ、ＳＲＡＭなど）、不揮発性メモリ（磁気、光磁気、および／または光ハードディスクドライブ、フラッシュメモリなど）、入出力（ＩＯ）部（マンマシンインターフェイスおよび／またはマシンマシンインターフェイスを提供するように適合されている）を有する。
ＳＡＮ＋リソース１０２内への経路は、論理ユニット（ＬＵＮ）２０１として示されている。
【００２６】
従来技術と同様に、管理ホスト２０６はそれ自体にロードされたソフトウェアを有し、管理サーバつまりＳＡＭ２２０とクライアント２２２（ＧＵＩなどを含む）を含む。
ＳＡＭ２２０は、ビルダコンポーネント２２４を含む。
しかし、従来技術と異なり、ビルダコンポーネント２２４は、ハーベスタコンポーネント２４２を含む。
【００２７】
また、従来技術と同様に、被管理ホスト２０４は、ボリュームマネージャ１２８、ストレージのコンシューマ１３０（アプリケーションプログラムなど）、ホストエージェント２２６を含む。
ホストエージェント２２６は、ボリュームギャザラ２３４、ユーザギャザラコンポーネント１３６、ファイルギャザラコンポーネント１３８を含むビルダコンポーネント２３２を有する。
しかし、従来技術によるボリュームギャザラ１３４とは異なり、ボリュームギャザラ２３４はデータゲッタコンポーネント２４０を含む。
【００２８】
ハーベスタ２４２とボリュームギャザラ２３４は（データゲッタ２４０を介して）、ＳＡＮ＋リソース１０２上で被管理ホスト２０４に割り当てられたストレージの使用率についての情報を抽出する。
図５は、簡単な例についてではあるが、そのような使用率を示した本発明の実施形態による関係を示す図である。
当然、図５に示した関係は、図５に示した環境の例よりもはるかに広範に適用可能である。
【００２９】
図５では、ボリュームマネージャ１２８は、メンバとして論理ユニット（ＬＵＮ）Ａ〜Ｅ（５０４〜５１２）を有する単一のボリュームグループ５０２を作成している。
なお、ボリュームマネージャ１２８は、複数のボリュームグループを作成可能である。
ＬＵＮは、単一のボリュームグループのメンバでなければならない。
【００３０】
図５では、４つの論理ストレージブロック（ＬＳＢ）５２０、５２２、５２４、５２６を示している。
ＬＳＢは、直接的または１つまたは複数の介在する子ＬＳＢを介して間接的にＬＳＢにマッピングする１つまたは複数の物理ストレージブロック（ＰＳＢ）を有することができる。
ＬＵＮは、１つまたは複数のＰＳＢにマッピングすることができる。
【００３１】
図５の例の詳細については、５つのＬＵＮ  Ａ〜Ｅ  ５０４〜５１２の各々は、それぞれ１ＧＢのメモリを表す。
論理ボリュームＡ（５１４）は、１００ＭＢのメモリを表す単一のＬＳＢ（５２０）を有する。
ＰＳＢ（５２８）は、ＬＵＮ  Ａ（５０４）上で割り当てられた１００ＭＢのメモリを表す。
ＰＳＢ（５３０）は、ミラー構成におけるＬＵＮ  Ｂ（５０６）上で割り当てられた１００ＭＢのメモリを表す。
【００３２】
論理ボリュームＢ（５１６）は、ＲＡＩＤ−５構成の１５０ＭＢのメモリを表す単一のＬＳＢ（５２２）を有する。
４つの５０ＭＢのＰＳＢ  ５３２〜５３８は、ＬＵＮ  Ａ〜Ｄ（５０４〜５１０）からそれぞれマッピングされている。
なお、たとえばＰＳＢ  ５３８ではＲＡＩＤ−５構成のために必要な５０ＭＢのオーバーヘッドを表している。
【００３３】
論理ボリュームＣ（５１８）は２つのＬＳＢ（５２４と５２６）を有し、各々が２００ＭＢを表し、合わせて４００ＭＢのメモリを表す。
２つの１００ＭＢのＰＳＢ  ５４０と５４２は、ＬＵＮ  Ｂ〜Ｃ（５０６〜５０８）からそれぞれマッピングされる。
２つの１００ＭＢのＰＳＢ  ５４４と５４６は、ＬＵＮ  Ｄ〜Ｅ（５１０〜５１２）からそれぞれマッピングされる。
【００３４】
図５の数字で表した仮定の例の詳細は、３つの論理ボリュームが５つのＬＵＮに分散されていることを表していると説明することができる。
ＬＵＮ  Ａ（５０４）とＣ（５０８）では、１５０ＭＢが使用されている。
ＬＵＮ  Ｂ（５０６）では、２５０ＭＢが使用されている。
ＬＵＮ  Ｄ（５１０）では、１５０ＭＢが使用されている。
ＬＵＮ  Ｅ（５１２）では、１００ＭＢが使用されている。
使用率のパーセント値は、各ＬＵＮについてその最大容量に対して決定することができる。
たとえば、ＬＵＮ  Ａは１５％の使用率＝（１５０ＭＢ／１ＧＢ）＊１００となる。
ＬＵＮ  Ａ〜Ｅ  ５０４〜５１２の総使用率は８００ＭＢまたは１６％（８００ＭＢ／１ＧＢ）＊１００である。
ボリュームグループレベルの未使用空間は、４．２ＧＢである。
ＬＶ  Ａ〜Ｃ（５１４、５１６、５１８）のいずれも、未使用空間に拡張することができる。
なお、ＬＳＢ  ５２６は、ＬＶ  Ｃ（５１８）の拡張分と見ることができる。
このようなボリュームグループに関する統計値が必要である。
本発明の実施形態は、ボリュームグループ、論理ボリューム、ＬＳＢ、ＰＳＢ、ＬＵＮに関するデータをそれぞれそのような統計値の提供のために使用可能にする。
【００３５】
ハーベスタ２４２とボリュームギャザラ２３４は（データゲッタ２４０を介して）、ＳＡＮ＋リソース１０２上のＬＵＮ２０１の使用率についての情報を抽出する。
このようなデータを抽出するアクションの順番と関連するアクタを図３のＵＭＬシーケンス図に示す。
【００３６】
図３のアクション３０２では、ハーベスタ２４２は、ボリュームギャザラ２３４に指令して、ボリュームグループとＬＵＮとの関係に関連するデータを抽出または収集させる。
つぎに、アクション３０４により、ボリュームギャザラ２３４は、必要なデータを取得するためにデータゲッタ２４０を呼び出す。
それに対して、データゲッタ２４０は（アクション３０６により）、ボリュームマネージャ１２８に問い合わせて、ボリュームマネージャ１２８が管理する現在構成されているボリュームグループ（複数可）についての概要情報を取得する。
概要情報は、たとえば、ボリュームグループのリストであり得る。
【００３７】
アクション３０８で、ボリュームマネージャ１２８は、要求されたボリュームグループの概要情報をデータゲッタ２４０に返す。
アクション３１０で、データゲッタ２４０は、ボリュームグループの概要情報を処理する。
そのような処理は、たとえば、特定された各ボリュームグループに関する詳細情報の要求を行うことである場合もある。
アクション３１２において、データゲッタ２４０は、ボリュームマネージャ１２８に問い合わせて、ボリュームマネージャ１２８が管理するボリュームグループについての詳細情報を取得する。
【００３８】
アクション３０６、３０８、３１０、３１２、３１４は、２部技法、つまり、グループのリストを収集し、それから各グループについての詳細情報を検索する技法を示している。
代替の技法を使用して、ボリュームグループに関する詳細情報を抽出することもできる。
【００３９】
アクション３１４で、ボリュームマネージャ１２８は、ボリュームグループに関する要求された詳細情報を返す。
自己アクション３１６では、データゲッタ２４０は、ボリュームマネージャについての詳細情報を処理してある形式、たとえば、詳細情報を取得したボリュームマネージャの型には依存しない（以降で詳細に説明）データ構造にする。
たとえば、アクション３１６では、データゲッタ２４０は、ＳＡＭ  ２２０のユーザにとっては、診断値および／または予測値とするには粒度が高すぎるボリュームマネージャ１２８のデータをフィルタ処理で除去しもする。
【００４０】
自己呼び出し３１８では、データゲッタ２４０はデータをデータの送信と解釈を促進するＸＭＬなどの言語に変換する。
アクション３２０で、データゲッタ２４０は、ＸＭＬをボリュームギャザラ２３４に渡す。
アクション３２２で、ボリュームギャザラ２３４は、ハーベスタ２４２に要求されたデータが使用可能であることを通知する。
アクション３２４で、ハーベスタ２４２は、データをボリュームギャザラ２３４から要求する。
アクション３２６で、ボリュームギャザラ２３４は、ＸＭＬデータセットをハーベスタ２４２に渡す。
最後に、アクション３２８で、ハーベスタはＸＭＬデータセットを処理して、たとえば、データをよりユーザフレンドリーな形式および／またはデータベースへの組み込み形式で表す。
【００４１】
図４は、アクション３１６でデータゲッタ２４０により作成された標準化されたデータセットで表された様々な関係を示したＪＡＶＡクラスの図である。
図４で、データオブジェクト（ＤＯ）のセット４００には、ボリュームグループＤＯ  ４０２、論理ボリューム（またはストレージコンシューマ）ＤＯ  ４０４、論理ストレージブロック（ＬＳＢ）ＤＯ  ４０６、物理ストレージブロック（ＰＳＢ）ＤＯ  ４０８、論理ユニット（ＬＵＮ）ＤＯ  ４１０が含まれる。
１つのＤＯと別のＤＯとを接続する線分は、ＤＯ間の関係を示している。
たとえば、関係線分４１２は、ボリュームグループＤＯ  ４０２を論理ボリュームＤＯ  ４０４に接続している。
【００４２】
線分４１２がボリュームグループＤＯ  ４０２に接続される付近に、記号「０．．１」が表示されている。
これは、論理ボリュームＤＯ  ４０４は、論理ボリュームＤＯ  ４０４の上位に０から１の間のボリュームグループＤＯ  ４０２を有することができることを示している。
論理ボリュームＤＯ  ４０４に接続される線分４１２の終端付近には、記号「０．．＊」が表示されている。
これは、ボリュームグループＤＯ  ４０２を上位に有する０から無限の数の間の論理ボリュームＤＯ  ４０４が存在可能なことを示している。
言い換えれば、ボリュームグループＤＯ  ４０２は、下位に複数の論理ボリュームＤＯ  ４０４を有することが可能であるが、各論理ボリュームＤＯ  ４０４は最大１つのボリュームグループＤＯ  ４０２しか上位に有することはできない。
【００４３】
同様に、ＬＳＢ  ＤＯ  ４０６は、最大１つの論理ボリュームＤＯ  ４０４しか上位に有することができない。
しかし論理ボリュームＤＯ  ４０４は、下位に１つまたは複数のＬＳＢ  ＤＯ  ４０６を有することができる。
【００４４】
関係線分４１３は、親ＬＳＢ  ＤＯ  ４０６と子ＬＳＢ  ＤＯ（親ＬＳＢ  ＤＯ  ４０６から独立して表示されていない）との間の関係を示している。
子ＬＳＢ  ＤＯは、最大１つの親ＬＡＢ  ＤＯを有することができる。
しかし、親ＬＳＢ  ＤＯは、ゼロ、１、それ以上の子ＬＳＢ  ＤＯを有することができる。
【００４５】
ＬＳＢ  ＤＯ  ４０６と物理ストレージブロック（ＰＳＢ）ＤＯ  ４０８との関係は以下のようになる。
ＰＳＢ  ＤＯ  ４０８は、上位に最大１つのＬＳＢ  ＤＯ  ４０６を有することができる。
しかし、ＬＳＢ  ＤＯ  ４０６は、１つまたは複数のＰＳＢ  ＤＯ  ４０８を有する。
ＰＳＢ  ＤＯ  ４０８と論理ユニット（ＬＵＮ）ＤＯ  ４１０との関係は以下のようになる。
各ＰＳＢ  ＤＯ  ４０８は、上位に１つのＬＵＮ  ＤＯ  ４１０を有する。
しかし、ＬＵＮ  ＤＯ  ４１０は、下位に１つまたは複数のＰＳＢ  ＤＯ  ４０８を有する。
【００４６】
最後に、ボリュームグループＤＯ  ４０２とＬＵＮ  ＤＯ  ４１０との関係を説明する。
ＬＵＮ  ＤＯ  ４１０は、上位に最大１つのボリュームグループＤＯ  ４０２を有することができる。
しかし、ボリュームグループＤＯ  ４０２は、下位に０、１、またはそれ以上のＬＵＮ  ＤＯ  ４１０を有することができる。
【００４７】
図４に示した各ＤＯは、２つの部分で構成されている。
第１の部分は、ＤＯの属性を表し、第２の部分はＤＯの性質に関連した情報の取得に使用されるＪＡＶＡメソッドを表している。
たとえば、ボリュームグループＤＯ  ４０２は、属性部分４１４とＪＡＶＡメソッド部分４１６を有する。
同様に、論理ボリュームＤＯ  ４０４は、属性部分４１８とＪＡＶＡメソッド部分４２０を有する。
ＬＳＢ  ＤＯ  ４０６は、属性部分４２２とＪＡＶＡメソッド部分４２４を有する。
ＰＳＢ  ＤＯ  ４０８は、属性部分４２６とＪＡＶＡメソッド部分４２８を有する。
ＬＵＮ  ＤＯ  ４１０は、属性部分４３０とＪＡＶＡメソッド部分４３２を有する。
【００４８】
ＤＯ  ４０２、４０４、４０６、４０８、４１０の属性部分は、関連したデータオブジェクト４００の集合を有するＳＡＮ＋リソース１０２の環境により様々な情報を有する。
同様にＤＯ  ４０２、４０４、４０６、４０８、４１０のＪＡＶＡメソッド部分は、関連したデータオブジェクト４００の集合を有するＳＡＮ＋リソース１０２の環境により様々な意味のメソッドを有する。
【００４９】
説明の最後に、ＤＯ  ４０２、４０４、４０６、４０８、４１０の属性部分とメソッド部分に記述されるＪＡＶＡのドキュメントの例を示す。
たとえば、クラスLogicalStoragePool（論理ストレージプール）（図４のボリュームグループＤＯ  ４０２に対応）という名前のＪＡＶＡドキュメントについては、たとえば、ボリュームグループＤＯ  ４０２の属性部分４１４は、続く「フィールドの概要」の章と「フィールドの詳細」の章に詳述されている。
ＪＡＶＡメソッド部分４１６は、たとえば、「メソッドの概要」の章、「コンストラクタの概要」の章、「コンストラクタの詳細」の章、「メソッドの詳細」の章に詳述されている。
【００５０】
ＪＡＶＡメソッド部分、たとえばボリュームグループＤＯ  ４０２の４１６内に一覧表示されているメソッドは、以下のようにして決定される。
被管理ホスト２０４が接続されているソース＋リソース１０２の環境により、ＳＡＭ２２０のユーザは、大幅にパターン化されたＪＡＶＡソースファイル（クラスとも呼ばれる）を準備して、それを対応するメソッドを生成するツールに対して入力する。
そのようなツールは、２００２年８月３０日にそれぞれ提出された米国特許出願第１０／２３２，０００号、同第１０／２３１，９４７号、同第１０／２３，６９３号の３つの同時係属中の出願に記述されており、各々の全体は本明細書中に参照により援用する。
大幅にパターン化されたＪＡＶＡソースファイルは、テンプレートとも呼ばれる。
テンプレートの例は、この説明の最後に示す。
テンプレートの例には、対応するＪＡＶＡドキュメントが分散して配置されている。
【００５１】
ＳＡＭ  ２２０は、VERITASから提供されるボリュームマネージャのブランド（ＶｘＶＭと呼ばれる）、HEWLETT-PACKARD Companyから提供されるボリュームマネージャのブランド（ＬＶＭと呼ばれる）など様々なボリュームマネージャ１２８と共に使用可能である。
各ボリュームマネージャは、通常は、SUN MICROSYSTEMS Corporationから提供されるＵｎｉｘのバージョン(ＳＯＬＡＲＩＳと呼ばれる)、HEWLETT-PACKARD COMPANYから提供されるＵｎｉｘのバージョン（ＨＰＵＸと呼ばれる）、Ｗｉｎｄｏｗｓ  ２０００とＷｉｎｄｏｗｓ  ＮＴ（併せてＷ２Ｋ／ＮＴと呼ばれる）などのMICROSOFT CORPORATIONから提供されるＷｉｎｄｏｗｓファミリーのオペレーティングシステム、IBM corporationから提供されるＵｎｉｘのバージョン（ＡＩＸと呼ばれる）など、様々なオペレーティングシステム上で動作可能である。
【００５２】
たとえば、ＳＡＭ  ２２０がＳＯＬＡＲＩＳ、ＨＰＵＸ、Ｗ２Ｋ／ＮＴ上で実行中のＶｘＶＭのバージョンとＡＩＸとＨＰＵＸ上で実行中のＬＶＭと相互動作しなければならない状況を考える。
実際には、この例でＳＡＭ  ２２０が相互動作しなければならないボリュームマネージャの数は、単に２つではなく５つである。
これは、様々なオペレーティングシステムによりバリエーションが発生するためである。
そのため、アクション３１４でボリュームマネージャ１２８がボリュームグループの詳細情報を提供する場合、詳細情報の性質と形式はボリュームマネージャのブランドだけでなくボリュームマネージャ１２８が実行されているオペレーティングシステムにも依存する。
それに応じて、アクション３１６でデータゲッタ２４０は、ボリュームグループの詳細情報を処理して標準のデータセットとする。
【００５３】
その代わりに、標準化機能をハーベスタ２４２に組み込むことも考えられるが、そうすると、ハーベスタ２４２が複雑になる。
さらに、追加のボリュームマネージャとの相互動作がハーベスタ２４２により実行されるので、ハーベスタ２４２を連続して更新して、ボリュームマネージャから返されるデータセットのバリエーションに対応させる必要がある。
標準化機能をデータゲッタ２４０に置くことで、ハーベスタ２４２を追加のボリュームマネージャ１２８に対して互換性を有するようにする処理を簡略化することができる。
これは、所定のボリュームマネージャ１２８とそのオペレーティングシステムに必要なデータの変換／標準化がハーベスタ２４２ではなくデータゲッタ２４０により処理可能なためである。
いくつかのより小さく、より簡単なデータゲッタを連続して作成することは、１つのより大きくより複雑なハーベスタ２４２を連続して改訂するよりも簡単に達成できる。
【００５４】
前述のように、各データゲッタ２４０は、ボリュームマネージャ１２８の管理下のグループの情報を含むＸＭＬファイルを生成することができる。
ＸＭＬファイルの構成例を以下で説明する。
最初に、ファイル内のタグを大まかに説明する。
その説明の後、ファイル構成のいくつかの例を説明する。
【００５５】
【表１】
2004152284.tif 000007
【００５６】
【表２】
2004152284.tif 000008
【００５７】
【表３】
2004152284.tif 000009
【００５８】
【表４】
2004152284.tif 000010
【００５９】
【表５】
2004152284.tif 000011
【００６０】
ボリュームマネージャ１２８がオペレーティングシステム（ＯＳ）ＨＰＵＸ上で実行されるＬＶＭの場合のＸＭＬファイルまたはデータセットの例を以下に示す。
<VG type="LVM" name="/dev/vg00" >
<SC name="/dev/vg00/lvol1" size="64" blockSize="1048576">
<LSB name="lvol1" type="direct（直接）" typeCount="1">
<PSB name="lvol1-01" size="64" blockSize="1048576" lun="/dev/dsk/c0t6d0" >
</PSB>
</LSB>
</SC>
<SC name="/dev/vg00/lvol2" size="768" blockSize="1048576">
<LSB name="lvol2" type="stripe（ストライプ）" typeCount="2">
<PSB name="lvol2-01" size="384" blockSize="1048576" lun="/dev/dsk/c0t6d0">
</PSB>
<PSB name="lvol2-02" size="384" blockSize="1048576" lun="/dev/dsk/c0t6d1">
</PSB>
</LSB>
</SC>
<SC name="/dev/vg00/lvol3" size="2000" blockSize="1048576">
<LSB name="/dev/vg00/lvol3" type="mirror（ミラー）" typeCount="2">
<PSB name="lvol3-01" size="2000" blockSize="1048576" lun="/dev/dsk/c0t6d0" >
</PSB>
<PSB name="lvol3-02" size="2000" blockSize="1048576" lun="/dev/dsk/c0t6d1" >
</PSB>
</LSB>
</SC>
<hostluns（ホストＬＵＮ）>
<Lun name="/dev/dsk/c0t6d0" size="18000" extentSize="1048576">
</Lun>
<Lun name="/dev/dsk/c0t6d1" size="7000" extentSize="1048576">
</Lun>
</hostluns>
</VG>
【００６１】
ボリュームマネージャ１２８がＯＳ  ＨＰＵＸ上で実行されるＶｘＶＭの場合のＸＭＬデータセットの例を以下に示す。
<VG type="VxVM" name="rootdg">
<hostluns>
<Lun name="/dev/dsk/c3t3d0" size="2081484" extentSize="1024">
</Lun>
</hostluns>
</VG>
<VG type="VxVM" name="builderdg">
<SC name="/dev/builderdg/vol01" size="10000" blockSize="1024">
<LSB name="vol01-01" type="direct" typeCount="1">
<PSB name="builder01-01" size="10000" blockSize="1024" lun="/dev/dsk/c3t4d0">
</PSB>
</LSB>
</SC>
<SC name="/dev/builderdg/vol02" size="20000" blockSize="1024">
<LSB name="vol02-01" type="stripe" typeCount="2">
<PSB name="builder01-01" size="10000" blockSize="1024" lun="/dev/dsk/c3t4d0">
</PSB>
<PSB name="builder01-02" size="10000" blockSize="1024" lun="/dev/dsk/c3t4d1">
</PSB>
</LSB>
</SC>
<SC name="/dev/builderdg/vol03" size="3000" blockSize="1024">
<LSB name="vol03-01" type="mirror" typeCount="3">
<PSB name="dg0203-01" size="3000" blockSize="1024" lun="/dev/dsk/c8t8d0">
</PSB>
<PSB name="dg0201-02" size="3000" blockSize="1024" lun="/dev/dsk/c8t9d0">
</PSB>
<PSB name="dg0205-02" size="3000" blockSize="1024" lun="/dev/dsk/c8t7d0">
</PSB>
</LSB>
</SC>
<hostluns>
<Lun name="/dev/dsk/c3t4d0" size="4193005" extentSize="1024">
</Lun>
<Lun name="/dev/dsk/c3t4d1" size="6450000" extentSize="1024">
</Lun>
<Lun name="/dev/dsk/c8t8d0" size="17782088" extentSize="1024">
</Lun>
<Lun name="/dev/dsk/c8t9d0" size="17782088" extentSize="1024">
</Lun>
<Lun name="/dev/dsk/c8t7d0" size="17782088" extentSize="1024">
</Lun>
</hostluns>
</VG>
【００６２】
ハーベスタ２４２によりＬＶＭデータとＶｘＶＭデータを組み合わせて１つのＸＭＬデータセットにすることができる。
このようなデータセットの例を以下に示す。
<managedgroups（管理されるグループ）> 
.... Lvm xml data （ＬＶＭ  ＸＭＬデータ）
...  vxvm xml data（ＶｘＶＭ  ＸＭＬデータ）
</managedgroups>
【００６３】
論理ストレージブロック（ＬＳＢ）は、ボリュームマネージャにより実行される論理ボリュームと物理ボリュームとの間の複雑なマッピングを表す。
ＬＳＢは、ストアのコンシューマ（つまりストレージ、ストレージコンシューマ）用に１つの論理ストレージ（つまりストレージリソース）を作成するため、あるいは、別の論理ストレージブロックを作成するための特定の関係を有する多数の（物理または論理）ストレージブロックの集合を表す。
【００６４】
ＬＵＮは、物理ストレージブロック（ＰＳＢ）に編成またはスライスされる。
ＰＳＢは、たとえば、ディスクドライブやテープドライブなどの物理メモリデバイスの隣接するブロックである。
論理ストレージブロックは、いくつかの簡単なマッピング技法（たとえば、直接、ストライプ、ミラーなど）の１つを使用した他のストレージブロックの論理マッピングである。
論理ストレージブロックは、複数のＰＳＢを１つの論理グループにマッピングすることができる。
論理ストレージブロックは、他のＬＳＢを１つにマッピングすることもできるが、ＰＳＢとＬＳＢを組み合わせることはできない。
論理ボリューム（ストレージコンシューマとも呼ばれる）は、１個または複数のＬＳＢを含む。
【００６５】
【表６】
2004152284.tif 000012
【００６６】
ＤＯ  ４０２、４０４、４０６、４０８、４１０に対応するＪＡＶＡドキュメントの例を次に示す。
対応するテンプレートの例（ＪＡＶＡドキュメントに記述されるＪＡＶＡメソッドを生成するツールで使用される）の間にＪＡＶＡドキュメントの例が分散している。
【００６７】
図４のボリュームグループＤＯ  ４０２に対応するＪＡＶＡドキュメント（クラスLogicalStoragePool（論理ストレージプール）と呼ぶ）を直後に示す。
先と同様に、ボリュームグループＤＯ  ４０２の属性部分４１４は、たとえば以降の「フィールドの概要」の章と「フィールドの詳細」の章に詳述されている。
ＪＡＶＡメソッド部分４１６は、たとえば、「メソッドの概要」の章、「コンストラクタの概要」の章、「コンストラクタの詳細」の章、「メソッドの詳細」の章に詳述されている。
【００６８】
com.hp.sanmgr.model 
クラス  LogicalStoragePool
java.lang.Object
|
+--com.hp.clay（クレイ）.StorableObject
|
+--com.hp.sanmgr.model.LogicalStoragePool
public final class LogicalStoragePool 
extends StorableObject
【００６９】
ストレージリソースのグループ/プールの抽象化。
ＬＶＭ、ＶｘＶＭ、ＬＤＭなどの使用中の論理ファイルシステムパッケージによりVolumeGroup（ボリュームグループ）やその他のエンティティにマッピング可能。
【００７０】
【表７Ａ】
2004152284.tif 000013
【００７１】
【表７Ｂ】
2004152284.tif 000014
【００７２】
【表８】
2004152284.tif 000015
【００７３】
【表９】
2004152284.tif 000016
【００７４】
【表１０Ａ】
2004152284.tif 000017
【００７５】
【表１０Ｂ】
2004152284.tif 000018
【００７６】
【表１０Ｃ】
2004152284.tif 000019
【００７７】
【表１０Ｄ】
2004152284.tif 000020
【００７８】
【表１１】
2004152284.tif 000021
【００７９】
【表１２】
2004152284.tif 000022
【００８０】
フィールドの詳細
【００８１】
Name（名前）
protected String name
ストレージプールの名前。
【００８２】
DEFAULT（既定）
public static final String DEFAULT
通常のボリュームグループに関連付けられていないＬＵＮ用の既定の論理ストレージプールの名前。
ＬＵＮに直接マッピングされるボリューム用に、ＬＵＮからボリュームへの関連付けに使用される。
【００８３】
UNKNOWN（未知）
public static final int UNKNOWN
実際の型が未知のときに型の指定に使用。
【００８４】
DIRECT_FILE_SYSTEM（直接ファイルシステム）
public static final int DIRECT_FILE_SYSTEM
【００８５】
LVM
public static final int LVM
【００８６】
VXVM
public static final int VXVM
【００８７】
LDM
public static final int LDM
【００８８】
UPM
public static final int UPM
【００８９】
type（型）
protected int type
このストレージコンシューマの型。
【００９０】
systemDevice（システムデバイス）
protected SystemDevice systemDevice
この論理ストレージプールが関連付けられているシステムデバイス。
【００９１】
storageConsumers（ストレージコンシューマ）
protected StorableMap storageConsumers
このLogicalStoragePoolに関連付けられたstorageConsumers。
【００９２】
hostLogicalUnits（ホスト論理ユニット）
protected StorableMap hostLogicalUnits
このLogicalStoragePoolに関連付けられたHostLocigalUnits。
【００９３】
totalHostLogicalUnits（ホスト論理ユニットの総数）
protected int totalHostLogicalUnits
この論理ストレージプールに関連付けられたホスト論理ユニットの総数。
【００９４】
totalStorageConsumers（ストレージコンシューマの総数）
protected int totalStorageConsumers
この論理ストレージプールに関連付けられたストレージコンシューマの総数。
【００９５】
sizeStorageConsumers（ストレージコンシューマのサイズ）
protected double sizeStorageConsumers
この論理ストレージプールに関連付けられたすべてのストレージコンシューマの総サイズ。
【００９６】
sizeHostLogicalUnits（ホスト論理ユニットのサイズ）
protected double sizeHostLogicalUnits
この論理ストレージプールに関連付けられたすべてのホスト論理ユニットの総サイズ。
【００９７】
usedHostLogicalUnits（ホスト論理ユニットの使用サイズ）
protected double usedHostLogicalUnits
この論理ストレージプールに関連付けられたすべてのホスト論理ユニット上のストレージコンシューマに使用された総サイズ。
【００９８】
usedPercentHostLogicalUnits（ホスト論理ユニットの使用パーセント）
protected double usedPercentHostLogicalUnits
この論理ストレージプールに関連付けられたホスト論理ユニット上のストレージコンシューマに使用された空間の合計パーセント。
【００９９】
LOGICALSTORAGEPOOL_ID_FIELD（LogicalStoragePoolのＩＤフィールド）
public static final String LOGICALSTORAGEPOOL_ID_FIELD
LogicalStoragePoolフィールドの名前を表す定数。
【０１００】
NAME_FIELD（nameフィールド）
public static final String NAME_FIELD
nameフィールドの名前を表す定数。
【０１０１】
TYPE_FIELD（typeフィールド）
public static final String TYPE_FIELD
typeフィールドの名前を表す定数。
【０１０２】
SYSTEMDEVICE_FIELD（systemDeviceフィールド）
public static final String SYSTEMDEVICE_FIELD
systemDeviceフィールドの名前を表す定数。
【０１０３】
TOTALHOSTLOGICALUNITS_FIELD（totalHostLogicalUnitsフィールド）
public static final String TOTALHOSTLOGICALUNITS_FIELD
totalHostLogicalUnitsフィールドの名前を表す定数。
【０１０４】
TOTALSTORAGECONSUMERS_FIELD（totalStorageConsumersフィールド）
public static final String TOTALSTORAGECONSUMERS_FIELD
totalStorageConsumersフィールドの名前を表す定数。
【０１０５】
SIZESTORAGECONSUMERS_FIELD（sizeStorageConsumersフィールド）
public static final String SIZESTORAGECONSUMERS_FIELD
sizeStorageConsumersフィールドの名前を表す定数。
【０１０６】
SIZEHOSTLOGICALUNITS_FIELD（sizeHostLogicalUnitsフィールド）
public static final String SIZEHOSTLOGICALUNITS_FIELD
sizeHostLogicalUnitsフィールドの名前を表す定数。
【０１０７】
USEDHOSTLOGICALUNITS_FIELD（usedHostLogicalUnitsフィールド）
public static final String USEDHOSTLOGICALUNITS_FIELD
usedHostLogicalUnitsフィールドの名前を表す定数。
【０１０８】
USEDPERCENTHOSTLOGICALUNITS_FIELD（usedPercentHostLogicalUnitsフィールド）
public static final String USEDPERCENTHOSTLOGICALUNITS_FIELD
usedPercentHostLogicalUnitsフィールドの名前を表す定数。
【０１０９】
コンストラクタの詳細
【０１１０】
LogicalStoragePool（論理ストレージプール）
public LogicalStoragePool()
既定のコンストラクタ。
【０１１１】
LogicalStoragePool
protected LogicalStoragePool(Dbid dbid)
ロード用に内部で使用されるコンストラクタ。
【０１１２】
LogicalStoragePool
public LogicalStoragePool(String name, SystemDevice systemDevice, int type)
所与のパラメータで新しいインフラストラクチャデバイスを構築する。
【０１１３】
メソッドの詳細
【０１１４】
toString（文字列へ）
public String toString()
このオブジェクトの文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoString
【０１１５】
getPhysicalStorageBlocks（物理ストレージブロックの取得）
public StorableList getPhysicalStorageBlocks()
この論理ストレージプールに関連付けられたすべての物理ストレージブロックを取得する。
戻り値：
この論理ストレージプールに関連付けられたPhysicalStorageBlockの一覧。
【０１１６】
getSizePhysicalStorageBlocks（物理ストレージブロックのサイズの取得）
public double getSizePhysicalStorageBlocks()
この論理ストレージプールに関連付けられたすべての物理ストレージブロックの総サイズを取得する。
【０１１７】
prepareInsert（挿入準備）
protected CachedPreparedStatement prepareInsert(ConnectionContext context)
throws SQLException
このメソッドはLogicalStoragePoolオブジェクトを保存可能、つまりデータベースに追加可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareInsert
【０１１８】
prepareDelete（削除準備）
protected CachedPreparedStatement prepareDelete(ConnectionContext context)
throws SQLException
このメソッドはLogicalStoragePoolオブジェクトを保存可能、つまりデータベースから削除可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareDelete
【０１１９】
prepareSelect（選択準備）
protected CachedPreparedStatement prepareSelect(ConnectionContext context)
throws SQLException
このメソッドはLogicalStoragePoolオブジェクトを保存可能、つまりデータベースから検索可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareSelect
【０１２０】
getName（nameの取得）
public String getName()
nameプロパティの値を返す。
【０１２１】
setName（Nameの設定）
public void setName(String name)
Nameプロパティを指定した値に設定する。
【０１２２】
getType（typeの取得）
public int getType()
typeプロパティの値を返す。
【０１２３】
setType（Typeの設定）
public void setType(int type)
Typeプロパティを指定した値に設定する。
【０１２４】
getSystemDevice（systemDeviceの取得）
public SystemDevice getSystemDevice()
systemDeviceプロパティの値を返す。
【０１２５】
setSystemDevice（SystemDeviceの設定）
public void setSystemDevice(SystemDevice systemDevice)
SystemDeviceプロパティを指定した値に設定する。
このメソッドを、このオブジェクトを親SystemDeviceの子の一覧に追加する手段として使用してはならないことに注意。
代わりに、使用可能であれば、SystemDevice親オブジェクト上でaddLogicalStoragePoolの適切な呼び出しを行わなければならない。
【０１２６】
getTotalHostLogicalUnits（totalHostLogicalUnitsの取得）
public int getTotalHostLogicalUnits()
totalHostLogicalUnitsプロパティの値を返す。
【０１２７】
setTotalHostLogicalUnits（TotalHostLogicalUnitsの設定）
public void setTotalHostLogicalUnits(int totalHostLogicalUnits)
TotalHostLogicalUnitsプロパティを指定した値に設定する。
【０１２８】
getTotalStorageConsumers（totalStorageConsumersの取得）
public int getTotalStorageConsumers()
totalStorageConsumersプロパティの値を返す。
【０１２９】
setTotalStorageConsumers（TotalStorageConsumersの設定）
public void setTotalStorageConsumers(int totalStorageConsumers)
TotalStorageConsumersプロパティを指定した値に設定する。
【０１３０】
getSizeStorageConsumers（sizeStorageConsumersの取得）
public double getSizeStorageConsumers()
sizeStorageConsumersプロパティの値を返す。
【０１３１】
setSizeStorageConsumers（SizeStorageConsumersの設定）
public void setSizeStorageConsumers(double sizeStorageConsumers)
SizeStorageConsumersプロパティを指定した値に設定する。
【０１３２】
getSizeHostLogicalUnits（sizeHostLogicalUnitsの取得）
public double getSizeHostLogicalUnits()
sizeHostLogicalUnitsプロパティの値を返す。
【０１３３】
setSizeHostLogicalUnits（SizeHostLogicalUnitsの設定）
public void setSizeHostLogicalUnits(double sizeHostLogicalUnits)
SizeHostLogicalUnitsプロパティを指定した値に設定する。
【０１３４】
getUsedHostLogicalUnits（usedHostLogicalUnitsの取得）
public double getUsedHostLogicalUnits()
usedHostLogicalUnitsプロパティの値を返す。
【０１３５】
setUsedHostLogicalUnits（UsedHostLogicalUnitsの設定）
public void setUsedHostLogicalUnits(double usedHostLogicalUnits)
UsedHostLogicalUnitsプロパティを指定した値に設定する。
【０１３６】
getUsedPercentHostLogicalUnits（usedPercentHostLogicalUnitsの取得）
public double getUsedPercentHostLogicalUnits()
usedPercentHostLogicalUnitsプロパティの値を返す。
【０１３７】
setUsedPercentHostLogicalUnits（UsedPercentHostLogicalUnitsの設定）
public void setUsedPercentHostLogicalUnits(double usedPercentHostLogicalUnits)
UsedPercentHostLogicalUnitsプロパティを指定した値に設定する。
【０１３８】
toDebugString（デバッグ文字列へ）
public String toDebugString()
指定したLogicalStoragePoolの文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０１３９】
toDebugString
public String toDebugString(String indent)
クラス：StorableObjectからコピーした説明
指定した字下げ文字列を使用して字下げされたオブジェクトのデバッグ文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０１４０】
toDebugString
public String toDebugString(String indent,
Vector callTree)
指定されたLogicalStoragePoolの字下げされた文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０１４１】
loadStorageConsumers（StorageConsurmerのロード）
public StorableMap loadStorageConsumers()
このLogicalStoragePoolのStorageConsumerオブジェクトの集合をロードして返す。
【０１４２】
getStorageConsumers（StorageConsurmerの取得）
public StorableMap getStorageConsumers()
このLogicalStoragePoolのStorageConsumerオブジェクトの集合を返す。
【０１４３】
getStorageConsumersIterator（StorageConsurmer反復子の取得）
public StorableIterator getStorageConsumersIterator()
このLogicalStoragePoolのStorageConsumerオブジェクトの集合を返す。
【０１４４】
getStorageConsumersIterator
public StorableIterator getStorageConsumersIterator(String sortFieldName,
boolean isAscending)
このLogicalStoragePoolのStorageConsumerオブジェクトの集合を返す。
【０１４５】
clearStorageConsumers（StorageConsumerのクリア）
public void clearStorageConsumers()
このLogicalStoragePoolのStorageConsumerオブジェクトの集合をクリアする。
アプリケーションが子StorageConsumerオブジェクトへの参照を明示的に破棄できるように提供される。
以降のget、load、add、removeメソッドの呼び出しにより集合が再ロードされることに注意。
【０１４６】
addStorageConsumer（StorageConsumerの追加）
public void addStorageConsumer(StorageConsumer storageConsumer)
指定したStorageConsumerをこのLogicalStoragePoolのStorageConsumerオブジェクトの集合に追加する。
【０１４７】
removeStorageConsumer（StorageConsumerの削除）
public void removeStorageConsumer(StorageConsumer storageConsumer)
指定したStorageConsumerをこのLogicalStoragePoolのStorageConsumerオブジェクトの集合から削除する。
【０１４８】
getStorageConsumer（StorageConsumerの取得）
public StorageConsumer getStorageConsumer(Dbid id)
このLogicalStoragePoolのStorageConsumerオブジェクトの集合内の指定したＩＤを有するStorageConsumerを返す。
【０１４９】
loadHostLogicalUnits（HostLogicalUnitのロード）
public StorableMap loadHostLogicalUnits()
このLogicalStoragePoolのHostLogicalUnitオブジェクトの集合をロードして返す。
【０１５０】
getHostLogicalUnits（HostLogicalUnitの取得）
public StorableMap getHostLogicalUnits()
このLogicalStoragePoolのHostLogicalUnitオブジェクトの集合を返す。
【０１５１】
getHostLogicalUnitsIterator（HostLogicalUnit反復子の取得）
public StorableIterator getHostLogicalUnitsIterator()
このLogicalStoragePoolのHostLogicalUnitオブジェクトの集合を返す。
【０１５２】
getHostLogicalUnitsIterator（HostLogicalUnit反復子の取得）
public StorableIterator getHostLogicalUnitsIterator(String sortFieldName,
boolean isAscending)
このLogicalStoragePoolのHostLogicalUnitオブジェクトの集合を返す。
【０１５３】
clearHostLogicalUnits（HostLogicalUnitのクリア）
public void clearHostLogicalUnits()
このLogicalStoragePoolのHostLogicalUnitオブジェクトの集合をクリアする。
アプリケーションが子HostLogicalUnitオブジェクトへの参照を明示的に破棄できるように提供される。
以降のget、load、add、removeメソッドの呼び出しにより集合が再ロードされることに注意。
【０１５４】
addHostLogicalUnit（HostLogicalUnitの追加）
public void addHostLogicalUnit(HostLogicalUnit hostLogicalUnit)
指定したHostLogicalUnitをこのLogicalStoragePoolのHostLogicalUnitオブジェクトの集合に追加する。
【０１５５】
removeHostLogicalUnit（HostLogicalUnitの削除）
public void removeHostLogicalUnit(HostLogicalUnit hostLogicalUnit)
指定したHostLogicalUnitをこのLogicalStoragePoolのHostLogicalUnitオブジェクトの集合から削除する。
【０１５６】
getHostLogicalUnit（HostLogicalUnitの取得）
public HostLogicalUnit getHostLogicalUnit(Dbid id)
このLogicalStoragePoolのHostLogicalUnitオブジェクトの集合内の指定したＩＤを有するHostLogicalUnitを返す。
【０１５７】
getLogicalStoragePoolListBySystemDevice（systemDeviceによるLogicalStoragePoolの一覧の取得）
public static StorableList getLogicalStoragePoolListBySystemDevice(SystemDevice systemDevice)
指定された値のsystemDeviceを有する特定の順番には並べられていないLogicalStoragePoolオブジェクトの一覧を返す。
【０１５８】
getBySystemDevice（systemDeviceによる取得）
public static StorableList getBySystemDevice(SystemDevice systemDevice)
非推奨。
指定された値のsystemDeviceを有するLogicalStoragePoolを返す。
【０１５９】
図４のボリュームグループＤＯ  ４０２に関連し、直前のＪＡＶＡドキュメント（クラスLogicalStoragePool）に対応するテンプレートの例を直後に示す。
【０１６０】
//------------------------------------------------------------------------------
//  著作権  １９９９−２００２  Hewlett-Packard Co.、全権留保。
//------------------------------------------------------------------------------
【０１６１】
/**
* ストレージリソースのグループ/プールの抽象化。これは、ＬＶＭ、ＶｘＶＭ、ＬＤＭ
* などの使用中の論理ファイルシステムパッケージによりVolumeGroup（ボリュームグル
* ープ）やその他のエンティティにマッピング可能。 
【０１６２】
*/
public final class LogicalStoragePool extends StorableObject {
/** ストレージプールの名前。  */
protected String name;
【０１６３】
/**
* 通常のボリュームグループに関連付けられていないＬＵＮ用の既定の論理ストレ
* ージプールの名前。ＬＵＮに直接マッピングされるボリューム用に、ＬＵＮからボ
* リュームへの関連付けに使用される。
*/
public static final String DEFAULT = "dEfAuLtVoLuMeGrOuP";
【０１６４】
/** 実際の型が未知のときに型の指定に使用。  */
public static final int UNKNOWN = 0;
【０１６５】
// ストレージプールの型のよく知られた列挙。  */
public static final int DIRECT_FILE_SYSTEM  = 1;
public static final int LVM        = 2;
public static final int VXVM       = 3;
public static final int LDM        = 4;
public static final int UPM        = 5;
【０１６６】
/** このストレージコンシューマの型。  */
protected int type;
【０１６７】
/** 
* この論理ストレージプールが関連付けられているシステムデバイス。 
*/
// ::getBy unsorted systemDevice
protected SystemDevice systemDevice;
【０１６８】
/** 
* このLogicalStoragePoolに関連付けられた{@link（リンク） StorageConsumer 
* StorageConsumers}。
*/
// ::relate LogicalStoragePool storageConsumers StorageConsumer logicalStoragePools
protected StorableMap storageConsumers;
【０１６９】
/** 
* このLogicalStoragePoolに関連付けられた{@link HostLogicalUnit 
* HostLogicalUnits}。
*/
// ::relate LogicalStoragePool hostLogicalUnits HostLogicalUnit logicalStoragePools
protected StorableMap hostLogicalUnits;
【０１７０】
/** 
* この論理ストレージプールに関連付けられたホスト論理ユニットの総数。
*/
protected int totalHostLogicalUnits;
/**
* この論理ストレージプールに関連付けられたストレージコンシューマの総数。
*/
protected int totalStorageConsumers;
【０１７１】
/**
* この論理ストレージプールに関連付けられたすべてのストレージコンシューマの
* 総サイズ。
*/
protected double sizeStorageConsumers;
【０１７２】
/**
* この論理ストレージプールに関連付けられたすべてのホスト論理ユニットの総サ
* イズ。
*/
protected double sizeHostLogicalUnits;
【０１７３】
/**
* この論理ストレージプールに関連付けられたすべてのホスト論理ユニット上のス 
* トレージコンシューマに使用された総サイズ。
*/
protected double usedHostLogicalUnits;
【０１７４】
/**
* この論理ストレージプールに関連付けられたホスト論理ユニット上のストレージ
* コンシューマに使用された空間の合計パーセント。
*/
protected double usedPercentHostLogicalUnits;
【０１７５】
/** 所与のパラメータで新しいインフラストラクチャデバイスを構築する。  */
public LogicalStoragePool (String name, SystemDevice systemDevice, 
int type) {
super ();
this.name = name;
this.systemDevice = systemDevice;
this.type = type;
this.totalHostLogicalUnits = 0;
this.totalStorageConsumers = 0;
this.sizeStorageConsumers = 0;
this.sizeHostLogicalUnits = 0;
this.usedHostLogicalUnits = 0;
this.usedPercentHostLogicalUnits = 0;
/* ::post-compile
if (systemDevice != null) {
systemDevice.addLogicalStoragePool(this);
}
::post-compile */
} // LogicalStoragePool
【０１７６】
/** このオブジェクトの文字列イメージを返す。  */
/* ::post-compile
public String toString () {
return "storage pool " + getName();
} // toString
::post-compile */
【０１７７】
/**
* この論理ストレージプールに関連付けられたすべての物理ストレージブロックを
* 取得する。
*
* @return（戻り値） この論理ストレージプールに関連付けられた{@link 
* PhysicalStorageBlock PhysicalStorageBlock}の一覧。
*/
/* ::post-compile
public StorableList getPhysicalStorageBlocks() {
StorableList physicalBlocks = new StorableList();
Iterator hostLuns = loadHostLogicalUnits().iterator();
while(hostLuns.hasNext()) {
HostLogicalUnit hostLun = (HostLogicalUnit)hostLuns.next();
physicalBlocks.importCollection(hostLun.getPhysicalStorageBlocks());
}
return physicalBlocks;
}
::post-compile */
【０１７８】
/**
* この論理ストレージプールに関連付けられたすべての物理ストレージブロックの
* 総サイズを取得する。
*/
/* ::post-compile
public double getSizePhysicalStorageBlocks() {
double size = 0;
Iterator iteration = getPhysicalStorageBlocks().iterator();
while(iteration.hasNext()) {
PhysicalStorageBlock physicalBlock = 
(PhysicalStorageBlock)iteration.next();
size += physicalBlock.getSize();
}
return size;
}
::post-compile */
【０１７９】
図４の論理ボリュームＤＯ  ４０４に対応するＪＡＶＡドキュメント（クラスStorageConsumerと呼ぶ）を直後に示す。
【０１８０】
com.hp.sanmgr.model 
クラス  StorageConsumer（ストレージコンシューマ）
java.lang.Object
|
+--com.hp.clay.StorableObject
|
+--com.hp.sanmgr.model.StorageConsumer
public final class StorageConsumer 
extends StorableObject
【０１８１】
ＨＯＳＴまたはＮＡＳＤｅｖｉｃｅなどのシステムデバイスに割り当てられたストレージリソースを使用するソフトウェア層（ファイルシステム）の抽象化。
ファイルシステム以外では、データベースソフトウェアなどによる使用のために割り当てられたスワップ空間、ダンプ空間、任意の未設定のストレージ空間も表すことができる。
【０１８２】
【表１３Ａ】
2004152284.tif 000023
【０１８３】
【表１３Ｂ】
2004152284.tif 000024
【０１８４】
【表１４】
2004152284.tif 000025
【０１８５】
【表１５】
2004152284.tif 000026
【０１８６】
【表１６Ａ】
2004152284.tif 000027
【０１８７】
【表１６Ｂ】
2004152284.tif 000028
【０１８８】
【表１６Ｃ】
2004152284.tif 000029
【０１８９】
【表１６Ｄ】
2004152284.tif 000030
【０１９０】
【表１７】
2004152284.tif 000031
【０１９１】
【表１８】
2004152284.tif 000032
【０１９２】
フィールドの詳細
【０１９３】
mountPoint（マウントポイント）
protected String mountPoint
ホスト固有のマウントポイント、/usr、/home、/tmpなど。
【０１９４】
deviceFile（デバイスファイル）
protected String deviceFile
このストレージコンシューマがストレージを取得するデバイスファイル。
デバイスファイルは実質的にstorageBlockとの関係で冗長であるが、下位のストレージブロックへの緩いリンクを提供することに注意。
【０１９５】
logicalStoragePools（論理ストレージプール）
protected StorableMap logicalStoragePools
このStorageConsumerに関連付けられたLogicalStoragePool。
【０１９６】
logicalStorageBlocks（論理ストレージブロック）
protected transient StorableMap logicalStorageBlocks
このストレージコンシューマがストレージリソースを取得する論理ストレージブロック。
【０１９７】
managedDirectories（被管理ディレクトリ）
protected transient StorableMap managedDirectories
このパーティション内のすべての被管理ディレクトリの一覧。
【０１９８】
consumptionBlocks（消費ブロック）
protected transient StorableMap consumptionBlocks
このパーティション内のすべての消費ブロックの一覧。
【０１９９】
type（型）
protected String type
元のプラットフォームから取得された時のこのストレージコンシューマの型。
【０２００】
UNKNOWN（未知）
public static final String UNKNOWN
未知のストレージコンシューマ／ボリュームの型として使用される値。
【０２０１】
SWAP（スワップ）
public static final String SWAP
スワップ空間の型として使用される値。
【０２０２】
totalSize（総サイズ）
protected double totalSize
論理ボリュームの総サイズ。
【０２０３】
hasFileSystem（ファイルシステム有り）
protected boolean hasFileSystem
この論理ボリュームがファイルシステムを有するかどうか。
【０２０４】
totalCapacity（総容量）
protected double totalCapacity
このストレージコンシューマの総容量。
【０２０５】
availableCapacity（使用可能容量）
protected double availableCapacity
このストレージコンシューマの使用可能容量。
【０２０６】
usedCapacity（使用中容量）
protected double usedCapacity
このストレージコンシューマの使用中容量。
【０２０７】
usedPercent（使用中パーセント）
protected double usedPercent
使用中容量のパーセント。
パーセント値の計算に使用される式は、（使用中＊１００）／（使用中＋使用可能）。
【０２０８】
systemDevice（システムデバイス）
protected SystemDevice systemDevice
このストレージコンシューマが属するシステムデバイス、たとえばHostまたはNASDevice。
【０２０９】
STORAGECONSUMER_ID_FIELD（StorageConsumerのＩＤフィールド）
public static final String STORAGECONSUMER_ID_FIELD
StorageConsumerフィールドの名前を表す定数。
【０２１０】
MOUNTPOINT_FIELD（mountPointフィールド）
public static final String MOUNTPOINT_FIELD
mountPointフィールドの名前を表す定数。
【０２１１】
DEVICEFILE_FIELD（deviceFileフィールド）
public static final String DEVICEFILE_FIELD
deviceFileフィールドの名前を表す定数。
【０２１２】
TYPE_FIELD（typeフィールド）
public static final String TYPE_FIELD
typeフィールドの名前を表す定数。
【０２１３】
TOTALSIZE_FIELD（totalSizeフィールド）
public static final String TOTALSIZE_FIELD
totalSizeフィールドの名前を表す定数。
【０２１４】
HASFILESYSTEM_FIELD（hasFileSystemフィールド）
public static final String HASFILESYSTEM_FIELD
hasFileSystemフィールドの名前を表す定数。
【０２１５】
TOTALCAPACITY_FIELD（totalCapacityフィールド）
public static final String TOTALCAPACITY_FIELD
totalCapacityフィールドの名前を表す定数。
【０２１６】
AVAILABLECAPACITY_FIELD（availableCapacityフィールド）
public static final String AVAILABLECAPACITY_FIELD
availableCapacityフィールドの名前を表す定数。
【０２１７】
USEDCAPACITY_FIELD（usedCapacityフィールド）
public static final String USEDCAPACITY_FIELD
usedCapacityフィールドの名前を表す定数。
【０２１８】
USEDPERCENT_FIELD（usedPercentフィールド）
public static final String USEDPERCENT_FIELD
usedPercentフィールドの名前を表す定数。
【０２１９】
SYSTEMDEVICE_FIELD（systemDeviceフィールド）
public static final String SYSTEMDEVICE_FIELD
systemDeviceフィールドの名前を表す定数。
【０２２０】
コンストラクタの詳細
【０２２１】
StorageConsumer（ストレージコンシューマ）
public StorageConsumer()
既定のコンストラクタ。
【０２２２】
StorageConsumer
protected StorageConsumer(Dbid dbid)
ロード用に内部で使用されるコンストラクタ。
【０２２３】
StorageConsumer
public StorageConsumer(String mountPoint,
String deviceFile,
String type,
double totalCapacity,
double usedCapacity,
double availableCapacity)
システムデバイスに関連付けられていない      上にローカルファイルシステムとして新規のストレージコンシューマを構築する。
パラメータ：
systemDevice−このストレージコンシューマが存在するシステムデバイス。
type−ファイルシステムの型。
mountPoint−ファイルシステムのマウントポイント。
deviceFile−このファイルシステムのデバイスファイル。
totalCapacity−このファイルシステム上の総容量。
この計測値はバイトを単位として保存される。
usedCapacity−このファイルシステム上の使用中容量。
この計測値はバイトを単位として保存される。
availableCapacity−このファイルシステム上の使用可能容量。
この計測値はバイトを単位として保存される。
【０２２４】
StorageConsumer
public StorageConsumer(SystemDevice systemDevice,
String type,
String mountPoint,
String deviceFile,
double totalCapacity,
double usedCapacity,
double availableCapacity)
指定されたシステムデバイス上にローカルファイルシステムとして新規のストレージコンシューマを構築する。
このコンストラクタは、新規のインスタンスをデバイスのストレージコンシューマの一覧に追加することに注意。
パラメータ：
systemDevice−このストレージコンシューマが存在するシステムデバイス。
type−ファイルシステムの型。
mountPoint−ファイルシステムのマウントポイント。
deviceFile−このファイルシステムのデバイスファイル。
totalCapacity−このファイルシステム上の総容量。
この計測値はバイトを単位として保存される。
usedCapacity−このファイルシステム上の使用中容量。
この計測値はバイトを単位として保存される。
availableCapacity−このファイルシステム上の使用可能容量。
この計測値はバイトを単位として保存される。
【０２２５】
StorageConsumer
public StorageConsumer(SystemDevice systemDevice,
String type,
String mountPoint,
String deviceFile,
double totalSize,
double totalCapacity,
double usedCapacity,
double availableCapacity)
指定されたシステムデバイス上にローカルファイルシステムとして新規のストレージコンシューマを構築する。
このコンストラクタは、新規のインスタンスをデバイスのストレージコンシューマの一覧に追加することに注意。
パラメータ：
systemDevice−このストレージコンシューマが存在するシステムデバイス。
type−ファイルシステムの型
mountPoint−ファイルシステムのマウントポイント。
deviceFile−このファイルシステムのデバイスファイル。
totalSize−論理ボリュームの総サイズ。
この計測値はバイトを単位として保存される。
totalCapacity−このファイルシステム上の総容量。
この計測値はバイトを単位として保存される。
usedCapacity−このファイルシステム上の使用中容量。
この計測値はバイトを単位として保存される。
availableCapacity−このファイルシステム上の使用可能容量。
この計測値はバイトを単位として保存される。
【０２２６】
メソッドの詳細
【０２２７】
getAvailablePercent（使用可能な容量のパーセントを取得）
public double getAvailablePercent()
使用可能な容量のパーセントを返す。
パーセント値の計算に使用される式は、（使用中＊１００）／（使用中＋使用可能）。
【０２２８】
getPhysicalStorageBlocks（PhysicalStorageBlocksの取得）
public StorableMap getPhysicalStorageBlocks()
特定のStorageConsumerに関連付けられたすべてのPhysicalStorageBlocksを検索する。
これは、StorageConsumerの子LogicalStorageBlocksに直接関連付けられた物理ブロックだけではなく、その子LogicalStorageBlocksに関連付けられたPhysicalStorageBlocksも含む。
戻り値：
この論理ブロックに関連付けられたすべての物理ブロックのマップ。
【０２２９】
toString（文字列へ）
public String toString()
このオブジェクトの文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoString
【０２３０】
prepareInsert（挿入準備）
protected CachedPreparedStatement prepareInsert(ConnectionContext context)
throws SQLException
このメソッドはStorageConsumerオブジェクトを保存可能、つまりデータベースに追加可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareInsert
【０２３１】
prepareDelete（削除準備）
protected CachedPreparedStatement prepareDelete(ConnectionContext context)
throws SQLException
このメソッドはStorageConsumerオブジェクトを保存可能、つまりデータベースから削除可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareDelete
【０２３２】
prepareSelect（選択準備）
protected CachedPreparedStatement prepareSelect(ConnectionContext context)
throws SQLException
このメソッドはStorageConsumerオブジェクトを保存可能、つまりデータベースから検索可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareSelect
【０２３３】
getMountPoint（mountPointの取得）
public String getMountPoint()
mountPointプロパティの値を返す。
【０２３４】
setMountPoint（mountPointの設定）
public void setMountPoint(String mountPoint)
MountPointプロパティを指定した値に設定する。
【０２３５】
getDeviceFile（deviceFileの取得）
public String getDeviceFile()
deviceFileプロパティの値を返す。
【０２３６】
setDeviceFile（DeviceFileの設定）
public void setDeviceFile(String deviceFile)
DeviceFileプロパティを指定した値に設定する。
【０２３７】
getType（typeの取得）
public String getType()
typeプロパティの値を返す。
【０２３８】
setType（Typeの設定）
public void setType(String type)
Typeプロパティを指定した値に設定する。
【０２３９】
getTotalSize（totalSizeの取得）
public double getTotalSize()
totalSizeプロパティの値を返す。
【０２４０】
setTotalSize（TotalSizeの設定）
public void setTotalSize(double totalSize)
TotalSizeプロパティを指定した値に設定する。
【０２４１】
getHasFileSystem（hasFileSystemの取得）
public boolean getHasFileSystem()
hasFileSystemプロパティの値を返す。
【０２４２】
setHasFileSystem（HasFileSystemの設定）
public void setHasFileSystem(boolean hasFileSystem)
HasFileSystemプロパティを指定した値に設定する。
【０２４３】
getTotalCapacity（totalCapacityの取得）
public double getTotalCapacity()
totalCapacityプロパティの値を返す。
【０２４４】
setTotalCapacity（TotalCapacityの設定）
public void setTotalCapacity(double totalCapacity)
TotalCapacityプロパティを指定した値に設定する。
【０２４５】
getAvailableCapacity（availableCapacityの取得）
public double getAvailableCapacity()
availableCapacityプロパティの値を返す。
【０２４６】
setAvailableCapacity（AvailableCapacityの設定）
public void setAvailableCapacity(double availableCapacity)
AvailableCapacityプロパティを指定した値に設定する。
【０２４７】
getUsedCapacity（usedCapacityの取得）
public double getUsedCapacity()
usedCapacityプロパティの値を返す。
【０２４８】
setUsedCapacity（UsedCapacityの設定）
public void setUsedCapacity(double usedCapacity)
UsedCapacityプロパティを指定した値に設定する。
【０２４９】
getUsedPercent（usedPercentの取得）
public double getUsedPercent()
usedPercentプロパティの値を返す。
【０２５０】
setUsedPercent（UsedPercentの設定）
public void setUsedPercent(double usedPercent)
UsedPercentプロパティを指定した値に設定する。
【０２５１】
getSystemDevice（systemDeviceの取得）
public SystemDevice getSystemDevice()
systemDeviceプロパティの値を返す。
【０２５２】
setSystemDevice（SystemDeviceの設定）
public void setSystemDevice(SystemDevice systemDevice)
SystemDeviceプロパティを指定した値に設定する。
このメソッドを、このオブジェクトを親SystemDeviceの子の一覧に追加する手段として使用してはならないことに注意。
代わりに、使用可能であれば、SystemDevice親オブジェクト上でaddStorageConsumerの適切な呼び出しを行わなければならない。
【０２５３】
toDebugString（デバッグ文字列へ）
public String toDebugString()
指定したStorageConsumerの文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０２５４】
toDebugString（デバッグ文字列へ）
public String toDebugString(String indent)
クラス：StorableObjectからコピーした説明
指定した字下げ文字列を使用して字下げされたオブジェクトのデバッグ文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０２５５】
toDebugString（デバッグ文字列へ）
public String toDebugString(String indent,
Vector callTree)
指定されたStorageConsumerの字下げされた文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０２５６】
loadLogicalStoragePools（LogicalStoragePoolのロード）
public StorableMap loadLogicalStoragePools()
このStorageConsumerのLogicalStoragePoolオブジェクトの集合をロードして返す。
【０２５７】
getLogicalStoragePools（LogicalStoragePoolの取得）
public StorableMap getLogicalStoragePools()
このStorageConsumerのLogicalStoragePoolオブジェクトの集合を返す。
【０２５８】
getLogicalStoragePoolsIterator（LogicalStoragePool反復子の取得）
public StorableIterator getLogicalStoragePoolsIterator()
このStorageConsumerのLogicalStoragePoolオブジェクトの集合を返す。
【０２５９】
getLogicalStoragePoolsIterator（LogicalStoragePool反復子の取得）
public StorableIterator getLogicalStoragePoolsIterator(String sortFieldName,
boolean isAscending)
このStorageConsumerのLogicalStoragePoolオブジェクトの集合を返す。
【０２６０】
clearLogicalStoragePools（LogicalStoragePoolのクリア）
public void clearLogicalStoragePools()
このStorageConsumerのLogicalStoragePoolオブジェクトの集合をクリアする。
アプリケーションが子LogicalStoragePoolオブジェクトへの参照を明示的に破棄できるように提供される。
以降のget、load、add、removeメソッドの呼び出しにより集合が再ロードされることに注意。
【０２６１】
addLogicalStoragePool（LogicalStoragePoolの追加）
public void addLogicalStoragePool(LogicalStoragePool logicalStoragePool)
指定したLogicalStoragePoolをこのStorageConsumerのLogicalStoragePoolオブジェクトの集合に追加する。
【０２６２】
removeLogicalStoragePool（LogicalStoragePoolの削除）
public void removeLogicalStoragePool(LogicalStoragePool logicalStoragePool)
指定したLogicalStoragePoolをこのStorageConsumerのLogicalStoragePoolオブジェクトの集合から削除する。
【０２６３】
getLogicalStoragePool（LogicalStoragePoolの取得）
public LogicalStoragePool getLogicalStoragePool(Dbid id)
このStorageConsumerのLogicalStoragePoolオブジェクトの集合内の指定したＩＤを有するLogicalStoragePoolを返す。
【０２６４】
loadLogicalStorageBlocks（LogicalStorageBlockのロード）
public StorableMap loadLogicalStorageBlocks()
このStorageConsumerのLogicalStorageBlockオブジェクトの集合をロードして返す。
【０２６５】
getLogicalStorageBlocks（LogicalStorageBlockの取得）
public StorableMap getLogicalStorageBlocks()
このStorageConsumerのLogicalStorageBlockオブジェクトの集合を返す。
【０２６６】
getLogicalStorageBlocksIterator（LogicalStorageBlock反復子の取得）
public StorableIterator getLogicalStorageBlocksIterator()
このStorageConsumerのLogicalStorageBlockオブジェクトの集合を返す。
【０２６７】
getLogicalStorageBlocksIterator（LogicalStorageBlock反復子の取得）
public StorableIterator getLogicalStorageBlocksIterator(String sortFieldName,
boolean isAscending)
このStorageConsumerのLogicalStorageBlockオブジェクトの集合を返す。
【０２６８】
clearLogicalStorageBlocks（LogicalStorageBlockのクリア）
public void clearLogicalStorageBlocks()
このStorageConsumerのLogicalStorageBlockオブジェクトの集合をクリアする。
アプリケーションが子LogicalStorageBlockオブジェクトへの参照を明示的に破棄できるように提供される。
以降のget、load、add、removeメソッドの呼び出しにより集合が再ロードされることに注意。
【０２６９】
addLogicalStorageBlock（LogicalStorageBlockの追加）
public void addLogicalStorageBlock(LogicalStorageBlock logicalStorageBlock)
指定したLogicalStorageBlockをこのStorageConsumerのLogicalStorageBlockオブジェクトの集合に追加する。
【０２７０】
removeLogicalStorageBlock（LogicalStorageBlockの削除）
public void removeLogicalStorageBlock(LogicalStorageBlock logicalStorageBlock)
指定したLogicalStorageBlockをこのStorageConsumerのLogicalStorageBlockオブジェクトの集合から削除する。
【０２７１】
getLogicalStorageBlock（LogicalStorageBlockの取得）
public LogicalStorageBlock getLogicalStorageBlock(Dbid id)
このStorageConsumerのLogicalStorageBlockオブジェクトの集合内の指定したＩＤを有するLogicalStorageBlockを返す。
【０２７２】
loadManagedDirectories（ManagedDirectoryのロード）
public StorableMap loadManagedDirectories()
このStorageConsumerのManagedDirectoryオブジェクトの集合をロードして返す。
【０２７３】
getManagedDirectories（ManagedDirectoryの取得）
public StorableMap getManagedDirectories()
このStorageConsumerのManagedDirectoryオブジェクトの集合を返す。
【０２７４】
getManagedDirectoriesIterator（ManagedDirectory反復子の取得）
public StorableIterator getManagedDirectoriesIterator()
このStorageConsumerのManagedDirectoryオブジェクトの集合を返す。
【０２７５】
getManagedDirectoriesIterator（ManagedDirectory反復子の取得）
public StorableIterator 
getManagedDirectoriesIterator(String sortFieldName,
boolean isAscending)
このStorageConsumerのManagedDirectoryオブジェクトの集合を返す。
【０２７６】
clearManagedDirectories（ManagedDirectoryのクリア）
public void clearManagedDirectories()
このStorageConsumerのManagedDirectoryオブジェクトの集合をクリアする。
アプリケーションが子ManagedDirectoryオブジェクトへの参照を明示的に破棄できるように提供される。
以降のget、load、add、removeメソッドの呼び出しにより集合が再ロードされることに注意。
【０２７７】
addManagedDirectory（ManagedDirectoryの追加）
public void addManagedDirectory(ManagedDirectory managedDirectory)
指定したManagedDirectoryをこのStorageConsumerのManagedDirectoryオブジェクトの集合に追加する。
【０２７８】
removeManagedDirectory（ManagedDirectoryの削除）
public void removeManagedDirectory(ManagedDirectory managedDirectory)
指定したManagedDirectoryをこのStorageConsumerのManagedDirectoryオブジェクトの集合から削除する。
【０２７９】
getManagedDirectory（ManagedDirectoryの取得）
public ManagedDirectory getManagedDirectory(Dbid id)
このStorageConsumerのManagedDirectoryオブジェクトの集合内の指定したＩＤを有するManagedDirectoryを返す。
【０２８０】
loadConsumptionBlocks（ConsumptionBlockのロード）
public StorableMap loadConsumptionBlocks()
このStorageConsumerのConsumptionBlockオブジェクトの集合をロードして返す。
【０２８１】
getConsumptionBlocks（ConsumptionBlockの取得）
public StorableMap getConsumptionBlocks()
このStorageConsumerのConsumptionBlockオブジェクトの集合を返す。
【０２８２】
getConsumptionBlocksIterator（ConsumptionBlock反復子の取得）
public StorableIterator getConsumptionBlocksIterator()
このStorageConsumerのConsumptionBlockオブジェクトの集合を返す。
【０２８３】
getConsumptionBlocksIterator
public StorableIterator 
getConsumptionBlocksIterator(String sortFieldName,
boolean isAscending)
このStorageConsumerのConsumptionBlockオブジェクトの集合を返す。
【０２８４】
clearConsumptionBlocks（ConsumptionBlockのクリア）
public void clearConsumptionBlocks()
このStorageConsumerのConsumptionBlockオブジェクトの集合をクリアする。
アプリケーションが子ConsumptionBlockオブジェクトへの参照を明示的に破棄できるように提供される。
以降のget、load、add、removeメソッドの呼び出しにより集合が再ロードされることに注意。
【０２８５】
addConsumptionBlock（ConsumptionBlockの追加）
public void addConsumptionBlock(ConsumptionBlock consumptionBlock)
指定したConsumptionBlockをこのStorageConsumerのConsumptionBlockオブジェクトの集合に追加する。
【０２８６】
removeConsumptionBlock（ConsumptionBlockの削除）
public void removeConsumptionBlock(ConsumptionBlock consumptionBlock)
指定したConsumptionBlockをこのStorageConsumerのConsumptionBlockオブジェクトの集合から削除する。
【０２８７】
getConsumptionBlock（ConsumptionBlockの取得）
public ConsumptionBlock getConsumptionBlock(Dbid id)
このStorageConsumerのConsumptionBlockオブジェクトの集合内の指定したＩＤを有するConsumptionBlockを返す。
【０２８８】
getStorageConsumerListBySystemDevice（systemDeviceによるStorageConsumerの一覧の取得）
public static StorableList 
getStorageConsumerListBySystemDevice(SystemDevice systemDevice)
指定された値のsystemDeviceを有する特定の順番には並べられていないStorageConsumerオブジェクトの一覧を返す。
【０２８９】
getBySystemDevice（systemDeviceによる取得）
public static StorableList getBySystemDevice(SystemDevice systemDevice)
非推奨。
指定された値のsystemDeviceを有するStorageConsumerを返す。
【０２９０】
図４の論理ボリュームＤＯ  ４０４に関連し、直前のＪＡＶＡドキュメント（クラスStorageConsumer）に対応するテンプレートの例を直後に示す。
【０２９１】
//------------------------------------------------------------------------------
//  著作権  １９９９−２００２  Hewlett-Packard Co.、全権留保。
//------------------------------------------------------------------------------
/**
【０２９２】
* {@link Host}または{@link NASDevice}などのシステムデバイスに割り当てられたスト
* レージリソースを使用するソフトウェア層（ファイルシステム）の抽象化。
ファイルシ
* ステム以外では、データベースソフトウェアなどによる使用のために割り当てられたス * ワップ空間、ダンプ空間、任意の未設定のストレージ空間も表すことができる。
*/
public final class StorageConsumer extends StorableObject {
/** ホスト固有のマウントポイント、/usr、/home、/tmpなど。  */
protected String mountPoint;
【０２９３】
/**
* このストレージコンシューマがストレージを取得するデバイスファイル。 
*  デバイスファイルは実質的にstorageBlockとの関係で冗長であるが、下位のスト
*  レージブロックへの緩いリンクを提供することに注意。  
*/
protected String deviceFile;
【０２９４】
/** 
* このStorageConsumerに関連付けられた{@link LogicalStoragePool 
* LogicalStoragePools}。
*/
// ::relate StorageConsumer logicalStoragePools LogicalStoragePool storageConsumers
protected StorableMap logicalStoragePools;
【０２９５】
/** 
* このストレージコンシューマがストレージリソースを取得する論理ストレージブ
* ロック。  
*/
// ::relate StorageConsumer logicalStorageBlocks LogicalStorageBlock rootStorageConsumer
protected transient StorableMap logicalStorageBlocks = null;
【０２９６】
/** このパーティション内のすべての被管理ディレクトリの一覧。  */
// ::relate StorageConsumer managedDirectories ManagedDirectory storageConsumer
protected transient StorableMap managedDirectories = null;
【０２９７】
/** このパーティション内のすべての消費ブロックの一覧。  */
// ::relate StorageConsumer consumptionBlocks ConsumptionBlock storageConsumer
protected transient StorableMap consumptionBlocks = null;
【０２９８】
/** 
* 元のプラットフォームから取得された時のこのストレージコンシューマの型。  
*/
protected String type;
【０２９９】
/** 未知のストレージコンシューマ／ボリュームの型として使用される値。  */
public static final String UNKNOWN = "unknown";
【０３００】
/** スワップ空間の型として使用される値。  */
public static final String SWAP = "swap";
【０３０１】
/** 論理ボリュームの総サイズ。  */
protected double totalSize;
【０３０２】
/** この論理ボリュームがファイルシステムを有するかどうか。  */
protected boolean hasFileSystem;
【０３０３】
/** このストレージコンシューマの総容量。  */
protected double totalCapacity;
【０３０４】
/** このストレージコンシューマの使用可能容量。  */
protected double availableCapacity;
【０３０５】
/** このストレージコンシューマの使用中容量。  */
protected double usedCapacity;
【０３０６】
/** 
* 使用中容量のパーセント。パーセント値の計算に使用される式は、（使用中＊１０
* ０）／（使用中＋使用可能）。  
*/
protected double usedPercent;
【０３０７】
/** 
* このストレージコンシューマが属するシステムデバイス、たとえば{@link Host}
* または{@link NASDevice}。 
*/
// ::getBy unsorted systemDevice
protected SystemDevice systemDevice;
【０３０８】
/**
* システムデバイスに関連付けられていない    上にローカルファイルシステム
* として新規のストレージコンシューマを構築する。
*
* @param（パラメータ） systemDevice  このストレージコンシューマが存在するシ
* ステムデバイス。
* @param type  ファイルシステムの型。
* @param mountPoint  ファイルシステムのマウントポイント。
* @param deviceFile  このファイルシステムのデバイスファイル。
* @param totalCapacity  このファイルシステム上の総容量。この計測値はバイトを
* 単位として保存される。
* @param usedCapacity  このファイルシステム上の使用中容量。この計測値はバイ
* トを単位として保存される。
* @param availableCapacity  このファイルシステム上の使用可能容量。この計測値
* はバイトを単位として保存される。
*/
public StorageConsumer (String mountPoint, String deviceFile, String type,
double totalCapacity, 
double usedCapacity, double availableCapacity) {
super ();
this.type = type;
this.mountPoint = mountPoint;
this.deviceFile = deviceFile;
this.totalCapacity = totalCapacity;
this.usedCapacity = usedCapacity;
this.availableCapacity = availableCapacity;
}    
【０３０９】
/**
* 指定されたシステムデバイス上にローカルファイルシステムとして新規のストレ
* ージコンシューマを構築する。このコンストラクタは、新規のインスタンスをデバ
* イスのストレージコンシューマの一覧に追加することに注意。  
*
* @param systemDevice  このストレージコンシューマが存在するシステムデバイス。
* @param type  ファイルシステムの型。
* @param mountPoint  ファイルシステムのマウントポイント。
* @param deviceFile  このファイルシステムのデバイスファイル。
* @param totalCapacity  このファイルシステム上の総容量。この計測値はバイトを
* 単位として保存される。
* @param usedCapacity  このファイルシステム上の使用中容量。この計測値はバイ
* トを単位として保存される。
* @param availableCapacity  このファイルシステム上の使用可能容量。この計測値
* はバイトを単位として保存される。
*/
public StorageConsumer (SystemDevice systemDevice, String type,
String mountPoint, String deviceFile,
double totalCapacity, 
double usedCapacity, double availableCapacity) {
super ();
this.type = type;
this.mountPoint = mountPoint;
this.deviceFile = deviceFile;
this.totalCapacity = totalCapacity;
this.usedCapacity = usedCapacity;
this.availableCapacity = availableCapacity;
/* ::post-compile
if (systemDevice != null) {
systemDevice.addStorageConsumer (this);
}
::post-compile */
}
【０３１０】
/**
* 指定されたシステムデバイス上にローカルファイルシステムとして新規のストレ
* ージコンシューマを構築する。このコンストラクタは、新規のインスタンスをデバ
* イスのストレージコンシューマの一覧に追加することに注意。  
*
* @param systemDevice  このストレージコンシューマが存在するシステムデバイス。
* @param type  ファイルシステムの型。
* @param mountPoint  ファイルシステムのマウントポイント。
* @param deviceFile  このファイルシステムのデバイスファイル。
* @param totalSize  論理ボリュームの総サイズ。この計測値はバイトを単位として
* 保存される。
* @param totalCapacity  このファイルシステム上の総容量。この計測値はバイトを
* 単位として保存される。
* @param usedCapacity  このファイルシステム上の使用中容量。この計測値はバイ
* トを単位として保存される。
* @param availableCapacity  このファイルシステム上の使用可能容量。この計測値
* はバイトを単位として保存される。
*/
public StorageConsumer (SystemDevice systemDevice, String type,
String mountPoint, String deviceFile,
double totalSize, double totalCapacity, 
double usedCapacity, double availableCapacity) {
super ();
this.type = type;
this.mountPoint = mountPoint;
this.deviceFile = deviceFile;
this.totalSize = totalSize;
this.totalCapacity = totalCapacity;
this.usedCapacity = usedCapacity;
this.availableCapacity = availableCapacity;
/* ::post-compile
if (systemDevice != null) {
systemDevice.addStorageConsumer (this);
}
::post-compile */
}
【０３１１】
/**
* 使用可能な容量のパーセントを返す。パーセント値の計算に使用される式は、（使
* 用中＊１００）／（使用中＋使用可能）。  
*/
public double getAvailablePercent () {
return 0;  /* ::post-compile
return (getAvailableCapacity() * 100.0) / 
(getUsedCapacity() + getAvailableCapacity());
::post-compile */
}
【０３１２】
/**
* 特定のStorageConsumerに関連付けられたすべてのPhysicalStorageBlocksを検索
* する。これは、StorageConsumerの子LogicalStorageBlocksに直接関連付けられ
* た物理ブロックだけではなく、その子LogicalStorageBlocksに関連付けられた
* PhysicalStorageBlocksも含む。
*
* @return この論理ブロックに関連付けられたすべての物理ブロックのマップ。
*/
/* ::post-compile
public StorableMap getPhysicalStorageBlocks() {
StorableMap physicalBlocks = new StorableMap();
Iterator logicalBlocks = getLogicalStorageBlocks().iterator();
while(logicalBlocks.hasNext()) {
StorableMap childPhysicalBlocks =
getPhysicalBlocks((LogicalStorageBlock)logicalBlocks.next());
physicalBlocks.importCollection(childPhysicalBlocks);
}
return physicalBlocks;
}
::post-compile */
【０３１３】
/**
* 特定のLogicalStorageBlockに関連付けられたすべてのPhysicalStorageBlocks
* を取得する再帰呼び出し。これには、LogicalStorageBlockに直接関連付けられた
* 物理ブロックだけではなく、任意の子論理ストレージブロックに関連付けられた物
* 理ブロックも含まれる。
*
* @param logicalBlock  すべての物理ストレージブロックを検索する必要のある論
* 理ストレージブロック。非ＮＵＬＬ値でなければならない。
*
* @return  この論理ブロックに関連付けられたすべての物理ブロックのマップ。
*
* @throws（スロー）  所与の論理ブロックがＮＵＬＬの場合NullPointerException
* （ＮＵＬＬポインタ例外）。
*/
/* ::post-compile    
private StorableMap getPhysicalBlocks(LogicalStorageBlock logicalBlock) {
StorableMap physicalBlocks = new StorableMap();
Iterator childLogicalBlocks = 
logicalBlock.getLogicalStorageBlocks().iterator();
while(childLogicalBlocks.hasNext()) {
StorableMap childPhysicalBlocks = 
getPhysicalBlocks((LogicalStorageBlock)
childLogicalBlocks.next());
physicalBlocks.importCollection(childPhysicalBlocks);
}
physicalBlocks.importCollection(logicalBlock.
getPhysicalStorageBlocks());
return physicalBlocks;
}
::post-compile */
【０３１４】
/** このオブジェクトの文字列イメージを返す。  */
/* ::post-compile
public String toString () {
return "volume " + getDeviceFile() + " mounted on " + getMountPoint() +
" from " + getSystemDevice();
}
::post-compile */
}
【０３１５】
図４のＬＳＢ  ＤＯ  ４０６に対応するＪＡＶＡドキュメント（クラスLogicalStorageBlockと呼ぶ）を直後に示す。
【０３１６】
com.hp.sanmgr.model 
クラス  LogicalStorageBlock（論理ストレージブロック）
java.lang.Object
|
+--com.hp.clay.StorableObject
|
+--com.hp.sanmgr.model.LogicalStorageBlock
public final class LogicalStorageBlock 
extends StorableObject
【０３１７】
LogicalStorageBlocksは、論理ボリュームと物理ボリュームとの間でボリュームマネージャが実行する複雑なマッピングを表すＯＶＳＡＭの概念である。
LogicalStorageBlockは、ストレージコンシューマの作成に使用可能な１つの論理ストレージを作成するため、あるいは、別の論理ストレージブロックを作成するための特定の関係を有する多数の（物理または論理）ストレージブロックの集合を表す。
この表現は、ＬＶＭ、ＶｘＶＭ、ＬＤＭなどの様々な論理ボリュームマネージャの下で可能な様々な構成のモデル化を促進する。
【０３１８】
【表１９】
2004152284.tif 000033
【０３１９】
【表２０】
2004152284.tif 000034
【０３２０】
【表２１】
2004152284.tif 000035
【０３２１】
【表２２Ａ】
2004152284.tif 000036
【０３２２】
【表２２Ｂ】
2004152284.tif 000037
【０３２３】
【表２２Ｃ】
2004152284.tif 000038
【０３２４】
【表２３】
2004152284.tif 000039
【０３２５】
【表２４】
2004152284.tif 000040
【０３２６】
フィールドの詳細
【０３２７】
DIRECT（直接）
public static final int DIRECT
ブロックがミラーリングもストライピングもされていないことを示す論理ストレージブロックの型。
【０３２８】
MIRROR（ミラー）
public static final int MIRROR
ブロックがミラーリングされていることを示す論理ストレージブロックの型。
【０３２９】
STRIPE（ストライプ）
public static final int STRIPE
ブロックがストライピングされていることを示す論理ストレージブロックの型。
【０３３０】
RAID_5（ＲＡＩＤ−５）
public static final int RAID_5
ブロックがＲＡＩＤ−５であることを示す論理ストレージブロックの型。
【０３３１】
UNKNOWN（未知）
public static final int UNKNOWN
データの保存方法について、なんらかの「未知の」状態にあることを示す論理ストレージブロックの型。
【０３３２】
type（型）
protected int type
LogicalStorageBlock上でデータを編成したり保存するために使用されるメソッド。
これは、次の３つの値のうちの１つに該当する：DIRECT、MIRROR、DIRECT。
【０３３３】
typeCount（型の数）
protected int typeCount
型に関連付けられた任意の計数情報。
通常、ミラーの数またはＲＡＩＤのレベル。
【０３３４】
name（名前）
protected String name
ボリュームマネージャによりこの論理ストレージブロックに関連付けられた名前。
【０３３５】
capacity（容量）
protected double capacity
この論理ストレージブロックの総ストレージ容量。
これは、子論理ストレージブロックの合計や物理ストレージブロックの総ストレージ容量以下であることに注意。
【０３３６】
rootStorageConsumer（ルートStorageConsumer）
protected StorageConsumer rootStorageConsumer
このLogicalStorageBlockの親のStorageConsumer。
これは、このLogicalStorageBlockの親が別のLogicalStorageBlockの場合ＮＵＬＬになる。
【０３３７】
physicalStorageBlocks（物理ストレージブロック）
protected transient StorableMap physicalStorageBlocks
論理ストレージブロックに関連付けられた物理ストレージブロック。
【０３３８】
logicalStorageBlocks（論理ストレージブロック）
protected transient StorableMap logicalStorageBlocks
このストレージブロックに含まれる論理ストレージブロック。
【０３３９】
rootLogicalStorageBlock（ルートLogicalStorageBlock）
protected LogicalStorageBlock rootLogicalStorageBlock
親LogicalStorageBlock。
論理ストレージブロックがいくつかの他の論理ストレージブロックから構成されているときに使用される。
これは、このLogicalStorageBlockの親がStorageConsumerの場合ＮＵＬＬになる。
【０３４０】
LOGICALSTORAGEBLOCK_ID_FIELD（LogicalStorageBlockのＩＤフィールド）
public static final String LOGICALSTORAGEBLOCK_ID_FIELD
LogicalStorageBlockフィールドの名前を表す定数。
【０３４１】
TYPE_FIELD（typeフィールド）
public static final String TYPE_FIELD
typeフィールドの名前を表す定数。
【０３４２】
TYPECOUNT_FIELD（typeCountフィールド）
public static final String TYPECOUNT_FIELD
typeCountフィールドの名前を表す定数。
【０３４３】
NAME_FIELD（nameフィールド）
public static final String NAME_FIELD
nameフィールドの名前を表す定数。
【０３４４】
CAPACITY_FIELD（capacityフィールド）
public static final String CAPACITY_FIELD
capacityフィールドの名前を表す定数。
【０３４５】
ROOTSTORAGECONSUMER_FIELD（rootStorageConsumerフィールド）
public static final String ROOTSTORAGECONSUMER_FIELD
rootStorageConsumerフィールドの名前を表す定数。
【０３４６】
ROOTLOGICALSTORAGEBLOCK_FIELD（rootLogicalStorageBlockフィールド）
public static final String ROOTLOGICALSTORAGEBLOCK_FIELD
rootLogicalStorageBlockフィールドの名前を表す定数。
【０３４７】
コンストラクタの詳細
【０３４８】
LogicalStorageBlock（論理ストレージブロック）
public LogicalStorageBlock()
既定のコンストラクタ。
【０３４９】
LogicalStorageBlock
protected LogicalStorageBlock(Dbid dbid)
ロード用に内部で使用されるコンストラクタ。
【０３５０】
LogicalStorageBlock
public LogicalStorageBlock(String name,
double capacity,
int type,
int typeCount)
ストレージコンシューマにも論理ストレージブロックにも関連付けられていない論理ストレージブロックを作成する。
パラメータ：
name（名前）−この論理ストレージブロックを参照するのにボリュームマネージャに使用される名前。
capacity（容量）−バイト単位で表したこの論理ストレージブロックの容量。
type（型）−このクラスで定義された型定数の１つに対応するこの論理ストレージブロックに関連付けられた型。
typeCount（型の数）−この型に関連付けられた総数。
たとえば、型がMIRRORの場合、型の数はミラーの総数に対応し、型がRAIDの場合、型の数はＲＡＩＤレベルに対応する。
【０３５１】
LogicalStorageBlock
public LogicalStorageBlock(String name,
LogicalStorageBlock logicalStorageBlock,
double capacity,
int type,
int typeCount)
論理ストレージブロックの木階層の葉ノードを表す論理ストレージブロックを作成する。
パラメータ：
name−この論理ストレージブロックを参照するのにボリュームマネージャに使用される名前。
logicalStorageBlock（論理ストレージブロック）−この論理ストレージブロックの親。
【０３５２】
capacity−バイト単位で表したこの論理ストレージブロックの容量。
type−このクラスで定義された型定数の１つに対応するこの論理ストレージブロックに関連付けられた型。
typeCount−この型に関連付けられた総数。
たとえば、型がMIRRORの場合、型の数はミラーの総数に対応し、型がRAIDの場合、型の数はＲＡＩＤレベルに対応する。
【０３５３】
LogicalStorageBlock
public LogicalStorageBlock(String name,
StorageConsumer storageConsumer,
double capacity,
int type,
int typeCount)
論理ストレージブロックの木階層のルートを表す論理ストレージブロックを作成する。
パラメータ：
name−この論理ストレージブロックを参照するのにボリュームマネージャに使用される名前。
storageConsumer（ストレージコンシューマ）−この論理ストレージブロックの親ストレージコンシューマ。
capacity−バイト単位で表したこの論理ストレージブロックの容量。
type−このクラスで定義された型定数の１つに対応するこの論理ストレージブロックに関連付けられた型。
typeCount−この型に関連付けられた総数。
たとえば、型がMIRRORの場合、型の数はミラーの総数に対応し、型がRAIDの場合、型の数はＲＡＩＤレベルに対応する。
【０３５４】
メソッドの詳細
【０３５５】
getAllPhysicalStorageBlocks（すべてのPhysicalStorageBlocksの取得）
public StorableMap getAllPhysicalStorageBlocks()
特定のLogicalStorageBlockに関連付けられたすべてのPhysicalStorageBlocksを検索する。
これは、StorageConsumerの子LogicalStorageBlocksに直接関連付けられた物理ブロックだけではなく、その子LogicalStorageBlocksに関連付けられたPhysicalStorageBlocksも含む。
戻り値：
この論理ブロックに関連付けられたすべての物理ブロックのマップ。
【０３５６】
toString（文字列へ）
public String toString()
このオブジェクトの文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoString
【０３５７】
prepareInsert（挿入準備）
protected CachedPreparedStatement prepareInsert(ConnectionContext context)
throws SQLException
このメソッドはLogicalStorageBlockオブジェクトを保存可能、つまりデータベースに追加可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareInsert
【０３５８】
prepareDelete（削除準備）
protected CachedPreparedStatement prepareDelete(ConnectionContext context)
throws SQLException
このメソッドはLogicalStorageBlockオブジェクトを保存可能、つまりデータベースから削除可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareDelete
【０３５９】
prepareSelect（選択準備）
protected CachedPreparedStatement prepareSelect(ConnectionContext context)
throws SQLException
このメソッドはLogicalStorageBlockオブジェクトを保存可能、つまりデータベースから検索可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareSelect
【０３６０】
getType（typeの取得）
public int getType()
typeプロパティの値を返す。
【０３６１】
setType（Typeの設定）
public void setType(int type)
Typeプロパティを指定した値に設定する。
【０３６２】
getTypeCount（typeCountの取得）
public int getTypeCount()
typeCountプロパティの値を返す。
【０３６３】
setTypeCount（TypeCountの設定）
public void setTypeCount(int typeCount)
TypeCountプロパティを指定した値に設定する。
【０３６４】
getName（nameの取得）
public String getName()
nameプロパティの値を返す。
【０３６５】
setName（Nameの設定）
public void setName(String name)
Nameプロパティを指定した値に設定する。
【０３６６】
getCapacity（capacityの取得）
public double getCapacity()
capacityプロパティの値を返す。
【０３６７】
setCapacity（Capacityの設定）
public void setCapacity(double capacity)
Capacityプロパティを指定した値に設定する。
【０３６８】
getRootStorageConsumer（rootStorageConsumerの取得）
public StorageConsumer getRootStorageConsumer()
rootStorageConsumerプロパティの値を返す。
【０３６９】
setRootStorageConsumer（RootStorageConsumerの設定）
public void setRootStorageConsumer(StorageConsumer rootStorageConsumer)
RootStorageConsumerプロパティを指定した値に設定する。
このメソッドを、このオブジェクトを親RootStorageConsumerの子の一覧に追加する手段として使用してはならないことに注意。
代わりに、使用可能であれば、RootStorageConsumer親オブジェクト上でaddLogicalStorageBlockの適切な呼び出しを行わなければならない。
【０３７０】
getRootLogicalStorageBlock（rootLogicalStorageBlockの取得）
public LogicalStorageBlock getRootLogicalStorageBlock()
rootLogicalStorageBlockプロパティの値を返す。
【０３７１】
setRootLogicalStorageBlock（RootLogicalStorageBlockの設定）
public void setRootLogicalStorageBlock(LogicalStorageBlock rootLogicalStorageBlock)
RootLogicalStorageBlockプロパティを指定した値に設定する。
このメソッドを、このオブジェクトを親RootLogicalStorageBlockの子の一覧に追加する手段として使用してはならないことに注意。
代わりに、使用可能であれば、RootLogicalStorageBlock親オブジェクト上でaddLogicalStorageBlockの適切な呼び出しを行わなければならない。
【０３７２】
toDebugString（デバッグ文字列へ）
public String toDebugString()
指定したLogicalStorageBlockの文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０３７３】
toDebugString
public String toDebugString(String indent)
クラス：StorableObjectからコピーした説明
指定した字下げ文字列を使用して字下げされたオブジェクトのデバッグ文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０３７４】
toDebugString
public String toDebugString(String indent,
Vector callTree)
指定されたLogicalStorageBlockの字下げされた文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０３７５】
loadPhysicalStorageBlocks（PhysicalStorageBlockのロード）
public StorableMap loadPhysicalStorageBlocks()
このLogicalStorageBlockのPhysicalStorageBlockオブジェクトの集合をロードして返す。
【０３７６】
getPhysicalStorageBlocks（PhysicalStorageBlockの取得）
public StorableMap getPhysicalStorageBlocks()
このLogicalStorageBlockのPhysicalStorageBlockオブジェクトの集合を返す。
【０３７７】
getPhysicalStorageBlocksIterator（PhysicalStorageBlock反復子の取得）
public StorableIterator getPhysicalStorageBlocksIterator()
このLogicalStorageBlockのPhysicalStorageBlockオブジェクトの集合を返す。
【０３７８】
getPhysicalStorageBlocksIterator
public StorableIterator getPhysicalStorageBlocksIterator(String sortFieldName,
boolean isAscending)
このLogicalStorageBlockのPhysicalStorageBlockオブジェクトの集合を返す。
【０３７９】
clearPhysicalStorageBlocks（PhysicalStorageBlockのクリア）
public void clearPhysicalStorageBlocks()
このLogicalStorageBlockのPhysicalStorageBlockオブジェクトの集合をクリアする。
アプリケーションが子PhysicalStorageBlockオブジェクトへの参照を明示的に破棄できるように提供される。
以降のget、load、add、removeメソッドの呼び出しにより集合が再ロードされることに注意。
【０３８０】
addPhysicalStorageBlock（PhysicalStorageBlockの追加）
public void addPhysicalStorageBlock(PhysicalStorageBlock physicalStorageBlock)
指定したPhysicalStorageBlockをこのLogicalStorageBlockのPhysicalStorageBlockオブジェクトの集合に追加する。
【０３８１】
removePhysicalStorageBlock（PhysicalStorageBlockの削除）
public void removePhysicalStorageBlock(PhysicalStorageBlock physicalStorageBlock)
指定したPhysicalStorageBlockをこのLogicalStorageBlockのPhysicalStorageBlockオブジェクトの集合から削除する。
【０３８２】
getPhysicalStorageBlock（PhysicalStorageBlockの取得）
public PhysicalStorageBlock getPhysicalStorageBlock(Dbid id)
このLogicalStorageBlockのPhysicalStorageBlockオブジェクトの集合内の指定したＩＤを有するPhysicalStorageBlockを返す。
【０３８３】
loadLogicalStorageBlocks（LogicalStorageBlockのロード）
public StorableMap loadLogicalStorageBlocks()
このLogicalStorageBlockのLogicalStorageBlockオブジェクトの集合をロードして返す。
【０３８４】
getLogicalStorageBlocks（LogicalStorageBlockの取得）
public StorableMap getLogicalStorageBlocks()
このLogicalStorageBlockのLogicalStorageBlockオブジェクトの集合を返す。
【０３８５】
getLogicalStorageBlocksIterator（LogicalStorageBlock反復子の取得）
public StorableIterator getLogicalStorageBlocksIterator()
このLogicalStorageBlockのLogicalStorageBlockオブジェクトの集合を返す。
【０３８６】
getLogicalStorageBlocksIterator
public StorableIterator getLogicalStorageBlocksIterator(String sortFieldName,
boolean isAscending)
このLogicalStorageBlockのLogicalStorageBlockオブジェクトの集合を返す。
【０３８７】
clearLogicalStorageBlocks（LogicalStorageBlockのクリア）
public void clearLogicalStorageBlocks()
このLogicalStorageBlockのLogicalStorageBlockオブジェクトの集合をクリアする。
アプリケーションが子LogicalStorageBlockオブジェクトへの参照を明示的に破棄できるように提供される。
以降のget、load、add、removeメソッドの呼び出しにより集合が再ロードされることに注意。
【０３８８】
addLogicalStorageBlock（LogicalStorageBlockの追加）
public void addLogicalStorageBlock(LogicalStorageBlock logicalStorageBlock)
指定したLogicalStorageBlockをこのLogicalStorageBlockのLogicalStorageBlockオブジェクトの集合に追加する。
【０３８９】
removeLogicalStorageBlock（LogicalStorageBlockの削除）
public void removeLogicalStorageBlock(LogicalStorageBlock logicalStorageBlock)
指定したLogicalStorageBlockをこのLogicalStorageBlockのLogicalStorageBlockオブジェクトの集合から削除する。
【０３９０】
getLogicalStorageBlock（LogicalStorageBlockの取得）
public LogicalStorageBlock getLogicalStorageBlock(Dbid id)
このLogicalStorageBlockのLogicalStorageBlockオブジェクトの集合内の指定したＩＤを有するLogicalStorageBlockを返す。
【０３９１】
getLogicalStorageBlockListByRootStorageConsumer（rootStorageConsumerによるLogicalStorageBlockの一覧の取得）
public static StorableList getLogicalStorageBlockListByRootStorageConsumer(StorageConsumer rootStorageConsumer)
指定された値のrootStorageConsumerを有する特定の順番には並べられていないLogicalStorageBlockオブジェクトの一覧を返す。
【０３９２】
getByRootStorageConsumer（rootStorageConsumerによる取得）
public static StorableList getByRootStorageConsumer(StorageConsumer rootStorageConsumer)
非推奨。
指定された値のrootStorageConsumerを有するLogicalStorageBlockを返す。
【０３９３】
getLogicalStorageBlockListByRootLogicalStorageBlock（rootLogicalStorageBlockによるLogicalStorageBlockの一覧の取得）
public static StorableList getLogicalStorageBlockListByRootLogicalStorageBlock(LogicalStorageBlock rootLogicalStorageBlock)
指定された値のrootLogicalStorageBlockを有する特定の順番には並べられていないLogicalStorageBlockオブジェクトの一覧を返す。
【０３９４】
getByRootLogicalStorageBlock（rootLogicalStorageBlockによる取得）
public static StorableList getByRootLogicalStorageBlock(LogicalStorageBlock rootLogicalStorageBlock)
非推奨。
指定された値のrootLogicalStorageBlockを有するLogicalStorageBlockを返す。
【０３９５】
図４のＬＳＢ  ＤＯ  ４０６に関連し、直前のＪＡＶＡドキュメント（クラスLogicalStorageBlock）に対応するテンプレートの例を直後に示す。
【０３９６】
//------------------------------------------------------------------------------
//  著作権  １９９９−２００２  Hewlett-Packard Co.、全権留保。
//------------------------------------------------------------------------------
【０３９７】
/**
* LogicalStorageBlocksは、論理ボリュームと物理ボリュームとの間で
* ボリュームマネージャが実行する複雑なマッピングを表すＯＶＳＡＭの概念である。
* LogicalStorageBlockは、ストレージコンシューマの作成に使用可能な１つの論理スト
* レージを作成するため、あるいは、別の論理ストレージブロックを作成するための特定
* の関係を有する多数の（物理または論理）ストレージブロックの集合を表す。この表現
* は、ＬＶＭ、ＶｘＶＭ、ＬＤＭなどの様々な論理ボリュームマネージャの下で可能な様々
* な構成のモデル化を促進する。
*/
public final class LogicalStorageBlock extends StorableObject {
/** 
* ブロックがミラーリングもストライピングもされていないことを示す論理ストレ
* ージブロックの型。
*/
public static final int DIRECT = 1;
/** ブロックがミラーリングされていることを示す論理ストレージブロックの型。 */
public static final int MIRROR = 2;
/** ブロックがストライピングされていることを示す論理ストレージブロックの型。 */
public static final int STRIPE = 3;
/**
* ブロックがＲＡＩＤ−５であることを示す論理ストレージブロックの型。
*/
public static final int RAID_5 = 4;
/** 
* データの保存方法について、何らかの「未知の」状態にあることを示す論理ストレ
* ージブロックの型。
*/
public static final int UNKNOWN = 0;
【０３９８】
/** 
* LogicalStorageBlock上でデータを編成したり保存するため使用されるメソッド。
* これは、次の３つの値のうちの１つに該当する：DIRECT、MIRROR、DIRECT。
*/
protected int type;
【０３９９】
/** 
* 型に関連付けられた任意の計数情報。通常、ミラーの数またはＲＡＩＤのレベル。
*/
protected int typeCount;
【０４００】
/** 
* ボリュームマネージャによりこの論理ストレージブロックに関連付けられた名前。 
*/
protected String name;
【０４０１】
/** 
* この論理ストレージブロックの総ストレージ容量。これは、子論理ストレージブロ
* ックの合計や物理ストレージブロックの総ストレージ容量以下であることに注意。
*/
protected double capacity;
【０４０２】
/** このLogicalStorageBlockの親の{@link StorageConsumer StorageConsumer}。こ
* れは、このLogicalStorageBlockの親が別のLogicalStorageBlockの場合ＮＵＬＬ
* になる。
*/
// ::getBy unsorted rootStorageConsumer
protected StorageConsumer rootStorageConsumer;
/** 論理ストレージブロックに関連付けられた物理ストレージブロック。*/
// ::relate LogicalStorageBlock physicalStorageBlocks PhysicalStorageBlock logicalStorageBlock
protected transient StorableMap physicalStorageBlocks;
【０４０３】
/** このストレージブロックに含まれる論理ストレージブロック。  */
// ::relate LogicalStorageBlock logicalStorageBlocks LogicalStorageBlock rootLogicalStorageBlock
protected transient StorableMap logicalStorageBlocks = null;
【０４０４】
/** 
* 親{@link LogicalStorageBlock LogicalStorageBlock}。論理ストレージブロック 
* がいくつかの他の論理ストレージブロックから構成されているときに使用される。
* これは、このLogicalStorageBlockの親が{@link StorageConsumer 
* StorageConsumer}の場合ＮＵＬＬになる。
*/
// ::getBy unsorted rootLogicalStorageBlock
protected LogicalStorageBlock rootLogicalStorageBlock;
【０４０５】
/** 
* ストレージコンシューマにも論理ストレージブロックにも関連付けられていない
* 論理ストレージブロックを作成する。
*
* @param name  この論理ストレージブロックを参照するのにボリュームマネージャ
* に使用される名前。
* @param capacity  バイト単位で表したこの論理ストレージブロックの容量。
* @param type  このクラスで定義された型定数の１つに対応するこの論理ストレー
* ジブロックに関連付けられた型。
* @param typeCount  この型に関連付けられた総数。たとえば、型がMIRRORの
* 場合、型の数はミラーの総数に対応し、型がRAIDの場合、型の数はＲＡＩＤレ
* ベルに対応する。
*/
public LogicalStorageBlock(String name, double capacity, int type, int typeCount) {
super();
this.name = name;
this.rootLogicalStorageBlock = null;
this.rootStorageConsumer = null;
this.capacity = capacity;
this.type = type;
this.typeCount = typeCount;
}
【０４０６】
/** 
* 論理ストレージブロックの木階層の葉ノードを表す論理ストレージブロックを作
* 成する。
*
* @param name  この論理ストレージブロックを参照するのにボリュームマネージャ
* に使用される名前。
* @param logicalStorageBlock  この論理ストレージブロックの親。
* @param capacity  バイト単位で表したこの論理ストレージブロックの容量。
* @param type  このクラスで定義された型定数の１つに対応するこの論理ストレー
* ジブロックに関連付けられた型。
* @param typeCount  この型に関連付けられた総数。たとえば、型がMIRRORの
* 場合、型の数はミラーの総数に対応し、型がRAIDの場合、型の数はＲＡＩＤレ
* ベルに対応する。
*/
public LogicalStorageBlock (String name, LogicalStorageBlock logicalStorageBlock,
double capacity, int type, int typeCount) {
super();
this.name = name;
this.rootLogicalStorageBlock = logicalStorageBlock;
this.rootStorageConsumer = null;
this.capacity = capacity;
this.type = type;
this.typeCount = typeCount;
/* ::post-compile
if (logicalStorageBlock != null) {
logicalStorageBlock.addLogicalStorageBlock(this);
}
::post-compile */
}
【０４０７】
/** 
* 論理ストレージブロックの木階層のルートを表す論理ストレージブロックを作成
* する。
*
* @param name  この論理ストレージブロックを参照するのにボリュームマネージャ
* に使用される名前。
* @param storageConsumer  この論理ストレージブロックの親ストレージコンシュー
* マ。
* @param capacity  バイト単位で表したこの論理ストレージブロックの容量。
* @param type  このクラスで定義された型定数の１つに対応するこの論理ストレー
* ジブロックに関連付けられた型。
* @param typeCount  この型に関連付けられた総数。たとえば、型がMIRRORの
* 場合、型の数はミラーの総数に対応し、型がRAIDの場合、型の数はＲＡＩＤレ
* ベルに対応する。
*/
public LogicalStorageBlock (String name, StorageConsumer storageConsumer,
double capacity, int type, int typeCount) {
super();
this.name = name;
this.rootLogicalStorageBlock = null;
this.rootStorageConsumer = storageConsumer;
this.capacity = capacity;
this.type = type;
this.typeCount = typeCount;
/* ::post-compile
if (storageConsumer != null) {
storageConsumer.addLogicalStorageBlock(this);
}
::post-compile */
}
【０４０８】
/**
* 特定のLogicalStorageBlockに関連付けられたすべてのPhysicalStorageBlocks
* を検索する。これは、StorageConsumerの子LogicalStorageBlocksに直接関連付
* けられた物理ブロックだけではなく、その子LogicalStorageBlocksに関連付けら
* れたPhysicalStorageBlocksも含む。
*
* @return  この論理ブロックに関連付けられたすべての物理ブロックのマップ。
*/
/* ::post-compile
public StorableMap getAllPhysicalStorageBlocks() {
return getAllPhysicalBlocks(this);
}
::post-compile */
【０４０９】
/**
* 特定のLogicalStorageBlockに関連付けられたすべてのPhysicalStorageBlocks
* を取得する再帰呼び出し。これには、LogicalStorageBlockに直接関連付けられた
* 物理ブロックだけではなく、任意の子論理ストレージブロックに関連付けられた物
* 理ブロックも含まれる。
*
* @param logicalBlock  すべての物理ストレージブロックを検索する必要のある論
* 理ストレージブロック。非ＮＵＬＬ値でなければならない。
*
* @return  この論理ブロックに関連付けられたすべての物理ブロックのマップ。
*
* @throws  所与の論理ブロックがＮＵＬＬの場合NullPointerException。
*/
/* ::post-compile    
private StorableMap getAllPhysicalBlocks(LogicalStorageBlock logicalBlock) {
StorableMap physicalBlocks = new StorableMap();
Iterator childLogicalBlocks = 
logicalBlock.getLogicalStorageBlocks().iterator();
while(childLogicalBlocks.hasNext()) {
StorableMap childPhysicalBlocks = 
getAllPhysicalBlocks((LogicalStorageBlock)
childLogicalBlocks.next());
physicalBlocks.importCollection(childPhysicalBlocks);
}
physicalBlocks.importCollection(logicalBlock.
getPhysicalStorageBlocks());
return physicalBlocks;
}
::post-compile */
【０４１０】
/** このオブジェクトの文字列イメージを返す。  */
/* ::post-compile
public String toString () {
return "logical storage block " + getName();
} // toString
::post-compile */
【０４１１】
} // LogicalStorageBlock
【０４１２】
図４のＰＳＢ  ＤＯ  ４０８に対応するＪＡＶＡドキュメント（クラスPhysicalStorageBlockと呼ぶ）を直後に示す。
【０４１３】
com.hp.sanmgr.model 
クラス  PhysicalStorageBlock（物理ストレージブロック）
java.lang.Object
|
+--com.hp.clay.StorableObject
|
+--com.hp.sanmgr.model.PhysicalStorageBlock
public final class PhysicalStorageBlock 
extends StorableObject
【０４１４】
ボリュームマネージャに管理される論理ボリュームの物理コンポーネントであるＬＵＮ上のストレージのスライスの物理部分。
物理ストレージブロックは、HostLogicalUnit上に存在する物理エクステントの隣接ブロックである。
PhysicalStorageBlocksは、StorageConsumerを構成するストレージを仮想化したLogicalStorageBlockを構成する。
【０４１５】
【表２５】
2004152284.tif 000041
【０４１６】
【表２６】
2004152284.tif 000042
【０４１７】
【表２７】
2004152284.tif 000043
【０４１８】
【表２８Ａ】
2004152284.tif 000044
【０４１９】
【表２８Ｂ】
2004152284.tif 000045
【０４２０】
【表２９】
2004152284.tif 000046
【０４２１】
【表３０】
2004152284.tif 000047
【０４２２】
フィールドの詳細
【０４２３】
name（名前）
protected String name
ボリュームマネージャによりこの物理ストレージブロックに関連付けられた名前。
【０４２４】
hostLogicalUnit（ホスト論理ユニット）
protected HostLogicalUnit hostLogicalUnit
このブロックがその一部となるホスト論理ユニット。
【０４２５】
logicalStorageBlock（論理ストレージブロック）
protected LogicalStorageBlock logicalStorageBlock
論理ストレージブロック
【０４２６】
size（サイズ）
protected double size
このストレージブロックが表すＬＵＮ上のスライスの物理容量。
この値はバイトを単位とする。
【０４２７】
PHYSICALSTORAGEBLOCK_ID_FIELD（PhysicalStorageBlockのＩＤフィールド）
public static final String PHYSICALSTORAGEBLOCK_ID_FIELD
PhysicalStorageBlockフィールドの名前を表す定数。
【０４２８】
NAME_FIELD（nameフィールド）
public static final String NAME_FIELD
nameフィールドの名前を表す定数。
【０４２９】
HOSTLOGICALUNIT_FIELD（hostLogicalUnitフィールド）
public static final String HOSTLOGICALUNIT_FIELD
hostLogicalUnitフィールドの名前を表す定数。
【０４３０】
LOGICALSTORAGEBLOCK_FIELD（logicalStorageBlockフィールド）
public static final String LOGICALSTORAGEBLOCK_FIELD
logicalStorageBlockフィールドの名前を表す定数。
【０４３１】
SIZE_FIELD（sizeフィールド）
public static final String SIZE_FIELD
sizeフィールドの名前を表す定数。
【０４３２】
コンストラクタの詳細
【０４３３】
PhysicalStorageBlock（物理ストレージブロック）
public PhysicalStorageBlock()
既定のコンストラクタ。
【０４３４】
PhysicalStorageBlock
protected PhysicalStorageBlock(Dbid dbid)
ロード用に内部で使用されるコンストラクタ。
【０４３５】
PhysicalStorageBlock
public PhysicalStorageBlock(HostLogicalUnit hostLogicalUnit,
LogicalStorageBlock logicalStorageBlock,
String name,
double size)
所与のホスト論理ユニットと論理ストレージブロックに関連付けられた新規のPhysicalStorageBlockを作成する。
パラメータ：
hostLogicalUnit−この物理ストレージブロックが関連付けられたホスト論理ユニット。
logicalStorageBlock−この物理ストレージブロックが関連付けられた論理ストレージブロック。
name−この物理ストレージブロックを参照するのにボリュームマネージャに使用される名前。
size−この物理ストレージブロックが表すＬＵＮ上のスライスの物理容量。
この値はバイトを単位とする。
【０４３６】
PhysicalStorageBlock
public PhysicalStorageBlock(HostLogicalUnit hostLogicalUnit,
double size)
初期にはどの論理ストレージユニットにも関連付けられていない新規のPhysicalStorageBlockを作成する。
物理ストレージブロックは、所与のホスト論理ユニットと論理ストレージブロックに関連付けられた適切な論理ストレージユニットに追加しなければならない。
パラメータ：
hostLogicalUnit−この物理ストレージブロックが関連付けられたホスト論理ユニット。
logicalStorageBlock−この物理ストレージブロックが関連付けられた論理ストレージブロック。
size−この物理ストレージブロックが表すＬＵＮ上のスライスの物理容量。
この値はバイトを単位とする。
uniqueId（一意のＩＤ）−この物理ストレージブロックの一意のＩＤ。
【０４３７】
メソッドの詳細
【０４３８】
toString（文字列へ）
public String toString()
このオブジェクトの文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoString
【０４３９】
prepareInsert（挿入準備）
protected CachedPreparedStatement prepareInsert(ConnectionContext context)
throws SQLException
このメソッドはPhysicalStorageBlockオブジェクトを保存可能、つまりデータベースに追加可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareInsert
【０４４０】
prepareDelete（削除準備）
protected CachedPreparedStatement prepareDelete(ConnectionContext context)
throws SQLException
このメソッドはPhysicalStorageBlockオブジェクトを保存可能、つまりデータベースから削除可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareDelete
【０４４１】
prepareSelect（選択準備）
protected CachedPreparedStatement prepareSelect(ConnectionContext context)
throws SQLException
このメソッドはPhysicalStorageBlockオブジェクトを保存可能、つまりデータベースから検索可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareSelect
【０４４２】
getName（nameの取得）
public String getName()
nameプロパティの値を返す。
【０４４３】
setName（nameの設定）
public void setName(String name)
Nameプロパティを指定した値に設定する。
【０４４４】
getHostLogicalUnit（hostLogicalUnitの取得）
public HostLogicalUnit getHostLogicalUnit()
hostLogicalUnitプロパティの値を返す。
【０４４５】
setHostLogicalUnit（HostLogicalUnitの設定）
public void setHostLogicalUnit(HostLogicalUnit hostLogicalUnit)
HostLogicalUnitプロパティを指定した値に設定する。
このメソッドを、このオブジェクトを親HostLogicalUnitの子の一覧に追加する手段として使用してはならないことに注意。
代わりに、使用可能であれば、HostLogicalUnit親オブジェクト上でaddPhysicalStorageBlockの適切な呼び出しを行わなければならない。
【０４４６】
getLogicalStorageBlock（logicalStorageBlockの取得）
public LogicalStorageBlock getLogicalStorageBlock()
logicalStorageBlockプロパティの値を返す。
【０４４７】
setLogicalStorageBlock（LogicalStorageBlockの設定）
public void setLogicalStorageBlock(LogicalStorageBlock logicalStorageBlock)
LogicalStorageBlockプロパティを指定した値に設定する。
このメソッドを、このオブジェクトを親LogicalStorageBlockの子の一覧に追加する手段として使用してはならないことに注意。
代わりに、使用可能であれば、LogicalStorageBlock親オブジェクト上でaddPhysicalStorageBlockの適切な呼び出しを行わなければならない。
【０４４８】
getSize（sizeの取得）
public double getSize()
sizeプロパティの値を返す。
【０４４９】
setSize（Sizeの設定）
public void setSize(double size)
Sizeプロパティを指定した値に設定する。
【０４５０】
toDebugString（デバッグ文字列へ）
public String toDebugString()
指定したPhysicalStorageBlockの文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０４５１】
toDebugString
public String toDebugString(String indent)
クラス：StorableObjectからコピーした説明
指定した字下げ文字列を使用して字下げされたオブジェクトのデバッグ文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０４５２】
toDebugString
public String toDebugString(String indent,
Vector callTree)
指定されたPhysicalStorageBlockの字下げされた文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０４５３】
getPhysicalStorageBlockListByHostLogicalUnit（HostLogicalUnitによるPhysicalStorageBlockの一覧の取得）
public static StorableList getPhysicalStorageBlockListByHostLogicalUnit(HostLogicalUnit hostLogicalUnit)
指定された値のhostLogicalUnitを有する特定の順番には並べられていないPhysicalStorageBlockオブジェクトの一覧を返す。
【０４５４】
getByHostLogicalUnit（hostLogicalUnitによる取得）
public static StorableList getByHostLogicalUnit(HostLogicalUnit hostLogicalUnit)
非推奨。
指定された値のhostLogicalUnitを有するPhysicalStorageBlockを返す。
【０４５５】
getPhysicalStorageBlockListByLogicalStorageBlock（logicalStorageBlockによるPhysicalStorageBlockの一覧の取得）
public static StorableList getPhysicalStorageBlockListByLogicalStorageBlock(LogicalStorageBlock logicalStorageBlock)
指定された値のlogicalStorageBlockを有する特定の順番には並べられていないPhysicalStorageBlockオブジェクトの一覧を返す。
【０４５６】
getByLogicalStorageBlock（logicalStorageBlockによる取得）
public static StorableList getByLogicalStorageBlock(LogicalStorageBlock logicalStorageBlock)
非推奨。
指定された値のlogicalStorageBlockを有するPhysicalStorageBlockを返す。
【０４５７】
図４のＰＳＢ  ＤＯ  ４０８に関連し、直前のＪＡＶＡドキュメント（クラスPhysicalStorageBlock）に対応するテンプレートの例を直後に示す。
【０４５８】
//------------------------------------------------------------------------------
//  著作権  ２００２  Hewlett-Packard Co.、全権留保。
//------------------------------------------------------------------------------
【０４５９】
/**
* ボリュームマネージャに管理される論理ボリュームの物理コンポーネントであるＬＵ
* Ｎ上のストレージのスライスの物理部分。物理ストレージブロックは、{@link 
* HostLogicalUnit HostLogicalUnit}上に存在する物理エクステントの隣接ブロックであ
* る。PhysicalStorageBlocksは、{@link StorageConsumer StorageConsumer}を構成す
* るストレージを仮想化した{@link LogicalStorageBlock LogicalStorageBlock}を構成
* する。
*/
public final class PhysicalStorageBlock extends StorableObject {
/** 
* ボリュームマネージャによりこの物理ストレージブロックに関連付けられた名前。
*/
protected String name;
/** このブロックがその一部となるホスト論理ユニット。*/
// ::getBy unsorted hostLogicalUnit
protected HostLogicalUnit hostLogicalUnit;
/** 論理ストレージブロック*/
// ::getBy unsorted logicalStorageBlock
protected LogicalStorageBlock logicalStorageBlock;
/** 
* このストレージブロックが表すＬＵＮ上のスライスの物理容量。この値はバイトを
* 単位とする。
*/
protected double size;
【０４６０】
/**
* 所与のホスト論理ユニットと論理ストレージブロックに関連付けられた新規の
* PhysicalStorageBlockを作成する。
*
* @param hostLogicalUnit  この物理ストレージブロックが関連付けられたホスト論
* 理ユニット。
* @param logicalStorageBlock  この物理ストレージブロックが関連付けられた論理
* ストレージブロック。
* @param name  この物理ストレージブロックを参照するのにボリュームマネージャ
* に使用される名前。
* @param size  この物理ストレージブロックが表すＬＵＮ上のスライスの物理容量。
* この値はバイトを単位とする。
*/
public PhysicalStorageBlock(HostLogicalUnit hostLogicalUnit,
LogicalStorageBlock logicalStorageBlock,
String name,
double size) {
super();
this.hostLogicalUnit = hostLogicalUnit;
this.logicalStorageBlock = logicalStorageBlock;
this.name = name;
this.size = size;
/* ::post-compile
if(logicalStorageBlock != null) {
logicalStorageBlock.addPhysicalStorageBlock(this);
}
::post-compile */
/* ::post-compile
if(hostLogicalUnit != null) {
hostLogicalUnit.addPhysicalStorageBlock(this);
}
::post-compile */
}
【０４６１】
/**
* 初期にはどの論理ストレージユニットにも関連付けられていない新規の
* PhysicalStorageBlockを作成する。物理ストレージブロックは、所与のホスト論
* 理ユニットと論理ストレージブロックに関連付けられた適切な論理ストレージユ
* ニットに追加しなければならない。
*
* @param hostLogicalUnit  この物理ストレージブロックが関連付けられたホスト論
* 理ユニット。
* @param logicalStorageBlock  この物理ストレージブロックが関連付けられた論理
* ストレージブロック。
* @param size  この物理ストレージブロックが表すＬＵＮ上のスライスの物理容量。
* この値はバイトを単位とする。
* @param uniqueId  この物理ストレージブロックの一意のＩＤ。
*/
public PhysicalStorageBlock(HostLogicalUnit hostLogicalUnit, double size) {
super();
this.hostLogicalUnit = hostLogicalUnit;
this.logicalStorageBlock = null;
this.name = null;
this.size = size;
/* ::post-compile
if(hostLogicalUnit != null) {
hostLogicalUnit.addPhysicalStorageBlock(this);
}
::post-compile */
}
【０４６２】
/** このオブジェクトの文字列イメージを返す。  */
/* ::post-compile
public String toString() {
return "physical storage block " + getName();
} // toString
::post-compile */
}
【０４６３】
図４のＬＵＮ  ＤＯ  ４１０に対応するＪＡＶＡドキュメント（クラスHostLogicalUnitと呼ぶ）を直後に示す。
【０４６４】
com.hp.sanmgr.model 
クラス  HostLogicalUnit（ホスト論理ユニット）
java.lang.Object
|
+--com.hp.clay.StorableObject
|
+--com.hp.sanmgr.model.HostLogicalUnit
All Implemented Interfaces: 
ManagementPathIF 
public final class HostLogicalUnit 
extends StorableObject 
implements ManagementPathIF
【０４６５】
論理ユニット（ＬＵＮ）のHostのビューを表すクラス。
このクラスは、実際の論理ユニットに関連付けられ、ホストがそのＬＵＮをどのように見るかを特徴付ける性質を有する。
これらの性質には、ハードウェアパス、デバイスファイルなどが含まれる。
【０４６６】
【表３１Ａ】
2004152284.tif 000048
【０４６７】
【表３１Ｂ】
2004152284.tif 000049
【０４６８】
【表３２】
2004152284.tif 000050
【０４６９】
【表３３】
2004152284.tif 000051
【０４７０】
【表３４】
2004152284.tif 000052
【０４７１】
【表３５Ａ】
2004152284.tif 000053
【０４７２】
【表３５Ｂ】
2004152284.tif 000054
【０４７３】
【表３５Ｃ】
2004152284.tif 000055
【０４７４】
【表３５Ｄ】
2004152284.tif 000056
【０４７５】
【表３５Ｅ】
2004152284.tif 000057
【０４７６】
【表３６】
2004152284.tif 000058
【０４７７】
【表３７】
2004152284.tif 000059
【０４７８】
フィールドの詳細
【０４７９】
UNKNOWN_DEVICE（未知のデバイス）
public static final int UNKNOWN_DEVICE
様々なホスト論理ユニット型のよく知られた列挙。
これらの名前は、LunEntityのDeviceType設定用のDial External Interface Docから得ている。
【０４８０】
DIRECT_ACCESS_DEVICE（直接アクセスデバイス）
public static final int DIRECT_ACCESS_DEVICE
【０４８１】
SEQUENTIAL_ACCESS_DEVICE（順次アクセスデバイス）
public static final int SEQUENTIAL_ACCESS_DEVICE
【０４８２】
PRINTER_DEVICE（プリンタデバイス）
public static final int PRINTER_DEVICE
【０４８３】
PROCESSOR_DEVICE（プロセッサデバイス）
public static final int PROCESSOR_DEVICE
【０４８４】
WRITE_ONCE_DEVICE（追記型デバイス）
public static final int WRITE_ONCE_DEVICE
【０４８５】
CDROM_DEVICE（ＣＤ−ＲＯＭデバイス）
public static final int CDROM_DEVICE
【０４８６】
SCANNER_DEVICE（スキャナデバイス）
public static final int SCANNER_DEVICE
【０４８７】
OPTICAL_MEMORY_DEVICE（光記憶デバイス）
public static final int OPTICAL_MEMORY_DEVICE
【０４８８】
MEDIUM_CHANGER_DEVICE（媒体変更デバイス）
public static final int MEDIUM_CHANGER_DEVICE
【０４８９】
COMM_DEVICE（通信デバイス）
public static final int COMM_DEVICE
【０４９０】
ARRAY_CONTROLLER（アレイコントローラ）
public static final int ARRAY_CONTROLLER
【０４９１】
ENCLOSURE_SERVICES（筐体保守）
public static final int ENCLOSURE_SERVICES
【０４９２】
FC_SCSI_MUX（ＦＣ−ＳＣＳＩマルチプレクサ）
public static final int FC_SCSI_MUX
【０４９３】
FC_SWITCH（ＦＣスイッチ）
public static final int FC_SWITCH
【０４９４】
ALLOCATER_LU_NOT_CONTROLLED（アロケータによるＬＵステータスが非制御）
public static final int ALLOCATER_LU_NOT_CONTROLLED
この特定のホスト論理ユニットの可視性の関係のアロケータのフィルタ処理ステータスを記述するallocaterLunStatusから返される値
【０４９５】
ALLOCATER_LU_ASSIGNED（アロケータによるＬＵステータスが割り当て済み）
public static final int ALLOCATER_LU_ASSIGNED
【０４９６】
ALLOCATER_LU_NOT_ASSIGNED（アロケータによるＬＵステータスが非割り当て）
public static final int ALLOCATER_LU_NOT_ASSIGNED
【０４９７】
ALLOCATER_UNDEFINED（アロケータによる状態が未定義）
public static final int ALLOCATER_UNDEFINED
【０４９８】
logicalUnit（論理ユニット）
protected LogicalUnit logicalUnit
このビューが関連付けられている論理ユニット。
【０４９９】
logicalUnitProvider（論理ユニットプロバイダ）
protected LogicalUnitProvider logicalUnitProvider
【０５００】
links（リンク）
protected StorableMap links
【０５０１】
uniqueId（一意のＩＤ）
protected String uniqueId
これは一意のＩＤである
【０５０２】
hbaName（ｈｂａ名）
protected String hbaName
このＬＵＮに関連付けられたｈｂａ名。
【０５０３】
deviceFile（デバイスファイル）
protected String deviceFile
このＬＵＮのホスト固有のデバイスファイル。
【０５０４】
hwPath（ハードウェアパス）
protected String hwPath
ハードウェアパス（ＨＢＡ、ポートなど）エンコーディング。
【０５０５】
node（ノード）
protected Node node
それを介してＨＬＵが関連付けられているノード
【０５０６】
pathStatus（パスステータス）
protected int pathStatus
パスステータス
【０５０７】
priority（優先度）
protected int priority
パスの優先度
【０５０８】
path（パス）
protected String path
非標準の形式設定されたパス文字列、つまり、SCSI、hostname、devicefile以外を保持するパス
【０５０９】
logicalStoragePools（論理ストレージプール）
protected StorableMap logicalStoragePools
このHostLogicalUnitに関連付けられたLogicalStoragePools。
【０５１０】
physicalStorageBlocks（物理ストレージブロック）
protected transient StorableMap physicalStorageBlocks
ホスト論理ユニットに関連付けられた物理ストレージブロック。
【０５１１】
HOSTLOGICALUNIT_ID_FIELD（HostLogicalUnitのＩＤフィールド）
public static final String HOSTLOGICALUNIT_ID_FIELD
HostLogicalUnitフィールドの名前を表す定数。
【０５１２】
LOGICALUNIT_FIELD（logicalUnitフィールド）
public static final String LOGICALUNIT_FIELD
logicalUnitフィールドの名前を表す定数。
【０５１３】
LOGICALUNITPROVIDER_FIELD（logicalUnitProviderフィールド）
public static final String LOGICALUNITPROVIDER_FIELD
logicalUnitProviderフィールドの名前を表す定数。
【０５１４】
UNIQUEID_FIELD（uniqueIdフィールド）
public static final String UNIQUEID_FIELD
uniqueIdフィールドの名前を表す定数。
【０５１５】
HBANAME_FIELD（hbaNameフィールド）
public static final String HBANAME_FIELD
hbaNameフィールドの名前を表す定数。
【０５１６】
DEVICEFILE_FIELD（deviceFileフィールド）
public static final String DEVICEFILE_FIELD
deviceFileフィールドの名前を表す定数。
【０５１７】
HWPATH_FIELD（hwPathフィールド）
public static final String HWPATH_FIELD
hwPathフィールドの名前を表す定数。
【０５１８】
NODE_FIELD（nodeフィールド）
public static final String NODE_FIELD
nodeフィールドの名前を表す定数。
【０５１９】
PATHSTATUS_FIELD（pathStatusフィールド）
public static final String PATHSTATUS_FIELD
pathStatusフィールドの名前を表す定数。
【０５２０】
PRIORITY_FIELD（priorityフィールド）
public static final String PRIORITY_FIELD
priorityフィールドの名前を表す定数。
【０５２１】
PATH_FIELD（pathフィールド）
public static final String PATH_FIELD
pathフィールドの名前を表す定数。
【０５２２】
コンストラクタの詳細
【０５２３】
HostLogicalUnit（ホスト論理ユニット）
public HostLogicalUnit()
既定のコンストラクタ。
【０５２４】
HostLogicalUnit
protected HostLogicalUnit(Dbid dbid)
ロード用に内部で使用されるコンストラクタ。
【０５２５】
HostLogicalUnit
public HostLogicalUnit(LogicalUnitProvider logicalUnitProvider,
LogicalUnit logicalUnit,
String deviceFile,
String hwPath,
Node node)
指定されたパラメータを有する所与の論理ユニットの新規のビューを作成する。
【０５２６】
メソッドの詳細
【０５２７】
getHost（Hostの取得）
public Host getHost()
Nodeを介してHostを検索するHelperメソッド
【０５２８】
getDevice（Deviceの取得）
public Device getDevice()
このメソッドを参照するDeviceを返すHelperメソッド
指定元：
インターフェイスManagementPathIFのgetDevice
【０５２９】
getHostLogicalUnit（HostLogicalUnitの取得）
public static HostLogicalUnit getHostLogicalUnit(SystemDevice device,
String deviceFile)
所与のシステムデバイスとデバイスファイルのHostLogicalUnitを取得。
そのようなホスト論理ユニットが存在しない場合、ＮＵＬＬを返す。
パラメータ：
device−ホスト論理ユニットを検索する必要のあるシステムデバイス。
deviceFile−検索するホスト論理ユニットのデバイスファイル。
戻り値：
所与のシステムデバイスに関連付けられ、所与のデバイスファイルによりそのシステムデバイス上で特定されたホスト論理ＬＵＮ。
そのようなホスト論理ユニットが見つからない場合はＮＵＬＬが返される。
【０５３０】
toString（文字列へ）
public String toString()
このオブジェクトの文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoString
【０５３１】
allocaterLunStatus（アロケータＬＵＮステータス）
public int allocaterLunStatus()
この特定のHost-LU可視性関係についてアロケータのフィルタ処理ステータスを提供する
【０５３２】
getPath（パスの取得）
public String getPath()
pathプロパティの値を返す。
指定元：
インターフェイスManagementPathIFのgetPath
【０５３３】
prepareInsert（挿入準備）
protected CachedPreparedStatement prepareInsert(ConnectionContext context)
throws SQLException
このメソッドはHostLogicalUnitオブジェクトを保存可能、つまりデータベースに追加可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareInsert
【０５３４】
prepareDelete（削除準備）
protected CachedPreparedStatement prepareDelete(ConnectionContext context)
throws SQLException
このメソッドはHostLogicalUnitオブジェクトを保存可能、つまりデータベースから削除可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareDelete
【０５３５】
prepareSelect（選択準備）
protected CachedPreparedStatement prepareSelect(ConnectionContext context)
throws SQLException
このメソッドはHostLogicalUnitオブジェクトを保存可能、つまりデータベースから検索可能にするために提供されなければならない。
オーバーライド：
クラスStorableObjectのprepareSelect
【０５３６】
getLogicalUnit（logicalUnitの取得）
public LogicalUnit getLogicalUnit()
logicalUnitプロパティの値を返す。
【０５３７】
setLogicalUnit（LogicalUnitの設定）
public void setLogicalUnit(LogicalUnit logicalUnit)
LogicalUnitプロパティを指定した値に設定する。
このメソッドを、このオブジェクトを親LogicalUnitの子の一覧に追加する手段として使用してはならないことに注意。
代わりに、使用可能であれば、LogicalUnit親オブジェクト上でaddHostLogicalUnitの適切な呼び出しを行わなければならない。
【０５３８】
getLogicalUnitProvider（logicalUnitProviderの取得）
public LogicalUnitProvider getLogicalUnitProvider()
logicalUnitProviderプロパティの値を返す。
【０５３９】
setLogicalUnitProvider（LogicalUnitProviderの設定）
public void setLogicalUnitProvider(LogicalUnitProvider logicalUnitProvider)
LogicalUnitProviderプロパティを指定した値に設定する。
このメソッドを、このオブジェクトを親LogicalUnitProviderの子の一覧に追加する手段として使用してはならないことに注意。
代わりに、使用可能であれば、LogicalUnitProvider親オブジェクト上でaddHostLogicalUnitの適切な呼び出しを行わなければならない。
【０５４０】
getUniqueId（uniqueIdの取得）
public String getUniqueId()
uniqueIdプロパティの値を返す。
【０５４１】
setUniqueId（UniqueIdの設定）
public void setUniqueId(String uniqueId)
UniqueIdプロパティを指定した値に設定する。
【０５４２】
getHbaName（hbaNameの取得）
public String getHbaName()
hbaNameプロパティの値を返す。
【０５４３】
setHbaName（HbaNameの設定）
public void setHbaName(String hbaName)
HbaNameプロパティを指定した値に設定する。
【０５４４】
getDeviceFile（deviceFileの取得）
public String getDeviceFile()
deviceFileプロパティの値を返す。
【０５４５】
setDeviceFile（DeviceFileの設定）
public void setDeviceFile(String deviceFile)
DeviceFileプロパティを指定した値に設定する。
【０５４６】
getHwPath（hwPathの取得）
public String getHwPath()
hwPathプロパティの値を返す。
【０５４７】
setHwPath（HwPathの設定）
public void setHwPath(String hwPath)
HwPathプロパティを指定した値に設定する。
【０５４８】
getNode（nodeの取得）
public Node getNode()
nodeプロパティの値を返す。
【０５４９】
setNode（Nodeの設定）
public void setNode(Node node)
Nodeプロパティを指定した値に設定する。
このメソッドを、このオブジェクトを親Nodeの子の一覧に追加する手段として使用してはならないことに注意。
代わりに、使用可能であれば、Node親オブジェクト上でaddHostLogicalUnitの適切な呼び出しを行わなければならない。
【０５５０】
getPathStatus（pathStatusの取得）
public int getPathStatus()
pathStatusプロパティの値を返す。
指定元：
インターフェイスManagementPathIFのgetPathStatus
【０５５１】
setPathStatus（PathStatusの設定）
public void setPathStatus(int pathStatus)
PathStatusプロパティを指定した値に設定する。
指定元：
インターフェイスManagementPathIFのsetPathStatus
【０５５２】
getPriority（priorityの取得）
public int getPriority()
priorityプロパティの値を返す。
指定元：
インターフェイスManagementPathIFのgetPriority
【０５５３】
setPriority（Priorityの設定）
public void setPriority(int priority)
Priorityプロパティを指定した値に設定する。
指定元：
インターフェイスManagementPathIFのsetPriority
【０５５４】
setPath（Pathの設定）
public void setPath(String path)
Pathプロパティを指定した値に設定する。
【０５５５】
toDebugString（デバッグ文字列へ）
public String toDebugString()
指定したHostLogicalUnitの文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０５５６】
toDebugString
public String toDebugString(String indent)
クラス：StorableObjectからコピーした説明
指定した字下げ文字列を使用して字下げされたオブジェクトのデバッグ文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０５５７】
toDebugString
public String toDebugString(String indent,
Vector callTree)
指定されたHostLogicalUnitの字下げされた文字列イメージを返す。
オーバーライド：
クラスStorableObjectのtoDebugString
【０５５８】
loadLinks（Linkのロード）
public StorableMap loadLinks()
このHostLogicalUnitのLinkオブジェクトの集合をロードして返す。
【０５５９】
getLinks（Linkの取得）
public StorableMap getLinks()
このHostLogicalUnitのLinkオブジェクトの集合を返す。
【０５６０】
getLinksIterator（Link反復子の取得）
public StorableIterator getLinksIterator()
このHostLogicalUnitのLinkオブジェクトの集合を返す。
【０５６１】
getLinksIterator（Link反復子の取得）
public StorableIterator getLinksIterator(String sortFieldName,
boolean isAscending)
このHostLogicalUnitのLinkオブジェクトの集合を返す。
【０５６２】
clearLinks（Linkをクリア）
public void clearLinks()
このHostLogicalUnitのLinkオブジェクトの集合をクリアする。
アプリケーションが子Linkオブジェクトへの参照を明示的に破棄できるように提供される。
以降のget、load、add、removeメソッドの呼び出しにより集合が再ロードされることに注意。
【０５６３】
addLink（Linkの追加）
public void addLink(Link link)
指定したLinkをこのHostLogicalUnitのLinkオブジェクトの集合に追加する。
【０５６４】
removeLink（Linkの削除）
public void removeLink(Link link)
指定したLinkをこのHostLogicalUnitのLinkオブジェクトの集合から削除する。
【０５６５】
getLink（Linkの取得）
public Link getLink(Dbid id)
このHostLogicalUnitのLinkオブジェクトの集合内の指定したＩＤを有するLinkを返す。
【０５６６】
loadLogicalStoragePools（LogicalStoragePoolのロード）
public StorableMap loadLogicalStoragePools()
このHostLogicalUnitのLogicalStoragePoolオブジェクトの集合をロードして返す。
【０５６７】
getLogicalStoragePools（LogicalStoragePoolの取得）
public StorableMap getLogicalStoragePools()
このHostLogicalUnitのLogicalStoragePoolオブジェクトの集合を返す。
【０５６８】
getLogicalStoragePoolsIterator（LogicalStoragePool反復子の取得）
public StorableIterator getLogicalStoragePoolsIterator()
このHostLogicalUnitのLogicalStoragePoolオブジェクトの集合を返す。
【０５６９】
getLogicalStoragePoolsIterator（LogicalStoragePool反復子の取得）
public StorableIterator getLogicalStoragePoolsIterator(String sortFieldName,
boolean isAscending)
このHostLogicalUnitのLogicalStoragePoolオブジェクトの集合を返す。
【０５７０】
clearLogicalStoragePools（LogicalStoragePoolのクリア）
public void clearLogicalStoragePools()
このHostLogicalUnitのLogicalStoragePoolオブジェクトの集合をクリアする。
アプリケーションが子LogicalStoragePoolオブジェクトへの参照を明示的に破棄できるように提供される。
以降のget、load、add、removeメソッドの呼び出しにより集合が再ロードされることに注意。
【０５７１】
addLogicalStoragePool（LogicalStoragePoolの追加）
public void addLogicalStoragePool(LogicalStoragePool logicalStoragePool)
指定したLogicalStoragePoolをこのHostLogicalUnitのLogicalStoragePoolオブジェクトの集合に追加する。
【０５７２】
removeLogicalStoragePool（LogicalStoragePoolの削除）
public void removeLogicalStoragePool(LogicalStoragePool logicalStoragePool)
指定したLogicalStoragePoolをこのHostLogicalUnitのLogicalStoragePoolオブジェクトの集合から削除する。
【０５７３】
getLogicalStoragePool（LogicalStoragePoolの取得）
public LogicalStoragePool getLogicalStoragePool(Dbid id)
このHostLogicalUnitのLogicalStoragePoolオブジェクトの集合内の指定したＩＤを有するLogicalStoragePoolを返す。
【０５７４】
loadPhysicalStorageBlocks（PhysicalStorageBlockのロード）
public StorableMap loadPhysicalStorageBlocks()
このHostLogicalUnitのPhysicalStoragePoolオブジェクトの集合をロードして返す。
【０５７５】
getPhysicalStorageBlocks（PhysicalStorageBlockの取得）
public StorableMap getPhysicalStorageBlocks()
このHostLogicalUnitのPhysicalStorageBlockオブジェクトの集合を返す。
【０５７６】
getPhysicalStorageBlocksIterator（PhysicalStorageBlock反復子の取得）
public StorableIterator getPhysicalStorageBlocksIterator()
このHostLogicalUnitのPhysicalStorageBlockオブジェクトの集合を返す。
【０５７７】
getPhysicalStorageBlocksIterator（PhysicalStorageBlock反復子の取得）
public StorableIterator getPhysicalStorageBlocksIterator(String sortFieldName,
boolean isAscending)
このHostLogicalUnitのPhysicalStorageBlockオブジェクトの集合を返す。
【０５７８】
clearPhysicalStorageBlocks（PhysicalStorageBlockのクリア）
public void clearPhysicalStorageBlocks()
このHostLogicalUnitのPhysicalStorageBlockオブジェクトの集合をクリアする。
アプリケーションが子PhysicalStorageBlockオブジェクトへの参照を明示的に破棄できるように提供される。
以降のget、load、add、removeメソッドの呼び出しにより集合が再ロードされることに注意。
【０５７９】
addPhysicalStorageBlock（PhysicalStorageBlockの追加）
public void addPhysicalStorageBlock(PhysicalStorageBlock physicalStorageBlock)
指定したPhysicalStorageBlockをこのHostLogicalUnitのPhysicalStorageBlockオブジェクトの集合に追加する。
【０５８０】
removePhysicalStorageBlock（PhysicalStorageBlockの削除）
public void removePhysicalStorageBlock(PhysicalStorageBlock physicalStorageBlock)
指定したPhysicalStorageBlockをこのHostLogicalUnitのPhysicalStorageBlockオブジェクトの集合から削除する。
【０５８１】
getPhysicalStorageBlock（PhysicalStorageBlockの取得）
public PhysicalStorageBlock getPhysicalStorageBlock(Dbid id)
このHostLogicalUnitのPhysicalStorageBlockオブジェクトの集合内の指定したＩＤを有するPhysicalStorageBlockを返す。
【０５８２】
getHostLogicalUnitListByLogicalUnit（logicalUnitによるHostLogicalUnitの一覧の取得）
public static StorableList getHostLogicalUnitListByLogicalUnit(LogicalUnit logicalUnit)
指定された値のlogicalUnitを有する特定の順番には並べられていないHostLogicalUnitオブジェクトの一覧を返す。
【０５８３】
getByLogicalUnit（logicalUnitによる取得）
public static StorableList getByLogicalUnit(LogicalUnit logicalUnit)
非推奨。
指定された値のlogicalUnitを有するHostLogicalUnitを返す。
【０５８４】
getHostLogicalUnitListByLogicalUnitProvider（logicalUnitProviderによるHostLogicalUnitの一覧の取得）
public static StorableList getHostLogicalUnitListByLogicalUnitProvider(LogicalUnitProvider logicalUnitProvider)
指定された値のlogicalUnitProviderを有する特定の順番には並べられていないHostLogicalUnitオブジェクトの一覧を返す。
【０５８５】
getByLogicalUnitProvider（logicalUnitProviderによる取得）
public static StorableList getByLogicalUnitProvider(LogicalUnitProvider logicalUnitProvider)
非推奨。
指定された値のlogicalUnitProviderを有するHostLogicalUnitを返す。
【０５８６】
getHostLogicalUnitByUniqueId（uniqueIdによるHostLogicalUnitの取得）
public static HostLogicalUnit getHostLogicalUnitByUniqueId(String uniqueId)
指定された値のuniqueIdを有するHostLogicalUnitを返す。
【０５８７】
getByUniqueId（uniqueIdによる取得）
public static HostLogicalUnit getByUniqueId(String uniqueId)
非推奨。
指定された値のuniqueIdを有するHostLogicalUnitを返す。
【０５８８】
getHostLogicalUnitListByHbaName（hbaNameによるHostLogicalUnitの一覧の取得）
public static StorableList getHostLogicalUnitListByHbaName(String hbaName)
指定された値のhbaNameを有する特定の順番には並べられていないHostLogicalUnitオブジェクトの一覧を返す。
【０５８９】
getByHbaName（hbaNameによる取得）
public static StorableList getByHbaName(String hbaName)
非推奨。
指定された値のhbaNameを有するHostLogicalUnitを返す。
【０５９０】
getHostLogicalUnitListByDeviceFile（deviceFileによるHostLogicalUnitの一覧の取得）
public static StorableList getHostLogicalUnitListByDeviceFile(String deviceFile)
指定された値のdeviceFileを有する特定の順番には並べられていないHostLogicalUnitオブジェクトの一覧を返す。
【０５９１】
getByDeviceFile（deviceFileによる取得）
public static StorableList getByDeviceFile(String deviceFile)
非推奨。
指定された値のdeviceFileを有するHostLogicalUnitを返す。
【０５９２】
findOrCreateHostLogicalUnit（HostLigicalUnitの発見または作成）
public static HostLogicalUnit findOrCreateHostLogicalUnit(String uniqueId)
HostLogicalUnitクラスのインスタンスを返す。
オブジェクトは、指定された一意のパラメータのどちらかを使用して発見されるか、それらの一意のパラメータすべてを使用して作成される。
これは、同一の接続状況の範囲内で不可分な（atomic）操作として実行される。
【０５９３】
findOrCreate（発見または作成）
public static HostLogicalUnit findOrCreate(String uniqueId)
非推奨。
HostLogicalUnitクラスのインスタンスを返す。
オブジェクトは、指定された一意のパラメータのどちらかを使用して発見されるか、それらの一意のパラメータすべてを使用して作成される。
これは、同一の接続状況の範囲内で不可分な操作として実行される。
【０５９４】
図４のＬＵＮ  ＤＯ  ４１０に関連し、直前のＪＡＶＡドキュメントに対応するテンプレートの例を直後に示す。
【０５９５】
//------------------------------------------------------------------------------
//  著作権  １９９９−２００２  Hewlett-Packard Co.、全権留保。
//------------------------------------------------------------------------------
【０５９６】
/**
論理ユニット（ＬＵＮ）のHostのビューを表すクラス。このクラスは、実際の論理ユ
ニットに関連付けられ、ホストがＬＵＮをどのように見るかを特徴付ける性質を有す
る。これらの性質には、ハードウェアパス、デバイスファイルなどが含まれる。
*/
public final class HostLogicalUnit extends StorableObject implements ManagementPathIF {
/** 様々なホスト論理ユニット型のよく知られた列挙。
これらの名前は、LunEntityのDeviceType設定用のDial External Interface Doc
から得ている。 */
public static final int UNKNOWN_DEVICE   = 0;
public static final int DIRECT_ACCESS_DEVICE      = 1;
public static final int SEQUENTIAL_ACCESS_DEVICE  = 2;
public static final int PRINTER_DEVICE   = 3;
public static final int PROCESSOR_DEVICE        = 4;
public static final int WRITE_ONCE_DEVICE         = 5;
public static final int CDROM_DEVICE         = 6;
public static final int SCANNER_DEVICE       = 7;
public static final int OPTICAL_MEMORY_DEVICE     = 8;
public static final int MEDIUM_CHANGER_DEVICE     = 9;
public static final int COMM_DEVICE          = 10;
public static final int ARRAY_CONTROLLER       = 11;
public static final int ENCLOSURE_SERVICES        = 12;
public static final int FC_SCSI_MUX            = 13;
public static final int FC_SWITCH             = 14;
【０５９７】
/**
この特定のホスト論理ユニットの可視性関係のアロケータのフィルタ処理ステー
タスを記述するallocaterLunStatusから返される値
*/
public static final int ALLOCATER_LU_NOT_CONTROLLED = 0;
public static final int ALLOCATER_LU_ASSIGNED = 1;
public static final int ALLOCATER_LU_NOT_ASSIGNED = 2;
public static final int ALLOCATER_UNDEFINED = 3; //allocaterLunStatusにエラーが生じた場合に設定する
【０５９８】
/** このビューが関連付けられている論理ユニット。  */
// ::getBy unsorted logicalUnit
protected LogicalUnit logicalUnit;
【０５９９】
//** LogicalUnitsに関連付けられたLogicalUnitProvider */
// ::getBy unsorted logicalUnitProvider
protected LogicalUnitProvider logicalUnitProvider;
【０６００】
//** このホスト論理ユニットがその一部であるリンクの集合 */
// ::relate HostLogicalUnit links Link hostLogicalUnits
protected StorableMap links;
【０６０１】
/** これは一意のＩＤである ***/
// ::getBy unique uniqueId
protected String uniqueId;
【０６０２】
/**  このＬＵＮに関連付けられたｈｂａ名 */
// ::getBy unsorted hbaName
protected String hbaName;
【０６０３】
/** このＬＵＮのホスト固有のデバイスファイル。  */
// ::getBy unsorted deviceFile
protected String deviceFile;
【０６０４】
/** ハードウェアパス（ＨＢＡ、ポートなど）エンコーディング。  */
protected String hwPath;
【０６０５】
/** それを介してＨＬＵが関連付けられているノード */
protected Node node;
【０６０６】
/** パスステータス */
protected int pathStatus;
【０６０７】
/** パスの優先度 */
protected int priority;
【０６０８】
/** 非標準の形式設定されたパス文字列、つまり、SCSI、hostname、devicefile以外
を保持するパス */
protected String path;
【０６０９】
/** 
* このHostLogicalUnitに関連付けられた{@link LogicalStoragePool 
* LogicalStoragePools}。 
*/
// ::relate HostLogicalUnit logicalStoragePools LogicalStoragePool hostLogicalUnits
protected StorableMap logicalStoragePools;
【０６１０】
/** ホスト論理ユニットに関連付けられた物理ストレージブロック。*/
// ::relate HostLogicalUnit physicalStorageBlocks PhysicalStorageBlock hostLogicalUnit
protected transient StorableMap physicalStorageBlocks;
【０６１１】
/** 指定されたパラメータを有する所与の論理ユニットの新規のビューを作成する。
*/
public HostLogicalUnit (LogicalUnitProvider logicalUnitProvider,
LogicalUnit logicalUnit, 
String deviceFile, String hwPath, Node node) {
super ();
this.logicalUnit = logicalUnit;
this.deviceFile = deviceFile;
this.hwPath = hwPath;
this.logicalUnitProvider = logicalUnitProvider;
this.node = node;
this.physicalStorageBlocks = null;
/* ::post-compile
if( logicalUnit != null) {
logicalUnit.setIsAssigned(true);
}
【０６１２】
this.uniqueId = node.getDbid() + ":" + deviceFile;
::post-compile */
【０６１３】
} // HostLogicalUnit
【０６１４】
/** Nodeを介してHostを検索するHelperメソッド */
/* ::post-compile
public Host getHost() {
Node node = getNode();
if (node != null)
return (Host)node.getPlatformDevice();
【０６１５】
return null;
} // getHost
::post-compile */
【０６１６】
/** このメソッドを参照するDeviceを返すHelperメソッド */
public Device getDevice (){
/* ::post-compile
return (getLogicalUnitProvider() != null) ? (Device) getLogicalUnitProvider() : null;
::post-compile */ return null;
}
【０６１７】
/**
* 所与のシステムデバイスとデバイスファイルのHostLogicalUnitを取得。そのよう
* なホスト論理ユニットが存在しない場合、ＮＵＬＬを返す。
*
* @param device  ホスト論理ユニットを検索する必要のあるシステムデバイス。
* @param deviceFile  検索するホスト論理ユニットのデバイスファイル。
*
* @return  所与のシステムデバイスに関連付けられ、所与のデバイスファイルによ
* りそのシステムデバイス上で特定されたホスト論理ＬＵＮ。そのようなホスト論理
* ユニットが見つからない場合はＮＵＬＬが返される。
*/
public static HostLogicalUnit getHostLogicalUnit(SystemDevice device, 
String deviceFile) {
/* ::post-compile
StorableMap nodes = device.getNodes();
StorableCollection hostLogicalUnits = 
HostLogicalUnit.getHostLogicalUnitListByDeviceFile(deviceFile);
Iterator iteration = hostLogicalUnits.iterator();
while(iteration.hasNext()) {
HostLogicalUnit hostLun = (HostLogicalUnit)iteration.next();
Node lunNode = hostLun.getNode();
// 正しいホストＬＵＮが見つかったかどうかテストして、見つかっていれば即
// 座に戻る。
if(nodes.contains(lunNode))
return hostLun;
}
// デバイスファイルに対する適切なＬＵＮの発見に失敗したら、「嫌な（ugly）」
// ハッキング（hack）を使用して代替名を検索する。
deviceFile = alternateDeviceFile(device, deviceFile);
hostLogicalUnits = 
HostLogicalUnit.getHostLogicalUnitListByDeviceFile(deviceFile);
iteration = hostLogicalUnits.iterator();
while(iteration.hasNext()) {
HostLogicalUnit hostLun = (HostLogicalUnit)iteration.next();
Node lunNode = hostLun.getNode();
// 正しいホストＬＵＮが見つかったかどうかテストして、見つかっていれば即
// 座に戻る。
if(nodes.contains(lunNode))
return hostLun;
}
// 適切なホストＬＵＮが発見されない場合、ＮＵＬＬを返す。
::post-compile */
return null;
}
【０６１８】
/** 
* アロケータが存在する場合に使用中の可能性がある適切な代替デバイスファイル
* を決定する便利なメソッド。
*/
private static String alternateDeviceFile(SystemDevice device, 
String deviceFile) {
String altDeviceFile = null;
/* ::post-compile
try {
if(device.getOsType() == Host.SOLARIS) {
int index = deviceFile.lastIndexOf(':');
String baseDeviceFile = deviceFile.substring(0, index);
altDeviceFile = baseDeviceFile + ":dummy";
}
else
altDeviceFile = deviceFile;
}
catch(IndexOutOfBoundsException exception) {
altDeviceFile = deviceFile;
}
::post-compile */
return altDeviceFile;
}
【０６１９】
/** このオブジェクトの文字列イメージを返す。  */
/* ::post-compile
public String toString () {
String class_string = super.toString();
return class_string + " HLU: \nDBID"+super.getDbid()+ "\nLUID:"+(logicalUnit == null ? 0 : logicalUnit.getDbid().longValue()) + "\nLUPID:" +( logicalUnitProvider == null ? 0 : logicalUnitProvider.getDbid().longValue()) + "\nuniqueID"+uniqueId+"\nhbaName:"+hbaName+" \ndeviceFile:" + getDeviceFile() +"\nhwPath"+hwPath+"\nnodeID:"+(node == null ? 0 : node.getDbid().longValue())+"\npathStatus"+pathStatus+"\npriority:"+priority;
} // toString
::post-compile */
【０６２０】
/** この特定のHost-LU可視性関係についてアロケータのフィルタ処理ステータスを提供する。 */
/* ::post-compile
public int allocaterLunStatus() {
Host host = getHost();
if (host == null) {
return ALLOCATER_UNDEFINED;
}
LMHost lmHost = LMHost.getLMHostByRuid(host.getRuid());
if (lmHost == null) {
return ALLOCATER_LU_NOT_CONTROLLED;
}
Iterator iter = lmHost.loadActiveAssignments().iterator();
LMInitiatorTargetAssignment assignment = null;
LogicalUnit logicalUnit = getLogicalUnit();
if (logicalUnit == null) {
return ALLOCATER_UNDEFINED;
}
Ruid targetRuid = logicalUnit.getRuid();
if (targetRuid == null) {
return ALLOCATER_UNDEFINED;
}
while (iter.hasNext()) {
assignment = (LMInitiatorTargetAssignment)iter.next();    
if (targetRuid.equals(assignment.getTarget().getRuid())) {
return ALLOCATER_LU_ASSIGNED;
}
}
return ALLOCATER_LU_NOT_ASSIGNED;
} // allocaterLunStatus
::post-compile */
【０６２１】
/** pathプロパティの値を返す。  */
public String getPath() {
/* ::post-compile
if( this.path != null)
::post-compile */
return this.path;
/* ::post-compile
else {
// パスは、SCSI、hostname、またはdevicefile 
if( getNode() != null){
PlatformDevice pdev = getNode().getPlatformDevice();
String hostname = "";
if( pdev instanceof Host ){
hostname = ((Host) pdev).getPrimaryIp();
}
return Target.TARGET_TYPE_SCSI + Target.PATH_SEPARATOR +
(hostname != null ? hostname : "")+ Target.PATH_SEPARATOR +
(getDeviceFile() != null ? getDeviceFile() : "") ;
}
else{
return "";
}
}
::post-compile */
} // getPath
} // HostLogicalUnit
【０６２２】
本発明は、本発明の精神と本質的な特徴から逸脱することなく他の形態で実施可能である。
説明した実施形態は、非限定的な本発明の例に過ぎないと考えるべきである。
本発明の範囲は、添付の特許請求の範囲により示される。
特許請求の範囲の意味するところおよびそれと同等の内容に含まれるすべての変更は、特許請求の範囲の範疇に包含されるものである。
【０６２３】
著作権表示
本特許文献の開示の一部には、著作権保護の対象物が含まれている。
著作権の所有者は、特許文献あるいは発明の開示のいずれをも特許庁の特許ファイルまたはレコードに表示されるがごとくにファクシミリ複製することにはついては何ら異存はないが、それ以外のあらゆる著作権を留保するものである。
【産業上の利用可能性】
【０６２４】
本発明は、コンピュータのボリュームグループおよび論理ユニットに関する情報の抽出に利用可能である。
【図面の簡単な説明】
【０６２５】
【図１】従来技術によるＳＡＮ、管理ホスト、被管理ホストのブロック図である。
【図２】本発明の一実施形態によるＳＡＮ、管理ホスト、被管理ホストのブロック図である。
【図３】本発明の一実施形態によるデータ収集アクタとアクションのシーケンス図である。
【図４】本発明の一実施形態によるＵＭＬクラスの図である。
【図５】本発明の一実施形態による関係を示した図である。
【符号の説明】
【０６２６】
１０２・・・ＳＡＮ＋リソース、
１０４・・・被管理ホスト、
１０６・・・管理ホスト、
１１０・・・ＳＮＭＰデバイス、
１１２・・・ＳＣＳＩ／ＦＣデバイス、
１１４，１１８・・・ＳＣＳＩデバイス、
１１６・・・ブリッジ、
１２０・・・管理サーバ、
１２２・・・クライアント、
１２４・・・ビルダコンポーネント、
１２６・・・ホストエージェント、
１２８・・・ボリュームマネージャ、
１３０・・・ストレージのコンシューマ、
１３２・・・ビルダコンポーネント、
１３４・・・ボリュームギャザラ、
１３６・・・ユーザギャザラ、
１３８・・・ファイルギャザラ、
２０４・・・被管理ホスト、
２０６・・・管理ホスト、
２２０・・・管理サーバ、
２２２・・・クライアント、
２２４・・・ビルダコンポーネント、
２２６・・・ホストエージェント、
２３４・・・ボリュームギャザラ、
２４０・・・データゲッタ、
２４２・・・ハーベスタ、
４０２・・・ボリュームグループ、
４０４・・・論理ボリューム、
４０６・・・論理ストレージブロック、
４０８・・・物理ストレージブロック、
４１０・・・ＬＵＮ（ホストから）、
５０２・・・ボリュームグループ、
５０４〜５１２・・・論理ユニット、
５１４〜５１８・・・論理ボリューム、
５２０〜５２６・・・論理ストレージブロック、
【図１】
2004152284.tif 000060
【図２】
2004152284.tif 000061
【図３】
2004152284.tif 000062
【図４】
2004152284.tif 000063
【図５】
2004152284.tif 000064