(57)【特許請求の範囲】
【請求項１】
複数実リソースを有する第１実ストレージ装置、を含むストレージシステムであって、前記第１実ストレージ装置は、
複数仮想ストレージ装置のそれぞれに割り当てられている実リソースグループと、
前記複数仮想ストレージ装置のそれぞれに対して独立して定義されたネームスペースにおいて実リソースのそれぞれに対して付与されている仮想リソース識別子と、前記第１実ストレージ装置に対して定義されているネームスペースにおいて前記実リソースのそれぞれに対して付与されている実リソース識別子と、を関連付ける、第１管理情報と、
仮想リソース識別子を指定するコマンドを受信し、当該コマンド内の当該仮想リソース識別子を前記第１管理情報を参照して実リソース識別子に変換し、当該変換した実リソース識別子によって前記コマンドを処理する、コントローラと、を含み、
前記コントローラは、前記複数仮想ストレージ装置における第１仮想ストレージ装置に対するコマンドを受信し、
前記コントローラは、前記コマンドにおいて仮想リソース識別子で指定された対象実リソースが、前記第１仮想ストレージ装置内の実リソースであるか、前記第１管理情報を参照して判定し、
前記対象実リソースが、前記第１仮想ストレージ装置と異なる仮想ストレージ装置に含まれる場合に、前記コマンドの要求を拒否する、ストレージシステム。
【請求項２】
複数実リソースを有する第１実ストレージ装置、を含むストレージシステムであって、前記第１実ストレージ装置は、
複数仮想ストレージ装置のそれぞれに割り当てられている実リソースグループと、
前記複数仮想ストレージ装置のそれぞれに対して独立して定義されたネームスペースにおいて実リソースのそれぞれに対して付与されている仮想リソース識別子と、前記第１実ストレージ装置に対して定義されているネームスペースにおいて前記実リソースのそれぞれに対して付与されている実リソース識別子と、を関連付ける、第１管理情報と、
仮想リソース識別子を指定するコマンドを受信し、当該コマンド内の当該仮想リソース識別子を前記第１管理情報を参照して実リソース識別子に変換し、当該変換した実リソース識別子によって前記コマンドを処理する、コントローラと、を含み、
前記コントローラは、第１実リソースグループから第２実リソースグループへの指定実リソースの移動を要求するコマンド取得し、
前記コントローラは、前記第１管理情報を参照して、前記指定実リソースへの仮想リソース識別子の割り当ての有無を判定し、
前記コントローラは、前記指定実リソースに仮想リソース識別子が割り当てられている場合に、前記指定実リソースの移動を拒否する、ストレージシステム。
【請求項３】
複数実リソースを有する第１実ストレージ装置、を含むストレージシステムであって、前記第１実ストレージ装置は、
複数仮想ストレージ装置のそれぞれに割り当てられている実リソースグループと、
前記複数仮想ストレージ装置のそれぞれに対して独立して定義されたネームスペースにおいて実リソースのそれぞれに対して付与されている仮想リソース識別子と、前記第１実ストレージ装置に対して定義されているネームスペースにおいて前記実リソースのそれぞれに対して付与されている実リソース識別子と、を関連付ける、第１管理情報と、
仮想リソース識別子を指定するコマンドを受信し、当該コマンド内の当該仮想リソース識別子を前記第１管理情報を参照して実リソース識別子に変換し、当該変換した実リソース識別子によって前記コマンドを処理する、コントローラと、を含み、
前記コントローラは、前記複数仮想ストレージ装置における第１仮想ストレージ装置に割り当てられている第１実リソースに対する指定仮想リソース識別子の付与を要求するコマンドを取得し、
前記コントローラは、前記第１管理情報を参照して、前記第１仮想ストレージ装置のネームスペースにおける前記指定仮想リソース識別子の有無を判定し、
前記コントローラは、前記指定仮想リソース識別子が前記第１仮想ストレージ装置のネームスペースに既に存在する場合、前記指定仮想リソース識別子を前記第１実リソースに付与することを拒否する、ストレージシステム。
【請求項４】
複数実リソースを有する第１実ストレージ装置、を含むストレージシステムであって、前記第１実ストレージ装置は、
複数仮想ストレージ装置のそれぞれに割り当てられている実リソースグループと、
前記複数仮想ストレージ装置のそれぞれに対して独立して定義されたネームスペースにおいて実リソースのそれぞれに対して付与されている仮想リソース識別子と、前記第１実ストレージ装置に対して定義されているネームスペースにおいて前記実リソースのそれぞれに対して付与されている実リソース識別子と、を関連付ける、第１管理情報と、
仮想リソース識別子を指定するコマンドを受信し、当該コマンド内の当該仮想リソース識別子を前記第１管理情報を参照して実リソース識別子に変換し、当該変換した実リソース識別子によって前記コマンドを処理する、コントローラと、を含み、
前記ストレージシステムは、第２実ストレージ装置をさらに含み、
前記複数仮想ストレージ装置における第１仮想ストレージ装置に対して、前記第２実ストレージ装置における実リソースグループが割り当てられており、
前記第１実ストレージ装置及び前記第２実ストレージ装置は、前記第１仮想ストレージ装置に割り当てられている実リソースと、当該実リソースのそれぞれが属する実ストレージ装置とを関連づける第３管理情報を含み、
前記第１実ストレージ装置及び前記第２実ストレージ装置は、それぞれ、受信した第１コマンドの対象実リソースが属する実ストレージ装置を前記第３管理情報を参照して特定し、前記対象実リソースが他の実ストレージ装置に属する場合に、前記第１コマンドの要求と前記対象実リソースの指定を含むコマンドを、前記他の実ストレージ装置に送信する、ストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、
前記第１実ストレージ装置及び前記第２実ストレージ装置は、前記第３管理情報の更新を互いに通知して前記第３管理情報を同期させる、ストレージシステム。
【請求項６】
請求項４に記載のストレージシステムであって、
前記第３管理情報は、仮想リソース識別子と実ストレージ装置とを関連付け、
前記第１コマンドは仮想リソース識別子により前記対象実リソースを指定し、
前記第１実ストレージ装置及び前記第２実ストレージ装置は、それぞれ、前記対象実リソースが前記他の実ストレージ装置に属する場合に、前記第１コマンドの要求と前記対象実リソースの前記仮想リソース識別子を含む前記コマンドを、前記他の実ストレージ装置に送信する、ストレージシステム。
【請求項７】
請求項４に記載のストレージシステムであって、
前記第１実ストレージ装置及び前記第２実ストレージ装置は、当該実ストレージ装置間で送信されるコマンドを受理するためのボリュームを、外部装置からのコマンドを受理するボリュームとは別に有している、ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムの制御方法に関する。
【背景技術】
【０００２】
複数実ストレージ装置がネットワークを介して互いに接続された計算機システムにおいて、複数実ストレージ装置の複数論理ボリュームを、一つの仮想ストレージ装置の同一の論理ボリュームとしてホスト計算機及び管理計算機に提供する、ボリューム識別子管理方法が利用されている（例えば特許文献１参照）。
【０００３】
上記ボリューム識別子管理方法により、ホスト計算機上のボリューム利用業務やボリューム管理を停止することなく、仮想ストレージ装置の論理ボリュームを、任意の実ストレージ装置からネットワーク内の任意の実ストレージ装置に移行することができる。
【０００４】
一方、近年、実ストレージ装置を複数の会社や複数の部署などで共有して使用する大規模ストレージ集約環境では、ストレージ管理者の負担を軽減するために、ストレージ管理方法として、会社毎又は部署毎に管理者を配置し、それぞれの管理者に実ストレージリソースを配分するマルチテナンシ型の管理方法が求められている。このような環境においては、例えば、複数クラスタに実ストレージリソースを論理分割するリソース構成管理方法が、利用されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２００８／００３４００５号明細書
【特許文献２】米国特許出願公開第２００６／０２２４８５４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
マルチテナンシ型の管理方式を採用した計算機システムにおいて、特許文献１に記載されている方法を採用した場合、企業や部署、業務単位で割り当てられた複数管理者は、一つの仮想ストレージ装置を共有するため、管理者が誤ったボリュームを操作することにより、担当外業務のデータ消失や業務遅延を招く恐れがある。
【０００７】
仮想ストレージ装置におけるリソースを手動で各管理者に割り当てる方法を採用することもできるが、この方法を採用したのでは、リソース数や管理者の数が増加するに従って、リソースの配分ミスが生じやすくなる。また、各管理者には、リソースを配分するための負担が増大し、さらに、システムとして、配分に伴うコストが増大することになる。
【０００８】
一方、特許文献２に記載されている方法を採用した場合、一つの実ストレージ装置のリソースを複数に論理分割する。ある論理分割領域を利用する管理者は、他の論理分割領域に割り当てられたリソースの識別子を使用することはできず、他の論理分割領域を意識してリソースを管理する必要がある。
【０００９】
本発明は、上記従来技術の課題に鑑みて為されたものであり、１又は複数の実ストレージ装置の実ストレージリソースを複数グループに分割し、１又は複数のグループを個別管理可能な一つの仮想ストレージ装置のリソースとして、ホスト計算機及び管理者に提供することができる、システム及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様は、複数実リソースを有する第１実ストレージ装置、を含むストレージシステムであって、前記第１実ストレージ装置は、複数仮想ストレージ装置のそれぞれに割り当てられている実リソースグループと、前記複数仮想ストレージ装置のそれぞれに対して独立して定義されたネームスペースにおいて実リソースのそれぞれに対して付与されている仮想リソース識別子と、前記第１実ストレージ装置に対して定義されているネームスペースにおいて前記実リソースのそれぞれに対して付与されている実リソース識別子と、を関連付ける、第１管理情報と、仮想リソース識別子を指定するコマンドを受信し、当該コマンド内の当該仮想リソース識別子を前記第１管理情報を参照して実リソース識別子に変換し、当該変換した実リソース識別子によって前記コマンドを処理する、コントローラと、を含む。
【発明の効果】
【００１１】
本発明によれば、１又は複数の実ストレージ装置の実ストレージリソースを複数グループに分割し、１又は複数グループを、個別管理可能な一つの仮想ストレージ装置のリソースとして、ホスト計算機及び管理者に提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施例１の概念を説明するための計算機システムの全体構成図である。
【図２】実施例１において、ホスト計算機の構成を説明するためのブロック構成図である。
【図３】実施例１において、実ストレージ装置の構成を説明するためのブロック構成図である。
【図４】実施例１において、実ストレージ装置における制御情報メモリが格納する情報を説明するための構成図である。
【図５】実施例１において、ユーザアカウント管理テーブルの構成図例である。
【図６】実施例１において、ＲＰＵ管理テーブルの構成図例である。
【図７】実施例１において、リソースＩＤ管理テーブルの構成図例である。
【図８】実施例１において、ストレージ装置モデルリストの構成図例である。
【図９】実施例１において、ＳＣＳＩコマンドを処理する論理デバイスの構成例を示す図である。
【図１０】実施例１において、仮想ストレージ装置作成処理を説明するためのフローチャートである。
【図１１】実施例１において、仮想ストレージ装置作成処理におけるＲＰＵ管理テーブル更新処理を説明するためのフローチャートである。
【図１２】実施例１において、仮想ストレージ装置管理画面の表示例を示す図である。
【図１３】実施例１において、リソース割り当て処理を説明するためのフローチャートである。
【図１４】実施例１において、仮想リソースＩＤ付与処理を説明するためのフローチャートである。
【図１５】実施例２の概念を説明するための計算機システムの全体構成図である。
【図１６】実施例２において、実ストレージ装置間接続構成を説明するためのブロック構成図である。
【図１７】実施例２において、ユーザアカウント管理テーブルの構成図例である。
【図１８】実施例２において、ＤＫＣプール管理テーブルの構成図例である。
【図１９】実施例２において、メタ情報テーブルの構成図例である。
【図２０】実施例２において、ホスト計算機が発行するＳＣＳＩコマンド（リード要求又はライト要求）の処理について説明する構成図である。
【図２１】実施例２において、管理クライアントＰＣからのリソース割り当て要求の処理の流れを説明する構成図である。
【図２２】実施例２において、管理クライアントＰＣからのリソース管理要求の処理の流れを説明する構成図である。
【図２３Ａ】実施例２において、コマンド振分け処理を説明するためのフローチャートである。
【図２３Ｂ】実施例２において、コマンド振分け処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではない。各図において、特に説明がない場合には、共通の構成要素に同一の参照符号が付されている。
【００１４】
本実施形態は、マルチテナンシ型の管理方法が適用可能な１又は複数のストレージ装置（実ストレージ装置）を有するストレージシステム及びその制御方法を開示する。本実施形態は、ボリュームの識別子に加え、ホスト計算機からのボリュームアクセスに関わるポートやパリティグループの識別子を仮想化する。以下において、仮想要素以外の要素は実要素であり、特に言及がない場合、その要素は実要素である。又、識別子をＩＤとも表現する。
【００１５】
本実施形態のストレージシステム（実ストレージシステム）は、１又は複数のストレージ装置を含み、そのリソース（実リソース）が、複数のグループに分割される。本実施形態のストレージシステムは、複数の仮想ストレージ装置を定義し、それをホストに提供する。本実施形態のストレージシステムは、各仮想ストレージ装置に、１又は複数のリソースグループを割り当てる。
【００１６】
各仮想ストレージ装置に対して、独立したネームスペースが定義される。仮想ストレージ装置に割り当てられている各リソースに対して、当該仮想ストレージ装置のネームスペース内の仮想リソース識別子が付与される。各仮想ストレージ装置にネームスペースが定義されているため、他の仮想ストレージ装置内の仮想リソース識別子及び実ストレージ装置内の実リソース識別子を考慮することなく、仮想ストレージ装置毎に個別に仮想リソース識別子を付与、管理することができる。
【実施例１】
【００１７】
本実施例は、一つの実ストレージ装置（物理ストレージ装置）を仮想化して、複数の仮想ストレージ装置を提供する。各仮想ストレージ装置に対して、一つのリソースグループ（実リソースのグループ）が割り当てられ、割り当てられたリソースグループのリソースに、仮想リソース識別子が付与される。
【００１８】
図１は、実施例１の概念を説明するための計算機システムの全体構成図を示す。図１において、計算機システムは、ホスト計算機１０００と一つのストレージ装置（実ストレージ装置）２０００を含む。ホスト計算機１０００とストレージ装置２０００は、ネットワーク５０００を介して接続される。
【００１９】
管理者（ユーザ）８０００、８５００は、管理クライアントＰＣ９０００を使用して、ストレージ装置２０００にアクセスする。ストレージ装置２０００の管理サーバ２６００は、管理クライアントＰＣ９０００からの管理コマンドを、ネットワーク７０００を介して受信し、それを内部制御コマンドに変換して、ストレージ装置２０００内の他の要素に転送する。また、管理サーバ２６００は、管理クライアントＰＣ９０００からのアクセス制御を行う。管理サーバ２６００の処理の詳細は後述する。
【００２０】
図１の例において、ストレージ装置２０００は複数のリソース（実リソース）を含み、それらは、三つのリソースグループ（ＲＰＵ：ＲＥＳＯＵＲＣＥ  ＰＡＲＴＩＴＩＯＮ  ＵＮＩＴと呼ぶ）２９００に分割されている。以下に説明する例においては、一つのＲＰＵのみが一つの仮想ストレージ装置に割り当てられる。各リソースには、ストレージ装置２０００で使用される実リソース識別子が付与されている。
【００２１】
図１の例において、ＲＰＵ２９００に含まれるリソース（実リソース）は、ポート２８１０、ボリューム２８００、そしてパリティグループ２８２０である。パリティグループは、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）グループとも呼ばれ、ＲＡＩＤを構成する複数のドライブのグループである。
【００２２】
ボリュームは、論理デバイス（ＬＤＥＶ）とも呼ばれる。ボリュームは、例えば、一つのパリティグループが与える記憶領域内の一部の記憶領域が対応する。ストレージ装置２０００におけるこれらリソースが、いずれかのＲＰＵに割り当てられる。他の種類のリソース、例えば、後述する（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｏｒ  ＰａｃＫａｇｅ）２２００、ＣＭＰＫ（Ｃａｃｈｅ  Ｍｅｍｏｒｙ  ＰａｃＫａｇｅ）２３００をＲＰＵに含めてもよい。
【００２３】
ＲＰＵ＃０１（ＲＰＵ ＩＤ＝０１のＲＰＵ）とＲＰＵ＃０２（ＲＰＵ ＩＤ＝０２のＲＰＵ）は、それぞれ、仮想シリアル番号が１１１１と１２１２の仮想ストレージ装置（ＶＳＡ＃１１１１、ＶＳＡ＃１２１２）に割り当てられている。それらの各リソースには、仮想ストレージ装置のリソースとして、仮想リソース識別子（ＶＩＤ）２３２６Ｄが付与されている。ＲＰＵ＃００（ＲＰＵ ＩＤ＝００のＲＰＵ）は、仮想ストレージ装置に未割り当てのリソースからなるリソースグループ２９００であり、図１の例においては、いずれのリソースにも仮想リソース識別子は付与されていない。
【００２４】
本例において、全てのリソース（ポート、ボリューム、パリティグループ）は、初期状態において、ＲＰＵ＃００に含まれ、一部のリソースが、その後に作成された他のＲＰＵ＃０１、ＲＰＵ＃０２に移動されている。ボリュームは、ＲＰＵ＃０１、ＲＰＵ＃０２において新たに作成可能である。
【００２５】
各仮想ストレージ装置に対して個別のネームスペースが定義されている。各ネームスペースは独立しているため、仮想ストレージ装置内において、他の仮想ストレージ装置及びストレージ装置２０００で使用されているリソース識別子（仮想リソース識別子及び実リソース識別子）を考慮することなく、仮想リソース識別子を自由にＲＰＵ２９００内のリソースに割り当てることができる。仮想リソース識別子は、仮想ストレージ装置内で一意である。
【００２６】
ストレージ装置２０００が具備するリソース識別子制御機能は、ホスト計算機１０００及び管理クライアントＰＣ９０００からのリソース識別子応答要求に対して、仮想リソース識別子２３２６Ｄを応答する。
【００２７】
これにより、ホスト計算機１０００と管理クライアントＰＣ９０００を利用する管理者８０００、８５００とは、ＲＰＵ＃０１内のリソースをシリアル番号が１１１１であるストレージ装置のリソースと認識し、ＲＰＵ＃０２内のリソースを、シリアル番号が１２１２であるストレージ装置のリソースと認識する。
【００２８】
これより、図１の構成を形成するための仮想化方法を説明する。まず、ホスト計算機１０００の構成例を説明する。図２は、ホスト計算機１０００の構成例を模式的に示すブロック図である。ホスト計算機１０００は、プロセッサ１１００、メモリ１２００、ホストバスアダプタ（ＨＢＡ）１３００、入力デバイス１７００、出力デバイス１６００などを備えた計算機であり、例えば、パーソナルコンピュータや、ワークステーションまたはメインフレームなどから構成される。
【００２９】
プロセッサ１１００は、ホスト計算機１０００全体を統括制御する機能を有し、メモリ１２００に格納された業務アプリケーション１２１０、交替パスプログラム１４００そしてファイルシステム１５００を含むＯＳを実行することにより、各種の制御処理を実行する。
【００３０】
例えば、プロセッサ１１００は、業務アプリケーション１２１０を実行することで、ストレージ装置２０００に対してアクセス要求として、例えば、リードアクセス要求またはライトアクセス要求を発行する。メモリ１２００は、プログラム等を記憶するために用いられるほか、プロセッサ１１００のワークメモリとしても用いられる。
【００３１】
ＨＢＡ１３００は、ストレージ装置２０００との通信時におけるプロトコル制御を行う。ＨＢＡ１３００が、プロトコル制御機能を実行することで、ホスト計算機１０００とストレージ装置２０００との間において、例えば、ファイバチャネルプロトコルに従ってデータやコマンドの送受信が行われる。
【００３２】
ローデバイス１３１０は、ファイルシステム１５００がアクセスされた際に、ページキャッシュ（図示せず）に一旦データをコピーする処理を行うことなく、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）処理を実行し、オーバヘッドを低減するためのデバイスとして用いられる。
【００３３】
交替パスプログラム１４００は、ローデバイス１３１０を用いて接続先ボリューム２８００の識別子を取得し、同一識別子を有する複数ボリューム２８００からの複数ローデバイス１３１０を一つのローデバイス１３２０としてまとめる。ファイルシステム１５０００からのＩ／Ｏ発行要求に対して、一つまたは複数のローデバイス１３１０にＩ／Ｏ要求を発行する。
【００３４】
交替パスプログラム１４００が取得するボリューム識別子は、グローバルユニークな値である必要があり、例えば、ストレージ装置の識別子とストレージ装置内のローカルボリューム識別子の組合せで形成される。ストレージ装置２０００は、ボリューム識別子の応答において、仮想識別子を応答する。この点は後述する。
【００３５】
入力装置１７００は、例えば、キーボード、スイッチやポインティングデバイス、マイクロフォンなどから構成される。出力デバイス１６００は、モニタディスプレイやスピーカなどから構成される。
【００３６】
図３は、ストレージ装置２０００のハードウェア構成を模式的に示すブロック図である。ストレージ装置２０００は、図３に示すように、ＦＥＰＫ（ＦｒｏｎｔＥｎｄ  ＰａｃＫａｇｅ）２１００、ＭＰＰＫ２２００、ＣＭＰＫ２３００、ＢＥＰＫ（ＢａｃｋＥｎｄ  ＰａｃＫａｇｅ）２４００、記憶デバイスの一例としてのＨＤＤ（ハードディスクドライブ）２７００、そして管理サーバ２６００を含む。
【００３７】
内部ネットワーク２５００は、ＦＥＰＫ２１００と、ＭＰＰＫ２２００と、ＣＭＰＫ２３００と、ＢＥＰＫ２４００と管理サーバ２６００とを接続する。内部ネットワーク２５００により、ＭＰＰＫ２２００の各ＭＰ２２１０は、ＦＥＰＫ２１００、ＣＭＰＫ２３００、ＢＥＰＫ２４００、管理サーバ２６００のいずれとも通信可能である。
【００３８】
図３は、ＦＥＰＫ２１００、ＭＰＰＫ２２００、ＣＭＰＫ２３００、ＢＥＰＫ２４００等のパッケージ内の一部の構成要素のみを図示しており、これらは、図示された要素と異なる要素をさらに含むことができる。
【００３９】
ＦＥＰＫ２１００は、ホスト計算機１０００との通信のためのインタフェースユニットである。ＦＥＰＫ２１００は、複数のホストＩ／Ｆ２１１０を有する。ホストＩ／Ｆ２１１０は、ホスト計算機１０００のＨＢＡにネットワーク５０００を介して接続し、ホスト計算機１０００との通信のためのプロトコル制御を行う。例えば、一つのホストＩ／Ｆ２１１０が一つのポートに対応する。ホストＩ／Ｆ２１１０が複数のポートを有していてもよい。ＦＥＰＫ２１００は、さらに、図示しない転送回路を含む。
【００４０】
ＢＥＰＫ２４００は、ＨＤＤ２７００との通信のためのインタフェースユニットである。ＢＥＰＫ２４００は、複数のディスクＩ／Ｆ２４１０を有する。ディスクＩ／Ｆ２４１０は、例えば、ケーブルを介してＨＤＤ２７００と接続されるとともに、内部ネットワーク２５００と接続されており、内部ネットワーク２５００側とＨＤＤ２７００との間におけるリード又はライト対象のデータの受け渡しを仲介する。
【００４１】
ＣＭＰＫ２３００は、データキャッシュ用メモリ２３１０と制御情報用メモリ２３２０を有する、共有メモリユニットである。ＣＭＰＫ２３００において、データキャッシュ用メモリ２３１０と制御情報用メモリ２３２０は、不揮発性メモリ、又は、揮発メモリ、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００４２】
データキャッシュ用メモリ２３１０は、ＨＤＤ２７００にライトするデータを一時的に格納（キャッシュ）し、又はＨＤＤ２７００からリードしたデータを一時的に格納（キャッシュ）する。制御情報用メモリ２３２０は、ストレージ装置２０００における処理に必要な情報、例えば、リソース構成情報及び他の情報を格納する。制御情報用メモリ２３２０が格納する情報については後述する。
【００４３】
ＭＰＰＫ２２００は、複数のＭＰ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｏｒ）２２１０と、ローカルメモリ（ＬＭ）２２２０と、これらを接続するバス２２３０とを有する。ＬＭ２２２０は、制御情報用メモリ２３２０に格納されている制御情報の一部を格納している。本実施形態において、プロセッサは、例えば、１若しくは複数のＭＰ又は１若しくは複数のＭＰＰＫで構成することができる。
【００４４】
管理サーバ２６００は、制御情報用メモリ２３２０からＬＭ２２２０にロードされ、ＭＰ２２１０により実行されている制御プログラムへ、管理クライアントＰＣ９０００からのユーザ操作要求を伝達する。例えば、管理サーバ２６００は計算機であって、キーボード、スイッチやポインティングデバイス、マイクロフォンなどの入力デバイスとモニタディスプレイやスピーカなどの出力デバイス（図示せず）を有してもよい。
【００４５】
上述のように、管理サーバ２６００は、管理者８０００、８５００に対するアクセス制御を行い、その制御方式として、例えば、ロールベースアクセス制御（Ｒｏｌｅ−ｂａｓｅｄ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）方式を使用することができる。
【００４６】
図４は、制御情報用メモリ２３２０が格納している情報の一例を示す。本例において、制御情報用メモリ２３２０は、ストレージ装置制御プログラム２３２１、ＲＰＵ管理プログラム２３２２、リソースＩＤ管理プログラム２３２３、ユーザアカウント管理プログラム２３２４を格納している。
【００４７】
ストレージ装置制御プログラム２３２１は、ホスト計算機１０００からのリードアクセス要求及びライトアクセス要求を処理する他、ストレージ装置２０００内における様々な処理を行う。
【００４８】
ＲＰＵ管理プログラム２３２２は、ストレージ装置２０００内のＲＰＵの管理を行う。リソースＩＤ管理プログラム２３２３は、ストレージ装置２０００のリソースに付与されている実リソース識別子及び仮想リソース識別子を管理する。ユーザアカウント管理プログラム２３２４は、ユーザ認証を行い、そして、ストレージ装置２０００のユーザアカウントを管理し、特に、各ユーザのアクセス権限の情報を管理する。
【００４９】
制御情報用メモリ２３２０は、さらに、各制御プログラムが利用する制御情報として、ＲＰＵ管理テーブル２３２５、リソースＩＤ管理テーブル２３２６、ユーザアカウント管理テーブル２３２７、ストレージ装置モデルリスト２３２８、ＤＫＣ（Ｄｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ）プール管理テーブル２３２９、メタ情報テーブル２３３０を格納している。ＤＫＣプール管理テーブル２３２９、メタ情報テーブル２３３０は実施例１では使用されないが、便宜上、図示されている。ＤＫＣプール管理テーブル２３２９、メタ情報テーブル２３３０の詳細は、実施例２で説明する。
【００５０】
図５は、管理サーバ２６００によるロールベースアクセス制御において利用されるユーザアカウント管理テーブル２３２７の構成例を示している。ユーザアカウント管理テーブル２３２７は、管理者のユーザＩＤを格納するユーザＩＤ欄２３２７Ａ、当該ユーザＩＤ（管理者）に割り当てられたＲＰＵを格納するＲＰＵ ＩＤ欄２３２７Ｂ、当該ユーザＩＤに対して与えられている操作権限の種別を格納する権限欄２３２７Ｃ、そして当該ユーザＩＤに対応づけられたパスワードを格納するパスワード欄２３２７Ｄを有する。
【００５１】
ユーザは、ユーザアカウント管理テーブル２３２７において当該ユーザに対して登録されている１又は複数のＲＰＵに対してのみ、登録されている権限を有しており、当該ユーザに対して登録されていないＲＰＵに対しては何の権限も有していない。
【００５２】
例えば、「ＡＤＭＩＮ１」の管理者（例えば図１における管理者８０００）は、ＲＰＵ＃０１に対してのみ、「ＳＴＯＲＡＧＥ  ＡＤＭＩＮ」の権限を有している。「ＡＤＭＩＮ３」の管理者（例えば図１における管理者８５００）は、全てのＲＰＵに対して、「ＳＴＯＲＡＧＥ  ＡＤＭＩＮ」と「ＭＯＤＩＦＹ  ＶＩＲＴＵＡＬ  ＳＴＯＲＡＧＥ」の権限を有している（全体管理者）。ＲＰＵ ＩＤ欄２３２７Ｂにおける「ＦＦ」は全てのＲＰＵを示す。
【００５３】
「ＳＴＯＲＡＧＥ  ＡＤＭＩＮ」の権限を有するユーザは、割り当てられているＲＰＵ（仮想ストレージ装置）内において、全ての操作を行うことができる。例えば、当該権限を有するユーザは、ボリュームの作成及び削除やコピーペアの制御等を行うことができる。
【００５４】
この権限を有するユーザは、ＲＰＵの作成、ＲＰＵの物理リソースの変更（追加・削除）など、ＲＰＵの物理リソースを制御することはできない。また、仮想ストレージ装置の仕様を変更することはできない。ここで、ＲＰＵの物理リソースは、ポート及びパリティグループである。ボリュームは論理リソースであり、「ＳＴＯＲＡＧＥ  ＡＤＭＩＮ」の権限を有するユーザが、それを操作できる。
【００５５】
「ＭＯＤＩＦＹ  ＶＩＲＴＵＡＬ  ＳＴＯＲＡＧＥ」の権限を有するユーザは、仮想ストレージ装置の作成及び変更を行うことができる。当該権限を有するユーザは、新たにＲＰＰＵを作成し、ＲＰＵの物理リソースを変更し（リソース割り当て）、新たに仮想ストレージ装置を定義してＲＰＵを割り当て、仮想ストレージ装置の仕様を変更することができる。
【００５６】
ＲＰＵの物理リソースの変更は、ＲＰＵ間の物理リソースの移動を意味する。したがって、一つのＲＰＵの物理リソースを変更するためには、当該ユーザが、他のＲＰＵに対する「ＭＯＤＩＦＹ  ＶＩＲＴＵＡＬ  ＳＴＯＲＡＧＥ」の権限を有することが必要である。なお、本例のユーザ権限の種類及びその内容は一例であって、これらと異なる権限が定義されていてもよい。
【００５７】
ユーザアカウント管理プログラム２３２４は、管理クライアントＰＣ９０００からの指示に従って、ユーザアカウント管理テーブル２３２７においてユーザアカウントを登録する。具体的には、管理サーバ２６００が、管理クライアントＰＣ９０００から、ユーザアカウントの追加、変更、削除等の指示を登録内容の情報と共に受信し、それらを起動したユーザアカウント管理プログラム２３２４に転送する。ユーザアカウント管理プログラム２３２４は、転送された指示に従って、ユーザアカウント管理プログラム２３２４を更新する。
【００５８】
上述のように、管理サーバ２６００は、ユーザアカウント管理テーブル２３２７の情報に従って、ユーザからのアクセスを制御する。例えば、管理サーバ２６００は、管理クライアントＰＣ９０００から、ログインのためのユーザＩＤ及びパスワードを受信し、それをユーザアカウント管理プログラム２３２４に転送する。
【００５９】
ユーザアカウント管理プログラム２３２４は、取得したユーザＩＤ及びパスワードをユーザアカウント管理テーブル２３２７の情報と比較して、取得したユーザＩＤのユーザが、ユーザアカウント管理テーブル２３２７に登録されているか確認する。ユーザが登録されている場合、ユーザアカウント管理プログラム２３２４は、その認証結果と当該ユーザの権限情報を管理サーバ２６００に送信する。ユーザが登録されていない場合、ユーザアカウント管理プログラム２３２４は、その認証結果を管理サーバ２６００に送信する。
【００６０】
ログインを試みているユーザが非登録ユーザである場合、管理サーバ２６００は、ログインエラーを管理クライアントＰＣ９０００に返す。当該ユーザが登録ユーザである場合、管理サーバ２６００は、その後の当該ユーザからの管理コマンドを、当該ユーザの権限内において処理する。上述のように、管理サーバ２６００は、ユーザの管理操作範囲を、当該ユーザのアカウントに割り当てられているＲＰＵ内のリソースに限定し、さらに実行できる操作を割り当てられた権限内で許される操作に限定する。
【００６１】
例えば、管理サーバ２６００は、ユーザから、割り当てられていないＲＰＵの仮想ストレージ装置におけるボリューム操作（ボリューム作成や削除、ペア形成等）の要求を拒否する。また、管理サーバ２６００は、「ＭＯＤＩＦＹ  ＶＩＲＴＵＡＬ  ＳＴＯＲＡＧＥ」権限を有していないユーザからの仮想ストレージ装置の作成要求やリソース移動（リソース割り当て）の要求を拒否する。
【００６２】
図６は、ＲＰＵ管理テーブル２３２５の構成例を示す。ＲＰＵ管理テーブル２３２５は、ストレージ装置２０００で構成されているＲＰＵそれぞれの構成情報を格納する。ＲＰＵ管理プログラム２３２２は、ＲＰＵ管理テーブル２３２５を更新する。
【００６３】
図６において、ＲＰＵ管理テーブル２３２５は、ＲＰＵ ＩＤ欄２３２５Ａ、ベンダ欄２３２５Ｂ、モデル欄２３２５Ｃ、シリアル番号（Ｓ／Ｎ）欄２３２５Ｄ、ポートＩＰアドレス欄２３２５Ｅ、ボリューム数欄２３２５Ｆ、ポート数欄２３２５Ｇ、パリティグループ数欄２３２５Ｈ、ステータス欄２３２５Ｉを有する。ＲＰＵ管理テーブル２３２５において、「０」は、値が割り当てられていないことを意味する。
【００６４】
ＲＰＵ ＩＤ欄２３２５Ａは、ストレージ装置２０００内でＲＰＵを一意に特定可能な識別子を格納する。ベンダ欄２３２５Ｂ、モデル欄２３２５Ｃ、シリアル番号（Ｓ／Ｎ）欄２３２５Ｄは、それぞれ、ＲＰＵが表現する（ＲＰＵが割り当てられている）仮想ストレージ装置の仮想ベンダ名（ベンダの仮想識別子）、仮想モデル名（モデルの仮想識別子）、仮想シリアル番号（シリアル番号の仮想識別子）を格納する。
【００６５】
これら三つの値が、仮想ストレージ装置を特定する仮想識別子を構成することができる。仮想ストレージ装置の仮想識別子は、ストレージ装置２０００内で一意である。なお、ベンダ欄２３２５Ｂ、モデル欄２３２５Ｃ、シリアル番号欄２３２５Ｄにおいて、「ＤＥＦＡＵＬＴ」は、ストレージ装置２０００の実値が割り当てられていることを意味する。
【００６６】
管理ポートＩＰアドレス欄２３２５Ｅは、ＲＰＵ管理用に定義されている管理サーバ２６００へのアクセスＩＰアドレスを格納する。例えば、一つの物理ポートにおいて、アクセスＩＰアドレスがマスカレードされ、各仮想ストレージ装置に一つのアクセスＩＰアドレスが割り当てられている。
【００６７】
ボリューム数欄２３２５Ｆは、ＲＰＵへの割り当て最大ボリューム数と、ＲＰＵが表現する仮想ストレージ装置モデルの最大ボリューム数（カッコ内の値）を格納する。例えば、ＲＰＵ ＩＤ＝０１の仮想ストレージ装置モデルが、仕様上、作成することができる最大ボリューム数は、６５５３６である。ＲＰＵ ＩＤ＝０１の仮想ストレージ装置が作成することができる最大ボリューム数は、８１９２である。同一モデル（同一ベンダの同一モデル）の仮想ストレージ装置であっても、作成できる最大ボリューム数は各仮想ストレージ装置の設計（定義）よって異なりうる。
【００６８】
ポート数欄２３２５Ｇは、ＲＰＵへの割り当て最大ポート数と、ＲＰＵが表現する仮想ストレージ装置モデルの最大ポート数（カッコ内の値）を格納する。例えば、ＲＰＵ ＩＤ０１の仮想ストレージ装置モデルが、仕様上、実装できるポートの最大数は２５５である。
【００６９】
ＲＰＵ ＩＤ＝０１の仮想ストレージ装置が含みうるポートの最大数は１２８である。ＲＰＵ＃０１が表現するのは仮想ストレージ装置であるため、ＲＰＵ＃０１のポート数は変化し（増減され）得る。従って、その実際のポート数は、１２８以下のいずれかの数である。
【００７０】
パリティグループ数欄２３２５Ｈは、ＲＰＵへの割り当て最大パリティグループ数とＲＰＵが表現する仮想ストレージ装置モデルの最大パリティグループ数（カッコ内の値）を格納する。例えば、ＲＰＵ ＩＤ＝０１の仮想ストレージ装置モデルが、仕様上、実装できるパリティグループの最大数は６５５３６である。
【００７１】
ＲＰＵ ＩＤ＝０１の仮想ストレージ装置が含みうるパリティグループの最大数は１６３８４である。ＲＰＵ＃０１が表現するのは仮想ストレージ装置であるため、ＲＰＵ＃０１のパリティグループ数は変化し（増減され）得る。従って、その実際のパリティグループ数は、１６３８４以下のいずれかの数である。
【００７２】
ステータス欄２３２５Ｉは、ＲＰＵの状態を示す値を格納する。ＲＰＵステータスが「ＡＣＴＩＶＥ」の場合、当該ＲＰＵが仮想ストレージ装置を表現中、すなわち当該仮想ストレージ装置が動作中であって、ストレージ装置２０００は、ホスト計算機１０００と管理クライアントＰＣ９０００にその仮想識別子（仮想ストレージ装置の仮想識別子と仮想リソース識別子を含む）を応答する。
【００７３】
ＲＰＵステータスが「ＩＮＡＣＴＩＶＥ」であれば、当該ＲＰＵが仮想ストレージ装置を表現しておらず、当該仮想ストレージ装置は動作していない。ストレージ装置２０００は、ホスト計算機１０００と管理クライアントＰＣ９０００からの識別子応答要求に対して、当該ＲＰＵの仮想識別子を応答していない。
【００７４】
図７は、リソースＩＤ管理テーブル２３２６の構成例を示す図である。リソースＩＤ管理テーブル２３２６は、リソースの識別子（ＩＤ）を管理する。リソースＩＤ管理テーブル２３２６は、実リソースＩＤ欄２３２６Ａ、種別欄２３２６Ｂ、ＲＰＵ ＩＤ欄２３２６Ｃ、そして仮想リソースＩＤ欄２３２６Ｄを有する。
【００７５】
実リソースＩＤ欄２３２６Ａは、ストレージ装置２０００（実ストレージ装置）に対して定義されているネームスペースにおいて、各リソースに割り当てられている識別子（実リソース識別子）を格納している。実リソース識別子は、ストレージ装置２０００内において、リソースを一意に特定可能である。
【００７６】
種別欄２３２６Ｂは、各リソースの種別を示す。本例においては、登録種別は、ポート、ボリューム、パリティグループである。これらと異なる種別が登録されていてもよい。ＲＰＵ ＩＤ欄２３２６Ｃは、各リソースが所属するＲＰＵの識別子を格納する。本例において、全ての登録リソースがいずれかのＲＰＵに属する。
【００７７】
仮想リソースＩＤ欄２３２６Ｄは、リソースに付与されている仮想リソース識別子を格納している。仮想識別子（ＩＤ）は、仮想ストレージ装置の仮想識別子（ＩＤ）又はリソースに付与される仮想リソース識別子（ＩＤ）を示す。
【００７８】
仮想リソースＩＤ欄２３２６Ｄにおいて、「ＮＵＬＬ」は、仮想リソース識別子が付与されていないことを示す。一部のリソースに対して仮想リソース識別子が付与され、他のリソースに対しては未付与である。仮想リソース識別子は、ＲＰＵに対して定義されているネームスペースにおける識別子である。
【００７９】
仮想リソース識別子は、ＲＰＵ内において、リソースを一意に特定可能である。仮想ストレージ装置を表現するＲＰＵにおいて、一部のリソースに対してのみ仮想リソース識別子が付与され、他の一部のリソースに対しては仮想リソース識別子が付与されていなくともよい。仮想リソース識別子が付与されていないリソースは、所属するＲＰＵが「ＡＣＴＩＶＥ」であっても、仮想ストレージ装置のリソースとしてホスト計算機１０００及び管理クライアントＰＣ９０００に認識されていない。
【００８０】
各ＲＰＵにおいて仮想リソース識別子を付与するために、それぞれにネームスペースが定義される。そのため、各ＲＰＵ（仮想ストレージ装置）において、他のＲＰＵの仮想リソース識別子及び実ストレージ装置２０００において付与される実リソース識別子と独立に、各リソースに対して仮想リソース識別子を付与することができる。これにより、各ＲＰＵにおいて自由に仮想リソース識別子を付与でき、実ストレージ装置２０００において複数の仮想ストレージ装置を提供するための管理を容易化する。
【００８１】
ＲＰＵ ＩＤは、ストレージ装置２０００において一意であり、ＲＰＵ ＩＤと仮想リソース識別子で構成される識別子は、実リソース識別子と同様に、ストレージ装置２０００においてリソースを一意に特定可能である。同様に、ＲＰＵが表現する仮想ストレージ装置の仮想ベンダＩＤ、仮想モデル名そして仮想シリアル番号からなる仮想識別子と、仮想リソース識別子とにより、ストレージ装置２０００においてリソースを一意に特定可能である。
【００８２】
リソースＩＤ管理プログラム２３２３は、リソースＩＤ管理テーブル２３２６を管理する。後述する処理により、リソースはＲＰＵ間を移動され、仮想リソース識別子が付与される。このようなリソース構成に変更があると、リソースＩＤ管理プログラム２３２３は、その変更に応じてリソースＩＤ管理テーブル２３２６を更新する。
【００８３】
図８は、ＲＰＵが表現可能な仮想ストレージ装置のベンダ名（ベンダＩＤ）及びモデル名（モデルＩＤ）を登録するためのストレージ装置モデルリスト２３２８である。ストレージ装置モデルリスト２３２８は表現可能なベンダのベンダ名を登録するベンダ欄２３２８Ａと、ベンダ欄２３２８Ａに登録されたベンダに属するモデルのモデル名を登録するモデル欄２３２８Ｂを有する。
【００８４】
管理者は、ストレージ装置モデルリスト２３２８のエントリから、一つのエントリを選択し、ストレージ装置２０００において作成する仮想ストレージに選択したベンダ名とモデル名を付与することができる。ＲＰＵは、ストレージ装置モデルリスト２３２８に登録されているベンダ名とモデル名の組合せを有する仮想ストレージ装置を表現可能である。
【００８５】
リソースＩＤ管理プログラム２３２３は、ストレージ装置モデルリスト２３２８を管理する。例えば、リソースＩＤ管理プログラム２３２３は、管理サーバ２８００を介して管理クライアントＰＣ９０００から受信した指示に従って、ストレージ装置モデルリスト２３２８を更新する。
【００８６】
上述のように、ストレージ装置２０００は、ホスト計算機１０００及び管理クライアントＰＣ９０００からのリソース識別子応答要求に対して、仮想識別子を応答する。また、ユーザ（管理者）からのアクセスを、そのＲＰＵに対する権限に応じて制御する。ストレージ装置２０００は、これら二つの機能により、それ自体（ストレージ装置２０００）に加え、複数の仮想ストレージ装置を提供することができる。以下において、仮想ストレージ装置を提供するストレージ装置２０００における処理を、具体的に説明する。
【００８７】
ホスト計算機１０００と管理クライアント９０００が発行するＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）コマンドのストレージ装置２０００による処理について説明する。図９は、ＳＣＳＩコマンドを処理する論理デバイス（ボリューム）の構成例を模式的に示す図である。図９において、一つのホストＩ／Ｆ２１１０がホスト計算機１０００と管理クライアント９０００と接続しているが、複数の一つのホストＩ／Ｆ２１１０が、それぞれ、ホスト計算機１０００と管理クライアント９０００の一方と接続してもよい。
【００８８】
ホスト計算機１０００及び管理クライアントＰＣ９０００は、ネットワーク５０００にホストＩ／Ｆ２１１０のＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）をターゲットとする論理パスを形成しており、論理パスに対して、論理ユニット（ＬＵ）２１２０の番号（ＬＵ番号）を指定したＳＣＳＩコマンドを発行する。ＷＷＮは、仮想ストレージ装置の仮想識別子とポートの仮想リソース識別子から作成される。
【００８９】
また、ＳＣＳＩコマンドがデータボリューム（ＬＤＥＶ）２８００に対するデータリード／データライト要求を含む場合、アクセス先のＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）が指定される。
【００９０】
ホストＩ／Ｆ２１１０を介してＳＣＳＩコマンドを受理したＦＥＰＫ２１００の転送回路は、そのＳＣＳＩコマンドを分析し、指定されたＬＵ番号からコマンドを処理するＭＰＰＫ２２２０を特定する。転送回路は、ＬＵ番号とＭＰＰＫ２２２０の関係を管理する管理情報を有しており、その管理情報を参照して、指定されたＬＵ番号のＬＵ２１２０に対するコマンドを処理するＭＰＰＫ２２２０を特定することができる。
【００９１】
ＦＥＰＫ２１００の転送回路は、特定したＭＰＰＫ２２２０に対して、ＳＣＳＩコマンドで指示された操作要求を発行する。当該操作要求を受信したＭＰＰＫ２２２０において、ストレージ装置制御プログラム２３２１が動作する。ストレージ装置制御プログラム２３２１は、指定されているＬＵ番号から、当該ＬＵ２１２０に対応するボリューム（ＬＤＥＶ）を特定するとともに、ＳＣＳＩコマンドで指示されている操作の種類を判定する。
【００９２】
制御情報用メモリ２３２０は、論理ユニット（所属ポート及びＬＵ番号で特定される）とボリューム（実リソース識別子で特定される）との関係を管理する管理情報を格納しており、ストレージ装置制御プログラム２３２１は、その管理情報を参照して指定されたＬＵ番号に対応するボリュームを特定することができる。当該管理情報は、ボリュームの種別の情報も含む。
【００９３】
ＳＣＳＩコマンドに含まれる操作要求が、データのリード又はライトであり、指定ＬＵ番が論理ユニット（ＬＵ２）２１２０であるとする。ストレージ装置制御プログラム２３２１は、データボリューム２８００に対応するＢＥＰＫ２４００に対して、ＳＣＳＩコマンドから特定されたデータボリューム２８００及びＬＢＡに対応する記憶領域からのデータのリード又は記憶領域へのデータのライトを要求する。
【００９４】
次に、ＳＣＳＩコマンドに含まれる操作要求が、ＳＣＳＩ Ｉｎｑｕｉｒｙ ＩＤ（ＩＤｅｎｔｉｆｉｉｅｒ）のようなリソース識別子応答要求であるとする。ストレージ装置２０００は、リソース識別子応答要求に対して、仮想識別子を応答する。
【００９５】
具体的には、ＳＣＳＩコマンドが担当ＭＰＰＫ２２２０に転送されると、ストレージ装置制御プログラム２３２１は、当該ＳＣＳＩコマンドが指定する操作要求が、ＳＣＳＩ Ｉｎｑｕｉｒｙ ＩＤであると判定する。ストレージ装置制御プログラム２３２１は、当該ＳＣＳＩコマンドが指定しているＬＵ番号についての識別子情報を、リソースＩＤ管理プログラム２３２３に要求する。
【００９６】
例えば、ストレージ装置制御プログラム２３２１は、上記管理情報を参照して、指定されたＬＵ番号からボリュームの実リソース識別子を取得し、当該実リソース識別子を指定して、リソースＩＤ管理プログラム２３２３に仮想識別子の情報を要求する。
【００９７】
リソースＩＤ管理プログラム２３２３は、ストレージ装置制御プログラム２３２１からの要求に応じて、リソースＩＤ管理テーブル２３２６を参照し、指定された実リソース識別子を検索する。リソースＩＤ管理プログラム２３２３は、指定された実リソース識別子のエントリから、ＲＰＵ ＩＤ（欄２３２６Ｃ）と仮想リソース識別子（欄２３２６Ｄ）を取得する。
【００９８】
リソースＩＤ管理プログラム２３２３は、さらに、ＲＰＵ管理テーブル２３２５において、リソースＩＤ管理テーブル２３２６から取得したＲＰＵＩＤを検索する。リソースＩＤ管理プログラム２３２３は、ＲＰＵ管理テーブル２３２５における当該ＲＰＵＩＤのエントリから、ベンダ名（欄２３２５Ｂ）、モデル名（欄２３２５Ｃ）、シリアル番号（欄２３２５Ｄ）を取得する。
【００９９】
リソースＩＤ管理プログラム２３２３は、取得した、ベンダ名、モデル名、シリアル番号（仮想ストレージ装置識別子）、そして仮想ボリュームＩＤを、ストレージ装置制御プログラム２３２１に返す。ストレージ装置制御プログラム２３２１は、取得した仮想ストレージ装置の識別子及び仮想ボリュームＩＤを、Ｉｎｑｕｉｒｙデータに含めて、要求元に応答する。
【０１００】
リソース識別子応答要求に対する応答が含む仮想識別子は、設計に依存する。リソース識別子応答は、上記例の一部の仮想識別子のみを含むことができ、上記例と異なる仮想識別子を含むことができる。例えば、リソース識別子応答は、ボリューム（ＬＤＥＶ）の仮想リソース識別子と仮想ストレージ装置の仮想シリアル番号（これも仮想識別子の一つ）のみを含むことができる。異なる例において、リソース識別子応答は、指定された論理ユニットが所属するポートの仮想リソース識別子を含むことができる。
【０１０１】
次に、ＳＣＳＩコマンドが指定するＬＵ番号が、論理ユニット（ＬＵ１）２１２０のＬＵ番号である例を説明する。論理ユニット（ＬＵ１）２１２０に対応するボリューム（ＬＤＥＶ）は、コマンドデバイス２８００である。コマンドデバイス２８００は、それが所属する仮想又は実ストレージ装置（ＲＰＵ）に対する制御コマンドを受けるボリュームである。
【０１０２】
ストレージ装置制御プログラム２３２１は、制御コマンドを受信すると、管理サーバ２６００に対して、制御コマンドの種別及び対象ＲＰＵ並びに送信元（管理者）を示して、アクセス制御を要求する。
【０１０３】
管理サーバ２６００は、示された情報と、ユーザアカウント管理テーブル２３２７の情報を比較して、上記ロールベースアクセス制御を行う。ユーザが上記制御コマンドの要求を行う権限を有する場合、それをストレージ装置制御プログラム２３２１に応答し、ユーザが上記権限を有していない場合、ストレージ装置制御プログラム２３２１及び管理クライアントＰＣ９０００に、それを通知する。ユーザアカウント管理プログラム２３２４が、コマンドデバイス２８００が受信した制御コマンドのアクセス制御を行ってもよい。
【０１０４】
まず、存在している仮想ストレージ装置のリソース操作を要求する制御コマンドの処理を説明する。仮想ストレージ装置に対する制御コマンドが要求する操作は、例えば、ボリュームの作成、ボリュームの記憶領域のフォーマット、指定したボリューム間でのデータコピー等である。
【０１０５】
ＳＣＳＩコマンドが担当ＭＰＰＫ２２２０に転送されると、それはコマンドデバイス２８００へのＳＣＳＩコマンドであるので、ストレージ装置制御プログラム２３２１は、当該ＳＣＳＩコマンドが装置制御コマンドであると判定する。ストレージ装置制御プログラム２３２１は、受信したＳＣＳＩコマンドから装置操作要求を抽出する。
【０１０６】
操作要求は、操作対象リソースを識別する識別子を含む。ここでは、操作対象リソースは、仮想ストレージ装置の識別子及び操作対象リソースの仮想リソース識別子により、指定される。制御コマンドにより要求される操作は、実リソース識別子を使用して行われる。そのため、ストレージ装置制御プログラム２３２１は、操作要求が指定する操作対象の仮想リソースＩＤを、実リソース識別子に変換する。
【０１０７】
ストレージ装置制御プログラム２３２１は、ＲＰＵ管理テーブル２３２５を参照して、操作対象リソースの仮想ストレージ識別子に関連付けられているＲＰＵ ＩＤ（欄２３２５Ａ）を取得する。さらに、ストレージ装置制御プログラム２３２１は、制御コマンドを受信したコマンドデバイスが所属するＲＰＵのＲＰＵ ＩＤを、リソースＩＤ管理テーブル２３２６（欄２３２６Ｃ）から取得する。例えば、ストレージ装置制御プログラム２３２１は、コマンドデバイスの実リソース識別子から、そのＲＰＵ ＩＤを特定できる。
【０１０８】
ストレージ装置制御プログラム２３２１は、コマンドデバイスが所属するＲＰＵのＲＰＵ ＩＤと、制御コマンドが指定する各リソースが所属するＲＰＵのＲＰＵ ＩＤを比較する。いずれかの指定リソースのＲＰＵが、コマンドデバイスのＲＰＵと異なる場合、エラー（実行不可）を当該ＳＣＳＩコマンド要求元に応答する。
【０１０９】
これにより、仮想ストレージ装置のコマンドデバイスで受信した制御コマンドが操作可能なリソースを、当該コマンドデバイスのＲＰＵ、つまり、当該仮想ストレージ装置内に閉じることができる。
【０１１０】
制御コマンドが指定する全リソースが所属するＲＰＵのＲＰＵ ＩＤが、コマンドデバイスが所属するＲＰＵのＲＰＵ ＩＤと一致する場合、ストレージ装置制御プログラム２３２１は、指示された操作を実行する。
【０１１１】
ストレージ装置制御プログラム２３２１は、リソースＩＤ管理テーブル２３２６において、コマンドデバイスのＲＰＵ ＩＤ（欄２３２６Ｃ）と制御コマンドで指定された各仮想リソース識別子（欄２３２６Ｄ）を含むエントリから、実リソース識別子（欄２３２６Ａ）を取得する。ストレージ装置制御プログラム２３２１は、取得した実リソース識別子を使用して、指示された操作を実行する。
【０１１２】
上記例は、仮想ストレージ装置に対する仮想リソース識別子を指定した制御コマンドの処理例であり、操作が仮想ストレージ装置内に限定されている。コマンドデバイスで受け付けることができる制御コマンド（特殊コマンド）は、後述する仮想ストレージ装置の作成、リソースのＲＰＵへの割り当て（ＲＰＵ間でのリソース移動）、仮想リソース識別子の付与のように、受信したコマンドデバイスのＲＰＵと異なるＲＰＵの操作を要求する制御コマンドや、実リソース識別子でリソースを指定する制御コマンドを含むことができる。これらの詳細は後述する。
【０１１３】
例えば、ＲＰＵ＃００のコマンドデバイスが、仮想ストレージ装置作成コマンドやＲＰＵへのリソース割り当てコマンドのような、ＲＰＵ操作を含む制御コマンドを受信する。ＭＰＰＫ２２００は、ＲＰＵ＃００の制御コマンドの処理においては、操作対象リソースを当該ＲＰＵ＃００に限定しない。ＭＰＰＫ２２００は、制御コマンドの要求操作種別に応じて、当該要求の処理をコマンドデバイスのＲＰＵ内に限定するか、他のＲＰＵのリソースの操作を許可するか判定してもよい。
【０１１４】
以下において、仮想ストレージ装置の構築を説明する。以下に説明する仮想ストレージ装置の構築方法の例は、仮想ストレージ装置の作成（図１０）、作成した仮想ストレージ装置（ＲＰＵ）へのリソースの割り当て（図１３）、そして、新たに割り当てたリソースへの仮想リソース識別子の付与（図１４）の処理を実行する。
【０１１５】
まず、仮想ストレージ装置の作成処理を説明する。仮想ストレージ装置の作成は、新たに作成する仮想ストレージ装置の構成定義の指定を受け、当該仮想ストレージ装置に対して、既存のＲＰＵを割り当てる。
【０１１６】
仮想ストレージ装置を新たに作成するためには、仮想ストレージ装置作成権限を有するユーザアカウントが必要である。本例において、「ＭＯＤＩＦＹ  ＶＩＲＴＵＡＬ  ＳＴＯＲＡＧＥ」（ユーザアカウント管理テーブル２３２７参照）が、仮想ストレージ装置作成権限を含む。
【０１１７】
管理者は、仮想ストレージ装置作成権限を有するユーザアカウントを用いてストレージ装置２０００の管理サーバ２６００にログインする。上述のように、管理サーバ２６００は、ロールベース制御により、管理者のアクセスを制御する。管理サーバ２６００は、「ＭＯＤＩＦＹ  ＶＩＲＴＵＡＬ  ＳＴＯＲＡＧＥ」権限を有する管理者に対して、仮想ストレージ装置の作成を許可する。
【０１１８】
図１０は、仮想ストレージ装置作成処理の例を示すフローチャートである。ＲＰＵ管理プログラム２３２２は、このフローに従い、仮想ストレージ装置作成処理を行う。管理サーバ２６００又はコマンドデバイス２８００は、管理クライアントＰＣ９０００からの仮想ストレージ装置作成要求を受信する。例えば、ＲＰＵ＃００のコマンドデバイスが、仮想ストレージ装置作成要求を含む制御コマンドを受信し、ストレージ装置制御プログラム２３２１は、管理サーバ２６００に対して、当該仮想ストレージ装置作成要求についてのアクセス制御を要求する。
【０１１９】
仮想ストレージ装置作成権限を有する管理者からの要求である場合、仮想ストレージ装置作成要求を受けたストレージ装置制御プログラム２３２１又は管理サーバ２６００又は、ＲＰＵ管理プログラム２３２２を起動し、当該要求が示す情報を渡す。
【０１２０】
ＲＰＵ管理プログラム２３２２は、ＲＰＵ管理テーブル２３２５を参照し、そこから、状態（欄２３２５Ｉ）が「非アクティブ」のエントリのＲＰＵ ＩＤを一つ抽出し、変数Ｘに代入する（ステップＦ１０００）。変数Ｘの初期値はＮＵＬＬであり、上記条件のエントリが存在しない場合、ＮＵＬＬが維持される。
【０１２１】
ＸがＮＵＬＬの場合（ステップＦ１０５０：ＹＥＳ）、全てのＲＰＵが利用中であり、新規仮想ストレージ装置を構築することができない。ＲＰＵ管理プログラム２３２２は、管理サーバ２６００又はストレージ装置制御プログラム２３２１を介して、要求者に「新規作成不可」のエラーを返す（ステップＦ１１５０）。ＸにＲＰＵ ＩＤが代入されている場合（ステップＦ１０５０：ＮＯ）、ＲＰＵ管理プログラム２３２２は、ＲＰＵ管理テーブル２３２５の更新処理（ステップＦ１１００）を実行する。
【０１２２】
図１１は、仮想ストレージ装置作成処理におけるＲＰＵ管理テーブル２３２５の更新処理（ステップＦ１１００）を示すフローチャートである。まず、ＲＰＵ管理プログラム２３２２は、管理者の仮想ストレージ装置作成要求に含まれる新規仮想ストレージ装置のベンダ名、モデル名、シリアル番号を取得する（ステップＰ１０００）。以下では、これらを、「Ｖ」、「Ｍ」、「Ｓ」で示す。これらの値の組（Ｖ、Ｍ、Ｓ）は、指定された仮想ストレージ装置識別子である。
【０１２３】
ＲＰＵ管理プログラム２３２２は、ＲＰＵ管理テーブル２３２５の欄２３２５Ｂ、２３２５Ｃ、２３２５Ｄを参照し、取得した値の組（Ｖ、Ｍ、Ｓ）が、他のＲＰＵエントリに設定されているか確認する（ステップＰ１０５０）。
【０１２４】
取得した値の組が、他のＲＰＵエントリに設定されている場合（Ｐ１０５０：ＹＥＳ）、要求された仮想ストレージ識別子と同一仮想識別子を有する仮想ストレージ装置とが既に存在する。したがって、ＲＰＵ管理プログラム２３２２は、管理サーバ２６００又はストレージ装置制御プログラム２３２１を介して、要求者に要求された識別子の仮想ストレージ装置は既に存在していることを通知し、仮想ストレージ装置作成処理を終了する（ステップＰ１２００）。
【０１２５】
取得した値の組が他のＲＰＵエントリに設定されていない場合（Ｐ１０５０：ＮＯ）、ＲＰＵ管理プログラム２３２２は、ＲＰＵ管理テーブル２３２５のステップＦ１０００で選択したＲＰＵ ＩＤのエントリにおいて、該当する欄２３２５Ｂ〜２３２５Ｄに、取得した組（Ｖ、Ｍ、Ｓ）の各値を格納する（ステップＰ１１００）。さらに、ＲＰＵ管理プログラム２３２２は、ＲＰＵ管理テーブル２３２５の当該エントリにおいて、欄２３２５Ｉの値を“ＡＣＴＩＶＥ”に変更する（ステップＰ１１５０）。以上で、仮想ストレージ装置作成処理が完了する。
【０１２６】
ステップＰ１１５０の処理の後、ホスト計算機１０００及び管理クライアントＰＣ９０００は、ステップＦ１０００で選択されたＲＰＵが割り当てられた仮想ストレージ装置を認識することができる。
【０１２７】
図１２は、仮想ストレージ装置管理画面Ｖ１０００の一例を示す。管理クライアントＰＣ９０００は、管理サーバ２６００から情報を受信して、その表示デバイスにおいて、この画面を表示することができる。仮想ストレージ装置管理画面Ｖ１０００は、ストレージ装置２０００に既存の仮想ストレージ装置の一覧を表示するテーブルＶ１０１０と、ストレージ装置２０００に既存の仮想ストレージ装置の個数を示すテキストボックスＶ１０２０を有する。
【０１２８】
ユーザは、テーブルＶ１０１０とテキストボックスＶ１０２０によって、ストレージ装置２０００内の仮想ストレージ装置を確認することができる。テキストボックスＶ１０２０の表現形式において、既存仮想ストレージ装置数が分子であり、ストレージ装置２０００内で提供可能な最大仮想ストレージ装置数、すなわちＲＰＵ＃００を除くＲＰＵの数が分母である。
【０１２９】
また、ストレージ装置管理画面Ｖ１０００は、仮想ストレージ装置を新規作成するために必要な情報を入力する入力ボックスＶ１０３０〜Ｖ１０９０と、仮想ストレージ装置作成要求を送信するボタンＶ１１００と、入力をキャンセルするボタンＶ１１１０と、仮想ストレージ装置管理画面Ｖ１０００から抜けるボタンＶ１１２０を含む。管理者は、管理クライアントＰＣ９０００の入力デバイスを使用して、必要な情報を入力することができる。
【０１３０】
例えば、管理者は、入力ボックスＶ１０３０にて新規作成する仮想ストレージ装置のベンダ名を選択し、入力ボックスＶ１０４０にてモデル名を選択し、入力ボックスＶ１０５０にてシリアル番号を入力する。管理者は、入力ボックスＶ１０３０、Ｖ１０４０で、ストレージ装置モデル一覧２３２８に登録されている値のみ選択できる。
【０１３１】
または、管理クライアントＰＣ９０００は、ストレージ装置モデル一覧２３２８の情報を管理サーバ２６００から受信しており、入力された組がストレージ装置モデル一覧２３２８のいずれのエントリとも一致しない場合、指定されている仮想ストレージ装置は、ストレージ装置２０００にてエミュレート可能な仮想ストレージ装置ではないと判定する。実行ボタンＶ１１００が押下されても、管理クライアントＰＣ９０００は、仮想ストレージ装置作成要求をストレージ装置２０００に送信しない。この処理は、ストレージ装置２０００が行ってもよい。
【０１３２】
入力ボックスＶ１０６０は、ストレージ装置２０００が備える管理機能（管理サーバ２６００）へアクセスするための管理ポートのＩＰアドレスを入力するためのボックスであり、入力値が新規作成する仮想ストレージ装置用のＩＰアドレスである。入力ボックスＶ１０７０〜Ｖ１０９０は、新規作成する仮想ストレージ装置の各リソースの数を入力するため入力ボックスである。これらの表現方法は、ＲＰＵ管理テーブル２３２５を参照して説明した通りである。
【０１３３】
このように、管理者は、仮想ストレージ装置管理画面Ｖ１０００を使用して新たに作成する仮想ストレージ装置の構成情報を入力し、ボタンＶ１１００を押下して、仮想ストレージ装置作成要求をストレージ装置２０００に送信する。管理クライアントＰＣ９０００は、仮想ストレージ装置管理画面Ｖ１０００において既存仮想ストレージ装置の構成変更を受け付け、及びストレージ装置２０００がその要求に応じて構成を変更してもよい。
【０１３４】
次に、仮想ストレージ装置へのリソース割り当て処理について図１３を用いて説明する。ストレージ装置２０００は、仮想ストレージ装置を作成（ＲＰＵを割り当て）した後に当該処理を行うことで、仮想ストレージ装置に割り当てたＲＰＵのリソース構成を、管理者が望む構成に変更できる。
【０１３５】
ストレージ装置２０００のリソースは、初期状態でＲＰＵ＃００に所属している。以下に説明する仮想ストレージ装置へのリソース割り当て処理は、ＲＰＵ＃００から割り当てる仮想ストレージ装置に対応するＲＰＵへ、リソースを移動する。なお、仮想ストレージ装置のＲＰＵから他のＲＰＵへの移動を行ってもよい。
【０１３６】
リソース移動後に、ストレージ装置２０００が図１４を参照して後述するＲＰＵ内実リソースへの仮想リソース識別子付加処理を実施すると、ホスト計算機１０００と管理クライアントＰＣ９０００が新規割り当てリソースを認識することが可能となる。
【０１３７】
図１３は、リソース割り当て処理のフローチャートである。仮想ストレージ装置作成要求と同様に、管理サーバ２６００やコマンドデバイス２８００（例えばＲＰＵ＃００のコマンドデバイス）は、リソース割り当て要求を受信する。アクセス制御は、仮想ストレー装置作成処理と同様であり、正当権限を有する管理者からの要求の場合、ＲＰＵ管理プログラム２３２２が呼び出される。
【０１３８】
ＲＰＵ管理プログラム２３２２は、管理者からのリソース割り当て要求から、移動するリソースの実リソース識別子と、移動先ＲＰＵ ＩＤを取得する（ステップＰ２０００）。以下では、移動するリソースの実リソース識別子を「Ｓ」、移動先ＲＰＵ ＩＤを「Ｔ」で示す。
【０１３９】
次に、ＲＰＵ管理プログラム２３２２は、リソースＩＤ管理テーブル２３２６の欄２３２６Ａにおいて、指定された実リソース識別子Ｓを検索し、当該エントリの欄２３２６Ｄに仮想リソース識別子が登録されているか判定する（ステップＰ２０１０）。
【０１４０】
実リソース識別子Ｓのリソースに仮想リソース識別子が既に付与されている場合（ステップＰ２０１０：ＹＥＳ）、ＲＰＵ管理プログラム２３２２は、管理サーバ２６００又はストレージ装置制御プログラム２３２１を介して、要求者に仮想リソース識別子の解除を要求し（ステップＰ２０３０）、リソース割り当て処理を終了する。ステップＰ２０１０及びステップＰ２０３０は、管理者の管理業務がリソース割り当て処理によって中断されることを防ぐ。管理者は、制御コマンドにより、仮想リソース識別子を解除できる。
【０１４１】
実リソース識別子Ｓのリソースに仮想リソース識別子が未付与の場合（ステップＰ２０１０：ＮＯ）、ＲＰＵ管理プログラム２３２２は、リソース識別子管理テーブル２３２６の実リソース識別子Ｓのエントリにおいて、ＲＰＵ ＩＤ（欄２３２６Ｃ）の値を「Ｔ」に変更し（ステップＰ２０２０）、リソース割り当て処理を完了する。
【０１４２】
リソースの割り当ては、パリティグループとそれに対応する全ボリュームを一つのＲＰＵ内に含めることで、他の仮想ストレージ装置の割り当てリソースを使用することや仮想ストレージ装置に未割り当てのリソースを使用することを避けることができる。
【０１４３】
次に、実リソースに仮想リソース識別子を付与する処理を説明する。以下に説明する処理は、例えば、図１３を参照して説明したリソース移動により別のＲＰＵに移動されたリソースに、仮想リソース識別子を付与する。
【０１４４】
図１４は、ＲＰＵ内の実リソースに仮想リソース識別子を付与する処理例のフローチャートである。仮想ストレージ装置作成要求と同様に、管理サーバ２６００やコマンドデバイス２８００、例えばＲＰＵ＃００のコマンドデバイス、は、仮想リソース識別子付与要求を受信する。
【０１４５】
アクセス制御は、仮想ストレージ装置作成処理と同様であり、正当権限を有する管理者からの要求の場合、ＲＰＵ管理プログラム２３２２が呼び出される。対象リソースが含まれる仮想ストレージ装置にコマンドデバイスが作成されている場合、そのコマンドデバイスが仮想リソース識別子付与要求を受け付けてもよい。
【０１４６】
ＲＰＵ管理プログラム２３２２は、管理者からの仮想リソース識別子付与要求から、仮想リソース識別子を付与するリソースの実リソース識別子（「Ｐ」で示す）と、仮想リソース識別子（「Ｖ」で示す）を取得する（ステップＰ３０００）。
【０１４７】
ＲＰＵ管理プログラム２３２２は、リソース識別子管理テーブル２３２６において、指定された実リソース識別子Ｐのエントリから、ＲＰＵ ＩＤ（当該実利ソースの所属ＲＰＵの識別子）を取得する。ＲＰＵ管理プログラム２３２２は、取得したＲＰＵ ＩＤと指定されている仮想リソース識別子Ｖの組が、リソースＩＤ管理テーブル２３２６に登録済みであるか判定する（ステップＰ３０１０）。具体的には、ＲＰＵ管理プログラム２３２２は、その組が、いずれかのエントリの欄２３２６Ｃ、２３２６Ｄの値の組と一致するか判定する。
【０１４８】
上記組が登録済みの場合（ステップＰ３０１０：ＹＥＳ）、ＲＰＵ管理プログラム２３２２は、指定された仮想ストレージ装置のネームスペースにおいて、指定された仮想リソース識別子が既存であることを、管理サーバ２６００又はストレージ装置制御プログラム２３２１を介して、要求者に通知し（ステップＰ３０３０）、このフローを終了する。これにより、仮想ストレージ装置において同一仮想識別子が重複することを避ける。
【０１４９】
上記組が未登録である場合（ステップＰ３０１０：ＮＯ）、ＲＰＵ管理プログラム２３２２は、リソース識別子管理テーブル２３２６上の実リソース識別子Ｐのエントリにおいて、欄２３２６Ｄに仮想リソース識別子Ｖを格納し（ステップＰ３０２０）、仮想リソース識別子付与処理を終了する。
【０１５０】
以上の仮想ストレージ装置作成処理、リソース割り当て処理、そして仮想リソース識別子付与処理により、図１に示した構成を構築することができる。本実施例によれば、実ストレージ装置のリソースを複数グループに分割し個別管理可能な一つの仮想ストレージ装置のリソースとして、ホスト計算機及び管理者に提供することができる。これにより、仮想化された実ストレージ装置のリソース管理を容易化ができる。
【実施例２】
【０１５１】
実施例１は、一つの実ストレージ装置のリソースを複数のグループに分割し、各グループを一つの仮想的なストレージ装置としてホスト計算機１０００及び管理システム９０００に示す。実施例２は、それぞれが複数の実ストレージ装置２０００を跨る複数のグループ（ＲＰＵ集合体）で、複数の仮想ストレージ装置を形成し、それらをホスト計算機１０００及び管理クライアントＰＣ９０００に提供する。これにより、一台の仮想ストレージ装置のリソースを複数の実ストレージ装置から選出することができる。実施例２においては、主に実施例１と異なる点を説明する。
【０１５２】
図１５は、実施例２の概念を説明するための計算機システムの全体構成図を示している。複数のストレージ装置（実ストレージ装置）２０００は、バックエンドストレージネットワーク６０００にて相互接続されており、各ストレージ装置２０００は、他のストレージ装置２０００に、バックエンドストレージネットワーク６０００を介してＳＣＳＩコマンドを転送することができる。バックエンドストレージネットワーク６０００とストレージネットワーク５０００は同一でもよい。
【０１５３】
システムデバイス２８１０については後述するが、一つのストレージ装置２０００に一つのシステムデバイス２８１０が形成される。例えば、初期状態において全てのリソースが所属するＲＰＵ＃００に、システムデバイスが含まれる。
【０１５４】
本実施例において、ストレージ装置間接続を含むＳＣＳＩコマンド転送範囲を、ＤＫＣプール４０００と呼ぶ。ＤＫＣプール４０００には、複数ストレージ装置２０００を跨ぐリソースグループ（ＲＰＵ集合体）が存在し、一つのＲＰＵ集合体が一つの仮想的なストレージ装置としてホスト計算機１０００や管理クライアントＰＣ９０００に認識される。
【０１５５】
図１５の構成は、複数実ストレージ装置２０００を跨ぐリソースグループと、リソースグループへのリソース割り当て手段と、リソースグループ内のリソースに仮想リソース識別子を付与する仮想リソース識別子付加手段と、ホスト計算機１０００や管理クライアントＰＣ９０００から送られたコマンド（以下の例でＳＣＳＩコマンド）を操作対象の実リソースが存在するストレージ装置２０００に転送する転送手段によって実現される。
【０１５６】
まず、複数ストレージ装置２０００を跨ぐリソースグループの構成例を、図１６を参照して説明する。一つのストレージ装置２０００内のリソースは、実施例１のリソース分割と同様に、リソースグループであるＲＰＵ２９００に分割される。
【０１５７】
本実施例において、複数ストレージ装置２０００を跨るグループは、ＤＫＣプール４０００内で、同一ＲＰＵ ＩＤが付与された異なるストレージ装置２０００のＲＰＵの集合体である。ＲＰＵ集合体を構成する各ＲＰＵは、ストレージ装置２０００の識別子と割り当てられているＲＰＵ ＩＤにより、ＤＫＣプール４０００内で一意に識別できる。
【０１５８】
図１６は、ストレージ装置間接続構成を説明するためのブロック構成図である。図１６の例において、三つのストレージ装置２０００がＤＫＣプール４０００を構成する。複数ストレージ装置２０００を跨ぐ三つのリソースグループ（ＲＰＵ集合体）、ＲＰＵ＃００、ＲＰＵ＃０１、ＲＰＵ＃０２が例示されている。それぞれを構成するＲＰＵに同一のＲＰＵ ＩＤが付与されている。
【０１５９】
ＲＰＵ＃００の集合体において、各ＲＰＵ（各ストレージ装置２０００）は、コマンド受信のためのボリューム（ＬＤＥＶ）であるシステムデバイス２８１０を含む。ＲＰＵ＃０１及びＲＰＵ＃０２の各集合体において、各ＲＰＵ（各ストレージ装置２０００）は、コマンド受信のためのボリューム（ＬＤＥＶ）であるＲＰＭＤ（Ｒｅｓｏｕｒｃｅ  Ｐａｒｔｉｔｉｏｎ  Ｍａｎａｇｅｍｅｎｔ  Ｄｅｖｉｃｅ）２８１５を含む。システムデバイス２８１０及びＲＰＭＤ２８１５については後述する。
【０１６０】
図１７は、ユーザアカウント（管理者アカウント）とアクセス可能なＲＰＵの関係を示すユーザアカウントテーブルＴ１０００である。各ストレージ装置２０００は、ユーザアカウントテーブルＴ１０００を保持する。当該テーブルＴ１０００は、管理者のアクセス制御において参照される。ユーザアカウントテーブルＴ１０００は、ユーザＩＤ欄Ｔ１０１０及び割り当てられたＲＰＵの欄Ｔ１０２０を有する。
【０１６１】
図１７の例において、仮想ストレージ装置を管理する管理者は、ＤＫＣプール４０００内の全てのストレージ装置２０００に存在する、当該仮想ストレージ装置に割り当てられているＲＰＵにアクセスできる。
【０１６２】
例えば、仮想ストレージ装置１（ＶＤＫＣ１とも呼ぶ）を構成するＲＰＵ集合体を、ＲＰＵ＃０１の集合体とする。ＶＤＫＣ１を管理対象とする管理者ＶＤＫＣ１ ＡＤＭＩＮは、ＤＫＣプール４０００内の全てのストレージ装置２０００にあるＲＰＵ＃０１へアクセス可能である。
【０１６３】
ストレージ装置２０００を単体で扱う管理者は、一つのストレージ装置２０００内のリソースにのみアクセスできる。例えば、管理者ＳＴ１ ＡＤＭＩＮは、操作対象となる実ストレージ装置（ＳＴ１）２０００のＲＰＵ＃００にのみアクセス可能であり、管理者ＳＴ２ ＡＤＭＩＮは、実ストレージ装置（ＳＴ２）２０００のＲＰＵ＃００にのみアクセス可能である。仮想ストレージ装置の作成やリソース割り当てを行う管理者、図１７の例における管理者ＤＫＣ ＰＯＯＬ ＡＤＭＩＮは、ＤＫＣプール４０００内の全てのＲＰＵにアクセスできる。
【０１６４】
図１８は、ＤＫＣプール管理テーブル２３２９の構成例を示す。各ストレージ装置２０００は、ＤＫＣプール管理テーブル２３２９を保持する。ＤＫＣプール管理テーブル２３２９は、ＤＫＣプール４０００を構成するストレージ装置２０００の情報を管理する。ＤＫＣプール管理テーブル２３２９は、実ストレージ装置ＩＤ欄Ｉ１０００、システムデバイスＩＤ欄Ｉ１０１０、アクセスポートＷＷＮ欄Ｉ１０２０、メインシステムデバイス欄Ｉ１０３０を有する。ＤＫＣプール管理テーブル２３２９は、実ストレージ装置２０００間での要求（コマンド）転送において参照される。
【０１６５】
実ストレージ装置ＩＤ欄Ｉ１０００は、ＤＫＣプール４０００内でストレージ装置２０００を一意に特定可能とする識別子を格納する。システムデバイスＩＤ欄Ｉ１０１０は、ストレージ装置２０００のシステムデバイス２８１０（ボリューム）をＤＫＣプール４０００内で一意に特定可能な識別子を格納する。
【０１６６】
アクセスポートＷＷＮ欄Ｉ１０２０は、ネットワーク６０００を介してストレージ装置２０００に接続するためのポートのＷＷＮを格納する。メインシステムデバイス欄Ｉ１０３０は、いずれのシステムデバイスがメインシステムデバイス（メイン属性のシステムデバイス）であるかを示す情報を格納する。システムデバイス２８１０に関しては、後述する。
【０１６７】
図１９は、メタ情報テーブル２３３０の構成例を示す。各ストレージ装置２０００は、メタ情報テーブル２３３０を保持する。図１９はメタ情報の一部のみを示し、メタ情報テーブル２３３０は、仮想リソース識別子が付与されている全てのリソースの情報を含む。メタ情報テーブル２３３０は、実ストレージ装置２０００間での要求（コマンド）転送において使用される。
【０１６８】
メタ情報テーブル２３３０は、仮想リソース識別子を付与されたリソースの所属ＲＰＵ及び実ストレージ装置を管理する。メタ情報テーブル２３３０は、ＲＰＵ ＩＤ欄Ｔ２０００、仮想リソースＩＤ欄Ｔ２００１、実ストレージ装置ＩＤ欄Ｔ２００２を有する。
【０１６９】
ＲＰＵ ＩＤ欄Ｔ２０００は、仮想リソース識別子が付与されているリソースの所属ＲＰＵを特定する識別子を格納する。仮想リソースＩＤ欄Ｔ２００１は、ＲＰＵ集合体内で一意に特定可能な仮想リソース識別子を格納する。実ストレージ装置ＩＤ欄Ｔ２００２は、仮想リソース識別子が付与されているリソースの所属ストレージ装置２０００の識別子を格納する。
【０１７０】
後述するように、本例のリソース割り当て要求は、仮想リソースＩＤにより、割り当てる（移動する）リソースを指定する。そのため、ＲＰＵ＃００のリソースに対しても、移動前に仮想リソースＩＤが付与される。実施例１で説明した仮想リソースＩＤ付与要求によりＲＰＵ＃００のリソースに仮想リソースＩＤを付与する、又は、初期状態においてリソースに仮想リソースＩＤが付与されている。図１９に示すように、定義されている仮想リソースＩＤが、いずれのリソースにも割り当てられていなくともよい。
【０１７１】
図２０を用いて、本実施例におけるホスト計算機１０００が発行するＳＣＳＩコマンド（リード要求又はライト要求）の処理について説明する。実施例１で説明したように、ホスト計算機１０００は、ストレージ装置２０００のポートに割り当てられているＷＷＮを発行先アドレスとして、ネットワーク５０００に論理パスを形成している。ホスト計算機１０００は、前論理パスを介して、ＳＣＳＩコマンドによりＬＵ番号とＬＢＡを指定してデータのリード／ライトを要求する。
【０１７２】
ＦＥＰＫ２１００（転送回路）は、指定されたＬＵ番号を、対応する仮想ボリューム識別子（ボリュームの仮想リソース識別子）に変換する。例えば、制御情報用メモリ２３２０は、ポートの実リソース識別子及びＬＵ番号と仮想ボリューム識別子とを対応付ける管理情報を記憶しており、ＦＥＰＫ２１００はこの管理情報を参照して、指定されたＬＵ番号を仮想ボリューム識別子に変換する。さらに、ＦＥＰＫ２１００は、リソースＩＤ管理テーブル２３２６から、ＳＣＳＩコマンドを受信したポートが属するＲＰＵのＲＰＵ ＩＤを取得する。
【０１７３】
次に、ＦＥＰＫ２１００は、メタ情報テーブル２３３０より、上記仮想ボリューム識別子のボリュームを含むストレージ装置２０００の実識別子を取得する。具体的には、ＦＥＰＫ２１００は、上記ＳＣＳＩコマンドを受けたポートが属するＲＰＵのＲＰＵ ＩＤ（欄Ｔ２０００）と、上記仮想ボリューム識別子（欄Ｔ２００１）と有するエントリをメタ情報テーブル２３３０で特定し、そのエントリから実ストレージ装置識別子（欄Ｔ２００２）を選択する。
【０１７４】
選択した実ストレージ装置識別子が自らのストレージ装置２０００の識別子である場合、当該ストレージ装置２０００は、実施例１において説明したように、ホスト計算機１０００からのＳＣＳＩコマンド（リード要求／ライト要求）を処理する。
【０１７５】
選択したストレージ装置２０００の識別子が異なるストレージ装置２０００の識別子である場合、ＦＥＰＫ２１００は、ＤＫＣプール管理テーブル２３２９から抽出したストレージ装置２０００の識別子を元に、受信したＳＣＳＩコマンドを転送する転送先ＷＷＮ（ＤＫＣプール管理テーブル２３２９の欄Ｉ１０３０）を選択する。
【０１７６】
ＦＥＰＫ２１００は、ＷＷＮをターゲットとするバックエンドネットワーク６０００への論理パスに対して、上記特定したＲＰＵ ＩＤと共に、ホスト計算機１０００から送信されたＳＣＳＩコマンドを転送する。
【０１７７】
転送されたＳＣＳＩコマンドを受けたストレージ装置２０００のＦＥＰＫ２１００は、受信したＲＰＵ ＩＤとＳＣＳＩコマンドを元に、実施例１で説明したように、受信したＳＣＳＩコマンド（リード要求／ライト要求）を処理する。例えば、データリード／データライトを実行したストレージ装置２０００は、受信したＳＣＳＩコマンドへの応答を、コマンド転送元のストレージ装置２０００に返し、コマンド転送元ストレージ装置２０００は、当該応答をホスト計算機１０００に転送する。
【０１７８】
本構成により、ＦＥＰＫ２１００によりストレージ装置２１００間のコマンド転送が可能となり、ボリュームを提供するストレージ装置２０００と異なるストレージ装置２０００が受信したリード／ライト要求を、当該ボリュームを含むストレージ装置２０００に適切に転送することができる。
【０１７９】
次に、図２１を参照して、管理クライアントＰＣ９０００からのリソース割り当て（ＲＰＵ集合体間でのリソース移動）要求の処理の流れを説明する。本実施例において、ストレージ装置２０００の組込みコマンドデバイスであるシステムデバイス２８１０が、リソース割り当てのＳＣＳＩコマンドを受理する。管理サーバ２６００は、いずれかの要求を含む管理コマンドを受信すると、それをＳＣＳＩコマンドに変換して、システムデバイス２８１０に転送する。
【０１８０】
まず、ＤＫＣプール４０００内の任意のストレージ装置２０００のシステムデバイス２８１０が管理クライアントＰＣ９０００から上記要求を受信する。ストレージ装置制御プログラム２３２１（担当ＭＰＰＫ２２２０）は、ＤＫＣプール管理テーブル２３２９のメインシステムデバイス欄Ｉ１０３０を参照し、Ｉ１０３０に「１」が格納されているエントリを選択する。
【０１８１】
ストレージ装置制御プログラム２３２１は、選択したエントリから、実ストレージ装置識別子（ストレージ装置２０００の実識別子）とシステムデバイス識別子を取得する。取得した実ストレージ装置識別子が、当該要求を受信した実ストレージ装置２０００と異なる実ストレージ装置２０００の識別子である場合、ストレージ装置制御プログラム２３２１は、ＦＥＰＫ２１００を使用して、バックエンドストレージネットワーク６０００を介して、メイン属性を有する異なる実ストレージ装置２０００のシステムデバイス２８１０に、受信したコマンドを転送する。
【０１８２】
メインシステムデバイス２８１０が転送されたＳＣＳＩコマンドを受信すると、転送先のストレージ装置制御プログラム２３２１（担当ＭＰＰＫ２２２０）は、受信したＳＣＳＩコマンドから、操作対象リソースの識別子、すなわち仮想リソース識別子を取得し、メタ情報２３２９から、当該仮想リソース識別子が示す実リソースを担当する実ストレージ装置２０００の識別子を取得する。
【０１８３】
取得したストレージ装置２０００の識別子が、メインシステムデバイス２８１０のストレージ装置２０００の識別子であれば、当該ストレージ装置２０００は、実施例１で説明したリソース割り当て処理を行う。割り当てるリソースに仮想リソースＩＤが付与されているため、その仮想リソースＩＤは解除される。
【０１８４】
取得したストレージ装置２０００の識別子が、メインシステムデバイス２８１０のストレージ装置２０００と異なるストレージ装置２０００のＩＤである場合、ストレージ装置制御プログラム２３２１は、ＤＫＣプール管理テーブル２３２９から、当該異なる実ストレージ装置２０００の転送先ＷＷＮとシステムデバイス識別子を取得し、ＦＥＰＫ２１００を使用して、バックエンドストレージネットワーク６０００を介して、ＳＣＳＩコマンドを転送する。
【０１８５】
バックエンドストレージネットワーク６０００に接続するポートから、上記異なるストレージ装置２０００のメイン属性のシステムデバイス２８１０は、ＳＣＳＩコマンドを受信する。当該異なるストレージ装置２０００は、実施例１で説明したリソース割り当て処理を行う。
【０１８６】
移動されたリソースに対する仮想リソース識別子付与要求は、ＳＣＳＩコマンドに含まれて、リソース割り当て要求と同様に、システムデバイス２８１０で受理される。ＳＣＳＩコマンドの転送は、リソース割り当て要求と同様である。
【０１８７】
また、管理クライアントＰＣ９０００からの仮想ストレージ装置作成要求も、ＳＣＳＩコマンドに含まれ、リソース割り当て要求と同様に、システムデバイス２８１０で受理される。メインシステムデバイス２８１０は、ＤＫＣプール４０００内の全ての実ストレージ装置２０００のシステムデバイス２８１０に対して、バックエンドストレージネットワーク６０００を介して、仮想ストレージ装置作成要求を発行する。各実ストレージ装置２０００は、仮想ストレージ装置作成処理を行う。
【０１８８】
メタ情報テーブル２３３０の更新が必要な場合、全ての実ストレージ装置２０００において、メタ情報テーブル２３３０を更新する（メタ情報テーブル２３３０の同期）。
【０１８９】
例えば、システムデバイス２８１０が受理したコマンドによるメタ情報テーブル２３３０の更新のため、メインシステムデバイス２８１０のストレージ装置２０００のリソースＩＤ管理プログラム２３２３は、他のストレージ装置２０００に、バックエンドストレージネットワーク６０００を介して、メタ情報テーブル２３３０の更新を通知する。メインシステムデバイスにより、ＲＰＵ集合体間のリソースの移動及び全実ストレージ装置２０００の物理リソース（パリティグループ及びポート）を統合管理することができる。
【０１９０】
図２２は、管理クライアントＰＣ９０００からのリソース管理要求の処理の流れを示す構成図である。ここで説明するリソース管理要求は、一つの仮想ストレージ装置（ＲＰＵ集合体）内に閉じた処理の要求である。例えば、ボリュームのフォーマット、ポート属性（ターゲット又はイニシエータ）の変更などである。
【０１９１】
管理クライアントＰＣ９０００は、実施例１において説明したコマンドデバイスへ、リソース管理要求（ＳＣＳＩＣコマンド）を送信する。ストレージ装置制御プログラム２３２１（担当ＭＰＰＫ２２２０）は、要求で指定された操作対象の仮想リソース識別子を取得し、さらに、メタ情報テーブル２３３０から操作対象リソースを担当する実ストレージ装置２０００の識別子を選択する。
【０１９２】
選択した識別子の実ストレージ装置２０００が自機であれば、ストレージ装置制御プログラム２３２１は、リソース識別子管理テーブル２３２３により、操作対象仮想リソース識別子を実リソース識別子に変換し、それを使用して要求を処理する。
【０１９３】
選択した識別子の実ストレージ装置２０００が他機であれば、ストレージ装置制御プログラム２３２１は、実ストレージ装置間の制御コマンド受理ボリュームであるＲＰＭＤ２８１５に、受信したリソース管理要求（ＳＣＳＩコマンド）を転送する。ＲＰＭＤ２８１５を外部装置（管理クライアントＰＣ９０００）からのコマンドを受けるコマンドデバイスと別に設けることで、ユーザリソース（コマンドデバイス）への影響を避ける。
【０１９４】
ＦＥＰＫ２１００は、バックエンドストレージネットワーク６０００を介して、リソース管理要求を転送する。転送先のストレージ装置制御プログラム２３２１は、受信した要求の操作対象仮想リソース識別子を実リソース識別子に変換し、それを使用して要求を処理する。
【０１９５】
ボリュームの作成要求も、リソース管理要求により可能である。例えば、パリティグループが仮想リソースＩＤで指定されている場合、ストレージ装置制御プログラム２３２１は、メタ情報テーブル２３３０を参照して、当該要求を、そのパリティグループを含む実ストレージ装置２０００に転送する。
【０１９６】
新たに作成されたボリュームに対しては、仮想リソース識別子が付与される。そのため、ボリュームを作成した実ストレージ装置におけるリソースＩＤ管理テーブル２３２６に加え、メタ情報テーブル２３３０が更新される。例えば、ボリュームを作成した実ストレージ装置２０００のストレージ装置制御プログラム２３２１が、他の実ストレージ装置２０００に、バックエンドストレージネットワーク６０００を介して、メタ情報テーブル２３３０の更新を通知する。
【０１９７】
図２３Ａ及び図２３Ｂは、図２１と図２２を参照して説明した、管理クライアントＰＣ９０００からのストレージ管理操作要求（ＳＣＳＩコマンド）の転送処理を示すフローチャートである。
【０１９８】
ストレージ管理操作要求（ＳＣＳＩコマンド）を受信した実ストレージ装置２０００はストレージ管理操作要求から、指定された操作を取得し、その操作を解析する（ステップＰ５０００）。
【０１９９】
上記実ストレージ装置２０００は、指定された操作が、所定の種別の操作、上記例において、ＲＰＵ集合体間でのリソース移動に関連する操作（仮想ストレージ装置作成、リソース割り当て又は仮想リソース識別子付与）であるか判定する（ステップＰ５０１０）。
【０２００】
ステップＰ５０１０の判定結果が肯定的である場合、上記実ストレージ装置２０００は、当該要求をメインシステムデバイス２８１０に送信する（ステップＰ５０２０）。その後、図２１を参照して説明した処理が実行される。
【０２０１】
ステップＰ５０１０の判定結果が否定的である場合、上記実ストレージ装置２０００は、図２２を参照して説明した処理を実行する。つまり、要求対象仮想リソース識別子を有するリソースが自ストレージ装置２０００内にある場合（ステップＰ５０３０：ＹＥＳ）、上記実ストレージ装置２０００は当該要求を処理する（ステップＰ５０２５）。要求対象仮想リソース識別子を有するリソースが他ストレージ装置２０００内にある場合（ステップＰ５０３０：ＮＯ）、上記実ストレージ装置２０００は、当該要求を、上記リソースが存在する実ストレージ装置２０００のＲＰＭＤ２８１５に転送する。
【０２０２】
ＲＰＵ集合体内に閉じた処理を要求するコマンドと、異なるＲＰＵ集合体に関わるコマンドのために、異なる受理デバイス及び異なる転送方法を使用することで、それぞれに適切な転送制御を行うことができる。
【０２０３】
ストレージ装置２０００間接続ネットワーク６０００は、図２０を参照して説明したホスト計算機１０００が発行するＳＣＳＩコマンドの他ストレージ装置２０００への転送と、ストレージ管理操作要求の転送とに、共有されている。ストレージ管理操作要求の転送が頻発すると、ホスト計算機１０００からのＩ／Ｏ要求の処理とネットワーク６０００の利用が干渉し、結果として、ホスト計算機１０００からのＩ／Ｏ要求の処理の遅延を招く恐れがある。
【０２０４】
上記例は、コマンドを受信したストレージ装置２０００にコマンド転送先を定める処理を組み込むことで、ＤＫＣプール４０００内の全ストレージ装置２０００へのブロードキャストのような余分なストレージ装置間コマンド転送を避け、ホスト計算機１０００からのＩ／Ｏ要求の処理の遅延を低減できる。
【０２０５】
また、コマンドで指定された仮想リソース識別子を実リソース識別子に変換する処理をコマンド転送先ストレージ装置２０００が行うことより、ストレージ装置２０００間コマンド転送時のコマンド内容変更による転送情報量の増加を抑止することができる。ネットワーク６０００に流れるコマンドの転送情報量は、ネットワーク５０００で流れた情報量と略同量である。
【０２０６】
メタ情報テーブル２３３０（システム全体のリソース構成情報）は、全実ストレージ装置２０００において同期している必要がある。情報同期処理時間は、ＤＫＣプール４０００内のストレージ装置２０００の数や、ストレージ装置２０００間のネットワーク６０００の帯域に関連して変動する。例えば、ストレージ装置制御プログラム２３２１は、更新内容に応じて早期に構成情報の同期処理が必要であるかを判定し、コマンド処理速度の低下を避けるように更新タイミングを決定することができる。
【０２０７】
以上のように、実施例１で説明したＲＰＵ管理及びリソース識別子管理と、本実施例で具体的に説明した実ストレージ装置間での構成情報同期及び実ストレージ装置間でのコマンド転送により、図１５で示した構成を構築し、複数実ストレージ装置２０００を跨る複数仮想ストレージ装置を、適切に管理、制御することができる。
【０２０８】
上記例は、ストレージ装置２０００が、コマンドの転送先を決定した。これと異なり、ストレージシステム（複数ストレージ装置２０００）にネットワークを介して接続する外部の管理計算機が、コマンドの転送先ストレージ装置２０００を決定し、そこにコマンドを転送してもよい。例えば、管理計算機は、実施例２で説明した、ＤＫＣプール管理テーブル２３２９及びメタ情報テーブル２３３０を保持している。
【０２０９】
管理クライアントＰＣ９０００からコマンドを受信した管理計算機は、上記ストレージ装置２０００と同様に、受信コマンドの仮想識別子と保持している情報を参照して、コマンドの転送先ストレージ装置２０００を選択し、当該ストレージ装置２０００にネットワーク６０００を介してコマンドを送信する。
【０２１０】
以上、本発明の実施形態を説明したが、本発明が上記の実施形態に限定されるものではない。ある実施例の構成の一部を他の実施例の構成で置換し又はある実施例の構成の一部を他の実施例の構成に追加することができる。各実施例の各要素を、本発明の範囲において容易に削除、変更、追加することができる。
【０２１１】
例えば、上記二つの実施例は、一つ又は複数の同一ＲＰＵ ＩＤを一つの仮想ストレージ装置を対応付けるが、異なるＲＰＵ ＩＤを有する複数のＲＰＵを、一つの仮想ストレージ装置に割り当ててもよい。
【０２１２】
本発明は、プロセッサ上で稼動するソフトウェアを使用して実装してもよいし、専用ハードウェア又はソフトウェアに従い動作するプロセッサと専用ハードウェアの組み合わせで実装してもよい。各種プログラムはプログラム配布サーバや非一時的な記憶媒体によって装置にインストールされてもよい。本発明において、情報を表すデータ構造は限定されず、テーブル、リスト、ＤＢ、キュー等のデータ構造やそれ以外で表現されていてもよい。
【０２１３】
上記では、主に、「プログラム」を主語（動作主体）として各処理について説明を行ったが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信Ｉ／Ｆを用いながら行うため、プロセッサを主語とした説明でもよいし、当該プロセッサを含む装置（システム）を主語とした説明でもよい。
【０２１４】
プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、プロセッサは、制御プログラムに従って動作することで制御部として機能し、管理プログラムに従って動作することで管理部として機能する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
【０２１５】
各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【図１】
0006055924.tif 000002
【図２】
0006055924.tif 000003
【図３】
0006055924.tif 000004
【図４】
0006055924.tif 000005
【図５】
0006055924.tif 000006
【図６】
0006055924.tif 000007
【図７】
0006055924.tif 000008
【図８】
0006055924.tif 000009
【図９】
0006055924.tif 000010
【図１０】
0006055924.tif 000011
【図１１】
0006055924.tif 000012
【図１２】
0006055924.tif 000013
【図１３】
0006055924.tif 000014
【図１４】
0006055924.tif 000015
【図１５】
0006055924.tif 000016
【図１６】
0006055924.tif 000017
【図１７】
0006055924.tif 000018
【図１８】
0006055924.tif 000019
【図１９】
0006055924.tif 000020
【図２０】
0006055924.tif 000021
【図２１】
0006055924.tif 000022
【図２２】
0006055924.tif 000023
【図２３Ａ】
0006055924.tif 000024
【図２３Ｂ】
0006055924.tif 000025