(57)【特許請求の範囲】
【請求項１】
第一のストレージノード及び第二のストレージノードを有するストレージシステムと、
前記ストレージシステムに格納されているデータにアクセスする計算機と、
前記ストレージシステム若しくは前記計算機に設定されているイニシエータ及びターゲットの対応関係を管理するネームサーバとを有するシステムにおいて、前記第一のストレージノードから前記第二のストレージノードへデータを移行する方法であって、
前記第一のストレージノードは、前記計算機に設定されている第一のイニシエータに対応する第一のターゲットが設定された第一の論理ユニットを有し、
前記第二のストレージノードは、第二の論理ユニットを有しており、
前記第一のストレージノードが、前記第一の論理ユニットに格納されているデータを前記第二のストレージノードに送信するステップと、
前記第二のストレージノードが、前記第一のストレージノードから受信したデータを前記第二の論理ユニットに格納するステップと、
前記第一のストレージノードが、前記第一のターゲットの情報を前記第二のストレージノードに送信するステップと、
前記第二のストレージノードが、前記第一のストレージノードから受信した前記第一のターゲットの情報を用いて、前記第二の論理ユニットにターゲットを設定するステップと、
前記第二のストレージノードが、前記ネームサーバに前記第二の論理ユニットに設定されたターゲットの情報を通知するステップと、
前記ネームサーバからの指示に基づいて、前記第一のイニシエータに対応付けられているターゲットが前記第二のストレージノードに設定されていることを検出した前記計算機から、前記第二の論理ユニットに対するアクセス要求を、前記第二のストレージノードが受領するステップを有し、
前記第一のストレージノードから前記第二のストレージノードに送信される前記第一のターゲットの情報は、前記第一のターゲットのターゲットネームと、前記第一のターゲットへのアクセスが許可されている前記第一のイニシエータを特定する情報と、を含み、
前記第二のストレージノードは前記第二の論理ユニットに、前記第一のターゲットのターゲットネームと同じターゲットネームを設定し、
前記第二のストレージノードは前記第二の論理ユニットにアクセス可能なイニシエータとして、前記第一のイニシエータを設定することを特徴とするデータ移行方法。
【請求項２】
請求項１記載のデータ移行方法であって、更に
前記第一のストレージノードが第二のイニシエータを設定するステップと、
前記第二のストレージノードが前記第二の論理ユニットに第二のターゲットを設定するステップと、
前記第二のストレージノードが前記第二のターゲットにアクセス可能なイニシエータとして前記第二のイニシエータを登録するステップとを有しており、
前記第一のストレージノードが、前記第一の論理ユニットに格納されているデータを前記第二の論理ユニットに送信する際、前記第二のイニシエータから前記第二のターゲットへデータがコピーされることを特徴とするデータ移行方法。
【請求項３】
請求項２記載のデータ移行方法であって、更に
前記第一のストレージノードが前記第二のイニシエータの情報を前記ネームサーバに通知するステップと、
前記第二のストレージノードが前記第二のターゲットの情報を前記ネームサーバに通知するステップとを有しており、
前記第一の論理ユニットに格納されているデータが前記第二の論理ユニットに送信される際、前記ネームサーバからの指示に基づいて前記第二のイニシエータに対応付けられているターゲットが前記第二のストレージノードに設定されていることを検出した前記第一のストレージノードが、前記第二のターゲットに対するアクセス要求を、前記第二のストレージノードに送信することを特徴とするデータ移行方法。
【請求項４】
請求項３記載のデータ移行方法であって、更に、
前記第一の論理ユニットに格納されているデータが前記第二の論理ユニットに送信された後、前記第一のストレージノードが前記第二のイニシエータを削除して、その旨を前記ネームサーバに通知するステップと、
前記第一の論理ユニットに格納されているデータが前記第二の論理ユニットに送信された後、前記第一のストレージノードが前記第一の論理ユニットに設定されている前記第一のターゲットを削除して、その旨を前記ネームサーバに通知するステップとを有することを特徴とするデータ移行方法。
【請求項５】
請求項４記載のデータ移行方法であって、更に、
前記第一の論理ユニットに設定されている前記第一のターゲットが削除された後、前記第一のストレージノードを撤去するステップを有することを特徴とするデータ移行方法。
【請求項６】
請求項１記載のデータ移行方法であって、更に、
前記第一のストレージノードが、前記第一の論理ユニットに格納されているデータを前記第二の論理ユニットに送信している間に、前記計算機から前記第一の論理ユニットに対するライトデータを受信するステップと、
受信したライトデータを前記第二の論理ユニットに送信するステップと、
受信したライトデータを前記第二の論理ユニットに送信した後、前記第一のストレージノードが前記計算機に完了報告を送信するステップとを有することを特徴とするデータ移行方法。
【請求項７】
請求項１記載のデータ移行方法であって、更に、
前記第一のストレージノードが、前記第一の論理ユニットに格納されているデータを前記第二の論理ユニットに送信している間に、前記計算機から前記第一の論理ユニットに対するライトデータを受信するステップと、
受信したライトデータが書き込まれる前記第一の論理ユニット上の記憶領域を示す情報を、前記第一のストレージノードが記録するステップと、
記録された情報に基づいて、受信したライトデータを前記第一のストレージノードが前記第二のストレージノードに送信するステップとを有することを特徴とするデータ移行方法。
【請求項８】
請求項１記載のデータ移行方法であって、
前記第一の論理ユニットの負荷は、前記第二の論理ユニットの負荷より高く、前記第一の論理ユニットに格納されているデータを前記第二の論理ユニットに移動することによって、前記第一のストレージノード及び前記第二のストレージノード間で負荷を分散することを特徴とするデータ移行方法。
【請求項９】
データを格納するストレージシステムであって、
第一のストレージノードと、
第二のストレージノードとを有しており、
前記第一のストレージノード及び前記第二のストレージノードは各々、
少なくとも１のディスクと、
ホストコンピュータ及び、ホストコンピュータとストレージシステム間のアクセスパスを管理しているネームサーバと通信し、前記少なくとも１のディスクへのデータの入出力を制御するコントローラとを有しており、
前記第一のストレージノードが有するディスクに存在する第一の論理ユニットには、ホストコンピュータが有する第一のイニシエータからアクセスされる第一のターゲットが設定されており、
前記第二のストレージノードが有するディスクには第二の論理ユニットが存在しており、
前記第一のストレージノードのコントローラは、前記第一の論理ユニットに格納されているデータと、前記第一のターゲットの情報を、前記第二のストレージノードに送信し、
前記第二のストレージノードのコントローラは、前記第一のストレージノードから受信したデータを前記第二の論理ユニットに格納し、
前記第一のストレージノードから受信した前記第一のターゲットの情報を用いて前記第二の論理ユニットにターゲットを設定し、
前記ネームサーバからの指示に基づいて、前記第一のイニシエータに対応付けられているターゲットが前記第二のストレージノードに設定されていることを検出した前記ホストコンピュータから、前記第二の論理ユニットに対するアクセス要求を受領し、
前記第一のストレージノードのコントローラが前記第二のストレージノードに送信する前記第一のターゲットの情報は、前記第一のターゲットのターゲットネームと、前記第一のターゲットへのアクセスが許可されている前記第一のイニシエータを特定する情報と、を含み、
前記第二のストレージノードのコントローラは、前記第二の論理ユニットに、前記第一のターゲットのターゲットネームと同じターゲットネームを設定し、
前記第二のストレージノードのコントローラは、受信したイニシエータの情報に基づいて、前記第二の論理ユニットにアクセス可能なイニシエータとして、前記第一のイニシエータを登録することを特徴とするストレージシステム。
【請求項１０】
請求項９記載のストレージシステムであって、
前記第一のストレージノードのコントローラは、前記第一の論理ユニットに格納されているデータを前記第二のストレージノードに送信する前に、該第一のストレージノードに第二のイニシエータを設定し、
前記第二のストレージノードのコントローラは、前記第二の論理ユニットに第二のターゲットを設定し、該第二のターゲットにアクセス可能なイニシエータとして前記第二のイニシエータを登録し、
前記第一のストレージノードのコントローラと前記第二のストレージノードのコントローラとは、前記第二のイニシエータから前記第二のターゲットへ、前記第一の論理ユニットに格納されているデータをコピーすることを特徴とするストレージシステム。
【請求項１１】
請求項１０記載のストレージシステムであって、
前記第一のストレージノードのコントローラは、前記第二のイニシエータの情報を前記ネームサーバに通知し、
前記第二のストレージノードのコントローラは、前記第二のターゲットの情報を前記ネームサーバに通知し、
前記第一のストレージノードのコントローラは、前記第二のイニシエータに対応付けられている前記第二のターゲットの情報を前記ネームサーバから通知され、通知に基づいて前記第二のターゲットにアクセスすることを特徴とするストレージシステム。
【請求項１２】
請求項１１記載のストレージシステムであって、
前記第一のストレージノードのコントローラは、前記第一の論理ユニットに格納されているデータが前記第二の論理ユニットに送信された後、前記第二のイニシエータを削除して、その旨を前記ネームサーバに通知し、
更に、前記第一の論理ユニットに設定されている前記第一のターゲットを削除して、その旨を前記ネームサーバに通知することを特徴とするストレージシステム。
【請求項１３】
請求項９記載のストレージシステムであって、
前記第一のストレージノードのコントローラは、前記第一の論理ユニットに格納されているデータを前記第二の論理ユニットに送信している間に、前記ホストコンピュータからライトデータを受信すると、受信したライトデータを前記第二の論理ユニットに送信し、その後前記ホストコンピュータに完了報告を送信することを特徴とするストレージシステム。
【請求項１４】
請求項９記載のストレージシステムであって、
前記第一のストレージノードのコントローラは、前記第一の論理ユニットに格納されているデータを前記第二の論理ユニットに送信している間に、前記ホストコンピュータからライトデータを受信すると、受信したライトデータが書き込まれる前記第一の論理ユニット内の記憶領域を記録しておき、記録された情報に基づいて受信したライトデータを前記第二のストレージノードに送信することを特徴とするストレージシステム。
【請求項１５】
請求項９記載のストレージシステムであって、更に、
前記第一のストレージノードと前記第二のストレージノードとが接続されるスイッチと、
前記第一のストレージノードに、前記第一の論理ユニットに格納されているデータを前記第二の論理ユニットに移行するよう指示する、管理装置とを有しており、
前記第一のストレージノードのコントローラは、前記管理装置からの指示に基づいて、
前記第一の論理ユニットに格納されているデータと、前記第一のターゲット情報を、前記第二のストレージノードに送信することを特徴とするストレージシステム。
【請求項１６】
ホストコンピュータと、アクセス元であるイニシエータとアクセス先であるターゲットとの対応関係を管理するネームサーバとに接続されるストレージシステムであって、
データを格納している論理ユニットと、
前記論理ユニットへのデータの入出力を制御している第一のコントローラと、
第二のコントローラと、
前記論理ユニットを、前記第一のコントローラ及び前記第二のコントローラと接続するディスク接続装置とを有しており、
前記第一のコントローラは、前記ホストコンピュータに設定されたイニシエータと対応付けられた、前記第一の論理ユニットに対して設定されているターゲットを管理しており、
前記第一のコントローラは、前記第二のコントローラに前記ターゲットの情報を送信し、
前記第二のコントローラは、前記第一のコントローラから受信した情報に基づいて、前記第一の論理ユニットに対してターゲットを設定してこれを管理し、
前記ネームサーバからの通知に基づいて、前記イニシエータと対応づけられているターゲットが前記第二のコントローラで管理されていることを検出した前記ホストコンピュータからのアクセス要求を、前記第二のコントローラが受領して、受領したアクセス要求に基づいて前記第一の論理ユニットに対する入出力を制御し、
前記第一のコントローラが前記第二のコントローラに送信する前記ターゲットの情報は、前記ターゲットのターゲットネームと、前記ターゲットに対するアクセスが許可されているイニシエータを特定する情報と、を含み、
前記第二のコントローラは前記第一の論理ユニットに対して前記第一のコントローラから受信したターゲットネームを設定して、該ターゲットネームを管理し、
前記第二のコントローラは前記第一のコントローラから受信した情報に基づいて、前記イニシエータを前記第二のコントローラが設定したターゲットに対するアクセスを許可するイニシエータとして登録することを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムで用いられる記憶装置システムに関する。
【背景技術】
【０００２】
第一の記憶装置システムから第二の記憶装置システムにデータを移行する技術が特許文献１に記載されている。
【０００３】
特許文献１によれば、ホストコンピュータが第二の記憶装置システムに接続されると、第二の記憶装置システムが第一の記憶装置システムへリード要求を出すことによりデータが第一の記憶装置システムから第二の記憶装置システムへコピーされる。第二の記憶装置システムにはコピーがどこまで完了したかを記録するコピーポインタがあり、データ移行の進行状況を知ることができる。
【０００４】
データ移行中にホストコンピュータから発行されたI/O要求は、第二の記憶装置システムが受け付ける。例えばホストコンピュータからデータ移行中にリード要求があった場合、第二の記憶装置システムはコピーポインタを参照し、要求のあったデータが既に第二の記憶装置システムに存在するかどうかを確認する。第二の記憶装置システムにデータが存在する場合には、第二の記憶装置システムはそのデータをホストコンピュータに渡す。第二の記憶装置システムにデータが存在しない場合には、第二の記憶装置システムは第一の記憶装置システムからデータを読み出して、これをホストコンピュータに渡す。
【０００５】
【特許文献１】特開２０００−１８７６０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１においてはまず、第一の記憶装置システムとホストコンピュータとの間の接続を遮断し、ホストコンピュータを第二の記憶装置システムと接続しなおす。そしてその後、第一の記憶装置システムから第二の記憶装置システムへデータを移行する。一旦ホストコンピュータが第二の記憶装置システムに接続されると、その後はホストコンピュータは第二の記憶装置システムにI/O要求を発行する。
【０００７】
しかしながら、特許文献１にはホストコンピュータと記憶装置システムとの間のアクセスパスの変更方法、特に第二の記憶装置システムにホストコンピュータのアクセス先を設定する方法についての開示はない。
【０００８】
データを移行する場合、データ移行元に設定されているデータアクセスに関する情報をデータ移行先に引き継ぐことができれば、ホストコンピュータはデータ移行元にアクセスしていた時と同様の条件でデータ移行先にもアクセスすることができる。従って、データ移行の際、データアクセスに関する情報もデータ移行元からデータ移行先へ引き継ぐことが望まれる。
【課題を解決するための手段】
【０００９】
ストレージシステムは、ネットワークを介して、計算機と、イニシエータとターゲットとの対応関係を管理するネームサーバとに接続される。ストレージシステムは、第一のストレージノードと第二のストレージノードとを有している。第一のストレージノードには、計算機に設定されている第一のイニシエータと対応付けられている第一のターゲットが設定された、第一の論理ユニットが存在する。第二のストレージノードには第二の論理ユニットが存在する。
【００１０】
第一の論理ユニットから第二の論理ユニットへデータを移行する際、第一のストレージノードは第一の論理ユニットに格納されているデータを第二のストレージノードに送信し、第二のストレージノードが受信したデータを第二の論理ユニットに格納する。また、第一のストレージノードは、第一のターゲットの情報も第二のストレージノードに送信し、第二のストレージノードは受信した第一のターゲットの情報を用いて、第二の論理ユニットにターゲットを設定する。
【００１１】
計算機はネームサーバからの指示に基づいて、自身に設定されているイニシエータと対応付けられているターゲットが第二のストレージノードに設定されていることを検出し、第二の論理ユニットに対するアクセス要求を発行し、第二のストレージノードはこれを受領する。
【発明の効果】
【００１２】
データ移行の際、移行対象のデータだけでなく、データアクセスに関する情報をも移行元から移行先へ引き継ぐことができる。
【発明を実施するための最良の形態】
【００１３】
以下に本発明の実施形態の一例を示す。尚、以下に説明する実施形態は一例であってこれによって本発明が限定されるものではない。
【００１４】
以降各図において、構成部位名および構成部位番号に付加したa、b、c、・・・等の小文字アルファベットは同一構成の構成部位が複数あるとき、それらを区別する際に用いるものである。以下の説明においては、同一構成を有する複数の構成部位を区別する必要が無い場合は、この小文字アルファベットを省略して用い、各構成部位を特定する必要があるときには小文字アルファベットを付加した名称および番号で説明する。
【実施例１】
【００１５】
(1)システム構成例（図１）
図１は本実施形態のシステム構成例を示す図である。
【００１６】
計算機システムは、複数のストレージノード（以下SNと略記する）1、複数のホストコンピュータ（以下、ホストと称する）2、ネットワーク30、ネットワーク30に対し複数のネットワークノード（ネットワークノードとは、SN１、ホスト2、管理装置4、ネームサーバ5等ネットワーク30に接続される装置のことである。）を接続するためのスイッチ3、管理装置4、SN1とホスト2の名前（ネーム）管理および論理的接続関係を管理するネームサーバ5を有する。管理装置4は複数のSN１から構成されるストレージシステム1000を管理する装置である。なお、ネットワーク30は、スイッチ3とスイッチ3にホスト2、SN1、管理装置4、ネームサーバ5等を接続する接続線との総称であり、図1では波線の楕円で示している。
【００１７】
SN1は、SN1に接続するディスクを制御しホスト2からのアクセス要求を実行するコントローラ（以下CTLと略記する）10と、ホストからアクセスされる論理的なディスク装置である論理ユニットx（以下LUxと略記する）12xを有する。ここで、xは論理ユニットLUの識別番号でありxは1以上の整数である。
【００１８】
ホスト2はCPU、メモリ、及びネットワーク30に接続するためのネットワークコントローラを有する計算機であり、メモリ内にイニシエータ管理テーブル2112を有する。イニシエータ管理テーブル2112に関しては後述する。
【００１９】
管理装置4もホスト2と同様、CPU、メモリ、及びネットワーク30に接続するためのネットワークコントローラを有する計算機であり、メモリには後述する構成管理プログラム4122、LU管理テーブル1111’、イニシエータ管理テーブル2112若しくは1113、ターゲット管理テーブル1112が格納されている。更に管理装置4はキーボボードやマウス等の入力装置、ディスプレー等の出力装置も有している。
【００２０】
(2)ストレージノード（SN）構成例（図２）
図２は、SN1のハードウェア構成の一例を示す図である。
【００２１】
SN1はコントローラ（CTL）10と、CTL10にファイバチャネル1030を介して接続される複数のディスク120yを有する。CTL10は複数のディスク120yに対する入出力を制御する。
【００２２】
CTL10は、SN1全体の制御を司るCPU100、CPU100が実行する制御プログラムや制御データを格納し、またディスクアクセスの高速化のためのキャッシュとしても使用されるメモリ101、ネットワーク30に接続するためのネットワークコントローラ102、ディスクと接続するファイバチャネル（以下FCと略記する）1030を制御するFCコントローラ103、CPU100とメモリ101間のデータ若しくはプログラムの転送、ネットワークコントローラ102とメモリ101間のデータ転送、およびFCコントローラ103とメモリ101間のデータ転送を制御するブリッジ104を有する。
【００２３】
(3)メモリ構成例（図３）
図３はSN1が有するメモリ101の構成の一例を示す図である。
【００２４】
メモリ101は、キャッシュ領域110、制御データ領域111、制御プログラム領域112により構成されている。
【００２５】
キャッシュ領域110は、ホストからのディスクアクセス高速化のため、ディスク120y内に格納されるデータ、若しくはディスク120yに格納されているデータのコピーを一時的に保管するディスクキャッシュ（以下単にキャッシュと称する）を構成する領域である。
【００２６】
制御データ領域111は、CPU100が制御プログラムを実行する際に参照する各種テーブル等を格納する領域である。制御データ領域111には、複数のSN1で構成されたストレージシステム1000の構成情報が登録されているシステム構成管理テーブル1110、SN1が備えるLU12xの構成情報が登録されているLU管理テーブル1111、LU12xに設けられた論理的アドレスであるターゲットネーム（以下単にTarget若しくはターゲットとも称する）が登録されているTarget管理テーブル1112、及びLU12xにアクセスするアクセス元の論理アドレスであるイニシエータネーム（以下単にInitiator若しくはイニシエータとも称する）が登録されているInitiator管理テーブル1113が格納されている。
【００２７】
尚、ターゲットネーム若しくはイニシエータネームとしては、例えばiSCSIプロトコルを用いるシステムにおけるiSCSIネーム、FCシステムにおけるWWN(World Wide Name)等が該当する。しかしターゲットネームはアクセス先に割り振られたグローバルに一意であり作成されてから削除されるまで変化しない識別子であればこれらに限られることはなく、同様にイニシエータネームもアクセス元に割り振られたグローバルに一意であり作成されてから削除されるまで変化しない識別子であればこれらに限られることはない。尚、アクセス先若しくはアクセス元を識別する情報としてターゲットアドレス若しくはイニシエータアドレスが用いられる場合もある。ターゲットアドレスとしてはFCプロトコルを用いるシステムにおけるDestination ID、イニシエータアドレスとしてはFCプロトコルを用いるシステムにおけるSource ID等があり、勿論これに限られることはない。ターゲットネーム及びターゲットアドレスは共にアクセス先を識別する識別情報であることに変わりはなく、イニシエータネーム及びイニシエータアドレスは共にアクセス元を識別する識別情報であることに代わりはないので、ターゲットネームの代わりにターゲットアドレスを用いたり、イニシエータネームの代わりにイニシエータアドレスを用いることも可能である。尚、以下ターゲットネームとターゲットアドレスを区別することなく、「ターゲットネーム」と呼ぶこととする。またイニシエータに関しても同様である。
【００２８】
制御プログラム領域112は、CPU100が実行する制御プログラムを格納する領域である。制御プログラム領域112には、制御プログラムを実行するための環境となる基本プログラムであるオペレーティングシステムプログラム1120、TCP/IPプロトコルを用いてネットワーク30を介したデータの送受信を実行するTCP/IPプログラム1121、ホスト2とSN1の間をiSCSIプロトコルで接続するためのiSCSI制御プログラム1122、イニシエータであるホスト2からiSCSIのターゲットであるLU12xへのアクセスを受領する際に、ホスト2からのコマンドの受領、受領したコマンドの解釈等のターゲット処理を制御するターゲット制御プログラム1123、SN1が備える複数のディスク120yから構成されるRAID（Redundant Arrays of Inexpensive Disks）を制御するためのRAID制御プログラム1124、キャッシュ領域110に構成されるディスクキャッシュを管理し制御するためのキャッシュ制御プログラム1125、単体のディスク120yに対するコマンド生成等のディスク制御処理を行うディスク制御プログラム1126、FCコントローラ103を制御しFC経由でディスク120yとコマンドやデータ等の送受信を行うFC制御プログラム1127、複数のディスク120yからRAIDを構成してそこから論理的ボリュームであるLU12xを構成するLU制御プログラム1128、SN1間でLU12xのデータを移動するためのマイグレーション処理を行うマイグレーションプログラム1129、マイグレーション処理によってLU12xのデータを他のSN1に転送する際に自SN1がiSCSIのイニシエータとして動作するための制御を実行するイニシエータ制御プログラム1130、iSCSIプロトコル仕様に基づきネームサーバ5との間でネーム管理のための通信を行う通信プログラム1131が格納されている。
【００２９】
なお本実施形態では、ホスト2とSN1を接続するネットワーク30としてIPネットワークを、ネットワークプロトコルとしてTCP/IPプロトコルを、ホスト2とSN1間のデータプロトコルとしてブロック型I/OインタフェースであるiSCSIプロトコルを用いるものと想定しているが、本発明はこれに限られるものではない。
【００３０】
(4)LU構成例（図４）
図４はLU12xの構成の一例を示す図である。
【００３１】
本実施形態のSN1は3台のディスク1200、1201、1202を備えていると仮定する。尚、SN1が有するディスク120yの数はこれに限られることはなく、1台以上であれば何台であっても良い。
【００３２】
図4(a)はRAIDグループ（以下RGとも称する。）の構成例を示す図である。
【００３３】
３台のディスク1200、1201、1202によりRAID5型のRAIDグループ12が構成されており、そのストライプサイズはSブロックである。ここでブロックとは、本実施形態ではSCSIプロトコル仕様で定義された論理ブロックのことであり、一般に512バイトのディスクセクタを1つの論理ブロックとして定義することが多い。そのほかのブロックサイズをとることももちろん可能である。RAIDグループ12においては、データはSブロック枚に隣のディスクに分散配置される。ストライプ列は各々異なるディスク内に存在する３つの記憶領域から構成され、そのうち１つには他の2つの記憶領域内に格納されたデータから排他的論理和を計算することにより生成されたパリティデータが格納される。すなわち、
P0  ＝  D0  ＋  D1  （式１）    （＋は排他的論理和を表す）
のごとくパリティが計算される。
【００３４】
このように構成されたRAIDグループ（RG）12には、２つの論理ユニットLU0、LU1が構成される。図4(b)は論理ユニットの構成例を示す図である。LU0(120)は容量kブロック、LU1(121)は容量nブロックの論理ユニットである。RAIDグループ内での論理ブロックアドレス（以下RG LBAと称する）はLU0が0からk-1まで、LU1がkから(k+n-1)までとなる。なお、ひとたびLUが構築されると、各LUはホスト2からはLU毎にローカルなLBA（Local LBAと称する）を用いてアクセスされ、それぞれのLUがあたかも独立したディスクのように振る舞うことができる。すなわちLU0（120）とLU1（121）のLocal LBAは、それぞれ独立に0から始まり、総容量-1である(k-1)若しくは(n-1)が最終アドレスとなる。
【００３５】
(5)LU管理テーブルの構成例（図５）
図５はSN１のメモリ101に格納されているLU管理テーブル1111の構成例を示す図である。LUはLU番号を示す。RGはLUが構築されているRAIDグループの識別情報を示す。Start RG LBAはLUが構築されているRG内におけるLUの先頭RG LBAを示す。LENはLUの容量（単位はブロック）を示す。Initiatorは当該LUへのアクセスが許可されているイニシエータ（例えばホストに設定されているイニシエータ）のイニシエータネームを示す。Targetは当該LUに割り当てられているターゲットネームを示す。
【００３６】
図５(a)はSNa（1a）のLU管理テーブル1111aの一例を示している。LU0aはRG0aに存在し、Start RG LBAが0、容量がk、許可されたイニシエータがInit-a0のネームを持つホスト（Host a）2a、ターゲットネームがTarg-a0となる。同様にLU1aは、RG0aに存在し、Start RG LBAがk、容量がn、許可されたイニシエータがInit-b0のネームを持つホスト（Host b）2b、ターゲットネームがTarg-a1となる。
【００３７】
ここで、一つのLUには一つのターゲットが割り当てられる。一方、一つのターゲットに対して複数のイニシエータがアクセスを許可される場合がある。LU管理テーブルのInitiatorの欄にイニシエータネームが登録されると、ターゲット制御プログラム1123は、登録されたイニシエータネームを有するイニシエータ以外からの対応するLU12xへのアクセスを抑止する。1つのLU12xに対して複数のイニシエータからのアクセスを許可する場合には、LU管理テーブル1111のInitiatorの欄に複数のエントリが作成され、複数のイニシエータネームが登録される。尚、LU12xに対してアクセス制限をかけない場合、すなわち全てのイニシエータに対してLU12xへのアクセスを許可する場合には、このLU12xに対応するInitiatorにはネームを登録しない（NULLとする）。イニシエータネームとターゲットネームの対応付けの詳細については後述する。
【００３８】
尚、管理装置4もメモリ内にLU管理テーブル1111'を有している。管理装置4が有するLU管理テーブル1111'はネットワーク30に接続している各SN1が有するLU管理テーブル1111を統合したものであり、例えば図15(c)に示すように各SN１が有するLU管理テーブルに更にSN１の識別情報が加えられたものである。
【００３９】
(6)ネームサーバの構成例（図６）
図６はネームサーバ5の構成の一例を示す図である。ネームサーバ5は、ネームサーバ5の全体制御を司るCPU500、CPU500が実行する制御プログラムおよび制御データを格納するメモリ501、ネットワーク30に接続するためのネットワークコントローラ502、CPU500とメモリ501間のデータおよびプログラムの転送や、ネットワークコントローラ502とメモリ501間のデータ転送を制御するブリッジ504を有する。
【００４０】
メモリ501は、制御データ領域511、制御プログラム領域512を有する。
【００４１】
制御データ領域511は、CPU500が制御プログラムを実行する際に参照する各種テーブル等を格納する領域である。制御データ領域511には、iSCSIにおけるイニシエータおよびターゲットの名前、及びイニシエータとターゲット間の接続関係が登録されるネーム管理テーブル5111が格納されている。
【００４２】
制御プログラム領域512は、CPU500が実行する制御プログラムを格納する領域である。制御プログラム領域512には、制御プログラムを実行するための環境となる基本プログラムであるオペレーティングシステムプログラム5120、TCP/IPプロトコルを用いてネットワーク30を用いたデータの送受信を実行するTCP/IPプログラム5121、ネットワーク30に接続するiSCSIノード（すなわちホスト2およびストレージノードSN1）のネーム管理およびイニシエータとiSCSIノード間の対応関係を制御するネーム管理プログラム5122、iSCSIプロトコル仕様に基づき各イニシエータ（例えばホスト2）およびターゲット（例えばSN1）のネーム管理のための通信を行う通信プログラム5123が格納される。
【００４３】
なお本実施形態では、ネームサーバ5としてiSCSIプロトコル仕様のiSNS（iSCSI Name Server）を想定しているが、本発明の実施に際してはiSNS以外のネームサーバ仕様を用いてネームサーバを構築しても構わない。
【００４４】
(7)ネーム管理テーブルの構成例（図７）
図７は、ネームサーバ5のメモリ501に格納されているネーム管理テーブル5111の一例を示す図である。ネーム管理テーブル5111には、イニシエータ管理テーブル（2112若しくは1113）とターゲット管理テーブル1112が含まれる。
【００４５】
図７に示すイニシエータ管理テーブル2112において、Initiatorは同テーブルのエントリが管理するイニシエータのネーム、Entityはイニシエータを持つ装置の実体を特定する識別子、Portalは同イニシエータが存在するポータル、Portalグループは同ポータルが属するポータルグループをそれぞれ示す。
【００４６】
図７に示すターゲット管理テーブル1112において、Targetは同テーブルのエントリが管理するターゲットのネーム、Initiatorは同ターゲットへのアクセスが許可されているイニシエータのネーム、Entityはターゲットを持つ装置の実体を特定する識別子、Portalは同ターゲットが存在するポータル、Portalグループは同ポータルが属するポータルグループをそれぞれ示す。
【００４７】
尚、ネーム管理テーブル5111に含まれるイニシエータ管理テーブルは、イニシエータが存在する装置がメモリ内に保持しているイニシエータ管理テーブルと同じものである。同様に、ネーム管理テーブル5111に含まれるターゲット管理テーブルは、ターゲットが存在する装置がメモリ内に保持しているターゲット管理テーブルと同一のものである。更に管理装置4もメモリ内にネームサーバ5が有するイニシエータ管理テーブル及びターゲット管理テーブルと同様のイニシエータ管理テーブル及びターゲット管理テーブルを有している。
【００４８】
例えば、図7(a)に示すイニシエータ管理テーブル2112a及び2112bは各々、Host a (2a)若しくはHost b(2b)が有するイニシエータに関するイニシエータ管理テーブルであり、Host a(2a)は図7(a)に示すイニシエータ管理テーブル2112aと同様のイニシエータ管理テーブル2112aを、Host b (2b)は図7（a）に示すイニシエータ管理テーブル2112bと同様のイニシエータ管理テーブル2112bを各々メモリに有している。同様に、図7(a)に示すイニシエータ管理テーブル1113はSNa(1a)に存在するイニシエータに関するイニシエータ管理テーブルであり、SNa(1a)はメモリ101内に図7(a)に示すイニシエータ管理テーブル1113と同様のInitiator管理テーブル1113を有している。更に、図7(a)に示すターゲット管理テーブル1112a及び1112bは各々、SNa(1a)若しくはSNb(1b)が有するターゲットに関するターゲット管理テーブルであり、SNa(1a)はターゲット管理テーブル1112aと同様のTarget管理テーブル1112をSNb(1b)はターゲット管理テーブル1112bと同様のTarget管理テーブル1112を各々メモリ101内に格納している。
【００４９】
従って、ネームサーバ5は、ネットワーク30に接続されている各イニシエータのイニシエータ管理テーブル、およびネットワーク30に接続されている各ターゲットのターゲット管理テーブルを、ネーム管理テーブル5111を用いて一元管理していることになる。
【００５０】
図７に戻り、図７(a)は一例として３つのイニシエとタ−ターゲットの組を示している。
【００５１】
第一の組は、イニシエータ Init-a0とターゲットTarg-a0の組である。イニシエータInit-a0はホストHost a(2a)のポータルIa0に存在し、ポータルグループIPGa0に属している。ターゲットTarg-a0はSNa（1a)のポータルTa0に存在し、ポータルグループTPGa0に属し、イニシエータInit-a0にアクセスを許可している。
【００５２】
第二の組は、イニシエータ Init-b0とターゲットTarg-a1の組である。イニシエータInit-b0はホストHost b(2b)のポータルIb0に存在し、ポータルグループIPGb0に属している。ターゲットTarg-a1はSNa（1a）のポータルTa1に存在し、ポータルグループIPGa1に属し、イニシエータInit-b0にアクセスを許可している。
【００５３】
第三の組は、イニシエータ Init-SNa1とターゲットTarg-b0の組である。イニシエータInit-SNa1はSNa(1a)のポータルISNa1に存在し、ポータルグループIPGSNa1に属している。ターゲットTarg-b0はSNb(1b)のポータルTb0に存在し、ポータルグループIPGb0に属している。
【００５４】
ここでポータルとは、ホスト2もしくはSN1のネットワークコントローラが備える、物理ポートのIPアドレスとTCPポート番号の対で構築された、論理的なポートのことである。同一の物理ポートに複数のTCPポートをそなえれば複数のポータルを備えることができる。ポータルグループは複数のポータルを一つの集合体として単一の通信路として使用するためのグループのことである。以下本実施形態ではポータルグループについてはグループ名以上のことについては言及しない。
【００５５】
尚、イニシエータとターゲットの組は、ネットワーク30に接続されたイニシエータとターゲットの間で構築されネーム管理テーブル5111で管理される。
【００５６】
(8)SNの増設およびLU移動処理の一例
ストレージシステム1000に新規にストレージノード1を増設し、旧ストレージノード1のLU12xに格納されているデータを新規SN1に移動することで、SN1間で負荷バランスを均衡化する処理について説明する。
【００５７】
図８は、ストレージシステム1000にSN1を増設して、既存SN1のLU12x内のデータを増設されたSN１に移動する処理の一例を示す概略説明図である。なお、図８は、図１のシステムが構成される際の途中の段階の状態を示す図となっていることに注意されたい。
【００５８】
ストレージシステム1000内に、最初はSN1としてSNa(1a)だけが存在しSNb（1b）は存在しない状態を仮定する。尚システム内にはホスト2としてHost a(2a)とHost b(2b)の２台が存在するものとする。
【００５９】
Host a(2a)はSNa(1a)のLU0a(120a)を、Host b(2b)はSNa(1a)のLU1a(121a)をそれぞれアクセスしている。
【００６０】
Host a(2a)はイニシエータを備えており、このイニシエータはイニシエータネームInit-a0としてHost a(2a)が有するイニシエータ管理テーブル2112a及びネームサーバ5が有するネーム管理テーブル5111に登録されている。同様にHost b(2b)はイニシエータを備えており、このイニシエータはイニシエータネームInit-b0として、Host b(2b)が有するイニシエータ管理テーブル2112b及びネームサーバ5が有するネーム管理テーブル5111に登録されている。
【００６１】
SNa(1a)のLU0a(120a)は、SNa(1a)が有するTarget管理テーブル1112及びネームサーバ5が有するネーム管理テーブル5111にターゲットネームTarg-a0として登録されており、更にTarget管理テーブル1112及びネーム管理テーブル5111においてTarg-a0へのアクセスが許可されているイニシエータとしてInit-a0が登録されている。同様にSNa(1a)のLU1a(121a)は、SNa(1a)が有するTarget管理テーブル1112及びネームサーバが有するネーム管理テーブル5111にターゲットTarg-a1として登録されており、更にTarget管理テーブル1112及びネーム管理テーブル5111においてTarg-a1へのアクセスが許可されているイニシエータとしてInit-b0が登録されている。
【００６２】
従ってイニシエータとターゲットの組としては、Init-a0 と Targ-a0、Init-b0 と Targ-a1の２つの組が成立している。係る状態におけるネーム管理テーブル5111の状態を図7(a)に示す。Target管理テーブル1112及びネーム管理テーブル5111へのイニシエータの登録は、iSCSIのプロトコルの仕様に従って行われる。尚、既にHost a(1a)はLU0a(120a)を、Host b(1b)はLU1a(121a)をアクセスできる状態で動作しているとする。即ち、SNa(1a)のメモリ101内に格納されているLU管理テーブル1111には、図5（a）に示すようにLU0a(120a)のターゲットネームとしてTarg-a0が、LU0a(120a)へのアクセスが許可されているイニシエータとしてHost a(1a)に存在するInit-a0が登録されており、同様にLU1a(121a)のターゲットネームとしてTarg-a1が、LU1a(121a)へのアクセスが許可されているイニシエータとしてHost b(1b)に存在するInit-b0が登録されている。
【００６３】
ここでSNa(1a)が過負荷となった等の理由により、LU1a(121a)に格納されているデータを、新規にストレージシステム1000に増設されるSNb(1b)に移動する処理について、図8及び図9を用いて説明する。図9は、ストレージシステム1000に新規SN1を増設して、既存のSN１に存在するLU12xから新規SN１が有するLU12xへデータを移行する処理の一例を示すフローチャートである。
【００６４】
(9)ストレージノードSNbの増設（図９ステップ9001）
まずはじめにSNb(1b)をスイッチ３に接続して、ストレージシステム1000にSNb(1b)を増設する（図９ステップ9001）。SNb(1b)は、SNa(1a)が有するLU1a(121a)内のデータを格納するための十分な記憶領域を備えているものとする。
【００６５】
(10)移動元LUの調査（図９ステップ9002）
管理装置4のCPUは構成管理プログラム4122を実行して（以下、CPUがプログラムを実行することで処理が実行される場合、単に「プログラムが処理を実行する」、と称する。）、移動元のLUであるLU1a(121a)の情報獲得操作を行う（ステップ9002）。
【００６６】
具体的には、構成管理プログラム4122は、SNa(1a)に対してLU1a(121a)の構成情報を要求し、要求を受信したSNa(1a)のLU制御プログラム1128はLU管理テーブル1111を参照してLU1a(121a)の構成情報を管理装置4に送信する。この構成情報には、SNa(1a)のLU管理テーブル1111に登録されている情報や、LU1a(121a)が構築されているRGの構成（RAID構成）が含まれる。構成管理プログラム4122は、SNa(1a)から受信した情報を自身のメモリ内に格納されているLU管理テーブル1111’にSNa(1a)の識別情報と共に登録し、更に受信した情報に基づいて、LU1a(121a)がRAID5構成のRAIDグループに構成された容量nブロックのLUであることを特定する。
【００６７】
尚管理装置4が既に、ストレージシステム1000内の各SN1について、LU管理テーブル1111に登録されている情報や、各LUのRAID構成を把握しており、管理装置4自身が有するLU管理テーブル1111'を用いて構成情報を管理している場合には、構成管理プログラム4122はステップ9002を実行する必要はない。
【００６８】
(11)移動先LUの構築とターゲット登録（図９ステップ9003）
次に管理装置4の構成管理プログラム4122は、新規に増設されたSNb(1b)の適切なRAIDグループに、移動元のLU1a(121a)と同一容量のLU0b(120b)を構築するよう、SNb(1b)に指示する。尚、適切なRAIDグループとしては例えば、LU1a(121a)と同じRAID構成を有するRAIDグループが考えられる。
【００６９】
更に構成管理プログラム4122は、SNb(1b)内の指定する物理ポートとポート番号のポータルTb0、ポータルグループTPGb0に対して、新たに構築されるLU0b(120b)をターゲットとして設定するよう、SNb(1b)に指示を発行する。
【００７０】
SNb(1b)はこの指示を受領すると、LU制御プログラム1128がLU0b(120b)を構築し、ポータルTb0、ポータルグループTPGb0にtargetネーム：targ-b0のターゲットを作成して、図５（ｂ）に示すようにLU管理テーブル1111bに、targetネーム：targ-b0、LU：LU0b、RG：RG0b、Start RG LBA：0、LEN：nを登録する。
【００７１】
またSNb(1b)の通信プログラム1131はネームサーバ5に対して、新たになターゲットをネームサーバ5に登録するよう依頼する要求を送信する。ネームサーバ5はSNｂ(1b)からのこの要求を受信し、ネーム管理テーブル5111に新たなターゲットの情報として図７(a)に示すターゲット管理テーブル1112bを登録する。尚、この時点では、ターゲット管理テーブル1112bには、targetネーム：targ-b0、Entity：SNb、Portal：Tb0、PortalGroup：TPGb0が登録されており、Initiatorの欄は空欄である。Initiatorの欄は後述のステップ9005において登録される。
【００７２】
SNb(1b)のターゲット制御プログラム1123は自身のメモリ101内のTarget管理テーブル1112にも、ネームサーバ5のネーム管理テーブル5111に格納されたターゲット管理テーブル1112bと同様の内容、即ちtargetネーム：targ-b0、Entity：SNb、Portal：Tb0、PortalGroup：TPGb0を登録する（図9ステップ9003）。
【００７３】
以上の様に、SNb(1b)によるLU0b(120b)の構築、およびターゲットtarg-b0の登録が実行される。LU0b(120b)の構成情報（LU0b(120b)が属するRAIDグループのRAID構成やSNb(1b)のLU管理テーブルに登録されたLU0b(120b)の情報）と、targ-b0のターゲット管理テーブル1112の内容は、SNb(1b)から管理装置4の構成管理プログラム4122に送信され、管理装置4が有するLU管理テーブル1111'及びターゲット管理テーブル1112にも登録される。
【００７４】
(12)移動元SNへのイニシエータの構築（図９ステップ9004）
次に、管理装置4の構成管理プログラム4122は、移動元のSNa(1a)に対し、指定する物理ポートとポート番号のポータルISNa1、ポータルグループIPGSNa1に、イニシエータを構築するよう指示を発行する。
【００７５】
SNa(1a)はこの指示を受領し、イニシエータ制御プログラム1130が、ポータルISNa1、ポータルグループIPGSNa1にinitiatorネーム：init-SNa1のイニシエータを作成する。そして通信プログラム1131はネームサーバ5に対し、このイニシエータをネームサーバに登録するよう依頼する。
【００７６】
ネームサーバ5はこの依頼を受領し、ネーム管理テーブル5111に新たなイニシエータの情報として図７(a)に示すイニシエータ管理テーブル1113SNa1を登録する。イニシエータ管理テーブル1113SNa1には、initiatorネーム：init-SNa1、Entity：SNa、Portal：ISNa1、PortalGroup：IPGSNa1が登録されている。
【００７７】
尚、SNa(1a)のイニシエータ制御プログラム1130は自身のメモリ101内のInitiator管理テーブル1113にも、ネームサーバ5のネーム管理テーブル5111に登録したイニシエータ管理テーブル1113SNa1と同様の内容、即ちinitiatorネーム：init-SNa1、Entity：SNa、Portal：ISNa1、PortalGroup：IPGSNa1を登録する。
【００７８】
以上でSNa(1a)によるイニシエータ構築が終わり、init-SNa1についてのイニシエータ管理テーブル1113の内容は、SNa(1a)から管理装置4の構成管理プログラム4122に返信され、管理装置4が有するイニシエータ管理テーブル1113にも登録される。
【００７９】
(13)移動先SNのTargetへの、移動元SNのInitiatorの登録（図９ステップ9005）
次に管理装置4の構成管理プログラム4122は、SNb（1b）に対し、ターゲットtarg-b0に対するアクセス許可をSNa(1a)のイニシエータinit-SNa1に与えるよう指示を発行する。
【００８０】
SNb(1b)はこれを受領し、LU制御プログラム1128が、図５（ｂ）に示す様にLU管理テー
ブル1111bに、Targ-b0すなわちLU0bへのアクセスを許可するInitiatorとしてInit-SNa1を登録する。更にSNb(1b)のターゲット制御プログラム1123は、ターゲットtarg-b0についてのTarget管理テーブル1112に、ターゲットtarg-b0に対するアクセスが許可されているイニシエータとしてInitiator:Init-SNa1を登録する。
【００８１】
そして、SNb(1b)はネームサーバ5に依頼して、図7(a)に示す様に、ステップ9003でネーム管理テーブル5111に登録されたターゲット管理テーブル1112bに、ターゲットTarg-b0に対するアクセスが許可されたイニシエータとしてInitiator:Init-SNa1を登録する。これにより、ネームサーバ5のネーム管理テーブル5111上でイニシエータInit-SNa1とターゲットTarg-b0(LU0b)の関係が構築される。
【００８２】
以上で移動先SNのTargetへの、移動元SNのInitiatorの登録が終了する。
【００８３】
尚管理装置4の構成管理プログラム4122は、自身がメモリ内に有するLU管理テーブル1111'及びTarg-b0のターゲット管理テーブル1112についても、Targ-b0へのアクセスが許可されるイニシエータとしてInit-SNa1を登録する。
【００８４】
(14)ディスカバリの実行（図９ステップ9006）
ステップ9005においてネームサーバ5のネーム管理テーブル5111に新たなイニシエータとターゲットの組が登録されたことにより、ネームサーバ5が管理しているイニシエータとターゲットとの関係に変化が生ずる。従って、ネームサーバ5のネーム管理プログラム5122は、State Change Notification（SCN）と呼ぶ状態変更通知を、各イニシエータ（イニシエータを有するホスト2やSN1等の装置）に発行する。SCNを受信した各イニシエータはディスカバリと呼ばれる処理を実行する。ディスカバリにおいて各イニシエータは、当該イニシエータからアクセス可能なターゲットに変化がないか、つまりアクセス可能なターゲットが追加、削除されていないかを、ネームサーバ5に問い合わせる。問い合わせを受けたネームサーバは、イニシエータからの問い合わせに含まれるイニシエータネームに基づいてネーム管理テーブル5111を検索し、当該イニシエータからアクセス可能なターゲットのターゲット管理情報（即ちターゲット管理テーブルに登録されている情報）を返信する。
【００８５】
ステップ9006においては、ホスト2に存在するイニシエータについては、当該イニシエータからアクセス可能なターゲットには変更がない。従って各ホスト2がディスカバリを実行してもターゲットの変化は発見されず、何も起きない。
【００８６】
一方SNa(1a)はSCNを受領すると、イニシエータ制御プログラム1130がiSCSI制御プログラム1122に依頼してディスカバリを行う。その結果、iSCSI制御プログラム1122は、SNa(1a)のイニシエータInit-SNa1に対応する新規のターゲットtarg-b0を、ネームサーバ5から通知される。
【００８７】
するとSNa(1a)のイニシエータ制御プログラム1130はTCP/IPプログラム1121に指示し、TCP/IPプログラム1121によってSNa(1a)のTCPポートとSNb(1b)のTCPポート間に新たなTCPコネクションが確立される。
【００８８】
次いで、イニシエータ制御プログラム1130はiSCSI制御プログラム1122に指示し、iSCSI制御プログラム1122はiSCSIログイン処理を行い、ポータルISNa1とSNb(1b)のポータルTb0の間に新たなiSCSIセッションを確立する。以上で、SNa(1a)とSNb(1b)間にiSCSIによる通信路が確立する。
【００８９】
次いで、SNa(1a)のイニシエータ制御プログラム1130はiSCSI InquiryコマンドをSNb(1b)のtarg-b0に発行し、LU0bを検出する。以上でSNa(1a)はSNb(1b)のLU0b(120b)にアクセスできる状態になる。
【００９０】
(15)LUマイグレーションの実行（図９ステップ9007）
次に、管理装置4の構成管理プログラム4122は、SNa(1a)に対し、LU1a(121a)に格納されているデータをSNb(1b)のLU0b(120b)にマイグレーションするよう指示を発行する。
【００９１】
SNaはこの指示を受領し、マイグレーションプログラム1129を起動する。マイグレーションプログラム1129は、ステップ9006にて確立したTCPセッションを利用し、専用のプロトコルによりSNb(1b)のマイグレーションプログラム1129と通信し、LU0b(120b)の状態確認、LU1a(121a)とLU0b(120b)のサイズが同一か否かの確認等を行った上で、マイグレーションの実行開始をSNb(1b)に通知する。
【００９２】
次に、SNa(1a)マイグレーションプログラム1129は、ターゲット制御プログラム1123にコマンドを発行し、コマンドを受信したターゲット制御プログラム1123はLU1a(121a)の適当なサイズ分のデータをキャッシュ110にリードする。次いでマイグレーションプログラム1129はイニシエータ制御プログラム1130にコマンドを発行し、コマンドを受信したイニシエータ制御プログラム1130は、キャッシュ110にリードしたデータを、SNb(1b)のLU0b(120b)にiSCSIライトコマンドを発行してライトする。SNb(1b)はライトコマンドおよびデータを受領すると、データをキャッシュ110に格納した後、キャッシュ110に格納されているデータをLU0b（120b）にライトする。以上の処理を繰り返すことで、LU1a(121a)のデータをすべてLU0b(120b)にコピーする(図8の(1))。
【００９３】
なお、このコピー処理の間もホストHost b(2b)のイニシエータinit-b0はSNa(1a)のLU1a(121a)(即ちターゲットtarg-a1)をアクセスし続けている。
【００９４】
コピー中にHost b(2b)からSNa(1a)がLU1a(121a)に対するライトコマンドとライトデータを受信した場合には、SNa(1a)のマイグレーションプログラム1129はライトデータをLU1a(121a)にライトすると共にSNb(1b)のLU0b(120b)にもライトデータを送信する。そしてその後SNa(1a)はHost b(2b)に対してライト処理完了を報告する（即ちデータを同期的にLU0b(120b)にライトする）。
【００９５】
もしくは、移行元のLU1a(121a)と移行先のLU0b(120b)との間で格納されているデータが異なる記憶領域を、SNa(1a)が差分ビットマップを用いて管理しておいても良い。即ちSNa(1a)は、LU1a(121a)からLU0b(120b)へのコピーが終了していない記憶領域、及びコピーは終了したがコピー後にHost b(2b)からLU1a(121a)宛てのライトデータを受信したことによりLU1a(121a)内のデータが更新され、この結果LU1a(121a)とLU0b(120b)との間でデータが一致しなくなってしまった記憶領域について、差分ビットマップ上に差分ビットを登録しておく。コピー処理の最後に差分ビットマップに基づいて、差分ビットが登録されている記憶領域についてSNa(1a)がLU1a(121a)に格納されているデータをLU0b（120b）にライトすれば、コピー中にHost b(2b)から受信したライトデータも移行先のLU0b(120b)にコピーすることができる。
【００９６】
これにより、コピー処理が完了する時には、LU1a(121a)に格納されているデータとLU0b(120b)に格納されているデータが一致するようにする（図８の(1)）。以上でデータのコピーが完了する。
【００９７】
(16)ターゲットのコピー（図９ステップ9008）
コピー処理が完了すると、SNa(1a)のマイグレーションプログラム1129は、LU制御プログラム1128にLU管理テーブル1111を参照するよう指示し、図５（ａ）に示すLU管理テーブル1111aから、LU1a(121a)のTarget（即ちTarg-a1）およびInitiator(即ちInit-b0)を取得する。そしてSNa(1a)のマイグレーションプログラム1129は、SNa(1a)とSNb(1b)間の新規もしくは既存のTCPコネクション(例えばステップ9006で確立されたTCPコネクション)を利用して、取得したLU1a(121a)のターゲット及びイニシエータの情報を転送する。
【００９８】
SNb(1b)のマイグレーションプログラム1129はこれを受領するとLU管理プログラム1128に指示を発行し、指示を受けたLU管理プログラム1128は図５（ｃ）に示す通り、LU0b(120b)のLU管理テーブル1111について、TargetにTarg-a1を、InitiatorにInit-b0を登録する。即ちLU管理プログラム1128は、LU0b(120b)のターゲット及びイニシエータをLU1a(121a)のターゲット及びイニシエータに変更すべく、SNa(1a)から受信したLU1aのターゲット及びイニシエータをLU0b(120b)のLU管理テーブルに登録する。これにより、SNa(1a)のLU1a(121a)のデータおよびアクセス情報(即ちターゲット及びイニシエータ)が、SNb(1b)のLU0b(120b)に引き継がれたことになり、LUマイグレーションが完了する。
【００９９】
LUマイグレーションが完了すると、SNb(1b)はSNa(1a)に完了報告を送信し、さらにSNa(1a)は管理装置4の構成管理プログラム4122に完了報告を送信する。完了報告を受信した管理装置4は、自身が有するLU管理テーブル1111'にも、LU0b(120b)についてのTargetにTarg-a1を、InitiatorにInit-b0を登録する。
【０１００】
以上でLUのマイグレーション処理が完了する。
【０１０１】
(17)移動元イニシエータの削除（図９ステップ9009）
LUマイグレーションの完了報告を受信した管理装置4の構成管理プログラム4122は、SNa(1a)にイニシエータを削除するよう指示を発行する。SNa(1a)はこれを受領し、イニシエータ制御プログラム1130に対して、データのマイグレーションに使用されたイニシエータInit-SNa1とターゲットTarg-b0との間のコネクションの切断、およびイニシエータInit-SNa1の削除を指示する。イニシエータ制御プログラム1130はiSCSI制御プログラム1122に指示し、イニシエータInit-SNa1とターゲットTarg-b0との間のセッションを切断する。更にイニシエータ制御プログラム1130がイニシエータInit-SNa1に関するイニシエータ管理テーブル1113をメモリ101から削除するとともに、ネームサーバ5にもInit-SNa1に関するイニシエータ管理テーブル1113SNa1を削除するよう通知する。
【０１０２】
通知を受けたネームサーバ5はネーム管理テーブル5111に登録されているイニシエータ管理テーブル1113SNa1を削除する。
【０１０３】
このように、イニシエータInit-SNa1は上記ステップ9004及び9005のイニシエータ登録とは逆手順にて削除される。
【０１０４】
尚、管理装置4の構成管理プログラム4122は、自身のメモリ内に格納されているInit-SNa1に関するイニシエータ管理テーブル1113も削除する。
【０１０５】
(18)移動元ターゲットの削除（図９ステップ9010）
次に管理装置4の構成管理プログラム4122は、SNa(1a)に対し、移動元LU1a(121a)に設定されているターゲットtarg-a1とHost b(2b)に存在するイニシエータinit-b0との間のセッション切断、および移動元LU1a(121a)に設定されているターゲットtarg-a1の削除を指示する。
【０１０６】
指示を受信したSNa(1a)のLU制御プログラム1128は、iSCSI制御プログラム1122にHost-b(2b)のInit-b0とSNa(1a)のTarg-a1の間のセッションを切断するよう指示を発行し、iSCSIプログラム1122はそれを実行する。またLU制御プログラム1128は、図５（a）に示すLU管理テーブル1111aからLU1a(121a)に関するエントリを削除する。この結果SNa(1a)がメモリ101に有するLU管理テーブルは、図５(d)に示すLU管理テーブル1111aの様になる。更にSNa(1a)はメモリ101内のターゲット管理テーブル1112からTarg-a1のエントリを削除する。
【０１０７】
また、SNa(1a)の通信プログラム1131は、ネームサーバ5に対して、ネーム管理テーブル5111からもTarg-a1に関するターゲット管理テーブル1112のエントリを削除するよう通知し、ネームサーバ5は通知に応じてネーム管理テーブル5111からTarg-a1に関するエントリを削除する（図８の(2)）。
【０１０８】
尚、管理装置4の構成管理プログラム4122は、自身のメモリ内に格納されているLU管理テーブル1111'からLU1a(121a)に関するエントリを削除すると共に、Targ-a1に関するターゲット管理テーブルも削除する。
【０１０９】
(19)移動先ターゲットの変更（図９ステップ9011）
次に管理装置4の構成管理プログラム4122は、移動先LU0b(120b)にステップ9008において設定したターゲットTarg-a1を、ネームサーバに登録するようSNb(1b)に指示をする。
【０１１０】
指示を受信したSNb(1b)の通信プログラム1131は、ステップ9003と同様の方法で、ネームサーバ5に、ネーム管理テーブル5111のターゲット管理テーブル1112bに登録されているターゲットネーム及びイニシエータネームを、Target：targ-a1、Initiator：Init-b0に変更するよう通知する（図８の(3)）。通知を受けたネームサーバ5のネーム管理プログラム5122は、ネーム管理テーブル5111を通知に従って変更する。この結果ネーム管理テーブル5111は図7(b)に示す状態となる。
【０１１１】
尚、SNb(1b)のターゲット制御プログラム1123は、SNb(1b)が有するメモリ101に格納されているTarget管理テーブル1113についても、ネームサーバ5で実行される変更と同様の変更を実行する。即ち、Target管理テーブル1113に、Target:Targ-a1、Initiator:Init-b0、Entity:SNb、Portal：Tb0、PortalVr:TPGb0が登録されるよう、TargetをTarg-b0からTarg-a1へ、InitiatorをInit-SNa1からInit-b0へ変更する。
【０１１２】
また、管理装置4の構成管理プログラム4122は、自身が有するメモリにも、Target:Targ-a1、Initiator:Init-b0、Entity:SNb、Portal：Tb0、PortalVr:TPGb0が登録されたTarg-a1に関する新しいターゲットテーブル1113を格納する。
【０１１３】
(20)ディスカバリの実行（図９ステップ9012）
ステップ9011によりイニシエータとターゲット間の関係が変更されるので、ネームサーバ5のネーム管理プログラム5122は、State Change Notification（SCN：状態変更通知）を、各イニシエータに発行する（図８の(4)）。各イニシエータはSCNを受信すると、ディスカバリを実行し、自身がアクセス可能なターゲットに変更がないかどうかをネームサーバ5に問い合わせる。
【０１１４】
SCNがHost b(2b)で受領され、ディスカバリが実行されてHost b(2b)からネームサーバ5に問い合わせが発行されると（図８の（５））、Host b(2b)にはネームサーバ5から、イニシエータInit-b0に対するターゲットtarg-a1の管理情報（即ちTarg-a1のターゲット管理テーブル1112bに登録されている情報）が通知される。従って、Host b(2b)はイニシエータInit-b0に対するターゲットtarg-a1がSNb(1b)に移動していることが分かる。
【０１１５】
そこで、Host b(2b)のTCP/IPプログラム（図示せず）は、Host b(2b)のTCPポートとSNb(1b)のTCPポート間に新たなTCPコネクションを確立する。
【０１１６】
次いで、Host b(2b)のiSCSI制御プログラム（図示せず）は、SNb(1b)にiSCSIログイン処理を行い、Host b(2b)のポータルIb0とSNb(1b)のポータルTb0の間に新たなiSCSIセッションを確立する。以上で、Host-b(2b)とSNb(1b)間にiSCSIによる通信路が確立し、パス切り替えが完了する（（図８の(6)）。従って、これ以降Host b(2b)のイニシエータInit-b0がターゲットTarg-a1宛てにライトコマンド及びライトデータを送信すると、これはターゲットTarg-a1を有するSNb(1b)によって受信され、ターゲットTarg-a1が設定されているLU0b(120b)にライトデータが格納されることとなる。
【０１１７】
本実施形態においては、移行元のSNa(1a)のLU1a(121a)に格納されていたデータが移行先のSNb(1b)のLU0b(120b)に移行されると、移行先のLU0b(120b)はデータのみならずアクセス情報(即ち移行元LU1a(121a)に設定されているターゲットネーム及び当該ターゲットへのアクセスが許可されているイニシエータのイニシエータネーム)をも引き継ぐ。従って、ディスカバリ実行後のHost b(2b)は、自身に存在するイニシエータinit-b0に対応するターゲットtarg-a1の場所がSNa(1a)からSNb(1b)に移動したものと認識し、ターゲットが変更されたとは認識しない。イニシエータInit-b0に対応するターゲットネームtarg-a1には、データ移行後も変更がないからである。このため本実施形態においては、ターゲットネームtarg-a1に変更がない限り、ターゲットの存在場所が例え変更されたとしても、ターゲットに対応するLUに格納されたデータには変更がないことが保証される。つまりホスト2は、同じターゲットネームを有するターゲットにアクセスしている限り、同じデータにアクセスできることが保証される。
【０１１８】
なお、ステップ9010で一旦Host b(2b)のInit-b0とSNa(1a)のTarg-a1の間のセッションが切断されると、ステップ9012でHost b(2b)のInit-b0とSNb(1b)のTarg-a1の間のセッションが確立されるまで、Host b(2b)からのセッションは一旦切断される。しかし、通常iSCSIのコマンド処理にはリトライのメカニズムがあり、Host b(2b)はコマンドがターゲットに受領されない場合には数十秒の間リトライを続ける。この間に、SCNが発行されディスカバリが完了し、Host b(2b)のInit-b0とSNb(1b)のTarg-a1の間の新たなセッションが確立すれば、Host b(2b)で実行されるアプリケーションには、この一瞬のセッション切断は認識されることがない。従って、ホスト2のアプリケーションを停止することなく、あるSN1から別のSN1へデータを移動させることができ、これによりSN1の増設、スイッチ３接続された複数のSN1間での負荷分散を、ホスト2のアプリケーションを停止させることなく実行することができる。
【０１１９】
更に、Host b(2b)が有するTCP/IPプログラムやiSCSI制御プログラム等、Host b(2b)のオペレーティングシステムより下位層の制御を実行するプログラムは、上述の様にデータ移行に伴いターゲットTarg-a1の存在場所が移動したことを認識する。しかし、TCP/IPプログラム及びiSCSI制御プログラムによりTCPコネクション及びiSCSIセッションが確立されるので、Host b(2b)のオペレーティングシステムは当該LUが論理ボリュームとして認識されている限りターゲットの存在場所を認識する必要はなく、従ってHost b(2b)のオペレーティングシステム及びその上で動作するアプリケーションプログラムには、データ移行が実行されたことは認識されない。つまり、ホスト2のオペレーションシステムやアプリケーションプログラムにSN１間でのデータ移行を認識させることなく、データ移行を実行することができる。
【０１２０】
(21)Targetの生成方法
次に、Targetの生成方法について補足する。ターゲットネームは一意性のある識別子である必要がある。ターゲットネームの一意性を維持する方法として、以下に一例を示す。
【０１２１】
ターゲットネームは適当な長さの文字列であるとすると、その文字列として、たとえば、製造会社を示すコードと、製造会社の中の特定組織を示すコードと、ストレージシステムを特定するコードと、ストレージノードの種類を特定するコードと、ストレージノードのレビジョンのコードと、ストレージノードのシリアル番号と、そのストレージノード内のターゲットに割り当てるシーケンシャル番号を組み合わせたものを使用することができる。これにより、あるストレージノードで新たなTargetが生成されたなら、そのシーケンシャル番号をインクリメントしていくことで、新たに生成されたTargetに対して一意性のあるターゲットネームを付与することができる。
【０１２２】
また、上述の実施形態ではLU12xに格納されているデータがあるSN1から他のSN1に移行された際、移行先のLU12xが移行元のLU12ｘのターゲットネームを引き継いでいる。この様にSN間でターゲットネームの引継ぎが生じた場合であっても、SN間において引き継がれたターゲットネームは一意であることから、移行先のSN1で移行元のSN1から引き継いだターゲットネームを使い続けることができる。
【０１２３】
なお、ストレージノード1のCTL10にはFlashメモリ等の不揮発なメモリを用意し、SN1内のターゲットに対してターゲットネームを付与する際に用いられたシーケンシャル番号の最大値（即ち使用済みのシーケンシャル番号の最大値）を記録しておくことが望ましい。これにより、万一SN1に停電や障害が生じた場合にも、Flashメモリにはシーケンシャル番号が記憶されているので、回復後SN１はFlashメモリに記憶されているシーケンシャル番号をインクリメントしていくことで、SN１内に新たに設定されるターゲットに対して一連の一意な番号を生成し続けることができる。
【０１２４】
尚、上記実施形態ではLU12x内に格納されているデータの移行に伴って、LU12xに付与されているターゲットネームも引き継ぐ例を示したが、データ移行の際に、移行先のLU12xに対して新たなターゲットネームを付与することとしても良い。この場合移行先のLU12xには、移行先のSN1が管理しているシーケンシャル番号、移行先のSN1のシリアル番号、移行先のSN１のレビジョンコード等を用いた、移行先SN１の固有のターゲットネームを設定することもできる。移行先LU12xに対して新たなターゲットネームを設定する場合には、図9に示すステップ9008においてSNb(1b)のLU制御プログラム1128は、LU管理テーブル1111にターゲットネームとして新たに設定されたターゲットネームを登録する。更に、ステップ9011においてSNb(1b)は、新たに設定されたターゲットネームをネームサーバ5に登録することが必要である。この結果ステップ9012のディスカバリの際に、Host b(2b)のイニシエータinit-b0はこの新Targetを検出し、InitiatorはTargetとのセッションを構築することができる。
【０１２５】
(22)Targetの設定
上記の実施形態では、SN1がTargetもしくはInitiatorを生成し、ネームサーバ5に登録する例を示したが、各SN1がTargetやInitiatorを生成する代わりに、ネームサーバ5がTargetやInitiatorを生成してもよい。この場合各SN1はネームサーバ5にターゲットやイニシエータの登録指示を発行し、ネームサーバはその返値としてTargetやInitiatorをSN1に返送する。そして各SN1はネームサーバ5から受信したターゲットやイニシエータを登録する。
【０１２６】
(23)管理装置の表示画面（図１５）
図15に管理装置4が有するディスプレーに表示される表示画面の一例を示す。
【０１２７】
管理装置4の構成管理プログラム4122は、管理装置4のメモリに格納されているLU管理テーブル1111'、ターゲット管理テーブル1112、イニシエータ管理テーブル2112若しくは1113をディスプレーに表示する。この様子をあらわしたのが図１５（ｃ）及び図１５（ｄ）である。図１５（ｃ）はデータ移行が実行される前の状態を表す表示画面の一例、図１５（ｄ）はデータ移行が実行された後の状態を表す表示画面の一例である。
【０１２８】
構成管理プログラム4122は、LU管理テーブル1111'、ターゲット管理テーブル1112、イニシエータ管理テーブル2112若しくは1113をディスプレーに表示すると共に、LU管理テーブル1111'に登録されている各イニシエータ、各ターゲットから、当該イニシエータに関するイニシエータ管理テーブル若しくは当該ターゲットに関するターゲット管理テーブルへのポインタもディスプレーに表示する。従って、管理装置4を使用する管理者はディスプレー上に表示された情報から各イニシエータ若しくは各ターゲットと、LUとの関係を容易に把握することができる。
【０１２９】
構成管理プログラム4112は更に、管理装置４のメモリに格納されているLU管理テーブル1111'、ターゲット管理テーブル1112、イニシエータ管理テーブル2112若しくは1113に基づいて、システム構成をディスプレーに表示する。この様子をあらわしたのが図１５（a）及び図１５（b）である。図１５（ａ）はデータ移行が実行される前のシステム構成、図１５（ｂ）はデータ移行が実行された後のシステム構成を表示する表示画面の一例を示す。
【０１３０】
図１５（a）及び図１５（ｂ）は、データ移行先のLU-b(120b)がデータ移行元のLU1a(121a)に設定されたターゲットネームを引き継ぐ場合についての表示画面を示している。データが移行されるとターゲットネームが移行元ＬＵから移行先ＬＵへ引き継がれるので、表示画面上でもターゲットtarg-a1が存在する位置はデータ移行前とデータ移行後とで変化するが、イニシエータとターゲットとの組み合わせ（init-a0とtarg-a0の組、及びinit-b0とtarg-a1の組）には変更はない。この様に、SN1間でデータが移行されても、イニシエータとターゲットとの組み合わせには変更が生じないので、管理者は管理装置4を用いてシステム内のイニシエータ及びターゲットを容易に管理することができる。
【０１３１】
尚、ディスプレーに表示される情報は、図９で説明した様に構成管理プログラムが各SN１に指示を出したり、構成管理プログラムが各SN１からシステム構成の変更についての通知を受信したりして、LU管理テーブル1111'、ターゲット管理テーブル1112、イニシエータ管理テーブル2112若しくは1113が更新される度に、更新に合わせて変更される。
【実施例２】
【０１３２】
次に第二実施形態を説明する。第一実施形態では、新規増設したSNb(1b)にSNa(1a)のLU1a(121a)に格納されているデータを移動させる例を示した。本実施形態は、図１０に示す通り、さらに新規にSNc(1c)をスイッチ3に増設し、SNa(1a)に残るLU0a(120a)を新規SNc(1c)へ移動させる。
【０１３３】
SNa(1a)のtarg-a0のLU0a(120a)は、Host-a(2a)のInit-a0と接続関係を持つ。従って、第二の実施形態においては、このイニシエータとターゲットの関係が第一実施形態と異なり、ディスカバリ処理等はHost-a(2a)によって実行されることとなるが、SNa(1a)のLU0a(120a)に格納されているデータをSNc(1c)のLU0c(120c)に移行（マイグレーション）し、移行先のLU0c(120c)が移行元のLU0a(120a)のtarg-a0を引継ぎ、Init-a0とtarg-a0間のアクセスパスを変更する手順は、第一の実施形態と同様である。
【０１３４】
マイグレーションが完了すると、SNa(1a)にはホスト2からアクセスされるLU12xが完全に無くなる。これにより、SNa(1a)をスイッチ3から外し、減設することができる。
【０１３５】
この処理を活用すると、ホスト2からのアクセスを中断せずに、SNa(1a)をSNc(1c)にリプレースすることが可能になる。すなわち、旧ストレージノードSNa(1a)のＬＵ0a(120a)に格納されているデータを新ストレージノードSNc(1c)に移動させて、ホスト2からのアクセスパスを変更する処理の間も、移動対象のＬＵ、及び当該LUに格納されているデータに対するホスト2からのアクセスを受け付けることができる。従って例えば法規制等によりSNの寿命より長い期間データを保存する必要がある場合（即ちデータの寿命がSNの寿命より長い場合）にも、ストレージシステム1000全体をリプレースするのではなく、このように、旧SNを新SNに置き換えながら寿命に達したストレージノード1のみを交換することでデータを使用し続けることができる。
【０１３６】
本実施形態によると、システムのリプレースに要するコスト増加を押さえながら、データの一時待避なく、データアクセスも停止することなく、データが寿命に達するまで長期間に渡りデータを保持することができるという効果がある。
【実施例３】
【０１３７】
図１１はシステム構成の他の一例を示す図であり、ストレージノード1に２つのコントローラCTL0、CTL1を備え、各LU120xが2つのコントローラ10からアクセス可能な様に構成されることが第一、第二実施形態との相違点である。ネットワーク30に関しても、スイッチ0(3)、スイッチ1(31)の２台のスイッチを設け各ホスト2、各ストレージノード1は2台のスイッチに接続される構成となっている。本実施形態では、LU120xとCTL10間の配線、SN1とスイッチ間の配線、ホスト2とスイッチ間の配線を全て２重化することができ、これにより、さらに高信頼なストレージシステムを構築することができる。ストレージノード1のリプレースやLUの移動による負荷均衡の方法は第一、第二実施形態と同様である。
【実施例４】
【０１３８】
図１２は、システム構成の他の一例を示す図である。本実施形態では、ストレージシステム1000が複数のCTL10を備え、LU12xをディスク接続装置150を介して各CTL10が共有する構成である。第一、第二実施形態のSN増設やSN減設は、本実施形態ではCTL10の増設、減設に相当する。たとえば、寿命を迎えたCTLa(10a)のかわりにCTLc(10c)を増設し、CTLa(10a)が管理していたLU12xをCTLc(10c)が引き継いだ後に、CTLa(10a)を減設するといったことができる。この際に、CTLa(10a)のLU管理テーブル1111に登録されているLU管理情報の引継ぎ、CTLa(10a)のTarget管理テーブル1112に登録されていたTargetの引継ぎ、アクセスパスの交替の処理は、第一、第二実施形態と同様の方法で実行される。但し、本実施形態において各CTL10はディスク接続装置150を介して各LU12xに接続されているので、LU12xに格納されているデータの移動は行わなくてもよい。たとえば、CTLa(10a)が制御していたLU0(120a)をCTLc(10c)に引き継ぐ場合、CTLc(10c)はディスク接続装置150を経由することで、当該LU0(120a)へアクセスすることができる。もちろん、排他制御を行う必要があるので、CTLc(10c)はCTLa(10a)からLU0(120a)に関するLU管理情報を引き継いだり、LU(120a)に設定されているターゲットの情報（当該ターゲットに関するTarget管理テーブル1112の内容）を引き継ぐ等、第一、第二実施形態と同様の手順を踏む必要がある。しかし、データのコピー処理を割愛することができる。これにより、さらに迅速かつコスト効率よいシステム変更が可能となる。
【実施例５】
【０１３９】
図１３は、システム構成の他の一例を示す図である。本実施形態においては、スイッチ3および管理装置4がストレージシステム1000に取り込まれた構成を示している。スイッチ3、管理装置4、SN1はすべてストレージシステム1000の構成要素となり、ユーザには一式として提供される。好適な実施形態として、これらのすべてが１台の筐体に搭載された構成とすることで、ユーザはこの装置を管理性よく扱うことができる。
【実施例６】
【０１４０】
図１４は、システム構成の他の一例を示す図である。本実施形態においては、図１３の管理装置4を無くし、管理装置4が備えている上記実施形態記載の構成管理プログラム4122を、各ストレージノードのCTL(10)に搭載した構成を示している。それぞれの構成管理プログラム4122は、構成変更が発生する際に、他の構成管理プログラム4122と通信することで、構成変更を認識しあう。また、構成変更に先立ち、必要資源を排他制御する。このような構成とすることで、管理装置4が不要となり、さらにコスト効率よいストレージシステムが構築できる。
【０１４１】
なお、上記の実施形態では、いずれもLUのデータを移動した後に、ホストからのアクセス経路を変更するが、これを、
(1)LUの情報（target情報およびinitiatorアクセス許可情報を含む）を移動、
(2)ホストからのアクセスパスを移動先に切り替え（ターゲットネームの移動、ネームサーバの登録変更を含む）、
(3)LUデータの移動、
の順番に変更することも可能である。この場合、データ移動中のアクセスの扱いは背景技術記載と同様に扱うことができる。この場合においても、本発明の特徴である、ホストのオペレーティングシステムやアプリケーションに移動を意識させること無く、LUの移動を行うことができるという、他の実施形態と同様の効果を享受することができる。
【実施例７】
【０１４２】
次に、本発明の実施例７について以下の順序で説明する。
（１）システム構成：
（２）管理画面：
（３）ストレージノード増設およびＬＵ移動処理：
（４）管理画面を用いたストレージシステムの設定等：
（５）実施例７の変形例：
【０１４３】
（１）システム構成：
図１６は、本発明の実施例７としてのストレージシステムを適用可能な計算機システムの構成を概略的に示す説明図である。計算機システム８は、３つのホストコンピュータ２（ホスト２）と、ホストコンピュータ２と接続されるストレージシステム１０００と、を備えている。本実施例における計算機システム８と、図１に示した実施例１における計算機システムとの異なる点は、ストレージシステム１０００の構成の点である。なお、同図では、管理装置４はスイッチ３を介したネットワーク経由で各ＣＴＬ１０と通信する「ＩｎＢａｎｄ型」の通信形態を想定しているが、各ＣＴＬ１０に管理のために専用に設けられた管理ネットワーク（図示せず）に接続するための管理インタフェイスが設けられており、管理装置４が管理ネットワークを介して各ＣＴＬ１０の管理インタフェイスに接続し通信する「Ｏｕｔ  ｏｆ  Ｂａｎｄ型」の通信形態をとることも可能である。
【０１４４】
本実施例におけるストレージシステム１０００は、３つのストレージノード１（ＳＮ１）と、２つのスイッチ３と、管理装置４と、ネームサーバ５と、を有している。この点で、スイッチ３と、管理装置４と、ネームサーバ５とが、ストレージシステム１０００とは独立した構成要素となっている実施例１における計算機システムとは異なっている。なお、本実施例において、実施例１と同様に、スイッチ３と、管理装置４と、ネームサーバ５とを、ストレージシステム１０００とは独立した構成要素とすることも可能である。
【０１４５】
本実施例におけるストレージノード１は、図１に示した実施例１と同様に、データを格納する記憶装置としてのディスクと、ホスト２からのアクセス要求に応じて記憶装置におけるデータの入出力を制御する制御装置としてのコントローラ１０（ＣＴＬ１０）と、を有している。なお、ディスクは、図４を用いて説明したように、ホスト２からアクセスされる論理的な記憶領域としての論理ユニット１２（ＬＵ１２）を構成している。
【０１４６】
なお、ホスト２およびストレージノード１（内部の構成要素も含む）を表す符号には、実施例１と同様に、添字ａ、ｂ、ｃを付している。また、ＣＴＬ１０およびスイッチ３を表す符号に付された添字ｘ、ｙについては、後述する。
【０１４７】
本実施例における３台のストレージノード１は、それぞれ２つのＣＴＬ１０を有し、ＣＴＬ１０に関して冗長性を有している点が、実施例１におけるストレージノード１とは異なっている。そして、各ＣＴＬ１０は、２つの系列の内のいずれかに属するように設定されている。ここで、系列とは、ＣＴＬ１０のグループを意味しており、２つの系列を「ｘ系列」および「ｙ系列」と呼ぶものとしている。なお、各ＣＴＬ１０を、３つ以上の系列の内のいずれかに属するように設定することも可能である。
【０１４８】
ＣＴＬ１０の系列は、１つのストレージノード１内の２つのＣＴＬ１０が、それぞれ異なる系列に属するように設定される。例えば、ストレージノード１ａ内の２つのＣＴＬ１０ａの内の、一方はｘ系列に属し、他方はｙ系列に属するように、系列が設定される。ストレージノード１ｂおよびストレージノード１ｃ内の２つのＣＴＬ１０についても、同様に設定される。本明細書および図面では、ｘ系列に属するＣＴＬ１０を表す符号および図面表示には「ｘ」の添字を付し、ｙ系列に属するＣＴＬ１０を表す符号および図面表示には「ｙ」の添字を付している。例えば、ストレージノード１ａ内のｘ系列に属するＣＴＬ１０は、「ＣＴＬ１０ａｘ（ＣＴＬａｘ）」と表される。
【０１４９】
１つのストレージノード１内の２つのＣＴＬ１０は、互いに接続されている。また、１つのストレージノード１内の２つのＣＴＬ１０は、それぞれ、当該ストレージノード１内のすべてのＬＵ１２と接続されている。例えば、ストレージノード１ａ内の２つのＣＴＬ１０ａ（ＣＴＬ１０ａｘおよびＣＴＬ１０ａｙ）は、それぞれ、ＬＵ１２０ａおよびＬＵ１２１ａと接続されている。なお、ストレージノード１の詳細構成については、後述する。
【０１５０】
スイッチ３は、ストレージシステム１０００とホスト２とを接続するためのインタフェイスとして機能する。また、スイッチ３は、ストレージシステム１０００内の各構成要素（ストレージノード１、管理装置４、ネームサーバ５）を互いに接続している。ここで、本実施例におけるストレージシステム１０００内の２つのスイッチ３は、各ストレージノード１の有する２つのＣＴＬ１０のそれぞれに対応している。すなわち、一方のスイッチ３（「スイッチ３ｘ（スイッチｘ）」と表す）は、各ストレージノード１の有するｘ系列に属するＣＴＬ１０のそれぞれと接続され、他方のスイッチ３（「スイッチ３ｙ（スイッチｙ）」と表す）は、各ストレージノード１の有するｙ系列に属するＣＴＬ１０のそれぞれと接続される。なお、２つのスイッチ３は、それぞれ、管理装置４およびネームサーバ５とも接続される。
【０１５１】
管理装置４およびネームサーバ５の構成は、実施例１と同じである。
【０１５２】
ここで、本実施例のストレージシステム１０００は、「ノード間ＣＴＬ結合部７」を有している。ノード間ＣＴＬ結合部７とは、各ストレージノード１内のＣＴＬ１０の内、同じ系列に属するＣＴＬ１０同士を互いに接続するものである。すなわち、ノード間ＣＴＬ結合部７によって、各ストレージノード１の有するｘ系列に属する３つのＣＴＬ１０（ＣＴＬ１０ａｘ、ＣＴＬ１０ｂｘ、ＣＴＬ１０ｃｘ）が、互いに接続される。同様に、ノード間ＣＴＬ結合部７によって、各ストレージノード１の有するｙ系列に属する３つのＣＴＬ１０（ＣＴＬ１０ａｙ、ＣＴＬ１０ｂｙ、ＣＴＬ１０ｃｙ）も互いに接続される。そして、これらのノード間ＣＴＬ結合部７は、スイッチ３を介することなく、すなわち、ＣＴＬ１０とホスト２との間のアクセスパスを介することなく、ＣＴＬ１０間を接続している。なお、ノード間ＣＴＬ結合部７の詳細については、後述する。
【０１５３】
図１７は、実施例７におけるストレージノードの構成を示す説明図である。図２に示した実施例１におけるストレージノード１との違いは、実施例７のストレージノード１は、ＣＴＬ１０を２つ有している点であり、その他の点は、実施例１におけるストレージノード１と同じである。実施例７における２つのＣＴＬ１０（ＣＴＬ１０ｘおよびＣＴＬ１０ｙ）は、複数のディスク１２０を共有する。なお、図１６に示したように、１つのストレージノード１内の２つのＣＴＬ１０は互いに接続されており、また、ストレージノード１内のＣＴＬ１０は他のストレージノード１のＣＴＬ１０とノード間ＣＴＬ結合部７を介して接続されているが、これらの接続の構成については、図１７では図示を省略するものとし、次の図１８において詳細に説明する。
【０１５４】
図１８は、ストレージノード内のノード間ＣＴＬ結合部の詳細を示す説明図である。図１８に示すように、各ストレージノード１内のＣＴＬ１０に含まれるブリッジ１０４は、スイッチ１０６（「ＳＷ」と図示する）を有している。ストレージノード１間では、スイッチ１０６間を接続する接続線７２（以下「ノード間ＣＴＬ接続線７２」と呼ぶ）によって、同じ系列に属するＣＴＬ１０が互いに接続されている。例えば、ｘ系列に属する３つのＣＴＬ１０（ＣＴＬ１０ａｘ、ＣＴＬ１０ｂｘ、ＣＴＬ１０ｃｘ）は、それぞれの有するスイッチ１０６間を接続するノード間ＣＴＬ接続線７２によって、互いに接続されている。
【０１５５】
図１８の例では、ノード間ＣＴＬ接続線７２のそれぞれは、２本の線の組によって構成されている。このようにすれば、ノード間ＣＴＬ接続線７２の信頼性を向上させることができる。また、２本の線の内の１本を上り専用に、他の１本を下り専用に用いることによって、それぞれの使用帯域を分割することができ、これによってノード間ＣＴＬ結合部７における通信性能を向上させることもできる。なお、ノード間ＣＴＬ接続線７２のそれぞれを、１本の線によって構成することも可能である。また、図１８に破線で示した接続線は、ストレージノード１を将来増設した際に設けるノード間ＣＴＬ接続線である。
【０１５６】
なお、ストレージノード１内では、スイッチ１０６間を接続する接続線（以下「ノード内ＣＴＬ接続線」と呼ぶ）によって、２つのＣＴＬ１０が互いに接続されている。図１８の例では、ノード内ＣＴＬ接続線も、２本の線の組によって構成されている。また、ＣＴＬ１０内では、スイッチ１０６を介して、ブリッジ１０４と、他の構成要素（ＣＰＵ１００、メモリ１０１、ネットワークコントローラ（ＮｅｔＷｏｒｋ  Ｃｏｎｔｒｏｌｌｅｒ、略して「ＮＷＣ」と表す）１０２、ＦＣコントローラ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｃｏｎｔｒｏｌｌｅｒ、略して「ＦＣＣ」と表す）１０３）とが接続されている。
【０１５７】
図１９は、実施例７におけるメモリマップを示す説明図である。上述したように、本実施例におけるストレージシステム１０００は、ノード間ＣＴＬ結合部７を有しているため、各ストレージノード１内の各ＣＴＬ１０に含まれるメモリ１０１の記憶領域を併せたメモリ空間が、各ＣＴＬ１０からは図１９のメモリマップに示すように、単一のメモリ空間として把握することができる。そのため、各ストレージノード１内のすべてのＣＴＬ１０に含まれるＣＰＵ１００のそれぞれは、すべてのメモリ空間にアクセスすることが可能となる。また、例えば、あるＣＴＬ１０のメモリ１０１内のデータ等を他のＣＴＬ１０のメモリ１０１へとコピーする際には、ノード間ＣＴＬ接続線を介したメモリ１０１間におけるデータ等のコピーとなるため、実施例１のようにネットワーク３０を構成するスイッチ３（図１）経由でデータを転送する方法に比べ、コピーを高速に実行することができる。なお、図１９では、例えば、ＣＴＬ１０ａｘに含まれるメモリ１０１を「メモリａｘ」と表示しており、他のメモリ１０１も同様に表示している。
【０１５８】
図２０は、実施例７におけるストレージシステム１０００の製品形態の一例を示す説明図である。図２０の例は、いわゆるラックマウント型の例である。１９インチラック１１００の最下段に、スイッチ３ｘおよびスイッチ３ｙが設置され、その上段に３つのストレージノード１が、ストレージノード１ａ、ストレージノード１ｂ、ストレージノード１ｃの順に設置される。各ストレージノード１は、コントローラ筐体１２００と、ディスク筐体１３００とから構成され、コントローラ筐体１２００にはＣＴＬ１０が装填され、ディスク筐体１３００にはディスク１２０が装填される。なお、図２０のディスク筐体１３００における破線で囲まれたスペースは、ディスク１２０が未装填であるスペースを示している。ストレージノード１ｃの上段には、ストレージノードを増設するためのスペース、すなわち、コントローラ筐体１２００もしくはディスク筐体１３００が搭載されていないスペース（ハッチングを付して示す）が設けられ、さらに上段には、ネームサーバ５と、管理装置４とが設置される。
【０１５９】
図２１は、実施例７におけるストレージシステム１０００の製品形態の他の一例を示す説明図である。図２１の例は、いわゆるブレード型の例である。１９インチラック１１００の最下段に、スイッチ３ｘおよびスイッチ３ｙが設置される。その上段に、すべてのストレージノード１が共用するコントローラ筐体１２００が設置され、コントローラ筐体１２００内にストレージシステム１０００内のすべてのＣＴＬ１０が装填される。なお、図２１のコントローラ筐体１２００における破線で囲まれたスペースは、ＣＴＬ１０を増設するためのスペースを示している。コントローラ筐体１２００の上段には、３つのストレージノード１のディスク筐体１３００が、ストレージノード１ａ用（１３００ａ）、ストレージノード１ｂ用（１３００ｂ）、ストレージノード１ｃ用（１３００ｃ）の順に設置され、各ディスク筐体１３００内にディスク１２０が装填される。なお、図２１のディスク筐体１３００における破線で囲まれたスペースは、ディスク１２０が未装填であるスペースを示している。ストレージノード１ｃ用のディスク筐体１３００ｃの上段には、ディスク筐体１３００を増設するためのスペース、すなわち、ディスク筐体１３００が搭載されていないスペース（ハッチングを付して示す）が設けられ、さらに上段には、ネームサーバ５と、管理装置４とが設置される。
【０１６０】
（２）管理画面：
図２２は、ストレージシステムの管理画面の第１の例を示す説明図である。ここで、管理画面とは、ストレージシステム１０００の管理装置４（図１６）が有する表示装置に表示される画面である。なお、表示装置は管理装置４自身が備えている必要は必ずしもなく、別の端末（図示せず）からネットワーク経由でリモートアクセスすることで、端末の表示装置に表示することも可能である。図２２に示した管理画面の第１の例（管理画面４１）は、ストレージシステム１０００内の各ストレージノード１の物理構成を表示している。管理画面４１には、左から順に、ストレージノード１ａ、ストレージノード１ｂ、ストレージノード１ｃ、将来増設ストレージノード１（例えばストレージノード１ｄ）の物理構成が、それぞれ表示される。各ストレージノード１の物理構成の表示において、最上段には、コントローラ筐体１２００（図２０参照）に装填されたＣＴＬ１０が示される。また、その下には、ディスク筐体１３００（図２０参照）に装填されたディスク１２０が示される。図２２の例では、ディスク筐体１３００は、３行（Ａ行〜Ｃ行）分のディスク１２０装填スペースを有し、各行には８つ（０番〜７番）のディスク１２０が装填可能となっている。なお、図２２の管理画面４１の例では、ディスク１２０の種類（ＦＣディスク、ＡＴＡディスク等）を、アルファベット（Ａ、Ｆ等）によって示している。また、ディスク筐体１３００内のスペースにディスク１２０が未装填であることを、当該スペースに対応する表示にハッチングを付すことによって示している。同様に、ディスク１２０に障害が発生していることを、当該ディスクに対応する表示に網掛けを付すことによって示している。このように、管理画面４１の表示によって、ユーザは、ストレージシステム１０００の物理構成（ディスク１２０のインストール状況等）や障害発生状況を把握することができる。
【０１６１】
図２３は、ストレージシステムの管理画面の第２の例を示す説明図である。図２３に示した管理画面の第２の例（管理画面４２）は、ストレージシステム１０００内の各ストレージノード１の論理構成を表示している。管理画面４２には、左から順に、ストレージノード１ａ、ストレージノード１ｂ、ストレージノード１ｃ、将来増設ストレージノード１ｄの論理構成が、それぞれ表示される。各ストレージノード１の論理構成の表示において、上段には、ストレージノード１とＬＵ１２との関係、およびＣＴＬ１０とＬＵ１２との関係が示される。すなわち、ストレージノード１に含まれるＬＵ１２が、そのＬＵ１２のオーナー権を持つＣＴＬ１０に対応したスペースに表示される。例えば、図２３の例では、ストレージノード１ａ（ＳＮａ）は、ＬＵ１２０ａ（ＬＵ０ａ）およびＬＵ１２１ａ（ＬＵ１ａ）の２つのＬＵ１２を有し、その内のＬＵ１２０ａ（ＬＵ０ａ）のオーナー権は、ＣＴＬ１０ａｘが持っていることとなる。また、論理構成の表示において、下段には、管理画面４１と同様に、ディスク筐体１３００（図２０参照）内のディスク１２０の装填状況が示される。そして、ユーザが、管理画面４２上で、ＬＵ１２の表示を選択すると、そのＬＵ１２と対応付けられたディスク１２０の識別表示（例えば、ハッチング表示）が行われ、ＬＵ１２とディスク１２０との対応関係（論理関係）が把握可能となる。例えば、図２３の例では、選択したＬＵ１２０ａ（ＬＵ０ａ）が、ディスク筐体１３００のＡ行０番から３番までのディスク１２０とＢ行２番から４番までのディスク１２０との合計７台のディスク１２０から構成されていることが示されており、このＬＵ１２とディスク１２０との対応関係が表示されていることとなる。に対応付けられていることとなる。このように、管理画面４２の表示によって、ユーザは、ストレージシステム１０００内のストレージノード１とＬＵ１２との関係、ＬＵ１２とディスク１２０との関係、およびＬＵ１２とＣＴＬ１０との関係（オーナー権）を把握することができる。さらに、管理画面４２は、ユーザによるストレージシステム１０００の設定等にも用いることが可能であるが、この点については後述する。なお、オーナー権とは、各ＬＵ１２の管理権限のことであり、本実施例において、各ＬＵ１２毎に唯一のＣＴＬ１０がオーナー権を備えるものとしている。オーナー権を持つＣＴＬ１０のみがキャッシュ等の管理情報やＬＵ１２の管理情報を更新することができる。当該ＬＵ１２のオーナー権を持たないＣＴＬ１０もＬＵ１２をアクセスすることはできるが、この際にオーナー権を持つＣＴＬ１０に問い合わせをして、キャッシュの管理情報の更新やロック等の処理を委託する必要がある。また、管理画面４２上に表示されている「ＬＵ作成」アイコンの意義については後述する。
【０１６２】
図２４は、ストレージシステムの管理画面の第３の例を示す説明図である。図２４に示した管理画面の第３の例（管理画面４３）は、ホスト２およびストレージシステム１０００の論理構成を表示している。すなわち、管理画面４３には、ホスト２とＬＵ１２との関係、イニシエータとターゲットとの関係、およびストレージノード１とターゲットとＬＵ１２との関係が表示される。管理画面４３の表示によって、ユーザは、これらの論理的関係を把握することができる。具体的には、Ｈｏｓｔ  ａには名称がＩｎｉｔ−ａ０であるイニシエータポートが設けられており、このＩｎｉｔ−ａ０は、ストレージノードＳＮａの名称がＴａｒｇ−ａ０であるターゲットポートにマッピングされているＬＵ  ０ａをアクセス可能であることを示している。
【０１６３】
図２５は、ストレージシステムの管理画面の第４の例を示す説明図である。図２５に示した管理画面の第４の例（管理画面４４）は、ストレージシステム１０００内の各ストレージノード１の稼働状況を表示している。管理画面４４には、左から順に、ストレージノード１ａ、ストレージノード１ｂ、ストレージノード１ｃ、将来増設ストレージノード１ｄの稼働状況が、それぞれ表示される。各ストレージノード１の稼働状況の表示において、上段には、各ＣＴＬ１０内のＣＰＵ１００の稼働率が示され、下段には、各ＬＵ１２の稼働率が示される。ここで、ＣＰＵ１００については、例えば、ある計測時間から、その計測時間中におけるアイドルルーチン時間を除いた時間が稼働時間であるとして、稼働率が算定される。また、ＬＵ１２については、例えば、ホスト２からのコマンド受信から、ホスト２へのコマンド完了報告送信までの時間が稼働時間であるとして、稼働率が算定される。稼働率は、例えば、所定時間経過毎に算定され、管理画面４４の表示が更新される。なお、稼働状況の表示項目として、他に、ホスト２からのアクセス回数や、リード要求とライト要求との比率や、転送長等を用いてもよい。管理画面４４の表示によって、ユーザは、ストレージシステム１０００内のストレージノード１の稼働状況（負荷の大きさ）を把握することができる。
【０１６４】
（３）ストレージノード増設およびＬＵ移動処理：
図２６は、本実施例のストレージシステムを用いた計算機システムにおけるストレージノード増設およびＬＵ移動処理の概要を示す説明図である。また、図２７は、本実施例のストレージシステムを用いた計算機システムにおけるストレージノード増設およびＬＵ移動処理の流れを示すフローチャートである。ここで、ストレージノード増設およびＬＵ移動処理は、図８および図９を用いて説明した実施例１におけるストレージノード増設およびＬＵ移動処理と同様の処理である。すなわち、ストレージシステム１０００内にストレージノード１を増設し、既設のストレージノード１のデータを増設するストレージノード１にコピーすると共に、ホスト２のアクセス先を増設するストレージノード１へと切り替える処理である。具体的に、図２６の例では、ストレージノード１ａを有するストレージシステム１０００に、新規にストレージノード１ｂを増設し、既設のストレージノード１ａのＬＵ１２１ａ（ＬＵ１ａ）に格納されているデータを、増設するストレージノード１ｂのＬＵ１２０ｂ（ＬＵ０ｂ）にコピーする。また、ホスト２ｂのアクセス先を、ＬＵ１２１ａ（ＬＵ１ａ）からＬＵ１２０ｂ（ＬＵ０ｂ）へと切り替える。なお、本実施例では、ストレージノード１ａのＬＵ１２１ａ（ＬＵ１ａ）のオーナー権は、ＣＴＬ１０ａｙが保有し、増設するストレージノード１ｂのＬＵ１２０ｂ（ＬＵ０ｂ）のオーナー権は、ＣＴＬ１０ｂｘが保有するものとしている（図２３参照）。
【０１６５】
図２７に示した本実施例のステップ９００１ｓおよび９００２ｓは、図９に示した実施例１のステップ９００１および９００２と同じ処理である。すなわち、ステップ９００１ｓでは、管理者が、ストレージシステム１０００内にストレージノード１ｂを増設し、ステップ９００２ｓでは、管理装置４の構成管理プログラム４１２２（図２６）が、移動元のＬＵ１２であるＬＵ１２１ａ（ＬＵ１ａ）の調査を行う。ここで、本実施例のストレージシステム１０００は、上述したように、各ストレージノード１内のＣＴＬ１０の内、同じ系列に属するＣＴＬ１０同士を互いに接続するための「ノード間ＣＴＬ結合部７」を有するものである。そのため、ステップ９００１ｓにおけるストレージノード１ｂの増設の際にも、既設のストレージノード１ａと増設するストレージノード１ｂとの間に、ノード間ＣＴＬ結合部７が設けられる。具体的には、図２６に示すように、ストレージノード１ａのＣＴＬ１０ａｘと、ストレージノード１ｂのＣＴＬ１０ｂｘとが、ノード間ＣＴＬ結合部７により接続される。同様に、ストレージノード１ａのＣＴＬ１０ａｙと、ストレージノード１ｂのＣＴＬ１０ｂｙとが、ノード間ＣＴＬ結合部７により接続される。
【０１６６】
ステップ９００３ｓでは、構成管理プログラム４１２２が、移動先ＬＵの構築を行う。本実施例における移動先ＬＵ構築の処理は、図９に示した実施例１のステップ９００３における移動先ＬＵ構築の処理と同じ処理である。
【０１６７】
ここで、本実施例のストレージシステム１０００は、「ノード間ＣＴＬ結合部７」を有するため、ストレージノード１間におけるデータ等のコピーを、ノード間ＣＴＬ結合部７を用いて実行できる。本実施例は、この点で、データ等のコピーをスイッチ３を介して実行している実施例１（図８参照）と異なっている。そのため、本実施例では、実施例１においてデータ等のコピーのためだけに行っているターゲットの登録およびイニシエータの登録が不要となる。すなわち、本実施例では、図９に示した実施例１のステップ９００３の一部（ターゲットの登録の部分）からステップ９００６までは、実行不要である。
【０１６８】
ステップ９００７ｓでは、ＬＵ１２１ａ（ＬＵ１ａ）内に格納されているデータのＬＵ１２０ｂ（ＬＵ０ｂ）へのマイグレーションが行われる。データのマイグレーションは、図９に示した実施例１のステップ９００７と同様に行われる。
【０１６９】
ただし、本実施例のストレージシステム１０００は、「ノード間ＣＴＬ結合部７」を有しているため、データのマイグレーションが、スイッチ３を介した経路ではなく、ノード間ＣＴＬ結合部７を用いて行われる点が実施例１とは異なっている。具体的には、ストレージノード１ａ内のＣＴＬ１０ａｙのマイグレーションプログラム（図３）が、ＬＵ１２１ａ（ＬＵ１ａ）に格納されているデータをメモリ１０１（図１７）上に読み出し、読み出したデータを、ノード間ＣＴＬ結合部７を介して、ストレージノード１ｂのＣＴＬ１０ｂｘ内のメモリ１０１上に書き込む。その後、ストレージノード１ｂのＣＴＬ１０ｂｘによって、メモリ１０１上に書き込まれたデータがＬＵ１２０ｂ（ＬＵ０ｂ）に格納される。
【０１７０】
ステップ９００８ｓでは、ストレージノード１ａのＣＴＬ１０ａｙが保有するＬＵ１２１ａ（ＬＵ１ａ）に設定されているターゲットＴａｒｇ−ａ１の情報が、ストレージノード１ｂのＣＴＬ１０ｂｘへとコピーされる。ターゲットの情報のコピーは、図９に示した実施例１のステップ９００８と同様に行われる。ただし、本実施例では、上述したデータのマイグレーションと同様に、ターゲット情報のコピーが、スイッチ３を介した経路ではなく、ノード間ＣＴＬ結合部７を用いて行われる。
【０１７１】
実施例１において行っている移動元イニシエータ削除の処理（図９のステップ９００９）については、本実施例では、データ等のコピーのみのための移動元におけるイニシエータ登録が不要であるため、移動元イニシエータ削除の処理も不要である。そのため、本実施例では、９００８ｓが完了すると、ステップ９０１０ｓに進む。
【０１７２】
図２７に示した本実施例のステップ９０１０ｓから９０１２ｓまでは、図９に示した実施例１のステップ９０１０から９０１２までと同じ処理である。すなわち、ステップ９０１０ｓでは、移動元のＬＵ１２１ａ（ＬＵ１ａ）に設定されているターゲットＴａｒｇ−ａ１の情報が削除される。ステップ９０１１ｓでは、移動先のＬＵ１２０ｂ（ＬＵ０ｂ）に設定されたターゲットＴａｒｇ−ａ１の情報が変更される。ステップ９０１２ｓでは、ディスカバリ処理が実行される。
【０１７３】
以上の処理により、本実施例では、実施例１と同様に、データおよびアクセス情報（ターゲットおよびイニシエータの情報）が、移行元のＬＵ１２１ａ（ＬＵ１ａ）から移行先のＬＵ１２０ｂ（ＬＵ０ｂ）へと引き継がれる。
【０１７４】
本実施例では、データおよびアクセス情報の移行が、ノード間ＣＴＬ結合部７を用いて行われる。すなわち、データおよびアクセス情報の移行が、ホスト２とＣＴＬ１０との間のアクセスパスを介することなく行われる。そのため、データおよびアクセス情報の移行によるホスト２とＣＴＬ１０との間のアクセスへの影響を抑制することができる。また、データおよびアクセス情報の移行が、ＣＴＬ１０のメモリ１０１間のコピーによって行われるので、移行処理の高速化を図ることができる。さらに、データおよびアクセス情報の移行のためだけに用いるイニシエータおよびターゲットの登録が不要であるため、移行処理の簡素化、高速化を図ることができる。
【０１７５】
（４）管理画面を用いたストレージシステムの設定等：
上述したように、本実施例の管理画面は、ユーザによるストレージシステム１０００の設定等の際にも用いられる。図２８から図３０は、管理画面を用いたストレージシステムの設定等の一例を示す説明図である。図２８から図３０には、図２６および図２７を用いて説明したストレージノード増設およびＬＵ移動処理を実行する際の、ユーザによる管理画面４２（図２３参照）を用いた操作の様子を示している。
【０１７６】
図２８には、ストレージシステム１０００に、ストレージノード１ｂを増設した直後の管理画面４２の様子を示している。この時点では、ストレージシステム１０００内にストレージノード１ｂのコントローラ１０およびディスク１２０は設置されているが、ストレージノード１ｂについてのＬＵ１２の構築は未実施である。そのため、図２８に示した管理画面４２には、増設したストレージノード１ｂについて、ディスク１２０の構成のみが表示され、ＬＵ１２の構成は表示されていない。
【０１７７】
図２９には、ストレージシステム１０００について、ＬＵ１２の構築を実行する際の管理画面４２の様子を示している。例えば、ユーザは、管理画面４２上において、ストレージノード１ｂのＬＵ１２構成表示欄に新規のＬＵ１２（ＬＵ０ｂ）を作成するために、ＬＵ１２（ＬＵ０ｂ）を構成するディスク１２０をディスク１２０構成表示欄で選択する。この後、画面から「ＬＵ作成」メニューを選択してＬＵ１２（ＬＵ０ｂ）を作成する。このようにして、ユーザは、ストレージノード１ｂにおけるＬＵ１２とディスク１２０とを対応付けてＬＵ１２作成の実行指示を行うことができる。
【０１７８】
図３０は、ストレージシステム１０００について、ＬＵ１２移動処理を実行する際の管理画面４２の様子を示している。例えば、ユーザは、管理画面４２上において、移動元となるＬＵ１２（ＬＵ１ａ）の表示を、移動先となるＬＵ１２（ＬＵ０ｂ）の表示上にドラッグアンドドロップする。このようにして、ユーザは、ＬＵ１２（ＬＵ１ａ）からＬＵ１２（ＬＵ０ｂ）へのデータのコピーや、ＬＵ１２（ＬＵ１ａ）からＬＵ１２（ＬＵ０ｂ）へのアクセス情報の移行の実行指示を行うことができる。この際、データ移行する旨の確認画面を表示する等して、確実かつ安全にデータの移行を支援することが望ましい。以上、本実施例に例示した通り、複数のストレージノードＳＮを１台（もしくは複数のラックで構成した１セット）のラック（群）に積載し構築したストレージシステムを、管理装置の同一画面上で、あたかも１台の従来型の大規模ストレージ装置を扱うがごとく、シングルシステムイメージにより管理・操作することができる。
【０１７９】
（５）実施例７の変形例：
図１８を用いて説明した本実施例におけるノード間ＣＴＬ結合部７の詳細は、例えば、以下のように変形することも可能である。図３１は、実施例７の第１の変形例としてのノード間ＣＴＬ結合部の詳細を示す説明図である。図３１に示す第１の変形例では、２つの結合部スイッチ６（結合部スイッチ６ｘおよび結合部スイッチ６ｙ）が設けられる。２つの結合部スイッチ６は、ＣＴＬ１０の２つの系列（ｘ系列およびｙ系列）にそれぞれ対応している。そして、ｘ系列に対応した結合部スイッチ６ｘは、接続線７３によって、ｘ系列に属する各ＣＴＬ１０のスイッチ１０６と接続される。同様に、ｙ系列に対応した結合部スイッチ６ｙは、接続線７３によって、ｙ系列に属する各ＣＴＬ１０のスイッチ１０６と接続される。すなわち、本変形例では、ノード間ＣＴＬ結合部７が、系列毎に、結合部スイッチ６と、結合部スイッチ６とスイッチ１０６とを接続する接続線７３とから構成される。このようにすれば、ＣＴＬ１０間を接続するための構成を簡素化することができる。なお、図３１の例では、結合部スイッチ６とスイッチ１０６とを接続する接続線７３、およびストレージノード１内のＣＴＬ１０間を接続するノード内ＣＴＬ間接続線のそれぞれは、１本の線によって構成されているが、図１８に示したように、これらを２本の線の組によって構成してもよい。
【０１８０】
図３２は、実施例７の第２の変形例としてのノード間ＣＴＬ結合部の詳細を示す説明図である。図３２に示す第２の変形例では、図３１に示した第１の変形例と同様に、２つの結合部スイッチ６が設けられ、ノード間ＣＴＬ結合部７が、系列毎に、結合部スイッチ６と、結合部スイッチ６とスイッチ１０６とを接続する接続線７３とから構成される。さらに、第２の変形例では、２つの結合部スイッチ６が、接続線７４によって接続されており、この接続線７４を介して、ストレージノード１内の２つのＣＴＬ１０が接続される。このようにすれば、ＣＴＬ１０間を接続するための構成をさらに簡素化することができる。なお、第２の変形例においても、各接続線を２本の線の組によって構成してもよい。
【０１８１】
図３３は、実施例７の第３の変形例としてのノード間ＣＴＬ結合部の詳細を示す説明図である。図３３に示す第３の変形例では、ノード間ＣＴＬ結合部７が、系列毎に、ホスト等との接続のためのスイッチ３（図１６参照）と、スイッチ３とスイッチ１０６とを接続する接続線とから構成される。第３の変形例では、ストレージノード１間のＣＴＬ１０が、スイッチ３を介して接続されるため、ストレージノード１間におけるデータやアクセス情報のコピーは、実施例１と同様に行われる。
【実施例８】
【０１８２】
図３４は、本発明の実施例８としてのストレージシステムを適用可能な計算機システム８におけるストレージノード増設およびＬＵ移動処理の概要を示す説明図である。本実施例のストレージノード増設およびＬＵ移動処理は、図８および図９を用いて説明した実施例１におけるストレージノード増設およびＬＵ移動処理と同様の処理である。すなわち、ストレージシステム１０００内にストレージノード１（ストレージノード１ｂ）を増設し、既設のストレージノード１（ストレージノード１ａ）のデータを増設するストレージノード１ｂにコピーすると共に、ホスト２ｂのアクセス先を増設するストレージノード１ｂへと切り替える処理である。
【０１８３】
本実施例のストレージシステム１０００は、ホスト２とストレージノード１との接続形態が、実施例１とは異なっている。具体的には、実施例１では、ホスト２とストレージノード１とがＩＰネットワークによって接続され、ホスト２とストレージノード１との間のデータプロトコルとしてｉＳＣＳＩプロトコルが用いられている。これに対して、本実施例では、ホスト２とストレージノード１とがＦＣ（ファイバチャネル）によって接続され、ホスト２とストレージノード１との間のデータプロトコルとしてＦＣプロトコルが用いられる。
【０１８４】
ここで、ＦＣプロトコルを用いる場合には、上述したように、ターゲットネームとしてＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）が用いられるが、ＷＷＮはシステム内で固有に付されるため、あるストレージノード１のターゲットを他のストレージノード１にコピーすると、そのターゲットネームが変更されることとなる。例えば、図３４に示すように、ストレージノード１ａ内のターゲットＴａｒｇ−ａ１をストレージノード１ｂにコピーすると、そのターゲットネームはＴａｒｇ−ｂ０に変わってしまう。従って、このままでは、ストレージノード１ｂが、ホスト２ｂのイニシエータＩｎｉｔ−ｂｏからのアクセスを引き継ぐことができない。そのため、本実施例では、仮想ポート３０２の仮想ターゲット（ＶＴａｒｇ）を用いて、ホスト２とストレージノード１とのアクセスの引き継ぎを行っている。以下、この点について、詳述する。
【０１８５】
図３４に示すように、本実施例のストレージシステム１０００内のスイッチ３は、仮想ポート３０２と、ネーム管理プログラム３１２２と、を有している。仮想ポート３０２には、仮想ターゲットＶＴａｒｇ−ａ０が設定されている。また、ネーム管理プログラム３１２２は、実施例１においてネームサーバ５が有するネーム管理プログラム５１２２と同様のプログラムである。なお、本実施例のストレージシステム１０００は、ネームサーバ５を有していないが、本実施例においてストレージシステム１０００がネームサーバ５を有し、そのネームサーバ５がネーム管理プログラム３１２２を有するとしてもよい。
【０１８６】
ネーム管理プログラム３１２２は、仮想ターゲット管理テーブル３１２４を含んでいる。図３５は、仮想ターゲット管理テーブル３１２４の概要を示す説明図である。図３５（ａ）には、ホスト２とストレージノード１とのアクセスの引き継ぎを行う前の仮想ターゲット管理テーブル３１２４を示している。図３５に示すように、仮想ターゲット管理テーブル３１２４は、イニシエータと仮想ターゲットとの関係、および仮想ターゲットとターゲットとの関係を定義している。例えば、図３５（ａ）の状態では、仮想ターゲット管理テーブル３１２４によって、ホスト２ｂの有するイニシエータＩｎｉｔ−ｂ０のアクセス先として、仮想ターゲットＶＴａｒｇ−ａ０が対応付けられている。また、仮想ターゲットＶＴａｒｇ−ａ０と、ストレージノード１ａの有するＬＵ１２１ａ（ＬＵ１ａ）に設定されたターゲットＴａｒｇ−ａ１と、が対応付けられている。そのため、仮想ターゲット管理テーブル３１２４によって、イニシエータＩｎｉｔ−ｂ０とターゲットＴａｒｇ−ａ１とが、仮想ポート３０２の仮想ターゲットＶＴａｒｇ−ａ０を介して対応付けられていることとなる。
【０１８７】
ストレージノード１ａのターゲットＴａｒｇ−ａ１が、ストレージノード１ｂのＣＴＬ１０ｂへとコピーされると、そのターゲットのターゲットネームは、Ｔａｒｇ−ｂ０に変更される。ここで、ネーム管理プログラム３１２２は、ストレージノード１ａおよび１ｂから構成通知を受領すると、通知に基づき、仮想ターゲット管理テーブル３１２４を更新する。図３５（ｂ）には、更新された仮想ターゲット管理テーブル３１２４を示している。更新後の仮想ターゲット管理テーブル３１２４によって、仮想ポート３０２の仮想ターゲットＶＴａｒｇ−ａ０と対応付けられるターゲットが、ストレージノード１ｂの有するＬＵ１２０ｂ（ＬＵ０ｂ）に設定されたターゲットＴａｒｇ−ｂ０であることが定義される。
【０１８８】
ネーム管理プログラム３１２２は、仮想ターゲット管理テーブル３１２４の更新後、仮想ポート３０２に対し、仮想ターゲット管理テーブル３１２４に変更があったことを通知する。通知を受けた仮想ポート３０２は、ディスカバリ処理を実行し、仮想ポート３０２の仮想ターゲットＶＴａｒｇ−ａ０に対応付けられるターゲットとしてＴａｒｇ−ｂ０を設定する。そのため、イニシエータＩｎｉｔ−ｂ０のアクセス先が仮想ポート３０２の仮想ターゲットＶＴａｒｇ−ａ０であることは不変でありながら、仮想ターゲットＶＴａｒｇ−ａ０を介して、イニシエータＩｎｉｔ−ｂ０とターゲットＴａｒｇ−ｂ０とが対応付けられることとなる。以上のようにして、ホスト２とストレージノード１とがＦＣによって接続されたストレージシステム１０００においても、ホスト２とストレージノード１とのアクセスの引き継ぎを行うことができる。
【０１８９】
以上説明した実施例７および実施例８のストレージシステムでは、ストレージノードＳＮの増設が繰り返し行われても、管理者はシングルシステムイメージでストレージシステムを管理することができる。そのため、従来型のストレージシステムを複数台ばらばらに管理する場合と比較して、ストレージシステムの管理コストを大幅に低減することができる。
【０１９０】
また、以上説明した実施例１ないし実施例８のストレージシステムでは、以下の４つの効果を得ることができる。第１に、小規模で低コストに構成されたストレージノードＳＮを複数台集合することで、大規模でコストパフォーマンスの良いストレージシステムを提供することができる。第２に、容量や性能の拡大要求に従い、ストレージノードＳＮ単位での増設が可能となり、常に最適コストで構成されたスケーラブルなストレージシステムを提供することができる。第３に、ストレージノードＳＮの増減設の際にホストのアプリケーションに透過なデータマイグレーションが実現できるので、寿命によってストレージノードＳＮの交換が必要な際にも、運用を停止することが無いため、ストレージノードＳＮの寿命を超えた長期のデータ保存を実現することができる。第４に、ストレージノードＳＮの組み合わせにより、小規模から大規模まで、また、各種アプリケーションに応じた柔軟なシステム構成を実現できるので、製品開発の際に製品の種類（製品ラインナップ数）を少なくすることができる。
【図面の簡単な説明】
【０１９１】
【図１】第一の実施形態における計算機システムの構成例を示す図である。
【図２】ストレージノードの構成の一例を示す図である。
【図３】ストレージノードが備えるメモリの構成の一例を示す図である。
【図４】論理ユニットの構成の一例を示す図である。
【図５】LU管理テーブルの構成の一例を示す図である
【図６】ネームサーバの構成の一例を示す図である。
【図７（ａ）】データ移行途中におけるネーム管理テーブルの一例を示す図である。
【図７（ｂ）】データ移行後におけるネーム管理テーブルの一例を示す図である。
【図８】ストレージノード間で論理ユニット内のデータを移動する処理の一例を示す模式図である。
【図９】第一実施形態において、ストレージシステムに新規SNを増設して、既存のSNに存在するLUから新規SNが有するLUへデータを移行する処理の一例を示すフローチャートである。
【図１０】第二実施形態において、ネットワークに新規SNを増設して、既存のSNに存在するLUから新規SNが有するLUへデータを移行する処理の一例を示すフローチャートである。
【図１１】第三実施形態におけるシステム構成例を示す図である。
【図１２】第四実施形態におけるシステム構成例を示す図である。
【図１３】第五実施形態におけるシステム構成例を示す図である。
【図１４】第六実施形態におけるシステム構成例を示す図である。
【図１５（ａ）】データ移行前のシステム構成を表示した管理装置4の表示画面の一例を示す図である。
【図１５（ｂ）】データ移行後のシステム構成を表示した管理装置4の表示画面の一例を示す図である。
【図１５（ｃ）】データ移行前のLU、ターゲット、イニシエータの対応関係を表示した管理装置4の表示画面の一例を示す図である。
【図１５（ｄ）】データ移行後のLU、ターゲット、イニシエータの対応関係を示した管理装置4の表示画面の一例を示す図である。
【図１６】本発明の実施例７としてのストレージシステムを適用可能な計算機システムの構成を概略的に示す説明図。
【図１７】実施例７におけるストレージノードの構成を示す説明図。
【図１８】ストレージノード内のノード間ＣＴＬ結合部の詳細を示す説明図。
【図１９】実施例７におけるメモリマップを示す説明図。
【図２０】実施例７におけるストレージシステム１０００の製品形態の一例を示す説明図。
【図２１】実施例７におけるストレージシステム１０００の製品形態の他の一例を示す説明図。
【図２２】ストレージシステムの管理画面の第１の例を示す説明図。
【図２３】ストレージシステムの管理画面の第２の例を示す説明図。
【図２４】ストレージシステムの管理画面の第３の例を示す説明図。
【図２５】ストレージシステムの管理画面の第４の例を示す説明図。
【図２６】本実施例のストレージシステムを用いた計算機システムにおけるストレージノード増設およびＬＵ移動処理の概要を示す説明図。
【図２７】本実施例のストレージシステムを用いた計算機システムにおけるストレージノード増設およびＬＵ移動処理の流れを示すフローチャート。
【図２８】管理画面を用いたストレージシステムの設定等の一例を示す説明図。
【図２９】管理画面を用いたストレージシステムの設定等の一例を示す説明図。
【図３０】管理画面を用いたストレージシステムの設定等の一例を示す説明図。
【図３１】実施例７の第１の変形例としてのノード間ＣＴＬ結合部の詳細を示す説明図。
【図３２】実施例７の第２の変形例としてのノード間ＣＴＬ結合部の詳細を示す説明図。
【図３３】実施例７の第３の変形例としてのノード間ＣＴＬ結合部の詳細を示す説明図。
【図３４】本発明の実施例８としてのストレージシステムを適用可能な計算機システム８におけるストレージノード増設およびＬＵ移動処理の概要を示す説明図。
【図３５】仮想ターゲット管理テーブル３１２４の概要を示す説明図。
【符号の説明】
【０１９２】
1…ストレージノード(SN)
10…コントローラ(CTL)
100…CPU
101…メモリ
120…論理ユニット（LU）
1000…ストレージシステム
1111…LU管理テーブル
1112…ターゲット管理テーブル
1200…ディスク
2…ホスト
2112…イニシエータ管理テーブル
3…スイッチ
4…管理装置
4122…構成管理プログラム
5…ネームサーバ
5111…ネーム管理テーブル
5122…ネーム管理プログラム
６…結合部スイッチ
４１…管理画面
４２…管理画面
４３…管理画面
４４…管理画面
１０６…スイッチ
３０２…仮想ポート
１１００…ラック
１２００…コントローラ筐体
１３００…ディスク筐体
３１２２…ネーム管理プログラム
３１２４…仮想ターゲット管理テーブル
【図１】
0004718851.tif 000002
【図２】
0004718851.tif 000003
【図３】
0004718851.tif 000004
【図４】
0004718851.tif 000005
【図５】
0004718851.tif 000006
【図６】
0004718851.tif 000007
【図７（ａ）】
0004718851.tif 000008
【図７（ｂ）】
0004718851.tif 000009
【図８】
0004718851.tif 000010
【図９】
0004718851.tif 000011
【図１０】
0004718851.tif 000012
【図１１】
0004718851.tif 000013
【図１２】
0004718851.tif 000014
【図１３】
0004718851.tif 000015
【図１４】
0004718851.tif 000016
【図１５（ａ）】
0004718851.tif 000017
【図１５（ｂ）】
0004718851.tif 000018
【図１５（ｃ）】
0004718851.tif 000019
【図１５（ｄ）】
0004718851.tif 000020
【図１６】
0004718851.tif 000021
【図１７】
0004718851.tif 000022
【図１８】
0004718851.tif 000023
【図１９】
0004718851.tif 000024
【図２０】
0004718851.tif 000025
【図２１】
0004718851.tif 000026
【図２２】
0004718851.tif 000027
【図２３】
0004718851.tif 000028
【図２４】
0004718851.tif 000029
【図２５】
0004718851.tif 000030
【図２６】
0004718851.tif 000031
【図２７】
0004718851.tif 000032
【図２８】
0004718851.tif 000033
【図２９】
0004718851.tif 000034
【図３０】
0004718851.tif 000035
【図３１】
0004718851.tif 000036
【図３２】
0004718851.tif 000037
【図３３】
0004718851.tif 000038
【図３４】
0004718851.tif 000039
【図３５】
0004718851.tif 000040