(57)【要約】【課題】仮想的なストレージシステムにおいては、スケールインなどの構成変更を行う際にかかる時間を短縮することが難しい、という課題を解決すること。【解決手段】仮想マシンである仮想ストレージノードを複数起動する仮想化手段を有し、前記仮想ストレージノードは、データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する。【選択図】図２
2019095995.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンである仮想ストレージノードを複数起動する仮想化手段を有し、
前記仮想ストレージノードは、
データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記仮想化手段は、データの読み書きを行う際にかかる負荷状況として、起動中の前記仮想ストレージノードと対応する物理ディスクの負荷状況を監視する負荷監視手段を有する仮想管理ノードを起動し、
前記仮想ストレージノードは、前記負荷監視手段が監視した前記物理ディスクの負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記負荷監視手段は、前記物理ディスクの負荷状況として、前記物理ディスクのビジー率を監視する
情報処理装置。
【請求項４】
請求項２又は３に記載の情報処理装置であって、
前記仮想ストレージノードは、データの格納先を示す情報である格納先情報を有し、
前記仮想管理ノードは、前記負荷監視手段が監視した前記物理ディスクの負荷状況に応じて、前記格納先情報を更新するデータ配置管理手段を有し、
前記仮想ストレージノードは、前記データ配置管理手段により更新される前記格納先情報に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
情報処理装置。
【請求項５】
請求項４に記載の情報処理装置であって、
前記データ配置管理手段は、前記物理ディスクの負荷状況が示す値が予め定められた第１の基準以上である場合、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理を行うよう前記格納先情報を更新する
情報処理装置。
【請求項６】
請求項４又は５に記載の情報処理装置であって、
前記データ配置管理手段は、前記物理ディスクの負荷状況が示す値が予め定められた第２の基準以下である場合、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理を行うよう前記格納先情報を更新する
情報処理装置。
【請求項７】
請求項４から請求項６までのいずれかに記載の情報処理装置であって、
前記データ配置管理手段は、前記負荷監視手段が監視した前記物理ディスクの負荷状況に応じて、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる際に書き込み対象とならない前記仮想ストレージノードから、当該仮想ストレージノードに記憶されているデータを、書き込み対象となる一部の前記仮想ストレージノードへと移行させる
情報処理装置。
【請求項８】
請求項７に記載の情報処理装置であって、
前記データ配置管理手段は、前記負荷監視手段が監視した前記物理ディスクの負荷状況が示す値が予め定められた第３の基準以下の場合に、起動中の仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる際に書き込み対象とならない前記仮想ストレージノードから、当該仮想ストレージノードに記憶されているデータを、書き込み対象となる一部の前記仮想ストレージノードへと移行させる
情報処理装置。
【請求項９】
請求項７又は８に記載の情報処理装置であって、
前記仮想ストレージノードは、書き込み対象のファイルを複数のブロックデータへと分割して、分割したブロックデータを既に記憶しているか否か判定する重複判定処理を行うとともに、既に記憶しているブロックデータと重複しないブロックデータを記憶するよう前記仮想ストレージノードに指示する重複排除手段を有し、
前記データ配置管理手段は、前記重複排除手段が重複排除を行うことにより前記負荷監視手段が監視する前記物理ディスクの負荷状況に応じた値が予め定められた第３の基準以下となった場合に、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる際に書き込み対象とならない前記仮想ストレージノードから、当該仮想ストレージノードに記憶されているデータを、書き込み対象となる一部の前記仮想ストレージノードへと移行させる
情報処理装置。
【請求項１０】
請求項１から請求項９までのいずれかに記載の情報処理装置であって、
前記仮想ストレージノードは、書き込み対象のファイルを複数のブロックデータへと分割して、分割したブロックデータを既に記憶しているか否か判定する重複判定処理を行うとともに、既に記憶しているブロックデータと重複しないブロックデータを記憶するよう前記仮想ストレージノードに指示する重複排除手段を有し、
前記重複排除手段は、データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノード全体を対象とするブロックデータの格納指示か、起動中の前記仮想ストレージノードのうちの予め定められた一部の仮想ストレージノードを対象とするブロックデータの格納指示の、いずれかを指示する
情報処理装置。
【請求項１１】
請求項１０に記載の情報処理装置であって、
前記重複排除手段は、データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノード全体のうちのブロックデータに基づいて算出されるハッシュ値に応じて特定される前記仮想ストレージノードに対してブロックデータを記憶するよう指示するか、起動中の前記仮想ストレージノードのうちの予め定められた一部の仮想ストレージノードであってブロックデータに基づいて算出されるハッシュ値に応じて特定される前記仮想ストレージノードに対してブロックデータを記憶するよう指示する
情報処理装置。
【請求項１２】
請求項１０又は１１に記載の情報処理装置であって、
前記重複排除手段は、ブロックデータをフラグメントデータに分割した後、分割したフラグメントデータを記憶するよう前記仮想ストレージノードに指示する
情報処理装置。
【請求項１３】
情報処理装置が、
仮想マシンである仮想ストレージノードを複数起動し、
前記仮想ストレージノードは、データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
情報処理方法。
【請求項１４】
情報処理装置に、
仮想マシンである仮想ストレージノードを複数起動する仮想化手段を実現させ、
前記仮想ストレージノードは、
データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、プログラムに関し、特に、仮想的なストレージシステムを実現する情報処理装置、情報処理方法、プログラムに関する。
【背景技術】
【０００２】
情報処理装置上で仮想的なストレージシステムを構築する技術が知られている。
【０００３】
例えば、特許文献１には、システムを構成する仮想マシンの数を減らすスケールインやシステムを構成する仮想マシンの数を増やすスケールアウトなどの処理を実行する機能を有するサーバ管理装置が記載されている。具体的には、特許文献１には、収集した構成情報から稼働する仮想サーバ数が最も少ない物理サーバを選択し、選択した物理サーバ上で稼働する仮想サーバを停止する処理を行うサーバ管理装置が記載されている。特許文献１によると、このように構成することで、片寄処理を行う際などにおいてシステム構成の変更回数を出来る限り削減し、消費電力を削減することが可能となる。
【０００４】
また、上記のようなストレージシステムでは、容量確保などを目的として重複排除を行うことがある。このような重複排除処理を行う際に活用可能な技術として、例えば、特許文献２がある。特許文献２には、クライアントから低い優先度が付加されたファイルを受信した際にサーバ装置が高負荷状態である場合、必須処理のみを行った後、ファイルを第１の保存領域に保存する。そして、サーバ装置が低負荷にあることが確認された後、第１の保存領域に保存されているファイルを読出し、重複排除処理などの付加処理を行って、ファイルを第２の保存領域に保存する。特許文献２によると、このような処理を行うことにより、ファイルの優先度を考慮した上で、ファイル処理の負荷を平滑化することが出来る。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５３７８９４６号
【特許文献２】特許第５６２２１７５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載されているような装置において、仮想的なストレージシステムを構成する仮想マシンの数を減らすスケールインを行う場合、仮想マシンの削除に伴うデータの再配置を行うことが必要となる。その結果、スケールインなどの構成変更を行う際に時間がかかる、という問題が生じていた。
【０００７】
また、特許文献２に記載されている技術は、低優先度のファイルでありかつサーバ装置が高負荷状態である場合、サーバ装置が低負荷になった後重複排除などの処理を行う、というものであり、構成変更を行う際の時間の短縮には寄与しない。そのため、特許文献２に記載されている技術を用いたとしても、スケールインなどの構成変更を行う際に時間がかかる、という問題を解決することは難しかった。また、特許文献２に記載されている技術の場合、後々に重複排除処理などの付加処理を残すことになる。その結果、構成変更を行う際に重複排除を行うことが必要となり、構成変更に要する時間が増大するおそれもあった。
【０００８】
このように、仮想的なストレージシステムにおいては、スケールインなどの構成変更を行う際にかかる時間を短縮することが難しい、という問題が生じていた。
【０００９】
そこで、本発明の目的は、仮想的なストレージシステムにおいては、スケールインなどの構成変更を行う際にかかる時間を短縮することが難しい、という問題を解決する情報処理装置、情報処理方法、プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
かかる目的を達成するため本発明の一形態である情報処理装置は、
仮想マシンである仮想ストレージノードを複数起動する仮想化手段を有し、
前記仮想ストレージノードは、
データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
という構成を採る。
【００１１】
また、本発明の他の形態である情報処理方法は、
情報処理装置が、
仮想マシンである仮想ストレージノードを複数起動し、
前記仮想ストレージノードは、データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
という構成を採る。
【００１２】
また、本発明の他の形態であるプログラムは、
情報処理装置に、
仮想マシンである仮想ストレージノードを複数起動する仮想化手段を実現させ、
前記仮想ストレージノードは、
データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
処理を実現させるためのプログラムである。
【発明の効果】
【００１３】
本発明は、以上のように構成されることにより、仮想的なストレージシステムにおいては、スケールインなどの構成変更を行う際にかかる時間を短縮することが難しい、という問題を解決する情報処理装置、情報処理方法、プログラムを提供することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係る情報処理システムの全体の構成の一例を示すブロック図である。
【図２】仮想ストレージノードのグループ分けの一例を示すブロック図である。
【図３】図１で示す仮想ストレージノードの構成の一例を示すブロック図である。
【図４】第１のデータ配置の一例を説明するための図である。
【図５】第１のデータ配置の一例を説明するための図である。
【図６】第２のデータ配置の一例を説明するための図である。
【図７】第２のデータ配置の一例を説明するための図である。
【図８】仮想管理ノードの構成の一例を示すブロック図である。
【図９】データ配置管理部により行われるデータの再配置の一例を示す図である。
【図１０】情報処理装置により行われる処理の一例をまとめた表である。
【図１１】仮想管理ノードにより行われる処理の一例を示すフローチャートである。
【図１２】仮想管理ノードにより行われる他の処理の一例を示すフローチャートである。
【図１３】ファイルの書き込み要求を受信した際に情報処理装置により行われる処理の一例を示すフローチャートである。
【図１４】仮想ストレージノードのグループ分けの他の一例を示すブロック図である。
【図１５】本発明の第２の実施形態に係る情報処理装置の構成の一例を示す図である。
【発明を実施するための形態】
【００１５】
［第１の実施形態］
本発明の第１の実施形態を図１から図１４までを参照して説明する。図１は、情報処理システム１の全体の構成の一例を示すブロック図である。図２は、仮想ストレージノード２１１のグループ分けの一例を示すブロック図である。図３は、仮想ストレージノード２１１の構成の一例を示すブロック図である。図４、図５は、第１のデータ配置の一例を説明するための図である。図６、図７は、第２のデータ配置の一例を説明するための図である。図８は、仮想管理ノード２１２の構成の一例を示すブロック図である。図９は、データ配置管理部２１２２により行われるデータの再配置の一例を示す図である。図１０は、情報処理装置２により行われる処理の一例をまとめた表である。図１１、図１２は、仮想管理ノード２１２により行われる処理の一例を示すフローチャートである。図１３は、ファイルの書き込み要求を受信した際に情報処理装置２により行われる処理の一例を示すフローチャートである。図１４は、仮想ストレージノード２１１のグループ分けの他の一例を示すブロック図である。
【００１６】
第１の実施形態では、仮想化手段２１上で複数の仮想ストレージノード２１１を起動することにより仮想的なストレージシステムを情報処理装置２上に実現する、情報処理システム１について説明する。後述するように、本実施形態における情報処理装置２は、当該情報処理装置２がデータの読み書きなどを行う際にかかる負荷状況を監視する。そして、情報処理装置２は、負荷状況の監視結果に応じて、書き込み対象となる仮想ストレージノード２１１を変更する。換言すると、情報処理装置２は、負荷状況の監視結果に応じて、複数種類のデータ配置を使い分けるよう構成されている。
【００１７】
図１は、情報処理システム１の全体の構成の一例を示している。図１を参照すると、情報処理システム１は、情報処理装置２と、クライアント装置３と、を有している。また、情報処理装置２とクライアント装置３とは、互いに通信可能なよう接続されている。
【００１８】
情報処理装置２は、例えば、複数の物理ディスク（ディスク装置）を有している。情報処理装置２は、クライアント装置３から受信した書き込み要求や読み出し要求などの各種要求に応じて、データの格納やデータの読み出しなどの各種処理を行う仮想的なストレージシステムとして機能する。なお、情報処理装置２は、仮想的なストレージシステムとしての機能以外の機能を有していても構わない。換言すると、情報処理装置と仮想化手段を有する、他の情報処理システム内に、その一部として、当該の仮想的なストレージシステムとしての機能を与えても構わない。つまり、本実施形態で説明する情報処理装置２において実現される仮想的案ストレージシステムは、他のシステムと共存可能である。
【００１９】
図１を参照すると、情報処理装置２は仮想化手段２１を有している。例えば、情報処理装置２は、図示しないＣＰＵ（Central Processing Unit）などの演算装置と記憶装置とを有しており、記憶装置が有するプログラムを演算装置が実行することで、仮想化手段２１を実現する。
【００２０】
仮想化手段２１は、情報処理装置２上で複数の仮想マシンを起動する。具体的には、仮想化手段２１は、仮想マシンである複数の仮想ストレージノード２１１と、仮想マシンである仮想管理ノード２１２と、を起動する。このように、仮想化手段２１は、仮想ストレージノード２１１と仮想管理ノード２１２とを起動することで、情報処理装置２上に仮想的なストレージシステムを構築する。
【００２１】
また、仮想化手段２１は、起動中の仮想マシンの数を増減する処理である構成変更処理を実行可能なよう構成されている。例えば、仮想化手段２１は、仮想マシンである仮想ストレージノード２１１の数を減らすスケールインを行うことが出来る。また、仮想化手段２１は、仮想マシンである仮想ストレージノード２１１の数を増やすスケールアウトを行うことが出来る。このように、仮想化手段２１は、仮想ストレージノード２１１の数を増減するスケールイン・スケールアウトを実行可能なよう構成されている。仮想化手段２１は、仮想管理ノード２１２の数を増減するスケールイン・スケールアウトを実行可能なよう構成されても構わない。
【００２２】
また、仮想化手段２１は、起動中の仮想ストレージノード２１１をグループＡとグループＢの２つのグループに分けて管理することが出来る。図２は、起動中の仮想ストレージノード２１１の数が４つである場合のグループ分けの一例を示している。図２を参照すると、起動中の仮想ストレージノード２１１の数が４つである場合、例えば、３つの仮想ストレージノード２１１ＡからなるグループＡと、１つの仮想ストレージノード２１１ＢからなるグループＢと、の２つのグループに分けることが出来る。
【００２３】
上記グループ分けは、例えば、スケールインの対象になるか否かに応じて行われる。例えば、図２で示すグループＡに属する仮想ストレージノード２１１Ａは、スケールインの対象とならないノードである。一方、図２で示すグループＢに属する仮想ストレージノード２２１Ｂは、スケールインの対象となるノードである。このようにグループ分けした場合、仮想化手段２１は、スケールイン処理を行う際に、グループＢである仮想ストレージノード２２１Ｂの中から削減する仮想ストレージノード２１１を選択することになる。
【００２４】
なお、仮想化手段２１によるグループ分けは、例えば、スケールイン・スケールアウトを行うごとに更新することが出来る。仮想化手段２１によるグループ分けは、その他任意のタイミングで必要に応じて変更可能なよう構成しても構わない。また、図２では、あくまでグループ分けの一例を示している。仮想化手段２１は、例えば、起動中の４つの仮想ストレージノード２１１を、２つの仮想ストレージノード２１１Ａと２つ仮想ストレージノード２１１Ｂとに分けるなど、図２で例示した以外のグループ分けを行っても構わない。
【００２５】
仮想ストレージノード２１１は、クライアント装置３から受信したファイルの書き込み要求や読み出し要求などの各種処理要求に応じて、データの格納処理やデータの読み出し処理などを行う。仮想ストレージノード２１１は、例えば、１台の仮想ストレージノード２１１につき１つの物理ディスクを専有している（例示した以外の構成でも構わない）。上述したように、起動中の仮想ストレージノード２１１は、グループＡとグループＢのいずれかに属することが出来る。
【００２６】
図３は、仮想ストレージノード２１１の構成の一例を示している。換言すると、仮想化手段２１は、図３で示すような各種機能を有するよう仮想ストレージノード２１１を起動する。図３を参照すると、仮想ストレージノード２１１は、ファイルシステム部２１１１と、重複排除部２１１２（重複排除手段）と、データ格納部２１１３と、記憶装置２１１４と、を有している。
【００２７】
ファイルシステム部２１１１は、クライアント装置から送信されたファイルの書き込み要求やファイルの読み出し要求などの各種処理要求を受信する。すると、ファイルシステム部２１１１は、受信した各種処理要求に応じた処理を実行する。
【００２８】
例えば、クライアント装置３からファイルの書き込み要求を受信した場合、ファイルシステム部２１１１は、書き込み対象のファイルを固定長または可変長のブロックデータへと分割する。そして、分割したブロックデータを重複排除部２１１２へと送信する。また、ファイルシステム部２１１１は、ブロックデータの格納先を示す情報を重複排除部２１１２などから取得する。そして、ファイルシステム部２１１１は、記憶対象データのファイル名などの識別情報と当該ファイルを構成する各ブロックデータの格納先を示す情報とを関連付けて管理する。
【００２９】
また、ファイルシステム部２１１１は、クライアント装置３からファイルの読み出し要求を受信した場合、ファイル名などの識別情報と格納先を示す情報とを関連付けた情報を参照する。そして、ファイルシステム部２１１１は、読み出し対象のファイルを構成する各ブロックデータを最新の格納先から読み出し、ファイルを復元する。その後、ファイルシステム部２１１１は、復元したファイルをクライアント装置３へと送信する。
【００３０】
重複排除部２１１２は、ファイルシステム部２１１１からブロックデータを受信する。すると、重複排除部２１１２は、受信したブロックデータが既に情報処理装置２に格納されているか否か確認する重複判定処理を実行する。そして、重複排除部２１１２は、重複の有無に応じた処理を行う。
【００３１】
例えば、重複排除部２１１２は、ブロックデータのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値を算出する。具体的には、例えば、重複排除部２１１２は、予め設定されたハッシュ関数を用いて、ブロックデータのデータ内容からハッシュ値を算出する。
【００３２】
続いて、重複排除部２１１２は、算出したハッシュ値を用いて、ブロックデータが既に情報処理装置２に格納されているか否か調べる。例えば、重複排除部２１１２は、既に格納しているブロックデータに基づいて算出されるハッシュ値と、当該ブロックデータの格納位置を示す情報とを対応付けた情報を有している。重複排除部２１１２は、当該情報を参照することで、同一内容のブロックデータが既に情報処理装置２に格納されているか否か判断する。つまり、重複排除部２１１２は、ブロックデータのデータ内容から算出したハッシュ値が上記対応付けた情報に含まれるか否か確認する。そして、算出したハッシュ値が上記対応付けた情報に含まれる場合、重複排除部２１１２は、同一内容のブロックデータが既に情報処理装置２に格納されていると判断する。
【００３３】
同一内容のブロックデータが既に情報処理装置２に格納されていると判断した場合、重複排除部２１１２は、上記対応付けた情報を参照して、ハッシュ値と対応付けられている格納位置を示す情報を取得する。そして、重複排除部２１１２は、取得した格納位置を示す情報をファイルシステム部２１１１に返却する。このように、重複排除部２１１２は、既に同一内容のブロックデータが格納されている場合、同一内容のブロックデータを再度格納しない。
【００３４】
一方、同一内容のブロックデータが情報処理装置２に格納されていないと判断した場合、重複排除部２１１２は、格納先情報２１１５を参照する。そして、重複排除部２１１２は、格納先情報２１１５が示す仮想ストレージノード２１１のデータ格納部２１１３へとブロックデータを送信する。つまり、重複排除部２１１２は、格納先情報２１１５に基づいて特定される仮想ストレージノード２１１に対してブロックデータを記憶するよう指示する。
【００３５】
ここで、格納先情報２１１５について詳細に説明する。格納先情報２１１５は、ブロックデータに基づいて算出されるハッシュ値に応じたブロックデータの格納先（つまり、データの格納先）を示す情報である。格納先情報２１１５は、後述する仮想管理ノード２１２のデータ配置管理部２１２２により管理される。
【００３６】
具体的には、格納先情報２１１５は、第１のデータ配置と、第２のデータ配置と、のうちのいずれかのデータ配置を示している。
【００３７】
図４、図５は、第１のデータ配置の一例を説明するための図である。第１のデータ配置は、起動中の仮想ストレージノード２１１のうち、グループＡに属する仮想ストレージノード２１１Ａのみがブロックデータの書き込み対象となるデータ配置である。格納先情報２１１５が第１のデータ配置を示す場合、ブロックデータに基づいて算出されるハッシュ値は、グループＡに属する仮想ストレージノード２１１Ａのうちのいずれかに配分されることになる。つまり、重複排除部２１１２は、格納先情報２１１５が第１のデータ配置を示している場合、例えば図４で示すように、グループＡに属する仮想ストレージノード２１１Ａのうちのいずれかにブロックデータを送信する。換言すると、重複排除部２１１２は、起動中の仮想ストレージノード２１１のうちの予め定められた一部の仮想ストレージノード２１１である仮想ストレージノード２１１Ａのみが書き込み対象となる書き込み処理を実行する。グループＡ内のどの仮想ストレージノード２１１Ａにブロックデータを送信するかは、ブロックデータのハッシュ値に基づいて特定する。
【００３８】
なお、グループＢに属する仮想ストレージノード２１１Ｂのファイルシステム部２１１１が書き込み要求を受信することもある。このような場合でも、格納先情報２１１５が第１のデータ配置を示している場合、仮想ストレージノード２１１Ｂの重複排除部２１１２は、グループＡに属する仮想ストレージノード２１１Ａが有するデータ格納部２１１３のいずれかにブロックデータを送信する（図５参照）。
【００３９】
また、図６、図７は、第２のデータ配置の一例を説明するための図である。第２のデータ配置は、起動中の仮想ストレージノード２１１の全てがブロックデータの書き込み対象となるデータ配置である。つまり、第２のデータ配置の場合、グループＡに属する仮想ストレージノード２１１Ａと、グループＢに属する仮想ストレージノード２１１Ｂとの全てが、ブロックデータの書き込み対象となる。格納先情報２１１５が第２のデータ配置を示す場合、ブロックデータに基づいて算出されるハッシュ値は、起動中の仮想ストレージノード２１１全体のうちのいずれかに配分されることになる。つまり、重複排除部２１１２は、格納先情報２１１５が第２のデータ配置を示している場合、例えば図６で示すように、起動中の全ての仮想ストレージノード２１１のうちのいずれかにブロックデータを送信する。換言すると、重複排除部２１１２は、起動中の仮想ストレージノード２１１の全てが書き込み対象となる書き込み処理を実行する。全体の内のどの仮想ストレージノード２１１にブロックデータを送信するかは、ブロックデータのハッシュ値に基づいて特定する。
【００４０】
なお、第１のデータ配置の場合と同様に、グループＢに属する仮想ストレージノード２１１Ｂのファイルシステム部２１１１が書き込み要求を受信することもある。このような場合において格納先情報２１１５が第２のデータ配置を示している場合、仮想ストレージノード２１１Ｂの重複排除部２１１２は、全ての仮想ストレージノード２１１が有するデータ格納部２１１３のいずれかにブロックデータを送信する（図７参照）。
【００４１】
以上のように、重複排除部２１１２は、格納先情報２１１５が示すデータ格納部２１１３へとブロックデータを送信する。重複排除部２１１２によるブロックデータの送信先候補は、格納先情報２１１５が第１のデータ配置を示しているか第２のデータ配置を示しているかに応じて変化する。
【００４２】
なお、重複排除部２１１２は、ブロックデータが既に情報処理装置２に格納されているか否か調べた後、格納対象のブロックデータを圧縮して更に複数のフラグメントデータに分割するよう構成することが出来る。また、重複排除部２１１２は、分割したフラグメントデータに冗長データを追加することが出来る。重複排除部２１１２は、分割したフラグメントデータやフラグメントデータに冗長データを追加したデータを、格納先情報２１１５に基づいて各仮想ストレージノード２１１のデータ格納部２１１３へと送信するよう構成しても構わない。このように、重複排除部２１１２は、必要に応じて冗長度を付加する処理などを行うよう構成しても構わない。つまり、重複排除部２１１２は、ブロックデータではなくブロックデータを分割したフラグメントデータや冗長データを格納先情報２１１５に基づいて各仮想ストレージノード２１１へと送信するよう構成しても構わない。換言すると、重複排除部２１１２は、ブロックデータを分割した状態で複数の仮想ストレージノード２１１へと送信するよう構成することが出来る。また、当該のフラグメントデータや冗長データをそれぞれ異なる仮想ストレージノード２１１のデータ格納部２１１３へと送信しても構わない。つまり、重複排除部２１１２は、フラグメントデータ毎に格納先を変えるよう構成することが出来る。その際、例えば、ブロックのハッシュ値と、フラグメントや冗長データのブロック内での識別番号と、を統合した情報をもとに格納先となる仮想ストレージノード２１１を選択し、格納先情報２１１５とする。換言すると、格納先情報２１１５は、ブロックデータのハッシュ値やブロック内での識別番号などから構成される情報に応じたフラグメントデータや冗長データの格納先を示す情報であっても構わない。
【００４３】
データ格納部２１１３は、重複排除部２１１２からブロックデータを受信する。すると、データ格納部２１１３は、当該データ格納部２１１３を有する仮想ストレージノード２１１の記憶装置２１１４にブロックデータを格納する。そして、データ格納部２１１３は、ブロックデータの格納先を示す情報をファイルシステム部２１１１へと返却する。
【００４４】
また、データ格納部２１１３は、後述する仮想管理ノード２１２のデータ配置管理部２１２２からの指示に応じて、データの再配置を行う。データの再配置処理の詳細は後述する。
【００４５】
記憶装置２１１４は、複数の物理ディスク、又は、１つの物理ディスクの一部と対応する。記憶装置２１１４には、ブロックデータが格納される。
【００４６】
以上が、仮想ストレージノード２１１の構成の一例である。続いて、仮想管理ノード２１２の構成の一例について説明する。
【００４７】
仮想管理ノード２１２は、情報処理装置２の負荷状況を監視して、負荷状況の監視結果に基づく処理を実行する。例えば、仮想管理ノード２１２は、負荷状況の監視結果に基づいて、仮想ストレージノード２１１の格納先情報２１１５を更新する。また、仮想管理ノード２１２は、負荷状況の監視結果に基づいて、グループＢに属する仮想ストレージノード２１１の記憶装置２１１４に格納されたブロックデータをグループＡに属する仮想ストレージノード２１１へと移行させるデータの再配置処理を指示する。
【００４８】
図８は、仮想管理ノード２１２の構成の一例を示している。換言すると、仮想化手段２１は、図８で示すような各種機能を有するよう仮想管理ノード２１２を起動する。図８を参照すると、仮想管理ノード２１２は、負荷監視部２１２１（負荷監視手段）と、データ配置管理部２１２２（データ配置管理手段）と、を有している。
【００４９】
負荷監視部２１２１は、情報処理装置２の負荷状況を監視する。例えば、負荷監視部２１２１は、情報処理装置２の負荷状況として、データの読み書きに伴い情報処理装置２にかかる負荷の状況を監視する。具体的には、例えば、負荷監視部２１２１は、情報処理装置２が有する物理ディスクのビジー率（例えば、起動中の仮想ストレージノード２１１と対応する物理ディスクのビジー率）を情報処理装置２の負荷状況として監視する。そして、負荷監視部２１２１は、物理ディスクのビジー率などの監視結果を示す情報（監視結果が示す値）をデータ配置管理部２１２２に送信する。
【００５０】
なお、負荷監視部２１２１は、物理ディスクのビジー率以外を情報処理装置２の負荷状況として監視しても構わない。例えば、負荷監視部２１２１は、重複排除部２１１２による重複排除の結果を示す情報を、負荷状況を示す情報として用いることが出来る。具体的には、例えば、負荷監視部２１２１は、単位時間あたりの重複率など重複の頻度や割合示す情報を負荷状況として取得するよう構成することが出来る。また、負荷監視部２１２１は、例えば、単位時間当たりのディスクＩ／Ｏ（input/output）数などを負荷状況として監視しても構わない。負荷監視部２１２１は、上記例示したものの一つ、又は、その組み合わせを負荷状況として監視することが出来る。負荷監視部２１２１は、上記例示したもの以外を情報処理装置２の負荷状況として監視しても構わない。
【００５１】
データ配置管理部２１２２は、負荷監視部２１２１による監視結果に基づいて、所定の処理を行う。例えば、データ配置管理部２１２２は、負荷監視部２１２１による監視結果に基づいて、仮想ストレージノード２１１が有する格納先情報２１１５の更新処理を行う。また、例えば、データ配置管理部２１２２は、負荷監視部２１２１による監視結果に基づいて、グループＢに属する仮想ストレージノード２１１Ｂが記憶するブロックデータをグループＡに属する仮想ストレージノード２１１Ａへと移行させるデータの再配置処理を実行するよう指示する。
【００５２】
例えば、データ配置管理部２１２２は、負荷監視部２１２１による監視結果と、予め定められた第１の閾値Ａや第２の閾値Ｂを比較する。そして、データ配置管理部２１２２は、比較結果に基づいて、仮想ストレージノード２１１が有する格納先情報２１１５の更新処理を行う。なお、第１の閾値Ａや第２の閾値Ｂは、例えば、図示しない記憶装置などに予め格納された値である。
【００５３】
例えば、データ配置管理部２１２２は、格納先情報２１１５が第１の配置を示している場合、負荷監視部２１２１による監視結果である物理ディスクのビジー率が第１の閾値Ａ（第１の基準）以上であるか否か確認する。そして、物理ディスクのビジー率が第１の閾値Ａ以上である場合、データ配置管理部２１２２は、第２の配置を示すよう格納先情報２１１５を更新する。換言すると、データ配置管理部２１２２は、格納先情報２１１５が第１の配置を示している際に物理ディスクのビジー率が予め定められた第１の基準である第１の閾値Ａ以上となった場合、第２の配置を示すよう格納先情報２１１５を更新する。このような構成により、仮想ストレージノード２１１の重複排除部２１１２は、物理ディスクのビジー率が予め定められた第１の基準以上である場合、起動中の全ての仮想ストレージノード２１１のうちのいずれかにブロックデータを送信することになる（図６、図７参照）。
【００５４】
また、例えば、データ配置管理部２１２２は、格納先情報２１１５が第２の配置を示している場合、負荷監視部２１２１による監視結果である物理ディスクのビジー率が第２の閾値Ｂ（第２の基準）以下であるか否か確認する。そして、物理ディスクのビジー率が第２の閾値Ｂ以下である場合、データ配置管理部２１２２は、第１の配置を示すよう格納先情報２１１５を更新する。換言すると、データ配置管理部２１２２は、格納先情報２１１５が第２の配置を示している際に物理ディスクのビジー率が予め定められた第２の基準である第２の閾値Ｂ以下となった場合、第１の配置を示すよう格納先情報２１１５を更新する。このような構成により、仮想ストレージノード２１１の重複排除部２１１２は、物理ディスクのビジー率が予め定められた第２の基準以下である場合、グループＡに属する仮想ストレージノード２１１Ａのうちのいずれかにブロックデータを送信することになる（図４、図５参照）。
【００５５】
また、例えば、データ配置管理部２１２２は、負荷監視部２１２１による監視結果と、予め定められた第３の閾値Ｃとを比較する。そして、データ配置管理部２１２２は、比較結果に基づいて、データの再配置処理を開始する。なお、第３の閾値Ｃは、第１の閾値Ａや第２の閾値Ｂと同様に、例えば、図示しない記憶装置などに予め格納されている。
【００５６】
例えば、データ配置管理部２１２２は、負荷監視部２１２１による監視結果であるディスクのビジー率が第３の閾値Ｃ（第３の基準）を以下であるか否か確認する。そして、ディスクのビジー率が第３の閾値Ｃを以下である場合、データ配置管理部２１２２は、データの再配置処理を開始する。例えば、データ配置管理部２１２２は、記憶装置２１１４に格納されているブロックデータを読み出すよう、グループＢに属する仮想ストレージノード２１１Ｂに対して指示する。そして、データ配置管理部２１２２は、仮想ストレージノード２１１Ｂが読み出したブロックデータを格納するようグループＡに属する仮想ストレージノード２１１Ａに対して指示する。これにより、指示を受けた仮想ストレージノード２１１Ａのデータ格納部２１１３は、自身が有する記憶装置２１１４にブロックデータを格納する。このように、データ配置管理部２１２２は、負荷状況の監視結果に基づいて、仮想ストレージノード２１１Ｂが有する記憶装置２１１４に格納されたブロックデータを各仮想ストレージノード２１１Ａが有する記憶装置２１１４へと移行させる（図９参照）。また、データの再配置を行った場合、データ配置管理部２１２２などは、ファイルシステム部２１１１が管理するデータの格納位置を示す情報を更新する。
【００５７】
なお、データ配置管理部２１２２は、仮想ストレージノード２１１Ｂの記憶装置２１１４から読み出したブロックデータの格納先を、ブロックデータのハッシュ値に基づいて判断する。具体的には、例えば、データ配置管理部２１２２は、仮想ストレージノード２１１Ｂの記憶装置２１１４から読み出したブロックデータの格納先として、格納先情報２１１５が第１の配置を示していた場合に格納することになる仮想ストレージノード２１１Ａを指定する。つまり、第１の配置に基づいて仮想ストレージノード２１１Ａに直接格納された場合と、第２の配置に基づく仮想ストレージノード２１１Ｂを経由して仮想ストレージノード２１１Ａに格納されるとで、同一の仮想ストレージノード２１１Ａにブロックデータを格納するよう、データ配置管理部２１２２はデータの再配置処理を行う。
【００５８】
以上のように、データ配置管理部２１２２は、負荷監視部２１２１による監視結果と予め定められた基準とに基づいて、格納先情報２１１５の更新処理を行ったり、データの再配置処理を行ったりする。
【００５９】
なお、本実施形態においては、第１の閾値Ａと第２の閾値Ｂと第３の閾値Ｃの具体的な値は特に限定しない。第１の閾値Ａは、例えば、９０とすることができる。また、第２の閾値Ｂは、例えば、グループＡに属する仮想ストレージノード数をＮＡ、グループＢに属するストレージノード数をＮＢとしたときに、８０×ＮＡ／（ＮＡ＋ＮＢ）とすることができる。また、第３の閾値Ｃは、例えば、５０とすることができる。第１の閾値Ａ、第２の閾値Ｂ、第３の閾値Ｃは、複数が同じ値であるなど、上記例示したもの以外であっても構わない。
【００６０】
また、本実施形態においては、情報処理装置２は、複数の物理ディスクを有している。そのため、負荷監視部２１２１は、情報処理装置２が有する複数の物理ディスクのそれぞれを監視することになる。つまり、負荷監視部２１２１による監視結果が示す値（例えば、物理ディスクのビジー率）も複数あることになる。複数の監視結果が示す値と予め定められた基準との比較は、様々な方法を用いて行うことが出来る。
【００６１】
例えば、データ配置管理部２１２２は、監視結果が示す値のいずれかが第１の閾値Ａ以上である場合に、第２の配置を示すよう格納先情報２１１５を更新することが出来る。又は、例えば、データ配置管理部２１２２は、全ての監視結果が示す値が第１の閾値Ａ以上である場合に、第２の配置を示すよう格納先情報２１１５を更新することが出来る。また、例えば、データ配置管理部２１２２は、全ての監視結果が示す値が第２の閾値Ｂ以下である場合に、第１の配置を示すよう格納先情報２１１５を更新することが出来る。又は、例えば、データ配置管理部２１２２は、監視結果が示す値のいずれかが第２の閾値Ｂ以下である場合に、第１の配置を示すよう格納先情報２１１５を更新することが出来る。このように、データ配置管理部２１２２は、全ての監視結果が示す値、又は、監視結果が示す値の何れかに基づいて格納先情報２１１５の更新処理を行うか否か判断するよう構成することが出来る。なお、データ配置管理部２１２２は、例えば、監視結果の値から算出される値（例えば、平均値など）と第１の閾値Ａや第２の閾値Ｂを比較するよう構成しても構わない。
【００６２】
同様に、例えば、データ配置管理部２１２２は、全ての監視結果が示す値が第３の閾値Ｃ以下であるか否か確認するよう構成することが出来るし、監視結果が示す値のいずれかが第３の閾値以下であるか否か確認するよう構成することも出来る。また、データ配置管理部２１２２は、例えば、監視結果の値から算出される値（例えば、平均値など）と第３の閾値Ｃとを比較するよう構成しても構わない。データ配置管理部２１２２は、例えば、仮想ストレージノード２１１Ｂに対応する物理ディスクの監視結果が示す値（全て、又は、いずれか）が第３の閾値Ｃ以下である場合にデータの読み出しを行うよう指示しても構わないし、書き込み対象の仮想ストレージノード２１１Ａに対応する物理ディスクの監視結果が示す値（全て、又は、いずれか）が第３の閾値Ｃ以下である場合にデータの書き込み処理を行うよう指示していても構わない。なお、読み出しを指示する際の閾値と書き込みを指示する際の閾値とは、同じ値であっても構わないし異なる値であっても構わない。
【００６３】
また、データ配置管理部２１２２は、負荷監視部２１２１による監視結果の値と第３の閾値Ｃとの比較を常時行うよう構成しても構わないし、必要に応じて行うよう構成しても構わない。例えば、データ配置管理部２１２２は、グループＢに属する仮想ストレージノード２１１Ｂがブロックデータを記憶している場合に、負荷監視部２１２１による監視結果の値と第３の閾値Ｃとの比較を行うよう構成することが出来る。
【００６４】
以上が、仮想管理ノード２１２の構成の一例である。
【００６５】
以上、情報処理装置２において行われる処理をまとめると、図１０で示すようになる。
【００６６】
図１０を参照すると、一般に、重複排除率の高い書き込みが行われている場合、物理ディスクに対する書き込み処理の頻度は低くなる。その結果、物理ディスクの負荷は低くなる。このような場合、データ配置管理部２１２２は、データの再配置処理を開始する。つまり、仮想ストレージノード２１１Ｂがブロックデータの読み出し処理を行い、仮想ストレージノード２１１Ａがブロックデータの書き込み処理を行うことになる。また、重複排除率の低い書き込みが行われている場合、実際に物理ディスクへの書き込みが行われる可能性が高くなる。このような場合には、物理ディスクの負荷状況に応じた書き込み処理が行われる。つまり、物理ディスクが高負荷である場合、データ配置管理部２１２２により格納先情報２１１５が第２のデータ配置を示すよう更新される。その結果、仮想ストレージノード２１１Ａと仮想ストレージノード２１１Ｂとの両方が書き込み対象となる書き込み処理が行われることになる。一方、物理ディスクが低負荷である場合、データ配置管理部２１２２により格納先情報２１１５が第１のデータ配置を示すよう構成される。その結果、仮想ストレージノード２１１Ａのみが書き込み対象となる書き込み処理が行われることになる。
【００６７】
また、読み出し処理を行う際には、最新の格納先が読み出し対象となる。つまり、仮想ストレージノード２１１Ａと仮想ストレージノード２１１Ｂとが読み出し対象となる。換言すると、読み出し処理においては、ディスクの負荷状況に応じた処理の差異はない。また、情報処理装置２に対して書き込み処理も読み出し処理も要求していない場合、物理ディスクの負荷は低くなる。そのため、データ配置管理部２１２２の指示により、データの再配置処理が行われることになる。
【００６８】
クライアント装置３は、情報処理装置２に対して各種処理要求を送信する情報処理装置である。クライアント装置３が送信する処理要求としては、ファイルの読み出しを要求する読み出し要求や、ファイルの書き込みを要求する書き込み要求などがある。
【００６９】
クライアント装置３は、一般的な構成を有していて構わない。そのため、本実施形態においては、クライアント装置３の具体的な構成は特に限定しない。
【００７０】
情報処理システム１は、例えば、上述したような構成を有する情報処理装置２と、クライアント装置３と、を有している。
【００７１】
なお、クライアント装置３から送信された各種処理要求の宛先を確認するための方法は、各種既知の方法を採用して構わない。例えば、クライアント装置３が処理要求を送信する際にＩＰアドレスを指定するなどの方法により、送信先の仮想ストレージノード２１１を指定するよう構成しても構わない。または、例えば、情報処理装置２が図示しない負荷分散器などを有し、負荷分散器によりクライアント装置３から送信された処理要求を起動中の各仮想ストレージノード２１１へと振り分けるよう構成しても構わない。なお、負荷分散器としての機能は仮想的に実現されても構わないし、仮想化手段２１の外部に実現されても構わない。
【００７２】
続いて、情報処理装置２による処理の流れの一例について、図１１から図１３までを参照して説明する。
【００７３】
図１１は、データ配置管理部２１２２が行う処理の一例を示している。図１１を参照すると、格納先情報２１１５が第１のデータ配置を示している場合、仮想管理ノード２１２のデータ配置管理部２１２２は、負荷監視部２１２１による負荷状況の監視結果が示す値と、予め定められた第１の閾値Ａとを比較する（ステップＳ１０１）。
【００７４】
負荷状況の監視結果が示す値が第１の閾値Ａ以上である場合（ステップＳ１０１、Ｙｅｓ）、データ配置管理部２１２２は、第２の配置を示すよう格納先情報２１１５を更新する（ステップＳ１０２）。一方、負荷状況の監視結果が示す値が第１の閾値Ａよりも小さい場合（ステップＳ１０１、Ｎｏ）、データ配置管理部２１２２は、監視結果が示す値が第１の閾値Ａ以上となるまでステップＳ１０２の処理を行わない。
【００７５】
格納先情報２１１５が第２のデータ配置を示している場合、仮想管理ノード２１２のデータ配置管理部２１２２は、負荷監視部２１２１による負荷状況の監視結果が示す値と、予め定められた第２の閾値Ｂとを比較する（ステップＳ１０３）。
【００７６】
負荷状況の監視結果が示す値が第２の閾値Ｂ以下である場合（ステップＳ１０３、Ｙｅｓ）、データ配置管理部２１２２は、第１の配置を示すよう格納先情報２１１５を更新する（ステップＳ１０４）。その後、データ配置管理部２１２２は、再度ステップＳ１０１の処理を開始する。一方、負荷状況の監視結果が示す値が第２の閾値Ｂよりも大きい場合（ステップＳ１０３、Ｎｏ）、データ配置管理部２１２２は、監視結果が示す値が第２の閾値Ｂ以下となるまでステップＳ１０４の処理を行わない。
【００７７】
以上のように、データ配置管理部２１２２は、負荷状況の監視結果が示す値と、第１の閾値Ａと第２の閾値Ｂとに基づいて、格納先情報２１１５の更新処理を行う。
【００７８】
図１２は、データ配置管理部２１２２が行う他の処理の一例を示している。図１２を参照すると、仮想ストレージノード２１１Ｂがブロックデータを記憶している場合（ステップＳ２０１、Ｙｅｓ）、データ配置管理部２１２２は、負荷状況の監視結果が示す値と、予め定められた第３の閾値Ｃとを比較する（ステップＳ２０２）。
【００７９】
負荷状況の監視結果が示す値が第３の閾値Ｃよりも大きい場合（ステップ２０２、Ｎｏ）、データ配置管理部２１２２は、監視結果が示す値が第３の閾値Ｃ以下となるまで以降の処理を行わない。一方、負荷状況の監視結果が示す値が第３の閾値Ｃ以下である場合（ステップＳ２０２、Ｙｅｓ）、データ配置管理部２１２２は、データの再配置処理を開始する（ステップＳ２０３）。つまり、データ配置管理部２１２２は、仮想ストレージノード２１１Ｂに格納されているブロックデータを仮想ストレージノード２１１Ａへと移行させる。その後、仮想ストレージノード２１１Ｂがまだブロックデータを記憶している場合（ステップＳ２０１、Ｙｅｓ）、再度ステップＳ２０２の処理を行う。
【００８０】
仮想ストレージノード２１１Ｂがブロックデータを記憶していない場合（ステップＳ２０１、Ｎｏ）、データ配置管理部２１２２は、処理を終了する。
【００８１】
以上のように、データ配置管理部２１２２は、負荷状況の監視結果が示す値と、第３の閾値Ｃとに基づいて、データの再配置処理を開始する。なお、データ配置管理部２１２２は、ステップＳ２０１の処理を省略しても構わない。
【００８２】
図１３は、クライアント装置３からファイルの書き込み要求を受信した際の情報処理装置２の処理の一例を示している。
【００８３】
図１３を参照すると、クライアント装置３からファイルの書き込み要求を受信すると、ファイルシステム部２１１１は、書き込み対象のファイルを固定長または可変長のブロックデータへと分割する（ステップＳ３０１）。
【００８４】
重複排除部２１１２は、ファイルシステム部２１１１が分割したブロックデータが既に情報処理装置２に格納されているか否か確認する重複判定処理を実行する（ステップＳ３０２）。同一内容のブロックデータが既に情報処理装置２に格納されていると判断した場合（ステップＳ３０２、Ｙｅｓ）、重複排除部２１１２は、同一内容のブロックデータを再度格納しない（ステップＳ３０３）。一方、同一内容のブロックデータが情報処理装置２に格納されていないと判断した場合（ステップＳ３０２、Ｎｏ）、重複排除部２１１２は、格納先情報２１１５を参照する（ステップＳ３０４）。そして、重複排除部２１１２は、格納先情報２１１５に基づいて特定される仮想ストレージノード２１１に対してブロックデータを記憶するよう指示する。
【００８５】
格納先情報２１１５が第１の配置を示している場合（ステップＳ３０４、第１の配置）、情報処理装置２は、グループＡに属する仮想ストレージノード２１１Ａが書き込みの対象となる書き込み処理を行う（ステップＳ３０５）。つまり、重複排除部２１１２は、グループＡに属する仮想ストレージノード２１１Ａのうちのいずれかにブロックデータを送信する。そして、ブロックデータを受信したデータ格納部２１１３が記憶装置２１１４にブロックデータを格納する。一方、格納先情報２１１５が第２の配置を示している場合（ステップＳ３０４、第２の配置）、情報処理装置２は、仮想ストレージノード２１１全体が書き込みの対象となる書き込み処理を行う（ステップＳ３０６）。つまり、重複排除部２１１２は、仮想ストレージノード２１１全体のうちのいずれかにブロックデータを送信する。そして、ブロックデータを受信したデータ格納部２１１３が記憶装置２１１４にブロックデータを格納する。
【００８６】
また、データ配置管理部２１２２は、負荷監視部２１２１による負荷状況の監視結果が示す値と、予め定められた第３の閾値Ｃを比較する（ステップＳ３０７）。
【００８７】
負荷状況の監視結果が示す値が第３の閾値Ｃを超えていると判断される場合、データ配置管理部２１２２は、再度、負荷状況の監視結果が示す値と、第３の閾値Ｃと、を比較する。つまり、負荷が下がっていないと判断される場合（ステップＳ３０７、Ｎｏ）、データ配置管理部２１２２は、負荷が下がるまで待機する。
【００８８】
一方、負荷状況の監視結果が示す値が第３の閾値Ｃ以下であると判断される場合、データ配置管理部２１２２は、データの再配置処理を指示する。つまり、負荷が下がったと判断される場合（ステップＳ３０７、Ｙｅｓ）、データ配置管理部２１２２は、仮想ストレージノード２１１Ｂに格納されているブロックデータを仮想ストレージノード２１１Ａへと移行させる（ステップＳ３０８）。
【００８９】
以上のように、ファイルの書き込み要求を受信した場合、情報処理装置２は、格納先情報２１１５が示す対象が書き込みの対象となる書き込み処理を実行する。なお、格納先情報２１１５は、図１１を参照して説明した処理により更新されることになる。
【００９０】
このように、情報処理装置２上では、仮想ストレージノード２１１と仮想管理ノード２１２とが起動する。また、仮想ストレージノード２１１の重複排除部２１１２は格納先情報２１１５を有しており、格納先情報２１１５は、物理ディスクの負荷状況に応じて仮想管理ノード２１２により更新される。このような構成により、仮想ストレージノード２１１は、物理ディスクの負荷状況に応じて、書き込み対象が異なる書き込み処理を行うことが出来る。例えば、仮想ストレージノード２１１は、物理ディスクの負荷状況が予め定められた基準以下である場合、グループＡに属する仮想ストレージノード２１１Ａのみを対象とした書き込み処理を行うことが出来る。その結果、スケールインの対象となる仮想ストレージノード２１１Ｂにブロックデータが書き込まれる頻度を抑えることが可能となり、スケールインのためのデータ再配置が必要となるデータの量を抑えることが可能となる。これにより、仮想的なストレージシステムにおいて、スケールインなどの構成変更を行う際にかかる時間を短縮することが可能となる。
【００９１】
また、本実施形態における情報処理装置２では、物理ディスクの負荷状況に応じて、データの再配置が行われる。このように、ディスクの負荷が低い状態の間にスケールインのためのデータ再配置を事前に進めることで、スケールインなどの構成変更を行う際にかかる時間をさらに短縮することが可能となる。
【００９２】
ここで、重複排除を行うストレージシステムでは、データの特性によって負荷がかかるリソースが異なる。例えば、重複排除が効いているとき（既に格納したデータが書き込まれているとき）は、ＣＰＵなどの負荷が上がる。逆に、重複排除が効かないとき（新規のデータが書き込まれるとき）はディスクの負荷が上がる。本実施形態で説明した情報処理装置２によると、重複排除が効いているとき（つまり、ディスクの負荷が下がるとき）に、データの再配置を行う。つまり、情報処理装置２によると、重複排除が効いているときに生じる空きリソースを有効的に活用することが可能となることになる。
【００９３】
なお、仮想化手段２１は、仮想ストレージノード２１１を常に２つのグループに分けるよう構成しても構わないし、必要に応じて仮想ストレージノード２１１を２つのグループに分けるよう構成しても構わない。仮想化手段２１は、例えば、ディスクの負荷が非常に高くなると想定される期間（スケールインを行うことがないと想定される期間）などにおいて、グループ分けを行わないよう構成しても構わない。
【００９４】
また、仮想化手段２１は、例えば、図１２で示すように、同一グループ内において優先度に差を設けるなど、３つ以上の複数グループを形成するよう構成しても構わない。図１２では、グループＢに属する仮想ストレージノード２１１Ｂを、優先度１と優先度２とでさらに分けている。又は、例えば、仮想化手段２１は、最小構成・中間構成・最大構成の３種類のデータ配置からデータ格納先を選ぶよう構成しても構わない。このように構成した場合、例えば、最小構成に対応したデータ配置への書き込みで十分な性能が出る場合には、最小構成で書き込み、最小構成ではディスクへの負荷が上がり性能が出ない場合に、中間構成で書き込む。また、中間構成でも性能が足りない場合に、最大構成で書き込む。このように、段階的な書き込みの制御を行うことになる。なお、優先度を設けたり、複数段階のデータ構成を有したりした場合、データの再配置を行う際にも優先度などを考慮するよう構成することが出来る。例えば、データの再配置を行う際、優先度のより高い仮想ストレージノード２１１や最大構成で追加される仮想ストレージノード２１１から優先してデータの再配置を行うよう構成することが出来る。
【００９５】
また、本実施形態においては、情報処理システム１が１台の情報処理装置２を有する場合について例示した。しかしながら、情報処理システム１は、複数台の情報処理装置２を有しても構わない。また、仮想化手段２１上で起動する仮想ストレージノード２１１や仮想管理ノード２１２の数も、図２などで示す場合に限定されない。
【００９６】
［第２の実施形態］
次に、図１５を参照して、本発明の第２の実施形態について説明する。第２の実施形態では、仮想的なストレージシステムを有する情報処理装置４（ファイル記憶装置）の構成の概要について説明する。
【００９７】
図１５を参照すると、情報処理装置４は、仮想化手段４１を有している。例えば、情報処理装置４は、図示しないＣＰＵなどの演算装置と記憶装置とを有しており、記憶装置が有するプログラムを演算装置が実行することで、仮想化手段４１を実現する。
【００９８】
仮想化手段４１は、物理ディスクを共有する仮想マシンである仮想ストレージノード４１１を複数起動する。仮想ストレージノード４１１は、データの読み書きを行う際にかかる負荷状況に応じて、起動中の仮想ストレージノード４１１の全てが書き込み対象となる書き込み処理か、起動中の仮想ストレージノード４１１のうちの予め定められた一部の仮想ストレージノード４１１のみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する。このように、仮想ストレージノード４１１は、負荷状況に応じて、書き込み対象となる仮想ストレージノード４１１が異なる書き込みを行う。
【００９９】
以上のように、本実施形態における情報処理装置４は、複数の仮想ストレージノード４１１を起動する仮想化手段４１を有している。また、仮想ストレージノード４１１は、データの読み書きを行う際にかかる負荷状況に応じて、起動中の仮想ストレージノード４１１の全てが書き込み対象となる書き込み処理か、起動中の仮想ストレージノード４１１のうちの予め定められた一部の仮想ストレージノード４１１のみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行するよう構成されている。このような構成により、情報処理装置４は、データの読み書きを行う際にかかる負荷状況に応じて、書き込み対象が異なる書き込み処理を行うことが出来る。その結果、一部の仮想ストレージノードにブロックデータが書き込まれる頻度を抑えることが可能となり、スケールインのためのデータ再配置が必要となるデータの量を抑えることが可能となる。これにより、仮想的なストレージシステムにおいて、スケールインなどの構成変更を行う際にかかる時間を短縮することが可能となる。
【０１００】
また、上述した情報処理装置４は、当該情報処理装置４に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、情報処理装置に、物理ディスクを共有する仮想マシンである仮想ストレージノードを複数起動する仮想化手段を実現させ、仮想ストレージノードは、データの読み書きを行う際にかかる負荷状況に応じて、起動中の仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の仮想ストレージノードのうちの予め定められた一部の仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行するためのプログラムである。
【０１０１】
また、上述した情報処理装置４により実行される情報処理方法（ファイル記憶方法）は、情報処理装置が、物理ディスクを共有する仮想マシンである仮想ストレージノードを複数起動し、仮想ストレージノードは、データの読み書きを行う際にかかる負荷状況に応じて、起動中の仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の仮想ストレージノードのうちの予め定められた一部の仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する、という方法である。
【０１０２】
上述した構成を有する、プログラム、又は、情報処理方法、の発明であっても、上記情報処理装置４と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【０１０３】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【０１０４】
（付記１）
仮想マシンである仮想ストレージノードを複数起動する仮想化手段を有し、
前記仮想ストレージノードは、
データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
情報処理装置。
（付記２）
付記１に記載の情報処理装置であって、
前記仮想化手段は、データの読み書きを行う際にかかる負荷状況として、起動中の前記仮想ストレージノードと対応する物理ディスクの負荷状況を監視する負荷監視手段を有する仮想管理ノードを起動し、
前記仮想ストレージノードは、前記負荷監視手段が監視した前記物理ディスクの負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
情報処理装置。
（付記３）
付記２に記載の情報処理装置であって、
前記負荷監視手段は、前記物理ディスクの負荷状況として、前記物理ディスクのビジー率を監視する
情報処理装置。
（付記４）
付記２又は３に記載の情報処理装置であって、
前記仮想ストレージノードは、データの格納先を示す情報である格納先情報を有し、
前記仮想管理ノードは、前記負荷監視手段が監視した前記物理ディスクの負荷状況に応じて、前記格納先情報を更新するデータ配置管理手段を有し、
前記仮想ストレージノードは、前記データ配置管理手段により更新される前記格納先情報に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
情報処理装置。
（付記５）
付記４に記載の情報処理装置であって、
前記データ配置管理手段は、前記物理ディスクの負荷状況が示す値が予め定められた第１の基準以上である場合、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理を行うよう前記格納先情報を更新する
情報処理装置。
（付記６）
付記４又は５に記載の情報処理装置であって、
前記データ配置管理手段は、前記物理ディスクの負荷状況が示す値が予め定められた第２の基準以下である場合、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理を行うよう前記格納先情報を更新する
情報処理装置。
（付記７）
付記４から請求項６までのいずれかに記載の情報処理装置であって、
前記データ配置管理手段は、前記負荷監視手段が監視した前記物理ディスクの負荷状況に応じて、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる際に書き込み対象とならない前記仮想ストレージノードから、当該仮想ストレージノードに記憶されているデータを、書き込み対象となる一部の前記仮想ストレージノードへと移行させる
情報処理装置。
（付記８）
付記７に記載の情報処理装置であって、
前記データ配置管理手段は、前記負荷監視手段が監視した前記物理ディスクの負荷状況が示す値が予め定められた第３の基準以下の場合に、起動中の仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる際に書き込み対象とならない前記仮想ストレージノードから、当該仮想ストレージノードに記憶されているデータを、書き込み対象となる一部の前記仮想ストレージノードへと移行させる
情報処理装置。
（付記９）
付記７又は８に記載の情報処理装置であって、
前記仮想ストレージノードは、書き込み対象のファイルを複数のブロックデータへと分割して、分割したブロックデータを既に記憶しているか否か判定する重複判定処理を行うとともに、既に記憶しているブロックデータと重複しないブロックデータを記憶するよう前記仮想ストレージノードに指示する重複排除手段を有し、
前記データ配置管理手段は、前記重複排除手段が重複排除を行うことにより前記負荷監視手段が監視する前記物理ディスクの負荷状況に応じた値が予め定められた第３の基準以下となった場合に、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる際に書き込み対象とならない前記仮想ストレージノードから、当該仮想ストレージノードに記憶されているデータを、書き込み対象となる一部の前記仮想ストレージノードへと移行させる
情報処理装置。
（付記１０）
付記１から請求項９までのいずれかに記載の情報処理装置であって、
前記仮想ストレージノードは、書き込み対象のファイルを複数のブロックデータへと分割して、分割したブロックデータを既に記憶しているか否か判定する重複判定処理を行うとともに、既に記憶しているブロックデータと重複しないブロックデータを記憶するよう前記仮想ストレージノードに指示する重複排除手段を有し、
前記重複排除手段は、データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノード全体を対象とするブロックデータの格納指示か、起動中の前記仮想ストレージノードのうちの予め定められた一部の仮想ストレージノードを対象とするブロックデータの格納指示の、いずれかを指示する
情報処理装置。
（付記１１）
請求項１０に記載の情報処理装置であって、
前記重複排除手段は、データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノード全体のうちのブロックデータに基づいて算出されるハッシュ値に応じて特定される前記仮想ストレージノードに対してブロックデータを記憶するよう指示するか、起動中の前記仮想ストレージノードのうちの予め定められた一部の仮想ストレージノードであってブロックデータに基づいて算出されるハッシュ値に応じて特定される前記仮想ストレージノードに対してブロックデータを記憶するよう指示する
情報処理装置。
（付記１２）
付記１０又は１１に記載の情報処理装置であって、
前記重複排除手段は、ブロックデータをフラグメントデータに分割した後、分割したフラグメントデータを記憶するよう前記仮想ストレージノードに指示する
情報処理装置。
（付記１３）
情報処理装置が、
仮想マシンである仮想ストレージノードを複数起動し、
前記仮想ストレージノードは、データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
情報処理方法。
（付記１４）
情報処理装置に、
仮想マシンである仮想ストレージノードを複数起動する仮想化手段を実現させ、
前記仮想ストレージノードは、
データの読み書きを行う際にかかる負荷状況に応じて、起動中の前記仮想ストレージノードの全てが書き込み対象となる書き込み処理か、起動中の前記仮想ストレージノードのうちの予め定められた一部の前記仮想ストレージノードのみが書き込み対象となる書き込み処理、のいずれか一方の書き込み処理を実行する
プログラム。
【０１０５】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【０１０６】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【０１０７】
１  情報処理システム
２  情報処理装置
２１  仮想化手段
２１１  仮想ストレージノード
２１１１  ファイルシステム部
２１１２  重複排除部
２１１３  データ格納部
２１１４  記憶装置
２１１５  格納先情報
２１２  仮想管理ノード
２１２１  負荷監視部
２１２２  データ配置管理部
３  クライアント装置
４  情報処理装置
４１  仮想化手段
４１１  仮想ストレージノード
【図１】
2019095995.tif 000003
【図２】
2019095995.tif 000004
【図３】
2019095995.tif 000005
【図４】
2019095995.tif 000006
【図５】
2019095995.tif 000007
【図６】
2019095995.tif 000008
【図７】
2019095995.tif 000009
【図８】
2019095995.tif 000010
【図９】
2019095995.tif 000011
【図１０】
2019095995.tif 000012
【図１１】
2019095995.tif 000013
【図１２】
2019095995.tif 000014
【図１３】
2019095995.tif 000015
【図１４】
2019095995.tif 000016
【図１５】
2019095995.tif 000017