(57)【要約】【課題】複数のストレージノードに跨ったデータ保護レベルの変換を実現し得るストレージシステムを提供する。【解決手段】複数のストレージノードを含んで構成されるストレージシステムであって、データ保護レベルの変換に係る情報に基づいて、複数のストレージノードの中から、変換後のデータ保護レベルの設定に必要なストレージノードを選定する選定部を備え、選定部により選定されたストレージノードは、変換後のデータ保護レベルでデータを管理する、ようにした。【選択図】図１
2020087378.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージノードを含んで構成されるストレージシステムであって、
データ保護レベルの変換に係る情報に基づいて、前記複数のストレージノードの中から、変換後のデータ保護レベルの設定に必要なストレージノードを選定する選定部を備え、
前記選定部により選定されたストレージノードは、変換後のデータ保護レベルでデータを管理する、
ことを特徴とするストレージシステム。
【請求項２】
前記複数のストレージノードは、複数のサブセットを含む所定のストレージクラスタに属し、
前記選定部は、データ保護レベルの変換が指定されたデータを扱うストレージノードが属するサブセットの中からストレージノードを選定する、
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記選定部は、空き容量が大きいストレージノードから順にストレージノードを選定する、
ことを特徴とする請求項１に記載のストレージシステム。
【請求項４】
所定のストレージノードは、データ保護レベルが設定されたストレージプールのデータを移行する制御部を備え、
第１のデータ保護レベルが設定された第１のストレージプールと、第２のデータ保護レベルが設定された第２のストレージプールとが設けられ、
前記制御部は、データ保護レベルを変換する旨の要求が前記第１のデータ保護レベルを前記第２のデータ保護レベルに変換する旨の要求である場合、前記第１のストレージプールから前記第２のストレージプールにデータを移行する、
ことを特徴とする請求項１に記載のストレージシステム。
【請求項５】
前記第１のストレージプールには、複数の物理容量が割り当てられ、
前記制御部は、前記第１のストレージプールから前記第２のストレージプールにデータをコピーして前記データを削除することにより、前記第１のストレージプールから前記第２のストレージプールにデータを移行する際、前記第１のストレージプールから前記第２のストレージプールに移行したデータの容量に応じて、前記第１のストレージプールから割り当てられている物理容量を外す、
ことを特徴とする請求項４に記載のストレージシステム。
【請求項６】
前記所定のストレージノードには、第１のストレージノードと、第２のストレージノードとが含まれ、
前記第１のストレージノードの前記制御部が前記第１のストレージプールから前記第２のストレージプールにデータを移行する処理と、前記第２のストレージノードの前記制御部が前記第１のストレージプールから前記第２のストレージプールにデータを移行する処理とが並列に行われる、
ことを特徴とする請求項４に記載のストレージシステム。
【請求項７】
前記第１のストレージプールには、物理容量が割り当てられ、
前記制御部は、データ保護レベルを変換する旨の要求に基づいて、変換前のデータ保護レベルのデータと変換後のデータ保護レベルのデータとが一致するか否かを判定し、一致すると判定した場合、前記第２のストレージプールに前記第１のストレージプールの物理容量を割り当てるように、ストレージプールと物理容量とが対応付けられている管理情報を変更することで、前記第１のストレージプールから前記第２のストレージプールにデータを移行する、
ことを特徴とする請求項４に記載のストレージシステム。
【請求項８】
データ保護レベルの変換に係る情報には、データ保護レベルの変換を行う単位としてストレージシステム全体、ストレージクラスタのサブセット、ストレージプール、またはボリュームが選択されていることを示す情報が含まれる、
ことを特徴とする請求項１に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステムに関し、例えば複数のストレージノードを含んで構成されるストレージシステムに適用して好適なものである。
【背景技術】
【０００２】
近年、ＳＤＳ（Software Defined Storage）の開発が進められている。ＳＤＳのシステムでは、複数のストレージノードに跨ったデータ保護機能を提供している。かかる構成によれば、例えば１つのストレージノードに障害が発生したとしても、残りのストレージノードにてシステムを継続して動作させることができる。
【０００３】
また、ＳＤＳのシステムでは、システムが提供するデータ（例えば、ボリューム）のデータ保護レベルが拡張されたり、ストレージノードが増減したりする。このような変更に応じて、ＳＤＳのシステムでは、既に用いているデータ保護レベルを、拡張されたデータ保護レベルに変更したり、より効率的なデータ保護レベルに変更したりするために、データ保護レベルの変換が求められている。
【０００４】
この点、ストレージノード内で、データ保護レベルが異なるプールを構成し、第１のプールのボリュームのデータを別の第２のプールのボリュームに移行するボリュームマイグレーション（Volume Migration）を行い、データ保護レベルを変換する技術が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２７７７２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に示されるような単一のストレージノード内のボリュームマイグレーションでは、複数のストレージノードに跨ったデータ保護レベルを変換することができないという問題がある。
【０００７】
本発明は以上の点を考慮してなされたもので、複数のストレージノードに跨ったデータ保護レベルの変換を実現し得るストレージシステムを提案しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため本発明においては、複数のストレージノードを含んで構成されるストレージシステムであって、データ保護レベルの変換に係る情報に基づいて、前記複数のストレージノードの中から、変換後のデータ保護レベルの設定に必要なストレージノードを選定する選定部を備え、前記選定部により選定されたストレージノードは、変換後のデータ保護レベルでデータを管理するようにした。
【０００９】
上記構成によれば、変換後のデータ保護レベルを構成するために必要なストレージノードを選定し、選定したストレージノードに対して変換後のデータ保護レベルでデータを管理するように指示を与えることで、複数のストレージノードに跨ったデータ保護レベルの変換を行うことができる。
【発明の効果】
【００１０】
本発明によれば、複数のストレージノードに跨ったデータ保護レベルの変換を実現し得るストレージシステムを実現することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態によるストレージシステムに係る構成の一例を示す図である。
【図２】第１の実施の形態によるストレージノードのハードウェア資源に係る構成の一例を示す図である。
【図３】第１の実施の形態によるメモリに記憶されるデータの一例を示す図である。
【図４】第１の実施の形態によるストレージノード管理表の一例を示す図である。
【図５】第１の実施の形態によるチャンクグループ管理表群の一例を示す図である。
【図６】第１の実施の形態による論理チャンク管理表群の一例を示す図である。
【図７】第１の実施の形態によるプール管理表群の一例を示す図である。
【図８】第１の実施の形態によるプール管理表群の一例を示す図である。
【図９】第１の実施の形態によるプール管理表群の一例を示す図である。
【図１０】第１の実施の形態によるボリューム管理表群の一例を示す図である。
【図１１】第１の実施の形態によるデータ保護レベルの変換のイメージ図である。
【図１２】第１の実施の形態によるクラスタ制御部が実行する処理に係るフローチャートの一例を示す図である。
【図１３】第１の実施の形態によるデータ移行処理に係るフローチャートの一例を示す図である。
【図１４】第１の実施の形態によるコピー要のデータ保護レベル変換処理に係るフローチャートの一例を示す図である。
【図１５】第１の実施の形態による移行先プール論理チャンク割当処理に係るフローチャートの一例を示す図である。
【図１６】第１の実施の形態によるチャンクグループ作成処理に係るフローチャートの一例を示す図である。
【図１７Ａ】第１の実施の形態によるプール縮小処理に係るフローチャートの一例を示す図である。
【図１７Ｂ】第１の実施の形態によるプール削除処理に係るフローチャートの一例を示す図である。
【図１７Ｃ】第１の実施の形態によるチャンク削除処理に係るフローチャートの一例を示す図である。
【図１８】第１の実施の形態によるコピー不要のデータ保護レベル変換処理に係るフローチャートの一例を示す図である。
【図１９】第２の実施の形態によるデータ保護レベルの変換のイメージ図である。
【図２０】第３の実施の形態によるデータ保護レベルの変換のイメージ図である。
【発明を実施するための形態】
【００１２】
以下図面について、本発明の一実施の形態を詳述する。
【００１３】
（１）第１の実施の形態
図１において、１００は全体として第１の実施の形態によるストレージシステムを示す。ストレージシステム１００は、例えばＳＤＳが導入されたシステムであり、コンピュートノード（Compute Node）１１０と、ストレージノード（Storage Node）１２０とを含んで構成される。ストレージシステム１００では、データを保護するレベル（データ保護レベル）の変換が可能であり、データ保護レベルを変換するために必要なストレージノード１２０を選定し、選定したストレージノード１２０に対してデータ保護レベルの変換の指示を出すことを特徴とする。
【００１４】
データ保護レベルとしては、例えば、二重化（Mirror）、三重化（Triplication）、ＥＣ（Erasure Coding）、保護無しなどがある。なお、ＥＣは、ｍ個のデータ領域の内、ｎ個の障害に耐える構成（ｍＤｎＰと呼び、ｍとｎは、ｍ≧ｎとなる任意の数値）のデータ保護レベルがある。なお、本実施の形態は、上述したデータ保護レベルに限られるものではなく、様々なデータ保護レベルに対応可能であり、例えば、四重化以上のレプリケーションにも適用できる。
【００１５】
ストレージシステム１００では、データ保護レベルを変換可能である。ストレージシステム１００では、例えば、二重化からＥＣへのデータ保護レベルの変換が行われる。また、例えば、ストレージシステム１００では、二重化から保護なしへのデータ保護レベルの変換が行われる。
【００１６】
また、変換の単位（変換の対象）は、ストレージシステム１００全体であってもよいし、ストレージクラスタ１３０のサブセット（例えば、後述のプロテクションドメイン）単位であってもよいし、プール単位であってもよいし、ボリューム単位であってもよい。例えば、変換の単位がストレージシステム１００全体である場合、全てのストレージノード１２０を対象としてデータ保護レベルの変換が行われる。また、例えば、変換の単位がストレージクラスタ１３０のサブセットである場合、サブセットに属するストレージノード１２０を対象としてデータ保護レベルの変換が行われる。また、例えば、変換の単位がプールである場合、指定されたプールに係るストレージノード１２０を対象としてデータ保護レベルの変換が行われる。また、例えば、変換の単位がボリュームである場合、指定されたボリュームが設けられたストレージノード１２０を対象としてデータ保護レベルの変換が行われる。
【００１７】
ここで、図１に示すように、ストレージシステム１００では、複数のストレージノード１２０を含んでストレージクラスタ１３０が構成されている。ストレージクラスタ１３０では、ストレージクラスタ１３０内でデータの分散する範囲を示すプロテクションドメイン（図示は省略）が定義されている。プロテクションドメインには、一または複数のストレージノード１２０が含まれる。なお、プロテクションドメインは、定義されていなくてもよい。これは、ストレージクラスタ１３０で１つプロテクションドメインが１つ定義されていることと等しいとも言い得る。
【００１８】
また、コンピュートノード１１０とストレージノード１２０とは、フロントエンドネットワーク１４０（ストレージサービスネットワーク）を介して互いに通信可能に接続されている。また、ストレージノード１２０間は、バックエンドネットワーク１５０を介して互いに通信可能に接続されている。
【００１９】
なお、フロントエンドネットワーク１４０とバックエンドネットワーク１５０とは、同一でもあってもよい。また、フロントエンドネットワーク１４０とバックエンドネットワーク１５０の他に、管理用ネットワークが設けられていてもよい。例えば、ストレージノード１２０と管理ノード（例えば、後述の管理ノード１１１０）とは、管理用ネットワークを介して互いに通信可能に接続されていてもよい。
【００２０】
ネットワーク（フロントエンドネットワーク１４０とバックエンドネットワーク１５０と管理用ネットワークとのうち少なくとも１つ）は、冗長化されていてもよい。ネットワークは、有線であってもよいし、無線であってもよい。また、ネットワークは、異なる種類のネットワークであってもよい。
【００２１】
図２は、ストレージノード１２０のハードウェア資源に係る構成の一例を示す図である。
【００２２】
ストレージノード１２０は、例えば、一般的な汎用コンピュータ（例えば、サーバ装置）である。ストレージノード１２０は、ＣＰＵ（Central Processing Unit）２１０、メモリ２２０、ドライブ２３０、第１の通信装置２４０、および第２の通信装置２５０を含んで構成される。各構成要素は、内部バス２６０を介して接続されている。
【００２３】
ドライブ２３０は、ＳＡＳ（Serial Attached SCSI）またはＳＡＴＡ（Serial Advanced Technology Attachment）接続のＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）、ＮＶＭｅ（Non-Volatile Memory Express）接続のＳＳＤの他、不揮発メモリ（ＳＣＭ：Storage Class Memory）等であってもよく、記憶装置の一例である。
【００２４】
第１の通信装置２４０は、フロントエンドネットワーク１４０向けであり、例えば、ＨＢＡ（Host Bus Adapter）やＮＩＣ（Network Interface Card）である。なお、第１の通信装置は、ＦＣ（Fibre Channel）、Ｅｔｈｅｒｎｅｔ（登録商標）、ＩｎｆｉｎｉＢａｎｄなどに対応可能な装置であり、特に制限されるものではない。第２の通信装置２５０は、バックエンドネットワーク１５０向けであり、例えば、ＨＢＡやＮＩＣである。なお、第２の通信装置２５０は、ＦＣ、Ｅｔｈｅｒｎｅｔ、ＩｎｆｉｎｉＢａｎｄなどに対応可能な装置であり、特に制限されるものではない。
【００２５】
ストレージノード１２０では、各ハードウェア資源（ＣＰＵ２１０、メモリ２２０等）が１つ設けられる例を示したが、各ハードウェア資源の個数は、特に限定されるものではなく、１つであってもよいし、複数であってもよい。また、管理ネットワーク向けであり、管理ノード（例えば、後述の管理ノード１１１０）と通信可能な第３の通信装置が設けられていてもよい。
【００２６】
図３は、メモリ２２０に記憶されるデータの一例を示す図である。
【００２７】
クラスタ制御部３１０は、例えば、各ストレージノード１２０の死活情報、ＣＰＵ負荷、メモリ使用量、ネットワーク使用量、ＩＯＰＳ（Input / Output Per Second）、ハード構成などのモニタリングを行う。また、例えば、クラスタ制御部３１０は、管理者からの要求に基づいて、ボリュームの作成、プールの作成などの構成変更の指示を各ストレージノード１２０に通知する。
【００２８】
ＩＯ制御部３２０は、ストレージ制御ソフトである。例えば、ＩＯ制御部３２０は、コンピュートノード１１０からのリクエストを受け付け、Ｉ／Ｏ処理を行い、データ保護制御部３３０を介してドライブ２３０にデータを格納する。また、例えば、ＩＯ制御部３２０は、シン・プロビジョニング（Thin-Provisioning）、階層制御、スナップショット、圧縮、重複排除、リモートコピー、暗号化など、ストレージ制御に必要な処理を行う。
【００２９】
データ保護制御部３３０は、クラスタ制御部３１０より指示されたデータ保護レベルでストレージノード１２０間でデータを冗長化して保護（管理）する。
【００３０】
ストレージノード１２０の機能（クラスタ制御部３１０、ＩＯ制御部３２０、データ保護制御部３３０など）は、例えば、ＣＰＵ２１０がプログラムをメモリ２２０に読み出して実行すること（ソフトウェア）により実現される。ただし、ソフトウェアによる実現に限られるものではなく、例えば、専用の回路などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアとが組み合わされて実現されてもよい。また、ストレージノード１２０の機能の一部は、ストレージノード１２０と通信可能な他のコンピュータにより実現されてもよい。なお、クラスタ制御部３１０は、全てのストレージノード１２０に設けられていてもよいし、特定のストレージノード１２０に設けられていてもよい。
【００３１】
また、メモリ２２０には、ストレージノード管理表３４０、チャンクグループ管理表群３５０、論理チャンク管理表群３６０、プール管理表群３７０、ボリューム管理表群３８０等が記憶される。ストレージノード管理表３４０については、図４を用いて後述する。チャンクグループ管理表群３５０については、図５を用いて後述する。論理チャンク管理表群３６０については、図６を用いて後述する。プール管理表群３７０については、図７〜図９を用いて後述する。ボリューム管理表群３８０については、図１０を用いて後述する。
【００３２】
図４は、ストレージノード管理表３４０の一例を示す図である。ストレージノード管理表３４０は、ストレージノード１２０を管理するための表（テーブル）である。ストレージノード管理表３４０には、ＩＯ制御部３２０により取得されたストレージノード１２０の構成要素の性能に係る情報（性能情報）がクラスタ制御部３１０により登録される。なお、クラスタ制御部３１０が全てのストレージノード１２０に設けられる場合は、全てのクラスタ制御部３１０にて各ＩＯ制御部３２０で取得された性能情報が共有される。他方、クラスタ制御部３１０が特定のストレージノード１２０に設けられる場合は、各ストレージノード１２０のＩＯ制御部３２０から性能情報が収集されて登録される。
【００３３】
ストレージノード管理表３４０には、ストレージノードＩＤ４０１、状態４０２、ドメインＩＤ４０３、容量４０４、使用容量４０５、ＣＰＵ負荷４０６、メモリ量４０７、使用メモリ量４０８、通信帯域４０９、および使用通信帯域４１０の情報が対応付けられて格納される。
【００３４】
ストレージノードＩＤ４０１は、ストレージシステム１００においてストレージノード１２０を一意に識別可能な識別子を示す項目である。状態４０２は、ストレージノード１２０の状態（正常、障害など）を示す項目である。ドメインＩＤ４０３は、ストレージクラスタ１３０内でデータの分散する範囲を示すプロテクションドメインをストレージシステム１００において一意に識別可能な識別子を示す項目である。容量４０４は、ストレージノード１２０が有するドライブ２３０の容量を示す項目である。使用容量４０５は、使用される容量（後述するチャンクグループに割り当てられている物理チャンクの容量）を示す項目である。ＣＰＵ負荷４０６は、実行中のプログラムがＣＰＵ２１０の処理時間を占有している割合を示す項目である。メモリ量４０７は、メモリ２２０の容量を示す項目である。使用メモリ量４０８は、使用されているメモリ２２０の容量を示す項目である。通信帯域４０９は、ネットワークの帯域を示す項目である。使用通信帯域４１０は、使用されているネットワークの帯域を示す項目である。付言するならば、通信帯域４０９および使用通信帯域４１０については、第１の通信装置２４０および第２の通信装置２５０のうち、何れか一方または両方に対応して設けられる。
【００３５】
図５は、チャンクグループ管理表群３５０の一例を示す図である。チャンクグループ管理表群３５０は、チャンクグループを構成する物理チャンクの対応を管理するための表群である。チャンクグループ管理表群３５０は、例えば、クラスタ制御部３１０、ＩＯ制御部３２０等により管理される。
【００３６】
チャンクグループは、ストレージサブシステムのＲＡＩＤグループ（Redundant Arrays of Inexpensive Disks Group）、パリティグループ（Parity Group）と同様の考え方であり、複数のストレージノード１２０のドライブ２３０のデータ格納領域（物理チャンク）から構成される。例えば、データ保護レベルが二重化である場合、異なるストレージノード１２０のドライブ２３０から確保した２つの物理チャンクでチャンクグループを構成する。また、例えば、データ保護レベルが４Ｄ１Ｐである場合、異なるストレージノード１２０のドライブ２３０から確保した５つの物理チャンクでチャンクグループを構成する。
【００３７】
チャンクグループ管理表群３５０は、チャンクグループ管理表５１０と、物理領域管理表５２０とを含んで構成される。なお、物理領域管理表５２０は、チャンクグループ毎に設けられる。
【００３８】
なお、本実施の形態では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、物理領域管理表を区別しない場合には、「物理領域管理表５２０」と表記し、物理領域管理表を区別する場合には、「物理領域管理表５２０Ａ」、「物理領域管理表５２０Ｂ」のように表記することがある。
【００３９】
チャンクグループ管理表５１０には、チャンクグループＩＤ５１１、状態５１２、データ保護レベル５１３、および実効容量５１４の情報が対応付けられて格納される。
【００４０】
チャンクグループＩＤ５１１は、ストレージシステム１００においてチャンクグループを一意に識別可能な識別子を示す項目である。状態５１２は、チャンクグループの状態を示す項目である。チャンクグループの状態としては、「正常」、「１障害」、「２障害」、「１リビルド」、「２リビルド」、「閉塞」などがある。例えば、「１障害」は、チャンクグループを構成する１つの物理チャンクに障害が発生している状態を示す。「１リビルド」は、ドライブ２３０の故障、ストレージノード１２０の故障などによって壊れた１つの物理チャンクをリビルドしている状態を示す。「閉塞」は、例えば４Ｄ１Ｐにおいて、１つのチャンクグループで２つの物理チャンクが使用不可になり、回復できない状態を示す。データ保護レベル５１３は、データ保護レベルを示す項目である。実効容量５１４は、チャンクグループにおいて利用可能な容量を示す項目である。
【００４１】
物理領域管理表５２０には、ストレージノードＩＤ５２１、ドライブＩＤ５２２、物理チャンクＩＤ５２３、物理容量５２４、状態５２５の情報が対応付けられて格納される。
【００４２】
ストレージノードＩＤ５２１は、ストレージシステム１００においてストレージノード１２０を一意に識別可能な識別子を示す項目である。ドライブＩＤ５２２は、ストレージノード１２０においてドライブ２３０を一意に識別可能な識別子を示す項目である。物理チャンクＩＤ５２３は、ドライブ２３０において物理チャンクを一意に識別可能な識別子を示す項目である。物理容量５２４は、チャンクグループに割り当てられる物理チャンクの容量を示す項目である。状態５２５は、物理チャンクの状態（正常、障害など）を示す項目である。
【００４３】
なお、図５では、ストレージシステム１００で物理チャンクの容量が固定（１００ＧＢ）である例を示したが、これに限られるものではない。例えば、物理チャンクの容量は、チャンクグループ毎に物理容量（サイズ）を異ならせてもよい。
【００４４】
図６は、論理チャンク管理表群３６０の一例を示す図である。論理チャンク管理表群３６０は、切り出された論理チャンクを管理するための表群である。論理チャンク管理表群３６０は、例えば、クラスタ制御部３１０、ＩＯ制御部３２０等により管理される。
【００４５】
論理チャンクは、各チャンクグループから切り出された各ストレージノード１２０のプールに容量を割り当てる単位である。１つのチャンクグループから１つの論理チャンクを切り出してもよいし、複数の論理チャンクを切り出してよい。付言するならば、パリティグループ（ＲＡＩＤグループ）から論理ユニット（ＬＵ：Logical Unit）を切り出すことと同様の考え方である。
【００４６】
論理チャンク管理表群３６０は、チャンクグループ毎に論理チャンク管理表６００を含んで構成される。論理チャンク管理表６００には、論理チャンクＩＤ６０１および容量６０２の情報が対応付けられて格納される。
【００４７】
論理チャンクＩＤ６０１は、ストレージシステム１００において論理チャンクを一意に識別可能な識別子を示す項目である。容量６０２は、論理チャンクの容量を示す項目である。例えば、図５に示すように、チャンクグループＩＤ「３」では、実効容量５１４が「８００ＧＢ」であるが、図６では、容量６０２Ｃが「８０ＧＢ」の論理チャンクを３つしか切り出していないので、「８０ＧＢ」の論理チャンクを７つ追加で切り出すことができることが分かる。なお、図６の例では、一のチャンクグループで容量６０２が同じ値（１００ＧＢまたは８０ＧＢ）として示しているが、これに限られるものではなく、一のチャンクグループでも容量６０２の値が異なっていてもよい（同じチャンクグループでも異なる容量の論理チャンクが混在していてもよい）。
【００４８】
図７〜図９は、プール管理表群３７０の一例を示す図である。プール管理表群３７０は、プールを管理するための表群である。プール管理表群３７０は、例えば、ＩＯ制御部３２０により管理される。
【００４９】
プール管理表群３７０は、ストレージノード１２０に設けられるプールを管理するためのプール管理表７１０と、プールに割り当てられた論理チャンクを管理するためのプール割当論理チャンク管理表７２０とを含んで構成される。プール管理表７１０およびプール割当論理チャンク管理表７２０は、ストレージノード１２０毎に設けられる。
【００５０】
プール管理表７１０には、プールＩＤ７１１、容量７１２、および使用容量７１３の情報が対応付けられて格納される。
【００５１】
プールＩＤ７１１は、ストレージノード１２０においてプールを一意に識別可能な識別子を示す項目である。容量７１２は、プールに割り当てられている論理チャンクの容量の合計を示す項目である。使用容量７１３は、実際に使用されている容量を示す項目である。
【００５２】
プール割当論理チャンク管理表７２０は、論理チャンクＩＤ７２１の情報が格納されている。論理チャンクＩＤ７２１は、ストレージシステム１００において論理チャンクを一意に識別可能な識別子を示す項目である。なお、データを格納するためには、プールに１つ以上の論理チャンクが割り当てられている必要がある。
【００５３】
ここで、図７は、データ保護レベルの変換の単位がストレージシステム１００全体であるときのデータ保護レベルの変換前のプール管理表群３７０の一例を示す図である。
【００５４】
本例では、ストレージシステム１００において、ストレージノードＩＤ「１」のストレージノード１２０（第１のストレージノード１２０）には、論理チャンクＩＤ「１１」の論理チャンクおよび論理チャンクＩＤ「１４」の論理チャンクが割り当てられたプールＩＤ「１」のプールが設けられている。また、ストレージシステム１００において、ストレージノードＩＤ「２」のストレージノード１２０（第２のストレージノード１２０）には、論理チャンクＩＤ「１２」の論理チャンクが割り当てられたプールＩＤ「１」のプールが設けられている。また、ストレージシステム１００において、ストレージノードＩＤ「３」のストレージノード１２０（第３のストレージノード１２０）には、論理チャンクＩＤ「１３」の論理チャンクが割り当てられたプールＩＤ「１」のプールが設けられている。
【００５５】
また、本例では、第１のストレージノード１２０のプールと、第２のストレージノード１２０のプールと、第３のストレージノード１２０のプールとにおいて、同じデータ保護レベル（例えば、二重化のデータ保護レベル）が設定され、データ保護レベルの変換の単位がストレージシステム１００全体であるので、これらのプールに対して、指定されたデータ保護レベル（例えば、４Ｄ１Ｐのデータ保護レベル）への変換が実施される。なお、この際、各プールにおけるデータ保護レベルの変換（例えば、データの移行）は、並列に行われてもよいし、直列に（順次に）行われてもよい。
【００５６】
ここで、データ保護レベルの変換においては、例えば、移行元のプールに対応して、移行先のプールが設けられる。例えば、データ保護レベルの変換中は、図８に示すように、移行元のプール（プールＩＤ「１」のプール）に係る情報と移行先のプール（プールＩＤ「２」のプール）に係る情報とがプール管理表群３７０に格納される。
【００５７】
図８は、データ保護レベルの変換の単位がストレージシステム１００全体であるときのデータ保護レベルの変換中のプール管理表群３７０の一例を示す図である。本例では、第１のストレージノード１２０、第２のストレージノード１２０、第３のストレージノード１２０の各々において、プールＩＤ「１」のプール（移行元のプール）に対してプールＩＤ「２」のプール（移行先のプール）が作成されていることが示されている。
【００５８】
また、データ保護レベルの変換後は、図９に示すように、移行元のプールに係る情報がプール管理表群３７０から削除される。
【００５９】
図９は、データ保護レベルの変換の単位がストレージシステム１００全体であるときのデータ保護レベルの変換後のプール管理表群３７０の一例を示す図である。本例では、第１のストレージノード１２０、第２のストレージノード１２０、第３のストレージノード１２０の各々において、プールＩＤ「１」のプール（移行元のプール）が削除されていることが示されている。
【００６０】
なお、図７〜図９では、各ストレージノード１２０にプールＩＤ「１」（移行元のプール）およびプールＩＤ「２」（移行先のプール）が設けられる例を示したが、移行元のプールおよび移行先のプールは、ストレージノード１２０内に複数存在することもある。
【００６１】
図１０は、ボリューム管理表群３８０の一例を示す図である。ボリューム管理表群３８０は、プールから切り出されたボリュームを管理するための表群である。ボリューム管理表群３８０は、例えば、ＩＯ制御部３２０により管理される。ボリューム管理表群３８０は、ストレージノード１２０のプールごとにボリューム管理表１０００を含んで構成される。
【００６２】
ボリューム管理表１０００には、ボリュームＩＤ１００１、容量１００２、使用容量１００３の情報が対応付けられて格納される。
【００６３】
ボリュームＩＤ１００１は、ストレージシステム１００においてボリュームを一意に識別可能な識別子を示す項目である。容量１００２は、ボリュームの容量を示す項目である。使用容量１００３は、実際に使用されている容量を示す項目である。
【００６４】
本実施の形態では、ストレージシステム１００において、データ保護レベルの変換は、例えば、図１１に示す手順で行われる。
【００６５】
図１１は、データ保護レベルの変換のイメージ図である。データ保護レベルの変換を行う単位としては、ストレージシステム１００全体、ストレージクラスタ１３０のサブセット（例えば、プロテクションドメイン）、プール、またはボリュームが選択可能である。図１１では、管理ノード１１１０を介して、データ保護レベルの変換を行う単位としてプール１１２０Ｃが選択され、データ保護レベルを４Ｄ１Ｐに変換するように指示されたケースを示す。
【００６６】
（手順１１０１：データ保護レベルの変換の指定）
管理者が操作する管理ノード１１１０は、クラスタ制御部３１０Ａに対して、テータ保護レベルに係る情報（本例では、データ保護レベルの変換を行う単位としてプール１１２０Ｃが選択されていることを示す情報、データ保護レベルを４Ｄ１Ｐに変換することを示す情報など）を含む変換指示（要求の一例）を出す。
【００６７】
（手順１１０２：ストレージノード１２０の選定）
クラスタ制御部３１０Ａは、変換指示に基づいて、変換後のデータ保護レベルの設定に必要なストレージノード数（例えば、二重化の場合、「２」以上、ＥＣの場合、ｍ個のデータ領域の内、ｎ個の障害に耐える構成（ｍＤｎＰ）では、ｍ＋ｎ以上）をストレージクラスタ１３０内またはプロテクションドメイン内から選択する。
【００６８】
（手順１１０３：チャンクグループの生成）
クラスタ制御部３１０Ａは、変換後のデータ保護レベルを構成するチャンクのチャンクグループを生成し、チャンクグループを組むように、選択した各ストレージノード１２０のデータ保護制御部３３０に指示を出す。また、クラスタ制御部３１０Ａは、移行元のプールから移行先のプールにデータを移行するようにＩＯ制御部３２０Ｃに指示を出す。
【００６９】
（手順１１０４：データの移行）
ＩＯ制御部３２０Ｃは、変換後のデータ保護レベルに対応したプール１１３０Ｃを作成し、プール１１２０Ｃからプール１１３０Ｃへのボリュームのマイグレーションを実行する。なお、ボリュームのマイグレーションについては、既知の技術を採用可能であり、ボリュームのマイグレーション中は、コンピュートノード１１０からのＩＯが引き継がれる。
【００７０】
ここで、図１１において、各ストレージノード１２０の「Ｄｒｉｖｅ１」および「Ｄｒｉｖｅ２」には、データ領域の一部（物理チャンク）が示されている。かかる物理チャンクに付したＰｘ−ｙにおけるｙは、物理チャンクを構成するチャンクグループのチャンクグループＩＤを示し、ｘは、チャンクグループから切り出された論理チャンクが割り当てられたプールのプールＩＤを示す。
【００７１】
なお、ストレージノード１２０Ａにクラスタ制御部３１０Ａが設けられる構成を示したが、全てのストレージノード１２０にクラスタ制御部３１０が設けられていてもよい。
【００７２】
次に、データ保護レベルの変換に係る処理について図１２〜図１８を用いて説明する。
【００７３】
図１２は、クラスタ制御部３１０が実行する処理に係るフローチャートの一例を示す図である。
【００７４】
まず、クラスタ制御部３１０は、管理ノードから変換指示を受信する（ステップＳ１２０１）。変換指示には、例えば、データ保護レベルの変換の単位が選択されていることを示す情報（ストレージシステム１００全体、プロテクションドメインＩＤ、プールＩＤ、またはボリュームＩＤの情報）と、変換前のデータ保護レベルを示す情報（データ保護レベル（例えば、二重化）、ストレージノードＩＤの情報など）と、変換後のデータ保護レベルを示す情報（データ保護レベル（例えば、４Ｄ１Ｐ）など）とが含まれる。なお、予め指定された単位での変換とする場合、データ保護レベルの変換の単位が選択されていることを示す情報は含まれていなくてもよい。
【００７５】
続いて、クラスタ制御部３１０は、移行元（変換対象）のプールが設定されているストレージノード１２０に対して移行先のプールを作成するように指示（プール作成指示）を出す（ステップＳ１２０２）。
【００７６】
例えば、クラスタ制御部３１０は、データ保護レベルの変換の単位として、ストレージシステム１００全体が選択されている場合、ストレージシステム１００において、変換前のデータ保護レベルが設定されているプールが設けられるストレージノード１２０全てに対して移行先のプールを作成するように指示を出す。
【００７７】
また、例えば、クラスタ制御部３１０は、データ保護レベルの変換の単位として、プロテクションドメインが選択されている場合、当該プロテクションドメインにおいて、変換前のデータ保護レベルが設定されているプールが設けられるストレージノード１２０全てに対して移行先のプールを作成するように指示を出す。
【００７８】
また、例えば、クラスタ制御部３１０は、データ保護レベルの変換の単位として、プールが選択されている場合、当該プールが設けられるストレージノード１２０に対して移行先のプールを作成するように指示を出す。
【００７９】
また、例えば、クラスタ制御部３１０は、データ保護レベルの変換の単位として、ボリュームが選択されている場合、当該ボリュームが切り出されたプールが設けられるストレージノード１２０に対して移行先のプールを作成するように指示を出す。
【００８０】
なお、プール作成指示を受信したストレージノード１２０のＩＯ制御部３２０は、移行先のプールを作成する。この際、ＩＯ制御部３２０は、変換後のデータ保護レベルが設定されているプールが既に存在する場合、プールを作成しなくてもよい。
【００８１】
続いて、クラスタ制御部３１０は、チャンクグループ作成処理を行う（ステップＳ１２０３）。チャンクグループ作成処理では、クラスタ制御部３１０は、変換後のデータ保護レベルの設定に必要なストレージノード数をストレージクラスタ１３０内またはプロテクションドメイン内から選択したり、変換後のデータ保護レベルを構成する物理チャンクのチャンクグループを生成したりする。
【００８２】
ここで、チャンクグループ作成処理については、上述したように、変換指示に基づいて必要となるデータ量のチャンクグループを予め作成し、かつ、後述するように、コピー要のデータ保護レベル変換処理におけるコピー処理の進捗に合わせて必要に応じて作成してもよいし、何れか一方のタイミングでチャンクグループ作成処理を行うようにしてもよい。なお、チャンクグループ作成処理については、図１６を用いて後述する。
【００８３】
クラスタ制御部３１０は、移行元のプールおよび移行先のプールが設定されているストレージノード１２０に対して移行元のプールから移行先のプールにデータを移行するように指示（データ移行指示）を出す（ステップＳ１２０４）。データ移行指示を受信したストレージノード１２０は、後述する図１３に示すデータ移行処理を実行する。データ移行処理では、移行元のプールから移行先のプールにデータが移行される。
【００８４】
クラスタ制御部３１０は、作成したチャンクグループに係る各ストレージノード１２０（ステップＳ１２０３で選択したストレージノード１２０）のデータ保護制御部３３０に対して、チャンクグループを組むように指示（チャンクグループ設定指示）を出す（ステップＳ１２０５）。
【００８５】
チャンクグループ設定指示を受信したデータ保護制御部３３０は、変換後のデータ保護レベルに対応したチャンクグループを組むことで、変換後のデータ保護レベルでＩＯ制御部３２０から受け取ったデータを管理（保護）する。
【００８６】
図１３は、クラスタ制御部３１０から送信されるデータ移行指示に基づいて、ＩＯ制御部３２０が実行するデータ移行処理に係るフローチャートの一例を示す図である。なお、移行元のプールが複数ある場合は、データ移行処理は、移行元のプールの数分、繰り返される。
【００８７】
ここで、データ移行指示には、例えば、移行元のデータ保護レベル、移行元のストレージノードＩＤ、移行元のプールＩＤ、移行先のデータ保護レベル、移行先のストレージノードＩＤ、移行先のプールＩＤの情報が含まれる。
【００８８】
まず、ＩＯ制御部３２０は、データ保護レベルの変換にデータのコピーが必要であるか否か（変換前のデータ保護レベルのデータと変換後のデータ保護レベルのデータとが一致するか否か）を判定する（ステップＳ１３０１）。ＩＯ制御部３２０は、必要であると判定した場合、ステップＳ１３０２に処理を移し、必要でないと判定した場合、ステップＳ１３０３に処理を移す。例えば、ＩＯ制御部３２０は、移行元のデータ保護レベルを二重化、三重化などのレプリケーションから、移行先のデータ保護レベルを保護無しにする場合、データ保護レベルの変換にデータのコピーが必要でないと判定する。
【００８９】
ステップＳ１３０２では、ＩＯ制御部３２０は、コピー要のデータ保護レベル変換処理を行い、データ移行処理を終了する。コピー要のデータ保護レベル変換処理では、例えば、移行元のプールの全ボリュームが移行先にマイグレーション（コピー）される。なお、コピー要のデータ保護レベル変換処理については、図１４〜図１７Ｃを用いて後述する。
【００９０】
ステップＳ１３０３では、ＩＯ制御部３２０は、コピー不要のデータ保護レベル変換処理を行い、データ移行処理を終了する。コピー不要のデータ保護レベル変換処理では、移行元のプールを構成する全ての論理チャンクが移行先のプールに付け替えられ、データのコピーが行われない。なお、コピー不要のデータ保護レベル変換処理については、図１８を用いて後述する。
【００９１】
図１４は、コピー要のデータ保護レベル変換処理に係るフローチャートの一例を示す図である。なお、移行先のプールについては、適宜のタイミングで作成されているものとしてコピー要のデータ保護レベル変換処理を説明する。
【００９２】
まず、ＩＯ制御部３２０は、ボリューム管理表１０００に基づいて移行元のプールから切り出されたボリュームのボリュームＩＤのリストを作成する（ステップＳ１４０１）。
【００９３】
ステップＳ１４０２では、ＩＯ制御部３２０は、ボリュームＩＤのリストから先頭のボリュームＩＤを取得する。
【００９４】
続いて、ＩＯ制御部３２０は、プール管理表８１０の容量および使用容量と、ボリューム管理表１０００の使用容量とに基づいて、取得したボリュームＩＤのボリューム（当該ボリューム）をマイグレーションする容量があるか否かを判定する（ステップＳ１４０３）。ＩＯ制御部３２０は、容量があると判定した場合、ステップＳ１４０５に処理を移し、容量がないと判定した場合、ステップＳ１４０４に処理を移す。
【００９５】
ステップＳ１４０４では、ＩＯ制御部３２０は、移行先プール論理チャンク割当処理を行い、ステップＳ１４０５に処理を移す。移行先プール論理チャンク割当処理では、移行先のプールに論理チャンクが割り当てられたり、チャンクグループが作成されたりする。なお、移行先プール論理チャンク割当処理については、図１５を用いて後述する。
【００９６】
ステップＳ１４０５では、ＩＯ制御部３２０は、移行先のプールに当該ボリュームをマイグレーション（コピー）する。
【００９７】
続いて、ＩＯ制御部３２０は、移行元のプールから当該ボリュームを削除し、ボリュームＩＤのリストから当該ボリュームのボリュームＩＤを削除する（ステップＳ１４０６）。
【００９８】
続いて、ＩＯ制御部３２０は、プール縮小処理を実施するか否かを判定する（ステップＳ１４０７）。ＩＯ制御部３２０は、実施すると判定した場合、ステップＳ１４０８に処理を移し、実施しないと判定した場合、ステップＳ１４０９に処理を移す。例えば、ＩＯ制御部３２０は、ノード単位でデータ保護レベル変換処理を行う際に、変換前に加えて変換後のデータの容量を格納できない場合（例えば、データ保護レベル変換前のノードの使用容量が全容量の５０％を超えているような場合）、プール縮小処理を実施すると判定する。
【００９９】
ステップＳ１４０８では、ＩＯ制御部３２０は、プール縮小処理を行う。プール縮小処理では、ＩＯ制御部３２０は、例えば、移行元のプールの空き容量が削除対象の論理チャンクの空き容量以上ある場合、プール内でデータを移動して削除対象の論理チャンクを空にする。なお、プール縮小処理については、図１７Ａを用いて後述する。
【０１００】
続いて、ＩＯ制御部３２０は、ボリュームＩＤのリストが空であるか否かを判定する（ステップＳ１４０９）。ＩＯ制御部３２０は、空であると判定した場合、ステップＳ１４１０に処理を移し、空でないと判定した場合、ステップＳ１４０２に処理を移す。
【０１０１】
ステップＳ１４１０では、ＩＯ制御部３２０は、プール削除処理を行い、コピー要のデータ保護レベル変換処理を終了する。プール削除処理では、ＩＯ制御部３２０は、例えば、プールに論理チャンクが残っている場合は、全て削除してからプールを削除する。なお、プール削除処理については、図１７Ｂを用いて後述する。
【０１０２】
図１５は、移行先プール論理チャンク割当処理に係るフローチャートの一例を示す図である。
【０１０３】
まず、ＩＯ制御部３２０は、チャンクグループ管理表５１０に基づいて、データ保護レベルが合致するチャンクグループのチャンクグループＩＤのリストを作成する（ステップＳ１５０１）。
【０１０４】
ステップＳ１５０２では、ＩＯ制御部３２０は、チャンクグループＩＤのリストから先頭のチャンクグループＩＤを取得する。
【０１０５】
続いて、ＩＯ制御部３２０は、チャンクグループ管理表５１０の実効容量と、論理チャンク管理表６００の容量とに基づいて、取得したチャンクグループＩＤのチャンクグループ（当該チャンクグループ）から、マイグレーションに必要な容量以上の論理チャンクを切り出せるか否か（作れるか否か）を判定する（ステップＳ１５０３）。ＩＯ制御部３２０は、切り出せると判定した場合、ステップＳ１５０６に処理を移し、切り出せないと判定した場合、ステップＳ１５０４に処理を移す。
【０１０６】
ステップＳ１５０４では、ＩＯ制御部３２０は、チャンクグループＩＤのリストが空であるか否かを判定する。ＩＯ制御部３２０は、空であると判定した場合、ステップＳ１５０５に処理を移し、空でないと判定した場合、当該チャンクグループのチャンクグループＩＤをリストから削除し、ステップＳ１５０２に処理を移す。
【０１０７】
ステップＳ１５０５では、ＩＯ制御部３２０は、チャンクグループ作成処理を行う。チャンクグループ作成処理では、チャンクグループが作成される。なお、チャンクグループ作成処理については、図１６を用いて後述する。
【０１０８】
ステップＳ１５０６では、ＩＯ制御部３２０は、プール管理表群３７０を更新し、論理チャンクをプールに割り当て、移行先プール論理チャンク割当処理を終了する。
【０１０９】
図１６は、チャンクグループ作成処理に係るフローチャートの一例を示す図である。なお、以下では、処理の主体をＩＯ制御部３２０として説明するが、ステップＳ１２０３から呼び出されたときは、処理の主体がクラスタ制御部３１０となる。
【０１１０】
まず、ＩＯ制御部３２０は、ストレージノード管理表３４０に基づいて、移行元のプールが設定されているストレージノード１２０が属するプロテクションドメインのドメインＩＤ（当該ドメインＩＤ）が対応付けられているストレージノードＩＤのリストを作成する（ステップＳ１６０１）。
【０１１１】
続いて、ＩＯ制御部３２０は、指定されたデータ保護レベル（変換後のデータ保護レベル）の設定に必要な数のストレージノード１２０（ストレージノード数）があるか否かを判定する（ステップＳ１６０２）。ＩＯ制御部３２０は、ストレージノード数があると判定した場合、ステップＳ１６０３に処理を移し、ストレージノード数がないと判定した場合、エラー処理を行い、チャンクグループ作成処理を終了する。例えば、エラー処理では、所定の時間経過後、上述したように各ストレージノード１２０における空き容量が変更され得るので、再びチャンクグループ作成処理が行われるようにしてもよい。
【０１１２】
ステップＳ１６０３では、ＩＯ制御部３２０は、ストレージノード管理表３４０に基づいて、ストレージノードＩＤのリストをストレージノード１２０の空き容量（＝容量−使用容量）が多い順にソートする。
【０１１３】
続いて、ＩＯ制御部３２０は、ストレージノードＩＤのリストの先頭から、データ保護レベルの設定に必要なストレージノード数でチャンクグループを作成する（ステップＳ１６０４）。かかる処理によれば、空き容量の多いストレージノード１２０から用いられるので、ストレージノード１２０の使用容量を平準化できるようになる。なお、この際、例えば、ＩＯ制御部３２０は、作成したチャンクグループに係る各ストレージノード１２０のデータ保護制御部３３０に対して、チャンクグループを組むように指示（チャンクグループ設定指示）を出す。
【０１１４】
続いて、ＩＯ制御部３２０は、作成したチャンクグループの情報を、チャンクグループ管理表群３５０に登録し（ステップＳ１６０５）、チャンクグループ作成処理を終了する。
【０１１５】
図１７Ａは、プール縮小処理に係るフローチャートの一例を示す図である。
【０１１６】
まず、ＩＯ制御部３２０は、プール管理表８１０に基づいて移行元のプール（当該プール）の論理チャンクＩＤのリストを作成する（ステップＳ１７０１）。
【０１１７】
続いて、ＩＯ制御部３２０は、論理チャンクＩＤのリストが空であるか否かを判定する（ステップＳ１７０２）。ＩＯ制御部３２０は、空であると判定した場合、プール縮小処理を終了し、空でないと判定した場合、ステップＳ１７０３に処理を移す。
【０１１８】
ステップＳ１７０３では、ＩＯ制御部３２０は、論理チャンクＩＤのリストから先頭の論理チャンクＩＤを取得する。
【０１１９】
続いて、ＩＯ制御部３２０は、取得した論理チャンクＩＤの論理チャンク（当該論理チャンク）の容量がプールの空き容量より小さいか否かを判定する（ステップＳ１７０４）。ＩＯ制御部３２０は、小さいと判定した場合、ステップＳ１７０５に処理を移し、小さくないと判定した場合、ステップＳ１７０８に処理を移す。
【０１２０】
ステップＳ１７０５では、ＩＯ制御部３２０は、当該論理チャンクに使用中のページがあるか否かを判定する。ＩＯ制御部３２０は、あると判定した場合、ステップＳ１７０６に処理を移し、ないと判定した場合、ステップＳ１７０７に処理を移す。
【０１２１】
ステップＳ１７０６では、ＩＯ制御部３２０は、当該論理チャンクのページを他の論理チャンクへコピーする。
【０１２２】
ステップＳ１７０７では、ＩＯ制御部３２０は、チャンク削除処理を行う。チャンク削除処理では、当該論理チャンク（削除対象の論理チャンク）が削除される。なお、チャンク削除処理については、図１７Ｃを用いて後述する。
【０１２３】
ステップＳ１７０８では、ＩＯ制御部３２０は、論理チャンクＩＤのリストから先頭の論理チャンクＩＤを削除し、ステップＳ１７０２に処理を移す。
【０１２４】
図１７Ｂは、プール削除処理に係るフローチャートの一例を示す図である。
【０１２５】
まず、ＩＯ制御部３２０は、プール管理表８１０に基づいて移行元のプール（当該プール）の論理チャンクＩＤのリストを作成する（ステップＳ１７１１）。
【０１２６】
続いて、ＩＯ制御部３２０は、論理チャンクＩＤのリストが空であるか否かを判定する（ステップＳ１７１２）。ＩＯ制御部３２０は、空であると判定した場合、ステップＳ１７１６に処理を移し、空でないと判定した場合、ステップＳ１７１３に処理を移す。
【０１２７】
ステップＳ１７１３では、ＩＯ制御部３２０は、論理チャンクＩＤのリストから先頭の論理チャンクＩＤを取得する。
【０１２８】
続いて、ＩＯ制御部３２０は、チャンク削除処理を行う（ステップＳ１７１４）。チャンク削除処理では、取得した論理チャンクＩＤの論理チャンク（削除対象の論理チャンク）が削除される。なお、チャンク削除処理については、図１７Ｃを用いて後述する。
【０１２９】
続いて、ＩＯ制御部３２０は、論理チャンクＩＤのリストから先頭の論理チャンクＩＤを削除し（ステップＳ１７１５）、ステップＳ１７１２に処理を移す。
【０１３０】
ステップＳ１７１６では、ＩＯ制御部３２０は、プール管理表８１０から当該プールの情報を削除し、プール削除処理を終了する。
【０１３１】
図１７Ｃは、チャンク削除処理に係るフローチャートの一例を示す図である。
【０１３２】
まず、ＩＯ制御部３２０は、移行元のプールに属する論理チャンクを割り当てたチャンクグループのチャンクグループＩＤ（当該チャンクグループＩＤ）の論理チャンク管理表６００を更新し、削除対象の論理チャンクの情報を削除する（ステップＳ１７２１）。
【０１３３】
続いて、ＩＯ制御部３２０は、当該チャンクグループＩＤの論理チャンクがあるか否かを判定する（ステップＳ１７２２）。ＩＯ制御部３２０は、あると判定した場合、チャンク削除処理を終了し、ないと判定した場合、ステップＳ１７２３に処理を移す。
【０１３４】
ステップＳ１７２３では、ＩＯ制御部３２０は、当該チャンクグループＩＤの論理チャンク管理表６００に論理チャンクがなくなったので、チャンクグループ管理表群３５０の当該チャンクグループＩＤの物理領域管理表５２０を更新し、物理チャンクの情報を削除し、チャンクグループ管理表５１０を更新し、チャンクグループの情報を削除する。
【０１３５】
続いて、ＩＯ制御部３２０は、ストレージノード管理表３４０の中で、情報を削除した物理チャンクを持つストレージノード１２０の使用容量を更新し（ステップＳ１７２４）、チャンク削除処理を終了する。なお、ＩＯ制御部３２０は、物理チャンクの容量だけ、使用容量を減らす。かかる処理によれば、データ移行の進捗に合わせて、ストレージノード１２０の使用容量が更新されるので、データ移行のために確保が必要となる容量を低減することができるようになる。
【０１３６】
図１８は、コピー不要のデータ保護レベル変換処理に係るフローチャートの一例を示す図である。
【０１３７】
まず、ＩＯ制御部３２０は、プール管理表群３７０に基づいて、移行元のプールの論理チャンクＩＤのリストを作成する（ステップＳ１８０１）。
【０１３８】
ステップＳ１８０２では、ＩＯ制御部３２０は、論理チャンクＩＤのリストから先頭の論理チャンクＩＤを取得する。
【０１３９】
続いて、ＩＯ制御部３２０は、チャンクグループ管理表群３５０を更新し、取得した論理チャンクＩＤ（当該論理チャンクＩＤ）が属するチャンクグループの物理チャンクを１つだけ残して削除し、チャンクグループのデータ保護レベルを保護無し（No Protection）に変更する（ステップＳ１８０３）。
【０１４０】
続いて、ＩＯ制御部３２０は、プール管理表群３７０を更新し、移行元のプールに属する論理チャンク（当該論理チャンク）を移行元のプールから削除し、移行先のプールに追加する（ステップＳ１８０４）。
【０１４１】
続いて、ＩＯ制御部３２０は、論理チャンクＩＤのリストから先頭の論理チャンクＩＤを削除する（ステップＳ１８０５）。
【０１４２】
続いて、ＩＯ制御部３２０は、論理チャンクＩＤのリストが空であるか否かを判定する（ステップＳ１８０６）。ＩＯ制御部３２０は、空であると判定した場合、ステップＳ１８０７に処理を移し、空でないと判定した場合、ステップＳ１８０２に処理を移す。
【０１４３】
ステップＳ１８０７では、ＩＯ制御部３２０は、図１７Ｂに示すプール削除処理を行い、コピー不要のデータ保護レベル変換処理を終了する。
【０１４４】
本実施の形態では、変換後のデータ保護レベルを構成するために必要なストレージノード１２０を選定し、選定した全てのストレージノード１２０に対して変換後のデータ保護レベルでデータを保護するように指示を与えることで、複数のストレージノード１２０に跨ったデータ保護レベルの変換を行うことができる。
【０１４５】
（２）第２の実施の形態
本実施の形態では、異なるストレージノードで異なるデータ保護レベルのプールを設定している際に、ストレージノードを跨ってボリュームをマイグレーションすることでデータ保護レベルを変換する点が第１の実施の形態と主に異なる。以下では、第１の実施の形態と異なる構成について主に説明する。なお、第１の実施の形態と同じ構成については、同じ符号を用いてその説明を適宜省略する。
【０１４６】
図１９は、データ保護レベルの変換のイメージ図である。
【０１４７】
ストレージシステム１９００は、コンピュートノード１１０と、ストレージノード１２０と、管理ノード１１１０とを含んで構成される。
【０１４８】
ストレージシステム１９００において、各ストレージノード１２０では、１種類のデータ保護レベルが設定されていている。例えば、ストレージノード１２０Ｃでは、データ保護レベルとして二重化が対応付けられている。ストレージノード１２０Ｄでは、データ保護レベルとして４Ｄ１Ｐが対応付けられている。付言するならば、ストレージシステム１９００では、同じデータ保護レベルが設定されたストレージノード１２０が複数あってもよい。
【０１４９】
また、図１９では、ストレージノード１２０Ｃにプール１９１０Ｃが設けられ、ストレージノード１２０Ｄにプール１９１０Ｄが設けられる例を示したが、これに限られるものではない。全てのストレージノード１２０にプールが設けられていてもよいし、ストレージノード１２０に複数のプールが設けられていてもよい。
【０１５０】
（手順１９０１：データ保護レベルの変換の指定）
管理者が操作する管理ノード１１１０は、クラスタ制御部３１０Ａに対して、テータ保護レベルに係る情報（本例では、データ保護レベルの変換を行う単位としてプール１９１０Ｃが選択されていることを示す情報、データ保護レベルを４Ｄ１Ｐに変換することを示す情報など）を含む変換指示（要求の一例）を出す。
【０１５１】
（手順１９０２：ストレージノード１２０の選定）
クラスタ制御部３１０Ａは、変換指示に基づいて、変換後のデータ保護レベルの設定に必要なストレージノード数（例えば、ｍＤｎＰの場合、ｍ＋ｎ以上）をストレージクラスタ１３０内またはプロテクション内から選択する。
【０１５２】
（手順１９０３：チャンクグループの生成）
クラスタ制御部３１０Ａは、変換後のデータ保護レベルを構成するチャンクのチャンクグループを生成し、チャンクグループを組むように、選択した各ストレージノード１２０のデータ保護制御部３３０に指示を出す。また、クラスタ制御部３１０Ａは、移行元のプールから移行先のプールにデータを移行するようにＩＯ制御部３２０ＣおよびＩＯ制御部３２０Ｄに指示を出す。
【０１５３】
（手順１９０４：データの移行）
ＩＯ制御部３２０Ｄは、変換後のデータ保護レベルに対応したプール１９１０Ｄを作成する。ＩＯ制御部３２０ＣとＩＯ制御部３２０Ｄとは、プール１９１０Ｃからプール１９１０Ｄへのボリュームのマイグレーションを実行する。
【０１５４】
上述した構成では、異なるストレージノードで異なるデータ保護レベルのプールを設定しているケースであっても、複数のストレージノード１２０に跨ったデータ保護レベルの変換を行うことができる。
【０１５５】
（３）第３の実施の形態
本実施の形態では、各プロテクションドメインで異なるデータ保護レベルを設定している際に、プロテクションドメインを跨ってボリュームをマイグレーションすることでデータ保護レベルを変換する点が第１の実施の形態と主に異なる。以下では、第１の実施の形態と異なる構成について主に説明する。なお、第１の実施の形態と同じ構成については、同じ符号を用いてその説明を適宜省略する。
【０１５６】
図２０は、データ保護レベルの変換のイメージ図である。
【０１５７】
ストレージシステム２０００は、コンピュートノード１１０と、ストレージノード１２０と、管理ノード１１１０とを含んで構成される。
【０１５８】
ストレージシステム２０００では、複数のプロテクションドメイン２０１０が定義され、各プロテクションドメインでは、異なるデータ保護レベルが設定されている。なお、図２０では、第１のプロテクションドメイン２０１０Ａ、第２のプロテクションドメイン２０１０Ｂ、および第３のプロテクションドメイン２０１０Ｃが示されている。
【０１５９】
第１のプロテクションドメイン２０１０Ａでは、データ保護レベルとして二重化が設定されている。第２のプロテクションドメイン２０１０Ｂでは、データ保護レベルとして４Ｄ１Ｐが設定されている。第３のプロテクションドメイン２０１０Ｃでは、データ保護レベルとして４Ｄ２Ｐが設定されている。
【０１６０】
なお、図２０では、ストレージノード１２０Ｂにプール２０２０Ｂが設けられ、ストレージノード１２０Ｆにプール２０２０Ｆが設けられる例を示したが、これに限られるものではない。全てのストレージノード１２０にプールが設けられていてもよいし、ストレージノード１２０に複数のプールが設けられていてもよい。
【０１６１】
（手順２００１：データ保護レベルの変換の指定）
管理者が操作する管理ノード１１１０は、クラスタ制御部３１０Ａに対して、テータ保護レベルに係る情報（本例では、データ保護レベルの変換を行う単位としてプール２０２０Ｂが選択されていることを示す情報、データ保護レベルを４Ｄ１Ｐに変換することを示す情報など）を含む変換指示を出す。
【０１６２】
（手順２００２：プロテクションドメイン２０１０の選定）
クラスタ制御部３１０Ａは、変換指示に基づいて、変換後のデータ保護レベルを提供しているプロテクションドメイン２０１０Ｂをストレージクラスタ１３０内から選択する。なお、クラスタ制御部３１０Ａは、変換指示に基づいて、変換後のデータ保護レベルの設定に必要なストレージノード数（例えば、ｍＤｎＰの場合、ｍ＋ｎ以上）をストレージクラスタ１３０内またはプロテクションドメイン２０１０内から選択してもよい。
【０１６３】
また、クラスタ制御部３１０Ａは、移行元のプールから移行先のプールにデータを移行するようにＩＯ制御部３２０ＢおよびＩＯ制御部３２０Ｆに指示を出す。なお、クラスタ制御部３１０Ａは、予め設けられたプール２０２０Ｆを用いる構成に限られるものではなく、プールを新規に作成してもよい。例えば、クラスタ制御部３１０Ａは、選択したプロテクションドメイン２０１０Ｂに属するストレージノード１２０のうち最もＣＰＵ負荷が低いストレージノード１２０を選定するようにしてもよい。この場合、選定されたストレージノード１２０のＩＯ制御部３２０は、変換後のデータ保護レベルに対応したプールを作成する。
【０１６４】
（手順２００３：データの移行）
ＩＯ制御部３２０ＢとＩＯ制御部３２０Ｆとは、プール２０２０Ｂからプール２０２０Ｆへのボリュームのマイグレーションを実行する。
【０１６５】
上述した構成では、プロテクションドメインごとにデータ保護レベルが設定されているので、１つのストレージノード１２０に異なるデータ保護レベルに係る物理チャンクが混在することがなく、より適切にデータを保護できるようになる。
【０１６６】
（４）他の実施の形態
なお上述の実施の形態においては、本発明をストレージシステムに適用するようにした場合について述べたが、本発明はこれに限らず、この他種々のシステム、装置、方法、プログラムに広く適用することができる。
【０１６７】
また上述の実施の形態においては、クラスタ制御部３１０、ＩＯ制御部３２０、データ保護制御部３３０の各々の処理を分けて述べたが、本発明はこれに限らず、クラスタ制御部３１０、ＩＯ制御部３２０、データ保護制御部３３０の各々の処理については、何れの制御部が実行してもよい。なお、各制御部は、ハイパーバイザに含まれて動作するものであってもよいし、ハイパーバイザ上で動作するものであってもよい。
【０１６８】
また上述の実施の形態においては、説明の便宜上、ＸＸテーブルを用いて各種のデータを説明したが、データ構造は限定されるものではなく、ＸＸ情報などと表現してもよい。なお、各テーブルの構成は、一例であり、１つのテーブルは、２以上のテーブルに分割されてもよいし、２以上のテーブルの全部または一部が１つのテーブルであってもよい。
【０１６９】
また、上記の説明において各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記憶装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１７０】
また上述した構成については、本発明の要旨を超えない範囲において、適宜に、変更したり、組み替えたり、組み合わせたり、省略したりしてもよい。
【０１７１】
また上述した構成については、例えば、下記のような特徴を有する。
【０１７２】
（第１の特徴的構成）
複数のストレージノード（例えば、ストレージノード１２０）を含んで構成されるストレージシステム（ストレージシステム１００、ストレージシステム１９００、ストレージシステム２０００等）であって、データ保護レベルの変換に係る情報（例えば、変換指示）に基づいて、上記複数のストレージノードの中から、変換後のデータ保護レベルの設定に必要なストレージノード（二重化の設定の場合、データ移行に必要な容量を有するストレージノード１２０を２つ、４Ｄ１Ｐの設定の場合、データ移行に必要な容量を有するストレージノード１２０を５つ等）を選定する選定部（例えば、クラスタ制御部３１０、ＩＯ制御部３２０）を備え、上記選定部により選定されたストレージノード（例えば、データ保護制御部３３０）は、変換後のデータ保護レベルでデータを管理することを特徴とする。
【０１７３】
上記構成では、変換後のデータ保護レベルの設定に必要なストレージノードが選定され、選定されたストレージノードにおいて変換後のデータ保護レベルでデータが管理されるので、例えば、複数のストレージノードに跨ったデータ保護レベルの変換を実現できる。
【０１７４】
（第２の特徴的構成）
上記複数のストレージノードは、複数のサブセット（例えば、プロテクションドメイン）を含む所定のストレージクラスタに属し、上記選定部は、データ保護レベルの変換が指定されたデータを扱うストレージノードが属するサブセットの中からストレージノードを選定することを特徴とする。
【０１７５】
上記構成では、例えば、管理者は、変換後のデータ保護レベルにおいてデータが拡散する範囲を容易に把握できるようになる。
【０１７６】
（第３の特徴的構成）
上記選定部は、空き容量が大きいストレージノードから順にストレージノードを選定することを特徴とする。
【０１７７】
上記構成では、例えば、ストレージノードの使用容量を平準化できるようになる。
【０１７８】
（第４の特徴的構成）
所定のストレージノードは、データ保護レベルが設定されたストレージプールのデータを移行する制御部（例えば、ＩＯ制御部３２０）を備え、第１のデータ保護レベルが設定された第１のストレージプール（例えば、プール１１２０Ｃ、プール１９１０Ｃ、プール２０２０Ｂ）と、第２のデータ保護レベルが設定された第２のストレージプール（例えば、プール１１３０Ｃ、プール１９１０Ｄ、プール２０２０Ｆ）とが設けられ、上記制御部は、データ保護レベルを変換する旨の要求が上記第１のデータ保護レベルを上記第２のデータ保護レベルに変換する旨の要求である場合、上記第１のストレージプールから上記第２のストレージプールにデータを移行することを特徴とする。
【０１７９】
上記構成では、例えば、第１のストレージプールから第２のストレージプールにデータを移行することで、変換前のデータ保護レベルのデータが変換後のデータ保護レベルのデータに変換される。
【０１８０】
（第５の特徴的構成）
上記第１のストレージプールには、複数の物理容量（例えば、物理チャンク、論理チャンク）が割り当てられ、上記制御部は、上記第１のストレージプールから上記第２のストレージプールにデータをコピーして上記データを削除することにより、上記第１のストレージプールから上記第２のストレージプールにデータを移行する際、上記第１のストレージプールから上記第２のストレージプールに移行したデータの容量に応じて、上記第１のストレージプールから割り当てられている物理容量を外すことを特徴とする。
【０１８１】
上記構成では、例えば、データ保護レベルの変換中であっても、外された物理容量を利用できるようになる。
【０１８２】
（第６の特徴的構成）
上記所定のストレージノードには、第１のストレージノードと、第２のストレージノードとが含まれ、上記第１のストレージノードの上記制御部が上記第１のストレージプールから上記第２のストレージプールにデータを移行する処理と、上記第２のストレージノードの上記制御部が上記第１のストレージプールから上記第２のストレージプールにデータを移行する処理とが並列に行われることを特徴とする。
【０１８３】
上記構成では、例えば、第１のストレージノードのデータを移行する処理と、第２のストレージノードのデータを移行する処理とが並列に行われるので、データ保護レベルの変換においてデータの移行にかかる処理時間を短縮できるようになる。
【０１８４】
（第７の特徴的構成）
上記第１のストレージプールには、物理容量が割り当てられ、上記制御部は、データ保護レベルを変換する旨の要求（例えば、変換指示）に基づいて、変換前のデータ保護レベルのデータと変換後のデータ保護レベルのデータとが一致するか否かを判定し、一致すると判定した場合、上記第２のストレージプールに上記第１のストレージプールの物理容量を割り当てるように、ストレージプールと物理容量とが対応付けられている管理情報（例えば、プール管理表群３７０）を変更することで、上記第１のストレージプールから上記第２のストレージプールにデータを移行することを特徴とする。
【０１８５】
上記構成では、例えば、変換前のデータ保護レベルのデータと変換後のデータ保護レベルのデータとが一致する場合、第１のストレージプールから第２のストレージプールにデータをコピーする必要がなくなるので、データ保護レベルの変換においてデータの移行にかかる処理時間を短縮できるようになる。
【０１８６】
（第８の特徴的構成）
データ保護レベルの変換に係る情報には、データ保護レベルの変換を行う単位としてストレージシステム全体、ストレージクラスタのサブセット、ストレージプール、またはボリュームが選択されていることを示す情報が含まれることを特徴とする。
【０１８７】
上記構成では、例えば、データ保護レベルの変換を行う単位を指定することができるので、複数のストレージノードに跨ったデータ保護レベルの変換を適切に実行できる。
【０１８８】
上記構成によれば、容量効率や信頼性などの要件に基づいてデータ保護レベルを柔軟に変更できるストレージシステムを実現することができる。
【符号の説明】
【０１８９】
１００……ストレージシステム、１１０……コンピュートノード、１２０……ストレージノード。
【図１】
2020087378.tif 000003
【図２】
2020087378.tif 000004
【図３】
2020087378.tif 000005
【図４】
2020087378.tif 000006
【図５】
2020087378.tif 000007
【図６】
2020087378.tif 000008
【図７】
2020087378.tif 000009
【図８】
2020087378.tif 000010
【図９】
2020087378.tif 000011
【図１０】
2020087378.tif 000012
【図１１】
2020087378.tif 000013
【図１２】
2020087378.tif 000014
【図１３】
2020087378.tif 000015
【図１４】
2020087378.tif 000016
【図１５】
2020087378.tif 000017
【図１６】
2020087378.tif 000018
【図１７Ａ】
2020087378.tif 000019
【図１７Ｂ】
2020087378.tif 000020
【図１７Ｃ】
2020087378.tif 000021
【図１８】
2020087378.tif 000022
【図１９】
2020087378.tif 000023
【図２０】
2020087378.tif 000024