JP2019149128A - データ書き込み処理装置、記憶システム、データ書き込み処理方法及びプログラム - Google Patents
データ書き込み処理装置、記憶システム、データ書き込み処理方法及びプログラム Download PDFInfo
- Publication number
- JP2019149128A JP2019149128A JP2018035136A JP2018035136A JP2019149128A JP 2019149128 A JP2019149128 A JP 2019149128A JP 2018035136 A JP2018035136 A JP 2018035136A JP 2018035136 A JP2018035136 A JP 2018035136A JP 2019149128 A JP2019149128 A JP 2019149128A
- Authority
- JP
- Japan
- Prior art keywords
- data
- partial
- partial data
- storage medium
- redundant
- 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
Images
Landscapes
- Detection And Correction Of Errors (AREA)
Abstract
Description
RAIDに関連して、特許文献1には、ハードディスクのエラー処理が影響して応答時間が遅延することを抑止することを目的とした、ディスクアレイ装置のエラー制御方法が記載されている。特許文献1に記載の方法では、ディスクアレイ装置は、ホストコンピュータに接続された複数のハードディスクを有し、冗長化されたデータが複数のハードディスクに記録される。この方法では、複数のハードディスクに対するコマンド発行時にホストコンピュータ応答用の記録デバイス処理時間を監視し、所定の時間を経過した場合に、複数のハードディスクからの応答が無くてもホストコンピュータへ正常応答する。
特許文献2に記載の方式では、ストレージデバイス制御部が、複数のストレージデバイス各々のデータ読み出し処理速度を監視する。規定された読み出し処理速度を下回ったストレージデバイスを検知した場合、ストレージデバイス制御部は、当該ストレージデバイスを切り離し、他のストレージデバイスによるRAID機能によって上記クライアントへデータを送出する。
このようにデータを分割して格納する記憶方式におけるデータの書き込みの際、分割したデータのうち書き込みに時間がかかるものがあった場合、そのデータの書き込み完了を待つことで、書き込み要求があったデータ全体の書き込み完了までに時間がかかってしまう。これに対し、データの書き込み要求の実行時間の遅延を防止または低減できることが好ましい。
一方、上記の特許文献1から3には、上記のような遅延に対する対策は示されていない。
前記部分データを前記記憶媒体に書き込む書き込み処理部と、を備え、前記冗長データ生成部は、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成し、前記部分データ取得部は、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得する。
図1は、実施形態に係る記憶システムの機能構成を示す概略ブロック図である。図1に示すように、記憶システム1は、データ書き込み処理装置200と、記憶媒体300−1〜300−Mとを備える。データ書き込み処理装置200は、オリジナルデータ取得部210と、冗長データ生成部220と、部分データ取得部230と、書き込み処理部240とを備える。データ書き込み処理装置200は、クライアント装置100と通信を行う。
記憶媒体300−1〜300−Mを総称して記憶媒体300と表記する。Mは、記憶媒体300の数を示す正整数である。
ここでいうパリティデータは、誤り訂正用の冗長データである。
ここでいうフラグメントは、オリジナルデータおよびパリティデータが複数に分割されたデータである。フラグメントを部分データとも称する。
ここでいうフラグメントの損失は、フラグメントが正しく読み取れなくなることである。損失の形態は特定の形態に限定されず、例えば、フラグメントの内容が変わるいわゆるデータ化けであってもよいし、フラグメントの消失であってもよいし、フラグメントの一部のデータの消失であってもよい。以下では、損失が生じることを損失するとも称する。
データ書き込み処理装置200に対してデータの書き込み要求を行うクライアント装置100の数は、1つ以上であればよい。
オリジナルデータ取得部210は、オリジナルデータを取得する。具体的には、オリジナルデータ取得部210は、クライアント装置100が送信した書き込み要求信号からオリジナルデータを抽出する。
ここでの所定の程度は、損失許容要求数にて設定される。データ書き込み処理装置200が記憶媒体300に実際に書き込んだフラグメントのうち、損失許容要求数以下のフラグメントが損失した場合でも、オリジナルデータを復元できることが要求される。すなわち、損失許容要求数は、オリジナルデータの復元に関して損失が許容されるべきフラグメントの数として設定された正整数である。
さらには、冗長データ生成部220は、幾つかのフラグメントが実際には記憶媒体300に書き込まれないことに対応するため、損失許容数のフラグメントの損失が許容されるパリティデータを生成する。損失許容数は、損失許容要求数よりも大きい正整数である。
冗長データ生成部220がパリティデータを生成するアルゴリズムとして公知のアルゴリズムを用いることができる。例えば、冗長データ生成部220がリードソロモン符号(Reed-Solomon Coding)を用いてパリティデータを生成するようにしてもよい。
図2は、仮に、データ書き込み処理装置200が損失許容要求数に丁度対応する数のフラグメントを生成する場合の、フラグメントの例を示す図である。図2の例で、データD1は、オリジナルデータとパリティデータとを合わせたデータである。データD1は、データ書き込み処理装置200が記憶媒体300に書き込むデータの全体である。データ書き込み処理装置200が記憶媒体300に書き込むデータの全体を、全体データとも称する。
図2の例で、データ書き込み処理装置200は、N個のフラグメントをそれぞれ別々の記憶媒体300に書き込んでいる。従って、データ書き込み処理装置200は、N個のフラグメントをN個の記憶媒体300(記憶媒体300−1〜300−N)に書き込んでいる。図2〜図5の例では、M≧N+1である。
図3の例の記憶媒体300−5のように、フラグメントの書き込みに時間がかかる記憶媒体300がある場合、データ書き込み処理装置200が書き込み要求に応じて記憶媒体300にデータを書き込むのに要する時間は、このフラグメントの書き込み時間に引っ張られて長くなる。
図4は、データ書き込み処理装置200が損失許容数に対応する数のフラグメントを生成する場合の、フラグメントの例を示す図である。図2の場合と同様、データD1は、全体データである。上記のように、データD1は、オリジナルデータとパリティデータとを合わせたデータであり、データ書き込み処理装置200が記憶媒体300に書き込むデータの全体である。
また、記憶媒体300が互いに遠い場所に設けられている、あるいは、記憶媒体300が別々のデータセンタ内に位置するなど、記憶媒体300同士の空間的な独立性が高いほど、1つの原因で複数の記憶媒体300が故障する可能性が低くなる。この点で、記憶媒体300同士の空間的な独立性が高いほど、オリジナルデータを再現できる可能性が高くなる。
図5の例では、記憶媒体300−5へのフラグメントの書き込みに要する時間が最も長く、時間T22を要している。記憶媒体300−5の次にフラグメントの書き込みに要する時間が長い記憶媒体300は記憶媒体300−3となっており、時間T21を要している。
図6は、オリジナルデータの一部とパリティデータの一部とを含むフラグメントの構成例を示す図である。図6に示すフラグメントD2は、オリジナルデータの一部であるデータDOと、パリティデータの一部であるデータDPとを結合して構成されている。
部分データ取得部230が、オリジナルデータ、パリティデータそれぞれをJ個(Jは正整数)に分割し、得られたオリジナルデータの一部(データDO)とパリティデータの一部(データDP)とを一対一に結合することで、J個のフラグメントを生成するようにしてもよい。
図7は、全体データが、第一フラグメントおよび第二フラグメントに分割される場合の、フラグメントの例を示す図である。図7の例では、オリジナルデータがL個(Lは正整数)の第一フラグメントに分割され、パリティデータがK個(Kは正整数)の第二フラグメントに分割されている。
あるいは、冗長データ生成部220と部分データ取得部230とが1つの機能部として構成され、パリティデータを第二フラグメントの形態で生成するようにしてもよい。この場合、部分データ取得部230は、オリジナルデータをL個に分割してL個の第一フラグメントを生成し、オリジナルデータからパリティデータを生成する際にパリティデータとしてK個の第二フラグメントを生成するようにしてもよい。
図7の例のように、部分データ取得部230がフラグメントとして第一フラグメントおよび第二フラグメントを取得する場合、部分データ取得部230は、オリジナルデータの一部とパリティデータの一部を結合する必要がない。この点で、部分データ取得部230の負荷が比較的軽くて済む。
図4の例のように、書き込み処理部240がフラグメントを、他の記憶媒体300と物理的に別の記憶媒体300に一対一で書き込むようにしてもよい。この場合、記憶媒体300の何れかが故障しても、1つの記憶媒体300の故障につき1つのフラグメントの損失で済む。この点で、データ書き込み処理装置200によれば、オリジナルデータを再現できる可能性が比較的高い。
図8は、書き込み処理部240が、1つの記憶媒体300に複数のフラグメントを書き込む場合の、記憶媒体300とフラグメントとの対応関係の例を示す図である。図8では、個々のフラグメントに符号「D2」を付して示している。
図8の例で、書き込み処理部240は、1つの記憶媒体300に4つのフラグメントを書き込んでいる。損失許容要求数が4である場合、記憶媒体300の何れか1つが故障して、その記憶媒体300に書き込まれた4つのフラグメントが全て読み出せなくなった場合でも、オリジナルデータを復元することができる。
全ての記憶媒体300が、データ書き込み処理装置200とは別の装置として構成されていてもよい。あるいは、記憶媒体300の一部または全部が、データ書き込み処理装置200内に設けられていてもよい。
図9は、データ書き込み処理装置200がクライアント装置100からの書き込み要求に応じて記憶媒体300にデータの書き込みを行う処理手順の例を示すシーケンス図である。
データ書き込み処理装置200が損失許容要求数を取得する方法も特定の方法に限定されない。例えば、データ書き込み処理装置200が、損失許容要求数を予め記憶しておくようにしてもよい。あるいは、クライアント装置100が、データ書き込み処理装置200に対して損失許容要求数を指定するようにしてもよい。
そして、書き込み処理部240が、記憶媒体300にフラグメントを書き込む(シーケンスS15)。図9では、書き込み処理部240がフラグメントを書き込む記憶媒体300の数をL(Lは正整数)と表記している。
図10の処理で、書き込み処理部240は、記憶媒体300へのフラグメントの書き込み処理を開始する(ステップS21)。書き込み処理部240は、記憶媒体300に対して一斉にフラグメントの書き込みを指示する。
また、ステップS21で、書き込み処理部240は、各フラグメントの書き込み完了の検出を開始する。例えば、記憶媒体300がフラグメントの書き込み完了をデータ書き込み処理装置200へ通知し、書き込み処理部240が、この通知を検出するようにしてもよい。
必要フラグメント数に損失許容要求数を加算した数以上のフラグメントの書き込みを完了していないと書き込み処理部240が判定した場合(ステップS23:NO)、処理がステップS22へ戻る。この場合、書き込み処理部240は、ステップS22およびS23のループにて、必要フラグメント数に損失許容要求数を加算した数以上のフラグメントの書き込みの完了を待ち受ける。
また、ステップS24で、書き込み処理部240は、各フラグメントの書き込み完了の検出を終了する。
ステップS24の後、データ書き込み処理装置200は、図10の処理を終了する。
これにより、図5を参照して説明したように、データ書き込み処理装置200では、データの書き込み要求の実行時間の遅延を防止または低減できる。
シーケンスS15の後、データ書き込み処理装置200は、シーケンスS11での書き込み要求に対する応答として、書き込み完了をクライアント装置100へ通知する(シーケンスS16)。
シーケンスS16の後、データ書き込み処理装置200は、図16の処理を終了する。
図11は、書き込み処理部240がフラグメントの書き込みを行う処理手順の第2例を示すフローチャートである。書き込み処理部240は、図9のシーケンスS15で図10の処理に代えて図11の処理を行う。
一方、ステップS32で、所定時間が経過したと書き込み処理部240が判定した場合(ステップS32:NO)、処理がステップS33へ進む。
ステップS33〜S35は、図10のステップS22〜S24と同様である。
ステップS35の後、データ書き込み処理装置200は、図11の処理を終了する。
図11の処理を終了した後の図9における処理は、図10の処理を終了した場合と同様である。
これにより、記憶媒体300の何れかが故障しても、1つの記憶媒体300の故障につき1つのフラグメントの損失で済む。この点で、データ書き込み処理装置200によれば、オリジナルデータを再現できる可能性が比較的高い。
これにより、図5を参照して説明したように、データ書き込み処理装置200では、データの書き込み要求の実行時間の遅延を防止または低減できる。
また、書き込み処理部240が、まず所定時間の経過を待ち受ける場合と比較して、データ書き込み処理装置200が、記憶媒体300へのフラグメントの書き込みをより早く終了できる可能性がある。
図12は、本発明に係るデータ書き込み処理装置の最小構成の例を示す図である。図12に示すデータ書き込み処理装置10は、オリジナルデータ取得部11と、冗長データ生成部12と、部分データ取得部13と、書き込み処理部14とを備える。
データ書き込み処理装置21は、オリジナルデータ取得部22と、冗長データ生成部23と、部分データ取得部24と、書き込み処理部25とを備える。
上述したように、データ書き込み処理装置200がコンピュータ500に実装されていてもよい。この場合、データ書き込み処理装置200の各機能部の動作は、プログラムの形式で記憶装置520に記憶されている。CPU510は、プログラムを記憶装置520から読み出し、当該プログラムに従って各機能部の処理を実行する。
同様に、データ書き込み処理装置10がコンピュータ500に実装されていてもよい。また、データ書き込み処理装置21がコンピュータ500に実装されていてもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
10、21、200 データ書き込み処理装置
11、22、210 オリジナルデータ取得部
12、23、220 冗長データ生成部
13、24、230 部分データ取得部
14、25、240 書き込み処理部
100 クライアント装置
300 記憶媒体
Claims (7)
- 記憶媒体への書き込み要求の対象データであるオリジナルデータを取得するオリジナルデータ取得部と、
前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する冗長データ生成部と、
前記オリジナルデータおよび前記冗長データが分割された部分データを取得する部分データ取得部と、
前記部分データを前記記憶媒体に書き込む書き込み処理部と、
を備え、
前記冗長データ生成部は、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成し、
前記部分データ取得部は、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得する、
データ書き込み処理装置。 - 前記書き込み処理部は、前記部分データを、他の記憶媒体と物理的に別の記憶媒体に一対一対応で書き込む、
請求項1に記載のデータ書き込み処理装置。 - 前記書き込み処理部は、前記必要部分データ数に前記損失許容要求数を加算した数以上の前記部分データの前記記憶媒体への書き込みが完了したことを検出すると、前記部分データを前記記憶媒体に書き込む処理を終了する、
請求項1または請求項2に記載のデータ書き込み処理装置。 - 前記書き込み処理部は、前記部分データを前記記憶媒体に書き込む処理の開始から所定時間以上経過し、かつ、前記必要部分データ数に前記損失許容要求数を加算した数以上の前記部分データの前記記憶媒体への書き込みが完了したことを検出すると、前記部分データを前記記憶媒体に書き込む処理を終了する、
請求項1または請求項2に記載のデータ書き込み処理装置。 - 複数の記憶媒体と、データ書き込み処理装置とを備え、
前記データ書き込み処理装置は、
前記記憶媒体への書き込み要求の対象データであるオリジナルデータを取得するオリジナルデータ取得部と、
前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する冗長データ生成部と、
前記オリジナルデータおよび前記冗長データが分割された部分データを取得する部分データ取得部と、
前記部分データを前記記憶媒体に書き込む書き込み処理部と、
を備え、
前記冗長データ生成部は、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成し、
前記部分データ取得部は、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得する、
記憶システム。 - 記憶媒体への書き込み要求の対象データであるオリジナルデータを取得する工程と、
前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する工程と、
前記オリジナルデータおよび前記冗長データが分割された部分データを取得する工程と、
前記部分データを前記記憶媒体に書き込む書き込み工程と、
を含み、
前記冗長データを生成する工程では、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成し、
前記部分データを取得する工程では、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得する、
データ書き込み処理方法。 - コンピュータに、
記憶媒体への書き込み対象であるオリジナルデータを取得する工程と、
前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する工程と、
前記オリジナルデータおよび前記冗長データが分割された部分データを取得する工程と、
前記部分データを前記記憶媒体に書き込む書き込み工程と、
を実行させ、
前記冗長データを生成する工程では、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成させ、
前記部分データを取得する工程では、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得させる、
ためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018035136A JP6849226B2 (ja) | 2018-02-28 | 2018-02-28 | データ書き込み処理装置、記憶システム、データ書き込み処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018035136A JP6849226B2 (ja) | 2018-02-28 | 2018-02-28 | データ書き込み処理装置、記憶システム、データ書き込み処理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019149128A true JP2019149128A (ja) | 2019-09-05 |
JP6849226B2 JP6849226B2 (ja) | 2021-03-24 |
Family
ID=67849431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018035136A Active JP6849226B2 (ja) | 2018-02-28 | 2018-02-28 | データ書き込み処理装置、記憶システム、データ書き込み処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6849226B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021024887A1 (ja) | 2019-08-05 | 2021-02-11 | 株式会社小糸製作所 | 車両用灯具及び車両 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010286887A (ja) * | 2009-06-09 | 2010-12-24 | Nec System Technologies Ltd | ディスクアレイ装置および処理方法ならびにそのプログラム |
JP2016095613A (ja) * | 2014-11-13 | 2016-05-26 | 富士通株式会社 | ストレージプログラム、ストレージシステム、ストレージ方法、及びストレージ装置 |
-
2018
- 2018-02-28 JP JP2018035136A patent/JP6849226B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010286887A (ja) * | 2009-06-09 | 2010-12-24 | Nec System Technologies Ltd | ディスクアレイ装置および処理方法ならびにそのプログラム |
JP2016095613A (ja) * | 2014-11-13 | 2016-05-26 | 富士通株式会社 | ストレージプログラム、ストレージシステム、ストレージ方法、及びストレージ装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021024887A1 (ja) | 2019-08-05 | 2021-02-11 | 株式会社小糸製作所 | 車両用灯具及び車両 |
Also Published As
Publication number | Publication date |
---|---|
JP6849226B2 (ja) | 2021-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10613934B2 (en) | Managing RAID parity stripe contention | |
US9990256B1 (en) | Storage management system and method | |
JP5958020B2 (ja) | ストレージシステム | |
US20090210618A1 (en) | Apparatus and method to allocate resources in a data storage library | |
US8930750B2 (en) | Systems and methods for preventing data loss | |
US9081697B2 (en) | Storage control apparatus and storage control method | |
US9740440B2 (en) | Separating a hybrid asymmetric mix of a RAID 1 mirror and a parity-based RAID array | |
US9378092B2 (en) | Storage control apparatus and storage control method | |
JP2011170589A (ja) | ストレージ制御装置、ストレージ装置およびストレージ制御方法 | |
WO2013080299A1 (ja) | データ管理装置、データコピー方法、およびプログラム | |
US10210062B2 (en) | Data storage system comprising an array of drives | |
JP2007052509A (ja) | ディスクアレイ装置における媒体エラーリカバリ装置、方法、及びプログラム | |
JP4836014B2 (ja) | ディスクアレイ装置及び物理ディスクの復元方法 | |
WO2014111979A1 (ja) | ディスクアレイ制御装置およびディスクアレイ装置 | |
JP6849226B2 (ja) | データ書き込み処理装置、記憶システム、データ書き込み処理方法及びプログラム | |
US20210132822A1 (en) | System and method for selecting a redundant array of independent disks (raid) level for a storage device segment extent | |
US10133640B2 (en) | Storage apparatus and storage system | |
US10014983B2 (en) | System, receiving device, and method | |
JP4143040B2 (ja) | ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム | |
US10656987B1 (en) | Analysis system and method | |
US9852293B2 (en) | Antivirus scan during a data scrub operation | |
US11256439B2 (en) | System and method for parallel journaling in a storage cluster | |
JP5691227B2 (ja) | ストレージ装置及びその制御方法 | |
JP2007128183A (ja) | ストレージシステム | |
JP2019159416A (ja) | データ管理装置、ファイルシステム、データ管理方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190607 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200721 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200923 |
|
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: 20210202 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6849226 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |