以下、本発明の実施の形態を、図面を参照して説明する。
最初に、第1の実施の形態について説明する。
図1は、第1の実施の形態の計算機システムの構成を示すブロック図である。
本実施の形態の計算機システムは、ストレージシステム101、ストレージシステム102、ストレージシステム103、ストレージエリアネットワーク(SAN)110、業務サーバ120、管理サーバ130及び管理用ネットワーク140によって構成される。
ストレージシステム101〜103は、業務サーバ120によって書き込まれたデータを格納する。各ストレージシステム101等のインターフェース(I/F)314は、SAN110に接続され、SAN110を介して業務サーバ120又は他のストレージシステム101等と通信する。一方、各ストレージシステム101等の管理用I/F313は、管理用ネットワーク140に接続され、管理用ネットワーク140を介して、管理サーバと通信する。
本実施の形態の計算機システムは、三つのストレージシステム101、102及び103を含むが、本発明は、任意の数のストレージシステムを含む計算機システムに適用することができる。ストレージシステム101等の構成については、後で詳細に説明する(図3参照)。
SAN110は、ストレージシステム101等と業務サーバ120とを接続するネットワークである。本実施の形態のSAN110には、一つ以上のファイバーチャネルスイッチ(FC−SW)(図示省略)によって構成されるスイッチファブリックが適用される。ただし、他の接続形態が適用された場合にも、実施することができる。
インターフェース(I/F)111は、ストレージシステム101等及び業務サーバ120と接続されるインターフェースである。具体的には、I/F111は、FC−SWのポートである。
業務サーバ120は、ユーザの業務に使用される計算機である。本実施の形態の業務サーバ120は、CPU121、入出力装置122、I/F123及びメモリ124によって構成される。
CPU121は、メモリ124に格納されたプログラムを実行するプロセッサである。
入出力装置122は、ユーザからの入力を受け付け、ユーザに情報を出力する装置である。入出力装置122は、例えば、キーボード、マウス及び表示画面(図示省略)等を含む。
I/F123は、SAN110のI/F111と接続され、SAN110を介してストレージシステム101等と通信するインターフェースである。
メモリ124は、例えば、半導体メモリであり、アプリケーションソフトウエア125を格納する。
アプリケーションソフトウエア125は、CPU121によって実行されるプログラムである。業務サーバ120のユーザは、アプリケーションソフトウエア125を実行することによって業務を遂行する。このとき、業務サーバ120は、必要に応じて、ストレージシステム101等にデータを書き込み、又は、ストレージシステム101等に格納されたデータを読み出す。
管理サーバ130は、ストレージシステム101等を管理する計算機である。管理サーバ130の管理用I/F203は、管理用ネットワーク140に接続され、管理用ネットワーク140を介してストレージシステム101等と通信する。管理サーバ130の構成については、後で詳細に説明する(図2参照)。
管理用ネットワーク140は、管理サーバ130及び各ストレージシステム101等を接続し、これらの間の通信を媒介するネットワークである。本実施の形態の管理用ネットワーク140は、いわゆるLAN(Local Area Network)である。
図2は、第1の実施の形態の管理サーバ130の構成を示すブロック図である。
本実施の形態の管理サーバ130は、CPU201、入出力装置202、管理用I/F203及びメモリ204によって構成される。
CPU201は、メモリ204に格納されたプログラムを実行するプロセッサである。
入出力装置202は、ユーザからの入力を受け付け、ユーザに情報を出力する装置である。入出力装置202は、例えば、キーボード、マウス及び表示画面(図示省略)等を含む。
管理用I/F203は、管理用ネットワーク140を介してストレージシステム101等と通信するインターフェースである。
メモリ204は、例えば、半導体メモリである。メモリ204には、CPU201によって実行される各種の制御プログラム等及びそれらの制御プログラム等が実行される際に参照されるテーブルが格納される。本実施の形態のメモリ204には、少なくとも、ライセンス移動制御プログラム205、マイグレーション管理プログラム206、ストレージ管理プログラム207、マイグレーション管理テーブル208、構成管理テーブル209、使用ライセンステーブル210、ライセンス種別テーブル211及びライセンス移動管理テーブル212が格納される。
ストレージ管理プログラム207は、各ストレージシステム101等のリソース情報を収集する。収集されたリソース情報は、構成管理テーブル209に登録される(図5参照)。
マイグレーション管理プログラム206は、ストレージシステム間のデータのマイグレーションを指示する(図10参照)。マイグレーションの実行予定に関する情報は、マイグレーション管理テーブル208に登録される(図6参照)。
マイグレーションとは、データをマイグレーション元の論理ボリューム331からマイグレーション先の論理ボリューム331に移動することである。具体的には、マイグレーションが実行されると、マイグレーション元(転送元)の論理ボリューム331のデータがマイグレーション先(転送先)の論理ボリュームに転送され、格納される。マイグレーションが実行された後、マイグレーション元の論理ボリューム331には、データが残らない。
マイグレーション管理プログラム206は、このようなマイグレーションによるデータの転送を指示するプログラムである。
ライセンス種別テーブル211には、計算機システム内で適用されるライセンス体系が登録される(図7参照)。
使用ライセンステーブル210には、各ストレージシステム101等で使用されているプログラムのライセンスに関する情報が登録される(図8参照)。
ライセンス移動制御プログラム205は、上記の各テーブルの情報を参照して、ストレージシステム間のライセンスの移動を制御する(図11から図16参照)。ライセンス移動制御プログラム205によって決定されたライセンスの移動の予定に関する情報は、ライセンス移動管理テーブル212に登録される(図9参照)。
本実施の形態において、ライセンスとは、ストレージシステムプログラム318を使用する権利である。ライセンスの存在は、所定のライセンス情報(ライセンスキー)によって証明される。ライセンスキーとは、例えば、ストレージシステムプログラムのベンダから与えられた一意の文字又は数字の列である(後述)。
ライセンスは、ライセンスキーを移動することによって移動する。例えば、ストレージシステム101があるプログラムのライセンスを保持している場合、ストレージシステム101は、そのライセンスを証明するライセンスキーを保持している。そのライセンスキーがストレージシステム102に移動すると、ストレージシステム101は、そのプログラムを使用する権利を失い、代わりに、ストレージシステム102がその権利を取得する。
なお、本実施の形態では、上記のプログラム及びテーブルが管理サーバ130に格納されるが、これらがいずれかのストレージシステム101等又は仮想化装置(図示省略)に格納されてもよい。
図3は、第1の実施の形態のストレージシステム101の構成を示すブロック図である。
ストレージシステム102及び103の構成は、ストレージシステム101と同様であるため、説明を省略する。
本実施の形態のストレージシステム101は、ディスク装置330及びストレージコントローラ310からなる。
ディスク装置330には、業務サーバ120から書き込まれたデータが格納される。ディスク装置330は、一つ以上のディスクドライブ(図示省略)によって構成される。ディスク装置330の記憶領域は、一つ以上の論理ボリューム331に分割される。論理ボリューム331は、業務サーバ120が論理的なディスクドライブとして認識する領域である。
ストレージコントローラ310は、ディスク装置330へのデータの書き込み及びディスク装置330からのデータの読み出しを制御する。ストレージコントローラ310は、CPU311、キャッシュ312、管理用I/F313、I/F314及びメモリ315からなる。
CPU311は、メモリ315に格納されたプログラムを実行するプロセッサである。
キャッシュ312は、例えば半導体メモリであり、ディスク装置330に書き込まれるデータ又はディスク装置330から読み出されたデータを一時的に格納する。
管理用I/F313は、管理用ネットワーク140を介して管理サーバ130と通信するインターフェースである。
I/F314は、SAN110のI/F111と接続され、SAN110を介して業務サーバ120と通信するインターフェースである。
メモリ315は、例えば、半導体メモリである。メモリ315には、CPU311によって実行されるプログラム及び参照される情報が格納される。メモリ315に格納されるプログラムは、少なくとも、管理サーバエージェント316、ノード間マイグレーションプログラム317、ストレージシステムプログラム318及びライセンス移動プログラム319である。メモリ315に格納される情報は、少なくとも、ライセンステーブル320である。
管理サーバエージェント316は、ストレージシステム101に関する情報を管理サーバ130に通知するプログラムである。
ノード間マイグレーションプログラム317は、論理ボリューム331のデータを他のストレージシステム102等にマイグレーションするプログラムである。
ストレージシステムプログラム318は、ストレージシステムベースのプログラムであり、例えば、論理ボリュームの作成・削除、データの移動・再配置、論理ボリュームへのホストアクセスの制御、リモートコピー又はローカルコピー等を実行する。メモリ315には、複数のストレージシステムプログラム318が格納されてもよい。
ライセンス移動プログラム319は、他のストレージシステム102等とライセンステーブル320の情報をやり取りし、ライセンスを移動するプログラムである(図17参照)。
ライセンステーブル320には、ストレージシステム101が保持するストレージシステムプログラム318のライセンスに関する情報が登録される(図4参照)。
次に、本実施の形態のストレージシステム101等及び管理サーバ130に格納されるテーブルについて説明する。
図4は、第1の実施の形態のライセンステーブル320の説明図である。
図4は、例として、ストレージシステム101のライセンステーブル320を示す。ストレージシステム101のライセンステーブル320は、ストレージシステム101にインストールされたストレージシステムプログラム318のライセンスを管理するテーブルである。具体的には、ライセンステーブル320には、ストレージシステム101にインストールされた全てのストレージシステムプログラム318について、ストレージシステム101が保持する全てのライセンスに関する情報が登録される。
図4のライセンステーブル320には、二つのライセンスに関する情報が登録されている。これは、本実施の形態のストレージシステム101が二つのライセンスを保持していることを意味する。
ライセンステーブル320において、ライセンスキー401は、ライセンスを購入したときにライセンスごとにベンダから与えられる文字又は数字の列である。図4の例では、ライセンスキー401として、「XXXXA」及び「XXXXB」が登録されている。以下、ライセンスキー401が「XXXXA」であるライセンスを、単にライセンス「XXXXA」と記載する。他のライセンスキー401についても同様である。
プログラム名402は、各ライセンスの対象となるストレージシステムプログラムの名前である。図4の例では、「XXXXA」及び「XXXXB」の二つのライセンスキー401に対応するプログラム名402として、いずれも、「PP1」が登録されている。これは、二つのライセンスがいずれも「PP1」という名前のストレージシステムプログラム318を対象としていることを意味する。以下、プログラム名402が「PP1」であるストレージシステムプログラム318を、単にストレージシステムプログラム「PP1」と記載する。他のプログラム名402についても同様である。
適用対象ボリュームID403は、各ライセンスが適用される論理ボリューム331の識別子(ID)である。図4の例では、ライセンスキー401「XXXXA」に対応する適用対象ボリュームID403が「VOL1」及び「VOL2」である。これは、ライセンス「XXXXA」が、ストレージシステムプログラム「PP1」を論理ボリューム「VOL1」及び「VOL2」において使用する(すなわち、論理ボリューム「VOL1」及び「VOL2」を対象としてストレージシステムプログラム「PP1」を使用する)ことについて適用されていることを意味する。なお、論理ボリュームID403が「VOL1」である論理ボリューム331を、単に論理ボリューム「VOL1」と記載する。他の論理ボリュームID403についても同様である。
一方、ライセンスキー401「XXXXB」に対応する適用対象ボリュームID403は、「未使用」である。これは、ライセンス「XXXXB」が、いずれの論理ボリューム331についても適用されていないことを意味する。すなわち、この時点で、ライセンス「XXXXB」は、未使用である。
最大容量404は、各ライセンスを適用することが許された論理ボリューム331の容量の最大値である。本実施の形態では、固定定額方式のライセンス体系が適用される。例えば、システム管理者が最大容量404を15テラバイト(TB)とするライセンスを購入した場合、そのライセンスに基づいて、最大15TBまでの容量の論理ボリューム331においてストレージシステムプログラム318を使用することができる。また、一つのライセンスを複数の論理ボリュームに適用する場合、それらの論理ボリュームの容量の合計値が15TB以下であればよい。
図4の例では、「XXXXA」及び「XXXXB」の二つのライセンスキー401に対応する最大容量404として、それぞれ、「15TB」及び「10TB」が登録されている。
使用容量405は、各ライセンスが実際に適用されている論理ボリューム331の容量である。図4の例では、ライセンスキー401「XXXXA」に対応する使用容量405として、「15TB」が登録されている。これは、ライセンス「XXXXA」が適用された論理ボリューム「VOL1」及び「VOL2」の容量の合計値が15TBであることを意味する。この値は、最大容量404の値「15TB」と同じであるため、このライセンス「XXXXA」をさらに他の論理ボリューム331にも適用することはできない。
一方、ライセンス「XXXXB」は、いずれの論理ボリューム331にも適用されていない。このため、ライセンスキー401「XXXXB」に対応する使用容量405として、「0TB」が登録されている。すなわち、このライセンス「XXXXB」を、容量が10TB以下のいずれかの論理ボリューム331に新たに適用することができる。
ストレージシステム102及び103も、上記と同様のライセンステーブル320を保持する。ただし、ストレージシステム102及び103のライセンステーブル320には、それぞれ、ストレージシステム102及び103が保持するライセンスに関する情報が格納される(図示省略)。
図5は、第1の実施の形態の構成管理テーブル209の説明図である。
構成管理テーブル209には、ストレージ管理プログラム207が収集した各ストレージシステム101等のリソース情報が登録される。具体的には、構成管理テーブル209には、ストレージシステム101等に格納される全ての論理ボリューム331に関する情報が、論理ボリューム331ごとに登録される。
図5に示すように、構成管理テーブル209の一つの行が一つの論理ボリューム331に対応する。構成管理テーブル209には、論理ボリューム331ごとに、ストレージシステム名501、モデル502、論理ボリュームID503、論理ボリュームサイズ504、使用プログラム名505及びパス506が登録される。
ストレージシステム名501は、各論理ボリューム331が格納されるストレージシステム101等の識別子である。図5の例では、二つの「ストレージシステム101」、「一つの「ストレージシステム102」及び一つの「ストレージシステム103」が登録されている。これらは、図1のストレージシステム101、102及び103と対応する。「ストレージシステム101」が二つ登録されているのは、ストレージシステム101に二つの論理ボリューム331が格納されているためである。
モデル502は、各ストレージシステム101等のモデル(型式)である。ライセンスの対象となるモデルが限定されている場合があるため、管理サーバ130は、各ストレージシステム101等のモデルを管理する。図5の例では、ストレージシステム101及び102のモデル502が「A」であり、ストレージシステム103のモデル502が「B」である。
論理ボリュームID503は、各論理ボリューム331の識別子(ID)である。図5の例では、ストレージシステム101に格納された二つの論理ボリューム331の論理ボリュームID503は、それぞれ、「VOL1」及び「VOL2」である。ストレージシステム102及び103に格納された論理ボリューム331の論理ボリュームID503は、それぞれ、「VOL3」及び「VOL4」である。
論理ボリュームサイズ504は、各論理ボリューム331について設定されているデータ容量である。図5の例では、論理ボリューム「VOL1」及び「VOL4」の論理ボリュームサイズ504が「10TB」、論理ボリューム「VOL2」及び「VOL3」の論理ボリュームサイズ504が「5TB」に設定されている。
使用プログラム名505は、各論理ボリューム331において使用されているストレージシステムプログラム318の名前である。図5の例では、論理ボリューム「VOL1」及び「VOL2」において、ストレージシステムプログラム「PP1」及び「PP2」が使用されている。一方、論理ボリューム「VOL3」及び「VOL4」では、ストレージシステムプログラム318が使用されていない。
パス506は、各ストレージシステム101等の間に設定されているデータの経路(パス)に関する情報である。例えば、図5において、ストレージシステム101に対応するパス506として、「102」及び「103」が登録されている。これは、ストレージシステム101とストレージシステム102との間にパスが設定され、同様にして、ストレージシステム101とストレージシステム103との間にもパスが設定されていることを意味する。具体的には、ストレージシステム101のI/F314から、SAN110のI/F111及び別のI/F111を経由して、ストレージシステム102のI/F314に至るパスが設定されている(図1参照)。ストレージシステム101とストレージシステム103との間についても同様である。
二つのストレージシステム101等の間にパスが設定されているとき、そのパスを経由して、それらの二つのストレージシステム101等の間でデータのマイグレーションを実行することができる。さらに、設定されているパスを経由して、ライセンスを移動することができる。具体的には、設定されたパスを経由して、ライセンスキー401が移動する。
パス506に登録される内容は、管理サーバ130(又は特定のストレージシステム101等)が各ストレージシステム101等から収集してもよいし、各ストレージシステム101等が相互に情報を送受信して、同一の内容を保持していてもよい。
図5の例では、ストレージシステム101と102との間にパスが設定され、ストレージシステム101と103との間にもパスが設定され、さらに、ストレージシステム102と103との間にもパスが設定されている。したがって、ストレージシステム101、102及び103のどの組み合わせにおいてもデータのマイグレーションを実行することができる。
図6は、第1の実施の形態のマイグレーション管理テーブル208の説明図である。
マイグレーション管理テーブル208には、これから実行される予定のデータのマイグレーションについて、マイグレーション元及びマイグレーション先の論理ボリューム331に関する情報が、マイグレーション管理プログラム206によって登録される。
マイグレーション管理テーブル208において、マイグレーション元610には、マイグレーション元のストレージシステム名611及び論理ボリュームID612が登録される。一方、マイグレーション先620には、マイグレーション先のストレージシステム名621及び論理ボリュームID622が登録される。
図6の例では、マイグレーション元610のストレージシステム名611及び論理ボリュームID612として、それぞれ、「ストレージシステム101」及び「VOL2」が登録されている。一方、マイグレーション先620のストレージシステム名621及び論理ボリュームID622として、それぞれ、「ストレージシステム102」及び「VOL3」が登録されている。これは、ストレージシステム101の論理ボリューム「VOL2」からストレージシステム102の論理ボリューム「VOL3」へのデータのマイグレーションがこれから実行される予定であることを意味する。
図7は、第1の実施の形態のライセンス種別テーブル211の説明図である。
ライセンス種別テーブル211には、計算機システム内で使用されるストレージシステムプログラム318に適用されるライセンス体系が登録される。
ライセンス種別テーブル211は、プログラム名701、ライセンス単位702及び料金体系703からなる。
プログラム名701は、計算機システム内で使用されているストレージシステムプログラム318の名前である。構成管理テーブル209(図5)に示すように、本実施の形態の計算機システム内では、ストレージシステムプログラム「PP1」及び「PP2」が使用されている。このため、プログラム名701として、「PP1」及び「PP2」が登録される。
ライセンス単位702は、一つのライセンスが適用される範囲である。例えば、図7において、ストレージシステムプログラム「PP1」のライセンス単位702は、「ストレージシステム」である。これは、ストレージシステムプログラム「PP1」の一つのライセンスが、一つのストレージシステム101等に適用されることを意味する。例えば、ストレージシステムプログラム「PP1」のライセンスの一つがストレージシステム101に適用されている場合、そのライセンスに基づいて、他のストレージシステム102等がストレージシステムプログラム「PP1」を使用することはできない。
また、ライセンス単位702は、そのライセンスを適用することができるストレージシステムのモデルを示す情報を含んでもよい。例えば、ストレージシステムプログラム「PP1」のライセンスがモデル「A」(構成管理テーブル209(図5)のモデル502参照)のみに適用されることを示す情報が含まれてもよい(図示省略)。
一方、ストレージシステムプログラム「PP2」のライセンス単位702は、「計算機システム(分割可能)」である。これは、ストレージシステムプログラム「PP2」の一つのライセンスが、本実施の形態の計算機システム(図1)全体に適用され、さらに、その一つのライセンスを複数のストレージシステム101等に分割して適用することができることを意味する。
例えば、ストレージシステムプログラム「PP2」のライセンスが、最大容量を20TBとして、計算機システムに適用されている場合、その20TBを10TB、5TB及び5TBの三つに分割して、それぞれを別の論理ボリューム331に適用することができる。例えば、10TBをストレージシステム101の論理ボリューム「VOL1」に適用し、5TBを論理ボリューム「VOL2」に適用し、さらに、残りの5TBをストレージシステム102の論理ボリューム「VOL3」に適用してもよい。
料金体系703は、各ストレージシステムプログラム318に適用されるライセンスの料金体系である。本実施の形態では、いずれのストレージシステムプログラム318についても、1TBごとの固定容量課金が適用される。
図8は、第1の実施の形態の使用ライセンステーブル210の説明図である。
使用ライセンステーブル210は、計算機システム内のストレージシステム101等にインストールされたストレージシステムプログラム318のライセンスを管理するテーブルである。具体的には、使用ライセンステーブル210には、計算機システム内の全てのストレージシステムプログラム318について、計算機システムが保持する全てのライセンスに関する情報が登録される。
図8の使用ライセンステーブル210には、三つのライセンスに関する情報が登録されている。これは、本実施の形態の計算機システムが三つのライセンスを保持していることを意味する。
使用ライセンステーブル210には、各ライセンスについて、ライセンスキー801、プログラム名802、適用対象ストレージシステム名803、適用対象ボリュームID804、最大容量805及び使用容量806が登録される。これらのうち、ライセンスキー801、プログラム名802、適用対象ボリュームID804、最大容量805及び使用容量806は、それぞれ、ライセンステーブル320(図4)のライセンスキー401、プログラム名402、適用対象ボリュームID403、最大容量404及び使用容量405と同様であるため、詳細な説明を省略する。
また、使用ライセンステーブル210のうち、ライセンス「XXXXA」及び「XXXXB」に関する情報は、適用対象ストレージシステム名803を除いて、ライセンステーブル320と同様であるため、詳細な説明を省略する。
適用対象ストレージシステム名803は、各ライセンスが適用されているストレージシステムの名前である。本実施の形態では、いずれのライセンスも、ストレージシステム101に適用されている。
図8の例では、ストレージシステムプログラム「PP2」のライセンス「XXXXC」は、ストレージシステム101の論理ボリューム「VOL1」及び「VOL2」に適用される。このライセンスは、20TBまで適用することができるが、実際には15TB(VOL1及びVOL2の論理ボリュームサイズ504の合計)に適用されている。したがって、容量が5TB以下の任意の論理ボリューム331に、さらにライセンス「XXXXC」を適用することができる。
図9は、第1の実施の形態のライセンス移動管理テーブル212の説明図である。
ライセンス移動管理テーブル212には、これから実行されるデータのマイグレーションに伴ってライセンスを移動する必要があるストレージシステムプログラム318に関する情報が登録される。具体的には、ライセンス移動管理テーブル212には、移動プログラム名901、移動容量902、マイグレーション元903及びマイグレーション先904が登録される。ライセンス移動管理テーブル212は、後で説明するように、ライセンス移動制御プログラム205によって作成及び更新される(図11から図16参照)。
移動プログラム名901は、これから実行されるデータのマイグレーションに伴ってライセンスを移動する必要があるストレージシステムプログラム318の名前である。すなわち、マイグレーション元の論理ボリューム331において現在使用されているストレージシステムプログラム318の名前である。
移動容量902は、移動するライセンスの容量、すなわち、マイグレーション元の論理ボリューム331の容量である。
マイグレーション元903は、ライセンスの移動元のストレージシステム101等の名前である。後で説明するように、このマイグレーション元903は、ライセンス移動制御プログラム205によって更新される場合があり、その結果、データのマイグレーション元とは異なる場合がある。
マイグレーション先904は、ライセンスの移動先のストレージシステム101等の名前である。
図9の例は、図6に示すように、ストレージシステム101の論理ボリューム「VOL2」のデータをストレージシステム102の論理ボリューム「VOL3」にマイグレーションする場合のライセンス移動管理テーブル212を示す。
この場合、移動プログラム名901として「PP1」及び「PP2」が登録され、これらに対応する移動容量902として「5TB」が登録される(構成管理テーブル209(図5)の使用プログラム名505及び論理ボリュームサイズ504参照)。「PP1」及び「PP2」のいずれについても、マイグレーション元903として「ストレージシステム101」が登録され、マイグレーション先904として「ストレージシステム102」が登録される(マイグレーション管理テーブル208(図6)のストレージシステム名611及びストレージシステム名621参照)。
次に、本実施の形態において実行されるプログラムについて説明する。なお、以下の説明においてプログラムが主語となる場合、実際にはそのプログラムを実行するCPU(CPU201又はCPU311)によって処理が実行される。
図10は、第1の実施の形態のマイグレーション管理プログラム206が実行する処理のフローチャートである。
マイグレーション管理プログラム206は、例えば、計算機システムの負荷分散やDLCMのためにデータをマイグレーションする必要が生じたときに実行される。
マイグレーション管理プログラム206は、処理が開始されると(1000)、データのマイグレーション元及びマイグレーション先のストレージ装置101等及び論理ボリューム331を決定し、それらに関する情報をマイグレーション管理テーブル208に登録する(1002)。このマイグレーション元610及びマイグレーション先620の決定の方法は、従来の負荷分散又はDLCMと同様であってもよい。
次に、マイグレーション管理プログラム206は、ライセンス移動制御プログラム205を呼び出し、処理を実行させる(1100)。ここで実行される処理については、後で詳細に説明する(図11から図16参照)。
次に、マイグレーション管理プログラム206は、ライセンス移動制御プログラム205の処理の結果、マイグレーションの実行を要求されているか否かを判定する(1004)。
ステップ1004においてマイグレーションの実行を要求されていると判定された場合、マイグレーション管理テーブル208に登録された内容のマイグレーションを実行することができる。このため、マイグレーション管理プログラム206は、マイグレーション管理テーブル208に登録された内容に従ってマイグレーションを実行して(1005)、処理を終了する(1008)。
一方、ステップ1004においてマイグレーションの実行を要求されていないと判定された場合、マイグレーション管理テーブル208に登録された内容のマイグレーションを実行することができない。この場合、マイグレーション管理プログラム206は、ライセンス移動制御プログラム205の処理の結果、マイグレーション先620の変更を要求されているか否かを判定する(1006)。
ステップ1006においてマイグレーション先620の変更を要求されていないと判定された場合、ライセンスの不足のためマイグレーションを実行することができない(図11参照)。このため、マイグレーション管理プログラム206は、システム管理者にマイグレーションの中止の通知を送信し(1007)、マイグレーションを実行せずに処理を終了する(1008)。ステップ1007の通知は、例えば、管理サーバ130の入出力装置202に表示されてもよい。
一方、ステップ1006においてマイグレーション先620の変更を要求されていると判定された場合、ライセンスは足りているが、決定されたマイグレーション先620にライセンスを移動することができない(図11参照)。すなわち、マイグレーション先620を変更すれば、ライセンスを移動できる場合がある。このため、マイグレーション管理プログラム206は、ステップ1002に戻り、その要求に従ってマイグレーション先620を再び決定し、そのマイグレーション先620をマイグレーション管理テーブル208に登録する(1002)。その後、ステップ1100以降の処理を実行する。
図11は、第1の実施の形態のライセンス移動制御プログラム205が実行する処理のフローチャートである。
ライセンス移動制御プログラム205の処理は、図10のステップ1100においてマイグレーション管理プログラム206によって呼び出されたときに開始される。
ライセンス移動制御プログラム205は、処理が開始されると(1100)、処理Aを実行する(1200)。処理Aは、マイグレーション先の論理ボリューム331にライセンスを移動する必要があるストレージシステムプログラム318を割り出す処理である。具体的には、処理Aによって、マイグレーション先の論理ボリューム331にいずれかのストレージシステムプログラム318のライセンスを移動する必要があるか否かが判定される。さらに、ライセンスの移動が必要である場合は、どのストレージシステムプログラム318のライセンスを移動する必要があるかが判定される。処理Aについては、後で詳細に説明する(図12参照)。
次に、ライセンス移動制御プログラム205は、処理Aの戻り値を判定する(1101)。
ステップ1101において、処理Aの戻り値が「NO」であると判定された場合、いずれのストレージシステムプログラム318のライセンスも移動する必要がない。すなわち、ライセンスを移動せずにマイグレーションを実行することができる。このため、ライセンス移動制御プログラム205は、ステップ1105に進む(後述)。
一方、ステップ1101において、処理Aの戻り値が「YES」であると判定された場合、いずれかのストレージシステムプログラム318のライセンスを移動する必要がある。この場合、ライセンス移動制御プログラム205は、処理Bを実行する(1300)。
処理Bは、マイグレーション元の論理ボリューム331からマイグレーション先の論理ボリューム331に必要なライセンスを移動することができるか否かを判定する処理である。処理Bについては、後で詳細に説明する(図13参照)。
次に、ライセンス移動制御プログラム205は、処理Bの戻り値を判定する(1102)。
ステップ1102において、処理Bの戻り値が「YES」であると判定された場合、マイグレーション先の論理ボリューム331に必要なライセンスを移動することができる。この場合、ライセンス移動制御プログラム205は、ステップ1400に進み、処理Cを実行する(後述)。
一方、ステップ1102において、処理Bの戻り値が「NO」であると判定された場合、マイグレーション先の論理ボリューム331に必要なライセンスを移動することができない。この場合、ライセンス移動制御プログラム205は、処理Dを実行する(1500)。
処理Dは、マイグレーション先の論理ボリューム331に適用することができる余剰のライセンスがあるか否かを判定する処理である。処理Dについては、後で詳細に説明する(図15参照)。
次に、ライセンス移動制御プログラム205は、処理Dの戻り値を判定する(1103)。
ステップ1103において、処理Dの戻り値が「NO」であると判定された場合、マイグレーション先の論理ボリューム331に適用することができる余剰のライセンスがない。この場合、マイグレーション先に適用されるライセンスが不足しているため、ライセンス移動制御プログラム205は、ライセンスの不足をシステム管理者に通知して(1107)、処理を終了する(1108)。
一方、ステップ1103において、処理Dの戻り値が「YES」であると判定された場合、マイグレーション先の論理ボリューム331に適用することができる余剰のライセンスがある。この場合、ライセンス移動制御プログラム205は、処理Cを実行する(1400)。
同じ機能のストレージシステムプログラム318であっても、それが使用されるストレージシステム101等の機種(モデル502)の違い等のためプログラム名やライセンス形式が異なる場合がある。処理Cは、マイグレーション先のストレージシステム110等の論理ボリューム331に必要なライセンスを適用することができるか否かを判定する処理である。処理Cについては、後で詳細に説明する(図14参照)。
ライセンス移動制御プログラム205は、処理Cを実行した後、処理Cの戻り値を判定する(1104)。
ステップ1104において、処理Cの戻り値が「NO」であると判定された場合、マイグレーション先の論理ボリューム331に必要なライセンスを適用することができない。この場合、必要なライセンスが不足しているわけではないため、マイグレーション先を変更すれば、マイグレーションを実行できる可能性がある。このため、ライセンス移動制御プログラム205は、マイグレーション管理プログラム206にマイグレーション先の変更を要求し(1106)、処理を終了する(1108)。
なお、異なるストレージシステムプログラム318であっても、機能が同様であるものが存在すれば、そのライセンスをマイグレーション先に移動してもよい。この場合、ステップ1106の直前に、機能が同様であるストレージシステムプログラム318を検索し、それが存在する場合は、そのライセンスをマイグレーション先に移動できるか否か判定する(図示省略)。その結果、ライセンスをマイグレーション先に移動できると判定された場合、そのライセンスを移動予定のライセンスとしてライセンス移動管理テーブル212に登録し、ステップ1105(後述)に進む。
一方、ステップ1104において、処理Cの戻り値が「YES」であると判定された場合、マイグレーション先の論理ボリューム331に必要なライセンスを適用することができる。この場合、ライセンス移動制御プログラム205は、処理Eを実行する(1600)。
処理Eは、ライセンスを移動する処理である。処理Eについては、後で詳細に説明する(図16参照)。
次に、ライセンス移動制御プログラム205は、マイグレーション管理プログラム206にマイグレーションの実行を要求し(1105)、処理を終了する(1108)。
図12は、第1の実施の形態のライセンス移動制御プログラム205が実行する処理Aのフローチャートである。
図11のステップ1200において処理Aが開始されると、ライセンス移動制御プログラム205は、マイグレーション元の論理ボリューム331及びマイグレーション先のストレージシステム101等で使用されているストレージシステムプログラム318を検索する(1201)。
具体的には、ライセンス移動制御プログラム205は、構成管理テーブル209及びマイグレーション管理テーブル208を参照する。マイグレーション元610のストレージシステム名611及び論理ボリュームID612と同一のストレージシステム名501及び論理ボリュームID503に対応する使用プログラム名505が、マイグレーション元の論理ボリューム331で使用されているストレージシステムプログラム318である。一方、マイグレーション先620のストレージシステム名621と同一のストレージシステム名501に対応する使用プログラム名505が、マイグレーション先のストレージシステム101等で使用されているストレージシステムプログラム318である。
次に、ライセンス移動制御プログラム205は、ステップ1201で検索された結果を参照して、マイグレーション元の論理ボリューム331及びマイグレーション先のストレージシステム101等で同じストレージシステムプログラム318が使用されているか否かを判定する(1202)。
ステップ1202において、同じストレージシステムプログラム318が使用されていないと判定された場合、マイグレーション元の論理ボリューム331で使用されているストレージシステムプログラム318(以下、図12の説明において、「当該ストレージシステムプログラム318」と記載する)と同一のものが、マイグレーション先のストレージシステム101等で使用されていない。この場合、ステップ1207に進む(後述)。
一方、ステップ1202において、同じストレージシステムプログラム318が使用されていると判定された場合、当該ストレージシステムプログラム318と同一のものが、マイグレーション先のストレージシステム101等で使用されている。この場合、マイグレーション先のストレージシステム101等で既に適用されているライセンスを、マイグレーション先の論理ボリューム331に適用できる可能性がある。このため、ライセンス移動制御プログラム205は、使用ライセンステーブル210を参照して、当該ストレージシステムプログラム318のライセンスの未使用容量を算出する(1203)。未使用容量とは、最大容量805から使用容量806を減算した値である。
次に、ライセンス移動制御プログラム205は、構成管理テーブル209及びマイグレーション管理テーブル208を参照して、ステップ1203で算出された未使用容量が、マイグレーション先の論理ボリューム331の論理ボリュームサイズ504より小さいか否かを判定する(1204)。
ステップ1204において、ステップ1203で算出された未使用容量が、マイグレーション先の論理ボリューム331の論理ボリュームサイズ504より小さくないと判定された場合、マイグレーション先のストレージシステム101等に既に適用されているライセンスの未使用容量の分をマイグレーション先の論理ボリューム331に適用することができる。このため、ライセンス移動制御プログラム205は、ライセンスの移動が必要なストレージシステムプログラム318がない(すなわち、いずれのストレージシステムプログラム318についてもライセンスを移動する必要がない)と判定する(1209)。このとき、処理Aの戻り値は、「NO」と設定される。
一方、ステップ1204において、ステップ1203で算出された未使用容量が、マイグレーション先の論理ボリューム331の論理ボリュームサイズ504より小さいと判定された場合、マイグレーション先のストレージシステム101等に既に適用されているライセンスの未使用容量の分をマイグレーション先の論理ボリューム331に適用しても、まだライセンスが不足する。
この場合、ライセンス移動制御プログラム205は、当該ストレージシステムプログラム318のライセンスを分割してマイグレーション先に適用することができるか否かを判定する(1205)。具体的には、ライセンス移動制御プログラム205は、ライセンス種別テーブル211を参照する。そして、当該当該ストレージシステムプログラム318のライセンスのライセンス単位702が「計算機システム(分割可能)」である場合、そのライセンスを分割してマイグレーション先に適用することができると判定する。
ステップ1205において、当該ストレージシステムプログラム318のライセンスを分割してマイグレーション先に適用することができると判定された場合、当該ストレージシステムプログラム318のライセンスのうち不足分のみを、マイグレーション元からマイグレーション先に移動することができる。このため、ライセンス移動制御プログラム205は、当該ストレージシステムプログラム318をライセンス移動管理テーブル212に登録する(1206)。
このとき、移動プログラム名901として、当該ストレージシステムプログラム318の名前が登録される。移動容量902として、マイグレーション先の論理ボリューム331の論理ボリュームサイズ504から、ステップ1203で算出された未使用容量を減算した値が登録される。マイグレーション元903及びマイグレーション先904として、マイグレーション元及びマイグレーション先のストレージシステム101等の名前が登録される。
一方、ステップ1205において、当該ストレージシステムプログラム318のライセンスを分割してマイグレーション先に適用することができないと判定された場合、当該ストレージシステムプログラム318のライセンスの全体を、マイグレーション元からマイグレーション先に移動する必要がある。このため、ステップ1207に進む。
ステップ1207において、当該ストレージシステムプログラム318がマイグレーション元の論理ボリューム331で使用されている場合、ライセンス移動制御プログラム205は、当該ストレージシステムプログラム318をライセンス移動管理テーブル212に登録する。
このとき、移動プログラム名901として、当該ストレージシステムプログラム318の名前が登録される。移動容量902として、マイグレーション先の論理ボリューム331の論理ボリュームサイズ504が登録される。マイグレーション元903及びマイグレーション先904として、マイグレーション元及びマイグレーション先のストレージシステム101等の名前が登録される。
なお、当該ストレージシステムプログラム318がマイグレーション元の論理ボリューム331で使用されていない場合、ライセンスを移動する必要はない。
ライセンス移動制御プログラム205は、ステップ1206又はステップ1207を実行した後、ライセンスの移動が必要なストレージシステムプログラム318がある(すなわち、当該ストレージシステムプログラム318のライセンスを移動する必要がある)と判定する(1208)。このとき、処理Aの戻り値は、「YES」と設定される。
以上で処理Aが終了する(1210)。
例えば、構成管理テーブル209及びマイグレーション管理テーブル208が図5及び図6に示す通りである場合、マイグレーション元のストレージシステム101の論理ボリューム「VOL2」では、ストレージシステムプログラム「PP1」及び「PP2」が使用されている(1201)。一方、マイグレーション先のストレージシステム102では、ストレージシステムプログラム318が使用されていない(1201)。このため、ステップ1202において、同じストレージシステムプログラム318が使用されていないと判定され、ステップ1207において、ストレージシステムプログラム「PP1」及び「PP2」がライセンス移動管理テーブル212に登録される。
このとき、図9に示すように、「PP1」及び「PP2」に対応する移動容量902として、マイグレーション先のストレージシステム102の論理ボリューム「VOL3」の論理ボリュームサイズ504の値「5TB」が登録される。また、マイグレーション元903として、マイグレーション元610のストレージシステム名611の値「ストレージシステム101」が登録され、マイグレーション先903として、マイグレーション先620のストレージシステム名621の値「ストレージシステム102」が登録される。
図13は、第1の実施の形態のライセンス移動制御プログラム205が実行する処理Bのフローチャートである。
図11のステップ1300において処理Bが開始されると、ライセンス移動制御プログラム205は、ライセンスを移動しようとするストレージシステムプログラム318を使用する論理ボリューム331を検索する(1301)。
具体的には、ライセンス移動制御プログラム205は、ライセンス移動管理テーブル212を参照する。ライセンス移動管理テーブル212の移動プログラム名901が示すストレージシステムプログラム318(図9の例では、ストレージシステムプログラム「PP1」及び「PP2」)が、ライセンスを移動しようとするプログラムである。
さらに、ライセンス移動制御プログラム205は、構成管理テーブル209の使用プログラム名505を参照して、ライセンスを移動しようとするストレージシステムプログラム318を使用している論理ボリューム331を検索する。図5の例では、ストレージシステム101の論理ボリューム「VOL1」及び「VOL2」が、ライセンスを移動しようとするストレージシステムプログラム「PP1」及び「PP2」を使用している。
次に、ライセンス移動制御プログラム205は、構成管理テーブル209のストレージシステム名501、論理ボリュームID503及び使用プログラム名505を参照して、マイグレーション元でない論理ボリューム331において、ライセンスを移動しようとするストレージシステムプログラム318が使用されているか否かを判定する(1302)。
図5の例では、ライセンスを移動しようとするストレージシステムプログラム「PP1」及び「PP2」は、ストレージシステム101の論理ボリューム「VOL1」及び「VOL2」において使用されている。マイグレーション元が、図6に示すように、ストレージシステム101の論理ボリューム「VOL2」である場合、ストレージシステム101の論理ボリューム「VOL1」は、マイグレーション元ではないが、ライセンスを移動しようとするストレージシステムプログラム「PP1」及び「PP2」が使用されている。
ステップ1302において、マイグレーション元でない論理ボリューム331で、ライセンスを移動しようとするストレージシステムプログラム318が使用されていないと判定された場合、ライセンス移動制御プログラム205は、そのライセンスをマイグレーション先に移動することができると判定する(1306)。このとき、処理Bの戻り値は「YES」と設定される。そして、処理Bが終了する(1307)。
一方、ステップ1302において、マイグレーション元でない論理ボリューム331で、ライセンスを移動しようとするストレージシステムプログラム318が使用されていると判定された場合、ライセンス移動制御プログラム205は、ライセンス種別テーブル211を参照して、ライセンスを移動しようとするストレージシステムプログラム318のライセンス単位702を検索する(1303)。
図7の例では、ライセンスを移動しようとするストレージシステムプログラム「PP1」及び「PP2」のライセンス単位702は、それぞれ、「ストレージシステム」及び「計算機システム(分割可能)」である。
次に、ライセンス移動制御プログラム205は、ステップ1303において検索されたライセンス単位702を参照して、それらのライセンスを分割してマイグレーション元及びマイグレーション先に適用することができるか否かを判定する(1304)。
図7の例では、ストレージシステムプログラム「PP1」のライセンス単位702は、「ストレージシステム」である。すなわち、ストレージシステムプログラム「PP1」の一つのライセンスは、一つのストレージシステム101等に適用される。この場合、その一つのライセンスを、それが適用された一つのストレージシステム101等の中の複数の論理ボリューム331に適用することができる。しかし、その一つのライセンスを複数のストレージシステム101等に適用することはできない。したがって、ストレージシステムプログラム「PP1」に関しては、ライセンス移動制御プログラム205は、ライセンスを分割してマイグレーション元及びマイグレーション先に適用することができないと判定する(1304)。
一方、図7において、ストレージシステムプログラム「PP2」のライセンス単位702は、「計算機システム(分割可能)」である。すなわち、ストレージシステムプログラム「PP2」の一つのライセンスは、一つの計算機システムに適用される。この場合、その一つのライセンスを、それが適用された一つの計算機システムの中の複数のストレージシステム101等に適用することができる。したがって、ストレージシステムプログラム「PP2」に関しては、ライセンス移動制御プログラム205は、ライセンスを分割してマイグレーション元及びマイグレーション先に適用することができると判定する(1304)。
ステップ1304において、ライセンスを分割してマイグレーション元及びマイグレーション先に適用することができないと判定された場合、ライセンス移動制御プログラム205は、そのライセンスをマイグレーション先に移動することができないと判定する(1305)。このとき、処理Bの戻り値は「NO」と設定される。そして、処理Bが終了する(1307)。
一方、ステップ1304において、ライセンスを分割してマイグレーション元及びマイグレーション先に適用することができると判定された場合、ステップ1306に進む(前述)。
結局、図7の例では、ストレージシステムプログラム「PP1」について、戻り値が「NO」と設定され、ストレージシステムプログラム「PP2」について、戻り値が「YES」と設定される。
図14は、第1の実施の形態のライセンス移動制御プログラム205が実行する処理Cのフローチャートである。
図11のステップ1400において処理Cが開始されると、ライセンス移動制御プログラム205は、ライセンス種別テーブル211を参照して、ライセンスを移動しようとするストレージシステムプログラム318のライセンス単位702を検索する(1401)。図9の例では、ストレージシステムプログラム「PP1」及び「PP2」が、ライセンスを移動しようとするストレージシステムプログラム318である。このため、ステップ1401において、「PP1」及び「PP2」に対応するライセンス単位702「ストレージシステム」及び「計算機システム(分割可能)」が検索される。
次に、ライセンス移動制御プログラム205は、マイグレーション先のストレージシステム101等に、移動しようとするライセンスを適用できるか否かを判定する(1402)。具体的には、ライセンス移動制御プログラム205は、構成管理テーブル209のモデル502を参照して、移動しようとするライセンスをマイグレーション先のストレージシステム101等のモデル502に適用できるか否かを判定する。
図5の例では、マイグレーション元のストレージシステム101及びマイグレーション先のストレージシステム102のモデル502は、共に「A」である。
図7の例では、ストレージシステムプログラム「PP1」及び「PP2」のライセンス単位702は、それぞれ、「ストレージシステム」及び「計算機システム(分割可能)」である。
図7において説明したように、ライセンス単位702は、そのライセンスを適用できるストレージシステム101等のモデルを示す情報を含んでもよい。例えば、「PP1」に対応するライセンス単位702が、モデル「A」のみに適用できることを示す場合、マイグレーション先のストレージシステム102のモデル502が「A」であるため、「PP1」のライセンスをストレージシステム102に適用することができる。
なお、一つのストレージシステムプログラム318について、移動できるライセンスが複数存在する場合、それらのライセンスから任意のものを選択することができる。その選択は、システム管理者が行ってもよいし、ライセンス移動制御プログラム205が行ってもよい。例えば、未使用容量がマイグレーション先の論理ボリューム331のサイズに最も近いライセンスを選択してもよい。
ステップ1402において、マイグレーション先のストレージシステム101等に、移動しようとするライセンスを適用できると判定された場合、ライセンス移動制御プログラム205は、処理Cの戻り値を「YES」に設定して(1403)、処理Cを終了する(1405)。
一方、ステップ1402において、マイグレーション先のストレージシステム101等に、移動しようとするライセンスを適用できないと判定された場合、ライセンス移動制御プログラム205は、処理Cの戻り値を「NO」に設定して(1404)、処理Cを終了する(1405)。
図15は、第1の実施の形態のライセンス移動制御プログラム205が実行する処理Dのフローチャートである。
処理Dは、マイグレーション元の論理ボリューム331に適用されているライセンスを移動することができない場合に、いずれかのストレージシステム101等が、マイグレーション先のストレージシステム101等に移動できる余剰のライセンスを保持しているか否かを判定する処理である。
図11のステップ1500において処理Dが開始されると、ライセンス移動制御プログラム205は、使用ライセンステーブル210を参照して、未使用容量がマイグレーション先の論理ボリューム331のサイズ以上であるライセンスを検索する(1501)。具体的には、ライセンス移動管理テーブル212の移動容量902が、マイグレーション先の論理ボリューム331のサイズである。従って、未使用容量(最大容量805と使用容量806の差)が移動容量902以上であるライセンスキー801が検索される。
図9の例では、ストレージシステムプログラム「PP1」及び「PP2」の移動容量902は、いずれも5TBである。
図8を参照すると、ストレージシステムプログラム「PP1」に対応するライセンスキー801は、「XXXXA」及び「XXXXB」である。ライセンス「XXXXA」の未使用容量は0TBであり、ライセンス「XXXXB」の未使用容量は10TBである。一方、ストレージシステムプログラム「PP2」に対応するライセンスキー801は、「XXXXC」である。ライセンス「XXXXC」の未使用容量は5TBである。
したがって、ステップ1501において、ストレージシステムプログラム「PP1」についてはライセンス「XXXXB」が、ストレージシステムプログラム「PP2」についてはライセンス「XXXXC」が検索される。
次に、ライセンス移動制御プログラム205は、ステップ1501で検索されたライセンスが未使用である(すなわち、いずれの論理ボリューム331にも適用されていない)か否かを判定する(1502)。具体的には、使用ライセンステーブル210を参照して、適用対象ボリュームID804が「未使用」であるか否かを判定する。
図8の例では、ライセンス「XXXXB」の適用対象ボリュームID804は、「未使用」である。一方、ライセンス「XXXXC」の適用対象ボリュームID804は、「未使用」でない。
ステップ1502において、検索されたライセンスが「未使用」であると判定された場合、そのライセンスはいずれの論理ボリューム331にも適用されていない余剰のライセンスであるため、マイグレーション先に移動することができる。このため、ライセンス移動制御プログラム205は、ライセンス移動管理テーブル212のマイグレーション元903を、ステップ1502で検索されたライセンスが現在適用されているストレージシステム101等の名前(すなわち、適用対象ストレージシステム名803)の値に更新する(1503)。
図8の例では、未使用のライセンス「XXXXB」の適用対象ストレージシステム名803が「ストレージシステム101」である。このため、ライセンス移動管理テーブル212のマイグレーション元903が「ストレージシステム101」に更新される。この例では、更新される前のマイグレーション元903も「ストレージシステム101」であったため、結果的には変更がない。
次に、ライセンス移動制御プログラム205は、マイグレーション先に適用できる余剰のライセンスがあると判定する(1504)。このとき、処理Dの戻り値は、「YES」に設定される。そして、処理Dが終了する(1507)。
一方、ステップ1502において、検索されたライセンスが「未使用」でないと判定された場合、そのライセンスの少なくとも一部は、少なくとも一つの論理ボリューム331に適用されている。この場合、ライセンス移動制御プログラム205は、検索されたライセンスが分割可能であるか否かを判定する(1505)。具体的には、ライセンス種別テーブル211のライセンス単位702が参照される。
図8の例では、ライセンス「XXXXC」が適用されるストレージシステムプログラム「PP2」のライセンス単位702が「計算機システム(分割可能)」である。このため、ライセンス「XXXXC」については、分割可能であると判定される。
ステップ1505において、検索されたライセンスが分割可能であると判定された場合、そのライセンスから分割された未使用容量の分は、余剰のライセンスである。すなわち、そのライセンスの未使用容量の分を分割して、マイグレーション先に適用することができる。この場合、処理はステップ1503に進む。ステップ1503以降の処理は前述の通りであるので、説明を省略する。
一方、ステップ1505において、検索されたライセンスが分割可能でないと判定された場合、そのライセンスの未使用容量の分をマイグレーション先に適用することができない。このため、ライセンス移動制御プログラム205は、マイグレーション先に適用できる余剰のライセンスがないと判定する(1506)。このとき、処理Dの戻り値は、「NO」に設定される。そして、処理Dが終了する(1507)。
図16は、第1の実施の形態のライセンス移動制御プログラム205が実行する処理Eのフローチャートである。
図11のステップ1600において処理Eが開始されると、ライセンス移動制御プログラム205は、ライセンス移動管理テーブル212を参照して、マイグレーション元903及びマイグレーション先904のストレージシステム101等に、ライセンスの移動要求を発行する(1601)。図9の例では、ストレージシステムプログラム「PP1」及び「PP2」のライセンスをストレージシステム101からストレージシステム102に移動する要求が、ストレージシステム101及びストレージシステム102に発行される。
この要求を受けたストレージシステム101等は、ライセンス移動プログラム319を実行して、ライセンスを移動する。ライセンス移動プログラム319が実行する処理については、後で詳細に説明する(図17参照)。
次に、ライセンス移動制御プログラム205は、使用ライセンステーブル210及びライセンス移動管理テーブル212を更新する(1602)。
例えば、図9に示すライセンスの移動が実行された場合、ステップ1602において、ライセンス「XXXXB」に対応する適用対象ストレージシステム名803が「ストレージシステム102」に更新され、適用対象ボリュームID804が「VOL3」に更新され、使用容量806が「5TB」に更新される。一方、ライセンス「XXXXC」に対応する適用対象ストレージシステム名803に「ストレージシステム102」が追加され、適用対象ボリュームID804に「VOL3」が追加され、使用容量806が「20TB」に更新される。そして、ライセンス移動管理テーブル212の各レコード(行)が削除される。
以上で、処理Eが終了する(1603)。
図17は、第1の実施の形態のライセンス移動プログラム319が実行する処理のフローチャートである。
各ストレージシステム101等のライセンス移動プログラム319は、図16のステップ1601において発行されたライセンスの移動の要求を受けたときに、実行を開始する(1700)。
最初に、ライセンス移動プログラム319は、ライセンステーブル320のレコード(行)を更新し、更新されたレコードを送受信する(1701)。
具体的には、ライセンスの移動元のストレージシステム101等のライセンス移動プログラム319は、ライセンステーブル320を、ライセンス移動管理テーブル212と合致するように更新する。そして、ライセンステーブル320のうち更新されたレコードを、ライセンスの移動先のストレージシステム101等に送信する。一方、ライセンスの移動先のストレージシステム101等のライセンス移動プログラム319は、ライセンスの移動元から送信されたライセンステーブル320のレコードを受信する。
例えば、図9に示すようにライセンスが移動する場合、移動元のストレージシステム101のライセンス移動プログラム319は、ライセンステーブル320(図4参照)のライセンス「XXXXB」に対応する適用対象ボリュームID403を「VOL3」に更新し、使用容量405を「5TB」に更新する。そして、ストレージシステム101のライセンス移動プログラム319は、更新されたライセンス「XXXXB」に対応するレコードを、移動先のストレージシステム102に送信する。ストレージシステム102のライセンス移動プログラム319は、送信されたレコードを受信する。
次に、ライセンス移動プログラム319は、ライセンステーブル320を更新する(1702)。具体的には、ライセンスの移動元のストレージシステム101等のライセンス移動プログラム319は、送信したレコードをライセンステーブル320から削除する。一方、ライセンスの移動先のストレージシステム101等のライセンス移動プログラム319は、受信したレコードをライセンステーブル320に追加する。
例えば、上記のようにライセンス「XXXXB」に対応するレコードが送受信された場合、ストレージシステム101のライセンステーブル320(図4参照)から、そのレコードが削除される。一方、ストレージシステム102のライセンステーブル320(図示省略)に、そのレコードが追加される。
次に、ライセンス移動プログラム319は、ライセンスを移動する処理が終了したことを管理サーバ130に通知する(1703)。
以上で、ライセンス移動プログラム319の処理が終了する(1704)。
なお、ライセンスキーは、計算機システム全体で共通のものであってもよい。あるいは、ライセンス移動プログラム319が、マイグレーション先のストレージシステム101等に合わせたライセンスキーを生成してもよい。
また、図17の例では、ライセンスはマイグレーション元からマイグレーション先に直接移動するが、ライセンスは、一旦管理サーバ130又は特定のストレージシステム101等に移動し、その後、その管理サーバ130等からマイグレーション先に移動してもよい。
図18は、第1の実施の形態のストレージシステム101等においてストレージシステムプログラム318の使用が中止されたときに実行される処理のフローチャートである。
この処理は、データのマイグレーションが実行されたことによって、いずれかのストレージシステム101等において使用されていたストレージシステムプログラム318が使用されなくなった(使用が中止された)ときに実行される。
この処理が開始され(1800)、ストレージシステム101等のストレージコントローラ310がいずれかのストレージシステムプログラム318の使用を中止すると(1801)、管理サーバエージェント316がそのストレージシステムプログラム318の使用が中止されたことの通知を管理サーバ130に送信する(1802)。この通知を受信した管理サーバ130が実行する処理については、後で詳細に説明する(図19参照)。
なお、各ストレージシステム101等は、ストレージシステムプログラム318の使用の状況を監視し、使用が中止されたことを検出するストレージシステム管理プログラム(図示省略)を備える。
以上で、処理を終了する(1803)。
図19は、第1の実施の形態のストレージシステム101等においてストレージシステムプログラム318の使用が中止されたときにライセンス移動制御プログラム205が実行する処理のフローチャートである。
図19の処理は、図18のステップ1802においてストレージシステム101等から送信された通知(いずれかの論理ボリューム331においてストレージシステムプログラム318の使用が中止されたことの通知)を管理サーバ130が受信したとき、ライセンス移動制御プログラム205が使用ライセンステーブル210を更新する処理である。
なお、図19の説明において、使用が中止されたストレージシステムプログラム318を「当該ストレージシステムプログラム318」と記載し、当該ストレージシステムプログラム318の使用が中止された論理ボリューム331を「当該論理ボリューム331」と記載する。
管理サーバ130が通知を受信してこの処理が開始されると(1900)、ライセンス移動制御プログラム205は、当該ストレージシステムプログラム318を使用している(又は使用していた)ストレージシステム101等及び論理ボリューム331を検索する(1901)。
具体的には、ライセンス移動制御プログラム205は、構成管理テーブル209を参照し、使用プログラム名505に当該ストレージシステムプログラム318を含むストレージシステム名501及び論理ボリュームID503を検索する。
次に、ライセンス移動制御プログラム205は、当該論理ボリューム331以外に当該ストレージシステムプログラム318を使用している論理ボリューム331があるか否かを判定する(1902)。
ステップ1902において、当該論理ボリューム331以外に当該ストレージシステムプログラム318を使用している論理ボリューム331がないと判定された場合、当該ストレージシステムプログラム318に適用されていたライセンスは現時点で未使用となる。このため、ライセンス移動制御プログラム205は、使用ライセンステーブル210の当該ストレージシステムプログラム318に適用されていたライセンスに対応する適用対象ボリュームID804を「未使用」、使用容量806を「0(TB)」に更新する(1903)。
一方、ステップ1902において、当該論理ボリューム331以外に当該ストレージシステムプログラム318を使用している論理ボリューム331があると判定された場合、当該ストレージシステムプログラム318に適用されていたライセンスは、現時点でも他の論理ボリューム331に適用されている。この場合、ライセンス移動制御プログラム205は、使用ライセンステーブル210の当該ストレージシステムプログラム318に適用されていたライセンスに対応する適用対象ボリュームID804から、当該論理ボリューム331の論理ボリュームIDを削除し、使用容量806から当該論理ボリューム331の容量を減算する(1904)。
例えば、構成管理テーブル209が図5に示す通りであり、ストレージシステム101の当該論理ボリューム「VOL1」において当該ストレージシステムプログラム「PP1」の使用が中止された場合、ステップ1901において、ストレージシステム名501として「ストレージシステム101」が、論理ボリュームID503として「VOL1」及び「VOL2」が検索される。
この場合、ステップ1902において、当該ストレージシステムプログラム「PP1」が当該論理ボリューム「VOL1」以外の論理ボリューム「VOL2」でも使用されていると判定される。
そして、ステップ1904において、ライセンス「XXXXA」に対応する適用対象ボリュームID804から当該論理ボリューム「VOL1」が削除される。さらに、使用容量806の値は、「15TB」から当該論理ボリューム「VOL1」のサイズ「10TB」(構成管理テーブル209(図5)の論理ボリュームサイズ504参照)を減算した「5TB」に更新される。
以上で、図19の処理を終了する(1905)。
なお、図18及び図19の例では、ストレージシステムプログラム318の使用が中止されたことの通知をストレージシステム101等の管理サーバエージェント316が管理サーバ130に送信している。しかし、例えば、管理サーバ130が定期的にポーリングを行い、各ストレージシステム101等が使用しているストレージシステムプログラム318を把握してもよい。また、管理サーバエージェント316が定期的にストレージシステムプログラム318の使用の状況を管理サーバ130に通知してもよい。
また、図18及び図19の例では、使用が中止された結果未使用となったライセンスは、ストレージシステム101等が保持し続ける。しかし、未使用のライセンスは、ストレージシステム101等以外のものが保持してもよい。例えば、管理サーバ130又は特定のストレージシステム101等が余剰のライセンスを管理する機能を備え、ストレージシステム101等は、未使用のライセンスをこの管理サーバ130又は特定のストレージシステム101等に返却してもよい。この場合、ライセンスを移動する必要があるときには、管理サーバ130等がライセンスを割り当てる。
以上の本実施の形態は、図6に示すデータのマイグレーションが実行される場合を例として説明されている。この場合、データのマイグレーション元とライセンスの移動元は、いずれもストレージシステム101である(図9参照)。しかし、データのマイグレーション元とライセンスの移動元が異なる場合も考えられる。
例えば、図8の使用ライセンステーブル210において、ストレージシステムプログラム「PP1」に関する未使用のライセンス「XXXXB」の適用対象ストレージシステム名803が「ストレージシステム103」であれば、ライセンス「XXXXB」をストレージシステム103からストレージシステム102に移動する必要がある。
この場合、ストレージシステム103とストレージシステム102との間にパスが設定されているか否かが問題となる。パスが設定されていない場合、ライセンスを移動できないためである。
このとき、ライセンス移動制御プログラム205は、ライセンスを移動することができるか否かを判定する。具体的には、構成管理テーブル209のパス506を参照して、ライセンスの移動元及び移動先のストレージシステム101等の間にパスが設定されているか否かを判定する。この判定は、ステップ1103において処理Dの戻り値が「YES」であったときに実行される(図示省略)。
ライセンス「XXXXB」をストレージシステム103からストレージシステム102に移動する場合、ストレージシステム103のパス506が参照される。図5の例では、ストレージシステム103のパス506は「101」及び「102」である。これは、ストレージシステム103からストレージシステム102へのパスが設定されていることを意味する(同様にして、ストレージシステム103からストレージシステム101へのパスも設定されている)。この場合、ストレージシステム103からストレージシステム102へライセンスを移動できるため、移動が実行される。
あるいは、直接のパスが存在しなくても、他のストレージシステム101等を経由してライセンスを移動してもよい。例えば、図5において、ストレージシステム103のパス506が「101」のみである場合、ストレージシステム103から直接ストレージシステム102に至るパスが設定されていない。しかし、ストレージシステム103からストレージシステム101へのパスが設定されており、さらに、ストレージシステム103からストレージシステム102へのパスも設定されているため、ライセンス移動制御プログラム205は、ライセンス「XXXXB」をストレージシステム103からストレージシステム101を経由してストレージシステム102に移動することができる。
ライセンスを移動するパスが複数存在する場合、任意のパスを選択することができる。例えば、経由するストレージシステム101等の数が最も少なくなるように、最適なパスを決定してもよい。
あるいは、管理サーバ130が、管理サーバ130自身(又は、計算機システム内のその他の機器)を経由してライセンスを移動してもよい。
ライセンスをマイグレーション先に移動するいかなるパスも存在しないと判定された場合、ライセンス移動制御プログラム205は、そのライセンスを移動不可とし、他の未使用のライセンスを検索する。あるいは、未使用のライセンスが存在するが移動するためのパスが存在しないことをシステム管理者に通知してもよい。
なお、上記の場合、各ストレージシステム101等は、互いに異なるデータセンター内にあってもよい。
以上の本実施の形態の説明は、データがマイグレーションされるときのライセンスの移動についてのものであるが、本実施の形態は、データがリモートコピーされる場合のライセンスの移動にも適用することができる。リモートコピーとは、システム障害時又は災害発生時等のデータ喪失を防ぐため、ストレージシステムのデータを遠隔地のストレージシステムに転送し、コピーを作成する技術である。
具体的には、リモートコピーが実行されると、コピー元(転送元)の論理ボリューム331のデータがコピー先(転送先)の論理ボリュームに転送され、格納される。
マイグレーションの場合とは異なり、リモートコピーが実行された後も、コピーされたデータがコピー元のストレージシステム101等の論理ボリューム331に残る。このため、コピー先でライセンスが必要となる場合であっても、コピー元のライセンスをコピー先に移動することができない。
以下、データがリモートコピーされる場合のライセンスの移動について説明する。
図20は、第1の実施の形態において、リモートコピーが実行される場合の管理サーバ130の構成を示すブロック図である。
図20の管理サーバ130は、図2の管理サーバ130のライセンス移動制御プログラム205、マイグレーション管理プログラム206及びマイグレーション管理テーブル208を、それぞれ、ライセンス移動制御プログラム2001、コピー管理プログラム2002及びコピーペア管理テーブル2003によって置き換えた構成である。これらのプログラム及びテーブルについては、後で詳細に説明する(図22から図24参照)。図20の管理サーバ130のその他の部分は、図2の管理サーバ130と同じであるため、説明を省略する。
図21は、第1の実施の形態において、リモートコピーが実行される場合のストレージシステム101の構成を示すブロック図である。
ストレージシステム102及び103の構成は、ストレージシステム101と同様であるため、説明を省略する。
図21のストレージシステム101は、図3のストレージシステム101のノード間マイグレーションプログラム317をリモートコピープログラム2101によって置き換えた構成である。
リモートコピープログラム2101は、ストレージシステム101の論理ボリューム331のデータを、他のストレージシステム102等の論理ボリューム331にコピー(リモートコピー)するプログラムである。
図21のストレージシステム101のその他の部分は、図3のストレージシステム101と同じであるため、説明を省略する。
図22は、第1の実施の形態のコピーペア管理テーブル2003の説明図である。
コピーペア管理テーブル2003には、これから実行される予定のリモートコピーについて、コピー元及びコピー先の論理ボリューム331に関する情報が、コピー管理プログラム2002によって登録される。
コピーペア管理テーブル2003において、コピー元2210には、コピーのストレージシステム名2211及び論理ボリュームID2212が登録される。一方、コピー先2220には、コピー先のストレージシステム名2221及び論理ボリュームID2222が登録される。
図22の例では、コピー元2210のストレージシステム名2211及び論理ボリュームID2212として、それぞれ、「ストレージシステム101」及び「VOL2」が登録されている。一方、コピー先2220のストレージシステム名2221及び論理ボリュームID2222として、それぞれ、「ストレージシステム102」及び「VOL3」が登録されている。これは、ストレージシステム101の論理ボリューム「VOL2」からストレージシステム102の論理ボリューム「VOL3」へのリモートコピーがこれから実行される予定であることを意味する。
図23は、第1の実施の形態のコピー管理プログラム2002が実行する処理のフローチャートである。
コピー管理プログラム2002は、コピーペアを形成してそのコピーペアでリモートコピーするときに実行される。コピーペアとは、コピー元及びコピー先の論理ボリューム331の組である。
コピー管理プログラム2002は、処理が開始されると(2300)、データのコピー元及びコピー先のストレージシステム101等及び論理ボリューム331を決定し、それらに関する情報をコピーペア管理テーブル2003に登録する(2301)。
次に、コピー管理プログラム2002は、ライセンス移動制御プログラム2001を呼び出し、処理を実行させる(2400)。ここで実行される処理については、後で詳細に説明する(図24参照)。
次に、コピー管理プログラム2002は、ライセンス移動制御プログラム2001の処理の結果、リモートコピーの実行を要求されているか否かを判定する(2302)。
ステップ2302においてリモートコピーの実行を要求されていると判定された場合、コピーペア管理テーブル2003に登録された内容のリモートコピーを実行することができる。このため、コピー管理プログラム2002は、コピーペア管理テーブル2003に登録された内容に従ってリモートコピーを実行して(2303)、処理を終了する(2306)。
一方、ステップ2302においてリモートコピーの実行を要求されていないと判定された場合、コピーペア管理テーブル2003に登録された内容のリモートコピーを実行することができない。この場合、コピー管理プログラム2002は、ライセンス移動制御プログラム2001の処理の結果、コピー先2220の変更を要求されているか否かを判定する(2304)。
ステップ2304においてコピー先2220の変更を要求されていないと判定された場合、ライセンスの不足のためリモートコピーを実行することができない(図24参照)。このため、コピー管理プログラム2002は、システム管理者にリモートコピーの中止の通知を送信し(2305)、リモートコピーを実行せずに処理を終了する(2306)。
一方、ステップ2304においてコピー先2220の変更を要求されていると判定された場合、ライセンスは足りているが、決定されたコピー先2220にライセンスを移動することができない(図24参照)。すなわち、コピー先2220を変更すれば、ライセンスを移動できる場合がある。このため、コピー管理プログラム2002は、ステップ2301に戻り、その要求に従ってコピー先2220を再び決定し、そのコピー先2220をコピーペア管理テーブル2003に登録する(2301)。その後、ステップ2400以降の処理を実行する。
図24は、第1の実施の形態においてリモートコピーが実行される場合にライセンス移動制御プログラム2001が実行する処理のフローチャートである。
ライセンス移動制御プログラム2001の処理は、図23のステップ2400においてコピー管理プログラム2002によって呼び出されたときに開始される。
なお、ライセンス移動制御プログラム2001の処理のうち、ライセンス移動制御プログラム205の処理と同様の部分については、説明を省略する。
ライセンス移動制御プログラム2001は、処理が開始されると(2400)、処理Aを実行する(1200)。処理Aの内容は、図12において説明した通りである。ただし、図12の処理Aにおいて、「ライセンス移動制御プログラム205」、「マイグレーション管理テーブル208」、「マイグレーション」、「マイグレーション元」及び「マイグレーション先」は、それぞれ、「ライセンス移動制御プログラム2001」、「コピーペア管理テーブル2003」、「リモートコピー」、「コピー元」及び「コピー先」に相当する。これは、以下に説明する処理C、処理D及び処理Eについても同様である。処理Aによって、コピー先の論理ボリューム331にライセンスを移動する必要があるストレージシステムプログラム318が割り出される。
次に、ライセンス移動制御プログラム2001は、処理Aの戻り値を判定する(2401)。
ステップ2401において、処理Aの戻り値が「NO」であると判定された場合、いずれのストレージシステムプログラム318のライセンスも移動する必要がない。すなわち、ライセンスを移動せずにマイグレーションを実行することができる。このため、ライセンス移動制御プログラム2001は、ステップ2404に進む(後述)。
一方、ステップ2401において、処理Aの戻り値が「YES」であると判定された場合、いずれかのストレージシステムプログラム318のライセンスを移動する必要がある。しかし、リモートコピーが実行される場合、コピー元のストレージシステム101等にもデータが残るため、コピー元のライセンスをコピー先に移動することができない。そこで、ライセンス移動制御プログラム2001は、処理D(図15参照)を実行して、コピー先の論理ボリューム331に適用することができる余剰のライセンスがあるか否かを判定する(1500)。
次に、ライセンス移動制御プログラム2001は、処理Dの戻り値を判定する(2402)。
ステップ2402において、処理Dの戻り値が「NO」であると判定された場合、コピー先の論理ボリューム331に適用することができる余剰のライセンスがない。この場合、コピー先に適用されるライセンスが不足しているため、ライセンス移動制御プログラム2001は、ライセンスの不足をシステム管理者に通知して(2406)、処理を終了する(2407)。
一方、ステップ2402において、処理Dの戻り値が「YES」であると判定された場合、コピー先の論理ボリューム331に適用することができる余剰のライセンスがある。この場合、ライセンス移動制御プログラム2001は、処理Cを実行する(1400)。処理Cは、コピー先の論理ボリューム331に必要なライセンスを適用することができるか否かを判定する処理である(図14参照)。
ライセンス移動制御プログラム2001は、処理Cを実行した後、処理Cの戻り値を判定する(2403)。
ステップ2403において、処理Cの戻り値が「NO」であると判定された場合、コピー先の論理ボリューム331に必要なライセンスを適用することができない。この場合、必要なライセンスが不足しているわけではないため、コピー先を変更すれば、リモートコピーを実行できる可能性がある。このため、ライセンス移動制御プログラム2001は、コピー管理プログラム2002にコピーペアの変更を要求し(2405)、処理を終了する(2407)。
一方、ステップ2403において、処理Cの戻り値が「YES」であると判定された場合、コピー先の論理ボリューム331に必要なライセンスを適用することができる。この場合、ライセンス移動制御プログラム2001は、処理Eを実行する(1600)。処理Eは、ライセンスを移動する処理である(図16参照)。
次に、ライセンス移動制御プログラム2001は、コピー管理プログラム2002にリモートコピーの実行を要求し(2404)、処理を終了する(2407)。
以上の本実施の形態によれば、データのマイグレーション又はリモートコピーが実行される前に、マイグレーション先又はコピー先のストレージシステムにストレージシステムプログラムのライセンスを適用する必要があるか否かが判定される。そして、ライセンスを適用する必要がある場合は、必要なライセンスを移動することができるか否かが判定される。
ライセンスを移動でき、かつ、ライセンスを移動することによって必要なライセンスが足りる場合は、新たにライセンスを購入することなく、ストレージシステムプログラムの使用を継続することができる。
ライセンスを移動できない場合、又は、ライセンスを移動してもなおライセンスが不足する場合のみ、新たなライセンスを購入すればよい。このため、ストレージシステムの運用コストが削減される。
次に、第2の実施の形態について説明する。
なお、以下の説明では、本実施の形態が第1の実施の形態と相違する点について説明し、第1の実施の形態と同様の部分については、説明を省略する。
図25は、第2の実施の形態の計算機システムの構成を示すブロック図である。
本実施の形態の計算機システムは、ストレージシステム2501、ストレージシステム2502、SAN110、業務サーバ120、管理サーバ2510及び管理用ネットワーク140によって構成される。
ストレージシステム2501、ストレージシステム2502及び管理サーバ2510については、後で詳細に説明する(図26から図28参照)。
なお、後で詳細に説明するように、本実施の形態のストレージシステム2502は、ストレージシステム2501に外部接続されている。
図26は、第2の実施の形態の管理サーバ2510の構成を示すブロック図である。
本実施の形態の管理サーバ2510は、CPU201、入出力装置202、管理用I/F203及びメモリ2600によって構成される。
メモリ2600は、例えば、半導体メモリである。本実施の形態のメモリ2600には、少なくとも、ライセンス移動制御プログラム2601、ストレージ管理プログラム207、構成管理テーブル209、使用ライセンステーブル210及びライセンス種別テーブル211が格納される。ライセンス移動制御プログラム2601が実行する処理については、後で詳細に説明する(図31参照)。
図27は、第2の実施の形態のストレージシステム2501の構成を示すブロック図である。
本実施の形態のストレージシステム2501は、ディスク装置2720及びストレージコントローラ2710からなる。
ディスク装置2720には、業務サーバ120から書き込まれたデータが格納される。ディスク装置2720は、一つ以上のディスクドライブ(図示省略)によって構成される。ディスク装置2720の記憶領域は、一つ以上の論理ボリューム331に分割される。さらに、ディスク装置2720は、一つ以上の仮想ボリューム2721を含む。仮想ボリューム2721は、仮想的な論理ボリューム331である。ストレージコントローラ2710は、外部接続されたストレージシステム2502の論理ボリューム331を、仮想ボリューム2721として、ディスク装置2720上に存在しているかのように管理サーバ2510に認識させる。すなわち、仮想ボリューム2721は、実際にはディスク装置2720上に存在していない。したがって、ディスク装置2720は、実際には、第1の実施の形態のディスク装置330と同じものである。
ストレージコントローラ2710は、CPU311、キャッシュ312、管理用I/F313、二つのI/F314及びメモリ2711からなる。
二つのI/F314のうち一方は、SAN110を介して業務サーバ120と通信し、もう一方は、SAN110を介して、外部接続されたストレージシステム2502と通信する。
メモリ2711は、例えば、半導体メモリである。本実施の形態のメモリ2711には、少なくとも、管理サーバエージェント316、外部接続プログラム2712、ストレージシステムプログラム318、ライセンス移動プログラム319、ライセンステーブル320及び外部ボリューム対応テーブル2713が格納される。外部接続プログラム2712及び外部ボリューム対応テーブル2713については、後で詳細に説明する(図29及び図30参照)。
図28は、第2の実施の形態の外部接続されたストレージシステム2502の構成を示すブロック図である。
本実施の形態のストレージシステム2502は、ディスク装置330及びストレージコントローラ2810からなる。
ストレージコントローラ2810は、CPU311、キャッシュ312、管理用I/F313、I/F314及びメモリ2811からなる。
I/F314は、SAN110を介して、ストレージシステム2501と通信する。
メモリ2811には、少なくとも、管理サーバエージェント316、ストレージシステムプログラム318、ライセンス移動プログラム319及びライセンステーブル320が格納される。
次に、図25から図28を参照して、本実施の形態の概要を説明する。
本実施の形態において、ストレージシステム2502は、ストレージシステム2501に外部接続されている。業務サーバ120とストレージシステム2501との間には、I/F123からI/F111を経由してストレージシステム2501のI/F314に至るパスが設定されている。一方、業務サーバ120とストレージシステム2502との間には、パスが設定されていない。ストレージシステム2501とストレージシステム2502との間には、I/F111を経由するパスが設定されている。
ストレージシステム2501は、装置ベースの仮想化機能を備える。このため、ストレージシステム2501は、外部接続されたストレージシステム2502の論理ボリューム331を、仮想ボリューム2721として業務サーバ120に提供する。
業務サーバ120は、ストレージシステム2501の論理ボリューム331に直接アクセスすることができるが、ストレージシステム2502の論理ボリューム331には直接アクセスすることができない。しかし、業務サーバ120は、ストレージシステム2501の仮想ボリューム2721にアクセスすることによって、間接的にストレージシステム2502の論理ボリューム331にアクセスすることができる。このとき、業務サーバは、仮想ボリューム2721を、実際にストレージシステム2501に存在している論理ボリューム331として認識する。
このとき、仮想ボリューム2721は、対応する論理ボリューム331と同じ容量を有するものとして扱われる。
このような外部接続は、通常、業務サーバ120とストレージシステム2502とがSAN110を介して接続されているところに、ストレージシステム2501を追加することによって実現される。ストレージシステム2501が追加される前、業務サーバ120は、ストレージシステム2502の論理ボリューム331に直接アクセスする。ストレージシステム2501が追加された後、業務サーバ120は、ストレージシステム2501の仮想ボリューム2721にアクセスすることによって、ストレージシステム2502の論理ボリューム331に間接的にアクセスする。
このような場合、ストレージシステム2501が追加されて仮想ボリューム2721が設定されたときに、ストレージシステム2502が使用していたストレージシステムプログラム318のライセンスを、ストレージシステム2501に移動することが必要となる場合がある。
本実施の形態は、このような外部接続が実行されたときのライセンスの移動に関する。
図29は、第2の実施の形態の外部ボリューム対応テーブル2713の説明図である。
外部ボリューム対応テーブル2713には、これから外部接続しようとする論理ボリューム331と仮想ボリューム2721との対応を示す情報が登録される。
外部ボリューム対応テーブル2713において、外部接続するストレージシステム2910には、外部接続するストレージシステム2502のストレージシステム名2911及び論理ボリュームID2912が登録される。一方、外部接続機能を備えるストレージシステム2920には、外部接続機能(すなわち、仮想化機能)を備えるストレージシステム2501のストレージシステム名2921及び仮想ボリュームID2922が登録される。なお、仮想ボリュームID2922は、論理ボリュームID2912が示す論理ボリューム331が仮想化された仮想ボリューム2721の識別子である。以下、このように仮想ボリューム2721によって仮想化される論理ボリューム331を外部論理ボリューム331と記載する。また、外部論理ボリューム331及びそれを含むストレージシステム2502を「移行元」、仮想ボリューム2721及びそれを含むストレージシステム2501を「移行先」と記載する。
図29の例は、図25に示す外部接続が行われた場合を示す。外部接続するストレージシステム2910のストレージシステム名2911及び論理ボリュームID2912は、それぞれ、「ストレージシステム2502」及び「VOL2」である。一方、外部接続機能を備えるストレージシステム2920のストレージシステム名2921及び仮想ボリュームID2922は、それぞれ、「ストレージシステム2501」及び「VOL3」である。これは、ストレージシステム2502の論理ボリューム「VOL2」が、ストレージシステム2501の仮想ボリューム「VOL3」として仮想化されることを意味する。
図30は、第2の実施の形態の外部接続プログラム2712が実行する処理のフローチャートである。
システム管理者がストレージシステム2501等の外部接続を実行しようとするときに、外部接続プログラム2712が実行される。以下の説明は、図25に示すように、ストレージシステム2501にストレージシステム2502が外部接続される場合についてのものである。
外部接続プログラム2712の実行が開始されると(3000)、システム管理者は、これから外部接続しようとするストレージシステム2502の外部論理ボリューム331の論理ボリュームID2912を指定し、その外部論理ボリューム331に対応する仮想ボリューム2721の仮想ボリュームID2922を作成し、これらの情報を外部ボリューム対応テーブル2713に登録する(3001)。
次に、外部接続プログラム2712は、管理サーバ2510にライセンス移動制御プログラム2601を実行させる(3100)。ここで実行される処理については、後で詳細に説明する(図31参照)。
次に、外部接続プログラム2712は、ライセンス移動制御プログラム2601の処理の結果、外部接続の実行を要求されているか否かを判定する(3003)。
ステップ3003において外部接続の実行を要求されていると判定された場合、外部ボリューム対応テーブル2713に登録された外部接続を実行することができる。このため、外部接続プログラム2712は、外部ボリューム対応テーブル2713に登録された内容に従って外部接続を実行して(3005)、処理を終了する(3008)。
一方、ステップ3003において外部接続の実行を要求されていないと判定された場合、外部ボリューム対応テーブル2713に登録された外部接続を実行することができない。この場合、外部接続プログラム2712は、ライセンス移動制御プログラム2601の処理の結果、ライセンスの移動不可を通知されているか否かを判定する(3004)。
ステップ3004においてライセンスの移動不可を通知されていると判定された場合、ライセンスは足りているが、ライセンスを移動することができないため、外部接続を実行することができない。このため、外部接続プログラム2712は、システム管理者に、ライセンスを移動できないため外部接続を中止することを通知し(3006)、外部接続を実行せずに処理を終了する(3008)。
一方、ステップ3004においてライセンスの移動不可を通知されていないと判定された場合、ライセンスの不足のため外部接続を実行することができない。このため、外部接続プログラム2712は、システム管理者に、ライセンス不足のため外部接続を中止することを通知し(3007)、外部接続を実行せずに処理を終了する(3008)。
図31は、第2の実施の形態のライセンス移動制御プログラム2601が実行する処理のフローチャートである。
ライセンス移動制御プログラム2601の処理は、図30のステップ3100において外部接続プログラム2712から実行を指示されたときに開始される。
なお、ライセンス移動制御プログラム2601の処理のうち、ライセンス移動制御プログラム205の処理と同様の部分については、説明を省略する。
ライセンス移動制御プログラム2601は、処理が開始されると(3100)、処理Aを実行する(1200)。処理Aの内容は、図12において説明した通りである。ただし、図12の処理Aにおいて、「ライセンス移動制御プログラム205」、「マイグレーション管理テーブル208」、「マイグレーション」、「マイグレーション元」及び「マイグレーション先」は、それぞれ、「ライセンス移動制御プログラム2601」、「外部ボリューム対応テーブル2713」、「外部接続」、「移行元」及び「移行先」に相当する。これは、以下に説明する処理B、処理C、処理D及び処理Eについても同様である。処理Aによって、移行先の仮想ボリューム2721にライセンスを移動する必要があるストレージシステムプログラム318が割り出される。
次に、ライセンス移動制御プログラム2601は、処理Aの戻り値を判定する(3101)。
ステップ3101において、処理Aの戻り値が「NO」であると判定された場合、いずれのストレージシステムプログラム318のライセンスも移動せずに外部接続を実行することができる。このため、ライセンス移動制御プログラム2601は、ステップ3105に進む(後述)。
一方、ステップ3101において、処理Aの戻り値が「YES」であると判定された場合、いずれかのストレージシステムプログラム318のライセンスを移動する必要がある。この場合、ライセンス移動制御プログラム2601は、処理Bを実行する(1300)。
処理Bは、移行元の外部論理ボリューム331から移行先の仮想ボリューム2721に必要なライセンスを移動することができるか否かを判定する処理である(図13参照)。
次に、ライセンス移動制御プログラム2601は、処理Bの戻り値を判定する(3102)。
ステップ3102において、処理Bの戻り値が「YES」であると判定された場合、移行先の仮想ボリューム2721に必要なライセンスを移動することができる。この場合、ライセンス移動制御プログラム2601は、ステップ1400に進み、処理Cを実行する(後述)。
一方、ステップ3102において、処理Bの戻り値が「NO」であると判定された場合、移行先の仮想ボリューム2721に必要なライセンスを移動することができない。この場合、ライセンス移動制御プログラム2601は、処理Dを実行する(1500)。
処理Dは、移行先の仮想ボリューム2721に適用することができる余剰のライセンスがあるか否かを判定する処理である(図15参照)。
次に、ライセンス移動制御プログラム2601は、処理Dの戻り値を判定する(3103)。
ステップ3103において、処理Dの戻り値が「NO」であると判定された場合、移行先の仮想ボリューム2721に適用することができる余剰のライセンスがない。この場合、移行先に適用されるライセンスが不足しているため、ライセンス移動制御プログラム2601は、ライセンスの不足をシステム管理者に通知して(3107)、処理を終了する(3108)。
一方、ステップ3103において、処理Dの戻り値が「YES」であると判定された場合、移行先の仮想ボリューム2721に適用することができる余剰のライセンスがある。この場合、ライセンス移動制御プログラム2601は、処理Cを実行する(1400)。
処理Cは、移行先のストレージシステム2501の仮想ボリューム2721に必要なライセンスを適用することができるか否かを判定する処理である(図14参照)。
ライセンス移動制御プログラム2601は、処理Cを実行した後、処理Cの戻り値を判定する(3104)。
ステップ3104において、処理Cの戻り値が「NO」であると判定された場合、移行先の仮想ボリューム2721に必要なライセンスを適用することができない。この場合、ライセンス移動制御プログラム2601は、外部接続プログラム2712に、ライセンスの移動不可を通知し、(3106)、処理を終了する(3108)。
一方、ステップ3104において、処理Cの戻り値が「YES」であると判定された場合、移行先の仮想ボリューム2721に必要なライセンスを適用することができる。この場合、ライセンス移動制御プログラム2601は、処理Eを実行する(1600)。
処理Eは、ライセンスを移動する処理である(図16参照)。
次に、ライセンス移動制御プログラム2601は、外部接続プログラム2712に外部接続の実行を要求し(3105)、処理を終了する(3108)。
以上の本実施の形態によれば、ストレージシステムの外部接続が実行される前に、その外部接続によって移行先のストレージシステムにストレージシステムプログラムのライセンスを適用する必要があるか否かが判定される。そして、ライセンスを適用する必要がある場合は、必要なライセンスを移動することができるか否かが判定される。
ライセンスを移動でき、かつ、ライセンスを移動することによって必要なライセンスが足りる場合は、新たにライセンスを購入することなく、ストレージシステムプログラムの使用を継続することができる。
その結果、ライセンスを移動できない場合、又は、ライセンスを移動してもなおライセンスが不足する場合のみ、新たなライセンスを購入すればよい。このため、ストレージシステムの運用コストが削減される。