特許文献1の従来例においては、データの記録の際、バッファメモリに格納した後、2台のHDDに記録する旨の記載があるが、常時、2台のHDDを稼動させ続けるという構成であり、その各HDDの負担は常に大きく、その長寿命化を図るという観点からは不十分な構成である。また、その構成は複雑であるため、特許文献1には2台のHDDの間で情報交換を行いデータ転送(記録)のタイミングの同期をとる旨の記載があるが、それでも、やはり2台のHDDを稼動させ続けるという構成であり、その長寿命化を図るという観点からは不十分な構成である。
特許文献2の従来例においては、管理端末がディスクの累積時間から寿命に達して交換すべき時を認識した場合、寿命に達したディスク内のデータを他のディスクに移行させる旨の記載がある。しかし、寿命に達した時点で大量のデータを他のディスクに移行するという手順では安全性に懸念が残るばかりでなく、その保守作業を行うのに時間と労力が必要になり、保守作業に面倒を伴うという不便さがある。
特許文献3の従来例においては、複数のハードディスクのうち、累積稼働時間に基づき各ハードディスクを順次にリザーブディスクに設定するというものである。しかし、一般にATAディスクの寿命は短く、ATAディスクがリザーブディスクに選定されるまでの間、ATAディスクが使用され続けるということは、ATAディスクの長寿命化に寄与するという配慮に欠けるものであり、従ってATAディスクの長寿命化を図るという観点からは結果的に不十分な構成である。
本発明は、上記従来の技術の欠点を解決し、各群のATAディスクアレイの長寿命化、即ち全体のATAディスクアレイの長寿命化を図ることができるATAディスクアレイ装置、ATAディスクアレイ装置の制御方法、及び、ATAディスクアレイ装置の制御プログラムを提供することを目的とする。
上記目的を達成するため、本発明は、複数群のATAディスクアレイを有するATAディスクアレイ装置であって、前記複数群のATAディスクアレイのうち、所定のタイミングで、いずれか一群のATAディスクアレイの稼動を選択するとともに、他の群のATAディスクアレイを休止させるコントローラを有し、データの記録を行う際、バッファを介して前記稼動中のATAディスクアレイに記録することを特徴とする(請求項1)。
上記所定のタイミングには、ATAディスク装置の立上げ時、ATAディスクアレイのアクセス終了時、ATAディスクアレイの稼動合計時間が所定時間に達した時、及び、バックアップ処理の終了時の四つの時点がある。各々の時点において、コントローラは、いずれか一群のATAディスクアレイの稼動を選択するとともに、他の群のATAディスクアレイを休止させる。
又、本発明は、複数群のATAディスクアレイを有するATAディスクアレイ装置であって、前記複数群のATAディスクアレイのうち、所定のタイミングで、いずれか一群のATAディスクアレイの稼動を選択するとともに、他の群のATAディスクアレイを休止させるコントローラと、稼動中の前記ATAディスクアレイへのデータの記録の際、そのデータを一旦記録して前記稼動中の前記ATAディスクアレイに出力するバッファとを備えることを特徴とする(請求項2)。
上記所定のタイミングには、同じく、ATAディスク装置の立上げ時、ATAディスクアレイのアクセス終了時、ATAディスクアレイの稼動合計時間が所定時間に達した時、及び、バックアップ処理の終了時の四つの時点がある。各々の時点において、コントローラは、いずれか一群のATAディスクアレイの稼動を選択するとともに、他の群のATAディスクアレイを休止させる。本発明においては、ATAディスクアレイを二つ以上の群用いるが、その数に特段の限定はない。但し、二つの群だけあれば、十分に本発明の目的を達成することができる。
更に、本発明では、前記コントローラは、前記稼動中のいずれか一群のATAディスクアレイがデータの記録を終了した場合、当該記録したデータを、他の一群のATAディスクアレイを稼動させ、その新たに稼動中の前記他の一群のATAディスクアレイにも記録した後、前記先に稼動中のATAディスクアレイを休止させるようにしたことを特徴とする(請求項3)。
前記稼動中のいずれか一群のATAディスクアレイがデータの記録を終了した場合に、稼動を交換するため、コントローラは、明快に交換時期を判断することができ、しかも新たに稼動するATAディスクアレイには、十分なスピンアップ時間を与えることが可能である。
又、本発明は、前記コントローラは、前記稼動中のいずれか一群のATAディスクアレイの稼働時間を監視して、前記各群のATAディスクアレイの稼動と休止を選択的に切換える稼動制御部を備え、稼働時間の監視で前記稼動を切換えた際、当該新たに稼動したATAディスクアレイに対し前記先に稼動中のATAディスクアレイ内の記録データ、又は前記バッファ内のデータを記録した後、前記先に稼動中のATAディスクアレイを休止させるようにしたことを特徴とする(請求項4)。
上記稼動制御部は、稼動中のいずれか一群のATAディスクアレイの稼働時間を監視して、前記各群のATAディスクアレイの稼動と休止を選択的に切換える。その際、新たに稼動したATAディスクアレイに対し前記先に稼動中のATAディスクアレイ内の記録データ、又は前記バッファ内のデータを記録した後、前記先に稼動中のATAディスクアレイを休止させるため、記録エラーの発生する確率は極めて小さく、無視することが可能になり、信頼性は大きく向上する。
更に、本発明は、前記コントローラは、データを読み出す際、前記バッファ内にデータがある場合、前記稼動中のATAディスクアレイ内のデータを直接的に読出す際の適切なタイミングで前記バッファ内のデータも読出す構成を有することを特徴とする(請求項5)。
上記コントローラは、データを読出す際、前記バッファ内にデータがある場合、前記稼動中のATAディスクアレイ内のデータを直接的に読出す際の適切なタイミングで前記バッファ内のデータも読出す。但し、バッファ内にデータがない場合は、稼動中のATAディスクアレイから直接的にデータを読出す。
又、本発明は、複数群のATAディスクアレイを有するATAディスクアレイ装置の制御方法であって、前記複数群のATAディスクアレイのうち、所定のタイミングで、いずれか一群のATAディスクアレイを稼動を選択するとともに、他の群のATAディスクアレイを休止させる稼動選択工程と、データの記録を行う際、バッファに一旦そのデータを記録させた上で、そのバッファ内のそのデータを前記稼動中の前記ATAディスクアレイに記録する記録工程と、所定のタイミングで、他の一群のATAディスクアレイの稼動に切換えて前記稼動中のATAディスクアレイを休止させ、当該切換え後の新たに稼動するATAディスクアレイを記録対象にする記録先切換工程とを含むことを特徴とする(請求項6)。
上記所定のタイミングには、同じく、ATAディスク装置の立上げ時、ATAディスクアレイのアクセス終了時、ATAディスクアレイの稼動合計時間が所定時間に達した時、及び、バックアップ処理の終了時の四つの時点がある。各々の時点において、コントローラは、いずれか一群のATAディスクアレイの稼動を選択するとともに、他の群のATAディスクアレイを休止させる。稼動選択工程は、データを記録する以前に、いずれか一群のATAディスクアレイを稼動を選択するとともに、他の群のATAディスクアレイを休止させておく。記録工程は、データの記録を行う際、バッファに一旦そのデータを記録させた上で、そのバッファ内のそのデータを前記稼動中のATAディスクアレイに記録してゆく。記録先切換工程は、記録工程のある時点で稼動交換のタイミングが発生した場合、他の一群のATAディスクアレイの稼動に切換えて前記稼動中のATAディスクアレイを休止させ、当該切換え後の新たに稼動するATAディスクアレイをデータの記録先に設定する。
又、本発明は、前記先に稼動中のATAディスクアレイの記録終了又は所定稼働時間のタイミングで、前記他の群のATAディスクアレイを稼動して、前記先に稼動中のATAディスクアレイに記録したデータ、及び、前記バッファ内に残るデータを前記新たに稼動するATAディスクアレイにも記録した後、前記先に稼動中のATAディスクアレイを休止させるバックアップ工程を含むことを特徴とする(請求項7)。
上記バックアップ工程では、各群のATAディスクアレイを稼動させ、各群のATAディスクアレイの間で同一のデータを保有するまで互いのバックアップ動作を行わせる。
更に、本発明は、データを読み出す際、前記バッファ内にデータがある場合、前記稼動中のATAディスクアレイ内のデータを直接的に読出す際の適切なタイミングで前記バッファ内のデータも読出す読出工程を含むことを特徴とする(請求項8)。
読出工程では、前記バッファ内にデータがある場合、前記稼動中のATAディスクアレイ内のデータを直接的に読出す際の適切なタイミングで前記バッファ内のデータも読出す。但し、バッファ内にデータがない場合は、稼動中のATAディスクアレイから直接的にデータを読出す。
又、本発明は、複数群のATAディスクアレイを有するATAディスクアレイ装置の制御プログラムであって、前記複数群のATAディスクアレイのうち、所定のタイミングで、いずれか一群のATAディスクアレイの稼動を選択するとともに、他の群のATAディスクアレイを休止させる第1の手順と、データの記録を行う際、バッファに一旦そのデータを記録させた上で、そのバッファ内のそのデータを前記稼動中の前記ATAディスクアレイに記録する第2の手順と、所定のタイミングで、他の一群のATAディスクアレイの稼動に切換えて前記稼動中のATAディスクアレイを休止させ、当該切換え後の新たに稼動するATAディスクアレイを記録先にする第3の手順とをコントローラに実行させることを特徴とする(請求項9)。
上記所定のタイミングには、同じく、ATAディスク装置の立上げ時、ATAディスクアレイのアクセス終了時、ATAディスクアレイの稼動合計時間が所定時間に達した時、及び、バックアップ処理の終了時の四つの時点がある。各々の時点において、コントローラは、いずれか一群のATAディスクアレイの稼動を選択するとともに、他の群のATAディスクアレイを休止させる。第1の手順は、データを記録する以前に、いずれか一群のATAディスクアレイを稼動を選択するとともに、他の群のATAディスクアレイを休止させておく。第2の手順は、データの記録を行う際、バッファに一旦そのデータを記録させた上で、そのバッファ内のそのデータを前記稼動中のATAディスクアレイに記録してゆく。次に、第3の手順は、記録工程のある時点で稼動交換のタイミングが発生した場合、他の一群のATAディスクアレイの稼動に切換えて前記稼動中のATAディスクアレイを休止させ、当該切換え後の新たに稼動するATAディスクアレイをデータの記録先に設定する。
又、本発明は、前記先に稼動中のATAディスクアレイの記録終了又は所定稼働時間のタイミングで、前記他の群のATAディスクアレイを稼動して、前記先に稼動中のATAディスクアレイに記録したデータ、及び、前記バッファ内に残るデータを前記新たに稼動するATAディスクアレイにも記録した後、前記先に稼動中のATAディスクアレイを休止させる第4の手順を前記コントローラに実行させることを特徴とする(請求項10)。
上記第4の手順では、各群のATAディスクアレイを稼動させ、各群のATAディスクアレイの間で同一のデータを保有するまで互いに不足するデータの記録処理、即ちバックアップ処理を行う。
又、本発明は、データを読み出す際、前記バッファ内にデータがある場合、前記稼動中のATAディスクアレイ内のデータを直接的に読出す際の適切なタイミングで前記バッファ内のデータも読出す第5の手順を前記コントローラに実行させることを特徴とする(請求項11)。
上記第5の手順は、前記バッファ内にデータがある場合、前記稼動中のATAディスクアレイ内のデータを直接的に読出す際の適切なタイミングで前記バッファ内のデータも読出す。適切なタイミングは、アドレスやトラック番号等で容易に判断し得る。但し、バッファ内にデータがない場合は、稼動中のATAディスクアレイから直接的にデータを読出す。
又、本発明は、データを読み出す際、所定のタイミングで、他の一群のATAディスクアレイの稼動に切換えて前記稼動中のATAディスクアレイを休止させ、当該切換え後の新たに稼動するATAディスクアレイを読出先にする第6の手順を前記コントローラに実行させることを特徴とする(請求項12)。
上記所定のタイミングには、ATAディスクアレイのアクセス終了時、ATAディスクアレイの稼動合計時間が所定時間に達した時、及び、バックアップ処理の終了時の三つの時点がある。上記第6の手順は、そのいずれかのタイミングで、他の一群のATAディスクアレイの稼動に切換えて前記稼動中のATAディスクアレイを休止させ、当該切換え後の新たに稼動するATAディスクアレイを読出先に設定する。
本発明によれば、各ATAディスクアレイを一群ずつ交互に稼動させ、他の群のATAディスクアレイを休止させておくことが可能であり、そのため、全体のATAディスクアレイの長寿命化を図ることができる。
以下、図面を参照して、本発明に係るATAディスク装置の好ましい実施の形態について説明する。図1は本実施の形態のATAディスク装置の概略構成を示すブロック図である。本実施の形態のATAディスク装置1は、図1に示すように、本発明の一つの要点である複数群のATAディスクアレイとして二つの群のATAディスクアレイ11,12、及びATAディスクアレイドライブ11A,12Aと、二つの群のATAディスクアレイドライブ11A,12Aのいずれか一方の稼動と他方の休止の制御、及び全体の制御を行うコントローラ13と、ATAディスクアレイドライブ11A,12Aの稼働と休止を直接的に切換えるディスク電源制御部14とを備え、かつ、稼動中のATAディスクアレイ11又は12へのデータの記録の際、そのデータを一旦記録して稼動中のATAディスクアレイドライブ11A又は12Aに出力するバッファ15とを備えて構成されている。
一方のATAディスクアレイ11は、ATAディスクアレイドライブ11Aの稼動に伴い例えばホスト16からのアクセス(即ち記録又は読出)が可能となり、他方のATAディスクアレイ12は、ATAディスクアレイドライブ12Aの稼動に伴い例えばホスト16からのアクセス(即ち記録又は読出)が可能となる。ATAディスクアレイドライブ11A,12Aの稼動と休止もコントローラ13が制御する。
ディスク電源制御部14は、ATAディスクアレイドライブ11Aへの電源ON,OFFの切換え、ATAディスクアレイドライブ12Aへの電源ON,OFFの切換えを制御する。ディスク電源制御部14の動作もコントローラ13が制御する。
バッファ15は、例えばフラッシュメモリや、FCディスク(FCディスクドライブ)等のメモリであり、その利用の有無、及び記録(蓄積)するデータの出力先はコントローラ13が制御する。
一方、図2はコントローラ13の機能構成を示す機能ブロック図である。コントローラ13は、図2に示すように、アクセス認識部21、バッファ制御部22、通信制御部23、稼働時間監視部24、タイミング判断部25、ATAディスクアレイ制御部26、アドレス管理部27、及び、バックアップ制御部28を備える。
コントローラ13の上記各部21,22,23,24,25,26,27の構成、及びディスク電源制御部14の構成は、論理回路等で構成する態様、あるいは、CPUと所定のアプリケーションで随時機能的に実現するという態様がある。本例では後者の態様を採用する。尚、アプリケーションを記録する記録部やRAM等のメモリは、コントローラ13の内外を問わず、いずれに備えても良いことは勿論である。
コントローラ13のアクセス認識部21は、例えばホスト16からのアクセス要求の内容(即ち記録又は読出)を図示しない通信回路や通信インタフェイスに入力された情報から認識する。即ち、アクセス認識部21は、アクセス要求に対応するデータの内容やファイル名等を、例えばディレクトリ等から認識する。認識した内容は、例えばRAM等のメモリに記録して、後述するATAディスクアレイ制御部26やアドレス管理部27の動作の動作判断に利用する。
コントローラ13のバッファ制御部22は、例えばホスト16からのアクセス要求の内容が情報の記録である場合、通信インタフェイスから取込んだデータをバッファ15に記録(蓄積)させるとともに、バッファ15に記録したデータの出力先を制御する。バッファ制御部22は、バッファ15へのデータの記録(蓄積)が所定量以上になるのを監視して、その段階で出力先へ出力する。そのデータの出力先は、稼動中のATAディスクアレイドライブ11A又は12Aのいずれかである。一方、バッファ制御部22は、ATAディスクドライブ11A,12Aの電源OFF、ONが変更された場合、所定時間の経過後、そのデータを出力先へ出力する。バッファ制御部22は、例えばホスト16からのアクセス要求の内容が情報の読出である場合、バッファ15内にホスト16が求める情報があれば、その情報をホスト16に送信させる旨の情報(コマンド)を後述する通信制御部23やATAディスクアレイ制御部26に対し与えるべく、RAM等のメモリに記録する。
コントローラ13の通信制御部23は、通信インタフェイスに入力された情報から上記アクセス認識部21が認識したアクセス内容に基づいてデータの受信、送信を制御する。特に、データの送信に際しては、稼動中の例えばATAディスクアレイ11等に保存されたデータの送信先の認識、及びそのデータの送信処理を制御する。
コントローラ13の稼働時間監視部24は、例えばディスク電源制御部14がATAディスクアレイドライブ11Aに電源ONを継続した合計時間、及び、ATAディスクアレイドライブ12Aに電源ONを継続した合計時間を例えばクロックの計数を行うとともに監視する。稼働時間監視部24が監視した双方の合計時間の値は、例えばRAM等のメモリに記録する。そして、いずれか一方の合計時間の値が所定時間に達した場合は、その一方に対応する稼動中の例えばATAディスクアレイ11等の休止をタイミング判断部25に判断させるべく、その旨の情報(コマンド)をRAM等のメモリに記録するとともに、その合計時間の値をクリアする。但し、双方の各合計時間の値は常に各々総計して、双方の総合計時間としてRAM等のメモリに記録しておいても良い。その総合計時間の値をディスプレイ等に表示することで、ATAディスクアレイ11,12の寿命を前もって予測することも可能になる。
コントローラ13のタイミング判断部25は、ATAディスクアレイドライブ11Aの稼動開始と休止開始のタイミング、かつ、ATAディスクアレイドライブ12Aの稼動開始と休止開始のタイミングを判断する。各タイミングの判断は、第1にATAディスク装置1の立上げ時、第2にATAディスクアレイ11又は12のアクセス終了時、第3にATAディスクアレイ11又は12の稼動合計時間が所定時間に達した時、及び、第4に後述するバックアップ処理の終了時の四つの判断時点がある。まず、ATAディスク装置1の立上げ時は、例えば前回の終了時に休止していた方のATAディスクアレイドライブ11A等を稼動開始に選定して、その稼動開始をATAディスクアレイ制御部26に行わせるべく、その旨の情報(コマンド)をRAM等のメモリに記録する。ATAディスクアレイ11又は12のアクセス終了時は、アクセス実行のため稼動中であった方のATAディスクアレイドライブ11A等の休止、及び他方のATAディスクアレイドライブ12A等の稼動開始をATAディスクアレイ制御部26に行わせるべく、その旨の情報(コマンド)をRAM等のメモリに記録する。一方、稼動中のATAディスクアレイドライブ11A等の稼動合計時間が所定時間に達した時は、RAM等のメモリからその旨認識して、稼動中であった方のATAディスクアレイドライブ11A等の休止、及び他方のATAディスクアレイドライブ12A等の稼動開始をATAディスクアレイ制御部26に行わせるべく、その旨の情報(コマンド)をRAM等のメモリに記録する。
コントローラ13のATAディスクアレイ制御部26は、第1に上記タイミング判断部25の第1の判断結果に基づいて例えばATAディスクアレイドライブ11Aを稼動させるべく、上記ディスク電源制御部14に対しその旨を示す動作指令信号を出力するとともに、ATAディスクアレイドライブ11A又は12Aに対し記録又は読出の指令をも出力する。ATAディスクアレイ制御部26は、第2に上記タイミング判断部25の第2〜第3の判断結果に基づいて稼動中の例えばATAディスクアレイドライブ11Aの休止、及び、代わって休止中の例えばATAディスクアレイドライブ12Aの稼動開始を行わせるべく、上記ディスク電源制御部14に対しその旨を示す動作指令信号を出力するとともに、ATAディスクアレイドライブ11A又は12Aに対し記録又は読出の指令をも出力する。ATAディスクアレイ制御部26は、第3に稼動中の例えばATAディスクアレイ11のデータの記録終了後に、休止中の例えばATAディスクアレイドライブ12Aを稼動させ、その記録したデータを続いて稼動した例えばATAディスクアレイ12にも記録するバックアップ処理を後述するバックアップ制御部28に行わせるべく、上記ディスク電源制御部14に対し休止中の例えばATAディスクアレイドライブ12Aをも稼動させる旨を示す動作指令信号を出力する一方で、バックアップ制御部28に対しバックアップ実行の指令を出力する。
コントローラ13のアドレス管理部27は、稼動中の例えばATAディスクアレイ11に対するアクセスの際、あるいはバックアップ処理の際に、そのデータの記録先アドレス、あるいは、そのデータの読出先アドレスを指定(設定)する。
コントローラ13のバックアップ制御部28は、バックアップ処理実行の指令を認識した際、稼動中の例えばATAディスクアレイ11に記録したデータを読出して、続いて稼動した例えばATAディスクアレイ12にも記録するバックアップ処理を行う。バックアップ処理に際しては、続いて稼動する例えばATAディスクアレイ12のスピンアップ時間を考慮して開始する。バックアップ制御部28は、バックアップ終了後、先に稼動中の例えばATAディスクアレイドライブ11Aを休止させるべく、即ち先に稼動中の例えばATAディスクアレイドライブ11Aの休止タイミングを上記タイミング判断部25に知らせるべく、その旨の情報(コマンド)をRAM等のメモリに記録する。
尚、上記稼働時間監視部24、上記タイミング判断部25、上記ATAディスクアレイ制御部26、及び上記ディスク電源制御部14は、請求項4に記載の稼動制御部を構成する。
次に、本実施の形態のATAディスクアレイ装置の制御方法の一例について、図3に示すATAディスクアレイ装置の制御プログラムの一例(フローチャート)の説明をも含めて説明する。
本実施の形態のATAディスクアレイ装置の「データ記録時」の制御方法は、1・立上げ工程、2・アクセス認識工程、3・バッファ制御工程、4・記録工程、5・稼動選択工程(記録先切換工程)、6・記録工程、7・バックアップ工程、8・稼動切換工程の各工程を順次行ってゆく。
即ち、まず、立上げ工程で、電源ON(ステップ301)を認識したコントローラ13のCPU(タイミング判断部25)は、前回の使用終了、つまり電源OFFの時に休止中であった方の例えばATAディスクアレイドライブ11Aの稼動を選択すべく、その旨を示す情報(コマンド)をRAM等のメモリに記録する(ステップ302の一部)。
そのため、コントローラ13のCPU(ATAディスクアレイ制御部26)は、メモリから上記情報(コマンド)を認識して、ATAディスクアレイドライブ11Aを稼動させるべく、ディスク電源制御部14に対しその旨を示す動作指令信号を出力し、ディスク電源制御部14からATAディスクアレイドライブ11Aに対し電源投入(即ち電源ON)を行う(ステップ302の一部)。ATAディスクアレイドライブ11Aが稼動するとともに、ATAディスクアレイドライブ12Aは休止状態を維持する。ステップ302は、請求項9に記載の第1の手順に相当する。
次いでアクセス認識工程で、コントローラ13のCPU(アクセス認識部21)は、通信インタフェイスに対する例えばホスト16からのアクセスを認識した際(ステップ303)、そのアクセスの要求内容がデータの記録であることを確認する(ステップ304「Yes」)。
次いでバッファ制御工程で、コントローラ13のCPU(バッファ制御部22)は、バッファ15に電源投入を行うとともにバッファ15のアドレスを指定し、バッファ15を通信インタフェイスに対しデータ受信可能に所謂経路的な接続(出力先指定)を行い(ステップ305)、かつ、ホスト16からのデータを取込む(ステップ306)とともに、そのデータをバッファ15に記録する(ステップ307)一方、続いてCPU(バッファ制御部22)は、バッファ15に記録したデータの出力先を現在稼動中のATAディスクアレイ11に制御(経路的に接続)する。通信インタフェイスからデータを受信する際は、通信制御部23がその受信を制御する。
次いで記録工程で、コントローラ13のCPU(ATAディスクアレイ制御部26)は、バッファ15に蓄積するデータが一定量を超えた時、又は休止中の例えばATAディスクドライブ12Aの電源OFFからONへの変更がなされてから一定時間経過した時、バッファ15内からデータを読出して(ステップ308)、その読出したデータをその出力先である現在稼動中のATAディスクアレイドライブ11Aに出力し、稼動中のATAディスクアレイドライブ11Aに、そのデータのその記録先である稼動中のATAディスクアレイ11の所定のアドレスへの記録を行わせてゆく(ステップ309)。一方、バッファ15は、稼動中の例えばATAディスクアレイ11にコピーを完了したデータを削除して、データ蓄積領域を再確保し、ホスト16からのデータの記録の継続を可能にする。ステップ308,309は、請求項9に記載の第2の手順に相当する。
次いで稼動選択工程(記録先切換工程)で、コントローラ13のCPU(稼働時間監視部24)は、ディスク電源制御部14がATAディスクアレイドライブ11Aに電源ONを継続した時間、即ちその稼働時間を監視する(ステップ310)。その合計時間が所定時間に達していない場合(ステップ311「No」)、記録終了(ステップ313「No」)でなければ、コントローラ13のCPU(ATAディスクアレイ制御部26)は、その旨を認識して、ATAディスクアレイドライブ11Aの稼動を継続すべく、ディスク電源制御部14から稼動中のATAディスクアレイドライブ11Aへの電源投入(即ち電源ON)を維持する。そして、上記記録工程以降の動作を繰り返す(ステップ306〜311)。
しかし、ATAディスクアレイ11が稼動した合計時間が所定時間に達した場合(ステップ311「Yes」)、コントローラ13のCPU(ATAディスクアレイ制御部26)は、その旨を認識して、休止中のATAディスクアレイ12を稼動させるべく、ディスク電源制御部14に対しその旨を示す動作指令信号を出力する。その結果、ディスク電源制御部14は、稼動中のATAディスクアレイドライブ11Aに対する電源投入(即ち電源ON)を遮断して休止させ、かつ、休止中のATAディスクアレイドライブ12Aに対し電源投入(即ち電源ON)を行って稼動させ、データの記録先を切換える(ステップ312)。稼動切換えの結果は、RAM等のメモリに記録する。そして、稼動切換え後の現在稼動中のATAディスクアレイ12に対しバッファ15内のデータを記録してゆく。ステップ312は、請求項9に記載の第3の手順に相当する。
次いで稼動選択工程(記録先切換工程)で、コントローラ13のCPU(タイミング判断部25)は、RAM等のメモリの参照に基づいて、切換え後の現在稼動中のATAディスクアレイ12に対する記録が終了であるか否かを判断する(ステップ313)。記録終了でない場合(ステップ313「No」)、上記記録工程以降の動作を繰り返して(ステップ306〜313)、現在稼動中のATAディスクアレイ12に対するバッファ15内のデータの記録を続行する。
しかし、その記録を続けた結果、記録終了に至った場合(ステップ313「Yes」)、次いでバックアップ工程で、コントローラ13のCPU(バックアップ制御部28)は、ATAディスクアレイ制御部26からのバックアップ処理実行の指令を認識して、現在稼動中の例えばATAディスクアレイ12に記録したデータを読出し、続いて稼動した例えばATAディスクアレイ11にもバックアップとして記録する(ステップ314)。尚、データの記録終了前に記録先を切換えている場合(ステップ312)、バックアップ工程では、稼動中の双方のATAディスクアレイドライブ11A,12Aに対し、互いに非記録データのバックアップ処理を例えば交互に行わせる(ステップ314)。ステップ314は、請求項10に記載の第4の手順に相当する。
次いでバックアップ工程で、コントローラ13のCPU(バックアップ制御部28)は、バックアップ終了後、先に稼動中の例えばATAディスクアレイドライブ12Aを休止させるべく、その旨の情報(コマンド)をRAM等のメモリに記録する(ステップ315の一部)。
次いで稼動切換工程で、コントローラ13のCPU(ATAディスクアレイ制御部26)は、RAM等のメモリから稼動切換えの旨のコマンドを認識して、先に休止中であったATAディスクアレイドライブ11Aの稼動に切換える(記録先変更)べく、ディスク電源制御部14に対しその旨を示す動作指令信号を出力する(ステップ315の一部)。その結果、ディスク電源制御部14は、稼動中のATAディスクアレイドライブ12Aに対する電源投入(即ち電源ON)を遮断して休止させ、かつ、もう一つの稼動中(先に休止中)であるATAディスクアレイドライブ12Aに対する電源投入(即ち電源ON)を継続し、データの記録先を切換える(ステップ315の一部)。その稼動切換えの結果も、RAM等のメモリに記録する。ステップ315は、請求項9に記載の第3の手順に相当する。
一方、本実施の形態のATAディスクアレイ装置の「データ読出時」の制御方法は、1・立上げ工程、2・アクセス認識工程、3・バッファ制御工程、4・読出工程、5・稼動選択工程(読出先切換工程)、6・読出工程、7・稼動切換工程の各工程を順次行ってゆく。
即ち、立上げ工程(ステップ301,302)の後、次いでアクセス認識工程で、コントローラ13のCPU(アクセス認識部21)は、通信インタフェイスに対する例えばホスト16からのアクセスを認識した際(ステップ303)、そのアクセスの要求内容が読出であることを判断する(ステップ316「Yes」)。続いてコントローラ13のCPU(アクセス認識部21)は、例えばディレクトリ等から今回の読出要求に該当するデータが稼動中の例えばATAディスクアレイ11に保存されていることを確認する(ステップ317「Yes」)。尚、双方のATAディスクアレイ11,12は、上記バックアップ処理により双方ともに同一のデータを保存している。
次いでアクセス認識工程で、コントローラ13のCPU(アクセス認識部21)は、バッファ15内にホスト16が要求するデータの記録があるか否かを判断する(ステップ318)。バッファ15内にそのデータがある場合(ステップ318「Yes」)、コントローラ13のCPU(アドレス管理部27)は、稼動中のATAディスクアレイ11内のそのデータのアドレスとバッファ15内のデータのアドレスとの関係を検索して、バッファ15内のデータの読出し及び送信のタイミングを認識し、その認識結果を、例えばRAM等のメモリに記録する(ステップ319)。
次いでバッファ制御工程で、コントローラ13のCPU(バッファ制御部22)は、RAM等のメモリの内容を解読して、バッファ15内のデータの読出し及び送信のタイミングの時点に至るまで待機する。
次いで読出工程で、コントローラ13のCPU(ATAディスクアレイ制御部26)は、現在稼動中のATAディスクアレイドライブ11Aに対しアクセス認識部21が認識したデータの読出しの指令を与え、稼動中のATAディスクアレイドライブ11Aに、そのデータを稼動中のATAディスクアレイ11の所定のアドレスからの読出しを行わせてゆく(ステップ320)。読出したデータは、通信インタフェイスからホスト16に対し送信させてゆく(ステップ321)。その際、コントローラ13のCPU(バッファ制御部22)は、バッファ15内のデータの読出しタイミングに至ると、バッファ15からデータを読出して(ステップ320)、通信インタフェイスからホスト16に対し送信させる(ステップ321)。通信インタフェイスからデータを送信する際は、通信制御部23がその送信を制御する。ステップ320,321は、請求項11に記載の第5の手順に相当する。
次いで稼動選択工程(読出先切換工程)で、コントローラ13のCPU(稼働時間監視部24)は、ディスク電源制御部14がATAディスクアレイドライブ11Aに電源ONを継続した時間、即ちその稼働時間を監視する(ステップ322)。その合計時間が所定時間に達していない場合(ステップ322「No」)、読出終了(ステップ325「No」)でなければ、コントローラ13のCPU(ATAディスクアレイ制御部26)は、その旨を認識して、ATAディスクアレイドライブ11Aの稼動を継続すべく、ディスク電源制御部14から稼動中のATAディスクアレイドライブ11Aに対する電源投入(即ち電源ON)を維持する。そして、上記読出工程以降の動作を繰り返す(ステップ320〜322)。
しかし、ATAディスクアレイドライブ11Aの稼動した合計時間が所定時間に達した場合(ステップ323「Yes」)、コントローラ13のCPU(ATAディスクアレイ制御部26)は、その旨を認識して、休止中のATAディスクアレイドライブ12Aを稼動させるべく、ディスク電源制御部14に対しその旨を示す動作指令信号を出力する(ステップ324の一部)。その結果、ディスク電源制御部14は、稼動中のATAディスクアレイドライブ11Aに対する電源投入(即ち電源ON)を遮断して休止させ、かつ、休止中であったATAディスクアレイドライブ12Aに対し電源投入(即ち電源ON)を行って稼動させ、データの読出先を切換える(ステップ324の一部)。稼動切換えの結果は、RAM等のメモリに記録する。ステップ324は、請求項12に記載の第6の手順に相当する。
次いで稼動選択工程(読出先切換工程)で、コントローラ13のCPU(タイミング判断部25)は、RAM等のメモリの参照に基づいて、切換え後の現在稼動中のATAディスクアレイ12からの読出が終了であるか否かを判断する(ステップ325)。記録終了でない場合(ステップ325「No」)、上記読出工程以降の動作を繰り返して(ステップ320〜325)、現在稼動中のATAディスクアレイ12からのデータの読出を続行する。
しかし、その読出を続けた結果、読出終了に至った場合(ステップ325「Yes」)、次いで稼動切換工程で、コントローラ13のCPU(ATAディスクアレイ制御部26)は、RAM等のメモリから稼動切換えの旨のコマンドを認識して、休止中のATAディスクアレイドライブ11Aの稼動に切換えるべく、ディスク電源制御部14に対しその旨を示す動作指令信号を出力する(ステップ326の一部)。その結果、ディスク電源制御部14は、稼動中のATAディスクアレイドライブ11Aに対する電源投入(即ち電源ON)を遮断して休止させ、かつ、もう一方の休止中であったATAディスクアレイドライブ12Aに対する電源投入(即ち電源ON)を行って、データの読出先(又は記録先)を切換える(ステップ326の一部)。その稼動切換えの結果も、RAM等のメモリに記録する。ステップ326は、請求項12に記載の第6の手順に相当する。
以上説明したように、本実施の形態においては、第1に、ATAディスクアレイ11,12は、二重化して冗長性をもたせており、データの記録を行う際、一時的にバッファ15に蓄積して、いずれか一方の稼動中のATAディスクアレイ11等にコピーしてゆくため、他方のATAディスクアレイ12は休止させることができる。結果として、双方のATAディスクアレイ11,12は交互に休止させることが可能であり、ATAディスクアレイ11,12の長寿命化を図ることができる。バッファ15は、休止中のATAディスクアレイ11等の電源ONの際、そのスピンアップ時間の間もデータ蓄積を行うことが可能であり、その結果、アクセスを中断させる必要がなく、処理の効率化及び利便性が向上する。即ちデータの記録性能が向上する。
第2に、ATAディスクアレイドライブ11A,12Aの電源OFF、ONを制御するディスク電源制御部14は、それぞれのATAディスクアレイドライブ11A,12Aの電源ON時間の監視、即ち稼動合計時間の集計を可能にし、その結果、それぞれのATAディスクアレイ11,12の稼動時間がわかり、ATAディスクアレイ11,12の稼動寿命時間に対する監視が可能になる。これによりATAディスクアレイ装置1の使用に際して、その信頼性を向上させることができる。