(第1実施例)
(1−1)本計算機システムの構成
図1は、本実施例における計算機システムの全体構成を示すブロック図である。図1において、計算機システム1は、ホスト計算機2、管理計算機3、2台のストレージ装置4A、4B、ネットワーク、例えば、SAN(Storage Area Network)5及びLAN(Local Area Network)6を備えて構成される。ホスト計算機2は、SAN5を介して各ストレージ装置4A、4Bとそれぞれ接続され、管理計算機3は、LAN6を介してホスト計算機2及び各ストレージ装置4A、4Bとそれぞれ接続されている。
ホスト計算機2は、CPU10、メモリ11、記憶装置12、インタフェース制御部13及び複数のポート14を備えて構成される。CPU10は、ホスト計算機2全体の動作制御を司るプロセッサであり、記憶装置12に格納された各種プログラムをメモリ11に読み出して実行し、リード要求またはライト要求を含む入出力要求(アクセス要求)を発行する。メモリ11は、ホスト計算機2の起動時に、CPU10により記憶装置12から読み出された各種プログラムを記憶するために用いられるほか、CPU10のワークメモリとしても用いられる。
記憶装置12は、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)から構成され、各種プログラムや制御データを記憶保持するために用いられる。インタフェース制御部13は、ホスト計算機2をLAN6に接続するためのアダプタであり、各ポート14は、ホスト計算機2をSAN5に接続するためのアダプタである。
管理計算機3は、ホスト計算機2及び各ストレージ装置4A、4Bを管理するための計算機であり、CPU20、メモリ21、記憶装置22、インタフェース制御部23、入力装置24及び表示装置25を備えて構成される。
CPU20は、管理計算機3全体の動作制御を司るプロセッサであり、記憶装置22に格納された各種プログラムを、記憶装置22からメモリ21に読み出して実行する。
メモリ21は、管理計算機3の起動時に、CPU20により記憶装置22から読み出された各種プログラムを記憶するために用いられるほか、CPU20のワークメモリとしても用いられる。
記憶装置22は、例えば、HDD又はSSDから構成され、各種プログラムや制御データを記憶保持するために用いられる。インタフェース制御部23は、管理計算機3をLAN6に接続するためのアダプタである。入力装置24は、例えば、キーボード及びマウスから構成され、表示装置25は、例えば、液晶ディスプレイから構成される。
ストレージ装置4Aは、第1のストレージ装置として、複数の記憶装置30Aと、記憶装置30Aに対するデータの入出力を制御するコントロール部31Aとから構成される。ストレージ装置4Bは、第2のストレージ装置として、複数の記憶装置30Bと、記憶装置30Bに対するデータの入出力を制御するコントロール部31Bとから構成される。
各記憶装置30A、30Bは、例えば、HDD又はSSDから構成される。複数の記憶装置30A、30Bにより1つのRAID(Redundant Array of Inexpensive Disks)グループが構成され、1又は複数のRAIDグループが提供する記憶領域上に、1又は複数の論理ユニットが設定される。そしてホスト計算機2からのデータは、この論理ユニット内に所定の大きさのブロックを単位として格納される。
コントロール部31Aは、第1のコントロール部として、CPU40A、メモリ41A、不揮発メモリ42A、キャッシュメモリ43A、複数のホスト側ポート44A、複数の記憶装置側ポート45A及びインタフェース制御部46Aを備えて構成される。コントロール部31Bは、第2のコントロール部として、CPU40B、メモリ41B、不揮発メモリ42B、キャッシュメモリ43B、複数のホスト側ポート44B、複数の記憶装置側ポート45B及びインタフェース制御部46Bを備えて構成される。
CPU40A、40Bは、ストレージ装置4A、4B全体の動作制御を司るプロセッサであり、不揮発メモリ42A、42Bに格納された各種プログラムをメモリ41A、41Bに読み出して実行する。
メモリ41A、41Bは、ストレージ装置4A、4Bの起動時に、CPU40A、40Bにより不揮発メモリ42A、42Bから読み出された各種プログラムを記憶するために用いられるほか、CPU40A、40Bのワークメモリとしても用いられる。
不揮発メモリ42A、42Bは、各種プログラムや制御データを記憶保持するために用いられる。キャッシュメモリ43A、43Bは、主としてホスト計算機2と記憶装置30A、30Bとの間で授受されるデータを一時的に格納するために用いられる。
ホスト側ポート44A、44Bは、ストレージ装置4A、4BをSAN5に接続するためのアダプタであり、記憶装置側ポート45A、45Bは、コントロール部31A、31Bを記憶装置30A、30Bに接続するためのアダプタである。インタフェース制御部46A、46Bは、ストレージ装置4A、4BをLAN6に接続するためのアダプタである。
なお、本実施例の場合、ストレージ装置4Aは、移行対象ボリュームの移行元であり、ストレージ装置4Bは、移行対象ボリュームの移行先である。以下、これらを移行元ストレージ装置4A、移行先ストレージ装置4Bと呼ぶ。
図2は、移行元ストレージ装置4A、移行先ストレージ装置4Bにおける記憶領域の階層構造を示す。
図2において、移行元ストレージ装置4A、移行先ストレージ装置4Bは、記憶装置30A、30Bが提供する記憶領域を論理ユニット52A、52Bとしてホスト計算機2に提供する。記憶装置30A、30Bと論理ユニット52A、52Bとの間には、記憶装置30A、30Bと論理ユニット52A、52Bとを対応付けるための複数の中間記憶階層が設けられる。中間記憶階層には、例えば、仮想デバイス50A、50B及び論理デバイス51A、51Bを含めることができる。
仮想デバイス50A、50Bは、仮想デバイス50A、50Bの下位記憶階層である記憶装置30A、30Bと、仮想デバイス50A、50Bの上位記憶階層である論理デバイス51A、51Bとを接続する中間記憶階層であり、仮想デバイス50A、50Bは、記憶装置30A、30Bが構成するRAIDグループが提供する記憶領域上に定義される。
論理デバイス51A、51Bは、論理デバイス51A、51Bの下位記憶階層である仮想デバイス50A、50Bと、論理デバイス51A、51Bの上位記憶階層である論理ユニット52A、52Bとを接続する中間記憶階層であり、1若しくは複数の仮想デバイス50A、50Bの記憶領域の全部若しくは一部を集合してなる記憶領域、又は仮想デバイス50A、50Bの記憶領域の一部を抜き出してなる記憶領域である。
論理ユニット52A、52Bは、論理ユニット52A、52Bの下位記憶階層である論理デバイス51A、51Bをホスト側ポート44A、44Bに対応付けたものである。論理ユニット52A、52Bは、互いに異なる論理ユニットであっても、その下位記憶階層に同じ論理デバイス51A、51Bを持つ場合、論理デバイス51A、51Bに格納されている、同じデータを異なるホスト側ポート44A、44Bを通してホスト計算機2に提供する。
なお、移行元ストレージ装置4A、移行先ストレージ装置4Bは、それぞれ論理デバイス51A、51Bに格納されているデータを、同一ストレージ装置内の異なる論理デバイス51A、51Bにコピーする、ローカルコピー機能を有する。例えば、移行元ストレージ装置4Aは、複数の論理デバイス51Aのうち、コピー元の論理デバイス51Aに格納されているデータを、コピー先の論理デバイス51Aにコピーする、ローカルコピー機能を有し、移行先ストレージ装置4Bは、複数の論理デバイス51Bのうち、コピー元の論理デバイス51Bに格納されているデータを、コピー先の論理デバイス51Bにコピーする、ローカルコピー機能を有する。
また、移行元ストレージ装置4A、移行先ストレージ装置4Bは、外部ストレージ装置の論理デバイスを仮想化してホスト計算機2に提供する、外部接続機能を有する。外部接続機能を利用した場合、仮想デバイス50A、50Bの下位記憶階層は、外部ストレージ装置の論理ユニットとなる。
図3は、移行元ストレージ装置4A、移行先ストレージ装置4Bのメモリ41A、41Bにおけるデータ構成を示す。
図3において、メモリ41A、41Bには、記憶階層管理プログラム60A、60B、ローカルコピープログラム61A、61B、データ移行プログラム62A、62B、論理ユニット管理テーブル63A、63B、論理デバイス管理テーブル64A、64B、仮想デバイス管理テーブル65A、65B、キャッシュ管理テーブル66A、66B及びローカルコピー管理テーブル67A、67Bが格納される。
記憶階層管理プログラム60A、60Bは、移行元ストレージ装置4A、移行先ストレージ装置4Bにおける記憶階層間の対応関係を管理するためのプログラムであり、論理ユニット管理テーブル63A、63B、論理デバイス管理テーブル64A、64B、仮想デバイス管理テーブル65A、65Bに格納された各種情報に基づいて後述する各種処理を実行する。
ローカルコピープログラム61A、61Bは、移行元ストレージ装置4A、移行先ストレージ装置4Bにおいてローカルコピー機能を実現するプログラムであり、論理デバイス(コピー元の論理デバイス)51A、51Bに格納されているデータを、同一ストレージ装置内の異なる論理デバイス(コピー先の論理デバイス)51A、51Bにコピーする処理を実行する。
データ移行プログラム62A、62Bは、移行元ストレージ装置4Aから移行先ストレージ装置4Bへのデータ移行を制御するためのプログラムである。本実施例では、移行先ストレージ装置4Bは、データ移行プログラム62Bに基づいて、移行元ストレージ装置4Aの記憶装置30Aに格納されているデータを移行先ストレージ装置4Bの記憶装置30Bにコピーする。
移行元ストレージ装置4Aと移行先ストレージ装置4Bにおける各種の処理は、コントロール部31A、31Bが、メモリ41A、41Bに格納された各種プログラムを実行することで行わるが、以下では、移行元ストレージ装置4Aまたは移行先ストレージ装置4Bによる処理として、あるいは各種プログラムの処理として説明することがある。
図4は、論理ユニット管理テーブル63A、63Bのデータ構成を示す。
図4において、論理ユニット管理テーブル63A、63Bは、記憶階層管理プログラム60A、60Bが、論理ユニット52A、52Bを管理するために利用するテーブルであり、個々の論理ユニット52A、52Bにそれぞれ対応して設けられた1つ以上の論理ユニット管理エントリ70A、70Bから構成される。
論理ユニット管理エントリ70A、70Bには、ポート番号71A、71B、LUN72A、72B及び論理デバイス番号73A、73Bが登録される。ポート番号71A、71Bは、論理ユニット52A、52Bが対応づけられているホスト側ポート44A、44Bの識別情報である。
LUN72A、72Bは、論理ユニット52A、52Bの識別情報であり、同一のホスト側ポート44A、44Bに対応づけられている複数の論理ユニット52A、52Bを識別するために用いられる。論理デバイス番号73A、73Bは、論理ユニット52A、52Bを構成する論理デバイス51A、51Bの識別情報である。
図5は、論理デバイス管理テーブル64A、64Bのデータ構成を示す。
図5において、論理デバイス管理テーブル64A、64Bは、記憶階層管理プログラム60A、60Bが、論理デバイス51A、51Bを管理するために利用するテーブルであり、個々の論理デバイス51A、51Bにそれぞれ対応して設けられた1つ以上の論理デバイス管理エントリ80A、80Bから構成される。
論理デバイス管理エントリ80A、80Bには、論理デバイス番号81A、81B、仮想デバイス番号82A、82B、Inquiry情報83A、83B、リードキャッシュモード84A、84B、ライトキャッシュモード85A、85Bが登録される。
論理デバイス番号81A、81Bは、論理デバイス管理エントリ80A、80Bに対応する論理デバイス51A、51Bの識別情報であり、仮想デバイス番号82A、82Bは、その論理デバイス51A、51Bを構成する仮想デバイス50A、50Bの識別情報である。Inquiry情報83A、83Bは、SCSI規格で定められたInquiryコマンドへの応答に含められる情報であり、移行元ストレージ装置4A、移行先ストレージ装置4Bの識別情報や論理デバイス51A、51Bの識別情報などを含む。
リードキャッシュモード84A、84Bは、論理デバイス51A、51Bに対応して設定される動作モードを管理するための情報であって、対応する論理デバイス51A、51Bにリードキャッシュモードが設定されているか否かを表すフラグであり、「オン」又は「オフ」の値をとる。リードキャッシュモード84A、84Bが「オン」である場合は、移行元ストレージ装置4A、移行先ストレージ装置4Bは、ホスト計算機2にリードデータを送信する際に、そのリードデータをキャッシュメモリ43A、43Bに一時的に保存し、後ほど同じリードデータに対するリード要求を受信した場合に、キャッシュメモリ43A、43Bに保存したリードデータをホスト計算機2に送信する処理(以下、リードキャッシュオンの処理と称することがある。)を実行する。
一方、リードキャッシュモード84A、84Bが「オフ」である場合は、移行元ストレージ装置4A、移行先ストレージ装置4Bは、ホスト計算機2からリード要求を受信した場合に、ホスト計算機2にリードデータを送信する際には、必ず記憶装置30A、30Bからリードデータを読み出し(外部接続機能を用いている場合は、リードデータを外部ストレージ装置から読み出す)、読み出したリードデータをホスト計算機2に送信する処理(以下、リードキャッシュオフの処理と称することがある。)を実行する。
ライトキャッシュモード85A、85Bは、論理デバイス51A、51Bに対応して設定される動作モードを管理するための情報であって、対応する論理デバイス51A、51Bにライトキャッシュモードが設定されているか否かを表すフラグであり、「オン」又は「オフ」の値をとる。ライトキャッシュモード85A、85Bが「オン」である場合は、移行元ストレージ装置4A、移行先ストレージ装置4Bは、ホスト計算機2からライトデータを受信した際に、そのライトデータをキャッシュメモリ43A、43Bに一時的に保存し、ライトデータを記憶装置30A、30Bに格納する前に(外部接続機能を用いている場合は、ライトデータを外部ストレージ装置に格納する前に)、ホスト計算機2にライト応答を送信する処理(以下、ライトバックまたはライトキャッシュオンの処理と称することがある。)を実行する。
一方、ライトキャッシュモード85A、85Bが「オフ」である場合は、移行元ストレージ装置4A、移行先ストレージ装置4Bは、ホスト計算機2からライトデータを受信した際に、そのライトデータを記憶装置30A、30Bに格納した後に(外部接続機能を用いている場合は、ライトデータを外部ストレージ装置に格納した後に)、ホスト計算機2にライト応答を送信する処理(以下、ライトスルーまたはライトキャッシュオフの処理と称することがある。)を実行する。
図6は、仮想デバイス管理テーブル65A、65Bのデータ構成を示す。
図6において、仮想デバイス管理テーブル65A、65Bは、記憶階層管理プログラム60A、60Bが、仮想デバイス50A、50Bを管理するために利用するテーブルであり、個々の仮想デバイス50A、50Bにそれぞれ対応して設けられた1つ以上の仮想デバイス管理エントリ90A、90Bから構成される。
仮想デバイス管理エントリ90A、90Bには、対応する仮想デバイス50A、50Bの識別情報である仮想デバイス番号91A、91Bと、その仮想デバイス50A、50Bの下位記憶階層の識別情報である下位記憶階層識別情報92A、92Bと、が登録される。
例えば、下位記憶階層が、記憶装置30A、30Bである場合、下位記憶階層識別情報92A、92Bとして、その記憶装置30A、30Bの識別情報が登録される。一方、下位記憶階層が、外部ストレージ装置の論理デバイスである場合、下位記憶階層識別情報92A、92Bとして、その論理デバイスのデータを提供する論理ユニットのファイバチャネルアドレスとLUNが登録される。
図7は、キャッシュ管理テーブル66A、66Bのデータ構成を示す。
図7において、キャッシュ管理テーブル66A、66Bは、キャッシュメモリ43A、43Bに一時的に保存されているデータを管理するための情報であり、キャッシュメモリ43A、43Bに格納された個々のデータにそれぞれ対応させて設けられた1つ以上のキャッシュ管理エントリ100A、100Bから構成される。
キャッシュ管理エントリ100A、100Bには、キャッシュアドレス101A、101Bと、データ識別情報102A、102Bとが登録される。キャッシュアドレス101A、101Bは、キャッシュメモリ43A、43Bにおいて、係るデータが格納されている記憶領域の先頭アドレスである。
また、データ識別情報102A、102Bは、係るデータの識別情報であり、例えば、係るデータを格納している論理デバイス51A、51Bの識別情報と、その論理デバイス51A、51Bにおいて、係るデータが格納されている記憶領域とから生成される。
図8は、ローカルコピー管理テーブル67A、67Bのデータ構成を示す。
図8において、ローカルコピー管理テーブル67A、67Bは、ローカルコピープログラム61A、61Bの処理を管理するための情報であり、正VOL論理デバイス番号111A、111B、副VOL論理デバイス番号112A、112B、ペア状態113A、113B及び差分管理情報114A、114Bから構成される。正VOL論理デバイス番号は、コピー元の論理デバイス51A、51Bの識別情報であり、副VOL論理デバイス番号は、コピー先の論理デバイス51A、51Bの識別情報である。
ペア状態113A、113Bは、コピー元の論理デバイス51A、51Bとコピー先の論理デバイス51A、51Bとの間でローカルコピープログラム61A、61Bが実行している処理の状態を表す情報であり、「PAIR」又は「PSUS」の値をとる。
ペア状態113A、113Bが「PAIR」の場合は、ローカルコピープログラム61A、61Bは、コピー処理を実行していて、コピー先の論理デバイス51A、51Bに対するライト要求は禁止されている。コピー元の論理デバイス51A、51Bに対してライト要求が発行された場合、ローカルコピープログラム61A、61Bは、ライトデータをコピー先の論理デバイス51A、51Bにコピーする。
このコピーは、ライト要求と同期して行われてもよいし、非同期に行われてもよい。コピーが非同期に行われる場合、ローカルコピープログラム61A、61Bは、ライト要求の処理時にコピーを行わず、ライト要求に対応する記憶領域について、コピー元の論理デバイス51A、51Bとコピー先の論理デバイス51A、51Bとの間に差分が生じていることを、差分管理情報114A、114Bに記録する。そして、ライト要求とは関係ないタイミングで、ローカルコピープログラム61A、61Bは、差分管理情報114A、114Bを参照して、差分が生じている領域のデータを、コピー元の論理デバイス51A、51Bからコピー先の論理デバイス51A、51Bへコピーする。
ペア状態113A、113Bが「PSUS」の場合は、ローカルコピープログラム61A、61Bはコピー処理を中断していて、代わりにコピー元の論理デバイス51A、51Bとコピー先の論理デバイスのデータの差分管理を行っている。また、コピー先の論理デバイス51A、51Bに対するライト要求は許可されている。
コピー元の論理デバイス51A、51B又はコピー先の論理デバイス51A、51Bに対してライト要求が発行された場合、ローカルコピープログラム61A、61Bは、ライト要求に対応する記憶領域について、コピー元の論理デバイスとコピー先の論理デバイスとの間に差分が生じていることを、差分管理情報114A、114Bに記録する。
そして、ペア状態が「PSUS」から「PAIR」に変更されたタイミングで、ローカルコピープログラム61A、61Bは、差分管理情報114A、114Bを参照して、差分が生じている領域のデータを、コピー元の論理デバイス51A、51Bからコピー先の論理デバイス51A、51Bへコピーする。即ち、ペア状態が「PSUS」から「PAIR」に変更された場合、差分が生じている領域のデータを、コピー元の論理デバイス51A、51Bからコピー先の論理デバイス51A、51Bへコピーすることで、コピー元の論理デバイス51A、51Bのデータとコピー先の論理デバイス51A、51Bのデータを一致させることができる。
差分管理情報114A、114Bは、コピー元の論理デバイス51A、51Bとコピー先の論理デバイス51A、51Bとの間で、データに差分が生じている記憶領域を管理するための情報であり、例えば、ビットマップである。
図9は、ホスト計算機2のメモリ11におけるデータ構成を示す。
図9において、メモリ11には、複数のアプリケーションプログラム130、交替パスプログラム131及びパス管理テーブル132が格納される。
アプリケーションプログラム130は、ユーザの業務に応じた処理を実行するプログラムであり、交替パスプログラム131によって自己に割り当てられた論理ボリュームを介して、論理ユニット52A又は論理ユニット52Bに対して読み書きする。
交替パスプログラム131は、パス管理テーブル132に登録された各種情報に基づいて、移行元ストレージ装置4A又は移行先ストレージ装置4Bに入出力要求を発行するプログラムである。
パス管理テーブル132は、交替パスプログラム131の入出力要求発行先を管理するためのテーブルであり、個々の論理ボリュームに対応させて設けられた1以上のパス管理エントリ133から構成される。
パス管理エントリ133には、論理ボリュームの識別情報である論理ボリューム番号134と、その論理ボリュームと接続されている各パスの識別情報であるパス番号135とが登録される。パスが冗長構成により複数設定された場合、パス管理エントリ133には複数のパス番号135が登録される。
一つの論理ボリュームに対して設定する複数のパスは、同じ論理ユニットへのパスである必要はなく、Inquiryコマンドに対して同じ応答を返す論理ユニットへのパスであれば良い。従って、Inquiryコマンドに対して、同じ応答を返す論理ユニットへのパスであれば、異なるストレージ装置の論理ユニットへのパスでも良い。
交替パスプログラム131は、移行元ストレージ装置4A又は移行先ストレージ装置4Bに入出力要求を発行する際、パス管理テーブル132を参照して、該当する論理ボリュームに対応付けられた複数のパスの中から1つのパスを選択し、選択したパスを介して移行元ストレージ装置4A又は移行先ストレージ装置4Bに対して入出力要求を発行する。パス管理テーブル132に、新たなパスに対応するパス管理エントリ133を登録すると、そのパスは、交替パスプログラム131によって選択される候補になる。また、パス管理テーブル52から、パス管理エントリを登録解除すると、登録解除されたパス管理エントリに対するパスは、交替パスプログラム131によって選択される候補から外れる。
なお、交替パスプログラム131は、例えば、ホスト計算機2のオペレーティングシステムが標準的な機能として提供するものであり、前述の範囲を超える特殊な制御を行える必要はない。
図10は、管理計算機3のメモリ21におけるデータ構成を示す。
図10において、メモリ21には、ボリューム移行指示プログラム140が格納される。ボリューム移行指示プログラム140は、移行元ストレージ装置4Aと移行先ストレージ装置4Bとの間のボリューム移行を制御するプログラムであり、ボリューム移行時に、ホスト計算機2と移行先ストレージ装置4Bに対して必要な指示を与える。
(1−2)本計算機システムにおけるボリューム移行処理
(1−2−1)本計算機システムにおけるボリューム移行処理の概要
次に、図11から図13を参照して、係る計算機システム1において、ローカルコピー機能が適用されたボリュームを移行元ストレージ装置4Aから移行先ストレージ装置4Bに移行する際に実行される処理の概要を説明する。
本実施例では、移行元のボリュームは、移行元ストレージ装置4A内の2つの論理デバイス51Aであり、それら2つの論理デバイス51A間ではローカルコピープログラム61Aによってコピー処理(以下、ローカルコピー処理と称することがある。)が行われている。以下、このコピー処理のコピー元の論理デバイス51Aを移行元正VOL150A、コピー先の論理デバイス51Aを移行元副VOL151Aと呼ぶ。
また、本実施例では、移行先のボリュームは、移行先ストレージ装置4B内の2つの論理デバイス51Bである。以下、移行元正VOL150Aの移行先となる論理デバイス51Bを移行先正VOL150B、移行元副VOL151Aの移行先となる論理デバイス51Bを移行先副VOL151Bと呼ぶ。
本実施例におけるボリューム移行処理は、ホスト計算機2の入出力要求発行先を移行元ストレージ装置4Aから移行先ストレージ装置4Bに移行する入出力要求発行先移行処理と、移行元ストレージ装置4Aで行われているコピー処理を移行先ストレージ装置4Bに移行するコピー処理移行処理(以下、コピー処理の制御情報移行処理と称することもある。)と、移行元ストレージ装置4Aに格納されているデータを移行先ストレージ装置4Bに移行するデータ移行処理との3つのステップからなる。
図11は、第1実施例の入出力要求発行先移行処理を概念的に示す。
図11において、この入出力要求発行先移行処理は、管理計算機3からホスト計算機2及び移行先ストレージ装置4Bにそれぞれ与えられる指示に従って、ホスト計算機2及び移行先ストレージ装置4Bがそれぞれ必要な処理を実行することにより行われる。
まず、移行先ストレージ装置4Bは、管理計算機3から与えられる指示(A11)に従って、移行元正VOL150Aと移行元副VOL151Aを、それぞれ移行先正VOL150Bと移行先副VOL151Bとして仮想化する(SP160)。
次いで、移行先ストレージ装置4Bは、移行先正VOL150Bと移行先副VOL151Bのそれぞれのリードキャッシュモードとライトキャッシュモードをそれぞれオフにする(SP161)。これらの処理により、ホスト計算機2は、データの整合性が維持された状態で、移行先ストレージ装置4Bを介して、移行元正VOL150Aと移行元副VOL151Aに入出力要求を発行することが可能になる。
この場合、移行元正VOL150Aと移行先正VOL150Bは、ポート44A、SAN5、ポート44Bを介して外部接続され、移行元副VOL151Aと移行先副VOL151Bは、ポート44A、SAN5、ポート44Bを介して外部接続されるので、例えば、ホスト計算機2から、移行先ストレージ装置4Bにライト要求が発行されると、ライトキャッシュモードがオフであることを条件に、移行元正VOL150Aと移行元副VOL151Aにライトデータが反映される。
次に、ホスト計算機2は、管理計算機3からの指示(A12)に従って、移行元正VOL150Aと移行元副VOL151Aに対応する論理ボリュームへの交替パスとして、移行先正VOL150Bと移行先副VOL151Bに対応する論理ボリュームへのパスを登録する(SP162)。
次いで、ホスト計算機2は、これらの論理ボリュームの交替パスから、移行元正VOL150Aと移行元副VOL151Aへのパスを登録解除する(SP163)。これらの処理により、交替パスプログラム131の標準的な機能であるパス登録とパス登録解除を用いて、ホスト計算機2の入出力要求発行先を移行元ストレージ装置4Aから移行先ストレージ装置4Bに移行できる。
その後、移行先ストレージ装置4Bは、管理計算機3からの指示(A11)に従って、移行先正VOL150Bと移行先副VOL151Bのそれぞれのリードキャッシュモードをオンにする(SP164)。この処理により、以降のコピー処理移行処理とデータ移行処理の実行中に、移行先ストレージ装置4Bは、リードキャッシュを利用してリード要求を高速に処理することが可能になる。ステップSP160〜ステップSP164が実行されている間、移行元ストレージ装置4Aでは、移行元正VOL150Aに格納されたデータを移行元副VOL151Aにコピーするコピー処理(A13)が実行されている。
図12は、第1実施例のコピー処理移行処理を概念的に示す。
図12において、このコピー処理移行処理は、管理計算機3から移行先ストレージ装置4Bに与えられる指示及び移行先ストレージ装置4Bから移行元ストレージ装置4Aに与えられる指示に従って、移行元ストレージ装置4A及び移行先ストレージ装置4Bがそれぞれ必要な処理を実行することにより行われる。
まず、移行先ストレージ装置4Bは、管理計算機3から与えられる指示(A21)に従って、ホスト計算機2からの入出力要求の処理を一時停止する(SP165)。
次いで、移行先ストレージ装置4Bは、移行元ストレージ装置4Aから、移行元正VOL150Aと移行元副VOL151Aとの間のコピー処理(A22)の制御情報を取得する(SP166)。これらの処理により、移行先ストレージ装置4Bは、移行元正VOL150Aと移行元副VOL151Aとの間のコピー処理(A22)の制御情報を、整合性を維持しながら、移行元ストレージ装置4Aから取得できる。
次に、移行元ストレージ装置4Aは、移行先ストレージ装置4Bから与えられる指示(A23)に従って、移行元正VOL150Aと移行元副VOL151Aとの間のコピー処理(A22)を終了する(SP167)。
次いで、移行先ストレージ装置4Bは、SP166で取得した制御情報を用いて移行先正VOL150Bと移行先副VOL151Bとの間でコピー処理(A24)を開始する(SP168)。これらの処理により、移行先ストレージ装置4Bは、移行元ストレージ装置4Aにおいて行なわれていた移行元正VOL150Aと移行元副VOL151Aとの間のコピー処理(A22)を、移行先正VOL150Bと移行先副VOL151Bとの間のコピー処理(A24)として継続することができる。
その後、移行先ストレージ装置4Bは、ホスト計算機2からの入出力要求の処理を再開する(SP169)。この処理により、入出力要求の処理を停止する時間を、SP165(入出力要求の処理を一時停止)からSP169(入出力要求の処理を再開)までの短い期間に限定することができる。
その結果、交替パスプログラム131による入出力要求の再発行により、入出力要求の処理の一時停止を、アプリケーションプログラム130から隠蔽することができる。
図13は、第1実施例のデータ移行処理を概念的に示す。
図13において、このデータ移行処理は、管理計算機3から移行先ストレージ装置4Bに与えられる指示に従って、移行先ストレージ装置4Bが必要な処理を実行することにより行われる。
まず、移行先ストレージ装置4Bは、管理計算機3からの指示(A31)に従って、移行元正VOL150Aと移行元副VOL151Aに格納されているデータを、それぞれ移行先正VOL150Bと移行先副VOL151Bに移行する(SP170)。
その後、移行先ストレージ装置4Bは、移行先正VOL150Bと移行先副VOL151Bのそれぞれのライトキャッシュモードをオフからオンにする(SP171)。SP171の直前までライトキャッシュモードをオフにしておくことにより、SP171の直前までは、移行元正VOL150Aと移行元副VOL151Aに対して、ライトスルーの処理が実行されるので、移行元正VOL150Aと移行元副VOL151Aに最新のデータを保持しておくことができる。このため、ボリューム移行処理中に、移行先ストレージ装置4Bで障害が発生した場合に、最新のデータが保持されている、移行元正VOL150Aと移行元副VOL151Aの利用に戻ることが可能になる。
(1−2−2)各プログラムの具体的な処理
次に、図14から図22を参照して、本実施例によるボリューム移行処理に関する各種処理の処理内容をより詳細に説明する。
(1−2−2−1)ボリューム移行指示処理
図14は、本実施例によるボリューム移行処理に関連してボリューム移行指示プログラム140により実行されるボリューム移行指示処理の手順を示す。
図14において、管理計算機3のボリューム移行指示プログラム140は、移行元正VOL150Aと移行元副VOL151Aの移行の指示を、入力装置24を介してシステム管理者により与えられると、以下の処理を開始する。
図14の各ステップにおいて、ボリューム移行指示プログラム140は、ホスト計算機2又は移行先ストレージ装置4Bに指示を与える。指示を与えられたホスト計算機2又はストレージ装置4Bは、その指示に従って処理を行い、処理が完了すると、ボリューム移行指示プログラム140に完了通知を送信する。ボリューム移行指示プログラム140は、ホスト計算機2又はストレージ装置4Bから完了通知を受信すると、次のステップに進む。
最初に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行元正VOL150Aと移行元副VOL151Aの仮想化を開始するよう指示(以下、これを移行元ボリューム仮想化開始指示と呼ぶ)を与える(SP180)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行先正VOL150Bと移行先副VOL151Bのリードキャッシュモードとライトキャッシュモードをオフにするよう指示(以下、これをリード・ライトキャッシュオフ指示と呼ぶ)を与える(SP181)。
次に、ボリューム移行指示プログラム140は、ホスト計算機2に対して、移行元正VOL150Aと移行元副VOL151Aに対応する論理ボリュームへの交替パスとして、移行先ストレージ装置4Bへのパスを登録し、移行元ストレージ装置4Aへのパスを登録解除するよう指示(以下、これを交替パス登録・登録解除指示と呼ぶ)を与える(SP182)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行先正VOL150Bと移行先副VOL151Bのリードキャッシュモードをオンにするよう指示(以下、これをリードキャッシュオン指示と呼ぶ)を与える(SP183)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行元正VOL150Aと移行元副VOL151Aとの間のコピー処理を移行元ストレージ装置4Aから移行先ストレージ装置4Bに移行するよう指示(以下、これをコピー処理移行指示と呼ぶ)を与える(SP184)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行元正VOL150Aと移行元副VOL151Aのデータをそれぞれ移行先正VOL150Bと移行先副VOL151Bに移行するよう指示(以下、これをデータ移行指示と呼ぶ)を与える(SP185)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行先正VOL150Bと移行先副VOL151Bのライトキャッシュモードをオンにするよう指示(以下、これをライトキャッシュオン指示と呼ぶ)を与える(SP186)。
最後に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行元正VOL150Aと移行元副VOL151Aの仮想化を終了するよう指示(以下、これを移行元ボリューム仮想化終了指示と呼ぶ)を与える(SP187)。
(1−2−2−2)移行元ボリューム仮想化開始処理
図15は、係るボリューム移行指示処理のステップSP180において、移行元ボリューム仮想化開始指示を受信した移行先ストレージ装置4Bが実行する処理の手順を示す。以下、移行元正VOL150Aの仮想化を開始するための処理について説明するが、移行元副VOL151Aについても同様の処理が実行される。
最初に、移行先ストレージ装置4Bは、移行元正VOL150Aを仮想化して、移行元正VOL150Aを移行先正VOL150Bとしてホスト計算機2に提供するための設定を行う(SP190)。
具体的に、移行先ストレージ装置4Bの記憶階層管理プログラム60Bは、新たな仮想デバイス管理エントリ90Bを仮想デバイス管理テーブル65Bに追加し、この仮想デバイス管理エントリ90Bの下位記憶階層識別情報92Bに、移行元正VOL150Aのデータを提供する論理ユニット52AのファイバチャネルアドレスとLUNを登録する。そして、移行先正VOL150Bに対応する新たな論理デバイス管理エントリ80Bを論理デバイス管理テーブル64Bに追加し、この論理デバイス管理エントリ80Bの仮想デバイス番号82Bに、新たに追加した仮想デバイスエントリ90Bの仮想デバイス番号91Bを登録する。
次に、移行先ストレージ装置4Bは、移行先正VOL150BへのInquiryコマンドに対する応答を、移行元正VOL150AへのInquiryコマンドに対する応答と同じにするための設定を行う(SP191)。
具体的に、移行先ストレージ装置4Bの記憶階層管理プログラム60Bは、移行元正VOL150Aに対してInquiryコマンドを送信し、そのInquiryコマンドに対する応答に含まれる情報(例えば、論理ユニット52Aを構成する論理デバイス51Aの論理デバイス番号)を、移行先正VOL150Bに対応する論理デバイス管理エントリ80BのInquiry情報83Bに登録する。
ステップSP190とSP191により、交替パスプログラム131は、移行元正VOL150Aのデータを提供する論理ユニット52Aへのパスと、移行先正VOL150Bのデータを提供する論理ユニット52Bへのパスとを、同じ論理ボリュームの交替パスとして登録することが可能になる。
移行先ストレージ装置4Bは、移行元正VOL150Aと移行元副VOL151Aの両方の仮想化を開始するための処理が完了すると、ボリューム移行指示プログラム140に完了通知を送信する(SP192)。
上記処理により、移行元正VOL150Aと移行先正VOL150Bは、ポート44A、SAN5、ポート44Bを介して外部接続され、移行元副VOL151Aと移行先副VOL151Bは、ポート44A、SAN5、ポート44Bを介して外部接続されることになる。
(1−2−2−3)リード・ライトキャッシュオフ処理
図16は、係るボリューム移行指示処理のステップSP181において、リード・ライトキャッシュオフ指示を受信した移行先ストレージ装置4Bが実行する処理の手順を示す。以下、移行先正VOL150Bのリードキャッシュモードとライトキャッシュモードをオフにするための処理について説明するが、移行先副VOL151Bについても同様の処理が実行される。
最初に、移行先ストレージ装置4Bは、移行先正VOL150Bのリードキャッシュモードをオフに設定する(SP200)。
具体的に、移行先ストレージ装置4Bの記憶階層管理プログラム60Bは、移行先正VOL150Bに対応する論理デバイス管理エントリ80Bのリードキャッシュモード84Bに「オフ」を登録する。
次に、移行先ストレージ装置4Bは、移行先正VOL150Bのライトキャッシュモードをオフに設定する(SP201)。
具体的に、移行先ストレージ装置4Bの記憶階層管理プログラム60Bは、移行先正VOL150Bに対応する論理デバイス管理エントリ80Bのライトキャッシュモード85Bに「オフ」を登録する。
移行先ストレージ装置4Bは、移行先正VOL150Bと移行先副VOL151Bの両方のリードキャッシュモードとライトキャッシュモードをオフにするための処理が完了すると、ボリューム移行指示プログラム140に完了通知を送信する(SP202)。
(1−2−2−4)交替パス登録・登録解除処理
図17は、係るボリューム移行指示処理のステップSP182において、交替パス登録・登録解除指示を受信したホスト計算機2が実行する処理の手順を示す。以下、移行元正VOL150Aに対応する論理ボリュームへの交替パスを登録・登録解除するための処理について説明するが、移行元副VOL151Aについても同様の処理が実行される。
最初に、ホスト計算機2は、移行先ストレージ装置4Bがホスト計算機2に提供している論理ユニット52Bの一覧を取得するためのディスカバリ処理を行う(SP210)。
次に、ホスト計算機2は、ディスカバリ処理で取得した論理ユニット52Bの一覧に基づいて、移行元正VOL150Aに対応する論理ボリュームへのパスとして、移行先正VOL150Bへのパスを登録する(SP211)。
具体的に、交替パスプログラム131は、移行元正VOL150Aに対応するパス管理エントリ133のパス番号135に、新たなパス番号135を追加し、移行先正VOL150Bのデータを提供する論理ユニット52Bへのパスの識別情報を登録する。
次に、ホスト計算機2は、移行元正VOL150Aに対応する論理ボリュームへのパスを参照し、移行元正VOL150Aへのパスを登録解除する(SP212)。
具体的に、交替パスプログラム131は、移行元正VOL150Aに対応するパス管理エントリ133のパス番号135を削除し、移行元正VOL150Aのデータを提供する論理ユニットへのパスの識別情報を登録解除する。
ホスト計算機2は、移行元正VOL150Aと移行元副VOL151Aの両方に対応する論理ボリュームへの交替パスを登録・登録解除するための処理が完了すると、ボリューム移行指示プログラム140に完了通知を送信する(SP213)。
(1−2−2−5)リードキャッシュオン処理
図18は、係るボリューム移行指示処理のステップSP183において、リードキャッシュオン指示を受信した移行先ストレージ装置4Bが実行する処理の手順を示す。以下、移行先正VOL150Bのリードキャッシュモードをオンにするための処理について説明するが、移行先副VOL151Bについても同様の処理が実行される。
最初に、移行先ストレージ装置4Bは、移行先正VOL150Bのリードキャッシュモードをオンに設定する(SP220)。
具体的に、移行先ストレージ装置4Bの記憶階層管理プログラム60Bは、移行先正VOL150Bに対応する論理デバイス管理エントリ80Bのリードキャッシュモード84Bに「オン」を登録する。
移行先ストレージ装置4Bは、移行先正VOL150Bと移行先副VOL151Bの両方のリードキャッシュモードをオンにするための処理が完了すると、ボリューム移行指示プログラム140に完了通知を送信する(SP221)。
(1−2−2−6)ローカルコピー移行処理
図19は、係るボリューム移行指示処理のステップSP184において、コピー処理移行指示を受信した移行先ストレージ装置4Bが実行する処理の手順を示す。
最初に、移行先ストレージ装置4Bは、ホスト計算機2から、移行先正VOL150Bと移行先副VOL151Bへの入出力要求の処理を一時停止する(SP230)。
入出力要求の処理を一時停止する一つの方法として、移行先ストレージ装置4Bは、ステップSP234で入出力要求の処理を再開するまでの間、ホスト計算機2から、移行先正VOL150Bと移行先副VOL151Bへの入出力要求を破棄する。この場合、ステップSP234で入出力要求の処理を再開した後に、交替パスプログラム131が再発行した入出力要求を処理する。
入出力要求の処理を一時停止する別の方法として、移行先ストレージ装置4Bは、ステップSP234で入出力要求の処理を再開するまでの間、ホスト計算機2から、移行先正VOL150Bと移行先副VOL151Bへの入出力要求をメモリ41Bに保存する。この場合、ステップSP234で入出力要求の処理を再開した後に、メモリ41Bに保存した入出力要求を処理する。
次に、移行先ストレージ装置4Bは、移行元正VOL150Aと移行元副VOL151Aとの間のコピー処理の制御情報を、移行元ストレージ装置4Aのメモリ41Aから移行先ストレージ装置4Bのメモリ41Bに移行する(SP231)。
具体的に、まず、移行先ストレージ装置4Bは、新たなローカルコピー管理エントリ110Bを作成し、ローカルコピー管理テーブル67Bに追加する。その際、移行先ストレージ装置4Bは、このローカルコピー管理エントリ110Bの正VOL論理デバイス番号111Bと副VOL論理デバイス番号112Bに、移行先正VOL150Bと移行先副VOL151Bの論理デバイス番号81Bをそれぞれ登録する。そして、移行先ストレージ装置4Bは、移行元正VOL150Aと移行元副VOL151Aとの間のコピー処理に対応するローカルコピー管理エントリ110Aから、ペア状態113Aと差分管理情報114Aを、新たに作成したローカルコピー管理エントリ110Bのペア状態113Bと差分管理情報114Bにコピーする。
次に、移行先ストレージ装置4Bは、移行元ストレージ装置4Aに、移行元正VOL150Aと移行元副VOL151Aとの間のコピー処理を終了するよう指示する(SP232)。移行元ストレージ装置4Aは、この指示に従って移行元正VOL150Aと移行元副VOL151Aとの間のコピー処理を終了する。
具体的に、ローカルコピープログラム61Aは、移行元正VOL150Aに対してライト要求が発行されたときに、ライトデータを、移行元正VOL150Aから移行元副VOL151Aにコピーするローカルコピー処理を終了する。この場合、ローカルコピープログラム61Aは、移行元正VOL150Aと移行元副VOL151Aとの間の差分管理を終了してもよい。
一方、差分管理を続け、移行元正VOL150Aと移行元副VOL151Aとの間に生じるデータの差分管理情報を保存した場合、ローカルコピープログラム61Aは、ボリューム移行処理中に移行先ストレージ装置4Bで障害が発生した場合に、保存した差分管理情報を基にストレージ装置4Aの利用に戻る処理を高速化することができる。
なお、差分管理を終了した場合でも、ローカルコピープログラム61Aは、移行元正VOL150Aと移行元副VOL151Aのデータから両者のデータの差分を計算することによって、差分管理を続けた場合と同じ状態を再現できるが、計算の分だけストレージ装置4Aの利用に戻るまでの時間が長くなってしまう。
次に、移行先ストレージ装置4Bは、移行先正VOL150Bと移行先副VOL151Bとの間のコピー処理を開始する(SP233)。
具体的に、ローカルコピープログラム61Bは、ホスト計算機2から移行先正VOL150Bにライト要求が発行されたときに、ライトデータを、移行先正VOL150Bから移行先副VOL151Bにコピーするローカルコピー処理と、移行先正VOL150Bと移行先副VOL151Bとの間の差分管理とを開始する。ただし、ステップSP234までは入出力要求の処理を一時停止されているため、ローカルコピープログラム61Bが、実際にライトデータをコピーしたり、差分管理情報114Bを更新したりし始めるのはステップSP234の後である。
次に、移行先ストレージ装置4Bは、ホスト計算機2から、移行先正VOL150Bと移行先副VOL151Bへの入出力要求の処理を再開する(SP234)。ホスト計算機2から移行先正VOL150Bと移行先副VOL151Bへの入出力要求をメモリ41Bに保存していた場合は、それらの処理も開始する。
最後に、移行先ストレージ装置4Bは、ボリューム移行指示プログラム140に完了通知を送信する(SP235)。
(1−2−2−7)データ移行処理
図20は、係るボリューム移行指示処理のステップSP185において、データ移行指示を受信した移行先ストレージ装置4Bが実行する処理の手順を示す。以下、移行元正VOL150Aのデータを移行するための処理について説明するが、移行元副VOL151Aのデータを移行するための処理についても同様の処理が実行される。
最初に、移行先ストレージ装置4Bは、移行元正VOL150Aのデータの移行先となる仮想デバイス50Bを作成する(SP240)。
具体的に、移行先ストレージ装置4Bの記憶階層管理プログラム60Bは、仮想デバイス管理テーブル65Bに新たな仮想デバイス管理エントリ90Bを追加し、この仮想デバイス管理エントリ90Bの下位記憶階層識別情報92Bとして記憶装置30Bの識別情報を登録する。
次に、移行先ストレージ装置4Bは、移行先正VOL150Bに対してライト要求が発行された場合に、ライトデータを移行先正VOL150Bに対応する仮想デバイス50Bに書き込むと同時に、そのライトデータをステップSP240で作成した仮想デバイス50Bにコピーする更新コピーの処理を開始する(SP241)。この更新コピーにより、一度移行したデータが古くなることを防ぐことができる。この更新コピーは、係るボリューム移行処理が完了するまで続ける。
次に、移行先ストレージ装置4Bは、移行先正VOL150Bに対応する仮想デバイス(コピー元となる仮想デバイス)50Bに格納されているデータを、ステップSP240で作成した仮想デバイス(コピー先となる仮想デバイス)50Bにコピーする。この処理により、移行元正VOL150Aに格納されているデータが、移行先正VOL150Bに対応する仮想デバイス50B経由で、ステップSP240で作成した仮想デバイス50Bにコピーされる。
具体的に、移行先ストレージ装置4Bのデータ移行プログラム62Bは、まず、移行先正VOL150Bに対応する仮想デバイス50B内の1つの単位記憶領域を選択する(SP242)。
次に、データ移行プログラム62Bは、その単位記憶領域に格納されているデータを、ステップSP230で作成した仮想デバイス50Bにコピーする(SP243)。
次に、データ移行プログラム62Bは、移行先正VOL150Bに対応する仮想デバイス50B内の全ての単位記憶領域の選択が完了したかを判断する(SP244)。
そして、データ移行プログラム62Bは、この判断において、全ての単位記憶領域の選択が完了したとの肯定結果を得るとステップSP245に進む。一方、データ移行プログラム62Bは、この判断において、全ての単位記憶領域の選択が完了していないとの否定結果を得ると、ステップSP242に戻り、この後、ステップSP242において、選択する単位記憶領域を順次未選択の単位記憶領域に切り替えながら、ステップSP242〜ステップSP244の処理を繰り返す。そして、データ移行プログラム62Bは、やがてステップSP244において、肯定結果を得て、ステップSP245に進む。
移行先ストレージ装置4Bは、移行元正VOL150Aと移行元副VOL151Aの両方のデータを移行するための処理が完了すると、ボリューム移行指示プログラム140に完了通知を送信する(SP245)。
(1−2−2−8)ライトキャッシュオン処理
図21は、係るボリューム移行指示処理のステップSP186において、ライトキャッシュオン指示を受信した移行先ストレージ装置4Bが実行する処理の手順を示す。以下、移行先正VOL150Bに、ライトキャッシュモードをオンにするための処理について説明するが、移行先副VOL151Bに、ライトキャッシュモードをオンにするための処理についても同様の処理が実行される。
最初に、移行先ストレージ装置4Bは、移行先正VOL150Bのライトキャッシュモードをオンに設定する(SP250)。
具体的に、移行先ストレージ装置4Bの記憶階層管理プログラム60Bは、移行先正VOL150Bに対応する論理デバイス管理エントリ80Bのライトキャッシュモード85Bに「オン」を登録する。
移行先ストレージ装置4Bは、移行先正VOL150Bと移行先副VOL151Bの両方のライトキャッシュモードをオンにするための処理が完了すると、ボリューム移行指示プログラム140に完了通知を送信する(SP251)。
(1−2−2−9)移行元ボリューム仮想化終了処理
図22は、係るボリューム移行指示処理のステップSP187において、移行元ボリューム仮想化終了指示を受信した移行先ストレージ装置4Bが実行する処理の手順を示す。
最初に、移行先ストレージ装置4Bは、移行先正VOL150Bと移行先副VOL151Bに対応する仮想デバイスを、ステップSP240で作成した仮想デバイス50Bとそれぞれ入れ替える。
具体的に、移行先ストレージ装置4Bの記憶階層管理プログラム60Bは、移行先正VOL150Bと移行先副VOL151Bにそれぞれ対応する論理デバイス管理エントリ80Bの仮想デバイス番号82Bに、ステップSP240で作成した仮想デバイス(コピー先となる仮想デバイス)50Bに対応する仮想デバイス番号82Bをそれぞれ登録する。この処理により、移行先正VOL150Bと移行先副VOL151Bは、移行先ストレージ装置4B内にデータを持つ論理デバイス51Bになり、移行元正VOL150Aと移行元副VOL150Bを仮想化する論理デバイス51Bではなくなる。
次いで、移行先ストレージ装置4Bは、ボリューム移行指示プログラム140に完了通知を送信する(SP261)。
(1−2−3)移行先ストレージ装置における入出力処理
次に、移行先ストレージ装置4Bにおけるリード処理及びライト処理について説明する。
(1−2−3−1)リード処理
図23は、移行先ストレージ装置4Bがホスト計算機2からのリード要求を受信したときに実行するリード処理の手順を示す。
移行先ストレージ装置4Bは、ホスト計算機2からのリード要求を受信すると、このリード処理を開始し、まず、リード先の論理デバイス51Bを特定する(SP270)。
具体的に、移行先ストレージ装置4Bは、まず、リード要求からLUNを抽出すると共に、論理ユニット管理テーブル63Bを参照して、抽出したLUNに対応する論理ユニット管理エントリ70Bを特定する。そして、移行先ストレージ装置4Bは、論理デバイス管理テーブル64Bを参照して、特定した論理ユニット管理エントリ70Bの論理デバイス番号73Bに対応する論理デバイス管理エントリ80Bを特定する。
次に、移行先ストレージ装置4Bは、ステップSP270において特定した論理デバイス管理エントリ80Bのリードキャッシュモード84Bを参照して、リードキャッシュモードがオンに設定されているか否かを判断する(SP271)。
移行先ストレージ装置4Bは、この判断において、リードキャッシュモードがオフであるとの否定結果を得ると、ステップSP274に進み、リードキャッシュモードがオンであるとの肯定結果を得ると、ステップSP272に進む。
従って、図14から図22を参照して説明した上述のボリューム移行処理において、移行先ストレージ装置4Bは、ステップSP200が実行されてからステップSP220が実行されるまでの間に、ホスト計算機2から、移行先正VOL150B又は移行先副VOL151Bに対するリード要求を受信した場合は、ステップSP274の処理に進み、それ以外の場合は、ステップSP272の処理に進むことになる。
そして、移行先ストレージ装置4Bは、ステップSP271の判断結果として、リードキャッシュモードがオンであって、ステップSP272に進んだ場合、キャッシュ管理テーブル66Bを参照して、リードデータに対応するキャッシュ管理エントリ100Bが存在するか否かを判断する(SP272)。
この判断において、リードデータに対応するキャッシュ管理エントリ100Bが存在するとの肯定結果を得ることは、リードデータがキャッシュメモリ43B内に保存されていることを意味する。かくして、このとき移行先ストレージ装置4Bは、係るデータをキャッシュメモリ43Bから読み出し、読み出したデータをリード要求の送信元のホスト計算機2に送信する(SP277)。そして、移行先ストレージ装置4Bは、この後、このリード処理を終了する。
これに対して、ステップSP272の判断において、リードデータに対応するキャッシュ管理エントリ100Bが存在しないとの否定結果を得ることは、リードデータがキャッシュメモリ42B内に保存されていないことを意味する。かくして、このとき移行先ストレージ装置4Bは、キャッシュ管理テーブル66B内に、そのデータに対応するキャッシュ管理エントリ100Bを追加する(SP273)。
この際、移行先ストレージ装置4Bは、キャッシュアドレス101Bとして、キャッシュメモリ43B内の未使用領域のアドレスをキャッシュ管理テーブル66Bに登録すると共に、データ識別情報102Bとして、リード要求に含まれるデータ識別情報をキャッシュ管理テーブル66Bに登録する。そして、移行先ストレージ装置4Bは、この後、ステップSP274に進む。
また、移行先ストレージ装置4Bは、ステップSP274に進むと、仮想デバイス管理テーブル65Bを参照して、ステップSP270で特定した論理デバイス管理エントリ80Bの仮想デバイス番号82Bを基に、対応する仮想デバイス管理エントリ90Bを特定する。そして、移行先ストレージ装置4Bは、その仮想デバイス管理エントリ90Bに登録されている下位記憶階層識別情報92Bを基に下位記憶階層を特定し、リード要求を、特定した下位記憶階層に転送する(SP274)。
また、移行先ストレージ装置4Bは、係るリード要求に応じて下位記憶階層から送信される応答(リードデータ)を受領すると(SP275)、受領したリードデータをキャッシュメモリ43Bに格納する(SP276)。なお、ステップSP276では、移行先ストレージ装置4Bは、このデータに対応するキャッシュ管理エントリ100Bをキャッシュ管理テーブル66Bに追加することはしないため、ステップSP273が実行されなかった場合、キャッシュメモリ43Bは、データの一時的な格納場所として用いられるだけである。
次いで、移行先ストレージ装置4Bは、ステップSP276において格納したデータをキャッシュメモリ43Bから読み出し、読み出したデータをリード要求の送信元のホスト計算機2に送信する(SP277)。そして移行先ストレージ装置4Bは、この後、このリード処理を終了する。
(1−2−3−2)ライト処理
図24は、移行先ストレージ装置4Bが、ホスト計算機2からのライト要求を受信したときに実行するライト処理の手順を示す。
移行先ストレージ装置4Bは、ホスト計算機2からのライト要求を受信すると、このライト処理を開始し、まず、ライト先の論理デバイス51Bを特定する(SP280)。
具体的に、移行先ストレージ装置4Bは、まず、ライト要求からLUNを抽出すると共に、論理ユニット管理テーブル63Bを参照して、抽出したLUNに対応する論理ユニット管理エントリ70Bを特定する。そして、移行先ストレージ装置4Bは、論理デバイス管理テーブル64Bを参照して、特定した論理ユニット管理エントリ70Bの論理デバイス番号73Bに対応する論理デバイス管理エントリ80Bを特定する。
次に、移行先ストレージ装置4Bは、ステップSP280において特定した論理デバイス管理エントリ80Bのライトキャッシュモード85Bを参照して、ライドキャッシュモードがオンに設定されているか否かを判断する(SP281)。
移行先ストレージ装置4Bは、この判断において、ライドキャッシュモードがオフであるとの否定結果を得ると、ステップSP284に進み、ライドキャッシュモードがオンであるとの肯定結果を得ると、ステップSP282に進む。
従って、図14から図22を参照して説明した上述のボリューム移行処理において、移行先ストレージ装置4Bは、ステップSP201が実行されてからSP250が実行されるまでの間に、移行先正VOL150B又は移行先副VOL151Bに対するライト要求を受信した場合は、ステップSP284の処理に進み、それ以外の場合は、ステップSP282の処理に進むことになる。
そして、移行先ストレージ装置4Bは、ステップSP281の判断結果として、ライドキャッシュモードがオンであって、ステップSP282に進んだ場合、キャッシュ管理テーブル66Bを参照して、ライトデータに対応するキャッシュ管理エントリ100Bが存在するか否かを判断する(SP282)。
この判断において、ライトデータに対応するキャッシュ管理エントリ100Bが存在しないとの否定結果を得ることは、記憶装置30B(外部接続機能を用いている場合は、外部ストレージ装置)に格納する前のライトデータが、キャッシュメモリ43Bに保存されていないことを意味する。かくして、このとき移行先ストレージ装置4Bは、キャッシュ管理テーブル66B内にそのライトデータに対応するキャッシュ管理エントリ100Bを追加する(SP283)。
この際、移行先ストレージ装置4Bは、キャッシュアドレス101Bとして、キャッシュメモリ43B内の未使用領域のアドレスをキャッシュ管理テーブル66Bに登録すると共に、データ識別情報102Bとして、ライト要求に含まれるデータ識別情報をキャッシュ管理テーブル66Bに登録する。そして、移行先ストレージ装置4Bは、この後、ステップSP284に進む。
移行先ストレージ装置4Bは、ステップSP284に進むと、ライトデータをキャッシュメモリ43Bに格納する(SP284)。なお、ステップSP284では、このデータに対応するキャッシュ管理エントリ100Bをキャッシュ管理テーブル66Bに追加することはしないため、ステップSP281の判断において、ライトキャッシュモードがオフであるとの否定結果を得た場合は、キャッシュメモリ43Bは、データの一時的な格納場所として用いられるだけである。
続いて、移行先ストレージ装置4Bは、ステップSP280において特定した論理デバイス管理エントリ80Bのライトキャッシュモード85Bを参照して、ライトキャッシュモードがオンに設定されているか否かを再度判断する(SP285)。
そして、移行先ストレージ装置4Bは、この判断において、ライトキャッシュモードがオンであるとの肯定結果を得ると、ステップSP288に進む。
一方、移行先ストレージ装置4Bは、この判断において、ライトキャッシュモードがオフであるとの否定結果を得ると、ステップSP286に進み、仮想デバイス管理テーブル65Bを参照して、ステップSP280で特定した論理デバイス管理エントリ80Bの仮想デバイス番号82Bを基に、対応する仮想デバイス管理エントリ90Bを特定する。そして、移行先ストレージ装置4Bは、その仮想デバイスエントリ90Bに登録されている下位記憶階層識別情報92Bを基に、下位記憶階層を特定し、ライト要求を、特定した下位記憶階層に転送する(SP286)。
また、移行先ストレージ装置4Bは、係るライト要求に応じて下位記憶階層から送信される応答(ライト完了通知)を受領すると(SP287)、ステップSP288に進む。このように、ステップSP285の判断においてライトキャッシュモードがオフであるとの否定結果を得ると、移行先ストレージ装置4Bは、ライトスルーの処理を実行する。
移行先ストレージ装置4Bは、ステップSP288に進むと、ステップSP280で特定した論理デバイス51Bにローカルコピー機能が適用されていて、かつ、コピー処理の状態が「PAIR」であるか否かを判断する。
具体的に、まず、移行先ストレージ装置4Bは、ローカルコピー管理テーブル67Bを参照し、ステップSP280で特定した論理デバイス51Bに対応する論理デバイス番号81Aを、正VOL論理デバイス番号11B又は副VOL論理デバイス番号112Bとして持つローカルコピー管理エントリ110Bを特定する。そして、移行先ストレージ装置4Bは、そのようなローカルコピー管理エントリ110Bが存在し、かつ、そのローカルコピー管理エントリ110Bのペア状態113Bが「PAIR」である場合、ステップSP288の判断において、コピー処理の状態が「PAIR」であるとの肯定結果を得た場合、ステップSP289に進む。それ以外の場合、移行先ストレージ装置4Bは、ステップSP288の判断において、コピー処理の状態が「PAIR」ではないとの否定結果を得たとして、ステップSP293に進む。
移行先ストレージ装置4Bは、ステップSP289に進むと、ステップSP280で特定した論理デバイス51Bが正VOLであるか否かを判断する。
具体的に、移行先ストレージ装置4Bは、ステップSP288で特定したローカルコピー管理エントリ110Bの正VOL論理デバイス番号111Bを参照して、ステップSP280で特定した論理デバイス51Bに対応する論理デバイス番号81Bと一致する場合は、ステップSP280で特定した論理デバイス51Bが正VOLであるとの肯定結果を得たとして、ステップSP290に進む。それ以外の場合は、移行先ストレージ装置4Bは、ステップSP280で特定した論理デバイス51Bが正VOLではないとの否定結果を得たとして、ステップSP291に進む。
移行先ストレージ装置4Bは、ステップSP290に進むと、ステップSP280において特定した論理デバイス80Bのライトキャッシュモード85を参照して、ライトキャッシュモードがオンに設定されているか否かを再度判断する(SP290)。
そして、移行先ストレージ装置4Bは、この判断において、ライトキャッシュモードがオンであるとの肯定結果を得ると、ステップSP291に進み、ライトキャッシュモードがオフであるとの否定結果を得ると、ステップSP292に進む。
ただし、これは、ローカルコピープログラム61Bが、コピーをライト要求と非同期に行う場合である。ローカルコピープログラム61Bが、コピーをライト要求と同期して行う場合は、ステップSP290は不要であり、移行先ストレージ装置4Bは、ステップSP290の判断において、ライトキャッシュモードがオフであるとの否定結果を得ると、ステップSP292に進む。
移行先ストレージ装置4Bは、ステップSP291に進むと、ステップSP288で特定したローカルコピー管理エントリ110Bの差分管理情報114Bに、ライト要求に対応する記憶領域について差分が生じていることを、記録する。そして、移行先ストレージ装置4Bは、ステップSP293に進む。
一方、移行先ストレージ装置4Bは、ステップSP292に進むと、ステップSP288で特定したローカルコピー管理エントリ110Bの副VOL論理デバイス番号112Bに対応する論理デバイス81Bに、ライトデータをコピーする。このコピーにより、「PAIR」状態のときに、移行元副VOL151Aについても、移行元ストレージ装置4Aに最新のデータが存在するようになる。そして、移行先ストレージ装置4Bは、ステップSP293に進む。
移行先ストレージ装置4Bは、ステップSP293に進むと、ライト要求の送信元のホスト計算機2に対して、ライト処理が完了した旨のライト応答を送信し(SP293)、この後、このライト処理を終了する。
本実施例では、コントロール部31Bは、ホスト計算機2によって入出力要求の発行先が、移行元ストレージ装置4Aから移行先ストレージ装置4Bに変更された後、移行先正VOL150または移行先副VOL151Bに対する入出力要求として、ライト要求を受信した場合に、移行対象ボリューム(移行元正VOL150A、移行元副VOL151A)を移行するための移行処理が終了するまでは、移行先正VOL150B、移行先副VOL151Bと移行元正VOL150A、移行元副VOL151Aにライトデータを書き込む処理を実行することを条件に、コントロール部31Aにより保存されたコピー処理の制御情報をコントロール部31Bに移行する制御情報移行処理と、移行元正VOL150A、移行元副VOL151Aに格納されたデータをそれぞれ移行先正VOL150、移行先副VOL151Bに移行するデータ移行処理とを実行することになる。
即ち、移行対象ボリューム(移行元正VOL150A、移行元副VOL151A)を移行するための移行処理が終了するまでは、移行元正VOL150Aと移行元副VOL151Aに対して、ライトスルーの処理が実行されるので、移行元正VOL150Aと移行元副VOL151Aに最新のデータを保持しておくことができる。このため、ボリューム移行処理中に、移行先ストレージ装置4Bで障害が発生した場合に、移行元正VOL150Aと移行元副VOL151Aに保持されている最新のデータを、障害の復旧に利用することが可能になる。
本実施例によれば、ホスト計算機やネットワークの装置の構成に依存することなく、ホスト計算機とストレージ装置との間にボリュームを移行するためのパスを形成することができると共に、ローカルコピーの対象となる複数のボリュームを、そのデータを最新の状態に保持しながら、移行元のストレージ装置から移行先ストレージ装置に移行することができる。
(第2実施例)
第2実施例の計算機システムは、データ移行処理の一部の処理内容が異なる点を除いて、実施例1の計算機システムと同様に構成されている。
実施例では、移行元のボリュームは、移行元ストレージ装置4A内の複数の論理デバイス51Aであり、それらの論理デバイス51A間ではローカルコピープログラム61Aによってコピー処理(ローカルコピー処理)が行われている。これらの論理デバイス51Aは、カスケードを構成していてもよい(一つの論理デバイス51Aが、あるコピー処理のコピー元であると同時に別のコピー処理のコピー先であってもよい)。また、これらの論理デバイス51Aは、マルチターゲット構成になっていてもよい(一つの論理デバイス51Aが、複数のコピー処理のコピー元であってもよい)。以下、これらの論理デバイス51Aを移行元VOL300Aと呼ぶ。
また、本実施例では、移行先のボリュームは、移行先ストレージ装置4B内の複数の論理デバイス51Bである。以下、これら論理デバイス51Aのことを移行先VOL300Bと呼ぶ。
図25は、本実施例におけるボリューム移行処理を概念的に示す。
図25において、本実施例の主な特徴は、ペア単位で入出力要求の処理を一時停止し(SP310)、ペア単位でコピー処理の制御情報を移行する(SP311)ことである。これにより、全ペアのコピー処理の制御情報を一度に移行する場合と比べて、各ボリュームに対する入出力の停止時間を短くすることができる。
図26は、本実施例においてボリューム移行指示プログラム140により実行されるボリューム移行指示処理の手順を示す。
図26において、管理計算機3のボリューム移行指示プログラム140は、1つの移行元VOL300Aの移行の指示を、入力装置24を介してシステム管理者により与えられると、以下の処理を開始する。
最初に、ボリューム移行指示プログラム140は、移行元ストレージ装置4Aから、ローカルコピー管理情報を取得する(SP320)。
具体的に、ボリューム移行指示プログラム140は、移行元ストレージ装置4Aにローカルコピー管理情報の送信を指示(A41)し、それに対して移行元ストレージ装置4Aは、ローカルコピー管理テーブル67Bの内容、例えば、移行元VOL300A間のローカルコピー処理(A42、A43、A44)の内容をボリューム移行指示プログラム140に送信する。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、管理者により移行を指示された移行元VOL300Aの仮想化を開始するよう指示(A45)を与える(SP321)。移行先ストレージ装置4Bが、この指示(A45)を受信したときに実行する処理は、ステップSP190〜ステップSP192と同様であるため、説明は省略する。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、管理者により移行を指示された移行元VOL300Aを仮想化する移行先VOL300Bのリードキャッシュモードとライトキャッシュモードをオフにするよう指示(A45)を与える(SP322)。移行先ストレージ装置4Bが、この指示(A45)を受信したときに実行する処理は、ステップSP200〜ステップSP202と同様であるため、説明は省略する。
次に、ボリューム移行指示プログラム140は、ホスト計算機2に対して、管理者により移行を指示された移行元VOL300Aに対応する論ボリュームへの交替パスとして、移行先ストレージ装置4Bへのパスを登録し、移行元ストレージ装置4Aへのパスを登録解除するよう指示(A46)を与える(SP323)。ホスト計算機2が、この指示(A46)を受信したときに実行する処理は、ステップSP210〜SP213と同様であるため、説明は省略する。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、管理者により移行を指示された移行元VOL300Aを仮想化する移行先VOL300Bのリードキャッシュモードをオンにするよう指示(A45)を与える(SP324)。移行先ストレージ装置4Bが、この指示(A45)を受信したときに実行する処理は、ステップSP220〜SP221と同様であるため、説明は省略する。
次に、ボリューム移行指示プログラム140は、ステップSP320で取得したローカルコピー管理情報を参照して、管理者により移行を指示された移行元VOL300Aのコピー相手となっている移行元VOL300Aを全て選択したか否かを判断する(SP325)。ボリューム移行指示プログラム140は、この判断において、コピー相手となっている移行元VOL300Aを全て選択していないとの否定結果を得ると、ステップSP326に移行し、コピー相手となっている移行元VOL300Aを全て選択したとの肯定結果を得た場合には、ステップSP330に移行する。
そして、ボリューム移行指示プログラム140は、ステップSP326に進んだ場合、ステップSP320で取得したローカルコピー管理情報を参照して、管理者により移行を指示された移行元VOL300Aのコピー相手となっている移行元VOL300Aを1つ選択する(SP326)。
次に、ボリューム移行指示プログラム140は、ステップSP326で選択した移行元VOL300Aについて、ステップSP321〜ステップSP329を実行する(管理者により移行を指示された移行元VOL300Aについて処理を行う代わりに、ステップSP326で選択した移行元VOL300Aについて処理を行う)(SP327)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、管理者により移行を指示された移行元VOL300AとステップSP326で選択した移行元VOL300Aとの間のコピー処理の制御情報を、移行元ストレージ装置4Aから移行先ストレージ装置4Bに移行するよう指示(A45)を与える(SP328)。移行先ストレージ装置4Bが、この指示(A45)を受信したときに実行する処理は、SP230〜SP235と同様であるため、説明は省略する。
なお、この場合、管理者により移行を指示された移行元VOL300AとステップSP326で選択した移行元VOL300Aとの間のコピー処理の制御情報、例えば、#1の移行元VOL300Aと#2の移行元VOL300Aとの間のローカルコピー処理(A42)の制御情報、#2の移行元VOL300Aと#3の移行元VOL300Aとの間のローカルコピー処理(A43)の制御情報、#2の移行元VOL300Aと#4の移行元VOL300Aとの間のローカルコピー処理(A44)の制御情報が、ペア単位で移行される。
また、#1の移行先VOL300Bにライト要求があった場合、ライトデータを#1の移行先VOL300Bから#2の移行先VOL300Bにコピーするコピー処理(A47)が開始される。次に、ボリューム移行指示プログラム140は、ステップSP326で選択した移行元VOL300Aについて、ステップSP330〜ステップSP332を実行する(管理者により移行を指示された移行元VOL300Aについて処理を行う代わりに、ステップSP326で選択した移行元VOL300Aについて処理を行う)(SP329)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、管理者により移行を指示された移行元VOL300Aのデータを移行先VOL300Bに移行するよう指示(A45)を与える(SP330)。移行先ストレージ装置4Bが、この指示(A45)を受信したときに実行する処理は、ステップSP240〜ステップSP245と同様であるため、説明は省略する。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、管理者により移行を指示された移行元VOL300Aを仮想化する移行先VOL300Bのライトキャッシュモードをオンにするよう指示(A45)を与える(SP331)。移行先ストレージ装置4Bが、この指示(A45)を受信したときに実行する処理は、ステップSP250〜ステップSP251と同様であるため、説明は省略する。
最後に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、管理者により移行を指示された移行元VOL300Aの仮想化を終了するよう指示(A45)を与え(SP332)、このルーチンでの処理を終了する。移行先ストレージ装置4Bが、仮想化終了の指示(A45)を受信したときに実行する処理は、ステップSP260〜ステップSP261と同様であるため、説明は省略する。
本実施例では、コントロール部31Aは、複数の移行元VOL300Aの中から、コピー元の移行元VOL300Aとコピー先の移行元移行元VOL300Aを構成するペアを2以上選択し、選択した2以上のペアのコピー処理を制御すると共に、2以上のペアのコピー処理の制御情報を保存し、コントロール部31Bは、移行対象ボリュームを移行するための移行処理として、コントロール部31Aにより保存されたコピー処理の制御情報をペア毎にコントロール部31Aに移行する制御情報移行処理と、各コピー元の移行元VOL300Aに格納されたデータをペア毎に、各移行先VOL300Bに移行するデータ移行処理を実行することになる。
本実施例によれば、各ペアのコピー処理の制御情報を1ペアずつ移行するようにしたため、各ペアのコピー処理の制御情報を一度に移行するときよりも、入出力要求の処理の停止時間を短縮することができる。
(第3実施例)
図27は、本発明の第3実施例における計算機システムの全体構成をブロック図である。図27において、計算機システム340は、第1実施例の計算機システム1に対して、第3のストレージ装置4Cを備える点と、移行元ストレージ装置4Aと移行先ストレージ装置4Bが、ローカルコピー機能の代わりに、論理デバイス51A、51Bに格納されているデータを、異なるストレージ装置の論理デバイスにコピーするリモートコピー機能を有する点と、管理計算機3のボリューム移行指示プログラム140の処理内容が異なる点があるが、他の構成は、第1実施例の計算機システム1と同様である。
ストレージ装置4Cの構成は、ストレージ装置4A、4Bと同様であるため、説明は省略する。なお、ストレージ装置4Cは、移行元ストレージ装置4Aに対して、移行先ストレージ装置を構成する。また、ストレージ装置4Bを移行元ストレージ装置とした場合、ストレージ装置4Cは、移行元ストレージ装置4Bに対して、移行先ストレージ装置を構成する。なお、本実施例の場合、ストレージ装置4Cは、リモートコピー機能のコピー先である。以下、これを副ストレージ装置4Cと呼ぶ。
図28は、本実施例における移行元ストレージ装置4Aのメモリ41Aと移行先ストレージ装置4Bのメモリ41Bのデータ構成を示す。第1実施例との関係で説明すると、本実施例におけるメモリ41A、41Bのデータ構成は、ローカルコピープログラム61A、61Bとローカルコピー管理テーブル67A、67Bの代わりにリモートコピープログラム350A、350Bとリモートコピー管理テーブル351A、351Bが格納される点で、第1実施例におけるメモリ41A、41Bのデータ構成とは異なる。
リモートコピープログラム350A、350Bは、移行元ストレージ装置4A、移行先ストレージ装置4Bにおいてリモートコピー機能を実現するプログラムであり、論理デバイス51A、51Bに格納されているデータを、異なるストレージ装置の論理デバイス(コピー先の論理デバイス)にコピーする処理を実行する。
図29は、リモートコピー管理テーブル351A、351Bのデータ構成を示す。リモートコピー管理テーブル351A、351Bは、リモートコピープログラム350A、350Bの処理を管理するための情報であり、1つ以上のリモートコピー管理エントリ360A、360Bから構成される。
リモートコピー管理エントリ360A、360Bには、正VOL論理デバイス番号361A、361B、副VOL論理デバイス識別情報362A、362B、ペア状態363A、363B、及び差分管理情報364A、364Bが登録される。正VOL論理デバイス番号361A、361Bは、コピー元の論理デバイス51A、51Bの識別情報である。また、副VOL論理デバイス識別情報362A、362Bは、コピー先の論理デバイスのデータを提供する論理ユニットのファイバチャネルアドレスとLUNである。
ペア状態363A、363Bは、コピー元の論理デバイス51A、51Bとコピー先の論理デバイスとの間でリモートコピープログラム350A、350Bが実行している処理の状態を表す情報であり、「PAIR」又は「PSUS」の値をとる。
ペア状態363A、363Bが「PAIR」の場合は、リモートコピープログラム350A、350Bは、コピー処理を実行していて、コピー元の論理デバイス51A、51Bに対してライト要求が発行された場合、リモートコピープログラム350A、350Bは、ライトデータをコピー先の論理デバイスにコピーする。このコピーは、ライト要求と同期して行われる。
ペア状態363A、363Bが「PSUS」の場合は、リモートコピープログラム350A、350Bはコピー処理を中断していて、代わりにコピー元の論理デバイス51A、51Bのデータとコピー先の論理デバイスのデータとの差分管理(差分情報の管理)を行っている。
例えば、コピー元の論理デバイス51A、51Bに対してライト要求が発行された場合、リモートコピープログラム350A、350Bは、ライト要求に対応する記憶領域について、コピー元の論理デバイス51A、51Bとコピー先の論理デバイスとの間に差分が生じていることを差分管理情報364A、364Bに記録する。そして、ペア状態が「PSUS」から「PAIR」に変更されたタイミングで、リモートコピープログラム350A、350Bは、差分管理情報364A、364Bを参照して、差分が生じている領域のデータを、コピー元の論理デバイス51A、51Bからコピー先の論理デバイスへコピーする。
差分管理情報364A、364Bは、コピー元の論理デバイス51A、51Bとコピー先の論理デバイスとの間でデータに差分が生じている記憶領域を管理するための情報であり、例えばビットマップである。
本実施例では、移行元のボリュームは、移行元ストレージ装置4A内の論理デバイス51Aであり、その論理デバイス51Aとストレージ装置4Cの論理デバイスとの間では、リモートコピープログラム350Aによってコピー処理(リモートコピー処理)が行われている。以下、このコピー処理のコピー元の論理デバイス51Aを移行元正VOL370A、コピー先の論理デバイスを副VOL371と呼ぶ。
また、本実施例では、移行先のボリュームは、移行先ストレージ装置4B内の論理デバイス51Bである。以下、この論理デバイス51Bのことを移行先正VOL370Bと呼ぶ。
図30は、本実施例におけるボリューム移行処理を概念的に示す。第1実施例との関係で説明すると、まず、第1実施例では、ステップSP160〜ステップSP165、ステップSP169〜ステップSP171を、移行元正VOL150Aと移行先正VOL150Bおよび移行元副VOL151Aと移行先副VOL151Bに対して行うのに対し、本実施例では、対応するステップSP380(仮想化の開始)〜ステップSP385(入出力処理の一時停止)、ステップSP389(入出力処理の再開)〜ステップSP391(ライトキャッシュオン)を、移行元正VOL370Aと移行先正VOL370Bに対してのみ行う。
また、第1実施例では、ステップSP166とステップSP167を、移行元正VOL150Aと移行元副VOL151Aとの間のコピー処理(ローカルコピー処理)(A13)に対して行うのに対し、本実施例では、対応するステップSP386(制御情報の移行処理)とステップSP387(コピー処理の終了)を、移行元正VOL370Aと副VOL371との間のコピー処理(リモートコピー処理)(A51)に対して行う。
さらに、第1実施例では、ステップSP168を、移行先正VOL150Bと移行先副VOL151Bとの間のコピー処理に対して行うのに対し、本実施例では、対応するステップSP388(コピー処理の開始)を、移行先正VOL370Bと副VOL371との間のコピー処理(A52)に対して行う。
このようにステップSP391(ライトキャッシュオン)の直前まで、ライトキャッシュモードをオフにしておくことにより、移行元正VOL370Aに最新のデータを保持しておくことができる。このため、ボリューム移行処理中に移行先ストレージ装置4Bで障害が発生した場合に、最新のデータを保持している移行元正VOL370Aの利用に戻ることが可能になる。
図31は、本実施例によるボリューム移行処理に関連してボリューム移行指示プログラム140により実行されるボリューム移行指示処理の手順を示す。
ボリューム移行指示プログラム140は、移行元正VOL370Aの移行の指示を入力装置24を介してシステム管理者により与えられると、以下の処理を開始する。
最初に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行元正VOL370Aの仮想化を開始するよう指示(A53)を与える(SP400)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行先正VOL370Bのリードキャッシュモードとライトキャッシュモードをオフにするよう指示(A53)を与える(SP401)。
次に、ボリューム移行指示プログラム140は、ホスト計算機2に対して、移行元正VOL370Aに対応する論理ボリュームへの交替パスとして、移行先ストレージ装置4Bへのパスを登録し、移行元ストレージ装置4Aへのパスを登録解除するよう指示(A54)を与える(SP402)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行先正VOL370Bのリードキャッシュモードをオンにするよう指示(A53)を与える(SP403)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行元正VOL370Aと副VOL371との間のコピー処理(A51)を、移行元ストレージ装置4Aから移行先ストレージ装置4Bに移行するよう指示(A53)を与える(SP404)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行元正VOL370Aのデータを移行先正VOL370Bに移行するよう指示(A53)を与える(SP405)。
次に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行先正VOL370Bのライトキャッシュモードをオンにするよう指示(A53)を与える(SP406)。
最後に、ボリューム移行指示プログラム140は、移行先ストレージ装置4Bに対して、移行元正VOL370Aの仮想化を終了するよう指示(A53)を与える(SP407)。
ステップSP400〜ステップSP407の指示を受信した移行先ストレージ装置4Bまたはホスト計算機2が実行する処理の手順は、対象とするボリュームが異なることを除いて、第1実施例のステップSP180〜ステップSP187の指示を受信した移行先ストレージ装置4Bまたはホスト計算機2が実行する処理の手順と同様であるため、説明は省略する。
本実施例によれば、ホスト計算機やネットワークの装置の構成に依存することなく、ホスト計算機とストレージ装置との間にボリュームを移行するためのパスを形成することができると共に、リモートコピーの対象となるボリュームを、そのデータを最新の状態に保持しながら、移行元のストレージ装置から移行先ストレージ装置に移行することができる。
なお、本発明は、上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)メモリカード、DVD(Digital Versatile Disc)等の記録媒体に記録して置くことができる。