(57)【要約】アプリケーションが複数の論理デバイスにまたがっているデータ処理システムにおいてデータ修復を促進する方法及び装置。データ処理システムはデータを保存する複数の標準デバイス及び、一つのモードではそうした標準デバイスのミラーとして動作する、対応するＢＣＶデバイスを含む。そうしたＢＣＶデバイスのいくつかが同一のデータセットと関連している場合、ＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴ動作は、これらのＢＣＶデバイスの各々が、それが対応する標準デバイスから切り離され、別のアプリケーションに対して使用される形態を制御する。ＢＣＶデバイスを制御するアプリケーションに対する各コマンドは、一貫性ある分離動作に含まれているＢＣＶデバイスを特定し、それらの装置が一貫性ある形でそれぞれの装置から切り離されている間、それらの特定の装置に対してシステム・ロックアウトを設定する一つ或いはそれ以上の要求データ構造に変換される。
2004503848.tif 000002
【特許請求の範囲】
【請求項１】
ホストと、少なくとも一つのディスク・アレイ記憶装置とを含み、前記ディスク・アレイ記憶装置が、第１アプリケーションと対話する複数の第１論理デバイスと前記第１論理デバイスの各々に対応する第２論理デバイスとを含み、前記第２論理デバイスは、第１モードにおいて、対応する第１論理デバイスのためのミラーとして対話でき、第２モードにおいて、第２アプリケーションと対話できるようになったデータ処理システムにおいて、
Ａ）複数の特定された第２論理デバイスを一貫性ある形で前記第１モードから前記第２モードにシフトするコマンドを発生し、
Ｂ）前記コマンド中で特定された前記第２論理デバイスの各々のための要求データ構造を生成し、
Ｃ）前記第１アプリケーションと特定された前記第２論理デバイスに対応する前記第１論理デバイスとの間の全ての対話を不能にし、
Ｄ）前記不能化の後で、特定された前記第２論理デバイスの全てについて前記第２モードへのシフトを開始し、
Ｅ）前記シフトの完了に基づいて、前記第１アプリケーションと特定された前記第２デバイスに対応する前記標準論理デバイスとの間での対話の再開を可能にし、
Ｆ）前記第２モードへの前記シフトが完了し、その結果特定された前記論理デバイスにある前記データが一貫性あることを示す、ホストへの返答を生成する、段階を含むことを特徴とする方法。
【請求項２】
前記ディスク・アレイ記憶装置がバッファを含み、書き込み動作がホストから前記バッファへの書き込み保留エントリとしての第１転送及び前記書き込み保留エントリの論理デバイスへの第２転送を含み、第２論理デバイスの前記第２モードへの前記シフト動作が、前記第２論理デバイスをそれが対応する第１論理デバイスから切り離し、前記第２論理デバイスを前記第２アプリケーションに接続し、前記バッファの書き込み保留エントリの転送を管理することを含み、特定された前記第２論理デバイスのシフトの前記開始が前記切り離し及び接続のステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１アプリケーションと前記第１論理デバイスとの間における対話の可能化の後で、書き込み保留エントリ転送の前記管理が行われることを特徴とする請求項２に記載の方法。
【請求項４】
ホストと、少なくとも一つのディスク・アレイ記憶装置とを含み、前記ディスク・アレイ記憶装置が、第１アプリケーションと対話する複数の第１論理デバイスと前記第１論理デバイスの各々に対応する第２論理デバイスとを含み、前記第２論理デバイスが、第１モードにおいて対応する第１論理デバイスのためのミラーとして対話でき、第２モードにおいて第２アプリケーションと対話でき、前記ホストが、該ホストからコマンドを発生して複数の特定された第２論理デバイスを前記第１モードから前記第２モードにシフトするための手段を含むように構成されたデータ処理システムにおける制御システムであって、
Ａ）前記コマンドの受信に応答し、前記コマンドで特定された前記第２論理デバイスの各々のための要求データ構造を生成するする要求生成手段と、
Ｂ）前記要求生成手段に応答し、前記第１アプリケーションと特定された前記第２論理デバイスに対応する前記第１論理デバイスとの間の全ての対話を不能にするための対話制御手段と、
Ｃ）前記対話制御手段が対話を不能にした後、特定された前記第２論理デバイスの全てを前記第２モードにシフトするコマンドを生成するコマンド生成手段と、
を含み、
前記対話制御手段は、前記第１アプリケーションと特定された前記第２論理デバイスに対応する標準論理デバイスとの間での対話再開を可能にすることによって、前記コマンド生成手段の動作の完了に応答するようになっており、
Ｄ）前記第２モードへのシフトが完了し、特定された前記第２論理デバイスのデータが一貫性あることを示す、ホストへの返答を生成する手段を備える、
ことを特徴とする制御システム。
【請求項５】
前記ディスク・アレイ記憶装置がバッファを含み、書き込み動作がホストから前記バッファへの書き込み保留エントリとしての第１転送及び前記書き込み保留エントリの論理デバイスへの第２転送を含み、第２論理デバイスの前記第２モードへの前記シフト動作が、前記第２論理デバイスをそれが対応する第１論理デバイスから切り離し、前記第２論理デバイスを前記第２アプリケーションに接続し、前記バッファの書き込み保留エントリの転送を管理するものであり、前記対話手段は、特定された全ての前記第２論理デバイスの切り離し及び接続の後に前記第１アプリケーションと対応する第１論理デバイスとの間での対話の再開を可能にすることを特徴とする請求項４に記載の方法。
【請求項６】
特定された前記第２論理デバイスの各々は、前記対話手段が前記第１アプリケーションと前記第１論理デバイスとの間の対話の再開を可能にした後で書き込み保留エントリ転送を管理する手段を含むことを特徴とする請求項５に記載の方法。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、ディスク・アレイ記憶装置を備えたデータ処理システムに関し、より詳細には、そうしたディスク・アレイ記憶装置における回復動作を促進する方法及び装置に関する。
【０００２】
（背景技術）
大量のデータを取り扱う従来のデータ処理システムは、通常、ホストと、ディスク・アレイ記憶装置、即ちＤＡＳＤを含む。ホストは通常、一つ或いはそれ以上の制御プロセッサと、メインメモリを含み、当業者周知の方法で、プログラムの実行と、ディスク・アレイ記憶装置からメインメモリに転送されるデータの演算を行う。本発明の譲受人により製造及び販売されているものなどのディスク・アレイ記憶装置は、論理記憶体、即ち論理デバイスの形に構成される多数の物理記憶装置を含む。このようなディスク・アレイ記憶装置は、ホストから回路を通じてホスト従属フォーマットの入力／出力コマンドを受信するホスト・アダプタ或いは同等のモジュールにより作動する。ホスト・アダプタは、入力／出力コマンドを、ディスク・アダプタが認識し論理デバイスレベルでの正作動に使用できるフォーマットに変換する。ディスク・アレイ記憶装置における演算が完了すると、状況ワードがホスト・アダプタに戻り、演算の成功或いは失敗の理由のどちらかを報告する。
【０００３】
統合データ処理システムの性能を高めるために、ディスク・アレイ記憶装置の動作及び性能の向上に向けて多大な努力が払われてきた。こうした努力の一つは、主要アプリケーションプログラムに対し補助ディスク・アレイ記憶装置の使用を可能にすることに向けられてきた。ホストで実行される主要アプリケーションプログラムに割り込みをかけることなく、データのバックアップを可能にすることに特に重点が置かれてきた。例えば、航空便座席予約データベースへの応用において、システム上で予約や予約の変更を行っている様々なユーザーを相手に進行中の、あらゆるトランザクションに割り込みをかけることなく、データベースのバックアップがとれるようにすることが明らかに望ましい。
【０００４】
本発明と同一の譲受人に付与された、共通データ・セットに独立かつ同時にアクセスする方法及び装置についての、Ｏｆｅｋの米国特許出願連続番号第０８／８４２９５３では、こうした改善を行うための概念が開示される。この開示によれば、ディスク・アレイ記憶装置の特定の物理ディスクドライバが、アプリケーションに使用可能となるように設定される。これらは「標準デバイス」と呼ばれる。その他の論理デバイスは、標準論理デバイスのためのミラーとして動作するか、或いは、他のいくつかの目的のために、分離され、標準デバイス上のデータのコピーを提供するように動作するか、のいずれかに設定される。本発明の譲受人により製作されたシステムにおいては、第２論理デバイスは「ＢＣＶデバイス」と呼ばれる。上述した航空便座席予約システムを例として用いる、米国特許出願連続番号第０８／８４２９５３において開示されている発明は、ＢＣＶデバイスを、標準デバイスに接続することでミラーとして動作可能にする。一般的に、ＢＣＶデバイスは、標準デバイスと同期を達成した後にはいつでも、標準デバイスから該ＢＣＶデバイスを分離、又は切り離すことができる。その後、ＢＣＶデバイスにあるデータのコピーは、バックアップ・アプリケーション等のその他のアプリケーションに使用できる。このことにより、もう一方のアプリケーションは、標準デバイスに保存されたデータに関する主要アプリケーションの継続した動作とは無関係に、かつ同時にＢＣＶデバイスにあるデータに従って動作できるようになる。
【０００５】
こうしたデータ処理システムの利用が拡大するにつれ、ＢＣＶデバイスをそれが対応している標準デバイスから分離することに影響を及ぼすいくつかの問題が浮上してきた。それらの中には、データ書き込み動作の保留に関する問題が含まれている。本発明の譲受人のものを含む、多数のメーカーのディスク・アレイ記憶装置は、特に書き込み動作性能を向上させるために、キャッシュメモリを利用する。ホストが書き込みコマンドを発生すると、書き込まれるデータは、その動作信号がホストに完全に戻る前に、キャッシュメモリにのみ転送される。このデータ、即ち同じ場所に上書きされるデータが、論理デバイス自体に転送される前に、該データは、しばらくの間キャッシュに留まる。キャッシュでのそうした過渡時間中に、ホストに関する動作は完了するが、物理ディスク装置に関する動作は保留される。キャッシュにおけるエントリは、「書き込み保留」エントリと呼ばれる。「書き込み保留」エントリを論理デバイスに転送するプロセスは「デステージング」と呼ばれる。
【０００６】
ＢＣＶ及びこれと同様のデバイスについては、ＢＣＶデバイスが分離された後において、分離がなされた時にキャッシュメモリ内に存在していたあらゆる書き込み保留エントリが、それにより更新された形で、分離時の標準デバイス上のデータに正確に反映するように、何らかの機構で書き込み保留エントリを管理する必要がある。
上述の開示におけるシステムでは、ＢＣＶデバイスは、分離コマンドに呼応して、ミラーとしての動作を中止する。このとき、ＢＣＶデバイスがミラーとして動作する標準デバイスは、キャッシュにおける全ての書き込み保留エントリ及び先行する書き込み要求が管理される間、ロックされる。ロックされている間は、標準デバイス又はＢＣＶデバイスのどちらかに対する書き込み要求又はその他のアクセスを行うことはできない。プログラムモジュールは、ロックが達成された後に、トラックごとに多くの機能を行う。書き込み保留エントリがトラックに関連する場合には、モジュールは、直ちにこの書き込み保留エントリを処理するために必要なステップを実行する。先行する書き込み動作が発生し、デステージされていた場合には、モジュールはまた、全ての更新を実行し無効ビットをトラックする。論理ボリュームの全てのトラックについてこのプロセスが完了した後に、ロックが解除される。特に、分離が生じる時に大量の書き込み保留エントリがある場合には、このプロセスは非常に時間がかかることがある。いくつかの条件下では、何秒も或いは何分間もロックがかかることがあり、多くのアプリケーションではこれらの遅れを受け付けない。
【０００７】
Ｇａｇｎｅ等に付与された米国特許出願連続番号第０９／３０３２４２には、「瞬時分離」動作を実行することにより、このロック時間を減らす、「共通データ・セットに独立かつ同時にアクセスする方法及び装置」を開示する。ＢＣＶデバイスは、「瞬時分離」コマンドを受信すると、直ちに標準デバイスから切り離され、代替的なアプリケーションにアクセス可能になる。これは、いくつかの制御動作が完了してもデータが転送されず、書き込み保留エントリが管理されない時の、マイクロ秒のオーダーで続くロック条件下で起きる。その後直ちにロックが解除される。その後、ディスク・アレイ記憶装置における様々なプロセスは、主要アプリケーションが標準デバイスと対話し、バックアップ・アプリケーション等の代替的なアプリケーションがＢＣＶデバイスと対話するときでさえ、順序立てて書き込み保留エントリを管理する。
【０００８】
瞬時分離コマンドの導入により、元の分離コマンドの受け入れがたいロック時間が克服された。しかしながら、アプリケーションは複雑化し続け、それらのアプリケーションに関連するデータは増え続けている。アプリケーション及びそれらの関連データは、従来は、単一の標準デバイスに保存されていたが、現在では、こうしたアプリケーション及びそれらの関連データを、複数の標準デバイスに保存することができる。現在、アプリケーションの中には、単一のディスク・アレイ記憶装置の能力を超える記憶を要するものがあり、何百という標準デバイスを備えた２つ或いはそれ以上のディスク・アレイ記憶装置に、単一のアプリケーションを配分することを必要とする。例えばデータベース・アプリケーションでは、ある標準デバイスはデータベース・データを含み、もう一方の標準デバイスは関連するログファイルを含んでいる。このような複デバイスのアプリケーションでは、全てのＢＣＶデバイスに対し一連の別々の瞬時分離動作を発することにより複数の瞬時分離動作を開始することが可能であった。これらはその後処理されることになる。
【０００９】
しかし、別々の瞬時分離動作はそれぞれ別個に送られていた。したがって、瞬時分離が異なるＢＣＶデバイスで発生する順序は予測不可能であった。その結果、アプリケーション・プログラムが、分離のキューに入れられた論理デバイスに書き込みすることは可能であったが、分離がまだ発せられていないものは別であった。このことは一貫性のないデータを生み出す恐れがあった。例えば、データベース・アプリケーションの従属書き込み動作は３つの書き込み動作を含む。最初の書き込み動作はキャッシュを介してエントリをログファイルに転送し、データを書き込まなければならないという事実を確立する。第２の書き込み動作はそのデータをキャッシュに転送し、標準デバイスにデステージングする。第３の書き込み動作は、別のログ・エントリをログファイルのキャッシュに転送する。このエントリは、動作が完了したことを示す。データを含む論理ボリュームの瞬時分離が最初に完了するように複数の瞬時分離動作が行われる場合、データファイルはＢＣＶデバイスにあるログファイルを更新することなしに更新することができる。切り離されたＢＣＶデバイスにはデータ変更の記録はない。一方、ログファイルがデステージングされてデータファイルの更新前に更新された場合、ログファイルは、データがその分離ＢＣＶデバイスに実際に転送されることなく、動作の完了を指示することができた。その結果、どちらの場合も、切り離されたＢＣＶデバイスにあるデータは一貫性のないものとなる。
【００１０】
特に従属データ転送が含まれる場合は、こうした一貫性のないデータの特定を行うのが精一杯である。その結果、ある種の誤動作が発生した場合、データの回復は非常に難しくなる。必要とされるのは、複数の分離ＢＣＶデバイス或いは類するものにある関連データが一貫性をもっていることによりデータの破損を防ぐような形で、こうした瞬時分離動作が起きることを可能にする方法及び装置である。
【００１１】
（発明の開示）
従って、本発明の目的は、ディスク・アレイ記憶装置における回復動作を促進する方法及び装置の提供にある。
本発明のもう一つの目的は、ミラーとして動作する関連した論理デバイス群が、データの一貫性を維持しながら、その他のアプリケーションに関する動作を行うために分離されるようにする方法及び装置を提供することである。
【００１２】
一実施形態によれば、本発明は、ホストと、少なくとも一つのディスク・アレイ記憶装置とを含み、該ディスク・アレイ記憶装置が、第１アプリケーションと対話するための複数の第１論理デバイスと第１論理デバイスの各々に対応する第２論理デバイスとを含み、第２論理デバイスが、第１モードにおいて、対応する第１論理デバイスのミラーとして対話でき、第２モードにおいて、第２アプリケーションとで対話できるようになったデータ処理システムとして実施される。複数の特定された第２論理デバイスを、一貫性ある形で第１モードから第２モードにシフトするために、コマンドが発生される。これに応答して、コマンドで特定された第２論理デバイスの各々について要求データ構造が構築される。その後、第１アプリケーションと特定された第２論理デバイスに対応する第１論理デバイスとの間の全ての対話が不可能にされる。この不能化の後に、次に、特定された第２論理デバイスの全てが第２モードにシフトされる。シフトが完了すると、第１アプリケーションと特定された第２論理デバイスに対応する標準論理デバイスとの間の対話が再開し、第２モードへのシフトが完了したことを示すホストへの返答が生成され、特定された第２論理デバイスにあるデータが一貫性のあるものとなる。
【００１３】
（発明を実施するための最良の形態）
特許請求の範囲は特に本発明の対象を指定して、明確に権利請求するものである。同じ参照数字が同じ部分を指す添付図と併用して以下の詳細な説明を検討することにより、本発明に関する様々な目的、利点及び新規な特徴がさらに十分に明らかになるであろう。
本発明の利用に適合したデータ処理システムの設定に関し、可能な例が多数ある。図１はこのような設定の一つを図示しており、ホスト２０は、第１ディスク・アクセス記憶装置（ＤＡＳＤ−１）２１及び別のディスク・アレイ記憶装置（ＤＡＳＤ−ｎ）２２などの複数の記憶コントローラに接続している。ホスト２０から要求されたトランザクションは全て、ＤＡＳＤ−１装置２１及びＤＡＳＤ−ｎ装置２２などの記憶コントローラで実行される。この特定の実施形態において、バス２３は、単一のバス、又は並列バスの列、或いは回路とすることができ、ホスト２０を、ＤＡＳＤ−１　２１及びＤＡＳＤ−ｎ２２記憶コントローラすなわち記憶装置に接続する。
【００１４】
図１のホスト２０のようなホストは、ＩＢＭ　ＭＶＳオペレーティング・システムのような市販されているいくつかのオペレーティング・システムを利用して動作する。このようなホストは通常、複数の制御プロセッサを含むが、図１では２つの制御プロセッサＣＰ（１）及びＣＰ（ｎ）を図示しており、それぞれ参照番号２４及び２５で示す。これらの制御プロセッサは、周知のように、専用、共有、及び拡張された専用記憶領域に分かれるメイン記憶ユニット２６と対話する。制御コンソール２７は、オペレータが、システムと対話して、あらゆるアプリケーション・プログラムに呼応して行われる動作とは無関係に、多数の設定、診断及びその他の手順を実行することができるようにする。
【００１５】
いずれかのアプリケーション・プログラムがシステムにロードされると、ＭＶＳオペレーティング・システムは、そのプログラムにアドレス空間を与える。図１は、２つのユーザー・アプリケーション（ＡＰＰＬ−１及びＡＰＰＬ−２）用のアドレス空間３０及び３１と、本発明を実行するＴｉｍｅ　Ｆｉｎｄｅｒ（ＴＦ）アプリケーションに割り当てられたアドレス空間３２を示している。
【００１６】
ＤＡＳＤ−１記憶コントローラ或いはデータ記憶機能２１は、ホスト２０等のホストからの要求を受信するホスト・アダプタ（ＨＡ）３３を含む。ホスト・アダプタ（ＨＡ）３３は、プログラム可能な装置であり、これらの要求を最初に処理して多くの特性を判断し、構文エラー検査で初期接続を実行できる。本質的には、ホスト・アダプタは、ホスト従属フォーマットのコマンドを、別のフォーマットのバス３４を経由して転送される一連のコマンドに変換し、これによって、一連のディスク・アダプタ３５、３６、３７が、ホスト・コマンドに呼応して適切な動作を実行できるようにする。
【００１７】
バス３４は単一或いは複数のバス構造により構成することができ、さらに、キャッシュメモリ３８に接続する。キャッシュメモリ３８は、バッファとして動作し、多数の機能に従って書き込み保留データを含むデータを保存する。キャッシュメモリ３８の特定領域は、書き込み保留エントリを含むためのキャッシュ・スロットに充てられ、他の領域は制御に充てられる。
【００１８】
３５から３７のディスク・アダプタのうちのいずれか一つのようなディスク・アダプタの各々は、主要記憶素子にインターフェースを与える。ホスト・アダプタと同じく、各ディスク・アダプタは、ホスト・アダプタからのコマンドに応答するプログラム可能な装置である。システム・マネージャー（図示せず）はディスク・アダプタの一つに接続し、設定変更及びその他の機能がデータ記憶機能全体で実行できるようにする。
各ディスク・アダプタは、一つ或いはそれ以上の物理ディスク・ドライバに接続する。各物理ディスク・ドライバは、一つ或いはそれ以上の論理ボリューム又はデバイスを含むことができる。さらに、単一の論理ボリュームは、一つ以上の物理デバイスを拡張することができる。説明のために、図１には、論理ボリューム、詳細には、ディスク・アダプタ３５に接続されている論理ボリューム４０、ディスク・アダプタ３６に接続されている論理ボリューム４１、及びディスク・アダプタ３７に接続されている論理ボリューム４２を図示している。
【００１９】
上述の米国特許出願連続番号第０８／８４２，９５３及び第０９／３０３，２４２において説明されているように、ディスク・アレイ記憶装置２１（ＤＡＳＤ−１）は、少なくとも３つのＢＣＶボリューム４３、４４、４５を含むようにシステム・マネージャーによって設定されていると想定する。さらに、この設定は、ＢＣＶデバイス４３、４４及び４５が、標準デバイス４０、４１及び４２に接続するような関係を構築する。ＤＡＳＡ−ｎデバイス２２等の、データ処理システムにおける各ディスク・アレイ記憶装置は、同様の或いは類似した構造及び動作を有することになる。
【００２０】
この設定によれば、アドレス空間３３にあるＴＦアプリケーションは、ＥＳＴＡＢＬＩＳＨコマンド、即ち、指定された一つ或いはそれ以上のＢＣＶデバイス４３、４４及び４５が、それらが対応する標準デバイス４０、４１及び４２に接続し、次いで同期が達成されることを可能にするコマンドを発生できる。より具体的には、アドレス空間３２にあるＴＦアプリケーションは、ＢＣＶデバイスを制御可能なメカニズムを提供する。ＴＦアプリケーションの従来技術バージョンは、前述したＥＳＴＡＢＬＩＳＨ、ＳＰＬＩＴ、ＩＮＳＴＡＮＴ　ＳＰＬＩＴ、ＭＵＬＴＩＰＬＥ　ＩＮＳＴＡＮＴ　ＳＰＬＩＴコマンド、及びＢＣＶデバイスの動作制御に役立つその他のコマンドを実行する。アドレス空間３２にあるＴＦアプリケーションは、本発明に従って修正することで一貫性ある分離動作を可能とし、それにより、全ての分離ＢＣＶデバイスのデータは一貫性を持つという確信でもって、共通データ・セット或いはアプリケーションを備えたＢＣＶデバイス群の分離を行うことができる。このようなＢＣＶ制御或いはＴＦアプリケーションに含まれるコマンドの特定の実行には、オペレータ、シーケンス番号、ＢＣＶアドレス、分離動作の種類及び任意の変数が含まれることになる。ある形態において、本発明を実行するためのコマンドは：
ＳＰＬＩＴｓｅｑ＃，ｂｃｖ，ＣＯＮＳ（ＬＯＣＡＬ（Ｂｙｐ），Ｔｉｍｅｏｕｔ（ｎｎｎｎ））
である。「ＳＰＬＩＴ」オペレータ及び「ｓｅｑ＃」変数は、従来の技術におけると同様に、ｓｅｑ＃変数の番号で動作し、一貫性ある形で分離されなければならないＢＣＶのものを全て特定する。つまり、図１のＢＣＶデバイス４３及び４４を一貫性ある形で分離したいと考える場合、それらは一つのシーケンス番号（例えば、ｓｅｑ＃＝１０）を有し、一方他のＢＣＶデバイスを含む別の統一グループは別のシーケンス番号（例えばｓｅｑ＃＝１１）を有する。
【００２１】
ＢＣＶアドレスは番号によって特定のＢＣＶデバイスを特定する。複数のＢＣＶデバイスが含まれているときに一貫性ある分離が行われる場合、２つの選択肢がある。ＢＣＶデバイスがランダムな装置番号を有する場合、別々の分離コマンドが各ＢＣＶデバイス用に含まれる。２つ或いはそれ以上のＢＣＶデバイスが連続したアドレスを有する場合、その範囲はＢＣＶアドレス・フィールドに含まれ得る。
【００２２】
前述したように、米国特許出願連続番号第０８／８４２９５３で説明されている従来の分離コマンド、連続番号第０９／３０３２４２で説明されている単一瞬時分離コマンド及び複数の瞬時分離コマンドを含む、数種類の分離動作が提供されている。ＢＣＶアドレス・フィールドに続いて、フィールドは、本発明の一貫性ある分離動作を指定するために、「ＣＯＮＳ」を含む。このフィールドのその他の値はその他の分離動作を表す。
【００２３】
任意のＬＯＣＡＬコマンドは他のタイプのパターンに備えるが、「ＬＯＣＡＬ」値のみが有効であるように実行されてきたにすぎない。「バイパス」変数は、他のＭＶＳオペレーティング・システムなど、他のオペレーティング・システムの標準デバイスのための従来のオンライン検査を省略する。「タイムアウト」変数は、一貫性ある分離が実行されなくてはならない時間の間隔を設定する。ある具体的な実行では、１５秒のデフォルト値がある。このフィールドによって、タイムアウト間隔の短縮が可能になる。
【００２４】
アドレス空間３２のＴＦアプリケーションが、本発明の具体的実施形態の中でバッチ・プログラムとして開始された場合、様々なバッファ及びレジスタを初期化する。図２は、本発明の理解に役立ついくつかのバッファ、レジスタ及びその他のメモリーの位置を図示している。さらに詳細には、図２は一覧形式で、様々なデータ構造及びレジスタを表している。これらは情報を提供する目的で示されており、正確な位置及び実行は、本発明を具体的に実行するときに最適化されることになる。
【００２５】
図３は、アドレス空間３２のＴＦアプリケーションの一覧である。初めに、ステップ５０が、その後の動作を制御する要求ブロック（ＲＥＱＢ）データ構造に対し、図２にあるバッファ５１を含むバッファ及びデータ構造を設定する。ステップ５２がＴＦＩＮＩＴ初期化手順を命じる。この手順は各ＴＦアプリケーション・コマンドを処理し、そのコマンドを構文解析し、一つ或いはそれ以上のＲＥＱＢデータ構造を生成するものである。コマンドがＢＣＶデバイスの範囲を定める場合、ＴＦＩＮＩＴ初期化手順はＢＣＶデバイスごとに一つのＲＥＱＢデータを生成する。初期化手順が完了したとき、図２にあるバッファ５１は複数のＲＥＱＢデータ構造を含む。図２は、ＲＥＱＢ（ｎ）データ構造５３、ＲＥＱＢ（ｎ＋１）データ構造５４及びＲＥＱＢｎ＋１データ構造５５を含むこのようなＲＥＱＢデータ構造を、例として、幾つか図示している。
【００２６】
前述のように、各コマンドはシーケンス番号を含む。図３のステップ５６は、広域ＢＣＶＳＥＱ＃レジスタ５７を初期値（例えばＢＣＶＳＥＱ＃＝０）に設定する。初めにステップ６１が、その他のシーケンス番号が存在することを確認し、第１ＲＥＱＢデータ構造を選択してテストを行うステップ６２へと制御を移す。ステップ６３は、選択されたＲＥＱＢデータ構造をデコードする。選択されたＲＥＱＢデータ構造がいずれかの分離コマンドに応答し、ステップ６４が、サブルーチンとして「ＰＲＯＣＥＳＳ　ＳＰＬＩＴ　ＲＥＱＵＥＳＴ」手順を命じるステップ６５へと制御を転換する。この手順は、ＴＦＩＮＩＴ初期化手順で設定された様々な分離要求を処理し、後で詳しく説明されるように、分離に影響を与える。ステップ６３がいずれかの他のコマンドをデコードする場合、制御は、このようなコマンドを処理する手順を含むステップ６６に進む。
【００２７】
ステップ６５或いはステップ６６のどちらかに応えて、手順の一つが完了した後、エラー検査が行われる。エラーが発見された場合、ステップ６７により、ステップ７０は適切なエラーメッセージの生成を行うことができる。エラーメッセージが要求されてもされなくても、ステップ７１は、それ以外のＲＥＱＢデータ構造が分析を必要とするかどうかを確認する。それ以外にもＲＥＱＢデータ構造が存在する場合、ステップ７１は制御をステップ７２に移し、分析を行う次のＲＥＱＢデータ構造を選択し、制御はステップ６２に戻る。
ステップ６２で始まり、ステップ７２で終わるこのループは、全てのＲＥＱＢデータ構造が処理されるまで続く。その後、ステップ７１は制御をステップ７３に移し、次のシーケンス番号を選択し、それから制御をステップ６１に戻して全シーケンスが完了したがどうかを確認する。
【００２８】
ステップ６５で命じられたＰＲＯＣＥＳＳ　ＳＰＬＩＴ　ＲＥＱＵＥＳＴ手順は、３つの基本動作を実行する。先ず、分離に含まれる標準デバイスのいずれに対しても書き込み動作を妨げる。ＭＶＳオペレーティング・システム環境において、ＰＲＯＣＥＳＳ　ＳＰＬＩＴ　ＲＥＱＵＥＳＴ手順は、統一グループのＢＣＶデバイスに接続された各標準デバイスに対してＩＯＳレベルを上げるようにＭＶＳオペレーティング・システムに要求する。次に、その手順は、シーケンス番号によって決められたグループのＢＣＶデバイスのそれぞれに対して、必要なＩＮＳＴＡＮＴ　ＳＰＬＩＴコマンドを発生する。第３に、そのシステムは、統一グループの中で関連している各標準デバイスのＩＯＳレベルをリセットする。この全動作は短い時間間隔で行われ、分離が何百というＢＣＶデバイスを含む場合でさえ、標準デバイスと対話しているアプリケーション・プログラムに対してはトランスペアレントである。米国特許出願連続番号第０９３０３２４２の瞬時分離動作に関しては、全ての書き込み保留エントリの処理は一貫性ある分離が行われた後に行われる。
【００２９】
全シーケンス番号に関連するＲＥＱＢデータ構造の分析が行われたとき、ステップ６１は制御をステップ７４に移す。何らかのエラーが生じた場合、ステップ７５は適切なエラーメッセージを生成する。その後ステップ７５は制御をステップ７６に渡し、エラーがない場合には、ステップ７４が制御をステップ７６に渡す。ステップ７６はその後、ハウスキーピング動作を実行し、ＴＦアプリケーションのインスタンスを完了する。
【００３０】
前述したように、ＴＦＩＮＩＴ初期化手順５１は、そのコマンドを、図１にあるＤＡＳＤ−１データ記憶コントローラ２１或いはＤＡＳＤ−ｎ記憶コントローラ２２に向けることができる一連のコマンドへと変換する。図４及び５は、バッファ・メインメモリ２６のステップ８０のＢＣＶＴＲＥＱＢレジスタ７４及びＢＣＶＲＥＱ＃レジスタ７５を設定する際のＴＦＩＮＩＴ手順を、詳細に示している。ＢＣＶＴＲＥＱＢレジスタ７４は、バッファ５１にあるＲＥＱＢデータ構造に第１位置を示すポインタとして動作する。ＢＣＶＲＥＱ＃レジスタ７５は、ＴＦＩＮＩＴ手順中に処理されるＲＥＱＢデータ構造の番号を特定するためにカウンターとして動作する。ステップ８２は、特定のアプリケーションに適切と思われるその他の様々な条件をテストする。このような条件は、本発明の一部を成すものではなく、一般の当業者が周知しているものであるため、省略する。
【００３１】
入力コマンドが使用可能な限り、ステップ８３により、ステップ８４が上述の分離コマンドのような入力コマンドを読み取ることを可能にする。ステップ８５では、そのコマンドを構文解析し、そのオペレータ及び様々な変数を入手する。ステップ８６はそのコマンドからシーケンス番号を入手し、ＢＣＶＳＥＱ＃レジスタ５７に保存する。次に、ＴＦＩＮＩＴ手順５１はそのコマンドをデコードする。そのコマンドが分離コマンドの場合、ステップ８７は、プロセスＳＰＬＩＴ　ＲＥＱＵＥＳＴ手順を命じるステップ９０に制御を移す。後で詳しく説明されているように、この手順中に、分離コマンドのその他のパラメータが、分離コマンドの情報を表している、一つ或いはそれ以上のＲＥＱＢデータ構造を生成するために使用される。そのコマンドが分離コマンド以外の場合は、本発明の一部を成すものではないため詳しく開示されていない、手順９１によって処理される。コマンドが処理されると、ステップ９２はＢＣＶＲＥＱ＃レジスタ７５を歩進させ、それによって、ＢＣＶＲＥＱ＃レジスタ８１は、生成されたコマンドのうち、動作しているものを全て持続させる。その後、制御はステップ９２からステップ８３に戻り、別の入力コマンドを分析する。そして、これは全てのコマンドが読み取られるまで続く。全てのコマンドが読み取られると、ステップ８３が制御をシフト、図３のステップ５６へとシステムを戻す。
【００３２】
図４のステップ９０がＰＲＯＣＥＳＳ　ＳＰＬＩＴ　ＣＯＭＭＡＮＤ手順を命じると、図５のステップ９３はさらに、様々なフラグ及び値を設定する目的で図４のステップ８５で生成された構文解析済みコマンドをデコードする。本発明に重要な幾つかのフラグが特定される。そのプロセスが瞬時分離の場合、一貫性ある分離動作を得るように、ステップ９４は図２にあるＩＮＳＴＡＮＴ　ＳＰＬＩＴフラグ９６を立てるステップ９５に制御を移す。ステップ９７は制御をステップ１００に移し、ＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴフラグ１０１を立てる。記憶コントローラの通常の動作は、標準デバイスがＭＶＳオペレーティング・システムの複数の画像など、複数のオペレーティング・システムと関係している場合には特に、ＢＣＶデバイス及びその対応する標準デバイスの存在を確認することを含む。上述のバイパス・変数はこのテストが実施されるか否かを制御する。任意のバイパス・変数がコマンドのアクティブ状態に設定された場合、ステップ１０３はＢＹＰＡＳＳ　ＯＮ−ＬＩＮＥフラグ１０４を立てる。ステップ１０５はタイムアウト・フラグ１０６及びタイムアウト間隔レジスタ１０７を制御するためのＴＩＭＥＯＵＴが存在するか否かを確認する。タイムアウトが存在する場合には、ステップ１０５はＴＩＭＥＯＵＴフラグ１０６を立てるステップ１１０に制御を転じる。ステップ１１１は、コマンドに含まれた間隔を保存する。図５のプロセスがこれらのフラグを立てると、本発明の一部を成すものではないが、ステップ１１２が、当業者周知の他のパラメータに対応するその他のフラグを立てる。
【００３３】
前述したように、単一の分離コマンドは一つ或いはそれ以上のＢＣＶデバイスを特定できる。ステップ１１３は、ゼロではないアドレスに対してテストを行うことにより、そのグループの各ＢＣＶデバイスにＵＣＢ（ユニット・コントロール・ブロック）が存在するか否かを確認する。この動作が完了すると、制御はステップ１１４に移る。ステップ１１４は、処理中の分離コマンドで特定された各ＢＣＶデバイスに対してＲＥＱＢデータ構造を完成させる。すなわち、分離コマンドが単一のＢＣＶデバイスを特定した場合、一つのＲＥＱＢデータ構造が完成されることになる。３つのＢＣＶデバイスが順々に列挙された場合、ステップ１１４は、ＲＥＱＢデータ構造に対しデータを複製し、特定されたＢＣＶデバイスのそれぞれに一つのＲＥＱＢデータ構造を確保する。各ＲＥＱＢデータ構造は、ＢＣＶ　ＤＥＶＩＣＥ　ＩＤフィールド１１５にあって、それが対応するＢＣＶデバイスの特定を含む。このプロセスが完了すると、制御は図４のステップ９２に戻り、ＢＣＶＲＥＧ＃レジスタ８１を歩進させる。
【００３４】
要するに、ＴＦＩＮＩＴ初期化手順５１は、ＢＣＶデバイスごとに、図２のバッファ５２に多数のＲＥＱＢデータ構造を設定する。各ＲＥＱＢデータ構造は動作の種類、制御されているＢＣＶデバイス及びその他の関連情報を特定する。ここでの説明の目的のために、ＩＮＳＴＡＮＴ　ＳＰＬＩＴフラグ９６、ＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴフラグ１０１、ＢＹＰＡＳＳ−ＯＮフラグ１０４及びＴＩＭＥＯＵＴフラグ１０６及びＴＩＭＥＯＵＴ間隔１０７が、このような各ＲＥＱＢデータ構造に含まれる。ここで明らかになるように、この動作は、ＡＰＰＬ−１アプリケーション３０及びＤＡＳＤ−１記憶コントローラ２１、特に標準デバイス４０、４１及び４２間でのいかなる対話とも平行して行われる。このため、アドレス空間３３のＴＦアプリケーション動作中の変更は、ＢＣＶデバイス４３、４４及び４５の結合及び分離をトランスペアレントに行う。
【００３５】
図１のアドレス空間３２のＴＦアプリケーションがステップ６４で分離コマンドをデコードすると、ステップ６５は様々な要求に関する情報を入手するＰＲＯＣＥＳＳ　ＳＰＬＩＴ　ＲＥＱＵＥＳＴ手順を命じ、その要求に対し適切な分離コマンドを発生する。この手順は初期化手順を実行し様々なパラメータをテストする図６のステップ１２０で始まる。さらに、ステップ１２０のテストは、オペレーティング・システム・ロックが存在するか否かを知らせる。それはさらに、その要求に対してＵＣＢアドレス及びＣＣＷ（Ｃｈａｎｎｅｌ　Ｃｏｎｔｒｏｌ　Ｗｏｒｄ）アドレスを設定し、様々な他の要求パラメータを設定する。こうした手順は全て技術的に周知のものである。
【００３６】
分析中のＲＥＱＢデータ構造に対してＩＮＳＴＡＮＴ　ＳＰＬＩＴフラグ９６が立てられた場合、ステップ１２１はＩＮＳＴＡＮＴ　ＳＰＬＩＴ手順を命じるステップ１２２に制御を移す。ＩＮＳＴＡＮＴ　ＳＰＬＩＴ手順は、図２のシーケンス番号エントリ１２３によって設定されたのと同じシーケンス番号を有するバッファ５１に他のＲＥＱＢデータ構造が存在するか否かを確認する。このことにより、同レベルにある複数のＩＮＳＴＡＮＴ　ＳＰＬＩＴＳが手順を命じる一つのシステムで処理されることが確実になる。
【００３７】
図７は、このＩＮＳＴＡＮＴ　ＳＰＬＩＴ手順１２２を詳細に図示している。その手順は、ステップ１２４が処理中のＲＥＱＢデータ構造を抽出し、ステップ１２５でデフォルト値としてＭＵＬＴＩＰＬＥ　ＩＮＳＴＡＮＴ　ＳＰＬＩＴコマンドを持つコマンド・バッファを初期化すると開始する。
その後、ステップ１２６は、図２にあるＮＵＭ　ＰＡＩＲＳレジスタ１２７を開始する。通常、レジスタ１２７はゼロ値にセットされる。ステップ１２６は又、ＤＡＳＤ装置の特定を保存する。ステップ１３０は、分析中のＲＥＱＢデータ構造に関連するＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴフラグ１０１を調べる。そのフラグ１０１が立てられていた場合、ステップ１３１はＭＵＬＴＩＰＬＥ　ＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴフラグを立てる。
【００３８】
ステップ１３３は図２のＴＩＭＥＯＵＴ　ＶＡＬＵＥレジスタ１０７の値とデフォルトＴＩＭＥＯＵＴを比較する。通常、ステップ１３３はその後、２つの間隔のうち短い方を選択し、ＴＩＭＥＯＵＴ間隔を設定する。
【００３９】
ＲＥＱＢデータ構造がＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴ動作以外を規定する場合、制御はステップ１３０からステップ１３４に移行する。制御は又、ステップ１３３からステップ１３４に進み、ＩＮＳＴＡＮＴ　ＤＯＮＥフラグ１３５を立てる。ステップ１３６はＮＵＭ　ＰＡＩＲＳレジスタ１２７の値を歩進させ、それにより、一つの標準ＢＣＶデバイスペアが存在することを示す。
【００４０】
そこで、ＩＮＳＴＡＮＴ　ＳＰＬＩＴ手順は、残りの全てのＲＥＱＢデータ構造に着目し、バッファ５２にある他の全てのＲＥＱＢデータ構造が、一貫性ある分離に向け分析中のＲＥＱＢデータ構造と同じグループになるべきか否かを確認する。ステップ１３７は、こうした次のＲＥＱＢデータ構造を調べるループを開始する。初めに、ステップ１４０はこの次のＲＥＱＢデータ構造のシーケンス番号が分析中のＲＥＱＢデータ構造のシーケンス番号と同じ値を有しているか否かを確認するステップ１４１に制御を移す。有している場合、ステップ１４２は次のＲＥＱＢデータ構造がＩＮＳＴＡＮＴ　ＳＰＬＩＴの構成要素を有しているか否かを確認する。有している場合、ステップ１４３は何かエラーが存在していないかを確認する。何もない場合、ステップ１４４は次のＲＥＱＢデータ構造のＩＮＳＴＡＮＴ　ＤＯＮＥフラグに目を向け、それが設定されているか否かを確認する。設定されていた場合、その特定のＲＥＱＢデータ構造をさらに処理する必要はない。次のステップ１４５は、この次のＲＥＱＢデータ構造にＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴフラグが立てられているか否かを確認する。ステップ１４６はその後、同様のディスク・アレイ記憶装置が含まれているか否かを確認する。
【００４１】
１４０から１４６までのステップで示されている一連のテストが、次のＲＥＱＢデータ構造は分析中のＩＮＳＴＡＮＴ　ＳＰＬＩＴと関係するＩＮＳＴＡＮＴ　ＳＰＬＩＴであり、それはまだ分離されていない状態にあり、さらに同じデジタル・アレイ記憶装置に対する一貫性ある分離動作に含まれることになっていることを示した場合、制御はステップ１４６から、標準デバイスと関連しているとしてＢＣＶデバイスを有効であると確認するステップ１４７に移る。有効性の確認が行われたと仮定した場合、制御はこの次のＲＥＱＢデータ構造の分析を行うためにステップ１３０に戻る。次のＲＥＱＢデータ構造が同じＤＡＳＤ記憶コントローラからのものではない場合、ステップ１４８は使用中のバッファを閉じ、こうした他のＤＡＳＤ記憶コントローラと共に用いる新バッファを生成する。その後、制御をステップ１４７に移してＢＣＶデバイスの有効性を確認し、ステップ１３０に戻ってＲＥＱＢデータ構造の処理を続ける。
【００４２】
バッファ５１にある残りの全てのＲＥＱＢデータ構造がこのループで調べられると、制御はステップ１４０から、さらなる分析を行うために元のＲＥＱＢデータ構造を復旧させるステップ１５０に移る。ステップ１５１はその後、ＮＵＭ　ＰＡＩＲＳレジスタ１２７の値を調べる。前述したように、特例として、１２６は、ＮＵＭ　ＰＡＩＲＳレジスタ１２７をゼロに初期化し、元のＲＥＱＢデータ構造の分析中にその値を「１」に歩進させる。ＲＥＱＢデータ構造のいずれかがステップ１３０から１４６のテストを通った場合、その値が歩進される。このように、ＮＵＭ　ＰＡＩＲＳレジスタ１２７のその値が１より大きい場合、制御は、デフォルトのＭＵＬＴＩＰＬＥ　ＩＮＳＴＡＮＴ　ＳＰＬＩＴコマンドを利用することになるステップ１５１に進む。その他の場合、制御は、デフォルトから従来の分離コマンドへとコマンドの変更を行うステップ１５２に移る。この動作後、ＩＮＳＴＡＮＴ　ＳＰＬＩＴ手順及び制御は、何かのエラーがこのプロセス中に発生したかどうかを確認する図６のステップ１５３へと戻る。エラーが発生した場合、ステップ１５４はメッセージを生成する。
【００４３】
瞬時分離手順が順調に完了したと仮定した場合、制御は、ステップ１５３からＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴフラグ１０１を再度テストするステップ１５５に渡る。ＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴフラグが立てられており、かつ、図１のＤＡＳＤ−ｎ記憶コントローラ等の別の記憶コントローラが関与している作業からの要求が待ち状態にないことをステップ１５６が確認した場合、ステップ１５７で図２のＩＯＳ　ＬＥＶＥＬフラグ１５８のテストを行うことにより、ＩＯＳレベルすなわちＭＶＳ機能が引き上げられているか否かを確認するためのテストがなされる。すでに引き上げられている場合、何の動作も起きない。そうでなければ、ステップ１６０がＳＥＴ　ＩＯＳ　ＬＥＶＥＬ手順を命じる。その手順が順調に完了した場合、ステップ１６１は制御をステップ１６２に移す。何らかの理由により、ＲＥＱＢデータ構造が、ＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴ用ではなく、待ち状態にもないか、或いは既にそのＩＯＳ　ＬＥＶＥＬフラグが立てられている場合、制御はＩＯＳ　ＬＥＶＥＬフラグを立てることなくステップ１６２に移る。
【００４４】
図８はＳＥＴ　ＩＯＳ　ＬＥＶＥＬ手順を詳細に示している。ＳＥＴ　ＩＯＳ　ＬＥＶＥＬ手順は、ステップ１６３にＳＴＩＭＥＲを設定することにより開始する。ＳＴＩＭＥＲはＭＶＳオペレーティング・システムで利用可能なタイマー装置であり、ステップ１６３でタイムアウトを開始する。数値は図７のステップ１３３で求められた値から設定される。ステップ１６４は、第１ＲＥＱＢデータ構造を特定し、ステップ１６５でそのデータ構造を抽出する。ステップ１６６は、ＲＥＱＢデータ要求の中で抽出されたシーケンス番号がＢＣＶＳＥＱ＃レジスタ５７の中で定められたものと同一の分析中の数字であるか否かを確認する。違う場合、その後のステップをとる必要はなく、制御はステップ１６７に移り、ステップ１７０にある次の要求を特定する。
【００４５】
シーケンス番号が正しい場合、ステップ１６６はステップ１７１へと移り、図２にあるＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴフラグ１０１と一致しているＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴフラグが、特定のＲＥＱＢデータ構造に対して設定されているかどうかを確認する。設定されていない場合、制御はステップ１６７に移り、次の要求を得る。しかし、ＲＥＱＢデータ構造が、同一のシーケンス番号を持つＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴ動作に対するものである場合、ステップ１７２は対応する標準デバイスに対してＩＯＳレベルを設定し、又、ステップ１７３はフラグを立て、そのＲＥＱＢデータ構造に対してＩＯＳレベルが設定されていることを知らせる。
全ての要求が完了した後、ステップ１６７は少なくとも一つのＲＥＱＢデータ構造が設定されていることを示すＩＯＳ　ＬＥＶＥＬスイッチ１７５を設定するステップ１７４に移る。
【００４６】
図６を再び参照するが、ステップ１６０のＳＥＴ　ＩＯＳ　ＬＥＶＥＬ手順が完了し、ＲＥＱＢデータ構造がＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴを含む第１データ構造であるとき、それらのＲＥＱＢデータ構造によって特定されたＢＣＶデバイスと関連している各標準デバイスに対するＩＯＳレベルが全て引き上げられる。そのため、どの標準デバイスとの対話も、一貫性ある分離動作に関与しているＢＣＶデバイスとは全く関係がないものとなる。
【００４７】
ステップ１６２は、様々なメッセージを準備し、現バッファを保存し、さらに、ＭＶＳオペレーティング・システムのＳＴＡＲＴＩＯユーティリティ等のユーティリティが、ＩＯＳレベルが引き上げられたものに対応している各ＢＣＶデバイスと共にＩＮＳＴＡＮＴ　ＳＰＬＩＴ動作を開始できるようになるために必要な変数を設定する。次に図６のステップ１７６は、すぐ後にＩＮＳＴＡＮＴ　ＳＰＬＩＴコマンドを統一グループにある各ＢＣＶデバイスに送るＲＵＮ　ＳＴＡＲＴＩＯ手順を命じる。その結果、統一グループにある全てのＢＣＶデバイスはＩＮＳＴＡＮＴ　ＳＰＬＩＴコマンドを開始できるが、それらが対応している標準デバイスへのアクセスはブロックされる。ＲＵＮ　ＳＴＡＲＴＩＯ手順は繰り返し動作を行う。各繰り返し中に、それは一つのバッファにある特定された全てのＲＥＱＢデータ構造に対してＩＮＳＴＡＮＴ　ＳＰＬＩＴコマンドを生成する。図７のステップ１４６によって確認されたように複数の記憶コントローラがあるため一つ以上のバッファが存在する場合、ＲＵＮ　ＳＴＡＲＴＩＯ手順が連続して繰り返されることにより、そうしたバッファのそれぞれに、特定されたＲＥＱＢデータ構造に対するＩＮＳＴＡＮＴ　ＳＰＬＩＴコマンドが生成されることになる。これらの全てのＩＮＳＴＡＮＴ　ＳＰＬＩＴコマンドの転送が完了すると、ステップ１７７は何かのエラーが発生したか否かを確認する。エラーが発生した場合、ステップ１７８はメッセージを用意する。
【００４８】
エラーが何も起きなかった場合、制御はステップ１７６からステップ１８０に進んで全ＢＣＶデバイスのステータスを取得するための問い合わせを出し、ステップ１８１で各ＢＣＶデバイスの状態をチェックする。ステップ１８０及び１８１は実質的に、いずれかの統一グループにあるいずれかのＢＣＶデバイスが、依然として、アプリケーションがＳＴＡＲＴＩＯコマンドを発生した時間からアドレス指定されたＢＣＶがコマンドの受信を確認するまで存在する移行状態にあるか否かを確認する。ステップ１８０及び１８１は全ての動作が完了するか、或いは、ＳＴＩＭＥＲ機能がタイムアウトするまで繰り返し動作する。ステップ１８２及び１８３は、ＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴフラグが立てられているか、及びＩＯＳレベルが、ＩＯＳレベル・スイッチ１７５が示す通りに上昇しているかを確認する。両条件が存在する場合、ステップ１８２及び１８３は、制御を、図９にさらに詳細に示されているＲＥＳＥＴ　ＩＯＳ　ＬＥＶＥＬ手順を命じるステップ１８４に移す。
【００４９】
図９のステップ１８５はＳＴＩＭＥＲがタイムアウトしたか否かを確認する。特にＲＵＮ　ＳＴＡＲＴＩＯ手順の動作が割り当て時間内に完了しない場合、タイムアウトが生じる。ＳＴＩＭＥＲタイムアウトがＭＶＳオペレーティング・システムで生じると、別のＭＶＳユーティリティがそのイベントを見つけて適切な対応を開始する。しかしながら、ＳＴＩＭＥＲがタイムアウトするしないにかかわらず、ＴＦアプリケーションの中でさらなる対応が必要とされる。タイムアウトしない場合、制御はステップ１８５からステップ１８６に進み、タイマーをリセットする。いずれにしても、ステップ１８７はその後ＩＯＳレベルが設定されている要求の数を確認する。ステップ１９０はステップ１９１で選択された最初の要求を特定する。ステップ１９２、１９３、１９４及び１９５はその後、様々な特性をテストし、ステップ１９６のＩＯＳ　ＬＥＶＥＬ　ＲＥＳＥＴコマンドを発生するかどうかの決定を行う。特にＣＯＮＳＩＳＴＥＮＴ　ＳＰＬＩＴフラグ１０１が立てられ、ＩＯＳ　ＬＥＶＥＬフラグ１５８が立てられ、シーケンス番号が図４のステップ１３３で説明されているシーケンス番号と一致し、さらにＵＣＢアドレスがゼロではない場合、ステップ１９６はＩＯＳ　ＬＥＶＥＬ　ＲＥＳＥＴコマンドを発生し、対応するＩＯＳ　ＬＥＶＥＬフラグをクリアするが、そうでなければＩＯＳレベル・フラグは変更されない。このことが順調に行われなかった場合、ステップ１９７は制御を適切なエラーメッセージを準備するステップ２００に移す。その後、ステップ２０１はその他のＲＥＱＢデータ構造が見直しを必要とするか否かを確認する。
【００５０】
リセット・コマンドが順調に完了した場合、ステップ１９７は制御を直接ステプ２０１に移す。ＲＥＱＢデータが他にも存在する場合には、ステップ２０２は次のＲＥＱＢデータ構造を特定し、制御を１９２に戻す。ステップ１９１から２０２までを含むループが全てのＲＥＱＢデータ構造を調べ終えると、ステップ２０１は制御をステップ２０３に移し、広域ＩＯＳ　ＬＥＶＥＬスイッチ１７５をリセットする。その後、システムは図６に戻り、ステップ２０４は様々な手順を完了し、サブルーチンを終わらせる。制御はその後、図３のステップ６７に進み、何かのエラーが発生したかどうかを確認し、次のコマンドの分析を開始する。前述したように、全ての要求が完了すると、次のシーケンス番号が選択され、そのプロセスがそのシーケンス番号をもつ各要求に対して繰り返される。全ての連続動作が完了すると、そのプロセスは完了し、ハウスキーピングが行われ、ＴＦアプリケーションは完了する。
【００５１】
本発明は、特定のコマンド或いは一連のコマンドに呼応して、一貫性を保ちながら、複数の関連するＢＣＶデバイスを標準デバイスから分離する様々なハードウェア及びソフトウェア・モジュールに関して、図１から図９において開示された。明らかなように、これらの機能の実行に要する時間は、詳細には図６のステップ１６０でＩＯＳレベルが引き上げられてからステップ１８４でリセットされるまでの時間は、数秒の状態であろう。この特定の実施形態においては、前述どおり１５秒のデフォルト値が用いられているが、ユーザーは、さらに短い時間を認識することもあり得る。何百というＢＣＶデバイスの分離にかかるこの程度の時間は許容範囲である。
【００５２】
得られる利点は、データに一貫性があることである。その結果、標準デバイスの動作に問題が生じた場合、一貫性ある分離後にＢＣＶデバイスによりバックアップされたデータの修復は、そのデータが一貫していると想定できるため、非常に容易である。このことで、どのようなエラーでもすぐに発見できることが確実となる。例えば、従属データ転送に関して、最初のログ・エントリ後、即ちデータの転送後、第２ログ・エントリが成される前に分離が起きたとしても、ログを監視する診断プログラムは第２ログ・エントリが存在しないことを容易に確認でき、その後そのログと関連するデータを自動的に復元するか、或いはそのログを完成させることができる。複数のＢＣＶデバイスにおいてこの一貫性あるデータバックアップをもつことの結果として、修復及びその他のプロセスに対するその他の実行が、一般的な当業者にとっても明白であると思われる。
【００５３】
本発明は、特定の第３者オペレーティング・システムと関連するか、或いは、共に動作する本発明の譲受人から提供されているディスク・アレイ記憶装置用のＴＦアプリケーションについての特定の実施形態に関して開示されている。しかしながら、その他の手順が、図３から９が示す特定の機能を実行するために使用されることもあり得ること、及びその他の構造が図２にあるこうした特定のデータ構造及びレジスタの代わりに用いられ得ることは明白であろう。このようなシステムが別のオペレーティング・システムと共に用いられるとすれば、さらに別の変更が用いられる可能性もある。
【００５４】
本発明は、幾つかの実施形態を参照に開示されている。本発明から逸脱することなく、開示されている機器に対して多くの変更が成され得ることは明らかである。そのため、本発明の真意及び範囲の中で行われる限りにおいて、こうしたあらゆる変更及び修正を含むことが特許請求の範囲の意図するところである。
【図面の簡単な説明】
【図１】
本発明の実施に合わせて変更を加えた処理システムのブロック図である。
【図２】
本発明を実施するアプリケーションに関するいくつかの特徴を表すブロック図である。
【図３】
図１に示すＴＦアプリケーションの動作の基本工程系統図である。
【図４】
図３に示すＴＦＩＮＩＴ初期化手順のフロー図である。
【図５】
図４に示すＰＲＯＣＥＳＳ　ＳＰＬＩＴ　ＣＯＭＭＡＮＤ動作のフロー図である。
【図６】
図３が示すＰＲＯＣＥＳＳ　ＳＰＬＩＴ　ＲＥＱＵＥＳＴ手順のフロー図である。
【図７】
図６に示すＩＮＳＴＡＮＴ　ＳＰＬＩＴ手順のフロー図である。
【図８】
図６が示すＳＥＴ　ＩＯＳ　ＬＥＶＥＬ手順のフロー図である。
【図９】
図６に示すＲＥＳＥＴ　ＩＯＳ　ＬＥＶＥＬ手順のフロー図である。
【図１】
2004503848.tif 000003
【図２】
2004503848.tif 000004
【図３】
2004503848.tif 000005
【図４】
2004503848.tif 000006
【図５】
2004503848.tif 000007
【図６】
2004503848.tif 000008
【図７】
2004503848.tif 000009
【図８】
2004503848.tif 000010
【図９】
2004503848.tif 000011
【国際公開パンフレット】
2004503848.tif 000012
2004503848.tif 000013
2004503848.tif 000014
2004503848.tif 000015
2004503848.tif 000016
2004503848.tif 000017
2004503848.tif 000018
2004503848.tif 000019
2004503848.tif 000020
2004503848.tif 000021
2004503848.tif 000022
2004503848.tif 000023
2004503848.tif 000024
2004503848.tif 000025
2004503848.tif 000026
2004503848.tif 000027
2004503848.tif 000028
2004503848.tif 000029
2004503848.tif 000030
2004503848.tif 000031
2004503848.tif 000032
2004503848.tif 000033
2004503848.tif 000034
2004503848.tif 000035
2004503848.tif 000036
2004503848.tif 000037
2004503848.tif 000038
2004503848.tif 000039
2004503848.tif 000040
2004503848.tif 000041
【国際公開パンフレット（コレクトバージョン）】
2004503848.tif 000042
【国際公開パンフレット（コレクトバージョン）】
2004503848.tif 000043
【国際調査報告】
2004503848.tif 000044
2004503848.tif 000045