(57)【特許請求の範囲】
【請求項１】
複数の物理ディスクによって提供される少なくとも１の論理ボリュームと、少なくとも１の前記論理ボリュームによって構成され、単位記憶領域の集合として管理されている第１のプールとを管理し、前記第１のプールを識別するための識別子であるプール識別子と、前記第１のプールに含まれる前記論理ボリュームを識別するための識別子であるボリューム識別子と、前記第１のプールを構成している前記単位記憶領域を識別するための識別子である単位記憶領域識別子との間の対応付けを保持している第１の構成情報を備える第１の構成情報保持部を備えるストレージ制御部を備えている第１のストレージ装置と、
前記第１のストレージ装置と通信可能に接続され、複数の物理ディスクによって提供される少なくとも１の論理ボリュームと、少なくとも１の前記論理ボリュームによって構成され、単位記憶領域の集合として管理されている第２のプールを管理し、前記第２のプールを識別するための識別子であるプール識別子と、前記第２のプールに含まれる前記論理ボリュームを識別するための識別子であるボリューム識別子と、前記第２のプールを構成している前記単位記憶領域を識別するための識別子である単位記憶領域識別子との間の対応付けを保持している第２の構成情報を備える第２の構成情報保持部を備えるストレージ制御部を備えている第２のストレージ装置と、
を有するストレージシステムであって、
前記第２のストレージ装置が、
前記第１のストレージ装置の前記第１の構成情報保持部から前記第１の構成情報を取得して前記第１のプールに含まれる論理ボリュームを特定し、前記特定した第１のストレージ装置の論理ボリュームを外部のボリュームとして管理するための仮想的なボリュームである外部ボリュームを作成し、作成した前記外部ボリュームと前記特定した第１のストレージ装置の論理ボリュームとを対応付ける外部接続処理部と、
前記取得した前記第１の構成情報の前記第１のプールの識別子を前記第２のプール識別子に書き換え、前記第１のプールを構成する前記単位記憶領域の前記単位記憶領域識別子を前記第２のプールを構成する単位記憶領域の前記単位記憶領域識別子とは異なる識別子に書き換え、これらの書き換えを行った第１の構成情報の内容を前記第２の構成情報に追加するプール結合処理部と、
を備え、
前記第１のストレージ装置は、
外部装置に提供される仮想ボリュームを作成し、作成された前記仮想ボリュームに前記単位記憶領域であるセグメントを前記第１のプールから割り当てることによって、前記仮想ボリュームの容量を制御するＶＶｏｌ処理部と、
前記プールを構成する論理ボリュームのボリューム識別子と、前記仮想ボリュームに割り当てられる前記セグメントと前記論理ボリュームとの対応関係を管理するセグメント処理部と、
前記仮想ボリュームに対して、ボリューム単位でデータのコピーに関する処理を行うコピー制御部と、
を備え、
前記プール結合処理部が、前記第２の構成情報に前記書き換えを行った前記第１の構成情報を追加するときに、前記第２の構成情報に含まれるボリューム識別子と、前記書き換えを行った第１の構成情報に含まれるボリューム識別子とが重複すると判定した場合、前記書き換えを行った第１の構成情報に含まれるボリューム識別子を前記第２の構成情報に含まれるボリューム識別子と重複しないように変更し、
前記第１のストレージ装置は、前記第１のプールとは異なる第３のプールを有し、前記仮想ボリュームに格納されているデータのコピー先であって、前記第３のプールの前記単位記憶領域が割り当てられる副仮想ボリュームを備え、
前記第１の構成情報はさらに、前記仮想ボリュームに付された仮想ボリューム識別子と、前記副仮想ボリュームに付された仮想ボリューム識別子との間の対応付けであるコピー関係を保持しており、
前記プール結合処理部は、前記第２の構成情報に前記第１の構成情報を追加するときに、前記コピー関係を参照し、前記第１のプールと前記第３のプールとを、前記第２のストレージ装置の異なるプールへ結合するために、前記第１のプールのプール識別子と、前記第３のプールのプール識別子とを異なる識別子に書き換えて前記第２の構成情報に追加する、
ストレージシステム。
【請求項２】
請求項１記載のストレージシステム１であって、
前記第１のストレージ装置及び前記第２のストレージ装置は、それぞれ、
前記第１及び第２のストレージ装置に接続された外部装置が認識する論理ボリュームの識別子と、ストレージ装置で使用される当該論理ボリュームの識別子であるボリューム識別子との間の対応付けを規定しているＬＵマッピングを管理するＬＵマップ処理部、
を備え、
前記第１のストレージ装置はさらに、
外部からの要求に対応してストレージ装置にある各構成情報を格納しているテーブルを外部に送信するとともに、外部から前記各構成情報のテーブルを受信し、受信したテーブルに従って、ストレージ装置内の構成を変更する機能を有する構成情報通信部を備えている、ストレージシステム。
【請求項３】
請求項１に記載のストレージシステムであって、
前記第１の構成情報にはさらに、前記第１のプールを構成する前記単位記憶領域から構成される仮想的な論理ボリュームである仮想ボリュームを識別するための識別子である仮想ボリューム識別子と、前記ボリューム識別子との対応付けが保持されており、
前記プール結合処理部は、前記第１のストレージ装置の前記仮想ボリュームを前記第２のストレージ装置で利用可能とするために、取得した前記第１の構成情報において、前記仮想ボリューム識別子に対応付けられている前記ボリューム識別子を前記外部ボリュームの識別子に書き換える、ストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、
前記第２の構成情報にはさらに、前記第２のプールを構成する前記単位記憶領域から構成される仮想的な論理ボリュームである仮想ボリュームを識別するための識別子である仮想ボリューム識別子と、前記ボリューム識別子との対応付けが保持されており、
前記第２ストレージ装置は、前記外部ボリュームと前記特定した第１のストレージ装置の論理ボリュームとを対応付けるときに、前記第１の構成情報に含まれる仮想ボリューム識別子と、前記第２の構成情報に含まれる仮想ボリューム識別子とが重複する場合、前記第１の構成情報に含まれる仮想ボリューム識別子を、前記第２の構成情報に含まれる仮想ボリューム識別子と重複しないように変更する、ストレージシステム。
【請求項５】
請求項１に記載のストレージシステムであって、
前記プール結合処理部は、前記第２の構成情報に前記第１の構成情報を追加するときに、前記第１のプールのプール識別子と、前記第３のプールのプール識別子に、前記コピー関係があることを示す情報を付加する、ストレージシステム。
【請求項６】
請求項１に記載のストレージシステムであって、
前記プール結合処理部は、前記第２の構成情報に前記第１の構成情報を追加するときに、前記第１の構成情報に含まれる仮想ボリューム識別子に前記プール識別子を介して対応付けられている前記ボリューム識別子によって特定されるデータを、前記外部ボリュームから前記第２のプールから作成される論理ボリュームにコピーし、
前記第１のストレージ装置にある仮想ボリュームに格納されているデータの記憶領域が、前記第２のプールによって提供されるようにするために、前記第１の構成情報に含まれる前記仮想ボリュームに対応付けられた前記プール識別子と前記プール識別子と対応付けられたボリューム識別子を、前記データのコピー先の第２のプールのプール識別子及びボリューム識別子に書き換える、ストレージシステム。
【請求項７】
請求項１に記載のストレージシステムであって、
前記第１の構成情報はさらに、前記第１のプールに含まれている前記論理ボリュームに付加された属性情報を保持しており、
前記プール結合処理部は、前記第１のプールを構成する前記論理ボリュームを前記外部ボリュームとして対応付けるときに、前記第１の構成情報を参照して前記外部ボリュームに対応付けられる前記論理ボリュームが有する属性情報を前記第１の構成情報に付加する、ストレージシステム。
【請求項８】
請求項７に記載のストレージシステムであって、
前記第２の構成情報はさらに、前記第２のプールに含まれている前記論理ボリュームに付加された属性情報を保持しており、
前記プール結合処理部は、前記第１の構成情報を前記第２の構成情報に追加するときに、前記第１のプールに統合された前記論理ボリュームの属性情報と前記第２のプールに統合された前記論理ボリュームの属性情報が同一であると判定した場合に、前記第１の構成情報に含まれる前記プール識別子を前記第２のプールの前記プール識別子に書き換える、ストレージシステム。
【請求項９】
請求項１に記載のストレージシステムであって、
前記第２のストレージ装置は、
外部装置とのデータＩＯを管理する管理インターフェイスを備え、
前記プール結合処理部は、前記管理インターフェイス及び前記外部装置を通じて、プール結合の対象となるプールを選択可能とするユーザインターフェイスを出力し、
前記ユーザインターフェイスから、前記外部装置及び前記管理インターフェイスを通じて選択されたプールの結合処理を実行する、ストレージシステム。
【請求項１０】
請求項１に記載のストレージシステムであって、
前記第１のプールが、前記第１のストレージ装置に代えて、前記第２のストレージ装置に備えられており、
前記第２のストレージ装置の前記プール結合処理部が、
前記第２の構成情報に基づいて前記第１のプールに含まれる論理ボリュームを特定し、
前記第２の構成情報において、前記第１のプールに含まれる前記論理ボリュームのボリューム識別子を、前記第２のプールに含まれる前記論理ボリュームの前記ボリューム識別子に書き換える、ストレージシステム。
【請求項１１】
請求項１に記載のストレージシステムであって、
前記第１のストレージ装置及び前記第２のストレージ装置と通信可能に接続され、前記第１のストレージ装置と前記第２のストレージ装置とを管理するための管理計算機を備え、
前記管理計算機は、
前記第１のストレージ装置から前記第１の構成情報を取得し、
前記第２のストレージ装置から前記第２の構成情報を取得し、
取得した前記第１の構成情報から前記第１のプールに含まれている前記論理ボリュームを前記外部ボリュームとして対応付ける旨の命令を前記外部ボリューム処理部に送信し、
前記第１の構成情報に含まれる前記第１のプールに含まれている前記論理ボリュームの前記ボリューム識別子を、前記第２のストレージ装置に対応付けられた前記外部ボリュームの前記ボリューム識別子に書き換えた前記第１の構成情報を、前記第２の構成情報に追加し、
前記第１の構成情報を前記第２のストレージ装置に送信する、ストレージシステム。
【請求項１２】
請求項１１に記載のストレージシステムであって、
前記管理計算機は入力装置及び出力装置を有し、
前記出力装置を通じて、結合の対象となる前記プールを選択可能とするユーザインターフェイスを出力し、
前記ユーザインターフェイスから、前記入力装置を通じて入力された前記プールの選択を受け付ける、ストレージシステム。
【請求項１３】
複数の物理ディスクによって提供される少なくとも１の論理ボリュームと、少なくとも１の前記論理ボリュームによって構成され、単位記憶領域の集合として管理されている第１のプールとを管理し、前記第１のプールを識別するための識別子であるプール識別子と、前記第１のプールに含まれる前記論理ボリュームを識別するための識別子であるボリューム識別子と、前記第１のプールを構成している前記単位記憶領域を識別するための識別子である単位記憶領域識別子との間の対応付けを保持している第１の構成情報を備える第１の構成情報保持部を備えるストレージ制御部を備えている第１のストレージ装置と、
前記第１のストレージ装置と通信可能に接続され、複数の物理ディスクによって提供される少なくとも１の論理ボリュームと、少なくとも１の前記論理ボリュームによって構成され、単位記憶領域の集合として管理されている第２のプールを管理し、前記第２のプールを識別するための識別子であるプール識別子と、前記第２のプールに含まれる前記論理ボリュームを識別するための識別子であるボリューム識別子と、前記第２のプールを構成している前記単位記憶領域を識別するための識別子である単位記憶領域識別子との間の対応付けを保持している第２の構成情報を備える第２の構成情報保持部を備えるストレージ制御部を備えている第２のストレージ装置と、
を有し、
前記第２のストレージ装置は、
前記第１のストレージ装置の前記第１の構成情報保持部から前記第１の構成情報を取得して前記第１のプールに含まれる論理ボリュームを特定し、前記特定した第１のストレージ装置の論理ボリュームを外部のボリュームとして管理するための仮想的なボリュームである外部ボリュームを作成し、作成した前記外部ボリュームと前記特定した第１のストレージ装置の論理ボリュームとを対応付け、
前記取得した前記第１の構成情報の前記第１のプールの識別子を前記第２のプール識別子に書き換え、前記第１のプールを構成する前記単位記憶領域の前記単位記憶領域識別子を前記第２のプールを構成する単位記憶領域の前記単位記憶領域識別子とは異なる識別子に書き換え、これらの書き換えを行った第１の構成情報の内容を前記第２の構成情報に追加し、
前記第１のストレージ装置は、
外部装置に提供される仮想ボリュームを作成し、作成された前記仮想ボリュームに前記単位記憶領域であるセグメントを前記第１のプールから割り当てることによって、前記仮想ボリュームの容量を制御し、
前記プールを構成する論理ボリュームのボリューム識別子と、前記仮想ボリュームに割り当てられる前記セグメントと前記論理ボリュームとの対応関係を管理し、
前記仮想ボリュームに対して、ボリューム単位でデータのコピーに関する処理を行い、
前記第１のストレージ装置は、前記第１のプールとは異なる第３のプールを有し、前記仮想ボリュームに格納されているデータのコピー先であって、前記第３のプールの前記単位記憶領域が割り当てられる副仮想ボリュームを備え、
前記第１の構成情報はさらに、前記仮想ボリュームに付された仮想ボリューム識別子と、前記副仮想ボリュームに付された仮想ボリューム識別子との間の対応付けであるコピー関係を保持している、
ストレージシステムの運用方法であって、
前記第２のストレージ装置が、
前記第２の構成情報に前記書き換えを行った前記第１の構成情報を追加するときに、前記第２の構成情報に含まれるボリューム識別子と、前記書き換えを行った第１の構成情報に含まれるボリューム識別子とが重複すると判定した場合、前記書き換えを行った第１の構成情報に含まれるボリューム識別子を前記第２の構成情報に含まれるボリューム識別子と重複しないように変更し、
前記第２の構成情報に前記第１の構成情報を追加するときに、前記コピー関係を参照し、前記第１のプールと前記第３のプールとを、前記第２のストレージ装置の異なるプールへ結合するために、前記第１のプールのプール識別子と、前記第３のプールのプール識別子とを異なる識別子に書き換えて前記第２の構成情報に追加する
ストレージシステムの運用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムの運用方法に係わり、特にストレージ装置の記憶容量をより効率的に外部装置から利用することを可能とするストレージシステム及びストレージシステムの運用方法に関する。
【背景技術】
【０００２】
データを格納する記憶領域をホスト計算機に提供するストレージシステムは、データを格納するために多数のハードディスク等の物理ディスクを備える。ストレージシステムは、ＲＡＩＤ（Redundant Array of Independent (or Inexpensive） Disks）の技術によって、複数の物理ディスクの記憶領域を冗長化し、ＲＡＩＤグループを構成する。さらに、ストレージシステムは、ＲＡＩＤグループの一部からホスト計算機が要求する容量の記憶領域として論理ボリュームを作成し、作成された論理ボリュームをホスト計算機に提供する。
【０００３】
さらに、ストレージシステムに関してシンプロビジョニング（Thin Provisioning）技術がある。シンプロビジョニングは、ホスト計算機へ固定された容量の記憶領域として論理ボリュームを提供するのではなく、仮想的な論理ボリューム（仮想ボリューム，Virtual Volume、以下「ＶＶｏｌ」）をホスト計算機に提供しておき、ホスト計算機からストレージシステムへのデータ書き込み処理等に応じて、複数の論理ボリュームで作成された記憶領域（ボリュームプール（Volume Pool）からセグメントを単位とする記憶領域を仮想ボリュームに割り当てる技術である。シンプロビジョニングの技術を用いることによって、ホスト計算機に提供する記憶容量を動的に拡張することができるストレージシステムがある（例えば、特許文献１）。
【０００４】
なお、セグメントとは、ボリュームプールに含まれる論理ボリューム（Pool Volume、以下「ＰｏｏlＶｏｌ」）を論理ブロックアドレス（Logical Block Address。以下、「ＬＢＡ」）等によって、適当な容量に分割して作成された記憶領域である。ここで、ＬＢＡとは、ホスト計算機がストレージシステムとの間でデータを読み書きする場合に、論理ボリューム上の位置を指定するために用いるアドレスである。
【０００５】
また、ＳＡＮ（Storage Area Network）等のデータ通信用のネットワークによって接続された２台のストレージシステム（ストレージシステムＡ及びストレージシステムＢ）において、一方のストレージシステムＡが備える論理ボリュームを、ストレージシステムＢが自身に作成した仮想的なボリュームである外部ボリュームに対応付けることによって、ストレージシステムＡの論理ボリュームをストレージシステムＢに取り込み、取り込んだ論理ボリュームをストレージシステムＢ側のボリュームとしてホスト計算機等に提供する（以下、「外部接続」という。）技術がある（例えば、特許文献２）。
【０００６】
外部接続の技術を用いることによって、論理ボリュームを取り込むストレージシステムＢの容量を拡張することができる。また、論理ボリュームを取りこんだストレージシステムＢがホスト計算機への論理ボリュームをホスト計算機に提供するので、ストレージシステムの管理が容易となる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１５９１５号公報
【特許文献２】特開平１０−２８３２７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ボリュームプールおよび前記ボリュームプールを使用する仮想ボリュームを備えるストレージシステムＡと、同じくボリュームプールと仮想ボリュームを備えるストレージシステムＢとが存在するとき、それぞれのボリュームプールの使用率が異なっており、使用率が低いボリュームプールを有するストレージシステムＡが存在する一方で、使用率が高いボリュームプールを有するストレージシステムＢも存在する。さらにストレージシステムＢがストレージシステムＡより性能が高い場合には、ストレージシステムＢのボリュームプールに前記ストレージシステムＡの仮想ボリュームに格納されているデータおよびストレージシステムＡのボリュームプールが使用していた記憶領域を組み込むことによって、記憶領域使用率の不均衡をなくし、かつ性能が良いストレージシステムＢで一元管理したいケースがある。
【０００９】
従来技術によりこれを実現する場合、以下の手順を踏む必要がある。すなわち、まずストレージシステムＡの仮想ボリュームと同容量の仮想ボリュームを、ストレージシステムＢ上に作成し、ストレージシステムＢ上の仮想ボリュームにストレージシステムＡの仮想ボリュームをコピーする。そして、ストレージシステムＡの仮想ボリュームおよびボリュームプールを削除する。その後、ストレージシステムＡのボリュームプールを構成していたプールボリュームをストレージシステムＢに外接し、ストレージシステムＢのボリュームプールへ加える。
【００１０】
前述の手順は、ストレージシステムＡのボリュームプール上の全仮想ボリュームに対して行う必要がある上に、ボリュームコピーが完了するまで待つ必要がある。このため、ストレージシステムＢでストレージシステムＡのボリュームプール記憶領域およびデータを利用可能となるまでに、時間がかかるという課題があった。
【００１１】
他の方法として、特定のストレージシステムＡのプールボリュームの一つをストレージシステムＢのボリュームプールに加えることで使用率の均一化を図ることも可能である。しかし、この方法では、前記プールボリュームをボリュームプールから除去するために前記プールボリューム内に格納されていたデータを全てストレージシステムＡのボリュームプールの他のプールボリュームへ移すためのデータＩ／Ｏが発生し、性能低下を招くという問題があった。
【課題を解決するための手段】
【００１２】
上記の及び他の課題を解決するために、本発明のストレージシステムは、複数の物理ディスクによって提供される少なくとも１の論理ボリュームと、少なくとも１の前記論理ボリュームによって構成され、単位記憶領域の集合として管理されている第１のプールとを管理し、前記第１のプールを識別するための識別子であるプール識別子と、前記第１のプールに含まれる前記論理ボリュームを識別するための識別子であるボリューム識別子と、前記第１のプールを構成している前記単位記憶領域を識別するための識別子である単位記憶領域識別子との間の対応付けを保持している第１の構成情報を備える第１の構成情報保持部を備えるストレージ制御部を備えている第１のストレージ装置と、前記第１のストレージ装置と通信可能に接続され、複数の物理ディスクによって提供される少なくとも１の論理ボリュームと、少なくとも１の前記論理ボリュームによって構成され、単位記憶領域の集合として管理されている第２のプールを管理し、前記第２のプールを識別するための識別子であるプール識別子と、前記第２のプールに含まれる前記論理ボリュームを識別するための識別子であるボリューム識別子と、前記第２のプールを構成している前記単位記憶領域を識別するための識別子である単位記憶領域識別子との間の対応付けを保持している第２の構成情報を備える第２の構成情報保持部を備えるストレージ制御部を備えている第２のストレージ装置と、を有するストレージシステムであって、前記第２のストレージ装置が、前記第１のストレージ装置の前記第１の構成情報保持部から前記第１の構成情報を取得して前記第１のプールに含まれる論理ボリュームを特定し、前記特定した第１のストレージ装置の論理ボリュームを外部のボリュームとして管理するための仮想的なボリュームである外部ボリュームを作成し、作成した前記外部ボリュームと前記特定した第１のストレージ装置の論理ボリュームとを対応付ける外部接続処理部と、前記取得した前記第１の構成情報の前記第１のプールの識別子を前記第２のプール識別子に書き換え、前記第１のプールを構成する前記単位記憶領域の前記単位記憶領域識別子を前記第２のプールを構成する単位記憶領域の前記単位記憶領域識別子とは異なる識別子に書き換え、これらの書き換えを行った第１の構成情報の内容を前記第２の構成情報に追加するプール結合処理部と、を備え、前記第１のストレージ装置は、外部装置に提供される仮想ボリュームを作成し、作成された前記仮想ボリュームに前記単位記憶領域であるセグメントを前記第１のプールから割り当てることによって、前記仮想ボリュームの容量を制御するＶＶｏｌ処理部と、前記プールを構成する論理ボリュームのボリューム識別子と、前記仮想ボリュームに割り当てられる前記セグメントと前記論理ボリュームとの対応関係を管理するセグメント処理部と、前記仮想ボリュームに対して、ボリューム単位でデータのコピーに関する処理を行うコピー制御部と、を備え、前記プール結合処理部が、前記第２の構成情報に前記書き換えを行った前記第１の構成情報を追加するときに、前記第２の構成情報に含まれるボリューム識別子と、前記書き換えを行った第１の構成情報に含まれるボリューム識別子とが重複すると判定した場合、前記書き換えを行った第１の構成情報に含まれるボリューム識別子を前記第２の構成情報に含まれるボリューム識別子と重複しないように変更し、前記第１のストレージ装置は、前記第１のプールとは異なる第３のプールを有し、前記仮想ボリュームに格納されているデータのコピー先であって、前記第３のプールの前記単位記憶領域が割り当てられる副仮想ボリュームを備え、前記第１の構成情報はさらに、前記仮想ボリュームに付された仮想ボリューム識別子と、前記副仮想ボリュームに付された仮想ボリューム識別子との間の対応付けであるコピー関係を保持しており、前記プール結合処理部は、前記第２の構成情報に前記第１の構成情報を追加するときに、前記コピー関係を参照し、前記第１のプールと前記第３のプールとを、前記第２のストレージ装置の異なるプールへ結合するために、前記第１のプールのプール識別子と、前記第３のプールのプール識別子とを異なる識別子に書き換えて前記第２の構成情報に追加する。
【発明の効果】
【００１３】
本発明によれば、ストレージ装置の記憶容量をより効率的に外部装置から利用することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施例１に係るストレージシステム１全体の構成を示すブロック図である。
【図２】図２は、管理計算機２０００内部のブロック図である。
【図３】図３は、ホスト計算機３０００内部のブロック図である。
【図４】図４は、ストレージ装置１０００内部のハードウェア構成を示すブロック図である。
【図５】図５は、ストレージ装置Ａ（１０００）のメモリ１２００内部の処理部とテーブルを示す図である。
【図６】図６は、ストレージ装置Ｂ（１０００）のメモリ１２００内部の処理部とテーブルを示す図である。
【図７】図７は、実施例１のストレージシステム１によって提供される記憶領域であるボリュームの概念図である。
【図８】図８は、ストレージ装置Ａ（１０００）のＬＵマップテーブル５０００の一例を示す図である。
【図９】図９は、ストレージ装置Ａ（１０００）のＰｏｏｌＶｏｌ管理テーブル５１００の一例を示す図である。
【図１０】図１０は、ストレージ装置Ｂ（１０００）のＰｏｏｌＶｏｌ管理テーブル５１００の一例を示す図である。
【図１１】図１１は、ストレージ装置Ａ（１０００）のセグメント管理テーブル５３００の一例を示す図である。
【図１２】図１２は、ストレージ装置Ｂ（１０００）のセグメント管理テーブル５３００の一例を示す図である。
【図１３】図１３は、ストレージ装置Ａ（１０００）のＶＶｏｌ管理テーブル５２００の一例を示す図である。
【図１４】図１４は、ストレージ装置Ｂ（１０００）のＶＶｏｌ管理テーブル５２００の一例を示す図である。
【図１５】図１５は、ストレージ装置Ａ（１０００）のコピーペア管理テーブル５４００の一例を示す図である。
【図１６】図１６は、ストレージ装置Ｂ（１０００）のストレージ装置間パステーブル５５００の一例を示す図である。
【図１７】図１７は、ストレージ装置Ｂ（１０００）の外部Ｖｏｌマップテーブル５６００の一例を示す図である。
【図１８】図１８は、本発明の実施例１に係る管理プログラム２４００の処理フローの一例を示す図である。
【図１９】図１９は、プール結合処理部４６００の全体処理フローの一例を示す図である。
【図２０】図２０は、実施例１によるプール結合処理の概念図である。
【図２１】図２１は、外接処理部４５００の処理フローの一例を示す図である。
【図２２】図２２は、プール結合処理部４６００の詳細処理フローを示す図その１である。
【図２３】図２３は、プール結合処理部４６００の詳細処理フローを示す図その２である。
【図２４】図２４は、プール結合処理後のストレージ装置Ａ（１０００）のＬＵマップテーブル５０００の一例を示す図である。
【図２５】図２５は、プール結合処理後のストレージ装置Ｂ（１０００）のＰｏｏｌＶｏｌ管理テーブル５１００の一例を示す図である。
【図２６】図２６は、プール結合処理後のストレージ装置Ｂ（１０００）のＶＶｏｌ管理テーブル５２００の一例を示す図である。
【図２７】図２７は、プール結合処理後のストレージ装置Ｂ（１０００）のセグメント管理テーブル５３００の一例を示す図である。
【図２８】図２８は、プール結合処理後のストレージ装置Ｂ（１０００）のコピーペア管理テーブル５４００の一例を示す図である。
【図２９】図２９は、実施例１の管理計算機２０００により出力されるプール結合選択画面の一例を示す図である。
【図３０】図３０は、実施例１の管理計算機２０００により出力されるプール結合の結果表示画面の一例である。
【図３１】図３１は、本発明の実施例２によるＰｏｏｌＶｏｌ属性情報を考慮したプール結合処理フローの一例を示す図である。
【図３２】図３２は、本発明の実施例２によるＶＶｏｌのコピーペア関係を考慮したプール結合処理の一例を示す図である。
【図３３】図３３は、実施例２の管理計算機により出力されるプールの結合方法選択画面の一例を示す図である。
【図３４】図３４は、本発明の実施例３に係るストレージ装置Ｂ（１０００）の処理部とテーブルの一例を示す図である。
【図３５】図３５は、実施例３の管理プログラム２４００によるプール結合処理フローの一例を示す図である。
【図３６】図３６は、本発明の実施例４による、単一のストレージ装置１０００内で複数のプールを結合する場合の処理フローの一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して、本願発明の実施形態を、実施例を用いて説明する。
【００１６】
［実施例１］
まず、本発明の第一の実施例を説明する。
実施例１では、それぞれ背景技術に関して説明したボリュームプール（以下簡単のため「Ｐｏｏｌ」と称する。）を持つストレージ装置Ａとストレージ装置Ｂにおいて、ストレージ装置Ａの持つ構成情報をストレージ装置Ｂが取得し、ストレージ装置ＡのＰｏｏｌから作成されているプールボリューム（以下「ＰｏｏｌＶｏｌ」と称する。）を外接してストレージ装置Ｂに加える。
【００１７】
さらに前記ストレージ装置Ａから取得した構成情報を変換してストレージ装置Ｂで利用することで、ストレージ装置Ａで提供されていた仮想ボリュームをストレージ装置Ｂで利用可能とする。この構成により、ストレージ装置Ｂの仮想ボリュームに格納されているデータを、ストレージ装置Ａの仮想ボリュームへコピーする処理を省略することができる。
【００１８】
この結果、ストレージ装置Ｂの持つＰｏｏｌにストレージ装置ＡのＰｏｏｌと仮想ボリュームが結合されてあらたに作成されたＰｏｏｌがストレージ装置Ｂから利用可能となる。
【００１９】
なお、以下に述べる第一の実施例及び他の実施例は、それぞれ本発明の実施形態の一例であって、本発明をなんら制限するものではない。
【００２０】
図１を参照して、本発明の第１実施例に係るストレージシステムを説明する。図１は、本発明の第一の実施例のストレージシステム１の全体構成を示すブロック図である。
【００２１】
第一の実施例に係るストレージシステム１は、ストレージ装置１０００であるストレージ装置Ａ及びストレージ装置Ｂと、これらのストレージ装置Ａ及びストレージ装置Ｂに接続されてこれらを管理する管理計算機２０００とを備える。ストレージシステム１に含まれるストレージ装置１０００によって提供されるボリュームが、ホスト計算機３０００によって利用される。
【００２２】
ストレージ装置Ａ、ストレージ装置Ｂは、ハードウェア構成の面から見ると、同一のストレージ装置１０００であるが、後述するように本実施例を実現するソフトウェアの面から見ると、互いに異なる。このため、各ストレージ装置それ自体の構成に関してはストレージ装置１０００と呼ぶこととする。また、本実施例における機能に関して区別する必要がある場合には、ストレージ装置Ａ、ストレージ装置Ｂと呼ぶこととする。
【００２３】
ストレージ装置１０００の通信ポート１０２０とホスト計算機３０００の通信インターフェイス（以下「通信ＩＦ」）３０２０は、ＳＡＮやＬＡＮ（Local Area Network）等のデータネットワーク１００で接続されている。なお、通信ＩＦ３０２０は、ＳＡＮの場合はＨＢＡ（Host Bus Adapter）であり、ＬＡＮの場合はＮＩＣ（Network Interface Card）であり、接続するネットワークにより異なる。
【００２４】
また、ストレージ装置１０００の管理ＩＦ１０１０と管理計算機２０００の管理ＩＦ２０１０とは、ＬＡＮなどの管理用ネットワーク２００で接続されている。
【００２５】
なお、前記のように、本実施例に係るストレージシステム１は、構成要件としてホスト計算機３０００を含まない。また、管理計算機２０００は、本実施例のようにストレージ装置１０００から独立した装置として構成してもよいし、ストレージ装置１０００の一部としてこれに組み込んでもよい。また、データネットワーク１００と管理用ネットワーク２００とは同じネットワークで構成してもよい。さらに、ストレージシステム１は、３台以上のストレージ装置１０００を備えることとしてもよい。
【００２６】
次に、管理計算機２０００について説明する。管理計算機２０００のブロック図を図２に示す。管理計算機２０００は、演算処理をするためのプロセッサ２１００、データを一時記憶するための主記憶装置であるメモリ２２００、データを記憶するための補助記憶装置２３００、及び外部ネットワークに接続するための管理ＩＦ２０１０を備える計算機である。
【００２７】
プロセッサ２１００は、ＭＰＵ（Main Processing Unit）、ＣＰＵ（Central Processing Unit）等のデータ処理用中央処理装置である。メモリ２２００は、後述する管理プログラム、あるいは本実施例で利用される各種テーブルなどのデータを格納する記憶デバイスであり、例えばＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）を含む。補助記憶装置２３００は、例えばハードディスク装置等の記憶デバイスであり、前記した管理プログラム、各種テーブルのデータを格納する。管理ＩＦ２０１０は、ネットワーク２００を通じてストレージ装置１０００及びホスト計算機３０００と通信するために設けられている通信インターフェイスである。
【００２８】
管理計算機２０００として、例えばパーソナルコンピュータやワークステーション等を採用することができる。管理計算機２０００には、キーボード等の入力装置およびディスプレイ等の出力装置を備えてもよい。
【００２９】
管理計算機２０００は、メモリ２２００内に管理プログラム２４００を含む。管理プログラム２４００は、ストレージ装置１０００やホスト計算機３０００を管理するためのプログラムである。管理プログラム２４００によって実現される具体的な処理は、図１８を用いて後述する。管理プログラム２４００は、プロセッサ２１００により補助記憶装置２３００からメモリ２３００上に読み出されて実行される。
【００３０】
次に、ホスト計算機３０００について説明する。ホスト計算機３０００のブロック図を図３に示す。
【００３１】
ホスト計算機３０００は、演算処理をするためのプロセッサ３１００、データを一時記憶するための主記憶装置であるメモリ３２００、データを記憶するための補助記憶装置３３００、外部ネットワークに接続するための管理ＩＦ３０１０、及び通信ＩＦ３０２０を備える計算機である。
【００３２】
ホスト計算機３００として、例えばパーソナルコンピュータやワークステーション等を採用することができる。ホスト計算機３０００には、キーボード等の入力装置およびディスプレイ等の出力装置を備えてもよい。
【００３３】
プロセッサ２１００、メモリ２２００、補助記憶装置２３００、及び管理ＩＦ３０１０は、管理計算機２０００と同様の構成を有する。通信ＩＦ３０２０は、ネットワーク１００を通じてストレージ装置１０００とのデータＩＯを行うための通信インターフェイスである。
【００３４】
ホスト計算機３０００は、メモリ３２００内に業務プログラム３４００を含む。業務プログラム３４００は常時補助記憶装置３３００に格納されており、プロセッサ３１００により補助記憶装置３３００からメモリ３２００上に読み出されて実行される。業務プログラム３４００は、例えばデータベースソフトウェアなどを含むアプリケーションソフトウェアである。業務プログラム３４００によって処理されるデータは、ストレージ装置１０００内の記憶領域であるボリュームに保存される。
【００３５】
次に、ストレージ装置１０００について説明する。ストレージ装置１０００の構成を示すブロック図を図４に示す。
【００３６】
ストレージ装置１０００は、物理的な記憶領域を提供する複数の物理ディスク１４００を含む。物理ディスク１４００は、例えばハードディスクドライブによって構成されるが、半導体記憶デバイス等の、他の記憶媒体であってもよい。
【００３７】
ストレージ装置１０００は、前記の管理ＩＦ１０１０と通信ポート１０２０とに加え、演算処理を行うプロセッサ１１００と、複数の管理テーブルと前記プロセッサ１１００により実行される後述の複数の処理部を持つ一時記憶領域であるメモリ１２００と、通信ポート１０２０で受信される、ホスト計算機３０００からのデータＩＯ要求に対して、データを一時記憶しておくことでホスト計算機３０００へのデータ提供を高速化するキャッシュメモリ１３００と、前記物理ディスク１４００へのデータ入出力を制御するコントローラ１５００とを含む。
【００３８】
なお、管理ＩＦ１０１０及び通信ポート１０２０は複数設けてもよい。また、図示を省略するが、管理ＩＦ１０１０には、ストレージ装置１０００内部でのデータ処理の状態をモニタする機能、及びストレージ装置１０００に対してメインテナンス上必要な操作命令を与える機能等を備えたサービスプロセッサ（Service Processor。以下「ＳＶＰ」）と呼ばれるコンピュータが含まれることがある。
【００３９】
次に、このストレージ装置１０００によって提供される記憶領域の構成について説明する。本実施例におけるストレージ装置１０００が提供するボリューム等の構成を図５に模式的に示す。
【００４０】
ストレージ装置１０００が備える複数の物理ディスク１４００は、適宜のタイプのＲＡＩＤとして冗長化され、ＲＡＩＤグループ１４１０を構成している。ＲＡＩＤグループ１４１０は、論理ブロックという単位に分割され、各論理ブロックには論理ブロックアドレス（Logical Block Address。以下、「ＬＢＡ」）というアドレス情報が付与される。ＲＡＩＤグループ１４１０には、それぞれが適当な大きさのＬＢＡ領域に区切られた記憶領域であるＬＤＥＶ（Logical Device、「論理ボリューム」とも呼ばれる）１４２０が作成される。
【００４１】
さらに、シンプロビジョニングの機能を実現するために、複数のＬＤＥＶ１４２０によってＰｏｏｌ１４３０という記憶領域が作成される。Ｐｏｏｌ１４３０に含まれるＬＤＥＶ１４２０は、ＰｏｏｌＶｏｌとも呼ばれ、所定の数の論理ブロックで作成されるセグメントという単位記憶領域に分割される。ストレージ装置１０００のコントローラ（ストレージ制御部）１５００は、セグメントによってＬＤＥＶ１４２０を管理する。
【００４２】
仮想ボリュームであるＶＶｏｌ（Virtual Volume）１４４０は、作成された時点で記憶領域の容量が固定されているＬＤＥＶ１４２０とは異なり、必要に応じてＰｏｏｌ１４３０に含まれるセグメントが割り当てられることによって、動的に記憶容量が拡張される。
【００４３】
ＬＤＥＶ１４２０又はＶＶｏｌ１４４０は、コントローラ１５００内に設けられている後述のＬＵマップ処理部によって、ＬＵ１４５０（Logical Unit，論理ユニット）に対応付けられ、ホスト計算機３０００にデータ格納のための記憶領域として提供される。
【００４４】
なお、ＬＵ１４５０には、これに割り当てられている各通信ポート１０２０に対して一意に設定されるＬＵＮ（Logical Unit Number）が付与されている。ＬＵ１４５０は、このＬＵＮによって互いに識別され、ホスト計算機３０００は、ＬＵＮによって各ＬＵ１４５０を認識することができる。
【００４５】
ホスト計算機３０００は、ＬＵＮ、及びＬＤＥＶ１４２０のアドレス値であるＬＢＡを用いて、通信ポート１０２０に接続されたＬＵ１４５０に対応付けられたＬＤＥＶ１４２０又はＶＶｏｌ１４４０へのデータの書き込みあるいはこれらからのデータ読み出しを実行する。ここでは、ＬＤＥＶ１４２０又はＶＶｏｌ１４４０と、ＬＵ１４５０のＬＵＮとを対応付けることを「ＬＵマッピング」と呼ぶこととする。
【００４６】
次に、ストレージ装置１０００のメモリ１２００に格納されているソフトウェアプログラムによって実現される、本実施例の処理部と、これらの処理部が使用する管理テーブルについて説明する。ストレージ装置Ａのメモリ１２００に格納されている処理部および管理テーブルを図６に、ストレージ装置Ｂのメモリ１２００に格納されている処理部および管理テーブルを図７に示す。
【００４７】
ＬＵマップ処理部４０００は、後述する図８に示すＬＵマップテーブル５０００を用いて、通信ポート１０２０に接続されたホスト計算機３０００が認識するＬＵ１４５０のＬＵＮと、ストレージ装置Ａ（１０００）で使用されるＬＵの識別子であるＤＥＶＩＤとの間の対応付けを規定しているＬＵマッピングを管理する。
【００４８】
実施例１のストレージ装置Ａが備えるＬＵマップテーブル５０００の一例を図８に示す。
【００４９】
ＬＵマップテーブル５０００は、後述するＰｏｒｔＩＤ５０１０、ストレージＷＷＮ（World Wide Name）５０２０、接続ｈｏｓｔＷＷＮ５０３０、ＬＵＮ５０４０、及びＬＤＥＶ又はＶＶｏｌのストレージ装置Ａ（１０００）内での識別子であるＤＥＶＩＤ５０５０を含む。ＬＵマップテーブル５０００は、図５に模式的に示したストレージ装置１０００でのＬＤＥＶ１４２０から通信ポート１０２０までの間の接続関係を示している。
【００５０】
ＰｏｒｔＩＤ５０１０は、ストレージ装置１０００が備える通信ポート１０２０に対して一意に割り当てられた識別子である。ストレージＷＷＮ５０２０は、ＰｏｒｔＩＤ５０１０毎に付与されるストレージ装置１０００のＷＷＮであり、ＳＡＮ（ネットワーク１００）上で一意に付与された識別子である。接続ｈｏｓｔＷＷＮ５０３０は、各通信ポート１０２０に接続されるホスト計算機３０００の通信ＩＦ３０２０の識別子である。
【００５１】
ＬＵＮ５０４０は、ホスト計算機３０００が認識しているストレージ装置１０００に作成されたＬＵ１４５０に一意に付与されている識別子である。ＤＥＶＩＤ５０５０は、ストレージ装置１０００のＬＵ１４５０に対応付けられたＬＤＥＶ１４２０又はＶＶｏｌ１４４０に付与された識別子である。
【００５２】
例えば、図８の例では、ストレージ装置Ａ（１０００）の通信ポート１０２０である「Ｐｏｒｔ１」には、ストレージＷＷＮとして「ＷＷＮ１」が付与され、通信ＩＦ３０２０のＷＷＮが「ｈ１」であるホスト計算機３０００と接続していることが示されている。そして、ホスト計算機３０００が認識しているストレージ装置Ａ（１０００）のＬＵは「ＬＵＮ１」であり、「ＬＵＮ１」にはストレージ装置１０００が提供するＶＶｏｌである識別子「ＶＶｏｌ１」が対応付けられている。
【００５３】
なお、ストレージ装置Ａに接続されたストレージ装置Ｂが、ネットワーク２００及び管理ＩＦ１０１０を通じてストレージ装置ＡのＬＵマップ処理部４０００およびＬＵテーブル５０００を管理するように構成してもよい。
【００５４】
セグメント処理部４２００は、後述するＰｏｏｌＶｏｌ管理テーブル５１００とセグメント管理テーブル５３００を用いて、Ｐｏｏｌ１４３０を構成するＬＤＥＶの構成と、ＶＶｏｌ１４４０に割り当てられるセグメントとＬＤＥＶとの対応関係を管理する。またＰｏｏｌ１４３０を構成しているＬＤＥＶの追加又は削除を行う。
【００５５】
ストレージ装置Ａのセグメント処理部４２００が管理するＰｏｏlＶｏｌ管理テーブル５１００を図９に、セグメント管理テーブル５３００を図１１に示す。また、ストレージ装置Ｂのセグメント処理部４２００が管理するＰｏｏlＶｏｌ管理テーブル５１００を図１０に、セグメント管理テーブル５３００を図１２に示す。
【００５６】
以下、本実施例の図１に示すストレージ装置Ａの構成である図９のＰｏｏlＶｏｌ管理テーブル５１００を用いて、前記各テーブルの説明を行う。
【００５７】
ＰｏｏｌＶｏｌ管理テーブル５１００は、ＤＥＶＩＤ（ボリューム識別子）５１１０、ＰｏｏｌＩＤ（プール識別子）５１２０、ディスクタイプ５１３０、ＲＡＩＤレベル５１４０、ＲＡＩＤグループＩＤ５１５０、及び割当禁止ＶＶｏｌＩＤ５１６０の各項目を含む。
【００５８】
ＰｏｏｌＶｏｌ管理テーブル５１００は、ＰｏｏｌＶｏｌとして使用されているＤＥＶＩＤ５１１０を有するＬＤＥＶが、それぞれストレージ装置１０００に作成されたＰｏｏl１４３０の識別子（ＰｏｏｌＩＤ５１２０）のどのＰｏｏｌで使用されているかを管理している。
【００５９】
さらに、各ＤＥＶＩＤ５１１０で示されるＬＤＥＶの属性情報として、ＬＤＥＶのデータが保存されているディスク１４００の物理的な種別であるディスクタイプ５１３０、冗長化度合いを示すＲＡＩＤの種別であるＲＡＩＤレベル５１４０、及びＬＤＥＶを含むＲＡＩＤグループ１４１０の識別子であるＲＡＩＤグループＩＤ５１５０を含む。また割当禁止ＶＶｏｌＩＤ５１６０には、後述するＬＤＥＶの一部であるセグメントを割り当てることが禁止されたＶＶｏｌの識別子が記述される。この割当禁止ＶＶｏｌＩＤ５１６０の詳細については、後述する本実施例の処理フロー（処理ステップ７３７０）にて説明する。
【００６０】
ＰｏｏｌＶｏｌ管理テーブル５１００にはまた、ＰｏｏｌＶｏｌのＶｏｌ状態５１７０が記録され管理されている。Ｖｏｌ状態５１７０の項目は、ＰｏｏｌＶｏｌが、ホスト計算機３０００からのデータＩ／Ｏに対して正常に応答することが可能であるかを示す状態が格納される。ＰｏｏｌＶｏｌが、ホスト計算機３０００からのデータＩ／Ｏに対して正常に応答することが可能である場合「正常」と、なんらかの障害によってデータＩ／Ｏに対する応答が不可能である場合「障害」と、ＰｏｏｌＶｏｌの状態を識別する情報を保持する。なお、ＰｏｏｌＶｏｌが正常であるかを示す情報は、例えばストレージ装置１０００の管理ＩＦ１０１０にＳＶＰを設け、これによって収集するように構成することができる。
【００６１】
なお、ディスクタイプ５１３０は、記憶媒体である物理ディスク１４００のデータ通信方式を示し、例えばＳＡＴＡ（Serial ATA）、ＦＣ（Fibre Chanel）等の方式が含まれる。ＳＡＴＡとＦＣとを比較すると、一般にＦＣのほうがＳＡＴＡに比べデータ転送速度において優れている。またＲＡＩＤレベル５１４０にはＲＡＩＤ１（ミラーリング）など冗長化の方式を示す識別子が記述される。
【００６２】
また、ホスト計算機３０００において、複数の業務プログラム３４００が動作している場合、各ＬＤＥＶ１４２０に関して、当該ＬＤＥＶ１４２０をデータ記憶領域として利用している業務プログラム３４００を識別するための業務プログラム識別子を記録するように構成すれば、実施例２に関して後述する属性情報の一つとして利用することができる。この場合、業務プログラム３４００毎に規定されるティア（Tier）それぞれに関して、同一のＰｏｏｌから記憶領域を作成することで、各TierについてデータＩＯ性能を均一化することができる、等の効果を得ることができる。
【００６３】
図９を参照すると、ストレージ装置Ａが有するＰｏｏｌＩＤ５１２０が「Ｐｏｏｌ１」であるＰｏｏｌ１４３０には、ＤＥＶＩＤ５１１０がＬＤＥＶ１やＬＤＥＶ２であるＬＤＥＶが含まれる。そして前記Ｐｏｏｌ１４３０に含まれるＬＤＥＶ１は、ディスクタイプ５１３０がＳＡＴＡである物理ディスクを用いＲＡＩＤレベル５１４０がＲＡＩＤ１での冗長構成がとられている。そして前記ＬＤＥＶ１はＲＡＩＤグループＩＤ５１５０がＲＧ１−１であるＲＡＩＤグループから作成されていることを示す。また前記ＬＤＥＶ１中のセグメントを割り当ててはいけないＶＶｏｌは存在しないことを示す「ｎｏｎｅ」が、割当禁止ＶＶｏｌＩＤ５１６０に記述されている。
【００６４】
次に、実施例１のストレージ装置Ａの構成である図１１のセグメント管理テーブル５３００を例として用いて、セグメント管理テーブル５３００の説明を行う。
【００６５】
セグメント管理テーブル５３００には、ＰｏｏｌＩＤ５３１０、セグメントＩＤ５３２０、ＤＥＶＩＤ５３３０、開始ＬＢＡ５３４０、セグメントサイズ５３５０、及びＶＶｏｌＩＤ５３６０の各項目が記録されている。
【００６６】
セグメント管理テーブル５３００は、ストレージ装置１０００に作成されたＰｏｏｌ１４３０の識別子（ＰｏｏｌＩＤ５３１０）毎に管理される。
【００６７】
セグメントＩＤ５３２０は、ＰｏｏｌＩＤ５３１０によって示されるＰｏｏｌ１４３０に割り当てられるセグメントの識別子である。ＤＥＶＩＤ５３３０は、セグメントＩＤ５３２０によって示されるセグメントに対応付けられているＬＤＥＶ１４２０の識別子である。開始ＬＢＡ５３４０は、ＤＥＶＩＤ５３３０によって示されるＬＤＥＶ１３２０の記憶領域の開始アドレス（ＬＢＡ）である。セグメントサイズ５３５０は、セグメントＩＤ５３２０によって示される各セグメントの容量である。ＶＶｏｌＩＤ（仮想ボリューム識別子）５３６０は、ＤＥＶＩＤ５３３０のうち、特にＶＶｏｌのみの識別子集合であることを意味し、セグメントＩＤ５３２０によって示されるセグメントが割り当てられるＶＶｏｌ１４４０の識別子である。
【００６８】
なお、ＶＶｏｌＩＤ４３６０には、セグメントが仮想ボリューム１３４０に割り当てられている場合は、当該仮想ボリュームＶＶｏｌの識別子が記述され、セグメントが仮想ボリューム１３４０に割り当てられていない場合は、例えば、制御文字として「ＮＵＬＬ」が記述される。
【００６９】
図１１の例では、ストレージ装置Ａの持つＰｏｏｌＩＤ５３１０が「Ｐｏｏｌ１」であるＰｏｏｌ１４３０にセグメントＩＤ５３２０が「００１」であるセグメントが含まれ、このセグメントには、ＤＥＶＩＤ５３３０が「ＬＤＥＶ１」であるＬＤＥＶのＬＢＡの中で０から２０４８の領域が割り当てられていることが示されている。そして、このセグメントが、ＶＶｏｌＩＤが「ＶＶｏｌ１」であるＶＶｏｌに割り当てられていることを示している。
【００７０】
ここで、図６に戻り、ＶＶｏｌ処理部４１００について説明する。ＶＶｏｌ処理部４１００は、後述するＶＶｏｌ管理テーブル５２００を用いて、ホスト計算機３０００に提供されるＶＶｏｌ１４４０を作成し、作成されたＶＶｏｌ１４４０にセグメントを割り当てることによって、ＶＶｏｌ１４４０の容量を制御し、またＶＶｏｌ１４４０を管理する。
【００７１】
実施例１において、ストレージ装置ＡのＶＶｏｌ管理テーブル５２００を図１３に、ストレージ装置ＢのＶＶｏｌ管理テーブル５２００を図１４に示す。これらは一例であって、本発明を制限するものではない。
【００７２】
ストレージ装置ＡのＶＶｏｌ管理テーブル５２００である図１３を用いて、ＶＶｏｌ管理テーブル５２００を説明する。
【００７３】
ＶＶｏｌ管理テーブル５２００は、ＶＶｏｌＩＤ５２１０、パフォーマンス５２２０、サイズ５２３０、開始ＶＬＢＡ５２４０、ＰｏｏｌＩＤ５２５０、セグメントＩＤ５２６０、及びセグメントサイズ５２７０を含む。
【００７４】
ＶＶｏｌＩＤ５２１０は、各ＶＶｏｌ１４４０に付与された識別子である。パフォーマンス５２２０は各ＶＶｏｌに要求される性能であり値が「ｈｉｇｈ」のものは高い性能が求められることを意味する。この値は、事前にシステム管理者により、管理プログラム等を用いて設定される。このパフォーマンス５２２０の意味づけは、例えばデータ転送速度の大小、あるいは要求される信頼性の高低により、「ｈｉｇｈ」、あるいは「ｌｏｗ」と区別される。データ転送速度の点では、ＦＣディスクの方がＳＡＴＡディスクよりも優れている。また、信頼性の点では、同一筐体内部にあるＬＵの方が、外部接続されているＬＵよりも優れている。後述するように、このような観点により、同一のＶＶｏｌを構成するセグメントを作成しているＬＤＥＶ１４２０を揃えることができる。
【００７５】
サイズ５２３０は、ＶＶｏｌが最初に作成された時に、そのＶＶｏｌについて設定された容量である。開始ＶＬＢＡ５２４０は、ホスト計算機３０００がデータを入出力するＶＶｏｌ１４４０の仮想ブロックを特定するための論理ブロックアドレス（Virtual Logical Block Address。以下、「ＶＬＢＡ」）である。ＰｏｏｌＩＤ５２５０は、ＶＶｏｌ１４４０にセグメントを割り当てるＰｏｏｌ１４３０に付与された識別子である。セグメントＩＤ５２６０及びセグメントサイズ５２７０は、ＶＶｏｌＩＤ５２１０によって示されるＶＶｏｌ１４４０のＶＬＢＡに対応付けられたセグメントの識別子及び容量である。なお、ストレージ装置１０００に作成されるＰｏｏｌ１４３０が一つのみの場合、ＶＶｏｌ管理テーブル５２００は、ＰｏｏｌＩＤ５２５０を含まなくてもよい。
【００７６】
これによって、例えば、ＶＶｏｌ「ＶＶｏｌ１」の開始ＶＬＢＡ「３０４８（＝２０４８＋１０００）」で特定される仮想ブロックに対して、ホスト計算機３０００からデータ読み出しを要求された場合には、ストレージ装置１０００のＶＶｏｌ処理部４１００は、ＶＶｏｌ管理テーブル５２００を参照して、ＰｏｏｌＩＤ５２５０が「Ｐｏｏｌ１」のＰｏｏｌに割り当てられたセグメントＩＤ５２６０が「１０１」のセグメントにデータが格納されていることを知ることができる。
【００７７】
さらに、ストレージ装置１０００のＶＶｏｌ処理部４１００は、セグメント管理テーブル５３００を参照して、セグメント「１０１」がＬＤＥＶ「ＬＤＥＶ２」のＬＢＡ値「１０７３７４１８２４＋１０００」で特定される論理ブロックであることを知り、また、特定された論理ブロックにデータが格納されていることを知ることができる。
【００７８】
このように、ＶＶｏｌ管理テーブル５２００によって、ＶＶｏｌ１４４０のＶＬＢＡ値と、ＬＤＥＶ１４２０のＬＢＡ値とは対応付けられている。
【００７９】
また、セグメントが割り当てられていないＶＶｏｌ１４４０のＶＬＢＡにデータ書き込みの処理が発生した場合等には、ＶＶｏｌ処理部４２００は、セグメント管理テーブル５３００を参照し、利用されていないセグメント（すなわち、ＶＶｏｌＩＤ５３６０に「ＮＵＬＬ」が記載されているセグメント）をＶＶｏｌ１４４０に割り当てる。これによって、ＶＶｏｌ処理部４２００は、ＶＶｏｌ１４４０の容量を動的に拡張することができる。
【００８０】
次に、コピー制御部４３００及びコピーペア管理テーブル５４００を説明する。
【００８１】
コピー制御部４３００は、ＬＤＥＶ１４２０やＶＶｏｌ１４４０に対して、ボリューム単位でデータのコピーに関する処理を行う。コピー処理には、２つのボリューム間で常に同じ情報となることを保証する同期コピー、及びコピー元となる正ボリュームからコピー先となる副ボリュームへのデータコピーが非同期で行われる非同期コピーが含まれる。またコピー処理は、同一ストレージ装置１０００内でのボリューム間でのコピーのほか、異なるストレージ装置１０００間でのボリュームコピーを行う処理であってもよい。
【００８２】
ストレージ装置Ａが持つコピーペア管理テーブル５４００の一例を図１５に示す。コピーペア管理テーブル５４００は、ボリュームコピーのペアを構成している正副ボリュームのペアに付与された識別子であるペアＩＤ５４１０、コピー元となる正ボリュームのＤＥＶＩＤ５４２０、及びコピー先となる副ボリュームのＤＥＶＩＤ５４３０を含む。例えば図１５では、正ボリュームがＶＶｏｌ１であるボリュームのコピーがＶＶｏｌ２であることを意味する。このほか、前記の同期コピー、非同期コピーなどのコピー処理種別に関する情報などの他の情報をコピーペア管理テーブル５４００に記述してもよい。
【００８３】
次に、ストレージ装置間パステーブル５５００の説明をする。ストレージ装置Ｂが持つストレージ装置間パステーブル５５００の例を図１６に示す。
【００８４】
ストレージ装置１０００はメモリ１２００上にストレージ装置間パステーブル５５００を備える。ストレージ装置間パステーブル５５００は、ストレージ装置１０００間でデータを送受信するための通信ポート１０２０の対応関係を記憶している。ストレージ装置間パステーブル５５００は、接続元ＷＷＮ５５１０、接続先ストレージ装置５５２０、及び接続先ＷＷＮ５５３０を含む。
【００８５】
接続元ＷＷＮ５５１０は、接続元であるストレージ装置１０００（実施例１ではストレージ装置Ｂ）の通信ポート１０２０に付与された識別子である。接続先ストレージ装置５５２０は、接続先のストレージ装置１０００（実施例１ではストレージ装置Ａ）の識別子である。接続先ＷＷＮは、接続先であるストレージ装置１０００（実施例１ではストレージ装置Ａ）の通信ポート１０２０に付与された識別子である。
【００８６】
図１６に示した例では、「ＷＷＮ４」が付与されたストレージ装置Ｂの通信ポート１０２０と、「ＷＷＮ３」が付与されたストレージ装置Ａの通信ポート１０２０とが接続されていることを示している。
【００８７】
なお実施例１では、ストレージ装置間パステーブル５５００は、２台のストレージ装置１０００（ストレージ装置Ａとストレージ装置Ｂ）が物理的に接続され、かつ、一般的なストレージシステム管理プログラムによって接続の設定が終了した後に作成される。また、作成されたストレージ装置間パステーブル５５００（図１６）は、図７に示されているように、ストレージ装置Ｂに備えられる。
【００８８】
なおストレージ装置Ｂが、自身に接続された他のストレージ装置１０００の通信ポート１０２０を自動的に調査し、ストレージ装置間パステーブル５５００を自動的に作成する機能を備える場合には、ストレージ装置Ｂは、この機能を利用してストレージ装置間パステーブル５５００を作成してもよい。
【００８９】
次に、図７に示されている外接処理部４５００について説明する。実施例１のストレージ装置Ｂのメモリ１２００は、外接処理部４５００を備える。外接処理部４５００は、後述する外部Ｖｏｌマップテーブル５６００（図１７）を管理する。
【００９０】
外接処理部４５００は、他のストレージ装置（実施例１ではストレージ装置Ａ）のＬＤＥＶ１４２０を外部接続し、ＬＤＥＶ１４２０をストレージ装置Ｂの仮想的なＬＤＥＶ（以下「ＥｘＶｏｌ１４２５」と呼ぶ。後出の図２０にて詳細を説明する。）として一体化する。ストレージ装置Ｂは、この一体化されたＥｘＶｏｌ１４２５を自身の内部にあるＬＤＥＶ１４２０と同じように、ホスト計算機３０００に提供することができる。なお、外接処理部４５００が実行する具体的な処理については後述する。
【００９１】
外部Ｖｏｌマップテーブル５６００には、外部接続される他のストレージ装置１０００にあるボリュームに付与された識別子であるＤＥＶＩＤ５６１０、当該ボリュームに対応付けられている通信ポート１０２０に付与された接続先ＷＷＮ５６２０、当該通信ポートに接続されているボリュームに付与された識別子である接続先ＬＵＮ５６３０、及び当該ボリュームを構成しているＬＤＥＶ１４２０に付与された識別子である接続先ＤＥＶＩＤ５６４０の各項目が記述されている。
【００９２】
例えば、図１６に示すように、「ＷＷＮ４」が付与されたストレージ装置Ｂの通信ポート１０２０と、「ＷＷＮ３」が付与されたストレージ装置Ａの通信ポート１０２０とが接続され、かつ「ＷＷＮ３」が付与された通信ポート１０２０に、ＬＤＥＶ１４２０が、ＬＵＮが付与されたＬＵ１４５０として対応付けられている場合には、ストレージ装置Ｂの外接処理部４５００は、ＬＵ１４５０に対応付けられたストレージ装置ＡのＬＤＥＶ１４２０に、ストレージ装置Ｂ内で利用するＤＥＶＩＤを付与する。これによって、ストレージ装置Ｂは、外部接続されたストレージ装置ＡのＬＤＥＶ１４２０をストレージ装置ＢのＥｘＶｏｌ１４２５として扱うことができる。なお、本実施例の処理においては接続先ＤＥＶＩＤ５６４０と外部接続されたボリュームに付与されたＤＥＶＩＤ５６１０との間の対応関係が分かればよく、接続先ＷＷＮ５６２０、及び接続先ＬＵＮ５６３０は本実施例のストレージシステム１についての実装上の要請から記述されている。
【００９３】
なお、外部Ｖｏｌマップテーブル５６００の詳細は後述するフローチャートの中で説明する。
【００９４】
このほか、ストレージ装置Ａのメモリ１２００には、構成情報通信部４４００が備えられている。また、ストレージ装置Ｂのメモリ１２００上には、Ｐｏｏｌ結合処理部４６００が備えられている。Ｐｏｏｌ結合処理部４６００の機能及び処理については後述する。
【００９５】
構成情報通信部４４００は、外部からの要求を契機として、ストレージ装置１０００にある各構成情報を格納しているテーブルを外部に送信する。また外部から各構成情報のテーブルを受信し、受信したテーブルに従って、ストレージ装置１０００内の構成を変更する機能を有する。構成情報には、ＬＤＥＶ１４２０を構成する物理ディスク１４００のディスク種別、ＲＡＩＤレベル等の情報が含まれる。
【００９６】
なお、各構成情報のテーブルに含まれるデータは、管理ＩＦ１０１０を介して送受信されてもよいし、通信ポート１０２０を介して送受信されてもよい。
【００９７】
以下に実施例１のストレージシステム１における処理の概要を、図１８、図１９、及び図２０を用いて説明する。
【００９８】
まず、管理プログラム２４００がストレージ装置ＢのＰｏｏｌ結合処理部４６００を用いてＰｏｏｌの結合を指示する場合に実行される処理フロー６０００を図１８に示す。なお、図１８に示した管理プログラム２４００の処理フローは、処理全体の概略フローを説明するものであって、本発明がこの処理フローによって限定されることはない。
【００９９】
管理プログラム２４００は、処理６１００において、ストレージ装置１０００が持つＶＶｏｌについてのパフォーマンス定義を、管理計算機２０００の入力装置を通じて管理者等から受け付ける。ここで定義したパフォーマンスが、ＶＶｏｌ管理テーブル５２００のパフォーマンス５２２０に設定される。なお、このパフォーマンス定義は、必須の処理ではない。
【０１００】
次に、処理６２００において、管理プログラム２４００は、結合対象とするＰｏｏｌを利用するＶＶｏｌをホスト計算機３０００からオフラインとする。例えば図８で示したストレージ装置Ａでは、接続ｈｏｓｔＷＷＮ５０３０が「ｈ１」であるホストが利用するボリュームのＬＵマッピングを解除する。この処理において、具体的には、図８のＬＵマップテーブル５０００において、接続ホストＷＷＮ「ｈ１」に対応付けられているＬＵＮ５０４０を削除する。
【０１０１】
次に、処理６３００において、結合先Ｐｏｏlを持つストレージ装置（実施例１ではストレージ装置Ｂ）へＰｏｏｌの結合指示を出す。ストレージ装置１０００側での詳細な処理は、図１９などを用いて説明する。また、このとき、管理プログラム２４００が結合方法の指定を、管理計算機の出力装置を通じて管理者等に問い合わせてもよい。この場合の問い合わせ画面の例を、図２９に示す画面８０００に関して後述する。
【０１０２】
そして処理６４００において、ストレージ装置側でＰｏｏｌの結合が完了するまで待つ。管理プログラム２４００が、定期的に指示を出したストレージ装置１０００に対して問い合わせを行い、終了を検出する形であってもよい。
【０１０３】
処理６５００において、Ｐｏｏｌの結合結果を取得する。そして処理６６００において、前記処理６２００でオフラインとしたホスト計算機３０００に対して、結合後のＶＶｏｌを割り当てる。この処理により、結合後のＶＶｏｌがホスト計算機３０００のための記憶領域として利用可能となる。
【０１０４】
そして処理６７００においてＰｏｏｌ結合の結果を管理者等に通知し、終了する。この結果の通知方法の例を、図３０に示す画面８１００に関して後述する。
【０１０５】
次に管理プログラム２４００によりＰｏｏｌの結合を受けたストレージ装置（実施例１ではストレージ装置Ｂ）のＰｏｏｌ結合処理部４６００が行う処理を図１９に示す。
【０１０６】
処理７０００において管理プログラム２４００からＰｏｏｌの結合指示を受けると、処理７１００において、Ｐｏｏｌ結合処理部４６００は接続しているストレージ装置（実施例１ではストレージ装置Ａ）から構成情報として、ＰｏｏｌＶｏｌ管理テーブル５１００と、ＶＶｏｌ管理テーブル５２００と、セグメント管理テーブル５３００（以降、前記３テーブルをＰｏｏl構成情報と称する）を取得する。なお取得したＰｏｏｌ構成情報は、メモリ１２００上にＰｏｏｌ結合処理部４６００の処理中、一時的に保存される。
【０１０７】
処理７２００において、Ｐｏｏｌ結合処理部４６００は、ＰｏｏｌＶｏｌ管理テーブル５１００などからＰｏｏｌを構成するＰｏｏlＶｏｌを特定し、前記ＰｏｏｌＶｏｌをＥｘＶｏｌとして自ストレージ装置に外接する。本処理の詳細は、図２１で説明する。
【０１０８】
次に処理７３００において、前記取得したＰｏｏｌ構成情報を変換することで自ストレージ装置内のＰｏｏlに前記接続しているストレージ装置のＰｏｏlを結合する。本処理の詳細は、図２２と図２３で詳しく説明する。
【０１０９】
そして処理７４００において、管理ＩＦ１０１０を通じて、管理プログラム２４００へ、Ｐｏｏｌ結合の完了を通知して終了する。
【０１１０】
Ｐｏｏｌ結合処理部４６００による処理フローの概要を図１９に示す。また、図１９の処理実行前と処理実行後のボリューム構成の変化を表す概念図を図２０に示す。
【０１１１】
図２０に「結合前」として図示されているように、図１９の処理フロー実行前に、ＰｏｏｌＶｏｌとしてＬＤＥＶ１とＬＤＥＶ２からなるＰｏｏｌ１と、Ｐｏｏｌ１を使用するＶＶｏｌであるＶＶｏｌ１を持つストレージ装置Ａと、ＰｏｏｌＶｏｌとして、ＬＤＥＶ３とＬＤＥＶ４からなるＰｏｏｌ２と、Ｐｏｏｌ２を使用するＶＶｏｌであるＶＶｏｌ２を持つストレージ装置Ｂがある。
【０１１２】
図１９を参照して、まずストレージ装置Ｂに含まれるＰｏｏl結合処理部４６００は、処理７１００においてストレージ装置１からＰｏｏｌ構成情報を取得する。具体的には、Ｐｏｏｌ結合処理部４６００は、ストレージ装置Ａの構成情報通信部４４００と管理ＩＦ１０１０を通じて通信を行い、ストレージ装置ＡからＰｏｏｌＶｏｌ管理テーブル５１００に記述されているデータを取得する。
【０１１３】
次に、Ｐｏｏl結合処理部４６００は、処理７２００において外接処理を行い、図２０のＬＤＥＶ１をＥｘＶｏｌ１４２５としてＥｘＶｏｌ１へ、ＬＤＥＶ２をＥｘＶｏｌ２へそれぞれ外接する。
【０１１４】
そして、Ｐｏｏl結合処理部４６００は、処理７３００において、前記取得したＰｏｏl構成情報を変換することでＥｘＶｏｌ１とＥｘＶｏｌ２を含んだＰｏｏl２を構築し、処理前にストレージ装置１のＶＶｏｌ１４４０であったＶＶｏｌ１をストレージ装置２のＶＶｏｌ１として利用可能とする。
【０１１５】
以上の処理の結果として、ストレージ装置１のＰｏｏl１がストレージ装置２のＰｏｏl２へ結合され、ストレージ装置１のＶＶｏｌ１が、ストレージ装置２のＶＶｏl１として利用可能となる。
【０１１６】
次に、図１９で示した処理７２００の詳細を、図２１を用いて説明する。
【０１１７】
処理７２１０において、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、処理７１００で取得した、ストレージ装置ＡのＰｏｏｌＶｏｌ管理テーブル５１００を元に、外接を行うための仮想的なＬＤＥＶであるＥｘＶｏｌ１４２５をＰｏｏｌＶｏｌの数に対応する数だけ作成する。
【０１１８】
例えば、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、ストレージ装置Ａの持つＰｏｏlＶｏｌであるＬＤＥＶ１、ＬＤＥＶ２、ＬＤＥＶ３，及びＬＤＥＶ４のそれぞれに対応して、ＥｘＶｏｌ１、ＥｘＶｏｌ２、ＥｘＶｏｌ３、及びＥｘＶｏｌ４を作成する。
【０１１９】
処理７２２０において、Ｐｏｏｌ結合処理部４６００は、自ストレージ装置Ｂ内のストレージ装置間パステーブル５５００を参照し、接続先ＷＷＮ５５３０への前記ＰｏｏlＶｏｌのＬＵマッピングを、接続先ストレージ装置ＡのＬＵマップ処理部４０００に指示する。例えば、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、ストレージ装置Ａの接続先ＷＷＮ５５３０への前記ＰｏｏlＶｏｌのＬＵマップを指示する。
【０１２０】
これにより、ストレージ装置ＡのＬＵマップ処理部４０００は、図８に示したＬＵマップテーブル５０００を、図２４に示すＬＵマップテーブル５０００へ更新する。図２４では、例えばＰｏｏｌＶｏｌであったＬＤＥＶ１が、ＷＷＮ３のＬＵＮ１にＬＵマッピングされている。
【０１２１】
処理７２３０において、Ｐｏｏｌ結合処理部４６００は、前述の更新された接続先ストレージ装置Ａが持つＬＵマップテーブル５０００を取得する。例えば、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、ストレージ装置Ａの更新されたＬＵマップテーブル５０００（図２４）を取得する。
【０１２２】
次に、Ｐｏｏｌ結合処理部４６００は、処理７２４０で取得したＬＵマップテーブル５０００において、処理７２２０で接続先ＷＷＮ５５３０へマッピングされた接続先ストレージ装置ＡのＰｏｏｌＶｏｌを、処理７２１０で作成したＥｘＶｏｌ１４２５へ外接するよう、外接処理部４５００へ指示する。指示を受けた外接処理部４５００は、当該ＰｏｏｌＶｏｌについて外接処理を行い、外部Ｖｏｌマップテーブル５６００を作成する。例えば、図２４で示したＬＵマップテーブル５０００を取得したストレージ装置ＢのＰｏｏｌ結合処理部４６００は、ストレージ装置ＡのＰｏｏlＶｏｌがＷＷＮ３のＬＵＮ１、ＬＵＮ２、ＬＵＮ３、及びＬＵＮ４にＬＵマッピングされたことを特定する。そして、Ｐｏｏｌ結合処理部４６００は、接続先ＷＷＮである５６２０「ＷＷＮ３」のＬＵＮ１からＬＵＮ４を、処理７２１０で作成したＥｘＶｏｌ１からＥｘＶｏｌ４へ外接するようストレージ装置Ｂの外接処理部４５００へ指示する。これにより、図１７に示した外部Ｖｏｌマップテーブル５６００が生成される。
【０１２３】
なお、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、処理７２４０まで実行し、ストレージ装置ＡのＰｏｏｌＶｏｌを外接完了後、ＰｏｏｌおよびＶＶｏｌの削除をストレージ装置Ａに指示してもよい。この場合、具体的には、ストレージ装置ＡにあるプールＶｏｌ管理テーブル５１００及びセグメント管理テーブル５３００において、Ｐｏｏｌ１に関する記述が削除される。さらにこのとき、ホスト計算機３０００からストレージ装置Ａが有するＰｏｏｌＶｏｌへのデータの書き込みが発生する場合はこのデータ書き込みを抑止する。
【０１２４】
次に、図１９におけるＰｏｏl結合処理７３００について、図２２と図２３とを用いてより詳細に説明する。
【０１２５】
まず、処理７３１０において、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、処理７１００で取得したＰｏｏl構成情報のうち、ＰｏｏｌＶｏｌ管理テーブル５１００のＤＥＶＩＤ５１１０、及びセグメント管理テーブル５３００のＤＥＶＩＤ５３３０を、外部Ｖｏｌマップテーブル５６００の関係を用いて、接続先ＤＥＶＩＤ５６４０からＤＥＶＩＤ５６１０へ置換する。また前記取得したＰｏｏｌＶｏｌ管理テーブル５１００のＲＡＩＤグループＩＤ５１５０を、外部ボリュームであることを示すＲＡＩＤグループＩＤへ書き換える。
【０１２６】
例えば、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、ストレージ装置Ａから取得したＰｏｏl構成情報に対して、外部Ｖｏｌマップテーブル５６００においてＬＤＥＶ１がＥｘＶｏｌとして「ＥｘＶｏｌ１」となっている関係を用いて、ＰｏｏｌＶｏｌ管理テーブル５１００（図９）のＤＥＶＩＤ５１１０に記述されているＬＤＥＶ１を「ＥｘＶｏｌ１」へ、セグメント管理テーブル５３００（図１１）のＤＥＶＩＤ５３３０に記録されているＬＤＥＶ１を「ＥｘＶｏｌ１」へ、それぞれ置き換える。またＰｏｏｌ結合処理部４６００は、ＰｏｏｌＶｏｌ管理テーブル５１００のＲＡＩＤグループＩＤ５１５０を外部ボリュームＥｘＶｏｌであることを示す「Ｅｘ１-１」などに書き換える。ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、ストレージ装置ＡのＰｏｏｌＶｏｌであったＬＤＥＶ２、ＬＤＥＶ３、ＬＤＥＶ４についても同様の操作をする。
【０１２７】
次に、処理７３２０において、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、処理７１００で取得したＰｏｏl構成情報のうち、ＰｏｏｌＶｏｌ管理テーブル５１００のＰｏｏｌＩＤ５１２０、ＶＶｏｌ管理テーブル５２００のＰｏｏｌＩＤ５２５０、セグメント管理テーブル５３００のＰｏｏｌＩＤ５３１０を、結合先とするＰｏｏｌのＰｏｏｌＩＤへ置き換える。
【０１２８】
例えば、ストレージ装置ＢのＰｏｏl結合処理部４６００は、ストレージ装置ＡのＰｏｏｌをストレージ装置Ｂが有するＰｏｏｌＩＤがＰｏｏｌ１であるＰｏｏｌへ結合する場合、ストレージ装置Ａから取得したＰｏｏl構成情報に対して、ＰｏｏｌＶｏｌ管理テーブル５１００（図９）のＰｏｏｌＩＤ５１２０，ＶＶｏｌ管理テーブル５２００（図１３）のＰｏｏｌＩＤ５２５０，セグメント管理テーブル５３００（図１１）のＰｏｏｌＩＤ５３１０をすべてＰｏｏl１とする。
【０１２９】
次に、処理７３３０において、Ｐｏｏｌ結合処理部４６００は、処理７１００で取得したＰｏｏl構成情報のうち、ＶＶｏｌ管理テーブル５２００のＶＶｏｌＩＤ５２１０とセグメント管理テーブル５３００のＶＶｏｌＩＤ５３６０とを、結合先ＰｏｏlのＶＶｏｌＩＤと重複しないＶＶｏｌＩＤへ書き換える。
【０１３０】
例えば、ストレージ装置ＢにはＰｏｏｌ１を利用するＶＶｏｌＩＤが「ＶＶｏｌ１」であるＶＶｏｌが存在する。したがって、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、前記取得したＰｏｏl構成情報のうち、ＶＶｏｌ管理テーブル５２００（図１３）のＶＶｏｌＩＤ５２１０のＶＶｏｌ１であるものを「ＶＶｏｌ２」へ書き換え、前述の書換の結果重複することになるＶＶｏｌ２を「ＶＶｏｌ３」へ書き換える。同じく、セグメント管理テーブル５３００（図１１）のＶＶｏｌＩＤ５３６０のＶＶｏｌ１であるものを「ＶＶｏｌ２」へ書き換え、この書換の結果重複することになるＶＶｏｌ２を「ＶＶｏｌ３」に書き換える。なお、ここに示した書き換え方法は一例であって、ストレージ装置Ｂの結合後のＰｏｏｌでＶＶｏｌＩＤが重複しない状態が得られれば、どのような書き替え方を行ってもよい。
【０１３１】
次に、処理７３４０において、Ｐｏｏｌ結合処理部４６００は、処理７１００で取得したＰｏｏl構成情報のうち、ＶＶｏｌ管理テーブル５２００のセグメントＩＤ５２６０，セグメント管理テーブル５３００のセグメントＩＤ５３２０を、結合先ＰｏｏlのセグメントＩＤと重複しないセグメントＩＤへ書き換える。
【０１３２】
例えば、ストレージ装置ＢのＰｏｏｌ１を利用するセグメントＩＤが連続で００１から２００まで存在する場合、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、前記取得したＰｏｏl構成情報のうち、セグメント管理テーブル５３００（図１１）のセグメントＩＤ５３２０を、ストレージ装置ＡでＰｏｏｌＩＤがＰｏｏｌ１でセグメントＩＤが００１であったものを２０１、００２であったものを２０２へ、というように置き換える。さらにストレージ装置ＡでＰｏｏｌＩＤがＰｏｏｌ２でセグメントＩＤが００１であったものを４０１、というように重複しないように書き換えていく。さらにＶＶｏｌ管理テーブル５２００（図１３）のセグメントＩＤ５２６０を、前記セグメント管理テーブル５３００の書き換えに対応し、ストレージ装置ＡでＰｏｏｌＩＤがＰｏｏｌ１のセグメントＩＤを００１から２０１へ、といったようにそれぞれ書き換える。なお、書き換え方法は一例であって、ストレージ装置Ｂの結合後のＰｏｏｌで重複しないセグメントＩＤであり、かつセグメント管理テーブル５３００のセグメントＩＤ５２６０とＶＶｏｌ管理テーブル５２００のセグメントＩＤ５２６０の間の対応関係を保つ書き換えならば、どのような書き替え方を行ってもよい。
【０１３３】
次に、処理７３５０において、Ｐｏｏｌ結合処理部４６００は、接続先ストレージ装置Ａのコピーペア管理テーブル５４００を取得する。そして処理７３６０において、Ｐｏｏｌ結合処理部４６００は、コピーペアがＰｏｏl結合対象としているＰｏｏｌのＶＶｏｌ間で存在するか調べ、ＶＶｏｌ間でコピーペアが存在する場合には処理７３７０を行い、処理７３８０へ進む。ＶＶｏｌ間でコピーペアが存在しない場合は、前記処理７３７０を行わず、処理７３８０へ進む。なお処理７３５０から処理７３７０は、外部からの指示があった場合のみ実行されるように構成してもよい。
【０１３４】
例えば、ストレージ装置ＢのＰｏｏl結合処理部４６００は、管理ＩＦ１０１０を介して、ストレージ装置Ａの構成情報通信部４４００からコピーペア管理テーブル５４００（図１５）を取得する。そしてＰｏｏｌ結合処理部４６００は、取得したコピーペア管理テーブル５４００を参照し、ＶＶｏｌ間にコピーペアが存在するか調べる。実施例１の場合、ストレージＰｏｏｌ１を利用するＶＶｏｌ１とＰｏｏｌ２を利用するＶＶｏｌ２にコピーペアが存在するため処理７３７０へ進む。
【０１３５】
処理７３７０において、Ｐｏｏｌ結合処理部４６００は、前記取得したコピーペア管理テーブル５４００から、各ＶＶｏｌが利用しているＰｏｏlを構成するＰｏｏlＶｏｌに対して、ＰｏｏｌＶｏｌ管理テーブル５１００の割当禁止ＶＶｏｌＩＤ５１６０にペア相手となるＶＶｏｌのＶＶｏｌＩＤを追記する。さらにＰｏｏｌ結合処理部４６００は、処理７３３０で用いたＶＶｏｌＩＤの書き換えを前記割当禁止ＶＶｏｌＩＤ５１６０にも実施する。
【０１３６】
例えば、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、図１５に示すように、ストレージ装置ＡでＶＶｏｌ１とＶＶｏｌ２との間にコピーペアの関係がある場合、ストレージ装置ＡのＰｏｏｌＶｏｌ管理テーブル５１００（図９）でＶＶｏｌ１が利用しているＰｏｏｌのＰｏｏｌＶｏｌ（ＬＤＥＶ１、ＬＤＥＶ２）について、割当禁止ＶＶｏｌＩＤ５１６０にＶＶｏｌ２を追記する。一方で、ＶＶｏｌ２が利用するＰｏｏl２のＰｏｏｌＶｏｌ（ＬＤＥＶ３，ＬＤＥＶ４）の割当禁止ＶＶｏｌ５１６０にはＶＶｏｌ１を追記する。さらに処理７３３０で用いたＶＶｏｌＩＤの書き換え関係からＶＶｏｌ１をＶＶｏｌ２へ、ＶＶｏｌ２をＶＶｏｌ３へ書き換える。これにより、ストレージ装置Ｂで結合された後のＰｏｏlにおいて、ストレージ装置Ａでコピー関係にあったＶＶｏｌ１とＶＶｏｌ２（結合後はＶＶｏｌ２とＶＶｏｌ３）について、同一ＬＤＥＶ又はＥｘＶｏｌから両方のＶＶｏｌにセグメントが割り当てられないことを保証し、ＰｏｏｌＶｏｌ障害時にコピーペア関係が設定されていた両方のボリュームのデータが利用不可能となることを防いでいる。
【０１３７】
なお、処理７３７０を実施する場合、ストレージ装置Ｂのセグメント処理部４２００は、コピー関係のあるＶＶｏｌの一方にセグメントを割り当てた場合、ＰｏｏｌＶｏｌ管理テーブル５１００の前記割り当てたセグメントを含むＬＤＥＶの割当禁止ＶＶｏｌＩＤ５１６０に、コピー相手のＶＶｏｌＩＤを追記し、前記追記したＶＶｏｌＩＤへセグメントを割り当てることを抑止する機能を有する。
【０１３８】
次に処理７３８０において、Ｐｏｏｌ結合処理部４６００は、接続しているストレージ装置のＶＶｏｌのなかで、前記接続先ストレージ装置Ａから取得したＶＶｏｌ管理テーブル５２００のパフォーマンスが「ｈｉｇｈ」に設定されているものがあるか調べる。パフォーマンスが「ｈｉｇｈ」に設定されているものが存在しない場合は、処理７４１０へ進み、存在する場合は処理７３９０へ進む。なお処理７３８０、処理７３９０、処理７４００は、外部からの指示があった場合にのみ実行される構成としてもよい。
【０１３９】
処理７３９０において、Ｐｏｏｌ結合処理部４６００は、前記取得したＶＶｏｌ管理テーブル５２００の中でパフォーマンスが「ｈｉｇｈ」のものが存在する場合は、前記ＶＶｏｌ管理テーブル５２００から、パフォーマンスが「ｈｉｇｈ」のＶＶｏｌに割り当てられているセグメントを特定する。そして、前記特定したセグメントに格納されたデータを外部ＶｏｌであるＥｘＶｏｌから結合先のＬＤＥＶ１４２０でＶＶｏｌに割り当てられていないセグメントへコピーする。
【０１４０】
そして処理７４００において、Ｐｏｏｌ結合処理部４６００は、前記結合先のＬＤＥＶ１４２０へコピーしたセグメントを利用するように、前記処理７１００で取得したＰｏｏl構成情報のうちＶＶｏｌ管理テーブル５２００のセグメントＩＤ５２６０を書き換える。また処理７１００で取得したセグメント管理テーブル５３００のＶＶｏｌＩＤ５３６０の中で前記コピー元となったセグメントのＶＶｏｌＩＤを「ＮＵＬＬ」と記述することで、セグメントを他のＶＶｏｌへ割り当て可能とする。
【０１４１】
例えば、処理７３８０において、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、処理７１００で取得した図１３に示すＶＶｏｌ管理テーブル５２００を調べ、ストレージ装置ＡでＶＶｏｌ２（処理７３３０で書換後はＶＶｏｌ３）のパフォーマンスが「ｈｉｇｈ」に設定されていることを特定する。そして処理７３９０において、Ｐｏｏｌ結合処理部４６００は、例えば前記ＶＶｏｌに割り当てられているセグメントＩＤ１０１（処理７３４０で書換後はセグメントＩＤ５０１）に保存されているデータを、ストレージ装置Ｂ内のＰｏｏlＶｏｌであるＬＤＥＶ６のセグメントの一つであるセグメントＩＤが１０１のセグメントへコピーする。最後に処理７４００で、前記ＶＶｏｌ管理テーブル５２００（図１３）の処理７３４０で書換後のセグメントＩＤ「５０１」を、セグメントＩＤ「１０１」とすることで、前記ストレージ装置Ｂ内のＬＤＥＶであるＬＤＥＶ６のセグメントを割り当てる。また、セグメント管理テーブル５３００において、処理７３４０で書換後のセグメントＩＤ「５０１」であるセグメントのＶＶｏｌＩＤ５３６０を「ＮＵＬＬ」とする。
【０１４２】
なお、ＶＶｏｌ管理テーブル５２００においてパフォーマンスが設定されている場合には、ストレージ装置Ｂのセグメント処理部４２００は、パフォーマンスが「ｈｉｇｈ」のＶＶｏｌへは、できる限り自ストレージ装置Ｂ内にある高速なディスク１４００から作成されたＬＤＥＶ１４２０からセグメントを割り当てるように設定する。またパフォーマンスとして高い信頼性が求められる場合には、優先的に自ストレージ装置Ｂ内のＬＤＥＶ１４２０からセグメントを割り当てるようにしてもよい。
【０１４３】
次に、処理７４１０において、処理７１００で取得し、処理７３１０から処理７４００により書き換えを行ったＰｏｏｌ構成情報をもとに、Ｐｏｏl結合処理部４６００は、接続先ストレージ装置ＡのＰｏｏlを、自ストレージ装置ＢのＰｏｏlと結合する。なお、このＰｏｏｌ結合処理実行を契機として、ＶＶｏｌを構成するセグメントを、結合した全ＰｏｏｌＶｏｌにおいて均一に分布するように再配置すれば、ホスト計算機３０００からのデータＩＯ性能の向上を図ることができる。
【０１４４】
例えば、以上の処理を行い、ストレージ装置ＢのＰｏｏｌＩＤがＰｏｏｌ１であるＰｏｏｌへ、ストレージ装置ＡのＰｏｏlを結合した後に、ストレージ装置Ｂが持つＰｏｏｌ構成情報であるＰｏｏlＶｏｌ管理テーブル５１００を図２５に、ＶＶｏｌ管理テーブル５２００を図２６に、セグメント管理テーブル５３００を図２７にそれぞれ示す。
【０１４５】
処理７４２０として、Ｐｏｏｌ結合処理部４６００は、接続先ストレージ装置Ａから取得したコピーペア管理テーブル５４００でＶＶｏｌ間にコピーペア関係が設定されていた場合は、結合後のＶＶｏｌ間についてもコピーペアを定義する。そして処理７８００へ進む。
【０１４６】
例えば、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、ストレージ装置ＡでＶＶｏｌ１とＶＶｏｌ２でコピーペアが組まれていた場合は（図１５）、Ｐｏｏｌ結合処理実行後、それぞれに対応したＶＶｏｌ２とＶＶｏｌ３でコピーペアを組む。これにより図２８に示すコピーペア管理テーブル５４００をストレージ装置Ｂ上に作成する。
【０１４７】
図１８に示す管理プログラム２４００による処理６３００において、Ｐｏｏｌの結合方法を、例えば管理計算機２０００の出力装置であるモニタ等の出力デバイスに出力する場合に用いることができる画面の例８０００を、図２９に示す。
【０１４８】
画面８０００は、結合先となるストレージ装置を選択するための選択部８０１０、結合対象となるＰｏｏｌを選択するための選択部８０２０、前記結合対象で部分結合を選択した場合に選択対象とするＰｏｏlを選ぶための選択部８０３０、及びＶＶｏｌ管理テーブル５２００に記述されているパフォーマンス５２２０が「ｈｉｇｈ」の場合には、前記ＶＶｏｌを作成するセグメントとして、結合先ストレージ装置ＢのＰｏｏｌＶｏｌにあるセグメントを割り当てる（処理７３８０から処理７４００）よう指定するための選択部８０４０とが設けられている。
【０１４９】
選択部８０３０は、結合対象となる各Ｐｏｏｌについて、当該Ｐｏｏｌの使用率、ＰｏｏｌＶｏｌに割り当てられているディスクタイプ、Ｐｏｏｌを利用するＶＶｏｌ、コピーペアに関する情報（図２９の例では、「Ｄｅｔａｉｌ」部分を選択することで詳細なコピーペア関係が表示される。）などの表示をする。
【０１５０】
なお、画面８０００は、結合方法の選択画面の一例であって、表示する情報の内容、表示フォーマット、及び選択方法を含む画面設計は、適宜決定することができる。
【０１５１】
Ｐｏｏｌ結合処理の結果を表示する画面の例を、画面８１００を図３０に示す。図３０に例示する画面８１００では、ストレージ装置Ｂに関する構成変更結果として、結合対象となったＰｏｏｌを示すＰｏｏｌＩＤ、当該Ｐｏｏｌに含まれるＶＶｏｌを示すＶＶｏｌＩＤ、結合前に属していた結合元ストレージ装置名、結合前のＰｏｏｌＩＤ、結合前のＶＶｏｌＩＤ、及び当該ＶＶｏｌを使用していたホスト計算機名を表示する表示部８１１０を備える。
【０１５２】
なお、画面８１００は、結合結果表示画面の一例であって、表示する情報の内容、及び表示フォーマットを含む画面設計は、適宜決定することができる。
【０１５３】
［実施例２］
実施例１では異なるストレージ装置に属するＰｏｏｌを結合する方法を開示した。実施例２では、ＰｏｏｌＶｏｌに関する属性情報、あるいはＶＶｏｌ間に設定されているコピーペアの関係により、Ｐｏｏｌの結合先を決定する方法を説明する。
【０１５４】
まず、結合するＰｏｏｌが持つＰｏｏｌＶｏｌの属性情報を考慮して、Ｐｏｏｌの結合先を決定する方法について述べる。
【０１５５】
図２２の処理フローにおいて接続先ＰｏｏlＶｏｌをＥｘＶｏｌとして外接し、この外接の関係を用いて、図１９の処理７１００で取得したＰｏｏｌ構成情報を書き換えた以降（処理７３１０以降）に行う処理の処理フローを図３１に示す。
【０１５６】
処理７４３０において、処理７１００で取得した接続先ストレージ装置ＡのＰｏｏｌ構成情報に含まれる各Ｐｏｏlに対して、処理７４４０〜７４８０の処理を実行する。説明の便宜上、取得したＰｏｏｌ構成情報に含まれるＰｏｏｌＩＤがＰｏｏｌＡであるＰｏｏｌについて処理が実行されるものとする。
【０１５７】
なお、図３１の処理フローでは、処理７４３０の前に、ＰｏｏｌＶｏｌの状態情報をＰｏｏｌＶｏｌ管理テーブル５１００の属性情報の一つとしてＶｏｌ状態５１７０の項目に記録、及び管理しておき、障害ＰｏｏｌＶｏｌを含むＰｏｏｌを結合しないために、ＰｏｏｌＶｏｌが正常であるか判定する処理を設けることができる。ここで、各ＰｏｏｌＶｏｌの状態情報の属性値は、ホスト計算機３０００との間で正常にデータＩ／Ｏが可能である「正常」と、何らかの理由によりデータＩ／Ｏが不可能となっている「障害」とのいずれかを含む。
【０１５８】
ＰｏｏｌＶｏｌに障害が生じている場合、当該障害ＰｏｏｌＶｏｌを含むＰｏｏｌおよび前記Ｐｏｏｌを利用するＶＶｏｌが、ホスト計算機３０００から利用不可能となるおそれがある。このような障害ＰｏｏｌＶｏｌを含むＰｏｏｌを結合することにより、結合後のＰｏｏｌ全体が利用不可能となることを防ぐために、処理７４３０に先立って以下の処理７４２５を含める構成を採用することができる。
【０１５９】
まず前記ＰｏｏｌＡについて、障害がある旨の状態情報を含むＰｏｏｌＶｏｌが存在しないかＰｏｏｌＶｏｌ管理テーブル５１００を調べる。ＰｏｏｌＡに障害ＰｏｏｌＶｏｌが含まれなければ、処理７４４０以降が実行される。ＰｏｏｌＡに障害ＰｏｏｌＶｏｌが含まれれば、前記ＰｏｏｌＡは結合対象外とし、以降の結合処理を行わずに処理を処理７８００に移す。この場合、処理７８００において、ＰｏｏｌＡが障害ＰｏｏｌＶｏｌを含む旨の情報を、管理計算機２０００等を介して管理者へ送信するようにしてもよい。
【０１６０】
なお、処理７４４０〜７４８０の処理は、各Ｐｏｏｌについて行うのではなく、Ｐｏｏｌ構成情報全体に対して以下に述べる書き換え処理等を実施し、最後に反映させる、という方法でもよい。
【０１６１】
処理７４４０において、Ｐｏｏｌ結合処理部４６００は、処理７１００で取得したＰｏｏlＶｏｌ管理テーブル５１００の中でＰｏｏｌＡの部分を参照し、ＰｏｏｌＡを構成するＰｏｏｌのＰｏｏｌＶｏｌ同士で属性が異なる、例えばディスクタイプ５１３０やＲＡＩＤレベル５１４０が異なるＰｏｏlが存在しないか調べる。ＰｏｏｌＡに属性が異なるＰｏｏlＶｏｌが存在する場合は処理７４５０へ進む。ＰｏｏｌＡが同一の属性を有するＰｏｏｌＶｏｌのみで構築されている場合は、処理７４６０へ進む。
【０１６２】
異なる属性のＰｏｏｌＶｏｌが同一Ｐｏｏｌ内に存在する場合の処理である処理７４５０では、Ｐｏｏｌ結合処理部４６００は、処理７１００で取得したＰｏｏｌ構成情報のうち、ＰｏｏｌＩＤを他とは異なるＰｏｏｌＩＤへ書き換えた処理７４１０と同じように、結合先Ｐｏｏlを持つストレージ装置に反映することで、他のＰｏｏlと結合しないＰｏｏｌを生成する。またはＰｏｏｌを新規に作成するのではなく、ＰｏｏｌＡであるＰｏｏｌを結合しない、としてもよい。
【０１６３】
処理７４６０では、Ｐｏｏｌ結合処理部４６００は、ＰｏｏｌＡであるＰｏｏｌ内のＰｏｏlＶｏｌの属性がすべて同じであるか判定し、同じである場合は、自ストレージ装置ＢのＰｏｏl構成情報を参照し、同じＰｏｏlＶｏｌ属性を持つＰｏｏlＶｏｌからなるＰｏｏｌが存在するか調べる。なお、ここでいう属性は、ある特定の一つの属性（例えばディスクタイプ５１３０のみ）であってもよいし、複数の属性（例えばディスクタイプ５１３０とＲＡＩＤレベル５１４０など）であってもよい
【０１６４】
ＰｏｏｌＡであるＰｏｏｌのＰｏｏｌＶｏｌと同じ属性を持つＰｏｏｌＶｏｌからなるＰｏｏｌが、Ｐｏｏｌ結合処理部４６００を有するストレージ装置Ｂ内に存在する場合は、処理７４８０として、ＰｏｏｌＡであるＰｏｏｌのＰｏｏl構成情報（ＰｏｏｌＶｏｌ管理テーブル５１００、ＶＶｏｌ管理テーブル５２００、及びセグメント管理テーブル５３００におけるＰｏｏｌＩＤがＰｏｏｌＡの部分）について、同一のＰｏｏｌＶｏｌ属性を持つＰｏｏlのＰｏｏｌＩＤへ書き換える。そして、処理７３３０及び処理７３４０と同様の操作を行い、重複するセグメントＩＤおよびＶＶｏｌＩＤがあれば、それらを重複が解消するように書き換える。その後、前記書き換えを行ったＰｏｏｌ構成情報を自ストレージ装置Ｂ内に反映することで、同一の属性情報を持つＰｏｏl同士を結合する。
【０１６５】
処理７４６０において、ＰｏｏｌＡのＰｏｏｌＶｏｌと同じ属性を持つＰｏｏｌＶｏｌからなるＰｏｏｌが存在しない場合は、処理７４５０と同じく、Ｐｏｏｌ結合処理部４６００は、ＰｏｏｌＡのＰｏｏｌ構成情報をもとにＰｏｏｌを新規作成する。または、ＰｏｏｌＡであるＰｏｏｌを結合の対象外としてもよい。
【０１６６】
例えば、処理７４３０において、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、ＰｏｏｌＡとして、図９に示すストレージ装置Ａが持つＰｏｏｌＶｏｌ管理テーブル５１００に記述されているＰｏｏｌ１について、処理７４３０以降を行う。
【０１６７】
処理７４４０において、Ｐｏｏｌ１のＰｏｏｌＶｏｌに関する属性としてディスクタイプ５１３０を選択した場合、当該ディスクタイプ５１３０は全てＳＡＴＡであるため、処理７４６０に進む。
【０１６８】
処理７４６０において、Ｐｏｏｌ結合処理部４６００は、図１０に示す自ストレージ装置Ｂ内のＰｏｏｌＶｏｌでディスクタイプがＳＡＴＡであるＰｏｏｌが存在するか調べる。図１０の例では、ストレージ装置ＢのＰｏｏｌＶｏｌ管理テーブル５１００の内容から、ディスクタイプがＳＡＴＡであるＰｏｏｌは存在しないことがわかる。そこで、Ｐｏｏｌ結合処理部４６００は、ストレージ装置ＡのＰｏｏｌ１であるＰｏｏｌ構成情報のうち、ＰｏｏｌＩＤをＰｏｏｌ１からストレージ装置Ｂで存在しないＰｏｏｌＩＤ（例えばＰｏｏｌ３）に変更し、かつ実施例１の処理７３３０と処理７３４０でも示したセグメントおよびＶＶｏｌＩＤの書き換えを行う。そして前記書き換えを行ったＰｏｏｌ構成情報により新規にＰｏｏｌをストレージ装置Ｂ内に作成する。
【０１６９】
一方で、処理７４３０においてＰｏｏｌＡとしてＰｏｏｌ２を選択した場合は、処理７４６０において、ストレージ装置ＢのＰｏｏｌ処理結合部４６００は、ストレージ装置ＡのＰｏｏｌＶｏｌのディスクタイプ５１３０がＦＣであり、ストレージ装置ＢにもＰｏｏｌ１のＰｏｏｌＶｏｌに関してディスクタイプ５１３０がＦＣであるものが存在するとわかる。
【０１７０】
この場合、Ｐｏｏｌ結合処理部４６００は、ストレージ装置ＡでＰｏｏｌ２であるＰｏｏｌ構成情報のＰｏｏｌＩＤをＰｏｏｌ１へ書き換える。さらに実施例１の処理７３３０と処理７３４０でも示したセグメントおよびＶＶｏｌＩＤの書き換えを行い、前記書き換えを行ったＰｏｏｌ構成情報をストレージ装置ＢのＰｏｏｌ構成情報に反映させることで、ストレージ装置ＡのＰｏｏｌ１であるＰｏｏｌとストレージ装置ＢのＰｏｏｌ１であるＰｏｏｌを結合する。
【０１７１】
以上説明した図３１の処理フローによれば、データ転送速度を含むパフォーマンスが同程度であるＰｏｏｌＶｏｌ同士からなるＰｏｏｌを作成することができる。したがって、データＩＯについて高性能が求められるＶＶｏｌ用のＰｏｏｌ、データ保存目的として高信頼性が求められるＶＶｏｌ用のＰｏｏｌなど、結合元のＰｏｏｌの用途に応じて適合するＰｏｏｌを結合することができる。
【０１７２】
次に、図３２を参照して、Ｐｏｏｌを利用するＶＶｏｌ間のコピーペア関係によりＰｏｏｌの結合の可否を判定する方法について説明する。図３２はこの方法の処理フローの一例を示している。
【０１７３】
本実施例では、図２２において接続先ＰｏｏlＶｏｌをＥｘＶｏｌとして外接し、外接の関係を用いて処理７１００で取得したＰｏｏｌ構成情報を書き換えた以降に行う処理について説明する。
【０１７４】
処理７５００として、ストレージ装置ＢのＰｏｏｌ結合処理部４６００は、処理７３５０と同様に、ストレージ装置Ａからコピーペア管理テーブル５４００を取得する。
【０１７５】
例えばストレージ装置ＢのＰｏｏｌ結合処理部４６００は、ストレージ装置Ａからコピーペア管理テーブル５４００（図１５）を取得する。
【０１７６】
処理７５１０として、処理７１００で取得したＰｏｏｌ構成情報に含まれる各Ｐｏｏｌに対して、Ｐｏｏl結合処理部４６００は、処理７５２０〜７５６０の処理を行う。説明の便宜上、ここでは、Ｐｏｏｌ構成情報のうちＰｏｏｌＩＤがＰｏｏｌＡであるＰｏｏｌについての処理を述べる。なお、前記処理は各Ｐｏｏｌについて行うのではなく、Ｐｏｏｌ構成情報全体に対して以降に述べる処理の書き換え等を実施し、最後に反映させる、という方法でもよい。
【０１７７】
まず処理７５２０において、Ｐｏｏｌ結合処理部４６００は、取得したコピーペア管理テーブル５４００にＰｏｏｌＡであるＰｏｏｌを利用するＶＶｏｌとペア関係にあるＶＶｏｌが存在しないか調べる。ペア関係にあるＶＶｏｌが存在しないと判定した場合は、処理７５３０として、実施例１で示した処理７３２０以降と同様に、ＰｏｏｌＡは、ストレージ装置Ｂの任意のＰｏｏlに結合される。
【０１７８】
ＶＶｏｌ間にコピーペアが存在すると判定した場合は、処理７５４０へ進み、コピーペア関係のあるＶＶｏｌが利用するＰｏｏｌ同士が結合されないように、Ｐｏｏｌを結合するための処理を行う。
【０１７９】
処理７５４０において、Ｐｏｏｌ結合処理部４６００は、ＰｏｏｌＡであるＰｏｏlを利用するＶＶｏｌとコピーペア関係があるＶＶｏｌが存在しないＰｏｏlが、自ストレージ装置Ｂ内に存在するか調べる。コピーペア関係があるＶＶｏｌが含まれないＰｏｏlが存在すると判定した場合は処理７５６０へ進み、ストレージ装置ＡのＰｏｏｌＡをストレージ装置Ｂの当該Ｐｏｏlに結合する。
【０１８０】
コピーペア関係が存在するＶＶｏｌを含んだＰｏｏlしか存在しないと判定した場合は、処理７５５０として、ＰｏｏｌＡであるＰｏｏｌに関するＰｏｏｌ構成情報をもとに、自ストレージ装置Ｂ内に新規にＰｏｏlを作成する。あるいは、処理７５５０では何の処理もしないと設定してもよい。
【０１８１】
例えば、図９〜図１４に示したＰｏｏｌ構成情報を有するストレージ装置Ａ及びストレージ装置Ｂにおいて、ストレージ装置ＡのＰｏｏｌ１を利用するＶＶｏｌとストレージ装置ＢのＰｏｏｌ１を利用するＶＶｏｌとの間にコピーペア関係がない場合は、ストレージ装置ＡのＰｏｏｌ１をストレージ装置ＢのＰｏｏｌ１へ結合する。
【０１８２】
ストレージ装置ＡのＰｏｏｌ１を利用するＶＶｏｌ１がストレージ装置ＢのＰｏｏｌ１を利用するＶＶｏｌ１とコピーペア関係にある場合は、ストレージ装置ＡのＰｏｏｌ１はストレージ装置ＢのＰｏｏｌ１以外のＰｏｏｌへ結合される。あるいは、ストレージ装置Ｂ上にストレージ装置ＡのＰｏｏｌ１であるＰｏｏｌ構成情報を元に新規のＰｏｏｌを作成するか、ストレージ装置Ａ上のＰｏｏｌ１はそのまま利用する。
【０１８３】
ストレージ装置ＢのＰｏｏｌ１をストレージ装置Ａ上のＰｏｏｌへ結合するのであって、かつストレージ装置ＢのＰｏｏｌ１を利用するＶＶｏｌ１とストレージ装置ＡのＰｏｏｌ１を利用するＶＶｏｌ１にコピーペア関係があり、かつストレージ装置ＡのＰｏｏｌ２を利用するＶＶｏｌとの間にはコピーペア関係がないような場合には、ストレージ装置ＢのＰｏｏｌ１をＶＶｏｌ間にコピーペア関係のないストレージ装置ＡのＰｏｏｌ２へ結合する。
【０１８４】
以上説明したＰｏｏｌ結合処理によれば、ＶＶｏｌに関するコピーペア関係を考慮することにより、同一のＰｏｏｌＶｏｌ内でコピーペア関係にあるＶＶｏｌに割り当てられたセグメントが混在することが防止される。それにより、ＰｏｏｌＶｏｌに障害が発生した時に、コピーペア関係が設定されているＶＶｏｌの両方が利用不可能となりデータロスが生じるのを防止することができる。
【０１８５】
ＶＶｏｌ間のコピーペア関係を考慮したＰｏｏｌ結合方法を選択するために、管理プログラム２４００またはストレージ装置１０００の管理ＩＦ１０２０が出力装置を備える場合に表示する画面の例を画面８２００に示す。
【０１８６】
画面８２００は、結合先ストレージ装置を指定するための選択部８２１０、結合対象であるＰｏｏｌを選択するための選択部８２２０、特定のストレージ装置に属するＰｏｏｌのみを選択的に結合させるための結合Ｐｏｏｌ選択部８２３０、及びＰｏｏｌ結合にあたっての結合Ｐｏｌｉｃｙを選択するための結合Ｐｏｌｉｃｙ選択部８２４０を備えている。結合Ｐｏｌｉｃｙ選択部８２４０により、図３１あるいは図３２に示したＰｏｏｌ結合処理を選択することができる。
【０１８７】
なお、結合Ｐｏｌｉｃｙは複数選択などを可能とし、複数の属性や条件を組み合わせることを可能としてもよい。図３３の例では、特定の結合Ｐｏｌｉｃｙによらずにすべてのプールを結合する場合の他、データ保存の信頼性を揃える観点からＲＡＩＤレベルを合わせる場合、データＩＯ性能の観点からディスクタイプを揃える場合、コピーペア関係を考慮する場合が選択できるようになっている。
【０１８８】
このような画面８２００がストレージシステム１の管理者等に提示されることで、当該管理者等は、システム運用上の要請に応じた適切なＰｏｏｌ結合の態様を選択することができる。
【０１８９】
［実施例３］
次に、本発明の実施形態を、実施例３に即して説明する。ここまでに説明した実施例１及び実施例２では、ともにストレージ装置（例えばストレージ装置Ｂ）内に存在するＰｏｏｌ結合処理部４６００がＰｏｏｌを結合する方法について開示した。
【０１９０】
本実施例では、Ｐｏｏｌの結合を、管理計算機２０００で稼働する管理プログラム２４００によって実行する。
【０１９１】
実施例３のストレージシステム１全体のブロック図は図１と同じであるが、ストレージ装置Ｂ（１０００）のメモリ１２００内に設けられている処理部の構成が異なる。図３４に、本実施例におけるストレージ装置Ｂ（１０００）の処理部の構成の一例を示している。図３４に示されているように、本実施例のストレージ装置Ｂでは、実施例１及び２におけるＰｏｏｌ結合処理部４６００のかわりに、構成情報通信部４４００が設けられている。この構成情報通信部４４００は、管理計算機２０００で動作する管理プログラム２４００へストレージ装置ＢのＰｏｏｌ構成情報を送信可能とするとともに、管理プログラム２４００から受け取ったＰｏｏｌ構成情報をもとに他の各処理部へ必要な指示を出し、管理プログラム２４００から受け取ったＰｏｏｌ構成情報に従った構成へ自身のＰｏｏｌ構成情報を変更する機能を持つ。
【０１９２】
管理計算機２０００の管理プログラム２４００が行う処理のフローの一例を図３５に示す。本実施例の処理フローでは、図１８に示した、ストレージ装置１０００のＶＶｏｌをホスト計算機３０００からオフラインにする処理である、処理６２００以降の処理として、まず処理６９００を実施する。
【０１９３】
処理６９００では、管理プログラム２４００が、管理計算機２０００に接続している全ストレージ装置１０００からＰｏｏｌ構成情報を取得する。
【０１９４】
次に、処理６９１０において、取得したＰｏｏｌ構成情報をもとに、処理７２００と同様に、結合先となるストレージ装置１０００に結合対象となるＰｏｏｌのＰｏｏｌＶｏｌを外接する。
【０１９５】
このとき図３３に示したような結合対象を選択する画面を表示し、ストレージシステム１の管理者に入力を促すように構成してもよい。また選択画面を表示しない場合は、例えばキャッシュメモリ１３００の容量が最も多いなど、より高性能であるストレージ装置１０００のＰｏｏｌへ結合するなどの結合Ｐｏｌｉｃｙにより結合するＰｏｏｌを決めてもよい。
【０１９６】
次に、処理６９２０において、取得したＰｏｏｌ構成情報を処理７３００と同じ手順で変換する。
【０１９７】
処理６９３０において、管理プログラム２４００は、書き換えたＰｏｏｌ構成情報を、結合先とするストレージ装置１０００へ送信する。送信されたＰｏｏｌ構成情報を受け取ったストレージ装置１０００の構成情報通信部４４００は、当該構成情報に従い自ストレージ装置１０００内にあるＰｏｏｌの構成を変更する。
【０１９８】
処理６９４０において、管理プログラム２４００は、結合対象としたＰｏｏｌおよびＶＶｏｌの削除を各ストレージ装置１０００に指示する。ただしこの削除処理を行う際、管理プログラム２４００は、ホスト計算機３０００に対して、各Ｐｏｏｌを構成していたＰｏｏｌＶｏｌ内のデータへのアクセスは行わせないようにする。そして図１８の処理６６００へ進む。
【０１９９】
例えば図９〜図１４に示すＰｏｏｌ構成情報を持つストレージ装置Ａとストレージ装置Ｂとにおいて、ストレージ装置ＢのＰｏｏｌへストレージ装置ＡのＰｏｏｌを結合する場合、管理プログラム２４００は、ストレージ装置Ａとストレージ装置Ｂから各Ｐｏｏｌ構成情報を、管理ＩＦ１０１０等を介して取得する。
【０２００】
取得したＰｏｏｌ構成情報のうち、ストレージ装置Ａから取得したＰｏｏｌ構成情報をもとに、ストレージ装置ＡのＰｏｏｌを構築しているＰｏｏｌＶｏｌを特定し、図１９の処理７２００と同様の処理を行うことで、ＰｏｏｌＶｏｌを外接し、ストレージ装置Ｂで利用可能とする。このとき、管理プログラム２４００は、ストレージ装置ＡにあるＰｏｏｌＶｏｌに格納されたデータに関する書き込みは抑止する。
【０２０１】
さらにストレージ装置Ａ及びストレージ装置Ｂから取得したＰｏｏｌ構成情報のうち、ＰｏｏｌＡのＰｏｏｌ構成情報のＰｏｏｌＩＤ、ＶＶｏｌＩＤ、セグメントＩＤの書き換えを、処理７３２０から処理７３４０と同様に行い、ストレージ装置Ａとストレージ装置ＢのＰｏｏｌ構成情報を統合したＰｏｏｌ構成情報を作成する。
【０２０２】
そして作成したＰｏｏｌ構成情報をストレージ装置Ｂに送信することで、ストレージ装置ＢのＰｏｏｌにストレージ装置ＡのＰｏｏｌを結合し、図２５から図２７に示すようなＰｏｏｌをストレージ装置Ｂで提供可能とする。
【０２０３】
なお、管理プログラム２４００でＰｏｏｌの結合を行う場合も、実施例１及び実施例２で示したコピーペアやＰｏｏｌＶｏｌの属性、ＶＶｏｌのパフォーマンス等を考慮したＰｏｏｌ結合処理を実施することが可能である。
【０２０４】
［実施例４］
次に、実施例４について説明する。実施例１から実施例３までは、それぞれ別筐体として構成されている２つ以上のストレージ装置１０００において、いずれか一つのストレージ装置１０００が備えているＰｏｏｌに、他のストレージ装置１０００が備えているＰｏｏｌを結合する方法を開示した。
【０２０５】
実施例４では、同一ストレージ装置１０００内に２つ以上設けられているＰｏｏｌを一つのＰｏｏｌに統合する方法を開示する。実施例４における処理を図３６に模式的に示している。
【０２０６】
結合処理実行前の状態では、ストレージ装置１０００は、ＰｏｏｌＶｏｌとしてＬＤＥＶ１とＬＤＥＶ２からなるＰｏｏｌ１と、Ｐｏｏｌ１を利用するＶＶｏｌ１、及びＰｏｏlＶｏｌとしてＬＤＥＶ３とＬＤＥＶ４からなるＰｏｏｌ２と、Ｐｏｏｌ２を利用するＶＶｏｌ２を有し、Ｐｏｏｌ結合処理部４６００を備えている。
【０２０７】
ストレージ装置１０００において、図２２に示した処理７３２０、処理７３３０、処理７３４０と、処理７４１０と同様の処理を行う。
【０２０８】
これにより、Ｐｏｏｌ結合の結果として、ＰｏｏｌＶｏｌとしてＬＤＥＶ１、ＬＤＥＶ２、ＬＤＥＶ３、ＬＤＥＶ４からなるＰｏｏｌ１と、Ｐｏｏｌ１を利用するＶＶｏｌ１とＶＶｏｌ２となるＰｏｏｌおよびＶＶｏｌを作り出すことが可能となる。
【０２０９】
なお、上記処理に加えて、処理７３５０から処理７３７０に記した仮想ボリュームＶＶｏｌ間のコピーペア関係を考慮した結合や、実施例２に記載したＰｏｏｌＶｏｌの属性情報により結合するＰｏｏｌを選択するステップを含めてもよい。
【０２１０】
本実施例によれば、同一ストレージ装置１０００内の２以上のＰｏｏｌにおいて、各Ｐｏｏｌ使用率に不均一が生じた場合に、これらのＰｏｏｌを単一Ｐｏｏｌとすることで、使用率の不均一に起因して生じる記憶容量の無駄を削減することができる。
【図１】
0005341184.tif 000002
【図２】
0005341184.tif 000003
【図３】
0005341184.tif 000004
【図４】
0005341184.tif 000005
【図５】
0005341184.tif 000006
【図６】
0005341184.tif 000007
【図７】
0005341184.tif 000008
【図８】
0005341184.tif 000009
【図９】
0005341184.tif 000010
【図１０】
0005341184.tif 000011
【図１１】
0005341184.tif 000012
【図１２】
0005341184.tif 000013
【図１３】
0005341184.tif 000014
【図１４】
0005341184.tif 000015
【図１５】
0005341184.tif 000016
【図１６】
0005341184.tif 000017
【図１７】
0005341184.tif 000018
【図１８】
0005341184.tif 000019
【図１９】
0005341184.tif 000020
【図２０】
0005341184.tif 000021
【図２１】
0005341184.tif 000022
【図２２】
0005341184.tif 000023
【図２３】
0005341184.tif 000024
【図２４】
0005341184.tif 000025
【図２５】
0005341184.tif 000026
【図２６】
0005341184.tif 000027
【図２７】
0005341184.tif 000028
【図２８】
0005341184.tif 000029
【図２９】
0005341184.tif 000030
【図３０】
0005341184.tif 000031
【図３１】
0005341184.tif 000032
【図３２】
0005341184.tif 000033
【図３３】
0005341184.tif 000034
【図３４】
0005341184.tif 000035
【図３５】
0005341184.tif 000036
【図３６】
0005341184.tif 000037