JP2014203233A - ストレージシステム及びストレージシステムにおいてデータを更新する方法 - Google Patents

ストレージシステム及びストレージシステムにおいてデータを更新する方法 Download PDF

Info

Publication number
JP2014203233A
JP2014203233A JP2013078326A JP2013078326A JP2014203233A JP 2014203233 A JP2014203233 A JP 2014203233A JP 2013078326 A JP2013078326 A JP 2013078326A JP 2013078326 A JP2013078326 A JP 2013078326A JP 2014203233 A JP2014203233 A JP 2014203233A
Authority
JP
Japan
Prior art keywords
data block
packet
parity
node
memory
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.)
Pending
Application number
JP2013078326A
Other languages
English (en)
Inventor
功人 佐藤
Katsuto Sato
功人 佐藤
淳二 山本
Junji Yamamoto
淳二 山本
恒一 高山
Koichi Takayama
恒一 高山
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013078326A priority Critical patent/JP2014203233A/ja
Publication of JP2014203233A publication Critical patent/JP2014203233A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】複数ノードの内部メモリを使用したデータ記憶において、データ損失のリスクを低減しつつ、性能の低下を小さくする。
【解決手段】第1メモリストレージノードは、第1ユーザデータブロックを格納する第1内部メモリを含み、第2メモリストレージノードは、第1ユーザデータブロックのパリティデータブロックを格納する第2内部メモリを含む。第1メモリストレージノードは、第1ユーザデータブロックの更新ユーザデータブロックと第1内部メモリから読み出した第1ユーザデータブロックとから、パリティデータブロックを更新するための差分パリティデータブロックを生成し、第2ストレージノードに送信する。第2メモリストレージノードは、差分パリティデータブロックと前記第2内部メモリから読み出した前記パリティデータブロックとから、新たなパリティデータブロックを生成し、パリティデータブロックで更新する。
【選択図】図1

Description

本発明は、ストレージシステムに関する。
近年、大規模なデータを処理することで有意なデータを抽出することを目的として、高速かつ大容量のストレージシステムが求められている。大容量のストレージシステムを構成するために、一般に、ハードディスクドライブやSSD(Solid State Drive)等のディスクドライブが用いられてきた。
上述のようなディスクドライブは、安価でドライブ当たりの容量が大きい反面、計算システムの処理能力に対して得られる単位時間当たりのデータ流量(以下、スループット)は限られている。そのため、これらは、大規模データ処理においてボトルネックとなっている。
計算システムの処理能力の向上に対して、ディスクドライブのスループットの向上は遅く、年々性能差は大きくなっている。そのため、ディスクドライブを用いて大規模データ処理を行う場合、ディスクドライブの低スループットが問題となるケースが存在する。
大規模データ処理分野におけるディスクドライブの低スループットの問題を解決するために、ディスクドライブよりも高速な半導体内部メモリを使う方法がある。しかし、一般に一台の計算機に搭載される内部メモリの容量は、大規模データを格納するには小さい。また、格納すべきユーザデータとデータ処理を行うアプリケーションプログラムとが、内部メモリを共用する関係にあるため、一台の計算機に大規模データを配置することは、不適である。
また、揮発性記憶媒体にデータを記憶する内部メモリを用いる場合、計算機の障害によってデータが消失するリスクがある。揮発性媒体に限らず、記憶媒体上のデータ消失リスクに備えるため、同一のデータを冗長に格納する方法や(例えば、特許文献1)、データをいくつかのブロックに分割し、あるブロックの集合について所定のステップに従ってパリティと呼ばれる冗長データを付加する方法が知られている(例えば、特許文献2)。
特開2005−234919号公報 特開2007−52805号公報
外部ホストからのユーザデータの格納に内部メモリを使用することは、高速アクセスという大きな利点がある。しかし、上述のように、内部メモリを有する一台の装置に大規模データを配置することは、困難又は不適ある。さらに、ハードウェア障害の発生時にはユーザデータを消失してしまうリスクがある。データ消失のリスクは、揮発性記憶媒体の内部メモリを使用する場合に、特に、高い。
これら課題を解決するために、ネットワークで接続された複数ノードによりストレージシステムを構成し、複数ノードの内部メモリに冗長化したデータを分散配置することが重要である。これにより、大規模データを格納すると共に、障害が発生して一部のデータが消失した場合でも、残ったデータから消失したデータを復元できる。
しかし、同一のデータを冗長に格納する方法であっても、パリティを付加する方法であっても、データを冗長化して格納する処理は、冗長化しない処理と比べて、より多くのノードのハードウェアリソース及びネットワークリソースを消費する。そのため、少なからず性能を低下させる。特に、データの更新は、冗長化により追加されたデータの更新を必要とするため、それによる性能の低下は無視できない。
ディスクドライブを用いたストレージシステムにおいては、ディスクドライブのアクセス遅延時間が長いため、冗長化のための処理に多少の時間がかかっても、致命的な問題にはなりにくい。しかし、内部メモリをユーザデータの格納に用いる場合には、内部メモリへのアクセス遅延時間に対して冗長化のための処理時間が相対的に大きくなる。そのため、冗長化処理は、ストレージシステムの性能に致命的な影響を与える可能性がある。
本発明の一態様は、ネットワークにより接続された複数のメモリストレージノードを含む、ストレージシステムである。前記複数のメモリストレージノードは、第1メモリストレージノードと、第2メモリストレージノードと、を含む。前記第1メモリストレージノードは、第1ユーザデータブロックを格納する第1内部メモリを含む。前記第2メモリストレージノードは、前記第1ユーザデータブロックのパリティデータブロックを格納する第2内部メモリを含む。前記第1メモリストレージノードは、前記第1ユーザデータブロックの更新ユーザデータブロックをホストから受信する。前記第1メモリストレージノードは、前記更新ユーザデータブロックと前記第1内部メモリから読み出した前記第1ユーザデータブロックとから、前記パリティデータブロックを更新するための差分パリティデータブロックを生成する。前記第1メモリストレージノードは、前記差分パリティデータブロックを前記第2ストレージノードに送信する。前記第1メモリストレージノードは、前記第1内部メモリにおける前記第1ユーザデータブロックを前記更新ユーザデータブロックにより更新する。前記第2メモリストレージノードは、前記差分パリティデータブロックと前記第2内部メモリから読み出した前記パリティデータブロックとから、新たなパリティデータブロックを生成する。前記第2メモリストレージノードは、前記第2内部メモリにおける前記パリティデータブロックを、前記新たなパリティデータブロックで更新する。
本発明の一態様によれば、複数ノードの内部メモリを使用したデータ記憶において、データ損失のリスクを低減しつつ、性能の低下を小さくすることができる。
実施例1に係るクラスタメモリストレージシステムの構成を模式的に示す。 実施例1のシステムにおいてネットワーク上を流れるパケットの構成を模式的に示す。 実施例1におけるパケットの構成を模式的に示す。 実施例1係るストレージシステムにおいて、冗長化処理を担当する機構の構成を模式的に示す。 アプリケーションノードのアクセス手段提供機構におけるアプリケーションからのアクセス要求に対する動作フローチャートを示す。 アプリケーションノードのアクセス手段提供機構におけるネットワークからのパケット受信に対する動作フローチャートを示す。 実施例1係るストレージシステムの動作フローチャート(データ書き込み完了通知をデータ更新完了時点で送信する場合)を示す。 実施例1係るストレージシステムの動作フローチャート(データ書き込み完了通知をパリティデータ更新完了時点で送信する場合)を示す。 実施例2におけるクラスタストレージシステムの構成例を模式的に示す。 実施例2において、アプリケーションノードにおけるディスクオフセットとユーザデータブロックとの関係例を示す。 実施例2において、メモリストレージノードの内部メモリにおけるデータの例を示す。 実施例2におけるデータ位置管理テーブルの例を示す。 実施例2におけるパリティノード管理テーブルの例を示す。 実施例2における冗長化処理機構の構成例を模式的に示す。 実施例2において、ソフトウェアによるアクセス手段提供機構におけるアクセス要求対応テーブルの例を示す。 実施例3において、アクセス手段提供機構のハードウェアによる構成例を示す。 実施例3において、ハードウェアによるアクセス手段提供機構におけるアクセス要求対応テーブルの例を示す。
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。特に説明のない場合、各図において共通の構成については同一の参照符号が付されている。
本実施形態は、内部メモリに外部ホストからのユーザデータを格納するストレージシステムにおいて、高性能を維持しつつ冗長化を図る技術に関する。本実施形態のストレージシステムは、ネットワークにより通信可能な複数のノードを含む。本明細書において、このノードを、メモリストレージノードと呼ぶ。本ストレージシステムは、クラスタメモリストレージシステムとも呼ばれる。
各メモリストレージノードはコントローラ、内部メモリ及びネットワークインターフェイスを含む。コントローラは、内部メモリに外部ホストから受信したユーザデータを格納する。コントローラは、ソフトウェアに従って動作するプロセッサ及び/又は特定処理を行うハードウェア論理回路で構成される。メモリストレージノードは、一般的な計算機構成を有していてもよい。
本実施形態のストレージシステムは、ユーザデータを冗長化し、ユーザデータ及び冗長データを複数のメモリストレージノードに分散配置する。本明細書において、この冗長データをパリティデータと呼ぶ。具体的には、本実施形態のストレージシステムは、ユーザデータをn個のユーザデータブロックに分割し、m個のパリティデータブロックを生成する。ストレージシステムは、(n+m)個のデータブロックを、(n+m)のノードに分散配置する。
本実施形態は、複数メモリストレージノードにおけるデータ配置の冗長化処理による性能低下を抑制するために、冗長化に必要な処理を複数メモリストレージノードに分散させて、それらを並列に実行する。本実施形態は、パリティ計算に、部分計算可能で可換な計算方法(例えば排他的論理和)を使用する。
本実施形態のストレージシステムは、冗長化処理において性能低下の原因となるユーザデータ更新時に行わなければならないパリティデータの更新を、旧ユーザデータと更新ユーザデータから差分パリティを生成する処理と、差分パリティデータと旧パリティデータから新パリティデータを生成する動作を、異なるメモリストレージノードにおいて独立に行う。これにより、ユーザデータ更新処理のボトルネックを解消し、スループットを向上させることができる。
本実施形態は、ホストノードからのユーザデータ更新要求からパリティデータの更新まで、いずれのノードも待機状態にならずに、データ更新処理を完了することができる。
本実施形態は、同じパリティデータを更新しなければならない複数のデータ更新においても、前段の差分パリティデータ生成動作を並列に行うことができる。このとき、ネットワークに対してメモリストレージノード内のデータ転送速度は十分に高速であるために、ネットワークの帯域幅と同等のスループットを保ったままパリティデータ更新が可能である。そのため、ユーザデータの更新要求発生からデータの更新及び冗長化処理完了までを高いスループットを維持したまま行うことができる。
(構成の説明)
本実施形態の構成例を、図1〜図4を参照して説明する。図1は、本実施形態に係るクラスタメモリストレージシステムを含む、計算機システムの全体構成の概要図である。ストレージシステムは、複数のメモリストレージノード(MSノード)を含む。図1において、MSノード200a〜200eが明示されている。以下において、MSノード200は、ストレージシステムにおける、1又は複数のMSノードを意味する。
MSノード200a〜200eは、それぞれ、内部メモリ210a〜210e及びコントローラ205a〜205eを含む。他のMSノード200も同様の要素を含む。内部メモリ210a〜210eは、ホストノードからのユーザデータ(冗長化データを含む)を格納する。コントローラ205a〜205eは、ユーザデータの読み出し、ユーザデータの書き込み(更新)、冗長化等の処理を行う。
ホストノードであるアプリケーションノード(APノード)は、ネットワーク(不図示)を介して、MSノード200と通信する。図1において、APノード100a、100bが明示されている。以下において、APノード100は、いずれか一つ又は複数のAPノードを示す。APノード100とMSノード200を相互接続するネットワークは、MSノード200を相互接続するネットワークと同一又は異なる。
各APノード100はプロセッサ及びメインメモリを含み、アプリケーションプログラムを実行する。APノード100a、100bはアクセス元ノードであり、それぞれ、アクセス手段提供機構110a、110bを含む。アクセス手段提供機構110a、110bは、ソフトウェアに従って動作するプロセッサ又はハードウェア論理回路で構成することができる。アクセス手段提供機構110a、110bは、それぞれ、データ位置管理テーブル111a、111bを含む。他のAPノード100も同様の構成を有する。APノード100は、一般的な計算機構成を有していてもよい。
アクセス手段提供機構110a、110bは、アプリケーションプログラムからのアクセス要求を受け取る。アクセス要求は、MSノード200からのデータ読み出し要求又はMSノード200におけるデータ書き込み(データ更新)要求である。
アクセス手段提供機構110a、110bは、それぞれ、データ位置管理テーブル111a、111bにおいて、複数のMSノード200の中からアクセス対象となるMSノード200を検索する。データ位置管理テーブル111a、111bは、複数のMSノード200に分散して格納されているユーザデータ(ユーザデータブロック)の位置を管理する。
APノード100及びMSノード200は、パケットを送受信することによって、ユーザデータの読み出し及び書き込み並びにパリティの更新を行う。図2は、本実施形態のストレージシステムへのアクセスに伴いネットワークを流れるパケットの概略構成を示す。本例において、5種類のネットワークパケットが定義されている。
データ書き込み(データ更新)要求パケット300は、APノード100からMSノード200へ送信され、ユーザデータの更新(書き込み)を要求するパケットである。データ書き込み要求パケット300は、ヘッダ310及びボディ320を含む。ボディ320は、新たに書き込む更新ユーザデータブロックを含む。
データ書き込み(データ更新)完了通知パケット301は、MSノード200からAPノード100へ送信され、ユーザデータの書き込み完了を通知するパケットである。データ書き込み完了通知パケット301は、ヘッダ311を含む。他の必要なデータはない。
データ読み出し要求パケット302は、APノードからMSノードへ送信され、ユーザデータの読み出しを要求するパケットである。データ読み出し要求パケット302は、ヘッダ312を含む。他の必要なデータはない。
データ読み出し返答パケット303は、MSノード200からAPノード100へ送信され、要求されたユーザデータブロックを転送するパケットである。データ読み出し返答パケット303は、ヘッダ313及びボディ323を含む。ボディ323は、MSノード200のメモリ210から読み出されたユーザデータブロックを含む。
差分パリティパケット304は、差分パリティデータブロックを転送するパケットである。差分パリティパケット304は、データ書き込み要求パケット300を受信した第1のMSノード200から、データ書き込み要求を受けたユーザデータブロックに関連するパリティデータブロックを保持している第2のMSノード200へ送信される。差分パリティパケット304は、ヘッダ314及びボディ324を含む。ボディ324は、差分パリティデータブロックを含む。
図3は、本実施形態のストレージシステムへのアクセスにおいて使用されるパケット300〜304のヘッダ310〜314が含む情報を示している。なお、ネットワーク上を転送されるパケット300〜304には、図3に示す情報に加え、ネットワークに依存するルーティング用のヘッダが付加される。
図3において、ヘッダ310〜314は、それぞれ、パケット種別識別子330、パケット長331、アクセス先メモリアドレス332、要求元APノードネットワークアドレス333、要求先MSノードネットワークアドレス334、トランザクション識別子335を含む。本例において、これらのフィールドが、ヘッダの先頭から、図示されている順で並んでいる。他例において、これらのフィールドは、これと異なる順序で格納されていてもよい。
パケット種別識別子330は、5種類のパケットにおける当該パケットの種別を示す。パケット長331は、当該パケットのデータ長を示す。アクセス先メモリアドレス332は、APノード100からMSノード200へのアクセス要求における、当該MSノード200の内部メモリ210内のアクセス領域を示し、例えば、アクセス領域の先頭アドレスを示す。
以下に説明する例において、APノード100からMSノード200への一つの要求パケットは、単一のデータブロックへのアクセスを要求する。MSノード200からAPノード100へのパケット301、303は、アクセス先メモリアドレス332、要求元APノードネットワークアドレス333、要求先MSノードネットワークアドレス334を含まなくともよく、又はそれらの値が規定のデフォルト値でもよい。
トランザクション識別子335は、APノード100からMSノード200に対するアクセスにおける(アクセス要求パケット300、302に起因する)一連のステップからなるトランザクションの識別子を示す。トランザクション識別子335は、アプリケーションノード100が読み出しまたは書き込みの要求を行う際に、送信元アプリケーションの情報と、ネットワークから返ってくるデータ書き込み完了通知301、データ読み出し返答パケット303のマッチングを可能とする。
具体的には、データ書き込み要求パケット300、対応するデータ書き込み完了通知パケット301、そして、対応する差分パリティパケット304が、同一のトランザクション識別子を含む。同様に、データ読み出し要求パケット302及びそれに応答するデータ読み出し返答パケット303が、同一のトランザクション識別子を含む。
要求元APノードネットワークアドレス333及び要求先MSノードネットワークアドレス334は、一つのトランザクションにおいて、最初にAPノード100からMSノード200に送信されたパケットの送信元及び送信先ノードのネットワークアドレスを示す。ネットワークアドレスは、ネットワーク上においてノードを一意に識別する。
APノード100からMSノード200に送信されるデータ書き込み要求パケット300、データ読み出し要求パケット302に起因して生成、送信される他のパケット301、303、304は、それぞれ、起因となるパケットと同一の要求元APノードネットワークアドレス333及び要求先MSノードネットワークアドレス334を含む。つまり、同一トランザクションに含まれる全てのパケットは、同一の要求元APノードネットワークアドレス333及び要求先MSノードネットワークアドレス334を含む。
図1の例において、APノード100aは、データ書き込み要求300aをMSノード200aに送信する。MSノード200aは、ユーザデータのデータ更新に伴う差分パリティパケット304aを作成し、MSノード200cに送信する。MSノード200aは、受信したデータブロックを指定されたアドレスに書き込む。
MSノード200cは受信した差分パリティデータブロックを使用して、対応するパリティブロックを更新する。MSノード200cは、パリティ更新後、データ書き込み完了通知パケット301aをAPノード100aに送信する。これらパケットは同一のトランザクション識別子335を含む。
APノード100bは、データ書き込み要求パケット300bをMSノード200dに送信する。MSノード200dは、ユーザデータのデータ更新(データ書き込み)に伴う差分パリティパケット304bを作成し、MSノード200eに送信する。MSノード200dは、ユーザデータの更新後、データ書き込み完了通知パケット301bをAPノード100bに送信する。MSノード200eは、受信した差分パリティデータブロックを使用して、対応するパリティデータブロックを更新する。これらパケットは同一トランザクションに含まれ、同一のトランザクション識別子335を含む。
APノード100bは、データ読み出し要求パケット302をMSノード200aに送信する。MSノード200aは、APノード100bに対して、指定されたアドレスのデータブロックを含むデータ読み出し返答パケット303を、送信する。
図4は、MSノード200の構成を模式的に示している。本例において、MSノード200a〜200eは同様の構成を有する。MSノード200は、コントローラ205、内部メモリ210、ネットワークインターフェイス401a、401bを含む。コントローラ205、内部メモリ210、ネットワークインターフェイス401a、401bは、内部バスで通信可能に接続されている。ネットワークインターフェイス401a、401bが一つのユニットにまとめられていてもよい。
コントローラ205は、冗長化処理機構211を含む。冗長化処理機構211は、パケット受信部402、パリティ処理部403、パリティノード管理テーブル(変換機能を含む)404、パケット送信部405を含む。コントローラ205の各機能ブロックは、内部メモリ210に格納されるプログラムに従って動作するプロセッサ及び/又は特定処理を行うハードウェア論理回路で構成することができる。コントローラ205は、図4に示す冗長化処理機構211の他、MSノード200の他の動作を制御する機能を含む。
内部メモリ210は、例えば、DRAMやSRAM等の揮発性半導体メモリデバイス及び/又はEEPROMのような不揮発性半導体メモリデバイスを使用して構成することができる。内部メモリ210は、APノード100からのユーザデータ及びパリティを格納する。コントローラ205がプロセッサを含む構成において、内部メモリ210は、プロセッサが実行するプログラムを格納する。例えば、プロセッサは、パケット受信プログラム、パリティ処理プログラム、パケット送信プログラム、パリティノード管理テーブル(変換プログラムを含む)を実行する。
(動作の説明)
以下において、図1〜図4が示す構成における動作の概要を、図5〜図8のフローチャートを参照して説明する。APノード100は、1又は複数のユーザデータブロックのアクセスを要求する。アクセス手段提供機構110は、各ユーザデータブロックに対応する要求パケットを生成し、それをMSノード200に送信する。
図5は、APノード100の動作を示すフローチャートである。APノード100のアクセス手段提供機構110は、アプリケーションプログラムからのアクセス要求に応答して、図5に示すフローチャートが示す処理を実行する。アクセス手段提供機構110は、プログラムに従って動作するプロセッサ及び/又は特定の処理を行うハードウェア論理回路で構成される。
アクセス手段提供機構110は、アプリケーションプログラムからアクセス要求を受け取る。アクセス要求は、1又は複数のユーザデータブロックのAPノード内アドレスを示す。アクセス手段提供機構110は、データ位置管理テーブル111にアクセスし、要求された各ユーザデータブロックを保持しているMSノード200の識別子と、当該MSノード200の内部メモリ210上のデータ位置(アドレス)を取得する(A01)。
データ位置管理テーブル111は、APノード100内で定義、使用されているアドレスと、メモリストレージシステム内のアドレスとを対応付ける。例えば、データ位置管理テーブル111は、APノード100において定義されている論理記憶ドライブ及び論理記憶ドライブ内オフセットに対して、MSノード200の識別子及び当該MSノードの内部メモリにおけるアドレスを対応づける(一例について図10及びその説明を参照)。
アクセス手段提供機構110は、アプリケーションプログラムからのアクセス要求の種別を判定する(A02)。アプリケーションプログラムからのアクセス要求がデータ読み出し要求の場合(A02:読み出し要求)、アクセス手段提供機構110は、データ位置管理テーブル111から得た情報に基づいて、指定された各ユーザデータブロックのためのデータ読み出し要求パケット302を生成する(A03)。
アクセス手段提供機構110は、データ位置管理テーブル111から取得したアクセス先MSノード200のネットワークアドレス及びメモリアドレスを、各データ読み出し要求パケット302に含める。アクセス手段提供機構110は、各アクセス先MSノード200へ、各データ読み出し要求パケット302を、ネットワークを介して送信する(A04)。
アクセス要求がデータ書き込み要求の場合(A02:書き込み要求)、アクセス手段提供機構110は、データ位置管理テーブル111から得た情報に基づいて、各データ書き込み要求パケット300を生成する(A05)。
アクセス手段提供機構110は、データ位置管理テーブル111から取得したアクセス先MSノード200のネットワークアドレス及びメモリアドレスを、各パケットのヘッダ310に含める。アクセス手段提供機構110は、アプリケーションプログラムから取得した各更新ユーザデータブロックを、各パケットのボディ320に含める。
アクセス手段提供機構110は、アクセス先MSノード200のそれぞれへ、データ書き込み要求パケット300を、ネットワークを介して送信する(A06)。
図6は、APノード100の他の動作を示すフローチャートである。APノード100におけるアクセス手段提供機構110は、ネットワークから受信したパケットに応答して、図6に示すフローチャートに従った処理を実行する。
アクセス手段提供機構110は、受信したパケットの種別を、当該パットのヘッダを参照して判定する(A07)。ネットワークから受信したパケットがデータ読み出し返答パケット303である場合(A07:データ読み出し返答パケット)、アクセス手段提供機構110は、受信したデータ読み出し返答パケット303のボディ323からユーザデータブロックを取得し、当該APノード100の内部メモリに書き込む(A08)。アクセス手段提供機構110は、アプリケーションプログラムに対して、読み出し要求が完了したことを通知する(A09)。
ネットワークから受信したパケットがデータ書き込み完了通知パケット301である場合(A07:データ書き込み完了通知パケット)、アクセス手段提供機構110は、アプリケーションプログラムに対して、書き込み要求が完了したことを通知する(A10)。
図7及び図8は、次に、MSノード200の動作を示すフローチャートである。図7のフローチャートにおいて、ユーザデータを更新した(書き込んだ)MSノード200が、データ書き込み完了通知パケット301をAPノード100に送信する。一方、図8のフローチャートにおいて、パリティデータを更新したMSノード200が、データ書き込み完了通知パケット301をAPノード100に送信する。
まず、図7のフローチャートを説明する。MSノード200において、パケット受信部402は、ネットワークインターフェイス401bを介して、パケットを受信する。パケット受信部402は、受信したパケットにおいて、ヘッダのパケット種別識別子330を参照して、当該パケットの種別を判定する(S01)。
パケット種別識別子330が、データ書き込み要求パケット300であることを示している場合(S01:データ書き込み要求パケット)、冗長化処理機構211は、ステップS02〜S07を実行してデータ書き込み動作(ユーザデータ更新動作)を行う。
パケット種別識別子330が、差分パリティパケット304であることを示している場合(S01:差分パリティパケット)、冗長化処理機構211は、ステップS08〜S10を実行してパリティ更新動作を行う。
パケット種別識別子330が、データ読み出し要求パケット302であることを示している場合(S01:データ読み出し要求パケット)、冗長化処理機構211は、ステップS11、S12、S07を実行してデータ読み出し動作を行う。
まず、ステップS02〜S07によるユーザデータの書き込み動作(ユーザデータ更新動作)を説明する。図1におけるデータ書き込み要求パケット300aに応答したMSノード200aの動作は、ステップS02〜S07の動作の一例である。
パリティ処理部403は、パケット受信部402から、パケット種別の判定結果、アクセス先メモリアドレス332及び更新ユーザデータブロック(新たに書き込むべきユーザデータブロック)を取得する。パリティ処理部403は、内部メモリ210におけるアクセス先メモリアドレス332が示す領域(指定アドレス領域)から、旧ユーザデータブロックを読み出す(S02)。
パリティ処理部403は、内部メモリ210から読み出した旧ユーザデータブロックと、更新ユーザデータブロックとに対して演算処理を行い、差分パリティデータブロックを生成する(S03)。差分パリティデータブロックは、パリティデータブロックを更新するためのデータである。パリティ処理部403は、例えば、排他的論理和演算を使用して差分パリティデータブロックを算出する。パリティ処理部403は、更新ユーザデータブロックを、内部メモリ210の上記指定アドレス領域に書き込む(S04)。
パリティノード管理テーブル404は、パケット受信部402から、アクセス先のメモリアドレス332を受け取り、当該アドレスに対応するパリティデータブロックの位置を示すデータに変換する。パリティノード管理テーブル404は、当該MSノード200の内部メモリ210に格納されているユーザデーブロックのパリティデータブロックが格納されているMSノード(パリティノードとも呼ぶ)200の識別子及び当該MSノード200における内部メモリ210内のアドレス(メモリアドレス)を示す。
具体的には、当該MSノード200の内部メモリ210においてユーザデータブロックが格納されているアドレスと、対応するパリティデータブロックが格納されているMSノード200の識別子及びメモリアドレスと、を対応付ける。上述のように、本例において、パリティノード管理テーブル404(パリティノード管理部とも呼ぶ)は、アドレスを対応付ける情報に加え、アドレス変換機能を含む。
一例において、パリティ処理部403による差分パリティデータブロックの生成と、パリティノード管理テーブル404によるアドレス変換とは、並列に実行される。これにより処理が高速化される。これらの処理が異なるハードウェア回路により実行される場合、同時に実行される。これらの処理が、プログラムに従って動作するプロセッサにより実行される場合、タイムシェリングにより並列に実行される。
パケット送信部405は、パケット受信部402及びパリティノード管理テーブル404から取得した情報並びにパリティ処理部403から取得した差分パリティデータブロックを用いて、差分パリティパケット304を生成する(S05)。
例えば、パケット送信部405は、パケット受信部402から、データ書き込み要求パケット300の、要求元APノードネットワークアドレス333、要求先MSノードネットワークアドレス334、トランザクション識別子335を取得する。
パケット送信部405は、パリティノード管理テーブル404から、パリティデータブロックを格納しているMSノード200の識別子及びメモリアドレスを取得する。パケット送信部405は、MSノード識別子と対応ネットワークアドレスとを関連付ける情報を参照して、当該MSノード200のネットワークアドレスを特定する。差分パリティパケット304において、アクセス先メモリアドレス332は、上述のようにパリティノード管理テーブル404から取得された情報から得られた値、を格納する。
差分パリティパケット304の要求元APノードネットワークアドレス333、要求先MSノードネットワークアドレス334、トランザクション識別子335は、受信したデータ書き込み要求300に含まれるそれらの値と同一である。差分パリティパケット304のボディ324は、パリティ処理部403に生成された差分パリティデータを格納する。
パケット送信部405は、さらに、データ書き込み完了通知パケット301を生成する(S06)。例えば、データ書き込み完了通知パケット301において、要求元APノードネットワークアドレス333、要求先MSノードネットワークアドレス334、トランザクション識別子335の値は、受信したデータ書き込み要求パケット300のヘッダ310と同じである。
パケット長331、アクセス先メモリアドレス332、要求元APノードネットワークアドレス333、要求先MSノードネットワークアドレス334は、データ書き込み完了通知パケット301において省略又はデフォルト値であってもよい。
パケット送信部405は、ステップS05で生成された差分パリティパケット304を対応するパリティデータブロックを格納する他のMSノード200に、ネットワークインターフェイス401cを介して送信する。パケット送信部405は、さらに、データ書き込み完了通知パケット301を、ネットワークインターフェイス401cを介して、データ書き込み要求パケット300の送信元APノード100に送信する(S07)。
次に、ステップS08〜S10のパリティ更新動作を説明する。図1における差分パリティパケット304aに応答したMSノード200cの動作は、ステップS08〜S10の動作の一例である。
パリティ処理部403は、パケット受信部402から、差分パリティパケット304の、パケット種別の判定結果、アクセス先メモリアドレス332、差分パリティデータブロックを取得する。
パリティ処理部403は、内部メモリ210に存在する旧パリティデータブロックを読みだす(S08)。差分パリティパケット304のアクセス先メモリアドレス332が、旧パリティデータブロックを格納する領域(指定アドレス領域)を示す。
パリティ処理部403は、旧パリティデータブロックと受信した差分パリティデータブロックから、新しいパリティデータブロックを生成する(S09)。例えば、パリティ処理部403は、排他的論理和演算を使用して、旧パリティデータブロックと差分パリティデータブロックから新しいパリティデータブロックを生成する。新パリティデータブロックには、更新ユーザデータブロックが反映されている。パリティ処理部403は、内部メモリ210において、生成した新しいパリティデータブロックを、差分パリティパケット304の指定アドレス領域に書き込む(S10)。
次に、ステップS11、S12、S07のデータ読み出し動作を説明する。図1において、データ読み出し要求パケット302に応答したMSノード200aの動作は、ステップS11、S12、S07の動作の一例である。
パリティ処理部403は、パケット受信部402から、データ読み出し要求パケット302のパケット種別判定結果及びアクセス先メモリアドレス332を取得する。パリティ処理部403は、内部メモリ210におけるアクセス先メモリアドレス332が示す領域からユーザデータを読み出す(S11)。
パケット送信部405は、パケット受信部402から取得した情報及びパリティ処理部403から取得した読み出しデータブロックから、データ読み出し返答パケット303を生成する(S12)。パケット送信部405は、データ読み出し返答パケット303を、ネットワークインターフェイス401cを介して、データ読み出し要求元のAPノード100へ送信する(S07)。
具体的には、パケット送信部405は、パケット受信部402から、データ読み出し要求パケット302における、アクセス先メモリアドレス332、要求元APノードネットワークアドレス333、要求先MSノードネットワークアドレス334及びトランザクション識別子335を取得する。パケット送信部405は、パリティ処理部403から、読み出しデータブロックを取得する。パケット送信部405は、これらの値をデータ読み出し返答パケット303に含める。
データ読み出し返答パケット303において、アクセス先メモリアドレス332、要求元APノードネットワークアドレス333、要求先MSノードネットワークアドレス334省略されている、又はデフォルト値であってもよい。
次に、図8のフローチャートを説明する。図7のフローチャートとの相違点を主に説明する。図8のフローチャートにおけるデータ読み出し動作は、図7のフローチャートと同じである。異なる点は、図8のフローチャートにおいて、パリティデータを更新したMSノード200が、データ書き込み完了をAPノード100に通知することである。これにより、データ損失のリスクが小さくなる。一方、図7のフローチャートに従う方法により、より早いタイミングでAPノード100にデータ書き込みの完了と通知できる。
図7のフローチャートと比較して、データ書き込み完了通知パケットの生成(S06)が、図8のフローチャートのデータ書き込み動作において省略されている。図8のフローチャートと図7のフローチャートとの間において、データ書き込み動作の他のステップは同じである。
図8のフローチャートにおいて、パリティ更新動作が、データ書き込み完了通知パケット301を生成する(S06)。具体的には、パリティデータブロックを更新するMSノード200が、新パリティデータブロックをその内部メモリ210に書き込んだ(S10)後に、データ書き込み完了通知パケット301を生成し、データ書き込み要求元APノード100に送信する(S07)。
パケット送信部405は、パケット受信部402から、差分パリティパケット304における、アクセス先メモリアドレス332、要求元APノードネットワークアドレス333、要求先MSノードネットワークアドレス334及びトランザクション識別子335を取得する。要求元APノードネットワークアドレス333は、データ書き込み完了通知パケット301の送信先である。
図7及び図8のフローチャートにおいて、異なるMSノード200は、上記の、データ書き込み動作(ユーザデータ更新動作)、パリティ更新動作、データ読み出し動作を、並列に行うことができる。これにより、メモリストレージシステムにおける処理効率及び処理速度を高めることができる。
上記例は、差分パリティデータを一つのMSノードのみに送信する。一つのパリティグループが複数のパリティデータブロックを含む場合、MSノード200は、旧ユーザデータブロックと更新ユーザデータブロックとから、複数の差分パリティブロックを生成する。MSノード200は、複数の差分パリティブロックを、それぞれ、対応するパリティノード200に送信する。
本発明の実施例2を、図9〜図15の図面を参照して説明する。
(構成の説明)
図9に示す構成例において、MSノード200a〜200dは、それぞれ、サーバ計算機である。MSノード200a〜200dは、パケットの送信および受信が可能なネットワーク(当該ネットワークに対応したスイッチを含む)により、通信可能に接続されている。
図9の計算機システムは、APノード100aと、MSノード200a〜200dのそれぞれとを接続する第1のネットワークスイッチ305aと、MSノード200a〜200d間を接続する第2のネットワーク305bを含む。APノード100aとMSノード200a〜200dの全てが、一つのネットワークで接続されていてもよい。
メモリストレージシステムにおいて、ユーザデータは、データブロック単位で冗長化される。ユーザデータは同一サイズのデータブロックに分割され、複数のユーザデータブロックからパリティデータブロックが生成される。図9の例において、ユーザデータブロックD00〜D05及びパリティデータブロックP00−02、P03−05が示されている。
ユーザデータブロックD00〜D02及びパリティデータブロックP00−02は、パリティグループPG0を構成している。ユーザデータブロックD03〜D05及びパリティデータブロックP03−05は、パリティグループPG1を構成している。本例において、パリティデータブロックP00−02およびP03−05は、異なるMSノード200a、200dにそれぞれ格納されている。
一つのパリティグループの全データブロックは、異なるMSノード200に格納される。パリティグループPG0、PG1において、一つのデータブロックが破損しても、当該パリティグループ内の他のデータブロックとパリティデータブロックから破損したデータブロックを復元することができる。
パリティグループを構成するデータブロックの数及びパリティグループ内のパリティデータブロックの数は、選択された冗長化の方法に依存する。一つのMSノード200は、ユーザデータブロックのみ、パリティデータブロックのみ又はユーザデータブロックとパリティデータブロックの双方を格納してもよい。
図9において、APノード100aにおけるアクセス手段提供機構110aは、当該APノード100aにおいて動作するドライバソフトウェア及びそれに従って動作するCPU(プロセッサ)130aにより構成されている。ドライバソフトウェアはメインメモリ131aにロードされ、プロセッサにより実行される。アクセス手段提供機構110aは、アプリケーションプログラムに対して、クラスタメモリストレージシステムの記憶領域を一つの論理ディスクドライブとして見せる。
アクセス手段提供機構110aは、アプリケーションプログラムから、ディスクオフセット及び読み出し/書き込むデータサイズ(データブロック数)を指定するアクセス要求を、受け付ける。ディスクオフセットは、論理ディスクドライブの開始アドレスからのオフセットである。
図10は、アクセス手段提供機構110a内で定義されている、ディスクオフセットとユーザデータブロックとの関係を示す。各ユーザデータブロックにディスクオフセット値が割り当てられており、ユーザデータブロックの開始アドレスに相当する。ユーザデータブロックは同一サイズを有しており、連続するユーザデータブロック間のディスクオフセットの差分は一定である。
アプリケーションプログラムからの要求において、ディスクオフセット値は、アクセス先の先頭ユーザデータブロックを示す。データサイズは、先頭ユーザデータブロックから続くユーザデータブロック数を示す。
図11は、MSノード200aの内部メモリ210aにおける、データブロックの配置を示す。内部メモリ210aは、ユーザデータブロックD03及びパリティデータブロックP00−02を格納している。内部メモリ210aにおけるメモリアドレスにおいて、ユーザデータブロックD03及びパリティデータブロックP00−02の格納位置、例えば、先頭アドレスが示されている。
図12は、アクセス手段提供機構110aにおける、データ位置管理テーブル111aの構成例を示す。データ位置管理テーブル111aは、ディスクオフセットのカラム1111、ノードIDのカラム1112及びメモリアドレスのカラム1113を有する。他のAPノード100のデータ位置管理テーブル111も同様のテーブル構成を有する。
ディスクオフセットのカラム1111は、論理ディスクドライブにおけるユーザデータブロックのディスクオフセット値を格納している。ノードIDのカラム1112は、ディスクオフセット値が対応するユーザデータブロックのデータを格納しているMSノード200の識別子を格納している。メモリアドレスのカラム1113は、ディスクオフセットカラム1111の各値に対応する、内部メモリ210内のアドレスを示す。例えば、これらの値は、内部メモリ210においてユーザデータブロックが格納されている領域の先頭アドレスを示す。
各APノード100のアクセス手段提供機構110は、データ位置管理テーブル111を保持しており、アプリケーションプログラムからの要求に応じて、データ位置管理テーブル111を参照し、アクセス先のMSノード200及び内部メモリ210内のアドレスを決定する。
ここで説明する例において、クラスタメモリストレージシステムに対するアクセス単位は、ユーザデータブロックである。アプリケーションプログラムは、アクセス先の1又は複数のユーザデータブロック(の記憶位置)を指定して、データアクセスを行う。指定されるディスクオフセット値は、データ位置管理テーブル111のいずれかのエントリの値である。
図13は、冗長化処理機構211におけるパリティノード管理テーブル404の例を示す。図13は、パリティノード管理テーブル404が保持する情報を示す。図9に示す冗長化処理機構211a〜211dは、同一のパリティノード管理テーブル404を有している。
パリティノード管理テーブル404は、メモリアドレスのカラム4041、パリティノード識別子のカラム4042、メモリアドレスのカラム4043を有する。メモリアドレスのカラム4041は、自ノードの内部メモリ210に格納されているデータブロック(ユーザデータブロック又はパリティデータブロック)の格納位置、例えば先頭アドレスを示す。パリティノード識別子のカラム4042は、自ノードのユーザデータブロックのパリティデータを格納するMSノード200の識別子を格納する。メモリアドレスのカラム4043は、パリティノードにおけるパリティデータブロックの格納位置を示す。
MSノード200はデータ書き込み要求パケット300を受け取ったときに、パリティノード管理テーブル404を参照し、生成された差分パリティの送り先MSノード200の識別子をパリティノード識別子のカラム4042から取得し、更新すべきパリティデータブロックを格納するアドレスをメモリアドレスのカラム4043から取得する。
図14は、冗長化処理機構211のハードウェエア構成例を示す。図14において、冗長化処理機構211内の異なるブロックは、異なる回路で構成されている。パリティ処理部403はメモリコントローラ410、パケットバッファ411、パリティ計算器412、演算結果バッファ413を含む。
メモリコントローラ410は、内部バス212を介して、内部メモリ210に対して、アドレスと読み出し/書き込みコマンドを発行し、内部バス212を介して、内部メモリ210とデータブロックを送受信する。パケットバッファ411は、ネットワークから受信したデータを、内部メモリ210からデータブロックを受信するまでの間、一時的に保持する。パリティ計算器412は、差分パリティブロック又はパリティブロックを算出する。演算結果バッファ413は、パリティ計算の結果を一時的に保持する。
図15は、APノード100aにおける、アクセス要求対応テーブル113aの構成例を示す。他のAPノード100も、同様構成のアクセス要求対応テーブルを有する。アプリケーションプログラムからアクセス手段提供機構110aにアクセス要求が発行されたときに使用される。アクセス手段提供機構110aは、アクセス要求対応テーブル113aを管理し、エントリを生成し、削除する。
1つのエントリは、MSノード200への1つのアクセス要求パケット(データ読み出要求パケット又はデータ書き込み要求パケット)の情報を示す。アクセス手段提供機構110aは、ネットワークに対して、アプリケーションプログラムからのアクセス要求に応じたアクセス要求パケットを送出してから、当該パケットに対応した応答パケット(データ読み出し返答パケット又はデータ書き込み完了通知パケット)を受信するまで、アクセス要求対応テーブル113a当該エントリを維持する。
アクセス要求対応テーブル113aは、PIDカラム1131、ローカルメモリアドレスカラム1132、サイズカラム1133、種別カラム1134、トランザクション識別子カラム1135を有する。
PIDカラム1131は、MSノード200に送信したアクセス要求パケットへの完了通知の送信先アプリケーションプログラム(プロセス)の識別子(PID)を格納する。ローカルメモリアドレスカラム1132は、新データ(読み出されるデータ又は書き込むべき更新データ)を格納するAPノード100aのメモリアドレスを示す。
サイズカラム1133は、MSノード200にデータ読み出し又はデータ書き込みを要求したデータのサイズを示す。1つのパケットが単一のユーザデータブロックへのアクセスを要求するため、その値は一定値である。種別カラム1134は、要求アクセスの種別(データ読み出し/データ書き込み)を示す。トランザクション識別子(カラム1135)は、アクセス要求パケットを生成するごとに割り当てられ、1つのAPノード100内のアクセス要求対応テーブル中で一意となるように決定される。
(動作の説明)
図9〜図15を参照して説明した構成例における、データ読み出し及びデータ書き込みを説明する。以下において、説明の便宜上、ステップに符号が付されている。これら符号は図示されず、明細書内において使用されている。
クラスタメモリストレージシステムは、起動されると、最初のアクセスを受ける前に、パリティグループのそれぞれを、それらのデータブロックの関係が整合するように初期化する。クラスタメモリストレージシステムは、全てのパリティグループのメモリ領域を初期化する。
図9の例において、MSノード200a〜200dは、APノード100aからの最初のアクセスを受ける前に、パリティグループPG0、PG1のそれぞれを、それらのデータブロックの関係が整合するように初期化する。例えば、MSノード200a〜200dは、パリティグループPG0、PG1のすべての記憶領域を0で初期化する。
他の例において、MSノード200a〜200dは、前回のシステム終了時のユーザデータを、いずれかの不揮発性記憶デバイスから取得し、全データに対してパリティデータを計算、格納する。
まず、クラスタメモリストレージシステムへのデータ読み出しアクセスの例を説明する。図9〜図15を参照して説明した構成例において、ディスクオフセット値が30の、ユーザデータブロックD03を読み出す例を説明する。
アクセス手段提供機構110aは、アプリケーションプログラムから、データ読み出し要求を受け取る。このデータ読み出し要求は、30のディスクオフセット値と、1データブロック(10のディスクオフセット値と同義)のデータサイズを指定する。また、このデータ読み出し要求は、読み出したデータを格納するローカルメモリのアドレスの情報を含む。
アクセス手段提供機構110aは、データ位置管理テーブル111aにおいて、指定されたユーザデータの格納場所を検索する。アクセス手段提供機構110aは、指定されたユーザデータブロックD03の格納場所が、MS0(MSノード200a)において、先頭メモリアドレスが10のメモリ領域であることを知る(1R01)。
次に、アクセス手段提供機構110aは、一意のトランザクション識別子335を割り当てて、データ読み出し要求パケット302を生成する。データ読み出し要求パケット302において、アクセス先メモリアドレス332は、上記先頭メモリアドレス指定する。
要求元APノードネットワークアドレス333及び要求先MSノードネットワークアドレス334は、それぞれ、APノード100a及びMSノード200a(MS0)のネッネットワークアドレスを示す。アクセス手段提供機構110aは、APノード100aのネットワークアドレスを予め保持している他、MSノード200a〜200dの識別子とネットワークアドレスを関連付けて予め保持している。
アクセス手段提供機構110aは、生成したデータ読み出し要求パケット302をネットワークインターフェイス401aへと送る。アクセス手段提供機構110aは、アクセス要求対応テーブル113aに、データ読み出し要求パケット302に割り当てたトランザクション識別子と送信元アプリケーションプログラムから取得した情報を対応付けて、記録する(エントリの追加)(1R02)。
ネットワークインターフェイス401aは、データ読み出し要求パケット302に、ネットワークプロトコル上必要なヘッダ(ネットワークパケットヘッダ)を追加し、ネットワークへと送出する(1R03)。ネットワークスイッチ350aは、ネットワークパケットヘッダに基づいて、MSノード200aへとデータ読み出し要求パケット302を転送する(1R04)。
MSノード200aのネットワークインターフェイス401bは、データ読み出し要求パケット302を含むネットワークパケットを受信する。ネットワークインターフェイス401bは、ネットワークプロトコル上必要なヘッダをネットワークパケットから取り除き、データ読み出し要求パケット302をパケット受信部402へと渡す(1R05)。
パケット受信部402は、ヘッダ312を参照して当該パケットがデータ読み出し要求パケットであると判定する。パケット受信部402は、ヘッダ312に含まれるアクセス先メモリアドレス332とパケットの種別とをメモリコントローラ410へ渡す。また、パケット受信部402は、パケットバッファ411に、0で満たされたデータ列を送る(1R06)。
メモリコントローラ410は、メモリアドレス(開始アドレスとサイズ(1データブロックのサイズ)の双方を含む)と読み出し命令を内部メモリ210へと送り、データ(ユーザデータブロック)を読み出す。メモリコントローラ410は、読み出されたデータをパリティ計算器412へ送る(1R07)。
パリティ計算器412は、内部メモリ210から送られてきたユーザデータブロックと、パケットバッファ411に格納されているデータ列(1データブロック)に対して、パリティ計算(排他的論理和)を行い、演算結果を演算結果バッファ413に格納する。演算結果は、内部メモリ210から読み出したデータと同一である。なお、データ読み出しは、パリティ計算は不要であるが、本例は、データ読み出し及びデータ書き込み動作のためのパリティ処理部403の構成を共通化している(1R08)。
パケット送信部405は、演算結果バッファ413に入っているデータ(読み出したユーザデータブロック)とパケット受信部402から送られた送信元ネットワークアドレス333およびトランザクション識別子335を用いて、データ読み出し返答パケット303を生成し、ネットワークインターフェイス401bへと送る(1R09)。
ネットワークインターフェイス401bは、当該パケットにネットワークプロトコル上必要なヘッダを追加し、ネットワークへ送出する(1R10)。ネットワークスイッチ350aは、ネットワークパケットヘッダに基づいてAPノード100aへ、ネットワークパケットを送る(1R11)。
アクセス手段提供機構110aは、データ読み出し返答パケット303を受信した場合、トランザクション識別子335によって、アクセス要求対応テーブル113aにおける対応エントリを検索する。
アクセス手段提供機構110aは、検索したエントリの情報から、要求元アプリケーションプログラムのメモリ空間にパケットボディのユーザデータをコピーする。コピーが完了後、アクセス手段提供機構110aは、当該アプリケーションプログラムに対して要求完了を通知し、アクセス要求対応テーブル113aのエントリを削除する(1R12)。
次に、クラスタメモリストレージシステムへのデータ書き込みアクセスの例を説明する。図9〜図15を参照して説明した構成例において、ディスクオフセット値が30の、ユーザデータブロックD03を更新する例を説明する。
アクセス手段提供機構110aは、アプリケーションプログラムから、データ書き込み要求を受け取る。このデータ読み出し要求は、30のディスクオフセット値と、1データブロック(10のディスクオフセット値と同義)のデータサイズを指定する。また、このデータ書き込み要求は、書き込むべき更新データを格納するローカルメモリのアドレスの情報を含む。
アクセス手段提供機構110aは、データ位置管理テーブル111aにおいて、指定されたユーザデータの格納場所を検索する。アクセス手段提供機構110aは、指定されたユーザデータブロックD03の格納場所が、MS0(MSノード200a)において、先頭メモリアドレスが10のメモリ領域であることを知る(1W01)。
次に、アクセス手段提供機構110aは、一意のトランザクション識別子335を割り当て、指定されたローカルメモリアドレスから更新データを取得して、データ書き込み要求パケット300を生成する。データ書き込み要求パケット300において、アクセス先メモリアドレス332は、上記先頭メモリアドレスを指定する。
要求元APノードネットワークアドレス333及び要求先MSノードネットワークアドレス334は、それぞれ、APノード100a及びMSノード200a(MS0)のネッネットワークアドレスを示す。
アクセス手段提供機構110aは、生成したデータ書き込み要求パケット300をネットワークインターフェイス401aへと送る。アクセス手段提供機構110aは、アクセス要求対応テーブル113aに、データ書き込み要求パケット300に割り当てたトランザクション識別子と送信元アプリケーションプログラムから取得した情報を対応付けて、記録する(エントリの追加)(1W02)。
ネットワークインターフェイス401aは、データ書き込み要求パケット300に、ネットワークプロトコル上必要なヘッダ(ネットワークパケットヘッダ)を追加し、ネットワークへと送出する(1W03)。ネットワークスイッチ350aは、ネットワークパケットヘッダに基づいて、MSノード200aへとデータ書き込み要求パケット300を転送する(1W04)。
MSノード200aのネットワークインターフェイス401bは、データ書き込み要求パケット300を含むネットワークパケットを受信する。ネットワークインターフェイス401bは、ネットワークプロトコル上必要なヘッダをネットワークパケットから取り除き、データ書き込み要求パケット300をパケット受信部402へと渡す(1W05)。
パケット受信部402は、ヘッダ310を参照して当該パケットがデータ書き込み要求パケットであると判定する。パケット受信部402は、ヘッダ310に含まれるアクセス先メモリアドレス332と当該パケットの種別をメモリコントローラ410へ渡す。また、パケット受信部402は、パケットバッファ411に、ボディ320に格納されている、D03の更新ユーザデータブロックを送る(1W06)。
メモリコントローラ410は、メモリアドレス(開始アドレスとサイズ(1データブロックのサイズ)の双方を含む)と読み出し命令を内部メモリ210へと送り、データ(ユーザデータブロック)を読み出す。メモリコントローラ410は、読み出されたデータをパリティ計算器412へ送る(1W07)。
パリティ計算器412は、内部メモリ210から送られてきたユーザデータブロックと、パケットバッファ411に格納されている更新ユーザデータブロックに対して、パリティ計算(排他的論理和)を行い、演算結果を演算結果バッファ413に格納する。演算結果は、差分パリティデータブロックである(1W08)。
内部メモリ210からのユーザデータブロックの読み出し完了後、メモリコントローラ410は、同一アドレスを指定して、データ書き込み命令を内部メモリ210へ送る。メモリコントローラ410は、書き込み命令と共に、パケットバッファ411から取得した更新ユーザデータブロックを、内部メモリ210に送る。内部メモリ210への書き込み完了により、ユーザデータブロックの更新は、完了する(1W09)。
パリティノード管理テーブル404は、パケット受信部402からアクセス先メモリアドレス332受け取る。パリティノード管理テーブル404は、アクセス先メモリアドレス332を、当該ユーザデータブロックに関連するパリティデータブロックの格納場所のアドレスに変換する。
変換されたアドレスは、対応パリティブロックデータを格納するMSノード200の識別子とメモリアドレス(内部メモリ210における先頭アドレス)とを示す。パリティノード管理テーブル404は、パリティデータブロックを格納するパリティノード200の識別子とメモリアドレスをパケット送信部405に送る(1W10)。
パリティ処理部403は、内部メモリ210におけるデータ更新(1W09)と、差分パリティデータブロックの生成(1W10)を、並列に、実行する。これにより、処理を迅速化する。
パケット送信部405は、演算結果バッファ413から差分パリティデータブロックを取得する。パケット送信部405は、パリティノード管理テーブル404から、MSノード識別子、メモリアドレスを取得する。パケット送信部405は、パケット受信部402からトランザクション識別子を取得する。
パケット送信部405は、上記取得した情報から、差分パリティパケット304を生成し、ネットワークインターフェイス401bへ送る。パケット送信部405は、MSノード識別子をネットワークアドレスに変換して差分パリティパケット304に含める(1W11)。
ネットワークインターフェイス401bは差分パリティパケット304にネットワークプロトコル上必要なヘッダを追加してネットワークパケットを生成し、ネットワークへと送出する(1W12)。ネットワークスイッチ350bはネットワークパケットヘッダに基づいてMSノード200c(MS2)へ、ネットワークパケットを送る(1W13)。
MSノード200c(MS2)のネットワークインターフェイス401bは、ネットワークパケットを受信し、ネットワークプロトコル上必要なヘッダを取り除き、差分パリティパケット304をパケット受信部402へと渡す(1W14)。
パケット受信部402は、ヘッダ314を参照して、当該パケットが差分パリティパケット304であると判定する。パケット受信部402は、ヘッダ314に含まれるアクセス先メモリアドレス332とパケットの種別を、メモリコントローラ410へ渡す。パケット受信部402は、パケットバッファ411に、ボディ324に格納されている差分パリティブロックを送る(1W15)。
メモリコントローラ410は、メモリアドレスを指定して、読み出し命令を内部メモリ210へ送り、読み出されたパリティデータブロックをパリティ計算器412へと送る(1W16)。
パリティ計算器412は、内部メモリ210から送られてきた旧パリティデータブロックと、パケットバッファ411に格納されている差分パリティデータブロックに対してパリティ計算(排他的論理和)を行う。パリティ計算器412は、演算結果である新しいパリティデータブロックを、演算結果バッファ413に格納する(1W17)。
内部メモリ210からの旧パリティデータブロックの読み出しが完了した後、メモリコントローラ410は、同一メモリアドレスを指定して、書き込み命令を内部メモリ210へ送る。メモリコントローラ410は、書き込み命令と共に、演算結果バッファ413に格納される新しいパリティデータブロック(更新パリティデータブロック)を、内部メモリ210に送る。内部メモリ210への更新パリティデータブロックの書き込みが完了した時点で、パリティデータの更新が完了する(1W18)。
(データ書き込み完了の通知)
クラスタメモリストレージシステムは、APノード100aへのデータ書き込み完了の通知を、ユーザデータを更新したMSノード(以下において第1のMSノード)200による差分パリティパケットを生成するステップ(1W11)の前または後、または、パリティノード200による新しいパリティデータを内部メモリ210に書き込むステップ(1W18)の後に行う。
第1のMSノード200がデータ書き込み完了通知を返す場合、第1のMSノード200は、ステップ1W11に追加して、次の動作を行う。パケット送信部405は、パケット受信部402から要求元APノードのネットワークアドレス333とトランザクション識別子335を取得し、データ書き込み完了通知パケット301を生成し、APノード100aに送る(1W11a)。
パリティノード200が完了通知を返す場合には、パリティノード200は、ステップ1W18に続いて、次の動作を行う。パケット送信部405は、第1のMSノード200から送られてきた差分パリティパケット304を受信したパケット受信部402から、要求元APノードのネットワークアドレス333とトランザクション識別子335を取得し、データ書き込み完了通知パケット301を生成し、APノード100aに送る(1W19)。
最後に、APノード100aは、データ書き込み完了通知パケット301を受信すると、次の動作を行う。APノード100aのアクセス手段提供機構110aは、データ書き込み完了通知パケット301に含まれるトランザクション識別子335に基づいてアクセス要求対応テーブル113aを検索して、送信元アプリケーションプログラムを特定し、データの書き込み完了を当該アプリケーションプログラムに通知する(1W20)。
ここまでの一連の処理はそれぞれのアクセス要求ごとに独立かつ並列に行われる。また、第1のMSノード200がデータ書き込み完了通知を返すことで、同じパリティグループに属するデータブロックの更新処理を、同時に行うように見せることができる。
本実施例は、アクセス手段提供機構110を、物理ディスクドライブのインターフェイスを採用したハードウェアで構成する。本実施例においては、実施例2との相違点を主に説明する。
(構成の説明)
図16は、APノード100aにおけるアクセス手段提供機構110aのハードウェア構成例を表す。他のAPノードのアクセス手段提供機構110も同様の構成を有する。図16において、アクセス手段提供機構110a内の各ブロックは、それぞれ、異なる回路である。
データ位置管理テーブル111aとアクセス要求対応テーブル114aは、アクセス手段提供ハードウェア上に設けられたメモリデバイス214またはAPノード100aが備えているメインメモリ131a上に配置される。ネットワークインターフェイス401aは、アクセス手段提供ハードウェア110aに含まれる、または、別に搭載され、パケット送信部145及びパケット受信部142と通信する。
図17は、アクセス要求対応テーブル114aの例を示す。他のAPノードのアクセス要求対応テーブルも、同様のテーブル構成を有する。アクセス要求対応テーブル114aは、ローカルメモリアドレスのカラム1141、ディスクオフセットのカラム1142、サイズのカラム1143、種別のカラム1144、トランザクション識別子のカラム1145を有する。
(動作の説明)
ディスクドライブインターフェイス120は読み出し要求を受信すると、アクセス要求発行部121に、読み出し/書き込みの種別(要求の種別)、ディスクオフセット、データサイズ、メインメモリ131aのローカルメモリアドレスを送る(2R01)。
アクセス要求発行部121は、データ位置管理テーブル111aを検索し、当該ディスクオフセットに対応するMSノードの識別子と、メモリアドレスを取得する。アクセス要求対応テーブル114aを参照して一意のトランザクション識別子を決定し、新たなエントリをアクセス要求対応テーブル114aに追加する。具体的には、ローカルメモリアドレス、ディスクオフセット、サイズ、種別、トランザクション識別子の各カラムの値を、アクセス要求対応テーブル114aに書き込む(2R02)。
アクセス要求発行部121は、MSノード識別子が対応するネットワークアドレスを特定する。MSノード識別子のネットワークアドレス、メモリアドレス、トランザクション識別子、読み出し/書き込みの種別(パケット種別)、をパケット送信部145に渡す(2R03)。
パケット送信部145は、データ読み出し要求パケット302を生成する。ネットワークインターフェイス401aに送る(2R04)。ネットワークインターフェイス401aは、当該のパケットにネットワークプロトコル上必要なヘッダを追加し、ネットワークへと送出する(2R05)。
クラスタメモリストレージシステムの動作は、実施例2におけるステップ1R04からステップ1R11と同一である。
ネットワークインターフェイス401aは、ネットワークパケットを受信すると、ネットワークプロトコル上必要なヘッダを削除し、データ読み出し返答パケット303をパケット受信部142へと渡す(2R06)。
パケット受信部142は、データ読み出し返答パケット303のヘッダ313を参照して、パケット種別を判定する。パケット受信部142は、トランザクション識別子335をアクセス要求完了通知部122に送る。また、ボディ323に格納されているデータブロックを、ディスクドライブインターフェイス120に送る(2R07)。
アクセス要求完了通知部122は、トランザクション識別子に基づいてアクセス要求対応テーブル114aを検索し、ローカルメモリアドレス、ディスクオフセット、サイズ、および読み出し/書き込みの種別を、ディスクドライブインターフェイス120に送る(2R08)。
ディスクドライブインターフェイス120は、メインメモリ131aにおける上記ローカルメモリアドレスの場所に、データを書き込む。その後、ディスクドライブインターフェイス120は、CPU130aに読み出し処理完了を通知する。
メインメモリ131aは、CPU130aとアクセス手段提供機構110aからアクセス可能でローカルメモリアドレスによって格納位置が指定可能な、デバイスで構成されてよい。メインメモリ131a上にデータを書き込む場合、ディスクドライブインターフェイス120は、DMAコントローラとして動作する。ディスクドライブインターフェイス120は、指定されたアドレスに書き込みを行ったあと、CPU130aに完了を通知する(2R09)。
次に、書き込み時の動作について説明する。ディスクドライブインターフェイス120は、書き込み要求を受信すると、アクセス要求発行部121に、読み出し/書き込みの種別(要求の種別)、ディスクオフセット、データサイズを送る。また、ディスクドライブインターフェイス120は、メインメモリ131aから更新ユーザデータを読み出し、パケット送信部405へと転送する(2W01)。
アクセス要求発行部121は、データ位置管理テーブル111aを検索し、ディスクオフセットに対応するMSノードの識別子と、メモリアドレスを取得する。また、アクセス要求発行部121は、アクセス要求対応テーブル114aを参照して一意のトランザクション識別子を決定し、新しいエントリを追加する。具体的には、ローカルメモリアドレス、ディスクオフセット、サイズ、種別、トランザクション識別子の各カラムの値を、アクセス要求対応テーブル114aに書き込む(2W02)。
アクセス要求発行部121は、MSノード識別子が対応するネットワークアドレスを特定する。MSノード識別子のネットワークアドレス、メモリアドレス、トランザクション識別子、読み出し/書き込みの種別(パケット種別)、をパケット送信部145に渡す(2W03)。
パケット送信部145は、データ書き込み要求パケット300を生成し、パケットのボディ320に、書き込む更新ユーザデータブロックを格納し、ネットワークインターフェイス401aに送る(2W04)。ネットワークインターフェイス401aは、当該データ書き込み要求パケット300にネットワークプロトコル上必要なヘッダを追加し、ネットワークへと送出する(2W05)。
クラスタメモリストレージシステムの動作は、実施例2のステップ1W04からステップ1W19と同一である。
ネットワークインターフェイス401aは、データ書き込み完了通知パケット301を含むネットワークパケットを受信すると、ネットワークプロトコル上必要なヘッダを削除し、パケット受信部142へと渡す(2W06)。
パケット受信部142は、データ書き込み完了通知パケット301のヘッダ311のパケット種別識別子330によりパケット種別を判定し、トランザクション識別子335をアクセス要求完了通知部122に送る(2W07)。
アクセス要求完了通知部122は、トランザクション識別子に基づいてアクセス要求対応テーブル114aを検索し、ローカルメモリアドレス、ディスクオフセット、サイズおよび読み出し/書き込みの種別を、ディスクドライブインターフェイス120に送る(2W08)。ディスクドライブインターフェイス120は、CPU130aに書き込み完了を通知する(2W09)。
以上のように、本実施例により、アクセス手段提供機構110を、物理ディスクドライブのインターフェイスを採用した適切なハードウェアで構成することができる。
実施例2および実施例3は、MSノード200が使用する内部メモリ210のデバイスの例として、DRAMを想定している。本実施例は、MSノード200の内部メモリ210のデバイスとして、フラッシュメモリを使用する。なお、本実施例は実施例2と独立であるため、実施例2の方法を本例の構成に適用した場合、実施例2のステップと同様のステップを実行する。
NAND型フラッシュメモリデバイスは、DRAMと同様に、メモリアドレスの指定を受けて、読み書きをすることが可能なデバイスである。一方、NAND型フラッシュメモリデバイスは、データ書き込みにおいて、消去ブロック単位で、一度、データ消去を行うことを必要とする。
NAND型フラッシュメモリが、消去ブロック単位よりも小さいサイズの書き込み命令を受けた場合、1消去ブロックの旧データをバッファに読み出し、バッファ上で更新データによって1消去ブロックデータを更新し、メモリ上の当該1消去ブロックデータを消去し、さらに、更新した1消去ブロックデータを書き込む。
本例において、NAND型フラッシュメモリデバイスは、TRIMコマンドをサポートしている。TRIMコマンドは、事前に消去済みブロックを確保しておくために、あるブロックについて未使用であることを、NAND型フラッシュメモリデバイスに通知する。本例は、このTRIMコマンドを使用して、書き込み性能の低下を回避する。
(構成の説明)
本実施例では、図10のようにディスクオフセット方向に分割するデータブロックのサイズを、内部メモリに用いるフラッシュメモリの一括消去単位の整数倍とし、前述の読み出し、更新、書き出しの一連のステップの発生を抑制する。
(動作の説明)
本実施例は、実施例2において説明した、図14に示す冗長化処理機構211のメモリコントローラ410の動作について、内部メモリ210に対するアクセスのステップを、次のように変更する。なお、読み出し要求に対する処理は、実施例2におけると同様である。
データ書き込み要求に対する処理を説明する。書き込み要求に対して、実施例2におけるステップ1W01からステップ1W06は、本実施例において同様である。
メモリコントローラ410は、メモリアドレスと読み出し命令を内部メモリ(フラッシュメモリ)210へと送り、読み出された古いデータをパリティ計算器412へと送る。メモリコントローラ410は、読み出しが完了した領域に対してTRIMコマンドを発行し、フラッシュメモリ210に対して未使用ブロックであることを通知する。フラッシュメモリ210は、当該領域を消去する(3W02)。
実施例2におけるステップ1W08からステップ1W15は、本実施例において同様である。
次に、パリティノードの処理を説明する。パリティノード200のメモリコントローラ410は、メモリアドレスと読み出し命令をフラッシュメモリ210へと送り、読み出された旧パリティデータをパリティ計算器412へと送る。メモリコントローラ410は、新たなパリティデータが生成される前に、読み出しが完了した領域に対してTRIMコマンドを発行し、フラッシュメモリ210に対して未使用ブロックであることを通知する。フラッシュメモリ210は、当該領域を消去する(3W03)。以降のステップは、実施例1のステップ(1W17)〜(1W20)と同一である。
本実施例によれば、フラッシュメモリを使用するMSノードにおける処理の遅延を低減することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実効することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
100 アプリケーションノード、110 アクセス手段提供機構、111a、111b データ位置管理テーブル、113a アクセス要求対応テーブル、114a アクセス要求対応テーブル、121 アクセス要求発行部、122 アクセス要求完了通知部、200 メモリストレージノード、205 コントローラ、210 内部メモリ、211 冗長化処理機構、212 内部バス、300 データ書き込み要求パケット、301 データ書き込み完了通知パケット、302 データ読み出し要求パケット、303 データ読み出し返答パケット、304 差分パリティパケット、402 パケット受信部、403 パリティ処理部、404 パリティノード管理テーブル、405 パケット送信部、410 メモリコントローラ、411 パケットバッファ、412 パリティ計算器、413 演算結果バッファ

Claims (8)

  1. ネットワークにより接続された複数のメモリストレージノードを含む、ストレージシステムであって、
    前記複数のメモリストレージノードは、第1メモリストレージノードと、第2メモリストレージノードと、を含み、
    前記第1メモリストレージノードは、第1ユーザデータブロックを格納する第1内部メモリを含み、
    前記第2メモリストレージノードは、前記第1ユーザデータブロックのパリティデータブロックを格納する第2内部メモリを含み、
    前記第1メモリストレージノードは、前記第1ユーザデータブロックの更新ユーザデータブロックをホストから受信し、
    前記第1メモリストレージノードは、前記更新ユーザデータブロックと前記第1内部メモリから読み出した前記第1ユーザデータブロックとから、前記パリティデータブロックを更新するための差分パリティデータブロックを生成し、
    前記第1メモリストレージノードは、前記差分パリティデータブロックを前記第2ストレージノードに送信し、
    前記第1メモリストレージノードは、前記第1内部メモリにおける前記第1ユーザデータブロックを前記更新ユーザデータブロックにより更新し、
    前記第2メモリストレージノードは、前記差分パリティデータブロックと前記第2内部メモリから読み出した前記パリティデータブロックとから、新たなパリティデータブロックを生成し、
    前記第2メモリストレージノードは、前記第2内部メモリにおける前記パリティデータブロックを、前記新たなパリティデータブロックで更新する、ストレージシステム。
  2. 請求項1に記載のストレージシステムであって、
    前記複数のメモリストレージノードのそれぞれは、ホスト及び他のメモリストレージノードと複数種別のパケットを使用して通信し、
    前記複数種別のパケットパは、それぞれ、パケット種別を示すヘッダを含み、
    前記複数のメモリストレージノードのそれぞれは、受信したパケットのヘッダを参照して当該パケットの種別を判定し、当該パケットの種別に応じた処理を行う、ストレージシステム。
  3. 請求項2に記載のストレージシステムであって、
    前記第1メモリストレージノードは、前記更新ユーザデータブロックを含むデータ書き込み要求パケットを受信し、
    前記第1メモリストレージノードは、前記データ書き込み要求パケットのパケット種別により、前記データ書き込み要求パケットが含むデータが前記更新ユーザデータブロックであると判定し、
    前記第2メモリストレージノードは、前記差分パリティデータブロックを含む差分パリティパケットを受信し、
    前記第2メモリストレージノードは、前記差分パリティパケットのパケット種別により、前記差分パリティパケットが含むデータが前記差分パリティデータブロックであると判定する、ストレージシステム。
  4. 請求項1、2又は3に記載のストレージシステムであって、
    前記第1メモリストレージノードは、第1コントローラを含み、
    前記第1コントローラは、前記差分パリティデータブロックの生成と、前記差分パリティデータブロックの送信先メモリストレージノードの決定を、並列に実行する、ストレージシステム。
  5. 請求項1、2又は3に記載のストレージシステムであって、
    前記第1メモリストレージノードは、前記第1ユーザデータブロックを前記更新ユーザデータブロックにより更新した後に、前記ホストに書き込み完了を通知する、ストレージシステム。
  6. 請求項1、2又は3に記載のストレージシステムであって、
    前記第2メモリストレージノードは、
    前記差分パリティデータブロックと共に、前記ホストのネットワークアドレスを受信し、
    前記パリティデータブロックを、前記新たなパリティデータブロックで更新した後に、前記ホストに書き込み完了を通知する、ストレージシステム。
  7. 請求項1、2又は3に記載のストレージシステムであって、
    前記第2メモリストレージノードは第2コントローラを含み、
    前記第2内部メモリはフラッシュメモリであり、
    前記パリティデータブロックのサイズは、前記第2内部メモリにおける消去単位サイズの整数倍であり、
    前記第2コントローラは、前記パリティデータブロックを前記第2内部メモリから読み出した後、前記新たなパリティデータブロックを作成する前に、前記第2内部メモリに対して、前記パリティデータブロックを格納する領域のデータ消去を指示する、ストレージシステム。
  8. ネットワークにより接続された複数のメモリストレージノードを含むストレージシステムにおいて、データを更新する方法であって、
    前記複数のメモリストレージノードにおける第1メモリストレージノードが、第1ユーザデータブロックの更新ユーザデータブロックをホストから受信し、
    前記第1メモリストレージノードが、前記第1メモリストレージノードの第1内部メモリから前記第1ユーザデータブロックを読み出し、
    前記第1メモリストレージノードが、前記更新ユーザデータブロックと前記第1ユーザデータブロックとから、前記第1ユーザデータブロックのパリティデータブロックを更新するための差分パリティデータブロックを生成し、
    前記第1メモリストレージノードが、前記差分パリティデータブロックを、前記複数のメモリストレージノードにおける第2ストレージノードに送信し、
    前記第1メモリストレージノードが、前記第1内部メモリにおける前記第1ユーザデータブロックを前記更新ユーザデータブロックにより更新し、
    前記第2メモリストレージノードが、前記第2メモリストレージノードの第2内部メモリから前記パリティデータブロックを読み出し、
    前記第2メモリストレージノードが、前記差分パリティデータブロックと前記パリティデータブロックとから、新たなパリティデータブロックを生成し、
    前記第2メモリストレージノードが、前記第2内部メモリにおける前記パリティデータブロックを、前記新たなパリティデータブロックで更新する、方法。
JP2013078326A 2013-04-04 2013-04-04 ストレージシステム及びストレージシステムにおいてデータを更新する方法 Pending JP2014203233A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013078326A JP2014203233A (ja) 2013-04-04 2013-04-04 ストレージシステム及びストレージシステムにおいてデータを更新する方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013078326A JP2014203233A (ja) 2013-04-04 2013-04-04 ストレージシステム及びストレージシステムにおいてデータを更新する方法

Publications (1)

Publication Number Publication Date
JP2014203233A true JP2014203233A (ja) 2014-10-27

Family

ID=52353629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013078326A Pending JP2014203233A (ja) 2013-04-04 2013-04-04 ストレージシステム及びストレージシステムにおいてデータを更新する方法

Country Status (1)

Country Link
JP (1) JP2014203233A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016194095A1 (ja) * 2015-06-01 2016-12-08 株式会社日立製作所 情報処理システム、ストレージ装置及び記憶デバイス
WO2017145223A1 (ja) * 2016-02-22 2017-08-31 株式会社日立製作所 計算機システム、計算機システムの制御方法、および記録媒体
EP3352071A4 (en) * 2016-11-25 2018-07-25 Huawei Technologies Co., Ltd. Data check method and storage system
WO2018229944A1 (ja) * 2017-06-15 2018-12-20 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
JP2019036301A (ja) * 2017-08-10 2019-03-07 三星電子株式会社Samsung Electronics Co.,Ltd. データ保存方法及びそのシステム
CN111683382A (zh) * 2020-05-20 2020-09-18 新华三技术有限公司 一种配置信息同步方法及装置
JP2021086289A (ja) * 2019-11-26 2021-06-03 株式会社日立製作所 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2016194095A1 (ja) * 2015-06-01 2017-07-20 株式会社日立製作所 情報処理システム、ストレージ装置及び記憶デバイス
US10102070B2 (en) 2015-06-01 2018-10-16 Hitachi, Ltd. Information processing system, storage apparatus and storage device
WO2016194095A1 (ja) * 2015-06-01 2016-12-08 株式会社日立製作所 情報処理システム、ストレージ装置及び記憶デバイス
WO2017145223A1 (ja) * 2016-02-22 2017-08-31 株式会社日立製作所 計算機システム、計算機システムの制御方法、および記録媒体
US10459638B2 (en) 2016-02-22 2019-10-29 Hitachi Ltd. Computer system that generates group information and redundant code based on user data and changes the group information and redundant code based on transmission data, control method for computer system, and recording medium
US10303374B2 (en) 2016-11-25 2019-05-28 Huawei Technologies Co.,Ltd. Data check method and storage system
EP3352071A4 (en) * 2016-11-25 2018-07-25 Huawei Technologies Co., Ltd. Data check method and storage system
JPWO2018229944A1 (ja) * 2017-06-15 2019-11-07 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
WO2018229944A1 (ja) * 2017-06-15 2018-12-20 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
JP2019036301A (ja) * 2017-08-10 2019-03-07 三星電子株式会社Samsung Electronics Co.,Ltd. データ保存方法及びそのシステム
JP7084243B2 (ja) 2017-08-10 2022-06-14 三星電子株式会社 データ保存方法及びそのシステム
JP2021086289A (ja) * 2019-11-26 2021-06-03 株式会社日立製作所 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法
JP7355616B2 (ja) 2019-11-26 2023-10-03 株式会社日立製作所 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法
CN111683382A (zh) * 2020-05-20 2020-09-18 新华三技术有限公司 一种配置信息同步方法及装置
CN111683382B (zh) * 2020-05-20 2023-10-27 新华三技术有限公司 一种配置信息同步方法及装置

Similar Documents

Publication Publication Date Title
US11520745B2 (en) Distributed storage device and data management method in distributed storage device
JP2014203233A (ja) ストレージシステム及びストレージシステムにおいてデータを更新する方法
US10572150B2 (en) Memory network with memory nodes controlling memory accesses in the memory network
JP6750011B2 (ja) 情報処理システム
JP3944449B2 (ja) 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法
TWI237171B (en) Tree based memory structure
EP2879040B1 (en) Data storage method, data storage apparatus, and storage device
JP6406707B2 (ja) 半導体記憶装置
US20160253123A1 (en) NVMM: An Extremely Large, Logically Unified, Sequentially Consistent Main-Memory System
TW202331530A (zh) 記憶體系統
WO2018029820A1 (ja) 計算機システム
WO2018054079A1 (zh) 一种存储文件的方法、第一虚拟机及名称节点
US11741034B2 (en) Memory device including direct memory access engine, system including the memory device, and method of operating the memory device
US11281509B2 (en) Shared memory management
US10176098B2 (en) Method and apparatus for data cache in converged system
WO2017162174A1 (zh) 一种存储系统
JP6652647B2 (ja) ストレージシステム
JP6653370B2 (ja) ストレージシステム
US7725654B2 (en) Affecting a caching algorithm used by a cache of storage system
US20230244417A1 (en) Storage node, storage device, and network chip
US11201788B2 (en) Distributed computing system and resource allocation method
US11662949B2 (en) Storage server, a method of operating the same storage server and a data center including the same storage server
US11875152B2 (en) Methods and systems for optimizing file system usage
WO2017082323A1 (ja) 分散処理システム、分散処理装置、方法および記憶媒体
WO2019149031A1 (zh) 应用于节点系统的数据处理方法及装置