(57)【要約】【課題】ミラーディスクとして起動側ディスク３ａおよび待機側ディスク３ｂを備えたディスク制御システムにおいて、いずれかのディスクに異常があった場合に発生する起動時間の遅延を最小限にする。【解決手段】起動側ディスク３ａおよび待機側ディスク３ｂのアクセスのない空き時間にそれぞれベリファイ処理を行ってベリファイに要するベリファイ時間を取得し当該ベリファイ時間をテーブル３１ａに格納するベリファイ手段３１を備え、前記テーブル３１ａのベリファイ時間に基づいて当該ディスクが不調か否かを判定し、不調のディスクがあったときは、当該ディスクを待機側のディスクとするようにした。【選択図】図４
2012008870.tif 000002
【特許請求の範囲】
【請求項１】
ミラーディスクとして起動側ディスクおよび待機側ディスクを備えたディスク制御システムにおいて、
前記起動側ディスクおよび待機側ディスクのアクセスのない空き時間にそれぞれのベリファイ処理を行ってベリファイに要したベリファイ時間を取得するベリファイ手段を備え、
前記ベリファイ時間に基づいて当該ディスクが不調か否かを判定し、不調のディスクがあったときは、当該ディスクを待機側ディスクとするようにしたことを特徴とするディスク制御システム。
【請求項２】
前記ベリファイ時間は、アドレスごとのベリファイに要したベリファイ時間であって、前記ベリファイ手段は、前記ベリファイ時間を保存するテーブルを備え、
前記起動側ディスクおよび待機側ディスクは、起動側ディスクか否かを示すミラーフラグを格納するミラーフラグ格納手段をそれぞれ備え、
前記テーブルのベリファイ時間に基づいて当該ディスクが不調か否かを判定し、不調のディスクがあったときは、当該不調のディスクのミラーフラグを待機側とし、
前記ミラーフラグに基づいて起動側ディスクを選択して起動するようにしたことを特徴とする請求項１記載のディスク制御システム。
【請求項３】
前記不調か否かの判定は、前記ベリファイ時間が所定の時間より長いアドレスの有無に基づいて判定するようにしたことを特徴とする請求項１または請求項２記載のディスク制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ミラーディスクとして起動側ディスクおよび待機側ディスクを備えたディスク制御システムにおけるディスク制御技術に関する。
【背景技術】
【０００２】
近年、複数のハードディスクドライブ（以下、「ＨＤＤ」という）を結合してディスクアレイとして１台のＨＤＤとして使うことでアクセス速度を向上させる技術或いはデータを多重化して耐障害性を向上する技術として、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ Ａｒｒａｙｓ ｏｆ Ｉｎｄｅｐｅｎｄｅｎｔ Ｄｉｓｋｓ）技術が採用されている。
【０００３】
特に、ＰＣ／ＡＴアーキテクチャ装置において、２台のＨＤＤを使用してＢＩＯＳ及びカーネルドライバによりミラーを構成するミラーディスクは、安価ながら高い耐障害性を得ることができるため、多くのローカルサーバや業務システムなどで利用され始めている。
【０００４】
このようなＰＣ／ＡＴアーキテクチャ装置に搭載されるミラーディスク装置では、起動側のディスクと待機側のディスクに区別し、ＢＩＯＳ動作によるシステム起動時にはディスク管理ツール等により設定した起動側のディスクのみにリードアクセスし、起動が完了した後にカーネルドライバに制御権が移ったところで両方のディスクにリード・ライトアクセスするようになっている。
【０００５】
このとき、起動側のディスクに異常があり、当該ディスクのアクセスを複数回リトライして、そのディスクが最終的に回復不可能と判断した場合は、待機側ディスクの認識とアクセスを行い、システムの起動を継続するようになっている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−１５０３２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、起動側ディスクと待機側ディスクの切替処理には数十秒から長い場合では数分かかるケースがあり、近年の情報処理装置の短時間起動への要求によるＢＩＯＳ技術やＯＳ技術の進歩により１０秒程度で起動できるようになってきている現在では、前記起動時間の遅延は大きな問題となっておりその改善が求められている。
【課題を解決するための手段】
【０００８】
本発明は、前述の課題を解決するため次の構成を採用する。すなわち、ミラーディスクとして起動側ディスクおよび待機側ディスクを備えたディスク制御システムにおいて、前記起動側ディスクおよび待機側ディスクのアクセスのない空き時間にそれぞれのベリファイ処理を行ってベリファイに要したベリファイ時間を取得するベリファイ手段を備え、前記ベリファイ時間に基づいて当該ディスクが不調か否かを判定し、不調のディスクがあったときは、当該ディスクを待機側ディスクとするようにした。
【発明の効果】
【０００９】
本発明の不揮発性半導体記憶装置によれば、ミラーディスクとして起動側ディスクおよび待機側ディスクを備えたディスク制御システムにおいて、前記起動側ディスクおよび待機側ディスクのアクセスのない空き時間にそれぞれのベリファイ処理を行ってベリファイに要したベリファイ時間を取得するベリファイ手段を備え、前記ベリファイ時間に基づいて当該ディスクが不調か否かを判定し、不調のディスクがあったときは、当該ディスクを待機側ディスクとするようにしたので、起動側ディスクに異常があった場合に発生する起動時間の遅延を最小限にすることができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１のディスク制御システムの構成図である。
【図２】実施例１のディスク制御システムの制御データの構成図である。
【図３】実施例１のディスク制御システムの起動時のプログラム構成図である。
【図４】実施例１のディスク制御システムの起動後のプログラム構成図である。
【図５】実施例１のディスク制御システムの起動時の動作フローチャート図である。
【図６】実施例１のディスク制御システムの起動後のベリファイ処理の動作フローチャート図である。
【図７】従来と比較した実施例１のディスク制御システムのタイムチャート図である。
【発明を実施するための形態】
【００１１】
以下、本発明に係わる実施の形態例を、図面を用いて説明する。図面に共通する要素には同一の符号を付す。なお、以下の説明では、２台のディスク装置によるミラーディスク装置を例として説明するが、３台以上によるミラーディスク装置であってもよい。
【実施例１】
【００１２】
（構成）
図１に実施例１のディスク制御システムの構成図を示す。同図に示したように、実施例１のディスク制御システムは、ＰＣ／ＡＴアーキテクチャ装置１と２台のディスク＃１、＃２（３ａ、３ｂ）により構成され、ＰＣ／ＡＴアーキテクチャ装置１はオペレーションシステム（以下、「ＯＳ」という）やアプリケーションプログラム（以下、「ＡＰ」という）を動作させるＣＰＵ２とメインメモリ７を備える。
【００１３】
内部バス６を経由してＩ／Ｆ部＃１、＃２（５ａ、５ｂ）が接続され、Ｉ／Ｆ部＃１、＃２（５ａ、５ｂ）よりディスクＩ／Ｆバス＃１、＃２（４ａ、４ｂ）を経由してディスク＃１、＃２（３ａ、３ｂ）がそれぞれ接続される。
【００１４】
そして、２台のディスク＃１、＃２（３ａ、３ｂ）はミラー構成となっており、同じデータが書き込まれ、１台が故障しても残りの一台で運用を継続することができる。
【００１５】
２台のディスク＃１、＃２（３ａ、３ｂ）は、一方が起動側ディスクとなり、他方が待機側ディスクとなり、いずれを起動側ディスクとするかを動的に替えられるようになっている。
【００１６】
この起動側／待機側ディスク（３ａ／３ｂ）のデータ構成を図２に示す。同図に示したように、起動側／待機側ディスク（３ａ／３ｂ）のデータ構成は、先頭にマスターブートレコード（以下、「ＭＢＲ（３ｍ）」という）が設けられ、次いでミラーフラグ（３ｆ）と、ＯＳ・ＡＰデータ（３ｏ）が設けられている。
【００１７】
そして、ＭＢＲ（３ｍ）は、ＰＣ／ＡＴアーキテクチャ１に応じて定義され、ＢＩＯＳ起動後にＯＳを起動する出発点となるイニシャルプログラムローダ（ＩＰＬ）を格納するエリアである。
【００１８】
ミラーフラグ格納手段としてのミラーフラグ（３ｆ）は、起動側ディスクの場合は“１”とし、待機側ディスクの場合は“０”としてミラーフラグを格納するエリアである。ＯＳ・ＡＰデータ（３ｏ）はシステムの起動および動作に必要となるＯＳやアプリケーションデータを格納するエリアである。
【００１９】
図３に、実施例１のディスク制御システムの起動時のプログラム構成図を示す。同図に示したように、ディスク制御システムの起動時のプログラム構成としてのシステムＢＩＯＳ（２０）は、ＯＳブートローダ２１と、ミラーＢＩＯＳ（２２）とからなる。
【００２０】
システムＢＩＯＳ（２０）は起動時に動作し、ミラーＢＩＯＳ（２２）はディスク＃１、＃２（３ａ、３ｂ）の制御を行う。
【００２１】
ＯＳブートローダ２１はＯＳの読み込みを行うが、その際にはミラーＢＩＯＳ（２２）を経由してディスク＃１、＃２（３ａ、３ｂ）へのアクセスを行う。
【００２２】
図４に、実施例１のディスク制御システムの起動後のプログラム構成図を示す。同図に示したように、ディスク制御システムの起動後のプログラム構成は、ＯＳ（４０）と、システムアプリケーション３０と、ベリファイプログラム３１とからなる。
【００２３】
そして、ＯＳ（４０）は、システムアプリケーション３０のアプリケーションプログラムから要求されたファイル操作を行うファイルシステム（４１）と、ディスクの論理制御を行うディスクドライバ（４２）と、ミラー制御を行うミラードライバ（４３）とからなる。
【００２４】
ベリファイ手段としてのベリファイプログラム３１は、２台のディスク＃１、＃２（３ａ、３ｂ）の状態を確認し、必要に応じて起動側ディスクと待機側ディスクの設定を変更するためのプログラムで、ディスク＃１、＃２（３ａ、３ｂ）の各アドレスに対するベリファイの応答時間を保持するテーブル３１ａを持ち、ベリファイ指示はミラードライバ４３を経由して各ディスク＃１、＃２（３ａ、３ｂ）に送出される。
【００２５】
（動作）
以上の構成により、実施例１のディスク制御システムは以下のように動作する。この動作を図５の実施例１のディスク制御システムの起動時の動作フローチャートを用いて以下詳細に説明する。
【００２６】
まず、ミラーＢＩＯＳ（２２）が２台のディスク＃１、＃２（３ａ、３ｂ）の認識とミラーフラグ３ｆの読み出しを行う（ステップＳ１１）。このとき、ディスク＃１、＃２（３ａ、３ｂ）の２台ともアクセスできず異常があると判定したときは（ステップＳ１２）、起動を停止し（ステップＳ１３）、本起動処理を終了する。
【００２７】
ステップＳ１２にていずれかのディスクが正常であると判定したときは、まず、ミラーフラグ（３ｆ）が“１”にセットされている側のディスクを起動側ディスクとして、当該ディスクから起動データの読み出しを行う（ステップＳ１４）。
【００２８】
そして、この読み出しの過程でエラーが検出された場合は、一定回数のリトライを行い（ステップＳ１５）、それでも読み出しが行えない場合は、起動側と待機側のミラーフラグ３ｆの値を入れ替え（ステップＳ１６）、ステップＳ１４に戻り、待機側であったディスクより起動データの読み出しを継続する。
【００２９】
そして、読み出しが完了したときは、ＯＳ（４０）を起動し制御権をＯＳ（４０）に移し（ステップＳ１７）、本起動処理を終了する。
【００３０】
そして、実施例１のディスク制御システムの起動後は、システムアプリケーションによりファイルアクセスが行われて運用されるが、一定の頻度でベリファイ処理を行い、ディスク＃１（３ａ）およびディスク＃２（３ｂ）のベリファイを実施して、ディスク＃１（３ａ）およびディスク＃２（３ｂ）に不調な状態がないかを確認して、不調と判断したディスクを待機側として管理する。
【００３１】
このベリファイ処理の動作を図６の動作フローチャートを用いて以下詳細に説明する。まず、ディスク＃１（３ａ）を表わすＤＫＮＯを１、アドレス０を表わすＡｄｒを０にセットする（ステップＳ２１）。
【００３２】
そして、ディスクアクセスのない空き時間（例えば、３秒程度）が有るかどうか確認する（ステップＳ２２）。なお、この空き時間は、システムアプリケーション３０からのファイルアクセスをディスク＃１（３ａ）およびディスク＃２（３ｂ）に直接送出しているミラードライバ４３から情報を得るようにすればよい。
【００３３】
そして、空き時間がない場合は所定の時間待った後（ステップＳ２３）、ステップＳ２２に戻り、再び空き時間の確認を行う。
【００３４】
一方、ディスクアクセスのない空き時間が有った場合は、ディスク＃１（３ａ）にシークコマンドを送出し、ディスク＃１（３ａ）のヘッドを、ベリファイを行う領域に移動させる（ステップＳ２４）。
【００３５】
そして、シークコマンド完了後にタイマーをリセットして（ステップＳ２５）、ディスク＃１（３ａ）にベリファイコマンドを送出する（ステップＳ２６）。
【００３６】
ベリファイコマンドを完了した後に、タイマーの値を読み出し、当該タイマー値をベリファイプログラムで管理するテーブル３１ａに保存する（ステップＳ２７）。
【００３７】
一回のベリファイ処理が終わったら、ディスクの最終アドレス（最終Ａｄｒ）まで実施したかどうかを確認し（ステップＳ２８）、最終アドレスでない場合はＡｄｒをインクリメントし（ステップＳ２９）、ステップＳ２２に戻り、ディスク＃１（３ａ）へのベリファイ処理を繰り返す。
【００３８】
一方、ステップＳ２８にてディスクの最終アドレスまでベリファイ処理を実施した場合は、ＤＫＮＯがディスク＃２（３ｂ）を表わすＤＫＮＯを２であるかどうかを確認し（ステップＳ３０）、ＤＫＮＯ＝２でないときは、ＤＫＮＯを２としアドレス０を表わすＡｄｒを０にセットし（ステップＳ３１）、ステップＳ２２に戻り、以降、同様にベリファイ処理を行う。
【００３９】
そして、２台のディスク＃１、＃２（３ａ、３ｂ）の全ての領域のベリファイ処理が終了し、ステップＳ３０にてＤＫＮＯが２と判定されたときは、テーブル３１ａに保存されたベリファイ時間の解析を行い（ステップＳ３２）、不調なディスクが有るかどうかを判定する（ステップＳ３３）。
【００４０】
なお、ディスク＃１または＃２（３ａまたは３ｂ）に不調があるかどうかの判定は、例えば、特開２００１−２５６７１０号公報記載のように、ベリファイコマンドを送信しベリファイを終了するまでの時間が所定の時間より長いアドレスがあるかどうかで判定すればよい。
【００４１】
そして、例えば、ディスク＃１（３ａ）のあるアドレスのベリファイ時間が所定の時間より長く、不調であると判断した場合は、当該ディスク＃１（３ａ）を待機側とし、他方のディスク＃２（３ｂ）を起動側とするように、ミラーフラグ３ｆの値を変更し（ステップＳ３４）、本ベリファイ処理を終了する。
【００４２】
次に、本発明のさらなる理解に資するため、図７の起動時のタイムチャート図を用いて、実施例１のディスク制御システムの作用を説明する。なお、（Ａ）が従来のディスク制御システムのタイムチャートであり、（Ｂ）が実施例１のディスク制御システムのタイムチャートである。
【００４３】
同図に示したように、従来のディスク制御システムでは、起動側ディスク、例えば、ディスク＃１（３ａ）に異常があった場合は、シーケンス（Ａ）のように、認識（時間Ｔ１）、ミラーフラグ読出（時間Ｔ２）、システムローディング（時間Ｔ３）を順次行っている途中で当該ディスク＃１（３ａ）へのディスクアクセスのリトライ（時間Ｔ４）と、待機系ディスク、本例ではディスク＃２（３ｂ）への切替時間（時間Ｔ５）が発生する。
【００４４】
特に、リトライ（時間Ｔ４）は長時間を要する場合があり、不調なアドレスへのアクセス応答に３０秒程度も要する場合があり、例えば、５回のリトライを行った場合では合計２分３０秒程度もの時間を要することになる。
【００４５】
一方、実施例１のディスク制御システムでは、不調なディスクをあらかじめ待機側に設定することで、シーケンス（Ｂ）のように、起動側ディスクで異常が発生するケースはほとんどなくなり、リトライ（時間Ｔ４）や切替時間（時間Ｔ５）は発生しない。
【００４６】
その後のシステムローディング（時間Ｔ４）およびシステム起動（時間Ｔ５）は、従来のディスク制御システムでも実施例１のディスク制御システムでも同様である。
【００４７】
なお、以上の実施例の説明では、ＰＣ／ＡＴアーキテクチャ１にて構成したソフトウェアＲＡＩＤのミラーディスク装置として説明したが、デバイスドライバと管理用アプリケーションのみでミラー機能を実現するソフトウェアＲＡＩＤにも本発明を適用することができる。
【００４８】
この場合は、図２の制御データの構成図のＭＢＲにどのディスクから起動するかの情報が保持されているので、この情報を操作することにより不調ディスクからの起動を回避するようにすることができる。
【００４９】
（実施例１の効果）
以上述べたように、実施例１のディスク制御システムによれば、ミラーディスクとして起動側ディスクおよび待機側ディスクを備えたディスク制御システムにおいて、前記起動側ディスクおよび待機側ディスクに起動側ディスクか否かを示すミラーフラグをそれぞれに格納するミラーフラグ格納手段と、前記起動側ディスクおよび待機側ディスクのアクセスのない空き時間にベリファイ処理を行うベリファイ手段と、当該ベリファイ時間を格納するテーブルと、前記ベリファイ時間が所定の時間より長いときは前記ミラーフラグを入替え、前記ミラーフラグに基づいたディスクにより起動するようにしたので、起動側ディスクに異常があった場合に発生する起動時間の遅延を最小限にすることができる。
【産業上の利用可能性】
【００５０】
以上述べたように、本発明はミラーディスクとして起動側ディスクおよび待機側ディスクを備えたディスク制御システムに広く用いることができる。
【符号の説明】
【００５１】
１    ＰＣ／ＡＴアーキテクチャ装置
２    ＣＰＵ
３ａ、３ｂ  ディスク＃１、＃２
３ｍ  ＭＢＲ（マスターブートレコード）
３ｆ  ミラーフラッグ
４ａ、４ｂ  ディスクＩ／Ｆバス＃１、＃２
５ａ、５ｂ  Ｉ／Ｆ部＃１、＃２
２０  システムＢＩＯＳ
２１  ＯＳブートローダ
２２  ミラーＢＩＯＳ
３０  システムアプリケーション
３１  ベリファイプログラム
３１ａ  テーブル
４０  ＯＳ（オペレーションシステム）
４１  ファイルシステム
４２  ディスクドライバ
４３  ミラードライバ
【図１】
2012008870.tif 000003
【図２】
2012008870.tif 000004
【図３】
2012008870.tif 000005
【図４】
2012008870.tif 000006
【図５】
2012008870.tif 000007
【図６】
2012008870.tif 000008
【図７】
2012008870.tif 000009