JP6494787B2 - 分散ストレージシステム - Google Patents

分散ストレージシステム Download PDF

Info

Publication number
JP6494787B2
JP6494787B2 JP2017549899A JP2017549899A JP6494787B2 JP 6494787 B2 JP6494787 B2 JP 6494787B2 JP 2017549899 A JP2017549899 A JP 2017549899A JP 2017549899 A JP2017549899 A JP 2017549899A JP 6494787 B2 JP6494787 B2 JP 6494787B2
Authority
JP
Japan
Prior art keywords
data
edge
difference data
update difference
edge nodes
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
JP2017549899A
Other languages
English (en)
Other versions
JPWO2017081747A1 (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
Publication of JPWO2017081747A1 publication Critical patent/JPWO2017081747A1/ja
Application granted granted Critical
Publication of JP6494787B2 publication Critical patent/JP6494787B2/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)

Description

本発明は、分散ストレージシステムに関する。
IoT時代の到来により、多数のエッジノードで生成データを保持し、分析を実施するシステムが普及すると考えられる。そのようなシステムにおいて、大量のエッジノードのデータを少ないリソースでバックアップを実現することが要求される。
たとえば、米国特許第7152079号(特許文献1)は、非同期リモートコピー技術を開示する。例えば、以下の構成が開示されている。「第一のストレージシステムは、第一のストレージシステムに格納されたデータの更新に関する情報をジャーナルとして格納する。ジャーナルは、具体的には、更新に用いられたデータのコピーと更新時のライト命令等の更新情報とによって構成される。さらに、第二のストレージシステムは、第一のストレージシステムと第二の記憶システム間の通信線を介して、前記ジャーナルを取得する。第二のストレージシステムは、第一のストレージシステムが保持するデータの複製を保持しており、前記ジャーナルを用いて、第一のストレージシステムでのデータ更新順に、第一のストレージシステムのデータと対応するデータを更新する。」(要約)。
上記非同期リモートコピー技術は、リモートのデータセンタにデータをバックアップする際に、ホストI/Oとは非同期にデータを転送することにより、ホストI/Oのレイテンシ増加を抑制できる。
米国特許第7152079号
従来の非同期リモートコピー技術は、バックアップのデータを2重化するため、バックアップ側のデータセンタに実データ分の容量の記憶ストレージ装置を導入する必要がある。この場合、多数のエッジノードが存在する場合に、バックアップ側のデータセンタ(コアデータセンタ)の膨大な容量が必要になる。
本発明の代表的な一例は、分散ストレージシステムであって、複数のエッジノードを含むエッジシステムと、前記エッジシステムとネットワークを介して接続され、前記エッジシステムのバックアップデータを保持するコアシステムと、を含む。前記複数のエッジノードのそれぞれは、ボリュームをホストに提供し、前記ボリュームの第1世代のスナップショットと、前記第1世代よりも古い旧世代のスナップショットと、の間のXOR更新差分データを生成し、前記生成したXOR更新差分データを前記コアシステムに送信する。前記コアシステムは、前記バックアップデータとして、前記複数のエッジノードからのXOR更新差分データに基づき生成されたイレージャコードを保持し、前記複数のエッジノードから受信したXOR更新差分データに基づいて、前記イレージャコードを更新する。
本発明の一態様によれば、バックアップによりデータを保護しつつ、バックアップに必要な記憶容量を削減できる。
拠点分散型ストレージシステムのシステム構成例を示す。 拠点分散型ストレージシステムの論理構成例を示す。 拠点分散型ストレージシステムのメモリに格納されている管理情報の例を示す。 拠点分散型ストレージシステムのメモリに格納されている管理情報の例を示す。 ボリュームの構成を管理するボリューム構成テーブルの例を示す。 ペアの状態を管理するペア管理テーブルの例を示す。 プールのページマッピングの情報を管理するページマッピングテーブルの例を示す。 拠点管理テーブルの例を示す。 エッジI/O処理(ライト)のフローチャート例を示す。 エッジI/O処理(リード)ののフローチャート例を示す。 エッジバックアップ処理(非同期転送)のフローチャート例を示す。 コアライト処理のフローチャート例を示す。 コアEC更新処理のフローチャート例を示す。 リストア処理のフローチャート例を示す。 実施形態2に係る、計算機システムの論理構成例を示す。 実施形態3に係る、計算機システムにおける論理構成例を示す。
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
本開示は、拠点分散型ストレージシステムにおける、データ保護の効率化に関する。複数のエッジノードが、異なる時点のスナップショット(特定時点のボリュームのデータ)のXOR更新差分データを生成し、コアシステムに転送する。コアシステムは、XOR更新差分データを元に、イレージャコード(冗長コード)を更新する。これにより、リモートバックアップのための記憶容量を低減する。
<実施形態1>
図1は、拠点分散型ストレージシステムのシステム構成例を示す。拠点分散型ストレージシステムは、ネットワークを介して接続された複数の計算機ノードを含む。図1において、三つの計算機ノード101A〜101Cが例示されている。
計算機ノード101A、101Bはエッジノード(単にエッジとも呼ぶ)であり、計算機ノード101Cはコアノード(単にコアとも呼ぶ)である。エッジノード101A、101Bは、それぞれ、ホストに対してボリュームを提供し、コアノード101Cは、エッジノード101A、101Bのボリュームのバックアップデータを保持する。例えば、各エッジノードは異なる拠点、例えば、異なる支店に配置されている。
計算機ノードは、例えば一般的なサーバ計算機の構成を有している。計算機ノードのハードウェア構成は特に限定されない。計算機ノードは、ネットワーク103を介して他の計算機ノードとポート106を通じて接続する。ネットワーク103は、例えばInfini Bandや、イーサネットなどにより構成される。
計算機ノードの内部構成は、内部ネットワーク112を介してポート106、プロセッサパッケージ111、ディスクドライブ(以下においてドライブとも呼ぶ)113を接続する。プロセッサパッケージ111は、メモリ118及びプロセッサ119を含む。
メモリ118は、プロセッサ119がリードやライト命令を処理し、ストレージの機能を実行する上で、必要な制御用の情報を格納し、また、ストレージのキャッシュデータを格納する。さらに、メモリ118は、例えばプロセッサ119により実行するプログラムを格納する。メモリ118は、揮発性のDRAMであってもよいし、不揮発のSCM(Storage Class Memory)などを用いてもよい。
ドライブ113は、例えば、FC(Fibre Channel)、SAS(Serial Attached SCSI)、SATA(Serial Advanced Technology Attachment)などのインタフェースを持つHDD(Hard Disk Drive)や、SSD(Solid State Drive)などにより構成する。
NAND、PRAM、ReRAMなどのSCMを用いてもよいし、揮発性のメモリを用いてもよい。揮発性メモリを使用する場合、バッテリによってストレージデバイスを不揮発化してもよい。前述したさまざまな種別のドライブは、性能が異なる。例えば、HDDと比較し、SSDのスループット性能が高い。計算機ノードは、複数の種別のドライブ113を含む。
図2は、拠点分散型ストレージシステムの論理構成例を示す。拠点分散型ストレージシステムは、計算機ノード101A、101Bを含むエッジシステムと、計算機ノード101Cを含むコアシステムと、を含む。計算機ノード101Bにおいて、計算機ノード101Aの構成要素と同種の構成要素に対する参照符号は省略されている。エッジシステムの計算機ノードは、複数の拠点に分散して配置される。一つの拠点には、1又は複数の計算機ノードが配置されている。
計算機ノード101A、101Bは、それぞれ、プライマリボリュームPVOL202をホストに提供する。ホストは、例えばエッジ計算機上で実行されるアプリケーション又は仮想マシン(App/VM)203である。これらプログラムは、他の計算機上で実行されてもよく、ホストは他の実計算機であってもよい。
PVOL202は、仮想ボリュームでもよいし、論理ボリュームでもよい。仮想ボリュームは、物理的な記憶空間を持たないボリュームである。計算機ノードは、新たにライトアクセスがあった仮想ページに対して、プールから論理ページを割り当てる。プールは1以上のプールボリュームで構成される。プールボリュームは論理ボリュームであり、プールボリュームの論理記憶領域に対して、ドライブ113のパリティグループの物理記憶領域が割り当てられる。
二つのセカンダリボリュームSVOL201A(S1)、201B(S2)が、一つのPVOL202に関連付けられている。PVOL202とSVOL201Aは、スナップショットペア204Aを構成する。PVOL202とSVOL201Bは、スナップショットペア204Bを構成する。
スナップショット又はスナップショットデータは、特定時点のPVOLのデータを指し、特定時点のPVOLの静止化したイメージを指す。二つのSVOL201A、201B(のデータ)は、それぞれ、PVOL202の異なる特定時点のコンシステントなイメージデータであり、スナップショット機能により取得される。
スナップショット機能は、PVOLのデータのうち、特定時点から更新された部分のスナップショットデータ(更新前データ)だけを、更新前にSVOLにコピーする。つまり、PVOLの特定時点のスナップショットデータのうち、特定時点の以降に更新された領域のスナップショットデータのみが、SVOLにコピーされる。このように、特定時点におけるPVOLのスナップショットとその後のPVOLの更新との間の差分データが、SVOLに書き込まれる。
図2の例において、SVOL201A、201Bは仮想ボリュームであり、プール208から、所定サイズのページ単位で、物理記憶領域が割り当てられる。つまり、SVOL201A、201Bのデータは、プール208に格納され、管理される。SVOL201A、201Bは、他の種類のボリュームでもよい。
PVOLが更新されるときに、更新される部分のデータのみが、更新前にスナップショットデータ(の一部)としてプールにコピーされる。この処理を、スナップショットデータの取得とも呼ぶ。
スナップショットペア204Aにおけるスナップショットデータの取得の動作例を説明する。特定時点において、PVOL202がデータAを格納している。特定時点の後、データAをデータBに更新するようホストからライト命令(書き込み要求)を受けると、計算機ノード101Aは、PVOL202を更新する前に、データAをSVOL201A、つまり、プール208にコピーする。
データAのコピー完了後、計算機ノード101Aは、PVOL202においてデータAが格納されている領域に、データBを書き込み、PVOL202を更新する。ホストは、SVOL201Aを介して、PVOL202及びプール208にアクセスすることで、特定時点のPVOL202のデータを取得できる。
このように、PVOL202はホストからのI/Oを継続し、更新ライトを受け付ける。一方、SVOL201A、201Bそれぞれのデータは、対応する特定時点のデータのままである。
SVOL201A、201Bは、それぞれ、「現」状態又は「旧」状態を持ち得る。SVOL201A、201Bの一方が「現」状態であり、他方が「旧」状態である。図2において、SVOL201Aは「旧」状態であり、SVOL201Bは「」状態である。「旧」状態のSVOL201Aは、「現」状態のSVOL201Bより前の世代のデータと関連づけられている。
「旧」状態のSVOLの特定時点は、「現」状態のSVOLの特定時点よりも前である。例えば、「旧」状態のSVOL201Aの特定時点は、14日9時0分であり、「現」状態のSVOL201Bの特定時点は、14日10時0分である。
コアノード101Cは、「旧」の世代のデータに対応するイレージャコード(EC)を生成し、ドライブ113に格納済みである(反映済み)。イレージャコードは、PVOL202のバックアップデータである。一方、「現」の世代のデータのイレージャコードは、コアノード101Cのドライブ113への反映完了前であり、反映開始前又は反映中である。コアノード101Cは、例えば、リードソロモン符号を使用してイレージャコードを生成する。
各エッジノード、例えば、計算機ノード101Aは、PVOL202においてライト更新が発生した領域について、SVOL201A、201Bの排他的論理和XORを算出し(205)、外部ボリュームがマッピングされている内部ボリュームUVOL206に書き込む。このスナップショットデータの異なる世代間の排他的論理和XORデータを、XOR更新差分データと呼ぶ。
具体的には、計算機ノード101Aは、「旧」状態のSVOL201AにPVOL202から退避された(コピーされた)データと、「現」状態のSVOL201Bの同一アドレス領域のデータと、を取得する。計算機ノード101Aは、取得した二つのSVOL101A、101Bのデータの排他的論理和を計算して、XOR更新差分データを得る。このように、計算されるデータは、連続する世代間のXOR更新差分データである。計算機ノード101Aは、算出したXOR更新差分データをUVOL206に書き込む。
図2において、XOR更新差分データ207は、特定の期間においてUVOL206に書き込まれた、異なるアドレスの全XOR更新差分データを示す。図2において、計算機ノード101AのUVOL206には、XOR更新差分データ(D2)207が書き込まれ、計算機ノード101BのUVOL206には、XOR更新差分データ(D4)207が書き込まれている。
UVOL206に対して、コアノード101CのバッファボリュームBVOLがマッピングされている。BVOLはエッジノードの内部ボリュームとしてマッピングされており、エッジノードは、UVOL206を介して、対応するBVOLにアクセスできる。
図2において、計算機ノード101AのUVOL206に対してBVOL(B2)208Bがマッピングされ、計算機ノード101BのUVOL206に対してBVOL(B4)208Dがマッピングされている。BVOL(B1)208A、BVOL(B3)208Cも、それぞれ、他のエッジノードの内部のUVOL206にマッピングされている。エッジノードがUVOL206のあるアドレスにデータを書き込むと、当該データがコアノード101Cに転送され、BVOLの対応するアドレスに当該データが書き込まれる。
例えば、図2において、計算機ノード101AのUVOL206のXOR更新差分データ(D2)207がコアノード101Cに転送され(210A)、XOR更新差分データ(D2)209AとしてBVOL(B2)208Bに書き込まれる。同様に、計算機ノード101BのUVOL206のXOR更新差分データ(D4)207がコアノード101Cに転送され(210B)、XOR更新差分データ(D4)209BとしてBVOL(B)208Dに書き込まれる。
BVOLは、論理ボリュームでもよく、SVOLのように、仮想ボリュームであってもよい。BVOLが仮想ボリュームであることにより、コアシステムにおける物理記憶領域の効率的な利用を実現できる。図2の例において、BVOL208A〜208Dは、プール211の仮想ボリュームであり、仮想ボリュームのデータ未書き込みのページ(所定サイズのアドレス領域)に新たなライトアクセスがあると、プール211から、当該ページに対して、物理記憶領域が割り当てられる。
コアノード101Cは、BVOL208A〜208Dの一部又は全てにXOR更新差分データを書き込んだ後、対応するストライプ216のイレージャコードの更新処理(EC更新処理)を開始する。特定のBVOLの組のデータ及び当該データから生成されるイレージャコードが、ストライプを構成する。つまり、ストライプは、データ保護のためのイレージャコード(冗長コード)及びその生成の元となる複数データ要素からなる。
図2において、BVOL208A〜208Dが、ストライプ216を構成するための組を構成する。BVOL208A〜208Dそれぞれの同一アドレス領域のデータ要素が、同じストライプに含まれる。図2の例においては、四つのデータ要素から三つのイレージャコードが生成される。イレージャコードの数は1つ以上であればよい。
BVOL208A〜208Dは、それぞれ、対応するPVOL202のある期間の間のXOR更新差分データ、つまり、ある連続する世代間で、更新のあったデータ間でXORしたデータを格納する。図2の例においては、一つのPVOLに対して二つのSVOLのみが存在するが、3以上のSVOLのスナップショットペアが生成されてもよい。異なるPVOLの期間は、共通又は異なる。
後述するように、EC更新処理の後、BVOLは初期化される。したがって、BVOLの一部のアドレスにはXOR更新差分データが格納されているが、他のアドレスには未使用領域データ(ゼロデータ)が格納されている。XOR更新差分データを格納するアドレスは、BVOLによって異なる。
図2の例においては、BVOL(B2)208B及びBVOL(B4)208Dは、それぞれ、XOR更新差分データ(D2)209A及びXOR更新差分データ(D4)209Bを格納しており、後述する全ライト通知が受信済みである。BVOL(B1)208A及びBVOL(B3)208Cは、XOR更新差分データを格納していない。
図2のストライプ216において、BVOL(B1)208A及びBVOL(B3)208Cに対応するデータ要素は常にゼロデータである。BVOL(B2)208B及びBVOL(B4)208Dからのデータ要素は、これらに格納されているデータであり、ゼロデータ又はXOR更新差分データである。
このように、全ライト通知を受信していないBVOLのデータ要素をゼロデータとすることで、ストライプの一部のPVOLのXOR更新差分データのみ受信済みである場合、他のPVOLのXOR更新差分データを待つ必要がない。各エッジノードが、他のエッジノードと独立したタイミングで、XOR更新差分データをコアシステムに送信できる。
コアノード101Cは、生成されるイレージャコードそれぞれを格納するボリュームCVOL215A、215B、215Cを提供する。リードモディファイライトによって、CVOL215A、215B、215Cに格納されているイレージャコードC1、C2、C3を更新する。イレージャコードC1、C2、C3の更新時、それらを格納しているCVOL215A、215B、215Cの領域は排他ロックされ、ライトとリードが禁止される。これにより、ストライプの全てのイレージャコードが同一データ要素で同時に更新される。
EC更新において、コアノード101Cは、CVOL215A、215B、215Cから、ストライプ216の直前のイレージャコードを読み出す。コアノード101Cは、読み出したイレージャコードと、エッジシステムから受信したXOR更新差分データを含む新たなデータ要素とから、新たなイレージャコードを生成する。新たなイレージャコードにより、CVOL215A〜215C内の対応するイレージャコードが更新される。
イレージャコードは、リードモディファイライトにより、エッジシステムから受信した世代間のXOR更新差分データ要素を使用して更新される。エッジノードにおいてSVOL、本例において「旧」SVOLに退避されたデータ、つまり、PVOL202において更新されたアドレス領域のXOR更新差分データのみが、エッジシステムからコアノード101Cに転送される。これにより、データ転送量を低減できる。
イレージャコードは、世代間のXOR更新差分データにより順次更新される。したがって、更新された最新のイレージャコードは、対応するPVOLのコアシステムに送信された世代において最新世代のスナップショットデータに対応するイレージャコードである。また、対応するPVOLのエッジノードにおける「旧」SVOLの世代のスナップショットデータとゼロデータとの間のXOR更新差分データのイレージャコードである。
コアノード101Cは、イレージャコードに加え、順次受信した複数世代のスナップショットデータのバックアップを保持してもよい。図2において、コアノード101Cは、BVOL(B4)208D上のXOR更新差分データ209Bを、プール213に世代毎に保存する。
プール213は、スナップショットプール208と同様に、各世代間のXOR更新差分データ212のみ保存する。コアノード101Cは、世代間のXOR更新差分データ212をシーケンシャルに追記する。本データは、あまり参照されないバックアップデータのため、テープデバイス214に保存してもよい。
エッジノードの障害発生時、コアノード101Cは、CVOLのイレージャコード及び同ストライプの正常エッジノードから取得したSVOLデータから、PVOL202のコンシステントバックアップデータのイメージRVOL218を生成する。コアノード101Cは、保持するApp/VM220を利用して、障害が発生したエッジノードがあたかもAliveかのように、PVOLデータの処理、例えば、ストリーミング分析処理を実行してもよい。障害時の動作については後述する。
エッジノードのApp/VM203は、エッジノードのPVOL202の実データをコアノード101Cに送信し、コアノード101Cは、実データから、XOR更新差分を取得するためのスナップショット(SVOL201A、201B)を、取得してもよい。エッジノードがスナップショットを取得することで負荷を分散することができる一方、コアノードがスナップショットを取得することでエッジノードの負荷を低減できる。
コアノード101Cは、App/VM219を利用してストリーミング分析処理などを実行した後、イレージャコードを更新し、BVOLのデータを廃棄する。これにより、ストレージシステムにおける分析とバックアップ容量削減の両立が可能となる。
ストライプは、異なるエッジノードからのデータ要素を含む。これにより、エッジノードの障害時にデータをイレージャコードと正常なエッジノードのデータから、データを復元できる。ストライプのデータ要素は、全て異なるエッジノードのデータであってもよく、ストライプは、同一エッジノードのデータ要を含んでもよい。同一エッジノードのデータ要素数は、当該エッジノードが故障した場合に、他のデータ要素及びイレージャコードからデータを復元できる範囲である。
図3A及び図3Bは、拠点分散型ストレージシステムのメモリに格納されている管理情報の例を示す。それぞれのプログラム及びテーブルは、メモリ118に格納されている。これらのデータはドライブ113に格納されてもよいし、その他のプロセッサ119から参照可能な記憶領域に格納されていてもよい。メモリ118に格納されているプログラムは、エッジ側、コア側それぞれの計算機ノードのプロセッサ(119)に読み込まれることによって、プロセッサ119に図5以降に開示するフローを実行させることができる。
図3Aに示すように、エッジノードのメモリ118は、ボリューム構成テーブル301、ペア管理テーブル302、及びページマッピングテーブル303を格納する。エッジノードのメモリ118は、さらに、エッジI/O処理プログラム304及びエッジバックアップ処理プログラム305を格納する。
図3Bに示すように、コアノードのメモリ118は、ボリューム構成テーブル301、ページマッピングテーブル303、及び拠点管理テーブル309を格納する。コアノードのメモリ118は、さらに、コアI/O処理プログラム306、コアEC更新プログラム307、及びコアリストア処理プログラム308を格納する。
ボリューム構成テーブル301は、ボリュームそれぞれの構成の情報(ボリュームの種別、状態など)を表す。ペア管理テーブル302は、ペアの状態を表す。ページマッピングテーブル303は、仮想ボリューム上の記憶領域と対応する物理記憶領域との間の対応関係を管理する。拠点管理テーブル309は、コアノードにおいて、拠点(エッジノード)それぞれの構成を管理する。
エッジI/O処理プログラム304は、エッジノードのPVOLに対するI/O処理を実行する。エッジバックアップ処理プログラム305は、エッジノードが保持する二つのSVOL及びコアシステムにXOR更新差分データを転送するためのUVOLを用いて、バックアップ処理を実行する。
コアI/O処理プログラム306は、エッジノードのUVOLにマッピングされているBVOLへのアクセスをハンドリングする。上述のように、BVOLはUVOLの実体である。コアEC更新プログラム307は、コアノードにおいてイレージャコードを更新する。コアリストア処理プログラム308は、エッジノードにおいて障害が発生した場合やネットワーク障害などにより、コアノードからエッジノードにアクセス不能になった場合、コアノードにおいてリストア処理を実行する。
以下において、具体的に、拠点分散型ストレージシステムが保持する情報を示すテーブルの構成例を説明する。各テーブルにおいて、一部のエントリのみが示されている。各テーブルにおいて、空白のセルは、データの記載が省略されたセルである。各計算機ノードは、必要なエントリの情報を保持し、一つの計算機ノードにおける更新は、関連する他の計算機ノードに通知される。
図4Aは、ボリュームの構成を管理するボリューム構成テーブル301の例を示す。ボリューム構成テーブル301は、VOL#欄311、VOL種別欄312、状態欄313、ペアVOL#欄314、ペア#欄315、及びポート欄316を有する。
VOL#欄311は、システム内のボリュームを一意に識別する識別子を示す。VOL種別欄312は、ボリュームそれぞれの種別を示す。例えば、PVOL、SVOL、UVOL、BVOL、CVOL、RVOL等の種別が存在する。状態欄313は、ボリュームの状態を示す。たとえば、SVOLが「現」状態か「旧」状態かを示し、また、BVOLの状態が、全ライト済みか否かを示す。
ペアVOL#欄314は、PVOLとスナップショットペアを構成するSVOLの識別子(VOL#)を示す。ペア#欄315は、PVOLのスナップショットペアの識別子(ペア#)を示す。ペア#は、ペア管理テーブル302の参照として使用される。ポート欄316は、ボリュームのアクセスポートの識別子を示す。
図4Bは、ペアの状態を管理するペア管理テーブル302の例を示す。ペア管理テーブル302は、ペア#欄321、ペア状態欄322、及び退避済みビットマップ欄323を示す。ペア#欄321は、ペア#欄315と同様に、スナップショットペアの識別子を示す。
ペア状態欄322は、スナップショットペアの状態を示す。本開示において、スナップショットペアの複数の状態が定義されて、それらは、「Pair」状態及び「Split」状態を含む。
「Pair」状態は、スナップショットペアを作成した直後の状態であり、PVOLとSVOLとの間でデータが同期している。つまり、PVOLが更新されても、PVOLからSVOLへスナップショットデータ(更新前データ)はコピーされない。PVOLから読み出されるデータとSVOLから読みされるデータは同一である。SVOLへリードアクセスは、SVOLを介して、PVOLからデータを読み出す。
「Split」状態は、エッジノードのアプリケーションやユーザからの静止化指示(分割指示)により、「Pair」状態から変化する状態である。PVOLのデータは更新された最新データであるのに対して、SVOLは、指示時点の静止化されたイメージ(スナップショットデータ)である。指示後にPVOL内のあるアドレス領域が初めて更新される場合、更新前に、当該アドレス領域の更新前データがSVOLにコピーされる。
分割指示は、任意のタイミングで発行してよい。例えば、アプリケーションのデータ整合性が取れたタイミングで、アプリケーションが分割指示を発行してもよいし、エッジノードが適当なタイミング(1時間に1回など)で分割指示を発行してもよい。
退避済みビットマップ欄323は、スナップショットペアの退避済みビットマップを示す。退避済みビットマップは、PVOLの所定サイズのアドレス領域それぞれのデータが、SVOLに退避済みか否かを示す。退避済みビットマップの各ビットは、対応する所定サイズのアドレス領域(例えば数百KB)のスナップショットデータが、PVOLからSVOLに退避済み(コピー済み)であるか否かを示す。
図4Cは、プール(SVOLやBVOLのプール)のページマッピングの情報を管理するページマッピングテーブル303の例を示す。PVOLやSVOLなどの外部に提供する仮想的な記憶空間と、それに対応する実の記憶空間の組(対応関係)を示す。仮想的な記憶空間は、仮想VOL#とLBA#の組で特定される。実の記憶空間は、論理VOL#とLBA#の組で特定される。仮想的な記憶空間に論理的な記憶空間が未割り当ての場合、テーブル内のセルは、論理側の値が無い状態「−」を示す。
図4Dは、拠点管理テーブル309の例を示す。拠点管理テーブル309は、拠点番号欄391、拠点状態欄392、及びボリューム構成情報への参照欄393を有する。拠点番号欄391は、システム内の拠点の識別子である、拠点番号を示す。
拠点状態欄392は、拠点の状態を示す。例えば、「Normal」は拠点が正常な状態であることを示す。「Disconnect」は、ネットワークの障害などによりアクセス不可となっている状態であることを示す。「Failure」は、拠点が災害などによりデータを失った状態であることを示す。拠点状態に基づいて、後に述べるデータの復元を実施するか否かが判定される。
ボリューム構成情報への参照欄393は、拠点についてのボリューム構成テーブルへの参照を示す。ボリューム構成情報への参照欄393は、さらに、対象ボリュームのサイズ、個数などを示す。
図5は、エッジI/O処理(ライト)のフローチャート例を示す。本処理は、エッジシステム(エッジノード)によるPVOLに対するライト処理である。本処理は、PVOLの更新ライト時に、図2を参照して説明した2種類のSVOLのうち、「Split」状態のスナップショットペアのSVOLに対して、旧データ(更新前データ)を退避する。
PVOLへのライト要求を受信すると、エッジI/O処理プログラム304は、ボリューム構成テーブル301のペア#欄315から、対象PVOLの未選択のペア#を選択する(S501)。図2の例においては、二つのスナップショットペアの一方である。次に、エッジI/O処理プログラム304は、ペア管理テーブル302のペア状態欄322を参照し、選択したペア#のペア状態が「Split」状態か否か判定する(ステップ502)。
ペア状態が「Split」状態ではない場合(ペア状態が「Pair」状態の場合)(S502:NO)、エッジI/O処理プログラム304は、当該PVOLの全てのスナップショットペアについて、ステップ501〜505を実行したか判定する(ステップ506)。未実行のスナップショットペアが残っていない場合(ステップ506:NO)、エッジI/O処理プログラム304は、PVOLに新データを書き込み(ステップ507)、本処理を終了する。
ペア状態が「Split」状態の場合(S502:YES)、エッジI/O処理プログラム304は、ペア管理テーブル302を参照し、退避済みビットマップ欄323から、当該ペアの退避済みビットマップを取得する。エッジI/O処理プログラム304は、取得した退避済みビットマップにおいて、更新された領域のデータが退避済みかどうかチェックする(ステップ503)。
データが退避済みの場合(ステップ503:YES)、エッジI/O処理プログラム304は、ステップ506に進む。データが未退避の場合(ステップ503:NO)、エッジI/O処理プログラム304は、SVOLに旧データを退避する(ステップ504)。具体的には、エッジI/O処理プログラム304は、SVOLに対してプールの領域を割り当て(ページマッピングテーブル303を更新し)、割り当てたSVOLの領域にPVOLの更新前の旧データをコピーする。
その後、エッジI/O処理プログラム304は、ペア管理テーブル302において、当該スナップショットペアの退避済みビットマップに、当該データが退避済みとマークする(ステップ50)。具体的には、エッジI/O処理プログラム304は、ステップ503で読み出した退避済みビットマップにおいて、対応するビットの値を0から1に変更し、退避済みビットマップ欄323に書き込む。その後、エッジI/O処理プログラム304は、ステップ506に進む。
本処理により、スナップショットデータをSVOLに退避し、差分が発生したアドレス領域をペア管理テーブル302において管理することができる。
図6は、エッジI/O処理(リード)ののフローチャート例を示す。本処理は、エッジシステム(エッジノード)におけるPVOL及びSVOLからのリード処理である。以下においては、図2のスナップショットペア構成を参照する。
エッジI/O処理プログラム304は、アクセス先のVOL#及びアドレス(LBA)を含むリード命令を受信する。エッジI/O処理プログラム304は、ボリューム構成テーブル301を参照し、リード命令のアクセス先が、PVOL202であるかSVOL(SVOL201A又はSVOL201B)であるか判定する(ステップ601)。
アクセス先がSVOLの場合(ステップ601:YES)、エッジI/O処理プログラム304は、SVOLにおけるアクセス先アドレスのデータが、SVOL(プール208)に退避済みであるか否か判定する(ステップ602)。
具体的には、エッジI/O処理プログラム304は、ボリューム構成テーブル301を参照し、当該SVOLが含まれるスナップショットペアのペア#を、ペア#欄315から取得する。エッジI/O処理プログラム304は、ペア管理テーブル302を参照し、当該ペア#の退避済みビットマップを、退避済みビットマップ欄323から取得する。
さらに、エッジI/O処理プログラム304は、取得した退避済みビットマップから、アクセス先アドレスのデータが、SVOL(プール208)退避済みであるか否か判定する。PVOL202においてデータが更新されている場合、更新前データはSVOL(プール208)に退避されている。
アクセス先アドレスのデータが退避済みである場合(ステップ602:YES)、エッジI/O処理プログラム304は、SVOLからアクセス先データを読み出す(ステップ603)。具体的には、エッジI/O処理プログラム304は、SVOLが属するプール208からアクセス先データを取得する。
アクセス先アドレスのデータが退避済みではない場合(ステップ602:NO)、PVOL202においてアクセス先アドレスのデータが更新されていないため、エッジI/O処理プログラム304は、PVOL202からアクセス先データを読み出す(ステップ604)。アクセス先がPVOL202の場合(ステップ601:NO)も、エッジI/O処理プログラム304は、PVOL202からアクセス先データを読み出す(ステップ604)。
以上の処理により、ホストは、SVOLを参照することで、特定時点(分割時点)の古い静止化されたイメージ(スナップショット)を取得でき、PVOLを参照することで、最新のデータを取得できる。
図7は、エッジバックアップ処理(非同期転送)のフローチャート例を示す。本処理は、エッジシステム(エッジノード)による、SVOL間のXOR更新差分データの取得と、そのXOR更新差分データのコアシステムへの転送を含む。本処理は、PVOLのデータ更新とは非同期に実行される。これにより、ホストへの応答の遅れを避ける。本処理を開始するトリガは特に限定されない。例えば、本処理は、アプリケーション又はユーザからの指示により、所定期間の経過(定期的実行)毎、又は、PVOLの更新データ量が規定値に達する毎に実行される。
以下においては、図2のスナップショットペア構成を参照する。本処理開始前において、旧SVOL201Aのスナップショットペア204Aは「Split」状態であり、「現」SVOL201Bのスナップショットペア204Bは「Pair」状態である。例えば、本処理開始前に、旧SVOL201Aのデータは9時0分のスナップショットであり、本処理の開始時刻が、10時0分である。
エッジバックアップ処理プログラム305は、「現」SVOL201Bのペア状態を「Pair」状態から「Split」状態に変更する(ステップ701)。これにより、「現」SVOL201Bは、現在時刻のスナップショットボリュームとなる。例えば、「現」SVOL201Bのデータは、10時0分のスナップショットである。
エッジバックアップ処理プログラム305は、ペア管理テーブル302のペア状態欄322において、当該スナップショットペアの値を更新する。具体的には、エッジバックアップ処理プログラム305は、ボリューム構成テーブル301を参照して、ペア#欄315から「現」SVOL201Bのペア#を取得し、ペア状態欄322において当該ペア#のフィールドを更新する。
次に、エッジバックアップ処理プログラム305は、「旧」SVOL201Aから、退避済みビットマップの1ビットに対応する未選択の領域(アドレス領域)を選択する(ステップ702)。なお、1ビットに対応する領域の一部領域を単位として選択してもよい。
エッジバックアップ処理プログラム305は、選択した領域が、退避済みかどうかをチェックする(ステップ703)。具体的には、エッジバックアップ処理プログラム305は、ボリューム構成テーブル301を参照して、ペア#欄315から「旧」SVOL201Aのペア#を取得する。
さらに、エッジバックアップ処理プログラム305は、ペア管理テーブル302を参照して、当該ペア#の退避済みビットマップを、退避済みビットマップ欄323から取得する。エッジバックアップ処理プログラム305は、退避済みビットマップから未選択のビットを選択し、選択したビットが1であれば、対応する領域のデータが退避済みであると判定し、選択したビットが0であれば、対応する領域のデータが未退避であると判定する。
選択した領域のデータが退避済みの場合(ステップ703:YES)、当該領域は、「旧」SVOL201Aにデータが退避された領域である。例えば、9時0分から10時0分までにPVOL202において更新された領域である。
エッジバックアップ処理プログラム305は、「現」SVOL201Bにおける選択したアドレス領域(LBA領域)のデータと、「旧」SVOL201Aにおける同一アドレス領域のデータとの、排他的論理和XORを算出する。これにより、当該アドレス領域のXOR更新差分データが取得される(ステップ704)。例えば、10時0分のスナップショットと9時00分のスナップショットとの間のXOR更新差分データが取得される。
選択される「旧」SVOL201Aのデータは退避済みデータであるため、プール208から取得される。「現」SVOL201BのデータにおいてPVOL202と一致しているデータは、PVOL202から取得される。「現」SVOL201Bに退避済みのデータは、プール208から取得される。
次に、エッジバックアップ処理プログラム305は、生成したXOR更新差分データを、UVOL206にライトする(ステップ705)。UVOL206にライトされたデータは、UVOL206を介して、コアシステム(コアノード101C)に転送される。退避済みデータのXOR更新差分データのみを生成、転送することで、データ転送量及びシステムの処理負荷を低減する。なお、データ転送は、上記の単純なライトによる方法だけでなく、たとえば(特許文献1)に記載の技術や、その他一般的なリモートコピーで用いられる方法を使ってもよい。
エッジバックアップ処理プログラム305は、PVOL202に対応する「旧」SVOL201Aの全ての領域についてステップ702〜ステップ705を実行したか判定する(ステップ706)。「旧」SVOL201Aの全ての領域についてステップ702〜ステップ705を実行した場合(ステップ706:YES)、エッジバックアップ処理プログラム305は、コアシステム(コアノード101C)に、全ライト済みを通知する(ステップ707)。
この通知は、全てのXOR更新差分データがコアシステムのBVOLに格納されたことを示し、以降のEC更新処理を実行可能とする。これにより、途中で回線が切れる、又は、エッジデシステムにおいて障害が発生しても、コアシステムにおいて、コンシステントなXOR更新差分データによるイレージャコードを生成できる。
次に、エッジバックアップ処理プログラム305は、「旧」SVOL201Aのスナップショットペア204Aを、「Split」状態から「Pair」状態に変更する(ステップ708)。エッジバックアップ処理プログラム305は、ペア管理テーブル302のペア状態欄322において、当該スナップショットペアの値を更新する。これにより、「旧」SVOL201Aの差分データ(退避されているデータ)は、リセットされ、「旧」SVOL201Aは、PVOL202と同期している。
エッジバックアップ処理プログラム305は、さらに、二つのSVOLの状態を入れ替える(ステップ709)。つまり、エッジバックアップ処理プログラム305は、SVOL201Aの状態を「旧」から「現」に変更し、SVOL201Bの状態を「現」から「旧」に変更する。エッジバックアップ処理プログラム305は、ボリューム構成テーブル301の状態欄313の該当フィールドの値を変更する。
以降、「現」SVOL201Aのペア状態は「Pair」状態に維持され、「旧」SVOL201Bのペア状態は、「Split」状態に維持される。例えば、「旧」SVOL201Bにおいて10時0分のスナップショットが維持される。エッジバックアップ処理(非同期転送)は、任意時刻に再実行可能である。
本例は、コアシステムへのデータ転送時にUVOL206を利用しており、SVOLとUVOL、さらに、UVOLとBVOLのLBA空間が1:1である。つまり、XOR更新差分データのSVOLにおけるアドレス領域は、UVOLを介して、BVOLにおけるアドレス領域と一致する。
エッジノードは、XOR更新差分の実データと共に、そのアドレス情報を含むメタデータを、コアシステムに転送してもよい。3以上のSVOLが存在する場合、例えば、一つの「現」SVOLと、複数世代の「Split」状態の「旧」SVOLが存在する。複数世代の「Split」状態のSVOLのうちの最新世代のSVOLと、「現」SVOLとの間のXOR更新差分データが転送される。その後、「現」SVOLが「旧」状態に変更され、最も古い世代の「旧」SVOLが、「Pair」状態かつ「現」状態に変更される。
図8は、コアライト処理のフローチャート例を示す。本処理は、エッジシステムに対してUVOLとして接続されているBVOLに対する、コアシステムによるデータのライト処理である。BVOLを、仮想ボリュームで構成することで、コアシステムにおける記憶領域の消費を低減できる。以下の説明において、BVOLが仮想ボリュームであるとする。以下においては、図2の構成を参照する。
コアI/O処理プログラム306は、ページマッピングテーブル303を参照し、BVOLのアクセス先アドレス領域(仮想VOLページ)に対して、物理記憶領域(物理ページ)が未割り当てか判定する(ステップ801)。
物理ページが未割り当ての場合(ステップ801:YES)、コアI/O処理プログラム306は、プール211に新たなデータを格納するための空き領域、つまり、割り当て可能な物理ページが存在するか確認する(ステップ802)。割り当て可能な物理ページが存在する場合(ステップ802:YES)、ページマッピングテーブル303を更新することで物理ページを割り当てる(ステップ803)。その後、コアI/O処理プログラム306は、BVOLのアクセス先領域に、エッジシステムから受信した新データをライトする(ステップ804)。
プール211の空き領域が枯渇し、プール211に新たなデータを格納するための空き領域が存在しない場合(ステップ802:NO)、コアEC更新プログラム307は、コアI/O処理プログラム306からの要求に応答して、未実行のEC更新処理を実行し、プール211における空き領域を生成する(ステップ805)。コアI/O処理プログラム306は、新たな空き領域の生成まで、エッジシステムにXOR更新差分データの転送の一時停止を指示する。
図9は、コアEC更新処理のフローチャート例を示す。本処理は、コアシステムがイレージャコードを更新する処理である。本処理は、図7で説明したエッジバックアップ処理が完了した後に実行される。つまり、コアシステムは、全ライト済み通知を受信したBVOLのデータが含まれるストライプのイレージャコードを更新する。
以下の説明において、一つのストライプにおける複数のBVOLに対するエッジバックアップ処理が完了し、全ライト済み通知が受信済みである場合、それら複数のBVOLのXOR更新差分データを使用して、イレージャコードを更新する。
ストライプにおけるBVOLへのエッジノードからの書き込みは同期していてもよく(各世代のスナップショットの時刻が共通)、同期していなくてもよい。コアシステムは、ストライプにおける規定数のBVOLの全ライト済み通知を受信するまで、イレージャコードの更新を待ってもよい。コアシステムは、エッジバックアップ処理が完了したBVOL毎に、本処理を実行してもよい。つまり、ストライプにおける一つのデータ要素のXOR更新差分データのみを使用し、他のデータ要素をゼロデータとして、イレージャコードを更新してもよい。
図9を参照して、コアEC更新プログラム307は、全ライト済み通知を受領した後(ステップ901:YES)、全ライト済み通知を受けたBVOLの各領域について、以降のステップを実行する。なお、コアノード101Cは、同一ストライプに含まれるPVOL、SVOL、BVOL及びCVOLの間の関係を管理する、不図示の管理情報を保持する。
以下に説明においては、一つのストライプに含まれる複数のBVOLに対する全ライト済み通知を受領しているものとする。例えば、図2の例において、ストライプに属するBVOL208A〜208Dのうち、BVOL(B2)208B及びBVOL(B4)208Dに対して、全ライト済み通知が受信されている。
コアEC更新プログラム307は、BVOLのアドレス空間における未選択のアドレス領域を選択する(ステップ902)。コアEC更新プログラム307は、ページマッピングテーブル303を参照して、対象BVOLそれぞれにおいて、当該アドレス領域に物理記憶領域が割り当て済みか否か、判定する(ステップ903)。
後述するように、本処理後にBVOLへの割り当て領域は開放されるため(ステップ910参照)、物理記憶領域が割り当てられるアドレス領域のみが、エッジシステムから転送されたXOR更新差分データを格納している。また、BVOLによって、XOR更新差分データを格納しているアドレス領域は異なる。
いずれかのBVOLにおいて、当該アドレス領域に物理記憶領域が割り当て済みの場合(ステップ903:YES)、コアEC更新プログラム307は、当該ストライプのイレージャコードを格納しているCVOLそれぞれにおいて、当該ストライプのイレージャコードを格納しているアドレス領域を排他ロックする(ステップ904)。これにより、当該アドレス領域への書き込みが禁止され、イレージャコードのコンシステンシを維持する。排他制御はコアシステム内で実行され、エッジシステムから独立しているため、ネットワークに依存せず高速である。
次に、コアEC更新プログラム307は、イレージャコードを更新する(ステップ905)。具体的には、コアEC更新プログラム307は、当該アドレス領域に物理記憶領域が割り当て済みのBVOLそれぞれから、XOR更新差分データを読み出す。他のBVOLのデータ要素は、ゼロデータである。
さらに、コアEC更新プログラム307は、当該アドレス領域に対応するイレージャコードを、CVOLそれぞれから読み出す。コアEC更新プログラム307は、読み出したXOR更新差分データを使用して、読み出したイレージャコードを更新し、CVOLそれぞれに書き戻す。
XOR更新差分データによってイレージャコードを更新することによって、イレージャコードにおける当該ボリュームのスナップショットデータを、前世代のスナップショットデータから、当該世代のスナップショットデータに変更する。
次に、コアEC更新プログラム307は、CVOLにおいて取得した排他ロックを解除する(ステップ906)。コアEC更新プログラム307は、BVOLのアドレス空間の全アドレス領域について、ステップ902〜906を実行したか判定する(ステップ907)。全てのアドレス領域についてステップ902〜906を実行されている場合(ステップ907:YES)、コアEC更新プログラム307は、対象のBVOL(対応するエッジ側のPVOL)それぞれが、多世代バックアップの対象であるかを判定する(ステップ908)。
BVOLが多世代バックアップの対象である場合(ステップ908:YES)、コアEC更新プログラム307は、当該BVOLのスナップショット(静止化したイメージ)を作成する(ステップ909)。このように、順次受信された多世代のXOR更新差分データが、保存される。BVOLが多世代バックアップの対象であるか否かの情報は、例えば、ボリューム構成テーブル301に保持されていてもよい。
多世代バックアップを構成するスナップショットは、それぞれ、異なるアドレス領域のXOR更新差分データ要素の集合であり、復元時点を指定されたリストア時に使用される。当該スナップショット(のXOR更新差分データ)は、通常動作において使用されないため、テープなどのアーカイブメディアに圧縮してバックアップしてもよい。BVOLが多世代バックアップの対象ではない場合(ステップ908:NO)、ステップ909はスキップされる。
次に、コアEC更新プログラム307は、BVOLの全ページ、つまり、BVOLに割り当てられている全物理記憶領域を、開放する(ステップ910)。コアEC更新プログラム307は、ページマッピングテーブル303において当該BVOLのデータを初期化する(未割り当て状態に戻す)ことによって、BVOLの全ページを解放する。
図10は、リストア処理のフローチャート例を示す。本処理は、例えば、エッジノードにおいて発生した障害、又は、ネットワークにおいて発生した障害により、コアシステムがエッジノード又はそのボリュームにアクセス不能になった場合、コアシステムにより実行される。障害発生は、拠点管理テーブル309により示される。
以下の説明においては、アクセス不能となったエッジノードにおける一つのPVOLを復元する。具体的には、当該PVOLとスナップショットペアを構成するSVOLのデータ、つまり、PVOLの特定時点のスナップショットを復元する。
コアリストア処理プログラム308は、アクセス不能となったエッジノードのPVOLが含まれるストライプから、他のエッジノードのPVOLを選択する(S1001)。選択するPVOL(エッジノード)の数は、ストライプに含まれるデータ要素の数から、イレージャコードの数を引いた数である。
コアリストア処理プログラム308は、選択したPVOLそれぞれとスナップショットペアを構成する「旧」SVOLをマウントする(S1002)。例えば、コアリストア処理プログラム308は、UVOLのように、マッピング技術を使用して「旧」SVOLマウントすることで、エッジノードの「旧」SVOLをコア側から参照可能にする。マウントされた「旧」SVOLのデータは、データ復元のための、復元元データである。
コアリストア処理プログラム308は、復元対象の「旧」SVOL(PVOL)のアドレス空間における未選択のアドレス領域を選択する(ステップ1003)。コアリストア処理プログラム308は、マウントした復元元の「旧」SVOLそれぞれから、選択したアドレス領域のデータ(データ要素)を読み出す(ステップ1004)。
コアリストア処理プログラム308は、当該ストライプのイレージャコードを格納しているCVOLの領域を、排他ロックする(ステップ1005)。BVOLのデータ要素が、イレージャコードにすでに反映されている場合、コアリストア処理プログラム308は、当該BVOLのデータ要素と、対応する「旧」SVOLのデータ要素と、の排他的論理和を算出する(ステップ1006)。
BVOLのデータ要素が、イレージャコードにすでに反映されていることは、対応するPVOLのイレージャコードが更新中であり、当該アドレス領域の「現」SVOLと「旧」SVOLのXOR更新差分データにより、既にイレージャコードが更新されていることを意味する。
したがって、コアリストア処理プログラム308は、BVOLのデータ要素と「旧」SVOLのデータ要素との排他的論理和を算出ことで、「現」SVOLのデータ要素を生成する。算出された「現」SVOLのデータ要素が、復元対象のSVOLを復元するための、復元元データ要素である。このように、復元元データ要素は、それぞれ、「旧」SVOLのデータ要素又は「現」SVOLのデータ要素である。
コアリストア処理プログラム308は、イレージャコードと復元元データ要素から、データを復元する(ステップ1007)。具体的には、コアリストア処理プログラム308は、CVOLから対応するイレージャコードを読み出す。コアリストア処理プログラム308は、読み出したイレージャコードと、復元元データ要素とから、所定のアルゴリズム、例えば、リードソロモン符号を利用して、データを復元する。その後、コアリストア処理プログラム308は、CVOLの排他ロックを解除する(ステップ1008)。
コアリストア処理プログラム308は、不図示の管理情報を参照し、復元対象のSVOLが多世代バックアップの対象か否かを判定する(ステップ1009)。当該管理情報は、ボリューム構成テーブル301に含まれていてもよい。
復元対象のSVOLが多世代バックアップの対象であれば(ステップ1009:YES)、多世代バックアップのXOR更新差分データのスナップショットを読み出し、予め指定されている又はユーザに指定された世代までのXOR更新差分データを生成する(ステップ1010)。
コアリストア処理プログラム308は、復元データと、生成した指定世代までのXOR更新差分データの排他的論理和を順次計算し、指定世代データを生成する(ステップ1011)。これにより、複数世代のデータ復元可能である。復元対象のSVOLが多世代バックアップの対象ではない場合(ステップ1009:NO)、ステップ1010、1011はスキップされる。
コアリストア処理プログラム308は、復元対象ボリュームの全アドレス領域について復元を実行したかを判定する(ステップ1012)。判定結果がNOの場合、コアリストア処理プログラム308は、ステップ1003に戻る。判定結果がYESの場合、コアリストア処理プログラム308は、マウントしていたエッジノードの「旧」SVOLをアンマウントし(ステップ1013)、本処理を終了する。本処理により、コアシステムにおいてエッジノードのボリュームを適切に復元できる。
本実施形態のデータ保護及び配置技術により、バックアップ側のデータセンタ(コアデータセンタ)が必要とする記憶容量を大幅に低減でき、システム構築にかかるストレージコストを低減できる。上記処理にプリフェッチを組み合わせることにより効率的なデータアクセスを実現してもよい。
<実施形態2>
図11は、実施形態2に係る、計算機システムの論理構成例を示す。本計算機システムは、エッジシステムにおいてドメインを有する。図11において、エッジシステムにおける複数のドメインのうち、二つのドメイン1101A、1101Bが示されている。例えば、一つのドメイン内の計算機ノードは、一つのローカルネットワーク内の計算機ノードである。
本実施形態は、複数の保護レイヤを有する。具体的には、コアノード101Cは、それぞれ保護レイヤに対応する2種類のストライプを生成する。第1保護レイヤのストライプは、一つのドメイン内の計算機ノードのデータ要素と、それらのイレージャコードとからなる。第2保護レイヤのストライプは、異なるドメイン内の計算機ノードのデータ要素と、それらのイレージャコードとからなる。各データ要素は、これら二つの保護レイヤのストライプに含まれる。2以上のレイヤを設定することもできる。
図11において、ストライプ1102は、同一ドメインのデータ要素及びそれらのイレージャコードからなる第1保護レイヤのストライプである。ストライプ1103は、異なるドメインのデータ要素及びそれらのイレージャコードからなる第2保護レイヤのストライプである。データ要素D2は、ストライプ1102と1103の双方に含まれる。2種類のストライプのイレージャコードは、それぞれ異なるCVOLに格納される。
上記のようにドメイン内のストライプ1102とドメイン間のストライプ1103を持つことにより、1のデータを2以上の手段で保護できシステムの可用性を向上することができる。また、エッジノードの故障時にドメイン内のイレージャコードから復元することができるため、ドメイン間のネットワーク転送量を削減することができ、効率的なデータ復元を実現できる。また、ローカルネットワーク上の処理装置で復元し、結果をコアシステムに送信することで、コアシステムの帯域効率を向上させてもよい。
<実施形態3>
図12は、実施形態3に係る、計算機システムにおける論理構成例を示す。図10を参照して説明したリストア処理を、分散RAID技術と組み合わせることで、より効率的なリストア処理を実現できる。分散RAIDは、ストライプを構成する要素数(データ要素及びイレージャコードの総数)よりも多くの計算機ノードにストライプを分散させる。図12において、同一種類の一部の要素に対してのみ、参照符号が示されている。
図12が示す例は、九つのエッジノード1201と、一つのコアノード1210を含む。各エッジノード1201は、UVOL1203を保持している。実施形態1で説明したように、各エッジノード1201は、UVOL1203に対応する不図示のPVOL及び二つのSVOLを保持している。コアノード1210は、UVOL1203それぞれにマッピングされているBVOL1213を保持している。
実施形態1で説明したように、コアノード1210は、九つのエッジノード1201のバックアップデータとして、イレージャコードを保持する。図12の例において、ストライプ1211は、四つのデータ要素と、三つのイレージャコードから構成されている。コアノード1210は、九つのエッジノード1201のうちの四つのエッジノード1201から受信したデータを使用して、一つのストライプのイレージャコードを生成する。
本実施形態は、分散RAID技術の利用により、ストライプを構成するエッジノードの複数の組み合わせを定義している。以下においてこの組み合わせを、ストライプタイプと呼ぶ。ストライプタイプは、サイクル#とエッジノードのエッジ#の組み合わせにより決定される。サイクル#は、BVOLのアドレス(LBA)を規定のサイクル数で割った剰余である。したがって、アドレス領域は、繰り返される周期領域で構成され、各周期領域の連続する領域(アドレス)に連続するサイクル#が与えられる。
ストライプタイプマッピングテーブル1217は、サイクル#とエッジ#をインデックスとする、ストライプタイプを定義する。つまり、ストライプタイプマッピングテーブル1217は、サイクル#及びエッジ#の組と、ストライプタイプと、の間の対応関係を示す。
図12の例において、九つのストライプタイプA〜Iが定義されている。各ストライプタイプは、サイクル#とエッジ#の複数の組に関連付けられており、図12の例において、四つの組に関連付けられている。関連付けられている全ての組のサイクル#とエッジ#は異なる。各サイクル#と全エッジ#それぞれの組み合わせは、異なるストライプタイプを示す。なお、ストライプタイプは、本例に限定されず、任意の予め定められた規則に従って決定することができる。
例えば、コアノード1210は、周期領域毎に、全ライト済みのBVOLからデータを読み出し、ストライプタイプマッピングテーブル1217に従って、データ要素それぞれのアドレスタイプを決定する。コアノード1210は、同一アドレスタイプのデータ要素を同一ストライプに含め、イレージャコードを更新する。
例えば、図12の例において、BVOLB2と、BVOLB3が全ライト済みであるとする。コアノード1210は、BVOLB2におけるストライプタイプAのデータ要素と、BVOLB3におけるストライプタイプAのデータ要素を使用して、イレージャコードを更新する。
以上のように、1つのエッジノードのデータが複数のストライプタイプに分類され、各ストライプタイプが異なるエッジノードの組のデータを含む。リストアのためのデータがより多くのストレージノードに分散しているため、リストアのための1エッジノードあたりのデータ参照量を削減することができる。これにより、エッジノードの負荷を低減、又は分散処理によるリストアの高速化を実現できる。図12の例において、エッジノード当たりのデータ参照量は、通常のRAIDと比べて4分の1である。
冗長度が2以上(イレージャコードが2以上)である場合に、優先度が高いデータを他のデータよりも先に復元することで、信頼性を向上させることができる。ストライプタイプマッピングテーブル1218は、エッジ#0と1が故障したときの復元例を示す。
ストライプタイプI及びHのデータは、二つのエッジノードの双方で失われている。したがって、他のストライプタイプよりも先行して、ストライプタイプI及びHのデータを高優先度で高速にリストアする。その後、ストライプタイプA、B、E、Gなどのデータを復元する。
また、予測不能な障害ではないケース、例えば、計画的な停止や、障害の予兆を検出したケースにおいて、事前にリストア処理を実行しておくことで、信頼性を向上させることができる。
上記複数の実施形態において説明したストレージ機能は、他のストレージ機能と組み合わせて効率化することができる。例えば、圧縮をエッジ側で実施することで、データの転送量を削減し、データ保管のためのストレージ容量を削減することができる。また、暗号化などをエッジ側で実施することで、セキュアにデータを転送し、かつセキュアにデータを保管することができる。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、HDD、SSD等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。

Claims (13)

  1. 分散ストレージシステムであって、
    複数のエッジノードを含むエッジシステムと、
    前記エッジシステムとネットワークを介して接続され、前記エッジシステムのバックアップデータを保持するコアシステムと、を含み、
    前記複数のエッジノードのそれぞれは、
    ボリュームをホストに提供し、
    前記ボリュームの第1世代のスナップショットと、前記第1世代よりも古い旧世代のスナップショットと、の間のXOR更新差分データを生成し、
    前記生成したXOR更新差分データを前記コアシステムに送信し、
    前記コアシステムは、
    前記バックアップデータとして、前記複数のエッジノードからのXOR更新差分データに基づき生成されたイレージャコードを保持し、
    前記複数のエッジノードから受信したXOR更新差分データに基づいて、前記イレージャコードを更新し、
    前記複数のエッジノードのそれぞれは、前記ボリュームへのライト更新と非同期に、前記XOR更新差分データを生成して前記コアシステムに送信する、分散ストレージシステム。
  2. 請求項1に記載の分散ストレージシステムであって、
    前記コアシステムは、
    前記イレージャコードを格納する1以上のボリュームを保持し、
    前記1以上のボリュームにおいて、更新中のイレージャコードを格納する領域を排他ロックする、分散ストレージシステム。
  3. 請求項1に記載の分散ストレージシステムであって、
    前記コアシステムは、
    前記複数のエッジノードにおける第1エッジノードから順次受信した、複数世代のXOR更新差分データを保存する、分散ストレージシステム。
  4. 分散ストレージシステムであって、
    複数のエッジノードを含むエッジシステムと、
    前記エッジシステムとネットワークを介して接続され、前記エッジシステムのバックアップデータを保持するコアシステムと、を含み、
    前記複数のエッジノードのそれぞれは、
    ボリュームをホストに提供し、
    前記ボリュームの第1世代のスナップショットと、前記第1世代よりも古い旧世代のスナップショットと、の間のXOR更新差分データを生成し、
    前記生成したXOR更新差分データを前記コアシステムに送信し、
    前記コアシステムは、
    前記バックアップデータとして、前記複数のエッジノードからのXOR更新差分データに基づき生成されたイレージャコードを保持し、
    前記複数のエッジノードから受信したXOR更新差分データに基づいて、前記イレージャコードを更新し、
    前記複数のエッジノードのそれぞれは、前記第1世代のスナップショットと前記旧世代のスナップショットとの間の全てのXOR更新差分データを前記コアシステムに送信した後、全ライト済み通知を前記コアシステムに送信し、
    前記コアシステムは、全ライト済み通知を受信したXOR更新差分データに基づいて、前記イレージャコードを更新する、分散ストレージシステム。
  5. 請求項1に記載の分散ストレージシステムであって、
    前記複数のエッジノードそれぞれは、
    前記旧世代のスナップショットと前記第1世代のスナップショットとの間において更新されたアドレス領域を選択し、
    前記選択したアドレス領域のXOR更新差分データを前記コアシステムに送信する、分散ストレージシステム。
  6. 請求項1に記載の分散ストレージシステムであって、
    前記コアシステムは、
    一つのストライプのイレージャコードの更新において、当該ストライプのデータ要素の一部のみのXOR更新差分データを受信している場合、他のデータ要素をゼロデータとして、当該ストライプのイレージャコードを更新する、分散ストレージシステム。
  7. 請求項1に記載の分散ストレージシステムであって、
    前記複数のエッジノードにおける第1エッジノードの第1ボリュームの復元において、前記コアシステムは、前記第1ボリュームに対応するイレージャコードと、当該イレージャコードに対応する前記第1エッジノードと異なるエッジノードのスナップショットと、を使用する、分散ストレージシステム。
  8. 分散ストレージシステムであって、
    複数のエッジノードを含むエッジシステムと、
    前記エッジシステムとネットワークを介して接続され、前記エッジシステムのバックアップデータを保持するコアシステムと、を含み、
    前記複数のエッジノードのそれぞれは、
    ボリュームをホストに提供し、
    前記ボリュームの第1世代のスナップショットと、前記第1世代よりも古い旧世代のスナップショットと、の間のXOR更新差分データを生成し、
    前記生成したXOR更新差分データを前記コアシステムに送信し、
    前記コアシステムは、
    前記バックアップデータとして、前記複数のエッジノードからのXOR更新差分データに基づき生成されたイレージャコードを保持し、
    前記複数のエッジノードから受信したXOR更新差分データに基づいて、前記イレージャコードを更新し、
    前記コアシステムは、共通のXOR更新差分データを含む第1ストライプ及び第2ストライプのイレージャコードを生成し、
    前記第1ストライプと前記第2ストライプの間において、前記共通のXOR更新差分データ以外のデータ要素は、異なるエッジノードのデータ要素である、分散ストレージシステム。
  9. 分散ストレージシステムであって、
    複数のエッジノードを含むエッジシステムと、
    前記エッジシステムとネットワークを介して接続され、前記エッジシステムのバックアップデータを保持するコアシステムと、を含み、
    前記複数のエッジノードのそれぞれは、
    ボリュームをホストに提供し、
    前記ボリュームの第1世代のスナップショットと、前記第1世代よりも古い旧世代のスナップショットと、の間のXOR更新差分データを生成し、
    前記生成したXOR更新差分データを前記コアシステムに送信し、
    前記コアシステムは、
    前記バックアップデータとして、前記複数のエッジノードからのXOR更新差分データに基づき生成されたイレージャコードを保持し、
    前記複数のエッジノードから受信したXOR更新差分データに基づいて、前記イレージャコードを更新し、
    前記複数のエッジノードの数は、ストライプのデータ要素数より多く、
    一つのエッジノードからのXOR更新差分データを含む少なくとも2つのイレージャコードのストライプの間において、XOR更新差分データのデータ要素の送付元エッジノードの組み合わせが異なる、分散ストレージシステム。
  10. 複数のエッジノードを含むエッジシステムと、
    前記エッジシステムとネットワークを介して接続され、前記エッジシステムのバックアップデータを保持するコアシステムと、を含む分散ストレージシステムにおけるデータのバックアップ方法であって、
    前記コアシステムは、前記バックアップデータとして、イレージャコードを保持し、前記イレージャコードは前記複数のエッジノードからのXOR更新差分データに基づき生成され、
    前記バックアップ方法は、
    前記コアシステムが、前記複数のエッジノードそれぞれから、ボリュームの第1世代のスナップショットと、前記第1世代よりも古い旧世代のスナップショットとのXOR更新差分データを受信し、
    前記コアシステムが、前記複数のエッジノードから受信したXOR更新差分データを使用して、前記イレージャコードを更新し、
    前記複数のエッジノードのそれぞれが、前記ボリュームへのライト更新と非同期に、前記XOR更新差分データを生成して前記コアシステムに送信する、ことを含むバックアップ方法。
  11. 複数のエッジノードを含むエッジシステムと、前記エッジシステムとネットワークを介して接続され、前記エッジシステムのバックアップデータを保持するコアシステムと、を含む分散ストレージシステムにおけるデータのバックアップ方法であって、
    前記コアシステムは、前記バックアップデータとして、イレージャコードを保持し、前記イレージャコードは前記複数のエッジノードからのXOR更新差分データに基づき生成され、
    前記バックアップ方法は、
    前記コアシステムが、前記複数のエッジノードそれぞれから、ボリュームの第1世代のスナップショットと、前記第1世代よりも古い旧世代のスナップショットとのXOR更新差分データを受信し、
    前記コアシステムが、前記複数のエッジノードから受信したXOR更新差分データを使用して、前記イレージャコードを更新し、
    前記複数のエッジノードのそれぞれが、前記第1世代のスナップショットと前記旧世代のスナップショットとの間の全てのXOR更新差分データを前記コアシステムに送信した後、全ライト済み通知を前記コアシステムに送信し、
    前記コアシステムが、全ライト済み通知を受信したXOR更新差分データに基づいて、前記イレージャコードを更新する、ことを含むバックアップ方法。
  12. 複数のエッジノードを含むエッジシステムと、前記エッジシステムとネットワークを介して接続され、前記エッジシステムのバックアップデータを保持するコアシステムと、を含む分散ストレージシステムにおけるデータのバックアップ方法であって、
    前記コアシステムは、前記バックアップデータとして、イレージャコードを保持し、前記イレージャコードは前記複数のエッジノードからのXOR更新差分データに基づき生成され、
    前記バックアップ方法は、
    前記コアシステムが、前記複数のエッジノードそれぞれから、ボリュームの第1世代のスナップショットと、前記第1世代よりも古い旧世代のスナップショットとのXOR更新差分データを受信し、
    前記コアシステムが、前記複数のエッジノードから受信したXOR更新差分データを使用して、前記イレージャコードを更新し、
    前記コアシステムが、共通のXOR更新差分データを含む第1ストライプ及び第2ストライプのイレージャコードを生成する、ことを含み、
    前記第1ストライプと前記第2ストライプの間において、前記共通のXOR更新差分データ以外のデータ要素は、異なるエッジノードのデータ要素である、バックアップ方法。
  13. 複数のエッジノードを含むエッジシステムと、前記エッジシステムとネットワークを介して接続され、前記エッジシステムのバックアップデータを保持するコアシステムと、を含む分散ストレージシステムにおけるデータのバックアップ方法であって、
    前記コアシステムは、前記バックアップデータとして、イレージャコードを保持し、前記イレージャコードは前記複数のエッジノードからのXOR更新差分データに基づき生成され、
    前記バックアップ方法は、
    前記コアシステムが、前記複数のエッジノードそれぞれから、ボリュームの第1世代のスナップショットと、前記第1世代よりも古い旧世代のスナップショットとのXOR更新差分データを受信し、
    前記コアシステムが、前記複数のエッジノードから受信したXOR更新差分データを使用して、前記イレージャコードを更新する、ことを含み、
    前記複数のエッジノードの数、ストライプのデータ要素数より多く、
    一つのエッジノードからのXOR更新差分データを含む少なくとも2つのイレージャコードのストライプの間において、XOR更新差分データのデータ要素の送付元エッジノードの組み合わせが異なる、バックアップ方法。
JP2017549899A 2015-11-10 2015-11-10 分散ストレージシステム Active JP6494787B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/081606 WO2017081747A1 (ja) 2015-11-10 2015-11-10 分散ストレージシステム

Publications (2)

Publication Number Publication Date
JPWO2017081747A1 JPWO2017081747A1 (ja) 2018-08-09
JP6494787B2 true JP6494787B2 (ja) 2019-04-03

Family

ID=58694852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017549899A Active JP6494787B2 (ja) 2015-11-10 2015-11-10 分散ストレージシステム

Country Status (3)

Country Link
US (1) US10740189B2 (ja)
JP (1) JP6494787B2 (ja)
WO (1) WO2017081747A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11392541B2 (en) 2019-03-22 2022-07-19 Hewlett Packard Enterprise Development Lp Data transfer using snapshot differencing from edge system to core system
CN111522656A (zh) * 2020-04-14 2020-08-11 北京航空航天大学 一种边缘计算数据调度与分布方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4124348B2 (ja) 2003-06-27 2008-07-23 株式会社日立製作所 記憶システム
US9519540B2 (en) * 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8717895B2 (en) * 2010-07-06 2014-05-06 Nicira, Inc. Network virtualization apparatus and method with a table mapping engine
JP2012033169A (ja) 2010-07-29 2012-02-16 Ntt Docomo Inc バックアップシステムにおける符号化を使用して、ライブチェックポインティング、同期、及び/又は復旧をサポートするための方法及び装置

Also Published As

Publication number Publication date
US20180293137A1 (en) 2018-10-11
WO2017081747A1 (ja) 2017-05-18
US10740189B2 (en) 2020-08-11
JPWO2017081747A1 (ja) 2018-08-09

Similar Documents

Publication Publication Date Title
US10235066B1 (en) Journal destage relay for online system checkpoint creation
US10152381B1 (en) Using storage defragmentation function to facilitate system checkpoint
US10372537B2 (en) Elastic metadata and multiple tray allocation
US10459638B2 (en) 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
US7975115B2 (en) Method and apparatus for separating snapshot preserved and write data
US9600375B2 (en) Synchronized flashcopy backup restore of a RAID protected array
US8204858B2 (en) Snapshot reset method and apparatus
US7783850B2 (en) Method and apparatus for master volume access during volume copy
US8751467B2 (en) Method and apparatus for quickly accessing backing store metadata
US7831565B2 (en) Deletion of rollback snapshot partition
US8396835B2 (en) Computer system and its data control method
US8850145B1 (en) Managing consistency groups in storage systems
WO2015052798A1 (ja) ストレージシステム及び記憶制御方法
JP2004118837A (ja) 耐故障性の記憶サブシステムにデータを格納するための方法、記憶サブシステムおよびそのシステムのためのデータ編成管理プログラム
US20100037023A1 (en) System and method for transferring data between different raid data storage types for current data and replay data
US11003554B2 (en) RAID schema for providing metadata protection in a data storage system
US7472307B2 (en) Recovery operations in storage networks
JP6494787B2 (ja) 分散ストレージシステム
US8745343B2 (en) Data duplication resynchronization with reduced time and processing requirements
US11809274B2 (en) Recovery from partial device error in data storage system
WO2018055686A1 (ja) 情報処理システム
US8935488B2 (en) Storage system and storage control method
US10956052B1 (en) Online address to hash (A2H) metadata scanner
JP7457740B2 (ja) ストレージシステム及びその制御方法
US20230350753A1 (en) Storage system and failure handling method

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180418

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180911

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190108

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190305

R150 Certificate of patent or registration of utility model

Ref document number: 6494787

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150