特許第6605786号(P6605786)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許6605786冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラム
<>
  • 特許6605786-冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラム 図000002
  • 特許6605786-冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラム 図000003
  • 特許6605786-冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラム 図000004
  • 特許6605786-冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラム 図000005
  • 特許6605786-冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラム 図000006
  • 特許6605786-冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラム 図000007
  • 特許6605786-冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラム 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6605786
(24)【登録日】2019年10月25日
(45)【発行日】2019年11月13日
(54)【発明の名称】冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラム
(51)【国際特許分類】
   G06F 3/06 20060101AFI20191031BHJP
   G06F 11/10 20060101ALI20191031BHJP
   G06F 11/20 20060101ALI20191031BHJP
   G06F 12/00 20060101ALI20191031BHJP
【FI】
   G06F3/06 304E
   G06F3/06 301M
   G06F3/06 301R
   G06F11/10 676
   G06F11/20 653
   G06F12/00
【請求項の数】9
【全頁数】15
(21)【出願番号】特願2014-54333(P2014-54333)
(22)【出願日】2014年3月18日
(65)【公開番号】特開2015-176521(P2015-176521A)
(43)【公開日】2015年10月5日
【審査請求日】2017年2月15日
【審判番号】不服2018-14032(P2018-14032/J1)
【審判請求日】2018年10月23日
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100124154
【弁理士】
【氏名又は名称】下坂 直樹
(72)【発明者】
【氏名】長野 浩明
【合議体】
【審判長】 田中 秀人
【審判官】 松平 英
【審判官】 山崎 慎一
(57)【特許請求の範囲】
【請求項1】
外部の装置から、第1のデータ書き込み要求及び第2のデータ書き込み要求を受け取る受付手段と、
外部の第1の記憶装置に対し、前記受付手段によって受け取られた前記第1のデータ書き込み要求に対する処理を第1の時間帯で実行させ、前記受付手段によって受け取られた前記第2のデータ書き込み要求に対する処理を前記第1の時間帯とは重ならない第2の時間帯で実行させるための第1のスケジュール、及び
外部の第2の記憶装置に対し、前記受付手段によって受け取られた前記第2のデータ書き込み要求に対する処理を前記第2の時間帯とは重ならない第3の時間帯で実行させ、前記受付手段によって受け取られた前記第1のデータ書き込み要求に対する処理を前記第1の時間帯とは重ならない第4の時間帯で実行させるための第2のスケジュール
を生成するスケジューリング手段と、
を備えることを特徴とする冗長化記憶制御装置。
【請求項2】
分割冗長化手段を更に備え、
前記受付手段は、前記第1のデータ書き込み要求及び前記第2のデータ書き込み要求の代わりに第3のデータ書き込み要求を受け取り、
前記分割冗長化手段は、前記第3のデータ書き込み要求に対して、RAID(Redundant Arrays of Inexpensive Disks)方式に従い書き込み先の多重化を行うことにより、前記第1のデータ書き込み要求及び前記第2のデータ書き込み要求を生成する
ことを特徴とする請求項1に記載の冗長化記憶制御装置。
【請求項3】
前記分割冗長化手段は、前記第3のデータ書き込み要求に基づいて、RAID方式に従いパリティ(誤り検出符号)が書き込み対象データである第4のデータ書き込み要求を更に生成する
ことを特徴とする請求項2に記載の冗長化記憶制御装置。
【請求項4】
前記第1の記憶装置及び前記第2の記憶装置よりも高速なデータ書き込みが可能なバッファ手段を更に備え、
前記受付手段は、受け取った、前記第1のデータ書き込み要求及び前記第2のデータ書き込み要求を前記バッファ手段に記憶させ、
前記スケジューリング手段は、前記記憶された、前記第1のデータ書き込み要求及び前記第2のデータ書き込み要求に基づいて、前記第1のスケジュール及び前記第2のスケジュールを生成する
ことを特徴とする請求項1乃至3のいずれか1項に記載の冗長化記憶制御装置。
【請求項5】
前記バッファ手段は、不揮発性メモリである
ことを特徴とする請求項4に記載の冗長化記憶制御装置。
【請求項6】
前記第1の記憶装置及び前記第2の記憶装置は、ディスク装置である
ことを特徴とする請求項1乃至5のいずれか1項に記載の冗長化記憶制御装置。
【請求項7】
前記第1の記憶装置及び前記第2の記憶装置は、ファイルサーバである
ことを特徴とする請求項1乃至5のいずれか1項に記載の冗長化記憶制御装置。
【請求項8】
外部の第1の記憶装置及び外部の第2の記憶装置に接続され、受付手段と、スケジューリング手段とを備えた冗長化記憶制御装置として動作する情報処理装置の冗長化記憶制御方法であって、
前記受付手段によって、第1のデータ書き込み要求及び第2のデータ書き込み要求を受け取り、
前記スケジューリング手段によって、
前記第1の記憶装置に対し、前記受付手段によって受け取られた前記第1のデータ書き込み要求に対する処理を第1の時間帯で実行させ、前記受付手段によって受け取られた前記第2のデータ書き込み要求に対する処理を前記第1の時間帯とは重ならない第2の時間帯で実行させるための第1のスケジュール、及び
前記第2の記憶装置に対し、前記受付手段によって受け取られた前記第2のデータ書き込み要求に対する処理を前記第2の時間帯とは重ならない第3の時間帯で実行させ、前記受付手段によって受け取られた前記第1のデータ書き込み要求に対する処理を前記第1の時間帯とは重ならない第4の時間帯で実行させるための第2のスケジュール
を生成する
ことを特徴とする冗長化記憶制御方法。
【請求項9】
外部の第1の記憶装置及び外部の第2の記憶装置に接続された、冗長化記憶制御装置が備えるコンピュータを、
第1のデータ書き込み要求及び第2のデータ書き込み要求を受け取る受付手段と、
前記第1の記憶装置に対し、前記受付手段によって受け取られた前記第1のデータ書き込み要求に対する処理を第1の時間帯で実行させ、前記受付手段によって受け取られた前記第2のデータ書き込み要求に対する処理を前記第1の時間帯とは重ならない第2の時間帯で実行させるための第1のスケジュール、及び
前記第2の記憶装置に対し、前記受付手段によって受け取られた前記第2のデータ書き込み要求に対する処理を前記第2の時間帯とは重ならない第3の時間帯で実行させ、前記受付手段によって受け取られた前記第1のデータ書き込み要求に対する処理を前記第1の時間帯とは重ならない第4の時間帯で実行させるための第2のスケジュール
を生成するスケジューリング手段、
として機能させるための冗長化記憶制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ書き込みの耐障害性を向上することが可能な、冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラムに関する。
【背景技術】
【0002】
ストレージに格納するデータの冗長性を高めることにより耐障害性を向上する方式として、RAID(Redundant Arrays of Inexpensive Disks)などが知られている。RAIDでは、複数のディスクに同じデータを書き込むことによって、その中のいくつかのディスクが故障してもデータを復旧することができる。
【0003】
ストレージコストの低下に伴い、RAIDでは、パリティ(誤り検出符号)の冗長性を大きくしたり、三重化以上の冗長性を持たせたりすることも行われている。
【0004】
RAIDと同様に冗長性を高めることによりデータ書き込みの耐障害性を向上する手法は、ファイルレベルでも行われている。例えば、複数のファイルサーバにデータを冗長書き込みすることで、ファイルサーバの耐障害性が向上される。以下、冗長書き込みを行うファイルサーバを「ネットワーク分散ストレージ」という。
【0005】
データ書き込みを多重化する技術の一例が、特許文献1に開示されている。
【0006】
特許文献1のディスクアレイは、論理グループを構成するディスクの集合の中で、元のデータが格納されているディスク以外のディスクに、二重化データを平均的に分散させて格納する。なお、特許文献1のディスクアレイは、元のデータと二重化データを格納するアドレスの決定後、格納先の両方のディスクに対し書込みが可能な場合には、即座に元のデータおよび二重化データを書き込む。
【0007】
また、データ書き込みの性能を向上する技術の一例が、特許文献2に開示されている。
【0008】
特許文献2のライブラリ型記憶装置は、仮想的なボリューム単位を有する。仮想的なボリューム単位は、3台のディスクを用いて実現される。まず、特許文献2のライブラリ型記憶装置は、ファイルAを先頭から順にブロックA1−A9に分割する。次に、特許文献2のライブラリ型記憶装置は、ブロックA1、A4、A7をディスク1に、ブロックA2、A5、A8をディスク2に、ブロックA3、A6、A9をディスク3に記録する。なお、特許文献2のライブラリ型記憶装置は、3台のディスクを同時に駆動することにより、記録処理を高速に実行する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2000−148403号公報(第6−8ページ、図1、3−6)
【特許文献2】特開平9−50353号公報(第4ページ、図1
【発明の概要】
【発明が解決しようとする課題】
【0010】
ディスクの故障時に、ヘッドクラッシュ等で読めない部分以外の正常なデータをサルベージする技術が進んでいる。しかしながら、RAID技術では、ある元データと、その元データの冗長化データとが書き込まれるタイミングは、多重化されたディスクに対して同時である。そのため、多重化された全てのディスクが同時に強い衝撃を受けた場合などでは、ある元データと、その元データの冗長化データとの両方が失われ、サルベージが不可能である。
【0011】
つまり、RAID、ネットワーク分散ストレージなどのデータ書き込みの耐障害性を向上する手法では、ディスク筐体全体に強い衝撃が加わるなど、装置全体に同時に障害が発生した場合には、データの損失が発生するという問題がある。
【0012】
例えば、特許文献1のディスクアレイにおいて、元のデータおよび二重化データの書き込み直前に、同時に両方のディスクでヘッドクラッシュ等の障害が発生した場合を想定する。この場合には、元のデータの書き込み、及び対応する二重化データの書き込みの両方が失敗し、両方のデータが失われる。この問題は、ディスクレベルで冗長性を増強しても根本的には解決されない。
【0013】
あるいは、例えば、二重化されたネットワーク分散ストレージにおいて、元のデータおよび二重化データの書き込み直前に、同時に両方のファイルサーバで障害が発生した場合を想定する。この場合には、同時に更新されようとした元データに対応する分散ファイルサーバ上のファイルがいずれも不完全な状態となる。この問題は、ネットワーク分散ストレージにおけるファイルレベルでの冗長性の増強によっては解決されない。
【0014】
特許文献2の技術は、データ書き込みの性能を向上させることはできるが、データ書き込みの耐障害性を向上させることはできない。なぜなら、特許文献2の技術では、ファイルが分割された各ブロックの書き込みのタイミングが分散されないからである。従って、特許文献2の技術を、特許文献1の技術とそのまま組み合わせても、特許文献1の技術が有するデータ書き込みの耐障害性を向上させることはできない。
(発明の目的)
本発明の目的は、装置全体に同時に障害が発生した場合のデータ書き込みの耐障害性を向上することが可能な、冗長化記憶制御装置、冗長化記憶制御方法、及び冗長化記憶制御プログラムを提供することにある。
【課題を解決するための手段】
【0015】
本発明の冗長化記憶制御装置は、外部の装置から、第1のデータ書き込み要求及び第2のデータ書き込み要求を受け取る受付手段と、外部の第1の記憶装置に対し、第1の時点で第1のデータ書き込み要求に対する処理を実行させ、第1の時点とは異なる第2の時点で第2のデータ書き込み要求に対する処理を実行させるための第1のスケジュール、及び外部の第2の記憶装置に対し、第2の時点とは異なる第3の時点で第2のデータ書き込み要求に対する処理を実行させ、第1の時点とは異なる第4の時点で第1のデータ書き込み要求に対する処理を実行させるための第2のスケジュールを生成するスケジューリング手段とを備えることを特徴とする。
【0016】
本発明の冗長化記憶制御方法は、外部の第1の記憶装置に対し、第1の時点で第1のデータ書き込み要求に対する処理を実行させ、第1の時点とは異なる第2の時点で第2のデータ書き込み要求に対する処理を実行させるための第1のスケジュール、及び外部の第2の記憶装置に対し、第2の時点とは異なる第3の時点で第2のデータ書き込み要求に対する処理を実行させ、第1の時点とは異なる第4の時点で第1のデータ書き込み要求に対する処理を実行させるための第2のスケジュールを生成することを特徴とする。
【0017】
本発明の冗長化記憶制御プログラムは、外部の第1の記憶装置及び外部の第2の記憶装置に接続された、冗長化記憶制御装置が備えるコンピュータを、第1のデータ書き込み要求及び第2のデータ書き込み要求を受け取る受付手段と、第1の記憶装置に対し、第1の時点で第1のデータ書き込み要求に対する処理を実行させ、第1の時点とは異なる第2の時点で第2のデータ書き込み要求に対する処理を実行させるための第1のスケジュール、及び第2の記憶装置に対し、第2の時点とは異なる第3の時点で第2のデータ書き込み要求に対する処理を実行させ、第1の時点とは異なる第4の時点で第1のデータ書き込み要求に対する処理を実行させるための第2のスケジュールを生成するスケジューリング手段として機能させることを特徴とする。
【発明の効果】
【0018】
本発明によれば、装置全体に同時に障害が発生した場合のデータ書き込みの耐障害性を向上することが可能であるという効果がある。
【図面の簡単な説明】
【0019】
図1】本発明の第1の実施形態における冗長化記憶制御装置の構成の一例を示すブロック図である。
図2】本発明の第1の実施形態における冗長化記憶制御装置のスケジューリング手段の動作を示すフローチャートである。
図3】本発明の第1の実施形態における冗長化記憶制御装置の処理手順の具体例を説明するための図である。
図4】本発明の第2の実施形態における冗長化記憶装置の構成の一例を示すブロック図である。
図5】本発明の第2の実施形態における冗長化記憶装置の動作を説明するための図である。
図6】本発明の第3の実施形態における冗長化記憶装置の構成の一例を示すブロック図である。
図7】本発明の第4の実施形態における冗長化記憶装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について図面を参照して詳細に説明する。尚、すべての図面において、同等の構成要素には同じ符号を付し、適宜説明を省略する。
(第1の実施形態)
本実施形態における構成について説明する。
【0021】
図1は、本実施形態における冗長化記憶制御装置100の構成の一例を示すブロック図である。
【0022】
冗長化記憶制御装置100は、上位の装置(図示なし)から「データ書き込み要求」を受け、複数の外部の記憶装置(例えば、記憶装置201、202)にデータを書き込む。冗長化記憶制御装置100は、例えばコンピュータ等の情報処理装置、又はLSI(Large Scale Integration)である。
【0023】
冗長化記憶制御装置100は、データ書き込み要求受け付け手段130と、スケジューリング手段110を含む。
【0024】
データ書き込み要求受け付け手段130は、上位の装置からの「データ書き込み要求」を受け取る。
【0025】
「データ書き込み要求」とは、書き込まれる対象のデータと、そのデータの書込みの指示を含む情報である。書き込まれる対象のデータは、データそのものであってもよいし、データの所在を示す情報であってもよい。データ書き込み指示は、データ書き込み先の記憶装置の識別情報、及び書き込まれるデータの識別情報を含む。データ書き込み先の記憶装置の識別情報は、例えば、記憶装置の識別番号である。書き込まれるデータの識別情報は、例えば、データの格納アドレス、インデックス、データ名、ブロック名、ファイル名等である。
【0026】
スケジューリング手段110は、所定のタイミングにおいて、データ書き込み要求受け付け手段130からデータ書き込み要求を受け取り、記憶装置201、202へのデータ書き込みをスケジューリングする。その際、スケジューリング手段110は、特定の対象データについて、記憶装置201への書き込みタイミングと、記憶装置202への書き込みタイミングとがずれるように、スケジューリングを行う。
【0027】
記憶装置201、202は、それぞれ、スケジューリング手段110により決定されたスケジュールに従い、データの書き込みを行う。
【0028】
冗長化記憶制御装置100は、内部にCPU(Central Processing Unit)と記憶装置とを備えてもよい。そして、CPUが記憶手段に格納されたプログラムを実行することによって、スケジューリング手段110を実現してもよい。
【0029】
次に、本実施形態における動作について説明する。
【0030】
図2は、本実施形態における冗長化記憶制御装置100のスケジューリング手段110の動作を説明するためのフローチャートである。
【0031】
スケジューリング手段110は、記憶装置201への、2つの一連のデータ“データ1”、“データ2”からなるデータ列S1に関するデータ書き込み要求を受け取る。更に、スケジューリング手段110は、記憶装置202への、同じデータ列S1に関するデータ書き込み要求を受け取る(ステップS11)。
【0032】
スケジューリング手段110は、第1の記憶装置へのデータ列S1=“データ1”、“データ2”の書き込みをスケジューリングする(ステップS12)。
【0033】
スケジューリング手段110は、データ列S1=“データ1”、“データ2”を、データ列S2=“データ2”、“データ1”に並べ替える(ステップS13)。
【0034】
スケジューリング手段110は、第2の記憶装置へのデータ列S2=“データ2”、“データ1”の書き込みをスケジューリングする(ステップS14)。
【0035】
なお、ステップS12とステップS13の実行順序は、一例であり、これに限定されない。例えば、ステップS13の処理の開始後に、ステップS12の処理が開始されてもよいし、ステップS12の処理とステップS13の処理とが並行して実行されてもよい。
【0036】
次に、本実施形態における処理手順の具体例について説明する。
【0037】
図3は、本実施形態における冗長化記憶制御装置100の処理手順の具体例を説明するための図である。
【0038】
図3(a)に本実施例におけるデータ書き込み要求受け付け手段130が受け取ったデータ書き込み要求で要求された書き込みタイミングの具体例を示す。図3(b)に本実施例における記憶装置201への書き込みタイミングの具体例を示す。図3(c)に本実施例における記憶装置202への書き込みタイミングの具体例を示す。
【0039】
なお、本具体例における各ステップについては、図2の冗長化記憶制御装置100のスケジューリング手段110の動作を示すフローチャートを利用して説明する。
【0040】
データ書き込み要求受け付け手段130は、記憶装置201及び記憶装置202それぞれに対して、時刻0〜T(Tは正の実数)で“データ1”に関するデータ書き込み要求を受信し、時刻T〜2Tで“データ2”に関するデータ書き込み要求を受信する(図3(a))。
【0041】
スケジューリング手段110は、データ書き込み要求受け付け手段130から、データ列S1=“データ1”、“データ2”のデータ書き込み要求を受け取る(ステップS11)。
【0042】
スケジューリング手段110は、記憶装置201へのデータ列S1=“データ1”、“データ2”のデータ書き込みをスケジューリングする(ステップS12)。
【0043】
スケジューリング手段110は、データ列S1=“データ1”、“データ2”をデータ列S2=“データ2”、“データ1”に並べ替える(ステップS13)。
【0044】
スケジューリング手段110は、記憶装置202へのデータ列S2=“データ2”、“データ1”のデータ書き込みをスケジューリングする(ステップS14)。
【0045】
記憶装置201は、時刻2T〜3Tで“データ1”を書き込み、時刻3T〜4Tで“データ2”を書き込む(図3(b))。
【0046】
記憶装置202は、時刻2T〜3Tで“データ2”を書き込み、時刻3T〜4Tで“データ1”を書き込む(図3(c))。
【0047】
以上説明したように、複数の記憶装置に対して、元データの書き込みと、同じ元データにより生成されたデータ書き込みとは同時には行われない。つまり、ある時点である元データまたはその元データにより生成されたデータの書き込みが失敗しても、別の時点で同じ元データまたはその元データにより生成されたデータの書き込みが成功する可能性がある。従って、本実施形態の冗長化記憶制御装置100では、装置全体に同時に障害が発生した場合のデータ書き込みの耐障害性を向上することができる。
【0048】
なお、本実施形態では、冗長化記憶制御装置100が、2系統の、記憶装置に接続される場合について説明した。しかしながら、本実施形態の冗長化記憶制御装置100に接続される記憶装置の系統は、必ずしも2系統に限定されない。すなわち、本実施形態の冗長化記憶制御装置100に接続される記憶装置の系統は、N(Nは2以上の自然数)種類であってもよい。スケジューリング手段は、同じ元のデータ又は同じ元のデータにより生成された冗長化データのいずれかを、各書き込み時点において、複数個書き込まないという制限の下に、データ書き込み要求のスケジューリングを行う。
【0049】
なお、本制限は、書き込むべき元のN個のデータに書き込む順に番号を割り当てる方法などによって、容易に実現される。例えば、N個の番号からなる番号列を用意し、各記憶装置に対して番号列中の番号を1ずつ循環シフトして並べ替えたN個の番号のそれぞれに、N個のデータを対応付ける。そして、番号で示された順序でデータを書き込めばよい。
(第2の実施形態)
本発明の冗長化記憶制御装置の例として、RAIDを用いて冗長化されたディスクを有する冗長化記憶装置の例を第2の実施形態として示す。
【0050】
本実施形態における構成について説明する。
【0051】
図4は、本実施形態における冗長化記憶装置105の構成の一例を示すブロック図である。冗長化記憶装置105は、論理ディスクインタフェース提供手段135と、データ分割冗長化手段125と、ディスク153、154、155と、書き込み手段143、144、145と、スケジューリング手段115とを含む。
【0052】
論理ディスクインタフェース提供手段135は、他の装置からは論理的にディスクとして見えるインタフェースを提供し、他の装置からのデータ書き込み要求を受け取る。
【0053】
データ分割冗長化手段125は、論理ディスクインタフェース提供手段135からデータ書き込み要求を受け取る。データ分割冗長化手段125は、受け取ったデータ書き込み要求に基づいて、複数のディスクへのデータ書き込み要求を生成する。
【0054】
なお、データ分割冗長化手段125は、受け取ったデータ書き込み要求に対して、RAID方式に従って書き込み先の多重化を行うことにより、複数のディスクへのデータ書き込み要求を生成する。また、データ分割冗長化手段125は、受け取ったデータ書き込み要求に対して、RAID方式に従ってパリティ(誤り検出符号)のデータ書き込み要求を更に生成してもよい。また、データ分割冗長化手段125は、書き込み先の多重化及びパリティの生成前に、受け取ったデータ書き込み要求を分割してもよい。
【0055】
スケジューリング手段115は、データ分割冗長化手段125からデータ書き込み要求を受け取り、各ディスクへの書き込みタイミングをずらしてデータ書き込み要求をスケジューリングする。
【0056】
書き込み手段143、144、145は、スケジューリング手段115により決定されたスケジュールに従い、ディスクへの書き込みを行う。
【0057】
その他の構成要素については、第1の実施形態と同じである。
【0058】
次に、本実施形態における動作について説明する。
【0059】
論理ディスクインタフェース提供手段135は、他の装置からのデータ書き込み要求を受け取り、受け取ったデータ書き込み要求をデータ分割冗長化手段125に渡す。
【0060】
データ分割冗長化手段125は、特定のRAID方式に基づいて、各ディスク153、154、155に対するデータ書き込み命令を生成する。
【0061】
たとえば、データ分割冗長化手段125がRAID−1機能を有する場合には、データ分割冗長化手段125は、渡されたデータをディスク153、154、155にミラーリングするデータ書き込み命令を生成する。
【0062】
あるいは、たとえば、データ分割冗長化手段125がRAID−5機能を有する場合には、データ分割冗長化手段125は、多重化された書き込みデータ、及びパリティをディスク153、154、155に分散して書き込むデータ書き込み命令を生成する。
【0063】
データ分割冗長化手段125は、ブロック単位もしくは複数のブロックをたばねたストライプ単位でデータを取り扱う。したがって、データ分割冗長化手段125は、書き込むべき特定の元データに対応するディスクへのデータ書き込み要求を、元データに対応するブロックもしくはストライプ単位で、各ディスクに対して同時に生成する。
【0064】
ところが、各ディスクに対して、特定の元データに対応するブロックもしくはストライプが同時に書き込まれると、各ディスクに外部からの衝撃等が同時に発生した場合、複数のディスクの同じ元データに対応するデータが同時に失われる危険性がある。
【0065】
そこで、上記の危険性を低減するために、スケジューリング手段115は、まず、データ分割冗長化手段125が生成したディスクへのデータ書き込み要求を受け取り、所定の時間保持する。スケジューリング手段115は、次に、任意の2台のディスクにおいて、同じ元データに対応するデータ書き込み要求を同じタイミングで処理しないように、各データ書き込み要求の順番を入れ替えて、各書き込み手段143、144、145に渡す。
【0066】
次に、本実施形態における処理手順の具体例について説明する。
【0067】
図5は、本実施形態の冗長化記憶装置105のスケジューリング手段115の動作を説明するための図である。
【0068】
スケジューリング手段115は、論理ディスクインタフェース提供手段135から、“データ1”、“データ2”、“データ3”の順でデータ書き込み要求を受け取り、所定の時間保持する。
【0069】
スケジューリング手段115は、書き込み手段143に対しては、“データ1”、“データ2”、“データ3”の順でデータ書き込み要求を渡す。
【0070】
スケジューリング手段115は、書き込み手段144に対しては、“データ2”、“データ3”、“データ1”の順でデータ書き込み要求を渡す。
【0071】
スケジューリング手段115は、書き込み手段145に対しては、“データ3”、“データ1”、“データ2”の順でデータ書き込み要求を渡す。
【0072】
各書き込み手段143、144、145は、データ書き込み要求を受け取った順序に従い、データ書き込み要求を処理する。従って、同じ元データ“データ1”、“データ2”、“データ3”のそれぞれに対応する書き込み要求が、書き込み手段143、144、145のうちの任意の2台において同時に処理されなることはない。
【0073】
なお、ディスク数分のデータ書き込み要求が所定時間内に保持されないなど、充分な数の入れ替え対象であるデータ書き込み要求が保持されない場合がある。所定の時間内に特定のディスクに対するデータ書き込み要求が保持されない場合には、スケジューリング手段115は、そのディスクに対するデータ書き込み要求を行わないなど、適宜、必要な動作を行う。
【0074】
書き込み手段143、144、145は、スケジューリングされたデータ書き込み要求を受け取り、ディスク153、154、155に書き込む。
【0075】
以上説明したように、本実施形態の冗長化記憶装置105では、複数のディスクに対して、元データの書き込みと、同じ元データにより生成されたデータ書き込みとは同時には行われない。つまり、ある時点において、ある元データまたはその元データにより生成されたデータの書き込みが失敗しても、別の時点で同じ元データまたはその元データにより生成されたデータの書き込みが成功する可能性がある。従って、本実施形態における冗長化記憶装置105では、装置全体に同時に障害が発生した場合のデータ書き込みの耐障害性を向上することができる。
【0076】
また、本実施形態における冗長化記憶装置105では、データ分割冗長化手段125がRAID機能を提供する。更に、スケジューリング手段115はRAIDを構成するディスクの同時障害に対する耐障害性を高める。従って、本実施形態における冗長化記憶装置105では、RAID機能の耐障害性を、RAID機能が単体で提供される場合よりも向上することができる。
【0077】
また、本実施形態における冗長化記憶装置105では、ディスク153、154、155に対する、データの書き込み順序またはデータの書き込みタイミングが変わる。つまり、各ディスクにおいて実行される内部処理の詳細が変わり、各ディスクに対してデータが書き込まれる内部条件が同一のパターンではなくなる。このため、特定のパターンで発生する障害などに対しての耐性が向上する。更に、ヘッドクラッシュなどが生じた場合でも、多様な内部条件下でデータ書き込みが行われていれば、いずれかのディスクに対してデータ書き込みが成功している可能性が高い。従って、本実施形態における冗長化記憶装置105では、データ復旧の可能性を向上させることができる。
【0078】
なお、本実施形態では、冗長化記憶装置105が、3台のディスクを有する場合について説明した。しかしながら、本実施形態のディスクの台数は、必ずしも3台に限定されない。すなわち、本実施形態のディスクの台数はN(Nは3以上の自然数)台であってもよい。
(第3の実施形態)
図4に示した第2の実施形態における冗長化記憶装置105では、スケジューリング手段115が、複数のデータ書き込み要求を所定の時間保持し、データ書き込み要求の順番を入れ替えて書き込みを実施させる。そのため、通常のRAID機能のみが提供される場合に比べて、ディスクにデータの書き込みが完了するまでの時間が長い。つまり、冗長化記憶装置105では、書き込み要求に対する応答性に改善の余地がある。
【0079】
そこで、本発明の冗長化記憶制御装置の例として、第2の実施形態の冗長化記憶装置にディスクよりも高速に書き込みが可能なバッファを追加し、応答性の改善を図った冗長化記憶装置の例を第3の実施形態として示す。
【0080】
本実施形態における構成について説明する。
【0081】
図6は、本実施形態における冗長化記憶装置106の構成の一例を示すブロック図である。
【0082】
本実施形態の冗長化記憶装置106は、第2の実施形態の冗長化記憶装置105の構成に加えて、スケジューリング手段116に接続された不揮発性メモリバッファ手段160を更に有する。
【0083】
その他の構成要素については、第2の実施形態と同じである。
【0084】
次に、本実施形態における動作について説明する。
【0085】
まず、スケジューリング手段116は、データ分割冗長化手段125からデータ書き込み要求を受け取る。
【0086】
次に、スケジューリング手段116は、データ書き込み要求をバッファ手段160へ格納し、格納が完了した時点でデータ書き込み要求の受け取りをデータ分割冗長化手段125へ通知する。
【0087】
続いて、スケジューリング手段116は、バッファ手段160へ格納されたデータ書き込み要求に対して、スケジューリングを行う。
【0088】
以上説明したように、本実施形態における冗長化記憶装置106では、データ分割冗長化手段125からのデータ書き込み要求は、スケジューリングの完了を待つことなく、直ちに受け付けられる。従って、本実施形態における冗長化記憶装置106では、データ書き込み要求に対する応答性を向上することができる。
【0089】
なお、バッファ手段160は、不揮発性メモリであってもよい。
【0090】
バッファ手段160が不揮発性メモリである場合には、たとえバッファ手段160に対する電源供給が一旦停止しても、冗長化記憶装置106はスケジューリングされたデータ書き込み要求が正常に処理されるまで、データ書き込み要求を保持する。従って、本実施形態における冗長化記憶装置106では、バッファ手段160が不揮発性メモリである場合には、冗長化記憶装置106に対する電源供給が一旦停止した後に再開した場合のデータ書き込みの耐障害性を向上することができる。
(第4の実施形態)
図4に示した第2の実施形態では、冗長化記憶装置105が、記憶装置としてディスクを有する場合について説明した。しかしながら、本発明の記憶装置は、必ずしもディスクに限定されず、例えば、ファイルレベルの分散ネットワークストレージであってもよい。
【0091】
そこで、本発明の冗長化記憶制御装置の例として、第2の実施形態の冗長化記憶装置において、ディスクを分散ネットワークストレージに置き換えた冗長化記憶装置の例を第4の実施形態として示す。
【0092】
本実施形態における構成について説明する。
【0093】
図7は、本実施形態における冗長化記憶装置107の構成の一例を示すブロック図である。
【0094】
仮想ファイルシステムインタフェース提供手段137は、他の装置からのファイルの書き込み要求を受け取り、受け取ったファイルの書き込み要求をデータ分割冗長化手段127に渡す。
【0095】
データ分割冗長化手段127は、仮想ファイルシステムインタフェース提供手段137から受け取ったファイル書き込み要求を、複数のファイルサーバ157、158、159へのファイル書き込み要求に変換する。データ分割冗長化手段127は、前記変換の際に、ファイルの多重化や冗長データの付与などを行う。なお、この際、データ分割冗長化手段127は、ファイル単位で処理を行っても、ファイル内のデータブロック等の単位で処理を行ってもよい。
【0096】
スケジューリング手段117は、データ分割冗長化手段127からファイル書き込み要求を受け取り、所定の時間保持する。スケジューリング手段117は、複数のファイルサーバに同じ元データに対応するファイル書き込み要求を同じタイミングで処理しないように、各ファイル書き込み要求の順番を入れ替えて、スケジューリングする。
【0097】
なお、スケジューリング手段117は、第3の実施形態と同様に、ファイル書き込み要求に対する応答性改善のために不揮発性メモリバッファ手段160を使用して処理を行ってもよい。
【0098】
スケジューリング手段117によってスケジューリングされたファイル書き込み要求は、書き込み手段147、148、149によって、それぞれファイルサーバ157、158、159に書き込まれる。
【0099】
本実施形態の冗長化記憶装置107は、第2の実施形態の冗長化記憶装置105と同じ効果を有する。
【0100】
特に、本実施形態の冗長化記憶装置107では、ディスクよりも複雑な内部状態を持つファイルサーバに対して、ファイル書き込み要求の順番の入れ替えが適用される。
【0101】
そのため、分散された各ファイルサーバに対して、同じファイル書き込み要求に対応するデータの更新が同時には行われない。従って、本実施形態の冗長化記憶装置107は、各ファイルサーバ上で対象データが同時に不安定な状態になることを避けることができるという効果を有する。
【0102】
さらに、分散された各ファイルサーバに対して、データの書き込み順序の違いや、データの書き込みタイミングの違いが発生する。従って、本実施形態の冗長化記憶装置107は、各ファイルサーバに到来するデータの順序やタイミング等に起因するソフトウェア・ハードウェア的な障害が発生する可能性を低減することができるという効果を有する。
【0103】
尚、図2の冗長化記憶制御装置の各処理は、ソフトウェアによって実行されてもよい。すなわち、各処理を行うためのコンピュータプログラムが、冗長化記憶制御装置が備えるCPUによって読み込まれ、実行されてもよい。プログラムを用いて各処理を行っても、上述の実施形態の処理と同内容の処理を行うことができる。そして、上記のプログラムは、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスク等、非一時的な媒体に格納されてもよい。
【0104】
あるいは、各処理は、個別の回路等の構成要素によって実行されてもよい。
【0105】
尚、本願発明は、上述の実施形態に限定されるものではなく、本願発明の要旨を逸脱しない範囲で種々変更、変形して実施することができる。
図1
図2
図3
図4
図5
図6
図7