(57)【要約】【課題】装置全体に同時に障害が発生した場合のデータ書き込みの耐障害性を向上することが可能な冗長化記憶制御装置を提供する。【解決手段】外部の装置から、第１のデータ書き込み要求及び第２のデータ書き込み要求を受け取る受付手段と、外部の第１の記憶装置に対し、第１の時点で第１のデータ書き込み要求に対する処理を実行させ、第１の時点とは異なる第２の時点で第２のデータ書き込み要求に対する処理を実行させるための第１のスケジュール、及び外部の第２の記憶装置に対し、第２の時点とは異なる第３の時点で第２のデータ書き込み要求に対する処理を実行させ、第１の時点とは異なる第４の時点で第１のデータ書き込み要求に対する処理を実行させるための第２のスケジュールを生成するスケジューリング手段とを備える。【選択図】      図１
2015176521.tif 000002
【特許請求の範囲】
【請求項１】
外部の装置から、第１のデータ書き込み要求及び第２のデータ書き込み要求を受け取る受付手段と、
外部の第１の記憶装置に対し、第１の時点で前記第１のデータ書き込み要求に対する処理を実行させ、前記第１の時点とは異なる第２の時点で前記第２のデータ書き込み要求に対する処理を実行させるための第１のスケジュール、及び外部の第２の記憶装置に対し、前記第２の時点とは異なる第３の時点で前記第２のデータ書き込み要求に対する処理を実行させ、前記第１の時点とは異なる第４の時点で前記第１のデータ書き込み要求に対する処理を実行させるための第２のスケジュールを生成するスケジューリング手段と、
を備えることを特徴とする冗長化記憶制御装置。
【請求項２】
分割冗長化手段を更に備え、
前記受付手段は、前記第１のデータ書き込み要求及び前記第２のデータ書き込み要求の代わりに第３のデータ書き込み要求を受け取り、
前記分割冗長化手段は、前記第３のデータ書き込み要求に対して、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）方式に従い書き込み先の多重化を行うことにより、前記第１のデータ書き込み要求及び前記第２のデータ書き込み要求を生成する
ことを特徴とする請求項１に記載の冗長化記憶制御装置。
【請求項３】
前記分割冗長化手段は、前記第３のデータ書き込み要求に基づいて、ＲＡＩＤ方式に従いパリティ（誤り検出符号）が書き込み対象データである第４のデータ書き込み要求を更に生成する
ことを特徴とする請求項２に記載の冗長化記憶制御装置。
【請求項４】
前記第１の記憶装置及び前記第２の記憶装置よりも高速なデータ書き込みが可能なバッファ手段を更に備え、
前記受付手段は、受け取った、前記第１のデータ書き込み要求及び前記第２のデータ書き込み要求を前記バッファ手段に記憶させ、
前記スケジューリング手段は、前記記憶された、前記第１のデータ書き込み要求及び前記第２のデータ書き込み要求に基づいて、前記第１のスケジュール及び前記第２のスケジュールを生成する
ことを特徴とする請求項１乃至３のいずれか１項に記載の冗長化記憶制御装置。
【請求項５】
前記バッファ手段は、不揮発性メモリである
ことを特徴とする請求項４に記載の冗長化記憶制御装置。
【請求項６】
前記第１の記憶装置及び前記第２の記憶装置は、ディスク装置である
ことを特徴とする請求項１乃至５のいずれか１項に記載の冗長化記憶制御装置。
【請求項７】
前記第１の記憶装置及び前記第２の記憶装置は、ファイルサーバである
ことを特徴とする請求項１乃至５のいずれか１項に記載の冗長化記憶制御装置。
【請求項８】
外部の第１の記憶装置に対し、第１の時点で第１のデータ書き込み要求に対する処理を実行させ、前記第１の時点とは異なる第２の時点で第２のデータ書き込み要求に対する処理を実行させるための第１のスケジュール、及び外部の第２の記憶装置に対し、前記第２の時点とは異なる第３の時点で前記第２のデータ書き込み要求に対する処理を実行させ、前記第１の時点とは異なる第４の時点で前記第１のデータ書き込み要求に対する処理を実行させるための第２のスケジュールを生成する
ことを特徴とする冗長化記憶制御方法。
【請求項９】
外部の第１の記憶装置及び外部の第２の記憶装置に接続された、冗長化記憶制御装置が備えるコンピュータを、
第１のデータ書き込み要求及び第２のデータ書き込み要求を受け取る受付手段と、
前記第１の記憶装置に対し、第１の時点で前記第１のデータ書き込み要求に対する処理を実行させ、前記第１の時点とは異なる第２の時点で前記第２のデータ書き込み要求に対する処理を実行させるための第１のスケジュール、及び前記第２の記憶装置に対し、前記第２の時点とは異なる第３の時点で前記第２のデータ書き込み要求に対する処理を実行させ、前記第１の時点とは異なる第４の時点で前記第１のデータ書き込み要求に対する処理を実行させるための第２のスケジュールを生成するスケジューリング手段と、
として機能させるための冗長化記憶制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ書き込みの耐障害性を向上することが可能な、冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラムに関する。
【背景技術】
【０００２】
ストレージに格納するデータの冗長性を高めることにより耐障害性を向上する方式として、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）などが知られている。ＲＡＩＤでは、複数のディスクに同じデータを書き込むことによって、その中のいくつかのディスクが故障してもデータを復旧することができる。
【０００３】
ストレージコストの低下に伴い、ＲＡＩＤでは、パリティ（誤り検出符号）の冗長性を大きくしたり、三重化以上の冗長性を持たせたりすることも行われている。
【０００４】
ＲＡＩＤと同様に冗長性を高めることによりデータ書き込みの耐障害性を向上する手法は、ファイルレベルでも行われている。例えば、複数のファイルサーバにデータを冗長書き込みすることで、ファイルサーバの耐障害性が向上される。以下、冗長書き込みを行うファイルサーバを「ネットワーク分散ストレージ」という。
【０００５】
データ書き込みを多重化する技術の一例が、特許文献１に開示されている。
【０００６】
特許文献１のディスクアレイは、論理グループを構成するディスクの集合の中で、元のデータが格納されているディスク以外のディスクに、二重化データを平均的に分散させて格納する。なお、特許文献１のディスクアレイは、元のデータと二重化データを格納するアドレスの決定後、格納先の両方のディスクに対し書込みが可能な場合には、即座に元のデータおよび二重化データを書き込む。
【０００７】
また、データ書き込みの性能を向上する技術の一例が、特許文献２に開示されている。
【０００８】
特許文献２のライブラリ型記憶装置は、仮想的なボリューム単位を有する。仮想的なボリューム単位は、３台のディスクを用いて実現される。まず、特許文献２のライブラリ型記憶装置は、ファイルＡを先頭から順にブロックＡ１−Ａ９に分割する。次に、特許文献２のライブラリ型記憶装置は、ブロックＡ１、Ａ４、Ａ７をディスク１に、ブロックＡ２、Ａ５、Ａ８をディスク２に、ブロックＡ３、Ａ６、Ａ９をディスク３に記録する。なお、特許文献２のライブラリ型記憶装置は、３台のディスクを同時に駆動することにより、記録処理を高速に実行する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−１４８４０３号公報（第６−８ページ、図１、３−６）
【特許文献２】特開平９−５０３５３号公報（第４ページ、図１）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ディスクの故障時に、ヘッドクラッシュ等で読めない部分以外の正常なデータをサルベージする技術が進んでいる。しかしながら、ＲＡＩＤ技術では、ある元データと、その元データの冗長化データとが書き込まれるタイミングは、多重化されたディスクに対して同時である。そのため、多重化された全てのディスクが同時に強い衝撃を受けた場合などでは、ある元データと、その元データの冗長化データとの両方が失われ、サルベージが不可能である。
【００１１】
つまり、ＲＡＩＤ、ネットワーク分散ストレージなどのデータ書き込みの耐障害性を向上する手法では、ディスク筐体全体に強い衝撃が加わるなど、装置全体に同時に障害が発生した場合には、データの損失が発生するという問題がある。
【００１２】
例えば、特許文献１のディスクアレイにおいて、元のデータおよび二重化データの書き込み直前に、同時に両方のディスクでヘッドクラッシュ等の障害が発生した場合を想定する。この場合には、元のデータの書き込み、及び対応する二重化データの書き込みの両方が失敗し、両方のデータが失われる。この問題は、ディスクレベルで冗長性を増強しても根本的には解決されない。
【００１３】
あるいは、例えば、二重化されたネットワーク分散ストレージにおいて、元のデータおよび二重化データの書き込み直前に、同時に両方のファイルサーバで障害が発生した場合を想定する。この場合には、同時に更新されようとした元データに対応する分散ファイルサーバ上のファイルがいずれも不完全な状態となる。この問題は、ネットワーク分散ストレージにおけるファイルレベルでの冗長性の増強によっては解決されない。
【００１４】
特許文献２の技術は、データ書き込みの性能を向上させることはできるが、データ書き込みの耐障害性を向上させることはできない。なぜなら、特許文献２の技術では、ファイルが分割された各ブロックの書き込みのタイミングが分散されないからである。従って、特許文献２の技術を、特許文献１の技術とそのまま組み合わせても、特許文献１の技術が有するデータ書き込みの耐障害性を向上させることはできない。
（発明の目的）
本発明の目的は、装置全体に同時に障害が発生した場合のデータ書き込みの耐障害性を向上することが可能な、冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラムを提供することにある。
【課題を解決するための手段】
【００１５】
本発明の冗長化記憶制御装置は、外部の装置から、第１のデータ書き込み要求及び第２のデータ書き込み要求を受け取る受付手段と、外部の第１の記憶装置に対し、第１の時点で第１のデータ書き込み要求に対する処理を実行させ、第１の時点とは異なる第２の時点で第２のデータ書き込み要求に対する処理を実行させるための第１のスケジュール、及び外部の第２の記憶装置に対し、第２の時点とは異なる第３の時点で第２のデータ書き込み要求に対する処理を実行させ、第１の時点とは異なる第４の時点で第１のデータ書き込み要求に対する処理を実行させるための第２のスケジュールを生成するスケジューリング手段とを備えることを特徴とする。
【００１６】
本発明の冗長化記憶制御方法は、外部の第１の記憶装置に対し、第１の時点で第１のデータ書き込み要求に対する処理を実行させ、第１の時点とは異なる第２の時点で第２のデータ書き込み要求に対する処理を実行させるための第１のスケジュール、及び外部の第２の記憶装置に対し、第２の時点とは異なる第３の時点で第２のデータ書き込み要求に対する処理を実行させ、第１の時点とは異なる第４の時点で第１のデータ書き込み要求に対する処理を実行させるための第２のスケジュールを生成することを特徴とする。
【００１７】
本発明の冗長化記憶制御プログラムは、外部の第１の記憶装置及び外部の第２の記憶装置に接続された、冗長化記憶制御装置が備えるコンピュータを、第１のデータ書き込み要求及び第２のデータ書き込み要求を受け取る受付手段と、第１の記憶装置に対し、第１の時点で第１のデータ書き込み要求に対する処理を実行させ、第１の時点とは異なる第２の時点で第２のデータ書き込み要求に対する処理を実行させるための第１のスケジュール、及び第２の記憶装置に対し、第２の時点とは異なる第３の時点で第２のデータ書き込み要求に対する処理を実行させ、第１の時点とは異なる第４の時点で第１のデータ書き込み要求に対する処理を実行させるための第２のスケジュールを生成するスケジューリング手段として機能させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、装置全体に同時に障害が発生した場合のデータ書き込みの耐障害性を向上することが可能であるという効果がある。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態における冗長化記憶制御装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態における冗長化記憶制御装置のスケジューリング手段の動作を示すフローチャートである。
【図３】本発明の第１の実施形態における冗長化記憶制御装置の処理手順の具体例を説明するための図である。
【図４】本発明の第２の実施形態における冗長化記憶装置の構成の一例を示すブロック図である。
【図５】本発明の第２の実施形態における冗長化記憶装置の動作を説明するための図である。
【図６】本発明の第３の実施形態における冗長化記憶装置の構成の一例を示すブロック図である。
【図７】本発明の第４の実施形態における冗長化記憶装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について図面を参照して詳細に説明する。尚、すべての図面において、同等の構成要素には同じ符号を付し、適宜説明を省略する。
（第１の実施形態）
本実施形態における構成について説明する。
【００２１】
図１は、本実施形態における冗長化記憶制御装置１００の構成の一例を示すブロック図である。
【００２２】
冗長化記憶制御装置１００は、上位の装置（図示なし）から「データ書き込み要求」を受け、複数の外部の記憶装置（例えば、記憶装置２０１、２０２）にデータを書き込む。冗長化記憶制御装置１００は、例えばコンピュータ等の情報処理装置、又はＬＳＩ（Large Scale Integration）である。
【００２３】
冗長化記憶制御装置１００は、データ書き込み要求受け付け手段１３０と、スケジューリング手段１１０を含む。
【００２４】
データ書き込み要求受け付け手段１３０は、上位の装置からの「データ書き込み要求」を受け取る。
【００２５】
「データ書き込み要求」とは、書き込まれる対象のデータと、そのデータの書込みの指示を含む情報である。書き込まれる対象のデータは、データそのものであってもよいし、データの所在を示す情報であってもよい。データ書き込み指示は、データ書き込み先の記憶装置の識別情報、及び書き込まれるデータの識別情報を含む。データ書き込み先の記憶装置の識別情報は、例えば、記憶装置の識別番号である。書き込まれるデータの識別情報は、例えば、データの格納アドレス、インデックス、データ名、ブロック名、ファイル名等である。
【００２６】
スケジューリング手段１１０は、所定のタイミングにおいて、データ書き込み要求受け付け手段１３０からデータ書き込み要求を受け取り、記憶装置２０１、２０２へのデータ書き込みをスケジューリングする。その際、スケジューリング手段１１０は、特定の対象データについて、記憶装置２０１への書き込みタイミングと、記憶装置２０２への書き込みタイミングとがずれるように、スケジューリングを行う。
【００２７】
記憶装置２０１、２０２は、それぞれ、スケジューリング手段１１０により決定されたスケジュールに従い、データの書き込みを行う。
【００２８】
冗長化記憶制御装置１００は、内部にＣＰＵ（Central Processing Unit）と記憶装置とを備えてもよい。そして、ＣＰＵが記憶手段に格納されたプログラムを実行することによって、スケジューリング手段１１０を実現してもよい。
【００２９】
次に、本実施形態における動作について説明する。
【００３０】
図２は、本実施形態における冗長化記憶制御装置１００のスケジューリング手段１１０の動作を説明するためのフローチャートである。
【００３１】
スケジューリング手段１１０は、記憶装置２０１への、２つの一連のデータ“データ１”、“データ２”からなるデータ列Ｓ１に関するデータ書き込み要求を受け取る。更に、スケジューリング手段１１０は、記憶装置２０２への、同じデータ列Ｓ１に関するデータ書き込み要求を受け取る（ステップＳ１１）。
【００３２】
スケジューリング手段１１０は、第１の記憶装置へのデータ列Ｓ１＝“データ１”、“データ２”の書き込みをスケジューリングする（ステップＳ１２）。
【００３３】
スケジューリング手段１１０は、データ列Ｓ１＝“データ１”、“データ２”を、データ列Ｓ２＝“データ２”、“データ１”に並べ替える（ステップＳ１３）。
【００３４】
スケジューリング手段１１０は、第２の記憶装置へのデータ列Ｓ２＝“データ２”、“データ１”の書き込みをスケジューリングする（ステップＳ１４）。
【００３５】
なお、ステップＳ１２とステップＳ１３の実行順序は、一例であり、これに限定されない。例えば、ステップＳ１３の処理の開始後に、ステップＳ１２の処理が開始されてもよいし、ステップＳ１２の処理とステップＳ１３の処理とが並行して実行されてもよい。
【００３６】
次に、本実施形態における処理手順の具体例について説明する。
【００３７】
図３は、本実施形態における冗長化記憶制御装置１００の処理手順の具体例を説明するための図である。
【００３８】
図３（ａ）に本実施例におけるデータ書き込み要求受け付け手段１３０が受け取ったデータ書き込み要求で要求された書き込みタイミングの具体例を示す。図３（ｂ）に本実施例における記憶装置２０１への書き込みタイミングの具体例を示す。図３（ｃ）に本実施例における記憶装置２０２への書き込みタイミングの具体例を示す。
【００３９】
なお、本具体例における各ステップについては、図２の冗長化記憶制御装置１００のスケジューリング手段１１０の動作を示すフローチャートを利用して説明する。
【００４０】
データ書き込み要求受け付け手段１３０は、記憶装置２０１及び記憶装置２０２それぞれに対して、時刻０〜Ｔ（Ｔは正の実数）で“データ１”に関するデータ書き込み要求を受信し、時刻Ｔ〜２Ｔで“データ２”に関するデータ書き込み要求を受信する（図３（ａ））。
【００４１】
スケジューリング手段１１０は、データ書き込み要求受け付け手段１３０から、データ列Ｓ１＝“データ１”、“データ２”のデータ書き込み要求を受け取る（ステップＳ１１）。
【００４２】
スケジューリング手段１１０は、記憶装置２０１へのデータ列Ｓ１＝“データ１”、“データ２”のデータ書き込みをスケジューリングする（ステップＳ１２）。
【００４３】
スケジューリング手段１１０は、データ列Ｓ１＝“データ１”、“データ２”をデータ列Ｓ２＝“データ２”、“データ１”に並べ替える（ステップＳ１３）。
【００４４】
スケジューリング手段１１０は、記憶装置２０２へのデータ列Ｓ２＝“データ２”、“データ１”のデータ書き込みをスケジューリングする（ステップＳ１４）。
【００４５】
記憶装置２０１は、時刻２Ｔ〜３Ｔで“データ１”を書き込み、時刻３Ｔ〜４Ｔで“データ２”を書き込む（図３（ｂ））。
【００４６】
記憶装置２０２は、時刻２Ｔ〜３Ｔで“データ２”を書き込み、時刻３Ｔ〜４Ｔで“データ１”を書き込む（図３（ｃ））。
【００４７】
以上説明したように、複数の記憶装置に対して、元データの書き込みと、同じ元データにより生成されたデータ書き込みとは同時には行われない。つまり、ある時点である元データまたはその元データにより生成されたデータの書き込みが失敗しても、別の時点で同じ元データまたはその元データにより生成されたデータの書き込みが成功する可能性がある。従って、本実施形態の冗長化記憶制御装置１００では、装置全体に同時に障害が発生した場合のデータ書き込みの耐障害性を向上することができる。
【００４８】
なお、本実施形態では、冗長化記憶制御装置１００が、２系統の、記憶装置に接続される場合について説明した。しかしながら、本実施形態の冗長化記憶制御装置１００に接続される記憶装置の系統は、必ずしも２系統に限定されない。すなわち、本実施形態の冗長化記憶制御装置１００に接続される記憶装置の系統は、Ｎ（Ｎは２以上の自然数）種類であってもよい。スケジューリング手段は、同じ元のデータ又は同じ元のデータにより生成された冗長化データのいずれかを、各書き込み時点において、複数個書き込まないという制限の下に、データ書き込み要求のスケジューリングを行う。
【００４９】
なお、本制限は、書き込むべき元のＮ個のデータに書き込む順に番号を割り当てる方法などによって、容易に実現される。例えば、Ｎ個の番号からなる番号列を用意し、各記憶装置に対して番号列中の番号を１ずつ循環シフトして並べ替えたＮ個の番号のそれぞれに、Ｎ個のデータを対応付ける。そして、番号で示された順序でデータを書き込めばよい。
（第２の実施形態）
本発明の冗長化記憶制御装置の例として、ＲＡＩＤを用いて冗長化されたディスクを有する冗長化記憶装置の例を第２の実施形態として示す。
【００５０】
本実施形態における構成について説明する。
【００５１】
図４は、本実施形態における冗長化記憶装置１０５の構成の一例を示すブロック図である。冗長化記憶装置１０５は、論理ディスクインタフェース提供手段１３５と、データ分割冗長化手段１２５と、ディスク１５３、１５４、１５５と、書き込み手段１４３、１４４、１４５と、スケジューリング手段１１５とを含む。
【００５２】
論理ディスクインタフェース提供手段１３５は、他の装置からは論理的にディスクとして見えるインタフェースを提供し、他の装置からのデータ書き込み要求を受け取る。
【００５３】
データ分割冗長化手段１２５は、論理ディスクインタフェース提供手段１３５からデータ書き込み要求を受け取る。データ分割冗長化手段１２５は、受け取ったデータ書き込み要求に基づいて、複数のディスクへのデータ書き込み要求を生成する。
【００５４】
なお、データ分割冗長化手段１２５は、受け取ったデータ書き込み要求に対して、ＲＡＩＤ方式に従って書き込み先の多重化を行うことにより、複数のディスクへのデータ書き込み要求を生成する。また、データ分割冗長化手段１２５は、受け取ったデータ書き込み要求に対して、ＲＡＩＤ方式に従ってパリティ（誤り検出符号）のデータ書き込み要求を更に生成してもよい。また、データ分割冗長化手段１２５は、書き込み先の多重化及びパリティの生成前に、受け取ったデータ書き込み要求を分割してもよい。
【００５５】
スケジューリング手段１１５は、データ分割冗長化手段１２５からデータ書き込み要求を受け取り、各ディスクへの書き込みタイミングをずらしてデータ書き込み要求をスケジューリングする。
【００５６】
書き込み手段１４３、１４４、１４５は、スケジューリング手段１１５により決定されたスケジュールに従い、ディスクへの書き込みを行う。
【００５７】
その他の構成要素については、第１の実施形態と同じである。
【００５８】
次に、本実施形態における動作について説明する。
【００５９】
論理ディスクインタフェース提供手段１３５は、他の装置からのデータ書き込み要求を受け取り、受け取ったデータ書き込み要求をデータ分割冗長化手段１２５に渡す。
【００６０】
データ分割冗長化手段１２５は、特定のＲＡＩＤ方式に基づいて、各ディスク１５３、１５４、１５５に対するデータ書き込み命令を生成する。
【００６１】
たとえば、データ分割冗長化手段１２５がＲＡＩＤ−１機能を有する場合には、データ分割冗長化手段１２５は、渡されたデータをディスク１５３、１５４、１５５にミラーリングするデータ書き込み命令を生成する。
【００６２】
あるいは、たとえば、データ分割冗長化手段１２５がＲＡＩＤ−５機能を有する場合には、データ分割冗長化手段１２５は、多重化された書き込みデータ、及びパリティをディスク１５３、１５４、１５５に分散して書き込むデータ書き込み命令を生成する。
【００６３】
データ分割冗長化手段１２５は、ブロック単位もしくは複数のブロックをたばねたストライプ単位でデータを取り扱う。したがって、データ分割冗長化手段１２５は、書き込むべき特定の元データに対応するディスクへのデータ書き込み要求を、元データに対応するブロックもしくはストライプ単位で、各ディスクに対して同時に生成する。
【００６４】
ところが、各ディスクに対して、特定の元データに対応するブロックもしくはストライプが同時に書き込まれると、各ディスクに外部からの衝撃等が同時に発生した場合、複数のディスクの同じ元データに対応するデータが同時に失われる危険性がある。
【００６５】
そこで、上記の危険性を低減するために、スケジューリング手段１１５は、まず、データ分割冗長化手段１２５が生成したディスクへのデータ書き込み要求を受け取り、所定の時間保持する。スケジューリング手段１１５は、次に、任意の２台のディスクにおいて、同じ元データに対応するデータ書き込み要求を同じタイミングで処理しないように、各データ書き込み要求の順番を入れ替えて、各書き込み手段１４３、１４４、１４５に渡す。
【００６６】
次に、本実施形態における処理手順の具体例について説明する。
【００６７】
図５は、本実施形態の冗長化記憶装置１０５のスケジューリング手段１１５の動作を説明するための図である。
【００６８】
スケジューリング手段１１５は、論理ディスクインタフェース提供手段１３５から、“データ１”、“データ２”、“データ３”の順でデータ書き込み要求を受け取り、所定の時間保持する。
【００６９】
スケジューリング手段１１５は、書き込み手段１４３に対しては、“データ１”、“データ２”、“データ３”の順でデータ書き込み要求を渡す。
【００７０】
スケジューリング手段１１５は、書き込み手段１４４に対しては、“データ２”、“データ３”、“データ１”の順でデータ書き込み要求を渡す。
【００７１】
スケジューリング手段１１５は、書き込み手段１４５に対しては、“データ３”、“データ１”、“データ２”の順でデータ書き込み要求を渡す。
【００７２】
各書き込み手段１４３、１４４、１４５は、データ書き込み要求を受け取った順序に従い、データ書き込み要求を処理する。従って、同じ元データ“データ１”、“データ２”、“データ３”のそれぞれに対応する書き込み要求が、書き込み手段１４３、１４４、１４５のうちの任意の２台において同時に処理されなることはない。
【００７３】
なお、ディスク数分のデータ書き込み要求が所定時間内に保持されないなど、充分な数の入れ替え対象であるデータ書き込み要求が保持されない場合がある。所定の時間内に特定のディスクに対するデータ書き込み要求が保持されない場合には、スケジューリング手段１１５は、そのディスクに対するデータ書き込み要求を行わないなど、適宜、必要な動作を行う。
【００７４】
書き込み手段１４３、１４４、１４５は、スケジューリングされたデータ書き込み要求を受け取り、ディスク１５３、１５４、１５５に書き込む。
【００７５】
以上説明したように、本実施形態の冗長化記憶装置１０５では、複数のディスクに対して、元データの書き込みと、同じ元データにより生成されたデータ書き込みとは同時には行われない。つまり、ある時点において、ある元データまたはその元データにより生成されたデータの書き込みが失敗しても、別の時点で同じ元データまたはその元データにより生成されたデータの書き込みが成功する可能性がある。従って、本実施形態における冗長化記憶装置１０５では、装置全体に同時に障害が発生した場合のデータ書き込みの耐障害性を向上することができる。
【００７６】
また、本実施形態における冗長化記憶装置１０５では、データ分割冗長化手段１２５がＲＡＩＤ機能を提供する。更に、スケジューリング手段１１５はＲＡＩＤを構成するディスクの同時障害に対する耐障害性を高める。従って、本実施形態における冗長化記憶装置１０５では、ＲＡＩＤ機能の耐障害性を、ＲＡＩＤ機能が単体で提供される場合よりも向上することができる。
【００７７】
また、本実施形態における冗長化記憶装置１０５では、ディスク１５３、１５４、１５５に対する、データの書き込み順序またはデータの書き込みタイミングが変わる。つまり、各ディスクにおいて実行される内部処理の詳細が変わり、各ディスクに対してデータが書き込まれる内部条件が同一のパターンではなくなる。このため、特定のパターンで発生する障害などに対しての耐性が向上する。更に、ヘッドクラッシュなどが生じた場合でも、多様な内部条件下でデータ書き込みが行われていれば、いずれかのディスクに対してデータ書き込みが成功している可能性が高い。従って、本実施形態における冗長化記憶装置１０５では、データ復旧の可能性を向上させることができる。
【００７８】
なお、本実施形態では、冗長化記憶装置１０５が、３台のディスクを有する場合について説明した。しかしながら、本実施形態のディスクの台数は、必ずしも３台に限定されない。すなわち、本実施形態のディスクの台数はＮ（Ｎは３以上の自然数）台であってもよい。
（第３の実施形態）
図４に示した第２の実施形態における冗長化記憶装置１０５では、スケジューリング手段１１５が、複数のデータ書き込み要求を所定の時間保持し、データ書き込み要求の順番を入れ替えて書き込みを実施させる。そのため、通常のＲＡＩＤ機能のみが提供される場合に比べて、ディスクにデータの書き込みが完了するまでの時間が長い。つまり、冗長化記憶装置１０５では、書き込み要求に対する応答性に改善の余地がある。
【００７９】
そこで、本発明の冗長化記憶制御装置の例として、第２の実施形態の冗長化記憶装置にディスクよりも高速に書き込みが可能なバッファを追加し、応答性の改善を図った冗長化記憶装置の例を第３の実施形態として示す。
【００８０】
本実施形態における構成について説明する。
【００８１】
図６は、本実施形態における冗長化記憶装置１０６の構成の一例を示すブロック図である。
【００８２】
本実施形態の冗長化記憶装置１０６は、第２の実施形態の冗長化記憶装置１０５の構成に加えて、スケジューリング手段１１６に接続された不揮発性メモリバッファ手段１６０を更に有する。
【００８３】
その他の構成要素については、第２の実施形態と同じである。
【００８４】
次に、本実施形態における動作について説明する。
【００８５】
まず、スケジューリング手段１１６は、データ分割冗長化手段１２５からデータ書き込み要求を受け取る。
【００８６】
次に、スケジューリング手段１１６は、データ書き込み要求をバッファ手段１６０へ格納し、格納が完了した時点でデータ書き込み要求の受け取りをデータ分割冗長化手段１２５へ通知する。
【００８７】
続いて、スケジューリング手段１１６は、バッファ手段１６０へ格納されたデータ書き込み要求に対して、スケジューリングを行う。
【００８８】
以上説明したように、本実施形態における冗長化記憶装置１０６では、データ分割冗長化手段１２５からのデータ書き込み要求は、スケジューリングの完了を待つことなく、直ちに受け付けられる。従って、本実施形態における冗長化記憶装置１０６では、データ書き込み要求に対する応答性を向上することができる。
【００８９】
なお、バッファ手段１６０は、不揮発性メモリであってもよい。
【００９０】
バッファ手段１６０が不揮発性メモリである場合には、たとえバッファ手段１６０に対する電源供給が一旦停止しても、冗長化記憶装置１０６はスケジューリングされたデータ書き込み要求が正常に処理されるまで、データ書き込み要求を保持する。従って、本実施形態における冗長化記憶装置１０６では、バッファ手段１６０が不揮発性メモリである場合には、冗長化記憶装置１０６に対する電源供給が一旦停止した後に再開した場合のデータ書き込みの耐障害性を向上することができる。
（第４の実施形態）
図４に示した第２の実施形態では、冗長化記憶装置１０５が、記憶装置としてディスクを有する場合について説明した。しかしながら、本発明の記憶装置は、必ずしもディスクに限定されず、例えば、ファイルレベルの分散ネットワークストレージであってもよい。
【００９１】
そこで、本発明の冗長化記憶制御装置の例として、第２の実施形態の冗長化記憶装置において、ディスクを分散ネットワークストレージに置き換えた冗長化記憶装置の例を第４の実施形態として示す。
【００９２】
本実施形態における構成について説明する。
【００９３】
図７は、本実施形態における冗長化記憶装置１０７の構成の一例を示すブロック図である。
【００９４】
仮想ファイルシステムインタフェース提供手段１３７は、他の装置からのファイルの書き込み要求を受け取り、受け取ったファイルの書き込み要求をデータ分割冗長化手段１２７に渡す。
【００９５】
データ分割冗長化手段１２７は、仮想ファイルシステムインタフェース提供手段１３７から受け取ったファイル書き込み要求を、複数のファイルサーバ１５７、１５８、１５９へのファイル書き込み要求に変換する。データ分割冗長化手段１２７は、前記変換の際に、ファイルの多重化や冗長データの付与などを行う。なお、この際、データ分割冗長化手段１２７は、ファイル単位で処理を行っても、ファイル内のデータブロック等の単位で処理を行ってもよい。
【００９６】
スケジューリング手段１１７は、データ分割冗長化手段１２７からファイル書き込み要求を受け取り、所定の時間保持する。スケジューリング手段１１７は、複数のファイルサーバに同じ元データに対応するファイル書き込み要求を同じタイミングで処理しないように、各ファイル書き込み要求の順番を入れ替えて、スケジューリングする。
【００９７】
なお、スケジューリング手段１１７は、第３の実施形態と同様に、ファイル書き込み要求に対する応答性改善のために不揮発性メモリバッファ手段１６０を使用して処理を行ってもよい。
【００９８】
スケジューリング手段１１７によってスケジューリングされたファイル書き込み要求は、書き込み手段１４７、１４８、１４９によって、それぞれファイルサーバ１５７、１５８、１５９に書き込まれる。
【００９９】
本実施形態の冗長化記憶装置１０７は、第２の実施形態の冗長化記憶装置１０５と同じ効果を有する。
【０１００】
特に、本実施形態の冗長化記憶装置１０７では、ディスクよりも複雑な内部状態を持つファイルサーバに対して、ファイル書き込み要求の順番の入れ替えが適用される。
【０１０１】
そのため、分散された各ファイルサーバに対して、同じファイル書き込み要求に対応するデータの更新が同時には行われない。従って、本実施形態の冗長化記憶装置１０７は、各ファイルサーバ上で対象データが同時に不安定な状態になることを避けることができるという効果を有する。
【０１０２】
さらに、分散された各ファイルサーバに対して、データの書き込み順序の違いや、データの書き込みタイミングの違いが発生する。従って、本実施形態の冗長化記憶装置１０７は、各ファイルサーバに到来するデータの順序やタイミング等に起因するソフトウェア・ハードウェア的な障害が発生する可能性を低減することができるという効果を有する。
【０１０３】
尚、図２の冗長化記憶制御装置の各処理は、ソフトウェアによって実行されてもよい。すなわち、各処理を行うためのコンピュータプログラムが、冗長化記憶制御装置が備えるＣＰＵによって読み込まれ、実行されてもよい。プログラムを用いて各処理を行っても、上述の実施形態の処理と同内容の処理を行うことができる。そして、上記のプログラムは、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。
【０１０４】
あるいは、各処理は、個別の回路等の構成要素によって実行されてもよい。
【０１０５】
尚、本願発明は、上述の実施形態に限定されるものではなく、本願発明の要旨を逸脱しない範囲で種々変更、変形して実施することができる。
【図１】
2015176521.tif 000003
【図２】
2015176521.tif 000004
【図３】
2015176521.tif 000005
【図４】
2015176521.tif 000006
【図５】
2015176521.tif 000007
【図６】
2015176521.tif 000008
【図７】
2015176521.tif 000009