(57)【要約】【課題】必要なディスク・ドライブ数を増やさずにディスク・サブシステムにおけるストライピングとミラーリングのハイブリッドを作り出すこと。【解決手段】ハード・ディスク・ドライブ（４１０、４２０）を使ってデータのストライピングおよびミラーリングを行う。書込み時に、ハード・ディスク制御装置は、第１のハード・ディスク（４１０）に第１のストライプ（４１２）を書き込み（５０４）、そのストライプをミラーリングするために第２のハード・ディスク（４２０）上に応分のスペースを割り振る（５１０）。同時に、第２のハード・ディスク（４２０）に第２のストライプ（４２２）を書き込むことができ、その第２のストライプをミラーリングするために第１のハード・ディスク（４１０）上に応分のスペースを割り振ることができる。どのストライプがミラーリングされどのストライプがミラーリングされてないかについての情報はメモリに記憶される。後刻、遊休ディスク時間中などに、制御装置またはファイル・システムは、対応するストライプを事前に割り振られたスペースにコピーする（５０８）ことによって、両ドライブ（４１０、４２０）間でデータの同期を取ることができる。制御装置またはファイル・システムはまた、遊休ディスク時間中に、ストライプの妥当性を検証して（５１８）破壊されたデータを識別することもできる。ユーザは、書込み時にデータをミラーリングするかどうかおよび読取り時にデータの妥当性を検証するかどうかを指定することができる。したがって、ユーザは読取りと書込みの両方について個別に、速度と信頼性のどちらを選ぶか決めることができる。
2004525464.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する方法であって、
少なくとも第１のストライプと第２のストライプにデータを分割するステップと、
前記第１のストライプを第１の記憶装置に記憶すると同時に前記第２のストライプを第２の記憶装置に記憶するステップと、
前記第２の記憶装置に前記第１のストライプ用のスペースを割り振るとともに前記第１の記憶装置に前記第２のストライプ用のスペースを割り振るステップと、および
前記第１のストライプを前記第１のストライプ用の前記スペースに複製するとともに前記第２のストライプを前記第２のストライプ用の前記スペースに複製するステップと
を含む方法。
【請求項２】
前記第１のストライプの妥当性を検証するステップとをさらに含む請求項１に記載の方法。
【請求項３】
前記第１のストライプの妥当性を検証する前記ステップが、
前記第１の記憶装置中の前記第１のストライプを前記第２の記憶装置中の前記複製された第１のストライプと比較するステップとを含む請求項２に記載の方法。
【請求項４】
前記第１のストライプの妥当性を検証する前記ステップが遊休ディスク時間中に実施される請求項２に記載の方法。
【請求項５】
前記第１のストライプの妥当性を検証する前記ステップが始動時に実施される請求項２に記載の方法。
【請求項６】
前記第１のストライプを複製するとともに前記第２のストライプを複製する前記ステップが遊休ディスク時間中に実施される請求項１に記載の方法。
【請求項７】
データを記憶する方法であって、
少なくとも第１のストライプと第２のストライプにデータを分割するステップと、
前記第１のストライプを第１の記憶装置に記憶するとともに前記第２のストライプを第２の記憶装置に記憶するステップと、
前記第１のストライプを前記第２の記憶装置に複製するとともに前記第２のストライプを前記第１の記憶装置に複製するステップと、および
前記第１のストライプの妥当性を検証するステップと
を含む方法。
【請求項８】
前記第１のストライプを複製するとともに前記第２のストライプを複製する前記ステップが、前記第２の記憶装置に前記第１のストライプ用のスペースを割り振るとともに前記第１の記憶装置に前記第２のストライプ用のスペースを割り振るステップと、および
前記第１のストライプを前記第１のストライプ用の前記スペースにコピーするとともに前記第２のストライプを前記第２のストライプ用の前記スペースにコピーするステップと
を含む請求項７に記載の方法。
【請求項９】
前記第１のストライプをコピーするとともに前記第２のストライプをコピーする前記ステップが遊休ディスク時間中に実施される請求項８に記載の方法。
【請求項１０】
前記第１の記憶装置に前記第１のストライプを記憶するときに前記第１のストライプが前記第２の記憶装置に複製される請求項７に記載の方法。
【請求項１１】
前記第１のストライプを複製するとともに前記第２のストライプを複製する前記ステップが遊休ディスク時間中に実施される請求項７に記載の方法。
【請求項１２】
前記第１のストライプおよび前記第２のストライプが同時に複製される請求項１１に記載の方法。
【請求項１３】
前記第１のストライプの妥当性を検証する前記ステップが遊休ディスク時間中に実施される請求項７に記載の方法。
【請求項１４】
前記第１のストライプの妥当性を検証する前記ステップが前記第１のストライプを読み取るときに実施される請求項７に記載の方法。
【請求項１５】
前記第１のストライプの妥当性を検証する前記ステップが、
前記第１の記憶装置中の前記第１のストライプを前記第２の記憶装置中の前記複製された第１のストライプと比較するステップとを含む請求項７に記載の方法。
【請求項１６】
データを記憶する装置であって、
少なくとも第１のストライプと第２のストライプにデータを分割するストライピング手段と、
前記第１のストライプを第１の記憶装置に記憶すると同時に前記第２のストライプを第２の記憶装置に記憶する記憶手段と、
前記第２の記憶装置に前記第１のストライプ用のスペースを割り振るとともに前記第１の記憶装置に前記第２のストライプ用のスペースを割り振る割振り手段と、
前記第１のストライプを前記第１のストライプ用の前記スペースに複製するとともに前記第２のストライプを前記第２のストライプ用の前記スペースに複製する複製手段と
を含む装置。
【請求項１７】
前記第１のストライプの妥当性を検証する検証手段
をさらに含む請求項１６に記載の装置。
【請求項１８】
前記検証手段が、
前記第１の記憶装置中の前記第１のストライプを前記第２の記憶装置中の前記複製された第１のストライプと比較する比較手段を含む請求項１７に記載の装置。
【請求項１９】
前記検証手段が、前記第１のストライプを遊休ディスク時間中に検証する手段を含む請求項１７に記載の装置。
【請求項２０】
前記検証手段が、前記第１のストライプを始動時に検証する手段を含む請求項１７に記載の装置。
【請求項２１】
前記複製手段が、前記第１のストライプおよび前記第２のストライプを遊休ディスク時間中に複製する手段を含む請求項１６に記載の装置。
【請求項２２】
データを記憶する装置であって、
少なくとも第１のストライプと第２のストライプにデータを分割する分割手段と、
前記第１のストライプを第１の記憶装置に記憶するとともに前記第２のストライプを第２の記憶装置に記憶する記憶手段と、
前記第１のストライプを前記第２の記憶装置に複製するとともに前記第２のストライプを前記第１の記憶装置に複製する複製手段と、
前記第１のストライプの妥当性を検証する検証手段と
を含む装置。
【請求項２３】
前記複製手段が、
前記第２の記憶装置に前記第１のストライプ用のスペースを割り振るとともに前記第１の記憶装置に前記第２のストライプ用のスペースを割り振る割振り手段と、
前記第１のストライプを前記第１のストライプ用の前記スペースにコピーするとともに前記第２のストライプを前記第２のストライプ用の前記スペースにコピーするコピー手段と
を含む請求項２２に記載の装置。
【請求項２４】
前記コピー手段が、前記第１のストライプおよび前記第２のストライプを遊休ディスク時間中にコピーする手段を含む請求項２３に記載の装置。
【請求項２５】
前記第１のストライプを前記第１の記憶装置に記憶するときに前記第１のストライプが前記第２の記憶装置に複製される請求項２２に記載の装置。
【請求項２６】
前記複製手段が、前記第１のストライプおよび前記第２のストライプを遊休ディスク時間中に複製する手段を含む請求項２２に記載の装置。
【請求項２７】
前記第１のストライプおよび前記第２のストライプが同時に複製される請求項２６に記載の装置。
【請求項２８】
前記検証手段が、前記第１のストライプを遊休ディスク時間中に検証する手段を含む請求項２２に記載の装置。
【請求項２９】
前記検証手段が、前記第１のストライプを読み取るときに前記第１のストライプの妥当性を検証する手段を含む請求項２２に記載の装置。
【請求項３０】
前記検証手段が、
前記第１の記憶装置中の前記第１のストライプを前記第２の記憶装置中の前記複製された第１のストライプと比較する比較手段
を含む請求項２２に記載の装置。
【請求項３１】
データを記憶する装置であって、
第１の記憶装置と、
第２の記憶装置と、
少なくとも第１のストライプと第２のストライプにデータを分割し、前記第１のストライプを前記第１の記憶装置に記憶すると同時に前記第２のストライプを前記第２の記憶装置に記憶し、前記第２の記憶装置に前記第１のストライプ用のスペースを割り振るとともに前記第１の記憶装置に前記第２のストライプ用のスペースを割り振り、前記第１のストライプを前記第１のストライプ用の前記スペースに複製するとともに前記第２のストライプを前記第２のストライプ用の前記スペースに複製する制御装置と
を含む装置。
【請求項３２】
データを記憶する装置であって、
第１の記憶装置と、
第２の記憶装置と、
少なくとも第１のストライプと第２のストライプにデータを分割し、前記第１のストライプを第１の記憶装置に記憶するとともに前記第２のストライプを第２の記憶装置に記憶し、前記第１のストライプを前記第２の記憶装置に複製するとともに前記第２のストライプを前記第１の記憶装置に複製し、前記第１のストライプの妥当性を検証する制御装置と
を含む装置。
【請求項３３】
請求項１ないし１５に記載の方法の各ステップをコンピュータに実行させるプログラム。
【請求項３４】
請求項３３に記載の前記プログラムを記録したコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理に関し、詳細には、ＲＡＩＤ（Redundant Array ofIndependent Disks）に関する。より詳細には、本発明はディスク・ドライブ数を増やさずにディスク・サブシステムにおけるストライピングおよびミラーリングのハイブリッドを作り出す方法、装置、およびプログラムを提供する。
【背景技術】
【０００２】
ＲＡＩＤは、性能を向上させ耐障害機能を提供するディスク・サブシステムである。ＲＡＩＤは、１組の複数のハード・ディスクおよびＲＡＩＤ機能を含む専用のディスク制御装置を必要とする。ＲＡＩＤは、最初はサーバおよび独立型ディスク記憶システム用に開発されたが、デスクトップ・パーソナル・コンピュータにおいて主に耐障害機能としてますます利用可能になりつつある。ＲＡＩＤはまた、ソフトウェアだけを用いて実装することもできるが、その場合は、特に障害後にデータを再構築する際に性能が劣る。
【０００３】
ディスク・ストライピングはＲＡＩＤの１つのレベルであり、複数のドライブにまたがってバイトまたはバイトのグループをインターリーブして複数のディスクが同時に読取りおよび書込みを行えるようにすることによって性能を向上させる。データは各ドライブにまたがってバイト単位またはセクタ単位でインターリーブされる。たとえば、読取りおよび書込みをオーバーラップさせるように設計された４台のドライブおよび１台の制御装置を用いれば、通常は１つのセクタを読み取るのに要する時間と同じ時間で４つのセクタを読み取ることができる。ディスク・ストライピングはＲＡＩＤレベル０またはＲＡＩＤ０と呼ばれる。ディスク・ストライピングは本質的には、耐障害機能もエラー検査機能も提供しない。しかし、ストライピングは耐障害機能用の他の方法と併用することができる。
【０００４】
耐障害機能はミラーリングによって実現することができる。ミラーリングには２台のドライブ上でのデータの複製が関与する。データは、同一システム内にある別個の２台のディスクに書き込むことができる。障害が発生したドライブは新規のドライブで置き換えることができ、失ったデータをＲＡＩＤ制御装置が自動的に再構築することができる。ディスク・ミラーリングは、ＲＡＩＤレベル１またはＲＡＩＤ１と呼ばれる。
【０００５】
ディスク・ストライピング（ＲＡＩＤ０）およびディスク・ミラーリング（ＲＡＩＤ１）を併用すれば、ストライピングの性能とミラーリングの信頼性を提供することができる。ＲＡＩＤ０とＲＡＩＤ１の組合せはＲＡＩＤ０／１と呼ばれる。しかし、ＲＡＩＤ０とＲＡＩＤ１の併用には、ストライピング用の２台のドライブとそのストライプをミラーリングするためのさらに２台のドライブの少なくとも４台のディスク・ドライブが必要である。大部分の小規模事業所および個人事業所では汎用パーソナル・コンピュータを使用する。これらのコンピュータが一般に備えているディスク・ドライブは、サイズと費用の理由で最大２台である。したがって、汎用コンピュータ上でＲＡＩＤを実装するときは、ストライピングとミラーリングのどちらを選ぶか決めなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、必要なディスク・ドライブの数を増やさずにディスク・サブシステムにおけるストライピングとミラーリングのハイブリッドを作り出せば有利であろう。
【課題を解決するための手段】
【０００７】
本発明ではハード・ディスク・ドライブを使ってデータのミラーリングおよびストライピングを行う。ハード・ディスク制御装置は、書込み時に、第１のハード・ディスクに第１のストライプを書き込み、そのストライプをミラーリングするために第２のハード・ディスク上に応分のスペースを割り振ることができる。同時に、第２のハード・ディスクに第２のストライプを書き込むことができ、第２のストライプをミラーリングするために第１のハード・ディスク上に応分のスペースを割り振ることができる。どのストライプがミラーリングされどのストライプがミラーリングされていないかについての情報はメモリに記憶される。後刻、遊休ディスク時間中などに、制御装置またはファイル・システムは、対応するストライプを事前に割り振られたスペースにコピーすることにより両ドライブ間でデータの同期を取ることができる。制御装置またはファイル・システムはまた、遊休ディスク時間中に、ストライプの妥当性を検証して破壊されたデータを識別することもできる。
【０００８】
したがって、４台以上のハード・ディスク・ドライブを必要とせずに、ストライピングの性能の向上およびミラーリングの信頼性の向上を実現することができる。あるいは、書込み時にデータをミラーリングするかどうかおよび読取り時にデータの妥当性を検証するかどうかをユーザが指定することができる。したがって、ユーザは、読取りと書込みの両方について速度と信頼性のどちらを選ぶか決めることができる。
【０００９】
新規な特徴と思われる本発明の特徴は、添付の特許請求の範囲に記載されている。ただし、本発明自体、ならびに本発明の好ましい使用形態、追加の目的および利点は、以下の例示的実施形態の詳細な説明を添付の図面と併せて読めば最もよく理解されよう。
【発明を実施するための最良の形態】
【００１０】
次に図面、特に図１を参照すると、本発明の好ましい実施形態による、本発明を実装できるデータ処理システムの絵画図が示されている。システム・ユニット１１０、ビデオ・ディスプレイ端末１０２、キーボード１０４、フロッピー（Ｒ）・ドライブと他のタイプの永続的および取り外し可能記憶媒体とを含むことができる記憶装置１０８、およびマウス１０６を含むコンピュータ１００を示す。パーソナル・コンピュータ１００と共に、たとえば、ジョイスティック、タッチパッド、タッチ・スクリーン、トラックボール、マイクロホンなど追加の入力装置を含むことができる。コンピュータ１００は、ニューヨーク州アーモンク所在のインターナショナル・ビジネス・マシンズ・コーポレーションの製品であるＩＢＭ  ＲＳ／６０００コンピュータ（Ｒ）やＩｎｔｅｌｌｉＳｔａｔｉｏｎコンピュータ（Ｒ）など、任意の適当なコンピュータを使って実装することができる。図はコンピュータを示しているが、ネットワーク・コンピュータなど他のタイプのデータ処理システムで本発明の他の実施形態を実装することもできる。コンピュータ１００はまた、好ましくは、コンピュータ１００内で動作するコンピュータ可読媒体に常駐するシステム・ソフトウェアによって実装できるＧＵＩ（グラフィカル・ユーザ・インタフェース）を含む。
【００１１】
次に図２を参照すると、本発明を実装できるデータ処理システムの構成図が示されている。データ処理システム２００は、図１のコンピュータ１００のように、本発明のプロセスを実装するコードまたは命令を入れておくことができるコンピュータの例である。データ処理システム２００は、ＰＣＩ（周辺装置相互接続）ローカル・バス・アーキテクチャを用いる。図示の例ではＰＣＩバスを用いるが、ＡＧＰ（アクセラレィティッド・グラフィックス・ポート）やＩＳＡ（業界標準アーキテクチャ）など他のバス・アーキテクチャを使用することもできる。プロセッサ２０２および主記憶２０４はＰＣＩブリッジ２０８を介してＰＣＩローカル・バス２０６に接続される。ＰＣＩブリッジ２０８はまた、プロセッサ２０２用の統合メモリ制御装置およびキャッシュ・メモリを含むことができる。装置間直接相互接続（direct component interconnection）または増設ボードによって、ＰＣＩローカル・バス２０６への追加の接続を行うこともできる。図示の例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１０、ＳＣＳＩ（小型コンピュータ・システム・インタフェース）ホスト・バス・アダプタ２１２、および拡張バス・インタフェース２１４が、装置間直接接続によってＰＣＩローカル・バス２０６に接続される。一方、オーディオ・アダプタ２１６、グラフィック・アダプタ２１８、およびオーディオ／ビデオ・アダプタ２１９は、拡張スロットに挿入された増設ボードによってローカル・バス２０６に接続される。拡張バス・インタフェース２１４は、キーボードおよびマウス用アダプタ２２０、モデム２２２、および追加メモリ２２４用の接続を提供する。ハード・ディスク・アダプタ２１２は、ハード・ディスク・ドライブ２２６、２２８用の接続を提供する。典型的なＰＣＩローカル・バス実装形態は、３つまたは４つの拡張スロットまたは増設コネクタをサポートする。
【００１２】
オペレーティング・システムはプロセッサ２０２上で稼動し、図２のデータ処理システム２００内の各種構成装置を調整しそれらの制御を実現するのに使用される。オペレーティング・システムは、マイクロソフト・コーポレーションから入手可能なＷｉｎｄｏｗｓ（Ｒ）２０００などの市販のオペレーティング・システムとすることができる。オペレーティング・システムと共にＪａｖａ（Ｒ）などのオブジェクト指向プログラミング・システムを走らせることができ、データ処理システム２００上で実行されるＪａｖａ（Ｒ）プログラムまたはアプリケーションからオペレーティング・システムへの呼出しをそのプログラミング・システムが実施する。「Ｊａｖａ（Ｒ）」はサン・マイクロシステムズ・インクの商標である。オペレーティング・システム用命令、オブジェクト指向プログラミング・システム用命令、およびアプリケーションまたはプログラムは、ハード・ディスク・ドライブ２２６などの記憶装置上にあり、プロセッサ２０２によって実行される際に主記憶２０４にロードすることができる。
【００１３】
当技術分野の技術者であれば、図２のハードウェアが実装形態によって異なる可能性があることを理解するであろう。図２に示すハードウェアに加えて、またはその代わりに、フラッシュＲＯＭ（または等価の不揮発性メモリ）や光ディスク・ドライブなど他の内蔵ハードウェアまたは周辺装置を使用することもできる。また、本発明の各プロセスは多重プロセッサ・データ処理システムに適用することもできる。データ処理システム２００はＰＤＡ（携帯情報端末）とすることができる。ＰＤＡは、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方を記憶するための不揮発性メモリを提供するＲＯＭまたはフラッシュＲＯＭあるいはその両方を備える構成である。
【００１４】
図２に示す例および前述の各例は、アーキテクチャ上の制限を示唆するためのものではない。たとえば、データ処理システム２００はまた、ＰＤＡの形を取る以外に、ノートブック型コンピュータやハンドヘルド型コンピュータとすることもできる。データ処理システム２００はまた、キオスクやＷｅｂ機器（Web appliance）とすることもできる。
【００１５】
本発明の各プロセスは、コンピュータ実装命令を使って、プロセッサ２０２によって実施される。それらの命令は、たとえば主記憶２０４、メモリ２２４、１台または複数のハード・ディスク２２６、２２８などに入れておくことができる。
【００１６】
本発明の好ましい実施形態によれば、専用のハード・ディスク・アダプタ２１２またはファイル・システムは、ハード・ディスク２２６、２２８を使用してＲＡＩＤサブシステムを提供する。
【００１７】
図３ないし図５は、データのストライピングおよびミラーリングを行うための従来技術を示す構成図である。具体的には、図３を参照すると、データ・ストライピング（ＲＡＩＤ０）を示す構成図が示されている。データが書き込まれるとき、そのデータはデータＡとデータＢの２つのストライプに分割される。データＡ３１２をハード・ディスク３１０に書き込み、同時にデータＢをハード・ディスク３２０に書き込むことができる。データはまた、より多くのストライプに分割してより多くのハード・ディスクに書き込み、あるいはハード・ディスク３１０、３２０に対にして書き込むこともできる。データを読み取るとき、データＡはハード・ディスク３１０から読み取ることができるが、データＢはハード・ディスク３２０から読み取る。データ・ストライピングによれば、複数のストライプを同時に書き込み、または読み取ることができ、したがって、性能の向上が実現される。
【００１８】
次に図４を見ると、データ・ミラーリング（ＲＡＩＤ１）を示す構成図が示されている。データがハード・ディスク３３０に書き込まれるとき、同時にそのデータがハード・ディスク３４０上に複製される。データＡ３３２がハード・ディスク３３０に書き込まれる間に、データＡ３４２がハード・ディスク３４０上にミラーリングされる。同様に、データＢ３３４がハード・ディスク３３０に書き込まれる間に、データＢ３４４がハード・ディスク３４０に書き込まれる。データ・ミラーリングはデータを２台のドライブ上に複製することによって耐障害機能を提供する。データを読み取るとき検証を行うことができる。たとえば、ハード・ディスク３３０からデータＢ３３４を読み取るとき、同時にハード・ディスク３４０からデータＢ３４４を読み取ることができる。比較を行ってデータ破壊を識別することができる。障害が発生したドライブを新規のドライブで置き換えることができ、失われたデータをＲＡＩＤ制御装置が自動的に再構築することができる。
【００１９】
次に図５を参照すると、データ・ストライピングおよびデータ・ミラーリングの併用（ＲＡＩＤ０／１）を示す構成図が示されている。データが書き込まれるとき、そのデータはデータＡとデータＢの２つのストライプに分割される。データＡ３５２をハード・ディスク３５０に書き込むことができ、同時にデータＢ３６２をハード・ディスク３６０に書き込むことができる。また、データＡ３５２がハード・ディスク３５０に書き込まれる間、同時にデータＡ３７２がハード・ディスク３７０上にミラーリングされる。同様に、データＢ３６２がハード・ディスク３６０に書き込まれる間、同時にデータＢ３８４がハード・ディスク３８０に書き込まれる。
【００２０】
データ・ストライピングによれば、ハード・ディスク３５０、３６０にストライプを同時に書き込み、あるいはそれらからストライプを同時に読み取ることができ、したがって性能の向上が実現される。データ・ミラーリングにより、ハード・ディスク３５０、３６０上のストライプをハード・ディスク３７０、３８０上のストライプと比較することによってデータの妥当性を検証することができる。データ・ストライピング（ＲＡＩＤ０）およびデータ・ミラーリング（ＲＡＩＤ１）を併用すれば、ストライピングの性能とミラーリングの信頼性を提供することができる。
【００２１】
しかし、ＲＡＩＤ０とＲＡＩＤ１を併用するには、ストライピング用の２台のドライブとそのストライプをミラーリングするためのさらに２台のドライブの少なくとも４台のドライブが必要である。たとえば、ハード・ディスク３５０、３６０は２０ギガバイト（ＧＢ）のハード・ディスクとすることができる。したがって、ハード・ディスク３７０、３８０も２０ギガバイトのハード・ディスクでなければならない。ＲＡＩＤ０／１を使用するには、コンピュータは４台の２０ギガバイト・ハード・ディスクをサポートしなければならない。大部分の小規模事業所および個人事業所では汎用パーソナル・コンピュータを使用する。これらのコンピュータが一般に備えるディスク・ドライブは、サイズおよび費用上の理由から最大２台である。サイズは、コンピュータの筐体内部の使用可能なスペースまたは使用可能なドライブ・ベイの数によって制約を受けることがある。大部分のパーソナル・コンピュータでは、出荷時に２つのＩＤＥ（Integrated Drive Electronics）チャネル（制御装置）がマザー・ボードに組み込まれている。一方のチャネルは一般に、コンパクト・ディスク・ドライブ、ディジタル・ビデオ・ディスク・ドライブ、圧縮メディア・ドライブなどの記憶装置に使用される。他方のチャネルは、通常は１台、最大２台までのハード・ディスク・ドライブに使用される。さらに、追加ハード・ドライブのコストが理由でＲＡＩＤ０／１の使用が抑えられることもある。したがって、汎用コンピュータ上でＲＡＩＤを実装するときは、ストライピングとミラーリングのどちらを選ぶか決めなければならない。
【００２２】
本発明の好ましい実施形態によれば、１台のハード・ディスク・ドライブをデータのミラーリングとストライピングの両方に使用することができる。書込み時に、ハード・ディスク制御装置は第１のハード・ディスクに第１のストライプを書き込み、そのストライプをミラーリングするために第２のハード・ディスク上に応分のスペースを割り振る。同時に、第２のハード・ディスクに第２のストライプを書き込むことができ、第２のストライプをミラーリングするために第１のハード・ディスク上に応分のスペースを割り振ることができる。どのストライプがミラーリングされどのストライプがミラーリングされていないかについての情報はメモリに記憶される。後刻、遊休ディスク時間中などに、制御装置またはファイル・システムは、対応するストライプを事前に割り振られたスペースにコピーすることによって両ドライブ間でデータの同期を取ることができる。制御装置またはファイル・システムはまた、遊休ディスク時間中に、ストライプの妥当性を検証して破壊されたデータを識別することもできる。データはまた、システム始動時など他の時に検証することもできる。
【００２３】
図６を参照すると、本発明の好ましい実施形態によるディスク・ストライピングとデータ・ミラーリングの併用を示す構成図が示されている。書込み時に、データＡ４１２はハード・ディスク４１０に書き込まれ、そのストライプをミラーリングするためにハード・ディスク４２０上に応分のスペースが割り振られる。同時にデータＢ４２２がハード・ディスク４２０に書き込まれ、そのストライプをミラーリングするためにハード・ディスク４１０上に応分のスペースが割り振られる。後刻、データＡ４２４をハード・ディスク４２０上の事前に割り振られたスペースにコピーし、データＢ４１４をハード・ディスク４１０上の事前に割り振られたスペースにコピーすることによって、両ドライブ間でデータの同期を取る。
【００２４】
したがって、４台以上のハード・ディスク・ドライブを必要とせずにストライピングの性能向上とミラーリングの信頼性向上を実現することができる。ハード・ディスク４１０、４２０はストライピングだけまたはミラーリングだけに必要な容量の２倍の容量をサポートしなければならない。しかし、容量を２倍にすることでサイズに関して不利益を被ることはない。たとえば、４０ギガバイトのハード・ドライブが占める空間は２０ギガバイトのハード・ドライブと同じである。また、容量を２倍にするのは、ドライブ数を２倍にする場合のコストに比べて安価である。４０ギガバイトのハード・ドライブは、たとえば、２０ギガバイトのハード・ドライブ２台よりも安くつく。
【００２５】
一代替実施形態では、書込み時にデータをミラーリングするかどうかおよび読取り時にデータの妥当性を検証するかどうかをユーザが指定することができる。したがって、ユーザは読取りおよび書込みの両方について速度と信頼性のどちらを選ぶか決定することができる。たとえば、コンピュータを使って主としてデータを記憶することができる。その場合ユーザは、そのコンピュータが遊休ディスク時間中にデータをミラーリングし、読取り時にデータの妥当性を検証すると指定することができる。それとは異なり、コンピュータを使ってデータを記憶し、記憶されたデータに繰り返しアクセスすることもできる。その場合ユーザは、コンピュータが書込み時には信頼性を確保するためにデータをミラーリングするが、読取り時にはデータの妥当性を検証しないと指定することができ、したがって、ストライピングされたデータを読み取る際に速度の向上を実現することができる。
【００２６】
次に図７を参照すると、本発明の好ましい実施形態によるハード・ディスク制御装置またはファイル・システムの動作を示す流れ図が示されている。プロセスが開始し、書込みを実施するかどうか判定する（ステップ５０２）。データを書き込む場合、プロセスはストライピングされたデータを書き込み（ステップ５０４）、ＲＡＩＤサブシステムが書込み時にミラーリングするように構成されているかどうか判定する（ステップ５０６）。サブシステムが書込み時にミラーリングするように構成されている場合、プロセスはミラーリングされたデータを書き込み（ステップ５０８）、読取りを実施するかどうか判定する（ステップ５１２）。
【００２７】
ステップ５０６で、サブシステムが書込み時にミラーリングするように構成されていない場合、プロセスはミラーリングされるデータ用の記憶域を割り振り（ステップ５１０）、ステップ５１２に進んで読取りを実施するかどうか判定する。ステップ５０２に戻ると、書込みを実施しない場合、プロセスはステップ５１２に進んで読取りを実施するかどうか判定する。
【００２８】
データを読み取る場合、プロセスはストライピングされたデータを読み取り（ステップ５１４）、ＲＡＩＤサブシステムが読取り時にデータの妥当性を検証するように構成されているかどうか判定する（ステップ５１６）。サブシステムが読取り時にデータの妥当性を検証するように構成されている場合、データがすでにミラーリングされていれば、プロセスはデータの妥当性を検証し（ステップ５１８）、ハード・ディスクが遊休状態であるかどうか判定する（ステップ５２０）。
【００２９】
ステップ５１６で、サブシステムが読取り時にデータの妥当性を検証するように構成されていない場合、プロセスはステップ５２０に進んでハード・ディスクが遊休状態であるかどうか判定する。ステップ５１２に戻ると、読取りが実施されない場合、プロセスはステップ５２０に進んでハード・ディスクが遊休状態であるかどうか判定する。
【００３０】
ハード・ディスクが遊休状態である場合、プロセスは最初の書込み時にミラーリングされていないデータを書き込み（ステップ５２２）、ミラーリングされたデータの妥当性を検証する（ステップ５２４）。その後、終了条件が存在するかどうか判定する（ステップ５２６）。終了条件が存在する可能性があるのは、たとえば、コンピュータ・システムのシャットダウン時または電源管理サブシステムがハード・ディスクを「スリープ」モードまたは休止モードにするときである。ステップ５２０でハード・ディスクが遊休状態でない場合、プロセスはステップ５２６に進んで終了条件が存在するかどうか判定する。終了条件が存在する場合、プロセスは終了する。ステップ５２６で終了条件が存在しない場合、プロセスはステップ５０２に戻ってデータを書き込むかどうか判定する。
【００３１】
このようにして、本発明は、必要なディスク・ドライブ数を増やさずに、複数のタイプのＲＡＩＤを提供することによって、従来技術の欠点を解決する。本発明は、データをストライピングし、そのストライプをミラーリングするために第２のハード・ディスク上に応分のスペースを割り振る。どのストライプがミラーリングされどのストライプがミラーリングされていないかについての情報はメモリに記憶される。後刻、遊休ディスク時間中などに、制御装置またはファイル・システムが、対応するストライプを事前に割り振られたスペースにコピーすることによって、両ドライブ間でデータの同期を取ることができる。制御装置またはファイル・システムはまた、遊休ディスク時間中に、ストライプの妥当性を検証して破壊されたデータを識別することもできる。したがって、４台以上のハード・ディスク・ドライブを必要とせずに、ストライピングの性能向上とミラーリングの信頼性向上を実現することができる。ユーザはまた、書込み時にデータをミラーリングするかどうかおよび読取り時にデータの妥当性を検証するかどうかを指定することもできる。したがってユーザは、読取りおよび書込みの両方について個別に、速度と信頼性のどちらを選ぶか決めることができる。
【００３２】
以上、本発明を完全に機能するデータ処理システムという状況で述べてきたが、当分野の技術者であれば、本発明の各プロセスをコンピュータ可読命令の媒体の形および様々な形で配布することができ、その配布を実施するために実際に使用される信号搬送媒体の個々のタイプに関らず本発明が等しく適用されることを理解するであろうことに留意されたい。コンピュータ可読媒体の例には、フロッピー（Ｒ）・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能型の媒体と、ディジタルおよびアナログ通信リンク、たとえば、無線周波数および光波伝送などの伝送形式を使用する有線または無線通信リンクなどの伝送型の媒体が含まれる。コンピュータ可読媒体は、個々のデータ処理システムにおいて実際に使用する際に復号化される符号化されたフォーマットの形式を取ることができる。
【００３３】
本発明の記述は例示と説明のために提示されており、包括的であることを意図せず、開示の形での発明に限定されるものでもない。当分野の技術者には多くの改変形態および変形形態が明らかであろう。本明細書の実施形態は、本発明の原理、実際の用途を最も良く説明し、当分野の技術者が本発明を理解して企図される個別の使用に適するような様々な改変形態を有する様々な実施形態を得られるようにするために選択し記述した。
【図面の簡単な説明】
【００３４】
【図１】本発明の好ましい実施形態による、本発明を実装できるデータ処理システムの絵画図である。
【図２】本発明を実装できるデータ処理システムの構成図である。
【図３】データのストライピングおよびミラーリングを行うための従来技術を示す構成図である。
【図４】データのストライピングおよびミラーリングを行うための従来技術を示す構成図である。
【図５】データのストライピングおよびミラーリングを行うための従来技術を示す構成図である。
【図６】本発明の好ましい実施形態による、データ・ストライピングおよびデータ・ミラーリングの併用を示す構成図である。
【図７】本発明の好ましい実施形態によるハード・ディスク制御装置またはファイル・システムの動作を示す流れ図である。
【図１】
2004525464.tif 000003
【図２】
2004525464.tif 000004
【図３】
2004525464.tif 000005
【図４】
2004525464.tif 000006
【図５】
2004525464.tif 000007
【図６】
2004525464.tif 000008
【図７】
2004525464.tif 000009
【国際公開パンフレット】
2004525464.tif 000010
2004525464.tif 000011
2004525464.tif 000012
2004525464.tif 000013
2004525464.tif 000014
2004525464.tif 000015
2004525464.tif 000016
2004525464.tif 000017
2004525464.tif 000018
2004525464.tif 000019
2004525464.tif 000020
2004525464.tif 000021
2004525464.tif 000022
2004525464.tif 000023
2004525464.tif 000024
2004525464.tif 000025
2004525464.tif 000026
2004525464.tif 000027
2004525464.tif 000028
2004525464.tif 000029
2004525464.tif 000030
2004525464.tif 000031
2004525464.tif 000032
2004525464.tif 000033
【国際公開パンフレット（コレクトバージョン）】
2004525464.tif 000034
2004525464.tif 000035
【国際調査報告】
2004525464.tif 000036
2004525464.tif 000037
2004525464.tif 000038