次に、本発明の実施の形態について、図面を参照しつつ説明する。
[第1の実施形態]
本実施形態は、ペア関係が定義された、異なるストレージ装置内の稼働系のボリューム(稼働ボリューム)及び待機系のボリューム(待機ボリューム)に対するボリュームに係る機能属性の設定状況を監視するストレージシステムを説明している。
(1)システム構成
(1−1)コンピュータシステムの構成
図1は、本発明の一実施形態に係るコンピュータシステム1の構成を示す図である。同図に示すように、コンピュータシステム1は、ホスト装置3と、ストレージネットワーク2Aを介してこれに接続された複数のストレージ装置4と、管理ネットワーク2Bを介してこれらと接続された管理装置5と、を含む。コンピュータシステム1は、例えば、銀行の業務システムや航空機の座席予約業務システム等として構成される。
ストレージネットワーク2Aは、主として、ホスト装置3とストレージ装置4との間のI/Oアクセスに基づく通信に使用されるネットワークシステムである。ストレージネットワーク2Aには、例えばLAN、インターネット、又はSAN(Storage Area Network)のいずれかを採用することができ、典型的には、ネットワークスイッチやハブ等を含んで構成される。本実施形態では、ストレージネットワーク2Aは、ファイバーチャネルプロトコルベースのSAN(FC−SAN)で構成されているものとする。
管理ネットワーク2Bは、管理装置5がホスト装置3及びストレージ装置4の管理を行う際の通信に使用されるネットワークである。本実施形態では、管理ネットワーク2Bは、IPプロトコルベースのLANで構成されているものとする。ただし、これは、ストレージネットワーク2Aと管理ネットワーク2Bとが常に別個のものとして構成されることを意味するものではない。例えば、ストレージネットワーク2AがIPプロトコルベースのネットワークで構成された場合には、両者は一つのネットワークシステム上に形成されることになる。
ホスト装置3は、例えば、銀行の業務システムや航空機の座席予約業務システム等の中核をなすコンピュータである。具体的には、ホスト装置3は、プロセッサやメインメモリ、ネットワークインターフェース、ローカル入出力装置等のハードウェア資源を備え、また、デバイスドライバやオペレーティングシステム(OS)、アプリケーションプログラム等のソフトウェア資源を備えている(図2)。これによって、ホスト装置3は、プロセッサの制御の下、各種のプログラムを実行して、ハードウェア資源との協働作用により、所望の処理を実現する。例えば、ホスト装置3は、プロセッサの制御の下、OS上で業務アプリケーションプログラムを実行することにより、以下に詳述されるストレージ装置4内の論理ユニット乃至は論理ボリューム(VOL:以下、単に「ボリューム」という)にI/Oアクセスし、所望の業務システムを実現する。
また、本実施形態のホスト装置3は、交替パス機能を備え、アプリケーションプログラムのI/Oアクセス先を選択的に切り替えられるように構成されている。このような交替パス機能は、例えば、ホスト装置3に実装された、デバイスドライバして動作する交替パスプログラムによって実現される。すなわち、ホスト装置3上のアプリケーションプログラムは、下位のレベルに位置する交替パスプログラムを介して、ストレージ装置4内のボリュームにI/Oアクセスする。I/Oアクセスパスとは、アプリケーションプログラムが特定のボリュームにI/Oアクセスする際の経路であるが、特に、交替パスプログラムと特定のボリュームとの間の経路を指すこともある。交替パスプログラムは、ホスト装置3のネットワークインターフェースの識別子と、ストレージ装置4のネットワークインターフェースの識別子と、ボリュームの識別子との組み合わせにより一意にI/Oアクセスパスを特定し、これにより、所望のボリュームを認識する。
ストレージ装置4は、ホスト装置3にデータストレージサービスを提供するための装置であり、ホスト装置3がI/Oアクセスするための1つ又は複数のボリュームを有する。
ボリュームは、ホスト装置3上のアプリケーションプログラムが認識しうる「論理的なストレージ」である。ボリュームは、データを担持する物理的な記憶媒体である1つ又は複数の物理デバイス上に形成される。典型的な実装形態では、ボリュームは、論理的な中間デバイスを介して物理デバイス上に形成される。具体的には、大容量化、高信頼化等の観点から、RAID(Redundant Arrays of Independence Disks)技術を用いて、いくつかの物理デバイスに基づくRAIDグループ乃至はアレイグループである仮想デバイスが定義される。そして、当該仮想デバイスに対して1つ又は複数の論理デバイス乃至は論理デバイスが割り当てられ、さらに、当該論理デバイスのそれぞれに対して論理ボリュームが割り当てられる。ここで、本発明の理解を容易にする目的として、論理的な中間デバイスを省略し、論理ボリュームは、物理デバイス上に形成されたものとして説明される。
ボリュームには、論理ボリューム識別子が割り当てられ、したがって、ホスト装置3は、論理ボリューム識別子を用いて特定のボリュームを認識することができる。論理ボリューム識別子は、後述するコントローラ43ごとに管理される論理デバイス(つまり、ボリューム)を識別するための識別情報である。
本実施形態では、稼働系のストレージ装置4(稼働ストレージ装置4A)と待機系のストレージ装置4(待機ストレージ装置4B)とが設けられ、稼働ボリューム及び待機ボリュームをそれぞれホスト装置3に提供している。
また、ストレージ装置4は、データのバックアップを行うためのリモートコピー(又はミラーリング)機能を備えている。
リモートコピー機能は、ペア関係として定義されたボリューム(ペアボリューム)間で同期・非同期にデータのコピーを行って、データ(ボリューム)を二重化する。リモートコピー機能は、例えば、ストレージ装置4に実装されたリモートコピープログラムにより、実現される。同期式リモートコピーでは、ホスト装置3から書き込み要求を受領した稼働系のストレージ装置4Aは、自身のボリュームに当該書き込み要求に従うデータを書き込むとともに、ペア関係にある待機系ストレージ装置4Bのボリュームに対して書き込みを要求して、待機系のストレージ装置4Bにおいて当該書き込みが完了した時点で、ホスト装置3に当該I/Oアクセスに対する完了を応答する。一方、非同期式リモートコピーでは、ホスト装置3からの書き込み要求とは独立(非同期)に、ペアボリューム間でコピーが行われる。運用中の稼働ストレージ装置4内のボリュームに対して待機ストレージ装置4内に新たなペア関係としてボリュームを定義する場合には、初期コピーとして、稼働ボリュームから新たに定義された待機ボリュームにデータが転送される。
本実施形態のコンピュータシステム1は、リモートコピー機能により、異なるストレージ装置4にデータ(ボリューム)を二重化しておき、障害や保守作業が発生した場合に、交替パスプログラムにより、無停止稼働のデータストレージサービスを実現している。
すなわち、稼働ストレージ装置4Aは、稼働ボリューム上のデータ(例えば書き込み要求に従うデータ)を、ストレージ装置4Aが備えるリモートコピー機能により、ストレージネットワーク2Aを介してストレージ装置4B内の待機ボリュームに転送する。ここで、ホスト装置4上の同一の交替パスプログラムは、ペア関係が定義された稼働ボリューム及び待機ボリュームを認識可能なように、I/Oアクセスパスを設定する。稼動ストレージ装置4Aに障害や保守作業の発生により稼動ボリュームの利用ができなくなった場合、ホスト装置3上の交替パスプログラムは、稼動ボリュームに対するI/Oアクセスパスに代えて、待機ボリュームに対するI/Oアクセスパスを選択し、データストレージサービスを継続する。
稼動ボリューム及び待機ボリュームを同一のボリュームとしてホスト装置3に認識させる技法として、一般に、次の2つがある。第1は、交替パスプログラム自身が、稼動ボリュームと待機ボリュームを同一のものとして扱う方法である。これは、ホスト装置3上の交替パスプログラムが、稼働ボリューム及び待機ボリュームを識別するためのそれぞれの識別情報に対して割り当てられた同一の識別情報を保持することにより実現される。第2は、ストレージ装置4が、稼動ボリュームと待機ボリュームとを同一のボリュームとして交替パスプログラムに認識させる方法である。これは、ボリュームを実際に提供するストレージ装置4が、交替パスプログラムが保持しているボリュームの識別情報を、自身のボリュームに動的に割り当てることにより実現される。
ストレージ装置4は、リモートコピー機能に加え、各種の機能(例えば、ボリューム作成機能、帯域制限機能、キャッシュ常駐化機能、及びボリューム拡張機能等)を備えている。これらの機能は、その機能属性の設定に応じて、有効化/無効化される。ストレージ装置4は、その仕様に従って、所定の機能が備わっている。
ボリューム作成機能は、ディスクドライブ41の物理デバイス上にボリュームを作成し、及び既存のボリュームを削除する機能である。ボリューム作成機能はまた、ディスクドライブ41によるアレイグループの作成/削除を行う機能を含んでいる。
帯域制限機能は、ネットワークI/F44の最大転送帯域幅を制御する機能であり、ネットワークI/F44のポートごとに最大転送帯域幅を設定する。従って、各ポートに最大転送帯域幅を設定することにより、ポートに割り当てられた1つまたは複数のボリュームに対するI/Oアクセス量を制御することができる。本明細書では、当該機能を「PPCT(Prioritized Port Control)機能」と呼ぶことにする。
キャッシュ常駐化機能は、ホスト装置3に提供するボリューム全体をキャッシュメモリ45に常駐化させ、及び当該常駐化の状態を解除する機能である。つまり、本明細書では、当該機能を「DCR(Dynamic Cache Residency)機能」と呼ぶことにする。
ボリューム拡張機能は、同一ストレージ装置4内のボリューム同士を結合して、ホスト装置3に提供するボリュームの容量を拡張する機能である。本明細書では、当該機能をLUSE(LU Size Expansion)機能と呼ぶことにする。
(1−2)ホスト装置の構成
図2は、本発明の一実施形態に係るコンピュータシステム1におけるホスト装置3の構成を示す図である。
同図に示すように、ホスト装置3は、プロセッサ31と、プロセッサ31のメインメモリとして機能するメモリ32と、ストレージネットワーク2Aを介してストレージ装置4に接続するためのネットワークインターフェース(I/F)33と、ディスプレイ等の出力部34と、キーボードやマウス等の入力部35と、管理ネットワーク2Bに接続するための管理ポート36とを備え、これらは内部バス37を介して相互に接続されている。
プロセッサ31は、ホスト装置3の動作を統括的に制御するもので、メモリ32に格納された各種のプログラムを実行して、他のハードウェア資源との協働により、ホスト装置3に所定の処理乃至は機能を実現させる。
メモリ32は、例えば、RAMやROM等から構成され、プロセッサ31の利用に供される各種のプログラムやデータを記憶する。各種のプログラムは、その一部又は全部が図示しない補助記憶装置から、適宜、メモリ32にロードされる。同図では、とりわけ、アプリケーションプログラム321、交替パスプログラム322、及びホスト構成プログラム323が示されている。
アプリケーションプログラム321は、プロセッサ31の制御の下、ホスト装置3に所望の業務を実現させるためのプログラムである。
交替パスプログラム322は、アプリケーションプログラム321がI/OアクセスしようとするボリュームへのI/Oアクセスパスを選択するプログラムである。すなわち、交替パスプログラム322は、アプリケーションプログラム321よりも下位のレベルに位置し、アプリケーションプログラム321が発行したI/Oアクセス要求を受けて、一のI/Oアクセスパスを選択する。
ホスト構成プログラム322は、ホスト装置3上のシステム構成情報を管理するプログラムである。また、ホスト構成プログラム322は、管理ポート36を介して接続される管理装置5と通信して、システム構成情報を送信する。
(1−3)ストレージ装置4の構成
図3は、本発明の一実施形態に係るコンピュータシステム1におけるストレージ装置4の構成を示す図である。ストレージ装置4の基本的構成は、稼働系及び待機系で同じであるが、以下では、稼働系のストレージ装置4Aについて説明する。
同図に示すように、ストレージ装置4は、物理的なデバイスを含むディスクドライブ41と、データストレージサービスの中核処理を行うコントローラ42と、コントローラ42内の図示しないプロセッサのメインメモリとして機能するメモリ44と、ストレージネットワーク2Aに接続するための1または複数のネットワークインターフェース(I/F)42と、I/Oアクセスに伴うアプリケーションデータをキャッシュするキャッシュメモリ45と、管理ネットワーク2Bに接続するための管理ポート46とを備え、これらはコントローラ42を中心にして内部バスを介して相互に接続されている。
ディスクドライブ41は、物理デバイスである複数のハードディスクドライブや不揮発性メモリ等の記憶媒体を含んで構成される。ディスクドライブ41は、上述したように、RAID技術により形成される仮想デバイスであるRAIDグループ(アレイグループ)に論理デバイスが形成され、さらにそこに論理ボリュームが割り当てられている。同図では、論理的な中間デバイスである仮想デバイス及び論理デバイスを省略している。
コントローラ42は、プロセッサ(図示せず)の制御の下、メモリ43に記憶されたI/O処理プログラムを実行して、ホスト装置3に対するデータストレージ処理を実現する中核コンポーネントである。コントローラ42は、I/O処理プログラムに従って、例えば、ネットワークI/F44が受信しメモリ44に取り込まれたコマンドを取り出して、解釈し、それが書き込みコマンドであれば、キャッシュメモリ45に一時的に記憶された対応するデータをディスクドライブ42の所定の記憶領域(ブロック)に格納する。
メモリ44は、例えば、RAMやROM等から構成され、コントローラ42のプロセッサの利用に供される各種のプログラムやデータを記憶する。例えば、メモリ44は、ネットワークI/F42を介してホスト装置3から受け取ったI/Oアクセス要求に関わるコマンド(I/Oコマンド)や、ストレージ装置4を制御するための制御情報を保持する。各種のプログラムは、その一部又は全部が図示しない補助記憶装置から、適宜、メモリ32にロードされる。同図では、とりわけ、I/O処理プログラム431、ストレージ構成プログラム432、及びリモートコピープログラム433が示されている。
I/O処理プログラム431は、ホスト装置3に対するデータストレージサービスを実現するためのプログラムであって、ホスト装置3からの書き込み要求や読み出し要求といったI/Oアクセス要求に従う処理を行う。
ストレージ構成プログラム432は、ストレージ装置4の構成を管理するプログラムである。具体的には、ストレージ構成プログラム432は、ボリューム作成機能、PPC機能(帯域制限機能)、DCR機能(キャッシュ常駐化機能)、LUSE機能(ボリューム拡張機能)、及びリモートコピー機能等といった各種の機能を当該ストレージ装置4において有効化/無効化するための設定を行う。ストレージ構成プログラム432は、管理装置5から送信される機能設定の指示コマンドに従って、各種機能を有効化/無効化するために機能属性の設定を実行する。また、ストレージ構成プログラム431は、ストレージ装置4の機能属性等の構成情報を管理装置5に送信する。
ネットワークI/F44は、ポート(図示せず)を有し、ストレージネットワーク2Aを介して当該ポートに接続された他の装置との間で通信を行う通信インターフェースとして機能する回路である。本実施形態のストレージ装置4は、ホスト装置3に接続するためのネットワークI/F44aと、ペア関係にある相手方のストレージ装置4(すなわち待機系ストレージ装置4B)に接続するためのネットワークI/F44bとを有している。ネットワークI/F44は、ストレージネットワーク2Aから書き込みコマンドや読み込みコマンド等のI/Oアクセスコマンドを受信すると、コントローラ42の制御の下、当該コマンドをメモリに書き込む。また、コントローラ42の制御の下、ネットワークI/F42は、ディスクドライブ41から読み出されキャッシュメモリ45にキャッシュされたアプリケーションデータを、データ要求元の装置(例えばホスト装置3)に送信するため、ストレージネットワーク2Aに出力する。
キャッシュメモリ45は、ホスト装置3に対して高いシステムパフォーマンスを提供するため、ホスト装置3とディスクドライブ41との間でやり取りされるデータを一時的に記憶する。ホスト装置3から受け取った書き込みコマンドに伴うデータや、読み込みコマンドに従ってディスクドライブ41より読み出されたデータを一時的に記憶する。
管理ポート46は、管理ネットワーク2Bを介して管理装置5に接続するための通信ポートである。管理ポート46は、例えば、イーサネット(登録商標)機器により実現される。
(1−4)管理装置の構成
図4は、本発明の一実施形態に係るコンピュータシステム1における管理装置5の構成を示す図である。管理装置5は、例えば、汎用のコンピュータを採用することができ、オペレーティングシステム上で各種の管理用プログラムを実行することにより、所望の処理を実現する。
すなわち、同図に示すように、管理装置5は、プロセッサ51と、プロセッサ51のメインメモリとして機能するメモリ52と、管理ネットワーク2Bに接続するための管理ポート53と、処理結果を出力するためのディスプレイ装置等の出力部54と、キーボードやマウス等の入力部55とを備え、これらは内部バス56で互いに接続されている。
メモリ52には、ストレージシステムの管理用プログラムとして、機能設定状況監視プログラム522、機能設定指示プログラム523、構成情報収集プログラム523、及びユーザインターフェースプログラム524が記憶されている。これらのプログラムの一部または全部は、図示しない補助記憶装置から、適宜、メモリ52にロードされ、プロセッサ51の利用に供される。
また、メモリ52には、これら管理用プログラムによって参照される各種の管理テーブルが保持される。本実施形態では、各種の管理テーブルとして、装置管理テーブル500、ボリューム割当て管理テーブル600、記憶領域構成管理テーブル700、ペア管理テーブル800、ネットワークI/F管理テーブル900、キャッシュメモリ管理テーブル1000、及びLUSE管理テーブル1100が記憶されている。
機能設定状況監視プログラム522は、ストレージ装置4が備えるボリュームに係る機能についての機能属性の設定状況を監視するプログラムである。具体的には、機能設定状況監視プログラム522は、ペアボリュームを有するストレージ装置4間で整合性がない機能属性の設定が行われようとしている場合に、システム管理者に警告する。
また、機能設定状況監視プログラム522は、ユーザインターフェースを介して、システム管理者に各機能ごとの機能属性の設定状況を提供する。
機能設定指示プログラム523は、ペアボリュームを有するストレージ装置4間で設定されるべき機能属性に整合性がある場合にのみ、ストレージ装置4に対して機能設定を指示するプログラムである。また、機能設定指示プログラム523は、ペアボリュームを有するストレージ装置4間で仮設定した機能属性に整合性がない場合には、機能属性を仮設定前の状態に復元し、システム管理者に警告する。
構成情報収集プログラム523は、管理ネットワーク2Bを介してストレージ装置4から構成情報を収集するプログラムである。構成情報収集プログラム523は、ストレージ装置4から収集した構成情報に基づいて、後述する各種の管理テーブルにおける該当フィールドを更新する。
ユーザインターフェースプログラム524は、システム管理者に対してホスト装置3及びストレージ装置4を管理するためのユーザインターフェースを提供するプログラムである。ユーザインターフェースプログラム524は、入力部55を操作するシステム管理者から機能属性の設定を受け付けて、これを機能設定要求として機能設定状況監視プログラム522または機能設定指示プログラム523に引き渡す。また、ユーザインターフェースプログラム524は、当該プログラムの実行結果を受け付けて、これを出力部54に出力する。
(2)各種管理テーブルの構成
(2−1)装置管理テーブル500
図5は、本発明の一実施形態に係る管理装置5における装置管理テーブル500の一例を示す図である。装置管理テーブル500は、管理装置5が管理の対象にしているホスト装置4やストレージ装置4等の装置を特定するためのテーブルである。装置管理テーブル500はまた、管理対象のストレージ装置4がどの機能を備えているかを管理する。
すなわち、同図に示すように、装置管理テーブル500は、ホスト装置3及びストレージ装置4等の装置を管理装置5が一意に識別するための装置IDを登録する装置IDフィールド501と、装置の種類を登録する種類フィールド502と、装置を識別するその他の情報、例えば、ベンダ名、モデル名、シリアル番号、ホスト名等、を登録する装置情報フィールド503と、装置に接続するための管理ポートのIPアドレスを登録するIPアドレスフィールド504と、ストレージ装置4が提供可能な機能を登録する機能IDフィールド505と、から構成されている。
機能IDフィールド505に登録される機能は、ストレージ装置4が当該機能を有効化しているか否かを問わず、ストレージ装置4の仕様上、提供可能な機能の全てが登録される。本例では、ストレージ装置ST1及びST2が、その仕様上、PPC機能、DCR機能、及びLUSE機能を備えていることが示されている。
装置管理テーブル500は、例えば、管理者が管理装置5のユーザインターフェースを操作することにより、作成される。あるいは、装置管理テーブルは、ストレージネットワーク2Aや管理ネットワーク2B上のネームサービス等を用いて、自動的に作成されるように構成されてもよい。
(2−2)ボリューム割当て管理テーブル
図6は、本発明の一実施形態に係る管理装置5におけるボリューム割当て管理テーブル600の一例を示す図である。ボリューム割当て管理テーブル600は、ストレージ装置4内のボリュームの割当て状況を管理するためのテーブルである。ボリューム割当て管理テーブル600は、管理装置5が構成情報収集プログラム523を実行することにより、作成され、更新される。
同図に示すように、ボリューム割当て管理テーブル600は、ストレージ装置4を一意に特定するための識別子を登録するストレージIDフィールド601と、当該ストレージ装置4内でボリュームを一意に特定するための識別子を登録するボリュームIDフィールド602と、当該ボリュームに割当てられた論理記憶容量を登録するための容量フィールド603と、当該ボリュームを構成するアレイグループ(AG)をストレージ装置4内で一意に特定するための識別子を登録するAG IDフィールド604と、ボリュームの割当て先を管理装置5内で特定する識別子を登録する割当先フィールド605と、当該ボリュームを利用するアプリケーションプログラムを一意に特定するための識別子を登録するアプリケーションプログラム(AP)フィールド606と、当該ボリュームで構成されたホスト装置3上の論理ドライブIDを登録する論理ドライブIDフィールド607と、から構成されている。
なお、ストレージ装置4のボリュームに対してLUSE機能が有効化されている場合、LUSEボリュームを構成するプライマリのボリュームが、ボリューム割当て管理テーブル600に登録される。ボリュームIDフィールド602には、当該プライマリボリュームのボリュームIDとともに“(LUSE)”が登録される。
(2−3)記憶領域構成管理テーブル700
図7は、本発明の一実施形態に係る管理装置5における記憶領域構成管理テーブル700の一例を示す図である。記憶領域構成管理テーブル700は、ボリュームやアレイグループの構成を管理するためのテーブルである。記憶領域構成管理テーブル700は、管理装置5が構成情報収集プログラムを実行することにより、作成され、更新される。
同図に示すように、記憶領域構成管理テーブル700は、ストレージIDフィールド701と、AG IDフィールド702と、アレイグループの論理記憶容量を登録する論理記憶容量フィールド703と、アレイグループのRAID構成を登録するRAIDレベルフィールド704と、アレイグループを構成するディスクドライブをストレージ装置4内で一意に特定する識別子を登録するディスクIDフィールド705と、ディスクドライブの物理記憶容量を登録する物理記憶容量フィールド706と、から構成されている。
アレイグループを構成していないディスクドライブは、ストレージ装置4ごとにまとめられる。この場合、AG IDフィールド702、論理記憶容量フィールド703、及びRAIDレベルフィールド704は、nullとなる。
(2−4)ペア管理テーブル800
図8は、本発明の一実施形態に係る管理装置5におけるペア管理テーブル800の一例を示す図である。ペア管理テーブル800は、コンピュータシステム内の稼動ボリュームと待機ボリュームとの組み合わせやペアを形成可能なストレージ装置4の組み合わせを管理するテーブルである。ペア管理テーブル800は、管理装置5が構成情報収集プログラムを実行することにより、作成され、更新される。
同図に示すように、ペア管理テーブル800は、ペア関係が定義されたボリュームを有するストレージ装置4を管理装置5内で一意に特定するための識別子を登録するストレージIDフィールド801と、ペア関係が定義されたボリュームをストレージ装置4内で一意に特定するための識別子を登録するボリュームIDフィールド802と、当該ボリュームが稼動系であるか待機系であるかといった現在の「ロール」を登録するコピーロールフィールド803と、リモートコピー状態を登録するコピー状態フィールド804と、当該ボリュームとペアとなるボリューム(ペアボリューム)を有するストレージ装置4(ペアストレージ装置)を一意に特定するための識別子を登録するペアストレージ装置IDフィールド805と、ペアボリュームをペアストレージ装置内で一意に特定するための識別子を登録するペアボリュームIDフィールド806と、から構成されている。
ストレージ装置IDフィールド805及びペアストレージ装置IDフィールド806以外のフィールドがnullである場合、ストレージ装置IDフィールド801及びペアストレージ装置IDフィールド805に登録されたストレージ装置4は、そのボリュームをペア関係として定義可能であることを示す。
(2−4)ネットワークI/F管理テーブル900
図9は、本発明の一実施形態に係る管理装置5におけるネットワークI/F管理テーブル900の一例を示す図である。ネットワークI/F管理テーブル900は、ストレージ装置4のネットワークI/F42の構成とPPC機能の設定状況を管理するためのテーブルである。ネットワークI/F管理テーブル900は、管理装置5が構成情報収集プログラムを実行することにより作成され、更新される。
同図に示すように、ネットワークI/F管理テーブル900は、ストレージ装置IDフィールド901と、当該ストレージ装置4のネットワークI/F42を一意に特定する識別子を登録するネットワークI/F IDフィールド902と、当該ネットワークI/F42の最大転送帯域を登録する最大転送帯域フィールド903と、ネットワークI/F42に割り当てられたボリュームをストレージ装置4内で一意に特定するための識別子を登録するボリュームIDフィールド904と、当該ボリュームに対するPPCの設定値を登録するPPC設定値フィールド905と、ネットワークI/F42がリモートコピー専用に用いられているか否かを登録するリモートコピー専用フィールド906と、から構成されている。
PPC設定値フィールド905は、ストレージ装置4がPPC機能を備えていない場合、“N/A”が登録され、PPCが単に設定されていない場合は、nullとなる。また、リモートコピー専用フィールド906は、当該ネットワークI/F42がリモートコピー専用である場合、“YES”が登録され、そうでない場合は、nullとなる。
(2−5)キャッシュメモリ管理テーブル1000
図10は、本発明の一実施形態に係る管理装置5におけるキャッシュメモリ管理テーブル1000の一例を示す図である。キャッシュメモリ管理テーブル1000は、ストレージ装置4のキャッシュメモリ45の構成とDCRの設定状況を管理するためのテーブルである。キャッシュメモリ管理テーブル1000は、管理装置5が構成情報収集プログラムを実行することにより、作成され、更新される。
同図に示すように、キャッシュメモリ管理テーブル1000は、ストレージ装置IDフィールド1001と、当該ストレージ装置4のキャッシュメモリ45をストレージ装置4内で一意に特定する識別子を登録するキャッシュメモリIDフィールドと、当該キャッシュメモリの容量を登録する容量フィールドと、当該キャッシュメモリのDCRの設定状況を登録するDCR設定情報フィールドと、から構成される。DCR設定情報フィールドは、キャッシュメモリに常駐化しているボリュームをストレージ装置4内で一意に特定するための識別子を登録するボリュームIDフィールドと、当該ボリュームの容量を登録するボリューム容量フィールドとを含んでいる。
ストレージ装置4がDCR機能を備えていない場合、DCR設定情報フィールドの各サブフィールドには、“N/A”が登録され、また、DCRが設定されていない場合は、各サブフィールドは、nullとなる。
(2−6)LUSE管理テーブル1000
図11は、本発明の一実施形態に係る管理装置5におけるLUSE管理テーブル1000の一例を示す図である。LUSE管理テーブル1000は、ストレージ装置4が備えるLUSE機能の設定状況を管理するためのテーブルである。LUSE管理テーブルは、管理装置5が構成情報収集プログラムを実行することにより、作成され、更新される。
同図に示すように、LUSE管理テーブル1000は、ストレージ装置IDフィールド1001と、当該ストレージ装置内のLUSEボリュームをストレージ装置4内で一意に特定する識別子を登録するLUSEボリュームIDフィールド1002と、LUSEボリュームの構成情報を登録するLUSE構成情報フィールド1003と、から構成されている。LUSE構成情報フィールド1003は、LUSEボリュームを構成するボリュームをストレージ装置4内で一意に特定するための識別子を登録するボリュームIDフィールド10031と、当該ボリュームの論理記憶容量を登録する容量フィールド10032と、当該ボリュームを構成するアレイグループをストレージ装置4内で一意に特定するための識別子を登録するAG IDフィールド10033で構成されている。
ストレージ装置4がLUSE機能を備えていない場合、LUSEボリュームIDフィールド1002及びLUSE構成情報フィールド1003には、“N/A”が登録され、LUSEが設定されていない場合は、これらのフィールドはnullとなる。
(3)プログラムの説明
(3−1)構成情報収集プログラム521
構成情報収集プログラム521は、管理装置5が管理の対象としているストレージ装置4及びホスト装置3から構成情報を収集するためのプログラムである。構成情報収集プログラム521は、管理装置5のプロセッサの制御の下、定期的に実行される。あるいは、構成情報収集プログラム521は、システム管理者からの実行指示や、管理装置5における他のプログラムからの呼び出しに従って、実行が開始される。
具体的には、構成情報収集プログラム521は、装置管理テーブル500を参照し、装置IDフィールド501に登録された全てのストレージ装置4及びホスト装置3に対して、IPアドレスフィールド504のIPアドレスを用いて、構成情報要求を発行する。構成情報要求を受け付けたストレージ装置4は、ストレージ構成プログラムの実行により、自身の構成情報を収集して、これを管理装置5に送信する。同様に、構成情報要求を受け付けたホスト装置3は、ホスト構成プログラムの実行により、自身の構成情報を収集して、これを管理装置5に送信する。構成情報収集プログラム521は、自身が管理対象としている各装置から送信される構成情報に基づいて、各種の管理テーブル、すなわち、ボリューム割当て管理テーブル600、記憶領域構成管理テーブル700、ペア管理テーブル800、ネットワークI/F管理テーブル900、キャッシュメモリ管理テーブル1000、及びLUSE管理テーブル1100の該当フィールドを更新する。
(3−2)機能設定状況監視プログラム522の動作の説明
機能設定状況監視プログラム522は、ストレージ装置4が備えるリモートコピー機能により定義されたペアボリュームを有する異なるストレージ装置4間で、設定した機能属性を比較して、設定した機能属性が異なると判断する場合に、システム管理者に対して異なる内容を通知するプログラムである。機能設定指示プログラム523は、例えば、図12に示すようなユーザインターフェースを介してシステム管理者から機能属性の設定要求が入力されることにより、実行される。本明細書では、ボリュームに係る機能についての属性の設定とその設定解除を、単に、機能属性の設定、または、機能設定と呼ぶことにする。
図13は、本発明の一実施形態に係る管理装置5における機能設定状況監視プログラム522の動作を説明するためのフローチャートである。機能設定状況監視プログラム522は、管理装置5によって定期的に実行され、または、システム管理者からの指示によって実行される。
同図に示すように、機能設定状況監視プログラム522は実行を開始すると、まず、構成情報収集プログラムを呼び出して、これにより、各種の管理テーブル、すなわち、ボリューム割当て管理テーブル600、記憶領域構成管理テーブル700、ペア管理テーブル800、ネットワークI/F管理テーブル900、キャッシュメモリ管理テーブル1000、LUSE管理テーブル1100を最新の内容に更新する(STEP1301)。
機能設定状況監視プログラム522は、次に、ペア管理テーブル800を参照し、ペア関係が定義されている稼働ボリュームの中から稼働ボリュームを一つ抽出するとともに(STEP1302)、当該抽出した稼働ボリュームのペアボリュームを待機ボリュームとして選択する(STEP1303)。
具体的には、機能設定状況監視プログラム522は、ペア管理テーブル800のコピーロールフィールド803が“ACTIVE”であるボリュームIDフィールド802に登録されたボリュームを稼働ボリュームとして抽出するとともに、そのペアボリュームIDフィールド806に登録されたボリュームを待機ボリュームとして抽出する。例えば、機能設定状況監視プログラム522は、図8に示したペア管理テーブル800に従えば、ボリューム“VOL001”を稼働ボリュームとして、また、ボリューム“VOL002”を待機ボリュームとして抽出することになる。この場合、機能設定状況監視プログラム522は、さらにボリューム割当て管理テーブル600を参照して、同一のアプリケーションプログラムに利用され、かつ、同一の論理ドライブが割り当てられたボリュームのそれぞれを稼働ボリューム及び待機ボリュームとして抽出するようにしてもよい。これにより、ホスト装置3上の同一のパス交替プログラムによって選択的に切り替えられるI/Oアクセスパスを持つペアボリュームが抽出されることになる。
続いて、機能設定状況監視プログラム522は、装置管理テーブル500を参照し、当該抽出した稼動ボリュームを有するストレージ装置が備える機能を機能IDフィールド505から一つ抽出する(STEP1304)。
次に、機能設定状況監視プログラム522は、抽出した稼動ボリューム及び待機ボリュームについての抽出した機能属性の設定が同等であるか否かを判断する(STEP1305)。
機能設定状況監視プログラム522は、抽出した機能属性の設定が同等でないと判断する場合、図14に示すように、稼動ボリューム及び待機ボリュームについての当該機能属性の設定内容が異なっていること示す警告画面をシステム管理者に提示する(STEP1306)。
次に、機能設定状況監視プログラム522は、ストレージ装置5に備わっている全ての機能を抽出したか否かを判断し(STEP1307)、まだ、抽出していない機能がある場合(STEP1307のNo)には、STEP1304の処理に戻る。また、機能設定状況監視プログラム522は、全ての機能を抽出したと判断する場合には(STEP1307のYes)、さらに全ての稼働ボリュームを抽出したか否かを判断する(STEP1308)。抽出していない稼働ボリュームがある場合(STEP1308のNo)、STEP1302の処理に戻る。機能設定状況監視プログラム522は、全ての稼働ボリュームを抽出した場合(STEP1308のYes)、機能設定状況監視処理を終了する。
(4)動作例
次に、上述した内容を有する各種の管理テーブルに基づいて、機能設定状況監視プログラム522を実行する管理装置5の動作例を説明する。
管理装置5は、各種の管理テーブルを更新した後、ペア管理テーブル800を参照して、ストレージ装置ID“ST1”で識別されるストレージ装置4のボリュームID“VOL001”で識別されるボリュームを稼動ボリュームとして選択する。以下では、ストレージ装置4のボリュームを、ストレージ装置ID及びボリュームIDの組み合せ“(ST1.VOL001)”で表記する。続いて、管理装置5は、待機ボリュームとしてST2.VOL002を抽出する。管理装置5は、さらに、装置管理テーブル500における装置ID“ST1”の機能IDフィールド505から、ストレージ装置4の機能として“PPC”を抽出する。
この場合は、管理装置5は、ストレージネットワークI/F管理テーブル900のPPC設定値フィールド905を参照し、“ST1.VOL001”と“ST2.VOL002”とのPPC設定値を比較する。すなわち、“ST1.VOL001”のPPC設定値は、200MB bpsであり、“ST2.VOL002”のそれは、nullであるので、管理装置5は、“ST1.VOL001”と“ST2.VOL002”とは、PPC設定値が異なることをシステム管理者に警告する。
管理装置5は、装置管理テーブル500における機能ID“PPC”を処理済みに設定して、当該ストレージ装置4の次の機能として機能ID“DCR”を抽出する。
この場合は、管理装置5は、キャッシュメモリ管理テーブル1000の容量フィールド10042を参照し、“ST1.VOL001”と“ST2.VOL002”のDCR設定状況を比較する。すなわち、“ST1.VOL001”のDCR設定情報はなく、“ST2.VOL002”のDCR設定情報は容量“500MB bps”と設定されているため、“ST1.VOL001”と“ST2.VOL002”とは、DCRの設定内容が異なることをシステム管理者に警告する。
次に、管理装置5は、装置管理テーブル500における機能ID“DCR”を処理済みに設定して、当該ストレージ装置4の次の機能として機能ID“LUSE”を抽出する。
この場合は、管理装置5は、ボリューム割当て管理テーブル600のAG IDフィールド604及びLUSE管理テーブル1100を参照し、“ST1.VOL001”と“ST1.VOL002”とのLUSE構成情報を比較する。すなわち、“ST1.VOL001”と“ST2.VOL002”とはともに、LUSEが設定されたボリュームではないため、管理装置5、警告をする必要がなく、機能ID“LUSE”を処理済みとする。
以上により、管理装置5は、ストレージ装置ID“ST1”で識別されるストレージ装置4の全ての機能を抽出し終えたため、“ST1.VOL001”を処理済みに設定して、他の稼動ボリュームについて同様に処理を行う。ただし、本例では、他の稼働ボリュームは存在しないので、処理を終了する。
図14は、本発明の一実施形態に係る管理装置5における機能設定状況監視プログラム522により提示された警告画面の一例を示す図である。上述した動作例で説明したように、警告画面1400には、“ST1.VOL001”及び“ST2.VOL002”について、PPC機能及びDCR機能の属性が異なることが示されている。
これにより、システム管理者は、ストレージ装置に備わるボリュームに係る機能についての機能属性の設定に際して、整合性がないペアボリュームを認識することができるようになる。
(5)機能設定例(機能設定指示プログラム523)
次に、本実施形態の機能設定例について説明する。
機能設定指示プログラム523は、ストレージ装置4が備える機能についての機能属性の設定要求に際して、当該要求の適用可否をチェックするプログラムである。 より具体的には、機能設定指示プログラム523は、ペアボリュームを有する一方のストレージ装置4に対する所定の機能属性の設定要求を受け付けて、当該ストレージ装置4とペア関係にあるストレージ装置4が備える所定の機能に対する適用可否をチェックして、機能属性の設定が適用可能であると判断する場合に、双方のストレージ装置4に対して要求された機能属性の設定の指示を行う。また、機能設定指示プログラム523は、ペアボリュームを有するそれぞれのストレージ装置4に対して機能属性の設定の指示を行った後、いずれかのストレージ装置4が正常に設定できなかった場合には、正常に設定できたストレージ装置4に対して設定前の機能属性の内容に復元するように再指示を行う。なお、上述したように、機能属性の設定(機能設定)は、機能属性の設定解除を含む意味で用いている。
図15は、本発明の一実施形態に係る管理装置5における機能設定指示プログラム523の動作を説明するためのフローチャートである。
同図に示すように、まず、機能設定指示プログラム523は、システム管理者からユーザインターフェースを介して所定のボリュームを指定したストレージ装置4に対する機能属性の設定要求を受信すると、構成情報収集プログラムを呼び出して、ボリューム割当て管理テーブル600、記憶領域構成管理テーブル700、ペア管理テーブル800、ネットワークI/F管理テーブル900、キャッシュメモリ管理テーブル1000、及びLUSE管理テーブル1100を最新の内容に更新する(STEP1501)。この場合、機能設定指示プログラム523は、設定された機能属性の内容を保持しておく。これは、後述するように、ペア関係にあるボリュームを有するストレージ装置4に対して機能設定を指示した後、一方のストレージ装置4が正常に設定できなかった場合に、正常に設定された他方のストレージ装置4を設定前の機能属性の内容に復元できるようにするためである。
機能設定指示プログラム523は、次に、ペア管理テーブル800を参照し、当該設定要求で指定されたボリュームがペア定義されたボリュームであるか否かを確認する(STEP1502)。この場合、機能設定指示プログラム523は、さらにボリューム割当て管理テーブル600を参照して、同一のアプリケーションプログラムに利用され、かつ、同一の論理ドライブが割り当てられたボリュームのそれぞれを稼働ボリューム及び待機ボリュームとして抽出するようにしてもよい。これにより、ホスト装置3上の同一のパス交替プログラムによって選択的に切り替えられるI/Oアクセスパスを持つペアボリュームが抽出されることになる。
機能設定指示プログラム523は、指定されたボリュームがペアボリュームとして定義されていないと判断する場合、当該ボリュームを有するストレージ装置4に対して機能属性の設定指示コマンドを送信する(STEP1503)。そして、機能設定指示プログラム523は、当該指示コマンドに応答してストレージ装置から送信される設定結果をシステム管理者に通知して(STEP1504)、処理を終了する。
これに対して、当該ボリュームがペアボリュームとして定義されていると判断する場合、機能設定指示プログラム523は、続いて、当該ボリュームに対して機能属性の設定が適用可能か否かを判断する(STEP1505)。
具体的には、機能設定指示プログラム523は、まず、装置管理テーブル500を参照して、指定されたボリュームを有するストレージ装置4が設定要求された機能を備えるか否かをチェックする。設定要求された機能には、例えば、DCR機能、PPC機能、LUSE機能等がある。機能設定指示プログラム523は、ストレージ装置4が当該機能を備えると判断する場合に、当該機能の属性を設定するために必要なリソースを備えているか否かをチェックする。リソースとは、例えば、ストレージ装置4に形成された論理デバイスの空き記憶容量や、キャッシュメモリ45の空きキャッシュ領域容量、ネットワークI/F42の空き帯域幅等である。機能設定指示プログラム523は、該当する管理テーブルを参照して、機能ごとに必要なリソースをストレージ装置4が備えているか否かをチェックする。機能設定指示プログラム523は、ストレージ装置4が当該機能を備え、かつ、必要なリソースを備えている場合に、機能設定が適用可能であると判断する。
例えば、設定要求された機能が“DCR”である場合、機能設定指示プログラム523は、まず、キャッシュメモリ管理テーブル1000を参照して、設定要求で指定されたストレージ装置4のキャッシュメモリ45の空きキャッシュ領域容量を算出し、算出された空きキャッシュ領域容量が、DCRを設定しようとするボリュームの論理記憶容量よりも大きい場合に、DCRの設定に必要なリソースがあると判断する。空きキャッシュ領域容量は、指定されたストレージ装置4についての容量フィールド1003の値から、DCR設定情報の容量フィールド10042の値の総和を引くことにより求められる。
また、設定要求された機能が“PPC”である場合、機能設定指示プログラム523は、ネットワークI/F管理テーブル900を参照して、設定要求で指定されたボリュームが属するネットワークI/F42の空き転送帯域幅を算出し、算出された空き転送帯域幅が設定要求で指定された値よりも大きい場合に、PPCの設定に必要なリソースがあると判断する。空き転送帯域幅は、指定されたストレージ装置4についての最大転送帯域フィールド903の値から、PPC設定値フィールド905の値の総和を引くことにより求められる。
また、設定要求された機能が“LUSE”である場合、機能設定指示プログラム523は、指定された容量及びRAID構成を満たすボリュームが当該ストレージ装置4に存在すれば、LUSEの設定に必要なリソースがあると判断する。
また、設定要求された機能が“ボリューム作成”である場合、指定された容量及びRAID構成を有するアレイグループがあるか、または、作成可能であり、当該アレイグループの空き論理記憶容量が、指定されたボリュームの論理記憶容量より大きければ、ボリュームの作成に必要なリソースがあると判断する。
機能設定指示プログラム523は、STEP1505において適用可能でないと判断する場合、システム管理者に設定不可を通知し(STEP1507)、処理を終了する。これに対して、機能設定指示プログラム523は、STEP1505において適用可能であると判断した場合、さらに、ペア管理テーブル800を参照して、当該ボリュームとペア関係にあるボリュームを抽出して、当該抽出したボリュームについての機能属性の設定が適用可能であるか否かを同様に判断する(STEP1506)。
機能設定指示プログラム523は、ペア関係にあるボリュームに対して要求された機能属性の設定が適用可能でないと判断する場合、システム管理者に設定不可を通知し(STEP1507)、処理を終了する。
これに対して、適用可能であると判断した場合、機能設定指示プログラム523は、当該ボリューム及びそのペアボリュームを有する各ストレージ装置4に要求された機能設定の指示コマンドを送信する(STEP1508)。次に、機能設定指示プログラム523は、当該指示コマンドに応答してストレージ装置4の双方から送信される完了ステータスに基づいて、ペア関係が定義された双方のストレージ装置4が正常に設定されたか否かを確認する(STEP1509)。機能設定指示プログラム523は、双方のストレージ装置4が正常に設定されたことを確認すると、システム管理者に正常終了を通知して(STEP1510)、処理を終了する。
これに対して、少なくともいずれか一方から設定結果の異常が示された場合には、機能設定指示プログラム523は、正常に設定されているストレージ装置4を設定前の状態に戻すための指示コマンドを当該ストレージ装置4に送信する(STEP1511)。これを受けて、当該ストレージ装置4は、各種の管理テーブルの内容を機能属性の設定が要求される前の状態に復元する。そして、機能設定指示プログラム523は、システム管理者に異常内容を通知し(STEP1512)、処理を終了する。
ここで、二重化されるべきボリューム(ペアボリューム)を新たに作成する場合の機能設定指示プログラム523の動作例について説明する。
二重化されるべきボリュームを新たに作成する場合、システム管理者は、稼働ボリューム及び待機ボリュームが作成される稼働ストレージ装置4及び待機ストレージ装置を指定するとともに、稼働ボリューム及び待機ボリュームの容量やRAIDレベルといった記憶領域構成を指定する。機能設定指示プログラム523は、システム管理者から二重化されたボリュームの新規作成要求を受け付けると、要求されたような稼動ボリューム及び待機ボリュームを各ストレージ装置4に作成可能であるか否かをチェックする。
機能設定指示プログラム523は、稼動ボリューム及び待機ボリュームを作成可能であると判断すると、ペア管理テーブル800を参照し、指定された稼動ストレージ装置4と待機ストレージ装置4とにペア関係が定義されているか否かを確認する。
機能設定指示プログラム523は、ペア関係が定義されていることが確認できると、指定された稼動ストレージ装置4及び待機ストレージ装置4に、指定された記憶領域構成に従うボリュームの作成指示を送信する。さらに、機能設定指示プログラム523は、双方のストレージ装置4に備わっているリモートコピー機能により、作成された稼動ボリュームから待機ボリュームにデータをコピーするための指示コマンドをストレージ装置4に送信する。ストレージ装置4は、これを受けて、リモートコピー機能により、初期コピーを行う。その後、機能設定指示プログラム523は、双方のストレージ装置4が正常に設定されたことを示す完了ステータスを確認する。そして、機能設定指示プログラム523は、システム管理者に正常終了を通知して(STEP1512)、処理を終了する。
このように、本実施形態の機能設定指示プログラム523は、二重化されているボリュームについての機能属性の設定を行う際に、当該ボリューム及びこれとペア関係が定義されたボリュームに対する機能属性の設定の適用可否を判断して、双方のボリュームに対して適用可能であると判断した場合に、双方のボリュームについての機能属性の設定をストレージ装置4に対して指示しているので、ペア関係となっている双方のボリューム間で機能属性の整合性を確実に保持することができるようになる。
[第2の実施形態]
上述した第1の実施形態の機能設定指示プログラム523は、指定したボリュームについての機能設定の要求に対して、それとペア関係となっているボリュームを有するストレージ装置において当該機能の実行に必要なリソースが不足している場合、システム管理者に設定不可を通知する。
これに対して、第2の実施形態では、ペア関係となっているボリュームを有するストレージ装置において当該機能の実行に必要なリソースが不足している場合、ある一定の期間、リソースが解放されるのを待つことで、できるだけ多くの要求された機能属性の設定を行うことができる機能設定指示プログラム523’を提供する。
すなわち、本実施形態の機能設定指示プログラム523’は、機能属性の設定要求に対していずれか一方または双方のストレージ装置4に当該機能属性の設定に必要なリソースが不足していると判断する場合、ある一定の期間、必要なリソースが解放されるのを待ち、当該期間内にリソースが解放されて必要なリソースが確保できた場合に、双方のストレージ装置4に機能設定の指示を送信することを特徴とする。
このため、本実施形態の機能設定指示プログラム523’は、ボリュームに係る機能についての機能属性の設定要求に対しては、当該要求を受信した順序で処理する一方、ボリュームに係る機能の設定解除の要求に対する処理を優先的に実行するようにしている。
機能設定指示プログラム523’は、確保すべきリソースをリソース予約管理テーブルに登録し、当該リソース予約管理テーブルを参照して、確保すべきリソースの状況を確認する。
図16及び17は、本発明の一実施形態に係る管理装置5における機能設定指示プログラム523’の動作を説明するためのフローチャートである。
同図に示すように、まず、機能設定指示プログラム523’は、システム管理者からユーザインターフェースを介して所定のボリュームを指定した機能設定要求を受信すると、構成情報収集プログラムを呼び出して、ボリューム割当て管理テーブル600、記憶領域構成管理テーブル700、ペア管理テーブル800、ネットワークI/F管理テーブル900、キャッシュメモリ管理テーブル1000、及びLUSE管理テーブル1100を最新の内容に更新する(STEP1601)。
機能設定指示プログラム523’は、次に、ペア管理テーブル800を参照し、要求で指示されたボリュームが二重化されているか否かを判断する(STEP1602)。この場合、機能設定状況監視プログラム522は、さらにボリューム割当て管理テーブル600を参照して、同一のアプリケーションプログラムに利用され、かつ、同一の論理ドライブが割り当てられたボリュームのそれぞれを稼働ボリューム及び待機ボリュームとして抽出するようにしてもよい。
機能設定指示プログラム523’は、指定されたボリュームにペア関係が定義されていないと判断する場合、当該ボリュームを有するストレージ装置4に対して要求された機能属性の設定指示コマンドを送信する(STEP1603)。そして、機能設定指示プログラム523’は、当該指示コマンドに応答してストレージ装置から送信される設定結果をシステム管理者に通知して(STEP1604)、処理を終了する。
当該ボリュームにペア関係が定義されている場合、機能設定指示プログラム523’は、ペア管理テーブル800に従い、当該ボリュームとペア関係にあるボリュームを有するストレージ装置4を抽出する(STEP1605)。
次に、機能設定指示プログラム523’は、要求された機能属性の設定に必要な各種の管理テーブルを参照し、当該ストレージ装置と対のストレージ装置が当該機能設定に必要なリソースを有しているか否かを判断する(STEP1606)。
必要なリソースを有していない判断する場合、機能設定指示プログラム523’は、リトライカウンタiに0をセットして、所定のリトライ回数N−1だけ、以下の処理を繰り返す(STEP1607)。
すなわち、機能設定指示プログラム523’は、まず、管理装置5がリソース解放待ち状態にあることをシステム管理者に通知した後(STEP1608)、予め定められた一定の期間、必要とされるリソースが解放されるのを待つ(STEP1609)。一定の期間待った後、機能設定指示プログラム523’は、再度、要求された機能設定に対応する各種の管理テーブルを参照し、当該ストレージ装置と対のストレージ装置が当該機能設定に必要なリソースを有しているか否かを判断する(STEP1610)。
機能設定指示プログラム523’は、まだリソースが確保できない(タイムアウト)と判断する場合には、リトライカウンタiの値を1つインクリメントして(STEP1607)、同様に、処理を行う(STEP1608〜1610)。リトライカウンタiの値が所定のリトライ回数Nに達した場合、機能設定指示プログラム523’は、システム管理者に設定不可を通知して(STEP1611)、処理を終了する。
STEP1606またはSTEP1610において必要なリソースを有すると判断する場合、機能設定指示プログラム523’は、双方のストレージ装置4に対して要求された機能属性の設定指示コマンドを送信する(図17のSTEP1701)。これを受けて、各ストレージ装置4は、機能属性の設定を実行し、完了ステータスを管理装置4に送信する。機能設定指示プログラム523は、これら双方のストレージ装置から送信される完了ステータスに基づいて、双方のストレージ装置4が正常に設定されたか否かを確認する(STEP1702)。機能設定指示プログラム523’は、双方のストレージ装置4が正常に設定されたことを確認すると、システム管理者に正常終了を通知して(STEP1703)、処理を終了する。
これに対して、いずれか一方から設定結果の異常が示された場合には、機能設定指示プログラム523は、正常に設定されているストレージ装置4を設定前の状態に戻す指示コマンドを当該ストレージ装置4に送信する(STEP1704)。これを受けて、当該ストレージ装置4は、各種の管理テーブルの内容を機能属性の設定が指示される前の状態に戻す。そして、機能設定指示プログラム523は、システム管理者に異常内容を通知し(STEP1705)、処理を終了する。
このように、本実施形態の機能設定指示プログラム523’は、二重化されているボリュームについての機能属性の設定を行う際に、リソースが確保されるまで一定の期間待ち続け、タイムアウト前にリソースが確保された場合には、上述したような機能属性の設定の適用可否を判断している。これにより、ストレージ装置4に対するさまざまな設定作業を通じて流動的に変化するリソースの状況を考慮して、機能属性の設定を行うことができるようになる。
[第3の実施形態]
本実施形態は、ストレージ装置内のボリュームを自身のボリュームに見せかけてホスト装置に提供する「仮想ボリューム機能」を備えるストレージコントローラを含んで構成されるコンピュータシステムにおいて、異なるストレージコントローラ間で二重化されたボリュームに係る機能についての機能属性を管理するものである。
すなわち、仮想ボリューム機能が実行された環境では、ホスト装置上のアプリケーションプログラムが扱う実際のアプリケーションデータ(実データ)は、ストレージ装置内の物理デバイス上に形成されたボリュームに格納され、当該ボリュームに対応付けられたストレージコントローラが提供するボリュームには、実データを格納したストレージ装置内のボリュームに対するマッピング情報が格納される。
以下の説明では、ストレージ装置内の物理デバイス上に形成されたボリュームを「実ボリューム」(R−VOL)と呼び、当該実ボリュームに対応付けられた、ストレージコントローラがホスト装置に提供するボリュームを「仮想ボリューム」(V−VOL)と呼ぶことにする。
また、ホスト装置3のアプリケーションプログラムが利用している仮想ボリュームを稼動仮想ボリュームと呼び、稼動仮想ボリュームを提供するストレージコントローラ6を稼動ストレージコントローラと呼ぶことにする。さらに、稼動仮想ボリュームに対応付けられた実ボリュームを共有する、すなわち当該実ボリュームに対応付けられた、他のストレージコントローラ6が提供する仮想ボリュームを待機仮想ボリュームと呼び、待機仮想ボリュームを提供するストレージコントローラ6を待機ストレージコントローラと呼ぶことにする。
(1)システム構成
(1−1)コンピュータシステムの構成
図18は、本発明の一実施形態に係るコンピュータシステム1の構成を示す図である。本実施形態に係るコンピュータシステム1は、物理デバイスを備えるストレージ装置を制御する少なくとも2以上の外部のストレージコントローラ6が仮想ボリューム機能を用いて、ストレージ装置内の論理ボリュームを仮想ボリュームとしてホスト装置に提供する。
すなわち、同図に示すように、コンピュータシステム1は、第1のストレージネットワーク21を介してホスト装置3に接続された2台以上のストレージコントローラ6と、第2のストレージネットワーク22を介してストレージコントローラ6に外部接続されたストレージ装置4’とを含んでいる。コンピュータシステム1はまた、管理ネットワーク2Bを介してホスト装置3、ストレージ装置4’、及びストレージコントローラ6に接続された管理装置5を含んでいる。
第1のストレージネットワーク21は、上述したストレージネットワーク2Aと同様、ホスト装置3とストレージコントローラ6との間のI/Oアクセスに基づく通信に使用される。また、第2のストレージネットワーク22は、ストレージコントローラ6とストレージ装置4との間のI/Oアクセスに基づく通信に使用される。本実施形態では、第1のストレージネットワーク21及び第2のストレージネットワーク22は、ファイバーチャネルプロトコルベースのSAN(FC−SAN)で構成されているものとする。同図では、これら第1のストレージネットワーク21及び第2のストレージネットワーク22を別々のものとして示しているが、同一のストレージネットワークで構成されてもよい。ただし、同一のストレージネットワークで構成された場合であっても、ホスト装置3は、ストレージ装置4に直接的にI/Oアクセスするのではなく、ストレージコントローラ6の制御の下、ストレージ装置4にI/Oアクセスするように構成される。
管理ネットワーク2Bは、管理装置5がコンピュータシステム1における各装置の管理を行う際の通信に使用される。本実施形態では、管理ネットワーク2Bは、IPプロトコルベースのLANで構成されているものとする。
本実施形態のコンピュータシステム1においても同様に、ホスト装置3は、交替パスプログラムを実装することができる。従って、稼動ストレージコントローラに障害や保守作業が発生し、ホスト装置3が稼動仮想ボリュームを利用できなくなる場合、ホスト装置3上の交替パスプログラムは、待機ストレージコントローラが提供する待機仮想ボリュームにI/Oアクセスパスを切り替えることによって、アプリケーションプログラムの無停止稼働を実現する。
なお、本実施形態では、ストレージ装置4’内の実ボリュームに係る機能は、当該実ボリュームに対応付けられた仮想ボリュームを提供するストレージコントローラ6が備える機能についての機能属性の設定に依存している。
(1−2)ストレージコントローラの構成
図19は、本発明の一実施形態に係るコンピュータシステム1におけるストレージコントローラ6の構成を示す図である。同図に示すように、ストレージコントローラ(SC)6は、ストレージコントローラ6全体の制御を行う内部コントローラ61と、内部コントローラ61のメインメモリとして機能するメモリ62と、第1のストレージネットワーク21に接続するための1または複数のネットワークインターフェース63と、第2のストレージネットワーク22に接続するための1または複数の外部接続ポート64と、キャッシュメモリ65と、管理ネットワーク2Bに接続するための管理ポート66と、を含んで構成されている。
メモリ62は、例えば、RAMやROM等から構成され、内部コントローラ61の図示しないプロセッサの利用に供される各種のプログラムやデータを記憶する。各種のプログラムは、その一部又は全部が図示しない補助記憶装置から、適宜、メモリ62にロードされる。同図では、とりわけ、I/O処理プログラム621、ストレージ構成プログラム622、及び仮想ボリュームプログラム623が示されている。
I/O処理プログラム621及びストレージ構成プログラム622の基本的機能は、上述したI/O処理プログラム421及びストレージ構成プログラム422と同じであり、外部に接続されたストレージ装置4’に対する処理に関わる部分が異なっているだけである。
仮想ボリュームプログラム623は、ストレージ装置4’内のボリューム(実ボリューム)を、ストレージコントローラ6内の仮想ボリュームとしてホスト装置3に提供する。ストレージコントローラ6は、仮想ボリュームプログラム623を実行することにより、ストレージ装置4の実ボリュームに対する仮想ボリュームを形成し、仮想ボリュームに対するホスト装置3からのI/Oアクセスがあると、当該I/Oアクセスが示す仮想ボリューム上のアドレスを、実ボリューム上のアドレスに変換して、実ボリュームに対するI/Oアクセスを実現する。
(1−3)管理装置5の構成
図20は、本発明の一実施形態に係る管理装置5の構成を示す図である。本実施形態の管理装置5の構成は、上記実施形態のそれと同じであるが、実行されるプログラム及び管理テーブルが異なっている。具体的には、本実施形態の管理装置5は、記憶領域構成管理テーブル700及びペア管理テーブル800をメモリに保持する代わりに、外部接続構成管理テーブル2100を保持している。
(2)外部接続構成管理テーブル2100
図21は、本発明の一実施形態に係る管理装置5における外部接続構成管理テーブル2100の一例を示す図である。外部接続構成管理テーブルは、ストレージコントローラ6とストレージ装置4との関係、及びストレージコントローラ6が提供する仮想ボリュームと実ボリュームとの関係を管理するテーブルである。
同図に示すように、外部接続構成管理テーブル2100は、ストレージコントローラ6を管理装置5内で一意に特定するための識別子を登録するストレージコントローラIDフィールド2101と、当該ストレージコントローラ6内の仮想ボリュームをストレージコントローラ6内で一意に識別するための識別子を登録する仮想ボリュームIDフィールド2102と、当該仮想ボリュームの実ボリュームを格納する外部接続ストレージ装置を管理装置5内で一意に特定するための識別子を登録するための外部接続ストレージ装置IDフィールド2103と、当該仮想ボリュームの実ボリュームを当該外部接続ストレージ装置4内で一意に特定するための実ボリュームIDフィールド2104と、から構成されている。
ストレージコントローラIDフィールド2101と外部接続ストレージ装置IDフィールド2103以外のフィールド(つまり、本例では、仮想ボリュームIDフィールド2102及び実ボリュームIDフィールド2104)がnullの場合、当該ストレージコントローラ6と当該外部接続ストレージ装置とが外部接続の関係(対応関係)にあることを示す。
管理装置6は、構成情報収集プログラム523を実行することにより、外部接続構成管理テーブル2100を作成、変更する。
(3)プログラムの動作説明
以下では、実ボリュームを共有する全ての仮想ボリュームに係る機能についての機能属性を管理するプログラムについて説明する。
(3−1)構成情報収集プログラム521
構成情報収集プログラム521は、管理の対象としているストレージ装置4及びホスト装置3から構成情報を収集するためのプログラムである。構成情報収集プログラム521は、管理装置5のプロセッサの制御の下、定期的に実行される。あるいは、構成情報収集プログラム521は、システム管理者からの実行指示や、管理装置5における他のプログラムからの呼び出しに従って、実行が開始される。
具体的には、構成情報収集プログラム521は、装置管理テーブル500を参照し、装置IDフィールド501に登録された全てのストレージコントローラ6及びホスト装置3に対して、IPアドレスフィールド504のIPアドレスを用いて、構成情報要求を発行する。構成情報要求を受け付けたストレージコントローラ6は、ストレージ構成プログラムを実行することにより、自身の構成情報を収集して、これを管理装置5に送信する。同様に、構成情報要求を受け付けたホスト装置3は、ホスト構成プログラムの実行により、自身の構成情報を収集して、これを管理装置5に送信する。構成情報収集プログラム521は、自身が管理対象としている各装置から送信される構成情報に基づいて、各種の管理テーブル、すなわち、ボリューム割当て管理テーブル600、外部接続構成管理テーブル2100、ネットワークI/F管理テーブル900、キャッシュメモリ管理テーブル1000、及びLUSE管理テーブル11の該当フィールドを更新する。
(3−2)機能設定状況監視プログラム522
本実施形態の機能設定状況監視プログラム522は、外部接続ストレージ装置に適用したものである。本実施形態の機能設定状況監視プログラム522は、実ボリュームを共有する仮想ボリュームに係る機能属性の設定する際に、上記実施形態と同様に、機能属性の整合性を確認する。
図22は、本発明の一実施形態に係る管理装置5における機能設定状況監視プログラム522の動作を説明するためのフローチャートである。
すなわち、同図に示すように、機能設定状況監視プログラム522は、実行を開始すると、構成情報収集プログラム523を呼び出して、各種の管理テーブルを最新の内容に更新する(STEP2201)。
機能設定状況監視プログラム522は、次に、外部接続構成管理テーブル2100を参照し、実ボリュームを共有する稼動仮想ボリュームを一つ抽出する(STEP1302)。さらに、機能設定状況監視プログラム522は、当該抽出した稼働仮想ボリューム及びこれに対応する実ボリュームを共有する待機仮想ボリュームを抽出する(STEP2203)。
続いて、機能設定状況監視プログラム522は、稼動ストレージコントローラ6が提供する仮想ボリュームに係る機能を一つ抽出する(STEP2204)。そして、機能設定状況監視プログラム522は、稼動仮想ボリューム及び待機仮想ボリュームに係る当該機能属性の設定が同等であるか否かを確認する(STEP2205)。
機能設定状況監視プログラム522は、抽出した機能属性が同等でないと判断する場合、稼動仮想ボリュームと待機仮想ボリュームとの当該機能属性の設定内容が異なっていること示す警告画面をシステム管理者に提示する(STEP2206)。
機能設定状況監視プログラム522は、仮想ボリュームに係る全ての機能を抽出したか否かを判断し(STEP2207)、まだ、抽出していない機能がある場合(STEP2207のNo)には、STEP2204の処理に戻る。また、機能設定状況監視プログラム522は、全ての機能を抽出した判断する場合には(STEP2207のYes)、さらに全ての稼働仮想ボリュームを選択したか否かを判断する(STEP2208)。抽出していない稼働仮想ボリュームがある場合(STEP2208のNo)、STEP2202の処理に戻る。機能設定状況監視プログラム522は、全ての稼働仮想ボリュームを抽出した場合(STEP2208のYes)、機能設定状況監視処理を終了する。
(3−2)機能設定指示プログラム523
本実施形態の機能設定指示プログラム523は、ストレージコントローラ6の外部に接続されたストレージ装置4’により構成されるストレージシステムに適用されるように、上述した機能設定指示監視プログラム521に修正を加えたものである。すなわち、本実施形態の機能設定指示プログラム523は、実ボリュームを共有する仮想ボリュームに係る機能属性の設定する際に、上記実施形態と同様に、機能属性の整合性を確認し、整合性がないと判断する場合に、設定前の機能属性に復元することにより、機能属性を維持する。
図23は、本発明の一実施形態に係る管理装置5における機能設定指示プログラム523の動作を説明するためのフローチャートである。
同図に示すように、まず、機能設定指示プログラム523は、システム管理者からユーザインターフェースを介して所定のボリュームを指定した機能設定要求を受信すると、構成情報収集プログラム523を呼び出して、構成情報を収集し、各種の管理テーブルを最新の内容に更新する(STEP2301)。
機能設定指示プログラム523は、次に、外部接続構成管理テーブル2100を参照し、機能属性の設定要求で指定された仮想ボリュームに対応する実ボリュームを共有する仮想ボリュームがあるか否かを確認する(STEP2302)。
機能設定指示プログラム523は、指定された仮想ボリュームに対応する実ボリュームを共有する仮想ボリュームがないと判断する場合、当該指定された仮想ボリュームを扱うストレージコントローラ6に対して機能属性の設定指示コマンドを送信する(STEP2303)。そして、機能設定指示プログラム523は、当該指示に応答してストレージコントローラ6から送信される設定結果をシステム管理者に通知して(STEP2304)、処理を終了する。
これに対して、指定された仮想ボリュームに対応する実ボリュームを共有する仮想ボリュームがあると判断する場合、機能設定指示プログラム523は、機能属性の設定要求で指定された仮想ボリュームを提供するストレージコントローラ6に対して要求された機能属性の設定が適用可能であるか否かを判断する(STEP2304)。当該STEP2304における判断処理は、上述したストレージ装置4に対する要求された機能属性の設定の適用可否判断と同様のものを適用することができる。
要求された機能属性の設定が適用可能でないと判断する場合、機能設定指示プログラム523は、システム管理者に設定不可を通知し(STEP2307)、処理を終了する。また、機能設定指示プログラム523は、STEP2305において適用可能であると判断した場合、さらに、外部接続構成管理テーブル2100を参照して、当該指定された仮想ボリュームと実ボリュームを共有する仮想ボリュームを提供するストレージコントローラ6を抽出し、当該抽出したストレージコントローラ6に対する要求された機能設定が適用可能であるか否かを判断する(STEP2306)。
機能設定指示プログラム523は、実ボリュームを共有する仮想ボリュームについて要求された機能設定が適用可能でないと判断する場合、システム管理者に設定不可を通知し(STEP2307)、処理を終了する。
これに対して、適用可能であると判断した場合、機能設定指示プログラム523は、機能属性の設定要求で指定された仮想ボリュームを提供するストレージコントローラ6及び当該仮想ボリュームと実ボリュームを共有する仮想ボリュームを提供する全てのストレージコントローラ6に対して要求された機能属性の設定の指示コマンドを送信する(STEP2308)。次に、機能設定指示プログラム523は、当該指示コマンドに応答して全てのストレージコントローラ6から送信される完了ステータスに基づいて、全てのストレージコントローラ6が正常に設定されたか否かを確認する(STEP2309)。機能設定指示プログラム523は、双方のストレージ装置4が正常に設定されたことを確認すると、システム管理者に正常終了を通知して(STEP2310)、処理を終了する。
これに対して、いずれか1つのストレージコントローラ6から設定結果の異常が示された場合には、機能設定指示プログラム523は、正常に設定されているストレージコントローラ6を設定前の状態に戻す指示を当該ストレージコントローラ6に送信する(STEP2311)。これを受けて、当該ストレージ装置4は、各種の管理テーブルの内容を機能設定が要求される前の状態に戻す。そして、機能設定指示プログラム523は、システム管理者に異常内容を通知し(STEP2312)、処理を終了する。
これにより、実ボリュームを共有する全ての仮想ボリュームに係る機能について、その機能属性の整合性を保つことが可能となる。
なお、上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態に限定する趣旨のものではない。本発明は、その要旨の範囲内でさまざまな形態で実施することができる。
例えば、上述したリソース確保のための機能設定指示プログラム523’を、ストレージコントローラ6の外部に接続されたストレージ装置4’により構成されるストレージシステムに適用できるように、修正することは本発明の要旨の範囲内である。