JP6696280B2 - 情報処理装置、raid制御方法、およびraid制御プログラム - Google Patents

情報処理装置、raid制御方法、およびraid制御プログラム Download PDF

Info

Publication number
JP6696280B2
JP6696280B2 JP2016080192A JP2016080192A JP6696280B2 JP 6696280 B2 JP6696280 B2 JP 6696280B2 JP 2016080192 A JP2016080192 A JP 2016080192A JP 2016080192 A JP2016080192 A JP 2016080192A JP 6696280 B2 JP6696280 B2 JP 6696280B2
Authority
JP
Japan
Prior art keywords
data
ssd
updated
raid
storage devices
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
JP2016080192A
Other languages
English (en)
Other versions
JP2017191430A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016080192A priority Critical patent/JP6696280B2/ja
Priority to US15/456,655 priority patent/US10019315B2/en
Publication of JP2017191430A publication Critical patent/JP2017191430A/ja
Application granted granted Critical
Publication of JP6696280B2 publication Critical patent/JP6696280B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/061Improving I/O performance
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、情報処理装置、RAID(Redundant Arrays of Inexpensive Disks)制御方法、およびRAID制御プログラムに関する。
従来、複数の記憶装置を組み合わせて仮想的なディスクとして運用するRAID技術がある。ここで、特定のRAIDレベルでは、複数のデータからパリティデータを生成しておき、複数のデータのうちのいずれかのデータが失われた場合、複数のデータの失われたデータを除く他のデータと、パリティデータとから、失われたデータを復元する。また、フラッシュメモリを記憶媒体とする記憶装置がある。
関連する先行技術として、例えば、書き込みコマンドに付随する書き込みアドレス、サイズなどの条件を取得し、取得した条件から、データをパリティグループとして書き込むか、二重化グループとして書き込むか、を判定するものがある。また、データと、データの誤りを訂正するために使われる冗長情報とを異なる半導体記憶ドライブに各々書き込み、所定の数の第1データの各物理アドレスおよび論理アドレスと、冗長情報の物理アドレスとを対応付けたテーブルを記憶する技術がある。また、RAID1の冗長性方式に従ってデータ冗長性を提供するためにストレージのコマンドを受け取り、RAID5のデータ冗長性方式に従ってデータ冗長性を提供するためにコマンドを変換する技術がある。また、n−1個のデータを書き込む毎にパリティを生成しn個目のデータとして書き込み、データの書き込み時ページの冗長領域に論理アドレスを格納し、この論理アドレスのパリティを生成し、n個目のデータを書き込むページの冗長領域に書き込む技術がある。
特開2013−016147号公報 特開2012−068862号公報 特開2013−257900号公報 特開2010−152551号公報
しかしながら、従来技術によれば、フラッシュメモリを記憶媒体とする複数の記憶装置で形成されるRAIDグループについて、データの更新があるたびにパリティデータを生成し、書き込み性能が劣化する。具体的には、パリティデータを生成するためには、更新前のデータと更新後のデータとパリティデータとを読み出して、パリティデータの計算を行うため、読み出しの分とパリティデータの計算の分、書き込み性能が劣化することになる。また、NAND型フラッシュメモリは、書き込み可能な最大回数が決まっており、頻繁に書き込みが行われると故障の元となる。
1つの側面では、本発明は、フラッシュメモリを記憶媒体とする複数の記憶装置で形成されるRAIDグループについて、データを更新する際の書き込み性能を向上させることができる情報処理装置、RAID制御方法、およびRAID制御プログラムを提供することを目的とする。
本発明の一側面によれば、フラッシュメモリを記憶媒体とする複数の記憶装置によって形成されたRAIDグループのいずれかの記憶装置のデータを更新する場合、いずれかの記憶装置のデータが記憶された記憶領域とは異なる他の記憶領域に更新後のデータを書き込み、パリティデータは生成せず、いずれかの記憶装置のガベージコレクション処理の起動時に、更新後のデータに基づいて、更新後のデータのパリティデータを生成し、当該パリティデータを前記他の記憶領域に書き込む情報処理装置、RAID制御方法、およびRAID制御プログラムが提案される。
本発明の一態様によれば、フラッシュメモリを記憶媒体とする複数の記憶装置で形成されるRAIDグループについて、データを更新する際の書き込み性能を向上させることができるという効果を奏する。
図1は、本実施の形態にかかる情報処理装置101の動作例を示す説明図である。 図2は、マルチレベルRAIDの動作例を示す説明図である。 図3は、Erasure Codingの書き込み性能が低い理由を示す説明図である。 図4は、ディスクアレイ装置400のハードウェア構成例を示す説明図である。 図5は、CM411のハードウェア構成例を示す説明図である。 図6は、ディスクアレイ装置400の機能構成例を示す説明図である。 図7は、FTLアドレス変換表611の記憶内容の一例を示す説明図である。 図8は、データ更新時におけるFTLアドレス変換表611の更新例を示す説明図である。 図9は、データ更新時におけるSSD423−1〜4の更新例を示す説明図である。 図10は、リカバリ時におけるFTLアドレス変換表611の更新例を示す説明図である。 図11は、リカバリ時におけるSSD423−1〜4の更新例を示す説明図である。 図12は、読み出し処理手順の一例を示すフローチャートである。 図13は、Erasure Coding済データのin−place更新処理手順の一例を示すフローチャートである。 図14は、Erasure Coding化処理手順の一例を示すフローチャートである。 図15は、本実施の形態にかかるRAID制御方法の効果の一例を示す説明図である。 図16は、Erasure Coding済のデータの更新の一例を示す説明図である。
以下に図面を参照して、開示の情報処理装置、RAID制御方法、およびRAID制御プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかる情報処理装置101の動作例を示す説明図である。情報処理装置101は、フラッシュメモリを記憶媒体とする複数の記憶装置を制御するコンピュータである。情報処理装置101は、例えば、ディスクアレイ装置やサーバである。フラッシュメモリを記憶媒体とする記憶装置は、SSD(Solid State Drive)と呼ばれる。具体的には、情報処理装置101は、複数のSSDによってRAID技術によるRAIDグループを形成し、RAIDグループによって形成された仮想的なディスクを、情報処理装置101のユーザに提供する。RAIDグループは、1つの仮想的なディスクを形成する記憶装置のグループである。
また、RAID技術には、仮想的なディスクの形成の仕方を表すRAIDレベルが存在する。RAID1以上のRAIDレベルにより形成された仮想的なディスクは冗長性を有しており、いくつかの記憶装置が故障しても他の記憶装置からデータを復元することができる。
例えば、RAID1は、レプリケーション(Replication)と呼ばれる冗長化手法であり、一つの記憶装置に書き込まれたデータを、他の記憶装置にも書き込むことにより、冗長性を担保する技術である。また、RAID5、6は、イレージャーコーディング(Erasure Coding)と呼ばれる冗長化手法であり、複数のデータからパリティデータを生成しておくことにより、冗長性を担保する技術である。具体的には、RAID5、6では、複数のデータのうちのいずれかのデータが失われた場合、複数のデータのいずれかのデータを除く他のデータと、パリティデータとから、いずれかのデータを復元する。以下、データの復元のことを、「リカバリ」と呼称する。
ここで、RAID1と、RAID5、6とについては、それぞれ利点と欠点とがあり、両者の利点を生かす方法として、RAIDレベルを自動的に切り替える方法がある。以下、RAIDレベルを自動的に切り替える方法のことを、「マルチレベル(Multi−Level)RAID」と称する。RAID1と、RAID5、6とのそれぞれの利点と欠点と、マルチレベルRAIDの詳細とについては、図2で説明する。また、以下の記載では、マルチレベルRAIDは、RAID1とRAID5を切り替えるものとする。
しかしながら、マルチレベルRAIDにおいて、Erasure Codingを行う際の書き込み性能が劣化する。具体的には、Erasure Codingによりパリティデータを再計算することになるが、パリティデータを生成するためには、更新前のデータと更新後のデータとパリティデータとを読み出して、パリティデータの計算を行うことになる。従って、読み出しの分とパリティデータの計算の分、書き込み性能が劣化することになる。Erasure Codingに書き込み性能が低くなる理由についての詳細については、図3で示す。
また、フラッシュメモリ、特に、NAND型フラッシュメモリは、書き込み可能な最大回数が決まっており、頻繁に書き込みが行われると故障の元となる。
Erasure Coding済のデータの更新については、以下2通りの方法が考えられる。1つ目の方法は、データを上書き(in−place)更新する方法である。この方法では、書き込み回数は、3回となる。しかしながら、この方法では、パリティデータの更新が発生して、書き込み性能が低下することになる。2つ目の方法は、別のSSDにReplicationする方法である。しかしながら、この方法では、書き込み回数が、3回から4回に増えてしまう。1つ目の方法であるin−place更新と、2つ目の方法である別のSSDにReplicationする方法との欠点については、図16で説明する。
ここで、NAND型フラッシュメモリには、ガベージコレクション(GC:Garbage Collection)処理が発生するまでは、旧データを残す特性がある。NAND型フラッシュメモリにおけるGC処理は、あるブロック内で使用されているデータだけを他のブロックにコピーし、あるブロックのデータを全て削除するという処理である。
そこで、本実施の形態では、あるSSDのデータの更新時には前述のSSDの更新前のデータを上書きせずに別の領域に更新後のデータを書き込み、パリティデータは生成せず、GC処理起動時に更新後のデータからパリティデータを生成することについて説明する。
図1を用いて、情報処理装置101の動作例について説明する。図1に示す情報処理装置101は、RAIDグループを形成する複数のSSDとして、SSD1〜3を制御する。そして、SSD1は、データAを記憶しており、SSD2は、データBを記憶しており、SSD3は、データA、Bのパリティデータとして、AとBとの排他的論理和を示すAxorBを記憶している。ここで、図中では、xorを、丸の中に+を入れた記号で示す。
いずれかの記憶装置としてSSD1のデータAを更新する場合、図1の上部の(1)で示すように、情報処理装置101は、SSD1のデータAが記憶された記憶領域とは異なる他の記憶領域に、データAの更新後のデータA’を書き込む。ここで、情報処理装置101は、データA’を、レプリカとして、SSD1とは異なるSSDに書き込んでもよい。図1の例では、情報処理装置101は、レプリカとなるデータA’をSSD2に書き込む。
そして、情報処理装置101は、SSD1のGC処理の起動時に、データA’のパリティデータを生成するため、図1の下部の(2)で示すように、SSD1からデータA、A’を読み出すとともに、SSD3からAxorBを読み出す。そして、情報処理装置101は、図1の下部の(3)で示すように、データA’に基づいて、データA’のパリティデータとして、パリティデータA’xorBを生成する。図1の例では、情報処理装置101は、AxorA’xor(AxorB)を算出して、A’xorBを得る。
ここで、パリティデータA’xorBの生成方法は、図1に示した方法に限られない。例えば、情報処理装置101は、SSD1からデータA’を読み出し、SSD2からデータBを読み出して、A’xorBによりパリティデータA’xorBを生成してもよい。
パリティデータA’xorBの生成後、情報処理装置101は、図1の下部の(4)で示すように、パリティデータA’xorBを、SSD3に格納する。これにより、情報処理装置101は、書き込みのたびに発生していたパリティデータの書き込み回数が減るため、書き込み性能を向上させることができる。次に、マルチレベルRAIDの動作例を、図2を用いて説明する。
図2は、マルチレベルRAIDの動作例を示す説明図である。マルチレベルRAIDは、図1で説明したように、RAIDレベルを自動的に切り替える方法である。ここで、RAID1は、2つの記憶装置に書き込むだけであるため、書き込み性能が高いという利点がある一方で、ユーザデータの2倍分の容量を消費するため、容量効率が劣化するという欠点がある。RAID5、6は、ユーザデータの(RAIDグループに含まれる記憶装置の個数)/(RAIDグループに含まれる記憶装置の個数−パリティデータを記憶する記憶装置の個数)倍分しか容量を消費しないため、RAID1に比べ容量効率がよいという利点がある。一方で、RAID5、6は、パリティデータの更新があるため、RAID1に比べ書き込み性能が劣化するという欠点がある。
従って、マルチレベルRAIDは、書き込み時ではRAID1で高い書き込み性能を得つつ、ある程度の時間が経過したら、古いデータをRAID5、6化して容量効率を向上させる、という技術である。
図2の例では、マルチレベルRAIDでは、データAの書き込み時には、RAID1により、SSD1、SSD2にデータAを書き込む。そして、ある程度時間が経過した場合、マルチレベルRAIDでは、RAID5により、SSD1〜3に、それぞれ、データA〜Cを書き込み、SSD4に、AxorBxorCにより生成したパリティPを書き込む。
次に、Erasure Codingの書き込み性能が低い理由について、図3を用いて説明する。
図3は、Erasure Codingの書き込み性能が低い理由を示す説明図である。図3では、SSD1〜3は、それぞれ、データA〜Cを記憶しており、SSD4は、パリティデータAxorBxorCを記憶しているとする。そして、図3では、データAをA’に更新する例を用いて、Erasure Codingの書き込み性能が低い理由を示す。
データAをA’に更新する場合、Erasure Codingを行う装置は、パリティデータのRead−Modify−Writeを行うことになる。具体的には、前述の装置は、SSD1からデータAを読み出し、SSD4からパリティデータAxorBxorCを読み出し、メモリにあるデータA’をキャッシュとして用いて、下記(1)式によりパリティデータA’xorBxorCをメモリ上に生成する。
Axor(AxorBxorC)xorA’=A’xorBxorC …(1)
そして、前述の装置は、生成したパリティデータを、SSD4に書き込む。以上により、1回のデータの更新に対する処理を終了する。これに対し、Replicationでは、単に2つの記憶装置に書き込むだけである。従って、Erasure Codingは、Read−Modify−Writeのうち、読み出しの分と、パリティデータの生成の分、書き込み性能が劣化することになる。
次に、情報処理装置101を、ディスクアレイ装置に適用した例を、図4で説明する。
図4は、ディスクアレイ装置400のハードウェア構成例を示す説明図である。ディスクアレイ装置400は、CE(Controller Enclosure)401と、DE(Drive Enclosure)402とを含む。
そして、CE401は、CM(Controller Module)411と、CPSU(CE Power Supply Unit)412と、ディスク413とを有する。また、DE402は、IOM(I/O(Input/Output) Module)421と、DPSU(DE Power Supply Unit)422と、SSD423とを含む。IOM421は、EXP(SAS(Serial Attached SCSI) Expander)を含む。
ここで、CM411が、図1に示した情報処理装置101に相当する。また、SSD423が、図1に示したSSD1〜3に相当する。
CE401は、CM411〜ディスク413を含む筐体である。CM411は、ディスクアレイ装置400を制御する装置である。また、CM411は、CM間通信を行う。また、CM411は、ホスト装置と接続する。CM411の内部のハードウェア構成は、図5で説明する。CPSU412は、CE401内部の装置に電源を供給するユニットである。ディスク413は、CM411が使用する記憶装置である。
DE402は、IOM421〜SSD423を含む筐体である。IOM421は、CM411とドライブ間とを制御するユニットである。DPSU422は、DE402内部の装置に電源を供給するユニットである。EXP424は、SAS接続用のexpanderチップである。図4に示すEXP424は、SSD423のそれぞれと接続する。
図5は、CM411のハードウェア構成例を示す説明図である。CM411は、CPU(Central Processing Unit)501と、メモリ502と、不揮発性メモリ503と、IOC(I/O Controller)504と、CA(Channel Adapter)505と、EXP506と、SCU(System Capacitor Unit)507とを含む。
CPU501は、CM411の全体の制御を司る演算処理装置である。また、CPU501は、他のCM411のCPU501と接続する。メモリ502は、CPU501のワークエリアとして使用される揮発性メモリである。不揮発性メモリ503は、本実施の形態におけるRAID制御プログラムを記憶する不揮発性メモリである。不揮発性メモリ503の記憶媒体としては、例えば、NORフラッシュメモリ、NANDフラッシュメモリを採用することができる。
IOC504は、CPU501からのI/Oを制御する。図5の例では、IOC504は、EXP506や、他のCM411のEXP506と接続し、CPU501からのディスク413やSSD423へのI/Oを制御する。CA505は、ホスト装置と通信する通信インターフェースである。EXP506は、SAS接続用のexpanderチップである。図5に示すEXP424は、ディスク413のそれぞれと、EXP424と接続する。SCU507は、停電時に、メモリ502のデータを、不揮発性メモリ503にバックアップするための電源を供給するユニットである。
図6は、ディスクアレイ装置400の機能構成例を示す説明図である。CM411は、制御部600と、I/O発行部607とを有する。そして、制御部600は、マルチレベルRAID制御部601を有する。マルチレベルRAID制御部601は、読み出し部602と、書き込み部603と、生成部604と、削除部605と、復元部606とを有する。ここで、制御部600は、記憶装置に記憶されたプログラムをCPU501が実行することにより、制御部600の機能を実現する。記憶装置とは、具体的には、例えば、図5に示したメモリ502、不揮発性メモリ503、ディスク413などである。また、各部の処理結果は、メモリ502、CPU501のレジスタや、CPU501のキャッシュメモリ等に格納される。また、I/O発行部607は、IOC504、EXP506、EXP424により実現される機能である。
また、SSD423は、FTL(Flash Translation Layer)管理部610と、FTLアドレス変換表611と、複数のNANDブロック612とを有する。なお、FTL管理部610と、FTLアドレス変換表611とは、CM411が有してもよい。この場合、FTL管理部610は、記憶装置に記憶されたプログラムをCPU501が実行することにより、FTL管理部610の機能を実現する。NANDブロック612は、書き込み単位となるページを複数有する。FTLアドレス変換表611は、論理アドレスに対応付けて、I/O用のアクセスに対応するブロック番号およびページ番号と、リカバリ用のアクセスに対応するブロック番号およびページ番号とを記憶する。FTLアドレス変換表611の記憶内容の一例は、図7で説明する。
ここで、リカバリ用のアクセスに対応するブロック番号およびページ番号を使用するのは、Erasure Codingからのリカバリの時である。従って、以下、単に「リカバリ」と記載した場合、Erasure Codingからのリカバリを指す。なお、Replicationからのリカバリ時には、CM411は、別のSSDから読み出すだけであり、リカバリ用のアクセスに対応するブロック番号およびページ番号は使用しない。
マルチレベルRAID制御部601は、Replication先のアドレスや、Erasure Coding済みか?といったマルチレベルRAID用の管理を行う。
読み出し部602は、SSD423からデータを読み出す。また、書き込み部603は、SSD423にデータを書き込む。具体的には、読み出し部602は、SSD423からデータを読み出す読み出し要求をI/O発行部607へ発行し、I/O発行部607から得た、読み出し要求に対応するデータを受け付ける。同様に、書き込み部603は、SSD423にデータを書き込む書き込み要求をI/O発行部607へ発行する。ここで、読み出し部602と書き込み部603とは、SSD423に読み出し要求や書き込み要求を発行する際に、I/O用のアクセスなのか、リカバリ用のアクセスなのかを指定する。
また、書き込み部603は、RAIDグループのいずれかのSSD423のデータを更新する場合、いずれかのSSD423の更新前のデータが記憶された記憶領域とは異なる他の記憶領域に更新後のデータを書き込む。
また、書き込み部603は、いずれかのSSD423のデータを更新する場合、前述のSSD423の他の記憶領域に更新後のデータを書き込むとともに、RAIDグループの前述のSSD423とは異なる他のSSD423に、更新後のデータを書き込む。
生成部604は、いずれかのSSD423のGC処理の起動時に、更新後のデータに基づいて、更新後のデータのパリティデータを生成する。具体的には、読み出し部602が、更新後のデータを読み出すため、I/O用の読み出し要求を、GC処理を起動するSSD423に発行するとともに、更新前のデータを読み出すため、リカバリ用の読み出し要求を、GC処理起動時のSSD423に発行する。また、読み出し部602が、パリティデータを記憶するSSD423に、リカバリ用の読み出し要求を発行する。そして、生成部604は、読み出し部602が読み出した更新前のデータ、更新後のデータ、パリティデータから、更新後のデータのパリティデータを生成する。また、GCの処理起動時には、生成部604は、FTL管理部610から、GC処理を起動する旨の通知を受け付ける。
削除部605は、更新後のデータのパリティデータを生成した後、いずれかのSSD423とは異なる他のSSD423に書き込んだ更新後のデータを削除する。
また、更新後のデータを書き込んだ後から、更新後のデータを書き込んだSSD423がGC処理を起動する前に、RAIDグループのうちの更新後のデータを書き込んだSSD423とは異なるSSD423が故障したとする。この場合、復元部606は、Erasure Codingからのリカバリとして、更新後のデータを書き込んだSSD423の更新前のデータと、この更新前のデータのパリティデータとに基づいて、故障したSSD423のデータを復元する。
また、復元部606は、更新後のデータを書き込んだSSD423が故障した場合、RAIDグループの更新後のデータを書き込んだSSD423を除くSSD423のデータ、パリティデータに基づいて、更新前のデータを復元する。また、このとき、復元部606は、Replicationからのリカバリとして、RAIDグループの更新後のデータを書き込んだSSD423とは異なる他のSSD423に書き込んだ更新後のデータを読み出すことにより、更新後のデータを復元する。なお、復元部606は、復元したデータを、例えば、故障したSSD423に代えて交換したSSD423や、故障したSSD423を含むRAIDグループのホットスペアとして指定されたSSD423に書き込む。
I/O発行部607は、読み出し部602からの読み出し要求や、書き込み部603からの書き込み要求を、I/O用のアクセスなのか、リカバリ用のアクセスなのかを指定して、該当のSSD423のFTL管理部610に発行する。例えば、I/O用のアクセスなのか、リカバリ用のアクセスなのかを指定する方法としては、例えば、I/O発行部607は、読み出し要求や書き込み要求に、I/O用のアクセスなのか、リカバリ用のアクセスなのかを指定するタグを付与する。
FTL管理部610は、I/O発行部607からのI/Oを受け付けて、FTLアドレス変換表611を参照して、NANDブロック612にアクセスする。また、FTL管理部610は、GC処理を実行する。また、GC処理を実行する際に、FTL管理部610は、CM411に、これからGC処理を起動する旨を通知する。
図7は、FTLアドレス変換表611の記憶内容の一例を示す説明図である。図7に示すFTLアドレス変換表611は、レコード701−1〜3を有する。FTLアドレス変換表611は、LBA(Logical Block Addressing)と、I/O用ブロック番号と、I/O用ページ番号と、リカバリ用ブロック番号と、リカバリ用ページ番号というフィールドを含む。
LBAフィールドには、CM411からアクセスされる際の論理LBAを示す値が格納される。I/O用ブロック番号フィールドには、LBAに対応するI/O用のブロック番号を示す値が格納される。I/O用ページ番号フィールドには、LBAに対応するI/O用のページ番号を示す値が格納される。リカバリ用ブロック番号フィールドには、LBAに対応するリカバリ用のブロック番号を示す値が格納される。リカバリ用ページ番号フィールドには、LBAに対応するリカバリ用のページ番号を示す値が格納される。なお、リカバリ用ブロック番号およびページ番号は、Erasure Codingからのリカバリ時に使用される。Replicationからのリカバリ時には、CM411は、別のSSDから読み出すだけであり、リカバリ用ブロック番号およびページ番号を使用しない。
次に、データ更新時における、FTLアドレス変換表611の更新例と、データ更新時における、FTLアドレス変換表611の更新に対応するSSDの更新例について、図8、図9を用いて説明する。また、リカバリ時における、FTLアドレス変換表611の更新例と、データ更新時における、FTLアドレス変換表611の更新に対応するSSDの更新例について、図10、図11を用いて説明する。また、図8〜図11に示す状態1、状態2は、それぞれ同一の状態であるとする。
図8は、データ更新時におけるFTLアドレス変換表611の更新例を示す説明図である。また、図9は、データ更新時におけるSSD423−1〜4の更新例を示す説明図である。ここで、図8に示す表801〜803は、それぞれ、状態1〜3におけるSSD423−1〜4のIDとして「1〜4」のいずれかと、FTLアドレス変換表611の記憶内容とを対応付けたものである。そして、図8に示す表801〜803は、それぞれ、レコード801−1〜4、レコード802−1〜5、レコード803−1〜4を有する。
まず、状態1について、SSD423−1は、レコード801−1が示すように、LBA100に対応するブロック番号0およびページ番号0で示される物理LBAに、データAを記憶している。また、SSD423−2は、レコード801−2が示すように、LBA100に対応するブロック番号1およびページ番号1で示される物理LBAに、データBを記憶している。また、レコード801−3が示すように、SSD423−3は、LBA100に対応するブロック番号2およびページ番号2で示される物理LBAに、データCを記憶している。そして、レコード801−4が示すように、SSD423−4は、LBA100に対応するブロック番号3およびページ番号3で示される物理LBAに、パリティデータとして、AxorBxorCを記憶している。また、レコード801−4が示すように、パリティデータは、I/O時には使用しないため、レコード801−4のI/Oブロック番号およびページ番号フィールドには、値が入っていない。
状態2は、状態1から、データAをA’にin−place更新した状態である。SSD423−1は、CM411の指示により、データA’用に割り当てられた物理LBAに、データA’を書き込む。図9の例では、データA’用に割り当てられた物理LBAは、ブロック番号10およびページ番号10で示される物理LBAである。そして、SSD423−1は、レコード801−1の更新後の状態であるレコード802−1が示すように、I/O用のブロック番号およびページ番号を、データA’用に割り当てられた物理LBAを示すブロック番号10およびページ番号10で更新する。ここで、SSD423−1は、レコード802−1のリカバリ用のブロック番号およびページ番号を更新しない。
また、SSD423−2は、CM411の指示により、データA’のReplication先として割り当てられた物理LBAに、データA’を書き込む。図9の例では、データA’用に割り当てられた物理LBAは、ブロック番号20およびページ番号20で示される物理LBAである。そして、SSD423−2は、レコード802−3が示すように、LBA200に対応するI/O用のブロック番号およびページ番号を、データA’用に割り当てられた物理LBAを示すブロック番号20およびページ番号20で更新する。ここで、SS2に書き込んだデータA’は、Erasure Codingからのリカバリには使用されない。従って、SSD423−2は、レコード802−3のリカバリ用のブロック番号およびページ番号を空白のままとする。
状態3は、状態2から、Ereasure Coding化した状態である。ここで、新たなパリティデータを生成するために、CM411は、現在のパリティデータと、更新前のデータと、更新後のデータとを読み出す。図8、図9の例では、CM411は、SSD423−1からA、A’を読み出し、SSD423−4からAxorBxorCを読み出す。そして、CM411は、Axor(AxorBxorC)xorA’を実行し、パリティデータとしてA’xorBxorCを生成する。
そして、SSD423−4は、CM411の指示により、CM411が生成したパリティデータA’xorBxorCを書き込む。図9の例では、パリティデータA’xorBxorC用に割り当てられた物理LBAは、ブロック番号30およびページ番号30で示される物理LBAである。次に、SSD423−4は、レコード803−4が示すように、LBA200に対応するリカバリ用のブロック番号およびページ番号を、パリティデータA’xorBxorC用に割り当てられた物理LBAを示すブロック番号30およびページ番号30で更新する。
また、SSD423−1は、CM411の指示により、更新後のデータに対するI/O用ブロック番号およびページ番号を、リカバリ用ブロック番号およびページ番号にコピーする。具体的には、SSD423−1は、レコード803−1が示すように、I/O用ブロック番号10およびI/O用ページ番号10を、リカバリ用ブロック番号およびページ番号にコピーする。また、Erasure Coding化したことにより、SSD423−1は、ガベージコレクション処理により、更新前のデータAを削除する。また、データA’のReplicationが不要となるため、SSD423−2は、データA’を削除する。
図10は、リカバリ時におけるFTLアドレス変換表611の更新例を示す説明図である。また、図11は、リカバリ時におけるSSD423−1〜4の更新例を示す説明図である。ここで、図10に示す表801、802は、それぞれ、図8に示した表801、802と同一であるため、説明を省略する。また、図10に示す表1001は、状態4におけるSSDのIDと、FTLアドレス変換表611の記憶内容とを対応付けたものである。そして、図8に示す表1001は、レコード1001−1〜5を有する。
状態4は、状態2から、SSD423−3が故障した状態である。この場合、CM411は、SSD423−1、2、4のリカバリ用のブロック番号およびページ番号を読み出して、SSD423−3が記憶していたデータを復元する。具体的には、CM411は、SSD423−1から、LBA100のブロック番号0およびページ番号0に割り当てられた物理LBAに格納されたデータAを読み出す。同様に、CM411は、SSD423−2からデータBを読み出し、SSD423−4からパリティデータAxorBxorCを読み出す。そして、CM411は、AxorBxor(AxorBxorC)を行って、データCを復元する。
次に、ディスクアレイ装置400が実行する処理について、図12〜図14を用いて説明する。
図12は、読み出し処理手順の一例を示すフローチャートである。読み出し処理は、CM411からの読み出し要求を受け付けた際に実行する。SSD423は、受け付けた読み出し要求が、I/Oのための読み出し要求か否かを判断する(ステップS1201)。ここで、例えば、SSD423は、読み出し要求に含まれる、I/O用のアクセスかリカバリ用のアクセスかを示すタグを参照することにより、I/Oのための読み出し要求か否かを判断することができる。
I/Oのための読み出し要求である場合(ステップS1201:Yes)、SSD423は、I/O用ブロック番号、ページ番号から、論理LBAを物理LBAに変換する(ステップS1202)。一方、リカバリのための読み出し要求である場合(ステップS1201:No)、SSD423は、リカバリ用ブロック番号、ページ番号から、論理LBAを物理LBAに変換する(ステップS1203)。
ステップS1202、またはステップS1203の処理終了後、SSD423は、変換した物理LBAを読み出す(ステップS1204)。次に、SSD423は、読み出したデータをCM411に送信する。以上により、CM411、SSD423は、読み出し処理を終了する。
図13は、Erasure Coding済データのin−place更新処理手順の一例を示すフローチャートである。SSD423は、CM411からのI/Oのための書き込み要求を受け付けて、物理LBAを割り当てて更新後のデータを書き込む(ステップS1301)。ここで、書き込み先は、更新前のデータを記憶するSSD423と同一のSSDである。そして、SSD423は、更新前のデータが記憶された物理LBAとは別の領域の物理LBAを割り当てて、更新後のデータを書き込む。
次に、CM411は、Replication先の論理LBAを決定する(ステップS1302)。例えば、図8の状態2の例では、SSD423−1のLBA100という論理LBAに対して、SSD423−2の200というReplication先の論理LBAを決定する。また、ここで決定される論理LBAは、更新前のデータを記憶するSSD423とは異なるSSD423の論理LBAである。
CM411は、決定したアドレスに対するI/Oのための書き込み要求をSSD423に送信する。書き込み要求を受け付けたSSD423は、物理LBAを割り当ててレプリカとなるデータを書き込む(ステップS1303)。そして、SSD423は、FTLアドレス変換表611のI/O用ブロック番号、ページ番号を、割り当てた物理LBAで更新する(ステップS1304)。ここで、SSD423は、リカバリ用ブロック番号、ページ番号の更新はしない。ステップS1304の処理終了後、CM411、SSD423は、Erasure Coding済データのin−place更新処理を終了する。
図14は、Erasure Coding化処理手順の一例を示すフローチャートである。CM411は、データを有するSSD423に対して、I/O用ブロック番号、ページ番号を用いて該当するLBAを読み出す(ステップS1401)。具体的には、CM411は、データを有するSSD423に対して、該当するLBAのI/Oのための読み出し要求を送信する。読み出し要求を受け付けたCM411は、FTLアドレス変換表611のI/O用ブロック番号およびページ番号を用いて該当するデータを読み出し、CM411に送信する。
次に、CM411は、読み込んだデータからパリティデータを生成する(ステップS1402)。そして、CM411は、生成したパリティデータをSSD423に書き込む(ステップS1403)。具体的には、CM411は、生成したパリティデータを含む書き込み要求であって、リカバリのための書き込み要求を、SSD423に送信する。書き込み要求を受け付けたSSD423は、FTLアドレス変換表611のリカバリ用ブロック番号およびページ番号で示される物理LBAに、パリティデータを書き込む。
また、CM411は、データを有するSSD423に対して該当するLBAのI/O用ブロック番号、ページ番号を、リカバリ用ブロック番号、ページ番号にコピーする指示を行う(ステップS1404)。指示を受けたSSD423は、該当するLBAのI/O用ブロック番号、ページ番号を、リカバリ用ブロック番号、ページ番号にコピーする。ステップS1404の処理終了後、CM411、SSD423は、Erasure Coding化処理を終了する。
次に、図15を用いて、本実施の形態にかかるRAID制御方法の効果の一例を説明し、従来手法として、図16を用いて、Erasure Coding済のデータの更新の一例を説明する。ここで、図15、図16で示す状態1では、SSD423−1〜3が、それぞれ、データA〜Cを記憶しており、SSD423−4が、パリティデータAxorBxorCを記憶しているとする。そして、図15、図16では、データAを更新する例を用いて本実施の形態の効果について、説明する。
図15は、本実施の形態にかかるRAID制御方法の効果の一例を示す説明図である。図15に示す状態1から、AがA’にin−place更新された場合、状態2となる。このとき、CM411は、SSD423−1にA’を書き込むとともに、SSD423−2にA’を書き込む。そして、パリティの更新を行わない。このように、パリティの更新を行わないため、Replication並みの書き込み性能となる。
そして、状態2から、Erasure Coding化された場合、状態3となる。このとき、CM411は、SSD423−4に、パリティデータA’xorBxorCを書き込む。以上により、CM411は、状態2、3において、Replication時に発生した4回の書き込みを、3回の書き込みに減らすことができる。従って、CM411は、replication同等の書き込み性能と、少ない書き込み回数とを同時に実現することが可能である。
また、状態2から、SSD423−3が故障した場合、状態4となる。このとき、CM411は、SSD423−1からAを読み出し、SSD423−2からBを読み出し、SSD423−4からパリティデータAxorBxorCを読み出して、AxorBxorCを復元する。
図16は、Erasure Coding済のデータの更新の一例を示す説明図である。図16では、従来手法の2つの方法として、1つ目の方法であるin−place更新する方法と、2つ目の方法である別のSSDにReplicationする方法とを図示する。
まず、1つ目の方法について、状態1から、AがA’にin−place更新された場合、状態2.1となる。このとき、in−place更新する装置は、SSD423−1にデータA’を書き込み、SSD423−2にデータA’を書き込み、SSD423−4にパリティデータA’xorBxorCを書き込む。ここで、パリティデータA’xorBxorCを書き込むためにRead−Modify−Writeが発生するため、Erasure Coding並みの書き込み性能となってしまう。また、状態2.1から、Erasure Coding化された場合、状態3.1となる。
また、2つ目の方法について、状態1から、Aが別のSSDにReplicationされた場合、状態2.2となる。このとき、Replicationする装置は、SSD423−2、3にデータA’を書き込む。次に、また、状態2.2から、Erasure Coding化された場合、状態3.2となる。このとき、前述の装置は、SSD423−1に、データA’を書き込むとともに、SSD423−4に、パリティデータA’xorBxorCを書き込む。このように、状態2.2、2.3において、書き込み回数が3回から4回となるため、書き込み性能が劣化することになる。
以上説明したように、CM411は、RAIDグループ内のいずれかのSSD423のデータを更新する際にはいずれかのSSD423の更新前のデータが記憶された領域とは別の領域に更新後のデータを書き込み、パリティデータは生成しない。そして、CM411は、GC処理起動時に更新後のデータからパリティデータを生成し、生成したパリティデータを書き込む。これにより、CM411は、パリティの書き込み回数を減らすことができ、書き込み性能を向上させることができる。
また、CM411は、RAIDグループ内のいずれかのSSD423を更新する場合、いずれかのSSD423とは異なる他のSSD423に、更新後のデータを書き込む。これにより、CM411は、いずれかのSSD423が故障したとしても、他のSSD423から更新後のデータを読み出すという、Replicationからのリカバリを行うことができる。
また、CM411は、更新後のデータのパリティデータを生成した後、いずれかのSSD423とは異なる他のSSD423に書き込んだ更新後のデータを削除する。これにより、CM411は、不要となったデータを削除し、SSD423の空き容量を増やすことができる。
また、更新後のデータを書き込んだ後から、更新後のデータを書き込んだSSD423がGC処理を起動する前に、RAIDグループの更新後のデータを書き込んだSSD423とは異なるSSD423が故障したとする。この場合、CM411は、更新後のデータを書き込んだSSD423の更新前のデータと、この更新前のデータのパリティデータとに基づいて、故障したSSD423のデータを復元する。具体的には、図11の例を用いると、CM411は、SSD423−3が故障しても、SSD423−1、2、4のデータA、B、パリティデータAxorBxorCから、SSD423−3のCを復元する。このように、CM411は、GC処理までは削除されない旧データを利用して、Erasure Codingからのリカバリを行うことができる。
なお、本実施の形態で説明したRAID制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本RAID制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本RAID制御プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明したFTL管理部610は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けIC(以下、単に「ASIC」と称す。)やFPGA(Field Programmable Gate Array)などのPLD(Programmable Logic Device)によっても実現することができる。具体的には、例えば、上述したFTL管理部610をHDL記述によって機能定義し、そのHDL記述を論理合成してASICやPLDに与えることにより、FTL管理部610を製造することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)フラッシュメモリを記憶媒体とする複数の記憶装置によって形成されたRAIDグループのいずれかの記憶装置のデータを更新する場合、前記いずれかの記憶装置の前記データが記憶された記憶領域とは異なる他の記憶領域に更新後のデータを書き込み、
前記いずれかの記憶装置のガベージコレクション処理の起動時に、前記更新後のデータに基づいて、前記更新後のデータのパリティデータを生成する、
制御部を有することを特徴とする情報処理装置。
(付記2)前記制御部は、
前記いずれかの記憶装置の前記データを更新する場合、前記いずれかの記憶装置の前記他の記憶領域に前記更新後のデータを書き込むとともに、前記RAIDグループの前記いずれかの記憶装置とは異なる他の記憶装置に、前記更新後のデータを書き込む、
ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記制御部は、
前記更新後のデータのパリティデータを生成した後、前記他の記憶装置に書き込んだ前記更新後のデータを削除する、
ことを特徴とする付記2に記載の情報処理装置。
(付記4)前記制御部は、
前記更新後のデータを書き込んだ後から前記いずれかの記憶装置がガベージコレクション処理を起動する前に前記RAIDグループの前記いずれかの記憶装置とは異なる他の記憶装置が故障した場合、前記いずれかの記憶装置の前記データと、前記データのパリティデータとに基づいて、故障した記憶装置のデータを復元する、
ことを特徴とする付記1〜3のいずれか一つに記載の情報処理装置。
(付記5)コンピュータが、
フラッシュメモリを記憶媒体とする複数の記憶装置によって形成されたRAIDグループのいずれかの記憶装置のデータを更新する場合、前記いずれかの記憶装置の前記データが記憶された記憶領域とは異なる他の記憶領域に更新後のデータを書き込み、
前記いずれかの記憶装置のガベージコレクション処理の起動時に、前記更新後のデータに基づいて、前記更新後のデータのパリティデータを生成する、
処理を実行することを特徴とするRAID制御方法。
(付記6)コンピュータに、
フラッシュメモリを記憶媒体とする複数の記憶装置によって形成されたRAIDグループのいずれかの記憶装置のデータを更新する場合、前記いずれかの記憶装置の前記データが記憶された記憶領域とは異なる他の記憶領域に更新後のデータを書き込み、
前記いずれかの記憶装置のガベージコレクション処理の起動時に、前記更新後のデータに基づいて、前記更新後のデータのパリティデータを生成する、
処理を実行させることを特徴とするRAID制御プログラム。
A〜C データ
1〜3 423、SSD
101 情報処理装置
400 ディスクアレイ装置
411 CM
600 制御部
601 マルチレベルRAID制御部
602 読み出し部
603 書き込み部
604 生成部
605 削除部
606 復元部
607 I/O発行部
610 FTL管理部
611 FTLアドレス変換表

Claims (5)

  1. フラッシュメモリを記憶媒体とする複数の記憶装置によって形成されたRAIDグループのいずれかの記憶装置のデータを更新する場合、前記いずれかの記憶装置の前記データが記憶された記憶領域とは異なる他の記憶領域に更新後のデータを書き込み、パリティデータは生成せず、
    前記いずれかの記憶装置のガベージコレクション処理の起動時に、前記更新後のデータに基づいて、前記更新後のデータのパリティデータを生成し、当該パリティデータを前記他の記憶領域に書き込む、
    制御部を有することを特徴とする情報処理装置。
  2. 前記制御部は、
    前記いずれかの記憶装置の前記データを更新する場合、前記いずれかの記憶装置の前記他の記憶領域に前記更新後のデータを書き込むとともに、前記RAIDグループの前記いずれかの記憶装置とは異なる他の記憶装置に、前記更新後のデータを書き込む、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御部は、
    前記更新後のデータを書き込んだ後から前記いずれかの記憶装置がガベージコレクション処理を起動する前に前記RAIDグループの前記いずれかの記憶装置とは異なる他の記憶装置が故障した場合、前記いずれかの記憶装置の前記データと、前記データのパリティデータとに基づいて、故障した記憶装置のデータを復元する、
    ことを特徴とする請求項1または2に記載の情報処理装置。
  4. コンピュータが、
    フラッシュメモリを記憶媒体とする複数の記憶装置によって形成されたRAIDグループのいずれかの記憶装置のデータを更新する場合、前記いずれかの記憶装置の前記データが記憶された記憶領域とは異なる他の記憶領域に更新後のデータを書き込み、パリティデータは生成せず、
    前記いずれかの記憶装置のガベージコレクション処理の起動時に、前記更新後のデータに基づいて、前記更新後のデータのパリティデータを生成し、当該パリティデータを前記他の記憶領域に書き込む、
    処理を実行することを特徴とするRAID制御方法。
  5. コンピュータに、
    フラッシュメモリを記憶媒体とする複数の記憶装置によって形成されたRAIDグループのいずれかの記憶装置のデータを更新する場合、前記いずれかの記憶装置の前記データが記憶された記憶領域とは異なる他の記憶領域に更新後のデータを書き込み、パリティデータは生成せず、
    前記いずれかの記憶装置のガベージコレクション処理の起動時に、前記更新後のデータに基づいて、前記更新後のデータのパリティデータを生成し、当該パリティデータを前記他の記憶領域に書き込む、
    処理を実行させることを特徴とするRAID制御プログラム。
JP2016080192A 2016-04-13 2016-04-13 情報処理装置、raid制御方法、およびraid制御プログラム Active JP6696280B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016080192A JP6696280B2 (ja) 2016-04-13 2016-04-13 情報処理装置、raid制御方法、およびraid制御プログラム
US15/456,655 US10019315B2 (en) 2016-04-13 2017-03-13 Control device for a storage apparatus, system, and method of controlling a storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016080192A JP6696280B2 (ja) 2016-04-13 2016-04-13 情報処理装置、raid制御方法、およびraid制御プログラム

Publications (2)

Publication Number Publication Date
JP2017191430A JP2017191430A (ja) 2017-10-19
JP6696280B2 true JP6696280B2 (ja) 2020-05-20

Family

ID=60038272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016080192A Active JP6696280B2 (ja) 2016-04-13 2016-04-13 情報処理装置、raid制御方法、およびraid制御プログラム

Country Status (2)

Country Link
US (1) US10019315B2 (ja)
JP (1) JP6696280B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10284234B1 (en) 2017-07-19 2019-05-07 EMC IP Holding Company LLC Facilitation of data deletion for distributed erasure coding
US10871911B2 (en) * 2017-07-26 2020-12-22 Vmware, Inc. Reducing data amplification when replicating objects across different sites
US10970204B2 (en) 2017-08-29 2021-04-06 Samsung Electronics Co., Ltd. Reducing read-write interference by adaptive scheduling in NAND flash SSDs
US11221958B2 (en) 2017-08-29 2022-01-11 Samsung Electronics Co., Ltd. System and method for LBA-based RAID
JP2019082897A (ja) * 2017-10-31 2019-05-30 富士通株式会社 情報処理装置、情報処理システム及びプログラム
CN108984133B (zh) * 2018-08-27 2022-01-28 杭州阿姆科技有限公司 一种ssd中raid的实现方法
US20200117362A1 (en) * 2018-10-15 2020-04-16 Netapp, Inc. Erasure coding content driven distribution of data blocks
US11210002B2 (en) * 2020-01-29 2021-12-28 Samsung Electronics Co., Ltd. Offloaded device-driven erasure coding

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3730609B2 (ja) * 2002-09-11 2006-01-05 株式会社東芝 冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラ
US20050228943A1 (en) * 2004-04-02 2005-10-13 Decenzo David P Multipath redundant storage system architecture and method
US7395396B2 (en) * 2004-08-30 2008-07-01 Hitachi, Ltd. Storage system and data relocation control device
JP2007241334A (ja) * 2006-03-03 2007-09-20 Hitachi Ltd ストレージシステム及びその制御方法
JP4884885B2 (ja) * 2006-08-25 2012-02-29 株式会社日立製作所 記憶制御装置及び記憶制御装置の障害回復方法
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
CN101548271B (zh) 2006-12-08 2012-12-05 桑德福斯公司 多个存储装置中的数据冗余
JP4439578B1 (ja) 2008-12-24 2010-03-24 株式会社東芝 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のデータ管理方法
JP4776703B2 (ja) * 2009-01-23 2011-09-21 株式会社東芝 半導体記憶装置を用いたraidシステム及びその制御方法
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8527749B2 (en) * 2009-11-11 2013-09-03 International Business Machines Corporation User device, computer program product and computer system for system for secure network storage
JP5388976B2 (ja) 2010-09-22 2014-01-15 株式会社東芝 半導体記憶制御装置
KR101774496B1 (ko) * 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
JP5364807B2 (ja) 2011-06-08 2013-12-11 パナソニック株式会社 メモリコントローラ及び不揮発性記憶装置
US20160179403A1 (en) * 2013-07-17 2016-06-23 Hitachi, Ltd. Storage controller, storage device, storage system, and semiconductor storage device
US9454434B2 (en) * 2014-01-17 2016-09-27 Netapp, Inc. File system driven raid rebuild technique
US8949692B1 (en) * 2014-01-23 2015-02-03 DSSD, Inc. Method and system for service-aware parity placement in a storage system
US20150205667A1 (en) * 2014-01-23 2015-07-23 DSSD, Inc. Method and system for service-aware data placement in a storage system

Also Published As

Publication number Publication date
US20170300383A1 (en) 2017-10-19
US10019315B2 (en) 2018-07-10
JP2017191430A (ja) 2017-10-19

Similar Documents

Publication Publication Date Title
JP6696280B2 (ja) 情報処理装置、raid制御方法、およびraid制御プログラム
KR101916206B1 (ko) 고체 상태 드라이브에서 자유 공간 어카운트와 함께 재구축되는 2 스테이지 파워 온 맵을 위한 방법들, 디바이스들, 및 시스템들
CN107391027B (zh) 廉价磁盘冗余阵列存储设备及其管理方法
US9792067B2 (en) Trim command processing in a solid state drive
US9176817B2 (en) Data management in solid state storage devices
US9342256B2 (en) Epoch based storage management for a storage device
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
US10061710B2 (en) Storage device
TWI638263B (zh) 資料備份方法、資料恢復方法以及儲存控制器
US10795827B2 (en) Adaptive management of intermediate storage
JP6007332B2 (ja) ストレージシステム及びデータライト方法
US10956071B2 (en) Container key value store for data storage devices
US9524105B2 (en) Process and apparatus to reduce declared capacity of a storage device by altering an encoding format
TWI557559B (zh) 利用快閃記憶體的壞頁來存取資料的方法
JP6817340B2 (ja) 計算機
KR101369408B1 (ko) 스토리지 시스템 및 이의 데이터 전송 방법
JP2015053075A (ja) メモリシステム、情報処理装置および記憶装置
JP2004094429A (ja) ディスクアレイ装置及び同装置におけるレイドレベル変更方法
CN112015339B (zh) 一种存储器的数据保存系统,保存方法及存储系统
WO2020052216A1 (zh) 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
US11221790B2 (en) Storage system
JP2016177822A (ja) メモリシステム
JP2024043063A (ja) メモリシステムおよび制御方法
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법
WO2024030226A1 (en) Distributed raid for parity-based flash storage devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191108

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200406

R150 Certificate of patent or registration of utility model

Ref document number: 6696280

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150