(57)【要約】【課題】ストレージノード間におけるデータ転送なしにレプリケーションからＲＡＩＤへの移行をおこなう。【解決手段】ストレージシステム１は、情報処理装置２と複数のストレージノード６（６ａ，６ｂ，６ｃ，６ｄ）を備える。複製部３は、複数のストレージノード６のうち一のストレージノード６が複数のデータ領域８に記憶する複数のデータをそれぞれ複製し、他のストレージノード６が有する複数のデータ領域８にそれぞれ記憶する。パリティ生成部４は、ストレージノード６ごとに、複数のデータ領域８がそれぞれ記憶するデータに対応するパリティを生成してパリティ領域７に記憶する。データ選択部５は、複数のストレージノード６が有する複数のデータ領域８にそれぞれ記憶されたデータの多重度が低下するように、ストレージノード６ごとに、複数のデータ領域８からデータを保持するデータ領域８を選択し、その余のデータ領域８を解放する。【選択図】図１
2014191784.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と、複数のストレージノードとを備えるストレージシステムにおいて、
前記ストレージノードは、
複数のデータ領域と、前記複数のデータ領域に対応するパリティ領域とを有し、
前記情報処理装置は、
前記複数のストレージノードのうち一のストレージノードが複数のデータ領域に記憶する複数のデータをそれぞれ複製し、他のストレージノードが有する複数のデータ領域にそれぞれ記憶する複製部と、
前記ストレージノードごとに、複数のデータ領域がそれぞれ記憶するデータに対応するパリティを生成してパリティ領域に記憶するパリティ生成部と、
前記複数のストレージノードが有する複数のデータ領域にそれぞれ記憶されたデータの多重度が低下するように、前記ストレージノードごとに、前記複数のデータ領域からデータを保持するデータ領域を選択し、その余のデータ領域を解放するデータ選択部と、
を有することを特徴とするストレージシステム。
【請求項２】
前記複数のストレージノードが有する複数のデータ領域にそれぞれ記憶されたデータの多重度は、
２のべき乗の多重度であり、
前記データ選択部は、
前記ストレージノードごとに、前記複数のデータ領域からデータを記憶するデータ領域の半数を複数回選択することを特徴とする請求項１記載のストレージシステム。
【請求項３】
前記情報処理装置は、さらに、
所定条件に基づいて、前記データ領域を選択するか否かを決定する決定部を備え、
前記データ選択部は、
前記決定部が決定した結果に基づいて、前記データ領域を選択することを特徴とする請求項２記載のストレージシステム。
【請求項４】
前記ストレージシステムは、
前記ストレージノードを前記２のべき乗数有し、
前記データ選択部は、
前記ストレージノードに対応する識別情報に基づいて、前記データ領域を選択することを特徴とする請求項３記載のストレージシステム。
【請求項５】
前記情報処理装置は、
前記その余のデータ領域の解放後、前記ストレージノードごとに、選択された前記データ領域に記憶するデータが連続するように再配置することを特徴とする請求項３記載のストレージシステム。
【請求項６】
前記パリティ生成部は、
前記データ選択部がデータ領域の半数を選択するごとに、選択されたデータ領域に基づいて、パリティを生成することを特徴とする請求項３記載のストレージシステム。
【請求項７】
前記決定部は、
複数のデータ領域にそれぞれ保持されたデータのアクセス頻度とあらかじめ設定した閾値との比較に基づいて、前記データ領域を選択するか否かを決定することを特徴とする請求項３記載のストレージシステム。
【請求項８】
複数のデータ領域と、前記複数のデータ領域に対応するパリティ領域とを備える複数のストレージノードに接続される情報処理装置において、
前記複数のストレージノードのうち一のストレージノードが複数のデータ領域に記憶する複数のデータをそれぞれ複製し、他のストレージノードが有する複数のデータ領域にそれぞれ記憶する複製部と、
前記ストレージノードごとに、複数のデータ領域がそれぞれ記憶するデータに対応するパリティを生成してパリティ領域に記憶するパリティ生成部と、
前記複数のストレージノードが有する複数のデータ領域にそれぞれ記憶されたデータの多重度が低下するように、前記ストレージノードごとに、前記複数のデータ領域からデータを保持するデータ領域を選択し、その余のデータ領域を解放するデータ選択部と、
を有することを特徴とする情報処理装置。
【請求項９】
複数のデータ領域と、前記複数のデータ領域に対応するパリティ領域とを備える複数のストレージノードに接続される情報処理装置の制御プログラムにおいて、
前記情報処理装置に、
前記複数のストレージノードのうち一のストレージノードが複数のデータ領域に記憶する複数のデータをそれぞれ複製させるとともに、他のストレージノードが有する複数のデータ領域にそれぞれ記憶させ、
前記ストレージノードごとに、複数のデータ領域がそれぞれ記憶するデータに対応するパリティを生成してパリティ領域に記憶させ、
前記複数のストレージノードが有する複数のデータ領域にそれぞれ記憶されたデータの多重度が低下するように、前記ストレージノードごとに、前記複数のデータ領域からデータを保持するデータ領域を選択させるとともに、その余のデータ領域を解放させることを特徴とする情報処理装置の制御プログラム。
【請求項１０】
複数のデータ領域と、前記複数のデータ領域に対応するパリティ領域とを備える複数のストレージノードに接続される情報処理装置の制御方法において、
前記情報処理装置が、
前記複数のストレージノードのうち一のストレージノードが複数のデータ領域に記憶する複数のデータをそれぞれ複製するとともに、他のストレージノードが有する複数のデータ領域にそれぞれ記憶し、
前記ストレージノードごとに、複数のデータ領域がそれぞれ記憶するデータに対応するパリティを生成してパリティ領域に記憶し、
前記複数のストレージノードが有する複数のデータ領域にそれぞれ記憶されたデータの多重度が低下するように、前記ストレージノードごとに、前記複数のデータ領域からデータを保持するデータ領域を選択するとともに、その余のデータ領域を解放することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、情報処理装置、情報処理装置の制御プログラム、および情報処理装置の制御方法に関する。
【背景技術】
【０００２】
分散ストレージシステムなどのストレージシステムは、生成直後のデータに対するアクセス頻度が高い。そのため、ストレージシステムは、データを複製し、複数のストレージノードに複製したデータを分散して配置することによりデータの可用性および信頼性を確保するレプリケーションをおこなっている。
【０００３】
しかしながら、レプリケーションは、ストレージオーバヘッドが大きい（容量効率が悪い）。そのため、ストレージシステムは、アクセス頻度が落ち着いたタイミングを見計らって、レプリケーションからストレージオーバヘッドが小さいＲＡＩＤ（Redundant Arrays of Independent Disks）へと移行する。
【０００４】
レプリケーションからＲＡＩＤへの移行は、パリティ計算のためのデータ読み込みの他にノード間におけるデータ転送をおこなわなければならず、ユーザ業務に影響を与えることがあった。また、レプリケーションからＲＡＩＤへの移行過程において、一時的にレプリケーションとＲＡＩＤとが共存することでストレージリソースの余計な消費があった。
【０００５】
このような問題に対して、条件に応じてストレージノード間におけるデータ転送なしにレイドレベルを変更可能なディスクアレイ装置が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−９４４２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、依然としてレプリケーションからＲＡＩＤへの移行は、ストレージノード間におけるデータ転送を生じるものであり、ユーザ業務に与える影響を軽減する余地がある。
【０００８】
１つの側面では、本発明は、ストレージノード間におけるデータ転送なしにレプリケーションからＲＡＩＤへの移行をおこなうことができるストレージシステム、情報処理装置、情報処理装置の制御プログラム、および情報処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、以下に示すような、ストレージシステムが提供される。ストレージシステムは、情報処理装置と、複数のストレージノードとを備える。ストレージノードは、複数のデータ領域と、複数のデータ領域に対応するパリティ領域とを有する。情報処理装置は、複製部と、パリティ生成部と、データ選択部と、を有する。複製部は、複数のストレージノードのうち一のストレージノードが複数のデータ領域に記憶する複数のデータをそれぞれ複製し、他のストレージノードが有する複数のデータ領域にそれぞれ記憶する。パリティ生成部は、ストレージノードごとに、複数のデータ領域がそれぞれ記憶するデータに対応するパリティを生成してパリティ領域に記憶する。データ選択部は、複数のストレージノードが有する複数のデータ領域にそれぞれ記憶されたデータの多重度が低下するように、ストレージノードごとに、複数のデータ領域からデータを保持するデータ領域を選択し、その余のデータ領域を解放する。
【発明の効果】
【００１０】
１態様によれば、ストレージシステム、情報処理装置、情報処理装置の制御プログラム、および情報処理装置の制御方法において、ストレージノード間におけるデータ転送なしにレプリケーションからＲＡＩＤへの移行をおこなうことができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態のストレージシステムの構成の一例を示す図である。
【図２】第２の実施形態のストレージシステムの構成の一例を示す図である。
【図３】第２の実施形態の計算ノードのハードウェア構成の一例を示す図である。
【図４】第２の実施形態のディスクにおける論理ブロック構成の一例を示す図である。
【図５】第２の実施形態のストレージシステムが多重度８のレプリケーションから８フラグメントのＲＡＩＤ構成に移行する過程の一例を示す図である。
【図６】第２の実施形態のＲＡＩＤ移行処理のフローチャートを示す図である。
【図７】第２の実施形態のフェーズ移行処理のフローチャートを示す図である。
【図８】第２の実施形態のパリティ生成処理のフローチャートを示す図である。
【図９】第２の実施形態の多重度８のレプリケーションの論理ブロック（パリティなし）の一例を示す図である。
【図１０】第２の実施形態の多重度８のレプリケーションの論理ブロック（パリティあり）の一例を示す図である。
【図１１】第２の実施形態の多重度４のレプリケーションの論理ブロック（パリティあり）の一例を示す図である。
【図１２】第２の実施形態の多重度２のレプリケーションの論理ブロック（パリティあり）の一例を示す図である。
【図１３】第２の実施形態のＲＡＩＤに移行した論理ブロックの一例を示す図である。
【図１４】第３の実施形態のフェーズ移行処理のフローチャートを示す図である。
【図１５】第３の実施形態の多重度４のレプリケーションの圧縮後の論理ブロック（パリティあり）の一例を示す図である。
【図１６】第３の実施形態の多重度２のレプリケーションの圧縮前の論理ブロック（パリティあり）の一例を示す図である。
【図１７】第３の実施形態の多重度２のレプリケーションの圧縮後の論理ブロック（パリティあり）の一例を示す図である。
【図１８】第３の実施形態のＲＡＩＤに移行した圧縮前の論理ブロックの一例を示す図である。
【図１９】第３の実施形態のＲＡＩＤに移行した圧縮後の論理ブロックの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、実施の形態を図面を参照して詳細に説明する。
［第１の実施形態］
まず、第１の実施形態のストレージシステムについて図１を用いて説明する。図１は、第１の実施形態のストレージシステムの構成の一例を示す図である。
【００１３】
ストレージシステム１は、分散ストレージシステムであり、レプリケーションやＲＡＩＤにより可用性および信頼性を確保する。ストレージシステム１は、生成直後のデータに対してレプリケーションをおこなうが、ストレージオーバヘッドが大きいことから時機をみてＲＡＩＤへの移行をおこなう。
【００１４】
ストレージシステム１は、情報処理装置２と複数のストレージノード６（６ａ，６ｂ，６ｃ，６ｄ）を備える。ストレージノード６は、データ領域８と、パリティ領域７を備える。ストレージノード６は、複数のデータ領域８にデータを保持し、複数のデータ領域８に対応するパリティをパリティ領域７に保持する。
【００１５】
情報処理装置２は、ストレージノード６を管理する管理ノードである。情報処理装置２は、複数のストレージノード６を内蔵してもよいし、複数のストレージノード６と図示しないネットワークにより外部接続するものであってもよい。また、情報処理装置２は、ストレージノード６ごとに設けられるものであってもよく、その場合、情報処理装置２の１つがマスタとなり、その余がスレーブとなって複数のストレージノード６を管理してもよいし、複数の情報処理装置２が協働して複数のストレージノード６を管理してもよい。
【００１６】
情報処理装置２は、複製部３と、パリティ生成部４と、データ選択部５を備える。複製部３は、ストレージシステム１におけるデータの複製（レプリケーション）をおこなう。複製部３は、ストレージノード６ａ，６ｂ，６ｃ，６ｄのうちの１つ（たとえば、ストレージノード６ａ）が複数のデータ領域８に記憶する複数のデータＤ０，Ｄ１，Ｄ２，Ｄ３をそれぞれ複製する。複製部３は、複製したデータＤ０，Ｄ１，Ｄ２，Ｄ３を、他のストレージノード６（たとえば、ストレージノード６ｂ，６ｃ，６ｄ）が有する複数のデータ領域８にそれぞれ記憶する。すなわち、複製部３は、ストレージノード６ａ，６ｂ，６ｃ，６ｄのそれぞれのデータ領域８にデータＤ０，Ｄ１，Ｄ２，Ｄ３を保持させる。これにより、ストレージシステム１は、データＤ０，Ｄ１，Ｄ２，Ｄ３についてそれぞれ４重のレプリケーションを実現する。
【００１７】
パリティ生成部４は、ストレージノード６ごとに、複数のデータ領域８がそれぞれ記憶するデータに対応するパリティを生成する。たとえば、パリティ生成部４は、ストレージノード６ａについて、データ領域８が保持するデータＤ０，Ｄ１，Ｄ２，Ｄ３に対応するパリティＰ０を生成する。パリティ生成部４は、パリティＰ０をパリティ領域７に記憶（保持）する。同様にして、パリティ生成部４は、ストレージノード６ｂ，６ｃ，６ｄについてそれぞれパリティＰ１，Ｐ２，Ｐ３を生成し、パリティＰ１，Ｐ２，Ｐ３をパリティ領域７に記憶する。なお、パリティＰ０，Ｐ１，Ｐ２，Ｐ３は、同一のパリティであってもよいし、データＤ０，Ｄ１，Ｄ２，Ｄ３を分担した異なるパリティであってもよい。
【００１８】
データ選択部５は、ストレージノード６ごとに、複数のデータ領域８のうちからデータを保持するデータ領域８を選択し、その余のデータ領域８、すなわち選択しなかったデータ領域８を解放する。解放とは、データ領域８が保持するデータをレプリケーションの対象から外すことであり、データ領域８が保持するデータのクリアを含む。このとき、データ選択部５は、レプリケーションの多重度が低下するように、すなわち、複数のストレージノード６が有する複数のデータ領域８にそれぞれ記憶されたデータの多重度が低下するように選択と解放とをおこなう。
【００１９】
たとえば、データ選択部５は、ストレージノード６ａについて、データＤ０を保持するデータ領域８を選択し、データＤ１，Ｄ２，Ｄ３を保持するデータ領域８のデータを解放する。同様にして、データ選択部５は、ストレージノード６ｂ，６ｃ，６ｄについて、それぞれデータＤ１，Ｄ２，Ｄ３を保持するデータ領域８を選択する。このとき、ストレージノード６がデータ領域８に保持するデータをハッチングで示す。
【００２０】
このように、ストレージシステム１は、ストレージノード間におけるデータ転送なしにパリティを生成し、レプリケーションの多重度を低下（たとえば、多重度４から多重度１）させてＲＡＩＤへの移行をおこなうことができる。ストレージシステム１は、レプリケーションからＲＡＩＤへの移行をおこなう際に、ストレージノード間におけるデータ転送がないことからユーザ業務に与える影響を軽減することができる。
【００２１】
なお、ストレージシステム１は、レプリケーションの多重度を多段階に低下させるようにしてもよい。たとえば、ストレージシステム１は、ある時機にレプリケーションの多重度４を多重度２とし、次の時機にレプリケーションの多重度２を多重度１とする。このようにすれば、ストレージシステム１は、生成直後のデータのアクセス頻度が高い状態から低い状態に漸減して移行する過程に応じたレプリケーションとＲＡＩＤとをユーザに提供することができる。
【００２２】
［第２の実施形態］
次に、第２の実施形態のストレージシステムの構成について図２を用いて説明する。図２は、第２の実施形態のストレージシステムの構成の一例を示す図である。
【００２３】
ストレージシステム１０は、ネットワーク１４に計算ノード１２を介して接続するストレージノード１３を複数備える分散ストレージシステムである。ストレージシステム１０は、複数のストレージノード１３によりレプリケーションやＲＡＩＤにより可用性および信頼性を確保する。
【００２４】
ストレージノード１３は、１以上のストレージデバイス（たとえば、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive:フラッシュメモリドライブ）など）により構成され、データを保持可能にしている。
【００２５】
計算ノード１２は、ストレージノード１３と接続する。計算ノード１２は、論理アドレスでのＩ／Ｏ（Input／Output）要求を受け付けて、論理アドレスに対応するストレージノード１３の物理アドレスにアクセスする。ストレージシステム１０は、複数の計算ノード１２にまたがってレプリケーションやＲＡＩＤを構成する。
【００２６】
ストレージシステム１０は、計算ノード１２の１つがマスタとなり、その余がスレーブとなって複数のストレージノード１３を管理してレプリケーションやＲＡＩＤを構成することができる。なお、ストレージシステム１０は、複数の計算ノード１２が協働して複数のストレージノード１３を管理してレプリケーションやＲＡＩＤを構成してもよい。
【００２７】
また、ストレージシステム１０は、ネットワーク１４を介して計算ノード１２と通信可能な管理ノード１１を備える。ストレージシステム１０は、管理ノード１１が計算ノード１２を介して複数のストレージノード１３を管理してレプリケーションやＲＡＩＤを構成してもよい。
【００２８】
次に、第２の実施形態の計算ノードのハードウェア構成について図３を用いて説明する。図３は、第２の実施形態の計算ノードのハードウェア構成の一例を示す図である。
計算ノード１２は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１には、バス１０６を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００２９】
ＲＡＭ１０２は、計算ノード１２の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）のプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に必要な各種データ（たとえば、システム制御の情報管理）が格納される。また、ＲＡＭ１０２は、各種データの格納に用いるメモリと別体にキャッシュメモリを含むものであってもよい。
【００３０】
バス１０６に接続されている周辺機器としては、不揮発性メモリ１０３、入出力インタフェース１０４、および通信インタフェース１０５がある。
不揮発性メモリ１０３は、計算ノード１２の電源遮断時においても記憶内容を保持する。不揮発性メモリ１０３は、たとえば、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）やフラッシュメモリなどの半導体記憶装置や、ＨＤＤなどである。また、不揮発性メモリ１０３は、計算ノード１２の補助記憶装置として使用される。不揮発性メモリ１０３には、ＯＳのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
【００３１】
入出力インタフェース１０４は、ストレージノード１３などの入出力装置と接続して入出力をおこなう。
通信インタフェース１０５は、ネットワーク１４と接続することで、ネットワーク１４を介して、他の計算ノード１２や管理ノード１１との間でデータの送受信をおこなう。
【００３２】
以上のようなハードウェア構成によって、第２の実施形態の計算ノード１２の処理機能を実現することができる。なお、計算ノード１２の他、管理ノード１１、第１の実施形態に示した情報処理装置２も、図３に示した計算ノード１２と同様のハードウェアにより実現することができる。
【００３３】
計算ノード１２および管理ノード１１は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施形態の処理機能を実現する。計算ノード１２および管理ノード１１に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、計算ノード１２および管理ノード１１に実行させるプログラムを不揮発性メモリ１０３に格納しておくことができる。プロセッサ１０１は、不揮発性メモリ１０３内のプログラムの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。またコンピュータ１００に実行させるプログラムを、図示しない光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。メモリ装置は、入出力インタフェース１０４あるいは図示しない機器接続インタフェースとの通信機能を搭載した記録媒体である。たとえば、メモリ装置は、メモリリーダライタによりメモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなうことができる。メモリカードは、カード型の記録媒体である。
【００３４】
可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ１０１からの制御により、不揮発性メモリ１０３にインストールされた後、実行可能となる。またプロセッサ１０１が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００３５】
次に、第２の実施形態のストレージの論理ブロック構成について図４を用いて説明する。図４は、第２の実施形態のディスクにおける論理ブロック構成の一例を示す図である。
ディスク１５は、ストレージノード１３を構成するストレージデバイスの１つである。ディスク１５は、たとえば、ＨＤＤやＳＳＤである。ディスク１５は、メモリ領域（記憶保持領域）を複数の論理ブロックにより構成する。１論理ブロック（１つの１論理ブロック）は、データ領域と、データ領域に対応するパリティ領域とを含む。
【００３６】
たとえば、ストレージシステム１０が多重度８のレプリケーションから８フラグメントのＲＡＩＤ構成に移行する場合、１論理ブロックは、１２物理ブロックである。このとき、データ領域は、８物理ブロック（８つの物理ブロック）を有する。パリティ領域は、４物理ブロック（４つの物理ブロック）を有する。１物理ブロックは、所定の大きさの記憶領域であり、たとえば、５１２ｂｙｔｅの大きさである。
【００３７】
次に、第２の実施形態のレプリケーションからＲＡＩＤ構成への移行過程について図５を用いて説明する。図５は、第２の実施形態のストレージシステムが多重度８のレプリケーションから８フラグメントのＲＡＩＤ構成に移行する過程の一例を示す図である。
【００３８】
ストレージシステム１０は、所定の論理ブロック単位（たとえば、１論理ブロック）でレプリケーションからＲＡＩＤ構成への移行をおこなう。レプリケーションからＲＡＩＤ構成への移行は、多重度８のレプリケーションを初期状態とし、ＲＡＩＤ移行状態フェーズ０、ＲＡＩＤ移行状態フェーズ１を経て８フラグメントのＲＡＩＤ構成であるＲＡＩＤ移行状態フェーズ２に至る。
【００３９】
初期状態において、レプリケーションの多重度は８であり、未だパリティ領域はパリティを保持していない。初期状態のアクセス頻度Ｆ（ｉｎｉ）は、あらかじめ定めた閾値Ｓ（１）より大きい。初期状態は、アクセス頻度Ｆ（ｉｎｉ）が閾値Ｓ（１）以下に低下したことを状態遷移条件（Ｆ（ｉｎｉ）≦Ｓ（１））としてＲＡＩＤ移行状態フェーズ０に遷移する。
【００４０】
ＲＡＩＤ移行状態フェーズ０において、レプリケーションの多重度は４であり、パリティ領域はパリティを保持する。ＲＡＩＤ移行状態フェーズ０のアクセス頻度Ｆ（０）は、あらかじめ定めた閾値Ｓ（２）より大きい。ＲＡＩＤ移行状態フェーズ０は、アクセス頻度Ｆ（０）が閾値Ｓ（２）以下に低下したことを状態遷移条件（Ｆ（０）≦Ｓ（２））としてＲＡＩＤ移行状態フェーズ１に遷移する。
【００４１】
ＲＡＩＤ移行状態フェーズ１において、レプリケーションの多重度は２であり、パリティ領域はパリティを保持する。ＲＡＩＤ移行状態フェーズ１のアクセス頻度Ｆ（１）は、あらかじめ定めた閾値Ｓ（３）より大きい。ＲＡＩＤ移行状態フェーズ１は、アクセス頻度Ｆ（１）が閾値Ｓ（３）以下に低下したことを状態遷移条件（Ｆ（１）≦Ｓ（３））としてＲＡＩＤ移行状態フェーズ２に遷移する。
【００４２】
ＲＡＩＤ移行状態フェーズ２において、レプリケーションの多重度は１であり、パリティ領域はパリティを保持する。すなわち、ＲＡＩＤ移行状態フェーズ２は、レプリケーションから８フラグメントのＲＡＩＤ構成に移行した状態である。ＲＡＩＤ移行状態フェーズ２のアクセス頻度は、不問でありアクセス頻度の監視がされていない状態である。ＲＡＩＤ移行状態フェーズ２は、最終遷移状態である。
【００４３】
このように、ストレージシステム１０は、レプリケーションの多重度を段階的に低下させてＲＡＩＤに移行するため、可用性と容量効率の改善とを両立する。また、ストレージシステム１０は、論理ブロックごとにデータ領域に対応するパリティ領域を用意するため、ディスク間のデータ転送を必要としないことからユーザ業務に与える影響を軽減可能である。
【００４４】
なお、アクセス頻度は、所定期間の平均アクセス頻度、最高アクセス頻度などであってもよい。状態遷移のタイミングは、遷移条件成立により速やかにおこなうものであってもよいし、遷移条件成立後の所定の移行タイミング（たとえば、保守時間など）であってもよい。また、遷移条件成立の判定は、所定時間ごとにおこなってもよいし、所定の判定タイミング（たとえば、保守時間など）であってもよい。
【００４５】
次に、第２の実施形態のＲＡＩＤ移行処理について図６を用いて説明する。図６は、第２の実施形態のＲＡＩＤ移行処理のフローチャートを示す図である。
ＲＡＩＤ移行処理は、アクセス頻度に応じてレプリケーションの多重度を段階的に低下させてＲＡＩＤに移行する処理である。レプリケーションを構成するストレージノード１３と接続する計算ノード１２のうちマスタとなる計算ノード１２がＲＡＩＤ移行処理を実行する。マスタとなる計算ノード１２は、定期または不定期の所定のタイミングでＲＡＩＤ移行処理を実行する。マスタとなる計算ノード１２は、レプリケーションを構成する論理ブロックの状態が初期状態、ＲＡＩＤ移行状態フェーズ０、またはＲＡＩＤ移行状態フェーズ１のときに、その論理ブロックについてＲＡＩＤ移行処理を実行する。なお、マスタとなる計算ノード１２は、レプリケーションからＲＡＩＤ構成に移行した後のＲＡＩＤ移行状態フェーズ２をＲＡＩＤ移行処理の対象としない。
【００４６】
［ステップＳ１１］計算ノード１２（プロセッサ１０１）は、レプリケーションを構成する論理ブロックのＲＡＩＤ移行状態フェーズ（初期状態、ＲＡＩＤ移行状態フェーズ０、またはＲＡＩＤ移行状態フェーズ１）を取得する。
【００４７】
［ステップＳ１２］計算ノード１２は、レプリケーションを構成する論理ブロックのアクセス頻度を評価する。
［ステップＳ１３］計算ノード１２は、レプリケーションを構成する論理ブロックのＲＡＩＤ移行状態フェーズとアクセス頻度の評価とを比較し、図５に示した状態遷移条件の成立（フェーズ移行）を判定する。計算ノード１２は、状態遷移条件の成立を判定した場合にステップＳ１４にすすみ、状態遷移条件の不成立を判定した場合にＲＡＩＤ移行処理を終了する。
【００４８】
［ステップＳ１４］計算ノード１２は、スレーブノードとなる計算ノード１２に対してフェーズ移行処理の実行を指示する。フェーズ移行処理は、レプリケーションの多重度を段階的に低下させる処理である。フェーズ移行処理については、図７を用いて後で説明する。
【００４９】
［ステップＳ１５］計算ノード１２は、接続するストレージノード１３に対してフェーズ移行処理を実行してＲＡＩＤ移行処理を終了する。
このように、計算ノード１２は、ＲＡＩＤ移行状態フェーズの進行条件の監視をおこなう監視部と、ＲＡＩＤ移行状態フェーズの進行（データ領域の選択の是非）を決定する決定部としての機能を含む、ＲＡＩＤ移行状態フェーズの進行を管理する管理部としての機能を有する。なお、ＲＡＩＤ移行状態フェーズの進行条件は、アクセス頻度に限らず、データ生成からの経過時間、ストレージノードのデータ容量など、任意の条件を設定可能であってもよい。
【００５０】
次に、第２の実施形態のフェーズ移行処理について図７を用いて説明する。図７は、第２の実施形態のフェーズ移行処理のフローチャートを示す図である。
フェーズ移行処理は、レプリケーションの多重度を段階的に低下させる処理である。レプリケーションを構成するストレージノード１３と接続する計算ノード１２がフェーズ移行処理を実行する。レプリケーションを構成するストレージノード１３と接続する計算ノード１２のうちマスタとなる計算ノード１２は、ＲＡＩＤ移行処理においてフェーズ移行処理を実行する。レプリケーションを構成するストレージノード１３と接続する計算ノード１２のうちスレーブノードとなる計算ノード１２は、マスタとなる計算ノード１２からの実行指示によりフェーズ移行処理を実行する。
【００５１】
［ステップＳ２１］計算ノード１２（プロセッサ１０１）は、パリティ生成処理を実行する。パリティ生成処理は、データ領域に対応するパリティを生成する処理である。パリティ生成処理については、図８を用いて後で説明する。
【００５２】
［ステップＳ２２］計算ノード１２は、レプリケーションの多重度を低下させる場合に次段のＲＡＩＤ移行状態フェーズでデータ領域に保持するデータを選択する。
［ステップＳ２３］計算ノード１２は、ステップＳ２２で選択しなかったデータをクリアする。なお、ここでいうクリアは、データの消去の他に、データを保持する物理ブロックと論理ブロックの対応関係のリセットを含む。これにより、ストレージノード１３は、データの容量効率の改善を図ることができる。
【００５３】
［ステップＳ２４］計算ノード１２は、データクリアに伴うオフセットの更新をおこない、フェーズ移行処理を終了する。なお、オフセットは、論理アドレスへのアクセスに対する物理アドレスのアクセス先を示す情報である。
【００５４】
次に、第２の実施形態のパリティ生成処理について図８を用いて説明する。図８は、第２の実施形態のパリティ生成処理のフローチャートを示す図である。
パリティ生成処理は、データ領域に対応するパリティを生成する処理である。レプリケーションを構成するストレージノード１３と接続する計算ノード１２がフェーズ移行処理のステップＳ２１でパリティ生成処理を実行する。
【００５５】
［ステップＳ３１］計算ノード１２（プロセッサ１０１）は、レプリケーションを構成する論理ブロックのＲＡＩＤ移行状態フェーズがＲＡＩＤ移行状態フェーズ０であるか否かを判定する。計算ノード１２は、ＲＡＩＤ移行状態フェーズがＲＡＩＤ移行状態フェーズ０である場合にステップＳ３２にすすみ、ＲＡＩＤ移行状態フェーズ０でない場合にステップＳ３３にすすむ。
【００５６】
［ステップＳ３２］計算ノード１２は、データ領域に保持するデータからパリティを生成してパリティ領域に格納した後、パリティ生成処理を終了する。
［ステップＳ３３］計算ノード１２は、パリティ領域に保持するパリティから新しいパリティを生成してパリティ領域に格納した後、パリティ生成処理を終了する。
【００５７】
このように、計算ノード１２は、新規のパリティ、あるいはレプリケーションの多重度低下に伴い更新するパリティを、他の計算ノード１２との間でデータの送受信をおこなうことなく生成することができる。したがって、ストレージシステム１０は、計算ノード１２間のデータ転送を必要としないことからユーザ業務に与える影響を軽減可能である。
【００５８】
次に、第２の実施形態のレプリケーションからＲＡＩＤ構成への移行過程の論理ブロックについて図９から図１３を用いて説明する。図９は、第２の実施形態の多重度８のレプリケーションの論理ブロック（パリティなし）の一例を示す図である。
【００５９】
ＮＤ（０）からＮＤ（７）のそれぞれは、所定数の論理ブロックについて多重度８のレプリケーションを実現するストレージノード１３である。なお、説明を簡潔にするために、ＮＤ（０）からＮＤ（７）は、１論理ブロックについて多重度８のレプリケーションを実現しているものとして説明する。なお、１論理ブロックの多重度、すなわち、複数のストレージノード１３が有する複数のデータ領域にそれぞれ記憶されたデータの多重度は、２のべき乗であることが望ましく、たとえば、２の３乗の８である。
【００６０】
このとき、ストレージシステム１０は、ストレージノード１３をレプリケーション時のデータの多重度に相当する数を有し、たとえば、２のべき乗数である。ストレージシステム１０は、多重度８（＝２の３乗）のレプリケーションの場合、８つのストレージノード１３を含む。
【００６１】
ＮＤ（０）からＮＤ（７）は、ＲＡＩＤ移行状態フェーズが初期状態である。１論理ブロックは、ＤＴ（８ｋ）からＤＴ（８ｋ＋７）までの８物理ブロックと、ＰＴ（８ｋ＋８）からＰＴ（８ｋ＋１１）までの４物理ブロック、合計１２物理ブロックから構成される。
【００６２】
なお、図９中の物理ブロックのハッチング部は、データを保持していることを示す。ＮＤ（０）からＮＤ（７）は、それぞれＤＴ（８ｋ）からＤＴ（８ｋ＋７）までの８物理ブロックに同一のデータを保持している。パリティ領域は未だパリティを保持しない。
【００６３】
初期状態の論理ブロックは、アクセス頻度の低下により状態遷移条件が成立し、ＲＡＩＤ移行状態フェーズ０に移行する。ＲＡＩＤ移行状態フェーズ０への移行により、ＮＤ（０）からＮＤ（７）は、ＤＴ（８ｋ）からＤＴ（８ｋ＋７）に対応するパリティをＰＴ（８ｋ＋８）からＰＴ（８ｋ＋１１）に生成する。
【００６４】
このときのＮＤ（０）からＮＤ（７）の様子を図１０に示す。図１０は、第２の実施形態の多重度８のレプリケーションの論理ブロック（パリティあり）の一例を示す図である。
【００６５】
ストレージシステム１０は、ＲＡＩＤ移行状態フェーズ０において初期パリティを生成する。ストレージシステム１０は、多重度８（＝２の３乗、Ｍ＝３）であるから、２M-1＝２2＝４エクステント分のデータに対応するパリティを同一のストレージノード１３に生成する。たとえば、ＮＤ（０）のＰＴ（８ｋ＋８）にパリティＰ（０）を生成して格納し、ＰＴ（８ｋ＋９）にパリティＰ（１）を生成して格納し、ＰＴ（８ｋ＋１０）にパリティＰ（２）を生成して格納し、ＰＴ（８ｋ＋１１）にパリティＰ（３）を生成して格納する。ＮＤ（１）のＰＴ（８ｋ＋８）にパリティＰ（４）を生成して格納し、ＰＴ（８ｋ＋９）にパリティＰ（５）を生成して格納し、ＰＴ（８ｋ＋１０）にパリティＰ（６）を生成して格納し、ＰＴ（８ｋ＋１１）にパリティＰ（７）を生成して格納する。なお、パリティは、既知の算出式のうちから任意のものを用いることができる。
【００６６】
パリティの配置は、以下のように一般化できる。多重度Ｎ（＝２M）のレプリケーションをＮフラグメントのＲＡＩＤ構成に移行する場合のパリティの配置方法を示す。
ＲＡＩＤ移行状態フェーズ０におけるアドレスＡのエクステントのパリティを（１）式で求められるＮＤ（ストレージノード１３）に配置する。
【００６７】
ｎ（Ａ）＝Ａ ｄｉｖ ２M-1 ｍｏｄ ２M  ・・・（１）
これにより、（２）式を満足する２M-1個のエクステントのパリティを１つのＮＤに配置される。
【００６８】
Ａ＝α ２M-1 ＋ ｋ0 （０≦ｋ0＜２M-1）  ・・・（２）
ただし、αは、論理ブロックの位置を示す変数である。
ＲＡＩＤ移行状態フェーズ０において、パリティ生成後のＮＤ（０）からＮＤ（７）は、レプリケーションの多重度を低下させるために、データを保持するデータ領域の選択と、選択しなかったデータ領域のクリアとをおこなう。
【００６９】
このときのＮＤ（０）からＮＤ（７）の様子を図１１に示す。図１１は、第２の実施形態の多重度４のレプリケーションの論理ブロック（パリティあり）の一例を示す図である。
【００７０】
ストレージシステム１０は、ＲＡＩＤ移行状態フェーズ０においてデータを保持するデータ領域を選択する。図１１中の物理ブロックのハッチング部は、選択されたデータ領域を示す。たとえば、ＮＤ（０）からＮＤ（３）は、偶数アドレスのデータ領域を選択し、ＮＤ（４）からＮＤ（７）は、奇数アドレスのデータ領域を選択する。これにより、ＮＤ（０）からＮＤ（７）は、レプリケーションの多重度が４となる。
【００７１】
レプリケーションの多重度を低下させる場合のデータ領域の選択は、以下のように一般化できる。多重度Ｎ（＝２M）のレプリケーションをＮフラグメントのＲＡＩＤ構成に移行する場合、計算ノード１２は、ＲＡＩＤ移行状態フェーズｐｈ（ｐｈ＝０、１、２、・・・、Ｍ−１）において（３）式にしたがいデータ領域を選択する。
【００７２】
ｄn（Ｍ−ｐｈ−１）＝ｎ ｄｉｖ ２M-ph-1 ｍｏｄ ２  ・・・（３）
ただし、ｄn（ｉ）は、ノード番号ｎ（ストレージノード１３の識別情報：ｎ＝０、１、２、・・・、Ｎ−１）の２進数表記の下からｉ（ｉ＝０、１、２、・・・、Ｍ−１）番目のビット（桁）の値とする。
【００７３】
ｄn（Ｍ−ｐｈ−１）＝０の場合、計算ノード１２は、ＮＤ（ｎ）のブロックアドレスが先頭から偶数番目（たとえば、偶数アドレス）のデータ領域を選択し、その余のデータ領域のデータをクリアする。また、ｄn（Ｍ−ｐｈ−１）＝１の場合、計算ノード１２は、ＮＤ（ｎ）のブロックアドレスが先頭から奇数番目（たとえば、奇数アドレス）のデータ領域を選択し、その余のデータ領域のデータをクリアする。
【００７４】
なお、データ領域の選択と、その余のデータ領域のデータのクリアとにより、それまでアクセス可能だったデータ領域のうちからデータを読み出せないデータ領域が生じるため、計算ノード１２は、オフセットの計算式の更新をおこなう。
【００７５】
次に、ＲＡＩＤ移行状態フェーズ１のＮＤ（０）からＮＤ（７）の様子を図１２に示す。図１２は、第２の実施形態の多重度２のレプリケーションの論理ブロック（パリティあり）の一例を示す図である。
【００７６】
ＲＡＩＤ移行状態フェーズ１では、計算ノード１２は、ＲＡＩＤ移行状態フェーズ０で生成した初期パリティから次段のパリティを生成する。計算ノード１２は、初期パリティを格納したストレージノード１３と同一のストレージノード１３に次段のパリティを生成する。したがって、計算ノード１２は、初期パリティを格納したストレージノード１３に閉じて次段のパリティの生成をおこなう。そのため、ストレージシステム１０は、パリティの生成の際に、複数のストレージノード１３の間でデータ転送を発生しない。
【００７７】
たとえば、ＮＤ（０）のＰＴ（８ｋ＋８）に格納するパリティＰ（１０）は、ＮＤ（０）のＰＴ（８ｋ＋８）に格納していたパリティＰ（０）と、ＮＤ（０）のＰＴ（８ｋ＋９）に格納していたパリティＰ（１）とから生成できる。ＮＤ（０）のＰＴ（８ｋ＋９）に格納するパリティＰ（１１）は、ＮＤ（０）のＰＴ（８ｋ＋１０）に格納していたパリティＰ（２）と、ＮＤ（０）のＰＴ（８ｋ＋１１）に格納していたパリティＰ（３）とから生成できる。同様に、ＮＤ（１）のＰＴ（８ｋ＋８）に格納するパリティＰ（１２）は、ＮＤ（１）のＰＴ（８ｋ＋８）に格納していたパリティＰ（４）と、ＮＤ（１）のＰＴ（８ｋ＋９）に格納していたパリティＰ（５）とから生成できる。ＮＤ（１）のＰＴ（８ｋ＋９）に格納するパリティＰ（１３）は、ＮＤ（１）のＰＴ（８ｋ＋１０）に格納していたパリティＰ（６）と、ＮＤ（１）のＰＴ（８ｋ＋１１）に格納していたパリティＰ（７）とから生成できる。
【００７８】
なお、計算ノード１２は、ＮＤ（０）のＰＴ（８ｋ＋１０）、ＰＴ（８ｋ＋１１）に格納していた初期パリティを、次段のパリティの生成によりクリアする。ＮＤ（１）のＰＴ（８ｋ＋１０）、ＰＴ（８ｋ＋１１）についても同様である。
【００７９】
ここで、一般化したＲＡＩＤ移行状態フェーズｐｈのパリティ生成について、以下に説明する。ＲＡＩＤ移行状態フェーズｐｈにおいて、（４）式のパリティがすべて同一のストレージノード１３に配置されているとすると、ＲＡＩＤ移行状態フェーズｐｈのパリティ集合Ａ（ｐｈ、ｋph）は、（５）式および（６）式に分解できる。
【００８０】
Ａ（ｐｈ、ｋph）＝α ２M-ph ＋ ｋph （０≦ｋph＜２M-ph）  ・・・（４）
Ａeven（ｐｈ、ｋp+1）＝α ２M-ph ＋ ２ｋph+1 （０≦ｋph+1＜２M-ph-1）
・・・（５）
Ａodd（ｐｈ、ｋp+1）＝α ２M-ph ＋ ２ｋph+1 ＋ １（０≦ｋph+1＜２M-ph-1）
・・・（６）
また、Ａ（ｐｈ＋１、ｋp+1）のパリティは、Ａeven（ｐｈ、ｋp+1）のパリティと、Ａodd（ｐｈ、ｋp+1）のパリティとの和である。したがって、計算ノード１２は、Ａ（ｐｈ、ｋph）のパリティを保持するストレージノード１３に閉じてＡ（ｐｈ＋１、ｋp+1）のパリティを生成することができる。
【００８１】
また、（７）式より、計算ノード１２は、ＲＡＩＤ移行状態フェーズｐｈが格納するパリティから次段のＲＡＩＤ移行状態フェーズｐｈ＋１のパリティを生成できる。
Ａ（ｐｈ＋１、ｋp+1）＝Ａeven（ｐｈ、ｋp+1） ｄｉｖ ２
＝α ２M-(ph+1) ＋ ｋph+1 （０≦ｋph+1＜２M-(ph+1)）  ・・・（７）
したがって、計算ノード１２は、ＲＡＩＤ移行状態フェーズＭ−１までのパリティを、１つのストレージノード１３が保持する初期パリティから帰納的に生成することができる。
【００８２】
また、ストレージシステム１０は、ＲＡＩＤ移行状態フェーズ１においてデータを保持するデータ領域を選択し、その余のデータ領域のデータをクリアする。図１２中の物理ブロックのハッチング部は、選択されたデータ領域を示す。たとえば、ＮＤ（０）およびＮＤ（１）は、下２桁が「００」のアドレスのデータ領域を選択し、ＮＤ（２）およびＮＤ（３）は、下２桁が「１０」のアドレスのデータ領域を選択する。同様に、ＮＤ（４）およびＮＤ（５）は、下２桁が「０１」のアドレスのデータ領域を選択し、ＮＤ（６）およびＮＤ（７）は、下２桁が「１１」のアドレスのデータ領域を選択する。これにより、ＮＤ（０）からＮＤ（７）は、レプリケーションの多重度が２となる。
【００８３】
なお、データ領域の選択と、その余のデータ領域のデータのクリアとにより、それまでアクセス可能だったデータ領域のうちからデータを読み出せないデータ領域が生じるため、計算ノード１２は、オフセットの計算式の更新をおこなう。
【００８４】
次に、ＲＡＩＤ移行状態フェーズ２のＮＤ（０）からＮＤ（７）の様子を図１３に示す。図１３は、第２の実施形態のＲＡＩＤに移行した論理ブロックの一例を示す図である。
ＲＡＩＤ移行状態フェーズ２では、計算ノード１２は、ＲＡＩＤ移行状態フェーズ１で生成した前段のパリティから次段のパリティを生成する。計算ノード１２は、前段のパリティを格納したストレージノード１３と同一のストレージノード１３に次段のパリティを生成する。したがって、計算ノード１２は、初期パリティを格納したストレージノード１３に閉じて次段のパリティの生成をおこなう。そのため、ストレージシステム１０は、パリティの生成の際に、複数のストレージノード１３の間でデータ転送を発生しない。
【００８５】
たとえば、ＮＤ（０）のＰＴ（８ｋ＋８）に格納するパリティＰ（２０）は、ＮＤ（０）のＰＴ（８ｋ＋８）に格納していたパリティＰ（１０）と、ＮＤ（０）のＰＴ（８ｋ＋９）に格納していたパリティＰ（１１）とから生成できる。同様に、ＮＤ（１）のＰＴ（８ｋ＋８）に格納するパリティＰ（２１）は、ＮＤ（１）のＰＴ（８ｋ＋８）に格納していたパリティＰ（１２）と、ＮＤ（１）のＰＴ（８ｋ＋９）に格納していたパリティＰ（１３）とから生成できる。
【００８６】
なお、計算ノード１２は、ＮＤ（０）のＰＴ（８ｋ＋９）に格納していた前段のパリティを、次段のパリティの生成によりクリアする。ＮＤ（１）のＰＴ（８ｋ＋９）についても同様である。
【００８７】
また、ストレージシステム１０は、ＲＡＩＤ移行状態フェーズ２においてデータを保持するデータ領域を選択し、その余のデータ領域のデータをクリアする。図１３中の物理ブロックのハッチング部は、選択されたデータ領域を示す。たとえば、ＮＤ（０）は、下３桁が「０００」のアドレスのデータ領域を選択し、ＮＤ（１）は、下３桁が「１００」のアドレスのデータ領域を選択する。同様に、ＮＤ（２）は、下３桁が「０１０」のアドレスのデータ領域を選択し、ＮＤ（３）は、下３桁が「１１０」のアドレスのデータ領域を選択する。ＮＤ（４）は、下３桁が「００１」のアドレスのデータ領域を選択し、ＮＤ（５）は、下３桁が「１０１」のアドレスのデータ領域を選択する。同様に、ＮＤ（６）は、下３桁が「０１１」のアドレスのデータ領域を選択し、ＮＤ（７）は、下３桁が「１１１」のアドレスのデータ領域を選択する。これにより、ＮＤ（０）からＮＤ（７）は、レプリケーションの多重度が１、すなわちレプリケーションからＲＡＩＤ（たとえば、ＲＡＩＤ５）に移行したこととなる。
【００８８】
このように、ストレージシステム１０は、ストレージノード１３ごとに、複数のデータ領域からデータを記憶するデータ領域の半数を複数回選択することにより、データの多重度を低減することができる。
【００８９】
なお、データ領域の選択と、その余のデータ領域のデータのクリアとにより、それまでアクセス可能だったデータ領域のうちからデータを読み出せないデータ領域が生じるため、計算ノード１２は、オフセットの計算式の更新をおこなう。
【００９０】
このように、ストレージシステム１０は、ストレージノード１３間におけるデータ転送なしにパリティを生成し、レプリケーションの多重度を低下させてＲＡＩＤへの移行をおこなうことができる。ストレージシステム１０は、レプリケーションからＲＡＩＤへの移行をおこなう際に、ストレージノード間におけるデータ転送がないことからユーザ業務に与える影響を軽減することができる。また、ストレージシステム１０は、生成直後のデータのアクセス頻度が高い状態から低い状態に漸減して移行する過程に応じたレプリケーションとＲＡＩＤとをユーザに提供することができる。
【００９１】
［第３の実施形態］
次に、第３の実施形態のストレージシステムについて説明する。第３の実施形態のストレージシステムは、ＲＡＩＤ移行状態フェーズにおいて、データ領域の圧縮をおこなう点で第２の実施形態のストレージシステムと異なる。
【００９２】
まず、第３の実施形態のフェーズ移行処理について図１４を用いて説明する。図１４は、第３の実施形態のフェーズ移行処理のフローチャートを示す図である。
フェーズ移行処理は、レプリケーションの多重度を段階的に低下させる処理である。第３の実施形態のフェーズ移行処理は、データクリアの後、オフセット更新の前に、さらにデータ領域の圧縮をおこなう。
【００９３】
第３の実施形態のフェーズ移行処理の説明では、第２の実施形態のフェーズ移行処理と同様の処理についてステップ番号を同じにして説明を省略する。
［ステップＳ２３１］ステップＳ２３１は、ステップＳ２３の実行後、ステップＳ２４の実行前に計算ノード１２（プロセッサ１０１）によって実行される。計算ノード１２は、ステップＳ２３の実行後の選択されたデータ領域が連続するように、データを移動してデータ領域を圧縮する。
【００９４】
たとえば、データの移動に伴うアドレス変換は、２進数表記の右シフト演算（ｄｉｖ ２）により実現することができる。変換後のアドレスは、データ領域のアドレスが偶数の場合にはデータ領域のアドレスの半分にし、データ領域のアドレスが奇数の場合にはデータ領域のアドレスを１だけ下にずらしてから半分にすればよい。
【００９５】
したがって、初期状態におけるデータの物理ブロックのアドレスを（８）式のように表した場合、変換後のアドレスは、（９）式の条件のもとで（１０）式のようになる。
Ａ＝α２M ＋ Σi=0M-1ｄa（ｉ）２i  ・・・（８）
ただし、αは、論理ブロックの位置を示す変数、ｄa（ｉ）はアドレスＡの下からｉ番目の桁の値である。
【００９６】
ｄa（ｐｈ）＝ｄn（Ｍ−ｐｈ−１）  ・・・（９）
Ａ＝α２M-ph-1 ＋ Σi=0m-ph-2ｄa（ｉ＋ｐｈ＋１）２i  ・・・（１０）
たとえば、ｄa（ｐｈ）＝０の物理ブロックは、ｄ0（Ｍ−ｐｈ−１）＝０の場合に選択され、ｄa（ｐｈ）＝１の物理ブロックは、ｄ0（Ｍ−ｐｈ−１）＝１の場合に選択される。
【００９７】
したがって、ＮＤ（ｎ）において最終的に選択される物理ブロックは、物理ブロックのアドレスの２Mによる剰余がｎの２進数表記をビット反転させた整数に一致するものとなる。
【００９８】
これより、物理ブロックのアドレスに対してｄｉｖ ２Mの演算の実行結果が同一の論理ブロックは、各ノードに一つずつだけ存在する。また、（１０）式が示すように、各ノードのデータを保持する物理ブロックは、ＲＡＩＤ移行状態フェーズＭ−１に至ると、いずれのノードも同一アドレスの物理ブロックに変換される。したがって、ストレージシステム１０は、ＲＡＩＤ移行状態フェーズＭ−１の圧縮後の物理ブロックでエクステントを構成することができる。これにより、ストレージシステム１０は、圧縮後の物理ブロック間でパリティを生成してＲＡＩＤを構成できる。
【００９９】
次に、第３の実施形態のレプリケーションからＲＡＩＤ構成への移行過程の論理ブロックについて図１５から図１９を用いて説明する。図１５は、第３の実施形態の多重度４のレプリケーションの圧縮後の論理ブロック（パリティあり）の一例を示す図である。
【０１００】
なお、図１５に示す論理ブロックは、図１１に示した多重度４のレプリケーションの論理ブロック（パリティあり）の圧縮後の様子である。
ＮＤ（０）からＮＤ（７）のそれぞれは、所定数の論理ブロックについて多重度４のレプリケーションを実現するストレージノード１３である。
【０１０１】
ＮＤ（０）からＮＤ（７）は、ＲＡＩＤ移行状態フェーズ０である。１論理ブロックは、ＤＴ（８ｋ）からＤＴ（８ｋ＋３）までの４物理ブロックと、ＰＴ（８ｋ＋４）からＰＴ（８ｋ＋７）までの４物理ブロック、合計８物理ブロックから構成される。
【０１０２】
なお、データ領域の選択、その余のデータ領域のデータのクリア、およびデータ領域の圧縮により、それまでアクセス可能だったデータ領域のうちからデータを読み出せないデータ領域が生じるため、計算ノード１２は、オフセットの計算式の更新をおこなう。
【０１０３】
次に、ＲＡＩＤ移行状態フェーズ１のＮＤ（０）からＮＤ（７）の様子を図１６に示す。図１６は、第３の実施形態の多重度２のレプリケーションの圧縮前の論理ブロック（パリティあり）の一例を示す図である。
【０１０４】
ＲＡＩＤ移行状態フェーズ１では、計算ノード１２は、ＲＡＩＤ移行状態フェーズ０で生成した初期パリティから次段のパリティを生成する。パリティの生成については、第２の実施形態と同様なので説明を省略する。
【０１０５】
また、ストレージシステム１０は、ＲＡＩＤ移行状態フェーズ１においてデータを保持するデータ領域を選択し、その余のデータ領域のデータをクリアする。図１６中の物理ブロックのハッチング部は、選択されたデータ領域を示す。たとえば、ＮＤ（０）およびＮＤ（１）は、下１桁が「０」のアドレスのデータ領域を選択し、ＮＤ（２）およびＮＤ（３）は、下１桁が「１」のアドレスのデータ領域を選択する。同様に、ＮＤ（４）およびＮＤ（５）は、下１桁が「０」のアドレスのデータ領域を選択し、ＮＤ（６）およびＮＤ（７）は、下１桁が「１」のアドレスのデータ領域を選択する。これにより、ＮＤ（０）からＮＤ（７）は、レプリケーションの多重度が２となる。
【０１０６】
次に、ＲＡＩＤ移行状態フェーズ１のＮＤ（０）からＮＤ（７）の圧縮後の様子を図１７に示す。図１７は、第３の実施形態の多重度２のレプリケーションの圧縮後の論理ブロック（パリティあり）の一例を示す図である。
【０１０７】
１論理ブロックは、ＤＴ（８ｋ）とＤＴ（８ｋ＋１）の２物理ブロックと、ＰＴ（８ｋ＋２）とＰＴ（８ｋ＋３）の２物理ブロック、合計４物理ブロックから構成される。
なお、データ領域の選択、その余のデータ領域のデータのクリア、およびデータ領域の圧縮により、それまでアクセス可能だったデータ領域のうちからデータを読み出せないデータ領域が生じるため、計算ノード１２は、オフセットの計算式の更新をおこなう。
【０１０８】
次に、ＲＡＩＤ移行状態フェーズ２のＮＤ（０）からＮＤ（７）の様子を図１８に示す。図１８は、第３の実施形態のＲＡＩＤに移行した圧縮前の論理ブロックの一例を示す図である。
【０１０９】
ＲＡＩＤ移行状態フェーズ２では、計算ノード１２は、ＲＡＩＤ移行状態フェーズ１で生成した前段のパリティから次段のパリティを生成する。パリティの生成については、第２の実施形態と同様なので説明を省略する。
【０１１０】
また、ストレージシステム１０は、ＲＡＩＤ移行状態フェーズ２においてデータを保持するデータ領域を選択し、その余のデータ領域のデータをクリアする。図１８中の物理ブロックのハッチング部は、選択されたデータ領域を示す。たとえば、ＮＤ（０）、ＮＤ（２）、ＮＤ（４）、およびＮＤ（６）は、下１桁が「０」のアドレスのデータ領域を選択する。ＮＤ（１）、ＮＤ（３）、ＮＤ（５）、およびＮＤ（７）は、下１桁が「１」のアドレスのデータ領域を選択する。これにより、ＮＤ（０）からＮＤ（７）は、レプリケーションの多重度が１、すなわちレプリケーションからＲＡＩＤに移行したこととなる。
【０１１１】
次に、ＲＡＩＤ移行状態フェーズ２のＮＤ（０）からＮＤ（７）の圧縮後の様子を図１９に示す。図１９は、第３の実施形態のＲＡＩＤに移行した圧縮後の論理ブロックの一例を示す図である。
【０１１２】
１論理ブロックは、ＤＴ（８ｋ）の１物理ブロックと、ＰＴ（８ｋ＋１）の１物理ブロック、合計２物理ブロックから構成される。これにより、ストレージシステム１０は、１論理ブロックについて多重度８のレプリケーションからＲＡＩＤへの移行をおこなうことができる。
【０１１３】
なお、データ領域の選択、その余のデータ領域のデータのクリア、およびデータ領域の圧縮により、それまでアクセス可能だったデータ領域のうちからデータを読み出せないデータ領域が生じるため、計算ノード１２は、オフセットの計算式の更新をおこなう。
【０１１４】
このように、ストレージシステム１０は、ユーザ業務に与える影響を軽減しながら、レプリケーションからＲＡＩＤへと移行することができる。
以上、情報処理装置２、計算ノード１２を例示して説明したが、管理ノード１１を含むその他の情報処理装置においても適用可能である。
【０１１５】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置２、計算ノード１２、管理ノード１１が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１１６】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１７】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１１８】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１１９】
１，１０  ストレージシステム
２  情報処理装置
３  複製部
４  パリティ生成部
５  データ選択部
６，６ｂ，６ｃ，６ｄ，１３  ストレージノード
７  パリティ領域
８  データ領域
１１  管理ノード
１２  計算ノード
１４  ネットワーク
１５  ディスク
１００  コンピュータ
１０１  プロセッサ
１０２  ＲＡＭ
１０３  不揮発性メモリ
１０４  入出力インタフェース
１０５  通信インタフェース
１０６  バス
【図１】
2014191784.tif 000003
【図２】
2014191784.tif 000004
【図３】
2014191784.tif 000005
【図４】
2014191784.tif 000006
【図５】
2014191784.tif 000007
【図６】
2014191784.tif 000008
【図７】
2014191784.tif 000009
【図８】
2014191784.tif 000010
【図９】
2014191784.tif 000011
【図１０】
2014191784.tif 000012
【図１１】
2014191784.tif 000013
【図１２】
2014191784.tif 000014
【図１３】
2014191784.tif 000015
【図１４】
2014191784.tif 000016
【図１５】
2014191784.tif 000017
【図１６】
2014191784.tif 000018
【図１７】
2014191784.tif 000019
【図１８】
2014191784.tif 000020
【図１９】
2014191784.tif 000021