JP7355616B2 - 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法 - Google Patents

分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法 Download PDF

Info

Publication number
JP7355616B2
JP7355616B2 JP2019213354A JP2019213354A JP7355616B2 JP 7355616 B2 JP7355616 B2 JP 7355616B2 JP 2019213354 A JP2019213354 A JP 2019213354A JP 2019213354 A JP2019213354 A JP 2019213354A JP 7355616 B2 JP7355616 B2 JP 7355616B2
Authority
JP
Japan
Prior art keywords
parity
unit
data
update
distributed storage
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.)
Active
Application number
JP2019213354A
Other languages
English (en)
Other versions
JP2021086289A (ja
Inventor
和志 仲川
光雄 早坂
悠冬 鴨生
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 JP2019213354A priority Critical patent/JP7355616B2/ja
Priority to US16/807,724 priority patent/US11467908B2/en
Publication of JP2021086289A publication Critical patent/JP2021086289A/ja
Application granted granted Critical
Publication of JP7355616B2 publication Critical patent/JP7355616B2/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
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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

Description

本発明は、分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法に関する。
データ分析およびAI(Artificial Intelligence)で扱われるデータには、IT(Information Technology)とOT(Operational Technology)のデータがある。ITまたはOTのデータは、例えば、センサデータ、ログファイル、画像、動画、音声およびオフィスドキュメントファイルなど、多岐にわたる。そのようなデータを一元的に保存するストレージは、データレイクと呼ばれる。
データレイクは、複数のサーバノードで構成され、データが分散配置された分散ストレージで実現されることで、スケーラビリティとノード間の負荷平準化が図られる。また、分散ストレージは、イレイジャーコーディング(Erasure Coding:EC)によりデータを保護する。ECとは、誤り訂正符号によってノード障害時にもデータを復元可能とするデータ保護技術であり、原理的にはサーバ内のドライブ障害時のデータ保護に使われてきたRAID5/6技術をノード間で格納されるデータの保護に適用した技術である。
特許文献1には、分散ストレージシステムにおいて、ストレージデバイス障害時に第1のデータ保護スキーマでリカバリ不可である場合、第2のデータ保護スキーマで他ノードの第2のデータチャンクからリカバリする方法が開示されている。
特許文献2には、分散ストレージにおいて、データへのアクセス頻度を参照して、リカバリコストの低いECまたはストレージコストの低いECを適応的に選択する方法が開示されている。
米国特許出願公開第2017/0097875号明細書 米国特許出願公開第2017/0077961号明細書
しかしながら、分散ストレージシステムにおいて、データ保護に用いられるECには更新ライト性能に課題がある。EC化したデータを更新する場合、パリティの再計算が必要となり、更新性能が低下する。特に、更新サイズが小さい場合、オリジナルデータとパリティデータの両方でリードモディファイライト(Read-Modify-Write:RMW)が発生する。このRMWは、ノード間で大量のネットワーク通信を発生させる。
特許文献1および特許文献2には、EC化したデータの更新時におけるライト性能の改善方法についての開示はない。
本発明は、上記事情に鑑みなされたものであり、その目的は、イレイジャーコーディングが適用されたデータの更新時におけるライト性能を向上させることが可能な分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法を提供することにある。
上記目的を達成するため、第1の観点に係る分散ストレージシステムは、プロセッサと、記憶ドライブを有するノードを複数備え、データユニットとそれを修復するためのパリティユニットでストライプを構成し、ストライプを構成する各ユニットをそれぞれの別のノードの記憶ドライブに格納する分散ストレージシステムにおいて、前記プロセッサは、前記データユニットを更新ライトした場合に、同じストライプ内のパリティユニットを更新し、前記更新ライト後のストライプ内の全部のデータユニットに基づいて、前記パリティユニットを計算して更新する第1のパリティ更新方法と、更新ライトを行ったデータユニットと、前記更新ライト前のデータユニットと、パリティユニットと、に基づいて、前記パリティユニットを計算して更新する第2のパリティ更新方法と、を実行可能であり、前記パリティ更新にかかる前記ノード間のデータ通信量に基づいて、前記第1のパリティ更新方法と、第2のパリティ更新方法とを切り替える。
本発明によれば、イレイジャーコーディングが適用されたデータの更新時におけるライト性能を向上させることができる。
図1は、実施形態に係る分散ストレージシステムの構成例を示すブロック図である。 図2は、図1のストレージノードの構成例を示すブロック図である。 図3は、図2のEC情報の一例を示す図である。 図4は、図2のマップ情報の一例を示す図である。 図5は、実施形態に係る分散ストレージシステムのパリティ計算切替方法を示すフローチャートである。 図6は、実施形態に係る分散ストレージシステムの全ストライプによるパリティ計算時のネットワーク転送量の算出方法の一例を示すブロック図である。 図7は、実施形態に係る分散ストレージシステムのRMWによるパリティ計算時のネットワーク転送量の算出方法の一例を示すブロック図である。 図8は、実施形態に係る分散ストレージシステムのRMWによるパリティ計算時のネットワーク転送量の算出方法のその他の例を示すブロック図である。 図9は、実施形態に係る分散ストレージシステムのRMWによるパリティ計算時のネットワーク転送量の算出方法のさらにその他の例を示すブロック図である。 図10は、実施形態に係る分散ストレージシステムのデータ配置条件、パリティ計算方法およびパリティ計算ノードの変更したときのネットワーク転送量の一覧を示す図である。 図11は、実施形態に係る分散ストレージシステムの中間パリティ使用時のデータ配置条件およびパリティ計算ノードの変更したときのネットワーク転送量の一覧を示す図である。 図12は、実施形態に係る分散ストレージシステムのパリティ計算方法の切替条件の一覧を示す図である。 図13は、実施形態に係る分散ストレージシステムの中間パリティ使用時のパリティ計算方法の切替条件の一覧を示す図である。 図14は、実施形態に係る分散ストレージシステムのパリティ計算ノードの切替条件の一覧を示す図である。 図15は、実施形態に係る分散ストレージシステムの中間パリティ使用時のパリティ計算ノードの切替条件の一覧を示す図である。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、実施形態に係る分散ストレージシステムの構成例を示すブロック図である。
図1において、分散ストレージシステム100は、1又は複数のクライアント110と、分散ストレージ130と、フロントエンドネットワーク120とを備える。クライアント110と分散ストレージ130は、フロントエンドネットワーク120を介して接続されている。クライアント110は、分散ストレージ130にI/O要求(データのリード要求またはライト要求)を実施し、分散ストレージ130は、クライアント110からのI/O要求を処理する。クライアント110は、例えば、ホストサーバである。
分散ストレージ130は、分散配置された複数のストレージノード140~170と、バックエンドネットワーク180を備える。ストレージノード140~170は、例えば、分散FS(Distributed File System)サーバである。分散ストレージ130は、複数のストレージノード140~170をバックエンドネットワーク180により接続してクラスタ構成をとる。複数のストレージノード140~170は、分散ファイルシステムを構成し、クライアント110にファイルシステム機能を提供することができる。
分散ストレージ130を構成するいずれかのストレージノード140~170は、クライアント110からのI/O要求をI/O受付ノードとして受け付けてI/O処理を行う。I/O処理に際して、ストレージノード140~170間のデータおよび制御データの移動は、バックエンドネットワーク180を介して行われる。
フロントエンドネットワーク120とバックエンドネットワーク180は、インターネットなどのWAN(Wide Area Network)であってもよいし、WiFiまたはEthernet(登録商標)などのLAN(Local Area Network)であってもよいし、WANとLANが混在していてもよい。フロントエンドネットワーク120とバックエンドネットワーク180は、共通化した構成をとってもよい。
ここで、分散ストレージ130は、イレイジャーコーディング(ECとも言う)によりデータを保護する。ECでは、データを分割したストライプを構成するデータユニットとパリティユニットがストレージノード140~170に分散配置される。なお、データユニットとパリティユニットは、ファイルデータ毎のストライプに応じて、異なるストレージノードに格納されてよい。
このとき、分散ストレージ130は、更新ライト時におけるストレージノード140~170間のデータ通信量(以下、ネットワーク転送量と言うことがある)に基づいて、ストライプを構成する全てのデータユニットに基づいてパリティを計算する方法(以下、全ストライプによるパリティ計算方法と言うことがある)と、ストライプを構成する一部のデータユニットに基づいてパリティを計算する方法(以下、RMWによるパリティ計算方法と言うことがある)とを切り替える。
この際、分散ストレージ130は、ネットワーク転送量を最小化するように、全ストライプによるパリティ計算方法またはRMWによるパリティ計算方法を選択することができる。これにより、EC化されたデータの更新ライト時におけるネットワーク使用帯域を削減することができ、EC化されたデータの更新時におけるライト性能を向上させることが可能となる。
図2は、図1のストレージノードの構成例を示すブロック図である。なお、図2では、図1のストレージノード140を例にとるが、他のストレージノード150~170についても同様に構成することができる。
図2において、ストレージノード140は、CPU(Central Processing Unit)210と、フロントエンドNIC(Network Interface Card)215と、バックエンドNIC220と、システムドライブ225と、1または複数のデータドライブ230と、メモリ235とを備える。
CPU210は、プログラムをメモリ235上に展開して実行し、フロントエンドNIC215とバックエンドNIC220を介して他のストレージノード150~170およびクライアント110と、EthernetまたはInfiniband(商標登録)等により通信する。
システムドライブ225は、OS(Operating System)240、制御プログラムおよび制御情報テーブルを格納し、データドライブ230は、ファイルデータを格納する。なお、分散ストレージ130にファイルデータとして制御情報テーブルを保存してもよい。ドライブは、HDD(Hard Disk Drive)またはSSD(Solid State Drive)などであり、SAS(Serial Attached SCSI)、SATA(Serial Advanced Technology Attachment)またはPCIeのインターフェース等によりCPU210と接続する。
メモリ235には、OS240、メタデータサーバデーモン245、ストレージデーモン250、監視デーモン255、NFS/CIFSサーバーデーモン260およびゲートウェイ263等の制御プログラムと、クラスタ制御情報265、マップ情報270およびEC情報275等の制御情報テーブルが展開される。
メタデータサーバデーモン245は、分散ストレージ130がファイルサーバ機能を提供するために必要となるファイルメタデータを管理するプロセスである。ストレージデーモン250は、データドライブ230を管理し、そのドライブからのデータの読み出しおよび書き込みを実行するプロセスである。監視デーモン255は、複数のストレージノードからなるクラスタ構成情報を管理するプロセスである。NFS/CIFSサーバーデーモンは、NFS(Network File System)またはCIFS(Common Internet File System)プロトコルによるネットワークファイル共有サービスを提供するプロセスである。
ゲートウェイ263は、クライアント110からのI/O要求を受け付けて、自ストレージノード140や他ストレージノード150~170のストレージデーモン250と通信しながら当該I/O要求を処理し、クライアント110へ応答を返すプロセスである。
クラスタ制御情報265は、クラスタを構成するストレージノードのIPアドレス(あるいはドメインネーム)、ストレージデーモン250等の制御プロセスと通信するためのIPアドレス、ポート番号等の構成情報およびストレージノード間の通信に必要な認証情報等である。マップ情報270は、分散ストレージ130内のファイルデータの格納位置を示す制御情報テーブルである。EC情報275は、格納ファイルデータに関する誤り訂正符号化種別等のECに関する制御情報テーブルである。
分散ストレージ130を構成する複数のストレージノード140~170のいずれかの1つのストレージノードがクライアント110からライト要求を受信すると、当該ストレージノードは当該ライト要求のI/O受付ノードとなる。ライト要求は、ライト対象のファイルデータとファイルの格納位置を示すパス情報を含む。
ゲートウェイ263は、ファイルデータのライト要求を受け付けると、ファイルデータを複数のデータユニットに分割し、そのデータユニットからパリティユニットを生成し、それらのデータユニットとパリティユニットを複数のストレージノード140~170に分散して格納する。
ゲートウェイ263は、パリティユニットを生成する場合、ネットワーク転送量に基づいて、全ストライプによるパリティ計算方法とRMWによるパリティ計算方法とを切り替える。
全ストライプによるパリティ計算方法では、例えば、ゲートウェイ263は、新規のファイルデータのライト要求を受け付けた場合、当該ファイルデータを4つのデータユニットに分割し、そのデータユニットを新D1、新D2、新D3および新D4とし、新たに計算したパリティユニットを新P1および新P2とした場合、RS[新D1、新D2、新D3、新D4]の計算によって新P1および新P2を計算する。ここでRS[]は、代表的にはリードソロモン符号等の誤り訂正符号化を意味するものとし、その他の符号化方式であってもよい。そして、ゲートウェイ263は、新D1、新D2、新D3、新D4、新P1および新P2を複数のストレージノード140~170に分散して格納する。
また、全ストライプによるパリティ計算のもう一例では、ゲートウェイ263は、既存のファイルデータの一部更新ライトを受け付けた場合、当該一部更新データを新D1とすると、ストライプを構成する残りの更新されていないD2、D3、D4を読み出して、RS[新D1、D2、D3、D4]の計算によって新P1および新P2を計算する。そして、ゲートウェイ263は、新D1、新P1および新P2に基づいて、旧D1、旧P1および旧P2を更新する。
このように、全ストライプによるパリティ計算方法では、一部更新ライトの場合、ストライプを構成する残りの更新されていないデータユニット(未更新データユニット、または更新対象外データユニットと言うことがある)の読み出しが発生し、ストレージノード140~170間で大量のネットワーク通信を発生させることがある。
また、ゲートウェイ263は、ストレージノード140~170に格納された既存のファイルの上書き更新のためのライト要求(更新ライト要求と言うことがある)を受け付けた場合、RMWによるパリティ計算方法では、更新前の旧データユニットと旧パリティユニットと新データユニットから、新パリティユニットを生成し、当該新データユニットと新パリティユニットを更新して格納する。例えば、ゲートウェイ263は、旧データユニットを旧D1、旧パリティユニットを旧P1および旧P2、新データユニットを新D1とすると、RS[新D1、旧D1、旧P1、旧P2]の計算によって新P1および新P2を計算する。そして、ゲートウェイ263は、新D1、新P1および新P2に基づいて、旧D1、旧P1および旧P2をそれぞれ更新する。
このように、RMWによるパリティ計算方法では、旧データユニットと旧パリティユニットを読み出して新パリティユニットを計算する。このため、オリジナルデータとパリティデータの両方でRMWが発生し、ストレージノード140~170間で大量のネットワーク通信を発生させることがある。
ここで、定性的には、更新ライト時の更新サイズが小さい場合(更新データユニット数が少ない場合)、全ストライプによるパリティ計算方法では、未更新データユニット数が相対的に増えるため、RMWによるパリティ計算方法に比較して、ネットワーク転送量が増大する。そのため、更新サイズが小さい場合は、RMWによるパリティ計算方法に切り替えることにより、全ストライプによるパリティ計算方法に比較してネットワーク転送量を減らすことができる。また、更新ライト時の更新サイズが大きい場合、RMWによるパリティ計算方法では、読み出す旧データユニットと旧パリティユニットの数が相対的に増えるため、全ストライプによるパリティ計算方法に切り替えることにより、RMWによるパリティ計算方法に比較してネットワーク転送量を減らすことができる。
図3は、図2のEC情報の一例を示す図である。
図3において、EC情報テーブル275は、ファイル名と、Placement Groupと、ストライプのデータユニット数と、ストライプのパリティユニット数と、誤り訂正符号種別のエントリを含む。
ファイル名は、ファイルの名称であり、ファイルのパス情報を含む。Placement Groupは、当該ファイルのストレージノードデータ配置に関する情報である。Placement Groupは、例えば、ファイル名のハッシュ値またはファイルのi-node番号などから生成された値であり、ストライプのノードデータ配置をグループ化するグループ番号に相当する。誤り訂正符号種別は、リードソロモン符号または水平垂直パリティ等の符号化情報である。EC情報275は、ファイル単位、ディレクトリ単位またはファイルシステム単位で保持してもよい。
図4は、図2のマップ情報の一例を示す図である。
図4において、マップ情報テーブル270には、Placement Groupと、当該Placement Groupに所属するファイルデータのデータ配置情報の対応関係が記載される。マップ情報テーブル270は、Placement Groupと、データ配置情報のエントリを含む。
データ配置情報は、ストレージノード番号とストレージノード内のドライブ番号の情報、あるいはストレージデーモンの識別番号であり、ファイルデータのデータユニットとパリティユニットがどこに配置されているかを示す。
図5は、実施形態に係る分散ストレージシステムのパリティ計算切替方法を示すフローチャートである。
図5において、図1のストレージノード140が、クライアント110からのI/O要求をI/O受付ノードとして受け付けたものとする。このとき、図2のゲートウェイ263は、ライト対象データのEC情報275を検索して特定する(310)。
次に、ゲートウェイ263は、全ストライプによるパリティ計算方法とRMWによるパリティ計算方法とを切り替える判定式をEC情報275から決定する(313)。この判定式は、更新ライト時の全ストライプによるパリティ計算に必要なネットワーク転送量と、更新ライト時のRMWによるパリティ計算に必要なネットワーク転送量の比較結果に基づいて求めることができる。ネットワーク転送量は、更新ライト要求を受け付けるI/O受付ノードのデータ配置条件に応じて変化する。このため、判定式は、データ配置条件ごとに求めることができる。また、各データ配置条件において、ネットワーク転送量は、パリティを計算するストレージノードに応じて変化する。このため、判定式は、パリティを計算するストレージノードごとに求めことができる。なお、ファイルデータ毎のストライプに応じて、そのデータユニットやパリティユニットの格納ノードが異なるため、ファイルデータ毎にデータ配置条件が異なる。
また、RMWによるパリティ計算において、中間パリティを使用した場合は、中間パリティを使用しない場合に比べて、ネットワーク転送量を低減できる。このため、中間パリティを使用可能な場合、パリティ計算方法を切り替える判定式として、中間パリティを使用した判定式を用いることができる。
次に、ゲートウェイ263は、マップ情報テーブル270およびEC情報275からデータ配置条件を特定する(315)。
次に、ゲートウェイ263は、313で決定した判定式に基づいて、全ストライプによるパリティ計算方法およびRMWによるパリティ計算方法のどちらに切り替えるかを判定する(320)。このとき、ゲートウェイ263は、ストレージノード140~170間のネットワーク転送量が少ない方法を選択する。当該判定の結果、全ストライプによるパリティ計算と判定した場合、ストライプを構成するすべてのデータユニットからパリティユニットを計算する(325)。
一方、ゲートウェイ263は、320での判定の結果、RMWによるパリティ計算と判定した場合、RMWによるパリティ計算をどのストレージノードで実施するのかを判定する(330)。このとき、ゲートウェイ263は、ストレージノード140~170間のネットワーク転送量が少ないストレージノードでのパリティ計算を選択する。
I/O受付ノードでパリティ計算すると判定された場合、I/O受付ノードでRMWによるパリティ計算を実施する(335)。
一方、旧データユニット格納ノードまたは旧パリティユニット格納ノードでパリティ計算すると判定された場合は、旧データユニット格納ノードまたは旧パリティユニット格納ノードでRMWによるパリティ計算を実施する(340)。
以下、ストレージノード間でのネットワーク転送量の算出方法のいくつかの例について具体的に説明する。
図6は、実施形態に係る分散ストレージシステムの全ストライプによるパリティ計算時のネットワーク転送量の算出方法の一例を示すブロック図である。
図6において、複数のストレージノード400~409からクラスタが構成され、ストレージノード400がI/O受付ノードであるものとする。また、ストレージノード401~403が、当該ライトI/O要求に関連する旧データユニット(旧D)430~432を格納し、ストレージノード404~406が当該ライトI/O要求に関連する旧パリティユニット(旧P)440~442を格納し、ストレージノード407~409が、当該ライトI/O要求に関連する更新対象外データユニット(未更新D)450~452を格納しているものとする。図6では、当該ライトI/O要求に関連しないストレージノードは図示していない。
また、I/O受付ノードであるストレージノード400には、旧データユニット、旧パリティユニットおよび更新対象外データユニットは含まれていないものとする。更新対象外データユニットは、ストライプを構成するデータユニットのうち、ライトI/O要求で更新されないデータユニットである。1つのストライプは、k(kは正の整数)個のデータユニットおよびm(mは正の整数)個のパリティユニットから構成されるものとし、当該ライトI/O要求としてw(wは正の整数)個のデータユニット(新D)420の更新ライトが発行されたものとする。このとき、更新対象外データユニットは、(k-w)個ある。ここで、I/O受付ノードであるストレージノード400がパリティを計算するストレージノードであるものとする。ストレージノード400は、符号化器410を備える。
ストレージノード400は、ストライプのEC情報とデータ配置条件を特定し、全ストライプによるパリティ計算と判定した場合、以下のようにI/O処理する。
(P11)(k-w)個の更新対象外データユニット407~409をI/O受付ノードに転送する。
(P12)符号化器410にて、w個の新データユニット420と、(k-w)個の更新対象外データユニット407~409を合わせた全ストライプから、m個の新パリティユニット(新P)425を計算する。
(P13)w個の新データユニット420と、m個の新パリティユニット425をそれぞれの格納ノードに転送して更新する。
データユニット1個分のデータ量を1とすると、(k-w)個の更新対象外データユニット407~409のネットワーク転送量は(k-w)、新データユニット420のネットワーク転送量はw、新パリティユニット425のネットワーク転送量はmとなる。このため、上記のI/O処理によってストレージノード400~409間のネットワークを流れるネットワーク転送量の合計は、(k-w)+w+m=k+mとなる。
図7は、実施形態に係る分散ストレージシステムのRMWによるパリティ計算時のネットワーク転送量の算出方法の一例を示すブロック図である。
図7において、図6のストレージノード400~409と同様のデータ配置条件で、I/O受付ノードがRMWによるパリティ計算を実施するものとする。このとき、ストレージノード400は、以下のようにI/O処理する。
(P21)w個の旧データユニット430~432と、m個の旧パリティユニット440~442をI/O受付ノードに転送する。
(P22)符号化器410にて、w個の新データユニット420と、w個の旧データユニット430~432と、m個の旧パリティユニット440~442から、m個の新パリティユニット425を計算する。
(P23)w個の新データユニット420と、m個の新パリティユニット425をそれぞれの格納ノードに転送して更新する。
データユニット1個分のデータ量を1とすると、旧データユニット430~432のネットワーク転送量はw、旧パリティユニット440~442のネットワーク転送量はm、新データユニット420のネットワーク転送量はw、新パリティユニット425のネットワーク転送量はmとなる。このため、上記のI/O処理によってストレージノード400~406間のネットワークを流れるネットワーク転送量の合計は、w+m+w+m=2w+2mとなる。
図8は、実施形態に係る分散ストレージシステムのRMWによるパリティ計算時のネットワーク転送量の算出方法のその他の例を示すブロック図である。
図8において、図6のストレージノード400~409と同様のデータ配置条件で、旧データユニット格納ノードがRMWによるパリティ計算を実施するものとする。旧データユニット格納ノードであるストレージノード401は、符号化器411を備える。このとき、ストレージノード401は、以下のようにI/O処理する。
(P31)w個の新データユニット420と、(w-1)個の旧データユニット431~432と、m個の旧パリティユニット440~442をストレージノード401に転送する。ここで、ストレージノード401に格納されている1個分の旧データユニット430は、ストレージノード401のローカルドライブからの読み出しとするためネットワーク転送は不要である。
(P32)符号化器411にて、w個の新データユニット420と、(w-1)個の旧データユニット430~432と、m個の旧パリティユニット440~442から、m個の新パリティユニット425を計算する。
(P33)(w-1)個の新データユニット420と、m個の新パリティユニット425をそれぞれの格納ノードに転送して更新する。ここで、旧データユニット430に対応する新データユニット1個分は、ストレージノード401のローカルドライブへの書き込みとするためネットワーク転送は不要となる。
データユニット1個分のデータ量を1とすると、上記のI/O処理によってストレージノード400~406間のネットワークを流れるデータ量の合計は、w+(w-1)+m+(w-1)+m=3w+2m-2である。
図9は、実施形態に係る分散ストレージシステムのRMWによるパリティ計算時のネットワーク転送量の算出方法のさらにその他の例を示すブロック図である。
図9において、図6のストレージノード400~409と同様のデータ配置条件で、I/O受付ノードが中間パリティ725を計算し、旧パリティユニット格納ノードが中間パリティ725を使ってRMWによるパリティ計算を実施するものとする。旧パリティユニット格納ノードである各ストレージノード404~406は、符号化器414~416を備える。
中間パリティは、新データユニットと旧データユニットを符号化したデータである。例えば、中間パリティは、RS[新D1、旧D1]の計算で得られる。この中間パリティを中Pとすると、RS[中P、旧P]の計算により新Pが得られる。このとき、ストレージノード400、404は、以下のようにI/O処理する。
(P41)w個の旧データユニット430~432をI/O受付ノードに転送する。
(P42)符号化器411にて、w個の新データユニット420と、w個の旧データユニット430~432から、m個の中間パリティユニット725を計算する。
(P43)m個の中間パリティユニットをそれぞれ対応する旧パリティユニット格納ノードに転送する。
(P44)それぞれの旧パリティユニット格納ノードの符号化器414~416にて、m個の旧パリティユニット440~442と、中間パリティユニット725から、m個の新パリティユニット425を計算して更新する。また、w個の新データユニット420をそれぞれの旧データユニット格納ノードに転送して更新する。
データユニット1個分のデータ量を1とすると、上記のI/O処理によってストレージノード400~406間のネットワークを流れるデータ量の合計は、w+m+w=2w+mである。中間パリティユニット725を使うことにより、m個の旧パリティユニット440~442のネットワーク転送をしないため、中間パリティユニット725を使わない場合に比べて、全体のネットワーク転送量を少なくすることができる。
中間パリティを使用可能な条件は、複数のパリティユニットがそれぞれ独立して計算できる誤り訂正符号であること、あるいはパリティユニットが1個(m=1)であることである。例えば、複数のパリティユニットが独立して計算できる誤り訂正符号としては、水平垂直パリティなどであり、1つ目のパリティを排他的論理和XORにより生成し、2つ目のパリティをCRC(Cyclic Redundancy Check)により生成することで、2つのパリティを独立して生成できる場合である。
なお、新データユニットと新パリティユニットの更新タイミングは、電源障害などによるデータ破壊を防ぐために、2フェーズコミットなどにより厳密なタイミングで実施することができる。
図10は、実施形態に係る分散ストレージシステムのデータ配置条件、パリティ計算方法およびパリティ計算ノードの変更したときのネットワーク転送量の一覧を示す図である。
図10において、ストレージノードに分散配置済のデータユニットおよびパリティユニットをそれぞれ旧Dおよび旧P、更新ライト時のI/O受付ノードで受け付けられたデータユニットを新D、更新対象外データユニットを未更新Dとすると、I/O受付ノードでのデータ配置条件は、(A)旧Dなし、かつ旧Pなし、かつ未更新Dなしの場合、(B)旧Dありの場合、(C)旧Pありの場合、(D)未更新Dの場合の4通りある。
また、パリティ計算ノードは、(1)I/O受付ノード、(2)旧データユニット格納ノード、(3)旧パリティユニット格納ノード、(4)更新対象外データユニット格納ノードおよび(5)それ以外のノードの5通りある。
テーブル1000は、これらのデータ配置条件およびパリティ計算ノードの全ての組み合わせについて、全ストライプによるパリティ計算の場合とRMWによるパリティ計算の場合のそれぞれについてネットワーク転送量を示す。
ここで、テーブル1000の(A)(A-1)の場合のネットワーク転送量は、図6の方法で計算できる。テーブル1000の(A)(a-1)の場合のネットワーク転送量は、図7の方法で計算できる。テーブル1000の(A)(a-2)の場合のネットワーク転送量は、図8の方法で計算できる。これら以外の場合についても、同様に計算することができる。
図11は、実施形態に係る分散ストレージシステムの中間パリティ使用時のデータ配置条件およびパリティ計算ノードの変更したときのネットワーク転送量の一覧を示す図である。
図11において、テーブル1100は、テーブル1000と同様のデータ配置条件およびパリティ計算ノードの全ての組み合わせについて、中間パリティ使用時のRMWによるパリティ計算についてネットワーク転送量を示す。ここで、テーブル1100の(A)(a-1-int.P)の場合のネットワーク転送量は、図9の方法で計算できる。この方法以外の場合についても、同様に計算することができる。
分散ストレージ130は、図10と図11に示すネットワーク転送量が最小となるようなパリティ計算方法に切り替える。一方で、明らかにネットワーク転送量が最小とならない場合が存在しているため、切り替え判定を簡単化して判定式化することができる。
判定式は、例えば、データ配置条件として、I/O受付ノードに旧データユニットなし、旧パリティユニットなし、更新対象外データユニットなしとした(A)の場合、テーブル1000の(a-1)、(a-2)、(a-3)および(A-1)の4つの場合から最小のネットワーク転送量となる場合を決定すればよい。
ただし、(a-2)と(a-3)の場合は、ネットワーク転送量が3w+2m-2で同一であるため、ここでは3つのネットワーク転送量を比較すればよく、全ストライプによるパリティ計算(A-1)への切り替え条件式は、
2w+2m>k+mかつ3w+2m-2>k+m
となる。
この条件式の左辺がwになるように変形すると、
w>(k-m)/2かつw>(k-m+2)/3
という式が得られる。上記の式から、図10のテーブル1000の(A)の場合について、k-m>=4のときw>(k-m)/2
k-m<4のときw>(k-m+2)/3
という切り替え判定式が得られる。
図12は、実施形態に係る分散ストレージシステムのパリティ計算方法の切替条件の一覧を示す図である。
図12において、切り替え判定式1200は、図10のテーブル1000の(A)、(B)、(C)および(D)の場合について、全ストライプによるパリティ計算へ切り替える条件を示す。
切り替え判定式1200は、更新ライトのデータユニット数wが、ストライプのデータユニット数kおよびストライプのパリティユニット数mから計算される値より大きい場合、全ストライプによるパリティ計算方法に切り替えることを示す。
図13は、実施形態に係る分散ストレージシステムの中間パリティ使用時のパリティ計算方法の切替条件の一覧を示す図である。
図13において、切り替え判定式1300は、図11のテーブル1100の(A)、(B)、(C)および(D)の場合について、中間パリティを使った場合における全ストライプによるパリティ計算への切り替え条件を示す。
切り替え判定式1300は、RMWによるパリティ計算時に中間パリティを使った場合において、更新ライトのデータユニット数wが、ストライプのデータユニット数kから計算される値より大きい場合、全ストライプによるパリティ計算方法に切り替えることを示す。
また、RMWによるパリティ計算におけるパリティ計算ノードの位置判定は、判定式化することができる。例えば、図10のテーブル1000の(A)の場合、(a-1)、(a-2)および(a-3)の3つの場合から最小のネットワーク転送量となる場合を決定すればよい。ただし、(a-2)と(a-3)の場合は、ネットワーク転送量が3w+2m-2で同一であるため、ここでは2つの転送量を比較すればよく、パリティ計算ノード位置判定で(a-1)の場合へのノード位置判定式は、
3w+2m-2>=2w+2m
となる。この判定式の左辺がwとなるように変形すると、w>=2となる。wは1以上であるため、(a-2)あるいは(a-3)の場合と判定されるのはw=1という条件となる。
図14は、実施形態に係る分散ストレージシステムのパリティ計算ノードの切替条件の一覧を示す図である。
図14において、ノード位置判定式1400は、図10のテーブル1000の(A)、(B)、(C)および(D)の場合について、RMWによるパリティ計算におけるパリティ計算ノード位置を示す。
図15は、実施形態に係る分散ストレージシステムの中間パリティ使用時のパリティ計算ノードの切替条件の一覧を示す図である。
図15において、ノード位置判定式1500は、図11のテーブル1100の(A)、(B)、(C)および(D)の場合について、中間パリティを使った場合のRMWによるパリティ計算におけるパリティ計算ノード位置を示す。
図1の分散ストレージ130は、図5のパリティ計算切替処理において、図12の切り替え判定式1200、図13の切り替え判定式1300、図14のノード位置判定式1400および図15のノード位置判定式1500を適宜用いる。切り替え判定式1200、切り替え判定式1300、ノード位置判定式1400およびノード位置判定式1500は、図2のゲートウェイ263の処理を実現するプログラムに記述することができる。
具体的には、ストレージノード上で動作するゲートウェイ263は、クライアント110からのライトI/O要求を受け付けると、当該ライトI/O要求に関するI/O受付ノードとしてI/O処理フローを開始する。
次に、ゲートウェイ263は、当該ライトI/O要求のライト対象データに関するEC情報275を参照し、誤り訂正符号化種別とパリティユニット数を特定する(310)。
次に、ゲートウェイ263は、訂正符号化種別が複数のパリティユニットを独立して計算可能な訂正符号の場合、あるいは、パリティユニット数が1(m=1)の場合は、以後の切り替え判定において、中間パリティを使った場合の判定式と決定し、それ以外の場合は、通常の判定式を使用すると決定する(313)。
次に、ゲートウェイ263は、EC情報275とマップ情報270を参照し、Placement Groupをキーとして一致するかどうかを検索し、当該ライトデータに関するデータ配置情報を特定する(315)。
次に、ゲートウェイ263は、データ配置情報とデータユニット数kおよびパリティユニット数mを基に、図12の通常の切り替え判定式1200または図13の中間パリティを使った場合の切り替え判定式1300を使って、最小のネットワーク転送量となるのが全ストライプによるパリティ計算かどうかを判定する(320)。
次に、ゲートウェイ263は、320の判定の結果、全ストライプによるパリティ計算がネットワーク転送量が最小と判定された場合は、全ストライプによるパリティ計算処理を実行する(325)。
一方、ゲートウェイ263は、RMWによるパリティ計算の場合、図14の通常のノード位置判定式1400または図15の中間パリティを使った場合のノード位置判定式1500を使って、パリティ計算をどのノードで実行するかの判定を実行する(330)。
次に、ゲートウェイ263は、330の判定の結果、I/O受付ノードでパリティ計算するのがネットワーク転送量が最小と判定された場合は、I/O受付ノードにてRMWによるパリティ計算を実行する(335)。
それ以外の場合、ゲートウェイ263は、旧データユニット格納ノードまたは旧パリティユニット格納ノードにてRMWによるパリティ計算を実行する(340)。
以上説明したように、上述した実施形態によれば、データ配置条件とEC条件に応じて判定式により、ネットワーク転送量が最小となるパリティ計算方法を決定することができる。
上述した実施形態は、ファイルデータを前提として説明したが、本発明はデータの形式に依存するものではなく、オブジェクトデータおよびブロックデータなどでも適用可能である。また、上述した実施形態では、代表的なケースのデータフロー、ネットワーク転送量および判定式の導出過程を示したが、他のケースでも同様に導出できる。
上述した実施形態では、ライトI/O処理フローについて説明したが、本実施形態を適用した場合であっても、リードI/O処理フローに変更は発生せず、リード性能に悪影響を与えない。
上述した実施形態では、フラットなネットワークモデルを想定してネットワーク転送コストを最小化する方式を示したが、ネットワークトポロジー情報を参照して、例えば、ラックをまたがってネットワークスイッチがカスケード接続された構成でノード間が接続されている場合、当該ノード間のネットワーク転送量の算出には、補正係数をかけて算出してもよい。これにより、より高度なネットワーク転送コストの最小化を達成することができる。
さらに、パリティ計算ノードの切り替え判定において、各ノードの空きメモリ量情報とCPUの負荷情報を収集して、その値に応じて補正して判定してもよい。これにより、例えば、空きメモリ量が多いノードまたはCPU利用率が低いノードをパリティ計算ノードとするように判定することができ、分散ストレージの各種リソース利用の最適化を図ることができる。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
100 分散ストレージシステム、110 クライアント、120 フロントエンドネットワーク、130 分散ストレージ、140~170 ストレージノード、180 バックエンドネットワーク

Claims (10)

  1. プロセッサと、記憶ドライブと、を有するノードを複数備え、
    データユニットとそれを修復するためのパリティユニットでストライプを構成し、
    ストライプを構成する各ユニットをそれぞれの別のノードの記憶ドライブに格納する分散ストレージシステムにおいて、
    前記プロセッサは、
    前記データユニットを更新ライトした場合に、同じストライプ内のパリティユニットを更新し、
    前記更新ライト後のストライプ内の全部のデータユニットに基づいて、前記パリティユニットを計算して更新する第1のパリティ更新方法と、
    更新ライトを行ったデータユニットと、前記更新ライト前のデータユニットと、前記更新ライト前のパリティユニットと、に基づいて、前記更新ライト後のパリティユニットを計算して更新する第2のパリティ更新方法と、
    を実行可能であり、
    前記更新ライト後のパリティユニットの計算と、前記更新ライト後のデータユニットの格納と、前記更新ライト後のパリティユニットの格納とにかかる前記ノード間のデータ通信量に基づいて、前記第1のパリティ更新方法と、第2のパリティ更新方法とを切り替える分散ストレージシステム。
  2. 前記ストライプのデータユニット数、前記ストライプのパリティユニット数、前記ストライプ内の更新ライトのデータユニット数、及び、更新ライト要求を受信したノードが有している前記ユニットの種類に基づいて、前記データ通信量を計算する請求項1に記載の分散ストレージシステム。
  3. 前記データ通信量に基づいて、前記第1のパリティ更新方法と前記第2のパリティ更新方法とを切り替えるとともに、前記パリティユニットを計算するノードを選択する請求項2に記載の分散ストレージシステム。
  4. 前記更新ライト要求を受信したノードが有している前記ユニットの種類は、更新ライト対象のデータユニット、更新ライト非対象のデータユニット、パリティユニット、及び、これらをいずれも有しない、を含む請求項2に記載の分散ストレージシステム。
  5. 前記パリティユニットを計算するノードは、前記更新ライト要求を受付けたノード、前記更新ライトの対象となるデータユニットが格納されたストレージノードおよび前記パリティユニットが格納されたストレージノードの中から選択する請求項3に記載の分散ストレージシステム。
  6. さらに中間パリティの使用の可否に基づいて、前記パリティ更新を切り替える請求項1に記載の分散ストレージシステム。
  7. 前記中間パリティが使用可能な場合、
    前記第2のパリティ更新方法におけるデータ通信量の計算方法は、中間パリティの使用可否で変更される
    請求項6記載の分散ストレージシステム。
  8. 前記更新ライトを受信したノードが、前記データ通信量を計算して前記パリティ更新方法を切り替える請求項1記載の分散ストレージシステム。
  9. 前記ストライプに応じて、そのデータユニット及びパリティユニットを格納するノードが異なっており、
    前記ストライプごとに前記パリティ更新方法を選択する請求項8記載の分散ストレージシステム。
  10. プロセッサと、記憶ドライブと、を有するノードを複数備え、
    データユニットとそれを修復するためのパリティユニットでストライプを構成し、
    ストライプを構成する各ユニットをそれぞれの別のノードの記憶ドライブに格納する分散ストレージシステムのパリティ更新方法において、
    前記プロセッサは、
    前記データユニットを更新ライトした場合に、同じストライプ内のパリティユニットを更新し、
    前記更新ライト後のストライプ内の全部のデータユニットに基づいて、前記パリティユニットを計算して更新する第1のパリティ更新方法と、
    更新ライトを行ったデータユニットと、前記更新ライト前のデータユニットと、前記更新ライト前のパリティユニットと、に基づいて、前記更新ライト後のパリティユニットを計算して更新する第2のパリティ更新方法と、
    を実行可能であり、
    前記更新ライト後のパリティユニットの計算と、前記更新ライト後のデータユニットの格納と、前記更新ライト後のパリティユニットの格納とにかかる前記ノード間の通信量に基づいて、前記第1のパリティ更新方法と、第2のパリティ更新方法とを切り替える分散ストレージシステムのパリティ更新方法。
JP2019213354A 2019-11-26 2019-11-26 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法 Active JP7355616B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019213354A JP7355616B2 (ja) 2019-11-26 2019-11-26 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法
US16/807,724 US11467908B2 (en) 2019-11-26 2020-03-03 Distributed storage system, distributed storage node, and parity update method for distributed storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019213354A JP7355616B2 (ja) 2019-11-26 2019-11-26 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法

Publications (2)

Publication Number Publication Date
JP2021086289A JP2021086289A (ja) 2021-06-03
JP7355616B2 true JP7355616B2 (ja) 2023-10-03

Family

ID=75974842

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019213354A Active JP7355616B2 (ja) 2019-11-26 2019-11-26 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法

Country Status (2)

Country Link
US (1) US11467908B2 (ja)
JP (1) JP7355616B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7355616B2 (ja) * 2019-11-26 2023-10-03 株式会社日立製作所 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法
CN113590041A (zh) * 2021-07-29 2021-11-02 杭州宏杉科技股份有限公司 一种数据保护存储方法、装置及设备
KR20230101405A (ko) * 2021-12-29 2023-07-06 삼성전자주식회사 분산 파일 시스템에서 이레이저 코딩을 가속화하는 전자 장치 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007087094A (ja) 2005-09-22 2007-04-05 Fujitsu Ltd Raid装置におけるライトバック方法
JP2014203233A (ja) 2013-04-04 2014-10-27 株式会社日立製作所 ストレージシステム及びストレージシステムにおいてデータを更新する方法
JP2017054303A (ja) 2015-09-09 2017-03-16 日本電気株式会社 ディスクアレイ装置、ディスクアレイシステム、制御方法、および、制御プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778426A (en) * 1995-10-23 1998-07-07 Symbios, Inc. Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method
US6708258B1 (en) * 2001-06-14 2004-03-16 Cisco Technology, Inc. Computer system for eliminating memory read-modify-write operations during packet transfers
US20110202722A1 (en) * 2010-01-19 2011-08-18 Infinidat Ltd. Mass Storage System and Method of Operating Thereof
EP2819530B1 (en) * 2012-03-02 2018-08-15 Pepsico, Inc. Method of manufacturing protein beverages and denaturizing loop apparatus and system
US9524107B2 (en) * 2014-07-30 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Host-based device drivers for enhancing operations in redundant array of independent disks systems
US9595979B2 (en) 2015-01-20 2017-03-14 International Business Machines Corporation Multiple erasure codes for distributed storage
US10360119B2 (en) 2015-10-06 2019-07-23 Netapp, Inc. Data recovery in a distributed storage system
JP7355616B2 (ja) * 2019-11-26 2023-10-03 株式会社日立製作所 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007087094A (ja) 2005-09-22 2007-04-05 Fujitsu Ltd Raid装置におけるライトバック方法
JP2014203233A (ja) 2013-04-04 2014-10-27 株式会社日立製作所 ストレージシステム及びストレージシステムにおいてデータを更新する方法
JP2017054303A (ja) 2015-09-09 2017-03-16 日本電気株式会社 ディスクアレイ装置、ディスクアレイシステム、制御方法、および、制御プログラム

Also Published As

Publication number Publication date
JP2021086289A (ja) 2021-06-03
US20210157676A1 (en) 2021-05-27
US11467908B2 (en) 2022-10-11

Similar Documents

Publication Publication Date Title
CN110169040B (zh) 基于多层一致性哈希的分布式数据存储方法与系统
Xin et al. Reliability mechanisms for very large storage systems
US9021335B2 (en) Data recovery for failed memory device of memory device array
JP7355616B2 (ja) 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法
US9354980B2 (en) Dispersed storage having snapshot clones and methods for use therewith
US8165221B2 (en) System and method for sampling based elimination of duplicate data
JP4718340B2 (ja) ストレージシステム、制御方法及びプログラム
US7418620B1 (en) Fault tolerant distributed storage method and controller using (N,K) algorithms
US11531593B2 (en) Data encoding, decoding and recovering method for a distributed storage system
US7979779B1 (en) System and method for symmetric triple parity for failing storage devices
US20110161754A1 (en) Revision synchronization of a dispersed storage network
AU2015360953A1 (en) Dataset replication in a cloud computing environment
JP2004514968A (ja) 共通デジタルシーケンスを識別するシステム
EP2342661A1 (en) Matrix-based error correction and erasure code methods and apparatus and applications thereof
WO2010133080A1 (zh) 基于(d,k)摩尔图的网络存储结构的数据存储方法
US10558638B2 (en) Persistent data structures on a dispersed storage network memory
US11507283B1 (en) Enabling host computer systems to access logical volumes by dynamic updates to data structure rules
US10921991B1 (en) Rule invalidation for a block store management system
US20140289489A1 (en) Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media
US11360699B1 (en) Method and system for improved write performance in erasure-coded storage systems
US10809920B1 (en) Block store management for remote storage systems
Phyu et al. Efficient data deduplication scheme for scale-out distributed storage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230828

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: 20230912

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230921

R150 Certificate of patent or registration of utility model

Ref document number: 7355616

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150