JP2022152549A - ストレージシステム及びストレージシステムの制御方法 - Google Patents
ストレージシステム及びストレージシステムの制御方法 Download PDFInfo
- Publication number
- JP2022152549A JP2022152549A JP2021055362A JP2021055362A JP2022152549A JP 2022152549 A JP2022152549 A JP 2022152549A JP 2021055362 A JP2021055362 A JP 2021055362A JP 2021055362 A JP2021055362 A JP 2021055362A JP 2022152549 A JP2022152549 A JP 2022152549A
- Authority
- JP
- Japan
- Prior art keywords
- storage
- metadata
- memory
- data
- control unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000011084 recovery Methods 0.000 claims abstract description 118
- 238000012545 processing Methods 0.000 claims abstract description 102
- 230000015654 memory Effects 0.000 claims description 92
- 230000008569 process Effects 0.000 claims description 30
- 230000009467 reduction Effects 0.000 claims description 19
- 238000007906 compression Methods 0.000 claims description 11
- 230000006835 compression Effects 0.000 claims description 7
- 238000013500 data storage Methods 0.000 abstract description 11
- 238000007726 management method Methods 0.000 description 24
- 238000012546 transfer Methods 0.000 description 14
- 238000013523 data management Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000007717 exclusion Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 238000011946 reduction process Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011038 discontinuous diafiltration by volume reduction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
【課題】複数のコントローラから構成され、追記型データ格納方式を採用するストレージシステムにおいて、障害発生時におけるデータの一貫性を確保しつつ高いI/O処理性能を実現する。【解決手段】メタデータの二重化に先立ち、ロールフォワードまたはロールバックを実施するために必要な情報を含んだリカバリデータを各コントローラに格納してから、メタデータの二重化を行う。また、リカバリデータの格納処理とメタデータの二重化をハードウェアアクセラレータにオフロードする。【選択図】図2
Description
本発明は、ストレージシステムに関する。
ストレージシステムの記憶媒体に掛かるコストを低減する手段として、データ圧縮技術や重複排除技術などのデータ削減技術が普及している。これらのデータ削減技術を適用する場合、ホストからストレージシステムに対して書き込まれるデータサイズと、実際に記憶媒体に書き込まれるデータサイズとの間に差が生じる。そのため、記憶媒体の記憶領域を効果的に利用するために、データ削減適用後のデータを前詰めで書き込んでいく追記型データ格納方式(例えば、Log-Structured Storage)が用いられている。
また、冗長性を高めるために複数のコントローラを搭載したストレージシステムが普及している。こうしたストレージシステムでは、搭載コントローラのうちの一つに障害が発生した場合においても、記録されたユーザデータの一貫性を保つ必要がある。これを実現する手段として、キャッシュメモリ二重化と呼ばれる技術が広く用いられている。これは、ストレージシステムが書き込み要求を受領した際、書き込み要求の処理を担当するコントローラのキャッシュメモリに加えて、別のコントローラのキャッシュメモリに受領したユーザデータを格納してから、ホストへの完了応答を返す方法である。この方法を用いると、一つのコントローラに障害が発生した場合であっても、別のコントローラにユーザデータが格納されているため、データの一貫性を維持することができる。ただし、キャッシュメモリの二重化は、コントローラ間のデータ転送処理を伴うため、CPUの負荷を増加させ、ストレージシステムのI/O性能の低下を引き起こす。CPUの負荷を低減させるためには、ユーザデータ転送処理の実行をCPUから専用ハードウェアへオフロードする方式が考えられる。
ユーザデータ転送処理をハードウェアオフロードする技術として、例えば、特表2014-504749号公報(特許文献1)に記載の技術が知られている。特許文献1には、ハードウェアを用いたデータ転送を制御するシーケンサを導入することで、複数のユーザデータの転送処理をまとめてオフロードし、CPUの負荷を低減させる技術が開示されている。
追記型データ格納方式では、ユーザデータの論理アドレスと、実際にデータが物理的に格納される位置(物理アドレス)との対応関係が可変となる。このため、ストレージシステムは、ホストから書き込まれたユーザデータに加えて、論理アドレスと物理アドレスの対応関係をメタデータとして記録しておく必要がある。また、複数のコントローラを搭載したストレージシステムでは、コントローラ間のデータの一貫性を保つために、複数コントローラのキャッシュメモリ上にメタデータを二重化する必要がある。また、二重化処理を実行している途中でストレージシステムに障害(例えば、コントローラ間の接続が切断される等)が発生した場合でも、コントローラ間のメタデータの一貫性を維持する必要がある。
上記の課題の少なくとも一つを解決するための本発明の一態様は、複数のストレージ制御部と、アクセラレータと、データを格納する記憶媒体を有するストレージドライブと、を有するストレージシステムであって、前記複数のストレージ制御部の各々は、プロセッサと、メモリと、を有し、前記複数のストレージ制御部のうち第1のストレージ制御部の前記メモリ及び前記複数のストレージ制御部のうち第2のストレージ制御部の前記メモリには、それぞれ、前記ストレージドライブに格納されたデータにアクセスするためのメタデータが保持され、前記格納されたデータを更新する書き込み要求を受信した場合に、前記第1のストレージ制御部の前記プロセッサは、更新されるデータにかかるメタデータを更新したメタデータと、前記メタデータの一貫性を回復するための情報を含むリカバリデータとを生成し、前記メタデータ及び前記リカバリデータの処理要求を前記アクセラレータに送信し、前記アクセラレータは、前記処理要求に基づいて、前記第1のストレージ制御部の前記メモリ及び前記第2のストレージ制御部の前記メモリに前記リカバリデータを格納し、その後に前記第1のストレージ制御部の前記メモリ及び前記第2のストレージ制御部の前記メモリに前記メタデータを格納することを特徴とする。
本発明の一態様によれば、追記型データ格納方式を採用するストレージシステムにおいて、データの一貫性を保ちつつ、I/O処理性能を向上させることができる。
前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
以下、図面に基づいて、本発明の実施例を説明する。添付図面では、機能的に同じ要素を同じ番号で表示する場合がある。添付図面は、本発明の原理に則った具体的な実施形態と実施例とを示している。それらの実施形態及び実施例は、本発明の理解のためのものであり、本発明を限定的に解釈するために用いてはならない。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号(又は要素のID(例えば識別番号))を使用することがある。例えば、複数のストレージコントローラを区別しない場合には、「ストレージコントローラ22」と記載し、各ストレージコントローラを区別する場合には、「ストレージコントローラ1_22A」、「ストレージコントローラ2_22B」のように記載する。他の要素(例えばキャッシュ領域203、バッファ領域202等)も同様である。
また、CPU24をCPU24Aと記載するなど、ストレージコントローラ1_22A及びストレージコントローラ2_22Bに属するものをそれぞれ参照符号に付した「A」及び「B」によって区別する。
本実施例では、障害発生時にロールフォワードによってメタデータの一貫性を保つ方法を述べる。
図1は、本発明の実施例におけるストレージシステム100の概略を示す図である。ストレージシステム100は、ストレージ装置11と、ストレージ装置11に接続されたホスト計算機40とを含む。ホスト計算機40は、ネットワーク41を介してストレージ装置11に接続される。ホスト計算機40は、物理的な計算機でもよいし、物理的な計算機上で実行される仮想的な計算機でもよい。また、ホスト計算機40は、ストレージシステム100において実行される仮想的な計算機でもよい。
ストレージ装置11は、2以上のストレージコントローラ22と、1以上のアクセラレータ31と、各々が1以上のストレージコントローラ22に接続された複数のドライブ29と、ストレージコントローラ22とアクセラレータ31を接続するネットワーク30とを有する。
ストレージコントローラ22は、ホスト計算機との通信を行うFE_I/F(フロントエンドインターフェイスデバイス)23、装置全体の制御を行うCPU24、CPU24で使用されるプログラムおよび情報を格納するメモリ25、ドライブ29との通信を行うBE_I/F(バックエンドインターフェイスデバイス)27、ネットワーク30を介してストレージコントローラ22間を接続するCTL_I/F(コントローラ間インターフェイス)28、及びそれらを接続する内部ネットワーク26を備える。
メモリ25は、プログラムを格納するプログラム領域201、データ転送及びデータコピー時の一時的なデータ格納領域であるバッファ領域202、ホスト計算機40からのライト対象データ(ホスト計算機40からのライト要求に応答して書き込まれるデータ)やドライブ29からのリード対象データ(ホスト計算機40からのリード要求に応答して読み出されたデータ)やメタデータを一時的に格納するキャッシュ領域203、種々のテーブルを格納するテーブル管理領域204、メタデータのロールフォワードまたはロールバックを実施するための情報を格納するリカバリデータ領域208、及びCPU24とアクセラレータ31との間のデータのやり取りに用いるローカルメモリ領域209を有する。
テーブル管理領域204には、LDEVに関する情報を保持するLDEV管理テーブル205、及び、メタデータ情報を保持するメタデータ管理テーブル206が格納される。ここでLDEV(Logical Device)とは、ストレージシステムによって管理される論理的な記憶デバイスである。
リカバリデータ領域208には、メタデータ更新が失敗した際に、二重化されたメタデータの一貫性を回復するためのロールフォワードまたはロールバックを行うために必要な情報を記録するリカバリデータ管理テーブル207が格納される。
ドライブ29は、不揮発性のデータ記憶媒体を有する装置であり、SSD(Solid State Drive)でもHDD(Hard Disk Drive)でもよい。複数のドライブ29が、1以上のドライブ29から成る複数のRAID(Redundant Array of Independent Disks)グループを構成してもよい。
図2は、本発明の実施例におけるメタデータ更新処理の概要を示す図である。
ここでは例として、ストレージコントローラ22Aが、更新後メタデータ50をストレージコントローラ22Aのキャッシュ領域203A、及びストレージコントローラ22Bのキャッシュ領域203Bに対して転送する処理を説明する。
ここでリカバリデータ51は、後述するリカバリデータ管理テーブル207のエントリに対応する。リカバリデータ51は、更新後メタデータ50のバックアップデータと、有効フラグと、コントローラ22Aのメタデータ格納先アドレスと、コントローラ22Bのメタデータ格納先アドレスとによって構成される。
S1:CPU24Aは、更新後メタデータ50及びリカバリデータ51を、ローカルメモリ領域209に格納する。またこのとき、CPU24Aは、リカバリデータ51の有効フラグの値を「有効」に設定する。
S2:CPU24Aは、アクセラレータ31に対して、メタデータ更新処理要求を行う。
S3:アクセラレータ31は、メタデータ更新処理要求を受領すると、ローカルメモリ領域209Aからリカバリデータ51を読み出し、ストレージコントローラ22Aのリカバリデータ領域208Aに格納する。
S4:アクセラレータ31は、ローカルメモリ領域209Aからリカバリデータ51を読み出し、ストレージコントローラ22Bのリカバリデータ領域208Bに格納する。
S5:アクセラレータ31は、ローカルメモリ領域209Aから更新後メタデータ50を読み出し、ストレージコントローラ22Aのキャッシュ領域203Aと、ストレージコントローラ22Bのキャッシュ領域203Bとにそれぞれ格納する。
S6:アクセラレータ31は、リカバリデータ領域208Bに格納されたリカバリデータ51の有効フラグの値を「無効」に書き換える。この有効フラグは、メタデータのリカバリ処理が必要となった場合に、メタデータの更新状況を判断するために用いられる。リカバリデータ51が「無効」の場合、ストレージコントローラ22Bのメタデータ更新は完了していると判断できる。一方、リカバリデータが「有効」の場合、ストレージコントローラ22Bのメタデータ更新が完了していない可能性がある。このとき、リカバリデータ51に記録されたメタデータのバックアップデータを用いて、メタデータのロールフォワードを行うことで、メタデータの一貫性を回復する。
S7:アクセラレータ31は、リカバリデータ領域208Aに格納されたリカバリデータ51の有効フラグの値を「無効」に書き換える。ステップS6と同様に、メタデータのリカバリ処理が必要になった場合、リカバリデータ51の有効フラグに基づいてストレージコントローラ22Aのメタデータのロールフォワード処理を行い、メタデータの一貫性を回復する。
S8:アクセラレータ31は、ストレージコントローラ22Aに対して、完了通知を送る。
<LDEV管理テーブル>
図3は、本発明の実施例におけるLDEV管理テーブル205を説明する図である。
図3は、本発明の実施例におけるLDEV管理テーブル205を説明する図である。
LDEV管理テーブル205の各エントリは、ストレージシステム内に存在する各LDEVに対応し、対応するLDEVの管理情報を記録する。
以下、LDEV管理テーブル205の各カラムについて説明する。
カラム2051は、LDEVに割り振られた識別子(LDEV ID)を記録する。
カラム2052は、対応するLDEVの属性(例えば、対象のLDEVがシンプロビジョニングを適用されるVOLであるか、通常のVOLであるか、容量削減機能が有効であるか、等)を記録する。
カラム2053は、当該LDEVにどのメタデータ管理テーブル206が対応しているかを示す情報を記録する。例えば、カラム2053は、メタデータ管理テーブル206ごとに割り振られたIDを記録する。
<メタデータ管理テーブル>
図4は、本発明の実施例におけるメタデータ管理テーブル206を説明する図である。
図4は、本発明の実施例におけるメタデータ管理テーブル206を説明する図である。
追記型データ格納方式では、ドライブ29の記憶領域に隙間が生じないようにデータを格納していく。このため、ユーザデータの論理アドレスと物理アドレス(ドライブ内のデータ格納場所を示すアドレス)との対応関係が一致しなくなる。したがって、指定された論理アドレスのデータにアクセスするために、各データの論理アドレスと物理アドレスとの対応関係をストレージ装置11が管理する必要がある。
メタデータ管理テーブル206の各エントリは、ユーザデータが格納されたLDEV内の論理アドレスと、実際にデータが格納された位置を示す物理アドレスとの対応関係を記録する。以下、メタデータ管理テーブル206の各カラムを説明する。
カラム2061は、ユーザデータが格納されたLDEV内の論理アドレスを記録する。
カラム2062は、実際にユーザデータがドライブ29に格納された位置を示す物理アドレスを記録する。
カラム2063は、圧縮後データのサイズを記録する。対象データに対する圧縮を行わない場合、無効値を設定する。
テーブル内検索の効率化のため、メタデータ管理テーブル206は、例えばLDEVごとにテーブルが分けられていてもよい。以降の説明では、メタデータ管理テーブル206がLDEVごとに分かれているものとする。
<リカバリデータ管理テーブル>
図5は、本発明の実施例におけるリカバリデータ管理テーブル207を説明する図である。
図5は、本発明の実施例におけるリカバリデータ管理テーブル207を説明する図である。
リカバリデータ管理テーブル207は、メタデータ本体のバックアップデータと、当該リカバリデータのエントリが有効であることを管理する有効フラグと、自系コントローラ22Aおよび他系コントローラ22Bのそれぞれのメモリ25上におけるメタデータ格納先アドレスを記録するデータ構造である。
リカバリデータ管理テーブル207の各エントリは、転送対象のメタデータと対応づいている。以下、リカバリデータ管理テーブル207の各カラムを説明する。
カラム2071からカラム2073は、メタデータのバックアップデータを記録する。具体的には、カラム2071からカラム2073は、メタデータ管理テーブルのカラム2061からカラム2063に対応する情報をエントリ毎に記録する。
カラム2074は、当該のリカバリデータが有効状態であるか否かを記録する。
カラム2075は、自系コントローラ22A内のキャッシュ領域203Aにおけるメタデータ格納先アドレスを記録する。
カラム2076は、他系コントローラ22B内のキャッシュ領域203Bにおけるメタデータ格納先アドレスを記録する。
<リード処理>
図6は、本発明の実施例におけるリード処理を説明するフローチャートである。
図6は、本発明の実施例におけるリード処理を説明するフローチャートである。
リード処理は、ストレージ装置11がホスト計算機40からのリード要求受領を契機に開始し、要求されたリード対象データを読み出してホスト計算機40に転送する処理である。リード要求では、例えばLDEV ID、論理アドレス、及びデータサイズがホスト計算機40によって指定される。
以下、図6を用いて、リード処理の処理フローを説明する。
S601:CPU24は、リード要求情報から、リード対象データのLDEVおよび論理アドレスを基に、キャッシュ領域203の一定単位領域(以降、スロット領域と呼ぶ)の排他を確保する。他の処理によって当該スロット領域の排他が確保されていた場合、CPU24は、一定時間待機した後にステップS601を実行する。
S602:CPU24は、リード対象データがキャッシュ領域203に存在するか否かを判定する。判定結果が真の場合、ステップS604に進む。判定結果が偽の場合、ステップS603に進む。
S603:CPU24は、キャッシュ領域203上にリード対象データが存在しない場合、ドライブ29からリード対象データを読み出し、バッファ領域202に転送する。このとき、CPU24は、ホスト計算機が指定したリード対象データのLDEV IDおよび論理アドレスを基に、LDEV IDに対応するメタデータ管理テーブル206を参照して、リード対象データの格納先物理アドレスを特定する。
S604:CPU24は、バッファ領域202上のリードデータが圧縮データか否かを、メタデータ管理テーブル206の圧縮後サイズ2063から判定する。ここで、対象LDEVのLDEV属性2052が圧縮有効でない場合は、判定結果は偽となる。判定結果が真の場合、ステップS605に進む。判定結果が偽の場合、ステップS606に進む。
S605:CPU24は、圧縮データを伸長する。この伸長処理は、CPU24が直接行う代わりに、例えばFPGAなどを用いて実装される専用ハードウェアが実行してもよい。
S606:CPU24は、非圧縮状態のリード対象データをホスト計算機40に転送する。
S607:CPU24は、確保していたスロット領域の排他を解放する。
<ライト処理>
図7は、本発明の実施例におけるライト処理を説明するフローチャートである。
図7は、本発明の実施例におけるライト処理を説明するフローチャートである。
ライト処理は、ストレージ装置11がホスト計算機40からのライト要求受領を契機に開始する。ライト要求では、例えばライト先のLDEV IDおよび論理アドレスがホスト計算機40によって指定される。
以下、図7を用いて、ライト処理の処理フローを説明する。ここでは、例として、ストレージ装置11のストレージコントローラ1_22Aがライト要求を受領した場合の処理を説明する。
S701:CPU24Aは、ライト先のLDEVおよび論理アドレスに基づいて、キャッシュ領域203A上のスロット領域の排他を確保する。他の処理によって当該スロット領域の排他が確保されていた場合、CPU24Aは、一定時間待機した後にステップS701を実施する。また、CPU24Aは、スロット領域の排他確保と同時に、データのライト先とするキャッシュ領域203Aのスロット領域を割り当てる。
S702:CPU24Aは、ホスト計算機40に対して、ライト処理の受領準備が完了したことを示す応答(Ready応答)を返す。その後、CPU24Aは、Ready応答を受け取ったホスト計算機40から、ライト対象データを受領する。
S703:CPU24Aは、受け取ったライト対象データを排他確保済のキャッシュ領域203Aのスロット領域に格納する。
S704:CPU24Aは、ストレージコントローラ1_22Aからストレージコントローラ2_22Bに対して、キャッシュ領域203Aに格納したライト対象データを転送する。CPU24Bは、受け取ったライト対象データをキャッシュ領域203Bに格納する。
S705:CPU24Aは、ホスト計算機40に対して、ライト要求の完了応答を返す。
S706:CPU24Aは、ステップS701において確保していたスロット領域の排他を解放する。
S707:CPU24Aは、LDEV管理テーブル205を参照し、ライト対象のLDEVに対応するLDEV属性2052の値を元に、当該LDEVに対するデータ削減設定が有効であるかを判定する。データ削減設定が有効の場合、ステップS708に進む。データ削減設定が有効でない場合、ステップS709に進む。
S708:CPU24Aは、後述するデータ削減処理(図9参照)を実行し、処理を終了する。
S709:CPU24Aは、後述するデステージ処理(図8参照)を実行し、処理を終了する。
<デステージ処理>
図8は、本発明の実施例におけるデステージ処理を説明するフローチャートである。
図8は、本発明の実施例におけるデステージ処理を説明するフローチャートである。
デステージ処理は、キャッシュ上のユーザデータをドライブ29の指定された物理アドレスへ書き込む処理である。デステージ処理は、ライト処理において、ストレージ装置11へのライト処理の完了応答をホスト計算機40に返した後、図7のステップS709で実行される。なお、デステージ処理は、ホスト計算機40からのライト要求と同期的に実行されてもよいし、非同期的に(例えば一定の時間周期ごとに)実行されてもよい。
以下、図8を用いて、デステージ処理の処理フローを説明する。
S801:CPU24Aは、キャッシュ領域203A上のデステージ処理対象データを含むスロット領域の排他を確保する。
S802:CPU24Aは、デステージ対象データのパリティを生成する。
S803:CPU24Aは、デステージ対象データ及びステップS802において生成したパリティデータをドライブ29に書き出す。
S804:CPU24Aは、ステップS801において確保したスロット領域の排他を解放し、処理を終了する。
<データ量削減処理>
図9は、本発明の実施例におけるデータ量削減処理を説明するフローチャートである。
図9は、本発明の実施例におけるデータ量削減処理を説明するフローチャートである。
データ量削減処理は、ライト処理において、ストレージ装置11に対するライト要求の完了応答をホスト計算機40に返した後、図7のステップS708で実行される。なお、データ量削減処理は、ホスト計算機40からのライト要求と同期的に実行されてもよいし、非同期的に実行されてもよい。
図9内のステップS903で行う圧縮処理は、ライトデータに対して実行する所定の処理の一例である。CPU24Aは、圧縮以外の処理(例えば、重複排除処理または暗号化処理など)を実行してもよい。また、本実施例では、圧縮処理をCPU24Aが実行しているが、代わりに例えばFPGAなどを用いて実装される専用ハードウェアが実行してもよい。
以下、図9を用いて、データ量削減処理の処理フローを説明する。
S901:CPU24Aは、データ量削減処理の対象データを含んだキャッシュ領域203Aのスロット領域の排他を確保する。
S902:CPU24Aは、データ量削減処理の対象データに対して圧縮処理を適用し、得られた圧縮データをバッファ領域202Aに格納する。
S903:CPU24Aは、バッファ領域202Aの圧縮データをキャッシュ領域203Aへ転送する。
S904:CPU24Aは、キャッシュ領域203Bに対して、圧縮データを転送する。
S905:CPU24Aは、後述するメタデータ更新処理(図10参照)を実行する。
S906:CPU24Aは、対象スロット領域の排他を解放する。
S907:CPU24Aは、デステージ処理を行い、データ量削減処理を終了する。なお、先述のとおり、デステージ処理は、ホスト計算機40からのライト要求と同期的に実行されてもよいし、非同期的に(例えば一定の時間周期ごとに)実行されてもよい。
<メタデータ更新処理>
図10は、本発明の実施例におけるメタデータ更新処理を説明するフローチャートである。
図10は、本発明の実施例におけるメタデータ更新処理を説明するフローチャートである。
S1001:CPU24Aは、更新後メタデータ50を作成し、ローカルメモリ領域209Aに格納する。
S1002:CPU24Aは、更新後メタデータ50に対応するリカバリデータ51を作成し、ローカルメモリ領域209Aに格納する。ここでリカバリデータ51は、図5に示したように、更新後メタデータ50のバックアップデータ(例えば論理アドレス2071~圧縮後サイズ2073)と、有効フラグ2074と、コントローラ22Aのメタデータ格納先アドレス2075と、コントローラ22Bのメタデータ格納先アドレス2076とによって構成される。このとき、有効フラグ2074の値は「有効」に設定される。
S1003:CPU24Aは、メタデータ更新依頼メッセージを作成する。更新依頼メッセージは、更新対象メタデータ情報のリストからなる。リストの各要素は、更新後メタデータ50が格納されたローカルメモリ領域209Aのアドレス、更新後メタデータ50に対応するリカバリデータ51が格納されたローカルメモリ領域209Aのアドレス、ストレージコントローラ22Aのキャッシュ領域203A内の更新後メタデータ格納先アドレス、及び、ストレージコントローラ22Bのキャッシュ領域203B内の更新後メタデータ格納先アドレスを含む。
S1004:CPU24Aは、アクセラレータ31に対してメタデータ更新処理要求を送信する。
S1005:アクセラレータ31は、CPU24Aからメタデータ更新処理要求を受領する。
S1006:アクセラレータ31は、更新対象メタデータのリストの先頭から順に、ステップS1007からステップS1011までの処理を行う。
S1007:アクセラレータ31は、ストレージコントローラ22Aのローカルメモリ領域209Aからリカバリデータ51を読み出す。その後、アクセラレータ31は、リカバリデータ51をストレージコントローラ22Aのリカバリデータ領域208Aに格納する。
S1008:アクセラレータ31は、リカバリデータ51をストレージコントローラ22Bのリカバリデータ領域208Bに格納する。
S1009:アクセラレータ31は、ストレージコントローラ22Aのローカルメモリ領域209Aから更新後メタデータ50を読み出す。その後、アクセラレータ31は、指定された更新後メタデータ格納先アドレスに基づき、更新後メタデータ50をストレージコントローラ22Aのキャッシュ領域203Aおよびストレージコントローラ22Bのキャッシュ領域203Bにそれぞれ格納する。
S1010:アクセラレータ31は、ストレージコントローラ22Bのリカバリデータ領域208Bに格納したリカバリデータ51の有効フラグの値を「無効」に書き換え、リカバリデータを無効化する。
S1011:アクセラレータ31は、ストレージコントローラ22Aのリカバリデータ領域208Aに格納したリカバリデータ51の有効フラグの値を「無効」に書き換え、リカバリデータを無効化する。
S1012:アクセラレータ31は、CPU24Aから受領した更新対象メタデータリストに未処理の要素が残っている場合は、ステップS1006に進む。リストの全要素の処理が完了した場合は、ステップS1013に進む。
S1013:アクセラレータ31は、CPU24Aに対して、メタデータ更新処理の実行結果を通知する。
S1014:CPU24Aは、アクセラレータ31からメタデータ更新処理の実行結果を受け取り、処理を終える。
このように、メタデータ二重化を行う前にリカバリデータを各コントローラに転送することで、コントローラ間でメタデータの一貫性が失われた場合でも、リカバリデータからメタデータのロールバックあるいはロールフォワードを行うことができる。これによって、メタデータの一貫性を回復することができる。また、リカバリデータの転送とメタデータの二重化処理を、まとめてCPUからアクセラレータにオフロードすることによって、CPUの処理負荷が低減されるため、ストレージシステムのI/O処理性能の向上が期待できる。
<メタデータリカバリ処理>
図11は、本発明の実施例におけるメタデータリカバリ処理を説明するフローチャートである。
図11は、本発明の実施例におけるメタデータリカバリ処理を説明するフローチャートである。
メタデータリカバリ処理は、メタデータ更新処理が、外的要因(例えばコントローラ間接続の切断等)によって完了しなかった場合に実行される処理である。メモリ上に格納されたリカバリデータを元に、メタデータに対してロールフォワードまたはロールバックを適用することで、両コントローラ間でメタデータの内容が整合した状態に戻す。メタデータリカバリ処理は、両コントローラでそれぞれ実行される。
以下、図11を用いて、リカバリ処理の処理フローを説明する。ここではロールフォワードを用いる方法を述べる。
S1101:CPU24は、リカバリデータ領域208のリカバリデータ管理テーブル207内の各エントリに対して、ステップS1102からステップS1107までの処理を行う。
S1102:CPU24は、対象のリカバリデータエントリ内の有効フラグ2074を参照する。
S1103:CPU24は、S1102で参照した有効フラグ2074の値が「有効」かどうか判定する。有効フラグ2074の値が「有効」のとき、当該リカバリデータに対応するメタデータは更新が適用されたことが保証されていない。すなわち、この場合、自系のストレージコントローラ22と他系のストレージコントローラ22とで二重化されたメタデータの一貫性が損なわれている可能性がある。このため、当該メタデータをロールフォワード対象とする。有効フラグ2074の値が「無効」のとき、当該リカバリデータに対応するメタデータは更新が適用されている状態であるため、メタデータの一貫性が確保されており、ロールフォワードは不要である。この判定結果が真の場合、ステップS1104に進む。判定結果が偽の場合、ステップS1106に進む。
S1104:CPU24は、リカバリデータ管理テーブル207を参照し、当該エントリのメタデータ格納先アドレス2075および2076を取得する。
S1105:CPU24は、リカバリデータ管理テーブル207の当該エントリのメタデータバックアップ情報(論理アドレス2071、物理アドレス2072、及び圧縮後サイズ2073)を、S1104で取得したメタデータ格納先アドレスにコピーする。コピーが完了したら、当該エントリの有効フラグの値を「無効」に設定する。
S1106:CPU24は、リカバリデータ管理テーブルに未処理のエントリが残っている場合、次エントリの対して同様に処理を行うためステップS1101に進む。未処理のエントリが残っていない場合はリカバリ処理を終了する。
以上、ロールフォワードを用いてメタデータの一貫性を回復する方法を述べた。
なお、ロールバックを用いる方法についても、本実施例の処理の一部を次のように変更することで実現可能である。
具体的には、メタデータ更新処理のステップS1002において、リカバリデータ51の内部に更新後のメタデータではなく、更新前のメタデータを格納するようにする。
また、ステップS1010とステップS1011の実施順序を入れ替える。具体的には、アクセラレータ31は、ストレージコントローラ22Aのリカバリデータ領域208Aに格納したリカバリデータ51の有効フラグ2074を「無効」に書き換えてから、ストレージコントローラ22Bのリカバリデータ領域208Bに格納したリカバリデータ51の有効フラグ2074を「無効」に書き換える。
ロールバックが行われると、有効フラグ2074が「有効」であるリカバリデータに対応するメタデータは更新前のものに書き換えられる。このとき、上記の順に有効フラグ2074を書き換えることによって、I/O処理を直接担当する自系のストレージコントローラ22Aが優先的に更新後のメタデータを保持した状態となる。
上記のように処理を変更することで、メタデータリカバリ処理のステップS1105において復元されるメタデータが更新前のメタデータとなるため、ロールバックが実現できる。
以上の本発明の実施例によれば、障害発生時に、それぞれのストレージコントローラがメタデータ更新処理のロールフォワードまたはロールバックを行うことで、メタデータの一貫性が維持される。このため、メタデータ更新処理においては、まずロールフォワードまたはロールバックに必要な情報(リカバリデータ)を各ストレージコントローラのメモリ上に格納してから、メタデータの二重化が行われる。メタデータ更新処理が異常終了した場合、各ストレージコントローラは、リカバリデータに基づいてメタデータのロールフォワードまたはロールバックを実施することで、メタデータの一貫性を回復する。また、リカバリデータの送信とメタデータの二重化をハードウェアアクセラレータにオフロードすることで、ストレージコントローラのCPU処理負荷が削減され、ストレージシステムの処理性能が向上する。
また、本発明の実施形態のシステムは次のように構成されてもよい。
(1)複数のストレージ制御部(例えばストレージコントローラ22)と、アクセラレータ(例えばアクセラレータ31)と、データを格納する記憶媒体を有するストレージドライブ(例えばドライブ29)と、を有するストレージシステムであって、複数のストレージ制御部の各々は、プロセッサ(例えばCPU24)と、メモリ(例えばメモリ25)と、を有し、複数のストレージ制御部のうち第1のストレージ制御部のメモリ及び複数のストレージ制御部のうち第2のストレージ制御部のメモリには、それぞれ、ストレージドライブに格納されたデータにアクセスするためのメタデータ(例えばメタデータ管理テーブル206)が保持され、格納されたデータを更新する書き込み要求を受信した場合に、第1のストレージ制御部のプロセッサは、更新されるデータにかかるメタデータを更新したメタデータと、メタデータの一貫性を回復するための情報を含むリカバリデータ(例えばリカバリデータ管理テーブル207)とを生成し(例えばステップS1001及びS1002)、メタデータ及びリカバリデータの処理要求をアクセラレータに送信し(例えばステップS1004)、アクセラレータは、処理要求に基づいて、第1のストレージ制御部のメモリ及び第2のストレージ制御部のメモリにリカバリデータを格納し、その後に(例えばステップS1007及びS1008)第1のストレージ制御部のメモリ及び第2のストレージ制御部のメモリにメタデータを格納する(例えばステップS1009)。
これによって、追記型データ格納方式を採用するストレージシステムにおいて、データの一貫性を保ちつつ、I/O処理性能を向上させることができる。
(2)上記(1)において、アクセラレータは、第1のストレージ制御部のメモリ及び第2のストレージ制御部のメモリにメタデータを格納した後に、第1のストレージ制御部のメモリのリカバリデータ及び第2のストレージ制御部のメモリのリカバリデータを無効にし(例えばステップS1010及びS1011)、第1のストレージ制御部のプロセッサ及び第2のストレージ制御部のプロセッサは、メタデータの少なくとも一部のメモリへの格納が正常に終了しなかった場合、有効であるリカバリデータに基づいて、メタデータの一貫性を回復する(例えばステップS1102~S1106)。
これによって、メタデータを一貫性が確保された状態に回復することができる。
(3)上記(2)において、リカバリデータは、メタデータを更新された後の状態に回復するための情報を含み、アクセラレータは、第1のストレージ制御部のメモリ及び第2のストレージ制御部のメモリにメタデータを格納(例えばステップS1009)した後に、第2のストレージ制御部のメモリのリカバリデータを無効にし(例えばステップS1010)、その後、第1のストレージ制御部のメモリのリカバリデータを無効にする(例えばステップS1011)。
これによって、メタデータを一貫性が保たれた状態にロールフォワードすることができる。
(4)上記(2)において、リカバリデータは、メタデータを更新される前の状態に回復するための情報を含み、アクセラレータは、第1のストレージ制御部のメモリ及び第2のストレージ制御部のメモリにメタデータを格納(例えばステップS1009)した後に、第1のストレージ制御部のメモリのリカバリデータを無効にし(例えばステップS1011)、その後、第2のストレージ制御部のメモリのリカバリデータを無効にする(例えばステップS1010)。
これによって、メタデータを一貫性が保たれた状態にロールバックすることができる。
(5)上記(1)において、メタデータは、データにアクセスするための、書き込み先論理アドレスと書き込み先物理アドレスとの対応関係を含んでおり、書き込み先論理アドレスと書き込み先物理アドレスとの対応関係が更新される場合とは、書き込み対象のデータのデータ量削減処理が実行される場合である。
これによって、追記型データ格納方式を採用するストレージシステムにおいて、データの一貫性を保つことができる。
(6)上記(5)において、データ量削減処理は、圧縮処理又は重複排除処理である。
これによって、追記型データ格納方式を採用するストレージシステムにおいて、データの一貫性を保つことができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明のより良い理解のために詳細に説明したものであり、必ずしも説明の全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
100…ストレージシステム
11…ストレージ装置
22…ストレージコントローラ
25…メモリ
29…ドライブ
30…ネットワーク
31…アクセラレータ
40…ホスト計算機
202…バッファ領域
203…キャッシュ領域
208…リカバリデータ領域
209…ローカルメモリ領域
11…ストレージ装置
22…ストレージコントローラ
25…メモリ
29…ドライブ
30…ネットワーク
31…アクセラレータ
40…ホスト計算機
202…バッファ領域
203…キャッシュ領域
208…リカバリデータ領域
209…ローカルメモリ領域
Claims (12)
- 複数のストレージ制御部と、アクセラレータと、データを格納する記憶媒体を有するストレージドライブと、を有するストレージシステムであって、
前記複数のストレージ制御部の各々は、プロセッサと、メモリと、を有し、
前記複数のストレージ制御部のうち第1のストレージ制御部の前記メモリ及び前記複数のストレージ制御部のうち第2のストレージ制御部の前記メモリには、それぞれ、前記ストレージドライブに格納されたデータにアクセスするためのメタデータが保持され、
前記格納されたデータを更新する書き込み要求を受信した場合に、
前記第1のストレージ制御部の前記プロセッサは、
更新されるデータにかかるメタデータを更新したメタデータと、前記メタデータの一貫性を回復するための情報を含むリカバリデータとを生成し、
前記メタデータ及び前記リカバリデータの処理要求を前記アクセラレータに送信し、
前記アクセラレータは、
前記処理要求に基づいて、前記第1のストレージ制御部の前記メモリ及び前記第2のストレージ制御部の前記メモリに前記リカバリデータを格納し、その後に前記第1のストレージ制御部の前記メモリ及び前記第2のストレージ制御部の前記メモリに前記メタデータを格納することを特徴とするストレージシステム。 - 請求項1に記載のストレージシステムであって、
前記アクセラレータは、前記第1のストレージ制御部の前記メモリ及び前記第2のストレージ制御部の前記メモリに前記メタデータを格納した後に、前記第1のストレージ制御部の前記メモリの前記リカバリデータ及び前記第2のストレージ制御部の前記メモリの前記リカバリデータを無効にし、
前記第1のストレージ制御部の前記プロセッサ及び前記第2のストレージ制御部の前記プロセッサは、前記メタデータの少なくとも一部の前記メモリへの格納が正常に終了しなかった場合、有効である前記リカバリデータに基づいて、前記メタデータの一貫性を回復することを特徴とするストレージシステム。 - 請求項2に記載のストレージシステムであって、
前記リカバリデータは、前記メタデータを更新された後の状態に回復するための情報を含み、
前記アクセラレータは、前記第1のストレージ制御部の前記メモリ及び前記第2のストレージ制御部の前記メモリに前記メタデータを格納した後に、前記第2のストレージ制御部の前記メモリの前記リカバリデータを無効にし、その後、前記第1のストレージ制御部の前記メモリの前記リカバリデータを無効にすることを特徴とするストレージシステム。 - 請求項2に記載のストレージシステムであって、
前記リカバリデータは、前記メタデータを更新される前の状態に回復するための情報を含み、
前記アクセラレータは、前記第1のストレージ制御部の前記メモリ及び前記第2のストレージ制御部の前記メモリに前記メタデータを格納した後に、前記第1のストレージ制御部の前記メモリの前記リカバリデータを無効にし、その後、前記第2のストレージ制御部の前記メモリの前記リカバリデータを無効にすることを特徴とするストレージシステム。 - 請求項1に記載のストレージシステムであって、
前記メタデータは、前記データにアクセスするための、書き込み先論理アドレスと書き込み先物理アドレスとの対応関係を含んでおり、
前記書き込み先論理アドレスと前記書き込み先物理アドレスとの対応関係が更新される場合とは、書き込み対象のデータのデータ量削減処理が実行される場合であることを特徴とするストレージシステム。 - 請求項5に記載のストレージシステムであって、
前記データ量削減処理は、圧縮処理又は重複排除処理であることを特徴とするストレージシステム。 - 複数のストレージ制御部と、アクセラレータと、データを格納する記憶媒体を有するストレージドライブと、を有するストレージシステムの制御方法であって、
前記複数のストレージ制御部の各々は、プロセッサと、メモリと、を有し、
前記複数のストレージ制御部のうち第1のストレージ制御部の前記メモリ及び前記複数のストレージ制御部のうち第2のストレージ制御部の前記メモリには、それぞれ、前記ストレージドライブに格納されたデータにアクセスするためのメタデータが保持され、
前記制御方法は、前記格納されたデータを更新する書き込み要求を受信した場合に、
前記第1のストレージ制御部の前記プロセッサが、更新されるデータにかかるメタデータを更新したメタデータと、前記メタデータの一貫性を回復するための情報を含むリカバリデータとを生成する手順と、
前記第1のストレージ制御部の前記プロセッサが、前記メタデータ及び前記リカバリデータの処理要求を前記アクセラレータに送信する手順と、
前記アクセラレータが、前記処理要求に基づいて、前記第1のストレージ制御部の前記メモリ及び前記第2のストレージ制御部の前記メモリに前記リカバリデータを格納し、その後に前記第1のストレージ制御部の前記メモリ及び前記第2のストレージ制御部の前記メモリに前記メタデータを格納する手順と、を含むことを特徴とするストレージシステムの制御方法。 - 請求項7に記載のストレージシステムの制御方法であって、
前記制御方法は、さらに、
前記アクセラレータが、前記第1のストレージ制御部の前記メモリ及び前記第2のストレージ制御部の前記メモリに前記メタデータを格納した後に、前記第1のストレージ制御部の前記メモリの前記リカバリデータ及び前記第2のストレージ制御部の前記メモリの前記リカバリデータを無効にする手順と、
前記第1のストレージ制御部の前記プロセッサ及び前記第2のストレージ制御部の前記プロセッサが、前記メタデータの少なくとも一部の前記メモリへの格納が正常に終了しなかった場合、有効である前記リカバリデータに基づいて、前記メタデータの一貫性を回復する手順と、を含むことを特徴とするストレージシステムの制御方法。 - 請求項8に記載のストレージシステムの制御方法であって、
前記リカバリデータは、前記メタデータを更新された後の状態に回復するための情報を含み、
前記リカバリデータを無効にする手順において、前記アクセラレータは、前記第2のストレージ制御部の前記メモリの前記リカバリデータを無効にし、その後、前記第1のストレージ制御部の前記メモリの前記リカバリデータを無効にすることを特徴とするストレージシステムの制御方法。 - 請求項8に記載のストレージシステムの制御方法であって、
前記リカバリデータは、前記メタデータを更新される前の状態に回復するための情報を含み、
前記リカバリデータを無効にする手順において、前記アクセラレータは、前記第1のストレージ制御部の前記メモリの前記リカバリデータを無効に更新し、その後、前記第2のストレージ制御部の前記メモリの前記リカバリデータを無効にすることを特徴とするストレージシステムの制御方法。 - 請求項10に記載のストレージシステムの制御方法であって、
前記メタデータは、前記データにアクセスするための、書き込み先論理アドレスと書き込み先物理アドレスとの対応関係を含んでおり、
前記書き込み先論理アドレスと前記書き込み先物理アドレスとの対応関係が更新される場合とは、書き込み対象のデータのデータ量削減処理が実行される場合であることを特徴とするストレージシステムの制御方法。 - 請求項11に記載のストレージシステムの制御方法であって、
前記データ量削減処理は、圧縮処理又は重複排除処理であることを特徴とするストレージシステムの制御方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021055362A JP7232281B2 (ja) | 2021-03-29 | 2021-03-29 | ストレージシステム及びストレージシステムの制御方法 |
CN202110907201.XA CN115129237A (zh) | 2021-03-29 | 2021-08-09 | 存储系统和存储系统的控制方法 |
US17/469,968 US11287977B1 (en) | 2021-03-29 | 2021-09-09 | Storage system and control method of storage system |
US17/692,255 US11880566B2 (en) | 2021-03-29 | 2022-03-11 | Storage system and control method of storage system including a storage control unit that performs a data amount reduction processing and an accelerator |
JP2023021560A JP7472341B2 (ja) | 2021-03-29 | 2023-02-15 | ストレージシステム及びストレージシステムの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021055362A JP7232281B2 (ja) | 2021-03-29 | 2021-03-29 | ストレージシステム及びストレージシステムの制御方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023021560A Division JP7472341B2 (ja) | 2021-03-29 | 2023-02-15 | ストレージシステム及びストレージシステムの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022152549A true JP2022152549A (ja) | 2022-10-12 |
JP7232281B2 JP7232281B2 (ja) | 2023-03-02 |
Family
ID=80855292
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021055362A Active JP7232281B2 (ja) | 2021-03-29 | 2021-03-29 | ストレージシステム及びストレージシステムの制御方法 |
JP2023021560A Active JP7472341B2 (ja) | 2021-03-29 | 2023-02-15 | ストレージシステム及びストレージシステムの制御方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023021560A Active JP7472341B2 (ja) | 2021-03-29 | 2023-02-15 | ストレージシステム及びストレージシステムの制御方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11287977B1 (ja) |
JP (2) | JP7232281B2 (ja) |
CN (1) | CN115129237A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230126234A1 (en) * | 2021-10-25 | 2023-04-27 | Rubrik, Inc. | Independent object data backup between clusters |
CN116126744B (zh) * | 2023-04-04 | 2023-08-22 | 荣耀终端有限公司 | 一种内存回收方法、装置及终端设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014059769A (ja) * | 2012-09-18 | 2014-04-03 | Fujitsu Ltd | ストレージ制御システム、リカバリプログラム、及び該方法 |
JP2016506585A (ja) * | 2013-01-08 | 2016-03-03 | ヴァイオリン メモリー インコーポレイテッド | データストレージのための方法及びシステム |
US20190073283A1 (en) * | 2017-09-05 | 2019-03-07 | International Business Machines Corporation | Method for the implementation of a high performance, high resiliency and high availability dual controller storage system |
US20210042050A1 (en) * | 2019-08-09 | 2021-02-11 | Goke Us Research Laboratory | Method and apparatus for rebuilding memory mapping tables |
JP2021092915A (ja) * | 2019-12-09 | 2021-06-17 | 株式会社日立製作所 | ストレージシステム及びボリューム複製方法 |
JP2021114164A (ja) * | 2020-01-20 | 2021-08-05 | 富士通株式会社 | ストレージ装置及びストレージ制御方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07319637A (ja) * | 1994-05-26 | 1995-12-08 | Mitsubishi Electric Corp | ディスク装置の制御装置およびディスク装置の制御方 法 |
JP2008165624A (ja) * | 2006-12-28 | 2008-07-17 | Hitachi Ltd | 計算機システム及び第1記憶装置 |
EP2652589A1 (en) | 2011-06-24 | 2013-10-23 | Hitachi, Ltd. | Storage system |
US20150363319A1 (en) * | 2014-06-12 | 2015-12-17 | Netapp, Inc. | Fast warm-up of host flash cache after node failover |
US9645753B2 (en) * | 2014-08-29 | 2017-05-09 | Netapp, Inc. | Overlapping write detection and processing for sync replication |
US9658968B1 (en) | 2015-11-09 | 2017-05-23 | International Business Machines Corporation | Implementing hardware accelerator for storage write cache management |
CN108701005B (zh) * | 2016-02-18 | 2021-02-23 | 华为技术有限公司 | 数据更新技术 |
US10838630B2 (en) * | 2016-04-18 | 2020-11-17 | Netapp, Inc. | Write-ahead log maintenance and recovery |
CN110232053B (zh) * | 2017-12-05 | 2024-02-02 | 华为技术有限公司 | 日志处理方法、相关设备及系统 |
JP2020112972A (ja) | 2019-01-10 | 2020-07-27 | 富士通株式会社 | ストレージ制御装置およびストレージ制御プログラム |
US11079969B1 (en) * | 2020-02-25 | 2021-08-03 | EMC IP Holding Company LLC | Disk array enclosure configured for metadata and data storage processing |
US20210278977A1 (en) * | 2020-03-06 | 2021-09-09 | Dell Products L.P. | Method and system for performing data deduplication and compression in a data cluster |
US11126361B1 (en) * | 2020-03-16 | 2021-09-21 | EMC IP Holding Company LLC | Multi-level bucket aggregation for journal destaging in a distributed storage system |
US11231868B2 (en) * | 2020-04-07 | 2022-01-25 | Eidetic Communications Inc. | System and method for performing computational storage utilizing a hardware accelerator |
US11144221B1 (en) * | 2020-04-10 | 2021-10-12 | Dell Products L.P. | Efficient resilience in a metadata paging array for in-flight user data |
US11567971B2 (en) * | 2020-11-19 | 2023-01-31 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for storage shuffle acceleration |
-
2021
- 2021-03-29 JP JP2021055362A patent/JP7232281B2/ja active Active
- 2021-08-09 CN CN202110907201.XA patent/CN115129237A/zh active Pending
- 2021-09-09 US US17/469,968 patent/US11287977B1/en active Active
-
2022
- 2022-03-11 US US17/692,255 patent/US11880566B2/en active Active
-
2023
- 2023-02-15 JP JP2023021560A patent/JP7472341B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014059769A (ja) * | 2012-09-18 | 2014-04-03 | Fujitsu Ltd | ストレージ制御システム、リカバリプログラム、及び該方法 |
JP2016506585A (ja) * | 2013-01-08 | 2016-03-03 | ヴァイオリン メモリー インコーポレイテッド | データストレージのための方法及びシステム |
US20190073283A1 (en) * | 2017-09-05 | 2019-03-07 | International Business Machines Corporation | Method for the implementation of a high performance, high resiliency and high availability dual controller storage system |
US20210042050A1 (en) * | 2019-08-09 | 2021-02-11 | Goke Us Research Laboratory | Method and apparatus for rebuilding memory mapping tables |
JP2021092915A (ja) * | 2019-12-09 | 2021-06-17 | 株式会社日立製作所 | ストレージシステム及びボリューム複製方法 |
JP2021114164A (ja) * | 2020-01-20 | 2021-08-05 | 富士通株式会社 | ストレージ装置及びストレージ制御方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115129237A (zh) | 2022-09-30 |
JP7472341B2 (ja) | 2024-04-22 |
JP7232281B2 (ja) | 2023-03-02 |
US20220308761A1 (en) | 2022-09-29 |
US11880566B2 (en) | 2024-01-23 |
US11287977B1 (en) | 2022-03-29 |
JP2023055998A (ja) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6912669B2 (en) | Method and apparatus for maintaining cache coherency in a storage system | |
US7975115B2 (en) | Method and apparatus for separating snapshot preserved and write data | |
US7593973B2 (en) | Method and apparatus for transferring snapshot data | |
US7412578B2 (en) | Snapshot creating method and apparatus | |
JP6009095B2 (ja) | ストレージシステム及び記憶制御方法 | |
US8751467B2 (en) | Method and apparatus for quickly accessing backing store metadata | |
US7831565B2 (en) | Deletion of rollback snapshot partition | |
JP7472341B2 (ja) | ストレージシステム及びストレージシステムの制御方法 | |
JP4961319B2 (ja) | 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム | |
US6886075B2 (en) | Memory device system and method for copying data in memory device system | |
JP2012113704A (ja) | フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブのためのシステム、方法、コンピュータ・プログラム(フラッシュ・コピーのデータ圧縮を用いたデータ・アーカイブ) | |
US20080082745A1 (en) | Storage system for virtualizing control memory | |
CN113360082B (zh) | 存储系统及其控制方法 | |
JP2810593B2 (ja) | 記憶装置 | |
JP4394467B2 (ja) | ストレージシステム、サーバ装置及び先行コピーデータ生成方法 | |
US11875060B2 (en) | Replication techniques using a replication log | |
JP2006031446A (ja) | データ記憶装置、データ記憶方法およびデータ記憶プログラム | |
JP4398596B2 (ja) | ディスクアレイ装置 | |
KR100472207B1 (ko) | 다중 레이드 제어기를 통한 데이터 분산 공유 레이드 제어시스템 | |
US20050223180A1 (en) | Accelerating the execution of I/O operations in a storage system | |
US20240134575A1 (en) | Storage system and storage control method | |
US20240231707A9 (en) | Storage system and storage control method | |
JP3785165B2 (ja) | ディスクアレイ装置および筐体内レプリケーション方法 | |
US11853592B2 (en) | Reversible write techniques using physical storage device offloading | |
JP5691234B2 (ja) | ディスクアレイ装置、及び、ミラーリング制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211223 |
|
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: 20230124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230217 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7232281 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |