本発明の概要は以下のとおりである。
まず、ストレージシステムBは、ストレージシステムAから、ストレージシステムAのPoolに含まれる論理ボリュームとPoolのセグメントとの対応関係を記述したセグメント構成情報、及び、仮想ボリュームと仮想ボリュームに割り当てられるセグメントとの対応関係を記述した仮想ボリューム構成情報を取得する。
次に、ストレージシステムBは、取得したストレージシステムAのセグメント構成情報を参照し、ストレージシステムAのPoolに含まれる論理ボリュームを特定する。
そして、ストレージシステムBは、特定された論理ボリュームをストレージシステムBに外部接続し、外部接続されたストレージシステムAの論理ボリュームをストレージシステムBに取り込む。さらに、ストレージシステムBは、取り込まれたストレージシステムAの論理ボリュームから、PoolとPoolを利用する仮想ボリュームとを作成する。
そして、ストレージシステムBは、ストレージシステムAから取得した仮想ボリュームの構成情報を参照し、ストレージシステムAのPoolのセグメントと同じ割り当てによって、前述したPoolのセグメントを仮想ボリュームに割り当てる。これによって、ストレージシステムAと同じ構成を備えた仮想ボリュームがストレージシステムBに作成される。
<実施形態1>
以下、本発明の第1の実施形態を、図1から図23を用いて説明する。なお、以下に述べる第1の実施形態は本発明の実施形態の一つであって、本発明を制限するものではない。
図1は、本発明の第1の実施形態の計算機システムの構成を示すブロック図である。
第1の実施形態の計算機システムは、ストレージシステムA 1000と、ストレージシステムB 2000と、ストレージシステムB 2000(又はストレージシステムA 1000)の論理ボリュームを利用するホスト計算機3000とを備え、ストレージシステムA 1000、ストレージシステムB 2000及びホスト計算機3000は、SAN又はLAN(Local Area Network)等のデータ通信用のネットワーク100を介して互いに接続される。
また、ストレージシステムA 1000及びストレージシステムB 2000は、前述したネットワーク100とは別のSAN又はLAN等のデータ通信用のネットワーク200を介して互いに接続されている。
なお、第1の実施形態では、ストレージシステムA 1000及びストレージシステムB 2000はネットワーク200を介して接続されるが、ストレージシステムA 1000とストレージシステムB 2000とが、ホスト計算機とは関係なく保存しているデータを直接通信することができるならば、ネットワーク200は必ずしも必要ではない。
また、ストレージシステムA 1000、ストレージシステムB 2000及びホスト計算機3000は、それぞれが備える管理インターフェースによって、LAN等のデータ通信用のネットワーク300を介して互いに接続されてもよい。
以下、ストレージシステムA 1000及びストレージシステムB 2000のいずれにも該当する説明をする場合は、その説明において、ストレージシステムA 1000及びストレージシステムB 2000を総称して単にストレージシステムと記載する。
ホスト計算機3000は、データを記憶するためのローカルボリューム3010、データを一時記憶するためのメモリ3100、演算処理をするCPU3040、管理IF3020及びHBA(Host Bus Adapter)3030を備える計算機であり、例えば、パーソナルコンピュータ、ワークステーション等である。さらに、ホスト計算機3000は、キーボード等の入力装置及びディスプレイ等の出力装置等を備えてもよい(図示省略)。
メモリ3100は、データベース等を管理する業務プログラム3110を格納する。業務プログラム3110は、ストレージシステムから提供された記憶領域にデータを格納する。
HBA(Host Bus Adapter)3030は、ネットワーク100を介してホスト計算機3000をストレージシステムに接続するためのインターフェースである。管理IF3020は、管理計算機(図示省略)がLAN等のネットワーク300を介してホスト計算機3000を管理するためのインターフェースである。
なお、第1の実施形態において、ネットワーク100のインターフェースはHBAであるが、ネットワーク100に応じたインターフェースであってもよい。
ストレージシステムA 1000は、データの入出力及び構成を制御するコントローラ1100及びデータを記憶するために複数の物理ディスク1040を備える。コントローラ1100は、コントローラ1100が管理する論理ボリュームの構成情報等を外部から操作するための管理インターフェースである管理IF1010、データの入出力のインターフェースであるPort1020及びPort1030を備える。
Port1020は、SAN等のネットワーク100を介してストレージシステムAをホスト計算機3000等と接続するためのPortである。Port1030は、ストレージシステムA 1000を後述するストレージシステムB 2000に接続するためのPortである。
なお、一つのPortによって、ストレージシステムA 1000がホスト計算機3000へ論理ボリュームを提供し、かつ、論理ボリュームをストレージシステムB 2000に外部接続することができる場合には、Port1020とPort1030とは同一であってもよい。
ストレージシステムB 2000は、ストレージシステムA 1000と同じ構成である。ストレージシステムB 2000は、データの入出力及び構成を制御するコントローラ2100を備える。
コントローラ2100は、論理ボリュームを管理するための管理インターフェースである管理IF1010、ホスト計算機3000と接続するためのインターフェースであるPort2020、及び、ストレージシステムA 1000と接続するためのインターフェースであるPort1030を備える。
ただし、ストレージシステムB 2000は、ストレージシステムA 1000が備える物理ディスク1040を必ずしも備える必要はない。
なお、管理IF1010、管理IF2010及び管理IF3020は、単にLANの接続Portであってもよく、LAN等のネットワーク300を介して、ディスプレイ等の出力装置及びキーボード等の入力装置を備えた管理計算機(図示省略)と接続されてもよい。また、管理IF1010、管理IF2010及び管理IF3020は、LANでなく、SAN等のネットワークを介して接続されてもよい。
次に、ストレージシステムA 1000のコントローラ1100の内部の構成、及び、ストレージシステムB 2000のコントローラ2100の内部の構成を、それぞれ図2及び図3を用いて説明する。
図2は、本発明の第1の実施形態のストレージシステムAが備えるコントローラの構成を示すブロック図である。
ストレージシステムA 1000のコントローラ1100は、前述した管理IF1010、Port1020及びPort1030のほかに、キャッシュメモリ1110、管理用のメモリ1200及びプロセッサ1120を備える。
プロセッサ1120は、メモリ1200に格納された制御プログラムによってストレージシステムA 1000を制御する。キャッシュメモリ1110は、ストレージシステムA 1000に格納されたデータの一部を一時的に記憶し、ホスト計算機3000の要求に基づいて、データを高速に読み出す。
メモリ1200は、LUマップ処理部1210、仮想Vol処理部1220、セグメント処理部1230及び構成情報通信部1240を実現するプログラムを格納する。また、メモリ1200は、LUマップテーブルA4100、仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300を格納する。
なお、各処理部の処理については後述する。LUマップテーブルA4100については、図5を用いて後述する。仮想Vol管理テーブルA4200については、図7を用いて後述する。セグメント管理テーブルA4300については、図6を用いて後述する。
図3は、本発明の第1の実施形態のストレージシステムBが備えるコントローラの構成を示すブロック図である。
ストレージシステムB 2000のコントローラ2100は、ストレージシステムA 1000のコントローラ1100の構成と同じである。ただし、コントローラ2100のメモリ2200に格納されるプログラム及び構成情報のテーブルは、コントローラ1100のメモリ1200の構成と異なる。
メモリ2200は、仮想Vol移行部I2210、仮想Vol処理部2220、セグメント処理部2230及び外接処理部2240を実現するプログラムを格納する。また、メモリ2200は、仮想Vol管理テーブルB5200、セグメント管理テーブルB5300、ストレージ間パステーブルB5400、外接VolマップテーブルB5500、外接LDEV参照テーブルB5600、仮想Vol管理テーブルC5700及びセグメント管理テーブルC5800を格納する。
なお、各処理部の処理については後述する。仮想Vol管理テーブルB5200については、図20を用いて後述する。セグメント管理テーブルB5300については、図19を用いて後述する。ストレージ間パステーブルB5400については、図8を用いて後述する。外接VolマップテーブルB5500については、図17を用いて後述する。外接LDEV参照テーブルB5600については、図18を用いて後述する。
なお、仮想Vol管理テーブルC5700の構成は、図7に示す仮想Vol管理テーブルA4200の構成と同じである。セグメント管理テーブルC5800の構成は、図6に示すセグメント管理テーブルA4300の構成と同じである。仮想Vol管理テーブルC5700及びセグメント管理テーブルC5800については後述する。
コントローラ1100(又はコントローラ2100)は、ホスト計算機3000からのデータの読み出し、又は、書き込みの要求を実行するために論理ボリューム等を管理する。次に、論理ボリューム等の構造を、図4を用いて説明する。
図4は、本発明の第1の実施形態のストレージシステムのボリューム等の構成を示す説明図である。
ストレージシステムが備える複数の物理ディスク1040は、RAIDによって冗長化され、RAIDグループ1310を構成する。RAIDグループ1310は、論理ブロックという単位に分割され、各論理ブロックには論理ブロックアドレス(Logical Block Address。以下、LBA)というアドレス情報が付与される。RAIDグループ1310には、適当な大きさのLBA領域に区切られた論理ボリューム1320が作成される。
さらに、少量配備の機能を実現するために、複数の論理ボリューム1320によってPool1330という記憶領域が作成される。Pool1330に含まれる論理ボリューム1320は、所定の数の論理ブロックで作成されるセグメントという単位に分割される。ストレージシステムのコントローラは、セグメントによって論理ボリューム1320を管理する。
仮想ボリューム1340は、作成された時点で記憶領域の容量が定まっている論理ボリューム1320とは異なり、必要に応じてPool1330のセグメントが割り当てられることによって、動的に容量が拡張される。
そして、論理ボリューム1320又は仮想ボリューム1340は、コントローラによって、論理ユニット1350(Logical Unit)に対応付けられ、ホスト計算機3000に提供される。なお、論理ユニット1350には、Port1020毎に一意に設定されるLUN(Logical Unit Number)によって識別され、ホスト計算機3000は、LUNによって論理ユニット1350を認識する。
また、ホスト計算機3000は、LUN、及び、論理ボリューム1320のアドレス値であるLBAを用いて、Port1020に接続された論理ユニット1350に対応付けられた論理ボリューム1320又は仮想ボリューム1340へのデータの書き込み又読み出しを実行する。ここでは、論理ボリューム1320又は仮想ボリューム1340と、論理ユニット1350のLUNとを対応付けることをLUマッピングという。
次に、ストレージシステムA 1000が備えるコントローラ1100のメモリ1200に格納されたプログラム及び各テーブルについて説明する。
LUマップ処理部1210は、後述する図5に示すLUマップテーブルA4100を用いて、Port1020に接続されたホスト計算機3000が認識する論理ユニット1350のLUNと、ストレージシステムA 1000で使用している論理ボリュームの識別子であるDEVIDとのLUマッピングの対応関係を管理する。
なお、ストレージシステムB 2000がストレージシステムA 1000のLUマップ処理部1210及びLUマップテーブルA4100を管理してもよい。また、LUマップ処理部1210は、接続が許可されていないホスト計算機3000からのデータの入出力の処理を抑止する機能を備えてもよい。
図5は、本発明の第1の実施形態のLUマップテーブルAの構成を示す説明図である。
LUマップテーブルA4100は、ストレージシステムA 1000のコントローラ1100が備えるLUマップテーブルの例である。LUマップテーブルA4100は、PortID4110、ストレージWWN(World Wide Name)4120、接続hostWWN、LUN4140及びDEVID4150を含む。
PortID4110は、ストレージシステムA 1000が備えるPort(Port1020等)の識別子である。ストレージWWN4120は、PortID4110毎に付与されるストレージシステムのWWNであり、SAN(ネットワーク100)上で一意な識別子である。接続hostWWN4130は、各Portに接続されるホスト計算機3000の識別子であり、ホスト計算機3000側のインターフェースであるHBA3030に付与される識別子である。
LUN4140は、ホスト計算機3000が認識しているストレージシステムA 1000に作成された論理ユニット1350の識別子である。DEVID4150は、ストレージシステムA 1000の論理ユニット1350に対応付けられた論理ボリューム1320又は仮想ボリューム1340の識別子である。
例えば、ストレージシステムA 1000の「Port1」は、「WWN1」が付与され、HBAのWWNが「h1」であるホスト計算機3000と接続している。そして、ホスト計算機3000が認識しているストレージシステムA 1000の論理ユニットは「LUN1」であり、「LUN1」にはストレージシステムA 1000の仮想ボリューム「VVol1」が対応付けられている。
また、ホスト計算機3000が認識している論理ユニット「LUN2」にはストレージシステムA 1000の論理ボリューム「LDEV10」が対応付けられている。
セグメント処理部1230は、後述するセグメント管理テーブルA4300(図6)を用いて、仮想ボリューム1340に割り当てられるセグメントと論理ボリュームとの対応関係を管理し、Pool1330に含まれる論理ボリュームを追加又は削除する。なお、ストレージシステムA 1000のセグメント処理部1230は、セグメント管理テーブルA4300を、ストレージシステムB 2000のセグメント処理部2230は、後述するセグメント管理テーブルB5300をそれぞれ管理する。
図6は、本発明の第1の実施形態のセグメント管理テーブルAの構成を示す説明図である。
セグメント管理テーブルA4300は、ストレージシステムA 1000が備えるセグメント管理テーブルの例である。セグメント管理テーブルA4300は、PoolID4310、セグメントID4320、DEVID4330、開始LBA4340、セグメントサイズ4350及びVVolID4360を含む。
セグメント管理テーブルA4300は、ストレージシステムA 1000に作成されたPool1330の識別子(PoolID4310)毎に管理される。
セグメントID4320は、PoolID4310によって示されるPoolに割り当てられるセグメントの識別子である。DEVID4330は、セグメントID4320によって示されるセグメントに対応付けられている論理ボリューム1320の識別子である。開始LBA4340は、DEVID4330によって示される論理ボリューム1320の記憶領域の開始アドレスである。セグメントサイズ4350は、セグメントID4320によって示されるセグメントの容量である。VVolID4360は、セグメントID4320によって示されるセグメントが割り当てられる仮想ボリューム1340の識別子である。
なお、VVolID4360には、セグメントが仮想ボリューム1340に割り当てられている場合は、前記仮想ボリュームの識別子が記載され、割り当てられていない場合は、例えば、制御文字として「NULL」が記載される。
仮想Vol処理部1220は、後述する仮想Vol管理テーブルA4200(図7)を用いて、ホスト計算機3000に提供する仮想ボリューム1340を作成し、作成された仮想ボリューム1340にセグメントを割り当てることによって、仮想ボリューム1340の容量を制御し、また、仮想ボリューム1340を管理する。
なお、ストレージシステムA 1000の仮想Vol処理部1220は、仮想Vol管理テーブルA4200を、ストレージシステムB 2000の仮想Vol処理部2220は、仮想Vol管理テーブルB5200を管理する。
図7は、本発明の第1の実施形態の仮想Vol管理テーブルAの構成を示す説明図である。
仮想Vol管理テーブルA4200は、ストレージシステムA 1000が備える仮想Vol管理テーブルの例である。仮想Vol管理テーブルA4200は、VVolID4210、サイズ4220、開始VLBA4230、PoolID4240、セグメントID4250及びセグメントサイズ4260を含む。
VVolID4210は、仮想ボリューム1340の識別子である。サイズ4220は、仮想ボリュームが最初に作成された時に設定された容量である。開始VLBA4230は、ホスト計算機3000がデータを入出力する仮想ボリューム1340の仮想ブロックを特定するための論理ブロックアドレス(以下、VLBA)である。PoolID4240は、仮想ボリューム1340にセグメントを割り当てるPool1330の識別子である。セグメントID4250及びセグメントサイズ4260は、VVolID4210によって示される仮想ボリューム1340のVLBAに対応付けられたセグメントの識別子及び容量である。
なお、ストレージシステムA 1000に作成されるPoolが一つのみの場合、仮想Vol管理テーブルA4200は、PoolID4240を含まなくてもよい。
これによって、例えば、仮想ボリューム「VVol1」の開始VLBA「3048(=2048+1000)」で特定される仮想ブロックに対して、ホスト計算機3000から読み出しを要求された場合には、ストレージシステムA 1000のコントローラ1100は、仮想Vol管理テーブルA4200を参照して、「Pool1」に割り当てられたセグメント「101」にデータが格納されていることを知ることができる。
さらに、ストレージシステムA 1000のコントローラ1100は、セグメント管理テーブルA4300を参照して、セグメント「101」が論理ボリューム「LDEV2」のLBA値「1073741824+1000」で特定される論理ブロックであることを知り、また、特定された論理ブロックにデータが格納されていることを知ることができる。
このように、仮想Vol管理テーブルA4200によって、仮想ボリューム1340のVLBA値と、論理ボリューム1320のLBA値とは対応付けられている。
また、セグメントが割り当てられていない仮想ボリューム1340のVLBAに書き込みの処理が発生した場合等には、仮想Vol処理部1220は、セグメント管理テーブルA4300を参照し、利用されていないセグメント(すなわち、VVolID4360に「NULL」が記載されているセグメント)を仮想ボリューム1340に割り当てる。これによって、仮想Vol処理部1220は、仮想ボリューム1340の容量を動的に拡張することができる。
図8は、本発明の第1の実施形態のストレージ間パステーブルBの構成を示す説明図である。
ストレージシステムB 2000のコントローラ2100は、図8に示すストレージ間パステーブルB5400によって、ストレージシステム間でデータを送受信するためのPortの対応関係を記憶している。ストレージ間パステーブルB5400は、接続元WWN5410、接続先ストレージ5420及び接続先WWN5430を含む。
接続元WWN5410は、接続元であるストレージシステム(ここではストレージシステムB 2000)のPortに付与された識別子である。接続先ストレージ5420は、接続先のストレージシステム(ここではストレージシステムA 1000)の識別子である。接続先WWNは、接続先であるストレージシステムのPortに付与された識別子である。
図8に示した例では、「WWN4」が付与されたストレージシステムB 2000のPort2030と「WWN3」が付与されたストレージシステムA 1000のPort1030とが接続されている。
なお、第1の実施形態では、ストレージ間パステーブルB5400は、2台のストレージシステムが物理的に接続され、かつ、一般的なストレージシステム管理ソフトウェアによって接続の設定が終了した後に作成される。また、ストレージシステムB 2000は、作成されたストレージ間パステーブルB5400を備える。
なお、ストレージシステムB 2000が、接続されたストレージシステムのPortを自動的に調査し、ストレージ間パステーブルB5400を自動的に作成する機能を備える場合には、ストレージシステムB 2000は、この機能を利用してストレージ間パステーブルB5400を作成してもよい。
また、ストレージシステムB 2000のコントローラ2100は、外接処理部2240を備える。外接処理部2240は、後述する外接VolマップテーブルB5500(図17)を管理する。
外接処理部2240は、他のストレージシステム(ストレージシステムA 1000)の論理ボリューム1320を外部接続し、論理ボリューム1320をストレージシステムB 2000の論理ボリューム2321として取り込む。ストレージシステムB 2000は、取り込まれた論理ボリューム2321をホスト計算機3000に提供することができる。なお、外接処理部2240が実行する具体的な処理については後述する。
例えば、図8に示したように「WWN4」が付与されたストレージシステムB 2000のPort2030と「WWN3」が付与されたストレージシステムA 1000のPort1030とが接続され、かつ、「WWN3」が付与されたPort1030に、論理ボリューム1320が、LUNが付与された論理ユニット1350として対応付けられている場合には、ストレージシステムB 2000の外接処理部2240は、論理ユニット1350に対応付けられたストレージシステムA 1000の論理ボリューム1320に、ストレージシステムB 2000内で利用するDEVIDを付与する。これによって、ストレージシステムB 2000は、外部接続されたストレージシステムA 1000の論理ボリューム1320をストレージシステムB 2000の論理ボリューム2321として扱うことができる。
外接VolマップテーブルB5500は図17に示されており、詳細は後述するフローチャートの中で説明する。
このほか、ストレージシステムA 1000のコントローラ1100は、構成情報通信部1140を備える。また、ストレージシステムB 2000のコントローラ2100は、仮想Vol移行部I2210を備える。仮想Vol移行部I2210の処理については、図9から図15を用いて後述する。
構成情報通信部1140は、仮想Vol移行部I2210からの要求を契機として、ストレージシステムA 1000にある各構成情報のテーブルを仮想Vol移行部I2210に送信する。なお、各構成情報のテーブルは、管理IF1010経由のネットワーク300を介して送信されてもよいし、Port1020(又はPort1030)経由のネットワーク100(又はネットワーク200)を介して送信されてもよい。
また、ストレージシステムB 2000のコントローラ2100は、外接LDEV参照テーブルB5600、仮想Vol管理テーブルC5700、セグメント管理テーブルC5800を備える。
外接LDEV参照テーブルB5600は、ストレージシステムA 1000の論理ボリューム1320と、論理ボリューム1320を外部接続したストレージシステムB 2000の外接ボリュームのDEV IDの対応関係を記述したテーブルである。外接LDEV参照テーブルB5600については、図18を用いて後述する。
セグメント管理テーブルC5800の構成は、図6に示したセグメント管理テーブルA4300の構成と同じである。仮想Vol管理テーブルC5700の構成は、図7に示した仮想Vol管理テーブルA4200の構成と同じである。
第1の実施形態では、セグメント管理テーブルC5800及び仮想Vol管理テーブルC5700を用いる例を説明するが、セグメント管理テーブルC5800及び仮想Vol管理テーブルC5700は、ストレージシステムB 2000のPool及び仮想ボリュームを管理するために用いるテーブルではなく、第1の実施形態の処理の過程で一時的に作成するテーブルであって必ずしも必要ではない。
なお、外接LDEV参照テーブルB5600、仮想Vol管理テーブルC5700、セグメント管理テーブルC5800の説明については、図11を用いて後述する。
以下に、第1の実施形態の仮想ボリュームの移行処理の概要を説明する。
ストレージシステムA 1000は、仮想ボリューム移行処理の前に、前述した図5、図6、図7に示したテーブルの構成を備え、ストレージシステムB 2000は、図8に示したテーブルの構成を備えている。
ここで説明のため、ストレージシステムA 1000は、論理ボリューム1320(識別子は「LDEV1」及び「LDEV2」)、この「LDEV1」及び「LDEV2」の論理ボリューム1320によって作成されたPool1330(識別子は「Pool1」)を備えている。
さらに、ストレージシステムA 1000は、Pool(識別子は「Pool1」)のセグメントが割り当てられた仮想ボリューム1340(識別子は「VVol1」)を備える。また、一般的な管理プログラム等を用いて、ホスト計算機3000が論理ボリューム1320を利用しないように操作することができるため、仮想ボリューム1340は、ホスト計算機3000から利用されていないとする。
なお、前述した論理ボリューム1320、Pool1330及び仮想ボリューム1340の構成は一例であって、これらの数はストレージシステムA 1000の運用に応じて変更してよい。
図9は、本発明の第1の実施形態の仮想Vol移行部Iの処理を示すフローチャートである。
図9に示す処理7000から処理7500までの処理は、仮想Vol移行部I2210が実行する仮想ボリュームの移行の処理である。
なお、処理7100の詳細については、図11を用いて後述する。処理7200の詳細については、図13を用いて後述する。処理7300の詳細については、図14を用いて後述する。処理7400の詳細については、図15を用いて後述する。
ここで、図9に示す仮想ボリュームの移行処理を説明する前に、仮想ボリュームの移行の前後におけるストレージシステムA 1000及びストレージシステムB 2000の構成について説明する。
図10は、本発明の第1の実施形態の仮想ボリュームを移行する処理の概要を示す説明図である。
仮想ボリュームの移行処理の前のストレージシステムA 1000は、論理ボリューム1320(識別子は「LDEV1」及び「LDEV2」)を備え、これらの論理ボリューム1320から作成されたPool1330(識別子は「Pool1」)を備える。また、ストレージシステムA 1000は、このPool1330からセグメントを割り当てられた仮想ボリューム1340(識別子は「VVol1」)を備える。
仮想ボリュームの移行処理の後のストレージシステムB 2000は、外部接続によって取り込まれた論理ボリューム2321(識別子は「LDEV3」及び「LDEV4」)を備え、これらの論理ボリューム2321から作成されたPool2330(識別子は「Pool3」)を備える。
また、ストレージシステムB 2000は、このPool2330からセグメントを割り当てられた仮想ボリューム2340(識別子は「VVol3」)を備える。 図9の説明に戻り、ストレージシステムB 2000の仮想Vol移行部I2210の処理の概要を説明する。
まず、仮想Vol移行部I2210は、例えば、管理IF2010を経由して、ストレージシステムA 1000の「Pool1」をストレージシステムB 2000に移行する指示を受け取る(処理7000)。
次に、仮想Vol移行部I2210は、ストレージシステムA 1000から、仮想ボリューム1340の構成情報である仮想Vol管理テーブルA4200及びPool1330の構成情報であるセグメント管理テーブルA4300を取得する(処理7100)。
次に、仮想Vol移行部I2210は、取得したセグメント管理テーブルA4300を参照して、「Pool1」に含まれる論理ボリューム「LDEV1」及び「LDEV2」を外部接続する指示を外接処理部2240に与える(処理7200)。
そして、仮想Vol移行部I2210は、外部接続した論理ボリューム「LDEV1」及び「LDEV2」をストレージシステムB 2000で使用するため、セグメント管理テーブルA4300を変換する(処理7300)。また、仮想Vol移行部I2210は、外部接続によって取り込んだ論理ボリューム「LDEV3」及び「LDEV4」をストレージシステムB 2000内に作成する。
最後に、仮想Vol移行部I2210は、ストレージシステムA 1000から取得した仮想Vol管理テーブルA4200及び変換されたセグメント管理テーブルA4300によって、移行処理の前にストレージシステムA 1000が備えていた「Pool1」及び仮想ボリューム「VVol1」と同じ構成情報を備える「Pool3」及び仮想ボリューム「VVol3」を作成し(処理7400)、移行の処理を終了する(処理7500)。
なお、図10に示した例においては、移行処理の後にストレージシステムB 2000が備えるPool2330及び仮想ボリューム2340の識別子を、移行処理の前にストレージシステムA 1000が備えていたPool1330及び仮想ボリューム1340の識別子とは違う識別子に変換した。
ストレージシステムB 2000が備えるPool1330及び仮想ボリューム1340の識別子が、ストレージシステムA 1000が備えるPool1330及び仮想ボリューム1340の識別子と重複しない場合は、移行処理の前にストレージシステムA 1000が備えているPool1330及び仮想ボリューム1340の識別子を、移行処理の後のストレージシステムB 2000がそのまま用いてもよい。
この場合、移行処理の後のストレージシステムB 2000において、図10に示した「Pool3」を「Pool1」に、「VVol3」を「VVol1」に読み替えてよい。
また、ストレージシステムA 1000が一つ以上のPool1330を備える場合には、仮想Vol移行部I2210は、各Pool1330に対して、図9に示した処理7000から処理7400までの処理を繰り返し、ストレージシステムA 1000が備えるすべてのPool1330をストレージシステムB 2000へ移行する。
前述した一連の移行処理によって、ストレージシステムB 2000は、ストレージシステムA 1000のPool1330及び仮想ボリューム1340と同じ構成を備えるPool2330及び仮想ボリューム2340を利用することができる。
また、仮想ボリューム1340の移行処理において、ストレージシステムB 2000は、ストレージシステムA 1000の記憶領域に格納されたデータをストレージシステムB 2000の記憶領域にコピーすることなく、ストレージシステムA 1000の記憶領域を利用するので、データのコピーのために新たに記憶領域を必要としない。
さらに、前述した一連の移行処理によって、単純にストレージシステムA 1000の仮想ボリューム1340をストレージシステムB 2000の記憶領域にコピーした場合と異なり、ストレージシステムB 2000は、ストレージシステムA 1000の仮想ボリューム1340をストレージシステムB 2000の仮想ボリューム2340として扱うことができ、仮想ボリューム2340へのセグメント割り当ての情報を利用した機能(例えば、仮想ボリューム2340のセグメントが割り当てられている部分のみを別の論理ボリューム2321にコピーする機能等)を提供することができる。
そして、前述した一連の移行処理においては、ストレージシステムB 2000は、ストレージシステムA 1000のセグメント管理テーブルA4300及び仮想Vol管理テーブルA4200の構成情報のみを取得すればよい。したがって、ストレージシステムB 2000は、ストレージシステムA 1000の仮想ボリューム1340を仮想ボリューム1340に対応付けられている論理ボリューム1320に格納されたデータとともにストレージシステムB 2000の記憶領域にコピーする場合よりも早く、ストレージシステムA 1000が備えていた仮想ボリュームを利用することができる。
また、前述した移行処理において、移行元であるストレージシステムA 1000は、構成情報を通信する構成情報通信部1240のみを備えればよく、ストレージシステムA 1000は移行処理のために、そのほかの特別な処理部を必要としない。さらに、ストレージシステムA 1000は、ストレージシステムB 2000に論理ボリューム1320をコピーする機能を備える必要がない。
図9における各処理を図11から図15を用いて説明する。
まず、仮想Vol移行部I2210は、処理7000において、管理IF2010からストレージシステムA 1000のPool1330(識別子「Pool1」)を移行する指示を受け取り、移行元となるストレージシステムA 1000と、ストレージシステムA 1000のPool1330を特定する。Poolの移行は、ストレージシステムB 2000が備える管理用のコンソール(図示省略)、又は、後述する図21の管理計算機6000の管理プログラム6110が提供する管理画面(図22)を用いてユーザが指示してもよい。なお、「Pool1」を移行する指示は、所定の規則に従って、ネットワーク上を流れるデータのバイト列に埋め込まれてもよい。
次に、図9に示した処理7100を、図11を用いて具体的に説明する。
図11は、本発明の第1の実施形態のPool及び仮想ボリュームの構成情報を取得する処理を示すフローチャートである。
仮想Vol移行部I2210は、前述した処理7000によって、移行元の対象がストレージシステムA 1000の「Pool1」であることを特定している。
次に、仮想Vol移行部I2210は、ストレージシステムA 1000の構成情報通信部1240と通信することができるか否かを確認する(処理7110)。
なお、ストレージシステムB 2000は、例えば、管理IF2010経由でLAN等のネットワーク300を介してストレージシステムAと通信してもよいし、Port2020経由で、互いに接続されたSAN等のネットワーク100を介して通信してもよい。
以下では、ストレージシステムA 1000の構成情報通信部1240が管理IF1010経由で構成情報を送信する例を説明する。また、例えば、ネットワーク100がLANの場合、仮想Vol移行部I2210は、構成情報通信部1240に宛ててPing等を送信し、レスポンスがあるか否かを確認することによって、ストレージシステムA 1000との通信が可能であるかを判定する。
処理7110において、通信が不可能であった場合、仮想Vol移行部I2210は、処理を終了する(処理7500)。なお、管理IF2010に出力端末等(例えば、後述する図21に示す管理計算機6000)が接続されている場合には、仮想Vol移行部I2210は、処理が異常終了した旨を出力端末等に通知してもよい(処理7150)。この場合、出力端末等は、通知されたエラーの内容に基づいてエラー表示画面を表示してもよい。エラー表示画面の表示の例を、図12を用いて説明する。
図12は、本発明の第1の実施形態のエラー表示画面の例を示す説明図である。
エラー表示画面6400は、エラーの理由を通知する画面構成要素6410等を備える。図11の説明に戻る。
処理7110において、通信が可能であった場合は、仮想Vol移行部I2210は、処理7120へ進む。
次に、仮想Vol移行部I2210は、ストレージシステムA 1000が備える仮想ボリューム1340の構成情報である仮想Vol管理テーブルA4200及びPoolのセグメント管理情報であるセグメント管理テーブルA4300をストレージシステムB 2000に送信するよう構成情報通信部1240に対して要求する。
送信の要求を受け取った構成情報通信部1240は、管理IF1010経由によって、仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300を仮想Vol移行部I2210へ送信する。
これによって、仮想Vol移行部I2210は、仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300を取得する(処理7120)。
なお、仮想Vol移行部I2210は、構成情報通信部1240へ送信を要求する場合に、Poolの識別子を指定し、仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300から指定されたPoolの識別子を含むレコードのみを取得してもよい。
次に、仮想Vol移行部I2210は、取得したセグメント管理テーブルA4300が「Pool1」であるレコードを含むか否かを確認する(処理7130)。
処理7130において、確認の結果、「Pool1」であるレコードが含まれていない場合、仮想Vol移行部I2210は処理を終了する(処理7500)。
なお、管理IF2010に出力端末等が接続されている場合、仮想Vol移行部I2210は、ストレージシステムA 1000には指定された識別子が付与されたPool1330が存在しない旨を出力端末等に通知し(処理7150)、出力端末等は通知された終了理由を表示してもよい。
処理7130において、「Pool1」であるレコードが含まれている場合、仮想Vol移行部I2210は処理7140へ進む。
次に、仮想Vol移行部I2210は、取得した仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300から、「Pool1」であるレコードのみを抽出し、抽出されたレコードによって作成されるテーブルを仮想Vol管理テーブルC5700及びセグメント管理テーブルC5800としてストレージシステムB 2000のメモリ2200に格納する(処理7140)。
仮想Vol管理テーブルC5700及びセグメント管理テーブルC5800の構成は、図6及び図7に示した仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300の構成と同じである。
なお、処理7140は、仮想Vol移行部I2210が、それぞれの管理テーブルの各レコードに対して、レコードに記載されたPoolの識別子を判別し、「Pool1」を含むレコードを仮想Vol管理テーブルC5700又はセグメント管理テーブルC5800に記載することによって実行される。
仮想Vol移行部I2210は、仮想Vol管理テーブルC5700又はセグメント管理テーブルC5800を作成した後、処理7200へ進む。また、処理7200以降、仮想Vol移行部I2210は、取得した仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300を使用しないため、これらの管理テーブルをメモリ2200から削除してもよい。
なお、処理7120において、仮想Vol移行部I2210は、仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300から、「Pool1」を含むレコードのみを取得して、仮想Vol管理テーブルC5700及びセグメント管理テーブルC5800としてもよい。
また、処理7140は必ずしも必要でなく、仮想Vol移行部I2210は、ストレージシステムA 1000から取得した仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300をそのまま用いて、以降の処理に進んでもよい。
次に、図9に示した処理7200を、図13を用いて具体的に説明する。
図13は、本発明の第1の実施形態の論理ボリュームを外部接続する処理を示すフローチャートである。
処理7200(処理7210から処理7225)は、処理7100において、仮想Vol移行部I2210がストレージシステムA 1000の「Pool」の構成情報を取得した後に、「Pool1」に含まれる論理ボリューム「LDEV1」及び「LDEV2」をストレージシステムB 2000に外部接続する処理である。
なお、処理7200を開始する前に、仮想Vol移行部I2210は、ストレージシステムA 1000の「Pool1」に含まれる論理ボリューム「LDEV1」及び「LDEV2」を外部接続する処理ため、必要に応じて、ストレージシステムA 1000に作成された「Pool1」及び「VVol1」を削除してもよい。
この場合、仮想Vol移行部I2210は、セグメント処理部1230に対して、
「LDEV1」及び「LDEV2」が作成する「Pool1」の削除を指示し、仮想Vol処理部1220に対し、「Pool1」のセグメントが割り当てられている「VVol1」の削除を指示する。削除の指示は、管理IF2010等を経由してもよい。
また、仮想Vol移行部I2210は、「Pool1」を削除した場合、削除された「Pool1」に含まれていた論理ボリューム「LDEV1」及び「LDEV2」に格納されたデータが変更されるのを防ぐため、「LDEV1」及び「LDEV2」に対するホスト計算機3000からの書き込みを不可としてもよい。この場合、仮想Vol移行部I2210は、ストレージシステムA 1000のLUマップ処理部1210に書き込み不可の設定を指示してもよい。
まず、仮想Vol移行部I2210は、ストレージシステムB 2000が備えるストレージ間パステーブルB5400を参照して、SAN等のネットワーク100を介して接続されたストレージシステムA 1000のPortのWWNが存在するか否かを確認する(処理7210)。
処理7210において、該当するWWNが存在しない場合、仮想Vol移行部I2210は処理を終了する(処理7500)。なお、ストレージシステムB 2000の管理IF2010に出力端末等が接続されている場合、仮想Vol移行部I2210は、ストレージシステムB 2000に接続されているストレージシステムA 1000が存在しないため、処理を終了した旨を通知し、出力端末等にエラー通知の表示を指示してもよい(処理7260)。
処理7210において、該当するWWNが存在する場合(すなわち、SAN等のネットワーク100を介してストレージシステムB 2000と通信可能なストレージシステムA 1000が存在する場合)、仮想Vol移行部I2210は処理7220へ進む。
次に、仮想Vol移行部I2210は、処理7140においてストレージシステムA 1000から取得したセグメント管理テーブルC5800を参照し、記載されているすべての各セグメントに対して、処理7230から処理7250の処理を繰り返して実行する(処理7220)。
なお、仮想Vol移行部I2210は、すべてのセグメントに対して、処理7230から処理7250までの処理を実行した後、次の処理7300へ進む(処理7220)。
処理7230の説明に戻る。
仮想Vol移行部I2210は、セグメント管理テーブルC5800を参照して、セグメントID4320に対応付けられているDEVID4330を確認し、DEVID4330によって示される論理ボリューム1320(例えば、「LDEV1」又は「LDEV2」)が外部接続されているかを確認する(処理7230)。
処理7230において、論理ボリューム1320が外部接続されていない場合、仮想Vol移行部I2210は処理7240に進む。
処理7230において、論理ボリューム1320が既に外部接続されていた場合、仮想Vol移行部I2210は、処理7225に進み、ほかのセグメントID4320に対応付けられた論理ボリューム1320に対して、処理7230から処理7250までの処理を実行する。
なお、仮想Vol移行部I2210は、論理ボリューム1320が外部接続されているか否かを、処理7220おいて記憶された外部接続を指示された論理ボリューム1320のDEVIDに基づいて判定してもよいし、構成情報通信部1240から取得したLUマップテーブルA4100に記載された論理ボリューム1320に基づいて判定してもよい。
次に処理7240を説明する。
処理7230において、セグメントID4320に対応付けられた論理ボリューム1320(例えば、「LDEV1」)はまだ外部接続されていないと判定された。
したがって、仮想Vol移行部I2210は、ストレージ間パステーブルB5400を参照し、接続元WWN5410(ストレージシステムB 2000)に接続している接続先WWN5430(ストレージシステムA 1000)を確認する。
例えば、ここでは、「WWN4」が付与されたストレージシステムB 2000のPortが、「WWN3」が付与されたストレージシステムA 1000のPortに接続されている。
そして、仮想Vol移行部I2210は、「WWN3」が付与されたストレージシステムA 1000のPortを経由して、ストレージシステムA 1000のLUマップ処理部1210に対して、外部接続が完了していないと判定されたセグメントID4320に対応付けられた論理ボリューム1320(例えば、「LDEV1」)を、論理ユニット1350(例えば、「LUN1」)にLUマッピングするよう指示する(処理7240)。
LUマップ処理部1210は、LUマッピングの指示を受け取った後、仮想Vol移行部I2210から指定された「WWN3」が付与されたPortに、指示された論理ボリューム「LDEV1」を、「LUN1」である論理ユニット1350として対応付ける。
なお、LUNの番号は、ストレージシステムB 2000の「WWN3」に既に割り当てられたLUNに重複しない数であればよく、例えば、既存のLUNに重複しない数のうちで最も小さな数を選んでよい。
そして、LUマップ処理部1210は、このLUマッピング結果をLUマップテーブルA4100に反映する。
ここで、LUマッピングが終了した後に更新されたLUマップテーブルA4100を、図16を用いて説明する。
図16は、本発明の第1の実施形態の論理ボリュームの外部接続時のLUマップテーブルAの構成の例を示す説明図である。
図16に示したLUマップテーブルA4100では、「WWN3」が付与されたPortに、「Pool1」に含まれる論理ボリューム「LDEV1」及び「LDEV2」が、それぞれ「LUN1」及び「LUN2」の論理ユニット1350としてLUマッピングされている。
図16に示したLUマップテーブルA4100は、「WWN3」である行が追加された点が、図5示したLUマップテーブルA4100と異なる。
図13の説明に戻り、LUマッピングされた論理ボリューム「LDEV1」及び「LDEV2」を外部接続する処理7250を説明する。
仮想Vol移行部I2210は、処理7240によって「WWN3」を付与されたストレージシステムA 1000のPortに、「LUN1」としてLUマッピングされた「LDEV1」を外部接続する指示を外接処理部2240に与える。また、同様にして、「LUN2」としてLUマッピングされた「LDEV2」を外部接続する指示を与える(処理7250)。
次に、前述した指示を受け取った外接処理部2240は、「WWN3」が付与されたストレージシステムA 1000のPortにLUマッピングされた論理ボリューム「LDEV1」(又は「LDEV2」)に、ストレージシステムB 2000内で使用するための新たな識別子「LDEV3」(又は、「LDEV4」)を割り振り、後述する外接VolマップテーブルB5500(図17)を作成する。これによって、ストレージシステムB 2000は、ストレージシステムA 1000の論理ボリューム1320をストレージシステムB 2000の論理ボリューム2321としてホスト計算機3000(又は、管理計算機等)に提供することができる。
図17は、本発明の第1の実施形態の論理ボリュームの外部接続時の外接VolマップテーブルBの構成の例を示す説明図である。
外接VolマップテーブルB5500は、DEVID5510、接続先WWN5520及び接続先LUN5530を含む。なお、第1の実施形態では、外部接続の接続先はストレージシステムA 1000であり、接続元はストレージシステムB 2000である。
DEVID5510は、接続元(ここでは、ストレージシステムB 2000)が外部接続して取り込んだ論理ボリューム2321に付与した識別子である。接続先WWN5520は、外部接続された実際の論理ボリューム1320を備える接続先(ここでは、ストレージシステムA 1000)のWWNである。接続先LUN5530は、接続先(ストレージシステムA 1000)において外部接続された論理ボリューム1320にLUマッピングされている論理ユニット1350の識別子である。
ここで、図13の説明に戻る。
仮想Vol移行部I2210は、「Pool1」に含まれるすべての論理ボリューム1320に対して、処理7240(LUマッピングの処理)及び処理7250(外部接続の処理)を実行した後、処理7300へ進む。なお、処理7250は、先に「Pool1」に含まれるすべての論理ボリューム1320に対して処理7240を実行した後、すなわちLUマッピングが終了した後、実行されてもよい。
次に、処理7300を、図14を用いて具体的に説明する。
図14は、本発明の第1の実施形態のPool及び仮想ボリュームの構成情報を変換する処理を示すフローチャートである。
処理7300(処理7310から処理7340まで)は、仮想Vol移行部I2210がストレージシステムA 1000から取得した仮想Vol管理テーブルC5700、及び、セグメント管理テーブルC5800を、ストレージシステムB 2000で利用するための変換処理である。
仮想Vol移行部I2210は、「Pool1」に含まれるすべての論理ボリューム(ここでは、「LDEV1」及び「LDEV2」)を外部接続した後、ストレージシステムA 1000の構成情報通信部1240から、LUマップテーブルA4100を取得する(処理7310)。
なお、この場合のLUマップテーブルA4100は、図5ではなく図16に示す情報を含むテーブルである。また、仮想Vol移行部I2210は、このLUマップテーブルA4100に含まれるすべてレコードを取得する必要はなく、処理7250において外部接続の接続先WWNとして指定されたWWN(例えば、「WWN3」)を含むレコードのみでよい。
次に、仮想Vol移行部I2210は、前述した処理7310において取得したLUマップテーブルA4100の指定されたWWN(例えば、「WWN3」)を含むレコードに対して、処理7330に示す処理を繰り返し実行し(処理7320)、すべてのレコードに対して処理7330が完了した後、処理7340へ進む(処理7325)。
仮想Vol移行部I2210は、処理7250で作成した外接VolマップテーブルB5500、及び、処理7310おいて取得したLUマップテーブルA4100を参照して、外接LDEV参照テーブルB5600(図18)を作成する(処理7330)。
次に、外接LDEV参照テーブルB5600を、図18を用いて説明する。
図18は、本発明の第1の実施形態の論理ボリュームの外部接続時の外接LDEV参照テーブルの構成の例を示す説明図である。
外接LDEV参照テーブルB5600は、接続元DEVID5610及び接続先DEVID5620を含む。
接続元DEVID5610は、ストレージシステムB 2000がストレージシステムA 1000の論理ボリューム1320を外部接続し、ストレージシステムB 2000内に取り込んだ論理ボリューム2321に付与された識別子である。接続先DEVID5620は、外部接続されたストレージシステムA 1000の論理ボリューム1320の識別子である
例えば、仮想Vol移行部I2210は、図16に示したLUマップテーブルA4100を参照して、WWNが「WWN3」、LUNが「1」、DEVIDが「LDEV1」であるレコード4101を特定する(処理7320)。
次に、仮想Vol移行部I2210は、図17に示した外接VolマップテーブルB5500を参照して、レコード4101のWWN(ここでは「WWN3」)及びLUN(ここでは「LUN1」)と同一の値を含むレコードを特定する。
ここでは、レコード5501の接続先WWN5520及び接続先LUN5530が、レコード4101のWWN及びLUNにそれぞれ一致する。
したがって、仮想Vol移行部I2210は、レコード5501のDEVID5510に示された「LDEV3」を図18に示した外接LDEV参照テーブルB5600の接続元DEVID5610に、レコード4101のDEVIDに示された「LDEV1」を接続先DEVID5620に記載する。
これによって、外接LDEV参照テーブルB5600に、レコード5601が追加された。
以上の処理によって、仮想Vol移行部I2210は、接続先の外部接続された論理ボリューム1320の識別子と、外接元の取り込んだ論理ボリューム2321の識別子との対応関係を記述した外接LDEV参照テーブルB5600を作成する(図14に示した処理7330)。
図14の説明に戻る。外接LDEV参照テーブルB5600が作成された後、仮想Vol移行部I2210は処理7340へ進む。
仮想Vol移行部I2210は、処理7330によって作成された外接LDEV参照テーブルB5600を参照して、ストレージシステムA 1000から取得したセグメント管理テーブルC5800のDEVID4330を書き換える。
つまり、DEVID4330に記載されている「LDEV1」(図18のレコード5601に示した接続先DEVID5620に相当する)を「LDEV3」(図18のレコード5601に示した接続元DEVID5610に相当する)へ置換する(処理7340)。
仮想Vol移行部I2210は、前述した置換の処理をストレージシステムA 1000から取得したセグメント管理テーブルC5800のすべてのレコードに対して実行する。
なお、仮想Vol移行部I2210がセグメント管理テーブルC5800ではなく、ストレージシステムA 1000から取得したセグメント管理テーブルA4300をそのまま用いている場合には、仮想Vol移行部I2210は、Poolの識別子が「Pool1」のレコードについてのみ置換の処理を実行すればよい。
例えば、図6に示したセグメント管理テーブルA4300で、PoolID4310が「Pool1」であり、DEVID4330に「LDEV1」記載されたレコード4301では、図18に示した外接LDEV参照テーブルB5600のレコード5601の対応関係によって、接続先DEVID5620である「LDEV1」が接続元DEVID5610の「LDEV3」へ置換される。
仮想Vol移行部I2210は、「Pool1」に含まれるすべてのセグメント、すなわち、セグメント管理テーブルC5800の「Pool1」が記載されたすべてのレコードに対して、前述したDEVIDの置換の処理が終了した後、処理7400へ進む。
次に、図9に示した処理7400を、図15を用いて具体的に説明する。
図15は、本発明の第1の実施形態のストレージシステムBにPool及び仮想ボリュームを作成する処理を示すフローチャートである。
処理7400(処理7410から処理7440)は、仮想Vol移行部I2210が、仮想Vol管理テーブルC5700及びセグメント管理テーブルC5800を参照して、実際にストレージシステムB 2000にPool2330を作成する処理である。
仮想Vol移行部I2210は、仮想Vol管理テーブルC5700及びセグメント管理テーブルCに基づいて新しく作成するPoolの識別子とストレージシステムB 2000が既に備えているPoolの識別子とが重複することを避けるため、ストレージシステムA 1000から移行するPool1330の識別子を別の識別子へ置換する(処理7410)。
例えば、仮想Vol移行部I2210は、ストレージシステムB 2000が備えるストレージシステムA 1000から取得した仮想Vol管理テーブルC5700、及び、セグメント管理テーブルC5800の各レコードに対して、「Pool1」をストレージシステムB 2000で使用されていない識別子である「Pool3」へ置換する。
なお、仮想Vol移行部I2210は、ストレージシステムB 2000が備える仮想Vol管理テーブルB5200及びセグメント管理テーブルB5300を参照して、ストレージシステムB 2000で既に使われているPoolの識別子を確認することができる。
また、ストレージシステムB 2000で「Pool1」が使用されていない場合、仮想Vol移行部I2210は、Poolの識別子を置換せず、「Pool1」をそのまま用いてPoolを作成するのが望ましい。また、仮想Vol移行部I2210は、置換の前後のPoolの識別子を記憶しておき、置換の結果を出力端末等(例えば、後述する図21に示す管理計算機6000等)に通知するようにしてもよい。
また、仮想Vol移行部I2210は、処理7410において、前述した置換の処理がない場合、すなわち、Poolの識別子が変更されない場合にはPoolの移行の処理を実行し、前述した置換の処理がある場合、例えば、Poolの識別子が「Pool1」から「Pool3」へ置換される場合にはPoolの移行の処理を終了する、としてもよい。なお、管理IF2010に出力端末等が接続されている場合、仮想Vol移行部I2210は、Poolの移行処理を終了した原因を出力端末等に通知してもよい。また、Poolの識別子が変更される場合は、前述した出力端末等に、実行の可否を確認する画面を表示してもよい。
次に、仮想Vol移行部I2210は、ストレージシステムA 1000から取得した後、処理7410によってPoolの識別子が「Pool3」に置換されたセグメント管理テーブルC5800を参照して、「Pool3」のPoolをストレージシステムB 2000に作成する指示をセグメント処理部2230に与える。
次に、指示を受けたセグメント処理部2230は、ストレージシステムA 1000から取得しPoolの識別子が置換されたセグメント管理テーブルC5800のレコードを、ストレージシステムB 2000が備えるセグメント管理テーブルB5300に追加する。
そして、セグメント処理部2230は、セグメント管理テーブルB5300に基づいて、Poolの識別子が「Pool3」であるPoolを作成する(処理7420)。
なお、前述したPoolの作成の処理において、仮想Vol移行部I2210は、「Pool3」に含まれる論理ボリューム「LDEV3」及び「LDEV4」にフォーマット等の書き込み処理が発生する場合には、セグメント処理部2230に書き込み処理の抑止を指示する。また、セグメント処理部2230は、ストレージシステムB 2000がセグメント管理テーブルC5800を備えず、ストレージシステムA 1000から取得したセグメント管理テーブルA4300をそのまま使用している場合には、「Pool3」が含まれているレコード(処理7410によってセグメント管理テーブルA4300のPoolの識別子も置換されている)に対してのみ、処理7420を実行すればよい。
ここで、セグメント処理部2230によって、処理7420が実行された後のストレージシステムB 2000が備えるセグメント管理テーブルB5300を、図19を用いて説明する。
図19は、本発明の第1の実施形態の実施後のセグメント管理テーブルBの構成の例を示す説明図である。
セグメント管理テーブルB5300は、Poolは、PoolID5310、セグメントID5320、DEVID5330、開始LBA5340、セグメントサイズ5350及びVVolID5360を含む。
セグメント管理テーブルB5300は、図6に示したセグメント管理テーブルA4300とは、PoolID5310、DEVID5330の値が置換されている点で異なる。
また、後述する処理7430において、仮想Volの識別子を変換している場合は、前記VVolID5360も異なる。
図15に戻り、処理7430を説明する。仮想Vol移行部I2210は、新しく作成する仮想ボリュームの識別子と、ストレージシステムB 2000が既に備えている仮想ボリュームの識別子とが重複することを避けるため、ストレージシステムA 1000から移行する仮想ボリューム1340の識別子を別の識別子へ置換する(処理7430)。
具体的には、仮想Vol移行部I2210は、ストレージシステムA 1000から取得し、ストレージシステムB 2000が備える仮想Vol管理テーブルC5700の各レコードの仮想ボリュームの識別子を、ストレージシステムB 2000で使用していない識別子に置換する。なお、仮想Vol移行部I2210は、前述したストレージシステムA 1000から取得した仮想Vol管理テーブルC5700に複数の仮想ボリュームの識別子が記載されている場合には、それぞれに互いに異なる識別子を付与する。
さらに、仮想Vol移行部I2210は、置換後の仮想Vol管理テーブルC5700のPoolID、セグメントID及びVVolIDの関係を用いて、セグメント管理テーブルC5800のVVolIDを置換する。
なお、仮想Vol移行部I2210は、ストレージシステムB 2000が備える仮想Vol管理テーブルB5200を参照して、ストレージシステムB 2000が使用していない識別子を確認することができる。
例えば、仮想Vol移行部I2210は、ストレージシステムA 1000から取得した仮想Vol管理テーブルC5700に、「VVol1」が含まれていた場合、「VVol1」をストレージシステムB 2000でまだ使用されていない「VVol3」へ置換する。
さらに、「VVol1」のほかに「VVol2」が含まれていた場合、仮想Vol移行部I2210は、「VVol2」をストレージシステムB 2000で使用されておらず、かつ、既に付与した「VVol3」とは異なる「VVol4」へ置換する(処理7430)。
さらに、仮想Vol移行部I2210は、置換後の仮想Vol管理テーブルC5700を参照して、PoolIDが「Pool3」のセグメントID「001」はVVolID「VVol3」に属していることを知る。これによって、仮想Vol移行部I2210は、セグメント管理テーブルC5800のPoolID「Pool3」のセグメントID「001」に対応したVVolIDを「VVol1」から「VVol3」へ置換する。
ストレージシステムB 2000が仮想Vol管理テーブルC5700を備えず、ストレージシステムA 1000から取得した仮想Vol管理テーブルA4200をそのまま利用している場合には、仮想Vol移行部I2210は、Poolの識別子が「Pool3」(処理7410によって仮想Vol管理テーブルA4200のPoolの識別子も置換されている)である仮想ボリュームに対してのみ識別子を置換する。
また、仮想Vol移行部I2210は、処理7410において処理の終了を通知したのと同様に、仮想ボリュームに識別子が一つでも変更される場合、出力端末等にエラーを通知し、仮想ボリュームの作成の処理を終了してもよい。
さらに、仮想Vol移行部I2210は、置換の前後で仮想ボリュームの識別子を記憶しておき、仮想ボリュームの識別子を置換した結果を出力端末等に通知してもよい。
次に、仮想Vol移行部I2210は、ストレージシステムA 1000から取得し、処理7430によって仮想ボリュームに識別子が置換された仮想Vol管理テーブルC5700を参照し、「Pool3」のセグメントが割り当てられたすべての仮想ボリュームを作成する指示を仮想Vol処理部2220に与える。
指示を受けた仮想Vol処理部2220は、仮想Vol管理テーブルC5700のうちで「Pool3」を含むすべてのレコードを、ストレージシステムB 2000が備える仮想Vol管理テーブルB5200に追加する。
仮想Vol処理部2220は、仮想Vol管理テーブルB5200に基づいて、「Pool3」であるPoolのセグメントが割り当てられた仮想ボリュームを作成する(処理7440)。
また、ストレージシステムB 2000が仮想Vol管理テーブルC5700を備えず、ストレージシステムA 1000から取得した仮想Vol管理テーブルA4200をそのまま利用している場合には、仮想Vol処理部2220、Poolの識別子が「Pool3」となっているレコードに対してのみ、処理7440を実行すればよい。
また、ここで、仮想Vol処理部2220によって、処理7440が実行された後のストレージシステムB 2000が備える仮想Vol管理テーブルB5200を、図20を用いて説明する。
図20は、本発明の第1の実施形態の仮想Vol管理テーブルBの構成の例を示す説明図である。
仮想Vol管理テーブルB5200は、VVolID5210、サイズ5220、開始VLBA5230、PoolID5240、セグメントID5250及びセグメントサイズ5260を含む。仮想Vol管理テーブルB5200は、図7に示した仮想Vol管理テーブルA4200とは、VVolID5210及びPoolID5240に識別子が置換されている点で異なる。
以上説明したように、第1の実施形態によれば、ストレージシステムB 2000は、ストレージシステムA 1000が備える論理ボリュームとセグメントとの対応関係、及び、仮想ボリュームと仮想ボリュームとの対応関係をそのまま引き継ぐことができる。
また、ストレージシステムB 2000は、ストレージシステムA 1000のデータをコピーすることなく、ストレージシステムA 1000が備える仮想ボリュームと同等の仮想ボリュームをホスト計算機に提供することができる。
また、第1の実施形態の計算機システムは、ホスト計算機3000、ストレージシステムA 1000及びストレージシステムB 2000を管理する管理計算機を備えてもよい。
図21は、本発明の第1の実施形態の変形例の計算機システムの構成を示すブロック図である。
図21に示す計算機システムは、図1に示したストレージシステムA 1000、ストレージシステムB 2000及びホスト計算機3000のほかに、管理計算機6000を備える。
管理計算機6000は、CPU6010、ローカルボリューム6020、メモリ6100、及び管理IF6030を備えたワークステーション等の計算機である。
メモリ6100は、管理プログラム6110を格納する。管理プログラム6110は、業務プログラム3110は、管理IF6030を介してストレージシステム及びホスト計算機3000を管理する。
なお、管理計算機6000が備えるCPU6010、ローカルボリューム6020及び管理IF6030は、それぞれ、ホスト計算機3000が備えるCPU3040、ローカルボリューム3010、管理IF3020と同じであり、一時記憶領域領であるメモリ6100はストレージシステムのボリューム構成等を管理するための管理プログラム6110を格納する。管理計算機6000は、ディスプレイ等の出力装置(図示省略)及びキーボード等の入力装置(図示省略)を備えてもよい。
また、管理プログラム6110は、一般的なストレージシステムの管理機能に加え、ストレージシステムBのコントローラ2010に代わり、図9に示した処理7000から処理7400までの処理を、管理IF6030を介して実行してもよい。
この場合、ストレージシステムB 2000は、仮想Vol移行部I2210を備えなくてもよく、代わりに、管理計算機6000にストレージシステムB 2000の構成情報を通知する処理部をコントローラ2100に備えればよい。
管理プログラム6110は、後述する図22に示すユーザの設定に基づき、移行先のストレージシステムの管理IFに設定されたPoolの移行を指示する(図9に示した処理7000)。
次に、管理プログラム6110は、移行元ストレージシステムとなるストレージシステムA 1000の構成情報通信部1240から、セグメント管理テーブルA4300及び仮想Vol管理テーブルA4200を取得する(図9に示した処理7100)。
次に、管理プログラム6110は、取得したセグメント管理テーブルA4300を参照して、ストレージシステムA 1000のPoolを作成する論理ボリューム1320のLUマッピングを実行し、移行先となるストレージシステムB 2000にLUマッピングされた論理ボリューム1320を外部接続する指示を外接処理部2240に与える(図9に示した処理7300)。
次に、管理プログラム6110は、ストレージシステムA 1000からLUマップテーブルA4100を、ストレージシステムB 2000から外接VolマップテーブルB5500を取得した後、LUマップテーブルA4100及び外接VolマップテーブルB5500を参照して、ストレージシステムA 1000から取得したセグメント管理テーブルA4300及び仮想Vol管理テーブルA4200を変換する(図9に示した処理7300)。
そして、管理プログラム6110は、変換された各管理テーブルに基づいて、ストレージシステムA 1000と同じ構成とデータとを備えたPool2330を作成する指示をストレージシステムB 2000の仮想Vol処理部2220に与え、仮想ボリューム2340を作成する指示をセグメント処理部2230に与える(図9に示した処理7400)。
なお、前述した各処理の具体的な処理は、図11、図13、図14、図15に示した処理と同じである。
さらに、管理プログラム6110は、図9に示した処理7000において、移行元となるストレージシステムA 1000及びPool1330の情報が指定された場合には、LUマップテーブルA4100の接続hostWWN4130を参照して、指定されたPool1330のセグメントが作成する仮想ボリューム1340を利用しているホスト計算機3000をオフラインとしてもよい。
さらに、管理プログラム6110は、オフラインの処理の前にホスト計算機3000と論理ボリューム1320との対応関係を示すLUマップテーブルA4100を取得し、処理7400を実行した後、移行した仮想ボリューム2340をストレージシステムA 1000の仮想ボリューム1340を利用していたホスト計算機3000に割り当て、業務プログラム3110からデータの入出力を可能とする処理を実現してもよい。
また、管理プログラム6110は、ユーザが移行元となるストレージシステム及びPoolを設定するために、図22に示す設定画面を出力装置に表示する機能を備えてもよい。
図22は、本発明の第1の実施形態のPoolの移行を設定する画面の例を示す説明図である。
設定画面6200は、選択部6210、ストレージID6220、PoolID6230、VVolID6240及び移行先ストレージID6250のほか、承認ボタン及びキャンセルボタン等を備える。
ストレージID6220は、移行元ストレージシステムの識別子である。PoolID6230は移行したいPoolの識別子である。選択部6210は、移行元ストレージシステム及び移行するPoolを特定するための、例えばチェックボックス等である。
また、設定画面6200は、Poolを利用する仮想ボリュームの識別子を示すVVolID6240等を画面構成要素として備えてもよい。移行先ストレージID6250は、移行先ストレージシステムの識別子を指定する画面構成要素である。
また、ストレージシステムB 2000等が管理IF2010を介して管理コンソール(図示省略)を備える場合には、管理コンソールが設定画面6200を表示してもよい。この場合、移行先ストレージID6250を示す画面構成要素は不要である。
また、管理プログラム6110は、処理7400の後、Pool及び仮想ボリュームの移行を実行した結果を示す画面を出力装置に表示する機能を備えてもよい。
図23は、本発明の第1の実施形態の移行結果を表示する画面の例を示す説明図である。
画面6300は、移行先ストレージID6310、PoolID6320、移行元ストレージID6340、作成VVol6330、移行元ストレージID6340、移行元PoolID6350、移行元VVol6360及びVVol利用host6370を含むことによって、移行後の運用に役立てるようにしてもよい。
図23に示した画面6300の例は、ストレージシステムA 1000に作成された「Pool1」を利用する「VVol1」が、ストレージシステムB 2000に作成された「Pool3」を利用する「VVol3」に移行した結果を示す。
また、画面6300は、移行元ストレージシステムにおいて、どのホスト計算機が仮想ボリュームを利用していたかを示すVVol利用host6370の画面構成要素を含んでもよい。画面6300の例では、移行前の「VVol1」をホスト計算機「h1」が使用していたことを示す。
なお、画面6300は、移行元ストレージシステムに仮想ボリュームが存在しない場合には、作成VVol6330を表示しなくてもよく、また、VVolを利用していたホスト計算機が存在しない場合には、VVol利用host6370を表示しなくてもよい。
なお、管理プログラム6110は、処理7300において、置換の前後のPoolの識別子及び仮想ボリュームの識別子を記憶しておくことによって、PoolID6320と移行元PoolID6350との対応関係、及び、作成VVol6330と移行元VVol6360との対応関係を表示することができる。
また、ストレージシステムB 2000等が管理IF2010を介して管理コンソール(図示省略)を備える場合には、管理コンソールが画面6300を表示してもよい。
<実施形態2>
以下、本発明の第1の実施形態を、図24から図27を用いて説明する。
第1の実施形態おいて、ストレージシステムA 1000のセグメント管理テーブルA4300及び仮想Vol管理テーブルA4200のデータ量が大きい場合には、処理7000の移行の指示から処理7400の移行が完了するまでの所要時間が大きくなる可能性がある。
これを解決する方法として、第2の実施形態では、ストレージシステムB 2000は、事前にストレージシステムA 1000のセグメント管理テーブルA4300及び仮想Vol管理テーブルA4200を取得しておき、さらに、ストレージシステムA 1000がストレージシステムB 2000へ前述した二つのテーブルの差分のデータを適宜送信することによって、常にストレージシステムA 1000の二つのテーブルと同じ内容のテーブルを備える。
これによって、移行の指示によって発生するセグメント管理テーブルB5300及び仮想Vol管理テーブルB5200へのコピーのデータ量を最小化し、移行完了までの所要時間を小さくすることができる。
第2の実施形態の計算機システムの構成は、図1に示した第1の実施形態の計算機システムの構成と同じである。
以下で、第1の実施形態との差異を説明する。
図24、図25は、各々、本発明の第2の実施形態のストレージシステムA及びストレージシステムBが備えるコントローラの構成を示す説明図である。
ストレージシステムA 1000のコントローラ1100は、メモリ1200に、図2に示した第1の実施形態の構成要素に加えて、構成情報差分生成部1250を実現するプログラムを格納する。
また、ストレージシステムB 2000のコントローラ2100は、メモリ2200に、図3に示した第1の実施形態の構成要素に加えて、構成情報差分処理部2250、及び、仮想Vol移行部I2210とは異なる仮想Vol移行部II2260を実現するプログラムを格納する。
構成情報差分生成部1250は、仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300を監視し、それら二つのテーブルが更新された場合には、差分のデータをストレージシステムB 2000の構成情報差分処理部2250に送信する。
更新によって生じた差分のデータを受け取った構成情報差分処理部2250は、ストレージシステムB 2000が備えるストレージシステムA 1000から事前に取得した仮想Vol管理テーブルC5700及びセグメント管理テーブルC5800を更新する。
なお、仮想Vol管理テーブルA4200は、ホスト計算機3000からのデータの書き込み等によって新規にセグメントの割り当てが必要になり、仮想ボリュームが新たに作成された場合等に更新され、セグメント管理テーブルA4300は、Poolに論理ボリュームを追加された場合、仮想Volにセグメントが割り当てられた場合等に更新される。
また、構成情報差分生成部1250は、差分データから作成される整合性チェック用データA(図示省略)を生成し、生成された整合性チェック用データAを差分データに付加して構成情報差分処理部2250に送信してもよい。
構成情報差分処理部2250は、前述した整合性チェック用データAが付加された差分データ(構成情報)を受け取った後、構成情報差分生成部1250が用いた方法と同じ方法で、受け取った差分データから整合性チェック用データB(図示省略)を作成する。
そして、構成情報差分処理部2250は、構成情報差分生成部1250から送信された整合性チェック用データAと、整合性チェック用データBとを比較する。前述したチェック用データAとBとが異なっていた場合には、構成情報差分処理部2250は、差分データのコピーの処理を中止し、構成情報差分生成部1250に差分データの再送を要求する。
図26は、本発明の第2の実施形態の仮想Vol移行部IIの処理を示すフローチャートである。
図26に示す仮想Vol移行部II2260の処理は、図9に示した第1の実施形態の仮想Vol移行部I2210の処理とは、処理7000が処理7010に変更され、処理7020及び処理7030が追加されている点で異なる。
まず、仮想Vol移行部II2260は、ストレージシステムB 2000がストレージシステムA 1000の構成情報を事前に取得する指示を管理IFから受け取る(処理7010)。次に、仮想Vol移行部II2260は、構成情報を取得(処理7100)した後、管理IFから実際にPool及び仮想ボリュームを移行する指示を受け取ったか否かを判定する(処理7020)。
処理7020において、移行の指示を受け取っていない場合、仮想Vol移行部II2260は、指示があるまで待機する(処理7030)。
仮想Vol移行部II2260が待機している(処理7030)間、構成情報差分処理部2250は、ストレージシステムB 2000が備えるストレージシステムA 1000から取得した仮想Vol管理テーブルC5700とストレージシステムA 1000が備える仮想Vol管理テーブルA4200とを、セグメント管理テーブルC5800とセグメント管理テーブルA4300とを一致させる。
つまり、構成情報差分処理部2250は、仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300の差分データに基づいて、仮想Vol管理テーブルC5700及びセグメント管理テーブルC5800の構成情報を更新し、前述したすべてのテーブルに指定されたPoolの識別子を一致させる。
処理7020において、移行の指示を受け取った場合、仮想Vol移行部II2260は、処理7200へ進むが、その前に処理7020の判定に関して、構成情報差分処理部2250が実行する構成情報の更新の処理を、図27を用いて説明する。
図27は、本発明の第2の実施形態の構成情報差分処理部の処理を示すフローチャートである。
処理8000から処理8300は、構成情報差分生成部1250が差分データに整合性チェック用データを付加して、構成情報差分処理部2250に差分データを送信する場合のフローチャートである。
整合性チェック用データが付加されていない場合には、構成情報差分処理部2250は、処理8200及び処理8250及び処理8260を実行しない。
また、図27に示した例では、構成情報差分処理部2250は、ストレージシステムA 1000の構成情報差分生成部1250がストレージシステムB 2000の構成情報差分処理部2250に差分データを送信し、差分データが更新されたことを契機としてテーブルを更新しているが、ストレージシステムB 2000の構成情報差分処理部2250が定期的に構成情報差分生成部1250に差分データを取得し、差分データが更新されたことを契機としてテーブルを更新してもよい。
構成情報差分処理部2250は、仮想Vol移行部II2260の処理7020と同様に、移行の指示を受け取ったか否かを判定する(処理8000)。
処理8000において、移行の指示を受け取った場合、構成情報差分処理部2250は処理を終了する。
なお、構成情報差分処理部2250は、処理の終了までの間に、ストレージシステムA 1000の仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300にまだコピーされていない差分データがある場合は、未コピーの差分データを仮想Vol管理テーブルC5700及びセグメント管理テーブルC5800にコピーした後に、処理を終了する。
仮想Vol移行部II2260は、構成情報差分処理部2250の処理の終了を契機として、処理7200以降に進む。
処理8000において、移行の指示を受け取っていない場合、構成情報差分処理部2250は処理8100へ進む。
次に、構成情報差分処理部2250は、ストレージシステムA 1000の構成情報差分生成部1250から仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300の差分データが送られてきたか否かを判定する(処理8100)。
処理8100において、差分データが送信されていない場合、構成情報差分処理部2250は処理8000へ戻る。
処理8100において、差分データが送信された場合、構成情報差分処理部2250は差分データを受け取ったことを契機として、処理8200に進む。
なお、構成情報差分処理部2250は処理8000の後に処理8100を実行しているが、実際には処理8000の移行指示と処理8100の差分データの送信とを同時に監視してもよい。この場合は、構成情報差分処理部2250が差分データの反映を完了した後に、仮想Vol移行部II2260は、処理7200以降の処理を実施する。
次に、構成情報差分処理部2250は、前述したストレージシステムA 1000から取得した差分データに対して構成情報差分生成部1250が実行した方法と同じ方法によって、整合性チェック用データBを作成し、作成された整合性チェック用データBと構成情報差分生成部1250から送信された整合性チェック用データAとが一致するか否かを判定する(処理8200)。
処理8200において、整合性チェック用データが一致している場合には、構成情報差分処理部2250は処理8300へ進み、整合性チェック用データが一致していない場合には、構成情報差分処理部2250は処理8250へ進む。なお、整合性チェック用データはいわゆるハッシュ値であり、例えば、MD(Message Digest Algorithm)等によって生成される。
処理8200において、整合性チェック用データAとBとが一致しなかった場合には、構成情報差分処理部2250が受け取った差分データは構成情報差分生成部1250が生成した差分データと異なる可能性があるため、構成情報差分処理部2250は、構成情報差分生成部1250に差分データの再送を要求する(処理8250)。
そして、構成情報差分処理部2250は、構成情報差分生成部1250から再度差分データが送られてくるまで待機する(処理8260)。
前述した差分データの一致を判定する処理を実現するため、差分データには送信される毎に一意の識別子が与えられ、差分データはそれぞれ識別することができる。また、構成情報差分処理部2250は、一つの差分データについて処理8200、処理8250及び処理8260の反復回数を記憶しておき、所定の回数以上の反復が行われた場合には、エラーを通知するようにしてもよい。この場合、構成情報差分処理部2250は、管理IFにエラーを通知する指示を送信してよい。
また、構成情報差分処理部2250は、処理8250を実施した後、処理8260を実行せず、処理8100へ進んでもよい。
この場合は、処理8000において移行指示を受け取った後、差分データで未更新のものがあるか否か、及び、再送要求した差分データでまだ受け取っていないものあるか否かを確認し、前述した差分データがある場合には差分データが送信されるのを待ち、前記差分データを反映した後、処理7200へ進むとすればよい。
処理8200において、整合性チェック用データAとBとが一致した場合には、構成情報差分処理部2250は、図26に示した処理7100で取得した、ストレージシステムB 2000が備えるストレージシステムA 1000の仮想Vol管理テーブルC5700又はセグメント管理テーブルC5800に対し、差分データをコピーし、これらの各管理テーブルを更新する(処理8300)。
そして、構成情報差分処理部2250は、処理8000へ戻る。
図26の説明に戻る。図27に示した構成情報差分処理部2250の処理が終了した後、処理7020において、仮想Vol移行部II2260は、移行の指示を受け取り、処理7200へ進む。処理7200以降の処理については、図9に示した仮想Vol移行部I2210の処理7200以降と同じである。
以上説明したように、第2の実施形態によれば、ストレージシステムA 1000が備える仮想Vol管理テーブルA4200及びセグメント管理テーブルA4300の構成情報を、ストレージシステムB 2000が備える仮想Vol管理テーブルC5700及びセグメント管理テーブルC5800の構成情報を事前にコピーすることができるため、Pool移行指示から移行完了までの時間を短くすることができる。
さらに、移行が指示された時に、ストレージシステムB 2000は既にストレージシステムA 1000のセグメント管理テーブル及び仮想Volテーブルを備えていることから、特許文献1に示したホスト計算機3000が利用しているボリュームをオンラインで切り替える機構と連携して、ホスト計算機3000の業務プログラム3110の入出力を切断することなくオンラインにて、ストレージシステムA 1000からストレージシステムB 2000へボリュームを移行することも可能である。
また、本発明は、記憶領域が動的に割り当てられ、ホスト計算機に提供される仮想ボリュームを備えたストレージシステム以外の各種の装置にも適用することができる。