(57)【要約】【課題】データを分割して格納する記憶方式におけるデータの書き込み要求の実行時間の遅延を防止または低減できるようにする。【解決手段】記憶媒体への書き込み要求の対象データであるオリジナルデータに基づいて誤り訂正用の冗長データを生成し、オリジナルデータおよび冗長データが分割された部分データを取得し、部分データを記憶媒体に書き込む。冗長データの生成部では、オリジナルデータの復元に関して損失が許容されるべき部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の部分データの損失が許容される冗長データを生成する。部分データの取得部では、オリジナルデータの復元に必要な部分データの数である必要部分データ数と損失許容数とを合計した数に、オリジナルデータおよび冗長データが分割された部分データを取得する。【選択図】図１
2019149128.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体への書き込み要求の対象データであるオリジナルデータを取得するオリジナルデータ取得部と、
前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する冗長データ生成部と、
前記オリジナルデータおよび前記冗長データが分割された部分データを取得する部分データ取得部と、
前記部分データを前記記憶媒体に書き込む書き込み処理部と、
を備え、
前記冗長データ生成部は、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成し、
前記部分データ取得部は、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得する、
データ書き込み処理装置。
【請求項２】
前記書き込み処理部は、前記部分データを、他の記憶媒体と物理的に別の記憶媒体に一対一対応で書き込む、
請求項１に記載のデータ書き込み処理装置。
【請求項３】
前記書き込み処理部は、前記必要部分データ数に前記損失許容要求数を加算した数以上の前記部分データの前記記憶媒体への書き込みが完了したことを検出すると、前記部分データを前記記憶媒体に書き込む処理を終了する、
請求項１または請求項２に記載のデータ書き込み処理装置。
【請求項４】
前記書き込み処理部は、前記部分データを前記記憶媒体に書き込む処理の開始から所定時間以上経過し、かつ、前記必要部分データ数に前記損失許容要求数を加算した数以上の前記部分データの前記記憶媒体への書き込みが完了したことを検出すると、前記部分データを前記記憶媒体に書き込む処理を終了する、
請求項１または請求項２に記載のデータ書き込み処理装置。
【請求項５】
複数の記憶媒体と、データ書き込み処理装置とを備え、
前記データ書き込み処理装置は、
前記記憶媒体への書き込み要求の対象データであるオリジナルデータを取得するオリジナルデータ取得部と、
前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する冗長データ生成部と、
前記オリジナルデータおよび前記冗長データが分割された部分データを取得する部分データ取得部と、
前記部分データを前記記憶媒体に書き込む書き込み処理部と、
を備え、
前記冗長データ生成部は、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成し、
前記部分データ取得部は、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得する、
記憶システム。
【請求項６】
記憶媒体への書き込み要求の対象データであるオリジナルデータを取得する工程と、
前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する工程と、
前記オリジナルデータおよび前記冗長データが分割された部分データを取得する工程と、
前記部分データを前記記憶媒体に書き込む書き込み工程と、
を含み、
前記冗長データを生成する工程では、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成し、
前記部分データを取得する工程では、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得する、
データ書き込み処理方法。
【請求項７】
コンピュータに、
記憶媒体への書き込み対象であるオリジナルデータを取得する工程と、
前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する工程と、
前記オリジナルデータおよび前記冗長データが分割された部分データを取得する工程と、
前記部分データを前記記憶媒体に書き込む書き込み工程と、
を実行させ、
前記冗長データを生成する工程では、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成させ、
前記部分データを取得する工程では、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得させる、
ためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ書き込み処理装置、記憶システム、データ書き込み処理方法及びプログラムに関する。
【背景技術】
【０００２】
ディスクアレイ装置における障害対応技術の１つにＲＡＩＤ（Redundant Arrays of Inexpensive Disks、または、Redundant Arrays of Independent Disks）がある。
ＲＡＩＤに関連して、特許文献１には、ハードディスクのエラー処理が影響して応答時間が遅延することを抑止することを目的とした、ディスクアレイ装置のエラー制御方法が記載されている。特許文献１に記載の方法では、ディスクアレイ装置は、ホストコンピュータに接続された複数のハードディスクを有し、冗長化されたデータが複数のハードディスクに記録される。この方法では、複数のハードディスクに対するコマンド発行時にホストコンピュータ応答用の記録デバイス処理時間を監視し、所定の時間を経過した場合に、複数のハードディスクからの応答が無くてもホストコンピュータへ正常応答する。
【０００３】
例えば、ディスクアレイ装置は、ホストコンピュータからリード命令を受けると、複数のハードディスクのうちいずれか１つに対してデータリードを行う。ホストコンピュータは、そのハードディスクからの応答を受ける前に所定の時間が経過すると、リードエラー処理の完了報告を待たずに、他のハードディスクからデータを読み出してホストコンピュータに応答する。
【０００４】
また、特許文献２には、ＣＲＣエラー又はパリティエラーの発生を契機としてＲＡＩＤ機能でデータ復元するストレージ装置で、データが破壊されるまでには至っていない障害が発生した場合に、継続してアプリケーションを実行可能にすることを目的としたストレージ制御方式が記載されている。
特許文献２に記載の方式では、ストレージデバイス制御部が、複数のストレージデバイス各々のデータ読み出し処理速度を監視する。規定された読み出し処理速度を下回ったストレージデバイスを検知した場合、ストレージデバイス制御部は、当該ストレージデバイスを切り離し、他のストレージデバイスによるＲＡＩＤ機能によって上記クライアントへデータを送出する。
【０００５】
また、特許文献３には、予備ディスク装置に対するデータ復元の必要性をいち早く認識し、また上位装置からの処理を遅延することなしにデータ復元を可能とすることを目的としたディスクアレイ装置が記載されている。特許文献３に記載のディスクアレイ装置は、複数のデータディスク装置、少なくとも１台の冗長ディスク装置及び予備ディスク装置を備える。
【０００６】
特許文献３に記載のディスクアレイ装置では、タイマ手段が、各データディスク装置からのデータ到着時間を計測する。データ到着時間が所定時間を越えて遅延した場合、制御手段が、残りのディスク装置から遅延しているデータを復元する。また、特許文献３に記載のディスクアレイ装置は、データディスク装置、冗長ディスク装置のずれかで訂正不可能なデータブロックが検出された場合、同一パリティグループに属する残りのディスク装置からデータ復元して交代領域に割り付ける。更に、特許文献３に記載のディスクアレイ装置は、交代領域オーバフロー、回転同期障害、故障の危険性の高いディスク装置につき、予備ディスク装置へのデータ復元を行う。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−１０３８５３
【特許文献２】特開２００９−０５９２８０
【特許文献３】特開平０７−２００１９１
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ディスクアレイ装置障害対応技術として、ＲＡＩＤの他にイレージャーコーディング（Erasure Coding、消失訂正符号）がある。イレージャーコーディングでは、データの書き込み要求があった場合、そのデータに冗長データを加えて複数のデータに分割し、物理的に複数のストレージに分散して書き込む。
このようにデータを分割して格納する記憶方式におけるデータの書き込みの際、分割したデータのうち書き込みに時間がかかるものがあった場合、そのデータの書き込み完了を待つことで、書き込み要求があったデータ全体の書き込み完了までに時間がかかってしまう。これに対し、データの書き込み要求の実行時間の遅延を防止または低減できることが好ましい。
一方、上記の特許文献１から３には、上記のような遅延に対する対策は示されていない。
【０００９】
本発明は、上述の課題を解決することのできるデータ書き込み処理装置、記憶システム、データ書き込み処理方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【００１０】
本発明の第１の態様によれば、データ書き込み処理装置は、記憶媒体への書き込み要求の対象データであるオリジナルデータを取得するオリジナルデータ取得部と、前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する冗長データ生成部と、前記オリジナルデータおよび前記冗長データが分割された部分データを取得する部分データ取得部と、前記部分データを前記記憶媒体に書き込む書き込み処理部と、を備え、前記冗長データ生成部は、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成し、前記部分データ取得部は、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得する。
【００１１】
本発明の第２の態様によれば、記憶システムは、複数の記憶媒体と、データ書き込み処理装置とを備え、前記データ書き込み処理装置は、前記記憶媒体への書き込み要求の対象データであるオリジナルデータを取得するオリジナルデータ取得部と、前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する冗長データ生成部と、前記オリジナルデータおよび前記冗長データが分割された部分データを取得する部分データ取得部と、
前記部分データを前記記憶媒体に書き込む書き込み処理部と、を備え、前記冗長データ生成部は、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成し、前記部分データ取得部は、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得する。
【００１２】
本発明の第３の態様によれば、データ書き込み処理方法は、記憶媒体への書き込み要求の対象データであるオリジナルデータを取得する工程と、前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する工程と、前記オリジナルデータおよび前記冗長データが分割された部分データを取得する工程と、前記部分データを前記記憶媒体に書き込む書き込み工程と、を含み、前記冗長データを生成する工程では、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成し、前記部分データを取得する工程では、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得する。
【００１３】
本発明の第４の態様によれば、プログラムは、コンピュータに、記憶媒体への書き込み対象であるオリジナルデータを取得する工程と、前記オリジナルデータに基づいて誤り訂正用の冗長データを生成する工程と、前記オリジナルデータおよび前記冗長データが分割された部分データを取得する工程と、前記部分データを前記記憶媒体に書き込む書き込み工程と、を実行させ、前記冗長データを生成する工程では、前記オリジナルデータの復元に関して損失が許容されるべき前記部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の前記部分データの損失が許容される前記冗長データを生成させ、前記部分データを取得する工程では、前記オリジナルデータの復元に必要な前記部分データの数である必要部分データ数と前記損失許容数とを合計した数に、前記オリジナルデータおよび前記冗長データが分割された前記部分データを取得させる、ためのプログラムである。
【発明の効果】
【００１４】
この発明によれば、データを分割して格納する記憶方式におけるデータの書き込み要求の実行時間の遅延を防止または低減できる。
【図面の簡単な説明】
【００１５】
【図１】実施形態に係る記憶システムの機能構成を示す概略ブロック図である。
【図２】仮に、データ書き込み処理装置が損失許容要求数に丁度対応する数のフラグメントを生成する場合の、フラグメントの例を示す図である。
【図３】仮に、データ書き込み処理装置が損失許容要求数に丁度対応する数のフラグメントを生成する場合に、データ書き込み処理装置が記憶媒体にフラグメントを書き込む所要時間の例を示す図である。
【図４】実施形態に係るデータ書き込み処理装置が損失許容数に対応する数のフラグメントを生成する場合の、フラグメントの例を示す図である。
【図５】実施形態に係るデータ書き込み処理装置が損失許容数に対応する数のフラグメントを生成する場合に、データ書き込み処理装置が記憶媒体にフラグメントを書き込む所要時間の例を示す図である。
【図６】実施形態に係るオリジナルデータの一部とパリティデータの一部とを含むフラグメントの構成例を示す図である。
【図７】実施形態に係る全体データが、第一フラグメントおよび第二フラグメントに分割される場合の、フラグメントの例を示す図である。
【図８】実施形態に係る書き込み処理装置が、１つの記憶媒体に複数のフラグメントを書き込む場合の、記憶媒体とフラグメントとの対応関係の例を示す図である。
【図９】実施形態に係るデータ書き込み処理装置がクライアント装置からの書き込み要求に応じて記憶媒体にデータの書き込みを行う処理手順の例を示すシーケンス図である。
【図１０】実施形態に係る書き込み処理装置がフラグメントの書き込みを行う処理手順の第１例を示すフローチャートである。
【図１１】実施形態に係る書き込み処理装置がフラグメントの書き込みを行う処理手順の第２例を示すフローチャートである。
【図１２】本発明に係るデータ書き込み処理装置の最小構成の例を示す図である。
【図１３】本発明に係る記憶システムの最小構成の例を示す図である。
【図１４】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図１は、実施形態に係る記憶システムの機能構成を示す概略ブロック図である。図１に示すように、記憶システム１は、データ書き込み処理装置２００と、記憶媒体３００−１〜３００−Ｍとを備える。データ書き込み処理装置２００は、オリジナルデータ取得部２１０と、冗長データ生成部２２０と、部分データ取得部２３０と、書き込み処理部２４０とを備える。データ書き込み処理装置２００は、クライアント装置１００と通信を行う。
記憶媒体３００−１〜３００−Ｍを総称して記憶媒体３００と表記する。Ｍは、記憶媒体３００の数を示す正整数である。
【００１７】
記憶システム１は、クライアント装置１００からの要求に応じてデータを記憶する。図１では、記憶システム１の機能部としてデータ書き込みのための機能部を示しているのに対し、記憶システム１が、さらにデータ読み出しのための機能部を備えていてもよい。その場合、データ読み出しのための機能部が、データ書き込み処理装置２００の一部として構成されていてもよいし、データ書き込み処理装置２００とは別の装置として構成されていてもよい。あるいは、記憶媒体３００からデータを読み出すシステムが、記憶システム１とは別に設けられていてもよい。
【００１８】
記憶システム１は、イレージャーコーディングにてデータを記憶する。ここでいうイレージャーコーディングは、オリジナルデータにパリティデータを付加したデータを複数のフラグメントにて記憶することで、幾つかのフラグメントが損失してもオリジナルデータを復元可能とするデータ記憶方式の総称である。
【００１９】
ここでいうオリジナルデータは書込要求で記憶対象となっているデータである。従って、オリジナルデータは、記憶媒体３００への書き込み要求の対象データである。
ここでいうパリティデータは、誤り訂正用の冗長データである。
ここでいうフラグメントは、オリジナルデータおよびパリティデータが複数に分割されたデータである。フラグメントを部分データとも称する。
ここでいうフラグメントの損失は、フラグメントが正しく読み取れなくなることである。損失の形態は特定の形態に限定されず、例えば、フラグメントの内容が変わるいわゆるデータ化けであってもよいし、フラグメントの消失であってもよいし、フラグメントの一部のデータの消失であってもよい。以下では、損失が生じることを損失するとも称する。
【００２０】
クライアント装置１００は、データ書き込み処理装置２００に対してデータの書き込み要求を行う。具体的には、クライアント装置１００は、オリジナルデータを含む書込要求信号をデータ書き込み処理装置２００へ送信する。上記のように、オリジナルデータは、書き込み要求の対象データである。従って、クライアント装置１００は、データ書き込み処理装置２００に対するデータの書き込み要求にて、オリジナルデータの書き込みを要求する。
【００２１】
クライアント装置１００は、データ書き込み処理装置２００に対してデータの書き込みを要求可能なものであればよく、特定の形態のものに限定されない。例えば、クライアント装置１００が、通信装置を用いて構成されていてもよい。あるいは、クライアント装置１００が、ワークステーション（Workstation）またはパソコン（Personal Computer；ＰＣ）など、通信機能を有するコンピュータを用いて構成されていてもよい。
データ書き込み処理装置２００に対してデータの書き込み要求を行うクライアント装置１００の数は、１つ以上であればよい。
【００２２】
データ書き込み処理装置２００は、クライアント装置１００からデータの書き込み要求を受けると、イレージャーコーディングにて記憶媒体３００へデータを書き込む。データ書き込み処理装置２００が、ワークステーションまたはパソコンなどのコンピュータを用いて構成されていてもよい。
オリジナルデータ取得部２１０は、オリジナルデータを取得する。具体的には、オリジナルデータ取得部２１０は、クライアント装置１００が送信した書き込み要求信号からオリジナルデータを抽出する。
【００２３】
冗長データ生成部２２０は、オリジナルデータに基づいてパリティデータを生成する。上記のように、ここでいうパリティデータは、誤り訂正用の冗長データである。データ書き込み処理装置２００が記憶媒体３００に書き込んだデータの一部が損失しても、所定の程度以下の損失であればパリティデータを用いてオリジナルデータを復元可能である。
ここでの所定の程度は、損失許容要求数にて設定される。データ書き込み処理装置２００が記憶媒体３００に実際に書き込んだフラグメントのうち、損失許容要求数以下のフラグメントが損失した場合でも、オリジナルデータを復元できることが要求される。すなわち、損失許容要求数は、オリジナルデータの復元に関して損失が許容されるべきフラグメントの数として設定された正整数である。
【００２４】
冗長データ生成部２２０は、損失許容要求数が示す条件を満たすパリティデータを生成する。具体的には、冗長データ生成部２２０は、損失許容要求数が示す条件に応じた冗長度のパリティデータを生成する。
さらには、冗長データ生成部２２０は、幾つかのフラグメントが実際には記憶媒体３００に書き込まれないことに対応するため、損失許容数のフラグメントの損失が許容されるパリティデータを生成する。損失許容数は、損失許容要求数よりも大きい正整数である。
冗長データ生成部２２０がパリティデータを生成するアルゴリズムとして公知のアルゴリズムを用いることができる。例えば、冗長データ生成部２２０がリードソロモン符号（Reed-Solomon Coding）を用いてパリティデータを生成するようにしてもよい。
【００２５】
冗長データ生成部２２０が、損失許容数のフラグメントの損失が許容されるパリティデータを生成することで、幾つかのフラグメントが記憶媒体３００に書き込まれなかった場合でも、損失許容要求数が示す条件を満たすことができる。具体的には、損失許容数から損失許容要求数を減算した差以下の数のフラグメントが記憶媒体３００に書き込まれなかった場合でも、損失許容要求数が示す条件を満たすことができる。
【００２６】
これにより、記憶媒体３００への書き込みに時間がかかっているフラグメントがあった場合、データ書き込み処理装置２００は、そのフラグメントの書き込み完了を待たずに記憶媒体３００へのデータの書き込みを完了させることができる。この点で、データ書き込み処理装置２００によれば、データの書き込み要求の実行時間の遅延を防止または低減できる。この点について、図２〜図５を参照して説明する。
【００２７】
図２および図３を参照して、本実施形態での処理との比較のために、仮に、データ書き込み処理装置２００が損失許容要求数に丁度対応する数のフラグメントを生成する場合について説明する。
図２は、仮に、データ書き込み処理装置２００が損失許容要求数に丁度対応する数のフラグメントを生成する場合の、フラグメントの例を示す図である。図２の例で、データＤ１は、オリジナルデータとパリティデータとを合わせたデータである。データＤ１は、データ書き込み処理装置２００が記憶媒体３００に書き込むデータの全体である。データ書き込み処理装置２００が記憶媒体３００に書き込むデータの全体を、全体データとも称する。
【００２８】
図２の例で、データ書き込み処理装置２００は、全体データ（データＤ１）を、Ｎ個のフラグメントＤ２−１〜Ｄ２−Ｎに分割している。Ｎは、オリジナルデータの復元に必要なフラグメントの数に損失許容要求数を加算した正整数である。以下では、オリジナルデータの復元に必要なフラグメントの数を、必要フラグメント数、あるいは、必要部分データ数と称する。
図２の例で、データ書き込み処理装置２００は、Ｎ個のフラグメントをそれぞれ別々の記憶媒体３００に書き込んでいる。従って、データ書き込み処理装置２００は、Ｎ個のフラグメントをＮ個の記憶媒体３００（記憶媒体３００−１〜３００−Ｎ）に書き込んでいる。図２〜図５の例では、Ｍ≧Ｎ＋１である。
【００２９】
図３は、仮に、データ書き込み処理装置２００が損失許容要求数に丁度対応する数のフラグメントを生成する場合に、データ書き込み処理装置２００が記憶媒体３００にフラグメントを書き込む所要時間の例を示す図である。図３のグラフの横軸は時間を示す。縦軸には、記憶媒体３００−１〜３００−Ｎが割り当てられており、図３は、これらの記憶媒体３００にフラグメントを書き込む所要時間を示している。
【００３０】
図３の例では、記憶媒体３００−５へのフラグメントの書き込みに要する時間が最も長く、時間Ｔ１１を要している。データ書き込み処理装置２００は、全てのフラグメントの書き込み完了を待つ必要がある。従って、データ書き込み処理装置２００が書き込み要求に応じて記憶媒体３００にデータを書き込むのに要する時間は、時間Ｔ１１となる。
図３の例の記憶媒体３００−５のように、フラグメントの書き込みに時間がかかる記憶媒体３００がある場合、データ書き込み処理装置２００が書き込み要求に応じて記憶媒体３００にデータを書き込むのに要する時間は、このフラグメントの書き込み時間に引っ張られて長くなる。
【００３１】
図４および図５では、データ書き込み処理装置２００が損失許容数に対応する数のフラグメントを生成する場合について説明する。上記のように、損失許容数は、損失許容要求数よりも大きい正整数である。
図４は、データ書き込み処理装置２００が損失許容数に対応する数のフラグメントを生成する場合の、フラグメントの例を示す図である。図２の場合と同様、データＤ１は、全体データである。上記のように、データＤ１は、オリジナルデータとパリティデータとを合わせたデータであり、データ書き込み処理装置２００が記憶媒体３００に書き込むデータの全体である。
【００３２】
図４の例で、データ書き込み処理装置２００は、全体データ（データＤ１）を、Ｎ＋１個のフラグメントＤ２−１〜Ｄ２−（Ｎ＋１）に分割している。データ書き込み処理装置２００は、全体データを、必要フラグメント数と損失許容要求数との合計に、さらに余裕分の１つを加えた数のフラグメントに分割している。そして、データ書き込み処理装置２００は、Ｎ＋１個のフラグメントをそれぞれ別々の記憶媒体３００に書き込んでいる。従って、データ書き込み処理装置２００は、Ｎ＋１個のフラグメントをＮ＋１個の記憶媒体３００（記憶媒体３００−１〜３００−（Ｎ＋１））に書き込んでいる。
【００３３】
ここで、記憶媒体３００の各々は、他の記憶媒体３００と物理的に別の記憶媒体３００として構成されている。例えば、記憶媒体３００の各々が外部記憶装置として構成されるなど、別々の装置として構成されていてもよい。あるいは、記憶媒体３００の各々が、同一のハードディスクドライブ内の異なるハードディスクであるなど、同一の装置内に設けられていてもよい。
【００３４】
記憶媒体３００が、別々の装置として構成されているなど、記憶媒体３００同士の構成上の独立性が高いほど、１つの原因で複数の記憶媒体３００が故障する可能性が低くなり、この点で、オリジナルデータを再現できる可能性が高くなる。
また、記憶媒体３００が互いに遠い場所に設けられている、あるいは、記憶媒体３００が別々のデータセンタ内に位置するなど、記憶媒体３００同士の空間的な独立性が高いほど、１つの原因で複数の記憶媒体３００が故障する可能性が低くなる。この点で、記憶媒体３００同士の空間的な独立性が高いほど、オリジナルデータを再現できる可能性が高くなる。
【００３５】
図５は、データ書き込み処理装置２００が損失許容数に対応する数のフラグメントを生成する場合に、データ書き込み処理装置２００が記憶媒体３００にフラグメントを書き込む所要時間の例を示す図である。図５のグラフの横軸は時間を示す。縦軸には、記憶媒体３００−１〜３００−（Ｎ＋１）が割り当てられており、図５は、これらの記憶媒体３００にフラグメントを書き込む所要時間を示している。
図５の例では、記憶媒体３００−５へのフラグメントの書き込みに要する時間が最も長く、時間Ｔ２２を要している。記憶媒体３００−５の次にフラグメントの書き込みに要する時間が長い記憶媒体３００は記憶媒体３００−３となっており、時間Ｔ２１を要している。
【００３６】
図２〜図３の例の場合と異なり、図４〜図５の例では、データ書き込み処理装置２００は、余裕分である１つ分の記憶媒体３００について、フラグメントの書き込み完了を待つ必要がない。図５の例で、データ書き込み処理装置２００は、記憶媒体３００−３へのフラグメントの書き込みを完了した時間Ｔ２１の時点（時間Ｔ２１が経過した時点）で、損失許容要求数に対応するために必要なＮ個のフラグメントの書き込みを完了している。従って、データ書き込み処理装置２００は、記憶媒体３００−５へのフラグメントの書き込みが完了する時間Ｔ２２の経過を待つ必要なしに、時間Ｔ２１の時点で、記憶媒体３００へのデータの書き込みを終了することができる。
【００３７】
すなわち、データ書き込み処理装置２００が書き込み要求に応じて記憶媒体３００にデータを書き込むのに要する時間は、時間Ｔ２１となる。このように、データ書き込み処理装置２００が、必要フラグメント数と損失許容要求数との合計に、さらに余裕分を加えた数のフラグメントを取得して記憶媒体３００に書き込むことで、データの書き込み要求の実行時間の遅延を防止または低減できる。
【００３８】
部分データ取得部２３０は、フラグメントを取得する。上記のように、フラグメントは、オリジナルデータおよびパリティデータが複数に分割されたデータである。特に、部分データ取得部２３０は、必要フラグメント数と損失許容数とを合計した数に、オリジナルデータおよびパリティデータが分割されたフラグメントを取得する。
【００３９】
部分データ取得部２３０が、オリジナルデータの一部とパリティデータの一部とを含むフラグメントを取得するようにしてもよい。
図６は、オリジナルデータの一部とパリティデータの一部とを含むフラグメントの構成例を示す図である。図６に示すフラグメントＤ２は、オリジナルデータの一部であるデータＤＯと、パリティデータの一部であるデータＤＰとを結合して構成されている。
部分データ取得部２３０が、オリジナルデータ、パリティデータそれぞれをＪ個（Ｊは正整数）に分割し、得られたオリジナルデータの一部（データＤＯ）とパリティデータの一部（データＤＰ）とを一対一に結合することで、Ｊ個のフラグメントを生成するようにしてもよい。
【００４０】
あるいは、部分データ取得部２３０が、オリジナルデータが分割されたフラグメントと、パリティデータが分割されたフラグメントとを取得するようにしてもよい。以下では、オリジナルデータが分割されたフラグメントを、第一フラグメント、あるいは、第一部分データと称する。パリティデータが分割されたフラグメントを第二フラグメント、あるいは、第二部分データと称する。
図７は、全体データが、第一フラグメントおよび第二フラグメントに分割される場合の、フラグメントの例を示す図である。図７の例では、オリジナルデータがＬ個（Ｌは正整数）の第一フラグメントに分割され、パリティデータがＫ個（Ｋは正整数）の第二フラグメントに分割されている。
【００４１】
部分データ取得部２３０が、オリジナルデータをＬ個に分割してＬ個の第一フラグメントを生成し、パリティデータをＫ個に分割してＫ個の第二フラグメントを生成するようにしてもよい。
あるいは、冗長データ生成部２２０と部分データ取得部２３０とが１つの機能部として構成され、パリティデータを第二フラグメントの形態で生成するようにしてもよい。この場合、部分データ取得部２３０は、オリジナルデータをＬ個に分割してＬ個の第一フラグメントを生成し、オリジナルデータからパリティデータを生成する際にパリティデータとしてＫ個の第二フラグメントを生成するようにしてもよい。
図７の例のように、部分データ取得部２３０がフラグメントとして第一フラグメントおよび第二フラグメントを取得する場合、部分データ取得部２３０は、オリジナルデータの一部とパリティデータの一部を結合する必要がない。この点で、部分データ取得部２３０の負荷が比較的軽くて済む。
【００４２】
書き込み処理部２４０は、フラグメントを記憶媒体３００に書き込む。
図４の例のように、書き込み処理部２４０がフラグメントを、他の記憶媒体３００と物理的に別の記憶媒体３００に一対一で書き込むようにしてもよい。この場合、記憶媒体３００の何れかが故障しても、１つの記憶媒体３００の故障につき１つのフラグメントの損失で済む。この点で、データ書き込み処理装置２００によれば、オリジナルデータを再現できる可能性が比較的高い。
【００４３】
あるいは、書き込み処理部２４０が、１つの記憶媒体３００に複数のフラグメントを書き込むようにしてもよい。
図８は、書き込み処理部２４０が、１つの記憶媒体３００に複数のフラグメントを書き込む場合の、記憶媒体３００とフラグメントとの対応関係の例を示す図である。図８では、個々のフラグメントに符号「Ｄ２」を付して示している。
図８の例で、書き込み処理部２４０は、１つの記憶媒体３００に４つのフラグメントを書き込んでいる。損失許容要求数が４である場合、記憶媒体３００の何れか１つが故障して、その記憶媒体３００に書き込まれた４つのフラグメントが全て読み出せなくなった場合でも、オリジナルデータを復元することができる。
【００４４】
このように、書き込み処理部２４０が１つの記憶媒体３００に書き込むフラグメントの数が損失許容要求数以下であれば、記憶媒体３００の何れか１つが故障して、その記憶媒体３００に書き込まれたフラグメントが全て読み出せなくなった場合でも、オリジナルデータを復元することができる。あるいは、書き込み処理部２４０が１つの記憶媒体３００に書き込むフラグメントの数が損失許容要求数の半分以下であれば、記憶媒体３００が何れか２つまで故障して、それら記憶媒体３００に書き込まれたフラグメントが全て読み出せなくなった場合でも、オリジナルデータを復元することができる。
【００４５】
記憶媒体３００は、書き込み処理部２４０が行う書き込み処理にて書き込まれるフラグメントを記憶する。上記のように、記憶媒体３００の各々は、他の記憶媒体３００と物理的に別の記憶媒体３００として構成されている。
全ての記憶媒体３００が、データ書き込み処理装置２００とは別の装置として構成されていてもよい。あるいは、記憶媒体３００の一部または全部が、データ書き込み処理装置２００内に設けられていてもよい。
【００４６】
次に、図９〜図１１を参照して、データ書き込み処理装置２００の動作について説明する。
図９は、データ書き込み処理装置２００がクライアント装置１００からの書き込み要求に応じて記憶媒体３００にデータの書き込みを行う処理手順の例を示すシーケンス図である。
【００４７】
図９の処理で、クライアント装置１００がデータ書き込み処理装置２００へ、オリジナルデータを含む書き込み要求信号を送信すると（シーケンスＳ１１）、データ書き込み処理装置２００が、その書き込み要求信号を受信する。データ書き込み処理装置２００のオリジナルデータ取得部２１０は、書き込み要求信号からオリジナルデータを抽出する（シーケンスＳ１２）。
【００４８】
そして、冗長データ生成部２２０が、オリジナルデータおよび損失許容数に応じてパリティデータを生成する（シーケンスＳ１３）。冗長データ生成部２２０が、損失許容数を取得する方法は、特定の方法に限定されない。例えば、データ書き込み処理装置２００が、損失許容数を予め記憶しておくようにしてもよい。あるいは、データ書き込み処理装置２００が、損失許容要求数に基づいて損失許容数を決定するようにしてもよい。あるいは、クライアント装置１００が、データ書き込み処理装置２００に対して損失許容数を指定するようにしてもよい。
データ書き込み処理装置２００が損失許容要求数を取得する方法も特定の方法に限定されない。例えば、データ書き込み処理装置２００が、損失許容要求数を予め記憶しておくようにしてもよい。あるいは、クライアント装置１００が、データ書き込み処理装置２００に対して損失許容要求数を指定するようにしてもよい。
【００４９】
次に、部分データ取得部２３０がフラグメントを取得する（シーケンスＳ１４）。図６および図７を参照して説明したように、部分データ取得部２３０がオリジナルデータおよびパリティデータを生成するようにしてもよい。あるいは、冗長データ生成部２２０が、パリティデータを第二フラグメントの形態で生成し、部分データ取得部２３０が、オリジナルデータを第一フラグメントに分割するようにしてもよい。
そして、書き込み処理部２４０が、記憶媒体３００にフラグメントを書き込む（シーケンスＳ１５）。図９では、書き込み処理部２４０がフラグメントを書き込む記憶媒体３００の数をＬ（Ｌは正整数）と表記している。
【００５０】
図１０は、書き込み処理部２４０がフラグメントの書き込みを行う処理手順の第１例を示すフローチャートである。書き込み処理部２４０は、図９のシーケンスＳ１５で図１０の処理を行う。
図１０の処理で、書き込み処理部２４０は、記憶媒体３００へのフラグメントの書き込み処理を開始する（ステップＳ２１）。書き込み処理部２４０は、記憶媒体３００に対して一斉にフラグメントの書き込みを指示する。
また、ステップＳ２１で、書き込み処理部２４０は、各フラグメントの書き込み完了の検出を開始する。例えば、記憶媒体３００がフラグメントの書き込み完了をデータ書き込み処理装置２００へ通知し、書き込み処理部２４０が、この通知を検出するようにしてもよい。
【００５１】
次に、書き込み処理部２４０は、書き込みを完了したフラグメント数を計数する（ステップＳ２２）。そして、書き込み処理部２４０は、必要フラグメント数に損失許容要求数を加算した数以上のフラグメントの書き込みを完了したか否かを判定する（ステップＳ２３）。
必要フラグメント数に損失許容要求数を加算した数以上のフラグメントの書き込みを完了していないと書き込み処理部２４０が判定した場合（ステップＳ２３：ＮＯ）、処理がステップＳ２２へ戻る。この場合、書き込み処理部２４０は、ステップＳ２２およびＳ２３のループにて、必要フラグメント数に損失許容要求数を加算した数以上のフラグメントの書き込みの完了を待ち受ける。
【００５２】
一方、ステップＳ２３で、必要フラグメント数に損失許容要求数を加算した数以上のフラグメントの書き込みを完了したと判定した場合（ステップＳ２３：ＹＥＳ）、書き込み処理部２４０は、記憶媒体３００へのフラグメントの書き込み処理を終了する（ステップＳ２４）。記憶媒体３００への書き込みが完了していないフラグメントがあっても、書き込み処理部２４０は、そのフラグメントの書き込み完了を待たない。
また、ステップＳ２４で、書き込み処理部２４０は、各フラグメントの書き込み完了の検出を終了する。
ステップＳ２４の後、データ書き込み処理装置２００は、図１０の処理を終了する。
【００５３】
図１０の処理では、書き込み処理部２４０は、必要部分データ数に損失許容要求数を加算した数以上のフラグメントの記憶媒体３００への書き込みが完了したことを検出すると、フラグメントを記憶媒体３００に書き込む処理を終了する。
これにより、図５を参照して説明したように、データ書き込み処理装置２００では、データの書き込み要求の実行時間の遅延を防止または低減できる。
【００５４】
図１０の処理を終了すると、データ書き込み処理装置２００は、図９のシーケンスＳ１５の処理を終了する。
シーケンスＳ１５の後、データ書き込み処理装置２００は、シーケンスＳ１１での書き込み要求に対する応答として、書き込み完了をクライアント装置１００へ通知する（シーケンスＳ１６）。
シーケンスＳ１６の後、データ書き込み処理装置２００は、図１６の処理を終了する。
【００５５】
あるいは、シーケンスＳ１５の処理で、書き込み処理部２４０が、まず所定時間の経過を待ち受けるようにしてもよい。この点について、図１１を参照して説明する。
図１１は、書き込み処理部２４０がフラグメントの書き込みを行う処理手順の第２例を示すフローチャートである。書き込み処理部２４０は、図９のシーケンスＳ１５で図１０の処理に代えて図１１の処理を行う。
【００５６】
図１１のステップＳ３１は、図１０のステップＳ２１と同様である。ステップＳ３１の後、書き込み処理部２４０は、所定時間が経過したか否かを判定する（ステップＳ３２）。例えば、データ書き込み処理装置２００が、所定時間として、記憶媒体３００にフラグメントを書き込むのに要する平均的な時間に余裕分を加算した時間を予め記憶しておくようにしてもよい。
【００５７】
所定時間が経過していないと書き込み処理部２４０が判定した場合（ステップＳ３２：ＮＯ）、処理がステップＳ３２へ戻る。この場合、書き込み処理部２４０は、必要フラグメント数に損失許容要求数を加算した数以上のフラグメントの書き込みを完了したか否かにかかわらず、ステップＳ３２のループにて所定時間の経過を待ち受ける。
一方、ステップＳ３２で、所定時間が経過したと書き込み処理部２４０が判定した場合（ステップＳ３２：ＮＯ）、処理がステップＳ３３へ進む。
ステップＳ３３〜Ｓ３５は、図１０のステップＳ２２〜Ｓ２４と同様である。
ステップＳ３５の後、データ書き込み処理装置２００は、図１１の処理を終了する。
【００５８】
図１１の処理では、書き込み処理部２４０は、フラグメントを記憶媒体３００に書き込む処理の開始から所定時間以上経過し、かつ、必要部分データ数に損失許容要求数を加算した数以上のフラグメントの記憶媒体３００への書き込みが完了したことを検出すると、フラグメントを記憶媒体３００に書き込む処理を終了する。
【００５９】
図１１の処理では、書き込み処理部２４０が、フラグメントを記憶媒体３００に書き込む処理の開始から所定時間以上経過するのを待つ点で、図１０の処理よりも多くのフラグメントを記憶媒体３００へ書き込める可能性がある。より多くのフラグメントを記憶媒体３００に書き込めることで、オリジナルデータの復元時に、より多くのフラグメントを正しく読み取れない場合でも、オリジナルデータを復元することができる。特に、オリジナルデータの復元時に、損失許容要求数よりも多数のフラグメントを正しく読み取れない場合でも、オリジナルデータを復元することができる。
【００６０】
また、図１１の処理では、書き込み処理部２４０が、必要部分データ数に損失許容要求数を加算した数以上のフラグメントの記憶媒体３００への書き込みが完了したことを検出すると、フラグメントを記憶媒体３００に書き込む処理を終了する。この点で、図１０の処理の場合と同様、データ書き込み処理装置２００では、データの書き込み要求の実行時間の遅延を防止または低減できる。
図１１の処理を終了した後の図９における処理は、図１０の処理を終了した場合と同様である。
【００６１】
以上のように、オリジナルデータ取得部２１０は、オリジナルデータを取得する。冗長データ生成部２２０は、オリジナルデータに基づいてパリティデータを生成する。部分データ取得部２３０は、フラグメントを取得する。書き込み処理部２４０は、フラグメントを記憶媒体３００に書き込む。ここで、冗長データ生成部２２０は、損失許容数のフラグメントの損失が許容されるパリティデータを生成する。部分データ取得部２３０は、必要部分データ数と損失許容数とを合計した数に、オリジナルデータおよびパリティデータが分割されたフラグメントを取得する。
【００６２】
このように、冗長データ生成部２２０が、必要許容要求数よりも大きい数である必要許容数のフラグメントの損失が許容されるパリティデータを生成することで、書き込み処理部２４０が全てのフラグメントを記憶媒体３００に書き込む必要はない。記憶媒体３００への書き込みに時間がかかっているフラグメントがある場合、書き込み処理部２４０は、損失許容数から損失許容要求数を減算した差以下のフラグメントの記憶媒体３００への書き込みの完了を待つ必要なしに、フラグメントの記憶媒体３００への書き込みを終了することができる。この点で、データ書き込み処理装置２００では、データの書き込み要求の実行時間の遅延を防止または低減できる。
【００６３】
また、書き込み処理部２４０は、フラグメントを、他の記憶媒体３００と物理的に別の記憶媒体３００に一対一対応で書き込む。
これにより、記憶媒体３００の何れかが故障しても、１つの記憶媒体３００の故障につき１つのフラグメントの損失で済む。この点で、データ書き込み処理装置２００によれば、オリジナルデータを再現できる可能性が比較的高い。
【００６４】
また、書き込み処理部２４０は、必要部分データ数に損失許容要求数を加算した数以上の部分データの前記記憶媒体への書き込みが完了したことを検出すると、フラグメントを記憶媒体に書き込む処理を終了する。
これにより、図５を参照して説明したように、データ書き込み処理装置２００では、データの書き込み要求の実行時間の遅延を防止または低減できる。
また、書き込み処理部２４０が、まず所定時間の経過を待ち受ける場合と比較して、データ書き込み処理装置２００が、記憶媒体３００へのフラグメントの書き込みをより早く終了できる可能性がある。
【００６５】
また、書き込み処理部２４０は、フラグメントを記憶媒体３００に書き込む処理の開始から所定時間以上経過し、かつ、必要部分データ数に損失許容要求数を加算した数以上のフラグメントの記憶媒体３００への書き込みが完了したことを検出すると、フラグメントを記憶媒体３００に書き込む処理を終了する。
【００６６】
書き込み処理部２４０が、フラグメントを記憶媒体３００に書き込む処理の開始から所定時間以上経過するのを待つ点で、比較的多くのフラグメントを記憶媒体３００へ書き込める可能性がある。より多くのフラグメントを記憶媒体３００に書き込めることで、オリジナルデータの復元時に、より多くのフラグメントを正しく読み取れない場合でも、オリジナルデータを復元することができる。特に、オリジナルデータの復元時に、損失許容要求数よりも多数のフラグメントを正しく読み取れない場合でも、オリジナルデータを復元することができる。
【００６７】
また、書き込み処理部２４０が、必要部分データ数に損失許容要求数を加算した数以上のフラグメントの記憶媒体３００への書き込みが完了したことを検出すると、フラグメントを記憶媒体３００に書き込む処理を終了する点で、データ書き込み処理装置２００では、データの書き込み要求の実行時間の遅延を防止または低減できる。
【００６８】
次に、図１２および図１３を参照して本発明の最小構成について説明する。
図１２は、本発明に係るデータ書き込み処理装置の最小構成の例を示す図である。図１２に示すデータ書き込み処理装置１０は、オリジナルデータ取得部１１と、冗長データ生成部１２と、部分データ取得部１３と、書き込み処理部１４とを備える。
【００６９】
かかる構成にて、オリジナルデータ取得部１１は、記憶媒体への書き込み要求の対象データであるオリジナルデータを取得する。冗長データ生成部１２は、オリジナルデータに基づいて誤り訂正用の冗長データを生成する。部分データ取得部１３は、オリジナルデータおよび冗長データが分割された部分データを取得する。書き込み処理部１４は、部分データを記憶媒体に書き込む。ここで、冗長データ生成部１２は、オリジナルデータの復元に関して損失が許容されるべき部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の部分データの損失が許容される冗長データを生成する。部分データ取得部１３は、オリジナルデータの復元に必要な部分データの数である必要部分データ数と損失許容数とを合計した数に、オリジナルデータおよび冗長データが分割された部分データを取得する。
【００７０】
このように、冗長データ生成部１２が、必要許容要求数よりも大きい数である必要許容数の部分データの損失が許容される冗長データを生成することで、書き込み処理部１４が全ての部分データを記憶媒体に書き込む必要はない。記憶媒体への書き込みに時間がかかっている部分データがある場合、書き込み処理部１４は、損失許容数から損失許容要求数を減算した差以下の部分データの記憶媒体への書き込みの完了を待つ必要なしに、部分データの記憶媒体への書き込みを終了することができる。この点で、データ書き込み処理装置１０では、データの書き込み要求の実行時間の遅延を防止または低減できる。
【００７１】
図１３は、本発明に係る記憶システムの最小構成の例を示す図である。図１３に示す記憶システム２０は、複数の記憶媒体２６と、データ書き込み処理装置２１とを備える。
データ書き込み処理装置２１は、オリジナルデータ取得部２２と、冗長データ生成部２３と、部分データ取得部２４と、書き込み処理部２５とを備える。
【００７２】
かかる構成にて、オリジナルデータ取得部２２は、記憶媒体２６への書き込み要求の対象データであるオリジナルデータを取得する。冗長データ生成部２３は、オリジナルデータに基づいて誤り訂正用の冗長データを生成する。部分データ取得部２４は、オリジナルデータおよび冗長データが分割された部分データを取得する。書き込み処理部２５は、部分データを記憶媒体２６に書き込む。ここで、冗長データ生成部２３は、オリジナルデータの復元に関して損失が許容されるべき部分データの数として設定された損失許容要求数よりも大きい数である損失許容数の部分データの損失が許容される冗長データを生成する。部分データ取得部２４は、オリジナルデータの復元に必要な部分データの数である必要部分データ数と損失許容数とを合計した数に、オリジナルデータおよび冗長データが分割された部分データを取得する。
【００７３】
このように、冗長データ生成部２３が、必要許容要求数よりも大きい数である必要許容数の部分データの損失が許容される冗長データを生成することで、書き込み処理部２５が全ての部分データを記憶媒体２６に書き込む必要はない。記憶媒体２６への書き込みに時間がかかっている部分データがある場合、書き込み処理部２５は、損失許容数から損失許容要求数を減算した差以下の部分データの記憶媒体２６への書き込みの完了を待つ必要なしに、部分データの記憶媒体２６への書き込みを終了することができる。この点で、記憶システム２０では、データの書き込み要求の実行時間の遅延を防止または低減できる。
【００７４】
図１４は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。図１４に示す構成で、コンピュータ５００は、ＣＰＵ（Central Processing Unit）５１０と、記憶装置５２０と、インタフェース５３０とを備える。
上述したように、データ書き込み処理装置２００がコンピュータ５００に実装されていてもよい。この場合、データ書き込み処理装置２００の各機能部の動作は、プログラムの形式で記憶装置５２０に記憶されている。ＣＰＵ５１０は、プログラムを記憶装置５２０から読み出し、当該プログラムに従って各機能部の処理を実行する。
【００７５】
また、記憶媒体３００は、記憶装置５２０に構成されていてもよいし、コンピュータ５００とは別の装置に構成されていてもよい。記憶媒体３００が、コンピュータ５００とは別の装置に構成されている場合、ＣＰＵ５１０は、記憶装置５２０から読み出したプログラムに従って書き込み処理部２４０の処理を実行し、インタフェース５３０を制御して記憶媒体３００にアクセスする。
【００７６】
オリジナルデータ取得部２１０に関しても、ＣＰＵ５１０は、記憶装置５２０から読み出したプログラムに従ってオリジナルデータ取得部２１０の処理を実行し、インタフェース５３０を制御してクライアント装置１００にアクセスする。
同様に、データ書き込み処理装置１０がコンピュータ５００に実装されていてもよい。また、データ書き込み処理装置２１がコンピュータ５００に実装されていてもよい。
【００７７】
なお、データ書き込み処理装置２００、データ書き込み処理装置１０、および、データ書き込み処理装置２１のうちいずれか１つ以上が行う処理の全部または一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００７８】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００７９】
１、２０  記憶システム
１０、２１、２００  データ書き込み処理装置
１１、２２、２１０  オリジナルデータ取得部
１２、２３、２２０  冗長データ生成部
１３、２４、２３０  部分データ取得部
１４、２５、２４０  書き込み処理部
１００  クライアント装置
３００  記憶媒体
【図１】
2019149128.tif 000003
【図２】
2019149128.tif 000004
【図３】
2019149128.tif 000005
【図４】
2019149128.tif 000006
【図５】
2019149128.tif 000007
【図６】
2019149128.tif 000008
【図７】
2019149128.tif 000009
【図８】
2019149128.tif 000010
【図９】
2019149128.tif 000011
【図１０】
2019149128.tif 000012
【図１１】
2019149128.tif 000013
【図１２】
2019149128.tif 000014
【図１３】
2019149128.tif 000015
【図１４】
2019149128.tif 000016