以下、図面を参照しつつ、本発明を実施するための形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
本実施形態は、複数のストレージシステムが1つのストレージシステムとしてホスト計算機にサービスを提供することができる構成を説明する。本実施形態のシステムは、複数のストレージシステムに同一のストレージシステム識別情報(デフォルトの識別子)を付与する。さらに、ボリュームに対して、複数のストレージシステムにおいて一意のボリューム識別情報を付与する。
ホスト計算機は、割り当てられているストレージシステム識別情報とボリューム識別情報とを使用して、ボリュームを特定する。例えば、システム動作中にボリュームがストレージシステム間で移動しても、ホスト計算機は、上記ストレージシステム識別情報とボリューム情報により、移動先のストレージシステムのボリュームの読み書きを行うことができる。
図1は、本発明の実施形態における、計算機システム全体の構成の一例を説明するための図である。本図に示すように、計算機システムは管理計算機1と、複数の(図1の例において3台の)ストレージシステム2A〜2Cと、1台以上(図1の例において2台)のホスト計算機3A、3Bと、3つの接続装置4〜6を備える。
以下において、ストレージシステム2は、計算機システムに含まれる任意の1又は複数のストレージシステムを指し、ホスト計算機3は、計算機システムに含まれる任意の1又は複数のホスト計算機を指す。
接続装置4は、ホスト計算機3からのデータI/O要求(データの入力又は出力の要求)をストレージシステム2に転送する。接続装置5は、ストレージシステム2間のデータI/O要求を転送する。接続装置6は、管理計算機1からの管理用通信要求を、ストレージシステム2、ホスト計算機3、接続装置4、接続装置5、へ転送する。
本計算機システムは、接続装置4を使用してホスト計算機3とストレージシステム2の間にSAN(Storage Area Network)を構成することとしているが、ホスト計算機3とストレージシステム2が直接接続されてもよい。
本計算機システムは、接続装置5を使用して、ストレージシステム2の間にSANを構成することとしているが、ストレージシステム2が直接接続されてもよい。接続装置6により計算機システム全体が管理計算機1からIPネットワークにて接続可能な構成としているが、管理計算機1と直接接続される構成であってもよい。
接続装置4、5を含むネットワークは、物理的に同一の装置で提供され、論理的に独立なネットワークでもよい。また、接続装置4、5を含むネットワークは、iSCSI(Internet Small Computer System Interface)で構成されるIPネットワークでもよく、接続装置6で提供されるIPネットワークと同一の装置で提供され、論理的に独立なネットワークでもよい。さらに、接続装置4、5、6を含むネットワークは、FCoE(FibreChannel over Ethernet)で構成され、同一の装置で構成されるネットワークでもよい。
図2は、管理計算機1のハードウェア構成の一例を示す。管理計算機1はキャッシュメモリ11、不揮発記憶装置12、プロセッサ13、プログラムメモリ14、管理用通信I/F16、内部バス17、画像出力装置18、入力装置19などを有する計算機である。不揮発記憶装置12は、ネットワークを介して接続された外部記憶装置でもよい。
管理計算機1は、不揮発記憶装置12に格納されたオペレーティングシステム(OS)やアプリケーションプログラムなどのソフトウェアをプログラムメモリ14にロードし、プロセッサ13がプログラムメモリ14からそれを読みだして実行することで、所定の機能を達成する。プロセッサ13は、複数のチップ及び複数のパッケージを含むことができる。この点は、他の装置(ストレージシステム2を含む)において同様である。
管理計算機1は、頻繁に用いるデータをキャッシュメモリ11に一時的に格納し、処理を高速化する。管理計算機1は、キーボードやマウスなどの入力装置19やディスプレイなどの画像出力装置18を有し、入力装置19が管理者(ユーザ)からの入力を受け付け、画像出力装置18がプロセッサ13から指示された情報を出力する。管理計算機1は、さらに、接続装置6と接続する管理用通信I/F16を有する。
図1の構成例において、管理システムは管理計算機1で構成されているが、管理システムは複数の計算機で構成してもよい。複数の計算機の一つは表示用計算機であってもよく、管理処理の高速化や高信頼化のために、複数の計算機が管理計算機と同等の処理を実行してもよい。
図3は、ストレージシステム2のハードウェア構成の一例を示す。ストレージシステム2はキャッシュメモリ21、不揮発記憶装置22、プロセッサ23、プログラムメモリ24、データI/O用通信I/F25、管理用通信I/F26、内部バス27、画像出力装置28、入力装置29を有する。
ストレージシステム2は、不揮発記憶装置22に格納されたOSやアプリケーションプログラムなどのソフトウェアをプログラムメモリ24にロードし、プロセッサ23がプログラムメモリ24から読みだしてそれを実行することで、所定の機能を達成する。プロセッサ23は、ストレージシステム2のコントローラとして機能する。ストレージシステム2は、頻繁に用いるデータをキャッシュメモリ21に格納し、処理を高速化する。
ストレージシステム2は、キーボードやマウスなどの入力装置29及びディスプレイなどの画像出力装置28を有し、入力装置29が管理者(ユーザ)からの入力を受け付け、画像出力装置28がプロセッサ23から指示された情報を出力する。ストレージシステム2は、接続装置4、5と接続する1つ以上のデータI/O用通信I/F25を有し、接続装置6と接続する管理用通信I/F26を有する。ここで、データI/O用通信I/F25と管理用通信I/F26は、物理的に同一の装置で提供されてもよい。
図1は、簡単のため3つのストレージシステム2を記載しているが、システムは2又は4以上のストレージシステム2を有していてもよい。データI/O用通信I/F25には計算機システムで一意のポートIDが割り当てられており、NPIV(N_Port ID Virtualization)又はその他の仮想化機構により、複数の仮想ポートIDを割り当てることが可能である。
ストレージシステム2のデータI/O用通信I/F25は、ホスト計算機3からの読み書き要求を受け付けるターゲットモードと他のストレージシステム2への読み書き要求を行うイニシエータモード両方をサポートする。ストレージシステム2は、それぞれのモードのために物理的に異なるデータI/O用通信I/F25を具備してもよいが、物理的に一つのI/Fが論理的に双方の機能を満たしてもよい。
図4は、ホスト計算機3のハードウェア構成の一例を示す。ホスト計算機3は、キャッシュメモリ31、不揮発記憶装置32、プロセッサ33、プログラムメモリ34、データI/O用通信I/F35、管理用通信I/F36、内部バス37、画像出力装置38、入力装置39などを有する計算機である。
ホスト計算機3は、不揮発記憶装置32に格納されたOSやアプリケーションプログラムなどのソフトウェアをプログラムメモリ34にロードし、プロセッサ33がプログラムメモリ34から読みだして実行することで、所定の機能を達成する。ホスト計算機3は、頻繁に用いるデータをキャッシュメモリ31に格納し、処理を高速化する。
ホスト計算機3は、キーボードやマウスなどの入力装置39やディスプレイなどの画像出力装置38を有し、入力装置39が管理者(ユーザ)からの入力を受け付け画像出力装置38がプロセッサ33から指示された情報を出力する。ホスト計算機3は、接続装置4、5と接続する1つ以上のデータI/O用通信I/F35を有し、接続装置6と接続する管理用通信I/F36を有する。データI/O用通信I/F35と管理用通信I/F36は、物理的に同一の装置で提供されてもよい。
図1は、簡単のため2つのホスト計算機3を記載しているが、システムはいくつのホスト計算機3を有していてもよい。データI/O用通信I/F35には計算機システムで一意のポートID割り当てられており、NPIV又はその他の仮想化機構により、複数の仮想ポートIDを割り当てることが可能である。
図5は、接続装置4のハードウェア構成の一例を示す。接続装置4は、キャッシュメモリ41、不揮発記憶装置42、プロセッサ43、プログラムメモリ44、データI/O用通信I/F45、管理用通信I/F46、内部バス47、リンクランプ48、などを有する。
接続装置4は、不揮発記憶装置42に格納されたOSやアプリケーションプログラムなどのソフトウェアをプログラムメモリ44にロードし、プロセッサ43がプログラムメモリ44から読みだして実行することで、所定の機能を達成する。接続装置4は、頻繁に用いるデータをキャッシュメモリ41に格納し、処理を高速化する。接続装置4は、LEDその他の発光素子を有するリンクランプ48を有し、データI/O用通信I/F45の論理的な接続状況を可視化することができる。接続装置5、6は、接続装置4と同様の構成を有する。
図6は、ストレージシステム2の不揮発記憶装置22の構成を示す。不揮発記憶装置22は、ストレージシステム管理情報格納部221と不揮発記憶媒体を備える異なる種類のメディア222A〜222Cを含む。本明細書において、1又は複数のメディアドライブからなるグループをメディアと呼ぶ。メディア222は、任意の1つ又は複数のメディアを指す。
図6の例において、半導体メモリであるフラッシュメモリを活用したSSD(Solid State Drive)メディア222A、Serial Attached SCSIのインタフェースを備えたSAS(Serial Attached SCSI)メディア222B、Serial Advanced Technology Attachmentのインタフェースを備えたSATAメディア222Cが、例示されている。
ストレージシステム2は、メディア222が提供する実記憶領域により構成され、ホスト計算機3やシンプロビジョニングプール223から読み書き可能な、1つ以上のボリューム(実ボリューム)2221を提供する。単一種類のメディア222によってボリューム2221を提供してもよいし、複数種類のメディア222によりRAID(Redundant Arrays of Inexpensive Disks)を構成し、そのRAIDによりボリューム2221を提供してもよい。以下においては、単一種類のメディア222によってボリューム2221を構成する例を説明する。
シンプロビジョニングプール223において、メディア222のボリューム2221群のなかから管理者(ユーザ)により選択されたボリューム2221が複数ページ2231に分割される。シンプロビジョニングプール223は、ページ単位で管理される。シンプロビジョニングボリューム224は、ホスト計算機3に提供される仮想ボリュームであって、その容量は仮想化されている。シンプロビジョニングボリューム224にホスト計算機3から書き込みがありデータ格納領域が必要になる度に、ストレージシステム2は、ページ2231をシンプロビジョニングボリューム224に割り当てる。
シンプロビジョニングは、ホスト計算機3により認識されるシンプロビジョニングボリューム224の容量を、シンプロビジョニングボリューム224に割り当てられている実容量(全ページの容量)よりも大きくすることができ、ホスト計算機3に割り当てられる容量を実現するために必要な実用量を、それよりも小さくすることができる。
図7は、管理計算機1の不揮発記憶装置12が格納している情報を示している。ストレージシステム管理プログラム121は、計算機システム内のストレージシステム2と、管理用通信I/F16の接続された接続装置6を経由して通信し、状態の参照、構成情報の設定を行う。接続装置管理プログラム122は、計算機システム内の接続装置4、5と、管理用通信I/F16の接続された接続装置6を経由して通信し、状態の参照、構成情報の設定を行う。
ホスト計算機管理プログラム123は、計算機システム内のホスト計算機3のエージェント322(図9を参照)と、管理用通信I/F16の接続された接続装置6を経由して通信し、状態の参照、構成情報の設定を行う。運用管理プログラム124は、管理計算機1の不揮発記憶装置12内にある各種テーブルを参照し、ボリューム配置の計画及びその他の処理を行う。運用管理プログラム124は、各種プログラムと連携して計算機システム内の運用管理を行い、管理者に対してユーザインタフェースを提供する。オペレーティングシステム125は、各種プログラムの実行基盤であり、各種テーブルの管理基盤である。
各プログラムは、プロセッサ13によって実行されることで、定められた処理を記憶装置及び通信インタフェースを用いながら行う。従って、本実施形態においてプログラムを主語とする説明は、プロセッサを主語とした説明でもよい。若しくは、プログラムが実行する処理は、そのプログラムが動作する計算機及び計算機システムが行う処理である。
プロセッサ13は、プログラムに従って動作することによって、所定の機能を実現する機能部(手段)として動作する。例えば、プロセッサ13は、ストレージシステム管理プログラム121に従って動作することでストレージシステム管理部として機能し、接続装置管理プログラム122に従って動作することで接続装置管理部として機能する。他のプログラムについても同様である。
さらに、プロセッサ13は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。プロセッサ13及びプログラムを含む管理計算機1は、これらの機能部を含む装置である。上記プログラムとプロセッサの関係、さらに、これらとこれらを含む装置との関係の説明は、他の装置及びシステム、つまり、ホスト計算機3、接続装置4〜6及びストレージシステム2において同様である。
不揮発記憶装置12は、この他、ストレージシステム管理テーブル100、ストレージシステムポート管理テーブル110、ストレージシステムプール管理テーブル120、ストレージシステム使用状況管理テーブル130、仮想ストレージシステムボリューム管理テーブル140、接続装置管理テーブル150、ホスト計算機管理テーブル160、ホスト接続性管理テーブル170、ストレージ間接続性管理テーブル180、デフォルト仮想値管理テーブル190を格納する。これらのテーブルの詳細は後述する。
本実施形態において、管理計算機1が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。情報は、データ記憶装置における対応するデータ記憶領域に格納される。この点は、他の装置(ストレージシステムを含む)において同様である。
図8は、ストレージシステム2のストレージシステム管理情報格納部221が格納する情報を示している。データI/Oプログラム2211は、計算機システム内のホスト計算機3とデータI/O用通信I/F25の接続された接続装置4を経由して通信を行い、ボリューム2221、シンプロビジョニングボリューム224のデータを送受信し、書き込みを行う。
プール管理プログラム2212は、シンプロビジョニングプール223のページ2231の管理、プールボリュームとしてのボリューム2221の管理、そしてシンプロビジョニングボリューム224へのページ2231割り当て管理を行う。ボリューム管理プログラム2213は、ボリューム2221及びシンプロビジョニングボリューム224を管理する。運用管理プログラム2214は、各種プログラムと連携してストレージシステム2の運用管理を行う。オペレーティングシステム2215は、各種プログラムの実行基盤であり、各種テーブルの管理基盤である。
ストレージシステム管理情報格納部221は、この他、ストレージシステムベンダ名管理テーブル200、ストレージシステム型名管理テーブル210、ストレージシステム製造番号管理テーブル220、ストレージシステムポート管理テーブル230、ボリューム管理テーブル240、シンプロビジョニングプール管理テーブル250、シンプロビジョニングボリューム管理テーブル260、メディア管理テーブル270、管理用通信I/Fアドレス管理テーブル280を格納している。これらテーブルの詳細は後述する。
図9は、ホスト計算機3の不揮発記憶装置32が格納している情報を示している。アプリケーション321は、ホスト計算機3が提供する機能やサービスを実行するために必要なプログラムである。エージェント322は、管理計算機1のホスト計算機管理プログラム123と通信し、ホスト計算機3の状態及び構成情報の設定を行う。オペレーティングシステム323は、アプリケーション321の各種プログラムの実行基盤であり、各種テーブルの管理基盤である。不揮発記憶装置32は、これらの他、ボリューム管理テーブル300、管理用通信I/Fアドレス管理テーブル310を格納している。これらテーブルの詳細は後述する。
図10は、接続装置4の不揮発記憶装置42が格納している情報を示している。データI/Oプログラム421は、データI/O用通信I/F45に接続された計算機システム内の計算機及び装置からのI/O要求を受け付け、不揮発記憶装置42内のテーブルを参照し、それらと通信を行う。
管理プログラム422は、不揮発記憶装置42内のテーブルの値を設定するインタフェースを提供する。オペレーティングシステム423は、各種プログラムの実行基盤であり、各種テーブルの管理基盤である。不揮発記憶装置42は、この他、接続機器管理テーブル400、ゾーン設定管理テーブル410、管理用通信I/Fアドレス管理テーブル420を格納している。これらテーブルの詳細は後述する。
図11は、本実施形態の管理計算機1におけるストレージシステム管理テーブル100の構成例を示す図である。ストレージシステム管理テーブル100は、計算機システム内のストレージシステム2を管理するためストレージシステム2に一意なIDであるストレージシステムID1001、ストレージシステムが出荷時に設定される値であるストレージシステムベンダ名1002、ストレージシステム型名1003、ストレージシステム製造番号1004の各カラムを有する。
これらの値は、管理計算機1によってストレージシステム2から接続装置6を経由して取得される、又は、管理者によって直接入力される。本実施形態において、対象を識別するための情報として、ID、名及び番号などが使用されるが、これらの呼び名は互いに置換可能である。
ストレージシステム管理テーブル100は、さらに、ホスト計算機3からSCSI Inquiryなどで要求される接続ポートやボリュームの情報取得要求などに応答するために用いる、デフォルト仮想ベンダ名1005、デフォルト仮想システム型名1006及びデフォルト仮想製造番号1007の各カラムを有する。これらカラムには、管理者により設定されたデフォルト仮想値管理テーブル190の値が複製されて格納され、管理者により変更される。管理者は、個別にこの値を設定してもよい。
ストレージシステム管理テーブル100は、さらに、ストレージシステム2を管理するための管理用通信I/Fアドレス1008のカラムを有する。このカラムの値は管理者により入力される。
ストレージシステム管理テーブル100のエントリは、計算機システム内にストレージシステム2が増設され、管理者によって追加指示がなされたときに追加される。ストレージシステム管理テーブル100のエントリは、ストレージシステム2を減設する際、管理者によって削除指示がなされ、一連の処理が終了した際に削除される。
図12は、本実施形態の管理計算機1におけるストレージシステムポート管理テーブル110の構成例を示す図であり、ストレージシステム管理テーブル100のストレージシステムID1001の値に応じて、各データI/O用通信I/F25の状態を管理する。
通常、複数のデータI/O用通信I/F25が実装されており、ストレージシステム内で一意の番号(データI/O用通信I/F番号1102)が1つのデータI/O用通信I/F25に割り当てられる。これら番号は、交替パスプログラム(マルチパスプログラム)を利用した複数経路を用いたストレージシステムへのアクセスに利用される。
データI/O用通信I/F25の用途1103は、例えば、ホストからのアクセス用又はストレージシステム間のアクセス用(マイグレーション用)である。ストレージシステム間のアクセスの場合に、各ポートがターゲット専用又はイニシエータ専用である場合には、ストレージシステム管理テーブル100は、それぞれのモードを管理する。用途1103のカラムには、管理者(ユーザ)がシステム構築時に設計した値を入力する。
データI/O用通信I/F番号1102はストレージシステム内で一意の番号であるが、複数のストレージシステム2を一つのストレージシステムとして管理する際には、データI/O用通信I/F番号1102の重複が発生する。
本実施形態の計算機システムにおいて、管理計算機1が一意の仮想的な番号(仮想データI/O用通信I/F番号1104)をストレージシステム2に割り当てる。この番号は接続装置6を経由し、ストレージシステム2に通知される。
ストレージシステムポート管理テーブル230の仮想データI/O用通信I/F番号2302に格納され、以降のストレージシステム2のホスト計算機3とのI/Oなどに利用される。データI/O用通信I/F25は接続装置4、接続装置5を経由した通信にて送信元および送信先を明らかにするために利用するポートIDが割り当てられている。
これはハードウェア出荷時に割り当てられたり、別途ツールで変更されたりする。また、一つのデータI/O用通信I/Fは複数の仮想ポートIDも付与することが可能であり、付与されている値をポートID1105、および仮想ポートID1106の各フィールドで管理している。
ストレージシステムポート管理テーブル110のエントリは、ストレージシステム管理テーブル100のエントリと同期して追加、削除される。以下の説明において、ポートIDという語は、特に指摘のない場合、ポートID1105(これを仮想ポートIDに対して実ポートIDとも呼ぶ)、仮想ポートID1106のいずれかを意味する。ポート管理上、実ポートIDと仮想ポートIDとは同列に扱うことができる。
図13は、本実施形態の管理計算機1におけるストレージシステムプール管理テーブル120の構成例を示す図であり、計算機システム内のストレージシステムのシンプロビジョニングプール223を管理する。1つ以上のストレージシステムにおいて共通して設定されるプール名1201、1つ以上のストレージシステムにより提供される全体容量1202、その使用容量1203のカラムを有する。
さらに、ストレージシステムプール管理テーブル120は、プールを構成する個々のストレージシステムのストレージシステム管理テーブル100におけるストレージシステムID1001を複製した値を1204のフィールドに格納し、それぞれの容量1205A、使用量1205B、IOPS(Input Output Per Second)1206Aのフィールドを有する。
さらに、ストレージシステムプール管理テーブル120は、そのストレージシステム2において使用量、IOPSが超えた場合に調整を行う値として、容量閾値1205C、性能閾値1206Bを有する。さらに、そのプールを構成するボリュームのボリュームID1207Aと個々の構成ボリュームの容量1207Bと使用量1207Cを有する。
ストレージシステムプール管理テーブル120のエントリは、管理者によりシンプロビジョニングプール223の作成指示が行われたときに追加され、削除指示が行われたときに削除される。ストレージシステムID1204に対応した値の構成ボリュームID1207Aのエントリは、ボリュームの追加、削除に対応して追加、削除される。
容量閾値1205C、性能閾値1206Bの値は、管理者により設定される。使用量1205B、IOPS1206A、使用量1207Cの値を取得するため、管理計算機1は、定期的に、ストレージシステム2に、接続装置6を経由して問い合わせ、ストレージシステム2から取得した値を、それらのフィールドに格納する。
図14は、本実施形態の管理計算機におけるストレージシステム使用状況管理テーブル130の構成例を示す図であり、ストレージシステム2毎の利用状況を管理する。ストレージシステム使用状況管理テーブル130は、ストレージシステム管理テーブル100のストレージシステムID1001と対応したストレージシステムID1301のカラムを有する。
ストレージシステム使用状況管理テーブル130は、さらに、ストレージシステムID1301により特定されるストレージシステムの、総容量1302、容量閾値1303、使用量1304の値を格納するカラムを有する。さらに、ストレージシステム内のメディアID1305に対応して、メディア種別1306、RAID構成1307、容量1308、使用量1309を有する。ストレージシステムID1301の値に対応した他の値を取得するため、定期的に管理計算機1がストレージシステム2に接続装置6を経由して問い合わせ、取得した値をそれらのフィールドに格納する。
図15は、本実施形態の管理計算機1における仮想ストレージシステムボリューム管理テーブル140の構成例を示す図であり、計算機システム内に存在する複数ボリュームを、それぞれに一意の番号を割り当てて管理する。各仮想ボリュームは、仮想ボリューム番号1401が割り当てられ、それに対応して他の項目情報が管理される。
容量1402は仮想ボリュームのボリューム容量を、使用量1403は仮想ボリュームの使用量を、ボリュームタイプ1404は、仮想ボリュームが通常ボリューム、シンプロビジョニングボリューム、プールボリュームのいずれなのかを示す。
仮想ストレージシステムボリューム管理テーブル140は、さらに、実際にボリュームが存在するストレージシステムのID1405、そのストレージシステム内(のみ)でボリュームを一意に特定する識別情報であるボリュームID1406、ストレージシステム2内でRAIDグループを特定するメディアID1407、仮想ポート番号1408A、交替仮想ポート番号1408Bのカラムを有する。
仮想ボリュームID1401の値は、ボリューム作成時に割り当てられ、本計算機システム(全ストレージシステム2)において共通の番号であり、ボリュームを計算機システム内で一意に特定する識別情報である。容量1402とボリュームタイプ1404の値は、ボリューム作成時に管理者により指定される。場合により、メディアID1407の値が指定され、指定された内容に応じてボリューム作成の指示がストレージシステム2になされる。
仮想ポート番号1408A、交替仮想ポート番号1408Bの値は、そのボリュームにアクセスするために、計算機システム内のストレージシステム2のどのデータI/O用通信I/F25からアクセスするかを、管理者が指定する際に設定される。仮想ポート番号1408A、交替仮想ポート番号1408Bの値は、仮想データI/O用通信I/F番号の値が割り当てられる。
図16は、本実施形態の管理計算機1における接続装置管理テーブル150の構成例を示す図であり、接続装置ID1501、接続装置の装置名1502、接続装置の管理用通信I/Fアドレス1503、そして接続装置の用途1504のカラムを有する。ホストとの接続装置は、ホスト計算機とストレージシステムを接続し、マイグレーション用の接続装置は、ストレージシステムを接続する。各カラムの値は、管理者により入力される。管理計算機1は、接続装置4、5、6との管理通信のために、それを参照する。
図17は、本実施形態の管理計算機1におけるホスト計算機管理テーブル160の構成例を示す図である。このテーブル160は、ホストID1601、ホスト計算機3の管理用通信I/FアドレスであるホストIP1602、データI/O用I/FアドレスのポートIDであるホスト側ポートID1603のカラムを有する。
これらカラムの値は、いずれも管理者により入力され、ホスト計算機3との管理通信が必要な際参照される。管理計算機1は、ホストIP1602の値が入力された後、ホスト計算機3のエージェント322又はオペレーティングシステム323へ、ホスト側ポートID1603を問い合わせてもよい。
図18は、本実施形態の管理計算機1におけるホスト接続性管理テーブル170の構成例を示す図であり、ホスト計算機3のデータI/O用通信I/F35から接続可能なストレージシステム2を管理するものである。このテーブル170は、接続装置接続性1702、接続可能ポートID1703及び接続性1704のカラムを有する。
接続装置接続性1702は、ホスト計算機のデータI/O用通信I/F35のポートID1701と接続装置4との間の接続性の確認状態を格納する。接続性1704は、ホスト計算機のデータI/O用通信I/F35のポートID1701と接続可能ポートID1703との接続性の確認状態を格納する。
管理計算機1は、接続装置6を経由して接続装置4と通信し、ホスト計算機3の接続状態の問い合わせを行い、取得した情報を接続装置接続性1702に格納する。
接続可能ポートID1703は、ストレージシステム管理テーブル100の用途1103がホスト用となっているエントリのポートID1105又は仮想ポートID1106の複製一覧を格納している。管理計算機1は、ストレージシステム2にホスト計算機3のポートID1701を通知し、ストレージシステム2から当該ポートIDとの接続が可能か接続装置4に問い合わせをさせ、状態を取得する。
確認方法は、ストレージシステム2経由でなく、ホスト計算機3のエージェント322に接続可能ポートID1703を通知し、接続が可能か接続装置4に問い合わせをさせ、状態を取得してもよい。
接続装置接続性1702は、エントリのホスト計算機3がストレージシステム2と接続可能な接続装置4に接続されていることを確認するためのフィールドであり、管理計算機1は、ホスト計算機3が接続されていない場合には、エラーを出力する。接続性1704は、ポートにより接続されていない場合があることを想定し、プロビジョニングやマイグレーションのアクセスポート範囲を限定するために利用する。
図19は、本実施形態の管理計算機1におけるストレージ間接続性管理テーブル180の構成例を示す図であり、ストレージシステム2間のデータI/O用通信I/Fの接続状況を管理する。図19のテーブル180は、1つのポートに対応するストレージ間接続性管理テーブルの例を示しており、エントリの各ポートと上記1つのポートとの間の接続性に関する情報を格納する。例えば、ストレージシステムIDが3である、ストレージシステムのポートに対応するテーブルである。
ストレージ間接続性管理テーブル180は、ストレージシステムID1801、そのIDに対応したストレージシステム2のデータI/O用通信I/F25のポートID1802、接続性1803のカラムを有している。
ストレージシステム(のポート)間の接続性1803の確認のため、管理計算機1は、ストレージシステム管理テーブル100の用途1103がマイグレーション用となっている各エントリのポートID1105又は仮想ポートID1106を、そのポートのストレージシステム2に通知し、ストレージシステム2から接続装置5に、当該ポートID(ポートID1105又は仮想ポートID1106)と他のストレージシステムのポートとの接続が可能か否かの問い合わせをさせ、状態(接続の可否)の情報をストレージシステム2から取得する。
図20は、本実施形態の管理計算機1におけるデフォルト仮想値管理テーブル190の構成例を示す図であり、計算機システム内のストレージシステム2が、ホスト計算機3に対して通知するデフォルト値を管理している。デフォルト仮想ベンダ名1901、デフォルト仮想システム型名1902、デフォルト仮想製造番号1903の値は、いずれも初期設定で管理者により入力される。
図21は、本実施形態のストレージシステム2におけるストレージシステムベンダ名管理テーブル200の構成例を示す図であり、ホスト計算機3に対して応答する値として、ボリューム管理テーブル240の仮想ベンダ名2406Aに複製する元となる値を格納する。ストレージシステム2を計算機システムに導入する際、管理計算機1から接続装置6を経由して送信されたデフォルト仮想ベンダ名1901を、運用管理プログラム2214が格納する。
図22は、本実施形態のストレージシステム2におけるストレージシステム型名管理テーブル210の構成例を示す図であり、ホスト計算機3に応答する値として、ボリューム管理テーブル240の仮想システム型名2406Bに複製する元となる値を格納する。ストレージシステム2を計算機システムに導入する際、管理計算機1から接続装置6を経由して送信されたデフォルト仮想システム型名1902を、運用管理プログラム2214が格納する。
図23は、本実施形態のストレージシステム2におけるストレージシステム製造番号管理テーブル220の構成例を示す図であり、ホスト計算機3に応答する値として、ボリューム管理テーブル240の仮想製造番号2406Cに複製する元となる値を格納する。ストレージシステム2を計算機システムに導入する際、管理計算機1から接続装置6を経由して送信されたデフォルト仮想製造番号1903を、運用管理プログラム2214が格納する。
図24は、本実施形態のストレージシステム2におけるストレージシステムポート管理テーブル230の構成例を示す図であり、ストレージシステム2におけるデータI/O用通信I/F25を管理するテーブルである。データI/O用通信I/F番号2301、仮想データI/O用通信I/F番号2302、用途2303、ポートID2304、仮想ポートID2305のカラムを有する。
データI/O用通信I/F番号2301はハードウェア固有の値を保持しており、これに対して計算機システム内で一意の仮想データI/O用通信I/F番号2302が割り当てられる。管理計算機1が、ストレージシステムポート管理テーブル110の仮想データI/O用通信I/F番号1104に基づいて計算機システム内で一意になるように作成した値を、接続装置6経由でストレージシステム2に送信し、運用管理プログラム2214が、その値を格納する。
用途2303の値は管理者により設定され、ホスト用かマイグレーション用かを示す値が格納される。ポートID2304は、データI/O用通信I/Fのハードウェアに設定されている固有の値を格納している。仮想ポートID2305はポートIDに仮想的に割り当てられたIDであり、ハードウェア固有のポートIDとは異なるポートIDである。
図25は、本実施形態のストレージシステム2におけるボリューム管理テーブル240の構成例を示す図であり、ストレージシステム2におけるボリュームの構成及び状態を管理するテーブルである。各エントリは、ボリュームID2401の値により一意に特定される。
容量2402は、ボリュームの容量を表す。タイプ2403は、通常ボリュームなのか、シンプロビジョニングボリュームなのか、シンプロビジョニングプールボリュームなのかを示す情報を保持する。メディアID2404は、ボリュームを作成したメディアのIDを格納する。仮想ボリューム番号2405は、計算機システム内で一意に定められ、ボリューム作成時に管理計算機1により割り当てられる番号を格納する。
仮想ベンダ名2406A、仮想システム型名2406B、仮想製造番号2406C、仮想ポート番号2407A、交替仮想ポート番号2407Bの値は、ホスト計算機3からのボリュームやポートの問い合わせに対して利用される。ポート番号2408A、交替ポート番号2408Bは、実際にI/Oに利用するポート及び交代ポートの番号を格納する。キャッシュ可否2409は、ホスト計算機からのI/O要求に対してキャッシュ可否を示す値を格納する。
テーブルのエントリは、管理計算機1からのボリューム作成要求に応じて作成される。ボリュームID2401は、新規ボリューム作成時にストレージシステム2が一意な値を割り当てる。容量2402、タイプ2403は、管理者が指定した値を格納する。メディアID2404は指定されれば指定されたメディアに対してボリュームを作成する。指定されなければ任意のメディアからボリュームを作成し、作成したメディアのIDを格納する。
仮想ボリューム番号2405のカラムは、管理計算機1が割り当てた仮想ボリュームを計算機システムにおいて一意に特定する値を格納し、管理計算機1から通知された仮想ボリューム番号2405は、計算機システム内で共通のボリュームの識別情報である。
仮想ベンダ名2406A、仮想システム型名2406B、仮想製造番号2406Cのカラムは、ストレージシステムベンダ名管理テーブル200のデフォルト仮想ベンダ名2002、ストレージシステム型名管理テーブル210のデフォルト仮想システム型名2102、ストレージシステム製造番号管理テーブル220のデフォルト仮想製造番号2202の値を格納する。若しくは、管理者が他のストレージシステムの値を引き継ぎたい場合、その値を格納してもよい。
仮想ポート番号2407A、交替仮想ポート番号2407Bは管理者により指定される。ストレージシステム2は、ストレージシステムポート管理テーブル230を参照し、仮想ポート番号2407A又は交替仮想ポート番号2407Bに対応する仮想データI/O用通信I/F番号2302が存在すれば、対応するデータI/O用通信I/F番号2301をポート番号2408A又は交替ポート番号2408Bに格納する。
対応する仮想データI/O用通信I/F番号2302が存在しなければ、ストレージシステム2は、用途2303がマイグレーション用であるエントリのデータI/O用通信I/F番号2301の値をポート番号2408A又は交替ポート番号2408Bに格納する。エントリのポート番号2408Aと交替ポート番号2408Bのいずれのポートの用途2303もホスト用の場合、ストレージシステム2は、そのエントリのキャッシュ可否2409のフィールドに、キャッシュ可を示す値を格納する。それ以外の場合には、不可を示す値をキャッシュ可否2409のフィールドに格納する。
図26は、本実施形態のストレージシステム2におけるシンプロビジョニングプール管理テーブル250の構成例を示す図であり、シンプロビジョニングプール223の構成を管理するテーブルである。このテーブル250は、プールID2501、総容量2502、使用量2503、構成ボリュームID2504、容量2505、使用量2506、ページ番号2507、状態2058のカラムを有する。
プールID2501は、ストレージシステム2の中で一意に定まる値で、管理計算機1でプール作成時に管理者により指定される。総容量2502は、プールIDに対応づけられている構成ボリュームの容量2505を合計した値である。使用量2503は、プールIDに対応付けられている構成ボリュームの使用量2506を合計した値である。
構成ボリュームID2504は、プールに対してボリューム管理テーブル240から選択されたボリュームのボリュームID2401を格納する。容量2505は、選択されたボリュームID2401に対応するエントリの容量2402の複製値を格納する。使用量2506は、初期値としてゼロを格納する。
また、ボリュームをページ2231に分割してシンプロビジョニングボリューム224に割り当てるため、複数のページのそれぞれに割り当てられた番号がページ番号2507に格納され、さらに、状態2508のフィールドが、ページの割り当て状態を示す値を格納する。ホスト計算機3からの書き込み要求によりシンプロビジョニングボリュームにページが必要になれば、状態2508が未割当のページが割り当てられ、そのページの状態2508が割当済に変更される。さらに、割り当てられたページのサイズが、使用量2506に追加される。
図27は、本実施形態のストレージシステム2におけるシンプロビジョニングボリューム管理テーブル260の構成例を示す図であり、シンプロビジョニングボリューム224を構成するページ2231を示す。このテーブル260は、ボリュームID2601、最大容量2602、使用量2603、プールID2604、構成ボリュームID2605、ページ番号2606のカラムを有する。
管理計算機1からのボリューム作成指示により、ボリューム管理テーブル240にエントリが追加される。タイプ2403が、シンプロビジョニングである場合、シンプロビジョニングボリューム管理テーブル260にエントリが追加される。ボリュームID2601は、ボリューム管理テーブル240のボリュームID2401から複製された値を格納する。
最大容量2602は、ボリューム管理テーブル240の容量2402から複製された値を格納する。使用量2603の初期値はゼロである。ホスト計算機3からの書き込み処理により割り当てページが必要になる度に、そのプールID2604のページにおいて状態2508が未割当のページが割り当てられる。構成ボリュームID2504とページ番号2507の値が複製されて、構成ボリュームID2605とページ番号2606に格納される。
図28は、本実施形態のストレージシステム2におけるメディア管理テーブル270の構成例を示す図であり、メディア222の状態を管理する。このテーブル270は、メディアID2701、メディア種別2702、RAID構成2703、容量2704、使用量2705のカラムを有する。
メディアID2701の値は、ストレージシステム2にメディア222が追加される際、一意の値が割り当てられる。メディア種別2702には、追加したメディアに応じてSSD、SAS、SATAなどの値が管理者により入力される。RAID構成2703は、構築したRAID構成に応じて管理者により入力された値を格納する。容量2704は、管理者により入力された導入したメディアのサイズを格納する。ストレージシステム2は、各メディアを精査して容量を集計してもよい。使用量2705の初期値はゼロで、ボリューム作成時に割り当てた容量分の使用量を加算して格納する。
図29は、本実施形態のストレージシステム2における管理用通信I/Fアドレス管理テーブル280の構成例を示す図であり、管理用通信I/F26のアドレス2801が格納されている。計算機システムに導入するときに、管理者がこの値を設定する。
図30は、本実施形態のホスト計算機3における接続先ストレージシステムボリューム管理テーブル300の構成例を示す図である。このテーブル300は、ホスト計算機3に割り当てられ、読み書き可能なボリュームの情報を格納している。このテーブルは、ID3001、ボリュームID3002、システムベンダ名3003、システム型名3004、システム製造番号3005、ポートID3006、データI/O用通信I/F番号3007のカラムを有する。
ID3001は、ホスト計算機3内において、各ボリュームに割り当てられる一意の識別子である。ポートID3006はアクセス先のストレージシステム2のポートID(仮想ポートID又は実ポートID)であり、その値は管理者が設定してもよく、管理計算機1がエージェント322に通知した値を格納してもよい。ホスト計算機3のオペレーティングシステム323は、ポートID3006を参照しストレージシステム2にアクセスする。
オペレーティングシステム323は、管理計算機1から、計算機システム内でボリュームを一意に特定する仮想ボリューム番号を取得し、ボリュームID3002のフィールドに格納する。オペレーティングシステム323は、ボリュームID3002で特定されるボリュームの情報を取得するための情報取得要求を、ストレージシステム2(のポートID3006の値が示すポート)に、接続装置4を経由して送信する。
オペレーティングシステム323は、この要求に対してストレージシステム2から取得した情報を、システムベンダ名3003、システム型名3004、システム製造番号3005、データI/O用通信I/F番号3007のフィールドに格納する。データI/O用通信I/F番号3007は、ストレージシステム2の仮想データI/O用通信I/F番号1104(計算機システム内で一意のデータI/O用通信I/F番号)の値を格納する。
本構成において、システムベンダ名3003、システム型名3004、システム製造番号3005は、それぞれ、全てのストレージシステム2に共通のデフォルト値(同一値)2002、2102、2202を格納する。これらの値は、全てのストレージシステム2に共通(同一)のストレージ識別情報である。
ホスト計算機3のオペレーティングシステム323及び交替パスプログラムは、ボリュームの識別情報及びそのボリュームが属するストレージシステムの識別情報を使用して、ボリュームを特定する。これらがシステム動作中に変化すると、ホスト計算機3は、それが同一のボリュームであると認識することができず、当該ボリュームへのアクセス(データ読み出し又は書き込み)ができなくなる。
例えば、本構成において、システムベンダ名3003、システム型名3004、システム製造番号3005のいずれかが変更されると、ホスト計算機3は、そのボリュームが異なるストレージシステムに属するボリュームであり、異なるボリュームであると認識する(同一のボリュームであると認識できない)。
本システムは、複数のストレージシステム2が提供するボリュームに、複数ストレージシステム2内で共通で一意の識別情報である、仮想ボリューム番号を割り当てる。さらに、各ストレージシステム2は、個別の識別情報の他、複数ストレージシステム2で同一のデフォルトストレージ識別情報(上記デフォルト値)を保持し、ホスト計算機3には、ボリューム情報として、このデフォルトストレージ識別情報が与えられる。
ストレージ識別情報とボリューム識別情報が同一であれば、ホスト計算機3は、異なるストレージシステムに存在するボリュームに通常アクセスすることができる。つまり、ホスト計算機3は、複数のストレージシステム2を1つのストレージシステムと見なし、それぞれのストレージシステム2のボリュームに不具合なくアクセスすることができる。
例えば、ストレージシステム2Aからストレージシステム2Bにボリュームがマイグレーションした場合、ホスト計算機3は、同一のボリューム識別情報とストレージ識別情報によって、マイグレーション先のボリュームにアクセスすることができる。この他、ホスト計算機3は、ストレージシステム2Aに存在するボリュームの読み書きを、ストレージシステム2Aのポートを介して行うことも、ストレージシステム2Bのポートを介して行うこともできる(外部接続技術を使用したこの方法の詳細は後述する)。
本構成例において、共通ストレージシステム識別情報は、システムベンダ名3003、システム型名3004、システム製造番号3005を含むが、共通ストレージシステム識別情報はこの内の一部のみを含む又は他の情報を含むことができる。ホスト計算機3がボリュームの特定に必要とする情報は設計により決定され、共通ストレージシステム識別情報は、その設計に従い決定される。典型的には、システム型名及びシステム製造番号が含まれる。
図31は、本実施形態のホスト計算機3における管理用通信I/Fアドレス管理テーブル310の構成例を示す図であり、管理用通信I/F36のアドレスを格納している。計算機システムに導入するときに、管理者がこの値を設定する。
図32は、本実施形態の接続装置4、5、6における接続機器管理テーブル400の構成例を示す図であり、接続装置4、5、6のデータI/O用通信I/F45への接続状態を管理するテーブルである。このテーブル400は、接続番号4001、ポートID4002、ランプ状態4003のカラムを有する。
接続番号4001はデータI/O用通信I/F45のハードウェアに割り当てられる番号である。接続装置4、5、6は、機器が物理的に接続された後、その接続された機器に割り当てられたポートIDを取得し、ポートID4002に格納する。ランプ状態4003の値は、機器が接続されてポートIDが取得できたらONに設定され、以外はOFFに設定されている。接続装置の管理プログラム422はランプ状態4003を監視しており、ONであればデータI/O用通信I/F45に接続されたリンクランプ48をONにし、OFFであればリンクランプ48をOFFにする。
図33は、本実施形態の接続装置4、5におけるゾーン設定管理テーブル410の構成例を示す図であり、特定のポートID間での通信を他のポートIDから参照することを禁止するゾーン設定を管理するテーブルである。このテーブル410は、ゾーンID4101、ポートID4102のカラムを有する。
管理計算機1からのゾーン作成指示により、管理プログラム422は、ゾーン設定管理テーブル410のエントリを作成し、接続装置内で一意のゾーンID4101、ゾーンに参加するポートID4102を、ゾーン設定管理テーブル410に格納する。データI/Oプログラム421はこれを参照し、あるポートIDからの要求をゾーンに属しているポートIDにのみ転送する。
図34は、本実施形態の接続装置4、5、6における管理用通信I/Fアドレス管理テーブル420の構成例を示す図であり、管理用通信I/F46のアドレスが格納されている。計算機システムに導入するときに管理者が、このテーブル420に値を設定する。
図35は、本実施形態の計算機システムにおけるホスト計算機3追加の処理フローを示す図である。ホスト計算機3を接続装置4に配線接続すると、接続装置4のデータI/Oプログラム421はその接続を検出し、接続元のポートID、具体的にはホスト計算機のポートID3102をホスト計算機3から取得し、接続機器管理テーブル400のポートID4002にそれを格納し、ランプ状態4003の値をONに設定する(S1001)。
次に、管理者は、ホスト計算機3の入力装置39及び画像出力装置38を利用して、ホスト計算機3の管理用通信I/Fアドレス3101とポートID3102を確認する(S1002)。管理者は、確認した情報を管理計算機1の入力装置19を用いて入力する(S1003)。
管理計算機1のホスト計算機管理プログラム123は、入力された情報をホスト計算機管理テーブル160のホストIP1602とホスト接続性管理テーブル170のポートID1701に格納する。ホスト計算機管理プログラム123は、ストレージシステムポート管理テーブル110のポートID1105と仮想ポートID1106を一覧化し、ホスト接続性管理テーブル170の接続可能ポートID1703に格納する(S1004)。
その後、ホスト計算機3の接続装置4に対する接続の確認のため、ホスト計算機管理プログラム123は、接続装置管理テーブル150の用途1504がホスト用となっているエントリ(接続装置)の管理用通信I/Fアドレス1503に対して、入力されたホスト計算機3のポートIDを、接続確認要求と共に送信する。
接続装置4の管理プログラム422は、受信したポートIDを、接続機器管理テーブル400のポートID4002から検索し、その有無を応答する。受信したポートIDが接続機器管理テーブル400に存在している場合、そのポート(ホスト計算機3)が、接続装置4に接続していることを意味する。この接続確認は、接続装置、例えばFCスイッチの管理通信用I/Fに実装されている物理ポートの接続状態の一覧取得とそこからのポートIDの検索機能により実現されてもよい(S1005)。
管理計算機1のホスト計算機管理プログラム123は、受信した応答を確認する(S1006)。ホスト計算機3のポートが接続装置4に接続されていなければ、ホスト計算機管理プログラム123は、ホスト接続性管理テーブル170の接続装置接続性1702に接続エラーを示す値を格納し、画像出力装置18にエラーを出力し処理を終了する(S1010)。
ポートが接続装置4に接続されていれば、ホスト計算機管理プログラム123は、接続装置接続性1702の値を確認済みに変更する。接続装置管理プログラム122は、該当するエントリの接続可能ポート1703とホストのポートID1701のゾーン作成要求を接続装置4に送信する。接続装置4の管理プログラム422は、受信したポートID群をゾーン設定管理テーブル410のポートID4102に格納し、管理計算機1にゾーン作成を応答する(S1007)。ゾーン作成処理(S1007)については、省略してもよい。
管理計算機1のストレージシステム管理プログラム121は、ストレージシステム2とホスト計算機3との間の接続確認のため、ストレージシステム管理テーブル100の管理用通信I/Fアドレス1008を参照し、全部のエントリのストレージシステム2のアドレスに、ホスト計算機3のポートID1701を送信する。図35においては、2つのストレージシステム2A、2Bに要求する例を示す。
各ストレージシステム2の運用管理プログラム2214は、受信したホスト計算機3のポートIDに対して、自身の各ポートが接続することができるかの確認を接続装置4に要求する。具体的には、運用管理プログラム2214は、追加されたホスト計算機のポートID並びに自身のポートID及び仮想ポートIDの一覧を、接続確認要求と共に接続装置4に送信する。
接続装置4は、接続機器管理テーブル400を参照し、受信したホスト計算機3のポートID並びにストレージシステム2のポートID及び仮想ポートIDが、存在するかを確認する(S1008)。接続装置4は、さらに、接続可否判定のために、ゾーン設定管理テーブル410を参照する。
ストレージシステム2のポート(物理ポート又は仮想ポート)は、ホスト計算機3のポートIDと共にそのIDが接続機器管理テーブル400に存在し、かつ、それらがゾーン設定管理テーブル410において同一ゾーンに属している場合に、ホスト計算機3のポートに接続可能である。いずれかの条件が満たされていない場合、それらは接続不可である。
接続装置4は、ストレージシステム2の各ポート(ポートID又は仮想ポートID)と追加されたホスト計算機3のポートとの接続可否の応答をストレージシステム2に返す。この接続確認は、FibreChannelでの指定ポートのディスカバリ機能で実現されてもよい。管理計算機1は、接続装置4に直接に、ストレージシステム2とホスト計算機3の接続確認を指示してもよい。
管理計算機1のストレージシステム管理プログラム121は、ストレージシステム2から受信した各ポートの確認結果を、ホスト接続性管理テーブル170の接続性1704のカラムに順次格納し、ホスト計算機追加処理を終了する(S1009)。接続装置4は、ストレージシステム2を介することなく、管理計算機1に確認結果を送信してもよい。このように、ホスト計算機3の追加においてシステムが接続確認を行うことで、ホスト計算機導入における配線ミスを防止し、管理者の作業負荷を低減することができる。さらに、ボリューム作成及びボリュームマイグレーションにおいて、ホスト計算機3から接続しているストレージシステム2を自動選択することができ、管理者の運用時の負荷を低減することができる。
図36は、本実施形態の計算機システムにおけるストレージシステム2追加処理のフローを示す図である。ストレージシステム2を導入する際、管理者は、ホスト接続用のポートを接続装置4に、マイグレーション用のポートを接続装置5に配線接続する。
接続装置4、5のデータI/Oプログラム421は、それぞれ接続を検出し、接続元のポートID、具体的にはストレージシステムのポートID2304又は仮想ポートID2305をストレージシステム2から取得し、それを接続機器管理テーブル400のポートID4002に格納し、ランプ状態4003の値をOFFからONに変更する(S1101、S1102)。
次に、管理者は、ストレージシステム2の入力装置29、画像出力装置28を利用して、管理用通信I/Fアドレス2801、ベンダ名2001、システム型名2101、製造番号2201を確認する(S1103)。
管理者は、確認したアドレス、ベンダ名、システム型名及び製造番号を、管理計算機1の入力装置19を用いて入力する。具体的には、管理者は、ストレージシステム管理テーブル100に新しいエントリを追加し、管理用通信I/Fアドレス1008、ストレージシステムベンダ名1002、ストレージシステム型名1003、ストレージシステム製造番号1004に、情報を入力する(S1104)。
管理計算機1の運用管理プログラム124は、ストレージシステム2の管理用通信I/Fアドレス1008に対して、ポートIDの問い合わせを実行する。ストレージシステム2の運用管理プログラム2214は、ストレージシステムポート管理テーブル230の各エントリの各フィールドの値を返す。
管理計算機1の運用管理プログラム124は、受信したストレージシステムポート管理テーブル230の内容を、ストレージシステムポート管理テーブル110に格納する。具体的には、データI/O用通信I/F番号2301の値をデータI/O用通信I/F番号1102に、用途2303の値を用途1103に、ポートID2304の値をポートID1105に、仮想ポートID2305の値を仮想ポートID1106に、それぞれ格納する。
運用管理プログラム124は、受信した各エントリに対して、仮想データI/O用通信I/F番号を割りあて、仮想データI/O用通信I/F番号1104のフィールドに格納する。さらに、割り当てた仮想データI/O用通信I/F番号をストレージシステム2に送信する。ストレージシステム2の運用管理プログラム2214は、受信した仮想データI/O用通信I/F番号を、仮想データI/O用通信I/F番号2302のフィールドに格納する。
その後、運用管理プログラム124は、ストレージシステムポート管理テーブル110の用途1103がホスト用になっているエントリのポートID1105、仮想ポートID1106を一覧化して、ホスト接続性管理テーブル170の接続可能ポートID1703に登録する。さらに、各エントリの接続性1704を、未確認に設定する。
運用管理プログラム124は、さらに、ストレージ間接続性管理テーブル180にエントリを追加し、ストレージシステムポート管理テーブル110の用途1103がマイグレーション用になっているエントリのポートIDを一覧化し、それらをポートID1802に格納する。さらに、各エントリの接続性1803を、未確認に設定する。
次に、管理計算機1の接続装置管理プログラム122が、ホスト接続性管理テーブル170の接続性1704が未確認であるエントリについて接続装置4に、ストレージ間接続性管理テーブル180の接続性1803が未確認であるエントリについて接続装置5に、接続確認を要求する。
接続装置4、5による確認方法(S1105、S1106)は、S1005で説明した手順と同様であり、接続機器管理テーブル400のポートID4002において受信したIDを検索し、その有無を応答する。接続装置管理プログラム122は、接続装置4からの確認結果を接続性1704へ、接続装置5からの確認結果を接続性1803へ、それぞれ格納する。この接続確認は、追加されたストレージシステム2と接続装置4、5の接続の確認である。接続装置管理プログラム122は、接続性1704、1803のカラムにおいて、正常な接続が確認されたポートのフィールドに、“物理接続確認済み”(図18、19において不図示)を示す値を格納する。
接続装置管理プログラム122は、接続性1803の内容を確認し(S1107)、接続不可であれば(S1107:NO)、エラーを出力して終了する(S1116)。接続装置管理プログラム122は接続性1704の値を確認し(S1107)、新しく追加したポートID(仮想ポートIDを含む)のすべてが接続不可であれば(S1107:NO)、エラーを出力して終了する(S1116)。
接続性に問題がなければ(S1107:YES)、管理計算機1の接続装置管理プログラム122は、接続装置4のゾーン設定を行うため、ホスト接続性管理テーブル170のポートID1701と接続可能ポートID1703の一覧を接続装置4へ送信し、接続装置4はゾーンを作成する(S1108)。接続装置管理プログラム122は、ストレージ間接続性管理テーブル180のポートID1802の一覧を接続装置5へ送信し、接続装置5はゾーンを作成する(S1109)。S1108、S1109の手順は、S1007で説明した手順と同様である。ゾーン作成処理(S1108、S1109)は、実施しなくてもよい。
管理計算機1のストレージシステム管理プログラム121は、ストレージシステム管理テーブル100の管理用通信I/Fアドレス1008を参照し、ホスト接続性管理テーブル170の接続性1704(ホストポートとストレージポートの接続性)が”物理接続確認済み”であるエントリのホスト計算機3のポートID1701を、そのエントリのストレージシステム2の管理用通信I/Fアドレスに送信する。
ストレージシステム管理プログラム121は、ストレージシステムポート管理テーブル110を参照して、ホスト接続性管理テーブル170のエントリからストレージシステム管理テーブル100のエントリ(管理用通信I/Fアドレス)を特定することができる。
ストレージシステム2の運用管理プログラム2214は、受信したポートIDが示すホスト計算機3のポートに対して、自身の各ポート(ポートID又は仮想ポートIDで特定されるポート)が接続することができるかの確認を、接続装置4に要求する。この要求の方法は、ホスト計算機3の追加処理における要求と同様である。
接続装置4は、ストレージシステム2からの確認要求に応答して、接続確認を実行する。接続装置4による接続確認の方法は、ホスト計算機3の追加処理におけるS1008と同様である。接続装置4は、ストレージシステム2の各ポートについての接続可否応答を、ストレージシステム2に返す(S1110)。
ストレージシステム2は、接続装置4から受信した接続可否の確認結果を、管理計算機1に返す。管理計算機1のストレージシステム管理プログラム121は、受信したストレージシステム2のポートの接続性確認結果を、ホスト接続性管理テーブル170の接続性1704に順次格納する(S1111)。
次に、管理計算機1は、ストレージシステム間の接続確認処理を行う。管理計算機1のストレージシステム管理プログラム121は、ストレージシステム管理テーブル100の管理用通信I/Fアドレス1008のカラムを参照して新たに追加されたストレージシステム2の管理用通信I/Fアドレスを特定する。
ストレージシステム管理プログラム121は、ストレージ間接続性管理テーブル180の接続性1803が”物理接続確認済み”であるエントリのポートID1802の値と、そのテーブル180の対応ポート(新たに追加されたストレージシステムのマイグレーション用ポート)のポートIDとを、接続確認要求と共に、特定した管理用通信I/Fアドレスに送信する。図19を参照して説明したように、ストレージ間接続性管理テーブル180は、1つのマイグレーション用ポートの他のストレージシステムのマイグレーション用ポートとの接続性の情報を格納している。
新たに追加されたストレージシステム2の運用管理プログラム2214は、受信した自身のマイグレーション用ポートIDについて、受信した他のストレージシステムの各ポートに接続することができるか否かの確認を、接続装置5に要求する。この要求は、追加されたストレージシステムに送信された上記ポートIDを伴う。
接続装置5の管理プログラム422は、受信したマイグレーション用ポート間の接続確認を行う。その方法は、図35を参照して説明したフローチャートにおけるS1005と同様であり、例えば、接続機器管理テーブル400におけるポートIDの存在の有無により接続性の可否を判定する。管理プログラム422は、接続可否応答をストレージシステム2に返す(S1112)。
ストレージシステム2は、管理計算機1に、接続装置5から受信した結果を返す。管理計算機1のストレージシステム管理プログラム121は、受信した各エントリの確認結果を、ストレージ間接続性管理テーブル180の接続性1803のフィールドに順次格納する(S1113)。ストレージシステム2は、管理計算機1に確認結果を転送する。本構成において、接続装置4、5は、接続確認結果をストレージシステム2を介して管理計算機1に送信するが、直接にそれらを管理計算機1に送信してもよい。管理計算機1は、接続装置4、5に直接にホスト計算機3とストレージシステム2の間の接続及びストレージシステム2間の接続の確認を指示してもよい。
正常な接続が確認できた(正常接続の確認結果を受信した)後、ストレージシステム管理プログラム121は、追加されたストレージシステム2に、デフォルト仮想ベンダ名2002としてデフォルト仮想ベンダ名1901を、デフォルト仮想システム型名2102としてデフォルト仮想システム型名1902を、デフォルト仮想製造番号2202としてデフォルト仮想製造番号1903、仮想データI/O用通信I/F番号2302として仮想データI/O用通信I/F番号1104を送信する。これらのデフォルト値は、上述のように、追加されたストレージシステムが、他のストレージシステムと一体のストレージシステムとして機能することを可能とする。上記デフォルト値は、追加されたストレージシステム2の接続確認前に与えてもよい。
ストレージシステム2の運用管理プログラム2214は、受信した値をデフォルト仮想ベンダ名2002、デフォルト仮想システム型名2102、デフォルト仮想製造番号2202、仮想データI/O用通信I/F番号2302のフィールドにそれぞれ格納する(S1115)。
ストレージシステム管理プログラム121は、ストレージシステム管理テーブル100のデフォルト仮想ベンダ名1005、デフォルト仮想システム型名1006、デフォルト仮想製造番号1007、ストレージシステムポート管理テーブル110の仮想データI/O用通信I/F番号1104のそれぞれに、割り当てた値を格納し、ストレージシステム2の追加処理を終了する(S1114)。
このように、本実施形態においては、ホスト計算機3へのサービスを停止することなく、ストレージシステム2を容易に追加することができる。また、ストレージシステム2の追加においてシステムがストレージシステム間の接続確認及びホスト計算機との接続確認を行うことで、ストレージシステム導入(スケールアウト)における配線ミスを防止し、システムの動作中のエラー発生を防ぐことができる。システムが接続確認を行うことで、管理者の作業負荷を低減することができる。
図37は、本実施形態の計算機システムにおけるストレージシステム2の削除の処理フローを示す図である。本例は、ストレージシステム2Aを計算機システムから削除する。まず、管理者は管理計算機1の運用管理プログラム124からストレージシステム2Aの削除指示を行う(S1201)。
管理計算機1のストレージシステム管理プログラム121は、ストレージシステム使用状況管理テーブル130を参照し、使用量1304の合計と削除指示のあったストレージシステム2Aを除く総容量1302の合計を比較する(S1202)。使用量1304の合計のほうが大きければ(S1202:NO)、運用管理プログラム124は、画像出力装置18にエラーを出力し終了する(S1209)。
残りの総容量1302の方が大きい場合(S1202:YES)、ストレージシステム管理プログラム121は、仮想ストレージシステムボリューム管理テーブル140を参照し、ストレージシステムID1405が削除指示のあったストレージシステム2AのIDであるエントリのボリュームを抽出し、使用量1403が小さい順にソートする(S1203)。この順序は、マイグレーションの実行順序である。
マイグレーションの順序決定の様々な手法が考えられる。基準となる値はストレージシステム2、ホスト計算機3、接続装置4、接続装置5で取得できる値であって、管理計算機1が接続装置6を経由して収集することができる値であれば、本例と異なる値でもよい。
ストレージシステム管理プログラム121は、ストレージシステム2Aに、上記マイグレーション順序において、各ボリュームのマイグレーションを、順次、指示する。ストレージシステム2Aは、指示されたボリュームをストレージシステム2Bに移行する(S1204)。
ストレージシステム2A、2Bのボリューム管理プログラム2213は、ストレージシステム2Aの対象のボリュームのデータを、ストレージシステム2Bのボリュームに複製する。ストレージシステム2A、2Bのボリューム管理プログラム2213は、それぞれ、ボリューム管理テーブル240の該当エントリを削除及び追加する。さらに、それらは、それぞれ、ストレージシステムポート管理テーブル230の対応仮想ポートIDを削除及び追加する。
ストレージシステム管理プログラム121は、ストレージシステム2Aから、指示したボリュームのマイグレーションの終了通知を受けると、仮想ストレージシステムボリューム管理テーブル140の該当エントリの値を更新する。さらに、ストレージシステムポート管理テーブル110の上記対応仮想ポートIDを、ストレージシステム2Aのエントリからストレージシステム2Bのエントリに変更する。
ストレージシステム管理プログラム121は、仮想ストレージシステムボリューム管理テーブル140を参照し、ストレージシステムID1405が削除指示のあったストレージシステム2Aであるエントリ(ボリューム)が存在しているか確認する(S1205)。残りのボリュームがあれば(S1205:YES)、ストレージシステム管理プログラム121は、S1203へ戻る。
残りのボリュームがなければ(S1205:NO)、管理計算機1の接続装置管理プログラム122は、ストレージシステムポート管理テーブル110を参照し、削除するポートID1105、仮想ポートID1106を、接続装置4、5に、接続装置6を経由して通知し、削除を要求する。
接続装置4、5の管理プログラム422は、接続機器管理テーブル400から通知のあったポートID4002を削除し(S1206、S1207)、ランプ状態4003をOFFに変える。管理プログラム422は、ランプ状態4003がOFFに変えられたことを検出すると、リンクランプ48を消灯する。管理プログラム422は、ゾーン設定管理テーブル410から、通知されたポートIDの値をポートID4102のカラムから削除する。
管理計算機1のストレージシステム管理プログラム121は、ストレージシステム管理テーブル100、ストレージシステムポート管理テーブル110、ストレージシステム使用状況管理テーブル130、ホスト接続性管理テーブル170、ストレージ間接続性管理テーブル180から、削除するストレージシステム2AのIDを含むエントリを削除する(S1208)。管理者は接続装置4、5のリンクランプ48が消えているデータI/O用通信I/F45の線を引き抜き、ストレージシステム2Aの削除処理が終了する。
このように、本構成により、ホスト計算機3へのサービスを停止することなく、ストレージシステム2を計算機システムから削除することができる。また、配線を引き抜く際の作業ミスのポテンシャルを低減することができる。
図38は、本実施形態の計算機システムにおけるボリューム作成処理のフローを示す図である。ここでは、ボリュームタイプが通常であるボリュームを作成する手順を説明する。管理者は、管理計算機1の運用管理プログラム124からボリューム作成指示を入力する。管理者は、ボリュームの容量、ボリュームタイプ(本図の説明では通常)、利用するホスト計算機3などを入力して、ボリュームの作成を指示する(S1301)。
管理計算機1のストレージシステム管理プログラム121は、入力情報を参照して、利用するホスト計算機3(ホストID)が指定されているかを確認する(S1302)。指定されていなければ(S1302:NO)、処理はS1304に進む。指定されていれば(S1302:YES)、ストレージシステム管理プログラム121は、ホスト計算機管理テーブル160から指定されたホストID1601の値のエントリから、ホスト側ポートID1603の値を取得する。
ストレージシステム管理プログラム121は、ホスト接続性管理テーブル170のポートID1701のカラムを検索し、取得した値と一致するエントリのうち、接続性1704が確認済みであるエントリの接続可能ポートID1703(ストレージシステムのポートID)の値を取得する。これにより未接続による不具合を防ぐ。
次に、ストレージシステム管理プログラム121は、ストレージシステムポート管理テーブル110のポートID1105、仮想ポートID1106のカラムにおいて、取得したポートIDを含むエントリを検索し、接続可能なポートIDを持たないストレージシステムを除き、ストレージシステムのIDを一覧化する(S1303)。
その後、ストレージシステム管理プログラム121は、一覧化されたストレージシステムについてストレージシステム使用状況管理テーブル130を参照し、好ましくは、総容量1302から使用量1304を引いた値が一番大きなストレージシステムを選択する(S1304)。指定されたボリュームの容量を満たすストレージシステムがなければ、エラーである。
ボリュームを作成するストレージシステムを決定するための様々な手法が考えられる。基準となる値は、ストレージシステム2、ホスト計算機3、接続装置4、接続装置5で取得できる値であって、管理計算機1が接続装置6を経由して収集することができる値であれば、本例と異なる値でもよい。
ストレージシステム管理プログラム121は、仮想ストレージシステムボリューム管理テーブル140の仮想ボリューム番号1401のカラムを参照し、重複しない仮想ボリューム番号を新たに作成するボリュームに割り当てる(S1305)。これにより、ボリュームが計算機システム内において一意に特定される。ストレージシステム管理プログラム121は、割り当てた仮想ボリューム番号と管理者によって指定された情報を、S1304で選択したストレージシステム2に通知し、ボリュームの作成を指示する。
指示を受けたストレージシステム2のボリューム管理プログラム2213は、メディア管理テーブル270から、例えば容量2704と使用量2705の差が一番大きいメディアID2701を選択し、そのメディアにおいて指定されたサイズのボリュームを作成し、メディア管理テーブル270を更新する(S1306)。指定されたサイズのボリュームを格納できるメディアが存在しなければ、エラーである。
ボリューム管理プログラム2213は、ボリューム管理テーブル240にエントリを追加し、ストレージシステム内で一意のボリュームIDを割り当て、管理計算機1により指定された容量、タイプ、仮想ボリューム番号を、容量2402、タイプ2403、仮想ボリューム番号2405のそれぞれのフィールドに格納し、さらに、S1306で割り当てたメディアIDをメディアID2404のフィールドに格納する。
ボリューム管理プログラム2213は、仮想ベンダ名2406A、仮想システム型名2406B、仮想製造番号2406Cのフィールドに、デフォルト仮想ベンダ名2002、デフォルト仮想システム型名2102、デフォルト仮想製造番号2202の値をそれぞれ複製して格納する(S1307)。これにより、ホスト計算機3からのボリューム情報要求に対して、各ストレージシステム2が共通(同一)のストレージ識別情報を返す。
ストレージシステム2の運用管理プログラム2214は、作成が完了したボリュームについて、ボリュームID2401、メディアID2404を管理計算機1に通知する。管理計算機1の運用管理プログラム124は、作成が完了したボリュームの情報をボリューム管理テーブル140に格納し、ボリューム作成処理を終了する(S1308)。
図39は、本実施形態の計算機システムにおけるシンプロビジョニングプール作成の処理フローを示す図である。管理者は、管理計算機1の運用管理プログラム124から、プール名を指定してプール作成処理を実施する。運用管理プログラム124は、ストレージシステムプール管理テーブル120にエントリを追加し、指定されたプール名をプール名1201に格納する(S1401)。
管理者は、運用管理プログラム124を使用して仮想ストレージシステムボリューム管理テーブル140を参照し、シンプロビジョニングプールに追加するボリュームを選択する(S1402)。本システムにおいて、異なるストレージシステム2からボリュームを選択することができる。ストレージシステムの物理的境界を越えてプールにボリュームを含めることで、より適切なプール容量管理を行うことができる。
運用管理プログラム124は、仮想ストレージシステムボリューム管理テーブル140を参照し、選択されたボリューム毎にストレージシステム2A及びストレージシステム2Bにシンプロビジョニングプール作成指示を送信する。選択されたボリュームがないストレージシステム2Bに対しても、プール作成指示を送信する。
ストレージシステム2Aのプール管理プログラム2212は、シンプロビジョニングプール管理テーブル250にエントリを追加し、指定されたプール名をプールID2501に格納する(S1403)。
ストレージシステム2Aのプール管理プログラム2212は、管理計算機1から指定されたボリュームをボリューム管理テーブル240の仮想ボリューム番号2405から一致するエントリを検索する(S1405)。
プール管理プログラム2212は、一致するエントリのボリュームID2401をシンプロビジョニングプール管理テーブル250の構成ボリュームID2504に、容量2402を容量2505に格納する。プール管理プログラム2212は追加されたボリュームをページ分割し番号を割り当て作成された番号の一覧をページ番号2507に格納し、状態2508を未割当にする。その後、運用管理プログラム2214は管理計算機1に完了通知を送信する(S1406)。ストレージシステム2BもS1403、S1406と同様の処理を実施する(S1404、S1407)。
管理計算機1のストレージシステム管理プログラム121は、ストレージシステム2A、2Bから完了応答を受信すると、ストレージシステムプール管理テーブル120に、各ストレージシステムの情報を格納する。具体的には、ストレージシステムID1204が特定するストレージシステムの情報を、対応したエントリに格納する。格納される情報は、各ストレージシステムのシンプロビジョニングプールの容量1205A、構成ボリュームID1207A、容量1207Bの値である。ストレージシステム管理プログラム121は、さらに、容量1205Aの値を合計した値を全体容量1202に格納し、シンプロビジョニングプール作成処理を終了する(S1408)。
図40は、本実施形態の計算機システムにおけるシンプロビジョニングボリューム作成の処理フローを示す図である。ここでは、ボリュームタイプがシンプロビジョニングであるボリュームを作成する手順を説明する。
管理者は、管理計算機1の運用管理プログラム124から、ボリューム作成指示を入力する。管理者は、プール名、ボリュームの容量、ボリュームタイプ(本図の説明ではシンプロビジョニング)、利用するホスト計算機3などを入力して、ボリュームの作成を指示する(S1501)。
管理計算機1のストレージシステム管理プログラム121は、利用する(アクセスする)ホスト計算機3が指定されているかを確認する(S1502)。指定されていなければ(S1502:NO)、処理はS1504に進む。指定されていれば(S1502:YES)、ストレージシステム管理プログラム121は、ホスト計算機管理テーブル160を参照して、そのホスト計算機3のホスト側ポートID1603を取得する。
ストレージシステム管理プログラム121は、ホスト接続性管理テーブル170のポートID1701を検索し、そのホスト計算機3と一致するエントリの接続可能ポートID1703のうち、接続性1704が確認済みであるエントリの、ポートID(ストレージシステムのポートID)を取得する。
次に、ストレージシステム管理プログラム121は、ストレージシステムポート管理テーブル110のポートID1105、仮想ポートID1106から、取得したポートIDを含むエントリのストレージシステムIDを検索する。ストレージシステム管理プログラム121は、接続可能なポートIDを持たないストレージシステムを除き、ストレージシステムIDを一覧化する(S1503)。
その後、ストレージシステム管理プログラム121は、ストレージシステムプール管理テーブル120を参照し、ストレージシステムID1204によって一覧化されたストレージシステムのエントリを特定し、好ましくは、容量1205Aから使用量1205Bを引いた値が一番大きなストレージシステムを選択する(S1504)。
管理計算機1のストレージシステム管理プログラム121は、仮想ストレージシステムボリューム管理テーブル140の仮想ボリューム番号1401を参照し、重複しない仮想ボリューム番号を新たなシンプロビジョニングボリュームに割り当てる(S1505)。
ストレージシステム管理プログラム121は、割り当てた仮想ボリューム番号と管理者によって指定された情報を、上記選択したストレージシステム2に通知し、ボリュームの作成を指示する。
ストレージシステム2のボリューム管理プログラム2213は、ボリューム作成指示に応答して、ボリューム管理テーブル240にエントリを追加する。ボリューム管理プログラム2213は、ストレージシステム内で一意のボリュームIDを新たなエントリに割り当て、管理計算機1により指定された容量、タイプ、仮想ボリューム番号のそれぞれを、容量2402、タイプ2403、仮想ボリューム番号2405のフィールドに格納する(S1506)。
ボリューム管理プログラム2213は、デフォルト仮想ベンダ名2002、デフォルト仮想システム型名2102、デフォルト仮想製造番号2202の値を複製して、仮想ベンダ名2406A、仮想システム型名2406B、仮想製造番号2406Cのフィールドに、それぞれ格納する(S1507)。
ストレージシステム2の運用管理プログラム2214は、作成が完了したボリュームのボリュームID2401の値及びメディアID2404の値を、管理計算機1に通知する。管理計算機1の運用管理プログラム124は、作成が完了したボリュームの情報をボリューム管理テーブル140に格納し、ボリューム作成処理を終了する(S1508)。
図41は、本実施形態の計算機システムにおけるボリュームへのポート設定処理のフローを示す図である。管理者は、管理計算機1の運用管理プログラム124からボリュームとポートのマッピング指示を入力する。
ボリュームは、仮想ストレージシステムボリューム管理テーブル140から選択され、仮想ボリューム番号1401で指定される。ポートは、ストレージシステムポート管理テーブル110の用途1103がホスト用であるエントリから選択され、仮想データI/O用通信I/F番号1104で指定される。指定されたポート番号は、運用管理プログラム124により仮想ポート番号1408Aに格納される(S1601)。これにより、ホスト計算機3からのボリューム情報要求に対して、各ストレージシステム2が共通(同一)のストレージ識別情報を返す。
ストレージシステム管理プログラム121は、選択されたボリュームの仮想ストレージシステムボリューム管理テーブル140におけるストレージシステムID1405と選択されたポートのストレージシステムポート管理テーブル110におけるストレージシステムID1101が一致しているか確認する(S1602)。
それらが一致していれば(S1602:YES)、ストレージシステム管理プログラム121は、そのストレージシステム(ストレージシステム2Aとする)に対して、ポート設定指示を送信する。ストレージシステム2Aのボリューム管理プログラム2213は、指示された仮想データI/O用通信I/F番号を、ストレージシステムポート管理テーブル230の仮想データI/O用通信I/F番号2302から検索し、データI/O用通信I/F番号2301を特定する。
ボリューム管理プログラム2213は、指示された仮想ボリューム番号を、ボリューム管理テーブル240の仮想ボリューム番号2405から検索し、発見したエントリのポート番号2408Aのフィールドに、データI/O用通信I/F番号2301の値を格納する。ボリューム管理プログラム2213は、指示された仮想データI/O用通信I/F番号を、仮想ポート番号2407Aのフィールドに格納し、管理計算機1に完了応答を送信して、ボリュームとポートのマッピング処理を終了する(S1603)。
S1602において、ボリュームのストレージシステムとポートのストレージシステムとが異なる場合(S1602:NO)、ストレージシステム管理プログラム121は、ボリュームのあるストレージシステム2Aとポート(通信インタフェース)のあるストレージシステム(ストレージシステム2Bとする)の間で公知の外部接続ストレージ技術を使用し、ストレージシステム2Aのボリュームをストレージシステム2Bにマッピングする。外部接続ストレージ技術は、例えば、上記特許文献1に開示されている。
ストレージシステム2Bは、ストレージシステム2Aから上記ボリュームの提供を受け、ホスト計算機3から受信したそのボリュームへのアクセス要求(データ読み出し又は書き込みの要求)を処理する。このように、ホスト計算機3は、このように、ストレージシステム2Bから、接続装置5を介して、ストレージシステム2Aの情報を読み書きできる。
より具体的には、管理計算機1のストレージシステム管理プログラム121は、ストレージシステム2Bに対して、外部接続するストレージシステム2AのポートID及び対象のボリュームID(仮想ボリューム番号に対応)を通知する。ストレージシステム2Bのボリューム管理プログラム2213は、当該ボリュームとの疎通を確認した後、ボリューム管理テーブル240にそのボリュームのエントリを追加して管理する。
ストレージシステム2Bのボリューム管理プログラム2213は、ボリュームに関する情報を、ストレージシステム2Aのボリューム管理プログラム2213から接続装置6を介して受信する。図25には示していないが、このボリュームのエントリは、ストレージシステム2A及びそのポートのIDを含む。ストレージシステム2Bは、管理計算機1からの指示に応じて、S1603と同様に、自ポートと上記ボリュームをマッピングする(S1604)。
ホスト計算機3からのボリュームに関するI/O要求に対して、ストレージシステム2BのデータI/Oプログラム2211はボリューム管理テーブル240を参照し、外接ボリューム(本例でストレージシステム2Aのボリューム)に対するI/O要求であれば、その要求を、そのポートID及びボリュームIDに対して転送する。
転送されたI/O要求を受信したストレージシステム2AのデータI/Oプログラム2211は、そのボリュームからのデータ読み出し又はそのボリュームへのデータ書き込みを行い、その結果をストレージシステム2Bに返す。ストレージシステム2BのデータI/Oプログラム2211は、受信した結果を、ホスト計算機3に転送する。
このように、本システムにおいては、ホスト計算機3は、1つのストレージシステムのボリュームに、他のストレージシステムのインタフェースを介して読み書きすることができる。ホスト計算機3は、同一のボリューム識別情報及びストレージ識別情報によりボリュームを特定するため、ボリュームがいずれのストレージに存在しているかを意識することがない。
ストレージシステム管理プログラム121は、さらに、接続装置5のトラフィック量を削減するため、指定されたボリュームの情報をストレージシステム2Bのボリュームにコピーし、ボリュームマイグレーションを実行してもよい(S1605)。
図42は、本実施形態の計算機システムにおけるボリュームへの交替パスのポート設定処理のフローを示す図である。管理者は、管理計算機1の運用管理プログラム124からボリュームと交替パスのポートのマッピング指示を入力する。ボリュームは仮想ストレージシステムボリューム管理テーブル140から選択され、仮想ボリューム番号1401で指定される。
ポートは、ストレージシステムポート管理テーブル110の用途1103がホスト用となっているエントリから選択され、仮想データI/O用通信I/F番号1104で指定される。指定されたポート番号は、運用管理プログラム124により交替仮想ポート番号1408Bに格納される(S1701)。
ストレージシステム管理プログラム121は、選択されたボリュームの仮想ストレージシステムボリューム管理テーブル140の仮想ポート番号1408Aと交替仮想ポート番号1408Bについて、ストレージシステムポート管理テーブル110の仮想データI/O用通信I/F番号1104を検索し、仮想ポートと交替仮想ポートのストレージシステム2が、同一かどうか判定する(S1702)。
それらが同一であれば(S1702:YES)、ストレージシステム管理プログラム121は、そのストレージシステム2Aに対して交替ポート設定指示を送信する。ストレージシステム2Aのボリューム管理プログラム2213は、指示された仮想データI/O用通信I/F番号をストレージシステムポート管理テーブル230の仮想データI/O用通信I/F番号2302から検索し、データI/O用通信I/F番号2301を特定する。
ボリューム管理プログラム2213は、指示された仮想ボリューム番号をボリューム管理テーブル240の仮想ボリューム番号2405から検索し、発見したエントリの交替ポート番号2408Bに、データI/O用通信I/F番号2301の値を格納する。また、指示された仮想データI/O用通信I/F番号を、交替仮想ポート番号2407Bに格納し、管理計算機に完了応答を送信してボリュームとポートのマッピングを終了する(S1703)。
S1702において2つの値が同一でない場合(S1702:NO)、ストレージシステム管理プログラム121は、選択されたボリュームの仮想ストレージシステムボリューム管理テーブル140におけるストレージシステムID1405と、選択されたポートのストレージシステムポート管理テーブル110におけるストレージシステムID1101が、一致しているか判定する(S1704)。
ボリュームとポートが異なるストレージシステムに属する場合(S1704:NO)、ボリュームのあるストレージシステム2Aと交替ポートのあるストレージシステム2Bとの間で、外部接続ストレージ技術により、ストレージシステム2Bからストレージシステム2Aの情報を接続装置5経由で読み書きできるように、ストレージシステム管理プログラム121は、ストレージシステム2Bに設定を指示する。
ストレージシステム2Bのボリューム管理プログラム2213は、図41を参照して説明したように、ストレージシステム2Aの選択されたボリュームをストレージシステム2Bのボリュームとして設定する。ボリュームとポートが同一ストレージシステムに属する場合(S1704:YES)、ストレージシステム2A、2B間の外部接続がスキップされる。ストレージシステム2Bのボリューム管理プログラム2213は、さらに、ストレージシステム2Aから提供されるボリュームと自ポートをマッピングする(S1705)。
この時、ストレージシステム2Aとストレージシステム2Bとは異なるキャッシュメモリ21を保持しており、複数のポートから読み込み書き込みのI/Oが発生すると、キャッシュコヒーレンシーの問題によりデータが破壊される。そのため、キャッシュ機能をオフする。ストレージシステム管理プログラム121はストレージシステム2A、2Bに当該ボリュームのキャッシュオフ通知を行う。
受信したストレージシステム2A、2Bのそれぞれの運用管理プログラム2214は、ボリューム管理テーブル240のキャッシュ可否2409の値を不可にする。以降のI/O処理において、データI/Oプログラムがボリュームを参照する際には、キャッシュ可否2409の値が不可となっているため、キャッシュメモリを使わずにデータI/Oを実現する。
上述のように、S1704において、ボリュームとポートが同一ストレージシステムに属する場合(S1704:YES)、ストレージシステム2Aのボリュームの、ストレージシステム2Bへのマッピングは省略され、ボリュームのキャッシュ可否2409の値は可である。
図43は、本実施形態の計算機システムにおけるホスト計算機3からのデータI/O(データ書き込み/読み出し)要求に対する処理のフローを示す図である。ホスト計算機3のオペレーティングシステム323は、接続先ストレージシステムボリューム管理テーブル300を参照し、ボリュームを特定して、ストレージシステム2に対してデータI/O要求を送信する。データI/O要求は、ユーザデータのリード/ライト要求の他、ポート情報やボリューム情報など、他の情報のI/Oを含む。
図43のフローチャートは、ポート情報要求、ボリューム情報要求及びユーザデータの読み書き処理を含むが、これらの処理は、一般的に、連続して行われるものではない。ホスト計算機3は、所定のタイミングで(例えば定期的に)、ポート情報及びボリューム情報を取得し、その情報を使用してボリュームを特定する。ユーザデータの読み書き処理毎に、ポート情報及びボリューム情報を取得する必要はない。
ホスト計算機3のオペレーティングシステム323は、所定のタイミングにおいて、ポート情報要求を各ストレージシステム2の各ポートに送信する。要求を受信したストレージシステム2のデータI/Oプログラム2211は、要求を受信した自身のデータI/O用通信I/F25の番号を、ストレージシステムポート管理テーブル230のデータI/O用通信I/F番号2301から検索し、それらが一致するエントリの情報を取得する。
データI/Oプログラム2211は、取得したエントリの仮想データI/O用通信I/F番号2302の値をポート番号として、デフォルト仮想ベンダ名2002の値をベンダ名として、デフォルト仮想システム型名2102の値をシステム型名として、そして、デフォルト仮想製造番号2202の値を製造番号として応答する(S1801)。
ホスト計算機3のオペレーティングシステム323は、ボリュームIDを伴うボリューム情報要求を、各ストレージシステム2の各ポートに送信する。要求を受信したストレージシステム2のデータI/Oプログラム2211は、要求と共に受信したボリュームIDをボリューム管理テーブル240の仮想ボリューム番号2405から検索し、該当するエントリの仮想システム型名2406B及び仮想製造番号2406Cをホスト計算機3に応答する(S1802)。
このように、本システムは、デフォルトストレージ識別情報をホスト計算機3に返すことで、ホスト計算機3がボリュームの存在するストレージシステムによらずボリュームの読み書きを行うことができる。
ホスト計算機3のオペレーティングシステム323は、ボリュームの読み書き要求を行う。ストレージシステム2のデータI/Oプログラム2211は、ボリューム管理テーブル240から受信したボリュームIDを検索し、当該エントリのキャッシュ可否2409の値を参照する。その値がキャッシュ可を示していれば、データI/Oプログラム2211は、キャッシュメモリを利用してI/O処理を行い、不可であればキャッシュメモリを利用せずにI/O処理を行う。
さらに、シンプロビジョニングボリューム224への書き込みに対して、領域が不足した場合にはシンプロビジョニングプール管理テーブル250を参照し、状態2508のフィールドの値が未割当となっているページを検索し、そのページを割り当てる。シンプロビジョニングボリューム管理テーブル260のボリュームID2601が該当するエントリの構成ボリュームID2605、ページ番号2606を追加し、使用量にページサイズを追加する(S1803、S1804)。
一定時間毎に、管理計算機1は、ストレージシステム2へ状態確認要求を行い、ストレージシステムの使用状態やボリュームの使用状態を取得し、内部の管理テーブルを更新する。この手順については、既述のとおりである。
図44は、本実施形態の計算機システムにおけるリソース平準化の処理フローを示す図である。管理計算機1のストレージシステム管理プログラム121は、マイグレーション対象のボリュームを検索する。具体的には、ストレージシステム使用状況管理テーブル130を参照し、ストレージシステムID1301のフィールド毎に、総容量1302の値に対する使用量1304の値の割合が容量閾値1303の値を超えているエントリを検索する(S1901)。
使用量の割合が容量閾値を超えているストレージシステム2Aがある場合、ストレージシステム管理プログラム121は、仮想ストレージシステムボリューム管理テーブル140のストレージシステムID1405から、そのストレージシステムIDのエントリを検索する。ストレージシステム管理プログラム121は、該当するエントリのボリュームの中で、ボリュームタイプ1404の値が通常であるエントリから、任意のボリュームをマイグレーション対象として選択する(S1902)。
ストレージシステム管理プログラム121は、マイグレーション先のストレージシステム2Bとして、選択されたボリュームがマイグレーション可能な残りの容量を持ち、さらに、選択されたボリュームにアクセスするホスト計算機3がアクセスすることができるストレージシステムを選択する。これにより、ホスト計算機3によるボリュームへのアクセス不能という不具合を確実に避ける。この条件を満たす複数ストレージシステムが存在する場合、好ましくは、使用量1304の値が一番小さいストレージシステムを選択する。
例えば、ストレージシステム管理プログラム121は、以下の方法により、ホスト計算機3が接続できるストレージシステムを特定する。ストレージシステム管理プログラム121は、仮想ストレージシステムボリューム管理テーブル140を参照して選択されたボリュームに接続する仮想ポート番号1408Aを特定し、ストレージシステムポート管理テーブル110において、その仮想ポート番号に対応するポートID1105又は仮想ポートID1106を特定する(S1903)。
ストレージシステム管理プログラム121は、さらに、ホスト接続性管理テーブル170を参照して、特定したポート又は仮想ポートに接続するホスト計算機のポートID1701を特定する。ホスト接続性管理テーブル170において、特定したポートID1701の接続可能なポートID1703のカラムに含まれるポートIDを有するストレージシステムを、移行先として選択する(S1904)。
さらに、ストレージシステム管理プログラム121は、ストレージシステムプール管理テーブル120を参照し、容量1205Aの値に対する使用量1205Bの割合が容量閾値1205Cの値を超えているエントリのストレージシステムIDを検索する(ここでは、ストレージシステム2Aとする)。加えて、ストレージシステム管理プログラム121は、IOPS1206Aの値が性能閾値1206Bの値を超えているエントリのストレージシステムIDを検索する(S1905)。
ストレージシステム管理プログラム121は、仮想ストレージシステムボリューム管理テーブル140のストレージシステムID1405から、使用量又はIOPSが閾値を超えているストレージシステムのエントリを検索する。そのストレージシステムのボリューム(エントリ)の中で、ボリュームタイプ1404がシンプロビジョニングとなっているエントリから、任意のボリュームをマイグレーション対象として選択する(S1906)。
ストレージシステム管理プログラム121は、マイグレーション先のストレージシステム2Bとして、選択されたボリュームがマイグレーション可能な残りの容量を持ち、さらに、選択されたボリュームにアクセスするホスト計算機3がアクセスすることができるストレージシステムを選択する。この条件を満たす複数ストレージシステムが存在する場合、使用量1304の値が一番小さいストレージシステムを選択する。ホスト計算機3が接続可能な移行先の決定方法は、上記通常ボリュームのマイグレーションにおける方法と同様である。
ストレージシステム2A、2Bは、選択されたボリュームが存在するストレージシステム2Aから、選択されたマイグレーション先のストレージシステム2Bへ、当該ボリュームのマイグレーションを実施する(S1907)。マイグレーションの方法は上述の通りである。
以上の処理により、ストレージシステム間のリソースを平準化し、負荷分散を行うことができる。また、ホスト計算機3からアクセス可能なストレージシステム2に対して自動でボリュームマイグレーションを行うことができる。
図45は、本実施形態の計算機システムにおけるシンプロビジョニングプールの容量調整処理のフローを示す図である。複数のストレージシステム2が仮想ストレージシステムを構成する計算機システムにおいて、管理されるシンプロビジョニングで作成されたボリュームは、各ストレージシステム2内のシンプロビジョニングプールを構成するボリューム(構成ボリューム)からページが割り当てられ、ホスト計算機3から書き込まれたデータを格納していく。
この過程において、ホスト計算機3からの書き込みの量や頻度はボリューム毎に異なるため、シンプロビジョニングプールにおける各ストレージシステム2の残容量は、時間経過とともにばらつきが発生することになる。
計算機システムにおいては、管理者は管理計算機1のストレージシステムプール管理テーブル120においてプールの総容量と使用量を管理している。書き込み頻度の高いボリュームが格納されているストレージシステム2があり容量不足が発生する場合において、プール全体では、残容量に余裕のあるストレージシステム2が存在することになる。そのため、容量の貸し借りが可能である。
また、ストレージシステムプール管理テーブルの全体容量1202と使用容量1203で容量管理を実現するためには、ストレージシステム2間での容量の貸し借りが必要となる。そのため、図45は、ストレージシステム2Bのシンプロビジョニングプールの容量が不足した場合に、残容量が多いストレージシステム2Aとして、容量貸出しのフローを説明する。
図44で説明した処理において、ストレージシステム管理プログラム121は、ストレージシステムプール管理テーブル120のストレージシステムID1204毎に、容量1205Aに対して使用量1205Bを計算する。例えば、使用量1205Bの容量1205Aに対する割合が容量閾値1205Cを上回るストレージシステムがあった場合にストレージシステムプールの構成ボリュームの再構成を実施する。
プール内に上述のようなストレージシステム2Bが存在する場合、ストレージシステム管理プログラム121は、例えば、そのプール(プール名1201)において、容量1205Aに対する使用量1205Bの割合が最も低いストレージシステム2AのID1204を選択する。
ストレージシステム管理プログラム121は、さらに、選択したストレージシステム2Aの構成ボリュームID1207Aの中から任意のボリュームを選択し、選択したストレージシステム2Aに対して、そのボリュームのシンプロビジョニングプールボリュームからの解除を指示する(S2001)。
ストレージシステム2Aのプール管理プログラム2212は、指示のあったボリュームをシンプロビジョニングプールから外すため、シンプロビジョニングプール管理テーブル250を参照し、該当するプールID2501の該当する構成ボリュームID2504のページ番号2507のデータを、他の構成ボリュームにコピーする。さらに、シンプロビジョニングボリューム管理テーブル260の構成ボリュームID2605とページ番号2606を変更し、状態2508を割当済みから未割当に変更する(S2002)。
当該ボリュームの状態2508がすべて未割当に変更されると、プール管理プログラム2212は、そのボリュームのエントリを削除し、総容量2502からその構成ボリュームの容量2505を減ずる(S2003)。
管理計算機1のストレージシステム管理プログラム121は、ストレージシステム2Aからのボリューム解除管理用応答を受信すると、容量の不足していたストレージシステム2Bに対して、S2003にて削除したボリュームを外部接続ストレージ技術にて接続することを指示する。外部接続ストレージ技術によるストレージシステム2Aからストレージシステム2Bへのボリュームの提供方法は、図41を参照して説明した方法と同様である。
ストレージシステム2Bは、ストレージシステム2Aの当該ボリュームを、自ストレージのボリュームと同様に読み書き可能となる。ストレージシステム2Bは、ストレージシステム2Aから提供されるボリュームを、自身のボリュームとして、シンプロビジョニングプールに追加する。ストレージシステム2Bのプール管理プログラム2212は、シンプロビジョニングプール管理テーブル250に新たな構成ボリュームIDとして登録する(S2004)。
この後、ストレージシステム2Bのプール管理プログラム2212は、新たに追加された構成ボリュームを活用する際、新たな書き込み要求に対する割り当てページを格納するだけでなく、シンプロビジョニングプール管理テーブル250の当該プール内の割当状態の偏りをなくすため、追加したボリュームのページに対してデータをコピーし、シンプロビジョニングボリューム管理テーブル260の構成ボリュームID2605、ページ番号2606を書き換えてもよい(S2005)。
上述のように、本処理は、プールボリュームを提供する特定のストレージシステムの容量が不足すると、他のストレージシステムのプールボリュームを組み入れる。これにより、ストレージシステムの物理的な境界を越えて、プールの容量をより適切に管理することができる。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。本実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。例えば、システムは装置の接続確認を行うことが好ましいが、この処理を省略してもよい。システムは、シンプロビジョニングボリュームや外部接続ストレージ機能などの上記全ての機能を含むことが好ましいが、これらの一部のみを有していてもよい。
システムに含まれる全てのストレージシステムが共通のデフォルトストレージシステム識別情報を有することが好ましいが、その一部のストレージシステムのみがその情報を有していていもよい。上記の各構成及び機能は、それらの一部又は全部を、例えば集積回路で設計して得られるハードウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。