(57)【要約】【課題】  所定の時刻までにデータ同期処理が完了しなかった場合に、日付等の条件毎に予め定めた処理を続けることを可能とするデータ同期技術を提供する。【解決手段】  データ同期処理の実行中に、予め設定した時刻情報と現在の時刻情報とを比較する。データ同期処理が予め設定した時刻に完了していない場合、予め設定した動作候補のいずれかを選択する。選択した処理をディスクアレイシステムにて実行する。動作候補は、データ同期処理を続行する、データ同期処理を中止し、今回のデータ同期処理の停止位置に関わらずに次回のデータ同期処理を行う、またはデータ同期処理を一時停止し、今回のデータ同期処理の停止位置から次回のデータ同期処理を再開する、のいずれかである。【選択図】  図２
2008059014.tif 000002
【特許請求の範囲】
【請求項１】
データを冗長化して保持するディスクアレイシステムにおけるデータの冗長性を維持するためのデータ同期処理を実行する方法において、
データ同期処理の実行中に、予め設定した時刻情報と現在の時刻情報とを比較する処理を、前記ディスクアレイシステムにて実行する段階と、
データ同期処理が予め設定した時刻に完了していない場合、予め設定した動作候補のいずれかを選択する処理を、前記ディスクアレイシステムにて実行する段階と、
前記選択した処理を前記ディスクアレイシステムにて実行する段階とを含み、
前記動作候補は次の（１）〜（３）の指定動作、即ち、
（１）データ同期処理を続行する、
（２）データ同期処理を中止し、今回のデータ同期処理の停止位置に関わらずに次回のデータ同期処理を行う、
（３）データ同期処理を一時停止し、今回のデータ同期処理の停止位置から次回のデータ同期処理を再開する、
の（１）、（２）及び（３）からなる
ことを特徴とするディスクアレイシステムのデータ同期方法。
【請求項２】
請求項１に記載のディスクアレイシステムのデータ同期方法において、前記動作候補は、前記（１）〜（３）に加えて次の（４）の指定動作、即ち、
（４）予め定められた実行比率に応じて、データ同期処理及びその他の処理を並行して実行する、
からなることを特徴とするディスクアレイシステムのデータ同期方法。
【請求項３】
請求項１に記載のディスクアレイシステムのデータ同期方法において、前記時刻情報は日付または曜日の少なくとも一方を含むことを特徴とするディスクアレイシステムのデータ同期方法。
【請求項４】
データを冗長化して保持するディスクアレイシステムのディスクアレイコントローラにて実行されるコンピュータプログラムであって、データの冗長性を維持するデータ同期処理に係る前記コンピュータプログラムにおいて、
データ同期処理の実行中に、予め設定した時刻情報と現在の時刻情報とを比較する処理と、
前記比較処理にてデータ同期処理が予め設定した時刻に完了していない場合、予め設定した動作候補のいずれかを選択して実行する処理と、
を前記ディスクアレイコントローラに実行させるコンピュータプログラムであって、
前記動作候補は次の（１）〜（３）の指定動作、即ち、
（１）データ同期処理を続行する、
（２）データ同期処理を中止し、今回のデータ同期処理の停止位置に関わらずに次回のデータ同期処理を行う、
（３）データ同期処理を一時停止し、今回のデータ同期処理の停止位置から次回のデータ同期処理を再開する、
の（１）、（２）及び（３）からなる
ことを特徴とするコンピュータプログラム。
【請求項５】
請求項４に記載のコンピュータプログラムにおいて、前記動作候補は、前記（１）〜（３）に加えて次の（４）の指定動作、即ち、
（４）予め定められた実行比率に応じて、データ同期処理及びその他の処理を並行して実行する、
からなることを特徴とするコンピュータプログラム。
【請求項６】
請求項４に記載のコンピュータプログラムにおいて、前記時刻情報は日付または曜日の少なくとも一方を含むことを特徴とするコンピュータプログラム。
【請求項７】
複数のディスク装置とホストコンピュータとの間に接続される装置であって、前記ホストコンピュータに対し、前記複数のディスク装置を用いて、データを冗長化して保持するディスクアレイを提供するディスクアレイ装置において、
データ同期処理の実行中に現在の時刻情報と比較するための設定時刻情報と、データ同期処理が前記設定時刻情報が示す時刻までに完了していない場合に実行され得る動作候補のうち、予め選択された指定動作を示す動作指定情報とを格納する設定記憶部と、
実行中のデータ同期処理が前記設定記憶部に格納された設定時刻情報までに完了していない場合、前記動作指定情報が示す指定動作を選択して実行するディスクアレイコントローラとを備え、
前記動作候補は次の（１）〜（３）の指定動作、即ち、
（１）データ同期処理を続行する、
（２）データ同期処理を中止し、今回のデータ同期処理の停止位置に関わらずに次回のデータ同期処理を行う、
（３）データ同期処理を一時停止し、今回のデータ同期処理の停止位置から次回のデータ同期処理を再開する、
の（１）、（２）及び（３）からなる
ことを特徴とするディスクアレイ装置。
【請求項８】
請求項７に記載のディスクアレイ装置において、前記動作候補は、前記（１）〜（３）に加えて次の（４）の指定動作、即ち、
（４）予め定められた実行比率に応じて、データ同期処理及びその他の処理を並行して実行する、
からなることを特徴とするディスクアレイ装置。
【請求項９】
請求項７に記載のディスクアレイ装置において、前記時刻情報は日付または曜日の少なくとも一方を含むことを特徴とするディスクアレイ装置。
【請求項１０】
請求項７に記載のディスクアレイ装置、ホストコンピュータ、及び、複数のディスク装置からなるディスクアレイシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディスクアレイシステムに関し、特に、冗長性を持たせてデータを記憶するディスクアレイシステムに関する。
【背景技術】
【０００２】
コンピュータシステムにおいて、ハードディスクなどの記憶装置の信頼性を高める技術としてＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  （Ｉｎｅｘｐｅｎｓｉｖｅ）  Ｄｉｓｋｓ）がある。ＲＡＩＤとはハードディスクを複数台使用して高速化や信頼性を高める技術であり、ＲＡＩＤ０、ＲＡＩＤ１、ＲＡＩＤ５等いくつかの種類が定義されている。このうちＲＡＩＤ１及びＲＡＩＤ５等のシステムでは、ハードディスク内のデータに冗長性を持たせる技術であり、このようなシステムでは、例えばＲＡＩＤを構成するハードディスクの１台が何らかの理由（故障、媒体キズなど）でデータが読めない状態となっても、残りのハードディスクから該当するデータを読み込むことが出来る。
【０００３】
ところで、ハードディスクは、磁性体が塗布された円盤面（プラッタ）を高速に回転させ、磁気ヘッドを特定の位置に合わせてデータのリード／ライトを行っている。プラッタと磁気ヘッドは数十ｎｍの距離に位置しており、非常に高い記録密度を実現してデータのリード／ライトを行っているため、熱／振動などの外的要因に非常に弱い。例えば、データライトの際、磁気ヘッドはプラッタ上の所定の位置（データライトで指示されたアドレス位置）に合わせてデータを書き込むが、わずかな振動により磁気ヘッドがずれると正しくデータのライトができず、その結果、データが壊れる場合がある。
【０００４】
こうしたデータ破壊の発生頻度は、例えば空調完備のマシン室に設置しているか、換気していない高温になる場所に設置しているか、設置場所が不安定で振動しやすい場所か、などの環境要因により異なってくるが、一般に、こうした外的要因によるデータ破壊の発生は、システム運用期間の長さに比例して徐々に増えていく。これは、ＲＡＩＤ１、５等のデータ冗長性を持つＲＡＩＤを実現しているシステムにおいては、運用期間が長くなるに従い、一部のデータが徐々に冗長性を失っていき、ハードディスクが一台故障した場合などに、復旧できないデータが発生しやすくなることを意味する。
【０００５】
このため、データ冗長性を持つＲＡＩＤシステムでは、ＲＡＩＤを構成している全てのハードディスク上のデータを順次チェックしてデータ冗長性が失われていないか（データが壊れていないか）確認し、データ冗長性が失われていた場合、正常なデータから壊れたデータ部分を算出して、壊れたデータ箇所のデータを復旧させる処理を実行する手段を備える。以下、この処理をデータ同期処理と呼ぶ。データ同期処理を定期的に実行することにより、システム運用期間が長くなってもデータ冗長性を保つことが可能となり、安定したシステム運用を実現している。
【０００６】
一般にデータ同期処理では、まず、ＲＡＩＤを構成する全てのハードディスクに対して、先頭アドレスからある程度の大きさのデータをリードする。次に、各々のハードディスクからリードしたデータを比較して冗長性が失われていないかチェックし、これをハードディスクの最後尾アドレスまで続ける。ここでデータのリード中及びデータの比較中に何らかの異常を検出した場合は、異常のあったハードディスクとそのアドレスを特定した後、データ復旧が可能かチェックし、可能な場合は他のハードディスクからリードした正常なデータから壊れていたデータの元データを再計算し、異常のあったハードディスクに対して元データの再書き込み行い、該当データの復旧を行う処理を実施する。このようにデータ同期処理は実行中に多数のＩＯ処理が連続して発行されることになる。特に近年、ハードディスクの容量は数十〜数百ギガバイトに達していることもあり、データ同期処理を実行すると多数のＩＯ処理が長い時間連続して発行され、システムに非常に高い負荷が掛かる状態となる。
【０００７】
一方で、ＲＡＩＤを備えるコンピュータシステムでは、データ同期処理以外にユーザの業務処理などのＩＯ処理も実行されるが、データ同期処理はシステムに非常に高い負荷が掛かるため、ユーザの業務処理が実行されている期間中にデータ同期処理が実行されると、システムの処理能力がデータ同期処理にとられるため、ユーザの業務処理は単独で実行する場合に比べて処理時間が長くなり、業務に影響を与える。これを避けるため、一般に、データ同期処理は、ユーザ業務処理などの他処理が実行されていない時間帯、例えば深夜等のシステム負荷の低いタイミングにスケジュールされて自動実行される。
【０００８】
従来、データ同期処理のスケジュール設定では、実行日と実行開始時刻を指定する。システム管理者は、システム負荷の低い日時とデータ同期処理に必要な時間とを考慮して、業務のＩＯ処理に影響を与えないように、データ同期処理の開始時刻を決定していた。
【０００９】
ところで、ＲＡＩＤを構成しているハードディスクは、モータやヘッドなどのさまざまな消耗部品で構成されている。これらの消耗部品は使用時間の経過とともに劣化していく。これは図４に示すように時間の経過に伴い劣化が進み、ある時点から正常に動作したりしなかったりと動作が不安定な状態（半故障状態）となり、さらに時間が経過する（劣化が進む）と、最終的には故障状態に遷移していく。
【００１０】
ここで、半故障状態とは、構成している各々の部品が劣化してくることにより動作精度にばらつきが出てくる状態であり、一部または複数の部品が正しく応答できなかったり、または応答に従来以上の時間がかかったりする。例えば、磁気ヘッドなどが正しい位置に即時に固定できない、或いはモータが必要な回転数を維持できないなどの事象が発生する。このため、半故障状態ではコントローラからコマンドが発行された場合、構成部品の動作精度のばらつきが原因で間欠的にエラーが発生することとなる。ただ、一般にハードディスクでは、エラーが発生した場合、同じコマンドを所定回数リトライした後でコントローラに対して応答するリトライの制御が組み込まれている。これにより、例え半故障状態となり、リードコマンドの実行でエラーが発生しても、リトライ処理が実施され、何回かのリトライによりリードできた場合は正常終了となり、リードできなかった場合はリードエラーとしてＲＡＩＤコントローラに返すといった動作をする。
【００１１】
ここで、この内部リトライ処理というのは、ハードディスクにおける信頼性を高めるために組み込まれた処理であるけれども、ＲＡＩＤコントローラからの要求無しにハードディスク内の制御部がリトライの判断をして実行するものであるため、ＲＡＩＤコントローラからは、この内部リトライの有無を認識することができない。すなわち、半故障状態になるとハードディスク側では、各消耗部品の動作精度にばらつきが出るため、例えば同じリードコマンドに対しても、（ａ）すぐにリードに成功して正常終了する、（ｂ）何回かの内部リトライを経てリードに成功して正常終了する、（ｃ）何回かの内部リトライを経てもリードできず異常終了する、というように、（ａ）（ｂ）（ｃ）の異なる動作が起こりうる。また、各消耗部品は半故障状態でも劣化は進行していくため、運用時間の経過に伴い徐々に（ｃ）の発生頻度が増え、結果、内部リトライ回数は増えていく傾向となる。ただ、ＲＡＩＤコントローラ側からは、内部リトライが増えてもそれが（ｃ）のように異常終了とならない限り、コマンドに対する応答時間が長くなったという程度しか認識することができない。しかしながら、この応答時間の長さというのは、システムの負荷状態によっても容易に変わってくるものなので、ＲＡＩＤコントローラとしては、応答時間が長い＝ハードディスクに異常がある。と判断し縮退させることは非常に難しい。
【００１２】
従って、ハードディスクが半故障状態に陥り動作が不安定な状態であっても、ＲＡＩＤコントローラでは、ハードディスクからコマンドの応答がある限り、これを正常なハードディスクとして認識するしかなかった。結果、ＲＡＩＤを構成しているハードディスクの幾つかがこのような半故障状態に陥った状態でデータ同期処理を実行した場合や、データ同期処理を実行中にハードディスクの幾つかが半故障状態に陥った場合、データ同期処理における多数ＩＯ処理について、内部リトライを繰り返すため非常に時間がかかることになる。例えば、正常状態であれば３時間程度で終了していたデータ同期処理が、１０時間かかることがある。
【００１３】
従来技術によれば、ＲＡＩＤを構成するハードディスクが半故障に陥ってしまうと、システム管理者が想定していた時間内にデータ同期処理が終わらず、ユーザの業務の開始時間にずれ込んでしまうことがあった。その結果、データ同期処理のＩＯ処理のために業務ＩＯ処理がなかなか動作せず、ユーザの業務に支障を与えることがあった。
【００１４】
特許文献１には、「ユーザがあらかじめ設定した時刻までにバックアップ処理が終わらない場合、もしくはユーザが手動で中断要求を行った場合」に、バックアップ処理を中断し、再開処理要求に応じて中断後の残りの処理を再開する技術が記載されている。この技術によれば、システム管理者が想定していた時間内にデータ同期処理が終了しない場合、データ同期処理を中断し、後で続きを実行することができる。
【００１５】
予定時刻までにデータ同期処理が完了しなかった場合に、ユーザが望む処理はユーザ毎に、或いは、同一ユーザであっても日時等の条件によって異なる。例えば次の（１）〜（４）が考えられるだろう。（１）データ同期処理の完了を優先し、結果的に他処理の実行速度が低下することを容認する。（２）データ同期処理を中断する。他処理は影響を受けない。次のデータ同期処理は最初から行われる。（３）データ同期処理を中断する。他処理は影響を受けない。次のデータ同期処理は中断した箇所からの続きを行う。（４）データ同期処理による影響を一定以下に抑制しつつ他処理との両方を図る。
【００１６】
【特許文献１】特開２００４−３１８８１０号公報（第００２２−００２５段落、第００３１−００３３段落）
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明はこのような状況に鑑みてなされたものであり、本発明が解決しようとする課題は、所定の時刻までにデータ同期処理が完了しなかった場合に、日付等の条件毎に予め定めた処理を続けることを可能とするデータ同期技術を提供することである。
【課題を解決するための手段】
【００１８】
上述の課題を解決するため、本発明は次のようなディスクアレイシステムのデータ同期方法、コンピュータプログラム、ディスクアレイ装置及びディスクアレイシステムを提供する。
【００１９】
まず、本発明は、データを冗長化して保持するディスクアレイシステムにおけるデータの冗長性を維持するためのデータ同期処理を実行する方法において、データ同期処理の実行中に、予め設定した時刻情報（実施の形態等における実行限界日時情報）と現在の時刻情報とを比較する処理を、ディスクアレイシステムにて実行する段階と、データ同期処理が予め設定した時刻に完了していない場合、予め設定した動作候補（表１において動作指定の候補となる０ｘ００、０ｘ０１、０ｘ０２）のいずれかを選択する処理を、ディスクアレイシステムにて実行する段階と、選択した処理（動作指定ｘ３）をディスクアレイシステムにて実行する段階とを含み、動作候補は次の（１）〜（３）の指定動作、即ち、（１）データ同期処理を続行する（表１動作指定の０ｘ００）、（２）データ同期処理を中止し、今回のデータ同期処理の停止位置に関わらずに次回のデータ同期処理を行う（表１動作指定の０ｘ０１）、（３）データ同期処理を一時停止し、今回のデータ同期処理の停止位置から次回のデータ同期処理を再開する（表１動作指定の０ｘ０２）、の（１）〜（３）からなることを特徴とするディスクアレイシステムのデータ同期方法を提供する。
【００２０】
上述のディスクアレイシステムのデータ同期方法において、動作候補は、（１）〜（３）に加えて次の（４）の指定動作、即ち、（４）予め定められた実行比率に応じて、データ同期処理及びその他の処理を並行して実行するからなることとしてもよい。この場合、ユーザは、データ同期処理及びその他の処理に起因する負荷を指定しつつ、両者を並列処理させることができる。このため、一方の処理の負荷によって他方の処理が全く進まない、或いは予想を超えて遅れるといった事態を未然に防ぐことが出来る。
【００２１】
上述のディスクアレイシステムのデータ同期方法において、時刻情報は日付または曜日の少なくとも一方を含むこととしてもよい。
【００２２】
また、本発明は、データを冗長化して保持するディスクアレイシステムのディスクアレイコントローラにて実行されるコンピュータプログラムであって、データの冗長性を維持するデータ同期処理に係るコンピュータプログラムにおいて、データ同期処理の実行中に、予め設定した時刻情報と現在の時刻情報とを比較する処理と、比較処理にてデータ同期処理が予め設定した時刻に完了していない場合、予め設定した動作候補のいずれかを選択して実行する処理とをディスクアレイコントローラに実行させるコンピュータプログラムであって、動作候補は次の（１）〜（３）の指定動作、即ち、（１）データ同期処理を続行する、（２）データ同期処理を中止し、今回のデータ同期処理の停止位置に関わらずに次回のデータ同期処理を行う、（３）データ同期処理を一時停止し、今回のデータ同期処理の停止位置から次回のデータ同期処理を再開する、の（１）〜（３）からなることを特徴とするコンピュータプログラムを提供する。
【００２３】
また、本発明は、複数のディスク装置とホストコンピュータとの間に接続される装置であって、ホストコンピュータに対し、複数のディスク装置を用いて、データを冗長化して保持するディスクアレイを提供するディスクアレイ装置において、データ同期処理の実行中に現在の時刻情報と比較するための設定時刻情報と、データ同期処理が設定時刻情報が示す時刻までに完了していない場合に実行され得る動作候補のうち、予め選択された指定動作を示す動作指定情報とを格納する設定記憶部と、実行中のデータ同期処理が設定記憶部に格納された設定時刻情報までに完了していない場合、動作指定情報が示す指定動作を選択して実行するディスクアレイコントローラとを備え、動作候補は次の（１）〜（３）の指定動作、即ち、（１）データ同期処理を続行する、（２）データ同期処理を中止し、今回のデータ同期処理の停止位置に関わらずに次回のデータ同期処理を行う、（３）データ同期処理を一時停止し、今回のデータ同期処理の停止位置から次回のデータ同期処理を再開する、の（１）〜（３）からなることを特徴とするディスクアレイ装置を提供する。
【００２４】
更に、本発明は、上述のディスクアレイ装置、ホストコンピュータ、及び、複数のディスク装置からなるディスクアレイシステムを提供する。
【発明の効果】
【００２５】
本発明によれば、ディスクが半故障状態になり、見込んでいた設定時刻を過ぎてもデータ同期処理が完了しない場合、ディスクアレイシステムは、指定動作（１）〜（３）のいずれかを実行する。つまり、ユーザはディスクが半故障状態に陥ったときの動作を予め指定することが可能である。
【００２６】
動作候補として指定動作（４）、即ち、予め定められた実行比率に応じて、データ同期処理及びその他の処理を並行して実行することを含む場合、ユーザは、データ同期処理及びその他の処理に起因する負荷を指定しつつ、両者を並列処理させることができる。このため、一方の処理の負荷によって他方の処理が全く進まない、或いは予想を超えて遅れるといった事態を未然に防ぐことが出来る。
【００２７】
また、時刻情報は日付または曜日の少なくとも一方を含むこととすれば、日付毎或いは曜日毎に異なる指定動作を設定することが出来る。これにより、例えばその他の処理による負荷が特に高いと予めわかっている日付や曜日では、その他の処理を優先して指定動作（２）乃至（３）を設定し、その翌日にはデータ同期処理を優先して指定動作（１）を設定するといった柔軟な運用が可能となる。
【発明を実施するための最良の形態】
【００２８】
本発明の一実施の形態であるディスクアレイシステム１について以下に説明する。図１に示すように、ディスクアレイシステム１は、ホストコンピュータ２、ディスクアレイ装置３、ハードディスク装置４及び５からなる。ディスクアレイ装置３はディスクアレイコントローラ６及び設定記憶部７を備える。ハードディスク装置４、５はそれぞれハードディスクコントローラ８、９を備える。
【００２９】
ディスクアレイシステム１は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ（Ｉｎｅｘｐｅｎｓｉｖｅ）  Ｄｉｓｋｓ）１またはＲＡＩＤ５のようにデータを冗長化して保持するディスクアレイシステムである。設定記憶部７には、データ同期処理の開始日時情報、実行限界日時情報、実行限界期限を過ぎた場合の動作指定情報等が格納される。ディスクアレイコントローラ３は、データ同期処理を実行することにより、内部または外部の原因によって失われたデータの冗長性を復旧してデータの冗長性を維持するが、データ同期処理と並行して、設定情報に基づいて現在時刻と実行限界日時とを比較し、実行限界日時を過ぎてもデータ同期処理が完了していない場合、対応する動作指定情報にて指定されている動作を実行する。
【００３０】
これにより、ＲＡＩＤを構成するハードディスクが半故障状態に陥り、データ同期処理の実行時間が通常より非常に長い時間にわたった結果、実行限界日時、例えばユーザの業務開始時刻以降にデータ同期処理がずれ込んだとしても、業務に伴うＩＯ処理に対して、予期せぬ悪影響が及ぶのを防ぐことが出来る。
【実施例１】
【００３１】
ディスクアレイシステム１についてより詳細に説明する。
【００３２】
設定記憶部７に格納されるデータ同期処理のスケジュール設定のデータ構造を表1に示す。スケジュール設定はユーザにより指定される。スケジュール設定は情報１００、２００、３００より構成される。データ同期処理のスケジュール実行はこのスケジュール設定に基づいて行われる。
【００３３】
【表１】
2008059014.tif 000003
【００３４】
情報１００は、データ同期処理の実行開始日時と、継続フラグとで構成されている。実行開始日時はデータ同期処理を開始する日時の情報が格納される。また、継続フラグは、開始するデータ同期処理が継続動作、または新規動作かを示す情報が格納される。ここでは、情報１００の実行開始日時として年月日及び時分秒の値を指定する。継続フラグとして０ｘ００（新規動作）、０ｘ０１（継続動作）のいずれかの値を指定する。
【００３５】
情報２００はデータ同期処理の実行限界を示す日時の情報である。情報２００には年月日及び時分秒の値を指定する。
【００３６】
情報３００は、データ同期処理を実行中に情報２００に格納された実行限界日時をオーバした場合における、データ同期処理の取り扱いを指定する情報である。本実施例では、情報３００は０ｘ００＝データ同期処理の継続、０ｘ０１＝データ同期処理の強制中断、０ｘ０２＝データ同期処理の一時中断（翌日の同時刻から再実行）のいずれかが定義されているものとする。
【００３７】
データ同期処理のスケジュール設定の際、システム管理者は、業務時間、システム負荷の低い日時、データ同期処理に必要な時間を考慮しつつ、実行開始時刻、実行限界時刻、動作指定の情報を入力する。例えば、業務開始時刻の前に実行限界時間を設定し、データ同期処理の所要時間から逆算して実行開始時刻を設定する。動作指定については、データ冗長性の復旧のために業務処理よりも優先してデータ同期処理を実行したいならば、０ｘ００を指定し、業務開始時刻以降にデータ同期処理が動作して欲しくなければ０ｘ０１を指定し、業務時間内にデータ同期処理が動作して欲しくないがデータ同期処理自体は進めて欲しいならば０ｘ０２を指定する。このように、システム管理者はシステムの運用状態に応じて動作指定を選択することができる。
【００３８】
図２を参照してディスクアレイシステム１の動作フローについて説明する。この動作フローは、データ同期処理部１０、復旧処理部２０、判定処理部３０、スケジュール監視部４０により構成されている。これら処理部１０〜４０はディスクアレイコントローラ６にて実行される。
【００３９】
データ同期処理部１０ではデータ同期処理が実行される。一般的なデータ同期処理では、ＲＡＩＤを構成している各ハードディスクの先頭アドレスから順次リードして、冗長データの比較という動作を最後尾のアドレスまで継続して実施する。一般的なデータ同期処理では、ＲＡＩＤを構成する各ハードディスクの先頭アドレスから最後尾のアドレスまで順次リードして、冗長データを比較する。これに加えて、データ同期処理１０では、破線楕円部１１で囲んだ処理、即ち、定期的に現在の日時と情報２００の値とを比較する処理を実行する。実行限界日時をオーバした場合は判定処理３０へ移行する。
【００４０】
復旧処理部２０は、データ同期処理部１０において、ハードディスクからのデータリード時に何らかのエラーを検出した場合や、冗長データ部分の比較時に不一致データを検出した場合に移行する処理である。リードエラーや不一致となったデータが復旧可能かどうかを判定し、復旧可能な場合には復旧処理を行う。
【００４１】
判定処理３０は、前述のようにデータ同期処理部１０の実行中に実行限界時間をオーバした場合に実行される処理である。判定処理部３０では、情報３００に格納された値に応じて、実行中のデータ同期処理について中断、継続などの処理を行う。
【００４２】
スケジュール監視部４０は、設定記憶部７に予め設定された情報１００の実行開始日時と現在日時とを比較し、一致するとデータ同期処理部１０に移行する。
【００４３】
ディスクアレイシステム１の動作例についてより詳細に説明する。ここではディスクアレイシステム１はＲＡＩＤ１で構成されているものとする。ユーザはディスクアレイシステム１を用いての業務を毎日午前７時０分０秒から開始するものとする。ハードディスクが全て正常な状態にあるとき、ディスクアレイシステム１におけるデータ同期処理は３時間で完了するものとする。
【００４４】
まず、システム管理者は、業務開始時刻とデータ同期処理の正常時の所要時間とを考慮してデータ同期処理のスケジュール設定を行う。ここでは情報１００の実行開始日時として２００５年０８月２２日  午前２時０分０秒を設定するものとする。情報２００の実行限界日時として２００５年８月２２日  午前６時４５分０秒を設定するものとする。また、情報３００の動作指定として、業務時間にはデータ同期処理を実行しないこととして０ｘ０１＝データ同期処理の強制中断を設定するものとする。尚、ここでは初回の設定とするので、継続フラグ＝０ｘ００（新規動作）と設定される。
【００４５】
スケジュール監視部４０はシステムの現在の日時を定期的に監視し、情報１００に格納されている値と比較する。現在の日時が２００５年０８月２２日  ０２：００：００になると、スケジュール監視部４０はデータ同期処理部１０へ移行する。
【００４６】
データ同期処理部１０は、ＲＡＩＤ１を構成しているハードディスク４、５に対して、それぞれの先頭アドレスから０ｘ４０００カウント分のデータをリードした後、互いのデータを比較する処理を行う。この処理をそれぞれのハードディスクの最後尾アドレスまで行う。データのリード及び比較の過程において、リードエラー等の何らかの異常を検出した場合、復旧処理部２０へ移行する。復旧処理部２０は、異常を検出したハードディスクのアドレス情報と異常の内容とを元にデータの復旧の可否を判定し、可能な場合、正常なハードディスクから該当するデータをリードし、異常を検出したハードディスクのデータを復旧したあと、再びデータ同期処理部１０に戻る。
【００４７】
データ同期処理部１０の実行中にハードディスク４または５が半故障状態に陥ると、リードリトライの発生や、エラーの検出とその復旧のため、データ同期処理に非常に長い時間を要するようになる。ここで、ハードディスク４が半故障状態に陥ったため、実行限界日時である２００５年８月２２日午前６時４５分０秒までに完了しなかったものとする。このとき、判定処理３０へ移行する。
【００４８】
このとき、判定処理３０では、情報３００に格納された０ｘ０１の値から、データ同期中断処理を実行し、スケジュール設定されたデータ同期処理は中断されたことを示すログ情報などを出力してデータ同期処理を終了する。
【００４９】
また、ユーザのシステムの状況等によっては、業務時間内にはデータ同期処理は動作して欲しくないものの、データ同期処理は実施したい場合がある。この場合には、先のデータ同期処理のスケジュール設定において、情報３００に０ｘ０２＝データ同期処理の一時中断を設定することになる。このように設定したときの動作について説明する。
【００５０】
実行限界日時をオーバして、判定処理３０に移行するまでは上記説明と同じである。判定処理部３０にて、情報３００に格納された０ｘ０２の値から、データ同期の一時中断処理を行い、データ同期処理を実行中のハードディスク４、５のアドレス情報を記憶させ、情報１００のデータ同期の実行開始日時を、翌日である２００５年０８月２３日  ０２：００：００に書き換え、継続フラグを０ｘ０１（継続動作）に書き込みデータ同期処理の中断を行い、スケジュール設定されたデータ同期処理は一時中断されたことを示すログ情報などを出力して終了する。
【００５１】
スケジュール監視部４０はシステムの現在の日時を定期的に監視している。翌日の同時刻である２００５年０８月２３日  ０２：００：００になると、データ同期処理１０へ移行する。データ同期処理１０では、情報１００から継続フラグが０ｘ０１であることから継続処理と判断し、継続処理のため記憶していたハードディスク４、５のアドレス情報を展開しデータ同期処理を中断していた箇所から継続して実行する。
【００５２】
以上の手順を行うことで、データ同期処理の実施中にＲＡＩＤを構成しているハードディスクが半故障状態に陥った後に、ユーザの業務時間にデータ同期処理が意図せずに動作してしまい、業務に多大な影響を与えることを防止することができる。また、ユーザの業務開始時間やシステム状況にあわせて、データ同期処理を中断／続行させたり、翌日の同じ時間から継続させたりすることが可能となる。
【実施例２】
【００５３】
実施例１では、情報３００に動作指定として設定される動作候補は、０ｘ００＝データ同期処理の継続、０ｘ０１＝データ同期処理の強制中断、０ｘ０２＝データ同期処理の一時中断の３つであった。実施例２では、これらの動作に加えて、０ｘ０３＝データ同期処理と通常ＩＯとの実行比率を１０：９０に変更して続行する、０ｘ０４＝データ同期処理と通常ＩＯとの実行比率を２０：８０に変更して続行する、を動作候補とする。また、図２のフローチャートにおいて、判定処理部３０の代わりに図３の判定処理部３１を用いる。
【００５４】
判定処理部３１にて情報３００の指定動作が０ｘ０３のとき、ディスクアレイコントローラ６は、データ同期処理に係るＩＯ処理と、その他の処理に係るＩＯ処理との比率が１０：９０になるようにＩＯ処理を実行する。同様に、指定動作が０ｘ０４のとき、ディスクアレイコントローラ６は、データ同期処理に係るＩＯ処理と、その他の処理に係るＩＯ処理との比率が２０：８０になるようにＩＯ処理を実行する。
【００５５】
このように、ディスクアレイコントローラ６にて実行されるＩＯ処理の比率を定めることにより、データ同期処理やその他の処理の実行が予期できないほどに遅延するのを防止することができる。
【００５６】
以上、本発明を実施の形態及び実施例に基づいて説明したが、本発明はこれに限定されるものではなく、当業者の通常の知識の範囲内でその変更や改良が可能であることは勿論である。
【００５７】
例えば、上述の実施例では、設定記憶部７は１日分の設定情報を記憶し、これを日毎に更新する動作を説明したが、この代わりに、１週間、１ヶ月、１年間分の設定情報を日毎に記憶することとしてもよい。この場合、例えば早朝から多忙な曜日は通常業務による処理を優先して情報３００の指定動作を０ｘ０１（データ同期処理の強制中断）とし、その他の曜日はデータ同期処理を優先して０ｘ００（データ同期処理の継続）とするといった運用が可能となる。
【図面の簡単な説明】
【００５８】
【図１】本発明の一実施の形態であるディスクアレイシステム１の機能ブロック図である。
【図２】ディスクアレイシステム１の動作を説明するためのフローチャートである。
【図３】判定処理部３１の動作を説明するためのフローチャートである。
【図４】ハードディスクの状態遷移を説明するための図である。
【符号の説明】
【００５９】
１    ディスクアレイシステム
２    ホストコンピュータ
３    ディスクアレイ装置
４、５    ハードディスク装置
６    ディスクアレイコントローラ
７    設定記憶部
９    ハードディスクコントローラ
【図１】
2008059014.tif 000004
【図２】
2008059014.tif 000005
【図３】
2008059014.tif 000006
【図４】
2008059014.tif 000007