JP2015191637A - 分散ストレージシステム、記憶装置制御方法、および記憶装置制御プログラム - Google Patents

分散ストレージシステム、記憶装置制御方法、および記憶装置制御プログラム Download PDF

Info

Publication number
JP2015191637A
JP2015191637A JP2014070666A JP2014070666A JP2015191637A JP 2015191637 A JP2015191637 A JP 2015191637A JP 2014070666 A JP2014070666 A JP 2014070666A JP 2014070666 A JP2014070666 A JP 2014070666A JP 2015191637 A JP2015191637 A JP 2015191637A
Authority
JP
Japan
Prior art keywords
data
storage device
storage
unit
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014070666A
Other languages
English (en)
Other versions
JP6269253B2 (ja
Inventor
純 加藤
Jun Kato
純 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014070666A priority Critical patent/JP6269253B2/ja
Priority to US14/656,756 priority patent/US9690658B2/en
Publication of JP2015191637A publication Critical patent/JP2015191637A/ja
Application granted granted Critical
Publication of JP6269253B2 publication Critical patent/JP6269253B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Power Engineering (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】分散ストレージシステムの消費電力を削減する。【解決手段】分散ストレージシステムにおいて、情報処理装置は、記憶部と、削除部と、書込部と、切替部と、読込部とを備える。削除部は、第1記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが記憶部に記憶されているとき、復元できるデータを記憶部から削除する。書込部は、第1記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、記憶部に書き込む。切替部は、書込部が復元できないデータを記憶部に書込むと、第1記憶装置を電源オフ状態に切り替える。読込部は、第1記憶装置が電源オフ状態のとき、復元できないデータの読み込み要求が与えられると、記憶部に記憶した復元できないデータを読み込む。【選択図】図8

Description

本発明はデータを記憶する技術に関する。
分散ストレージシステムでは、消失したデータを復元するためのパリティを用いてデータを冗長化するErasure Coding(消失訂正符号処理)が用いられている。消失訂正符号処理を用いた分散ストレージシステムでは、サーバが記憶装置にデータを記憶させるとき、パリティを生成し、データとパリティとを分散して複数の記憶装置に記憶させる。以下の説明では、データを記憶した記憶装置のことをデータ用の記憶装置とも言う。また、パリティを記憶した記憶装置のことをパリティ用の記憶装置とも言う。
そして、サーバは、データを復元するためにパリティを読み込む期間と、新たなパリティを書き込む期間とを除いて、パリティ用の記憶装置を電源オフ状態にする。これにより、サーバは、パリティ用の記憶装置を電源オン状態にする期間を短くし、消費電力の削減をしている。以下の説明では、電源オフ状態のことを単にオフ状態とも言う。また、電源オン状態のことを単にオン状態とも言う。
さらに、サーバは、パリティ用の記憶装置がオフ状態のとき、データ用の記憶装置にデータを記憶させる場合、新たなパリティを生成し、データ用の記憶装置の空き領域にパリティを書き込む。そして、サーバは、データ復元のためにパリティを読み込むとき、データ用の記憶装置に記憶したパリティを読み込む。これにより、サーバは、パリティ用の記憶装置にパリティを読み書きする頻度を低くし、さらに消費電力を削減している。なお、サーバは、データ用の記憶装置の空き領域がなくなると、パリティ用の記憶装置をオン状態にし、データ用の記憶装置に記憶されたパリティを、パリティ用の記憶装置に書き戻す処理を実行する。以下の説明では、前述のように、データの格納先の記憶装置がオフ状態のとき、他の記憶装置にデータを一時的に格納する。そして、データの格納先の記憶装置がオン状態になったとき、他の記憶装置に格納したデータをデータの格納先の記憶装置に書き戻す処理をWrite off−loadingとも言う。
関連する他の技術として、コントローラは、バッファに格納されたライトデータをハード記憶装置に書き込むことを指示するホスト装置からのコマンドを受信した場合、不揮発性メモリの空き容量が所定のデータサイズよりも少ないか否かを判別する。コントローラは、空き容量が所定のデータサイズよりも少ない場合、不揮発性メモリに格納されている所定のデータの内で、ハード記憶装置上に同一のデータが存在する同期データを削除して空き容量を増加させる。そして、コントローラは、バッファに格納されたライトデータを不揮発性メモリにライトする技術が知られている。
また、関連する他の技術として、ファイル装置は、ファイルF1のファイル断片F1−2をキャッシュCS上にステージングし、LRUテーブルにおいてファイル断片F1−2をファイル断片F1−1の下位に登録する。そして、ファイル装置は、記憶装置DSからファイルF2のファイル断片F2−2をキャッシュCS上にステージングし、LRUテーブルにおいてファイル断片F2−2をファイル断片F2−1の下位に登録する。こうして、ファイル装置は、各ファイル内において、ファイルの先頭に近いファイル断片ほど、上位に登録する。これにより、ファイル装置は、ファイルの先頭に近いファイル断片ほど、キャッシュCS上に存在する確率を高くする技術が知られている。
さらに、ストレージシステムにおいて、所定の記憶装置にデータを格納する要求を受信されたとき、電源がオフ状態である、または過負荷状態であるなどして所定の記憶装置が利用できない場合、データは他の記憶装置に格納される。そして、所定の記憶装置が利用可能になったとき、他の記憶装置に格納されたデータは、取得され、所定の記憶装置に書込まれるという技術が知られている(例えば、特許文献1〜特許文献3)。
特開2009−181314号公報 特開平6−119218号公報 米国特許第8074014号
前述した記憶装置制御技術を用いた分散ストレージシステムでは、読み込み時にパリティ用の記憶装置を起動しないように、データ用の記憶装置を全てオン状態にしておくので、データ用の記憶装置の消費電力を削減できないという問題がある。
本発明は、一側面として、分散ストレージシステムの消費電力を削減する技術を提供する。
本明細書で開示する分散ストレージシステムのひとつに、複数の記憶装置と情報処理装置とを備える分散ストレージシステムがある。情報処理装置は、記憶部と、削除部と、書込部と、切替部と、読込部とを備える。記憶部は、複数の記憶装置よりも優先的にアクセスされる。削除部は、第1記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが記憶部に記憶されているとき、復元できるデータを記憶部から削除する。書込部は、第1記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、記憶部に書き込む。切替部は、書込部が復元できないデータを記憶部に書込むと、第1記憶装置を電源オフ状態に切り替える。読込部は、第1記憶装置が電源オフ状態のとき、復元できないデータの読み込み要求が与えられると、記憶部に記憶した復元できないデータを読み込む。
1実施態様によれば、分散ストレージシステムの消費電力を削減することができる。
分散ストレージシステムの一実施例を示す図である。 情報処理装置の一実施例を示す機能ブロック図(その1)である。 データ管理情報の一例を示す図である。 パリティ管理情報の一例を示す図である。 記憶装置の一例を示す図である。 データ用の記憶装置に記憶された記憶情報の一例を示す図である。 パリティ用の記憶装置に記憶された記憶情報の一例を示す図である。 情報処理装置の一実施例を示す機能ブロック図(その2)である。 保持情報の一例を示す図である。 履歴情報の一例を示す図である。 オフロード情報の一例を示す図である。 記憶装置をオフ状態に切替える処理を示すフローチャート(その1)である。 記憶装置をオフ状態に切替える処理を示すフローチャート(その2)である。 データがオフロード済みになったときの処理を示すフローチャート(その1)である。 データがオフロード済みになったときの処理を示すフローチャート(その2)である。 パリティ用の記憶装置がオン状態になったときの処理を示すフローチャート(その1)である。 パリティ用の記憶装置がオン状態になったときの処理を示すフローチャート(その2)である。 データ用の記憶装置がオフ状態からオン状態になったときの処理を示すフローチャートである。 コンピュータ装置の一実施例を示すブロック図である。
[実施形態]
実施形態の分散ストレージシステムについて説明する。
図1は、分散ストレージシステムの一実施例を示すブロック図である。
図1を参照して、分散ストレージシステムの構成について説明する。
分散ストレージシステム100は、例えば、端末101と、ネットワーク102、103と、情報処理装置40と、情報処理装置50と、情報処理装置60と、情報処理装置70とを備える。以下の説明では、情報処理装置40と、情報処理装置50と、情報処理装置60と、情報処理装置70とのことを、情報処理装置40〜70とも言う。また、情報処理装置50と、情報処理装置60と、情報処理装置70とのことを、情報処理装置50〜70とも言う。
そして、端末101は、例えば、ネットワーク102を介して情報処理装置40と通信可能に接続される。また、情報処理装置40〜70は、例えば、ネットワーク103を介して互いに通信可能に接続される。
情報処理装置50は、例えば、記憶装置51〜56と通信可能に接続される。情報処理装置60は、例えば、記憶装置61〜66と通信可能に接続される。情報処理装置70は、例えば、記憶装置71〜76と通信可能に接続される。以下の説明では、記憶装置51〜56と、記憶装置61〜66と、記憶装置71〜76とを特に区別しないときには、記憶装置1とも言う。また、通信可能に接続されることを、通信接続される、または単に接続されるとも言う。
端末101は、例えば、ユーザからの入力やソフトウェアの処理などで発生する、データの書き込み要求やデータの読み込み要求を情報処理装置40に送信する。端末101は、例えば、後述するコンピュータ装置である。以下の説明において、データの書き込み要求は、書き込むデータを含むものとして説明する。データの書き込み要求やデータの読み込み要求を特に区別しないときには、データの書き込み要求やデータの読み込み要求のことを、単に要求とも言う。
図2は、情報処理装置の一実施例を示す機能ブロック図(その1)である。図2を参照して、情報処理装置40について説明する。
情報処理装置40は、制御部41と、記憶部42と、送受信部43とを備える。制御部41は、例えば、生成部16と、振分部17と、管理部18とを含む。記憶部42は、例えば、データ管理情報24と、パリティ管理情報25とを記憶する。送受信部43は、例えば、送信部33と受信部34とを含む。情報処理装置40は、例えば、後述するコンピュータ装置である。また、情報処理装置40は、例えば、IAサーバ(Intel Architecture server)でも良い。
また、以下に説明する情報処理装置40の制御部41に含まれる生成部16と、振分部17と、管理部18とは、情報処理装置50〜70がいずれか1以上備えても良い。さらに、情報処理装置40の記憶部42に記憶されているデータ管理情報24と、パリティ管理情報25とは、情報処理装置50〜70がいずれか1以上備えても良い。
生成部16は、端末101から書き込み要求が与えられると、所定の数の記憶装置1からデータを取得し、与えられた書き込み要求に含まれるデータと、取得したデータとを用いてパリティを生成する。そして、生成部16は、生成したパリティを含むパリティの書き込み要求を生成する。生成部16は、例えば、パリティを生成するとき、複数のデータの排他的論理和を求めてパリティを生成しても良いし、消失訂正符号処理で提案されている所定のアルゴリズムを用いてパリティを生成しても良い。
振分部17は、端末101から与えられた要求、および生成部16が生成したパリティの書き込み要求の転送先を情報処理装置50〜70に振り分ける。このとき、振分部17は、情報処理装置50〜70に要求を均等に振り分けても良い。また、振分部17は、情報処理装置50〜70の処理能力がそれぞれ異なるとき、処理能力の大きい情報処理装置に振り分ける要求の数を処理能力の小さい情報処理装置に振り分ける要求の数よりも多くしても良い。このように、振分部17は、ロードバランサとしての機能を有する。
振分部17は、例えば、端末101からデータの書き込み要求が与えられると、データの書き込み要求に含まれるデータを記憶する記憶装置1を指定する。そして、振分部17は、指定した記憶装置1と接続されている情報処理装置にデータの書き込み要求を転送する。
また、振分部17は、例えば、端末101から記憶装置1に記憶されているデータを更新する書き込み要求が与えられると、記憶装置1を指定して、送信前のデータの書き込み要求を振り分けた情報処理装置に、データを更新させる書き込み要求を転送する。以下の説明では、データを更新させる書き込み要求のことを、データの更新要求とも言う。また、データの更新要求には、更新用のデータが含まれているものとする。
さらに、振分部17は、例えば、端末101からデータの更新要求が与えられたとき、更新前のデータを記憶した記憶装置1がオフ状態になっている場合、オン状態の他の記憶装置1を指定する。そして、振分部17は、指定した他の記憶装置1に接続された情報処理装置に、更新用のデータを他の記憶装置1の空き領域に記憶させるデータの書き込み要求を転送する。以下の説明では、更新用のデータを他の記憶装置1の空き領域に記憶させるデータの書き込み要求のことを、データのオフロード要求とも言う。また、データのオフロード要求には、オフロードするデータが含まれているものとする。なお、データをオフロードするとは、更新前のデータが記憶された記憶装置1ではなく、他の記憶装置1の空き領域にデータを記憶することを言う。
振分部17は、端末101からデータの書き込み要求が与えられたとき、生成部16がパリティの書き込み要求を生成すると、パリティを記憶させるパリティ用の記憶装置1を指定する。そして、振分部17は、指定したパリティ用の記憶装置1と接続されている情報処理装置にパリティの書き込み要求を転送する。以下の説明では、パリティの書き込み要求には、パリティが含まれているものとする。
また、振分部17は、端末101からデータの更新要求が与えられたとき、生成部16がパリティを生成すると、前回指定した記憶装置1に接続された情報処理装置にパリティを更新させる書き込み要求を転送する。以下の説明では、パリティを更新させる書き込み要求のことを、パリティの更新要求とも言う。また、パリティの更新要求には、更新用のパリティが含まれているものとする。
さらに、振分部17は、例えば、生成部16がパリティの更新要求を生成したとき、更新前のパリティを記憶した記憶装置1がオフ状態になっている場合、オン状態の他の記憶装置1を指定する。そして、振分部17は、更新用のパリティを記憶装置1の空き領域に記憶させるパリティの書き込み要求を、指定した他の記憶装置1に接続された情報処理装置に転送する。
以下の説明では、更新用のパリティを他の記憶装置1の空き領域に記憶させるためのパリティの書き込み要求のことを、パリティのオフロード要求とも言う。また、パリティのオフロード要求には、オフロードするパリティが含まれているものとする。なお、オフロードするパリティとは、更新前のパリティが記憶された記憶装置1ではなく、データ用の他の記憶装置1の空き領域に記憶されるパリティのことを言う。更新前のパリティが記憶された記憶装置1とは、例えば、パリティ用の記憶装置1のことである。パリティをオフロードするとは、パリティを記憶するためのパリティ用の記憶装置1ではなく、データ用の他の記憶装置1の空き領域にパリティを記憶することを言う。
管理部18は、振分部17により指定された、記憶装置1を識別する情報と、記憶装置1に記憶されたデータを識別する情報とを関連付けた情報をデータ管理情報24に格納する。
また、管理部18は、振分部17により指定された、記憶装置1を識別する情報と、記憶装置1に記憶されたパリティを識別する情報とを関連付けた情報をパリティ管理情報25に格納する。
図3を参照して説明する。
図3は、データ管理情報の一例を示す図である。図3を参照して、データ管理情報24について説明する。
データ管理情報24には、図3(a)に示すように、例えば、データ識別子と、第1装置識別子と、第2装置識別子とが関連付けられて格納されている。
データ識別子は、データを識別するための情報である。データ識別子は、例えば、データ名でも良い。データ識別子は、振分部17が記憶装置1にデータの書き込み要求を振り分けたとき、管理部18が記憶装置1に記憶するデータの識別子を取得し、データ管理情報24に格納しても良い。
第1装置識別子は、例えば、同じレコードに属するデータ識別子で識別されるデータを記憶するためのデータ用の記憶装置1を識別する情報である。データを記憶するための記憶装置1とは、例えば、振分部17が最初にデータ識別子で識別されるデータの記憶先として指定した記憶装置1でも良い。また、データを記憶するための記憶装置1とは、ユーザにより指定された記憶装置1でも良い。そして、第1装置識別子は、例えば、管理部18が最初にデータを記憶した記憶装置1の識別情報を取得し、データ管理情報24に格納しても良い。以下の説明では、データを記憶するための記憶装置1を、振分部17が最初にデータの記憶先として指定したデータ用の記憶装置1であるものとして説明する。
また、識別子i51〜i56は、それぞれ図1に示す記憶装置51〜56に対応するものとする。そして、識別子i61〜i66は、それぞれ図1に示す記憶装置61〜66に対応するものとする。さらに、識別子i71〜i76は、図1に示す記憶装置71〜76に対応するものとする。そして、記憶装置51〜54と、記憶装置61〜64と、記憶装置71〜74とは、データ用の記憶装置であるものとする。また、記憶装置55、56と、記憶装置65、66と、記憶装置75、76とは、パリティ用の記憶装置であるものとする。
第2装置識別子は、例えば、第1装置識別子で識別される記憶装置1がオフ状態になっているとき、振分部17が更新用のデータを空き領域に記憶させるために指定したオン状態の他の記憶装置1を識別する情報である。そして、第2装置識別子は、例えば、振分部17が更新用のデータの記憶先をオン状態の他の記憶装置1に振り分けたとき、管理部18が更新用のデータを記憶したオン状態の他の記憶装置1の識別情報を取得し、データ管理情報24に格納しても良い。また、第2装置識別子は、第2装置識別子で識別される記憶装置1から、同じレコードに属する第1装置識別子で識別される記憶装置1にデータが書き戻されたとき、管理部18により削除される。ここで、オン状態の他の記憶装置1とは、データ用の記憶装置1である。
図3(a)および図3(b)に示すデータ管理情報24を参照して、データ管理情報24に格納されているレコードの示す情報を詳細に説明する。
データ管理情報24は、例えば、図3(a)に示すように、データ識別子d1と第1装置識別子i51とが関連付けられて格納されているとき、第1装置識別子で識別される記憶装置51に、データ識別子d1で識別されるデータD1が記憶されていることを示す。なお、以下の説明において、データ識別子dxは、データDxを識別するものとして説明する。
データ管理情報24は、例えば、図3(b)に示すように、データ識別子d1と、第1装置識別子i51と、第2装置識別子i61とが関連付けられて格納されているとき、第1識別子で識別される記憶装置51がオフ状態であることを示す。さらに、データ管理情報24は、例えば、データ識別子d1と、第1装置識別子i51と、第2装置識別子i61とが関連付けられて格納されているとき、データ識別子d1で識別されるデータD1が記憶装置61に記憶されていることを示す。
データ管理情報24が図3(a)の状態から、図3(b)の状態に更新される処理の一例を説明する。
振分部17は、例えば、記憶装置51がオン状態であるとき、データの書き込み要求が与えられると、データを記憶するための記憶装置51にデータ識別子d1で識別されるデータD1を記憶させる。そして、管理部18は、図3(a)に示すように、データ識別子d1と、記憶装置51を識別する第1装置識別子i51とを関連付けてデータ管理情報24に格納する。
次に、振分部17は、例えば、記憶装置51がオフ状態であるとき、データ識別子d1で識別されるデータの更新要求が与えられると、データ識別子d1で識別されるデータを他の記憶装置61に記憶させる。そして、管理部18は、図3(b)に示すように、データ識別子d1と、他の記憶装置61を識別する第2装置識別子i61とを関連付けてデータ管理情報24に格納する。
また、管理部18は、第2装置識別子i61で識別される記憶装置1から、第1装置識別子i51で識別される記憶装置1にデータD1が書き戻されると、第2装置識別子i61をデータ管理情報24から削除する。このとき、データ管理情報24に格納された情報は、例えば、図3(b)の状態から図3(a)の状態に変化する。
以上により、情報処理装置40は、各データ識別子で識別されるデータの最新データがどの記憶装置1に記憶されているのかを管理している。
図4を参照して説明する。
図4は、パリティ管理情報の一例を示す図である。
パリティ管理情報25には、図4(a)に示すように、例えば、パリティ識別子と、データ識別子と、第3装置識別子と、第4装置識別子とが関連付けられて格納されている。
パリティ識別子は、パリティを識別するための情報である。パリティ識別子は、振分部17が記憶装置1にパリティを振り分けたとき、管理部18がパリティを参照することにより取得され、パリティ管理情報25に格納されても良い。
データ識別子は、データを識別するための情報である。管理部18は、例えば、生成部16がパリティを生成するときに用いた複数のデータのデータ識別子と、生成されたパリティのパリティ識別子とを関連付けてパリティ管理情報25に格納する。
第3装置識別子は、例えば、同じレコードに属するパリティ識別子で識別されるパリティを記憶するためのパリティ用の記憶装置1を識別する情報である。パリティを記憶するための記憶装置1とは、例えば、振分部17が最初にパリティの記憶先として指定した記憶装置1でも良い。また、パリティを記憶するための記憶装置1とは、ユーザにより指定された記憶装置1でも良い。そして、第3装置識別子は、例えば、管理部18が最初にパリティを記憶した記憶装置1の識別情報を取得し、パリティ管理情報25に格納しても良い。以下の説明では、パリティを記憶するための記憶装置1を、振分部17が最初にパリティの記憶先として指定したパリティ用の記憶装置1であるものとして説明する。
第4装置識別子は、例えば、第3装置識別子で識別されるパリティ用の記憶装置1がオフ状態になっているとき、振分部17が更新用のパリティを空き領域に記憶させるために指定したオン状態の他の記憶装置1を識別する情報である。そして、第4装置識別子は、例えば、振分部17が更新用のパリティの記憶先をオン状態の他の記憶装置1に振り分けたとき、管理部18が更新用のパリティを記憶したオン状態の他の記憶装置1の識別情報を取得し、パリティ管理情報25に格納しても良い。また、第4装置識別子は、第4装置識別子で識別される記憶装置1から、同じレコードに属する第3装置識別子で識別される記憶装置1にデータが書き戻されたとき、管理部18により削除される。
図4(a)および図4(b)に示すパリティ管理情報25を参照して、パリティ管理情報25に格納されているレコードの示す情報を詳細に説明する。
パリティ管理情報25は、図4(a)に示すように、パリティ識別子p1とデータ識別子d1〜d4とが関連付けられて格納されているとき、パリティP1がデータD1〜D4のパリティとして用いられることを示す。パリティ管理情報25は、データD1〜D4のいずれか一つが消失しても、図4(a)に示すパリティP1を用いて消失したデータDxを復元できることを示している。なお、以下の説明において、パリティ識別子pxは、パリティPxを識別するものとして説明する。
パリティ管理情報25は、図4(a)に示すように、パリティ識別子p1と、第3装置識別子i55とが関連付けて格納されているとき、パリティP1を記憶するためのパリティ用の記憶装置1が記憶装置55であることを示す。
パリティ管理情報25は、図4(b)に示すように、パリティ識別子p1と、第3装置識別子i55と、第4装置識別子i71とが関連付けられて格納されているとき、記憶装置55がオフ状態であり、パリティP1が記憶装置71に記憶されていることを示す。
パリティ管理情報25が図4(a)の状態から、図4(b)の状態に更新される処理の一例を説明する。
生成部16は、データ識別子d1〜d4で識別されるデータD1〜D4を用いてパリティ識別子p1で識別されるパリティP1を生成する。管理部18は、図4(a)に示すように、生成部16でパリティP1が生成されると、生成部16がパリティP1を生成するために用いたデータD1〜D4のデータ識別子d1〜d4と、パリティ識別子p1とを関連付けてパリティ管理情報25に格納する。
振分部17は、例えば、記憶装置55がオン状態であるとき、パリティの書き込み要求が与えられると、パリティを記憶するための記憶装置55にパリティ識別子p1で識別されるパリティP1を記憶させる。そして、管理部18は、図4(a)に示すように、パリティ識別子p1と、記憶装置55を識別する第3装置識別子i55とを関連付けてパリティ管理情報25に格納する。
次に、振分部17は、例えば、記憶装置55がオフ状態であるとき、パリティ識別子p1で識別されるパリティの更新要求が与えられると、パリティ識別子p1で識別されるパリティを他の記憶装置71に記憶させる。そして、管理部18は、図4(b)に示すように、パリティ識別子p1と、他の記憶装置71を識別する第4装置識別子i71とを関連付けてパリティ管理情報25に格納する。
以上により、情報処理装置40は、各パリティ識別子で識別されるパリティの最新パリティがどの記憶装置1に記憶されているのかを管理している。
図2を参照して説明する。
送信部33は、例えば、制御部41から出力されたデータ、パリティ、および要求を端末101や情報処理装置50〜70に送信する。
受信部34は、例えば、端末101や情報処理装置50〜70から送信されたデータ、パリティ、および要求を受信する。そして、受信部34は、受信したデータ、パリティ、および要求を制御部41に入力する。
図5を参照して説明する。
図5は、記憶装置の一例を示す図である。図5は、情報処理装置50と接続された記憶装置51〜56を示す図である。なお、情報処理装置60に接続された記憶装置61〜66と、情報処理装置70に接続された記憶装置71〜76とは、情報処理装置50と接続された記憶装置51〜56と同じ構成なので説明を省略する。
記憶装置51〜56は、例えば、HDD(Hard Disk Drive)などの磁気ディスクや、SSD(Solid State Drive)などの半導体素子メモリなどを用いたドライブである。
記憶装置51〜54は、例えば、データ用の記憶装置群81に含まれる。データ用の記憶装置51〜54は、それぞれデータを記憶するデータ領域と、空き領域とを含む。
データ領域には、例えば、情報処理装置40から与えられたデータの書き込み要求に含まれるデータが記憶される。
また、空き領域には、データを記憶するためのデータ用の記憶装置1がオフ状態のとき、情報処理装置40から与えられるデータの更新要求に含まれるデータが記憶される。さらに、空き領域には、パリティを記憶するためのパリティ用の記憶装置1がオフ状態のとき、情報処理装置40から与えられるパリティの更新要求に含まれるパリティが記憶される。なお、データやパリティを記憶するための空き領域の容量には、上限が設けられていても良い。
図6を参照して説明する。
図6は、データ用の記憶装置に記憶された記憶情報の一例を示す図である。図6を参照して、データ用の記憶装置に記憶される記憶情報について説明する。
記憶情報51D〜54Dは、それぞれ、記憶装置51〜54に記憶された情報を示す。
データ領域には、データ識別子と、データと、時刻とが関連付けられて記憶される。
データ識別子は、データを識別するための情報である。
データは、データ領域の同じレコードに属するデータ識別子で識別されるデータである。
時刻は、データ用の記憶装置1のデータ領域に、同じレコードに含まれるデータ識別子で識別されるデータが最後に記憶された時刻を示す。データが最後に記憶された時刻とは、例えば、データが更新されていない場合、データが記憶装置1に最初に記憶された時刻を示す。データが最後に記憶されたと時刻とは、例えば、データが更新されている場合、データが最後に更新された時刻を示す。
また、空き領域には、データ識別子およびデータまたはパリティ識別子およびパリティと、時刻とが関連付けられて記憶される。
データ識別子は、データを識別するための情報である。
データは、空き領域の同じレコードに属するデータ識別子で識別されるデータである。
パリティ識別子は、パリティを識別すための情報である。
パリティとは、空き領域の同じレコードに属するパリティ識別子で識別されるパリティである。
時刻は、データ識別子およびデータと関連付けられているとき、データ用の記憶装置1の空き領域に、同じレコードに含まれるデータ識別子で識別されるデータが最後に記憶された時刻を示す。データが最後に記憶された時刻とは、例えば、データが更新されていない場合、データが記憶装置1に最初に記憶された時刻を示す。データが最後に記憶されたと時刻とは、例えば、データが更新されている場合、データが最後に更新された時刻を示す。
時刻は、パリティ識別子およびパリティと関連付けられているとき、同じレコードに含まれるパリティ識別子で識別されるパリティがパリティ用の記憶装置1に最後に記憶された時刻を示す。パリティが最後に記憶された時刻とは、例えば、パリティが更新されていない場合、パリティが記憶装置1に最初に記憶された時刻を示す。パリティが最後に記憶された時刻とは、例えば、パリティが更新されている場合、記憶装置1に格納されたパリティが最後に更新された時刻を示す。
図6の記憶情報51D〜54Dを参照して、記憶情報51D〜54Dに格納されているレコードが示す情報を詳細に説明する。
データ用の記憶装置1の記憶情報は、記憶情報51Dのデータ領域に示すように、データ識別子d1と、データD1とが関連付けられて記憶されているとき、データ識別子d1で識別されるデータD1が記憶装置51のデータ領域に記憶されていることを示す。
また、データ用の記憶装置1の記憶情報は、記憶情報51Dのデータ領域に示すように、データD1と、時刻t1とが関連付けられて格納されているとき、時刻t1にデータD1、または更新用のデータD1が記憶装置51のデータ領域に記憶されたことを示す。
データ用の記憶装置1の記憶情報は、記憶情報51Dの空き領域に示すように、パリティ識別子p2と、パリティP2とが関連付けられて記憶されているとき、パリティ識別子p2で識別されるパリティP2が記憶装置51の空き領域に記憶されていることを示す。
また、データ用の記憶装置1の記憶情報は、記憶情報51Dの空き領域に示すように、パリティP2と、時刻t8とが関連付けられて格納されているとき、時刻t8にパリティP2、または更新用のパリティP2が記憶装置51の空き領域に記憶されたことを示す。
データ用の記憶装置1の記憶情報は、記憶情報54Dの空き領域に示すように、データ識別子d49と、データD49とが関連付けられて記憶されているとき、データ識別子d49で識別されるデータD49が記憶装置54の空き領域に記憶されていることを示す。
データ用の記憶装置1の記憶情報は、記憶情報54Dの空き領域に示すように、データD49と、時刻t49とが関連付けられて格納されているとき、時刻t49にデータD49、または更新用のデータD49が記憶装置54の空き領域に記憶されたことを示す。
図5を参照して説明する。
記憶装置55、56は、例えば、パリティ用の記憶装置群91に含まれる。記憶装置55、56は、パリティを記憶するパリティ領域を含む。また、パリティ用の記憶装置55、56は、データを復元するためにパリティを読み込む期間と、新たなパリティを書き込む期間と、他の記憶装置1からパリティを書き戻す期間とを除いて、情報処理装置50によりオフ状態にされる。なお、パリティ用の記憶装置1には、空き領域を含んでも良い。
図7を参照して説明する。
図7は、パリティ用の記憶装置の記憶情報の一例を示す図である。記憶情報55P、56Pは、それぞれ、記憶装置55、56のパリティ領域に記憶された情報を示す。
パリティ領域には、パリティ識別子と、パリティと、時刻とが関連付けられて記憶される。
パリティ識別子は、パリティを識別するための情報である。
パリティとは、同じレコードに属するパリティ識別子で識別されるパリティである。
時刻は、同じレコードに属するパリティ識別子で識別されるパリティがパリティ用の記憶装置1に最後に記憶された時刻を示す。パリティが最後に記憶された時刻とは、例えば、パリティが更新されていない場合、パリティが記憶装置1に最初に記憶された時刻を示す。パリティが最後に記憶された時刻とは、例えば、パリティが更新されている場合、記憶装置1に格納されたパリティが最後に更新された時刻を示す。
図7の記憶情報55P、56Pを参照して、記憶情報55P、56Pに格納されているレコードが示す情報を詳細に説明する。
パリティ用の記憶装置1の記憶情報は、図7(a)の記憶情報55Pに示すように、パリティ識別子p1と、パリティP1とが関連付けられて記憶されているとき、パリティ識別子p1で識別されるパリティP1が記憶装置55に記憶されていることを示す。
また、パリティ用の記憶装置1の記憶情報は、図7(a)の記憶情報55Pに示すように、パリティP1と、時刻t4とが関連付けられて格納されているとき、時刻t4にパリティP1が記憶装置55に記憶されたことを示す。
図8を参照して説明する。
図8は、情報処理装置の一実施例を示す機能ブロック図(その2)である。図8を参照して、情報処理装置50について説明する。情報処理装置60、70は、情報処理装置50と同様の構成であるため、説明を省略する。以下の説明では、データ用の記憶装置51のオン状態とオフ状態とを切替える処理と、パリティ用の記憶装置55にデータ用の記憶装置71の空き領域に記憶されたパリティp1を書き戻す処理とを一例として、情報処理装置50の各構成要素について説明する。また、パリティ用の記憶装置1は、消費電力の削減のためにオフ状態にされているものとする。すなわち、図4(b)に示される第3装置識別子で識別されるパリティ用の記憶装置1は、オフ状態であるものとする。
情報処理装置50は、例えば、制御部10と、記憶部20と、送受信部30とを備える。制御部10は、削除部11と、書込部12と、切替部13と、取得部14と、読込部15とを含む。記憶部20は、保持情報21と、履歴情報22と、オフロード情報23とを記憶する。送受信部30は、送信部31と、受信部32とを含む。情報処理装置50は、例えば、後述するコンピュータ装置である。また、情報処理装置50は、例えば、IAサーバでも良い。
情報処理装置50は、例えば、ユーザにより記憶装置51をオフ状態にする要求が与えられたとき、または任意のアルゴリズムにより記憶装置51をオフ状態にすると決定されたとき、記憶装置51をオフ状態に切替える処理を開始する。任意のアルゴリズムとは、例えば、パリティ用の記憶装置1がオフ状態のとき、データ用の記憶装置1の中でアクセス頻度の少ない記憶装置1をオフ状態にすると決定する処理でも良い。
削除部11は、第1記憶装置をオフ状態にするとき、第1記憶装置に記憶されたデータの中で、オン状態の他の記憶装置1に分散して記憶されたデータとパリティとを用いて復元できるデータが記憶部20の保持情報21に記憶されているか否かを判定する。そして、削除部11は、オン状態の他の記憶装置1に分散して記憶されたデータとパリティとを用いて復元できるデータが記憶部20に記憶されているとき、復元できるデータを記憶部20から削除する。ここで、第1記憶装置とは、例えば、記憶装置51のことである。また、オン状態の他の記憶装置1とは、例えば、記憶装置52〜54、記憶装置61〜64、および記憶装置71〜74のことである。以下の説明では、オン状態の他の記憶装置1に分散して記憶されたデータとパリティとを用いて復元できるデータのことを、オフロード済みのデータとも言う。
削除部11は、例えば、第1記憶装置の中でオフロード済みのデータがあるか否かを、管理部18に問い合わせることにより判定する。管理部18は、例えば、削除部11からオフロード済みのデータがあるか否かの問い合わせがあると、図3(a)に示すデータ管理情報24を参照し、記憶装置51に記憶されているデータを検索する。管理部18は、図4(b)に示すパリティ管理情報25を参照し、検索された記憶装置51に記憶されているデータの中で、第4識別子に関連付けられているデータを抽出する。そして、管理部18は、抽出したデータのデータ識別情報を削除部11に通知しても良い。これにより、削除部11は、データ識別情報で識別されるデータをオフロード済みのデータと判定することができる。管理部18は、例えば、図4(b)に示すパリティ管理情報25が情報処理装置40の記憶部42に記憶されているとき、オフロード済みのデータの一つとして、データ識別子d1を、削除部11に通知する。
削除部11は、復元できないデータがオン状態の他の記憶装置1に書込まれたとき、記憶部20に記憶された更新前の復元できないデータを削除する。削除部11は、管理部18から復元できないデータがオン状態の他の記憶装置1に書込まれたことが通知されることにより、復元できないデータがオン状態の他の記憶装置1に書き込まれたことを判定しても良い。管理部18は、他の記憶装置1にデータが書き込まれたとき、パリティ管理情報25を参照し、書き込まれたデータと、第2装置識別子とが関連付けて格納されていないとき、書き込まれたデータが復元できないデータであると判定し、削除部11に通知しても良い。
削除部11は、第2記憶装置がオン状態になり、オン状態の他の記憶装置1に記憶されたパリティが第2記憶装置に書き戻され、第2記憶装置がオフ状態に切替えられると、オン状態の他の記憶装置1に記憶されたパリティを削除する。ここで、第2記憶装置とは、例えば、パリティ用の記憶装置1である。書込部12は、例えば、図4(b)に示すパリティ管理情報25が記憶部42に記憶されているとき、記憶装置55がオン状態になると、記憶装置71に記憶されているパリティP1を記憶装置55に書き戻す。そして、削除部11は、記憶装置71に記憶されているパリティP1を削除しても良い。
削除部11は、第1記憶装置がオン状態になったとき、記憶部20に記憶された保持情報21から第1記憶装置に記憶されたデータに含まれる復元できないデータを検索し、検索された復元できないデータを保持情報21から削除する。
削除部11は、第1記憶装置に記憶されたデータに含まれる復元できないデータを、管理部18に問い合わせることにより判定しても良い。管理部18は、削除部11から第1記憶装置に記憶された復元できないデータに関する問い合わせがあると、パリティ管理情報25を参照し、第1記憶装置に記憶されたデータの中で、第4装置識別子と関連付けられていないデータを検索する。さらに、管理部18は、データ管理情報24を参照し、検索されたデータの中で、第2識別子と関連付けられていないデータを抽出し、抽出されたデータを復元できないデータであると判定しても良い。そして、管理部18は、抽出されたデータを削除部11に通知しても良い。
書込部12は、第1記憶装置に記憶されたデータの中で、オン状態の他の記憶装置1に分散して記憶されたデータとパリティとを用いて復元できないデータを、記憶部20に書き込む。書込部12は、復元できないデータを記憶部20に書き込むとき、使用される可能性の高いデータを記憶部20に書き込む。
さらに、書込部12は、第1記憶装置がオフ状態のとき、第1記憶装置に記憶されたデータを更新する書き込み要求が与えられると、書き込み要求に含まれるデータをオン状態の他の記憶装置1に書き込む。
書込部12は、記憶部20に記憶された復元できないデータが削除されたとき、オン状態の記憶装置1に記憶されたデータの中で、使用される可能性の高いデータを記憶部20に書き込む。
書込部12は、削除部11が復元できるデータを記憶部20の保持情報21から削除したとき、復元できるデータのデータ識別子を記憶部20のオフロード情報23に書き込む。
また、書込部12は、パリティを記憶した他の記憶装置1から第2記憶装置にパリティを書き戻すとき、取得部14により取得されたパリティとデータとを用いて復元できるデータを記憶部20に書き込む。これにより、読込部15は、パリティを第2記憶装置に書き戻したあと、第2記憶装置がオフ状態になっても、復元できるデータを記憶部20から読み込むことができる。
書込部12は、第1記憶装置がオン状態となったとき、記憶部20に記憶された第1記憶装置に記憶された復元できないデータを第1記憶装置に書き戻す。そして、書込部12は、削除部11が記憶部20から復元できないデータを削除したとき、オン状態の記憶装置1に記憶されたデータの中で、使用される可能性の高いデータを記憶部20に書き込む。
切替部13は、第1記憶装置をオフ状態にするとき、書込部12が復元できないデータを記憶部20に書込んだあと、第1記憶装置を電源オフ状態に切り替える。
切替部13は、第2記憶装置がオン状態となり、書込部12がオン状態の他の記憶装置1に記憶されたパリティを第2記憶装置に書き込むと、第2記憶装置をオフ状態に切り替える。
取得部14は、第1記憶装置がオフ状態のとき、復元できるデータの読み込み要求が与えられると、オン状態の他の記憶装置1に分散して記憶されたデータとパリティとを用いて復元できるデータを取得する。取得部14は、例えば、管理部18に復元できるデータを復元するためのデータとパリティとを問い合わせることにより、復元できるデータを復元するためのデータとパリティとを取得しても良い。管理部18は、例えば、取得部14から復元できるデータを復元するためのデータとパリティとについて問い合わせがあると、パリティ管理情報25を参照し、復元できるデータのデータ識別子に関連付けられたデータ識別子と、パリティ識別子とを検索する。また、管理部18は、データ管理情報24を参照し、検索したデータ識別子と、パリティ識別子とに関連付けられた記憶装置1からデータとパリティとを取得する。そして、管理部18は、取得したデータと、パリティとを取得部14に送信しても良い。
また、取得部14は、第1記憶装置がオフ状態のとき、第2記憶装置がオン状態になると、記憶部20のオフロード情報23に記憶されたデータ識別子で識別される復元できるデータを取得する。そして、書込部12は、取得部14により取得された復元できるデータを記憶部20の保持情報21に書き込む。これにより、読込部15は、第2記憶装置がオン状態になり、書込部12がパリティを第2記憶装置に書き戻したあと、第2記憶装置がオフ状態になっても、復元できるデータを記憶部20の保持情報21から読み込むことができる。
読込部15は、第1記憶装置がオフ状態のとき、復元できないデータの読み込み要求が与えられると、記憶部20の保持情報21に記憶した復元できないデータを読み込む。
読込部15は、第1記憶装置がオフ状態のとき、復元できるデータの読み込み要求が与えられると、オン状態の他の記憶装置1に分散して記憶されたデータとパリティとを用いて取得部14が取得したデータを読み込む。
読込部15は、第1記憶装置がオフ状態であり、復元できないデータが他の記憶装置1に書込まれているとき、復元できないデータの読み込み要求が与えられると、他の記憶装置1に記憶された復元できないデータを読み込む。
記憶部20は、情報処理装置40からデータの書き込み要求やデータの読み込み要求が与えられたとき、記憶装置1よりも優先的にアクセスされる。記憶部20は、例えば、キャッシュである。
図9を参照して説明する。
図9は、保持情報の一例を示す図である。図9を参照して、保持情報21について説明する。
保持情報21は、アクセスされる可能性の高いデータを格納する。そして、保持情報21は、端末101から情報処理装置50に読み込み要求が与えられたとき、優先的にアクセスされる情報である。保持情報21に格納されるデータは、例えば、書き込み要求や読み出し要求により、アクセスされた時刻が新しいものから順番に並べて格納されても良い。
保持情報21には、データ識別子と、データと、時刻とが関連付けられて格納されている。
データ識別子は、データを識別するための情報である。
データは、同じレコードに属するデータ識別子で識別されるデータである。
時刻は、記憶装置1に、同じレコードに含まれるデータ識別子で識別されるデータが最後に格納された時刻を示す。データが最後に格納された時刻とは、例えば、データが更新されていない場合、記憶装置1に最初にデータが格納された時刻を示す。データが最後に記憶されたと時刻とは、例えば、データが更新されている場合、データが最後に更新された時刻を示す。
図9(a)に示す保持情報21を参照して、保持情報21に格納されているレコードの示す情報を詳細に説明する。
保持情報21は、図9(a)に示すように、データ識別子d9と、データD9とが関連付けられて記憶されているとき、データ識別子d9で識別されるデータD9が記憶部20に記憶されていることを示す。
また、保持情報21は、図9(a)に示すように、データD9と、時刻t9とが関連付けられて格納されているとき、時刻t9にデータD9が記憶装置1に記憶されたことを示す。
記憶装置51がオン状態となったとき、保持情報21が図9(a)の状態から、図9(b)、図9(c)の状態に更新される処理の一例を説明する。なお、以下の説明では、保持情報21に最大で9つまでのデータが格納できるものとする。
削除部11は、例えば、記憶装置51がオン状態となったとき、図9(b)に示すように、記憶装置51に記憶されたデータD1とデータD13とを、保持情報21から削除する。すなわち、削除部11は、図9(a)の太枠で示すデータD1とデータD13とが格納されたレコードを削除し、保持情報21のデータの格納状態を図9(b)の状態にする。
そして、書込部12は、例えば、記憶装置51を含むオン状態の記憶装置1の履歴情報22を参照し、図9(c)の太枠に示すように、最近保持情報21から削除されたデータから順に保持情報21に書き込む。
図10を参照して説明する。
図10は、履歴情報の一例を示す図である。図10を参照して、履歴情報22について説明する。
履歴情報22は、保持情報21に格納できなくなったデータの履歴を格納する。保持情報21に格納できなくなったデータとは、例えば、保持情報21を記憶する記憶領域に記憶できるデータ量が上限まで達したとき、保持情報21から削除されたデータのことである。履歴情報22は、記憶装置1ごとに備えられる。履歴情報22に格納されるデータは、例えば、履歴情報22に格納された時刻が新しいものから順番に並べて格納されても良い。以下の説明では、履歴情報22に格納されているレコードのことを削除履歴とも言う。情報処理装置50は、例えば、保持情報21からデータを削除するとき、保持情報21に格納されているデータの中で、アクセスされた時刻が最も古いデータから順に削除しても良い。
履歴情報22には、データ識別子と、時刻とが関連付けられて格納されている。
データ識別子は、データを識別するための情報である。
時刻は、同じレコードに属するデータ識別子が履歴情報22に格納された時刻を示す。
図10(a)に示す履歴情報22を参照して、履歴情報22に格納されているレコードの示す情報を詳細に説明する。
履歴情報22は、図10(a)に示すように、データ識別子d25と、時刻t25とが関連付けられて格納されているとき、時刻t25にデータD25が履歴情報22に記憶されたことを示す。
記憶装置51のデータを保持情報21に格納するときの処理を、図10(a)〜(h)を参照して説明する。
図10(a)、(e)は、記憶装置51の履歴情報22である。図10(b)、(f)は、記憶装置52の履歴情報22である。図10(c)、(g)は、記憶装置53の履歴情報22である。図10(d)、(h)は、記憶装置54の履歴情報22である。
図9(b)のように、保持情報21にデータ2つ分の記憶領域が空いたとき、書込部12は、図10(a)〜(d)を参照して、時刻が最近のものを2つ抽出する。書込部12は、例えば、t25およびt37を最近の時刻として抽出すると、d25およびd37で識別されるデータD25およびデータD37を保持情報21に書き込む。そして、削除部11は、図10(e)に示すように、記憶装置51の履歴情報22からd25およびd37を含むレコードを削除する。
図11を参照して説明する。
図11は、オフロード情報の一例を示す図である。図11を参照して、オフロード情報23について説明する。
オフロード情報23は、オン状態の記憶装置1に記憶されたデータとパリティとを用いて復元できるデータを示す情報が格納される。
オフロード情報23には、データ識別子と、時刻とが関連付けられて格納されている。
データ識別子は、データを識別するための情報である。
時刻は、同じレコードに属するデータ識別子が記憶装置1に格納された時刻を示す。
図11(b)に示すオフロード情報23を参照して、オフロード情報23に格納されているレコードの示す情報を詳細に説明する。
オフロード情報23は、図11(b)に示すように、データ識別子d1と、時刻t1とが関連付けられて格納されているとき、時刻t1に記憶装置1に記憶されたデータD1がオフロード済みとなったことを示す。
図8を参照して説明する。
送信部31は、例えば、制御部10から出力されたデータ、パリティ、および要求を記憶装置1や他の情報処理装置に送信する。
受信部32は、例えば、端末101や情報処理装置50〜70および記憶装置1から送信されたデータ、パリティ、および要求を受信する。そして、受信部32は、受信したデータ、パリティ、および要求を制御部10に入力する。
図12、図13は、ディスクをオフ状態に切替える処理を示すフローチャートである。
図12、図13を参照して、分散ストレージシステム100において、パリティ用の記憶装置1がオフ状態のとき、更なる消費電力の削減のため、データ用の記憶装置1をオン状態からオフ状態に切替えるときの処理を説明する。以下の説明では、パリティ用の記憶装置1がオフ状態のとき、記憶装置51をオン状態からオフ状態に切替える処理を一例として説明する。また、情報処理装置50が実行する処理は、情報処理装置50の制御部10により実行されるものとする。
情報処理装置50は、記憶装置51をオフ状態にするか否かを判定する(S101)。情報処理装置50は、記憶装置51をオフ状態にしないとき(S101にてNo)、S101の処理を繰り返す。情報処理装置50は、例えば、ユーザにより記憶装置51をオフ状態にする要求が与えられる、または任意のアルゴリズムにより記憶装置51をオフ状態にすると決定すると、記憶装置51をオフ状態に切替える処理を開始する(S101にてYes)。
情報処理装置50は、記憶装置51をオフ状態に切替える処理を開始すると(S101にてYes)、記憶部20に記憶された保持情報21に記憶装置1のオフロード済みのデータがあるか否かを判定する(S102)。
情報処理装置50は、記憶部20に記憶された保持情報21にオフロード済みのデータがあるとき(S102にてYes)、オフロード済みのデータを記憶部20に記憶された保持情報21から削除する(S103)。このとき、情報処理装置50は、記憶部20に記憶された保持情報21からオフロード済みのデータを全て削除しても良い。
また、情報処理装置50は、記憶部20に記憶された記憶装置51のオフロード情報23を更新する(S104)。そして、情報処理装置50は、S102の処理を実行する。すなわち、情報処理装置50は、S103で記憶部20に記憶された保持情報21から削除したデータをオフロード済みのデータとして、保持情報21から削除したデータのデータ識別子を記憶部20に記憶された記憶装置51のオフロード情報23に格納する。
S102において、情報処理装置50は、記憶部20に記憶された保持情報21にオフロード済みのデータがないとき(S102にてNo)、記憶部20の保持情報21を記憶する記憶領域に空き領域あるか否かを判定する(S105)。
情報処理装置50は、記憶部20の保持情報21を記憶する記憶領域に空き領域がないとき(S105にてNo)、記憶装置51をオフ状態に切替える(S106)。そして、情報処理装置50は、記憶装置51をオフ状態に切替える処理を終了する。
情報処理装置50は、記憶部20の保持情報21を記憶する記憶領域に空き領域があるとき(S105にてYes)、S107の処理を実行する。
図13を参照して説明する。
情報処理装置50は、記憶部20に記憶された記憶装置51の履歴情報22に削除履歴が格納されているか否かを判定する(S107)。情報処理装置50は、記憶部20に記憶された記憶装置51の履歴情報22に削除履歴がないとき(S107にてNo)、S106の処理を実行する。
情報処理装置50は、記憶部20に記憶された記憶装置51の履歴情報22に削除履歴があるとき(S107にてYes)、記憶部20に記憶された記憶装置51の履歴情報22からデータ識別子を取得する(S108)。このとき、情報処理装置50は、記憶部20に記憶された記憶装置51の履歴情報22に格納されている削除履歴の時刻を参照し、最近削除されたデータのデータ識別子(最近履歴情報22に格納されたデータ識別子)を取得しても良い。情報処理装置50は、S107において、記憶部20に記憶された履歴情報22に、前回までに参照した削除履歴以外の削除履歴が格納されているか否かを判定するものとする。
そして、情報処理装置50は、記憶部20に記憶された記憶装置51のオフロード情報23にS108で取得したデータ識別子があるか否かを検索する(S109)。
情報処理装置50は、記憶部20に記憶された記憶装置51のオフロード情報23にS108で取得したデータ識別子があるとき(S110にてYes)、S107の処理を実行する。このとき、情報処理装置50は、S107において、前回までに参照した削除履歴以外の削除履歴が格納されているか否かを判定する。
情報処理装置50は、記憶部20に記憶された記憶装置51のオフロード情報23にS108で取得したデータ識別子がないとき(S110にてNo)、記憶装置51からデータ識別子に対応するデータを取得する(S111)。なお、オフロード情報23にS108で取得したデータ識別子がないときとは、取得したデータ識別子で識別されるデータがオフロード済みでないことを示す。すなわち、オフロード情報23にS108で取得したデータ識別子がないときとは、取得したデータ識別子で識別されるデータが復元できないデータであることを示す。
そして、情報処理装置50は、S111で取得したデータを記憶部20に記憶された保持情報21に書き込む(S112)。そして、情報処理装置50は、S105の処理を実行する。
以上のように、情報処理装置50は、記憶装置51をオフ状態にするとき、復元できないデータを記憶部20に記憶された保持情報21に書きこむ。これにより、情報処理装置50は、記憶装置51がオフ状態のとき、記憶装置51に記憶された復元できないデータの読み込み要求が与えられた場合、記憶部20に記憶した復元できないデータを読み込む。また、情報処理装置50は、記憶装置51がオフ状態のとき、オフロード済みのデータの読み込み要求が与えられると、オン状態の他の記憶装置1に分散して記憶されたデータとパリティとを用いて復元できるデータを取得し、取得したデータを読み込む。したがって、情報処理装置50は、記憶装置51がオフ状態のときにおいても、記憶装置51に記憶されたデータを、パリティ用の記憶装置1をオン状態にすることなく読み込むことができる。
図14、図15は、データがオフロード済みになったときの処理を示すフローチャートである。
図14、図15を参照して、分散ストレージシステム100において、データ用の記憶装置1をオフ状態にしているとき、情報処理装置の記憶部20に記憶している記憶装置1のデータがオフロード済みになったときの処理を説明する。以下の説明では、記憶装置51がオフ状態のとき、情報処理装置50の記憶部20に記憶された記憶装置51のデータがオフロード済みになったときの処理を一例として説明する。また、情報処理装置50が実行する処理は、情報処理装置50の制御部10により実行されるものとする。
情報処理装置50は、記憶部20に記憶された記憶装置51のデータがオフロード済みになったか否かを判定する(S201)。情報処理装置50は、記憶部20に記憶された記憶装置51のデータがオフロード済みになるまで、S201の処理を繰り返し実行する(S201にてNo)。
情報処理装置50は、記憶部20に記憶された記憶装置51のデータがオフロード済みになると、記憶装置51がオフ状態であるか否かを判定する(S202)。情報処理装置50は、記憶装置51がオン状態のとき(S202にてNo)、記憶装置51のデータがオフロード済みになったときの処理を終了するか否かを判定する(S203)。
情報処理装置50は、データがオフロード済みになったときの処理を終了しないと判定すると(S203にてNo)、S201の処理を実行する。また、情報処理装置50は、例えば、ユーザからの終了要求が入力されると、データがオフロード済みになったときの処理を終了すると判定し(S203にてYes)、データがオフロード済みになったときの処理を終了する。なお、情報処理装置50は、S203に限らず、ユーザからの終了要求が入力されたとき、データがオフロード済みになったときの処理を終了しても良い。
情報処理装置50は、記憶装置51がオフ状態のとき(S202にてYes)、記憶部20に記憶された保持情報21に、S201でオフロード済みになったデータがあるか否かを判定する(S204)。情報処理装置50は、記憶部20にS201でオフロード済みになったデータがないとき(S204にてNo)、S203の処理を実行する。
情報処理装置50は、記憶部20に記憶された保持情報21にS201でオフロード済みになったデータがあるとき(S204にてYes)、オフロード済みのデータを記憶部20に記憶された保持情報21から削除する(S205)。
情報処理装置50は、記憶部20に記憶された記憶装置51のオフロード情報23に、S201でオフロード済みになったデータのデータ識別子を書き込む(S206)。そして、情報処理装置50は、S207の処理を実行する。
図15を参照して説明する。
情報処理装置50は、記憶部20に記憶されたオン状態の記憶装置1の履歴情報22を参照する(S207)。
情報処理装置50は、記憶部20に記憶されたオン状態の記憶装置1の履歴情報22に削除履歴がないとき(S208にてNo)、S203の処理を実行する。
情報処理装置50は、記憶部20に記憶されたオン状態の記憶装置1の履歴情報22に削除履歴があるとき(S208にてYes)、履歴情報22に格納された削除履歴の中から最新の時刻に関連付けられたデータ識別子を取得する(S209)。
情報処理装置50は、S209で取得したデータ識別子に対応するデータを、オン状態の記憶装置1から取得する(S210)。
情報処理装置50は、取得したデータを記憶部20に記憶された保持情報21に書き込む(S211)。
情報処理装置50は、履歴情報22から取得したデータ識別子を削除する(S212)。そして、情報処理装置50は、S203の処理を実行する。
図16、図17は、パリティ用の記憶装置がオン状態になったときの処理を示すフローチャートである。
図16、図17を参照して、分散ストレージシステム100において、オフ状態にしていたパリティ用の記憶装置1がオン状態になったときの処理を説明する。以下の説明では、パリティ用の記憶装置55がオフ状態からオン状態に切り替わるときの処理を一例として説明する。また、情報処理装置50が実行する処理は、情報処理装置50の制御部10により実行されるものとする。
情報処理装置50は、記憶装置55がオン状態になったか否かを判定する(S301)。情報処理装置50の切替部13は、例えば、オン状態の他の記憶装置1の空き領域が所定量以下になったとき、パリティ用の記憶装置1をオン状態としても良い。また、情報処理装置50の切替部13は、所定時間ごとに、パリティ用の記憶装置1をオン状態としても良い。また、パリティ用の記憶装置1をオンにする処理は、他の情報処理装置により実行されても良い。
情報処理装置50は、記憶装置55がオン状態になるまで、S301の処理を繰り返し実行する(S301にてNo)。
情報処理装置50は、記憶装置55がオン状態になると(S301にてYes)、記憶装置71に記憶されたパリティにより復元されるデータのデータ識別子を取得する(S302)。
情報処理装置50は、記憶装置51がオフ状態か否かを判定する(S303)。情報処理装置50は、記憶装置51がオン状態のとき(S303にてNo)、記憶装置71に記憶されたパリティを記憶装置55に書き込む(S304)。
また、情報処理装置50は、記憶装置71に記憶されたパリティを削除する(S305)。そして、情報処理装置50は、パリティ用の記憶装置がオン状態になったときの処理を終了する。
S303において、情報処理装置50は、記憶装置51がオフ状態のとき(S303にてYes)、記憶装置51のオフロード情報からS302で取得したデータ識別子を検索する(S306)。
情報処理装置50は、記憶装置51のオフロード情報にS302で取得したデータ識別子があるとき(S307)、データ識別子に対応するデータを取得する(S308)。そして、情報処理装置50は、S309の処理を実行する。
図17を参照して説明する。
情報処理装置50は、記憶部20の保持情報21を記憶する記憶領域に空き領域があるか否かを判定する(S309)。
情報処理装置50は、記憶部20の保持情報21を記憶する記憶領域に空き領域があると(S309にてYes)、S306で取得したデータを記憶部20に記憶された保持情報21に記憶する(S310)。
情報処理装置50は、記憶装置51のオフロード情報23からS302で取得したデータ識別子を含むレコードを削除する(S311)。そして、情報処理装置50は、S304の処理を実行する。
S309において、情報処理装置50は、記憶部20の保持情報21の記憶領域に空き領域がないとき(S309にてNo)、オン状態の記憶装置1のデータを記憶部20から削除する。そして、情報処理装置50は、S309の処理を実行する。
図18は、データ用の記憶装置がオフ状態からオン状態になったときの処理を示すフローチャートである。
図18を参照して、分散ストレージシステム100において、オフ状態にしていたデータ用の記憶装置1がオン状態になったときの処理を説明する。以下の説明では、データ用の記憶装置51がオフ状態からオン状態に切り替わるときの処理を一例として説明する。また、情報処理装置50が実行する処理は、情報処理装置50の制御部10により実行されるものとする。
情報処理装置50は、記憶装置51がオン状態になったか否かを判定する(S401)。情報処理装置50の切替部13は、オン状態の他の記憶装置1の空き領域が所定量以下になると、データ用の記憶装置1をオン状態にしても良い。また、データ用の記憶装置1をオンにする処理は、他の情報処理装置により実行されても良い。
情報処理装置50は、記憶装置51がオン状態になるまで、S401の処理を繰り返し実行する(S401にてNo)。
情報処理装置50は、記憶装置51がオン状態になると(S401にてYes)、記憶部20に記憶された記憶装置51のオフロード情報23にオフロード済みのデータを示す情報が格納されているか否かを判定する(S402)。
情報処理装置50は、記憶部20に記憶された記憶装置51のオフロード情報23にオフロード済みのデータを示す情報が格納されていないとき(S402にてNo)、保持情報21を再構築する(S403)。保持情報21を再構築するとは、例えば、LRU(Least Recently Used)などの既存のCache Replacement Algorithmを用いて、保持情報21に使用頻度の高いデータを載せなおす処理のことである。
情報処理装置50は、記憶部20に記憶された記憶装置51のオフロード情報23にオフロード済みのデータを示す情報が格納されているとき(S402にてYes)、記憶装置51のオフロード情報23からデータ識別子を取得する(S404)。
そして、情報処理装置50は、取得したデータ識別子に対応するデータを取得する(S405)。
情報処理装置50は、取得したデータを記憶装置51に書き込む(S406)。
情報処理装置50は、記憶装置51のオフロード情報23から取得したデータを含むレコードを削除する(S407)。
そして、情報処理装置50は、S402の処理を実行する。
図19を参照して、情報処理装置40〜70の構成について説明する。
図19において、コンピュータ装置200は、制御回路201と、記憶装置202と、読み書き装置203と、記録媒体204と、通信インターフェイス205(通信I/F)と、入出力インターフェイス206(入出力I/F)と、表示装置207と、ネットワーク208とを備えている。また、各構成要素は、バス209により接続されている。
制御回路201は、コンピュータ装置200全体の制御をする。そして、制御回路201は、例えば、CPU、マルチコアCPU、FPGA(Field Programmable Gate Array)およびPLD(Programmable Logic Device)などである。制御回路201は、例えば、図2において、制御部41として機能する。また、制御回路201は、例えば、図8において、制御部10として機能する。なお、図2において、記憶部42に記憶されたデータ管理情報24と、パリティ管理情報25とは、例えば、CPU、FPGA、およびPLDのキャッシュに記憶されても良い。また、図8において、記憶部20に記憶された保持情報21と、履歴情報22と、オフロード情報23とは、例えば、CPU、FPGA、およびPLDのキャッシュに記憶されても良い。
記憶装置202は、各種データを記憶する。そして、記憶装置202は、例えば、ROM(Read Only Memory)およびRAM(Random Access Memory)などのメモリや、HDなどで構成される。記憶装置202は、例えば、図2において、記憶部42として機能する。また、記憶装置202は、例えば、図8において、記憶部20として機能する。
また、ROMは、ブートプログラムなどのプログラムを記憶している。RAMは、制御回路201のワークエリアとして使用される。HDは、OS、アプリケーションプログラム、ファームウェアなどのプログラム、および各種データを記憶している。
記憶装置202は、例えば、制御回路201を、制御部10、および制御部41として機能させる記憶装置制御プログラムを記憶する。
記憶装置の制御をするとき、情報処理装置40〜70は、記憶装置202に記憶された記憶装置制御プログラムをRAMに読み出す。RAMに読み出された記憶装置制御プログラムを制御回路201で実行することにより、情報処理装置40〜70は、生成処理と、振分処理と、管理処理と、削除処理と、書込処理と、切替処理と、読込処理と、取得処理の1以上を含む記憶装置制御処理を実行する。
なお、記憶装置制御プログラムは、制御回路201が通信インターフェイス205を介してアクセス可能であれば、ネットワーク208上のサーバが有する記憶装置に記憶されていても良い。
読み書き装置203は、制御回路201に制御され、着脱可能な記録媒体204のデータのリード/ライトを行なう。そして、読み書き装置203は、例えば、FDD(Floppy Disk Drive)、CDD(Compact Disc Drive)、DVDD(Digital Versatile Disk Drive)、BDD(Blu−ray(登録商標) Disk Drive)およびUSB(Universal Serial Bus)などである。
記録媒体204は、各種データを保存する。記録媒体204は、例えば、記憶装置制御プログラムを記憶する。さらに、記録媒体204は、図2に示す、データ管理情報24と、パリティ管理情報25とを記憶しても良い。また、記録媒体204は、図8に示す、保持情報21と、履歴情報22と、オフロード情報23とを記憶しても良い。
そして、記録媒体204は、読み書き装置203を介してバス209に接続され、制御回路201が読み書き装置203を制御することにより、データのリード/ライトが行なわれる。また、記録媒体204は、例えば、FD(Floppy Disk)、CD(Compact Disc)、DVD(Digital Versatile Disk)、BD(Blu−ray Disk:登録商標)、およびフラッシュメモリなどである。
通信インターフェイス205は、ネットワーク208を介してコンピュータ装置200と他の装置とを通信可能に接続する。そして、通信インターフェイス205は、例えば、図2において、送受信部43として機能する。また、通信インターフェイス205は、例えば、図8において、送受信部30として機能する。
入出力インターフェイス206は、例えば、キーボード、マウス、およびタッチパネルなどと接続され、接続された装置から各種情報を示す信号が入力されると、バス209を介して入力された信号を制御回路201に出力する。また、入出力インターフェイス206は、制御回路201から出力された各種情報を示す信号がバス209を介して入力されると、接続された各種装置にその信号を出力する。入出力インターフェイス206は、例えば、ユーザにより入力される、記憶装置1をオフ状態にする要求を受け付けても良い。
表示装置207は、例えば、入出力インターフェイス206に接続され、各種情報を表示する。
ネットワーク208は、例えば、LAN、無線通信、またはインターネットなどであり、コンピュータ装置200と他の装置を通信接続する。
以上のように、実施形態の分散ストレージシステムにおいて、データ用の記憶装置1をオフ状態にするとき、情報処理装置は、オフロード済みのデータを記憶部20から削除し、復元できないデータを記憶部20に記憶する。そして、情報処理装置は、オフ状態の記憶装置1に記憶されたデータの読み込み要求が与えられたとき、オフ状態の記憶装置1の電源を入れることなく、記憶部20からオフ状態の記憶装置1に記憶されたデータを出力する。これにより、実施形態の分散ストレージシステム100は、運用中において、データ用の記憶装置1のオフ状態を維持し、消費電力を削減することができる。
また、実施形態の分散ストレージシステム100において、データ用の記憶装置1がオフ状態のとき、オフロード済みのデータの読み込み要求が与えられると、情報処理装置は、他の記憶装置1に記憶されたデータとパリティとを取得する。そして、情報処理装置は、オフ状態の記憶装置1の電源を入れることなく、取得したデータとパリティを用いてオフロード済みのデータを復元し、復元したデータを出力する。これにより、実施形態の分散ストレージシステム100は、運用中において、データ用の記憶装置1のオフ状態を維持し、消費電力を削減することができる。
さらに、実施形態の分散ストレージシステム100において、情報処理システムは、復元できないデータを記憶部20に書き込むとき、使用される可能性の高いデータを書き込み、読み込み要求されたデータが記憶部20に記憶されている可能性を高くする。これにより、実施形態の分散ストレージシステム100は、データの読み込みをするとき、記憶部20上にデータがないために、オフ状態の記憶装置1をオン状態にする確率を低くする。したがって、実施形態の分散ストレージシステム100は、運用中において、データ用の記憶装置1のオフ状態を維持できる確率を向上し、消費電力をさらに削減することができる。
実施形態の分散ストレージシステム100において、情報処理システムは、データ用の記憶装置1がオフ状態のとき、データ用の記憶装置1に記憶されたデータの中で新たにオフロード済みになったデータがあるとき、記憶部20からそのデータを削除する。そして、情報処理装置は、オン状態の記憶装置1の履歴情報22の中で、使用される可能性の高いデータを記憶部20に書き込む。これにより、実施形態の分散ストレージシステム100は、データ用の記憶装置1のオフ状態を維持しながら、可能な限り記憶部20に使用される可能性の高いデータを記憶しておくので、要求に対する処理速度を向上することができる。
なお、本実施形態は、以上に述べた実施形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
以上記載した各実施例を含む実施形態に関し、さらに以下の付記を開示する。なお、本発明は、以下の付記に限定されるものではない。
(付記1)
複数の記憶装置と情報処理装置とを備える分散ストレージシステムであって、
前記情報処理装置は、
前記複数の記憶装置よりも優先的にアクセスされる記憶部と、
第1記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが前記記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除する削除部と、
前記第1記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込む書込部と、
前記書込部が復元できない前記データを前記記憶部に書込むと、前記第1記憶装置を電源オフ状態に切り替える切替部と、
前記第1記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む読込部と、
を備えることを特徴とする分散ストレージシステム。
(付記2)
前記情報処理装置は、さらに、
前記第1記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得する取得部を備え、
前記読込部は、
前記取得部が取得した前記データを読み込む
ことを特徴とする付記1に記載の分散ストレージシステム。
(付記3)
前記書込部は、
復元できない前記データを前記記憶部に書き込むとき、使用される可能性の高いデータを前記記憶部に書き込む
ことを特徴とする付記1または2に記載の分散ストレージシステム。
(付記4)
前記書込部は、
前記第1記憶装置が電源オフ状態のとき、前記第1記憶装置に記憶された復元できない前記データを更新する書き込み要求が与えられると、復元できない前記データを電源オン状態の他の記憶装置に書き込み、さらに、前記記憶部に記憶された復元できない前記データが削除されたとき、電源オン状態の記憶装置に記憶されたデータの中で、使用される可能性の高いデータを前記記憶部に書き込み、
前記削除部は、
復元できない前記データが電源オン状態の他の記憶装置に書込まれたとき、前記記憶部に記憶された更新前の復元できない前記データを削除し、
前記読込部は、
前記第1記憶装置が電源オフ状態であり、復元できない前記データが前記他の記憶装置に書込まれているとき、復元できない前記データの読み込み要求が与えられると、前記他の記憶装置に記憶された復元できない前記データを読み込む
ことを特徴とする付記1〜3のいずれか一つに記載の分散ストレージシステム。
(付記5)
前記情報処理装置は、さらに、
前記第1記憶装置が電源オフ状態のとき、第2記憶装置が電源オン状態になると、前記記憶部に記憶されたデータ識別子で識別される復元できる前記データを取得する取得部を備え、
前記書込部は、
前記削除部が復元できる前記データを前記記憶部から削除したとき、復元できる前記データのデータ識別子を前記記憶部に書き込み、前記取得部が復元できる前記データを取得したとき、取得した前記データを前記記憶部に書き込み、さらに、電源オン状態の他の記憶装置に記憶された前記パリティを前記第2記憶装置に書き込み、
前記切替部は、
電源オン状態の他の記憶装置に記憶された前記パリティが前記第2記憶装置に書き込まれると、前記第2記憶装置を電源オフ状態に切り替え、
前記削除部は、
前記第2記憶装置が電源オフ状態に切替えられると、電源オン状態の他の記憶装置に記憶された前記パリティを前記他の記憶装置から削除し、
前記読込部は、
取得した復元できる前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できる前記データを読み込む
ことを特徴とする付記1〜4のいずれか一つに記載の分散ストレージシステム。
(付記6)
前記削除部は、
前記第1記憶装置が電源オン状態となったとき、前記記憶部から復元できない前記データを削除し、
前記書込部は、
電源オン状態の記憶装置に記憶された前記データの中で、使用される可能性の高いデータを前記記憶部に書き込む
ことを特徴とする付記1〜5のいずれか一つに記載の分散ストレージシステム。
(付記7)
前記書込部は、
電源オン状態の前記他の記憶装置の空き領域に前記パリティ、および復元できない前記データを書き込み、
前記切替部は、
電源オン状態の前記他の記憶装置の空き領域が所定量以下になると、前記第2記憶装置を電源オン状態とする
ことを特徴とする付記1〜6のいずれか一つに記載の分散ストレージシステム。
(付記8)
前記書込部は、
電源オン状態の前記他の記憶装置の空き領域に前記パリティ、および復元できない前記データを書き込み、
前記切替部は、
電源オン状態の前記他の記憶装置の空き領域が所定量以下になると、前記第1記憶装置を電源オン状態とする
ことを特徴とする付記1〜7のいずれか一つに記載の分散ストレージシステム。
(付記9)
前記切替部は、
所定時間ごとに、前記第2記憶装置をオン状態にする
ことを特徴とする付記1〜8のいずれか一つに記載の分散ストレージシステム。
(付記10)
前記情報処理装置、またはそれ以外の情報処理装置は、
前記記憶部と、前記削除部と、前記書込部と、切替部と、前記読込部のいずれか1以上を備える
ことを特徴とする付記1〜9のいずれか一つに記載の分散ストレージシステム。
(付記11)
複数の記憶装置よりも優先的にアクセスされる記憶部を備える情報処理装置のコンピュータによって実行される記憶装置制御方法であって、
前記コンピュータは、
第1記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが前記記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除し、
前記第1記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込み、
前記第1記憶装置を電源オフ状態にし、
前記第1記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む
ことを特徴とする記憶制御方法。
(付記12)
前記コンピュータは、さらに、
前記第1記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得し、
取得した前記データを読み込む
ことを特徴とする付記11に記載の記憶制御方法。
(付記13)
前記コンピュータは、さらに、
復元できない前記データを前記記憶部に書き込む処理において、使用される可能性の高いデータを前記記憶部に書き込む
ことを特徴とする付記11または12に記載の記憶制御方法。
(付記14)
第1記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが、複数の記憶装置よりも優先的にアクセスされる記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除し、
前記第1記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込み、
前記第1記憶装置を電源オフ状態にし、
前記第1記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む
処理をコンピュータに実行させることを特徴とする記憶装置制御プログラム。
(付記15)
前記第1記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得し、
取得した前記データを読み込む
処理をコンピュータに実行させることを特徴とする付記14に記載の記憶装置制御プログラム。
(付記16)
復元できない前記データを前記記憶部に書き込む処理において、使用される可能性の高いデータを前記記憶部に書き込む
処理をコンピュータに実行させることを特徴とする付記14または15に記載の記憶装置制御プログラム。
1 記憶装置
10、41 制御部
11 削除部
12 書込部
13 切替部
14 取得部
15 読込部
16 生成部
17 振分部
18 管理部
20、42 記憶部
21 保持情報
22 履歴情報
23 オフロード情報
24 データ管理情報
25 パリティ管理情報
30、43 送受信部
31、33 送信部
32、34 受信部
40、50、60、70 情報処理装置
100 分散ストレージシステム
101 端末
102、103 ネットワーク
200 コンピュータ装置
201 制御回路
202 記憶装置
203 読み書き装置
204 記録媒体
205 通信インターフェイス
206 入出力インターフェイス
207 表示装置
208 ネットワーク
209 バス

Claims (13)

  1. 複数の記憶装置と情報処理装置とを備える分散ストレージシステムであって、
    前記情報処理装置は、
    前記複数の記憶装置よりも優先的にアクセスされる記憶部と、
    第1記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが前記記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除する削除部と、
    前記第1記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込む書込部と、
    前記書込部が復元できない前記データを前記記憶部に書込むと、前記第1記憶装置を電源オフ状態に切り替える切替部と、
    前記第1記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む読込部と、
    を備えることを特徴とする分散ストレージシステム。
  2. 前記情報処理装置は、さらに、
    前記第1記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得する取得部を備え、
    前記読込部は、
    前記取得部が取得した前記データを読み込む
    ことを特徴とする請求項1に記載の分散ストレージシステム。
  3. 前記書込部は、
    復元できない前記データを前記記憶部に書き込むとき、使用される可能性の高いデータを前記記憶部に書き込む
    ことを特徴とする請求項1または2に記載の分散ストレージシステム。
  4. 前記書込部は、
    前記第1記憶装置が電源オフ状態のとき、前記第1記憶装置に記憶された復元できない前記データを更新する書き込み要求が与えられると、復元できない前記データを電源オン状態の他の記憶装置に書き込み、さらに、前記記憶部に記憶された復元できない前記データが削除されたとき、電源オン状態の記憶装置に記憶されたデータの中で、使用される可能性の高いデータを前記記憶部に書き込み、
    前記削除部は、
    復元できない前記データが電源オン状態の他の記憶装置に書込まれたとき、前記記憶部に記憶された更新前の復元できない前記データを削除し、
    前記読込部は、
    前記第1記憶装置が電源オフ状態であり、復元できない前記データが前記他の記憶装置に書込まれているとき、復元できない前記データの読み込み要求が与えられると、前記他の記憶装置に記憶された復元できない前記データを読み込む
    ことを特徴とする請求項1〜3のいずれか一つに記載の分散ストレージシステム。
  5. 前記情報処理装置は、さらに、
    前記第1記憶装置が電源オフ状態のとき、第2記憶装置が電源オン状態になると、前記記憶部に記憶されたデータ識別子で識別される復元できる前記データを取得する取得部を備え、
    前記書込部は、
    前記削除部が復元できる前記データを前記記憶部から削除したとき、復元できる前記データのデータ識別子を前記記憶部に書き込み、前記取得部が復元できる前記データを取得したとき、取得した前記データを前記記憶部に書き込み、さらに、電源オン状態の他の記憶装置に記憶された前記パリティを前記第2記憶装置に書き込み、
    前記切替部は、
    電源オン状態の他の記憶装置に記憶された前記パリティが前記第2記憶装置に書き込まれると、前記第2記憶装置を電源オフ状態に切り替え、
    前記削除部は、
    前記第2記憶装置が電源オフ状態に切替えられると、電源オン状態の他の記憶装置に記憶された前記パリティを前記他の記憶装置から削除し、
    前記読込部は、
    取得した復元できる前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できる前記データを読み込む
    ことを特徴とする請求項1〜4のいずれか一つに記載の分散ストレージシステム。
  6. 前記削除部は、
    前記第1記憶装置が電源オン状態となったとき、前記記憶部から復元できない前記データを削除し、
    前記書込部は、
    電源オン状態の記憶装置に記憶された前記データの中で、使用される可能性の高いデータを前記記憶部に書き込む
    ことを特徴とする請求項1〜5のいずれか一つに記載の分散ストレージシステム。
  7. 前記情報処理装置、またはそれ以外の情報処理装置は、
    前記記憶部と、前記削除部と、前記書込部と、切替部と、前記読込部のいずれか1以上を備える
    ことを特徴とする請求項1〜6のいずれか一つに記載の分散ストレージシステム。
  8. 複数の記憶装置よりも優先的にアクセスされる記憶部を備える情報処理装置のコンピュータによって実行される記憶装置制御方法であって、
    前記コンピュータは、
    第1記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが前記記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除し、
    前記第1記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込み、
    前記第1記憶装置を電源オフ状態にし、
    前記第1記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む
    ことを特徴とする記憶制御方法。
  9. 前記コンピュータは、さらに、
    前記第1記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得し、
    取得した前記データを読み込む
    ことを特徴とする請求項8に記載の記憶制御方法。
  10. 前記コンピュータは、さらに、
    復元できない前記データを前記記憶部に書き込む処理において、使用される可能性の高いデータを前記記憶部に書き込む
    ことを特徴とする請求項8または9に記載の記憶制御方法。
  11. 第1記憶装置に記憶されたデータの中で、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できるデータが、複数の記憶装置よりも優先的にアクセスされる記憶部に記憶されているとき、復元できる前記データを前記記憶部から削除し、
    前記第1記憶装置に記憶されたデータの中で、電源オン状態の前記他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できないデータを、前記記憶部に書き込み、
    前記第1記憶装置を電源オフ状態にし、
    前記第1記憶装置が電源オフ状態のとき、復元できない前記データの読み込み要求が与えられると、前記記憶部に記憶した復元できない前記データを読み込む
    処理をコンピュータに実行させることを特徴とする記憶装置制御プログラム。
  12. 前記第1記憶装置が電源オフ状態のとき、復元できる前記データの読み込み要求が与えられると、電源オン状態の他の記憶装置に分散して記憶されたデータとパリティとを用いて復元できる前記データを取得し、
    取得した前記データを読み込む
    処理をコンピュータに実行させることを特徴とする請求項12に記載の記憶装置制御プログラム。
  13. 復元できない前記データを前記記憶部に書き込む処理において、使用される可能性の高いデータを前記記憶部に書き込む
    処理をコンピュータに実行させることを特徴とする請求項11または12に記載の記憶装置制御プログラム。
JP2014070666A 2014-03-29 2014-03-29 分散ストレージシステム、記憶装置制御方法、および記憶装置制御プログラム Active JP6269253B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014070666A JP6269253B2 (ja) 2014-03-29 2014-03-29 分散ストレージシステム、記憶装置制御方法、および記憶装置制御プログラム
US14/656,756 US9690658B2 (en) 2014-03-29 2015-03-13 Distributed storage system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014070666A JP6269253B2 (ja) 2014-03-29 2014-03-29 分散ストレージシステム、記憶装置制御方法、および記憶装置制御プログラム

Publications (2)

Publication Number Publication Date
JP2015191637A true JP2015191637A (ja) 2015-11-02
JP6269253B2 JP6269253B2 (ja) 2018-01-31

Family

ID=54190528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014070666A Active JP6269253B2 (ja) 2014-03-29 2014-03-29 分散ストレージシステム、記憶装置制御方法、および記憶装置制御プログラム

Country Status (2)

Country Link
US (1) US9690658B2 (ja)
JP (1) JP6269253B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6256133B2 (ja) * 2014-03-18 2018-01-10 富士通株式会社 ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム
US10547681B2 (en) * 2016-06-30 2020-01-28 Purdue Research Foundation Functional caching in erasure coded storage
JP2019003163A (ja) * 2017-06-20 2019-01-10 富士通株式会社 情報処理装置、情報処理方法、及びプログラム
CN111247509B (zh) 2017-11-08 2023-10-24 麻省理工学院 用于对网络编码的分布式存储进行重复数据删除的系统及相关技术
CN110955642A (zh) * 2019-10-12 2020-04-03 平安科技(深圳)有限公司 数据采集优化方法、装置、设备及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070208921A1 (en) * 2006-03-03 2007-09-06 Hitachi, Ltd. Storage system and control method for the same
US20090049240A1 (en) * 2007-08-17 2009-02-19 Fujitsu Limited Apparatus and method for storage management system
US20100058090A1 (en) * 2008-09-02 2010-03-04 Satoshi Taki Storage system and power saving method thereof
US20110283063A1 (en) * 2010-05-11 2011-11-17 Masumi Takiyanagi Disk array device, a disk array device control method and a disk array device control program
JP2012014313A (ja) * 2010-06-30 2012-01-19 Nec Corp ストレージ装置、その制御方法及びプログラム
JP2012164136A (ja) * 2011-02-07 2012-08-30 Nec Corp ストレージ装置、ストレージ装置の制御プログラム、及びストレージ装置の制御方法
US20140006818A1 (en) * 2012-06-29 2014-01-02 Qualcomm Incorporated System and Method For Adaptive Thermal Management In A Portable Computing Device
JP2014010655A (ja) * 2012-06-29 2014-01-20 Fujitsu Ltd 制御装置、制御方法、および制御プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119218A (ja) 1992-10-08 1994-04-28 Nippon Telegr & Teleph Corp <Ntt> ファイルキャッシュ制御方法
US20050228943A1 (en) * 2004-04-02 2005-10-13 Decenzo David P Multipath redundant storage system architecture and method
US7395396B2 (en) * 2004-08-30 2008-07-01 Hitachi, Ltd. Storage system and data relocation control device
JP4884885B2 (ja) * 2006-08-25 2012-02-29 株式会社日立製作所 記憶制御装置及び記憶制御装置の障害回復方法
JP2009181314A (ja) 2008-01-30 2009-08-13 Toshiba Corp 情報記録装置およびその制御方法
US8074014B2 (en) 2008-03-31 2011-12-06 Microsoft Corporation Storage systems using write off-loading
CN102460393B (zh) * 2009-05-01 2014-05-07 思杰系统有限公司 用于在虚拟存储资源之间建立云桥的系统和方法
CN101908376B (zh) * 2009-06-04 2014-05-21 威刚科技(苏州)有限公司 非挥发性存储装置及其控制方法
US20100332922A1 (en) * 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
US8527749B2 (en) * 2009-11-11 2013-09-03 International Business Machines Corporation User device, computer program product and computer system for system for secure network storage
US9454434B2 (en) * 2014-01-17 2016-09-27 Netapp, Inc. File system driven raid rebuild technique

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070208921A1 (en) * 2006-03-03 2007-09-06 Hitachi, Ltd. Storage system and control method for the same
JP2007241334A (ja) * 2006-03-03 2007-09-20 Hitachi Ltd ストレージシステム及びその制御方法
US20090049240A1 (en) * 2007-08-17 2009-02-19 Fujitsu Limited Apparatus and method for storage management system
JP2009048360A (ja) * 2007-08-17 2009-03-05 Fujitsu Ltd ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
US20100058090A1 (en) * 2008-09-02 2010-03-04 Satoshi Taki Storage system and power saving method thereof
US20110283063A1 (en) * 2010-05-11 2011-11-17 Masumi Takiyanagi Disk array device, a disk array device control method and a disk array device control program
JP2011238038A (ja) * 2010-05-11 2011-11-24 Nec Corp ディスクアレイ装置、ディスクアレイ装置制御方式、及び、ディスクアレイ装置制御プログラム
JP2012014313A (ja) * 2010-06-30 2012-01-19 Nec Corp ストレージ装置、その制御方法及びプログラム
JP2012164136A (ja) * 2011-02-07 2012-08-30 Nec Corp ストレージ装置、ストレージ装置の制御プログラム、及びストレージ装置の制御方法
US20140006818A1 (en) * 2012-06-29 2014-01-02 Qualcomm Incorporated System and Method For Adaptive Thermal Management In A Portable Computing Device
JP2014010655A (ja) * 2012-06-29 2014-01-20 Fujitsu Ltd 制御装置、制御方法、および制御プログラム

Also Published As

Publication number Publication date
JP6269253B2 (ja) 2018-01-31
US20150278018A1 (en) 2015-10-01
US9690658B2 (en) 2017-06-27

Similar Documents

Publication Publication Date Title
US11461296B2 (en) Systems and methods for database management using append-only storage devices
CN107003935B (zh) 用于优化数据库去重的装置、方法和计算机介质
US9436392B1 (en) Access-based eviction of blocks from solid state drive cache memory
US9934231B2 (en) System and methods for prioritizing data in a cache
US10769035B2 (en) Key-value index recovery by log feed caching
US9569367B1 (en) Cache eviction based on types of data stored in storage systems
JP4615337B2 (ja) ストレージシステム
JP6269253B2 (ja) 分散ストレージシステム、記憶装置制御方法、および記憶装置制御プログラム
US9805048B2 (en) System and method for managing a deduplication table
US10432723B2 (en) Storage server and storage system
US9772939B2 (en) Heat-based key-value slot organization for flash-optimized data placement in multi-tiered storage systems
US9817865B2 (en) Direct lookup for identifying duplicate data in a data deduplication system
US10108671B2 (en) Information processing device, computer-readable recording medium having stored therein information processing program, and information processing method
CN107329704B (zh) 一种缓存镜像方法及控制器
JP2019079113A (ja) ストレージ装置、データ管理方法、及びデータ管理プログラム
US20200334292A1 (en) Key value append
JP2008217209A (ja) 差分スナップショット管理方法、計算機システム及びnas計算機
JP5944502B2 (ja) 計算機システム及び制御方法
CN106991118A (zh) 基于ceph纠删除容错的读取文件方法及装置
CN107798063B (zh) 快照处理方法和快照处理装置
CN112486918B (zh) 文件处理方法、装置、设备及介质
US9600200B1 (en) Method to extend SSD lifespan in caching applications by aggregating related content into large cache units
CN105915595B (zh) 一种集群存储系统存取数据的方法以及集群存储系统
JP6248435B2 (ja) ストレージ装置、およびストレージ装置の制御方法
US9239790B1 (en) Techniques for evicting cached files

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171002

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171218

R150 Certificate of patent or registration of utility model

Ref document number: 6269253

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150