(57)【要約】【課題】  米国特許６，４６７，０２３は、ＲＡＩＤストレージシステムで論理ユニットを生成し本ユニットを直ちに使用できるようにする方法を扱っている。当該特許の目的はここで述べていることと類似しているとは言え、ディスクの未フォーマットエリアに対する記述は存在しない。更にバックグラウンド操作としての初期化については何も語っていない。バックグラウンドでのコピーは、ＩＢＭ社のＲｅｄＢｏｏｋ“Implementing ESS Copy Services on S/390”の4.8章に記述された”Flash Copy”機能の詳細を使用して実装可能である。【解決手段】  巨大ストレージシステムの初期化を行う方法及び装置が紹介されており、初期化はバックグラウンド機能として、必要に応じて、更には、書き込み要求の受信を契機に実行される。  初期化は、ハードディスクドライブ自身、ストレージコントローラ、又はその双方の制御の下で実行される。初期化動作はホストコンピュータには見えない様に実行され、ストレージシステムがホストに結合され次第、ホストからの使用が可能になる。【選択図】図２
2005011317.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ媒体にデータを書き込むストレージシステムに於いて、該システムの動作開始前には該システムは全体としてはデータ受信不能の状態であっても、該システムがデータ保存の為に使用開始可能とすることを特徴とするストレージ媒体を使用可能にする方法。
【請求項２】
前記システムは使用開始時には使用不能であっても、前記システムの部分は、前記システムの部分がデータ保存に使用するよう要求されたとき、データを受信することが可能にすることを特徴とする請求項１の方法。
【請求項３】
データ受信を可能にすることは、前記ストレージシステムの初期化を含むことを特徴とする請求項２の方法。
【請求項４】
前記システムは、ストレージコントローラとディスクドライブを装備し、前記初期化は、該ストレージコントローラ及び該ディスクドライブの少なくとも何れかで制御されることを特徴とする請求項３の方法。
【請求項５】
前記ストレージコントローラは、前記初期化を制御する制御データを、不揮発メモリに保存することにより維持することを特徴とする請求項４の方法。
【請求項６】
前記ストレージコントローラは前記初期化を制御し、前記ディスクドライブが前記ストレージコントローラからのコマンドを受信して自らを初期化することを特徴とする請求項５の方法。
【請求項７】
データ保存の為の初期化が全体としては未完の状態のストレージシステムに於いて、
データが読み出されるアドレスをチェックするステップと、
前記アドレスが前記ストレージシステムの初期化済エリアに属していたら、データを返送するステップと、
前記アドレスが前記ストレージシステムの初期化未了エリアに属していたら、他のストレージをチェックし、該他のストレージのデータを返送するステップと、
を含むことを特徴とするストレージシステムからのデータ読み取り方法。
【請求項８】
前記アドレスが前記ストレージシステムの初期化済エリアに属しているか否かの判定を、前記ストレージシステムの前記初期化済エリアを表示するビットマップをチェックして行うことを特徴とする請求項７の方法。
【請求項９】
前記エリアが初期化未了であったら、ナルデータを返送することを特徴とする請求項７の方法。
【請求項１０】
前記請求項７の方法において、更に、前記ストレージシステムの初期化未了エリアを示すポインタを装備することを含むことを特徴とする方法。
【請求項１１】
データ保存の為の初期化が全体としては未完の状態のストレージシステムに於いて、
データ書き込みのアドレスをチェックするステップと、
前記アドレスが前記ストレージシステムの初期化済エリアに属していたら、データを書き込むステップと、
前記アドレスが前記ストレージシステムの初期化未了エリアに属していたら、データを書き込み、更に前記アドレスは今や初期化済エリアに属することを表示する設定を行うステップと、
を含むことを特徴とするストレージシステムへのデータ書き込み方法。
【請求項１２】
前記ストレージシステムはデータ保存の為にチャンク単位に分割された媒体を装備するハードディスクドライブで構成され、対象エリアが初期化未了エリアに属していたら、
前記データ書き込みステップは更に、前記データの境界は該チャンクの内部に含まれるか否かを判定するステップを含み、
更に前記データ書きこみステップは該チャンク内でデータの書き込み対象外の領域にナルデータのパターンを書き込むステップを含むことを特徴とする請求項１１の方法。
【請求項１３】
ストレージ媒体にデータを書き込むストレージシステムに於いて、
前記システムはバックグラウンドジョブとして初期化を行い、入出力要求及び初期化がバックグラウンドジョブとして実行されるる方法、及び
前記システムは書き込み要求の受信を契機に必要に応じて初期化を行う方法、
の二つの方法のうち少なくとも何れかの方法で、前記システムがデータ保存の為に使用開始可能とすることを特徴とする、ストレージ媒体を使用可能にする方法。
【請求項１４】
前記初期化は前記ストレージシステムを制御するコントローラからのコマンドの受信を契機に実行されることを特徴とする請求項１３の方法。
【請求項１５】
データ保存に用いられるに先立って初期化が必要な領域を有し、外部ユニットからのコマンドを契機にデータ保存を行う媒体と、
各領域の初期化状態に関する情報を保存するメモリと、
を装備するストレージシステムにおいて、
前記ストレージシステムの複数の領域全体では初期化未完であっても、該複数の領域の一つはデータ保存に使用可能であることを特徴とするストレージシステム。
【請求項１６】
前記メモリは更に、前記媒体の初期化済み状態の範囲を示すポインタを有することを特徴とする請求項１５のストレージシステム。
【請求項１７】
前記外部ユニットはストレージコントローラを含むことを特徴とする請求項１５のストレージシステム。
【請求項１８】
前記ストレージコントローラは前記メモリを含み、前記媒体領域の初期化を制御することを特徴とする請求項１５のストレージシステム。
【請求項１９】
前記媒体はディスクドライブから成り、前記ストレージコントローラからのコマンド受信を契機に該ディスクドライブは自らの初期化を実行することを特徴とする請求項１７のストレージシステム。
【請求項２０】
前記メモリは前記ディスクドライブ上の媒体領域の一部分から成ることを特徴とする請求項１９のストレージシステム。
【請求項２１】
初期化は前記外部ユニットからの書き込み要求の受信を契機に媒体上で実行されることを特徴とする請求項１５のストレージシステム。
【請求項２２】
初期化は前記ストレージシステムが他のタスクを実行していない時に媒体上で実行されることを特徴とする請求項１５のストレージシステム。
【請求項２３】
データ保存に用いられるに先立って初期化が必要な複数の領域を有し、外部ユニットからのコマンドを契機にデータ保存を行う媒体を装備する、ストレージシステムにおいて、
データブロックを初期化する要求を受信するステップと、
制御データを初期化するステップと、
前記データブロックに対する通常の読み書き要求の実行を抑制するステップと、
前記データブロックを初期化するステップと、
前記データブロックは初期化済であることを示すように前記制御データを更新するステップと、
前記データブロックに対する通常の読み書き要求の実行を可能にするステップと、
を含み、
前記媒体の前記複数の領域は全体としては初期化未完であっても、前記複数の領域の一つはデータ保存に使用可能であることを特徴とする、媒体を初期化する方法。
【請求項２４】
媒体領域に対する通常の書き込み要求を実行する前に、該領域が初期化済であるか否かの判定を行うことを特徴とする請求項２３の方法。
【請求項２５】
前記データ書き込み要求の媒体領域が初期化未了であったら、前記データ書き込み前に該媒体領域を初期化することを特徴とする請求項２４の方法。
【請求項２６】
書き込み対象領域の初期化が完了する迄の間は、書き込みデータをメモリに保存し、後に該データを該領域に書き込むことを特徴とする請求項２５の方法。
【請求項２７】
媒体領域に対する通常の読み出し要求を実行する前に、該媒体領域が初期化済であるか否かの判定を行うことを特徴とする請求項２３の方法。
【請求項２８】
前記データ読み出し要求の媒体領域が初期化未了であったら、該媒体領域を初期化して、該データは他のロケーションから読み出すことを特徴とする請求項２３の方法。
【請求項２９】
読み出し対象のデータは、該データが読み出される領域が初期化されるまでの間は、メモリに保存されることを特徴とする請求項２８の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステムに関連し、特にストレージシステムを最初から使用可能にする為の方法と装置に関連する。
【背景技術】
【０００２】
最近のストレージシステムは、多数のハードディスクドライブあるいはその他のストレージ媒体を使用して、何千ギガバイトにも及ぶデータを保存することが可能である。然しながら、各システムを最初に使い始めるには、各ハードディスクドライブ又はその他のストレージ媒体を適切に使用出来るように、物理的に初期化することが必要である。この操作は、しばしばストレージ媒体の“フォーマット化”と言われる。
【０００３】
初期化又はフォーマット化により、ハードディスクドライブ上に各種のマーカを配置して、情報を記録可能な場所を特定している。更に又、通常、相応しいヌルデータをディスクに書き込み、全てのビットが確定できる様にしている。本ヌルデータには、０又は１、又はその組合せが用いられている。時によっては、本初期化処理は、システムがある期間稼動した後にも、例えばシステムをリセットしたり、既に不要になったデータをディスクから取り除く為に、実行されることもある。
【０００４】
巨大なストレージシステムを初期化するには、長大な時間が必要で、すべてのハードディスクドライブが初期化されるまで、当該システムや本システムを含む親システムまで使用不能となる。これは望ましい事ではない。
【０００５】
ある初期化方法では、ディスクの全てのデータ領域の書き換えは行わず、代わりにデイレクトリ情報のみを消去し、各デ−タのインデックス部のエントリを削除して事実上ディスクからデータを削除したものとして、当該データ領域を後で再利用できるようにしている。
【０００６】
このような方式は、“クイック（高速）”初期化又はフォーマット化として知られるようになってきている。この方式は、ディスクが以前のいつかの時点で初期化が実行された事を前提にしている。加えて、クイック初期化はデータ自体をディスク面に残したままにしている欠点がある。
【０００７】
従って、デイレクトリ情報のみが初期化されているディスク部分に対して“読み出し動作”が実行されると、不正データが返送されることがあり得る。
【０００８】
米国特許６，４６７，０２３は、ＲＡＩＤストレージシステムで論理ユニットを生成し本ユニットを直ちに使用できるようにする方法を扱っている。バックグラウンドでのコピーは、ＩＢＭ社のＲｅｄＢｏｏｋ“Implementing ESS Copy Services on S/390”の4.8章に記述された”Flash Copy”機能の詳細を使用して実装可能である。
【０００９】
【特許文献１】米国特許6467023
【発明の開示】
【発明が解決しようとする課題】
【００１０】
当該米国特許6467023の目的はここで述べていることと類似しているとは言え、ディスクの未フォーマットエリアに対する記述は存在しない。更にバックグラウンド操作としての初期化については何も語っていない。
【課題を解決するための手段】
【００１１】
本課題を達成する一つのアプローチは、初期化処理を、自動的に又は特殊コマンドの受領を開始契機として、中断可能なバックグラウンドジョブとして実行することである。このどちらの方法を採用するにしても、ストレージシステムはポインタとビットマップを装備する。
【００１２】
ポインタは、（初期化プロセスにて）未だ初期化されていないディスクドライブのエリアの最初のエリアを示すために使用され、一方ビットマップは、各ドライブの全エリアの各々が初期化（書き込み契機の初期化も含めて）済であるか否かを示すマップを保存するために使用される。初期化未了エリアに向けられたデータは、当該エリアがデータの受入れができる（初期化される）迄キャッシュに保存される。当該エリアがデータの受け入れが可能になると、本データは媒体に書き込まれる。この間にも、システムは次に要求される処理を実行することが出来る。
【００１３】
ここに述べられる技術を実装する為に、読み書き処理及び初期化処理に特殊な処理が使用される。読み出し処理の場合には、要求されたアドレスが最初にチェックされ、本アドレスがディスクドライブ（又は他の媒体）の初期化済エリアに属すか否かが判定される。もし、本エリアが初期化済なら、慣用的な方法でデータはディスクから転送される。もし要求アドレスは初期化未了であれば、初期化パターンのナルデータが返送される。
【００１４】
書き込み処理も読み出し処理と同様に実行される。書き込み要求が発生したら、システムは最初に要求されたアドレスをチェックして、そのアドレスが利用可能か即ち指定エリアは初期化済みか否かを判定する。もし初期化済であれば、データは慣用的方法でディスク上に書き込まれる。反対に指定エリアが初期化未了であれば、書き込みデータはディスクの指定エリアの初期化が完了するまでキャッシュ上に待機される。初期化完了により、データはキャッシュからディスクに書き込まれる。
【００１５】
かくして一般的に言えば、ディスクに対して処理がなされる場合には、その処理が実行されるブロックが初期化済であれば、初期化ステップはスキップされる。もし初期化未了であれば、要求データの書き込み処理に先立って初期化処理が実行される。本アプローチにより、ストレージシステムは接続され次第実質的に直ちに使用可能となる。かくして、一つの実施例では、ストレージ媒体にデータを書き込むストレージシステム内にストレージ媒体を用意する方法は、システムが完全には用意されていない状態でもシステムが使用開始可能になるように用意するステップを含む。
【００１６】
本発明のもう一つの実施例では、初期化が完全には終了していない状態でのストレージシステムからの読み出し方法は、読み出すデータのアドレスをチェックするステップを含み、もし初期化済のエリアからの読み出しの場合は当該エリアのデータを提供する。もし対象エリアが初期化未了であれば、他のメモリ、典型的にはキャッシュメモリがチェックされそこからデータは返送される。
【００１７】
完全には初期化が完了していない状態でのストレージシステムにデータを書き込む方法では、データが書き込まれる当該アドレスをチェックするステップを含み、初期化済であれば当該データを書き込む。もし初期化未了であれば、当該エリアの初期化が完了するまでデータはキャッシュメモリに維持される。本アプローチを実装したストレージシステムは、ホストからのコマンドに応答してデータを保存する媒体を含み、本媒体はデータ記憶に使用されるには初期化が必要である。
【発明の効果】
【００１８】
一般的に言って、本発明により、ストレージシステムに対する初期化は、ストレージシステムがインストールしてすぐ使用可能になり、ユーザにはシステムは既に初期化済であると見えるような方法で実行することが可能になる。
【発明を実施するための最良の形態】
【００１９】
図１は本発明を実装可能なストレージシステムの一部の基本構成を示すダイアグラムである。図１は二つのメモリ１０１、１０２及びデータ保存の為のストレージ媒体１０３を示している。典型的にはストレージ媒体１０３はハードディスクドライブである。本メモリは通常例えば、ＤＲＡＭ、ＳＲＡＭ又はフラッシュメモリ等の半導体メモリである。メモリ１０１はデータの読み書き処理を扱う（又はバッファする）為のワークエリア１０４を備えている。ワークエリア１０４はキャッシュメモリと呼ばれることも多い。メモリ１０２はビットマップ１０５とポインタ１０６を保持する。ビットマップ１０５は媒体各部の実質的な初期化状態を表し、ポインタは初期化待ち媒体領域の開始点を示す。
【００２０】
一般的に言って、ハードディスクドライブ１０３等の媒体を使用するには、データ保存が可能になる為には初期化することが必要である。多くの初期化ステップに於いては、媒体上にセクタ、トラックその他の情報を配置して、情報保存用のロケーションを特定し、通常は媒体上の各記憶ロケーションが正常か否かを確かめる為にチェックを行う。この形の初期化は“フォーマット化”とも呼ばれる。
【００２１】
図１で示されるシステムでは、媒体は任意サイズの“チャンク”１０７と呼ばれる一連の単位に分割されている。例えば、ストレージエリア内の各チャンク又はストレージ領域１０７は、ストレージシステムでの定義に従って、セクタ、ブロック、１メガバイト領域、その他の任意の容量値が使用できる。メモリ１０２の中には、ビットマップが媒体上の各チャンク対応の初期化状態を示すレコードを維持している。好ましい実施例では、本ビットマップの各ビットは、ストレージ媒体の対応する部分が初期化済であるかどうかを示す。
【００２２】
かくして、例えば、ストレージコントローラ等の外部装置は、本ビットマップをチェックすることにより、媒体１０３上の各チャンク１０７の初期化状態を直ちに判定する事が出来る。図示された実施例に於いては、メモリ１０２は、ビットマップ、ポインタのみを持つように描かれているが、他の実装例として、例えば、初期化に使用したデータパターン等の追加情報を持つことも出来る。媒体がフォーマット化される時には、しばしば適正な動作を保障する為に特定のデータパターンが媒体に書き込まれる。例えば、１と０の交互の繰り返しを媒体に書き込むことが出来る。ポインタ１０６は、初期化が通常の順序通りに実行されるとして、次に初期化される部分をポイントしている。（後に説明するように任意の順序を使用することも出来る。）
本ポインタ１０６は更に、初期化中断後の再開始（レジューム）点としても使用される。これにより、外部電源障害又はリセットの実行（により初期化が中断された）後に全面に亘る初期化を再実行する必要性が回避出来る。好ましい実施例では、媒体１０３はストレージシステムのストレージコントローラで定義されるボリュームである。
【００２３】
図２は第一のシステム構成を示すダイアグラムである。図２のシステムは本発明が適用されるストレージシステムの全体像を示す。図２には、ホスト２０１、ストレージコントローラ２０２及び一連のディスクドライブ２０３が示されている。本ディスクドライブは通常ＲＡＩＤ又は同様なタイプのシステムとして構成される。ホストは一般的に、外部コンピュータ（図示していない）からの要求に従う情報をディスクドライブ２０３との間で、読み書きする為のコマンドをストレージコントローラに対して発行する。
【００２４】
例えば、本外部コンピュータは航空券予約オフィスの端末で、ディスクドライブは搭乗者と航空券情報を保存している。典型的には、ホストとストレージコントローラは、チャネル２０４を通して互いに交信し、具体的なシステム構成に従って、ストレージコントローラとホストは各々複数台存在することもある。
【００２５】
チャネル２０４にはファイバチャネル、ＥＳＣＯＮ、ＳＣＳＩ、ＧＥ又はその他の実装が採用される。ホスト２０１とチャネル２０４は業界でよく知られた流通コンポーネントである。ストレージコントローラ２０２自身は、メモリ２１０、２１１、チャネルコントローラ２０７、ディスクコントローラ２０８及び内部バス２０９等の一連のコンポーネントを有する。チャネルコントローラ２０７とディスクコントローラ２０８は、各々、ストレージコントローラとホストとの間、及びバス２０５を通したストレージコントローラとディスクドライブ２０３との間の交信を司る。図示されたストレージコントローラのアーキテクチュアは米国特許６，６８９，７２９及び米国特許６，３８５，６８１に開示されている。更に、デュアルヘッド構造を使用して記録、再生する方法と装置について述べている米国特許６，２３６，５２８、及びディスクドライブコントロールユニットについて記している米国特許５，１０９，５００を参照する事。
【００２６】
ストレージコントローラ２０２内のメモリ２０６は、例えば、フラッシュメモリ等の不揮発メモリを使用するのが普通である。或いは又、バッテリバックアップして停電時にも情報が失われない様にしたＤＲＡＭ、ＳＲＡＭ等も採用する事が出来る。メモリ２０６は、読み書き動作時のデータバッファ用のキャッシュメモリ２１０と、分離したメモリ２１１を含み、本メモリに初期化状態ビットマップと図１に関連して述べた機能が実装される。これらのメモリは、内部バス２０９を通してコントローラ２０７と２０８に結合される。２０９等のバスは公知のもので、バス又はスイッチとして実装される。
【００２７】
ディスクドライブ２０３は、冗長構成されたアレイ、例えばＲＡＩＤその他の形で構成される。本ディスクドライブは、ファイバチャネル、ＳＣＳＩ又はＡＴＡバス等のディスクバス２０５を通して接続される。一般的に、ストレージコントローラ２０２は、ホスト２０１が使用する論理ディスクアドレスとディスクドライブ２０３で使用する物理ディスクアドレスとの間の変換を行う。
【００２８】
図３は、図２のストレージシステムで実行される本発明の好ましい初期化プロセスを示すフローチャートである。本プロセスは、ディスクドライブをすぐに使用したいために、システムの使用の前にディスクドライブ２０３の全アレイの全面初期化の完了を待つ事が好ましくない状況に対応できるように実装されている。例えば、本プロセスは、より大きなシステムが既に稼動していて、そこに図２で示されるような新ストレージシステムが追加される場合等に使用できるものである。
【００２９】
図３の初期化プロセスは、ステップ３０１での初期化コマンドの受信を契機に開始される。本コマンドは、例えば、システム管理者が管理用コンソール又は遠隔コンソールを用いて発行するマニュアルコマンドか、外部コンピュータシステムで生成されるコマンドである。このような外部コマンドの例としては、ＳＣＳＩの“Format Unit”又はＡＴＡの“CFA Erase Sectors”コマンドが該当する。これに応答して、初期化プロセスでは通常はオール０のデータがストレージに書き込まれるが、管理者による選択及び／又はストレージシステムの設計次第では、他の任意のデータパターンが使用できる。
【００３０】
ステップ３０２にて初期化プロセスが開始する。最初のステップはメモリ２１１に保存されている制御データを初期化することである。本ステップでは、ビットマップ中の全てのビットをして、本ビットマップが対象とするディスクドライブ又はディスクドライブ上のチャンクは全て未初期化状態であることを表示させる。ステップ３０３で、本初期化要求は受信され処理された事が報告される。本報告の受信により、ストレージコントローラとホストは、本ボリューム又はストレージサブシステムは入出力要求を受付して実行できることを認識する。例えば、ディスクドライブに対する読み書き動作を開始することが可能になる。勿論初期化処理そのものは完了していないが、本発明を採用するシステム全体からの観点からは、ディスクは今や動作可能状態になっている。もとより、本発明を採用していないシステムに於いては、初期化プロセスが実際に全て完了する迄は初期化完了報告は発生しないのである。
【００３１】
図３のステップ３０４から３０９にて、ディスクに対する初期化のための主要プロセスが示される。ステップ３０４にて、ストレージコントローラ２０２は初期化対象チャンクに対応するビットマップをチェックする。もし、ビットマップ中の対応ビットがセットされていたら、本チャンクは初期化済で初期化処理は不要であることが示される。本ケースは、ステップ３０４からの“Ｙｅｓ”で示され、ストレージコントローラは本チャンクの初期化をスキップし、３０８でポインタをインクリメントして次のチャンクを示し、初期化を継続する。反対に、ステップ３０４にて当該チャンクは初期化未了と判定されたら、プロセスはステップ３０５に進み、当該チャンクはロックされる。本ロックによって、当該チャンクが他のプロセスから使用されることを防止できる。部分的に読み書きされたデータは、当該チャンクが初期化されることによって失われる。
【００３２】
ステップ３０６でチャンクは初期化され、相応しいデータパターンが書き込まれる。次いでステップ３０７にて、ビットマップの対応ビットをセットし、本チャンクは開放され他プロセスからの使用が可能になる。ステップ３０８でポインタが進められた後に、ステップ３０９にて全ての対象エリアの初期化が完了したかをチェックする。完了していない場合は、次のチャンクの為にステップ３０４に戻る。反対に全ての対象エリアが初期化済になったら、メモリ２１１の制御データが対応して改定され本プロセスは完了する。
【００３３】
図３に示される通りに初期化プロセスを実行することにより、本初期化プロセスは低負荷時に実行することが出来る。例えば、初期化は低負荷の深夜帯でのみ実行し昼間帯は停止状態にすることが出来る。
【００３４】
図４は、システム全体が完全に初期化完了する前に書き込みプロセスを実行する、本発明の好ましい実施例を説明するフローチャートである。システム全体が完全に初期化完了した後は、本プロセスを継続使用してもよいし、従来技術の書き込み処理で実行してもよい。この場合、図４を使用した書き込み処理では、初期化中のナルデータ書き込みに代わりユーザデータがストレージボリュームに書き込まれる。本書き込み処理はステップ４０１にて、要求チャンクをロックすることから始まる。もし複数のチャンクにまたがって書き込み処理が要求されたら、ストレージコントローラ２０２は、図４に示すように、同じロック処理を全ての要求チャンクに対して実行する。
【００３５】
ステップ４０２に示すように、次のプロセスは当該チャンクが初期化済か否かを判定する事である。もし初期化済なら、フローはステップ４０３を経由して４０８に進み、データが該当ロケーションに書き込まれ、その後ステップ４０９にてチャンクは通常の動作の為にロックが開放される。本様式では、対象チャンクが初期化済か否かを判定する事を除いて、通常の慣用的書き込み処理と同様な処理を実行可能である。もし当該チャンクが初期化未了の場合は、プロセスは４０５に進み、ここでビットマップの当該チャンク対応ビットをセットする。ステップ４０６にてメモリが割り当てられ、ステップ４０７にて当該チャンクは初期化される。
【００３６】
最後に、ステップ４０８にてキャッシュメモリ２１０に当該チャンクに対するデータが書き込まれる。後の適当な時期に、キャッシュ上のデータはハードディスク上にコピーされる。データがキャッシュに書き込まれ次第、当該チャンクはステップ４０９にて書き込み処理から開放される。本処理については後ほど更に記述する。
【００３７】
図５は、媒体１０３の初期化済エリア１０７のアドレスへ、書き込み要求が発行された場合の書き込み処理を示すダイアグラムである。
【００３８】
図４のステップ４０１、４０２、４０３、４０８及び４０９で示すプロセスにより、書き込み処理は、図５の矢印“１”で示されるように最初にキャッシュメモリ１０４に書き込まれる。後でストレージコントローラの制御の下で、オペレーション“２”が実行され、データは図示されたようにメモリ１０１から媒体１０３に書き込まれる。
【００３９】
図６は、媒体１０３の初期化未了エリア１０８のアドレスへの書き込みプロセスを示すダイアグラムである。図示するように、第一に行うことは、メモリ１０１の中にチャンクサイズに相当する部分１０４を割り当て、図６のステップ“２”としてここにユーザデータを受け取る事である。データは次いで、本チャンク対応のメモリ部分に書き込まれ保持される。メモリ１０４中でユーザデータが存在しない部分は、媒体１０３に望ましい初期化パターンが都合よい時期に埋め込まれる。並行して又は後で、ブロック１０８の初期化対象部分のチャンク対応部分が初期化される。本処理は、図４で示したプロセスを用いて実行され、ビットマップはセットされる（ステップ“３”）。後の都合良い時に、ステップ“４”に示される通りデータは、メモリ１０１から媒体１０３の対象とするロケーションに書き込まれる。
【００４０】
図６で本質的なことは、メモリ１０１のチャンク１０４の全部分は適正に書き込まれており、本チャンクの全部分は媒体１０３にコピーされ、この結果媒体上の当該チャンクは全体で、初期化パターンとユーザデータを保存する結果となる。例えば、チャンク１０４のユーザデータ（斜線で示される）以外の部分は、オール０又は他の適当な初期化パターンが書き込まれる事になる。
【００４１】
図７は、初期化プロセス上では初期化未了エリアに書き込み要求が来て、当該チャンクはホスト２０１から既に更新済の場合の書き込みプロセスの詳細を示すダイアグラムである。
本図は、図４のステップ４０１、４０２、４０３、４０８及び４０９のプロセスを反映する。図７で示すプロセスは通常の書き込み処理と本質的に同じで、第一ステップとして、要求データはキャッシュメモリ１０４に書き込まれ、第二ステップとして後で媒体１０３に書き込まれる。
【００４２】
図８は、読み出しプロセスを示すフローチャートである。最初のステップ８０１にて、読み出し対象のエリアがロックされる。もし２つ以上のチャンクが対象なら、読み出し対象の全チャンクが同様にロックされる。次のステップ８０２にて、指定エリアは初期化済であるか否かが判定される。もし初期化済であれば、ストレージコントローラは、ステップ８０４に示すように、ディスクドライブ２０３から所定のデータをステージする（読み出す）。これにより所定のデータはストレージコントローラに戻り、これは通常の読み出し処理と実質的に同じである。反対に、データが読み出されるべきエリアが初期化未了の場合は、ストレージコントローラは、ディスクドライブ２０３からのステージングを行う事無く、ステップ８０３で初期化パターンのデータを返送する。言い換えると、初期化されたデータパターンが送信される。
【００４３】
最終的に、ステップ８０５に示すように、指定エリアのロックは解除されプロセスは次の処理に向かう。なお、もう一つの実装として、初期化未了領域に発行された読み出し要求には、読み出すデータが存在しないとして、エラー終了しても良い。
【００４４】
図９は読み出し要求が更新済領域に発行された場合の読み出しプロセスの詳細を示すダイアグラムである。これらは図８のステップ８０１、８０２、８０４及び８０５に相当する。この場合の読み出し処理は通常の読み出し処理で、第一ステップとして、データはディスクドライブ１０３からキャッシュメモリ１０４にステージされる。その後のステップ２で、データはキャッシュメモリ１０４からホストに転送される。
【００４５】
図１０は初期化未了のエリアに発生した読み出しプロセスを示すダイアグラムである。本図は図８のステップ８０１、８０２、８０３及び８０５に対応する。この場合は通常の読み出し処理とは異なって、ストレージコントローラはメモリからは単に初期化のデータパターン、即ち通常はオール０のパターンを得るのみである。かくして、データがメモリにロードされた後は、１ステップの処理で用が足りる。
【００４６】
図３から図１０は、バックグラウンドでの初期化処理を一般的に説明している。即ち、これらの図で説明するプロセスでは、初期化処理は、少なくともホストから見た場合には、システムが正常に動作している間に実行される。従って、読み書き処理はホストに対しては、全く通常通りに実行されるように見える。これまでの方法に代わる実施例として、初期化は対象エリアに対する書き込み要求の受信を契機に実行する、“書き込み契機の初期化”がある。初期化はバックグラウンドでは実施されず、ひたすら書き込み要求が来たチャンクに対して実施される。
【００４７】
書き込み契機の初期化は、図３のステップ３０１、３０２及び３０３と図４から図１０を用いて実行することが出来る。図３のステップ３０４から３０９は不要である。以上に述べた実施例に於いては、ストレージコントローラが、これまで述べた初期化方法を実装した装置になることが出来る。然しながら、プロセッサ能力の絶えざる発展により、ディスクドライブが内部プロセッサを持つに至っている。このようなディスクドライブに対しては、初期化処理のような機能はストレージコントローラからディスクドライブに委譲する事が可能である。これによって、ストレージコントローラの過負荷を低減する事が出来る。
【００４８】
このような実装例を図１１に示す。本図から分かるように、メモリ１１０１と１１０２及びビットマップ１１０３が今や全てディスクドライブに実装されている事を除いて、システム構成はこれまで議論してきた事と殆ど同一である。既に述べたように、これらのメモリは揮発又は不揮発である。しかしながら、これらのメモリはディスクドライブに実装される関係上、ディスクドライブ媒体上の予約領域を用いる事ができ、ここにビットマップやその他の制御データを格納する事が出来る。このような実装に於いては、ホストが直接に、即ちストレージコントローラを介する事無く、ディスクドライブを接続する事も出来る。本発明に使用するのに相応しいディスクドライブのアーキテクチュアは、幾つかの特許に記されている。例えば、米国特許６，２３６，５２８、米国特許５，１０９、５００、及び米国特許６，２３６，５２８を参照する事。
【００４９】
内部プロッセサを実装するディスクドライブを使用する実施例に於いては、動作プロセスは、すでに述べたストレージコントローラ構成の場合と本質的に同じである。ディスクドライブ２０３は、初期化プロセスに対してはストレージコントローラ２０２のように動作する。媒体１１０５が制御データを提供する。かくして、例えば、図３の処理３０８に於いては、ディスクドライブ２０３はポインタ１０６を更新後媒体上に保存する。
【００５０】
図４の処理４０５に於いては、ディスクドライブ２０３は更新後のビットマップ部分１０５を媒体１１０５に保存する。
【００５１】
図１２は、ディスク媒体がポインタ及びビットマップを保存する実装でのディスクドライブ２０３上でのデータ配置の好ましい実施例を示す。、制御用データをディスクドライブ２０３の後端部分に保存することにより、アドレスへの影響をなくしており、媒体のほんの一部を消費するのみである。
【００５２】
図１２に於いて、ビットマップ１２０４は、ポインタ位置、チャンクサイズ、その他必要な情報が保持されている領域１２０３に共に、示されている。図示している様に、本領域はディスクドライブのアドレス領域の終端部に存在している。図に示された実装では、２００ギガバイトのドライブで、１メガバイトのチャンクに１ビットのビットマップとして、２５キロバイトのビットマップが必要になる。
【００５３】
図１３はシステムを構成する第三のアプローチを示す。既に述べた様に、第一のアプローチではストレージコントローラがビットマップと制御データを保持し、第二のアプローチではディスクドライブ自身がこれらの情報を保持する。図１３に示される実施例は、制御データを維持する為の書き込み回数を減少させる為に、二組のビットマップを有するハイブリッドタイプである。（これまでの実施例では、制御データをディスクドライブ媒体に保存するのに書き込み処理が必要であった。）
図１３では、ストレージコントローラ２０２が制御データを維持しており、これは、ストレージコントローラ２０２は通常ディスクドライブ２０３よりも高信頼のため、一般的に有利な点である。かくして、制御データは、ディスクドライブレベルの障害の如何に係わらず使用可能である。然しながら、ディスクドライブ２０３は、制御データを自らの媒体１３０４に保存しないことを除いて、第二の構成のディスクドライブ２０３のように振る舞う。
【００５４】
本実施例では、ストレージコントローラはビットマップ１０５を維持し、初期化中のボリュームに対する要求の全てを扱う。これにより、ビットマップ１０５の更新要求に対する処理が容易になり、初期化中のボリュームに対する書き込みコマンドで毎回更新することが可能になる。加えて、ポインタ１０６はレジューム動作を可能にする。これにより、初期化処理が途中で失敗した場合でも、全ドライブの再初期化を実施する必要がなくなる。もとより、ポインタが遅延していても、ストレージコントローラ２０２が全ディスクを再度初期化するのに比べると、大きな違いが存在する。ポインタに関する情報は、ベンダユニークコマンド又はディスクドライブへの要求のステータス中のメッセージによって最新化される。
【００５５】
図１3に関するもう一つの課題は、ストレージシステム内のディスクドライブ２０３はチャンクサイズやディスクサイズ等について同一のセットアップデータを持たなければならない事である。本件は、ＳＣＳＩやＡＴＡの“Mode Set/Select”コマンド等の内部プロトコルを用いて、デフォルトの設定をすることにより達成される。
【００５６】
図１４はレジューム動作を説明するフローチャートである。もしディスクドライブ２０３が障害になったら、本ドライブは再使用不能である。本ケースでは、本ディスクドライブ上のデータを使用するには、例えばＲＡＩＤ構成のような冗長データを用いて、本データを新ディスク上に再構築しなければならない。本処理はレジューム処理と言われる。
【００５７】
図１４に於いて、第一のステップは、ステップ１４０１でのディスクドライブの電源をオンにすることである。これは通常はストレージコントローラ２０２によってなされる。その後、ステップ１４０２に示すように、ストレージコントローラはディスクドライブ２０３が使用可能か否かをチェックする。もし当該ディスクが使用可能なら、ビットマップやポインタ等の制御データがダウンロードされ、初期化処理がステップ１４０４で再開始（レジューム）される。反対にステップ１４０２にて当該ディスクが使用不能と判定されたら、ディスク障害が報告され処理は終了する。
【００５８】
図１５は通常状態でのレジューム動作を示すダイアグラムである。本ケースでは、ストレージコントローラ２０２のビットマップは実態に一致し、ディスクドライブ２０３中のビットマップと同じである。然しながら、ポインタは常に一致しているとは限らず、ストレージコントローラ２０２のポインタは時には、ディスクドライブ２０３中のポインタに比べて、遅れていることがある。
【００５９】
図１６は障害発生後の状態を示す。図示するように、ディスクドライブのメモリ中の制御データは障害により失われている。ストレージコントローラ２０２は、然しながら、メモリ、好ましくは不揮発メモリ内に制御データを維持している。本ディスクドライブが立ち上がった後に、ストレージコントローラ２０２は制御データをストレージコントローラからディスクドライブ２０３にダウンロードする。
【００６０】
この動作は、制御データがディスクドライブ２０３にダウンロードされた後の状態を示している図１７によって示される。ビットマップは障害発生前と同じであるが、ポインタは真の値に比べて遅れている。図示されたケースでは、ポインタは２チャンク分遅れており、この部分は再初期化が必要になる。ところで、ビットマップは状態の実態を保持し、ポインタは初期化時間を低減することができ、特に初期化が殆ど終了している状態で障害が発生した場合に顕著である。
【００６１】
図１８はここで議論した初期化遅れを克服するもう一つのアプローチを示す。もしストレージコントローラがローカルコピー機能を有するなら、本コントローラはバックグラウンドでデータをコピーできる。このことから、ストレージコントローラはバックグラウンドでの初期化プロセスを、“ローカルコピー”機能を利用して実行できることになる。これを開始するには、少なくとも一台の完全初期化されたボリュームが必要である。初期化済ボリュームＡと未初期化ボリュームＢとの間でローカルペアを生成する。ボリュームＢがホストからアクセス可能になってから、ボリュームＡからボリュームＢへのコピーがバックグラウンドで実行可能になる。本オペレーションの結果として、ボリュームＢはボリュームＡに対応して初期化される。
【００６２】
下記の表は、各種の構成とオペレーションを要約するものである。各欄は、これまで述べた三種類の構成を示す。一つはストレージコントローラが初期化プロセスを実行し、他の一つはディスクドライブが本処理を実行し、最後の一つはハイブリッドアプローチである。本表の各行は、各種メモリ、媒体、初期化処理の制御の所在場所を示している。
2005011317.tif 000003
【００６３】
本発明の各実施例は、従来技術によるストレージシステムの初期化装置又はシステムに比べて、ユニークな長所を提供できる。本発明の好ましい実施例を紹介してきたが、本発明の範囲は次の請求項で定義されるものである。
【図面の簡単な説明】
【００６４】
【図１】は、本発明を実装するための基本構成を示す。
【図２】は、本構成をより詳細に説明するためのブロックダイアグラムである。
【図３】は、初期化プロセスを説明するフローチャートである。
【図４】は、書き込み処理を説明するフローチャートである。
【図５】は、第一の書き込み処理を示すダイアグラムである。
【図６】は、第二の書き込み処理を示すダイアグラムである。
【図７】は、第三の書き込み処理を示すダイアグラムである。
【図８】は、読み出し処理を示すフローチャートである。
【図９】は、もう一つの読み出し処理を示すダイアグラムである。
【図１０】は、更に次の読み出し処理を示すダイアグラムである。
【図１１】は、システム構成を示すダイアグラムである。
【図１２】は、ビットマップを示すダイアグラムである。
【図１３】は、もう一つの構成を示すダイアグラムである。
【図１４】は、レジューム処理を示すフローチャートである。
【図１５】は、第一のレジューム処理を示すダイアグラムである。
【図１６】は、第二のレジューム処理を示すダイアグラムである。
【図１７】は、第三のレジューム処理を示すダイアグラムである。
【図１８】は、バックグラウンドでの初期化処理を示すダイアグラムである。
【符号の説明】
【００６５】
２０１・・・ホスト
２０２・・・ストレージコントローラ
２０３・・・ディスクドライブ
２０４・・・チャネル
２０５・・・デバイスバス
２０６・・・メモリ
２０７・・・チャネルコントローラ
２０８・・・ディスクコントローラ
【図１】
2005011317.tif 000004
【図２】
2005011317.tif 000005
【図３】
2005011317.tif 000006
【図４】
2005011317.tif 000007
【図５】
2005011317.tif 000008
【図６】
2005011317.tif 000009
【図７】
2005011317.tif 000010
【図８】
2005011317.tif 000011
【図９】
2005011317.tif 000012
【図１０】
2005011317.tif 000013
【図１１】
2005011317.tif 000014
【図１２】
2005011317.tif 000015
【図１３】
2005011317.tif 000016
【図１４】
2005011317.tif 000017
【図１５】
2005011317.tif 000018
【図１６】
2005011317.tif 000019
【図１７】
2005011317.tif 000020
【図１８】
2005011317.tif 000021
【外国語明細書】
2005011317.tif 000022
2005011317.tif 000023
2005011317.tif 000024
2005011317.tif 000025
2005011317.tif 000026
2005011317.tif 000027
2005011317.tif 000028
2005011317.tif 000029
2005011317.tif 000030
2005011317.tif 000031
2005011317.tif 000032
2005011317.tif 000033
2005011317.tif 000034
2005011317.tif 000035
2005011317.tif 000036
2005011317.tif 000037
2005011317.tif 000038
2005011317.tif 000039
2005011317.tif 000040
【図１】
2005011317.tif 000041
【図２】
2005011317.tif 000042
【図３】
2005011317.tif 000043
【図４】
2005011317.tif 000044
【図５】
2005011317.tif 000045
【図６】
2005011317.tif 000046
【図７】
2005011317.tif 000047
【図８】
2005011317.tif 000048
【図９】
2005011317.tif 000049
【図１０】
2005011317.tif 000050
【図１１】
2005011317.tif 000051
【図１２】
2005011317.tif 000052
【図１３】
2005011317.tif 000053
【図１４】
2005011317.tif 000054
【図１５】
2005011317.tif 000055
【図１６】
2005011317.tif 000056
【図１７】
2005011317.tif 000057
【図１８】
2005011317.tif 000058