(57)【特許請求の範囲】
【請求項１】
複数のディスクドライブによって構成され、タイムスロットに従い時分割多重アクセスされるディスクアレイ装置において、
上記ディスクアレイ装置に入力されたデータを一時的に保持するリングバッファ構造の第１のバッファメモリからのデータ又は上記入力されたデータを分割して上記複数のディスクドライブに順次に供給し、上記複数のディスクドライブから供給されたデータを結合するデータ分割結合手段と、
上記複数のディスクドライブの動作状況及び上記タイムスロットを管理すると共に、上記第１のバッファメモリ、上記データ分割結合手段から出力される上記複数のディスクドライブからのデータを結合したデータを一時的に保持するリングバッファ構造の第２のバッファメモリの読み書き及び上記複数のディスクドライブの記録再生動作を制御する制御手段とを有し、
上記制御手段は、上記ディスクドライブに対するデータ書き込みが失敗したときの上記ディスクドライブ単体での再書き込みを禁止して書き込まれるはずの箇所を管理し、当該データ書き込みが失敗したときのタイムスロットにおける上記入力されたデータを上記第１のバッファメモリに保持させ、次の空きタイムスロットを使って上記第１のバッファメモリに保持されたデータを上記ディスクドライブの対応箇所に再度書き込み制御し、データの再構築を行う際には、空きタイムスロットを使って上記ディスクドライブから上記再構築を行おうとするデータを読み出してエラー訂正後に上記第２のバッファメモリに保持させ、次の空きタイムスロットを使って上記第２のバッファメモリに保持されたデータを上記ディスクドライブに書き込み制御する
ディスクアレイ装置。
【請求項２】
上記データ処理装置に対するデータ読み書きの単位となる理論ブロックサイズを、セクタサイズ×記憶手段数の整数倍に最適化する
請求項１記載のディスクアレイ装置。
【請求項３】
上記制御手段は、上記空きタイムスロット以外のタイムスロットでのリトライ及びリアサインを禁止する
請求項１記載のディスクアレイ装置。
【請求項４】
複数の入出力装置を備えたサーバの、当該複数の入出力装置により時分割多重アクセスされる入出力インターフェイス手段を備える
請求項１記載のディスクアレイ装置。
【請求項５】
複数のディスクドライブによって構成され、タイムスロットに従い時分割多重アクセスされるディスクアレイ装置において、
上記ディスクアレイ装置に入力されたデータを分割して上記複数のディスクドライブに順次に供給し、上記複数のディスクドライブから供給されたデータを結合するデータ分割結合手段と、
上記データ分割結合手段から供給され上記ディスクドライブへ記録されるデータを一時的に保持する少なくとも２個１組の第１の先入れ先出しメモリと、
上記ディスクドライブから再生されたデータを一時的に保持する少なくとも２個１組の第２の先入れ先出しメモリと、
ディスクドライブの動作状況及び上記タイムスロットを管理すると共に、上記ディスクドライブの記録再生動作及び上記第１，第２の先入れ先出しメモリをバンク切り替え制御する制御手段とを有し、
上記制御手段は、上記ディスクドライブに対するデータ書き込みが失敗したときの上記ディスクドライブ単体での再書き込みを禁止して書き込まれるはずの箇所を管理し、当該データ書き込みが失敗したときのタイムスロットにおける上記データ分割結合手段から供給されたデータを上記第１の先入れ先出しメモリに保持させ、次の空きタイムスロットを使って上記第１の先入れ先出しメモリに保持されたデータを上記ディスクドライブの対応箇所に再度書き込み制御し、データの再構築を行う際には、空きタイムスロットを使って上記ディスクドライブから上記再構築を行おうとするデータを読み出してエラー訂正後に上記第２の先入れ先出しメモリに保持させ、次の空きタイムスロットを使って上記第２の先入れ先出しメモリに保持されたデータを上記ディスクドライブに書き込み制御する
ディスクアレイ装置。
【請求項６】
上記ディスクアレイ装置に対するデータ読み書きの単位となる理論ブロックサイズを、セクタサイズ×ディスクドライブ数の整数倍に最適化する
請求項５記載のディスクアレイ装置。
【請求項７】
上記制御手段は、上記空きタイムスロット以外のタイムスロットでのリトライ及びリアサインを禁止する
請求項５記載のディスクアレイ装置。
【請求項８】
複数の入出力装置を備えたサーバの、当該複数の入出力装置により時分割多重アクセスされる入出力インターフェイス手段を備える
請求項５記載のディスクアレイ装置。
【請求項９】
複数のディスクドライブによって構成され、タイムスロットに従い時分割多重アクセスされるディスクアレイ装置のデータ記録再生方法において、
上記ディスクアレイ装置に入力されたデータを一時的に保持するリングバッファ構造の第１のバッファメモリからのデータ又は上記入力されたデータを分割して上記複数のディスクドライブに順次に供給し、上記複数のディスクドライブから供給されたデータを結合するデータ分割結合工程と、
上記複数のディスクドライブの動作状況及び上記タイムスロットを管理すると共に、上記第１のバッファメモリ、上記データ分割結合手段から出力される上記複数のディスクドライブからのデータを結合したデータを一時的に保持するリングバッファ構造の第２のバッファメモリの読み書き及び上記複数のディスクドライブの記録再生動作を制御する制御工程とを有し、
上記制御工程では、上記ディスクドライブに対するデータ書き込みが失敗したときの上記ディスクドライブ単体での再書き込みを禁止して書き込まれるはずの箇所を管理し、当該データ書き込みが失敗したときのタイムスロットにおける上記入力されたデータを上記第１のバッファメモリに保持させ、次の空きタイムスロットを使って上記第１のバッファメモリに保持されたデータを上記ディスクドライブの対応箇所に再度書き込み制御し、データの再構築を行う際には、空きタイムスロットを使って上記ディスクドライブから上記再構築を行おうとするデータを読み出してエラー訂正後に上記第２のバッファメモリに保持させ、次の空きタイムスロットを使って上記第２のバッファメモリに保持されたデータを上記ディスクドライブに書き込み制御する
データ記録再生方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば動画像及び音声信号を記録再生するいわゆるビデオサーバシステム等に好適なディスクアレイ装置及びデータ記録再生方法に関する。
【０００２】
【従来の技術】
例えば複数のＨＤＤ（ハードディスクドライブ）によって並列冗長構成されたディスクアレイ装置は、一般にＲＡＩＤ（Redundant Array of Inexpensive Disks）と呼ばれている。
【０００３】
図９には、上記ＲＡＩＤと呼ばれるディスクアレイ装置の概念を示す。
【０００４】
この図９において、ディスクアレイ装置は、入力されたデータ１００を、ディスクアレイコントローラ１０１にてある所定単位長さ毎のデータ列Ｄ０〜Ｄ１５に分割（ストライピング）し、それら所定単位長さ毎のデータ列Ｄ０〜Ｄ１５）を当該各所定単位長さ毎に複数のＨＤＤ１１１〜１１８に振り分けて格納する。なお、当該所定単位長さはストライピング幅と呼ばれ、また、このストライピング幅のデータ列をデータ格納用ＨＤＤの台数分だけ集めたものはアレイブロッキングファクタ（以下、ＡＢＦと記す）と呼ばれる。
【０００５】
このストライピングと同時に、ディスクアレイコントローラ１０１は、入力データを分割するときに、複数のＨＤＤ１１１〜１１８にまたがるデータの列に対してエラー訂正符号を生成し、このエラー訂正符号をＨＤＤ１１９に格納する。このように、図９のディスクアレイ装置においては、エラー訂正符号を格納しておき、後にこのエラー訂正符号を用いたエラー訂正を行うことで、単体のＨＤＤの場合よりも高い性能と信頼性を実現している。なお、図中のＰｎ（ｎは０〜１５）は、ｎ番目のデータ列に対するエラー訂正符号を示す。この図９の例では、ＨＤＤをＨＤＤ１１１〜１１８及び１１９の９個としたが更に多数或いは少数であってもよい。
【０００６】
図１０には、一般的なディスクアレイ装置の構造を示す。
【０００７】
この図１０において、一般的なディスクアレイ装置は、データの入出力インターフェース部１３１、データキャッシュ部（キャッシュメモリ）１３２、ＣＰＵ（中央処理装置）部１３３、ストライピング・ＥＣＣ部１３４、データタイミングコントローラ１５１、各ＨＤＤ間の非同期性を吸収するための複数の専用バッファメモリ部１３５〜１３８、複数のデータストリームコントローラ１３９〜１４２、複数のＳＣＳＩプロトコルコントローラ（以下、ＳＰＣと呼ぶ）１４３〜１４６、複数のＨＤＤ部１４７〜１５０から構成される。
【０００８】
入力されたデータは、入出力インターフェイス部１３１及びデータキャッシュ部１３２を介してストライピング・ＥＣＣ部１３４に送られる。
【０００９】
ストライピング・ＥＣＣ部１３４では、入力されたデータを分割（ストライピング）する。このストライピングされたデータは、バッファメモリ１３５〜１３７及びＳＰＣ１４３〜１４５を介して、複数のＨＤＤ部１４７〜１４９に格納される。また、ストライピング・ＥＣＣ部１３４では、データを分割（ストライピング）するときに複数のＨＤＤ部１４７〜１４９にまたがるデータ列に対してエラー訂正符号を生成し、バッファメモリ１３８及びＳＰＣ１４６を介して、ＨＤＤ部１５０に格納する。
【００１０】
ＨＤＤ部１４７〜１５０へのデータの読み書きは、バッファメモリ部１３５〜１３８及びＳＰＣ１４３〜１４６を通して行われ、これらバッファメモリ部１３５〜１３８及びＳＰＣ１４３〜１４６におけるデータの読み書きの制御は、それぞれ対応するデータストリームコントローラ１３９〜１４２によりなされる。また、このデータストリームコントローラ１３９〜１４２におけるデータの読み書きのタイミングは、ストライピング・ＥＣＣ部１３４が発生する。
【００１１】
なお、ディスクアレイ装置内部のＨＤＤ部１４７〜１５０は、同時に動作すると言っても、それぞれのＨＤＤ部からのデータ転送の開始タイミングや終了タイミングは、必ずしも一致しない。このため、図示は省略するが、このタイミングの違いを吸収するためのバッファメモリ部１３５〜１３８を各ＨＤＤ部１４７〜１５０を制御するＳＰＣ１４３〜１４６の直後にも設けるようにしてもよい。
【００１２】
データタイミングコントローラ１５１は、入出力インターフェイス部１３１へのデータの読み書きのタイミングコントロールと、データキャッシュ部１３２のタイミングコントロールと、ストライピング・ＥＣＣ部１３４へのデータの読み書きのタイミングコントロールを行っている。
【００１３】
ＣＰＵ部１３３は、ＣＰＵバスを通して、入出力インターフェイス部１３１、ストライピング・ＥＣＣ部１３４、データストリームコントローラ１３９〜１４２、ＳＰＣ１４３〜１４６の動作をコントロールする。
【００１４】
図１１には、上述したように構成されるＲＡＩＤのディスクアレイ装置を、動画像及び音声蓄積用の蓄積メディアとして用いた、ビデオサーバシステムの概略構成を示す。
【００１５】
この図１１に示すビデオサーバシステムは、蓄積メディアとしてのディスクアレイ装置（以下、ＲＡＩＤ１２９と記す）に対して、複数の入出力装置１２１〜１２４が時分割多重でアクセス可能となされている。なお、以下、入出力装置１２１〜１２４のことを、ＩＯＰ（Input Output Processor）１２１〜１２４と呼ぶことにする。各ＩＯＰ１２１〜１２４は、映像及び音声データの入出力が行われ、また、上位アプリケーションからのコントロールを受ける。これらＩＯＰ１２１〜１２４は、タイムスロット生成部１２５で生成されたタイムスロットに従い、データパスを介して、時分割多重でＲＡＩＤ１２９にアクセス可能となされている。データパスとしては、内部バスであったり、ＳＣＳＩ（Small Computer System Interface）、ファイバチャンネル等のネットワーク、いわゆるＳＢＸバスなどが挙げられる。
【００１６】
【発明が解決しようとする課題】
ところで、一般に、動画像や音声などの大量のデータを一度に転送するには、いわゆるＲＡＩＤ−３構成のディスクアレイ装置が適していると言われているが、当該ディスクアレイ装置は以下に挙げる問題点があり、ビデオサーバシステム用の蓄積メディアとして求められる性能を満たすことができない。
【００１７】
第１の問題点として、書き込み時のオーバーヘッドが発生する。
【００１８】
すなわち、ディスクアレイ装置では、書き込み時にオーバーヘッドが生じることがあり、書き換えるデータが前記ＡＢＦ（アレイブロッキングファクタ）の境界内に丁度収まらない場合は、書き換える前のデータとパリティを読み出し、新しいパリティを計算して書き込む必要があるため、書き込み時にオーバーヘッドが発生することがある。
【００１９】
第２の問題点として、ＨＤＤ単体がリアルタイム性を保証していない。
【００２０】
すなわち、ＨＤＤ単体は、読み書きに対してリトライを行うことを前提にしており、リアルタイム性確保が困難である。例えば、データ読み出しの際に何らかの理由で読み出しに失敗したとしても、ディスクアレイ装置のエラー訂正機能によってある程度のリアルタイム性は確保できるが、一方で、書き込みに失敗したような場合にＨＤＤにてリトライが行われると、リアルタイム性が確保できないことになる。また、単にＨＤＤ単体のリトライを禁止したとしても、例えば時間が足りないという理由等によって、ＨＤＤへの書き込みに失敗することがある。なお、このような場合、書き込みには失敗したが、ＨＤＤ自体に欠陥があるわけではなく、したがって、次にその部分からデータを読み出した時、当該ＨＤＤからはエラーのサインが返送されてこないので、全く関係無いデータが読み出されてくることになり、その結果、データを復元できなくなるという事態に陥る。
【００２１】
第３の問題点として、障害回復時の性能低下を防ぐ機構を有していない。
【００２２】
すなわち、一般の計算機用のディスクアレイ装置は、障害回復時の性能低下を防ぐ機構を有しておらず、障害回復のデータ再構築（リビルド）時には、ディスクアレイに対する読み書きができない。しかし、ビデオサーバシステム用、特に放送用のビデオサーバシステムでは、障害回復時の機能低下が最小限になるようにしなければならない。
【００２３】
上述したように、従来のディスクアレイ装置においては、上記第１及び第２の問題点により、一定時間内に読み書きが終了する保証がない。すなわち、連続するデータの読み書きが途絶えないために、さらに時分割多重アクセスする映像／音声入出力装置の同期性やリアルタイム性を保証することができない。一般には、第１及び第２の問題点を回避するためには、キャッシュメモリ（データキャッシュ部１３２）の量を増やす必要があると言われているが、キャッシュメモリの量を増やしたとしても、必ずヒットする保証がないので、１００％リアルタイム性を保証するものではない。
【００２４】
そこで、本発明はこのような状況に鑑みてなされたものであり、書き込み時のオーバーヘッドの発生を防止し、リアルタイム性を保証し、障害回復時の性能低下を防ぐことが可能なディスクアレイ装置及びデータ記録再生方法を提供することを目的とする。
【００２５】
【課題を解決するための手段】
本発明のディスクアレイ装置は、複数のディスクドライブによって構成され、タイムスロットに従い時分割多重アクセスされるディスクアレイ装置において、上記ディスクアレイ装置に入力されたデータを一時的に保持するリングバッファ構造の第１のバッファメモリからのデータ又は上記入力されたデータを分割して上記複数のディスクドライブに順次に供給し、上記複数のディスクドライブから供給されたデータを結合するデータ分割結合手段と、上記複数のディスクドライブの動作状況及び上記タイムスロットを管理すると共に、上記第１のバッファメモリ、上記データ分割結合手段から出力される上記複数のディスクドライブからのデータを結合したデータを一時的に保持するリングバッファ構造の第２のバッファメモリの読み書き及び上記複数のディスクドライブの記録再生動作を制御する制御手段とを有し、上記制御手段は、上記ディスクドライブに対するデータ書き込みが失敗したときの上記ディスクドライブ単体での再書き込みを禁止して書き込まれるはずの箇所を管理し、当該データ書き込みが失敗したときのタイムスロットにおける上記入力されたデータを上記第１のバッファメモリに保持させ、次の空きタイムスロットを使って上記第１のバッファメモリに保持されたデータを上記ディスクドライブの対応箇所に再度書き込み制御し、データの再構築を行う際には、空きタイムスロットを使って上記ディスクドライブから上記再構築を行おうとするデータを読み出してエラー訂正後に上記第２のバッファメモリに保持させ、次の空きタイムスロットを使って上記第２のバッファメモリに保持されたデータを上記ディスクドライブに書き込み制御することにより、上述の課題を解決する。
【００２６】
また、本発明のディスクアレイ装置は、複数のディスクドライブによって構成され、タイムスロットに従い時分割多重アクセスされるディスクアレイ装置において、上記ディスクアレイ装置に入力されたデータを分割して上記複数のディスクドライブに順次に供給し、上記複数のディスクドライブから供給されたデータを結合するデータ分割結合手段と、上記データ分割結合手段から供給され上記ディスクドライブへ記録されるデータを一時的に保持する少なくとも２個１組の第１の先入れ先出しメモリと、上記ディスクドライブから再生されたデータを一時的に保持する少なくとも２個１組の第２の先入れ先出しメモリと、ディスクドライブの動作状況及び上記タイムスロットを管理すると共に、上記ディスクドライブの記録再生動作及び上記第１，第２の先入れ先出しメモリをバンク切り替え制御する制御手段とを有し、上記制御手段は、上記ディスクドライブに対するデータ書き込みが失敗したときの上記ディスクドライブ単体での再書き込みを禁止して書き込まれるはずの箇所を管理し、当該データ書き込みが失敗したときのタイムスロットにおける上記データ分割結合手段から供給されたデータを上記第１の先入れ先出しメモリに保持させ、次の空きタイムスロットを使って上記第１の先入れ先出しメモリに保持されたデータを上記ディスクドライブの対応箇所に再度書き込み制御し、データの再構築を行う際には、空きタイムスロットを使って上記ディスクドライブから上記再構築を行おうとするデータを読み出してエラー訂正後に上記第２の先入れ先出しメモリに保持させ、次の空きタイムスロットを使って上記第２の先入れ先出しメモリに保持されたデータを上記ディスクドライブに書き込み制御することにより、上述の課題を解決する。
【００２７】
【発明の実施の形態】
本発明の好ましい実施の形態について、図面を参照しながら説明する。
【００２８】
先ず、第１の実施の形態から説明する。
【００２９】
本発明の第１の実施の形態では、論理ブロックの大きさを「１セクタ（通常５１２バイト）×ＨＤＤの数」の整数倍に最適化し、ＡＢＦ（アレイブロッキングファクタ）と書き換えデータの大きさとを一致させて、書き込み時のオーバーヘッドを無くことにより、転送レートの低下を防ぐようにしている。これにより、本実施の形態では、書き込み時のオーバーヘッドを緩和するためのデータキャッシュの必要を無くしている。
【００３０】
また、本発明の第１の実施の形態では、ＨＤＤ単体のリトライ及びリアサインを禁止して、一定の時間内に読み書きが終了することを保証するようにしており、これにより連続データの読み書きを途切れることなく実行することと、複数チャンネルによる時分割多重を保証している。すなわち、本実施の形態では、書き込み時にエラーの起こった場所を例えばＣＰＵが管理し、データの再構築を後から行うことにして、データの信頼性を保つことを可能にしている。
【００３１】
さらに、本発明の第１の実施の形態では、障害回復の性能低下を避けるために、後述するリトライ用テンポラリバッファメモリとリビルド用バッファメモリを備え、通常運用時のデータの流れと障害回復時のデータの流れを分けるようにしている。これにより、書き込み時にエラーが発生したＨＤＤへのデータ修復を、システムのためのタイムスロットや、空いているタイムスロットを使って素早く回復することを可能にし、例えばＨＤＤを交換してデータの修復を行う場合もその運用効率を高めることを可能にしている。
【００３２】
以下、本発明の第１の実施の形態のディスクアレイ装置の構成及び動作を、例えば前記図１１に示したようなビデオサーバシステムの蓄積メディアとして使用する場合を例に挙げて説明する。
【００３３】
図１には、本発明の第１の実施の形態のディスクアレイ装置の概略構成を示す。
【００３４】
この図１において、入出力インターフェイス部２では、本実施の形態のディスクアレイ装置と前記図１１に示したビデオサーバシステムのＩＯＰ１２１〜１２４との間における、コマンド／ステータス及び入出力データの送受を制御する。この入出力インターフェイス部２に入力されたデータは、選択スイッチ４を介して、或いは後述するリトライ用テンポラリバッファメモリ２１及び選択スイッチ４を介して、ストライピング・ＥＣＣ部７に送られる。
【００３５】
ストライピング・ＥＣＣ部７では、入力されたデータを分割（ストライピング）する。このストライピングされたデータは、ＨＤＤコントロール部１０〜１３を介して、複数のＨＤＤ部１５〜１８に格納される。また、ストライピング・ＥＣＣ部７では、データを分割（ストライピング）するときに複数のＨＤＤ部１５〜１８にまたがるデータ列に対してエラー訂正符号を生成する。このエラー訂正符号は、ＨＤＤコントロール部１４を介して、ＨＤＤ部１９に格納される。
【００３６】
リトライ用テンポラリバッファメモリ２１とリビルド用バッファメモリ２２は、本実施の形態のディスクアレイ装置においてリトライとリビルドを効率よく行うために設けられている。リトライ用テンポラリバッファメモリ２１は、リングバッファ構造になっており、入出力インターフェイス部２からのデータが書き込まれる。一方、リビルド用バッファメモリ２２もリングバッファ構造になっており、各ＨＤＤ１５〜１８から読み出され、ＨＤＤ部１９からのエラー訂正符号によりエラー訂正されたデータが書き込まれる。これらリトライ用テンポラリバッファメモリ２１からのデータや、リビルド用バッファメモリ２２からのデータは、選択スイッチ４に送られる。詳細は後述するが、本実施の形態では、例えば各ＨＤＤ１５〜１９で読み書きにエラーが起きた場合、空いているタイムスロットを使い、リトライ用テンポラリバッファメモリ２１やリビルド用バッファメモリ２２からのデータを用いてデータの再構築（エラー時の回復動作やリビルド動作）を行うようにしている。なお、リトライ用テンポラリバッファメモリ２１とリビルド用バッファメモリ２２は、前記図１０に示したようないわゆるキャッシュメモリ（データキャッシュ部１３２）ではない。すなわち、リトライ用テンポラリバッファメモリ２１に保存されるデータは、入出力インターフェイス部２から選択スイッチ４に送られるデータのコピーであり、また、リビルド用バッファメモリ２２に保存されるデータは、ストライピング・ＥＣＣ部７から入出力インターフェイス部２に送られるデータのコピーであり、いわゆるキャッシュメモリの場合のようなキャッシュヒット等の複雑な制御を必要としない。
【００３７】
データタイミングコントローラ３は、入出力インターフェイス部２におけるデータの読み書きのタイミングコントロールと、ストライピング・ＥＣＣ部７におけるデータの読み書きのタイミングコントロールと、リトライ用テンポラリバッファメモリ２１におけるデータの読み書きのタイミングコントロールと、リビルド用バッファメモリ２２におけるデータの読み書きのタイミングコントロールと、さらに、入出力インターフェイス部２からストライピング・ＥＣＣ部７へ送られるデータとリトライ用テンポラリバッファメモリ２１からストライピング・ＥＣＣ部７へ送られるデータとリビルド用バッファメモリ２２からストライピング・ＥＣＣ部７へ送られるデータを選択スイッチ４にて切替選択する際の選択切替タイミングのコントロールを行う。
【００３８】
各ＨＤＤ部１５〜１９へのデータの読み書きは、各ＨＤＤコントロール部１０〜１４を通して行われ、また、これらＨＤＤコントロール部１０〜１４における各ＨＤＤ１５〜１９へのデータの読み書きのタイミングは、ストライピング・ＥＣＣ部７が発生する。
【００３９】
ＣＰＵ部５は、ＣＰＵバスを通して、入出力インターフェイス部２、データタイミングコントローラ３、ストライピング・ＥＣＣ部７、各ＨＤＤコントロール部１０〜１４の動作をコントロールする。また、ＣＰＵ部５は、ＣＰＵバス及び入出力インターフェイス部２を通して、前記図１１のＩＯＰ１２１〜１２４との間でコマンドとステータスの送受を行う。さらに、詳細は後述するが、ＣＰＵ部５は、各ＨＤＤ１５〜１９への書き込みエラーが起きた場合に、ＨＤＤのエラー箇所を管理し、データの再構築を後から行う。
【００４０】
次に、図２には、ＨＤＤコントロール部１０〜１４の構成を示す。
【００４１】
この図２において、インプット用とアウトプット用のＦＩＦＯ（first-in first-out）メモリ４３，４４は、ストライピング・ＥＣＣ部７から供給されるデータやストライピング・ＥＣＣ部７へ送るデータを一時蓄積するためと、ＨＤＤの非同期性の吸収のために設けられている。
【００４２】
ＳＰＣ４２は、ＳＣＳＩバスを通してＨＤＤを制御する。
【００４３】
当該ＳＰＣ４２とデータストリームコントローラ４１は、ＣＰＵバスを介して、図１のＣＰＵ部５によりコントロールされる。
【００４４】
また、データストリームコントローラ４１は、ストライピング・ＥＣＣ部７からのタイミングコントロールに従い、インプットＦＩＦＯメモリ４３とアウトプットＦＩＦＯメモリ４４へのデータの読み書きのタイミング制御や、ＳＰＣ４２へデータの読み書きのタイミング制御を行う。
【００４５】
次に、図３を用い、前記図１１のビデオサーバシステムの構成を参照しながら、リトライ用テンポラリバッファメモリ２１を用いた書き込みエラー時の回復動作例を説明する。
【００４６】
ここで、本実施の形態のディスクアレイ装置は、前記図１１のビデオサーバシステムのタイムスロット生成部１２５により生成されたタイムスロットに従って、前記ＩＯＰ１２１〜１２４により時分割多重でアクセスされる。図３の例では、各タイムスロットを、タイムスロットＴＳ１，ＴＳ２，ＴＳ３，・・・のように表しており、これらタイムスロットが前記図１１のＩＯＰ１２１〜１２４の４つとシステム用の１つの５つにより時分割多重でアクセスされる。また、この図３の例では、図１１の各ＩＯＰ１２１〜１２４から図１のＨＤＤ部へのデータの書き込みが行われているものとする。このような条件において、例えばタイムスロットＴＳ３でＨＤＤ部への書き込みが失敗したとする。
【００４７】
このとき、ＣＰＵ部５は、ＨＤＤコントロール部を介してＨＤＤ単体でのリトライを行わないように制御し、タイムスロットＴＳ３が書き込まれるはずであったＨＤＤ部上の箇所を管理する。またこのときのＣＰＵ部５は、データタイミングコントローラ３を介して、リトライ用テンポラリバッファメモリ２１をクリアさせずに、入力されたデータすなわちＨＤＤ部への書き込みが失敗したときのタイムスロットＴＳ３のデータを保持させる。その後は、次のタイムスロットＴＳ４に進み、通常のデータの読み書きが行われる。
【００４８】
次に、ＩＯＰからの読み書き要求のない空いているタイムスロットがあったとき、ＣＰＵ部５は、データタイミングコントローラ３を介して、選択スイッチ４を制御してデータの流れを切り替えさせると共に、リトライ用テンポラリバッファメモリ２１からのデータをストライピング・ＥＣＣ部７に送り、さらにＨＤＤコントロール部を制御して、対応するＨＤＤ部へ再度書き込み（リトライ）を行わせる。図３の例では、上記ＩＯＰからの読み書き要求のない空いているタイムスロットとして、システム用のタイムスロットＴＳ７でリトライが行われる。その後は、次のタイムスロットＴＳ８に進み、通常のデータの読み書きが行われる。
【００４９】
次に、図４を用い、前記図１１のビデオサーバシステムの構成を参照しながら、リビルド用バッファメモリ２２を用いたリビルド動作例を説明する。
【００５０】
ここで、ＩＯＰからの読み書き要求のない空いているタイムスロットがあったとき、ＣＰＵ部５は、ＨＤＤコントロール部を介してＨＤＤ部からリビルドデータを読み出させ、さらに、ストライピング・ＥＣＣ部７を制御して当該ＨＤＤ部から読み出されたリビルド用データをエラー訂正させると共に、データタイミングコントローラ３を制御してそのエラー訂正後のリビルド用データをリビルド用バッファメモリ２２に保持させる。図４の例では、上記ＩＯＰからの読み書き要求のない空いているタイムスロットとして、システム用のタイムスロットＴＳ２でＨＤＤからリビルド用データを読み出し、リビルド用バッファメモリ２２に保持させる。その後は、次のタイムスロットＴＳ４に進み、通常のデータの読み書きが行われる。
【００５１】
次に、ＩＯＰからの読み書き要求のない次の空いているタイムスロットがあったとき、ＣＰＵ部５は、データタイミングコントローラ３を制御してリビルド用バッファメモリ２２が保持しているリビルド用データを読み出させ、さらに、データタイミングコントローラ３を介して選択スイッチ４を制御してデータの流れを切り替えさせると共に、上記リビルド用バッファメモリ２２からのリビルド用データをストライピング・ＥＣＣ部７に送ってパリティを付加させ、その後ＨＤＤコントロール部を制御して、対応するＨＤＤ部へリビルドデータを書き込ませる。図４の例では、上記ＩＯＰからの読み書き要求のない次の空いているタイムスロットとして、システム用のタイムスロットＴＳ７でリビルドデータのＨＤＤ部への書き込みを行わせる。その後は、次のタイムスロットＴＳ８に進み、通常のデータの読み書きが行われる。
【００５２】
なお、本実施の形態において、なぜこのようにリビルドを２つのタイムスロットに分けて行うかというと、ＨＤＤのシークタイムは、ＨＤＤの実際の読み書きの時間に対して極端に長く、１つのタイムスロット内でリビルド作業を行うと、１回にリビルドすることのできるデータ量が、１０分の１程度になってしまい、非常に効率が悪くなるからである。
【００５３】
上述したように、本発明の第１の実施の形態では、リトライ用テンポラリバッファメモリ２１とリビルド用バッファメモリ２２を備えることで、通常運用時のデータの流れと障害回復時のデータの流れを分けることができる。これにより、障害回復の作業が、通常のディスクアレイ装置における読み書きに影響を与えないようにすることが可能になっている。
【００５４】
この第１の実施の形態では、以上のようにして、ＨＤＤのデータの再構築を効率よく行うことができる。
【００５５】
次に、本発明の第２の実施の形態について説明する。
【００５６】
本発明の第２の実施の形態では、前述した第１の実施の形態と同様に、論理ブロックの大きさを「１セクタ（通常５１２バイト）×ＨＤＤの数」の整数倍に最適化し、ＡＢＦ（アレイブロッキングファクタ）と書き換えデータの大きさとを一致させて、書き込み時のオーバーヘッドを無くことにより、転送レートの低下を防ぐようにしている。これにより、当該第２の実施の形態においては、書き込み時のオーバーヘッドを緩和するためのデータキャッシュの必要を無くしている。
【００５７】
また、本発明の第２の実施の形態では、前述した第１の実施の形態と同様に、ＨＤＤ単体のリトライ及びリアサインを禁止して、一定の時間内に読み書きが終了することを保証するようにしており、これにより連続データの読み書きを途切れることなく実行することと、複数チャンネルによる時分割多重を保証している。すなわち、この第２の実施の形態においても、書き込み時にエラーの起こった場所をＣＰＵが管理し、データの再構築を後から行うことにして、データの信頼性を保つことを可能にしている。
【００５８】
さらに、本発明の第２の実施の形態では、障害回復の性能低下を避けるために、各ＨＤＤのためのバッファを複数組用意し、通常運用時のデータの流れと障害回復時のデータの流れをマルチプレクサを用いて切り替え、これら複数組のバッファを使い分けるようにしている。これにより、書き込み時のエラーが起こったＨＤＤへのデータ修復を、システムのためのタイムスロットや、空いているタイムスロットを使って素早く回復することを可能にし、例えばＨＤＤを交換してデータの修復を行う場合もその運用効率を高めることを可能にしている。
【００５９】
図５には、本発明の第２の実施の形態のディスクアレイ装置の概略構成を示す。なお、この第２の実施の形態においても、ディスクアレイ装置を前記図１１に示したようなビデオサーバシステムの蓄積メディアとして使用する場合を例に挙げて説明する。以下、この第２の実施の形態では、前述した第１の実施の形態と異なる部分を中心に説明する。
【００６０】
図１において、入出力インターフェイス部５２では、本実施の形態のディスクアレイ装置と前記図１１に示したビデオサーバシステムのＩＯＰ１２１〜１２４との間における、コマンド／ステータス及び入出力データの送受を制御する。この入出力インターフェイス部５２に入力されたデータは、ストライピング・ＥＣＣ部５７に送られる。
【００６１】
ストライピング・ＥＣＣ部５７では、前記第１の実施の形態の場合と同様に、入力されたデータを分割（ストライピング）する。このストライピングされたデータは、ＨＤＤコントロール部６０〜６３を介して、複数のＨＤＤ部６５〜６８に格納される。また、ストライピング・ＥＣＣ部５７では、複数のＨＤＤ部６５〜６８にまたがるデータ列に対してエラー訂正符号を生成する。このエラー訂正符号は、ＨＤＤコントロール部６４を介して、ＨＤＤ部６９に格納される。
【００６２】
データタイミングコントローラ５３は、入出力インターフェイス部５２におけるデータの読み書きのタイミングコントロールと、ストライピング・ＥＣＣ部５７におけるデータの読み書きのタイミングコントロールを行う。
【００６３】
各ＨＤＤ部６５〜６９へのデータの読み書きは、各ＨＤＤコントロール部６０〜６４を通して行われ、また、これらＨＤＤコントロール部６０〜６４における各ＨＤＤ６５〜６９へのデータの読み書きのタイミングは、ストライピング・ＥＣＣ部５７が発生する。
【００６４】
ＣＰＵ部５５は、ＣＰＵバスを通して、入出力インターフェイス部５２、データタイミングコントローラ５３、ストライピング・ＥＣＣ部５７、各ＨＤＤコントロール部６０〜６４の動作をコントロールする。また、ＣＰＵ部５５は、ＣＰＵバス及び入出力インターフェイス部２を通して、前記図１１のＩＯＰ１２１〜１２４との間でコマンドとステータスの送受を行う。さらに、ＣＰＵ部５５は、ＨＤＤ部への書き込みエラーが起きた場合に、ＨＤＤ部のエラー箇所を管理し、データの再構築を後から行う。
【００６５】
次に、図６には、ＨＤＤコントロール部６０〜６４の構成を示す。
【００６６】
この図６において、本実施の形態の場合、ＨＤＤコントロール部６０〜６４は、インプットＦＩＦＯメモリを２個１組以上（図６の例ではインプットＦＩＦＯメモリ７７〜７９の３個）、アウトプットＦＩＦＯを２個１組（図６の例ではアウトプットＦＩＦＯメモリ８０及び８１の１組）備えている。このように、インプットＦＩＦＯを２個１組以上、アウトプットＦＩＦＯを２個１組設けるのは、後述するようにリビルドを効率よく行うためである。すなわち、インプット／アウトプットＦＩＦＯ７７〜８１は、図５のストライピング・ＥＣＣ部５７から供給されるデータや、ストライピング・ＥＣＣ部５７へ送るデータと、ＨＤＤの非同期性の吸収のためにある。
【００６７】
選択スイッチ７１は、ストライピング・ＥＣＣ部５７からのデータをインプットＦＩＦＯ７７〜７８の何れかに振り分けるための切替スイッチであり、選択スイッチ７２は、アウトプットＦＩＦＯ８０，８１の何れかのデータをストライピング・ＥＣＣ部７５に切り替えて供給するための切替スイッチである。
【００６８】
ＳＰＣ７６は、ＳＣＳＩバスを通して、ＨＤＤを制御する。
【００６９】
当該ＳＰＣ７６とデータストリームコントローラ７５は、ＣＰＵバスを介して、図１のＣＰＵ部５によりコントロールされる。
【００７０】
また、データストリームコントローラ７５は、ストライピング・ＥＣＣ部５７からのタイミングコントロールに従い、インプットＦＩＦＯメモリ７７〜７９とアウトプットＦＩＦＯメモリ８０，８１へのデータの読み書きのタイミング制御や、これらインプットＦＩＦＯメモリ７７〜７９とアウトプットＦＩＦＯメモリ８０，８１のバンク切り替え制御（選択スイッチ７１，７２の切替制御）、ＳＰＣ７６へデータの読み書きのタイミング制御を行う。
【００７１】
本実施の形態によれば、上述の図５及び図６のように構成することで、前述の図１０に示した従来例の構成のデータキャッシュ部１３２のキャッシュメモリに比べて、メモリスピードがデータ格納用のＨＤＤ台数分の１で済み、メモリ自体のコストも安く、回路構成もシンプルにすることができる。
【００７２】
次に、図７を用い、前記図１１のビデオサーバシステムの構成を参照しながら、当該第２の実施の形態の構成における書き込みエラー時の回復（システムリトライ）動作例を説明する。
【００７３】
この第２の実施の形態においても第１の実施の形態と同様に、タイムスロットＴＳ１，ＴＳ２，ＴＳ３，・・・が前記図１１のＩＯＰ１２１〜１２４の４つとシステム用の１つの５つにより時分割多重でアクセスされる。また、図７の例では、図１１の各ＩＯＰ１２１〜１２４から図５のＨＤＤ部へのデータの書き込みが、通常状態で例えばインプットＦＩＦＯ７７を通して行われているものとする。このような条件において、例えばタイムスロットＴＳ３でＨＤＤ部への書き込みが失敗したとする。
【００７４】
このとき、ＣＰＵ部５５は、ＨＤＤコントロール部を介してＨＤＤ部単体でのリトライを行わないように制御し、タイムスロットＴＳ３が書き込まれるはずであったＨＤＤ部上の箇所を管理する。またこのときのＣＰＵ部５５は、ＨＤＤコントロール部内のインプットＦＩＦＯ７７のデータをクリアさせずに、そのＨＤＤ部への書き込みが失敗したときのタイムスロットＴＳ３のデータを保持させる。次に、ＣＰＵ部５５は、データストリームコントローラ７５を制御し、次のタイムスロットＴＳ４からは、インプットＦＩＦＯ７８経由でＳＰＣ７６にデータを送り、ＨＤＤ部に書き込みが行われるように制御する。
【００７５】
その後、ＩＯＰからの読み書き要求のない空いているタイムスロットがあったとき、ＣＰＵ部５５は、データストリームコントローラ７５を制御し、インプットＦＩＦＯ７７からＳＰＣ７６にデータを送り、ＨＤＤ部へ再度書き込み（リトライ）を行わせる。図７の例では、上記ＩＯＰからの読み書き要求のない空いているタイムスロットとして、システム用のタイムスロットＴＳ７でリトライが行われる。その後は、ＣＰＵ部５５は、データストリームコントローラ７５を制御し、次のタイムスロットＴＳ８からはインプットＦＩＦＯ７７経由でＳＰＣ７６にデータを送り、ＨＤＤ部に書き込みが行われるように制御する。
【００７６】
次に、図８を用い、前記図１１のビデオサーバシステムの構成を参照しながら、第２の実施の形態におけるリビルド動作例を説明する。
【００７７】
ここで、各ＩＯＰ１２１〜１２４へのデータの読み出しは、通常状態で例えばアウトプットＦＩＦＯ８０を通して行われているものとする。
【００７８】
このような条件において、ＩＯＰからの読み書き要求のない空いているタイムスロットがあったとき、ＣＰＵ部５５は、ＳＰＣ７６を介してＨＤＤ部からリビルドデータを読み出させ、さらに、データストリームコントローラ７５を制御し、当該ＨＤＤ部から読み出されたリビルドデータをアウトプットＦＩＦＯ８０に保持させる。図８の例では、上記ＩＯＰからの読み書き要求のない空いているタイムスロットとして、システム用のタイムスロットＴＳ２でＨＤＤ部からリビルドデータを読み出し、アウトプットＦＩＦＯ８０に保持させる。
【００７９】
次に、ＣＰＵ部５５は、データストリームコントローラ７５を制御し、次のタイムスロットＴＳ３からは、ＨＤＤ部から読み出されたデータをアウトプットＦＩＦＯ８１経由でＩＯＰに送るように制御する。
【００８０】
次に、ＩＯＰからの読み書き要求のない次の空いているタイムスロットがあったとき、ＣＰＵ部５５は、データストリームコントローラ７５を制御して、アウトプットＦＩＦＯ８０からリビルドデータを読み出し、そのリビルドデータをストライピング・ＥＣＣ部５７に送ってパリティを付加させ、その後、データストリームコントローラ７５を制御して、そのリビルドデータをインプットＦＩＦＯ７９を通し、さらにＳＰＣ７６を介してＨＤＤ部へ書き込ませる。図８の例では、上記ＩＯＰからの読み書き要求のない次の空いているタイムスロットとして、システム用のタイムスロットＴＳ７で、既にアウトプットＦＩＦＯ８０に保持されているリビルドデータを読み出し、さらにインプットＦＩＦＯ７９を通してＨＤＤ部に書き込みを行わせる。
【００８１】
その後、ＣＰＵ部５５は、データストリームコントローラ７５を制御し、次のタイムスロットＴＳ８からは、ＨＤＤ部から読み出されたデータをアウトプットＦＩＦＯ８０経由でＩＯＰに送るように制御する。
【００８２】
なお、この第２の実施の形態においても前記第１の実施の形態と同様に、なぜこのようにリビルドを２つのタイムスロットに分けて行うかというと、ＨＤＤのシークタイムは、ＨＤＤの実際の読み書きの時間に対して極端に長く、１つのタイムスロット内でリビルド作業を行うと、１回にリビルドすることのできるデータ量が、１０分の１程度になってしまい、非常に効率が悪くなるからである。
【００８３】
また、当該第２の実施の形態では、インプット用とアウトプット用のＦＩＦＯを複数組用意することで、通常運用時のデータの流れと障害回復時のデータの流れを分けることができるようにしている。これにより、障害回復の作業が、通常のディスクアレイ装置における読み書きに影響を与えないようにすることが可能になっている。
【００８４】
第２の実施の形態では、以上のようにして、ＨＤＤのデータの再構築を効率よく行うことができる。
【００８５】
すなわち、上述した本発明の各実施の形態によれば、ディスクアレイ装置をビデオサーバシステムに適用することで、以下に示すような、
（１）大容量であること
（２）高い転送レートを実現すること
（３）高い信頼性を持つこと
（４）ランダムアクセス性が良いこと
（５）同時に複数のチャンネルから同一素材にアクセスできること
（６）データの連続性を損なわないこと
（７）障害回復時を効率よく行えること
（８）障害回復時に、性能が低下しないこと
などの各性能を満たすことが可能である。
【００８６】
【発明の効果】
以上の説明で明らかなように、本発明のディスクアレイ装置においては、入力データ及び出力データ用のリングバッファ構造の第１，第２のバッファメモリと、データを分割して複数のディスクドライブに順次に供給し複数のディスクドライブから供給されたデータを結合するデータ分割結合手段と、ディスクドライブの動作状況及び処理タイムスロットを管理すると共に各バッファメモリの読み書き及びディスクドライブの記録再生動作を制御する制御手段とを有し、空きタイムスロットを使い、第１，第２のバッファメモリからのデータを用いてデータの再構築を行うことにより、書き込み時のオーバーヘッドの発生を防止でき、また、リアルタイム性を保証でき、障害回復時の性能低下を防ぐことが可能である。
【００８７】
また、本発明のディスクアレイ装置は、データを分割して複数のディスクドライブに順次に供給し複数のディスクドライブから供給されたデータを結合するデータ分割結合手段と、ディスクドライブの記録及び再生データ用の少なくとも２個１組の第１，第２の先入れ先出しメモリと、ディスクドライブの動作状況及び処理タイムスロットを管理すると共にディスクドライブの記録再生動作及び第１，第２の先入れ先出しメモリをバンク切り替え制御する制御手段とを有し、空きタイムスロットを使い、第１，第２の先入れ先出しメモリからのデータを用いてデータの再構築を行うことにより、書き込み時のオーバーヘッドの発生を防止でき、また、リアルタイム性を保証でき、障害回復時の性能低下を防ぐことが可能である。
【図面の簡単な説明】
【図１】ビデオサーバシステムに適用可能な本発明の第１の実施の形態のディスクアレイ装置の概略構成を示すブロック回路図である。
【図２】第１の実施の形態のディスクアレイ装置内のＨＤＤコントロール部の概略構成を示すブロック回路図である。
【図３】第１の実施の形態のディスクアレイ装置においてＨＤＤへの書き込みエラーが発生した時の回復（リトライ）動作の説明に用いる図である。
【図４】第１の実施の形態のディスクアレイ装置においてリビルド動作の説明に用いる図である。
【図５】ビデオサーバシステムに適用可能な本発明の第２の実施の形態のディスクアレイ装置の概略構成を示すブロック回路図である。
【図６】第２の実施の形態のディスクアレイ装置内のＨＤＤコントロール部の概略構成を示すブロック回路図である。
【図７】第２の実施の形態のディスクアレイ装置においてＨＤＤへの書き込みエラーが発生した時の回復（リトライ）動作の説明に用いる図である。
【図８】第２の実施の形態のディスクアレイ装置においてリビルド動作の説明に用いる図である。
【図９】ディスクアレイ装置の概念説明に用いる図である。
【図１０】従来の一般的なディスクアレイ装置の概略構成を示すブロック回路図である。
【図１１】ビデオサーバシステムの概略構成を示すブロック回路図である。
【符号の説明】
２，５２  入出力インターフェイス部、  ３，５３  データタイミングコントローラ、  ４，７１，７２  選択スイッチ、  ５，５５  ＣＰＵ部、  ７，５７ストライピング・ＥＣＣ部、  １０〜１４，６０〜６４  ＨＤＤコントロール部、  １５〜９，６５〜６９  ＨＤＤ部、  ２１  リトライ用テンポラリバッファメモリ、  ２２  リビルド用バッファメモリ、  ４３，７７〜７９  インプットＦＩＦＯ、  ４４，８０，８１  アウトプットＦＩＦＯ、  ４１，７５  データストリームコントローラ、  ４２，７６  ＳＰＣ
【図１】
0004314651.tif 000002
【図２】
0004314651.tif 000003
【図３】
0004314651.tif 000004
【図４】
0004314651.tif 000005
【図５】
0004314651.tif 000006
【図６】
0004314651.tif 000007
【図７】
0004314651.tif 000008
【図８】
0004314651.tif 000009
【図９】
0004314651.tif 000010
【図１０】
0004314651.tif 000011
【図１１】
0004314651.tif 000012