(57)【特許請求の範囲】
【請求項１】
ホスト・プロセッサを含む分散したシステム・コンポーネントを有する記憶システムにして、前記ホスト・プロセッサは記憶装置のレコード更新を発生するソフトウエア・アプリケーションを走らせ、前記記憶システムのシステム・コンポーネントにおいて生じるエラー状態を検出して当該エラー状態を示す診断状態保管チャネル・コマンド・ワード（ＣＣＷ）を発生するデータ・ムーバを有し、且つ前記記憶装置に接続された第１記憶コントローラに結合されている記憶システムにおいて、前記記憶システムにおいてエラー状態が生じた場合に、前記分散したシステム・コンポーネント相互間の問題決定を調整するための方法であって、
（ａ）前記ソフトウエア・アプリケーションによって発生されたレコード更新のためのＩ／Ｏオペレーションを生じるステップと、
（ｂ）前記生じたＩ／Ｏオペレーションに従って前記レコード更新のデータを前記第１記憶コントローラに記憶するステップと、
（ｃ）前記レコード更新と関連した制御情報を前記第１記憶コントローラに記憶して保持するステップと、
（ｄ）前記レコード更新を別の記憶システムにコピーすることに備えて前記第１記憶コントローラから前記データ・ムーバに前記レコード更新のデータ及び関連した制御情報を読み込むステップと、
（ｅ）前記データ・ムーバにおいて記憶システムのエラー状態を検出するステップと、
（ｆ）前記データ・ムーバから前記ホスト・プロセッサ及び前記第１記憶コントローラに前記診断状態保管チャネル・コマンド・ワードを発生するステップと、
（ｇ）前記ホスト・プロセッサ及び前記第１記憶コントローラにおいてシステム・コンポーネントの記憶システムに対する障害情報を捕捉するステップと、
（ｈ）前記ホスト・プロセッサにおける前記障害情報と前記第１記憶コントローラにおける前記障害情報とを前記記憶システムのエラー状態に従って相関させるステップと、
を含む前記方法。
【請求項２】
前記ステップ（ｆ）は、前記ステップ（ｇ）が完了するまでシステム環境を凍結するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記方法は、更に、
（ｈ）エラーの原因を決定するために障害情報を分析するステップ、
を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記ステップ（ｅ）は、エラー・タイプを表すエラー・コードを前記データ・ムーバにおいて受け取るステップを含むことを特徴とする請求項２に記載の方法。
【請求項５】
前記ステップ（ｇ）は、前記データ・ムーバにおけるトレースにおいてホスト・プロセッサ障害情報を記憶するステップを含むことを特徴とする請求項２に記載の方法。
【請求項６】
前記ステップ（ｇ）は、前記第１記憶コントローラにおけるトレースにおいて第１記憶コントローラ障害情報を記憶するステップを含むことを特徴とする請求項２に記載の方法。
【請求項７】
前記ステップ（ｆ）は、前記診断状態保管ＣＣＷを別の記憶システムにおける第２記憶コントローラに発生するステップを含むことを特徴とする請求項２に記載の方法。
【請求項８】
記憶システムのエラーに応答して多数のシステム・コンポーネントに跨って状態保管診断を組み合わせるために、前記記憶システムのシステム・コンポーネントにおいて生じるエラー状態を検出して当該エラー状態を示す診断状態保管チャネル・コマンド・ワード（ＣＣＷ）を発生するデータ・ムーバを有し、前記システム・コンポーネントは直接アクセス記憶装置（ＤＡＳＤ）に対するソフトウエア・アプリケーションによって発生されるレコード更新を管理するための記憶コントローラに結合されたホスト・プロセッサを含む記憶システムであって、
前記ソフトウエア・アプリケーションにおいて発生されたレコード更新に対するＩ／Ｏオペレーションを生じさせるための手段と、
前記生じたＩ／Ｏオペレーションに従って前記レコード更新のデータを前記記憶コントローラに記憶するための手段と、
前記レコード更新と関連した制御情報を前記記憶コントローラに記憶して保持するための手段と、
前記レコード更新を別の記憶システムにコピーすることに備えて前記データ・ムーバに前記レコード更新のデータ及び関連した制御情報を読み込むための手段と、
記憶システムのエラー状態を検出し、前記エラー状態を前記データ・ムーバに通信するための検出手段と、
前記データ・ムーバから前記ホスト・プロセッサ及び前記記憶コントローラに前記診断状態保管チャネル・コマンド・ワードを発生するための状態保管手段と、
前記ホスト・プロセッサ及び前記記憶コントローラにおいてシステム・コンポーネントの記憶システムに対する障害情報を捕捉するための捕捉手段と、
前記多数のシステム・コンポーネントのうちの各システム・コンポーネントにおける前記障害情報を検出されたエラー状態に従って相関させる相関手段と、
を含む前記記憶システム。
【請求項９】
前記状態保管手段は、前記記憶コントローラのオペレーションと前記捕捉手段が障害情報の捕捉を完了するまで前記エラー状態と関連したソフトウエア・アプリケーションとを凍結することを特徴とする請求項８に記載の記憶システム。
【請求項１０】
前記検出手段は、前記エラー状態のエラー・タイプを表すエラー・コードを前記データ・ムーバにおいて受け取ることを特徴とする請求項８に記載の記憶システム。
【請求項１１】
前記捕捉手段は、前記データ・ムーバにおけるトレースにおいてホスト・プロセッサ障害情報を記憶することを特徴とする請求項８に記載の記憶システム。
【請求項１２】
前記捕捉手段は、前記記憶コントローラにおけるトレースにおいて記憶コントローラ障害情報を記憶することを特徴とする請求項１１に記載の記憶システム。
【請求項１３】
発生したエラー状態と関連したシステム・コンポーネント相互間で障害情報を調整するためのデータ記憶システムにして、前記システム・コンポーネントはレコード更新を記憶するための不揮発性記憶装置に結合された１つ又は複数の記憶コントローラを含むデータ記憶システムにおいて、
ソフトウエア・アプリケーションを走らせるホスト・プロセッサを含み、
前記ソフトウエア・アプリケーションはレコード更新を発生し且つ前記不揮発性記憶装置における通常の記憶のためのＩ／Ｏオペレーションを前記１つ又は複数の記憶コントローラに送るものであり、前記ホスト・プロセッサは前記１つ又は複数の記憶コントローラから前記レコード更新を読み取り、災害時回復のための別の記憶システムに送るために前記レコード更新をグループにアセンブルするためのデータ・ムーバを含むものであり、前記データ・ムーバは生じたエラー状態のタイプを表すエラー・コードを前記システム・コンポーネントの１つから受け取るものであり、前記データ・ムーバは障害情報を収集するために前記関連したシステム・コンポーネントにレコード更新の処理を一時的に中断させるための状態保管コマンドを前記関連したシステム・コンポーネントに発生するものであり、及び前記障害情報は状態保管コマンドに従ってシステム・コンポーネント相互間で相関するものであること、及び
前記データ・ムーバは、
前記データ・ムーバと関連した障害情報を記憶するためのトレースと、
前記データ・ムーバに読み込まれたレコード更新を管理するための制御セクションと、
前記レコード更新及びそれらが関連するヘッダを記憶するための複数のバッファと、
を含むことを特徴とするデータ記憶システム。
【請求項１４】
前記データ・ムーバからグループ分けされたレコード更新を受けるように結合された別のデータ・ムーバを含むことを特徴とする請求項１３に記載のデータ記憶システム。
【請求項１５】
前記不揮発性記憶装置は直接アクセス記憶装置（ＤＡＳＤ）であることを特徴とする請求項１３に記載のデータ記憶システム。
【請求項１６】
前記別のデータ・ムーバから記憶のためにグループ分けされたレコード更新を受けるように結合された別のデータ記憶システムを含み、
前記別のデータ記憶システムは、前記別のデータ記憶システムにおいてエラー状態が生じた時、前記状態保管コマンドに応答することを特徴とする請求項１４に記載のデータ記憶システム。
【請求項１７】
前記別のデータ記憶システムは、
別のホスト・プロセッサと、
前記別のホスト・プロセッサに結合された別の記憶コントローラと、
前記別の記憶コントローラに結合され、前記グループ分けされたレコード更新を記憶するための別の不揮発性記憶装置と、
を含むことを特徴とする請求項１６に記載のデータ記憶システム。
【請求項１８】
データを処理するための一次サイト及び災害時回復のためにデータのコピーを受ける二次サイトと、分散システム・コンポーネントとを有し、発生した特定のエラー状態と関連した障害情報の前記分散システム・コンポーネント相互間における調整及び捕捉をトリガすることによってエラー・デバッギングを援助する災害時回復データ記憶システムにして、
各々がキャッシュ・メモリ、制御バッファ、及びトレース・バッファを有する複数の記憶コントローラと、
アプリケーションを走らせるホスト・プロセッサを含み、前記アプリケーションはレコード更新を発生し且つ前記レコード更新を複数の記憶コントローラに書き込むために各レコード更新に対するＩ／Ｏオペレーションを前記複数の記憶コントローラに送るものであり、前記ホスト・プロセッサは前記複数の記憶コントローラから前記レコード更新を読み取ってそれを自己記述レコード・セットのグループにアセンブルするための一次データ・ムーバを含むものであり、前記一次データ・ムーバは生じたエラー状態のタイプを表すエラー・コードを前記システム・コンポーネントの１つから受け取るものであり、前記一次データ・ムーバは障害情報を収集するために前記関連したシステム・コンポーネントにレコード更新の処理を一時的に中断させるための診断状態保管チャネル・コマンド・ワードを前記エラー状態と関連した分散システム・コンポーネントに向けて発生するものであり、前記障害情報は診断状態保管チャネル・コマンド・ワードに従って相関するものであることと、
前記複数の一次記憶コントローラに結合された複数の一次直接アクセス記憶装置（ＤＡＳＤ）と、
自己記述レコード・セットのグループを受けるように接続され、前記診断状態保管チャネル・コマンド・ワードに応答する二次データ・ムーバと、
前記二次データ・ムーバに記憶され、前記診断状態保管チャネル・コマンド・ワードに応答する二次ホスト・プロセッサと、
前記ホスト・プロセッサに結合され、前記診断状態保管チャネル・コマンド・ワードに応答する複数の二次記憶コントローラと、
前記自己記述レコード・セットのグループを記憶するための複数個の二次ＤＡＳＤと、
を含み、
前記一次データ・ムーバは、
前記一次データ・ムーバと関連した障害情報を記憶するためのトレースと、
前記一次データ・ムーバに読み込まれたレコード更新を管理するための制御セクションと、
前記レコード更新及びそれらが関連するヘッダを記憶するための複数のバッファと、
を含むことを特徴とする災害時回復データ記憶システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、概して云えば、階層データ記憶装置に関するものであり、詳しく云えば、階層データ記憶システムにおける多数のコンポーネントに跨る改良された状態保管オペレーションに関するものである。
【０００２】
【従来の技術】
一般に、データ処理システムは、データの処理と関連して大量のデータ（或いはレコード）を記憶することを要求される。なお、それらのデータは、効率的にアクセス可能であり、修正可能であり、そして再記憶可能でなければならない。データ記憶装置は、効果的な及び費用効果的なデータ記憶を行うために幾つかの異なるレベルに、即ち、階層的に分けられる。第１レベル、即ち、最高レベルのデータ記憶装置は、電子的メモリ、通常は、動的又は静的ランダム・アクセス・メモリ（ＤＲＡＭ又はＳＲＡＭ）を意味する。電子的メモリは半導体集積回路の形式を取る。そこでは、数百万バイトのデータが、そのようなデータ・バイトへの数ナノ秒のアクセスでもって各回路に記憶可能である。その電子的メモリは、アクセスが全体的に電子的であるので、最も速いアクセスを行う。
【０００３】
第２レベルのデータ記憶装置は、通常、直接アクセス記憶装置（ＤＡＳＤ）を意味する。ＤＡＳＤは、例えば、磁気的又は光学的ディスクより成り、データのビットを形成する「１」又は「０」を表すためにディスク面上にマイクロメータ（ミクロン）サイズの磁気的又は光学的に変換されたスポットとしてデータ・ビットを記憶する。磁気ＤＡＳＤは、残留磁気材でもって被覆された１つ又は複数のディスクを含んでいる。それらのディスクは、保護された環境内に回転可能に装着される。各ディスクは多くの同心円トラック、即ち、近接した円に分けられる。データは各トラックに沿ってビット毎に直列的に記憶される。ヘッド・ディスク・アセンブリ（ＨＤＡ）として知られたアクセス機構は、一般的には、１つ又は複数の読取り／書込みヘッドを含み、ディスクがその読取り／書込みヘッドを通って回転する時、それらのトラックを横切って移動してディスクの表面に及びその表面からデータを転送するために各ＤＡＳＤに設けられる。ＤＡＳＤは数ギガ・バイトのデータを、一般には、そのようなデータへの数ミリ秒のアクセス（電子的メモリよりも数桁の大きさで遅い）でもって記憶することができる。ＤＡＳＤに記憶されたデータへのアクセスは、ディスク及びＨＤＡを所望のデータ記憶ロケーションに物理的に位置づける必要があるので低速である。
【０００４】
第３レベル、即ち、低レベルのデータ記憶装置は、テープ・ライブラリ、又はテープ及びＤＡＳＤライブラリを含む。ロボット又はオペレータはリクエストされたデータ記憶媒体を選択及びロードする必要があるので、データへのアクセスはライブラリにおいてはずっと遅い。その利点は非常に大きいデータ記憶機能、例えば、数テラ・バイトのデータ記憶機能に対するコストの減少である。テープ記憶装置は、一般には、バックアップの目的で使用される。即ち、階層の第２レベルで記憶されたデータは、保護のために磁気テープ上に複写される。テープ上に又はライブラリに記憶されたデータへのアクセスは、現在では、秒単位のものである。
【０００５】
データの喪失が企業にとって致命的になることがあるので、バックアップのデータ・コピーを持つことは多くの企業にとって必須である。一次記憶レベルで失われたデータを回復するに必要な時間も重要な回復考察事項である。バックアップの別の形式であるデュアル・コピーは、テープ又はライブラリ・バックアップにおいて速度の改良を与える。デュアル・コピーの一例は、データが書き込まれる追加のＤＡＳＤを設ける（ミラーリングと呼ばれることもある）ことを含む。そこで、一次ＤＡＳＤが故障した場合、データは、二次ＤＡＳＤに依存することになる。この方法の欠点は必要なＤＡＳＤの数が二倍になることである。
【０００６】
記憶装置を二倍にする必要性を克服する他のデータ・バックアップ代替え方法は低価格ディスクの冗長配列（ＲＡＩＤ）構成にデータを書き込むことを含む。この例では、データは、それが多くのＤＡＳＤ間に配分されるように書き込まれる。１つのＤＡＳＤが故障した場合、失われたデータは残りのデータ及びエラー訂正手順を使用することによって回復可能である。現在では、幾つかの異なるＲＡＩＤ構成が使用可能である。
【０００７】
更に大規模な保護を行うバックアップ解決法は、一次ＤＡＳＤに記憶された一次データが二次ロケーション又はリモート・ロケーションにおいてシャドウされることを必要とするリモート・デュアル・コピーである。一次ロケーションと二次ロケーションとを分ける距離はユーザにとって受容可能なリスクのレベルに依存し、同期データ通信に関しては、ファイア・ウォールに跨るものから数キロメートルまで変動可能である。二次ロケーション又はリモート・ロケーションは、バックアップ・データ・コピーを行うことに加えて、一次システムがディスエーブルされた場合にその一次システムに対する処理を引き継ぐに十分なシステム情報も持たなければならない。これは、単一の記憶コントローラが一次サイト及び二次サイトにおける一次ＤＡＳＤストリング及び二次ＤＡＳＤストリングの両方にはデータを書き込むのではないので部分的に当然である。代わりに、一次データは一次記憶コントローラに接続された一次ＤＡＳＤストリング上に記憶され、一方、二次データは二次記憶コントローラに接続された二次ＤＡＳＤストリング上に記憶される。
【０００８】
リモート・デュアル・コピーは、２つの一般的なカテゴリ、即ち、同期的なもの又は非同期的なもののどちらかに属する。同期的リモート・コピーは、一次データを二次ロケーションに送ること及び一次ＤＡＳＤ入力／出力（Ｉ／Ｏ）オペレーションを終了する（チャネル終了（ＣＥ）／装置終了（ＤＥ）を一次ホストに与える）前にそのようなデータの受領を確認することを可能にする。従って、同期的リモート・コピーは、二次確認を待つ間、一次ＤＡＳＤのＩ／Ｏ応答時間を遅くする。一次Ｉ／Ｏ応答遅延は一次システムと二次システムとの間の距離に比例して増加する（それは、その遠隔距離を十数キロメートルに制限する要素である）。しかし、同期的リモート・コピーは比較的僅かなシステム・オーバヘッドでもって二次サイトにおける整合したデータを順次に供給する。
【０００９】
非同期的リモート・コピーは、データが二次サイトにおいて確認される前に一次ＤＡＳＤのＩ／Ｏオペレーションが完了する（チャネル終了（ＣＥ）／装置終了（ＤＥ）を一次ホストに供給する）ので、良好な一次アプリケーション・システム・パフォーマンスを与える。従って、一次ＤＡＳＤＩ／Ｏ応答時間は二次サイトまでの距離に依存せず、二次サイトは一次サイトから数千キロメートルも離れていてよい。しかし、二次サイトで受けたデータは一次ＤＡＳＤ上に書かれたデータとは異なる順序で到達することがよくあるので、データ・シーケンスの整合性を保証するために大量のシステム・オーバヘッドが必要である。一次サイトにおける故障の結果、一次ロケーションと二次ロケーションとの間で搬送中であったデータは失われることがある。
【００１０】
最近紹介されたデータ災害時回復法は、データが遠隔的にのみならず、連続的にもバックアップされるリモート・デュアル・コピーを含む。一般的なリモート・デュアル・コピー・システムでは、多数の直列又は並列通信リンクによって多数の一次記憶コントローラに接続された多数の一次プロセッサが存在する。各一次記憶コントローラはそれに接続された一次ＤＡＳＤのストリングを有している。同様の処理システムが遠隔の二次サイトに存在してもよい。
【００１１】
リモート・コピーによって導入されたシステムの複雑さの増加及び関連する潜在的距離の増加があった場合、ハードウエア、マイクロコード、又はソフトウエアの問題のデバッギングは非常に複雑になる。通常のデバッギング技法は、通常、そのような問題が生じた十分後のシステム超過時間におけるハードウエア、ソフトウエア、或いはマイクロコードの面での論理的エラーの兆候としては極めて時間消費するものである。更に、システム・デバッギングは、通信を数百メートルから世界中の何処へでも拡張するために、拡張エンタープライズ・システム接続（ＥＳＣＯＭ）チャネルを含むチャネル拡張ボックスの使用によって一次システム及び二次システムの両方に跨って分散されたソフトウエアを走らせることにより更に複雑にされる。従って、分散デバッギングの大きさは殆ど管理不可能のものになる。
【００１２】
従って、分散システムのコンポーネント相互間の問題決定を調整するための方法及び装置を提供することが望まれている。例えば、制御装置が誤りのある結果を戻す場合、データ・ムーバは、そのエラーを生じた制御装置及び関連のホスト・プロセッサ及びアプリケーションに指示して、ハードウエア、ソフトウエア、或いはマイクロコード相互間の問題決定を調整するためにそれの状態を保管させる。
【００１３】
【発明が解決しようとする課題】
本発明の目的は、コンピュータ・システムにおける分散コンポーネント相互間の状態保管を調整するための改良された設計及び方法を提供することにある。
【００１４】
本発明のもう１つの目的は、ホスト・プロセッサと記憶コントローラとの間、又は記憶コントローラ相互間の調整された状態保管を提供することにある。
【００１５】
本発明の更にもう１つの目的は、エラーをデバッグするために或いはシステム・パフォーマンスを分析するために、状態をホスト・プロセッサ及び少なくとも１つの記憶コントローラ内に保管させるためのチャネル・コマンド・ワード（ＣＣＷ）をホスト・プロセッサから発生することにある。
【００１６】
【課題を解決するための手段】
本発明の第１実施例によれば、記憶システムにおける分散システム・コンポーネント相互間で問題発生を調整するための方法が与えられる。記憶システムは、ホスト・アプリケーションを走らせ及びデータ・ムーバを有するホスト・プロセッサを含む。ホスト・プロセッサは、レコード更新を行うための記憶コントローラに結合される。その方法は、ホスト・アプリケーションによって発生されたレコード更新を記憶するために、ホスト・アプリケーションから記憶コントローラにＩ／Ｏオペレーションを発生することを含む。そのレコード更新と関連したレコード・ヘッダを含む制御情報は記憶コントローラに維持される。データ・ムーバは、所定の時間に、レコード更新を遠隔的にコピーすることに備えて、レコード更新のグループ及びそれに対する関連の制御情報を読み取る。そのシステムの或コンポーネントにおいてエラー状態が生じた場合、そのエラー状態は、受け取ったエラー・コードに従ってデータ・ムーバにおいて検出される。エラー・コードの受取りに応答して、データ・ムーバは「診断状態保管」チャネル・コマンド・ワード（ＣＣＷ）をホスト・プロセッサ及び記憶コントローラに発生する。障害情報は直ちにデータ・ムーバ及び記憶コントローラにおいて捕捉される。その後、その障害情報は検出されたエラー状態に従って相関される。
【００１７】
本発明のもう１つの実施例では、データ記憶システムがそのデータ記憶システムにおいて生じたエラー状態と関連したシステム・コンポーネント相互間で障害情報を調整する。それらのシステム・コンポーネントはソフトウエア、ハードウエア、及びマイクロコード制御ストラクチャを含む。システム・コンポーネントは、レコード更新を処理及び記憶するために、ホスト・プロセッサと不揮発性記憶装置に結合された１つ又は複数の記憶コントローラとを含む。ホスト・プロセッサは、レコード更新を発生し及びＩ／Ｏオペレーションを１つ又は複数の記憶コントローラに送るアプリケーションを走らせて、レコード更新を不揮発性記憶装置上に記憶する。
【００１８】
更に、ホスト・プロセッサは、１つ又は複数の記憶コントローラからレコード更新を読み取るための、及び災害時回復を目的としてリモート記憶システムに送るためにそれらのレコード更新を自己記述レコードのグループにアセンブルするためのデータ・ムーバを有する。エラーが生じた時、データ・ムーバは、生じたエラー状態のタイプを表すエラー・コードをシステム・コンポーネントの１つから受け取る。それに応答して、データ・ムーバは、障害情報を収集する間、エラー状態と関連したシステム・コンポーネントにレコード更新の処理を一時的に中断させるために状態保管コマンドを、そのエラー状態と関連したシステム・コンポーネントへ発生する。各システム・コンポーネントに対する障害情報は状態保管コマンドに従って相関する。データ・ムーバは、そのデータ・ムーバと関連した障害情報及びデータ・ムーバに書き込まれたレコード更新を管理するための制御セクションを記憶するトレース待ち行列を有する。又、データ・ムーバには、レコード更新及びそれらの関連のヘッダを記憶するための複数のバッファが設けられる。
【００１９】
【発明の実施の形態】
一般的なデータ処理システムは、データを計算及び処理するための及び、例えば、ＭＶＳのデータ機能記憶管理サブシステム（ＤＦＳＭＳ／ＭＶＳ）ソフトウエアを走らせるためのＩＢＭシステム／３６０又はＩＢＭシステム／３７０プロセッサのようなホスト・プロセッサの形式を取るものでよい。なお、そのプロセッサは、少なくとも１つのＩＢＭ３９９０記憶コントローラを接続され、その記憶コントローラは、メモリ・コントローラ及びそれに組み込まれた１つ又は複数のキャッシュ・メモリ・タイプを含む。更に、記憶コントローラは、ＩＢＭ３３８０又は３３９０ＤＡＳＤのような直接アクセス記憶装置（ＤＡＳＤ）のグループに接続される。ホスト・プロセッサはかなりの計算力を与えるけれども、記憶コントローラは、大きなデータベースを効率的に転送し、ステージ／デステージし、変換し、及び全体的にアクセスするに必要な機能を与える。
【００２０】
図１は、一次サイト１２１及びリモート・サイト又は二次サイト１３１を含む非同期災害時回復システム１００を示す。一次サイト１２１は、一次プロセッサ１０１、例えば、ＤＦＳＭＳ／ＭＶＳホスト・ソフトウエアを走らせるＩＢＭ  ＥＳ／９０００を含む。更に、一次プロセッサ１０１はアプリケーション・ソフトウエア（ＡＰＰＬＮ１、ＡＰＰＬＮ２）１０２及び１０３、例えば、ＩＭＳ及びＤＢ２アプリケーションと、一次データ・ムーバ（ＰＤＭ）１０４を含む。プロセッサ１０１において走るすべてのアプリケーション（１０２、１０３）への一般的な参照を行うための一般的なシスプレックス・クロック１０７が一次プロセッサ１０１に含まれる。すべてのシステム・クロック又はタイム・ソース（図示されていない）がシスプレックス・クロック１０７に同期して、すべての時間依存の処理が相互に関して適正に計時されることを保証する。一次記憶コントローラ１０５は、例えば、単一の一次記憶コントローラ１０４に対する２つの連続した書込みＩ／Ｏオペレーションが同じタイム・スタンプ値を示さないように、レコード書込み更新時間相互間の区別を保証するに適した解像度に同期する。シスプレックス・クロック１０７の解像度（精度ではない）はクリティカルある。シスプレックス・クロック１０７に接続されたＰＤＭ１０４は、書込みＩ／Ｏオペレーションがそこでは発生されないので、シスプレックス・クロック１０７に同期する必要はない。一次プロセッサ１０１が単一の時間参照しか持たない場合（例えば、単一のマルチプロセッサＥＳ／９０００システム）、シスプレックス・クロック１０７は必要ない。
【００２１】
複数の一次記憶コントローラ１０５、例えば、ＩＢＭ３９９０モデル６記憶コントローラは、複数のチャネル、例えば、光ファイバ・チャネルを介して一次プロセッサ１０１に接続される。各一時記憶コントローラ１０５には、一次ＤＡＳＤ１０６の少なくとも１つのストリング、例えば、ＩＢＭ３３９０ＤＡＳＤが接続される。一次記憶コントローラ１０５及び一次ＤＡＳＤ１０６は一次記憶サブシステムを形成する。各一次記憶コントローラ１０５及び一次ＤＡＳＤ１０６は別々の装置である必要はなく、単一のドロワに結合されたものでよい。
【００２２】
例えば、一次サイト１２１から数千キロメートルも離れて設置された二次サイト１３１は、一次サイト１２１と同様に、二次データ・ムーバ（ＳＤＭ）１１４を有する二次プロセッサ１１１を含む。これとは別に、一次及び二次サイトは同じロケーションであってもよく、更に、一次データ・ムーバ１０４及び二次データ・ムーバ１１４は単一のホスト・プロセッサ上にあってもよい（二次ＤＡＳＤ１１６はファイア・ウォールの外部にあってもよい）。複数の二次記憶コントローラ１１５は、チャネル、例えば、その分野では知られた光ファイバ・チャネルを介して二次プロセッサ１１１に接続される。その二次記憶コントローラ１１５には、複数の二次ＤＡＳＤ１１６及び制御情報ＤＡＳＤ１１７が接続される。二次記憶コントローラ１１５及びＤＡＳＤ１１６、１１７は二次記憶サブシステムを構成する。
【００２３】
一次サイト１２１は通信リンク１０８を介して二次サイト１３１と通信する。更に詳しく云うと、一次プロセッサ１０１は、通信プロトコル、例えば、仮想記憶通信アクセス方式（ＶＴＡＭ）通信リンク１０８によってデータ及び制御情報を二次プロセッサ１１１に転送する。通信リンク１０８は、電話（Ｔ１、Ｔ３ライン）、無線、無線／電話、マイクロ波、衛星等を含む幾つもの適当な通信方法によって実現可能である。
【００２４】
非同期データ・シャドウ・システム１００は、一次ＤＡＳＤ１０６へのすべてのデータ書込みの順序が保持されそして二次ＤＡＳＤ１１６（すべての一次記憶サブシステムにわたってデータ書込み順序を保持する）に適用されるように、一次記憶コントローラ１０５からの制御データの収集を行う。二次サイト１３１に送られるデータ及び制御情報は、データ整合性を保持するために一次サイト１２１の存在が最早必要のないほど十分なものでなければならない。
【００２５】
アプリケーション１０２、１０３はデータ又はレコード更新を発生する。レコード更新は、一次記憶コントローラ１０５によって収集され、ＰＤＭ１０４によって読み取られる。一次記憶コントローラ１０５の各々は非同期リモート・データ・シャドウィング・セッションに対するそれぞれのレコード更新をグループ分けし、不特定の一次ＤＡＳＤ１０６の「読取り」リクエストを介してＰＤＭ１０４にそれらのレコード更新を与える。一次記憶コントローラ１０５からＰＤＭ１０４へのレコード更新の転送はＰＤＭ１０４によって制御及び最適化され、多数のスタートＩ／Ｏオペレーションを最小化し、更に、各一次記憶コントローラ１０５の各々と一次プロセッサ１０１との間で転送されるデータの量を最大にする。ＰＤＭ１０４は、この一次記憶コントローラ／ホスト最適化及び二次ＤＡＳＤに対するレコード更新の流れを制御するために不特定の「読取り」相互間のタイム・インターバルを変更することができる。
【００２６】
データの整合性を維持しながらＰＤＭ１０４によってレコード更新を収集すること及びＳＤＭ１１４にそれらのレコード更新を搬送することは、それらのレコード更新が、一次ＤＡＳＤ１０６のレコード書込みシーケンスを再構成するに十分な制御データと共に、すべての一次記憶サブシステムを通して二次ＤＡＳＤ１１６まで特定のタイム・インターバルの間に搬送されることを必要とする。一次ＤＡＳＤ１０６のレコード書込みシーケンスの再構成は、ＰＤＭ１０４からＳＤＭ１１４に自己記述レコードを送ることによって達成される。ＳＤＭ１１４はその自己記述レコードを調べて、所与のタイム・インターバルの間のすべてのレコードが失われてしまったか、或いはそれが不完全なものであるかどうかを決定する。
【００２７】
図２は一次（又は二次）記憶コントローラ１０５のコンポーネントを示す。その記憶コントローラ１０５はデュアル・ケージ２３６及び２３８（可用性を上げるために別々に電力供給される）を含み、その各々はマルチパス記憶ディレクタ２６２及び２６８を有する。それらのマルチパス記憶ディレクタは２つの記憶パス（ＳＰ）２４８、２５０、及び２５２、２５４を有する。各記憶パスは、ホスト・プロセッサから受け取ったチャネル・コマンド・ワード（ＣＣＷ）を解釈し、そして接続されたＤＡＳＤを制御することができる。
【００２８】
更に、各ケージ２３６及び２３８は共用制御アレイ（ＳＣＡ）記憶装置２６４及び２６６を含む。各ＳＣＡ２６４及び２６６は、記憶コントローラ１０５内の他のケージに設けられた他のＳＣＡと共用のステータス情報及びローカル・ステータス情報を記憶する。このように、ケージ２３６、２３８の一方又は両方に障害状態が存在しない場合、ＳＣＡ２６４及び２６６の内容は同じである。一般的な共用データは、記憶パス２４８、２５０、２５２、及び２５４の各々に含まれたマイクロプロセッサによって使用される種々の外部レジスタの他に装置ステータス及び再接続データを含んでいる。ＳＣＡデータは４つの記憶パス２４８、２５０、２５２、及び２５４のすべてにとってアクセス可能である。
【００２９】
高速度メモリであるキャッシュ２５８及び不揮発性記憶装置（ＮＶＳ）２６０が、それぞれ、ケージ２３６及び２３８に設けられる。ホストとＤＡＳＤとの間で移動するデータは、システム・スループットを改善するためにキャッシュ２５８に一時的に記憶可能である。ホストから受け取ったデータは、例えば、その分野ではよく知られているＤＡＳＤ高速書込み機能を与えるために、ＮＶＳ２６０にコピー可能である。例えば、更にデータの可用性を上げるために、各ケージ２３６、２３８においてキャッシュ及びＮＶＳメモリを設ける他の構成が知られている。
【００３０】
図３は記憶コントローラ１０５における４つの記憶パスの１つ２４８を３４８としてブロック図形式で示す。４つの記憶パス２４８、２５０、２５２、及び２５４はすべて同じものであり、ここでは、それの１つである記憶パス３４８だけを説明することにする。記憶パス３４８は上部ポート３１０によって８＊２スイッチ３６２に、及び下部ポート３１２によって複数のＤＡＳＤに接続される。直接ＤＡＳＤオペレーション時にマルチパス記憶ディレクタ３６２とＤＡＳＤの１つとの間のデータ転送は、必要に応じて、速度変更バッファ３７６によってサポートされる自動データ転送回路（ＡＤＴ）３７４を介して生じる。速度変更バッファ３７６は、ＤＡＳＤによるデータ転送の速度とチャネル−ＣＰＵコミュニケーションの速度との差を補償する。一般に、チャネル転送はＤＡＳＤ−コントローラ転送よりもずっと高速度で生じる。
【００３１】
又、記憶パス３４８は、その記憶パス上で生じるすべてのオペレーションを制御するように機能するマイクロプロセッサ３７０を有する。そのマイクロプロセッサ３７０は、外部サポート機構を通して制御記憶装置（図示されていない）にロードされたマイクロ命令を実行する。ポート・アダプタ（ＰＡ）３７２は、キャッシュ３５８、不揮発性記憶装置（ＮＶＳ）３６０、マイクロプロセッサ３７０、上部ポート３１０、及び下部ポート３１２の間のデータの転送のための制御データ・パスを与える。
【００３２】
キャッシュ３５８は、そのキャッシュへの及びそのキャッシュからの２つの同時データ転送を可能にする２つのポート（上部ポート、下部ポート）を含んでいる。例えば、ＤＡＳＤからキャッシュ３５８にデータを転送しながら、キャッシュ３５８からチャネル３１０にデータを転送することが可能である。一般に、データ転送はマイクロプロセッサ３７０によって設定され、しかる後、データ転送が終了するまで、マイクロプロセッサ３７０からの更なる介入なしに自動データ転送回路３７４の機能によって引き継がれる。
【００３３】
図４は、一次記憶コントローラ１０５によって発生されたプレフィックス・ヘッダ４００を示す。それは、その後、自己記述レコードのセットをグループ分けするためにＰＤＭ１０４によって使用される。各自己記述レコードは、更に、それが各タイム・インターバルの間のタイム・シーケンスで二次ＤＡＳＤ１１６に与えられるように、各タイム・インターバルの間ＳＤＭ１１４によってジャーナルされる。各グループ又はレコード・セットの前に挿入されるプレフィックス・ヘッダ４００は、そのプレフィックス・ヘッダの合計長を記述するための合計データ長４０１、及び各レコード・セットに対してＳＤＭ１１４に送られた実際の一次レコード・セット情報を含んでいる。オペレーショナル・タイム・スタンプ４０２は、ＰＤＭ１０４が現在処理しているオペレーショナル・セットに対する開始時間を表すタイム・スタンプである。そのオペレーショナル・タイム・スタンプ４０２は、一次記憶コントローラ１０５のセットに対する「レコード・セット読取り」機能を遂行する時、（シスプレックス・クロックに従って）ＰＤＭ１０４によって発生される。一次ＤＡＳＤ１０６の書込みのＩ／Ｏ時間は各一次記憶コントローラ１０５の「レコード・セット読取り」にとって特有のものである。そのオペレーショナル・タイム・スタンプ４０２はすべての記憶コントローラにわたって共通である。
【００３４】
タイム・インターバル・グループ番号４０３は、現在のレコード・セット（所与のタイム・インターバル・グループに対してすべての一次記憶コントローラ１０５に跨るレコードのセット）が属するタイム・インターバル（オペレーショナル・タイム・スタンプ４０２及びレコード読取り時間４０７によって境界付けられる）を識別するためにＰＤＭ１０４によって供給される。グループ内シーケンス番号４０４は、所与のタイム・インターバル・グループ番号４０３内の各レコード・セットに対する一次記憶コントローラ１０５のための一連のアプリケーション「Ｉ／Ｏ書込み」のハードウエア供給された（ＰＤＭ１０４に対する）の識別である。一次ＳＳＩＤ（サブ記憶装置識別）４０５は、各レコード・セットに対する一次記憶コントローラ４０５のうちの特定の一次記憶コントローラを独特に識別する。二次ターゲット・ボリューム４０６は、パフォーマンス考察事項に従ってＰＤＭ１０４又はＳＤＭ１１４によって割り当てられる。レコード読取り時間４０７は、すべての一次記憶コントローラ１０５に共通したオペレーショナル・タイム・スタンプを供給し、現在のインターバルのレコード・セットに対する終了時間を表す。
【００３５】
予め、オペレータが汎用トレース機能（ＧＴＦ）を生じることに基づいて、システム診断情報は収集された。そのＧＴＦは、そのシステムに設計されたフックに基づいてシステム・ハードウエア情報を収集することができる。しかし、ＧＴＦはエラーの時にはトリガされず、後処理機能に従ってデータを捕捉し、従って、キー・デバッギング・データは選択不能のために失われる。或プラットフォームがハードウエア／マイクロコード／ソフトウエア結合の解決法を提供した場合にシステムの複雑性が増加することから見て、デバッギング技法の改良が必要である。対等リモート・コピー（ＰＰＲＣ）及び拡張リモート・コピー（ＸＲＣ）のような多数の一次及び二次記憶コントローラを有する解決法は、効果的なプロダクト品質維持のために分散デバッギングを必要とする。そのような分散診断は、障害が検出された時にシステム・コンポーネントに跨ってハードウエア、マイクロコード、及びソフトウエア・トレース情報を効果的に組み合わせる（組合せ診断）。
【００３６】
その組合せ診断は、例えば、診断状態保管（ＤＩＡＧＮＯＳＴＩＣ  ＳＴＡＴＥ  ＳＡＶＥ）のような新しいコマンド・ワード（ＣＣＷ）によって生じる。それは、初期の問題検出時にソフトウエア又はハードウエアによってトリガされる。その「診断状態保管」ＣＣＷを発生することは、その問題をデバッグするに必要なクリティカルなソフトウエア、ハードウエア、又はマイクロコード制御ストラクチャをシステムに捕捉させる。
【００３７】
そこで、そのような制御ストラクチャ情報はコンポーネント・トレース機能によってそれの連続的診断トレース情報に組み合わされ、１つ又は複数の記憶コントローラに跨って内部記憶コントローラのマイクロコード／ハードウエア環境とホスト・ソフトウエア環境とを組み合わせた完全なピクチャを捕捉する。この組合せ診断解決の前に、特定のＩ／Ｏオペレーションを失敗させた外的兆候は、その特定のハードウエア・エラーに関するセンス・データをそのハードウエアにオフロードさせた。リモート・コピー・アプリケーションでは、そのようなオフ・ロードは、実際のエラーが生じた時よりも十分に後に生じる。
【００３８】
図５は一次サイト５００を示す。そこでは、幾つかのアプリケーション５０２、５０３がホスト・プロセッサ５０１において走り、記憶コントローラ５０８を介して（或いは、多数の記憶コントローラ５０８、５１８を介して）ＤＡＳＤ５１２にレコード更新を書き込む。データ・ムーバ５０４はレコード更新及びそれと関連したプレフィックス・ヘッダを読み取り、コピーを維持するために二次サイトに送る。二次サイト（例えば、図１に示されるような）は、説明を容易にするために図５には示されていない。そのような二次サイトは、無線電話タイプの送信を通してローカル的に（例えば、エンタープライズ・システム接続性（ＥＳＣＯＮ））又は長い距離を通して非同期的に一次サイト５００に結合される。二次データ・ムーバ５１４は、例えば、図示のようにホスト・プロセッサ５０１に存在してもよく、システムの要件によっては二次サイト（図示されていない）に存在してもよい。
【００３９】
データ・ムーバ５０４は、エラー状態の検出の際に、「診断状態保管」ＣＣＷを発生する。その場合、ホスト・プロセッサ５０１及び記憶コントローラ５０８は或ソフトウエア／ハードウエア／マイクロコード制御ストラクチャ情報を収集する。例示的なエラー状態は、実際のレコード数に等しくないレコード・カウントのトラック情報フィールド（ＴＩＦ）、レコード・カウントがゼロに等しい間「オフ」にセットされたＴＩＦノー・データ、無効の組合せ状態を表すＴＩＦオペレーション・フィールド、ＴＩＦに示されたレコード長における不一致、及びレコードの終わりにおけるノー擬似カウントを含んでいる。トレース５０７はデータ・ムーバ５０４に存在し、データ・ムーバ・トレース診断を記憶するための別個のアドレス・スペースを含む。本実施例におけるアドレス・スペースはラップ・アラウンド・デバッギング・スペースである。これらのデータ・ムーバ・トレース診断は、トレースを開始させたエラー・タイプを識別するリターン・コード、フラッグ状態、及びヘッダ情報を含んでいる。
【００４０】
データ・ムーバ５０４には、コントロール５０６も設けられる。コントロール５０６はデータ・マネージャであり、それはＩ／Ｏオペレーションを制御するための情報を記憶し、バッファ・スペースを関連の記憶コントローラにマップし、そして二次サイトへの最終的な伝送のためのレコード更新の整合性グループを形成するためにタイム・スタンプに従ってＩ／Ｏオペレーションをソートする。バッファ５０５はコントロール５０６によって管理され、ＴＩＦの他に実際のデータ（レコード更新）を記憶する。
【００４１】
記憶コントローラ５０８は、一般には種々のレコード更新セッションのためにセグメント化されたキャッシュ５０９を含む。不揮発性記憶装置（ＮＶＳ）５１０は、部分的にＤＡＳＤ高速書込みオペレーションを生じさせるために、レコード更新のための記憶スペースを与える。トレース５１１は、記憶コントローラ５０８に適正な状態情報を保管させる。この指令を受けた時、状態保管が記憶コントローラ５０８において進行中である場合には、他の状態保管は行われないであろう。「診断状態保管」ＣＣＷの結果として転送されるデータは次のものを含んでいる。即ち、
状態保管の表示：状態保管、汎用状態保管、又はリモート・コピー状態保管；
セッションＩＤ値；
関連の読取りレコード・セットのシーケンス番号；
システム・アベンド・コード；
ホスト・ソフトウエアにより検出された理由コード；及び
時刻スタンプ（ＴＯＤ）；
【００４２】
このようにして、複雑な状況における問題決定を完成させるために必要なデータを集めるための方法が記憶コントローラにおいて行われる。特に、拡張リモート・コピーのために記憶コントローラから読み取られたデータは誤っているかもしれず、デバッグするに必要な情報はキャッシュにおける待ち行列構造に存在するかもしれない。時々、特異な状態を生じさせる事象が過去において生じた。特異な状態をデバッグするために必要なデータを持つ確率は、そのソフトウエアが働いている読取りレコード・セットのＴＩＦからデータ・ムーバ・セッション識
【００４３】
データ保管機能は、例えば、６４Ｋバイトのデータをキャッシュにおいて割り振る。それは、更に、４つの１６Ｋバイトのブロックに分割される。キャッシュにおける待ち行列構造は３２個までの１６Ｋバイト・セグメントを占める。従って、記憶コントローラは、すべてのセグメントを記憶するに十分な状態保管記憶装置を与えるものではない。従って、マイクロコードは、そのシーケンス番号を使用して適当なキャッシュ・セグメントを選択するであろう。識別されたレコード・セットを含むセグメントＮ及び次に隣接するセグメントＮ＋１が与えられる。更に、そのリストにおける最初のセグメント及び最後のセグメント（従って、４つのセグメント）が与えられるであろう。
【００４４】
図６は、ハードウエア、ソフトウエア、及びマイクロコード制御ストラクチャを組み合わせるための「診断状態保管」ＣＣＷを発生するプロセスを示す流れ図である。そのプロセスは、ステップ６０１で始まり、ステップ６０３において、１つ又は複数のホスト・プロセッサにおいて走るアプリケーションが１つ又は複数の記憶コントローラにレコード更新を発生する。ステップ６０５において、各記憶コントローラは、それに指示された更新をそれの内部キャッシュ又はＮＶＳに記憶し、従って、それと関連した制御情報（ヘッダ）を更新する。次に、データ・ムーバは、ステップ６０７においてレコード更新をそれのバッファに読み込む。ステップ６０９において、エラー状態がデータ・ムーバによって検出される。エラー状態の検出に基づいて、データ・ムーバは「診断状態保管」ＣＣＷを発生する。それと同時に、そのエラー状態と関連した記憶コントローラ及びホスト・プロセッサを含む環境は凍結される。
【００４５】
ステップ６１３において、記憶コントローラは、障害情報を捕捉するためにダンプを開始する。例えば、記憶コントローラは、制御ストラクチャ、キャッシュ・ディレクトリ・エントリ、リモート・コピー、変化したデータ待ち行列、及び或マイクロコード・データ領域を捕捉する。又、ステップ６１５において、ホスト・プロセッサは、障害情報を捕捉するためにダンプを開始する。例えば、ホスト・プロセッサはホストの内部制御ストラクチャを捕捉する。その捕捉された障害情報は記憶コントローラ及びデータ・ムーバのトレース・バッファに記憶され、ステップ６１７において、時間、事象等に従って相関可能である。このデータは、エラー状態の原因を決定するために分析される。
【００４６】
図７は、プロセッサが容易に解釈し得る形でデータ・ストラクチャ、コンピュータ命令、又はアプリケーション・プログラムを記憶することができるコンピュータ読取り可能な記憶媒体７０１を示す。従って、図６のステップは、本発明を実行するように記憶システムに指示することができる一連のコンピュータ命令としてコンピュータ読取り可能な記憶媒体７０１上に記憶可能である。コンピュータ読取り可能な記憶媒体７０１はその分野ではよく知られているフロッピ・ディスクとして示される。コンピュータ読取り可能な記憶媒体７０１がフロッピ・ディスクに限定されることを意味するものではなく、むしろ、コンピュータ読取り可能な形で高い信頼性を持ってデータ又は命令を記憶する機能によって限定されるだけである。例えば、他の等しく適当な形式のコンピュータ・メモリは、動的ランダム・アクセス・メモリ（ＤＲＡＭ）、光ディスク、磁気テープ、ＤＡＳＤ、読取り専用メモリ（ＲＯＭ）等を含む。
【００４７】
前述の説明は、一次サイトにおいて発生したエラー状態に限定された。しかし、この概念は一次システム及び二次システムに跨って等しく適用可能である。例えば、一次サイトにおけるデータ・ムーバ（１つのホスト・プロセッサに第１及び第２のデータ・ムーバがあってもよい）は、二次サイトにおける記憶コントローラに「診断状態保管」ＣＣＷを発生することができ、従って、そこからの障害情報は相関可能である。
【００４８】
要約すると、分散コンポーネント及び災害時回復機能を持ったデータ記憶システムは、エラーが検出された時に適当なシステム・コンポーネントからの障害情報を捕捉すること及びエラー分析のために障害情報を調整することによってエラー・デバッギングを改良する。障害情報はソフトウエア、ハードウエア、及びマイクロコード制御ストラクチャを結合する。データ記憶システムは、データを処理するための一次サイト及び災害時回復の目的でデータのコピーを受けるための二次サイトを含む。一次サイトは複数の記憶コントローラを含み、各記憶コントローラはキャッシュ・メモリ、制御バッファ、及びトレース・バッファを含む。一次ホスト・プロセッサはレコード更新を発生するアプリケーションを走らせ、各レコード更新に対するＩ／Ｏオペレーションを、それに対するレコード更新を一時的に書き込むためにその複数の記憶コントローラに送る。又、一次ホストプロセッサはその複数の記憶コントローラからレコード更新を読み取るための一次データ・ムーバを含み、それらのレコード更新を自己記述レコード・セットのグループにアセンブルする。発生したエラー状態のタイプを表すエラー・コードをシステム・コンポーネントの１つから受ける時、データ・ムーバは、そのエラー状態に関連したシステム・コンポーネントに向けて「診断状態保管」チャネル・コマンド・ワード（ＣＣＷ）を発生し、その関連したシステム・コンポーネントにレコード更新の処理を一時的に中断させて障害情報を収集させる。障害情報はその「診断状態保管」ＣＣＷに従って相関する。
【００４９】
一次データ・ムーバは、その一次データ・ムーバ関連した障害情報を記憶するためのトレース待ち行列、一次データ・ムーバに読み込まれたレコード更新を管理するための制御セクション、及びそれらのレコード更新及び関連のヘッダを記憶するための複数のバッファを含む。複数の一次記憶コントローラからレコード更新を受けるために、複数の一次直接アクセス記憶装置（ＤＡＳＤ）がその一次記憶コントローラに結合される。自己記述レコード・セットのグループを受けるために二次データ・ムーバが結合され、「診断状態保管」ＣＣＷに応答する。二次データ・ムーバには二次ホスト・プロセッサが結合され、それも「診断状態保管」ＣＣＷに応答する。二次ホスト・プロセッサには複数の二次記憶コントローラが結合され、「診断状態保管」ＣＣＷに応答する。自己記述レコード・セットのグループを記憶するために、複数の二次ＤＡＳＤが設けられる。
【００５０】
本発明を、その好適な実施例を参照して詳細に示しそして説明したけれども、本発明の精神及び技術範囲から逸脱することなく、形式及び詳細における種々な変更を行うことが可能であることは当業者には明らかであろう。例えば、記憶装置はテープ或いは光学装置等であってもよい。従って、本発明の将来における実施例の変更も本願において教示したことから逸脱することなく行うことが可能である。
【００５１】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００５２】
（１）ホスト・プロセッサを含む分散したシステム・コンポーネントを有する記憶システムにして、前記ホスト・プロセッサはレコード更新を発生するソフトウエア・アプリケーションを走らせ、データ・ムーバを有し、且つ第１記憶コントローラに結合され、前記記憶システムにおいてエラー状態が生じた場合、前記データ・ムーバは前記分散したシステム・コンポーネント相互間の問題決定を調整するために機械に有効な方法を実行する記憶システムにおいて、
（ａ）前記ソフトウエア・アプリケーションによって発生されたレコード更新のためのＩ／Ｏオペレーションを生じるステップと、
（ｂ）前記生じたＩ／Ｏオペレーションに従って前記レコード更新を前記第１記憶コントローラにおいて記憶するステップと、
（ｃ）前記レコード更新と関連した制御情報を前記第１記憶コントローラにおいて維持するステップと、
（ｄ）前記レコード更新を遠隔的にコピーすることに備えて前記第１記憶コントローラから前記データ・ムーバに前記レコード更新及び関連した制御情報を読み込むステップと、
（ｅ）前記データ・ムーバにおける記憶システム・エラー状態を検出するステップと、
（ｆ）前記データ・ムーバから前記ホスト・プロセッサ及び前記第１記憶コントローラに診断状態保管チャネル・コマンド・ワード（ＣＣＷ）を発生するステップと、
（ｇ）前記ホスト・プロセッサ及び前記記憶コントローラにおいて障害情報を捕捉するステップと、
を含み、各システム・コンポーネントにおける前記障害情報は検出されたエラー状態に従って相関することを特徴とする方法。
（２）前記ステップ（ｆ）は、前記ステップ（ｇ）が完了するまでシステム環境を凍結するステップを含むことを特徴とする上記（１）に記載の方法。
（３）前記方法は、更に、
（ｈ）エラーの原因を決定するために障害情報を分析するステップ、
を含むことを特徴とする上記（２）に記載の方法。
（４）前記ステップ（ｅ）は、エラー・タイプを表すエラー・コードを前記データ・ムーバにおいて受け取るステップを含むことを特徴とする上記（２）に記載の方法。
（５）前記ステップ（ｇ）は、前記データ・ムーバにおける循環トレース・バッファにおいてホスト・プロセッサ障害情報を記憶するステップを含むことを特徴とする上記（２）に記載の方法。
（６）前記ステップ（ｇ）は、前記第１記憶コントローラにおける循環トレース・バッファにおいて第１記憶コントローラ障害情報を記憶するステップを含むことを特徴とする上記（２）に記載の方法。
（７）前記障害情報は、デバッギングを援助するためのハードウエア、ソフトウエア、及びマイクロコード制御ストラクチャを含むことを特徴とする上記（２）に記載の方法。
（８）前記ステップ（ｆ）は、前記診断状態保管ＣＣＷをリモート・ロケーションにおける第２記憶コントローラに発生するステップを含むことを特徴とする上記（２）に記載の方法。
（９）記憶システム・エラーに応答して多数のシステム・コンポーネントに跨って状態保管診断を組み合わせるためにデータ・ムーバ・アプリケーションを記憶するためのコンピュータ読取り可能な記憶媒体にして、前記システム・コンポーネントは直接アクセス記憶装置（ＤＡＳＤ）に対するソフトウエア・アプリケーションによって発生されるレコード更新を管理するための記憶コントローラに結合されたホスト・プロセッサを含む記憶媒体において、
前記ソフトウエア・アプリケーションにおいて発生されたレコード更新に対するＩ／Ｏオペレーションを生じさせるための手段と、
前記生じたＩ／Ｏオペレーションに従って前記レコード更新を前記記憶コントローラに記憶するための手段と、
前記レコード更新と関連した制御情報を前記記憶コントローラにおいて維持するための手段と、
前記レコード更新を遠隔的にコピーすることに備えて前記データ・ムーバに前記レコード更新及び関連した制御情報を読み込むための手段と、
記憶システム・エラー状態を検出し、前記エラー状態を前記データ・ムーバに通信するための検出手段と、
前記データ・ムーバから前記ホスト・プロセッサ及び前記記憶コントローラに診断状態保管チャネル・コマンド・ワード（ＣＣＷ）を発生するための状態保管手段と、
前記ホスト・プロセッサ及び前記記憶コントローラにおいて障害情報を捕捉するための捕捉手段と、
を含み、前記多数のシステム・コンポーネントのうちの各システム・コンポーネントにおける前記障害情報は検出されたエラー状態に従って相関することを特徴とするデータ・ムーバ・アプリケーション。
（１０）前記状態保管手段は、前記記憶コントローラのオペレーションと前記捕捉手段が障害情報の捕捉を完了するまで前記エラー状態と関連したソフトウエア・アプリケーションとを凍結することを特徴とする上記（９）に記載のデータ・ムーバ・アプリケーション。
（１１）前記検出手段は、前記エラー状態のエラー・タイプを表すエラー・コードを前記データ・ムーバにおいて受け取ることを特徴とする上記（９）に記載のデータ・ムーバ・アプリケーション。
（１２）前記捕捉手段は、前記データ・ムーバにおける循環トレース・バッファにおいてホスト・プロセッサ障害情報を記憶することを特徴とする上記（９）に記載のデータ・ムーバ・アプリケーション。
（１３）前記捕捉手段は、前記記憶コントローラにおける循環トレース・バッファにおいて記憶コントローラ障害情報を記憶することを特徴とする上記（１２）に記載のデータ・ムーバ・アプリケーション。
（１４）発生したエラー状態と関連したシステム・コンポーネント相互間で障害情報を調整するためのデータ記憶システムにして、前記システム・コンポーネントはレコード更新を記憶するための不揮発性記憶装置に結合された１つ又は複数の記憶コントローラを含むデータ記憶システムにおいて、
ソフトウエア・アプリケーションを走らせるホスト・プロセッサを含み、
前記ソフトウエア・アプリケーションはレコード更新を発生し且つ前記不揮発性記憶装置における通常の記憶のためのＩ／Ｏオペレーションを前記１つ又は複数の記憶コントローラに送るものであり、前記ホスト・プロセッサは前記１つ又は複数の記憶コントローラから前記レコード更新を読み取り、災害時回復のためのリモート記憶システムに送るために前記レコード更新をグループにアセンブルするためのデータ・ムーバを含むものであり、前記データ・ムーバは生じたエラー状態のタイプを表すエラー・コードを前記システム・コンポーネントの１つから受け取るものであり、前記データ・ムーバは障害情報を収集するために前記関連したシステム・コンポーネントにレコード更新の処理を一時的に中断させるための状態保管コマンドを前記関連したシステム・コンポーネントに発生するものであり、及び前記障害情報は状態保管コマンドに従ってシステム・コンポーネント相互間で相関するものであること、及び
前記データ・ムーバは、
前記データ・ムーバと関連した障害情報を記憶するためのトレース待ち行列と、
前記データ・ムーバに読み込まれたレコード更新を管理するための制御セクションと、
前記レコード更新及びそれらが関連するヘッダを記憶するための複数のバッファと、
を含むことを特徴とするデータ記憶システム。
（１５）前記データ・ムーバからレコード更新のグループを受けるように結合されたリモート・データ・ムーバを含むことを特徴とする上記（１４）に記載のデータ記憶システム。
（１６）前記不揮発性記憶装置は直接アクセス記憶装置（ＤＡＳＤ）であることを特徴とする上記（１４）に記載のデータ記憶システム。
（１７）前記リモート・データ・ムーバから記憶のためにレコード更新のグループを受けるように結合されたリモート・データ記憶システムを含み、
前記リモート・データ記憶システムは、前記リモート・データ記憶システムにおいてエラー状態が生じた時、前記状態保管コマンドに応答することを特徴とする上記（１５）に記載のデータ記憶システム。
（１８）前記リモート・データ記憶システムは、
リモート・ホスト・プロセッサと、
前記リモート・ホスト・プロセッサに結合されたリモート記憶コントローラと、
前記リモート記憶コントローラに結合され、前記レコード更新のグループを記憶するためのリモート不揮発性記憶装置と、
を含むことを特徴とする上記（１７）に記載のデータ記憶システム。
（１９）前記障害情報はソフトウエア、ハードウエア、及びマイクロコード制御ストラクチャを含むことを特徴とする上記（１４）に記載のデータ記憶システム。
（２０）データを処理するための一次サイト及び災害時回復のためにデータのコピーを受ける二次サイトと、ソフトウエア、ハードウエア、及びマイクロコード制御ストラクチャを組み込まれた分散システム・コンポーネントとを有し、発生した特定のエラー状態と関連した障害情報の前記分散システム・コンポーネント相互間における調整及び捕捉をトリガすることによってエラー・デバッギングを援助する災害時回復データ記憶システムにして、
各々がキャッシュ・メモリ、制御バッファ、及びトレース・バッファを有する複数の記憶コントローラと、
アプリケーションを走らせるホスト・プロセッサを含み、前記アプリケーションはレコード更新を発生し且つ前記レコード更新を複数の記憶コントローラに書き込むために各レコード更新に対するＩ／Ｏオペレーションを前記複数の記憶コントローラに送るものであり、前記ホスト・プロセッサは前記複数の記憶コントローラから前記レコード更新を読み取ってそれを自己記述レコード・セットのグループにアセンブルするための一次データ・ムーバを含むものであり、前記一次データ・ムーバは生じたエラー状態のタイプを表すエラー・コードを前記システム・コンポーネントの１つから受け取るものであり、前記一次データ・ムーバは障害情報を収集するために前記関連したシステム・コンポーネントにレコード更新の処理を一時的に中断させるための診断状態保管チャネル・コマンド・ワードを前記エラー状態と関連した分散システム・コンポーネントに向けて発生するものであり、前記障害情報は診断状態保管チャネル・コマンド・ワードに従って相関するものであることと、
前記複数の一次記憶コントローラに結合された複数の一次直接アクセス記憶装置（ＤＡＳＤ）と、
自己記述レコード・セットのグループを受けるように接続され、前記診断状態保管チャネル・コマンド・ワードに応答する二次データ・ムーバと、
前記二次データ・ムーバに記憶され、前記診断状態保管チャネル・コマンド・ワードに応答する二次ホスト・プロセッサと、
前記ホスト・プロセッサに結合され、前記診断状態保管チャネル・コマンド・ワードに応答する複数の二次記憶コントローラと、
前記自己記述レコード・セットのグループを記憶するための複数個の二次ＤＡＳＤと、
を含み、
前記一次データ・ムーバは、
前記一次データ・ムーバと関連した障害情報を記憶するためのトレース待ち行列と、
前記一次データ・ムーバに読み込まれたレコード更新を管理するための制御セクションと、
前記レコード更新及びそれらが関連するヘッダを記憶するための複数のバッファと、
を含むことを特徴とする災害時回復データ記憶システム。
【図面の簡単な説明】
【図１】一次サイト及び二次サイトを含むリモート・デュアル・コピー・システムを示すブロック図である。
【図２】図１に示されたリモート・デュアル・コピー・システムにおける記憶コントローラのブロック図である。
【図３】図２に示された記憶コントローラに含まれる記憶パス・プロセッサのブロック図である。
【図４】図２に示された記憶コントローラにおけるレコード更新のためのヘッダ・データ・ストラクチャを示す図である。
【図５】本発明の好適な実施例による一次サイト記憶システムのブロック図である。
【図６】本発明の好適な実施例に従って図５のシステム・コンポーネント相互間の障害情報を調整する方法を示すフローチャートである。
【図７】図６の方法を実行するコンピュータ命令を記憶するためのコンピュータ読み取り可能なメモリである。
【図１】
0003776982.tif 000002
【図２】
0003776982.tif 000003
【図３】
0003776982.tif 000004
【図４】
0003776982.tif 000005
【図５】
0003776982.tif 000006
【図６】
0003776982.tif 000007
【図７】
0003776982.tif 000008