(57)【要約】【課題】分散ストレージシステムの消費電力を削減する。【解決手段】分散ストレージシステムにおいて、情報処理装置は、記憶部と、削除部と、書込部と、切替部と、読込部とを備える。削除部は、第１記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが記憶部に記憶されているとき、復元できるデータを記憶部から削除する。書込部は、第１記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、記憶部に書き込む。切替部は、書込部が復元できないデータを記憶部に書込むと、第１記憶装置を電源オフ状態に切り替える。読込部は、第１記憶装置が電源オフ状態のとき、復元できないデータの読み込み要求が与えられると、記憶部に記憶した復元できないデータを読み込む。【選択図】図８
2015191637.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置と情報処理装置とを備える分散ストレージシステムであって、
前記情報処理装置は、
前記複数の記憶装置よりも優先的にアクセスされる記憶部と、
第１記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが前記記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除する削除部と、
前記第１記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込む書込部と、
前記書込部が復元できない前記データを前記記憶部に書込むと、前記第１記憶装置を電源オフ状態に切り替える切替部と、
前記第１記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む読込部と、
を備えることを特徴とする分散ストレージシステム。
【請求項２】
前記情報処理装置は、さらに、
前記第１記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得する取得部を備え、
前記読込部は、
前記取得部が取得した前記データを読み込む
ことを特徴とする請求項１に記載の分散ストレージシステム。
【請求項３】
前記書込部は、
復元できない前記データを前記記憶部に書き込むとき、使用される可能性の高いデータを前記記憶部に書き込む
ことを特徴とする請求項１または２に記載の分散ストレージシステム。
【請求項４】
前記書込部は、
前記第１記憶装置が電源オフ状態のとき、前記第１記憶装置に記憶された復元できない前記データを更新する書き込み要求が与えられると、復元できない前記データを電源オン状態の他の記憶装置に書き込み、さらに、前記記憶部に記憶された復元できない前記データが削除されたとき、電源オン状態の記憶装置に記憶されたデータの中で、使用される可能性の高いデータを前記記憶部に書き込み、
前記削除部は、
復元できない前記データが電源オン状態の他の記憶装置に書込まれたとき、前記記憶部に記憶された更新前の復元できない前記データを削除し、
前記読込部は、
前記第１記憶装置が電源オフ状態であり、復元できない前記データが前記他の記憶装置に書込まれているとき、復元できない前記データの読み込み要求が与えられると、前記他の記憶装置に記憶された復元できない前記データを読み込む
ことを特徴とする請求項１〜３のいずれか一つに記載の分散ストレージシステム。
【請求項５】
前記情報処理装置は、さらに、
前記第１記憶装置が電源オフ状態のとき、第２記憶装置が電源オン状態になると、前記記憶部に記憶されたデータ識別子で識別される復元できる前記データを取得する取得部を備え、
前記書込部は、
前記削除部が復元できる前記データを前記記憶部から削除したとき、復元できる前記データのデータ識別子を前記記憶部に書き込み、前記取得部が復元できる前記データを取得したとき、取得した前記データを前記記憶部に書き込み、さらに、電源オン状態の他の記憶装置に記憶された前記パリティを前記第２記憶装置に書き込み、
前記切替部は、
電源オン状態の他の記憶装置に記憶された前記パリティが前記第２記憶装置に書き込まれると、前記第２記憶装置を電源オフ状態に切り替え、
前記削除部は、
前記第２記憶装置が電源オフ状態に切替えられると、電源オン状態の他の記憶装置に記憶された前記パリティを前記他の記憶装置から削除し、
前記読込部は、
取得した復元できる前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できる前記データを読み込む
ことを特徴とする請求項１〜４のいずれか一つに記載の分散ストレージシステム。
【請求項６】
前記削除部は、
前記第１記憶装置が電源オン状態となったとき、前記記憶部から復元できない前記データを削除し、
前記書込部は、
電源オン状態の記憶装置に記憶された前記データの中で、使用される可能性の高いデータを前記記憶部に書き込む
ことを特徴とする請求項１〜５のいずれか一つに記載の分散ストレージシステム。
【請求項７】
前記情報処理装置、またはそれ以外の情報処理装置は、
前記記憶部と、前記削除部と、前記書込部と、切替部と、前記読込部のいずれか１以上を備える
ことを特徴とする請求項１〜６のいずれか一つに記載の分散ストレージシステム。
【請求項８】
複数の記憶装置よりも優先的にアクセスされる記憶部を備える情報処理装置のコンピュータによって実行される記憶装置制御方法であって、
前記コンピュータは、
第１記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが前記記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除し、
前記第１記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込み、
前記第１記憶装置を電源オフ状態にし、
前記第１記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む
ことを特徴とする記憶制御方法。
【請求項９】
前記コンピュータは、さらに、
前記第１記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得し、
取得した前記データを読み込む
ことを特徴とする請求項８に記載の記憶制御方法。
【請求項１０】
前記コンピュータは、さらに、
復元できない前記データを前記記憶部に書き込む処理において、使用される可能性の高いデータを前記記憶部に書き込む
ことを特徴とする請求項８または９に記載の記憶制御方法。
【請求項１１】
第１記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが、複数の記憶装置よりも優先的にアクセスされる記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除し、
前記第１記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込み、
前記第１記憶装置を電源オフ状態にし、
前記第１記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む
処理をコンピュータに実行させることを特徴とする記憶装置制御プログラム。
【請求項１２】
前記第１記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得し、
取得した前記データを読み込む
処理をコンピュータに実行させることを特徴とする請求項１２に記載の記憶装置制御プログラム。
【請求項１３】
復元できない前記データを前記記憶部に書き込む処理において、使用される可能性の高いデータを前記記憶部に書き込む
処理をコンピュータに実行させることを特徴とする請求項１１または１２に記載の記憶装置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータを記憶する技術に関する。
【背景技術】
【０００２】
分散ストレージシステムでは、消失したデータを復元するためのパリティを用いてデータを冗長化するＥｒａｓｕｒｅ  Ｃｏｄｉｎｇ（消失訂正符号処理）が用いられている。消失訂正符号処理を用いた分散ストレージシステムでは、サーバが記憶装置にデータを記憶させるとき、パリティを生成し、データとパリティとを分散して複数の記憶装置に記憶させる。以下の説明では、データを記憶した記憶装置のことをデータ用の記憶装置とも言う。また、パリティを記憶した記憶装置のことをパリティ用の記憶装置とも言う。
【０００３】
そして、サーバは、データを復元するためにパリティを読み込む期間と、新たなパリティを書き込む期間とを除いて、パリティ用の記憶装置を電源オフ状態にする。これにより、サーバは、パリティ用の記憶装置を電源オン状態にする期間を短くし、消費電力の削減をしている。以下の説明では、電源オフ状態のことを単にオフ状態とも言う。また、電源オン状態のことを単にオン状態とも言う。
【０００４】
さらに、サーバは、パリティ用の記憶装置がオフ状態のとき、データ用の記憶装置にデータを記憶させる場合、新たなパリティを生成し、データ用の記憶装置の空き領域にパリティを書き込む。そして、サーバは、データ復元のためにパリティを読み込むとき、データ用の記憶装置に記憶したパリティを読み込む。これにより、サーバは、パリティ用の記憶装置にパリティを読み書きする頻度を低くし、さらに消費電力を削減している。なお、サーバは、データ用の記憶装置の空き領域がなくなると、パリティ用の記憶装置をオン状態にし、データ用の記憶装置に記憶されたパリティを、パリティ用の記憶装置に書き戻す処理を実行する。以下の説明では、前述のように、データの格納先の記憶装置がオフ状態のとき、他の記憶装置にデータを一時的に格納する。そして、データの格納先の記憶装置がオン状態になったとき、他の記憶装置に格納したデータをデータの格納先の記憶装置に書き戻す処理をＷｒｉｔｅ  ｏｆｆ−ｌｏａｄｉｎｇとも言う。
【０００５】
関連する他の技術として、コントローラは、バッファに格納されたライトデータをハード記憶装置に書き込むことを指示するホスト装置からのコマンドを受信した場合、不揮発性メモリの空き容量が所定のデータサイズよりも少ないか否かを判別する。コントローラは、空き容量が所定のデータサイズよりも少ない場合、不揮発性メモリに格納されている所定のデータの内で、ハード記憶装置上に同一のデータが存在する同期データを削除して空き容量を増加させる。そして、コントローラは、バッファに格納されたライトデータを不揮発性メモリにライトする技術が知られている。
【０００６】
また、関連する他の技術として、ファイル装置は、ファイルＦ１のファイル断片Ｆ１−２をキャッシュＣＳ上にステージングし、ＬＲＵテーブルにおいてファイル断片Ｆ１−２をファイル断片Ｆ１−１の下位に登録する。そして、ファイル装置は、記憶装置ＤＳからファイルＦ２のファイル断片Ｆ２−２をキャッシュＣＳ上にステージングし、ＬＲＵテーブルにおいてファイル断片Ｆ２−２をファイル断片Ｆ２−１の下位に登録する。こうして、ファイル装置は、各ファイル内において、ファイルの先頭に近いファイル断片ほど、上位に登録する。これにより、ファイル装置は、ファイルの先頭に近いファイル断片ほど、キャッシュＣＳ上に存在する確率を高くする技術が知られている。
【０００７】
さらに、ストレージシステムにおいて、所定の記憶装置にデータを格納する要求を受信されたとき、電源がオフ状態である、または過負荷状態であるなどして所定の記憶装置が利用できない場合、データは他の記憶装置に格納される。そして、所定の記憶装置が利用可能になったとき、他の記憶装置に格納されたデータは、取得され、所定の記憶装置に書込まれるという技術が知られている（例えば、特許文献１〜特許文献３）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−１８１３１４号公報
【特許文献２】特開平６−１１９２１８号公報
【特許文献３】米国特許第８０７４０１４号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
前述した記憶装置制御技術を用いた分散ストレージシステムでは、読み込み時にパリティ用の記憶装置を起動しないように、データ用の記憶装置を全てオン状態にしておくので、データ用の記憶装置の消費電力を削減できないという問題がある。
【００１０】
本発明は、一側面として、分散ストレージシステムの消費電力を削減する技術を提供する。
【課題を解決するための手段】
【００１１】
本明細書で開示する分散ストレージシステムのひとつに、複数の記憶装置と情報処理装置とを備える分散ストレージシステムがある。情報処理装置は、記憶部と、削除部と、書込部と、切替部と、読込部とを備える。記憶部は、複数の記憶装置よりも優先的にアクセスされる。削除部は、第１記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが記憶部に記憶されているとき、復元できるデータを記憶部から削除する。書込部は、第１記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、記憶部に書き込む。切替部は、書込部が復元できないデータを記憶部に書込むと、第１記憶装置を電源オフ状態に切り替える。読込部は、第１記憶装置が電源オフ状態のとき、復元できないデータの読み込み要求が与えられると、記憶部に記憶した復元できないデータを読み込む。
【発明の効果】
【００１２】
１実施態様によれば、分散ストレージシステムの消費電力を削減することができる。
【図面の簡単な説明】
【００１３】
【図１】分散ストレージシステムの一実施例を示す図である。
【図２】情報処理装置の一実施例を示す機能ブロック図（その１）である。
【図３】データ管理情報の一例を示す図である。
【図４】パリティ管理情報の一例を示す図である。
【図５】記憶装置の一例を示す図である。
【図６】データ用の記憶装置に記憶された記憶情報の一例を示す図である。
【図７】パリティ用の記憶装置に記憶された記憶情報の一例を示す図である。
【図８】情報処理装置の一実施例を示す機能ブロック図（その２）である。
【図９】保持情報の一例を示す図である。
【図１０】履歴情報の一例を示す図である。
【図１１】オフロード情報の一例を示す図である。
【図１２】記憶装置をオフ状態に切替える処理を示すフローチャート（その１）である。
【図１３】記憶装置をオフ状態に切替える処理を示すフローチャート（その２）である。
【図１４】データがオフロード済みになったときの処理を示すフローチャート（その１）である。
【図１５】データがオフロード済みになったときの処理を示すフローチャート（その２）である。
【図１６】パリティ用の記憶装置がオン状態になったときの処理を示すフローチャート（その１）である。
【図１７】パリティ用の記憶装置がオン状態になったときの処理を示すフローチャート（その２）である。
【図１８】データ用の記憶装置がオフ状態からオン状態になったときの処理を示すフローチャートである。
【図１９】コンピュータ装置の一実施例を示すブロック図である。
【発明を実施するための形態】
【００１４】
［実施形態］
実施形態の分散ストレージシステムについて説明する。
【００１５】
図１は、分散ストレージシステムの一実施例を示すブロック図である。
図１を参照して、分散ストレージシステムの構成について説明する。
【００１６】
分散ストレージシステム１００は、例えば、端末１０１と、ネットワーク１０２、１０３と、情報処理装置４０と、情報処理装置５０と、情報処理装置６０と、情報処理装置７０とを備える。以下の説明では、情報処理装置４０と、情報処理装置５０と、情報処理装置６０と、情報処理装置７０とのことを、情報処理装置４０〜７０とも言う。また、情報処理装置５０と、情報処理装置６０と、情報処理装置７０とのことを、情報処理装置５０〜７０とも言う。
【００１７】
そして、端末１０１は、例えば、ネットワーク１０２を介して情報処理装置４０と通信可能に接続される。また、情報処理装置４０〜７０は、例えば、ネットワーク１０３を介して互いに通信可能に接続される。
【００１８】
情報処理装置５０は、例えば、記憶装置５１〜５６と通信可能に接続される。情報処理装置６０は、例えば、記憶装置６１〜６６と通信可能に接続される。情報処理装置７０は、例えば、記憶装置７１〜７６と通信可能に接続される。以下の説明では、記憶装置５１〜５６と、記憶装置６１〜６６と、記憶装置７１〜７６とを特に区別しないときには、記憶装置１とも言う。また、通信可能に接続されることを、通信接続される、または単に接続されるとも言う。
【００１９】
端末１０１は、例えば、ユーザからの入力やソフトウェアの処理などで発生する、データの書き込み要求やデータの読み込み要求を情報処理装置４０に送信する。端末１０１は、例えば、後述するコンピュータ装置である。以下の説明において、データの書き込み要求は、書き込むデータを含むものとして説明する。データの書き込み要求やデータの読み込み要求を特に区別しないときには、データの書き込み要求やデータの読み込み要求のことを、単に要求とも言う。
【００２０】
図２は、情報処理装置の一実施例を示す機能ブロック図（その１）である。図２を参照して、情報処理装置４０について説明する。
【００２１】
情報処理装置４０は、制御部４１と、記憶部４２と、送受信部４３とを備える。制御部４１は、例えば、生成部１６と、振分部１７と、管理部１８とを含む。記憶部４２は、例えば、データ管理情報２４と、パリティ管理情報２５とを記憶する。送受信部４３は、例えば、送信部３３と受信部３４とを含む。情報処理装置４０は、例えば、後述するコンピュータ装置である。また、情報処理装置４０は、例えば、ＩＡサーバ（Ｉｎｔｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｓｅｒｖｅｒ）でも良い。
【００２２】
また、以下に説明する情報処理装置４０の制御部４１に含まれる生成部１６と、振分部１７と、管理部１８とは、情報処理装置５０〜７０がいずれか１以上備えても良い。さらに、情報処理装置４０の記憶部４２に記憶されているデータ管理情報２４と、パリティ管理情報２５とは、情報処理装置５０〜７０がいずれか１以上備えても良い。
【００２３】
生成部１６は、端末１０１から書き込み要求が与えられると、所定の数の記憶装置１からデータを取得し、与えられた書き込み要求に含まれるデータと、取得したデータとを用いてパリティを生成する。そして、生成部１６は、生成したパリティを含むパリティの書き込み要求を生成する。生成部１６は、例えば、パリティを生成するとき、複数のデータの排他的論理和を求めてパリティを生成しても良いし、消失訂正符号処理で提案されている所定のアルゴリズムを用いてパリティを生成しても良い。
【００２４】
振分部１７は、端末１０１から与えられた要求、および生成部１６が生成したパリティの書き込み要求の転送先を情報処理装置５０〜７０に振り分ける。このとき、振分部１７は、情報処理装置５０〜７０に要求を均等に振り分けても良い。また、振分部１７は、情報処理装置５０〜７０の処理能力がそれぞれ異なるとき、処理能力の大きい情報処理装置に振り分ける要求の数を処理能力の小さい情報処理装置に振り分ける要求の数よりも多くしても良い。このように、振分部１７は、ロードバランサとしての機能を有する。
【００２５】
振分部１７は、例えば、端末１０１からデータの書き込み要求が与えられると、データの書き込み要求に含まれるデータを記憶する記憶装置１を指定する。そして、振分部１７は、指定した記憶装置１と接続されている情報処理装置にデータの書き込み要求を転送する。
【００２６】
また、振分部１７は、例えば、端末１０１から記憶装置１に記憶されているデータを更新する書き込み要求が与えられると、記憶装置１を指定して、送信前のデータの書き込み要求を振り分けた情報処理装置に、データを更新させる書き込み要求を転送する。以下の説明では、データを更新させる書き込み要求のことを、データの更新要求とも言う。また、データの更新要求には、更新用のデータが含まれているものとする。
【００２７】
さらに、振分部１７は、例えば、端末１０１からデータの更新要求が与えられたとき、更新前のデータを記憶した記憶装置１がオフ状態になっている場合、オン状態の他の記憶装置１を指定する。そして、振分部１７は、指定した他の記憶装置１に接続された情報処理装置に、更新用のデータを他の記憶装置１の空き領域に記憶させるデータの書き込み要求を転送する。以下の説明では、更新用のデータを他の記憶装置１の空き領域に記憶させるデータの書き込み要求のことを、データのオフロード要求とも言う。また、データのオフロード要求には、オフロードするデータが含まれているものとする。なお、データをオフロードするとは、更新前のデータが記憶された記憶装置１ではなく、他の記憶装置１の空き領域にデータを記憶することを言う。
【００２８】
振分部１７は、端末１０１からデータの書き込み要求が与えられたとき、生成部１６がパリティの書き込み要求を生成すると、パリティを記憶させるパリティ用の記憶装置１を指定する。そして、振分部１７は、指定したパリティ用の記憶装置１と接続されている情報処理装置にパリティの書き込み要求を転送する。以下の説明では、パリティの書き込み要求には、パリティが含まれているものとする。
【００２９】
また、振分部１７は、端末１０１からデータの更新要求が与えられたとき、生成部１６がパリティを生成すると、前回指定した記憶装置１に接続された情報処理装置にパリティを更新させる書き込み要求を転送する。以下の説明では、パリティを更新させる書き込み要求のことを、パリティの更新要求とも言う。また、パリティの更新要求には、更新用のパリティが含まれているものとする。
【００３０】
さらに、振分部１７は、例えば、生成部１６がパリティの更新要求を生成したとき、更新前のパリティを記憶した記憶装置１がオフ状態になっている場合、オン状態の他の記憶装置１を指定する。そして、振分部１７は、更新用のパリティを記憶装置１の空き領域に記憶させるパリティの書き込み要求を、指定した他の記憶装置１に接続された情報処理装置に転送する。
【００３１】
以下の説明では、更新用のパリティを他の記憶装置１の空き領域に記憶させるためのパリティの書き込み要求のことを、パリティのオフロード要求とも言う。また、パリティのオフロード要求には、オフロードするパリティが含まれているものとする。なお、オフロードするパリティとは、更新前のパリティが記憶された記憶装置１ではなく、データ用の他の記憶装置１の空き領域に記憶されるパリティのことを言う。更新前のパリティが記憶された記憶装置１とは、例えば、パリティ用の記憶装置１のことである。パリティをオフロードするとは、パリティを記憶するためのパリティ用の記憶装置１ではなく、データ用の他の記憶装置１の空き領域にパリティを記憶することを言う。
【００３２】
管理部１８は、振分部１７により指定された、記憶装置１を識別する情報と、記憶装置１に記憶されたデータを識別する情報とを関連付けた情報をデータ管理情報２４に格納する。
【００３３】
また、管理部１８は、振分部１７により指定された、記憶装置１を識別する情報と、記憶装置１に記憶されたパリティを識別する情報とを関連付けた情報をパリティ管理情報２５に格納する。
【００３４】
図３を参照して説明する。
図３は、データ管理情報の一例を示す図である。図３を参照して、データ管理情報２４について説明する。
【００３５】
データ管理情報２４には、図３（ａ）に示すように、例えば、データ識別子と、第１装置識別子と、第２装置識別子とが関連付けられて格納されている。
【００３６】
データ識別子は、データを識別するための情報である。データ識別子は、例えば、データ名でも良い。データ識別子は、振分部１７が記憶装置１にデータの書き込み要求を振り分けたとき、管理部１８が記憶装置１に記憶するデータの識別子を取得し、データ管理情報２４に格納しても良い。
【００３７】
第１装置識別子は、例えば、同じレコードに属するデータ識別子で識別されるデータを記憶するためのデータ用の記憶装置１を識別する情報である。データを記憶するための記憶装置１とは、例えば、振分部１７が最初にデータ識別子で識別されるデータの記憶先として指定した記憶装置１でも良い。また、データを記憶するための記憶装置１とは、ユーザにより指定された記憶装置１でも良い。そして、第１装置識別子は、例えば、管理部１８が最初にデータを記憶した記憶装置１の識別情報を取得し、データ管理情報２４に格納しても良い。以下の説明では、データを記憶するための記憶装置１を、振分部１７が最初にデータの記憶先として指定したデータ用の記憶装置１であるものとして説明する。
【００３８】
また、識別子ｉ５１〜ｉ５６は、それぞれ図１に示す記憶装置５１〜５６に対応するものとする。そして、識別子ｉ６１〜ｉ６６は、それぞれ図１に示す記憶装置６１〜６６に対応するものとする。さらに、識別子ｉ７１〜ｉ７６は、図１に示す記憶装置７１〜７６に対応するものとする。そして、記憶装置５１〜５４と、記憶装置６１〜６４と、記憶装置７１〜７４とは、データ用の記憶装置であるものとする。また、記憶装置５５、５６と、記憶装置６５、６６と、記憶装置７５、７６とは、パリティ用の記憶装置であるものとする。
【００３９】
第２装置識別子は、例えば、第１装置識別子で識別される記憶装置１がオフ状態になっているとき、振分部１７が更新用のデータを空き領域に記憶させるために指定したオン状態の他の記憶装置１を識別する情報である。そして、第２装置識別子は、例えば、振分部１７が更新用のデータの記憶先をオン状態の他の記憶装置１に振り分けたとき、管理部１８が更新用のデータを記憶したオン状態の他の記憶装置１の識別情報を取得し、データ管理情報２４に格納しても良い。また、第２装置識別子は、第２装置識別子で識別される記憶装置１から、同じレコードに属する第１装置識別子で識別される記憶装置１にデータが書き戻されたとき、管理部１８により削除される。ここで、オン状態の他の記憶装置１とは、データ用の記憶装置１である。
【００４０】
図３（ａ）および図３（ｂ）に示すデータ管理情報２４を参照して、データ管理情報２４に格納されているレコードの示す情報を詳細に説明する。
【００４１】
データ管理情報２４は、例えば、図３（ａ）に示すように、データ識別子ｄ１と第１装置識別子ｉ５１とが関連付けられて格納されているとき、第１装置識別子で識別される記憶装置５１に、データ識別子ｄ１で識別されるデータＤ１が記憶されていることを示す。なお、以下の説明において、データ識別子ｄｘは、データＤｘを識別するものとして説明する。
【００４２】
データ管理情報２４は、例えば、図３（ｂ）に示すように、データ識別子ｄ１と、第１装置識別子ｉ５１と、第２装置識別子ｉ６１とが関連付けられて格納されているとき、第１識別子で識別される記憶装置５１がオフ状態であることを示す。さらに、データ管理情報２４は、例えば、データ識別子ｄ１と、第１装置識別子ｉ５１と、第２装置識別子ｉ６１とが関連付けられて格納されているとき、データ識別子ｄ１で識別されるデータＤ１が記憶装置６１に記憶されていることを示す。
【００４３】
データ管理情報２４が図３（ａ）の状態から、図３（ｂ）の状態に更新される処理の一例を説明する。
【００４４】
振分部１７は、例えば、記憶装置５１がオン状態であるとき、データの書き込み要求が与えられると、データを記憶するための記憶装置５１にデータ識別子ｄ１で識別されるデータＤ１を記憶させる。そして、管理部１８は、図３（ａ）に示すように、データ識別子ｄ１と、記憶装置５１を識別する第１装置識別子ｉ５１とを関連付けてデータ管理情報２４に格納する。
【００４５】
次に、振分部１７は、例えば、記憶装置５１がオフ状態であるとき、データ識別子ｄ１で識別されるデータの更新要求が与えられると、データ識別子ｄ１で識別されるデータを他の記憶装置６１に記憶させる。そして、管理部１８は、図３（ｂ）に示すように、データ識別子ｄ１と、他の記憶装置６１を識別する第２装置識別子ｉ６１とを関連付けてデータ管理情報２４に格納する。
【００４６】
また、管理部１８は、第２装置識別子ｉ６１で識別される記憶装置１から、第１装置識別子ｉ５１で識別される記憶装置１にデータＤ１が書き戻されると、第２装置識別子ｉ６１をデータ管理情報２４から削除する。このとき、データ管理情報２４に格納された情報は、例えば、図３（ｂ）の状態から図３（ａ）の状態に変化する。
【００４７】
以上により、情報処理装置４０は、各データ識別子で識別されるデータの最新データがどの記憶装置１に記憶されているのかを管理している。
【００４８】
図４を参照して説明する。
図４は、パリティ管理情報の一例を示す図である。
【００４９】
パリティ管理情報２５には、図４（ａ）に示すように、例えば、パリティ識別子と、データ識別子と、第３装置識別子と、第４装置識別子とが関連付けられて格納されている。
【００５０】
パリティ識別子は、パリティを識別するための情報である。パリティ識別子は、振分部１７が記憶装置１にパリティを振り分けたとき、管理部１８がパリティを参照することにより取得され、パリティ管理情報２５に格納されても良い。
【００５１】
データ識別子は、データを識別するための情報である。管理部１８は、例えば、生成部１６がパリティを生成するときに用いた複数のデータのデータ識別子と、生成されたパリティのパリティ識別子とを関連付けてパリティ管理情報２５に格納する。
【００５２】
第３装置識別子は、例えば、同じレコードに属するパリティ識別子で識別されるパリティを記憶するためのパリティ用の記憶装置１を識別する情報である。パリティを記憶するための記憶装置１とは、例えば、振分部１７が最初にパリティの記憶先として指定した記憶装置１でも良い。また、パリティを記憶するための記憶装置１とは、ユーザにより指定された記憶装置１でも良い。そして、第３装置識別子は、例えば、管理部１８が最初にパリティを記憶した記憶装置１の識別情報を取得し、パリティ管理情報２５に格納しても良い。以下の説明では、パリティを記憶するための記憶装置１を、振分部１７が最初にパリティの記憶先として指定したパリティ用の記憶装置１であるものとして説明する。
【００５３】
第４装置識別子は、例えば、第３装置識別子で識別されるパリティ用の記憶装置１がオフ状態になっているとき、振分部１７が更新用のパリティを空き領域に記憶させるために指定したオン状態の他の記憶装置１を識別する情報である。そして、第４装置識別子は、例えば、振分部１７が更新用のパリティの記憶先をオン状態の他の記憶装置１に振り分けたとき、管理部１８が更新用のパリティを記憶したオン状態の他の記憶装置１の識別情報を取得し、パリティ管理情報２５に格納しても良い。また、第４装置識別子は、第４装置識別子で識別される記憶装置１から、同じレコードに属する第３装置識別子で識別される記憶装置１にデータが書き戻されたとき、管理部１８により削除される。
【００５４】
図４（ａ）および図４（ｂ）に示すパリティ管理情報２５を参照して、パリティ管理情報２５に格納されているレコードの示す情報を詳細に説明する。
【００５５】
パリティ管理情報２５は、図４（ａ）に示すように、パリティ識別子ｐ１とデータ識別子ｄ１〜ｄ４とが関連付けられて格納されているとき、パリティＰ１がデータＤ１〜Ｄ４のパリティとして用いられることを示す。パリティ管理情報２５は、データＤ１〜Ｄ４のいずれか一つが消失しても、図４（ａ）に示すパリティＰ１を用いて消失したデータＤｘを復元できることを示している。なお、以下の説明において、パリティ識別子ｐｘは、パリティＰｘを識別するものとして説明する。
【００５６】
パリティ管理情報２５は、図４（ａ）に示すように、パリティ識別子ｐ１と、第３装置識別子ｉ５５とが関連付けて格納されているとき、パリティＰ１を記憶するためのパリティ用の記憶装置１が記憶装置５５であることを示す。
【００５７】
パリティ管理情報２５は、図４（ｂ）に示すように、パリティ識別子ｐ１と、第３装置識別子ｉ５５と、第４装置識別子ｉ７１とが関連付けられて格納されているとき、記憶装置５５がオフ状態であり、パリティＰ１が記憶装置７１に記憶されていることを示す。
【００５８】
パリティ管理情報２５が図４（ａ）の状態から、図４（ｂ）の状態に更新される処理の一例を説明する。
【００５９】
生成部１６は、データ識別子ｄ１〜ｄ４で識別されるデータＤ１〜Ｄ４を用いてパリティ識別子ｐ１で識別されるパリティＰ１を生成する。管理部１８は、図４（ａ）に示すように、生成部１６でパリティＰ１が生成されると、生成部１６がパリティＰ１を生成するために用いたデータＤ１〜Ｄ４のデータ識別子ｄ１〜ｄ４と、パリティ識別子ｐ１とを関連付けてパリティ管理情報２５に格納する。
【００６０】
振分部１７は、例えば、記憶装置５５がオン状態であるとき、パリティの書き込み要求が与えられると、パリティを記憶するための記憶装置５５にパリティ識別子ｐ１で識別されるパリティＰ１を記憶させる。そして、管理部１８は、図４（ａ）に示すように、パリティ識別子ｐ１と、記憶装置５５を識別する第３装置識別子ｉ５５とを関連付けてパリティ管理情報２５に格納する。
【００６１】
次に、振分部１７は、例えば、記憶装置５５がオフ状態であるとき、パリティ識別子ｐ１で識別されるパリティの更新要求が与えられると、パリティ識別子ｐ１で識別されるパリティを他の記憶装置７１に記憶させる。そして、管理部１８は、図４（ｂ）に示すように、パリティ識別子ｐ１と、他の記憶装置７１を識別する第４装置識別子ｉ７１とを関連付けてパリティ管理情報２５に格納する。
【００６２】
以上により、情報処理装置４０は、各パリティ識別子で識別されるパリティの最新パリティがどの記憶装置１に記憶されているのかを管理している。
【００６３】
図２を参照して説明する。
送信部３３は、例えば、制御部４１から出力されたデータ、パリティ、および要求を端末１０１や情報処理装置５０〜７０に送信する。
【００６４】
受信部３４は、例えば、端末１０１や情報処理装置５０〜７０から送信されたデータ、パリティ、および要求を受信する。そして、受信部３４は、受信したデータ、パリティ、および要求を制御部４１に入力する。
【００６５】
図５を参照して説明する。
図５は、記憶装置の一例を示す図である。図５は、情報処理装置５０と接続された記憶装置５１〜５６を示す図である。なお、情報処理装置６０に接続された記憶装置６１〜６６と、情報処理装置７０に接続された記憶装置７１〜７６とは、情報処理装置５０と接続された記憶装置５１〜５６と同じ構成なので説明を省略する。
【００６６】
記憶装置５１〜５６は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの磁気ディスクや、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などの半導体素子メモリなどを用いたドライブである。
【００６７】
記憶装置５１〜５４は、例えば、データ用の記憶装置群８１に含まれる。データ用の記憶装置５１〜５４は、それぞれデータを記憶するデータ領域と、空き領域とを含む。
【００６８】
データ領域には、例えば、情報処理装置４０から与えられたデータの書き込み要求に含まれるデータが記憶される。
【００６９】
また、空き領域には、データを記憶するためのデータ用の記憶装置１がオフ状態のとき、情報処理装置４０から与えられるデータの更新要求に含まれるデータが記憶される。さらに、空き領域には、パリティを記憶するためのパリティ用の記憶装置１がオフ状態のとき、情報処理装置４０から与えられるパリティの更新要求に含まれるパリティが記憶される。なお、データやパリティを記憶するための空き領域の容量には、上限が設けられていても良い。
【００７０】
図６を参照して説明する。
図６は、データ用の記憶装置に記憶された記憶情報の一例を示す図である。図６を参照して、データ用の記憶装置に記憶される記憶情報について説明する。
【００７１】
記憶情報５１Ｄ〜５４Ｄは、それぞれ、記憶装置５１〜５４に記憶された情報を示す。
データ領域には、データ識別子と、データと、時刻とが関連付けられて記憶される。
【００７２】
データ識別子は、データを識別するための情報である。
データは、データ領域の同じレコードに属するデータ識別子で識別されるデータである。
【００７３】
時刻は、データ用の記憶装置１のデータ領域に、同じレコードに含まれるデータ識別子で識別されるデータが最後に記憶された時刻を示す。データが最後に記憶された時刻とは、例えば、データが更新されていない場合、データが記憶装置１に最初に記憶された時刻を示す。データが最後に記憶されたと時刻とは、例えば、データが更新されている場合、データが最後に更新された時刻を示す。
【００７４】
また、空き領域には、データ識別子およびデータまたはパリティ識別子およびパリティと、時刻とが関連付けられて記憶される。
【００７５】
データ識別子は、データを識別するための情報である。
データは、空き領域の同じレコードに属するデータ識別子で識別されるデータである。
【００７６】
パリティ識別子は、パリティを識別すための情報である。
パリティとは、空き領域の同じレコードに属するパリティ識別子で識別されるパリティである。
【００７７】
時刻は、データ識別子およびデータと関連付けられているとき、データ用の記憶装置１の空き領域に、同じレコードに含まれるデータ識別子で識別されるデータが最後に記憶された時刻を示す。データが最後に記憶された時刻とは、例えば、データが更新されていない場合、データが記憶装置１に最初に記憶された時刻を示す。データが最後に記憶されたと時刻とは、例えば、データが更新されている場合、データが最後に更新された時刻を示す。
【００７８】
時刻は、パリティ識別子およびパリティと関連付けられているとき、同じレコードに含まれるパリティ識別子で識別されるパリティがパリティ用の記憶装置１に最後に記憶された時刻を示す。パリティが最後に記憶された時刻とは、例えば、パリティが更新されていない場合、パリティが記憶装置１に最初に記憶された時刻を示す。パリティが最後に記憶された時刻とは、例えば、パリティが更新されている場合、記憶装置１に格納されたパリティが最後に更新された時刻を示す。
【００７９】
図６の記憶情報５１Ｄ〜５４Ｄを参照して、記憶情報５１Ｄ〜５４Ｄに格納されているレコードが示す情報を詳細に説明する。
【００８０】
データ用の記憶装置１の記憶情報は、記憶情報５１Ｄのデータ領域に示すように、データ識別子ｄ１と、データＤ１とが関連付けられて記憶されているとき、データ識別子ｄ１で識別されるデータＤ１が記憶装置５１のデータ領域に記憶されていることを示す。
【００８１】
また、データ用の記憶装置１の記憶情報は、記憶情報５１Ｄのデータ領域に示すように、データＤ１と、時刻ｔ１とが関連付けられて格納されているとき、時刻ｔ１にデータＤ１、または更新用のデータＤ１が記憶装置５１のデータ領域に記憶されたことを示す。
【００８２】
データ用の記憶装置１の記憶情報は、記憶情報５１Ｄの空き領域に示すように、パリティ識別子ｐ２と、パリティＰ２とが関連付けられて記憶されているとき、パリティ識別子ｐ２で識別されるパリティＰ２が記憶装置５１の空き領域に記憶されていることを示す。
【００８３】
また、データ用の記憶装置１の記憶情報は、記憶情報５１Ｄの空き領域に示すように、パリティＰ２と、時刻ｔ８とが関連付けられて格納されているとき、時刻ｔ８にパリティＰ２、または更新用のパリティＰ２が記憶装置５１の空き領域に記憶されたことを示す。
【００８４】
データ用の記憶装置１の記憶情報は、記憶情報５４Ｄの空き領域に示すように、データ識別子ｄ４９と、データＤ４９とが関連付けられて記憶されているとき、データ識別子ｄ４９で識別されるデータＤ４９が記憶装置５４の空き領域に記憶されていることを示す。
【００８５】
データ用の記憶装置１の記憶情報は、記憶情報５４Ｄの空き領域に示すように、データＤ４９と、時刻ｔ４９とが関連付けられて格納されているとき、時刻ｔ４９にデータＤ４９、または更新用のデータＤ４９が記憶装置５４の空き領域に記憶されたことを示す。
【００８６】
図５を参照して説明する。
記憶装置５５、５６は、例えば、パリティ用の記憶装置群９１に含まれる。記憶装置５５、５６は、パリティを記憶するパリティ領域を含む。また、パリティ用の記憶装置５５、５６は、データを復元するためにパリティを読み込む期間と、新たなパリティを書き込む期間と、他の記憶装置１からパリティを書き戻す期間とを除いて、情報処理装置５０によりオフ状態にされる。なお、パリティ用の記憶装置１には、空き領域を含んでも良い。
【００８７】
図７を参照して説明する。
図７は、パリティ用の記憶装置の記憶情報の一例を示す図である。記憶情報５５Ｐ、５６Ｐは、それぞれ、記憶装置５５、５６のパリティ領域に記憶された情報を示す。
【００８８】
パリティ領域には、パリティ識別子と、パリティと、時刻とが関連付けられて記憶される。
パリティ識別子は、パリティを識別するための情報である。
パリティとは、同じレコードに属するパリティ識別子で識別されるパリティである。
【００８９】
時刻は、同じレコードに属するパリティ識別子で識別されるパリティがパリティ用の記憶装置１に最後に記憶された時刻を示す。パリティが最後に記憶された時刻とは、例えば、パリティが更新されていない場合、パリティが記憶装置１に最初に記憶された時刻を示す。パリティが最後に記憶された時刻とは、例えば、パリティが更新されている場合、記憶装置１に格納されたパリティが最後に更新された時刻を示す。
【００９０】
図７の記憶情報５５Ｐ、５６Ｐを参照して、記憶情報５５Ｐ、５６Ｐに格納されているレコードが示す情報を詳細に説明する。
【００９１】
パリティ用の記憶装置１の記憶情報は、図７（ａ）の記憶情報５５Ｐに示すように、パリティ識別子ｐ１と、パリティＰ１とが関連付けられて記憶されているとき、パリティ識別子ｐ１で識別されるパリティＰ１が記憶装置５５に記憶されていることを示す。
【００９２】
また、パリティ用の記憶装置１の記憶情報は、図７（ａ）の記憶情報５５Ｐに示すように、パリティＰ１と、時刻ｔ４とが関連付けられて格納されているとき、時刻ｔ４にパリティＰ１が記憶装置５５に記憶されたことを示す。
【００９３】
図８を参照して説明する。
図８は、情報処理装置の一実施例を示す機能ブロック図（その２）である。図８を参照して、情報処理装置５０について説明する。情報処理装置６０、７０は、情報処理装置５０と同様の構成であるため、説明を省略する。以下の説明では、データ用の記憶装置５１のオン状態とオフ状態とを切替える処理と、パリティ用の記憶装置５５にデータ用の記憶装置７１の空き領域に記憶されたパリティｐ１を書き戻す処理とを一例として、情報処理装置５０の各構成要素について説明する。また、パリティ用の記憶装置１は、消費電力の削減のためにオフ状態にされているものとする。すなわち、図４（ｂ）に示される第３装置識別子で識別されるパリティ用の記憶装置１は、オフ状態であるものとする。
【００９４】
情報処理装置５０は、例えば、制御部１０と、記憶部２０と、送受信部３０とを備える。制御部１０は、削除部１１と、書込部１２と、切替部１３と、取得部１４と、読込部１５とを含む。記憶部２０は、保持情報２１と、履歴情報２２と、オフロード情報２３とを記憶する。送受信部３０は、送信部３１と、受信部３２とを含む。情報処理装置５０は、例えば、後述するコンピュータ装置である。また、情報処理装置５０は、例えば、ＩＡサーバでも良い。
【００９５】
情報処理装置５０は、例えば、ユーザにより記憶装置５１をオフ状態にする要求が与えられたとき、または任意のアルゴリズムにより記憶装置５１をオフ状態にすると決定されたとき、記憶装置５１をオフ状態に切替える処理を開始する。任意のアルゴリズムとは、例えば、パリティ用の記憶装置１がオフ状態のとき、データ用の記憶装置１の中でアクセス頻度の少ない記憶装置１をオフ状態にすると決定する処理でも良い。
【００９６】
削除部１１は、第１記憶装置をオフ状態にするとき、第１記憶装置に記憶されたデータの中で、オン状態の他の記憶装置１に分散して記憶されたデータとパリティとを用いて復元できるデータが記憶部２０の保持情報２１に記憶されているか否かを判定する。そして、削除部１１は、オン状態の他の記憶装置１に分散して記憶されたデータとパリティとを用いて復元できるデータが記憶部２０に記憶されているとき、復元できるデータを記憶部２０から削除する。ここで、第１記憶装置とは、例えば、記憶装置５１のことである。また、オン状態の他の記憶装置１とは、例えば、記憶装置５２〜５４、記憶装置６１〜６４、および記憶装置７１〜７４のことである。以下の説明では、オン状態の他の記憶装置１に分散して記憶されたデータとパリティとを用いて復元できるデータのことを、オフロード済みのデータとも言う。
【００９７】
削除部１１は、例えば、第１記憶装置の中でオフロード済みのデータがあるか否かを、管理部１８に問い合わせることにより判定する。管理部１８は、例えば、削除部１１からオフロード済みのデータがあるか否かの問い合わせがあると、図３（ａ）に示すデータ管理情報２４を参照し、記憶装置５１に記憶されているデータを検索する。管理部１８は、図４（ｂ）に示すパリティ管理情報２５を参照し、検索された記憶装置５１に記憶されているデータの中で、第４識別子に関連付けられているデータを抽出する。そして、管理部１８は、抽出したデータのデータ識別情報を削除部１１に通知しても良い。これにより、削除部１１は、データ識別情報で識別されるデータをオフロード済みのデータと判定することができる。管理部１８は、例えば、図４（ｂ）に示すパリティ管理情報２５が情報処理装置４０の記憶部４２に記憶されているとき、オフロード済みのデータの一つとして、データ識別子ｄ１を、削除部１１に通知する。
【００９８】
削除部１１は、復元できないデータがオン状態の他の記憶装置１に書込まれたとき、記憶部２０に記憶された更新前の復元できないデータを削除する。削除部１１は、管理部１８から復元できないデータがオン状態の他の記憶装置１に書込まれたことが通知されることにより、復元できないデータがオン状態の他の記憶装置１に書き込まれたことを判定しても良い。管理部１８は、他の記憶装置１にデータが書き込まれたとき、パリティ管理情報２５を参照し、書き込まれたデータと、第２装置識別子とが関連付けて格納されていないとき、書き込まれたデータが復元できないデータであると判定し、削除部１１に通知しても良い。
【００９９】
削除部１１は、第２記憶装置がオン状態になり、オン状態の他の記憶装置１に記憶されたパリティが第２記憶装置に書き戻され、第２記憶装置がオフ状態に切替えられると、オン状態の他の記憶装置１に記憶されたパリティを削除する。ここで、第２記憶装置とは、例えば、パリティ用の記憶装置１である。書込部１２は、例えば、図４（ｂ）に示すパリティ管理情報２５が記憶部４２に記憶されているとき、記憶装置５５がオン状態になると、記憶装置７１に記憶されているパリティＰ１を記憶装置５５に書き戻す。そして、削除部１１は、記憶装置７１に記憶されているパリティＰ１を削除しても良い。
【０１００】
削除部１１は、第１記憶装置がオン状態になったとき、記憶部２０に記憶された保持情報２１から第１記憶装置に記憶されたデータに含まれる復元できないデータを検索し、検索された復元できないデータを保持情報２１から削除する。
【０１０１】
削除部１１は、第１記憶装置に記憶されたデータに含まれる復元できないデータを、管理部１８に問い合わせることにより判定しても良い。管理部１８は、削除部１１から第１記憶装置に記憶された復元できないデータに関する問い合わせがあると、パリティ管理情報２５を参照し、第１記憶装置に記憶されたデータの中で、第４装置識別子と関連付けられていないデータを検索する。さらに、管理部１８は、データ管理情報２４を参照し、検索されたデータの中で、第２識別子と関連付けられていないデータを抽出し、抽出されたデータを復元できないデータであると判定しても良い。そして、管理部１８は、抽出されたデータを削除部１１に通知しても良い。
【０１０２】
書込部１２は、第１記憶装置に記憶されたデータの中で、オン状態の他の記憶装置１に分散して記憶されたデータとパリティとを用いて復元できないデータを、記憶部２０に書き込む。書込部１２は、復元できないデータを記憶部２０に書き込むとき、使用される可能性の高いデータを記憶部２０に書き込む。
【０１０３】
さらに、書込部１２は、第１記憶装置がオフ状態のとき、第１記憶装置に記憶されたデータを更新する書き込み要求が与えられると、書き込み要求に含まれるデータをオン状態の他の記憶装置１に書き込む。
【０１０４】
書込部１２は、記憶部２０に記憶された復元できないデータが削除されたとき、オン状態の記憶装置１に記憶されたデータの中で、使用される可能性の高いデータを記憶部２０に書き込む。
【０１０５】
書込部１２は、削除部１１が復元できるデータを記憶部２０の保持情報２１から削除したとき、復元できるデータのデータ識別子を記憶部２０のオフロード情報２３に書き込む。
【０１０６】
また、書込部１２は、パリティを記憶した他の記憶装置１から第２記憶装置にパリティを書き戻すとき、取得部１４により取得されたパリティとデータとを用いて復元できるデータを記憶部２０に書き込む。これにより、読込部１５は、パリティを第２記憶装置に書き戻したあと、第２記憶装置がオフ状態になっても、復元できるデータを記憶部２０から読み込むことができる。
【０１０７】
書込部１２は、第１記憶装置がオン状態となったとき、記憶部２０に記憶された第１記憶装置に記憶された復元できないデータを第１記憶装置に書き戻す。そして、書込部１２は、削除部１１が記憶部２０から復元できないデータを削除したとき、オン状態の記憶装置１に記憶されたデータの中で、使用される可能性の高いデータを記憶部２０に書き込む。
【０１０８】
切替部１３は、第１記憶装置をオフ状態にするとき、書込部１２が復元できないデータを記憶部２０に書込んだあと、第１記憶装置を電源オフ状態に切り替える。
【０１０９】
切替部１３は、第２記憶装置がオン状態となり、書込部１２がオン状態の他の記憶装置１に記憶されたパリティを第２記憶装置に書き込むと、第２記憶装置をオフ状態に切り替える。
【０１１０】
取得部１４は、第１記憶装置がオフ状態のとき、復元できるデータの読み込み要求が与えられると、オン状態の他の記憶装置１に分散して記憶されたデータとパリティとを用いて復元できるデータを取得する。取得部１４は、例えば、管理部１８に復元できるデータを復元するためのデータとパリティとを問い合わせることにより、復元できるデータを復元するためのデータとパリティとを取得しても良い。管理部１８は、例えば、取得部１４から復元できるデータを復元するためのデータとパリティとについて問い合わせがあると、パリティ管理情報２５を参照し、復元できるデータのデータ識別子に関連付けられたデータ識別子と、パリティ識別子とを検索する。また、管理部１８は、データ管理情報２４を参照し、検索したデータ識別子と、パリティ識別子とに関連付けられた記憶装置１からデータとパリティとを取得する。そして、管理部１８は、取得したデータと、パリティとを取得部１４に送信しても良い。
【０１１１】
また、取得部１４は、第１記憶装置がオフ状態のとき、第２記憶装置がオン状態になると、記憶部２０のオフロード情報２３に記憶されたデータ識別子で識別される復元できるデータを取得する。そして、書込部１２は、取得部１４により取得された復元できるデータを記憶部２０の保持情報２１に書き込む。これにより、読込部１５は、第２記憶装置がオン状態になり、書込部１２がパリティを第２記憶装置に書き戻したあと、第２記憶装置がオフ状態になっても、復元できるデータを記憶部２０の保持情報２１から読み込むことができる。
【０１１２】
読込部１５は、第１記憶装置がオフ状態のとき、復元できないデータの読み込み要求が与えられると、記憶部２０の保持情報２１に記憶した復元できないデータを読み込む。
【０１１３】
読込部１５は、第１記憶装置がオフ状態のとき、復元できるデータの読み込み要求が与えられると、オン状態の他の記憶装置１に分散して記憶されたデータとパリティとを用いて取得部１４が取得したデータを読み込む。
【０１１４】
読込部１５は、第１記憶装置がオフ状態であり、復元できないデータが他の記憶装置１に書込まれているとき、復元できないデータの読み込み要求が与えられると、他の記憶装置１に記憶された復元できないデータを読み込む。
【０１１５】
記憶部２０は、情報処理装置４０からデータの書き込み要求やデータの読み込み要求が与えられたとき、記憶装置１よりも優先的にアクセスされる。記憶部２０は、例えば、キャッシュである。
【０１１６】
図９を参照して説明する。
図９は、保持情報の一例を示す図である。図９を参照して、保持情報２１について説明する。
【０１１７】
保持情報２１は、アクセスされる可能性の高いデータを格納する。そして、保持情報２１は、端末１０１から情報処理装置５０に読み込み要求が与えられたとき、優先的にアクセスされる情報である。保持情報２１に格納されるデータは、例えば、書き込み要求や読み出し要求により、アクセスされた時刻が新しいものから順番に並べて格納されても良い。
【０１１８】
保持情報２１には、データ識別子と、データと、時刻とが関連付けられて格納されている。
データ識別子は、データを識別するための情報である。
データは、同じレコードに属するデータ識別子で識別されるデータである。
【０１１９】
時刻は、記憶装置１に、同じレコードに含まれるデータ識別子で識別されるデータが最後に格納された時刻を示す。データが最後に格納された時刻とは、例えば、データが更新されていない場合、記憶装置１に最初にデータが格納された時刻を示す。データが最後に記憶されたと時刻とは、例えば、データが更新されている場合、データが最後に更新された時刻を示す。
【０１２０】
図９（ａ）に示す保持情報２１を参照して、保持情報２１に格納されているレコードの示す情報を詳細に説明する。
【０１２１】
保持情報２１は、図９（ａ）に示すように、データ識別子ｄ９と、データＤ９とが関連付けられて記憶されているとき、データ識別子ｄ９で識別されるデータＤ９が記憶部２０に記憶されていることを示す。
【０１２２】
また、保持情報２１は、図９（ａ）に示すように、データＤ９と、時刻ｔ９とが関連付けられて格納されているとき、時刻ｔ９にデータＤ９が記憶装置１に記憶されたことを示す。
【０１２３】
記憶装置５１がオン状態となったとき、保持情報２１が図９（ａ）の状態から、図９（ｂ）、図９（ｃ）の状態に更新される処理の一例を説明する。なお、以下の説明では、保持情報２１に最大で９つまでのデータが格納できるものとする。
【０１２４】
削除部１１は、例えば、記憶装置５１がオン状態となったとき、図９（ｂ）に示すように、記憶装置５１に記憶されたデータＤ１とデータＤ１３とを、保持情報２１から削除する。すなわち、削除部１１は、図９（ａ）の太枠で示すデータＤ１とデータＤ１３とが格納されたレコードを削除し、保持情報２１のデータの格納状態を図９（ｂ）の状態にする。
【０１２５】
そして、書込部１２は、例えば、記憶装置５１を含むオン状態の記憶装置１の履歴情報２２を参照し、図９（ｃ）の太枠に示すように、最近保持情報２１から削除されたデータから順に保持情報２１に書き込む。
【０１２６】
図１０を参照して説明する。
図１０は、履歴情報の一例を示す図である。図１０を参照して、履歴情報２２について説明する。
【０１２７】
履歴情報２２は、保持情報２１に格納できなくなったデータの履歴を格納する。保持情報２１に格納できなくなったデータとは、例えば、保持情報２１を記憶する記憶領域に記憶できるデータ量が上限まで達したとき、保持情報２１から削除されたデータのことである。履歴情報２２は、記憶装置１ごとに備えられる。履歴情報２２に格納されるデータは、例えば、履歴情報２２に格納された時刻が新しいものから順番に並べて格納されても良い。以下の説明では、履歴情報２２に格納されているレコードのことを削除履歴とも言う。情報処理装置５０は、例えば、保持情報２１からデータを削除するとき、保持情報２１に格納されているデータの中で、アクセスされた時刻が最も古いデータから順に削除しても良い。
【０１２８】
履歴情報２２には、データ識別子と、時刻とが関連付けられて格納されている。
データ識別子は、データを識別するための情報である。
時刻は、同じレコードに属するデータ識別子が履歴情報２２に格納された時刻を示す。
【０１２９】
図１０（ａ）に示す履歴情報２２を参照して、履歴情報２２に格納されているレコードの示す情報を詳細に説明する。
【０１３０】
履歴情報２２は、図１０（ａ）に示すように、データ識別子ｄ２５と、時刻ｔ２５とが関連付けられて格納されているとき、時刻ｔ２５にデータＤ２５が履歴情報２２に記憶されたことを示す。
【０１３１】
記憶装置５１のデータを保持情報２１に格納するときの処理を、図１０（ａ）〜（ｈ）を参照して説明する。
【０１３２】
図１０（ａ）、（ｅ）は、記憶装置５１の履歴情報２２である。図１０（ｂ）、（ｆ）は、記憶装置５２の履歴情報２２である。図１０（ｃ）、（ｇ）は、記憶装置５３の履歴情報２２である。図１０（ｄ）、（ｈ）は、記憶装置５４の履歴情報２２である。
【０１３３】
図９（ｂ）のように、保持情報２１にデータ２つ分の記憶領域が空いたとき、書込部１２は、図１０（ａ）〜（ｄ）を参照して、時刻が最近のものを２つ抽出する。書込部１２は、例えば、ｔ２５およびｔ３７を最近の時刻として抽出すると、ｄ２５およびｄ３７で識別されるデータＤ２５およびデータＤ３７を保持情報２１に書き込む。そして、削除部１１は、図１０（ｅ）に示すように、記憶装置５１の履歴情報２２からｄ２５およびｄ３７を含むレコードを削除する。
【０１３４】
図１１を参照して説明する。
図１１は、オフロード情報の一例を示す図である。図１１を参照して、オフロード情報２３について説明する。
【０１３５】
オフロード情報２３は、オン状態の記憶装置１に記憶されたデータとパリティとを用いて復元できるデータを示す情報が格納される。
オフロード情報２３には、データ識別子と、時刻とが関連付けられて格納されている。
【０１３６】
データ識別子は、データを識別するための情報である。
時刻は、同じレコードに属するデータ識別子が記憶装置１に格納された時刻を示す。
【０１３７】
図１１（ｂ）に示すオフロード情報２３を参照して、オフロード情報２３に格納されているレコードの示す情報を詳細に説明する。
【０１３８】
オフロード情報２３は、図１１（ｂ）に示すように、データ識別子ｄ１と、時刻ｔ１とが関連付けられて格納されているとき、時刻ｔ１に記憶装置１に記憶されたデータＤ１がオフロード済みとなったことを示す。
【０１３９】
図８を参照して説明する。
送信部３１は、例えば、制御部１０から出力されたデータ、パリティ、および要求を記憶装置１や他の情報処理装置に送信する。
【０１４０】
受信部３２は、例えば、端末１０１や情報処理装置５０〜７０および記憶装置１から送信されたデータ、パリティ、および要求を受信する。そして、受信部３２は、受信したデータ、パリティ、および要求を制御部１０に入力する。
【０１４１】
図１２、図１３は、ディスクをオフ状態に切替える処理を示すフローチャートである。
図１２、図１３を参照して、分散ストレージシステム１００において、パリティ用の記憶装置１がオフ状態のとき、更なる消費電力の削減のため、データ用の記憶装置１をオン状態からオフ状態に切替えるときの処理を説明する。以下の説明では、パリティ用の記憶装置１がオフ状態のとき、記憶装置５１をオン状態からオフ状態に切替える処理を一例として説明する。また、情報処理装置５０が実行する処理は、情報処理装置５０の制御部１０により実行されるものとする。
【０１４２】
情報処理装置５０は、記憶装置５１をオフ状態にするか否かを判定する（Ｓ１０１）。情報処理装置５０は、記憶装置５１をオフ状態にしないとき（Ｓ１０１にてＮｏ）、Ｓ１０１の処理を繰り返す。情報処理装置５０は、例えば、ユーザにより記憶装置５１をオフ状態にする要求が与えられる、または任意のアルゴリズムにより記憶装置５１をオフ状態にすると決定すると、記憶装置５１をオフ状態に切替える処理を開始する（Ｓ１０１にてＹｅｓ）。
【０１４３】
情報処理装置５０は、記憶装置５１をオフ状態に切替える処理を開始すると（Ｓ１０１にてＹｅｓ）、記憶部２０に記憶された保持情報２１に記憶装置１のオフロード済みのデータがあるか否かを判定する（Ｓ１０２）。
【０１４４】
情報処理装置５０は、記憶部２０に記憶された保持情報２１にオフロード済みのデータがあるとき（Ｓ１０２にてＹｅｓ）、オフロード済みのデータを記憶部２０に記憶された保持情報２１から削除する（Ｓ１０３）。このとき、情報処理装置５０は、記憶部２０に記憶された保持情報２１からオフロード済みのデータを全て削除しても良い。
【０１４５】
また、情報処理装置５０は、記憶部２０に記憶された記憶装置５１のオフロード情報２３を更新する（Ｓ１０４）。そして、情報処理装置５０は、Ｓ１０２の処理を実行する。すなわち、情報処理装置５０は、Ｓ１０３で記憶部２０に記憶された保持情報２１から削除したデータをオフロード済みのデータとして、保持情報２１から削除したデータのデータ識別子を記憶部２０に記憶された記憶装置５１のオフロード情報２３に格納する。
【０１４６】
Ｓ１０２において、情報処理装置５０は、記憶部２０に記憶された保持情報２１にオフロード済みのデータがないとき（Ｓ１０２にてＮｏ）、記憶部２０の保持情報２１を記憶する記憶領域に空き領域あるか否かを判定する（Ｓ１０５）。
【０１４７】
情報処理装置５０は、記憶部２０の保持情報２１を記憶する記憶領域に空き領域がないとき（Ｓ１０５にてＮｏ）、記憶装置５１をオフ状態に切替える（Ｓ１０６）。そして、情報処理装置５０は、記憶装置５１をオフ状態に切替える処理を終了する。
【０１４８】
情報処理装置５０は、記憶部２０の保持情報２１を記憶する記憶領域に空き領域があるとき（Ｓ１０５にてＹｅｓ）、Ｓ１０７の処理を実行する。
【０１４９】
図１３を参照して説明する。
情報処理装置５０は、記憶部２０に記憶された記憶装置５１の履歴情報２２に削除履歴が格納されているか否かを判定する（Ｓ１０７）。情報処理装置５０は、記憶部２０に記憶された記憶装置５１の履歴情報２２に削除履歴がないとき（Ｓ１０７にてＮｏ）、Ｓ１０６の処理を実行する。
【０１５０】
情報処理装置５０は、記憶部２０に記憶された記憶装置５１の履歴情報２２に削除履歴があるとき（Ｓ１０７にてＹｅｓ）、記憶部２０に記憶された記憶装置５１の履歴情報２２からデータ識別子を取得する（Ｓ１０８）。このとき、情報処理装置５０は、記憶部２０に記憶された記憶装置５１の履歴情報２２に格納されている削除履歴の時刻を参照し、最近削除されたデータのデータ識別子（最近履歴情報２２に格納されたデータ識別子）を取得しても良い。情報処理装置５０は、Ｓ１０７において、記憶部２０に記憶された履歴情報２２に、前回までに参照した削除履歴以外の削除履歴が格納されているか否かを判定するものとする。
【０１５１】
そして、情報処理装置５０は、記憶部２０に記憶された記憶装置５１のオフロード情報２３にＳ１０８で取得したデータ識別子があるか否かを検索する（Ｓ１０９）。
【０１５２】
情報処理装置５０は、記憶部２０に記憶された記憶装置５１のオフロード情報２３にＳ１０８で取得したデータ識別子があるとき（Ｓ１１０にてＹｅｓ）、Ｓ１０７の処理を実行する。このとき、情報処理装置５０は、Ｓ１０７において、前回までに参照した削除履歴以外の削除履歴が格納されているか否かを判定する。
【０１５３】
情報処理装置５０は、記憶部２０に記憶された記憶装置５１のオフロード情報２３にＳ１０８で取得したデータ識別子がないとき（Ｓ１１０にてＮｏ）、記憶装置５１からデータ識別子に対応するデータを取得する（Ｓ１１１）。なお、オフロード情報２３にＳ１０８で取得したデータ識別子がないときとは、取得したデータ識別子で識別されるデータがオフロード済みでないことを示す。すなわち、オフロード情報２３にＳ１０８で取得したデータ識別子がないときとは、取得したデータ識別子で識別されるデータが復元できないデータであることを示す。
【０１５４】
そして、情報処理装置５０は、Ｓ１１１で取得したデータを記憶部２０に記憶された保持情報２１に書き込む（Ｓ１１２）。そして、情報処理装置５０は、Ｓ１０５の処理を実行する。
【０１５５】
以上のように、情報処理装置５０は、記憶装置５１をオフ状態にするとき、復元できないデータを記憶部２０に記憶された保持情報２１に書きこむ。これにより、情報処理装置５０は、記憶装置５１がオフ状態のとき、記憶装置５１に記憶された復元できないデータの読み込み要求が与えられた場合、記憶部２０に記憶した復元できないデータを読み込む。また、情報処理装置５０は、記憶装置５１がオフ状態のとき、オフロード済みのデータの読み込み要求が与えられると、オン状態の他の記憶装置１に分散して記憶されたデータとパリティとを用いて復元できるデータを取得し、取得したデータを読み込む。したがって、情報処理装置５０は、記憶装置５１がオフ状態のときにおいても、記憶装置５１に記憶されたデータを、パリティ用の記憶装置１をオン状態にすることなく読み込むことができる。
【０１５６】
図１４、図１５は、データがオフロード済みになったときの処理を示すフローチャートである。
【０１５７】
図１４、図１５を参照して、分散ストレージシステム１００において、データ用の記憶装置１をオフ状態にしているとき、情報処理装置の記憶部２０に記憶している記憶装置１のデータがオフロード済みになったときの処理を説明する。以下の説明では、記憶装置５１がオフ状態のとき、情報処理装置５０の記憶部２０に記憶された記憶装置５１のデータがオフロード済みになったときの処理を一例として説明する。また、情報処理装置５０が実行する処理は、情報処理装置５０の制御部１０により実行されるものとする。
【０１５８】
情報処理装置５０は、記憶部２０に記憶された記憶装置５１のデータがオフロード済みになったか否かを判定する（Ｓ２０１）。情報処理装置５０は、記憶部２０に記憶された記憶装置５１のデータがオフロード済みになるまで、Ｓ２０１の処理を繰り返し実行する（Ｓ２０１にてＮｏ）。
【０１５９】
情報処理装置５０は、記憶部２０に記憶された記憶装置５１のデータがオフロード済みになると、記憶装置５１がオフ状態であるか否かを判定する（Ｓ２０２）。情報処理装置５０は、記憶装置５１がオン状態のとき（Ｓ２０２にてＮｏ）、記憶装置５１のデータがオフロード済みになったときの処理を終了するか否かを判定する（Ｓ２０３）。
【０１６０】
情報処理装置５０は、データがオフロード済みになったときの処理を終了しないと判定すると（Ｓ２０３にてＮｏ）、Ｓ２０１の処理を実行する。また、情報処理装置５０は、例えば、ユーザからの終了要求が入力されると、データがオフロード済みになったときの処理を終了すると判定し（Ｓ２０３にてＹｅｓ）、データがオフロード済みになったときの処理を終了する。なお、情報処理装置５０は、Ｓ２０３に限らず、ユーザからの終了要求が入力されたとき、データがオフロード済みになったときの処理を終了しても良い。
【０１６１】
情報処理装置５０は、記憶装置５１がオフ状態のとき（Ｓ２０２にてＹｅｓ）、記憶部２０に記憶された保持情報２１に、Ｓ２０１でオフロード済みになったデータがあるか否かを判定する（Ｓ２０４）。情報処理装置５０は、記憶部２０にＳ２０１でオフロード済みになったデータがないとき（Ｓ２０４にてＮｏ）、Ｓ２０３の処理を実行する。
【０１６２】
情報処理装置５０は、記憶部２０に記憶された保持情報２１にＳ２０１でオフロード済みになったデータがあるとき（Ｓ２０４にてＹｅｓ）、オフロード済みのデータを記憶部２０に記憶された保持情報２１から削除する（Ｓ２０５）。
【０１６３】
情報処理装置５０は、記憶部２０に記憶された記憶装置５１のオフロード情報２３に、Ｓ２０１でオフロード済みになったデータのデータ識別子を書き込む（Ｓ２０６）。そして、情報処理装置５０は、Ｓ２０７の処理を実行する。
【０１６４】
図１５を参照して説明する。
情報処理装置５０は、記憶部２０に記憶されたオン状態の記憶装置１の履歴情報２２を参照する（Ｓ２０７）。
【０１６５】
情報処理装置５０は、記憶部２０に記憶されたオン状態の記憶装置１の履歴情報２２に削除履歴がないとき（Ｓ２０８にてＮｏ）、Ｓ２０３の処理を実行する。
【０１６６】
情報処理装置５０は、記憶部２０に記憶されたオン状態の記憶装置１の履歴情報２２に削除履歴があるとき（Ｓ２０８にてＹｅｓ）、履歴情報２２に格納された削除履歴の中から最新の時刻に関連付けられたデータ識別子を取得する（Ｓ２０９）。
【０１６７】
情報処理装置５０は、Ｓ２０９で取得したデータ識別子に対応するデータを、オン状態の記憶装置１から取得する（Ｓ２１０）。
【０１６８】
情報処理装置５０は、取得したデータを記憶部２０に記憶された保持情報２１に書き込む（Ｓ２１１）。
【０１６９】
情報処理装置５０は、履歴情報２２から取得したデータ識別子を削除する（Ｓ２１２）。そして、情報処理装置５０は、Ｓ２０３の処理を実行する。
【０１７０】
図１６、図１７は、パリティ用の記憶装置がオン状態になったときの処理を示すフローチャートである。
【０１７１】
図１６、図１７を参照して、分散ストレージシステム１００において、オフ状態にしていたパリティ用の記憶装置１がオン状態になったときの処理を説明する。以下の説明では、パリティ用の記憶装置５５がオフ状態からオン状態に切り替わるときの処理を一例として説明する。また、情報処理装置５０が実行する処理は、情報処理装置５０の制御部１０により実行されるものとする。
【０１７２】
情報処理装置５０は、記憶装置５５がオン状態になったか否かを判定する（Ｓ３０１）。情報処理装置５０の切替部１３は、例えば、オン状態の他の記憶装置１の空き領域が所定量以下になったとき、パリティ用の記憶装置１をオン状態としても良い。また、情報処理装置５０の切替部１３は、所定時間ごとに、パリティ用の記憶装置１をオン状態としても良い。また、パリティ用の記憶装置１をオンにする処理は、他の情報処理装置により実行されても良い。
【０１７３】
情報処理装置５０は、記憶装置５５がオン状態になるまで、Ｓ３０１の処理を繰り返し実行する（Ｓ３０１にてＮｏ）。
【０１７４】
情報処理装置５０は、記憶装置５５がオン状態になると（Ｓ３０１にてＹｅｓ）、記憶装置７１に記憶されたパリティにより復元されるデータのデータ識別子を取得する（Ｓ３０２）。
【０１７５】
情報処理装置５０は、記憶装置５１がオフ状態か否かを判定する（Ｓ３０３）。情報処理装置５０は、記憶装置５１がオン状態のとき（Ｓ３０３にてＮｏ）、記憶装置７１に記憶されたパリティを記憶装置５５に書き込む（Ｓ３０４）。
【０１７６】
また、情報処理装置５０は、記憶装置７１に記憶されたパリティを削除する（Ｓ３０５）。そして、情報処理装置５０は、パリティ用の記憶装置がオン状態になったときの処理を終了する。
【０１７７】
Ｓ３０３において、情報処理装置５０は、記憶装置５１がオフ状態のとき（Ｓ３０３にてＹｅｓ）、記憶装置５１のオフロード情報からＳ３０２で取得したデータ識別子を検索する（Ｓ３０６）。
【０１７８】
情報処理装置５０は、記憶装置５１のオフロード情報にＳ３０２で取得したデータ識別子があるとき（Ｓ３０７）、データ識別子に対応するデータを取得する（Ｓ３０８）。そして、情報処理装置５０は、Ｓ３０９の処理を実行する。
【０１７９】
図１７を参照して説明する。
情報処理装置５０は、記憶部２０の保持情報２１を記憶する記憶領域に空き領域があるか否かを判定する（Ｓ３０９）。
【０１８０】
情報処理装置５０は、記憶部２０の保持情報２１を記憶する記憶領域に空き領域があると（Ｓ３０９にてＹｅｓ）、Ｓ３０６で取得したデータを記憶部２０に記憶された保持情報２１に記憶する（Ｓ３１０）。
【０１８１】
情報処理装置５０は、記憶装置５１のオフロード情報２３からＳ３０２で取得したデータ識別子を含むレコードを削除する（Ｓ３１１）。そして、情報処理装置５０は、Ｓ３０４の処理を実行する。
【０１８２】
Ｓ３０９において、情報処理装置５０は、記憶部２０の保持情報２１の記憶領域に空き領域がないとき（Ｓ３０９にてＮｏ）、オン状態の記憶装置１のデータを記憶部２０から削除する。そして、情報処理装置５０は、Ｓ３０９の処理を実行する。
【０１８３】
図１８は、データ用の記憶装置がオフ状態からオン状態になったときの処理を示すフローチャートである。
【０１８４】
図１８を参照して、分散ストレージシステム１００において、オフ状態にしていたデータ用の記憶装置１がオン状態になったときの処理を説明する。以下の説明では、データ用の記憶装置５１がオフ状態からオン状態に切り替わるときの処理を一例として説明する。また、情報処理装置５０が実行する処理は、情報処理装置５０の制御部１０により実行されるものとする。
【０１８５】
情報処理装置５０は、記憶装置５１がオン状態になったか否かを判定する（Ｓ４０１）。情報処理装置５０の切替部１３は、オン状態の他の記憶装置１の空き領域が所定量以下になると、データ用の記憶装置１をオン状態にしても良い。また、データ用の記憶装置１をオンにする処理は、他の情報処理装置により実行されても良い。
【０１８６】
情報処理装置５０は、記憶装置５１がオン状態になるまで、Ｓ４０１の処理を繰り返し実行する（Ｓ４０１にてＮｏ）。
【０１８７】
情報処理装置５０は、記憶装置５１がオン状態になると（Ｓ４０１にてＹｅｓ）、記憶部２０に記憶された記憶装置５１のオフロード情報２３にオフロード済みのデータを示す情報が格納されているか否かを判定する（Ｓ４０２）。
【０１８８】
情報処理装置５０は、記憶部２０に記憶された記憶装置５１のオフロード情報２３にオフロード済みのデータを示す情報が格納されていないとき（Ｓ４０２にてＮｏ）、保持情報２１を再構築する（Ｓ４０３）。保持情報２１を再構築するとは、例えば、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）などの既存のＣａｃｈｅ  Ｒｅｐｌａｃｅｍｅｎｔ  Ａｌｇｏｒｉｔｈｍを用いて、保持情報２１に使用頻度の高いデータを載せなおす処理のことである。
【０１８９】
情報処理装置５０は、記憶部２０に記憶された記憶装置５１のオフロード情報２３にオフロード済みのデータを示す情報が格納されているとき（Ｓ４０２にてＹｅｓ）、記憶装置５１のオフロード情報２３からデータ識別子を取得する（Ｓ４０４）。
【０１９０】
そして、情報処理装置５０は、取得したデータ識別子に対応するデータを取得する（Ｓ４０５）。
【０１９１】
情報処理装置５０は、取得したデータを記憶装置５１に書き込む（Ｓ４０６）。
情報処理装置５０は、記憶装置５１のオフロード情報２３から取得したデータを含むレコードを削除する（Ｓ４０７）。
そして、情報処理装置５０は、Ｓ４０２の処理を実行する。
【０１９２】
図１９を参照して、情報処理装置４０〜７０の構成について説明する。
図１９において、コンピュータ装置２００は、制御回路２０１と、記憶装置２０２と、読み書き装置２０３と、記録媒体２０４と、通信インターフェイス２０５（通信Ｉ／Ｆ）と、入出力インターフェイス２０６（入出力Ｉ／Ｆ）と、表示装置２０７と、ネットワーク２０８とを備えている。また、各構成要素は、バス２０９により接続されている。
【０１９３】
制御回路２０１は、コンピュータ装置２００全体の制御をする。そして、制御回路２０１は、例えば、ＣＰＵ、マルチコアＣＰＵ、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）およびＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などである。制御回路２０１は、例えば、図２において、制御部４１として機能する。また、制御回路２０１は、例えば、図８において、制御部１０として機能する。なお、図２において、記憶部４２に記憶されたデータ管理情報２４と、パリティ管理情報２５とは、例えば、ＣＰＵ、ＦＰＧＡ、およびＰＬＤのキャッシュに記憶されても良い。また、図８において、記憶部２０に記憶された保持情報２１と、履歴情報２２と、オフロード情報２３とは、例えば、ＣＰＵ、ＦＰＧＡ、およびＰＬＤのキャッシュに記憶されても良い。
【０１９４】
記憶装置２０２は、各種データを記憶する。そして、記憶装置２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリや、ＨＤなどで構成される。記憶装置２０２は、例えば、図２において、記憶部４２として機能する。また、記憶装置２０２は、例えば、図８において、記憶部２０として機能する。
【０１９５】
また、ＲＯＭは、ブートプログラムなどのプログラムを記憶している。ＲＡＭは、制御回路２０１のワークエリアとして使用される。ＨＤは、ＯＳ、アプリケーションプログラム、ファームウェアなどのプログラム、および各種データを記憶している。
【０１９６】
記憶装置２０２は、例えば、制御回路２０１を、制御部１０、および制御部４１として機能させる記憶装置制御プログラムを記憶する。
【０１９７】
記憶装置の制御をするとき、情報処理装置４０〜７０は、記憶装置２０２に記憶された記憶装置制御プログラムをＲＡＭに読み出す。ＲＡＭに読み出された記憶装置制御プログラムを制御回路２０１で実行することにより、情報処理装置４０〜７０は、生成処理と、振分処理と、管理処理と、削除処理と、書込処理と、切替処理と、読込処理と、取得処理の１以上を含む記憶装置制御処理を実行する。
【０１９８】
なお、記憶装置制御プログラムは、制御回路２０１が通信インターフェイス２０５を介してアクセス可能であれば、ネットワーク２０８上のサーバが有する記憶装置に記憶されていても良い。
【０１９９】
読み書き装置２０３は、制御回路２０１に制御され、着脱可能な記録媒体２０４のデータのリード／ライトを行なう。そして、読み書き装置２０３は、例えば、ＦＤＤ（Ｆｌｏｐｐｙ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｄｒｉｖｅ）、ＤＶＤＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＢＤＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｋ  Ｄｒｉｖｅ）およびＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などである。
【０２００】
記録媒体２０４は、各種データを保存する。記録媒体２０４は、例えば、記憶装置制御プログラムを記憶する。さらに、記録媒体２０４は、図２に示す、データ管理情報２４と、パリティ管理情報２５とを記憶しても良い。また、記録媒体２０４は、図８に示す、保持情報２１と、履歴情報２２と、オフロード情報２３とを記憶しても良い。
【０２０１】
そして、記録媒体２０４は、読み書き装置２０３を介してバス２０９に接続され、制御回路２０１が読み書き装置２０３を制御することにより、データのリード／ライトが行なわれる。また、記録媒体２０４は、例えば、ＦＤ（Ｆｌｏｐｐｙ  Ｄｉｓｋ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｋ：登録商標）、およびフラッシュメモリなどである。
【０２０２】
通信インターフェイス２０５は、ネットワーク２０８を介してコンピュータ装置２００と他の装置とを通信可能に接続する。そして、通信インターフェイス２０５は、例えば、図２において、送受信部４３として機能する。また、通信インターフェイス２０５は、例えば、図８において、送受信部３０として機能する。
【０２０３】
入出力インターフェイス２０６は、例えば、キーボード、マウス、およびタッチパネルなどと接続され、接続された装置から各種情報を示す信号が入力されると、バス２０９を介して入力された信号を制御回路２０１に出力する。また、入出力インターフェイス２０６は、制御回路２０１から出力された各種情報を示す信号がバス２０９を介して入力されると、接続された各種装置にその信号を出力する。入出力インターフェイス２０６は、例えば、ユーザにより入力される、記憶装置１をオフ状態にする要求を受け付けても良い。
【０２０４】
表示装置２０７は、例えば、入出力インターフェイス２０６に接続され、各種情報を表示する。
【０２０５】
ネットワーク２０８は、例えば、ＬＡＮ、無線通信、またはインターネットなどであり、コンピュータ装置２００と他の装置を通信接続する。
【０２０６】
以上のように、実施形態の分散ストレージシステムにおいて、データ用の記憶装置１をオフ状態にするとき、情報処理装置は、オフロード済みのデータを記憶部２０から削除し、復元できないデータを記憶部２０に記憶する。そして、情報処理装置は、オフ状態の記憶装置１に記憶されたデータの読み込み要求が与えられたとき、オフ状態の記憶装置１の電源を入れることなく、記憶部２０からオフ状態の記憶装置１に記憶されたデータを出力する。これにより、実施形態の分散ストレージシステム１００は、運用中において、データ用の記憶装置１のオフ状態を維持し、消費電力を削減することができる。
【０２０７】
また、実施形態の分散ストレージシステム１００において、データ用の記憶装置１がオフ状態のとき、オフロード済みのデータの読み込み要求が与えられると、情報処理装置は、他の記憶装置１に記憶されたデータとパリティとを取得する。そして、情報処理装置は、オフ状態の記憶装置１の電源を入れることなく、取得したデータとパリティを用いてオフロード済みのデータを復元し、復元したデータを出力する。これにより、実施形態の分散ストレージシステム１００は、運用中において、データ用の記憶装置１のオフ状態を維持し、消費電力を削減することができる。
【０２０８】
さらに、実施形態の分散ストレージシステム１００において、情報処理システムは、復元できないデータを記憶部２０に書き込むとき、使用される可能性の高いデータを書き込み、読み込み要求されたデータが記憶部２０に記憶されている可能性を高くする。これにより、実施形態の分散ストレージシステム１００は、データの読み込みをするとき、記憶部２０上にデータがないために、オフ状態の記憶装置１をオン状態にする確率を低くする。したがって、実施形態の分散ストレージシステム１００は、運用中において、データ用の記憶装置１のオフ状態を維持できる確率を向上し、消費電力をさらに削減することができる。
【０２０９】
実施形態の分散ストレージシステム１００において、情報処理システムは、データ用の記憶装置１がオフ状態のとき、データ用の記憶装置１に記憶されたデータの中で新たにオフロード済みになったデータがあるとき、記憶部２０からそのデータを削除する。そして、情報処理装置は、オン状態の記憶装置１の履歴情報２２の中で、使用される可能性の高いデータを記憶部２０に書き込む。これにより、実施形態の分散ストレージシステム１００は、データ用の記憶装置１のオフ状態を維持しながら、可能な限り記憶部２０に使用される可能性の高いデータを記憶しておくので、要求に対する処理速度を向上することができる。
【０２１０】
なお、本実施形態は、以上に述べた実施形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【０２１１】
以上記載した各実施例を含む実施形態に関し、さらに以下の付記を開示する。なお、本発明は、以下の付記に限定されるものではない。
（付記１）
複数の記憶装置と情報処理装置とを備える分散ストレージシステムであって、
前記情報処理装置は、
前記複数の記憶装置よりも優先的にアクセスされる記憶部と、
第１記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが前記記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除する削除部と、
前記第１記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込む書込部と、
前記書込部が復元できない前記データを前記記憶部に書込むと、前記第１記憶装置を電源オフ状態に切り替える切替部と、
前記第１記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む読込部と、
を備えることを特徴とする分散ストレージシステム。
（付記２）
前記情報処理装置は、さらに、
前記第１記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得する取得部を備え、
前記読込部は、
前記取得部が取得した前記データを読み込む
ことを特徴とする付記１に記載の分散ストレージシステム。
（付記３）
前記書込部は、
復元できない前記データを前記記憶部に書き込むとき、使用される可能性の高いデータを前記記憶部に書き込む
ことを特徴とする付記１または２に記載の分散ストレージシステム。
（付記４）
前記書込部は、
前記第１記憶装置が電源オフ状態のとき、前記第１記憶装置に記憶された復元できない前記データを更新する書き込み要求が与えられると、復元できない前記データを電源オン状態の他の記憶装置に書き込み、さらに、前記記憶部に記憶された復元できない前記データが削除されたとき、電源オン状態の記憶装置に記憶されたデータの中で、使用される可能性の高いデータを前記記憶部に書き込み、
前記削除部は、
復元できない前記データが電源オン状態の他の記憶装置に書込まれたとき、前記記憶部に記憶された更新前の復元できない前記データを削除し、
前記読込部は、
前記第１記憶装置が電源オフ状態であり、復元できない前記データが前記他の記憶装置に書込まれているとき、復元できない前記データの読み込み要求が与えられると、前記他の記憶装置に記憶された復元できない前記データを読み込む
ことを特徴とする付記１〜３のいずれか一つに記載の分散ストレージシステム。
（付記５）
前記情報処理装置は、さらに、
前記第１記憶装置が電源オフ状態のとき、第２記憶装置が電源オン状態になると、前記記憶部に記憶されたデータ識別子で識別される復元できる前記データを取得する取得部を備え、
前記書込部は、
前記削除部が復元できる前記データを前記記憶部から削除したとき、復元できる前記データのデータ識別子を前記記憶部に書き込み、前記取得部が復元できる前記データを取得したとき、取得した前記データを前記記憶部に書き込み、さらに、電源オン状態の他の記憶装置に記憶された前記パリティを前記第２記憶装置に書き込み、
前記切替部は、
電源オン状態の他の記憶装置に記憶された前記パリティが前記第２記憶装置に書き込まれると、前記第２記憶装置を電源オフ状態に切り替え、
前記削除部は、
前記第２記憶装置が電源オフ状態に切替えられると、電源オン状態の他の記憶装置に記憶された前記パリティを前記他の記憶装置から削除し、
前記読込部は、
取得した復元できる前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できる前記データを読み込む
ことを特徴とする付記１〜４のいずれか一つに記載の分散ストレージシステム。
（付記６）
前記削除部は、
前記第１記憶装置が電源オン状態となったとき、前記記憶部から復元できない前記データを削除し、
前記書込部は、
電源オン状態の記憶装置に記憶された前記データの中で、使用される可能性の高いデータを前記記憶部に書き込む
ことを特徴とする付記１〜５のいずれか一つに記載の分散ストレージシステム。
（付記７）
前記書込部は、
電源オン状態の前記他の記憶装置の空き領域に前記パリティ、および復元できない前記データを書き込み、
前記切替部は、
電源オン状態の前記他の記憶装置の空き領域が所定量以下になると、前記第２記憶装置を電源オン状態とする
ことを特徴とする付記１〜６のいずれか一つに記載の分散ストレージシステム。
（付記８）
前記書込部は、
電源オン状態の前記他の記憶装置の空き領域に前記パリティ、および復元できない前記データを書き込み、
前記切替部は、
電源オン状態の前記他の記憶装置の空き領域が所定量以下になると、前記第１記憶装置を電源オン状態とする
ことを特徴とする付記１〜７のいずれか一つに記載の分散ストレージシステム。
（付記９）
前記切替部は、
所定時間ごとに、前記第２記憶装置をオン状態にする
ことを特徴とする付記１〜８のいずれか一つに記載の分散ストレージシステム。
（付記１０）
前記情報処理装置、またはそれ以外の情報処理装置は、
前記記憶部と、前記削除部と、前記書込部と、切替部と、前記読込部のいずれか１以上を備える
ことを特徴とする付記１〜９のいずれか一つに記載の分散ストレージシステム。
（付記１１）
複数の記憶装置よりも優先的にアクセスされる記憶部を備える情報処理装置のコンピュータによって実行される記憶装置制御方法であって、
前記コンピュータは、
第１記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが前記記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除し、
前記第１記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込み、
前記第１記憶装置を電源オフ状態にし、
前記第１記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む
ことを特徴とする記憶制御方法。
（付記１２）
前記コンピュータは、さらに、
前記第１記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得し、
取得した前記データを読み込む
ことを特徴とする付記１１に記載の記憶制御方法。
（付記１３）
前記コンピュータは、さらに、
復元できない前記データを前記記憶部に書き込む処理において、使用される可能性の高いデータを前記記憶部に書き込む
ことを特徴とする付記１１または１２に記載の記憶制御方法。
（付記１４）
第１記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが、複数の記憶装置よりも優先的にアクセスされる記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除し、
前記第１記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込み、
前記第１記憶装置を電源オフ状態にし、
前記第１記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む
処理をコンピュータに実行させることを特徴とする記憶装置制御プログラム。
（付記１５）
前記第１記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得し、
取得した前記データを読み込む
処理をコンピュータに実行させることを特徴とする付記１４に記載の記憶装置制御プログラム。
（付記１６）
復元できない前記データを前記記憶部に書き込む処理において、使用される可能性の高いデータを前記記憶部に書き込む
処理をコンピュータに実行させることを特徴とする付記１４または１５に記載の記憶装置制御プログラム。
【符号の説明】
【０２１２】
１  記憶装置
１０、４１  制御部
１１  削除部
１２  書込部
１３  切替部
１４  取得部
１５  読込部
１６  生成部
１７  振分部
１８  管理部
２０、４２  記憶部
２１  保持情報
２２  履歴情報
２３  オフロード情報
２４  データ管理情報
２５  パリティ管理情報
３０、４３  送受信部
３１、３３  送信部
３２、３４  受信部
４０、５０、６０、７０  情報処理装置
１００  分散ストレージシステム
１０１  端末
１０２、１０３  ネットワーク
２００  コンピュータ装置
２０１  制御回路
２０２  記憶装置
２０３  読み書き装置
２０４  記録媒体
２０５  通信インターフェイス
２０６  入出力インターフェイス
２０７  表示装置
２０８  ネットワーク
２０９  バス
【図１】
2015191637.tif 000003
【図２】
2015191637.tif 000004
【図３】
2015191637.tif 000005
【図４】
2015191637.tif 000006
【図５】
2015191637.tif 000007
【図６】
2015191637.tif 000008
【図７】
2015191637.tif 000009
【図８】
2015191637.tif 000010
【図９】
2015191637.tif 000011
【図１０】
2015191637.tif 000012
【図１１】
2015191637.tif 000013
【図１２】
2015191637.tif 000014
【図１３】
2015191637.tif 000015
【図１４】
2015191637.tif 000016
【図１５】
2015191637.tif 000017
【図１６】
2015191637.tif 000018
【図１７】
2015191637.tif 000019
【図１８】
2015191637.tif 000020
【図１９】
2015191637.tif 000021