(57)【要約】【課題】磁気ディスク装置に対する更新情報を常に履歴として残し、いかなる時に故障が発生しても常に精度の高いデータ回復を行うことができる外部記憶装置を提供する。【解決手段】ＨＤＤ装置を使用したシステムであって、ホストコンピュータ１０と、履歴保存用ＨＤＤ装置１１と、通常のデータ保存用ＨＤＤ装置１２〜１６などから構成され、ＦＣＡＬプロトコルのバケツリレー方式のデータ転送を利用し、ホストコンピュータ１０の直下に配置された履歴保存用ＨＤＤ装置１１により、その下流にある全てのデータ保存用ＨＤＤ装置１２〜１６に送信されてきた書き込みコマンドとデータを監視して更新履歴を保存し、故障が発生した場合に、一般的な方法で取得されたバックアップから一旦データを復元した後、更新履歴情報を使用して故障発生直前のデータを正確に復元する。【選択図】        図１
2004362111.tif 000002
【特許請求の範囲】
【請求項１】
ファイバチャネルプロトコルで接続された複数台の磁気ディスク装置を有する外部記憶装置であって、
前記複数台の磁気ディスク装置のうちの少なくとも１台は、前記複数台の磁気ディスク装置のそれぞれに送信されてきたフレームを監視し、更新履歴を自身の記憶媒体に自動的に取得する更新履歴保存モードを有することを特徴とする外部記憶装置。
【請求項２】
請求項１記載の外部記憶装置において、
前記複数台の磁気ディスク装置は、前記ファイバチャネルプロトコルでホストコンピュータと接続され、
前記更新履歴保存モードを有する磁気ディスク装置は、前記ホストコンピュータの直下のフレーム転送方向の下流に接続されていることを特徴とする外部記憶装置。
【請求項３】
請求項１記載の外部記憶装置において、
前記複数台の磁気ディスク装置は、前記ファイバチャネルプロトコルでホストコンピュータと接続され、
前記更新履歴保存モードを有する磁気ディスク装置は複数台からなり、前記複数台の更新履歴保存モードを有する磁気ディスク装置のうちの１台を停止させても、残りの前記更新履歴保存モードを有する磁気ディスク装置で前記外部記憶装置を動作させたまま更新履歴を連続して取得し続けることを特徴とする外部記憶装置。
【請求項４】
請求項１記載の外部記憶装置において、
前記複数台の磁気ディスク装置は、複数のグループに分けられて、前記ファイバチャネルプロトコルでホストコンピュータと接続され、
前記更新履歴保存モードを有する磁気ディスク装置は前記複数のグループに対応する複数台からなり、前記複数台の更新履歴保存モードを有する磁気ディスク装置はそれぞれ、前記複数のグループのそれぞれのフレーム転送方向の上流に接続されていることを特徴とする外部記憶装置。
【請求項５】
請求項１記載の外部記憶装置において、
前記更新履歴保存モードは、ホストコンピュータから受け取ったフレームを解析し、前記フレームのエラーを見つけた場合には前記フレームの一部を壊す機能を含むことを特徴とする外部記憶装置。
【請求項６】
請求項２、３、４または５記載の外部記憶装置において、
前記外部記憶装置に故障が発生した場合に、前記更新履歴保存モードを有する磁気ディスク装置に取得した更新履歴情報を使用して、前記ホストコンピュータから故障前に行われた書き込みコマンドを再発行し、故障前に行われた書き込みデータを再書き込みして前記複数台の磁気ディスク装置のデータを回復するデータ復元モードを有することを特徴とする外部記憶装置。
【請求項７】
請求項６記載の外部記憶装置において、
前記データ復元モードは、前記更新履歴保存モードを有する磁気ディスク装置に取得した更新履歴情報を使用してデータを回復する前に、前記複数台の磁気ディスク装置にそれぞれ格納されたデータを定期的に保存したバックアップデータで前記複数台の磁気ディスク装置のデータを回復する機能を含むことを特徴とする外部記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファイバチャネルプロトコル（ＦＣＰ：ｆｉｂｒｅ  ｃｈａｎｎｅｌ  ｐｒｏｔｏｃｏｌ）を用いた、ＦＣＡＬ（ｆｉｂｒｅ  ｃｈａｎｎｅｌ  ａｒｂｉｔｒａｔｅｄ  ｌｏｏｐ）インターフェースで接続された複数台の磁気ディスク装置を有する外部記憶装置に適用して有効な技術に関する。
【０００２】
【従来の技術】
本発明者が検討したところによれば、磁気ディスク装置を有する外部記憶装置に関しては、近年、磁気ディスク装置（ＨＤＤ（ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）装置）の大容量化に伴い、１台のＨＤＤ装置の故障によるデータ損失は看過し得ないほど大きなものになっており、故障発生時のデータ回復技術は今まで以上に重要になっている。
【０００３】
たとえば、ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ  ａｒｒａｙｓ  ｏｆ  ｉｎｅｘｐｅｎｓｉｖｅ  ｄｉｓｋｓ）システムなどの冗長構成によってデータ回復を図る技術は、複数台の同時故障に弱く、失われるデータの量を考慮するとさらなるデータ回復方法が求められる。
【０００４】
また、データ回復を図るための他の技術として、たとえば特許文献１のように定期的にバックアップを作成する方法がある。この特許文献１には、バックアップを取るために、通常のホストコンピュータとのＩ／Ｏとは別系の光ファイバケーブルによるループを設け、ホストコンピュータからの要求によってバックアップを作成する技術が開示されている。
【０００５】
【特許文献１】
特開平５−２１０４６６号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、前記のように定期的にバックアップを作成する技術では、故障が発生した際に前回バックアップを作成した時点にまでデータが戻ってしまい、完全なデータ回復方法とは言えない。しかも、大容量化したＨＤＤ装置のバックアップ作成には時間がかかり、頻繁に行うことはできない。よって、現実的な時間で、精度の高いデータ回復方法が求められている。
【０００７】
また、前記特許文献１の場合にも、完全にデータを再現するために必要なバックアップを常に保持しようとすると、ＨＤＤ装置に対して何らかの更新要求をする度にバックアップ作成の要求を行う必要がある。このように、何らかの更新の度にバックアップ要求を出すのは現実的ではなく、ある程度の期間をおいてバックアップを作成することになり、よって最後にバックアップを作成した時点から故障時点までのデータは失われる。
【０００８】
ところで、前記のようなデータ回復の技術としてのバックアップには、大きく分けて２つの方法が考えられる。
【０００９】
１つは、全データを定期的にバックップする方法である。この方法は、ＨＤＤ装置が大容量化しているため、膨大な量のバックアップ用記憶媒体を必要とする。また、バックアップ作成にかかる時間も大きなものとなるため、頻繁に行うことができず、データ回復時の精度を落とさざるを得ない。
【００１０】
もう１つは、ある時点での全データのバックアップを作成し、以降はそこからの差分のみをバックアップとして残していく方法である。ＨＤＤ装置へのデータ更新は、一般的にＨＤＤ媒体の全体に渡ることは少なく、一部分に集中する傾向があるので、全体のバックアップを取るよりも大幅な媒体容量とバックアップ時間の削減が図れる。ただし、データそのものの複製を残す前者の方法に比べ、データ回復に時間がかかる。
【００１１】
従って、ＨＤＤ装置の大容量化を考えると後者の方法が現実的である。しかし、その方法でも、バックアップは一定期間おきに行わざるをえず、その間に行われた更新データが失われるという問題は発生する。
【００１２】
そこで、本発明は、こうした問題を解決するため、ＨＤＤ装置などの磁気ディスク装置に対する更新情報を常に履歴として残し、いかなる時に故障が発生しても常に精度の高いデータ回復を行うことができる外部記憶装置を提供することを目的とするものである。
【００１３】
【課題を解決するための手段】
本発明は、ＦＣＡＬで接続された複数の磁気ディスク装置（ＨＤＤ装置）を有する外部記憶装置に適用され、特に故障が発生した場合のデータ回復を図るために、複数のＨＤＤ装置に対する更新履歴をホストコンピュータの介在なしに自動的に取得して保存することを特徴とするものである。
【００１４】
ＦＣＡＬプロトコルでは、ホストコンピュータと全てのＨＤＤ装置はファイバーケーブルで環状に接続され、ループと呼ばれる系を構成する。このループにおいて、データの転送方向は単一である。ホストコンピュータからＨＤＤ装置へ送信されるデータ、ＨＤＤ装置からホストコンピュータに送信されるデータは、ループ上にあるＨＤＤ装置を順に介してバケツリレー方式で転送される。
【００１５】
この時のデータ転送単位をフレームと呼ぶ。このフレームには、送信先のＨＤＤ装置のＩＤが格納されている。ＨＤＤ装置は、そのＩＤを見て自分宛てのフレームを受け取ったらそのフレームを取り込み、下流のＨＤＤ装置へのリレーを行わないことでデータ転送を完了させる。
【００１６】
このように、バケツリレー方式でデータ転送を行うため、ホストコンピュータから送信されたフレームは必ず全てのＨＤＤ装置を経由することになる。本発明は、この特徴を利用して、ループ上にある少なくとも１台のＨＤＤ装置に更新履歴の保存を行うものである。
【００１７】
たとえば、ホストコンピュータの直下の下流に更新履歴保存用のＨＤＤ装置を配置する。このＨＤＤ装置は、通常の書き込みコマンドを受け付けない履歴保存専用とする。このＨＤＤ装置は、ホストコンピュータから送信された全てのフレームを監視し、全ての書き込みコマンドと書き込みデータを自身のＨＤＤ媒体に記録する。この場合に、履歴保存用ＨＤＤ装置は、何のトリガーもなくても記録し続け、データの流れをせき止めないので、システム稼働中の性能劣化を招くこともない。
【００１８】
また、履歴保存用ＨＤＤ装置は、万一のために、１日単位などの一定期間毎にテープなどの低速大容量媒体にコピーを取り保存する。これに備えて、同様の機能を持つ履歴保存用ＨＤＤ装置を複数台用いることで、１台を停止させても、残りの履歴保存用ＨＤＤ装置で、システムを動作させたまま更新履歴を連続して取得し続けることができる。
【００１９】
もし、故障が発生した場合、一般的な方法で取得されたバックアップから一旦データを復元する。しかし、このままでは故障直前に書き込まれたデータの復元が行われない。ここで、本発明の履歴情報を使用し、ホストコンピュータから故障前に行われた書き込みを再発行する。この履歴情報には、書き込みに必要な全ての情報を残してあるので、故障前に行われた書き込みを完全に正確に再現することができる。
【００２０】
すなわち、実際の運用では、一般的なバックアップ取得方法で一定期間毎に大まかなバックアップを作成しておき、バックアップ間に故障が発生した際に備えて本発明の方法で更新履歴を作成し、実際に故障が発生した時に、この履歴情報を使用して正確なデータ回復を図るという方法が取られる。
【００２１】
このように更新履歴保存用のＨＤＤ装置に履歴情報を残しておけば、いかなる時期にドライブ故障などの事故が発生しても、事故が起こる直前のデータを復旧することができるため、従来より正確なデータ復旧を行うことができる。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００２３】
まず、図１により、本発明の一実施の形態の外部記憶装置を含むシステムの一例の構成を説明する。図１は外部記憶装置を含むシステムの構成図を示す。
【００２４】
本実施の形態の外部記憶装置を含むシステムは、たとえば磁気ディスク装置の一例としてのＨＤＤ装置を使用したシステムとされ、ホストコンピュータ１０と、このホストコンピュータ１０の直下に配置される履歴保存用ＨＤＤ装置１１と、通常のデータ保存用ＨＤＤ装置１２〜１６と、定期的なバックアップを取得するＭＴ（ｍａｇｎｅｔｉｃ  ｔａｐｅ）装置１７などから構成される。履歴保存用ＨＤＤ装置１１およびデータ保存用ＨＤＤ装置１２〜１６は、ホストコンピュータ１０の外部記憶装置として設けられている。
【００２５】
このシステムにおいて、ホストコンピュータ１０と全てのＨＤＤ装置（履歴保存用ＨＤＤ装置１１、データ保存用ＨＤＤ装置１２〜１６）、ＭＴ装置１７はファイバーケーブル１８で接続され、ＦＣＡＬプロトコルに基づいたループを構成する。また、データの転送方向は、ホストコンピュータ１０→履歴保存用ＨＤＤ装置１１→データ保存用ＨＤＤ装置１２→・・・→データ保存用ＨＤＤ装置１６→ＭＴ装置１７の方向であり、それぞれ自身の記憶媒体に取り込む必要がないときはスルー状態となっている。
【００２６】
履歴保存用ＨＤＤ装置１１は、データ保存用ＨＤＤ装置１２〜１６への更新履歴を保存する用途専用であり、通常の書き込みコマンドは受け付けない。ただし、更新履歴保存用として使用するか、通常のデータ保存用として使用するかはコマンドによって切り替えられ、更新履歴保存用として使用する場合には更新履歴保存モードに設定される。
【００２７】
この履歴保存用ＨＤＤ装置１１は、更新履歴保存モードにおいて、ホストコンピュータ１０から、全てのデータ保存用ＨＤＤ装置１２〜１６に発行される全てのフレームを監視する機能を備えている。ホストコンピュータ１０から発行される全てのコマンドフレームは、必ず履歴保存用ＨＤＤ装置１１を経由するので、フレームを監視することは可能である。さらに、フレームの監視において、書き込みコマンドのフレームおよび書き込みデータのフレームを見つけた場合、そのコマンド／データの情報を自動的に取得して自身のＨＤＤ媒体に記録する機能を持っている。
【００２８】
次に、図２により、更新履歴情報のフォーマットの一例を説明する。図２は更新履歴情報のフォーマットの説明図を示す。
【００２９】
更新履歴情報のフォーマットには、履歴情報ヘッダＩＤ２０、データ種別２１、データ長２２、フレームヘッダ２３、Ｒｅｓｅｒｖｅｄ、フレーム本体２４などのフィールドが設けられている。履歴保存用ＨＤＤ装置１１が、更新履歴保存モードにおいて、書き込みコマンドのフレームを見つけた場合、このフォーマットの更新履歴情報を自身のＨＤＤ媒体に記録する。
【００３０】
履歴情報ヘッダＩＤ２０は、履歴情報データの先頭であることを示すＩＤである。文字列で’ＢＡＣＫＵＰＨＥＡＤＥＲＩＤ    ’と入る（末尾２文字は空白）。履歴情報よりデータを回復する際のデータ検索に利用される。
【００３１】
データ種別２１は、この情報の種別を示す。書き込みコマンドの場合、文字列で’ＣＯＭＭＡＮＤ’と入る。書き込みデータの場合’ＤＡＴＡ’と入る。
【００３２】
データ長２２は、フレーム本体２４のバイト数を示す。書き込みコマンドの場合、フレーム本体２４は３２バイトであるので、データ長２２には２０ｈと格納される。
【００３３】
フレームヘッダ２３には、ＦＣＡＬプロトコルで定められたフレームヘッダが格納される。ＦＣＡＬプロトコルにおけるフレームは、フレームヘッダ２３とフレーム本体２４から構成される。フレームヘッダ２３には、その後に続くフレームの内容、送信元ＩＤ、送信先ＩＤ、複数のフレームに分割される場合のシーケンスＩＤなどが格納される。
【００３４】
フレーム本体２４は、フレームヘッダ２３に続いて転送されるフレーム本体を格納する。書き込みコマンドの場合はＦＣＡＬプロトコルで定められた形式のフレーム、書き込みデータである場合にはデータ列そのものが本エリアに格納される。
【００３５】
次に、図３により、ＦＣＡＬプロトコルにおけるフレームヘッダのフォーマットの一例を説明する。図３はＦＣＡＬプロトコルにおけるフレームヘッダのフォーマットの説明図を示す。
【００３６】
ＦＣＡＬプロトコルにおけるフレームヘッダのフォーマットには、ｗｏｒｄ０のｂｉｔ３１−２４にＲ＿ＣＴＬ３０、ｂｉｔ２３−０にＤ＿ＩＤ３１のフィールドが設けられ、同様に、ｗｏｒｄ１のｂｉｔ３１−２４にＣＳ＿ＣＴＬ、ｂｉｔ２３−０にＳ＿ＩＤ３２、ｗｏｒｄ２のｂｉｔ３１−２４にＴＹＰＥ、ｂｉｔ２３−０にＦ＿ＣＴＬ、ｗｏｒｄ３のｂｉｔ３１−２４にＳＥＱ＿ＩＤ、ｂｉｔ２３−１６にＤＦ＿ＣＴＬ、ｂｉｔ１５−０にＳＥＱ＿ＣＮＴ、ｗｏｒｄ４のｂｉｔ３１−１６にＯＸ＿ＩＤ３３、ｂｉｔ１５−０にＲＸ＿ＩＤ、ｗｏｒｄ５のｂｉｔ３１−０にＰａｒａｍｅｔｅｒｓなどのフィールドがそれぞれ設けられている。本実施の形態で使用しないパラメータについては、詳細な説明を省略する。
【００３７】
Ｒ＿ＣＴＬ３０は、フレームの種別を示す。書き込みコマンドの場合は０Ｃｈ、書き込みデータの場合は０１ｈが格納される。
【００３８】
Ｄ＿ＩＤ３１は、フレームの送信先を示すＩＤである。このＩＤはループを構成する全ての機器を一意に特定できるＩＤである。この情報により、記録された履歴情報がどのデータ保存用ＨＤＤ装置１２〜１６に対して送信されたコマンドまたはデータであるかが分かる。
【００３９】
Ｓ＿ＩＤ３２は、フレームの送信元を示すＩＤである。本発明ではホストコンピュータ１０からデータ保存用ＨＤＤ装置１２〜１６への書き込み動作を監視し、記録するものであるので、Ｓ＿ＩＤ３２はホストコンピュータ１０のもののみ監視対象となる。
【００４０】
ＯＸ＿ＩＤ３３は、一連のコマンドシーケンスであることを特定するためのＩＤである。書き込みコマンドの場合、コマンドフレームとそれに続く１個以上のデータフレームが送信される。この場合、コマンドフレームとそれに続く全てのデータフレームには同一のＯＸ＿ＩＤ３３が格納される。あるＯＸ＿ＩＤ３３を使用したコマンドシーケンスが終わるまで、他のコマンドシーケンスはそのＯＸ＿ＩＤ３３を使用することができない。
【００４１】
次に、図４により、本実施の形態の外部記憶装置を含むシステムにおいて、このシステムが通常運用する場合の一例のフローを説明する。図４は通常運用の場合のフロー図を示す。
【００４２】
処理ステップＳ１００で、通常のリード／ライト動作において、ホストコンピュータ１０からデータ保存用ＨＤＤ装置１２〜１６へのデータの書き込み処理、データ保存用ＨＤＤ装置１２〜１６からホストコンピュータ１０へのデータの読み出し処理を行う。
【００４３】
処理ステップＳ１０１では、ステップＳ１００においてデータの書き込み処理の場合に、履歴保存用ＨＤＤ装置１１は、更新履歴保存モードにおいて、書き込みコマンドおよび書き込みデータの更新履歴情報報を自動的に取得して、自身のＨＤＤ媒体に記録して保存する。この処理の詳細については、図５において後述する。
【００４４】
条件判定ステップＳ１０２では、システムに異常が発生していないかどうかを判定する。異常が発生していない場合（Ｎｏ）には、次の条件判定ステップＳ１０３で、定期的にバックアップを取得する期間、たとえば前回のバックアップを取った日から１ヶ月が経過したか否かを判定し、１ヶ月が経過していない場合（Ｎｏ）にはステップＳ１００からの処理に戻る。
【００４５】
もし、１ヶ月が経過した場合（Ｙｅｓ）には、処理ステップＳ１０４で、データ保存用ＨＤＤ装置１２〜１６に記憶されているデータのバックアップを取り、ＭＴ装置１７に１ヶ月毎の定期的なバックアップデータとして保存する。
【００４６】
この定期的なバックアップデータを保存した後に、この時点までの更新履歴情報は不要となるので、処理ステップＳ１０５において、履歴保存用ＨＤＤ装置１１のＨＤＤ媒体をリセットする。その後、ステップＳ１００からの処理に戻る。
【００４７】
前記条件判定ステップ１０２において、システムに異常が発生した場合（Ｙｅｓ）は、データ復元モードにおいて、条件判定ステップＳ１０６で、定期的にバックアップを取得しているＭＴ装置１７の最新の１ヶ月のバックアップデータを用いて、全てのデータ保存用ＨＤＤ装置１２〜１６のＨＤＤ媒体のデータを最新の１ヶ月前まで復元する。
【００４８】
その後、履歴保存用ＨＤＤ装置１１の更新履歴情報を使用し、ホストコンピュータ１０から１ヶ月前から故障前までに行われた書き込みコマンドを再発行し、１ヶ月前から故障前までに行われた書き込みデータを再書き込みして、全てのデータ保存用ＨＤＤ装置１２〜１６のＨＤＤ媒体のデータを復元する。これにより、故障直前の状態にデータ保存用ＨＤＤ装置１２〜１６のＨＤＤ媒体のデータを復元することができる。
【００４９】
次に、図５により、履歴保存用ＨＤＤ装置が更新履歴情報を取得する場合の一例のフローを説明する。図５は履歴保存用ＨＤＤ装置が更新履歴情報を取得する場合のフロー図を示す。
【００５０】
処理ステップＳ２００で、何らかのフレームを受領する。履歴保存用ＨＤＤ装置１１は全てのフレームを一旦取り込み、以下の処理を行った後に下流のデータ保存用ＨＤＤ装置１２〜１６へ転送する。
【００５１】
条件判定ステップＳ２０１で、フレームのエラーを解析する。エラーを見つけた場合（Ｙｅｓ）は、ステップＳ２０２の処理に進み、フレームを故意に壊す。たとえば、ＣＲＣの部分に１１１・・・や０００・・・などを書いて、フレームを壊す方法などがある。これは、履歴保存用ＨＤＤ装置１１はエラーを検出したが、フレームの本来の行き先であるデータ保存用ＨＤＤ装置１２〜１６はエラーを検出しなかった場合、書き込みは行われるが履歴は残らず、履歴を正しく保存できないため、故障発生時のデータ回復が正しく行えなくなることを防ぐためである。
【００５２】
前記ステップＳ２００で何らかのフレームを受領した場合、条件判定ステップＳ２０３で、ホストコンピュータ１０からのフレームを受領したかどうかを判定する。ホストコンピュータ１０以外であった場合（Ｎｏ）は、ホストコンピュータ１０からデータ保存用ＨＤＤ装置１２〜１６に対する書き込みではないので、下流にフレームをそのまま転送し、フレーム待ち状態に戻る。
【００５３】
ホストコンピュータ１０からのフレームであった場合（Ｙｅｓ）、次に条件判定ステップＳ２０４で、フレームの種別を判定する。種別はフレームヘッダ２３のＲ＿ＣＴＬ３０で判定する。コマンドの場合は０Ｃｈ、データの場合は０１ｈが格納されている。
【００５４】
Ｒ＿ＣＴＬ３０が０１ｈで、データであると判別した場合は処理ステップＳ２０６に進み、データ種別２１に’ＤＡＴＡ’と設定し、処理ステップＳ２０８に進む。
【００５５】
Ｒ＿ＣＴＬ３０が０Ｃｈで、コマンドであると判別した場合は、コマンド種別の判定ステップＳ２０５に進む。コマンド種別はフレーム本体２４から判別する。書き込みコマンドであると判別した場合（Ｙｅｓ）、処理ステップＳ２０７に進み、データ種別２１に’ＣＯＭＭＡＮＤ’と設定し、処理ステップＳ２０８に進む。書き込み以外のコマンドであると判別した場合（Ｎｏ）は、フレーム待ち状態に戻る。
【００５６】
Ｒ＿ＣＴＬ３０が、０１ｈでも０Ｃｈでもなかった場合は、書き込みに関係するフレームではないと判別し、下流にフレームをそのまま転送し、フレーム待ち状態に戻る。
【００５７】
処理ステップＳ２０８に進んだ場合、受領したフレーム本体２４のフレーム長をデータ長２２のフィールドへ設定する。その後、処理ステップＳ２０９に進み、受け取ったフレームヘッダ２３、フレーム本体２４を前記図２の形式に配置し、自身のＨＤＤ媒体へ書き込む。この書き込みを行う位置は、前回履歴を書き込んだ位置の続きの位置である。この際に、履歴の書き込み処理を高速化するため、並べ替えなどの処理は行わない。
【００５８】
このようにして、ホストコンピュータ１０からデータ保存用ＨＤＤ装置１２〜１６へ発行された全ての書き込みコマンドについての履歴情報が履歴保存用ＨＤＤ装置１１に作成される。データ保存用ＨＤＤ装置１２〜１６の内のどれかがいかなる時点で故障しても、履歴情報からデータの復元を行うことができる。
【００５９】
続いて、故障が発生した場合のデータ復元方法を詳細に説明する。このデータ復元方法は、システムのデータ復元モードにおいて実施される。
【００６０】
前記図５の手順で取得するのは詳細な書き込み履歴情報であるので、過去のある時点での状態に一旦戻して回復することが必要になる。過去のある時点の状態に戻すには、前記図４に示すステップＳ１０４のように、従来からある一般的な方法で定期的に取得されたバックアップを使用する。ただし、ドライブ使用開始時からの全ての履歴情報を保存しておけば、バックアップを使用する必要はないが、回復に時間がかかり、履歴情報も膨大になるため、前述したように、たとえば１ヶ月毎などに定期的にバックアップを取るのが現実的である。
【００６１】
一旦、過去のある時点の状態に戻したら、専用の履歴再現ツールを用い、履歴情報を読み込みつつ、ホストコンピュータ１０よりデータ保存用ＨＤＤ装置１２〜１６へ過去に行われたのと全く同じ書き込みを再現する。この履歴再現ツールは、以降の手順で履歴の再現を行う。
【００６２】
履歴情報より、履歴情報ヘッダＩＤ２０を探す。正しく作成された履歴情報ならば、履歴情報の先頭が履歴情報ヘッダＩＤ２０となっている。見つかったら、データ種別２１により行う処理を決める。正しく作成された履歴情報ならば、先頭のデータのデータ種別２１は’ＣＯＭＭＡＮＤ’となっている。
【００６３】
書き込みコマンドの履歴情報を見つけたら、それに続くデータの履歴情報を検索する。検索には、ＯＸ＿ＩＤ３３を用いる。一連の書き込みコマンドとそのデータ列は同一のＯＸ＿ＩＤが用いられ、その書き込みコマンドが完了するまではユニークな値であるので、同一のＯＸ＿ＩＤ３３の履歴情報を検索すれば、全てのライトデータを見つけることができる。
【００６４】
データの終了は、書き込みコマンドのフレーム本体２４に格納されたＣＤＢのデータ長より判定する。ＣＤＢとはＳＣＳＩで規定されたコマンド内容を示すデータ列で、書き込みコマンドの場合は図６の形式となる。データ長はｂｙｔｅ７〜ｂｙｔｅ８に格納されている。
【００６５】
書き込みコマンドとデータを共に検索したら、その情報を元にかつて発行されたものと同一の書き込みコマンドを対象のデータ保存用ＨＤＤ装置１２（１３〜１６）に対して発行する。対象のデータ保存用ＨＤＤ装置１２（１３〜１６）は、Ｄ＿ＩＤ３１より判別できる。コマンドのＣＤＢは、履歴情報にあるものと同一のものを使用する。
【００６６】
１つの書き込みコマンドの再現を終了したら、次のコマンドの検索、データの検索、書き込みコマンドの発行の処理を繰り返していき、履歴情報にある全ての書き込みコマンドの再現を終了したら、データ保存用ＨＤＤ装置１２〜１６のＨＤＤ媒体のデータは全て再現されたことになる。
【００６７】
なお、万一のために、履歴保存用ＨＤＤ装置１１のデータは、たとえば１日程度の期間をおいたら低速大容量の記憶媒体にデータを退避することも可能である。この場合、図７において後述するように、退避中はスペアの履歴保存用ＨＤＤ装置を代わりに接続することで、システムを継続して使用することができる。
【００６８】
次に、図７により、更新保存用ＨＤＤ装置を冗長構成としたシステムの一例の構成を説明する。図７は２台の更新保存用ＨＤＤ装置を使用したシステムの構成図を示す。
【００６９】
更新保存用ＨＤＤ装置を冗長構成としたシステムでは、ファイバーケーブル１８によるループ上に履歴保存用ＨＤＤ装置１１，４１を複数台（図では２台）接続し、動作中の履歴保存用ＨＤＤ装置には履歴情報が格納されるようにし、動作中でない履歴保存用ＨＤＤ装置はスルー状態となっている。さらに、ファイバーケーブル１８によるループ上には、履歴保存用ＨＤＤ装置１１，４１のＨＤＤ媒体のデータを退避させるためのＭＴ装置４２も接続されている。
【００７０】
たとえば、このうちの１台の履歴保存用ＨＤＤ装置１１のＨＤＤ媒体のデータをＭＴ装置４２に退避させるために、この履歴保存用ＨＤＤ装置１１を停止させても、残りの履歴保存用ＨＤＤ装置４１を動作させることで、システムを動作させたまま更新履歴を連続して取得し続けることができる。
【００７１】
また、１つのシステムで多数のデータ保存用ＨＤＤ装置を使う場合、更新保存用ＨＤＤ装置の容量が不足する恐れがある。この場合は、図８において後述するように、データ保存用ＨＤＤ装置の数に対応して更新保存用ＨＤＤ装置の数を増やすことで解決することができる。
【００７２】
次に、図８により、データ保存用ＨＤＤ装置の数に対応して履歴保存用ＨＤＤ装置を複数台用いたシステムの一例の構成を説明する。図８は１５台のデータ保存用ＨＤＤ装置に対応して３台の履歴保存用ＨＤＤ装置を使用したシステムの構成図を示す。
【００７３】
このシステムでは、１５台のデータ保存用ＨＤＤ装置を３つのＨＤＤグループに分けて、各ＨＤＤグループがそれぞれ５台ずつのデータ保存用ＨＤＤ装置１２〜１６，５２〜５６，６２〜６６で構成される。各ＨＤＤグループに対応して、その更新履歴を残すための履歴保存用ＨＤＤ装置１１，５１，６１を各ＨＤＤグループの上流に配置する。
【００７４】
履歴保存用ＨＤＤ装置１１は、第１のＨＤＤグループに属する全てのデータ保存用ＨＤＤ装置１２〜１６の更新履歴を取得する。同様に、履歴保存用ＨＤＤ装置５１は第２のＨＤＤグループ、履歴保存用ＨＤＤ装置６１は第３のＨＤＤグループのそれぞれの更新履歴を取得する。これにより、多数のデータ保存用ＨＤＤ装置を使用して履歴保存用ＨＤＤ装置の容量が不足することに対しても、履歴保存用ＨＤＤ装置の数を増やすことで対応することができる。
【００７５】
従って、本実施の形態によれば、ＦＣＡＬプロトコルのバケツリレー方式のデータ転送を利用し、ホストコンピュータ１０の直下にデータの更新履歴保存専用の履歴保存用ＨＤＤ装置１１を配置し、この履歴保存用ＨＤＤ装置１１が下流にあるデータ保存用ＨＤＤ装置１２〜１６に送信された全ての書き込みコマンドとデータを監視し、自身のＨＤＤ媒体にホストコンピュータ１０の介在なしに自動的に記録して保存することにより、システム動作中の詳細な更新記録を取得できるので、いかなる時にシステムに故障が発生しても、発生直前のデータを正確に復元することができる。
【００７６】
また、履歴保存用ＨＤＤ装置１１，４１を複数台用いる場合には、１台を停止させても、残りの履歴保存用ＨＤＤ装置を用いて、システムを動作させたまま更新履歴を連続して取得し続けることができる。
【００７７】
また、データ保存用ＨＤＤ装置１２〜１６，５２〜５６，６２〜６６を複数台用いる場合には、これに対応して履歴保存用ＨＤＤ装置１１，５１，６１を複数台用いることで、多数のデータ保存用ＨＤＤ装置の更新履歴を取得することができる。
【００７８】
また、履歴保存用ＨＤＤ装置１１（４１，５１，６１）がフレームのエラーを見つけた場合には、フレームを故意に壊すことで、故障発生時のデータ回復が正しく行えなくなることを防ぐことができる。
【００７９】
なお、本実施の形態においては、磁気ディスク装置の一例としてＨＤＤ装置を使用したシステムを例に説明したが、これに限定されるものではなく、他の磁気ディスクを記憶媒体とする磁気ディスク装置を使用したシステム全般に広く適用することができる。
【００８０】
【発明の効果】
本発明によれば、システム動作中に、前回のバックアップからの詳細な更新履歴をホストコンピュータの介在なしに自動的に取得して残すことにより、いかなる時にシステムの故障が発生しても故障直前のデータを正確に復元することができるので、常に精度の高いデータ回復を行うことが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施の形態の外部記憶装置を含むシステムの一例を示す構成図である。
【図２】本発明の一実施の形態において、更新履歴情報のフォーマットの一例を示す説明図である。
【図３】本発明の一実施の形態において、ＦＣＡＬプロトコルにおけるフレームヘッダのフォーマットの一例を示す説明図である。
【図４】本発明の一実施の形態において、システムが通常運用する場合の一例を示すフロー図である。
【図５】本発明の一実施の形態において、履歴保存用ＨＤＤ装置が更新履歴情報を取得する場合の一例を示すフロー図である。
【図６】本発明の一実施の形態において、書き込みコマンドの形式の一例を示す説明図である。
【図７】本発明の一実施の形態において、更新保存用ＨＤＤ装置を冗長構成としたシステムの一例を示す構成図である。
【図８】本発明の一実施の形態において、データ保存用ＨＤＤ装置の数に対応して更新保存用ＨＤＤを複数台用いたシステムの一例を示す構成図である。
【符号の説明】
１０…ホストコンピュータ、１１，４１，５１，６１…履歴保存用ＨＤＤ装置、１２〜１６，５２〜５６，６２〜６６…データ保存用ＨＤＤ装置、１７，４２…ＭＴ装置、１８…ファイバーケーブル、２０…履歴情報ヘッダＩＤ、２１…データ種別、２２…データ長、２３…フレームヘッダ、２４…フレーム本体、３０…Ｒ＿ＣＴＬ、３１…Ｄ＿ＩＤ、３２…Ｓ＿ＩＤ、３３…ＯＸ＿ＩＤ。
【図１】
2004362111.tif 000003
【図２】
2004362111.tif 000004
【図３】
2004362111.tif 000005
【図４】
2004362111.tif 000006
【図５】
2004362111.tif 000007
【図６】
2004362111.tif 000008
【図７】
2004362111.tif 000009
【図８】
2004362111.tif 000010