(57)【要約】【課題】磁気ディスク装置におけるＡＴＩを抑制することが出来る。【解決手段】上位からのリードコマンドやライトコマンドなどがある一定時間無かった時、接続されている全ての磁気ディスク装置に対して同時にバックグランド動作で全データエリアのリードチェックを実施し、リードチェック中に接続されている１台の磁気ディスク装置において、一部のエリアでリードエラーが発生すると、接続されている正常な磁気ディスク装置の同一エリアに書き込まれているデータを読み出し、リードエラーが発生した磁気ディスク装置の同一エリアにデータを再書き込みすることで、書き込まれているデータを自動修復する。【選択図】図１
2013130995.tif 000002
【特許請求の範囲】
【請求項１】
複数の磁気ディスク装置と、複数の磁気ディスク装置を接続してミラーリングを構築、制御するミラーリングコントローラ部と、ミラーリングコントローラ部を制御するホスト部とを備えたシステムにおいて、
バックグランド動作で、接続されている複数の磁気ディスク装置に対して同時にリードチェックを実行することを特徴とするＡＴＩ防止機能。
【請求項２】
前記ＡＴＩ防止機能において、ミラーリングコントローラ部はリードチェックによりリードエラーとなった片側の磁気ディスク装置の一部のエリアに対して、正常な磁気ディスク装置から同一エリアのデータを読み出してリードエラーとなった片側の磁気ディスク装置の該当エリアにデータをコピーすることを特徴とするＡＴＩ防止機能。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気ディスク装置を複数台接続したミラーリング構成のシステムにおいて、接続されている磁気ディスク装置の、同一トラックに対する高頻度のデータ書き込みによって引き起こされる、隣接トラックのデータ破壊を防止する技術に関する。
【背景技術】
【０００２】
パソコン、家庭用レコーダー、産業用システムなどの計算機関連のシステムには、磁気ディスク装置が多用されている。
【０００３】
近年、この磁気ディスク装置は、小型化、大容量化が求められており、この要求に応えるための一つの手段として、磁気ディスク媒体のトラック間隔（トラックピッチ）を狭めて磁気ディスク媒体の記録密度の向上が図られている。
【０００４】
しかし、磁気ディスク媒体の記録密度向上による記憶容量の増加がすすむにつれて、ＡＴＩ（Ａｄｊａｃｅｎｔ  Ｔｒａｃｋ  Ｉｎｔｅｒｆｅｒｅｎｃｅ：隣接トラック間干渉）が発生する懸念が高くなってきている。
【０００５】
ＡＴＩとは、磁気ディスク媒体へのデータ書き込み時、同一のトラックに対して頻繁にデータを書き込むことで、データを書き込む対象のトラックと隣接しているトラックへ、磁気ヘッド側面からの漏れ磁束の影響を受けることをさす。
【０００６】
この影響を何度も受け続けることで、隣接しているトラックのデータは徐々に侵食され、最終的には異常なデータに書き替えられてしまいデータが破壊され、磁気ディスク装置の故障を招く。
【０００７】
例えば、計算機関連システムのログファイルのような情報は、データ処理などの動作時に磁気ディスク媒体に書き込まれる。
【０００８】
この時、同じログファイルを何度も上書き更新するため、必然的に磁気ディスク媒体上の同一トラックへの高頻度の書き込み動作が行われる。
【０００９】
ログファイルが書き込まれているトラックに隣接するトラックに書き込まれているデータは、磁気ヘッドの漏れ磁束の影響を受け、データ破壊に至る。
【００１０】
このＡＴＩへの対策として、磁気ディスク装置内部で磁気ディスク媒体の同一トラックに書き込む動作をカウントし、設定された閾値に達したとき、該当トラックに隣接する両隣のトラックのデータを読み出し、そのデータを書き込み直すデータのリフレッシュ機能が知られている。
【００１１】
例えば、閾値３００００回の磁気ディスク装置にて、あるアドレスの書き込み回数が３００００回に達した時、両隣のトラックよりデータを読み出し、その読み出したデータを同じアドレスに再度書き込む。
【００１２】
こうすることで、磁気ディスク装置内部でＡＴＩからデータ保護している。
【００１３】
記憶装置のデータを保護する手段として、ＲＡＩＤが知られている。
【００１４】
ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ、またはＲｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）は、複数の磁気ディスク装置を組み合わせて仮想的な１台の磁気ディスク装置として運用する。
【００１５】
その中のＲＡＩＤ１（ミラーリング機能）は、複数の磁気ディスク装置をミラーリングの制御を可能とするミラーリングコントローラに接続し、接続されている複数の磁気ディスク装置に全く同じデータを同時に書き込む方式である。
【００１６】
こうすることで、片側の磁気ディスク装置が破損しても、正常に動作しているもう片側の磁気ディスク装置からデータを読み出せるため、システムとしてデータを保護することが出来る。
【００１７】
このミラーリングを用いたシステムにおいて、データ保護の方法の一つとして、特許文献１が提案されている。
【００１８】
特許文献１の中で、ミラーリングコントローラに接続された二台の磁気ディスク装置において、片側をマスタ、もう片側をミラーと設定し、通常マスタ側からデータを読み出し、読み出しに失敗した場合、ミラー側からマスタ側への書き直し処理を行う機能が記載されている。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００９−１５１６８１号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
前記従来例の、磁気ディスク装置内部のリフレッシュ機能では、ＡＴＩへの対策としては十分ではない。
【００２１】
磁気ディスク媒体は、トラックピッチが一定ではなく若干のばらつきがあり、トラックピッチが広い箇所、狭い箇所がある。
【００２２】
頻繁に書き込まれているトラックに隣接するトラックのトラックピッチが狭かった場合、磁気ディスク装置内で設定された閾値に達する前に、ＡＴＩの侵食がすすんでしまい、データの書き直し動作の最初の読み込み動作の時点でデータが読み出せないほど、既にデータが破壊されていることがある。
【００２３】
また、特許文献１に記載されている書き直し方法は、片側ずつの磁気ディスク装置しかデータの読み出しが行われないため、同じ箇所に頻繁にデータ書き込みされ、隣接するトラックが徐々に侵食されているような場合、ＡＴＩによってデータが正常に読み出せず書き直しを実施しようとした時には、既にもう片側の磁気ディスク装置も同じようにＡＴＩによるデータ破壊が起きており、データの読み出しが出来ないことが考えられ、ＡＴＩの対策としては十分ではない。
【００２４】
さらに、書き直しが行われるタイミングがホストからのコマンド処理でリードエラーとなった時に実施されるもので、ＡＴＩが起こっている範囲が広かった時、または複数箇所でＡＴＩが起こっている時その都度書き直しが発生してしまい、システムパフォーマンスを落としてしまうことが考えられる。
【課題を解決するための手段】
【００２５】
前述の目的を達成するために、本発明は、複数の磁気ディスク装置と、複数の磁気ディスク装置を接続してミラーリングを構築、制御するミラーリングコントローラと、ミラーリングコントローラを制御するホスト部を備えたシステムで、前記ミラーリングコントローラは前記ホスト部からのリードコマンドやライトコマンドなどがある一定時間無かった時、例えば接続されている磁気ディスク装置が二台であった場合、この二台の磁気ディスク装置に対して、ミラーリングコントローラ制御にてバックグランド動作で二台同時に全データエリアに対してリードチェックを実施し、リードチェック中に二台の磁気ディスク装置の内の一台の磁気ディスク装置において、ある一部のエリアでリードエラーが発生すると、前記ミラーリングコントローラは二台の磁気ディスク装置の内のもう一つの正常な磁気ディスク装置の同一エリアに書き込まれているデータを読み出し、リードエラーが発生した磁気ディスク装置の前記同一エリアにデータを再書き込みすることで、書き込まれているデータを自動修復するように制御したことにある。
【００２６】
前述のように、接続されている磁気ディスク装置に対して同時にリードチェックすることで、早期にＡＴＩを摘出することが出来る。
【００２７】
前述のような構成としたことで、リードチェックでリードエラーになったエリアに対して、正常な磁気ディスク装置よりコピーして再書き込みすることで、リードエラーとなったエリアのデータを回復することが確実に出来る。
【００２８】
また、ホスト部からコマンドがあった場合は、前記ミラーリングコントローラで前回までリードチェックを行ったエリアを記録してリードチェックを中断し、ホスト部からのコマンド処理を優先実行させ、コマンドが一定時間無くなった時、前述で記録したエリアの続きからリードチェックを再開することが出来るため、全データエリアに対してまんべんなくリードチェックをすることが出来る。
【発明の効果】
【００２９】
ホストコマンドでエラーがあった時に復旧しているとパフォーマンスに影響するが、本発明ではシステムパフォーマンスに影響を与えず、かつ、復旧しようと思っても読めないといったことがないよう未然にＡＴＩのチェックが出来る。
【図面の簡単な説明】
【００３０】
【図１】ミラーリングのシステム構成図。
【図２】バックグランド動作時のリードチェックのフローチャート。
【図３】ミラーリング構成の磁気ディスク装置内トラック図。
【図４】ミラーリング構成のドライブ割り当て図。
【発明を実施するための形態】
【００３１】
以下に、図１から図３を参照し、本発明の一実施形態を説明する。
【実施例１】
【００３２】
図１は、磁気ディスク装置二台から構成されるミラーリング機能を有する基本的なシステム構成図で、磁気ディスク装置１、磁気ディスク装置２、ミラーリングコントローラ部、ホスト部とから構成されている。
【００３３】
図１に示す磁気ディスク装置１と磁気ディスク装置２は、総記憶容量、総セクタ数全てが同一の磁気ディスク装置で、これらの磁気ディスク装置はミラーリングコントローラ部が有するＲＡＩＤ１のミラーリング制御により、同じセクタ、同じトラックに同じデータが記録されている。
【００３４】
ミラーリングコントローラ部は、ミラーリングコントローラ部を制御する上位のホスト部から、１台分の仮想的な磁気ディスク装置として認識されている。
【００３５】
また、ミラーリングコントローラ部より下位の、磁気ディスク装置１と磁気ディスク装置２を制御しており、それぞれの磁気ディスク装置に対して、磁気ディスク装置１をマスタ、磁気ディスク装置２をミラー、またはその逆で、磁気ディスク装置２をマスタ、磁気ディスク装置１をミラーと設定している。
【００３６】
また、磁気ディスク装置の読み書きの制御を行っており、ホスト部よりリードコマンドやライトコマンドが発行されると、磁気ディスク装置１と磁気ディスク装置２に対して同時に実行する。
【００３７】
例えば、ホスト部より図１に示すデータ５を上書きする場合、ミラーリングコントローラ部は２台の磁気ディスク装置に対して同時にデータの書き込みを行う。
【００３８】
新規のデータ書き込む場合は、２台の磁気ディスク装置の同一エリア、例えば図１に示すような空きエリア１１に対して同時にデータの書き込みを行う。
【００３９】
ホスト部よりデータ読み込みをする時は、書き込み時と同じようにミラーリングコントローラ部は２台の磁気ディスク装置に対して、同時にデータの読み込みを行う。
【００４０】
例えば、図１に示すデータ１を読み出す場合、ミラーリングコントローラ部は２台の磁気ディスク装置に対して、データ１の読み出しを行う。
【００４１】
ここで、マスタに設定されている磁気ディスク装置が１側となっていたら、ミラーリングコントローラ部は磁気ディスク装置１のデータ１を正常に読み出せた場合、このデータをホスト部へデータ転送し、磁気ディスク装置２から読み出したデータは読み捨て（破棄）する。
【００４２】
逆に、マスタに設定されている磁気ディスク装置が２側となっていたら、ミラーリングコントローラ部は磁気ディスク装置２のデータ１を読み出し、このデータが正常であればホスト部へデータ転送し、磁気ディスク装置１から読み出したデータは読み捨て（破棄）する。
【００４３】
本ミラーリングコントローラ部は、前述のように磁気ディスク装置１と磁気ディスク装置２に対して、同時に読み書きの制御を行っている。
【００４４】
ミラーリングコントローラ部は、２台の磁気ディスク装置にデータ読み込みを行った際、マスタ側の磁気ディスク装置でリードエラーが発生すると、ミラー側の磁気ディスク装置のデータを、ホスト部へデータ転送する。
【００４５】
この直後に、ミラーリングコントローラ部は、ミラー側で正常にデータ転送出来たデータをリードエラーとなったマスタ側に再書き込みを行う。
【００４６】
例えば、磁気ディスク装置１がマスタ、磁気ディスク装置２がミラーと設定されている構成で、マスタ側のデータ３が正常に読み出せなかった場合、ミラーリングコントローラ部はミラー側のデータ３を使ってホストへデータ転送し、ミラー側のデータ３をマスタ側のデータ３に再書き込みを行う。
【００４７】
ミラーリングコントローラ部は、ホスト部からミラーリングコントローラ部、磁気ディスク装置へデータの読み書きなどアクセスがない時に限り、ミラーリングコントローラ部の制御下において磁気ディスク装置へアクセスすることができ（バックグランド動作）、ミラーリング構成の磁気ディスク装置に対して、通常の読み書き動作時と同様２台同時に磁気ディスク装置のリードチェックを行う。
【００４８】
図２に、バックグランド動作時のリードチェックのフローチャートを示す。
【００４９】
本ミラーリングコントローラ部は、図２でホスト部からの読み書き等のアクセスがｎ秒間なかったか監視する。
【００５０】
この監視は、ホスト部からのアクセスとバックグランド動作のリードチェックとを同時に実行することで、システムパフォーマンスを落とすことがないようホスト部からのアクセスを優先的に処理することが目的で、このアクセスがないことを確認した後バックグランド動作に入る。
【００５１】
システムによって磁気ディスク装置へのアクセス頻度が違ってくるため、アクセスの監視時間ｎ秒の設定は変更することが可能となっている。
【００５２】
次に、ミラーリングコントローラ部は通常の読み書き動作と同様に、磁気ディスク装置１と磁気ディスク装置２に対して、同時にリードチェックを実行する。
【００５３】
このリードチェックは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などによって書き込まれるようなファイル単位ではなく、磁気ディスク装置の物理セクタ単位でシーケンシャルに実行されるため、２台の磁気ディスク装置の全エリアをまんべんなくリードチェックすることが出来る。
【００５４】
このリードチェック中にホスト部からコマンドがあると、それまでチェックしたセクタをミラーリングコントローラ部に記録して、リードチェックを一時中断し、ホスト部からのコマンドを優先的に実行する。
【００５５】
ホスト部からのコマンドがアクセスの監視時間ｎ秒間無くなった時、ミラーリングコントローラ部に記録されているセクタの続きから、２台の磁気ディスク装置のリードチェックが再開される。
【００５６】
また、リードチェックは先頭セクタから最終セクタまで全エリアがチェックされ、最終セクタのチェックが完了すると、再び先頭セクタに戻りリードチェックが再開される。
【００５７】
このリードチェック中、ｓ番目のセクタでリードエラーが発生した時、指定したｒ回だけリードチェックがリトライされる。
【００５８】
例えば、図３に示すように２台の磁気ディスク装置に対してセクタ単位が２５６セクタと設定しリードチェックしている時に、磁気ディスク装置１のＨＤＤ１ｓ番目でリードエラーが発生すると、ミラーリングコントローラ部にて設定している回数だけ、磁気ディスク装置１のＨＤＤ１ｓ番目のリードチェックをリトライする。
【００５９】
それでもリードエラーとなった場合、磁気ディスク装置１のＨＤＤ１ｓ番目のデータ回復を実施する。
【００６０】
ミラーリングコントローラ部は、磁気ディスク装置１のＨＤＤ１ｓ番目のデータと対となるデータが記録されている磁気ディスク装置２のＨＤＤ２ｓ番目のデータを読み出し、記録する。
【００６１】
その後、リードエラーとなった磁気ディスク装置１のＨＤＤ１ｓ番目に、先ほど読み出した磁気ディスク装置２のＨＤＤ２ｓ番目のデータを上書きコピーする。
【００６２】
このようにすることで、リードエラーとなった磁気ディスク装置１のＨＤＤ１ｓ番目のデータが回復し、システムとしてミラーリング構成を維持することが出来る。
【００６３】
前述のように、２台の磁気ディスク装置に対して同時にバックグランド動作でリードチェックを行うことで、ホスト部からのアクセスを邪魔しないためシステムのパフォーマンスを落とすことなくリードチェックをすることができ、早期にＡＴＩによりリードエラーとなった箇所を検出、復旧することが出来る。
【実施例２】
【００６４】
以下に、２つ目の実施形態について説明する。
【００６５】
実施例１では、それぞれの磁気ディスク装置の全セクタをリードチェックする機能としたが、ＡＴＩはシステムログファイルのような、頻繁に上書きするファイルの隣接トラックで発生しやすい。
【００６６】
このため、リードチェックする箇所を頻繁に上書きするファイル近辺に絞り、重点的に実施することも可能とする。
【００６７】
例えば、図４に示すミラーリング構成におけるドライブ割り当て図のように、磁気ディスク装置内部はドライブの割り当てがされており、システムログファイルは一般的にＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）により、Ｃドライブに格納される。
【００６８】
このＣドライブが、０セクタから８００００００セクタまでで割り当てられていた場合、ミラーリングコントローラ部でリードチェックするエリアを、０セクタから８００００００セクタまでと設定し記録させておくことで、Ｃドライブのみのリードチェックを実施することが出来る。
【００６９】
さらに、ＯＳのほかにアプリケーションで、例えば２４０００００１から３２００００００セクタまでで割り当てられているＦドライブにログ情報を頻繁に上書きしていた場合、ミラーリングコントローラ部でリードチェックするエリアを、Ｃドライブの０セクタから８００００００セクタまでの他に、Ｆドライブの２４０００００１から３２００００００セクタまでを設定し記録させておくことで、ＣドライブとＦドライブのリードチェックを実施することが出来る。
【００７０】
ドライブ割り当てではなく、頻繁に上書きするファイルが格納されているエリアに細かく絞ることも可能とする。
【００７１】
全エリアをリードチェック対象とせず、前述のようにユーザでリードチェックが必要と判断し、設定したエリアのみリードチェック対象とすることで、ＡＴＩの早期検出が可能となる。
【実施例３】
【００７２】
以下に、３つ目の実施形態について説明する。
【００７３】
実施例１ではリードエラーとなった該当セクタのみデータをコピーする機能としたが、ＡＴＩは磁気ディスク装置の物理セクタに関係無くシステムのデータ量に依存するため、データ量が大きい場合リードエラーになったエリアだけでなく、それに続く何セクタにも渡って発生することもある。
【００７４】
例えば、図３に示すＨＤＤ２ｓ番目、ＨＤＤ２ｓ＋１番目にまたがるようなデータを頻繁に上書きしている場合で、磁気ディスク装置２のＨＤＤ２ｓ番目でリードエラーがあると、それに続くＨＤＤ２ｓ＋１番目でもＡＴＩが発生しており、次のリードチェックですぐリードエラーとなることが考えられる。
【００７５】
当然、ＨＤＤ２ｓ番目の回復処理を実施後、ＨＤＤ２ｓ＋１番目でも回復処理が実施される可能性が高い。
【００７６】
このため、データ回復時の回復対象エリアをリードエラーとなったエリアだけではなく、その前後のエリアを対象とすることも可能とする。
【００７７】
例えば、図３に示す磁気ディスク装置２のＨＤＤ２ｓ番目でリードエラーが発生した場合、磁気ディスク装置１のＨＤＤ１ｓ−１、ＨＤＤ１ｓ、ＨＤＤ１ｓ＋１番目からデータ読み出し、磁気ディスク装置２のＨＤＤ２ｓとその前後、ＨＤＤ２ｓ−１、ＨＤＤ２ｓ＋１番目へデータを書き込む。
【００７８】
このようにリードエラーしたエリアだけでなく、その前後のエリアもデータコピーすることで、効率良くデータ修復をすることが可能となる。
【符号の説明】
【００７９】
１…ホスト部、２…ミラーリングコントローラ部、３…磁気ディスク装置１、４…磁気ディスク装置２。
【図１】
2013130995.tif 000003
【図２】
2013130995.tif 000004
【図３】
2013130995.tif 000005
【図４】
2013130995.tif 000006