説明

RAIDグループ制御装置

【課題】RAIDグループの各構成ドライブのファームウェアを安全に書き換えられるRAIDグループ制御装置を提供する。
【解決手段】RAIDグループ制御装置は、別のファームウェアを適用すべきRAIDグループに関するアクセス頻度情報に基づき、当該RAIDグループについてアクセス頻度が前後の時間帯よりも低くなる時間帯を求め、求めた時間帯に基づいて、当該RAIDグループに属するドライブ150のファームウェアの書き換え処理の開始タイミングを決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、RAIDグループを制御するRAIDグループ制御装置に関する。
【背景技術】
【0002】
周知のように、近年、複数のRAIDグループを備えたディスクアレイ装置が、各種サービス用のデータや業務データを管理(保存)するために使用されるようになってきている。
【0003】
そのようなディスクアレイ装置においても、各RAIDグループを構成しているドライブ(通常、ハードディスクドライブ)のファームウェアの書き換えが必要になる場合がある。しかしながら、サービス用のデータや業務データを管理するために使用されているディスクアレイ装置のRAIDグループを、ファームウェアの書き換えのために停止させる(アクセスできない状態とする)ことは好ましくない。
【0004】
そして、冗長性を有するRAIDグループ(RAID0以外のRAIDレベルのRAIDグループ)は、1台のドライブを停止させても記憶装置として機能し得る。そのため、冗長性を有するRAIDグループの各構成ドライブのファームウェアを、RAIDグループを停止させることなく、書き換える装置も開発されている。
【0005】
ただし、既存の装置は、ファームウェアの書き換え指令の入力タイミングによっては、データロストといった現象を引き起こす可能性があるものとなっている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−318666号公報
【特許文献2】特開2009−75716号公報
【特許文献3】特開2008−250945号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
そこで、本発明の課題は、RAIDグループの各構成ドライブのファームウェアを、安全に書き換えられるRAIDグループ制御装置を提供することにある。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明の一態様の、冗長性を有するRAIDグループに対してアクセス制御を行うRAIDグループ制御装置は、RAIDグループについてのアクセス頻度情報を取得する取得部と、指定された時間範囲の中で前後の時間帯よりもアクセス頻度が低い時間帯を、前記アクセス頻度情報に基づいて求め、求めた時間帯に基づいて、前記RAIDグループに属するドライブのファームウェアの書き換え処理の開始タイミングを決定するスケジューリング部と、決定した前記開始タイミングで、ドライブのファームウェアの書き換え処理を開始するファームウェア書き換え処理部とを備える。
【発明の効果】
【0009】
本発明によれば、RAIDグループの各構成ドライブのファームウェアを安全に書き換えられるRAIDグループ制御装置を提供することが出来る。
【図面の簡単な説明】
【0010】
【図1】図1は、本発明の第1実施形態に係るディスクアレイ装置の構成及び使用形態例の説明図である。
【図2A】図2Aは、第1実施形態に係るディスクアレイ装置内のマスターCMの機能ブロック図である。
【図2B】図2Bは、第1実施形態に係るディスクアレイ装置内のスレーブCMの機能ブロック図である。
【図3】図3は、第1実施形態に係るディスクアレイ装置内のアクセス退避制御部のリードアクセスに対する動作の説明図である。
【図4A】図4Aは、アクセス退避制御部のライトアクセスに対する動作の説明図である。
【図4B】図4Bは、アクセス退避制御部のライトアクセスに対する動作の説明図である。
【図5】図5は、非ファームウェア適用中ドライブが故障した場合におけるアクセス退避制御部の動作の説明図である。
【図6】図6は、マスターCMのメモリ上に記憶されているアクセス数情報の説明図である。
【図7】図7は、マスターCMのメモリ上に記憶されているアクセス履歴情報の説明図である。
【図8】図8は、第1実施形態に係るディスクアレイ装置内のアクセスランク調整部が行う処理の内容の説明図である。
【図9】図9は、アクセスランク調整部が生成(更新)するランクテーブルの説明図である。
【図10】図10は、第1実施形態に係るディスクアレイ装置内のスケジュール制御部が実行する第1FW適用制御処理の流れ図である。
【図11】図11は、第1FW適用制御処理中で実行される作業用テーブル作成更新処理の流れ図である。
【図12A】図12Aは、作業用テーブルの説明図である。
【図12B】図12Bは、作業用テーブルの説明図である。
【図13】図13は、第1FW適用制御処理中で実行されるファームウェア適用順リスト作成処理の流れ図である。
【図14】図14は、作業用テーブルの説明図である。
【図15】図15は、スケジュール制御部が実行する第2FW適用制御処理の流れ図である。
【図16A】図16Aは、第2FW適用制御処理時に生成される系列指定ファームウェア適用開始要求の説明図である。
【図16B】図16Bは、第2FW適用制御処理時に生成される、開始条件が設定されている系列指定ファームウェア適用開始要求の説明図である。
【図17A】図17Aは、第1実施形態に係るディスクアレイ装置内のファームウェア管理制御部の、図16Aに示した系列指定ファームウェア適用開始要求に対する動作の説明図である。
【図17B】図17Bは、ファームウェア管理制御部の、図16Bに示した系列指定ファームウェア適用開始要求に対する動作の説明図である。
【図18A】図18Aは、第2実施形態に係るディスクアレイ装置内のスケジュール制御部が実行する分割FW適用制御処理の流れ図(その1)である。
【図18B】図18Bは、分割FW適用制御処理の流れ図(その2)である。
【図18C】図18Cは、分割FW適用制御処理の流れ図(その3)である。
【図18D】図18Dは、分割FW適用制御処理の流れ図(その4)である。
【図18E】図18Eは、分割FW適用制御処理の流れ図(その5)である。
【図18F】図18Fは、分割FW適用制御処理の流れ図(その6)である。
【図18G】図18Gは、分割FW適用制御処理の流れ図(その7)である。
【図18H】図18Hは、分割FW適用制御処理の流れ図(その8)である。
【図18I】図18Iは、分割FW適用制御処理の流れ図(その9)である。
【図19A】図19Aは、分割FW適用制御処理時に利用されるランクAテーブルの説明図である。
【図19B】図19Bは、分割FW適用制御処理時に利用されるランクBテーブルの説明図である。
【図19C】図19Cは、分割FW適用制御処理時に利用されるランクCテーブルの説明図である。
【図19D】図19Dは、分割FW適用制御処理時に利用されるランクDテーブルの説明図である。
【図20A】図20Aは、分割FW適用制御処理の説明図である。
【図20B】図20Bは、分割FW適用制御処理の説明図である。
【図20C】図20Cは、分割FW適用制御処理の説明図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【0012】
《第1実施形態》
図1に、本発明の第1実施形態に係るディスクアレイ装置10の構成及び使用形態例を示す。
【0013】
この図1に示してあるように、本実施形態に係るディスクアレイ装置10は、複数のコントローラモジュール(CM)12を収容したコントローラエンクロージャ(CE)11と、記憶部16とを、備える。記憶部16は、それぞれ、複数のドライブ150(ハードディスドライブ又はSSD(Solid State Drive))を収容した複数のドライブエンクロー
ジャ(DE)15を含む。各DE15には、通常、データを記憶するための複数のドライブ150と共に、故障したドライブ150の代わりに使用されるホットスペアドライブ155も収容される。
【0014】
ディスクアレイ装置10が備える各CM12は、FC(Fibre channel)スイッチ30を
介してホスト40から受信した(又は、ホスト40から直接受信した)リード/ライト要求に応じた内容の制御を記憶部16に対して行う装置である。
【0015】
図1に示してあるように、各CM12は、ホスト40に対するインターフェースモジュールである2つのチャネルアダプタ(CA)101と、DE15に対するインターフェースモジュールである2つのドライブアダプタ(DA)104とを、備える。また、各CM12は、ROM(Read Only Memory;図示略)、当該ROMに記憶されているプログラム(ファームウェア)に従って各種処理を行う2つのCPU(Central Processing Unit)
102及び各種データを一時的に記憶しておくためのメモリ103を、備える。
【0016】
本実施形態に係るディスクアレイ装置10の各CM12は、記憶部16を、複数の冗長性を有するRAIDグループとして取り扱う。また、各CM12は、自身が制御を担当すべきものとして予め割り当てられている幾つかのRAIDグループのみを制御する。さらに、ディスクアレイ装置10内の特定のCM12は、他の各CM12(以下、スレーブCM12とも表記する)とは異なる機能を有するマスターCM12として動作する。
【0017】
図2A、図2Bに、それぞれ、マスターCM12、スレーブCM12の機能ブロック図を示す。
【0018】
図2Aに示してあるように、マスターCM12は、IO制御部21、システム制御部2
2、装置監視部23、ファームウェア管理制御部24、アクセス退避制御部25、アクセス監視部26、アクセスランク調整部27及びスケジュール制御部28を備える。また、図2Bに示してあるように、スレーブCM12は、IO制御部21、システム制御部22、装置監視部23、ファームウェア管理制御部24、アクセス退避制御部25、アクセス監視部26を備える。
【0019】
より具体的には、スレーブCM12は、IO制御部21、システム制御部22、装置監視部23、ファームウェア管理制御部24、アクセス退避制御部25、アクセス監視部26として機能するCM102を備える。また、マスターCM12(図2A)は、IO制御部21、システム制御部22、装置監視部23、ファームウェア管理制御部24、アクセス退避制御部25、アクセス監視部26、アクセスランク調整部27及びスケジュール制御部28として機能するCM102を備える。
【0020】
各CM12(マスター/スレーブCM12)が備えるIO制御部21、システム制御部22及び装置監視部23は、既存のCMも備えるユニット(機能ブロック)である。そのため、各部の詳細な機能説明は省略するが、IO制御部21は、上位装置からのI/Oの制御を行う。また、システム制御部22は、電源制御、構成管理等を行い、装置監視部23は、装置状態(記憶部16内の各ドライブ150の状態等)を監視する。
【0021】
ファームウェア管理制御部24、アクセス退避制御部25、アクセス監視部26、アクセスランク調整部27及びスケジュール制御部28は、既存のCMが備えていないユニットである。
【0022】
以下、各部の機能を具体的に説明する。尚、以下の説明において、FW、RAID−Gとは、それぞれ、ファームウェア、RAIDグループのことである。
【0023】
〔ファームウェア管理制御部〕
FW(ファームウェア)管理制御部24は、自CM12が制御を担当している任意のRAIDグループに対して、FW適用処理を行えるユニットである。ここで、FW適用処理とは、処理対象となっているRAIDグループを構成している各ドライブ150に対して、「ドライブ150内のFW記憶用の不揮発性メモリに他のFWを記憶させてから、ドライブ150をリブートする処理」を、順次、実行する処理のことである。
【0024】
詳細については後述するが、マスターCM12のスケジュール制御部28は、所定条件が満たされた場合、FWを適用すべきRAID−Gの制御を担当しているCM12(自/他CM12)に対して、FW適用開始要求又は系列指定FW適用開始要求を送信する。
【0025】
FW適用開始要求は、FWを適用すべき1つ以上のRAID−G(以下、FW適用対象RAID−Gと表記する)の識別情報(本実施形態では、RAID−G番号)がパラメータとして含まれる要求である。
【0026】
FW管理制御部24は、FW適用開始要求を受信した場合、まず、装置監視部23と通信を行うことにより、受信したFW適用開始要求が示している各FW適用対象RAID−Gの中に冗長性が失われているものがあるか否かを判断する。
【0027】
そして、FW管理制御部24は、全FW適用対象RAID−Gが冗長性を有していた場合には、FW適用対象RAID−Gのそれぞれに対するFW適用処理を開始する。
【0028】
FW管理制御部24は、FW適用対象RAID−Gの中に、冗長性を有するものと冗長性が失われているものとがあった場合には、冗長性が失われている各FW適用対象RAI
D−Gに対するFW適用処理を行わない旨をスケジュール制御部28に通知する。その後、FW管理制御部24は、冗長性を有していることを確認できた各FW適用対象RAID−Gに対するFW適用処理を開始する。
【0029】
また、FW管理制御部24は、全てのFW適用対象RAID−Gの冗長性が失われていた場合には、各(全)FW適用対象RAID−Gに対するFW適用処理を行わない旨をスケジュール制御部28に通知する。そして、FW管理制御部24は、FW適用処理を開始することなく、受信したFW適用開始要求に対する処理を終了する。
【0030】
尚、FW管理制御部24は、或るFW適用対象RAID−Gに対するFW適用処理を開始する前に、そのFW適用対象RAID−Gの識別情報をアクセス退避制御部25に通知する。また、FW管理制御部24は、一台のドライブ150に対するFW適用処理が完了する度に、その旨を示す完了通知情報(本実施形態では、FW更新が完了したドライブ150の識別情報を含む情報)をアクセス退避制御部25に送信する。そして、FW管理制御部24は、当該完了通知情報を受信したアクセス退避制御部25がデータ書戻処理(詳細は後述)の完了を通知してきたときに、次のドライブ150に対するFW適用を開始する。
【0031】
また、FW管理制御部24は、或るFW適用対象RAID−Gに対するFW適用処理が完了した場合(最後のドライブ150に対するデータ書戻処理の完了が通知された場合)には、その旨をマスターCM12のスケジュール制御部28に通知する。
【0032】
系列指定FW適用開始要求の内容、系列指定FW適用開始要求に対するFW管理制御部24の動作については、スケジュール制御部28の動作と共に、後ほど説明する。
【0033】
〔アクセス退避制御部〕
アクセス退避制御部25は、FW適用処理が行われているRAIDグループに対する,ホスト40からのリード/ライトアクセス(リード/ライト要求)を処理するユニットである。アクセス退避制御部25は、FW管理制御部24から通知される識別情報(RAID−G番号)により、どのRAID−GがFW適用中RAIDグループ200であるかを把握する。
【0034】
以下、図3、図4A、図4B及び図5を用いて、アクセス退避制御部25の動作を、状況別に説明する。尚、各図及び以下の説明において、FW適用中RAIDグループ(又は、FW適用中RAID−G)200とは、FW適用処理が行われているRAIDグループのことである。また、FW適用中ドライブ150aとは、FW適用中RAIDグループ200内の、実際にFWが適用されているドライブ150(FWの書き換え中/リブート中のドライブ150)のことである。
【0035】
まず、図3を用いて、FW適用中RAID−G200を構成している全ドライブ150が正常に機能している状況下、FW適用中RAID−G200に対するリードアクセス(リード要求)が発生した場合におけるアクセス退避制御部25の動作を説明する。
【0036】
この場合、アクセス退避制御部25は、図3に模式的に示してあるように、FW適用中ドライブ150a以外のドライブ150から、リードアクセスが読み出しを要求しているデータを読み出してホスト40に返送する。
【0037】
FW管理制御部24から複数のRAID−G番号が通知されている場合(つまり、FW適用中RAID−G200が複数個ある場合)、アクセス退避制御部25は、各FW適用中RAID−G200に対するリードアクセスについて、上記内容の処理を行う。
【0038】
次に、図4A及び図4Bを用いて、FW適用中RAID−Gを構成している全ドライブ150が正常に機能している状況下、FW適用中RAID−G200に対するライトアクセス(ライト要求)が発生した場合におけるアクセス退避制御部25の動作を説明する。
【0039】
この場合、アクセス退避制御部25は、図4Aに模式的に示してあるように、FW適用中ドライブ150a以外の各ドライブ150に対しては、通常の制御処理を行う。ここで、通常の制御処理とは、FW適用を行っていない場合に書き込むものと同じデータ(ライトデータを分割したデータ、パリティ等)をドライブ150に書き込む処理のことである。
【0040】
また、上記場合、アクセス退避制御部25は、FW適用中ドライブ150aに書き込むべきデータと当該データの本来の格納位置を示す格納位置情報(FW適用中ドライブ150aのドライブ名を含むもの)とを退避データ格納領域220に記憶する処理も行う。ここで、退避データ格納領域220とは、特定のホットスペアドライブ155内又は自CM12のメモリ103上に予め確保されている記憶領域のことである。この退避データ格納領域220のサイズは、"アクセス頻度が高い状況下でFW適用を行った場合にFW適用
が完了するまでの間に退避しておくことが通常必要となる量の情報"を記憶できるように
定められている。
【0041】
尚、アクセス退避制御部25は、退避データ格納領域220の一部を、格納位置情報記憶領域として使用し、退避データ格納領域220の残りの部分を、データ記憶領域として使用する。そして、アクセス退避制御部25は、FW適用中RAID−G200に対するライトアクセスが発生した場合には、FW適用中ドライブ150aに書き込むべきデータを、データ記憶領域に、前回、データ記憶領域に記憶したデータに続ける形で記憶する。また、アクセス退避制御部25は、FW適用中ドライブ150aに書き込むべきデータの,データ記憶領域内における記憶領域の先頭アドレス及びサイズを含む固定長の格納位置情報を格納位置情報記憶領域に記憶する。
【0042】
アクセス退避制御部25は、FW適用中ドライブ150aに対するFW適用処理が完了するまで、FW適用中RAIDグループ200に対するライトアクセスを上記のような形で処理する。
【0043】
アクセス退避制御部25は、FW適用中ドライブ150aに関する完了通知情報をFW管理制御部24から受信した際には、以下のように動作する。まず、アクセス退避制御部25は、図4Bに示してあるように、退避データ格納領域220上の各データをFW適用処理が完了したFW適用中ドライブ(図4Bでは、FW適用完了ドライブ)150aに書き込むデータ書戻処理を行う。このデータ書戻処理時、アクセス退避制御部25は、退避データ格納領域220上の格納位置情報から、各データの書き戻し先を把握する。
【0044】
その後、アクセス退避制御部25は、データ書戻処理の完了をFW管理制御部24に通知し、不要となったデータを退避データ格納領域220上から消去する(図示略)。そして、アクセス退避制御部25は、今回、FWが適用されたドライブ150(150a)に対する処理を終了する。
【0045】
尚、アクセス退避制御部25は、FW適用処理が完了する前に、退避データ格納領域220がフルになった場合には、FW適用中RAID−G200に対するアクセスを受け付けない状態に移行する。そして、アクセス退避制御部25は、FW適用処理が完了したときに、上記したデータ書戻処理を行ってから、FW適用中RAID−G200に対するアクセスを受け付ける状態に戻る。
【0046】
FW管理制御部24から複数のRAID−G番号が通知されている場合(FW適用中RAID−G200が複数個存在する場合)におけるアクセス退避制御部25の動作内容も、同様のものである。すなわち、FW管理制御部24から複数のRAID−G番号が通知されている場合、FW管理制御部24は、退避データ格納領域220上に、各FW適用中RAID−G200のFW適用中ドライブ150aに書き込むべきデータとそれに関する格納位置情報とを記憶する。そして、アクセス退避制御部25は、或るFW適用中ドライブ150aに対するFW適用処理が完了した際には、当該FW適用中ドライブ150aのドライブ名を含む各格納位置情報に対応付けられているデータのみを、FW適用完了ドライブ150aに書き戻すデータ書戻処理を行う。
【0047】
次に、図5を用いて、FW適用中RAID−G200に対するリード/ライトアクセスを上記のような形で処理している間に、FW適用中RAID−G200の非FW適用中ドライブ150が故障した場合におけるアクセス退避制御部25の動作を説明する。
【0048】
非FW適用中ドライブ150が故障すると、通常のRAIDレベルのFW適用中RAIDグループ200は、「或るドライブ150のFW適用が失敗すると利用不可能な状態となる記憶装置」として機能することになる。尚、通常のRAIDレベルとは、冗長性は有するが、複数のドライブ故障に対応できないRAIDレベルのことである。
【0049】
そのため、アクセス退避制御部25は、現FW適用中ドライブ150aに対するFW適用が完了した段階で、FW管理制御部24によるFW適用処理を中断させる。そして、FW管理制御部24は、中断したFW適用処理を、RAID−Gが冗長性を有する状態に戻った後(ホットスペアドライブ155を、故障発生ドライブ150cの代わりのドライブ150として機能させるための処理等が完了した後)に再開する。
【0050】
また、アクセス退避制御部25は、FW適用中ドライブ150aのFW適用が完了するまでの間は、FW適用中RAID−G200に対するアクセスを内部に保持し、各アクセスをFW適用中ドライブ150aのFW適用が完了した後に処理する状態で動作する。ただし、或るアクセスの受信後、一定時間内にFW適用中ドライブ150aに対するFW適用が完了しなかった場合、アクセス退避制御部25は、受信済みのアクセスを破棄して、ホスト40に対して当該アクセスのリトライ要求を送信する。
【0051】
要するに、アクセス退避制御部25は、或る非FW適用中ドライブ150(150c)が故障した場合、FW適用中ドライブ150aのFW適用が完了するまで、FW適用中RAID−G200に対するアクセスを全く行わない状態で動作する。
【0052】
FW管理制御部24から複数のRAID−G番号等が通知されている状況下、2つ以上のFW適用中RAID−G200内の非FW適用中ドライブ150が故障した場合も、アクセス退避制御部25は、同様に動作する。
【0053】
〔アクセス監視部〕
各CM12のメモリ103上には、自CM12が制御を担当している各RAIDグループについてのアクセス数情報、アクセス履歴情報を記憶しておくための領域が確保されている。ここで、或るRAID−Gについてのアクセス数情報とは、当該RAID−Gに対する,過去の所定期間(例えば、24時間前から現時点まで)内の各単位時間(例えば1分)におけるアクセス数(アクセス頻度)を含む情報のことである。このアクセス数情報は、例えば図6に示したような形式のアクセス数情報50としてメモリ103上に記憶される。
【0054】
また、或るRAID−Gについてのアクセス履歴情報とは、例えば図7に示したような形式のアクセス履歴情報55としてメモリ103上に記憶される情報(詳細は後述)のことである。
【0055】
アクセス監視部26は、常時、自CM12が制御を担当している各RAIDグループに対するアクセス状況を監視している。そして、アクセス監視部26は、アクセス状況の監視結果に基づき、メモリ103上の、各RAID−Gについてのアクセス数情報50(図6)を、過去の所定期間内の各単位時間におけるアクセス数を含むものとなるように、随時、更新する。
【0056】
また、アクセス監視部26は、各RAID−Gについてのアクセス履歴情報55の内容を、同じRAID−Gについてのアクセス数情報50に基づき更新するアクセス履歴情報更新処理を、定期的に(例えば24時間毎に)、行う。
【0057】
アクセス履歴情報55は、図7に示してあるように、過去の所定時間(本実施形態では、24時間)内の各規定時間(本実施形態では、30分)毎のアクセス数とアクセスランクとを含む情報である。アクセス履歴情報更新処理時、アクセス監視部26は、各RAID−Gに関するアクセス数情報50(図6)に基づき、各RAID−Gに対する,各規定時間の時間帯におけるアクセス数を求める。そして、アクセス監視部26は、各RAID−Gに関するアクセス履歴情報55中の各時間帯についてのアクセス数を、求めた値に変更する。
【0058】
また、アクセス履歴情報更新処理時、アクセス監視部26は、各RAID−Gについて求めた各時間帯のアクセス数から、以下のアルゴリズムでアクセスランク(以下、単にランクとも表記する)を求める。そして、アクセス監視部26は、各RAID−Gに関するアクセス履歴情報55中の各時間帯についてのランクを、求めたランクに変更してから、アクセス履歴情報更新処理を終了する。
【0059】
アクセス数>A・B境界アクセス数 → ランク=A
A・B境界アクセス数≧アクセス数>B・C境界アクセス数 → ランク=B
B・C境界アクセス数≧アクセス数>C・D境界アクセス数 → ランク=C
C・D境界アクセス数≧アクセス数 → ランク=D
【0060】
ここで、A・B境界アクセス数とは、各ドライブ150のFW適用中に退避データ格納領域220のほぼ40%が使用される(図4A、図4B参照)ことになる標準的なアクセス数として予め設定されている値のことである。B・C境界アクセス数とは、各ドライブ150のFW適用中に退避データ格納領域220のほぼ20%が使用されることになる標準的なアクセス数として予め設定されている値のことである。C・D境界アクセス数とは、各ドライブ150のFW適用中に退避データ格納領域220が殆ど使用されない(退避データ格納領域220のほぼ1%が使用される)ことになる標準的なアクセス数として予め設定されている値のことである。
【0061】
〔アクセスランク調整部〕
既に説明したように、アクセスランク調整部27は、マスターCM12のみが備えるユニット(図2A及び図2B参照)である。
【0062】
このアクセスランク調整部27は、ディスクアレイ装置10内の各CM12に対して同内容の処理を行うユニットとなっている。そのため、以下では、アクセスランク調整部27が、或るCM12(含む自CM12:以下、注目CM12と表記する)に対して行う処理のみを説明する。また、以下の説明では、注目CM12内のFW管理制御部24、アク
セス監視部26のことを、注目FW管理制御部24、注目アクセス監視部26と表記する。
【0063】
アクセスランク調整部27は、注目アクセス監視部26によるアクセス履歴情報55(図7)の更新が完了する度に、注目アクセス監視部26から、注目CM12が制御を担当している各RAID−Gに関する,各時間帯についてのランクを取得する。換言すれば、アクセスランク調整部27は、注目アクセス監視部26により各RAID−Gに関するアクセス履歴情報55の内容が更新される度に、内容が更新された各アクセス履歴情報55中の一部の情報を取得する。
【0064】
そして、アクセスランク調整部27は、今回、取得した各RAID−Gに関する各時間帯のランクを、各時間帯になったときの実際のアクセス数に対応している可能性がより高いランクに更新(調整)するためのランク更新処理を行う。
【0065】
具体的には、ランク更新処理時、アクセスランク調整部27は、今回、取得した各ランク(以下、算出ランクと表記する)を、前回のランク更新処理による,同時間帯のランクの処理結果(以下、旧ランクと表記する)と比較する。そして、アクセスランク調整部27は、図8に示したように、旧ランクと同じ算出ランク、旧ランクとの違いが1ランクしかない算出ランクについては、算出ランクを、そのまま、更新(調整)後のランク(以下、更新ランクと表記する)とする。また、アクセスランク調整部27は、旧ランクとの差違が2ランク以上ある算出ランク(つまり、特殊な事情の存在が疑われる算出ランク)については、算出ランクを、旧ランク側へ1ランク分近づけたランクを更新ランクとする。
【0066】
このような内容のランク更新処理により、各RAID−Gに関する各時間帯の更新ランクを求めたアクセスランク調整部27は、メモリ103上に図9に示したような内容のランクテーブル60を生成する。尚、このランクテーブル60の生成は、メモリ103上に存在するランクテーブル60(前回のランク更新処理の処理結果)を書き換える形で行われる。
【0067】
要するに、アクセスランク調整部27は、注目アクセス監視部26によるアクセス履歴情報55の更新が完了する度に、注目アクセス監視部26から、注目CM12が制御を担当している各RAID−Gに関する,各時間帯についてのランクを取得する。そして、アクセスランク調整部27は、取得した各ランクを実際のアクセス数に対応している可能性がより高いランクに更新し、更新した各時間帯のランクをRAID−G別に記憶したランクテーブル60をメモリ103上に用意する。
【0068】
〔スケジュール制御部〕
スケジュール制御部28は、アクセスランク調整部27と同様に、マスターCM12のみが備えるユニット(図2A及び図2B参照)である。
【0069】
このスケジュール制御部28は、アクセスランク調整部27がメモリ103上にCM12毎に用意する各ランクテーブル60(図9)に対して、同内容の処理を行うユニットとなっている。そのため、以下では、アクセスランク調整部27が或るCM12(以下、注目CM12と表記する)について用意したランクテーブル60(以下、注目ランクテーブル60と表記する)に対して、スケジュール制御部28が行う処理のみを説明する。また、以下の説明では、注目ランクテーブル60に、各時間帯のランクが記憶されているRAID−G(つまり、注目CM12が制御を担当しているRAID−G)のことを、単に、RAID−Gとも表記する。
【0070】
スケジュール制御部28は、第1及び第2FW適用制御処理を実行できる。
【0071】
第1、第2FW適用制御処理は、いずれも、注目ランクテーブル60上の情報に基づき、各RAID−GのFW適用を開始すべき時間を決定し、各RAID−GのFW適用を、決定した時間に開始させる処理である。また、各FW適用制御処理は、いずれも、ユーザにより、或るFWを、或る連続した時間範囲内に各RAID−Gに適用すべきことが指示された場合にスケジュール制御部28が実行する処理となっている。
【0072】
スケジュール制御部28は、ユーザにより、FW適用を行うべき時間範囲(以下、指定時間範囲と表記する)として、連続した複数のランク算出対象時間帯からなる時間範囲が指定された場合に、第1FW適用制御処理を実行する。尚、ランク算出対象時間帯とは、アクセスランクが定められる時間帯(図7参照;本実施形態では、長さが30分の時間帯)のことである。
【0073】
また、スケジュール制御部28は、ユーザにより、指定時間範囲として、1つのランク算出対象時間帯が指定された場合に、第2FW適用制御処理を実行する。
【0074】
まず、指定時間範囲が連続した複数のランク算出対象時間帯からなる時間範囲である場合にスケジュール制御部28が実行する第1FW適用制御処理の内容を説明する。
【0075】
図10に、第1FW適用制御処理の流れ図を示す。
【0076】
この図10に示してあるように、第1FW適用制御処理を開始したスケジュール制御部28は、まず、作業用テーブル作成更新処理(ステップS101)を実行する。
【0077】
作業用テーブル作成更新処理は、図11に示した手順の処理である。すなわち、作業用テーブル作成更新処理を開始したスケジュール制御部28は、まず、注目ランクテーブル60に基づき、メモリ103上に作業用テーブル70を作成する処理(ステップS201)を行う。
【0078】
図12Aに、ステップS102の処理にてメモリ103上に作成される作業用テーブル70の一例を示す。尚、この図12Aに示した作業用テーブル70は、注目ランクテーブル60が図9に示した内容のものである場合にメモリ103上に作成されるものである。
【0079】
図12A及び図9から明らかなように、作業用テーブル70は、注目ランクテーブル60と同じ情報を保持したテーブルである。ただし、作業用テーブル70には、各RAID−Gについて状態情報(図12Aにおける"未決定")を記憶するためのフィールドと、各RAID−Gの各時間帯について作業用フラグを記憶するためのフィールド("作業用F")とが追加されている。
【0080】
この作業用テーブル70に記憶される状態情報は、対応するRAID−GのFW適用時間が決定済みであるか否かを示す情報である。作業用フラグは、各RAID−GのFW適用時間を決定するために使用される2値情報である。図12Aに示してあるように、ステップS201の処理時には、各状態情報として、対応するRAID−GのFW適用時間が決定済みでないことを示す"未決定"が設定され、各作業用フラグとして、"0"が設定された作業用テーブル70が作成される。
【0081】
図11に戻って、作業用テーブル作成更新処理の説明を続ける。
【0082】
作業用テーブル70を作成したスケジュール制御部28は、作業用テーブル70上に識別情報が記憶されているRAID−Gの中から、処理対象とするRAID−G(以下、処
理対象RAID−Gと表記する)を選択する(ステップS202)。
【0083】
次いで、スケジュール制御部28は、作業用テーブル70上の情報に基づき、指定時間範囲内の時間帯の中から、処理対象RAID−Gに関する,ランクが最も低い時間帯を特定する(ステップS203)。その後、スケジュール制御部28は、作業用テーブル70上の,処理対象RAID−Gに関する,特定した各時間帯についての作業用フラグを、"
1"に変更する(ステップS204)。
【0084】
ステップS204の処理を終えたスケジュール制御部28は、作業用テーブル70上に識別情報が記憶されている全RAID−Gに対する処理が完了したか否かを判断する(ステップS205)。処理が未完了のRAID−Gが残っていた場合(ステップS205;NO)、スケジュール制御部28は、処理対象RAID−Gを次のRAID−Gに変更(ステップS206)してから、ステップS203以降の処理を再び実行する。
【0085】
そして、スケジュール制御部28は、作業用テーブル70上に識別情報が記憶されている全RAID−Gに対する処理が完了したときに(ステップS205;YES)、作業用テーブル作成更新処理を終了する。
【0086】
ここで、指定時間範囲が"00:00:00〜02:00:00"であり、注目ランクテーブル60が図9に示した内容のものであった場合を例に、作業用テーブル作成更新処理の内容をより具体的に説明しておくことにする。
【0087】
上記場合、作業用テーブル作成更新処理では、まず、図12Aに示した内容の作業用テーブル70がメモリ103上に作成される。
【0088】
その後、各RAIDグループについて、ステップS203及びS204の処理が行われる。そのため、RAIDグループ1については、指定時間範囲内の、ランクが最も低い時間帯である"00:30:00〜01:00:00"及び"01:00:00〜01:30:00"が特定され、それらの作業用フラグが"1"に変更される。また、RAIDグループ4については、指定時間範囲内の、ランクが最も低い時間帯である"01:00:00〜01:30:00"及び"01:30:00〜02:00:00"が特定され、それらの作業用フラグが"1"に変更される。
【0089】
また、RAIDグループ2、3についての,指定時間範囲内の各時間帯のランクは、同ランクである。すなわち、RAIDグループ2、3についての、指定時間範囲内の各時間帯のランクは、全て最も低いランクとなっている。そのため、RAIDグループ2、3については、指定時間範囲内の各時間帯についての作業用フラグが全て"1"に変更される。
【0090】
指定時間範囲が"00:00:00〜02:00:00"であり、注目ランクテーブル60が図9に示した内容のものであった場合、上記のような処理が行われる。従って、作業用テーブル作成更新処理が完了すると、メモリ103上に図12Bに示した内容の作業用テーブル70が存在する状態が形成されることになる。
【0091】
作業用テーブル作成更新処理(図10;ステップS101)が完了すると、スケジュール制御部28は、続くステップS102にて、図13に示した手順のFW適用順リスト作成処理を実行する。
【0092】
すなわち、FW適用順リスト作成処理を開始したスケジュール制御部28は、まず、FW適用順リストを空のリストに初期化する(ステップS300)。次いで、スケジュール制御部28は、指定時間範囲内の最初の時間帯を、処理対象時間帯として選択する(ステップS301)。
【0093】
その後、スケジュール制御部28は、作業用テーブル70上の処理対象時間帯に関する作業用フラグが"1"となっており、且つ、作業用テーブル70上の状態情報が"未決定"となっている各RAID−Gを特定する処理(ステップS302)を行う。
【0094】
上記条件を満たすRAID−Gが全く特定できなかった場合(ステップS303;NO)、スケジュール制御部28は、指定時間範囲内の全時間帯に対する処理が完了したか否かを判断する(ステップS308)。そして、スケジュール制御部28は、未処理の時間帯が残っていた場合(ステップS308;YES)には、処理対象時間帯を次の時間帯に変更(ステップS309)から、ステップS302以降の処理を再び実行する。
【0095】
一方、上記条件を満たすRAID−Gを1つ以上特定できた場合(ステップS303;YES)、スケジュール制御部28は、特定できたRAID−G数(以下、特定数と表記する)が"1"であるか否かを判断する(ステップS304)。
【0096】
特定数が"1"であった場合(ステップS304;YES)、スケジュール制御部28は、FW適用順リストに、特定したRAID−GのRAID−G番号と処理対象時間帯とを含むFW適用対象情報を追加する(ステップS305)。次いで、スケジュール制御部28は、作業用テーブル70上の、FW適用順リストにFW適用対象情報を追加したRAID−Gに関する状態情報を"決定済"に変更する(ステップS306)。
【0097】
その後、スケジュール制御部28は、"未決定"RAID−G(状態情報が"未決定"となっているRAID−G)が残っているか否かを判断する(ステップS307)。そして、スケジュール制御部28は、"未決定"RAID−Gが残っていた場合(ステップS307;YES)には、ステップS308以降の処理を開始する。
【0098】
作業用フラグが"1"となっているRAID−Gが2つ以上特定された場合(ステップS304;NO)、スケジュール制御部28は、特定された複数のRAID−Gが同時にFW適用可能なものであるか否かを判定する(ステップS311)。
【0099】
より具体的には、スケジュール制御部28は、以下の判定用不等式が成立するか否かにより、特定された複数のRAID−Gが同時にFW適用可能なものであるか否かを判定する。
NA+NB・1/2+NC・1/4≦1
尚、NA、NB、NCとは、それぞれ、同時にFW適用可能なものであるか否かの判定対象となっている複数のRAID−Gの中に含まれる,処理対象時間帯におけるランクがA、B、CとなっているRAID−G数のことである。
【0100】
ここで、上記判定用不等式で、複数のRAID−Gが、同時にFW適用可能なものであるか否かを判定できる理由を説明しておくことにする。
【0101】
既に説明したように、FW管理制御部24は、複数のRAID−GのそれぞれについてのFW適用処理を同時に実行することができる。ただし、FW適用中に多量のライトアクセスがなされた結果として退避データ記憶領域220がフルになると、FW管理制御部24は、各FW適用中RAID−G200に対するアクセスを受け付けない状態に移行してしまう。
【0102】
そのような状況が発生しないようにするためには、FW適用中に退避データ記憶領域220に記憶されることになるデータ量(以下、退避データ量と表記する)をRAID−G毎に推定し、当該データ量の総和が退避データ記憶領域のサイズ以下となるように、同時
にFWを適用するRAID−Gの数、組み合わせを決定してやれば良い。
【0103】
そして、上記アルゴリズム(『A・B境界アクセス数≧アクセス数>B・C境界アクセス数 → ランク=B』等)で求められているランク(アクセスランク)は、以下のことを示す情報となっている。
ランク=A:最大退避データ量が、退避データ記憶領域220のサイズの1/2以上、退避データ記憶領域サイズ以下。
ランク=B:最大退避データ量が、退避データ記憶領域220のサイズのほぼ1/2(40%)。
ランク=C:最大退避データ量が、退避データ記憶領域220のサイズのほぼ1/4(20%)。
ランク=D:最大退避データ量が、ほぼ"0"。
【0104】
従って、上記判定用不等式で、複数のRAID−Gが、FW適用中に退避データ記憶領域220がフルになる可能性が殆どないもの(つまり、同時にFW適用可能なもの)であるか否かを判定できることになる。
【0105】
特定された複数のRAID−Gが同時にFW適用可能なものであった場合(ステップS311;YES)、スケジュール制御部28は、FW適用順リストに、特定したRAID−Gのそれぞれについて、そのRAID−GのRAID−G番号と処理対象時間帯とを含むFW適用対象情報を追加する(ステップS305)。尚、スケジュール制御部28は、処理対象時間帯を、割当完了時間帯(用途は後述)として記憶する処理も、このステップS305にて、行う。
【0106】
次いで、スケジュール制御部28は、FW適用対象情報をFW適用順リストに追加した各RAID−Gに関する作業用テーブル70上の状態情報を"決定済"に変更する(ステップS306)。そして、スケジュール制御部28は、ステップS307以降の処理を開始する。
【0107】
一方、特定された複数のRAID−Gが同時にFW適用可能なものではなかった場合(ステップS311;NO)、スケジュール制御部28は、特定したRAID−Gの中から、処理対象時間帯におけるランクの昇順で同時にFW適用できる数のRAID−Gを選択する(ステップS312)。
【0108】
次いで、スケジュール制御部28は、FW適用順リストに、選択したRAID−Gのそれぞれについて、そのRAID−GのRAID−G番号と処理対象時間帯とを含むFW適用対象情報を追加する(ステップS313)。スケジュール制御部28は、このステップS313にて、処理対象時間帯を、割当完了時間帯として記憶する処理も行う。
【0109】
その後、スケジュール制御部28は、ステップS306以降の処理を開始する。
【0110】
上記のような処理を繰り返していると、通常、指定時間範囲内の何個目かの時間帯の処理完了時に、"未決定"RAID−Gがなくなる(ステップS307;NO)ので、スケジュール制御部28は、このFW適用順リスト作成処理を終了する。
【0111】
ただし、指定時間範囲内の最後の時間帯の処理が完了しても、"未決定"RAID−Gが残っている場合(ステップS307;YES、ステップS308;NO)もあり得る。例えば、指定時間範囲が"00:00:00〜02:00:00"であり、作業用テーブル作成更新処理完了時における作業用テーブル70の内容が図14に示したものであった場合、指定時間範囲内の最後の時間帯の処理が完了しても、"未決定"RAID−Gが残っていることになる。
【0112】
そのような場合(ステップS308;NO)、スケジュール制御部28は、作業用テーブル70上の、"未決定"RAID−Gについての,作業用フラグが"0"となっている最もランクが低い指定時間範囲内の時間帯に関する作業用フラグを"1"に変更する(ステップS315)。そして、スケジュール制御部28は、ステップS301以降の処理を、指定時間範囲内の,割当完了時間帯ではない各時間帯のみを対象とした形で、実行する。
【0113】
図10に戻って、FW適用順リスト作成処理完了後のスケジュール制御部28の動作を説明する。
【0114】
ここまで説明した各処理の内容から明らかなように、指定時間範囲が"00:00:00〜02:00:00"であり、ランクテーブル60が図9に示した内容のものであった場合、FW適用順リスト作成処理により、以下の内容のFW適用順リストが作成されることになる。
【0115】
『2:"00:00:00〜00:30:00"』
『3:"00:00:00〜00:30:00"』
『1:"00:30:00〜01:00:00"』
『4:"01:00:00〜01:30:00"』
【0116】
FW適用順リスト作成処理を終えたスケジュール制御部28は、ステップS103の判断とS106の処理とを繰り返す状態となる。すなわち、スケジュール制御部28は、FW適用順リスト上のいずれかのFW適用対象情報内の時間帯の開始時間(以下、FW適用処理実行時間と表記する)になるのを監視している状態となる。
【0117】
FW適用処理実行時間になった場合(ステップS103;YES)、スケジュール制御部28は、そのFW適用処理実行時間にFW適用を開始すべき各RAID−GのRAID−G番号を含めたFW適用開始要求を注目CM12に対して送信する(ステップS104)。
【0118】
その後、スケジュール制御部28は、FW適用開始要求を未送信のRAID−Gが残っているか否かを判断する(ステップS105)。
【0119】
FW適用開始要求を未送信のRAID−Gが残っていた場合(ステップS105;YES)、スケジュール制御部28は、ステップS106以降の処理を開始する。
【0120】
そして、スケジュール制御部28は、FW適用開始要求を未送信のRAID−Gがなくなったとき(ステップS105;NO)に、この第1FW適用制御処理を終了する。
【0121】
以下、第2FW適用制御処理の内容、系列指定FW適用開始要求の内容、及び、当該要求に対するFW管理制御部24の動作を、説明する。
【0122】
図15に、第2FW適用制御処理の流れ図を示す。尚、既に説明したように、第2FW適用制御処理とは、指定時間範囲が1つのランク算出対象時間帯であった場合にスケジュール制御部28が実行する処理のことである。
【0123】
まず、この第2FW適用制御処理のステップS410の処理時に生成される系列指定FW適用開始要求の内容と、当該要求に対するFW管理制御部24の動作とを、説明する。
【0124】
図16A、図16Bに、系列指定FW適用開始要求75の説明図を示す。
【0125】
図16Aに示してあるように、系列指定FW適用開始要求75は、基本的には、FWを適用すべき幾つかのRAID−Gの識別情報のリストである第1系列情報と、FWを適用すべき幾つかのRAID−Gの識別情報のリストである第2系列情報とを含む要求である。ただし、系列指定FW適用開始要求75は、図16Bに示したように、第2系列側の任意のRAID−Gの識別情報に、当該RAID−Gに対するFW適用の開始条件を設定できるものとなっている。
【0126】
一方、FW管理制御部24は、系列指定FW適用開始要求75を受信した場合、当該要求中の第1系列情報でFW適用が指示されている各RAID−Gに対するFW適用を、第1系列情報で指定されている順番に行う第1系列制御処理を開始する。また、FW管理制御部24は、受信した系列指定FW適用開始要求中の第2系列情報でFW適用が指示されている各RAID−Gに対するFW適用を、第2系列情報で指定されている順番に行う第2系列制御処理も開始する。ただし、この第2系列制御処理において、FW管理制御部24は、第2系列指定情報にて開始条件付きでFW適用を行うことが指定されている各RAID−Gに対するFW適用は、開始条件が満たされた後に開始する。
【0127】
要するに、FW管理制御部24は、図16Aに示した内容の系列指定FW適用開始要求75を受信した場合には、図17Aに示したような順番で、RAIDグループ1〜4内の各ドライブ150にFWを適用する。また、FW管理制御部24は、図16Bに示した内容の系列指定FW適用開始要求75を受信した場合には、図17Bに示したような順番及びタイミングで、RAIDグループ1〜4内の各ドライブ150にFWを適用する。
【0128】
図15に戻って、第2FW適用制御処理の内容を説明する。
【0129】
指定時間範囲が1つのランク算出対象時間帯(以下、指定時間帯と表記する)であったため、この第2FW適用制御処理を開始したスケジュール制御部28は、まず、第1系列リスト及び第2系列リストを初期化する(ステップS400)。第1、第2系列リストは、第1、第2系列情報を用意するために使用されるリスト(メモリ103上の一記憶領域)である。ステップS400の処理では、各系列リストが空のリスト(有意な情報を記憶していないリスト)に初期化される。
【0130】
第1、第2系列リストの初期化を終えたスケジュール制御部28は、AランクRAID−Gが存在しているか否かを判断する(ステップS401)。ここで、AランクRAID−Gとは、注目ランクテーブル60(図9参照)上の,指定時間帯のランクが"A"となっているRAID−Gのことである。以下、注目ランクテーブル60上の,指定時間帯のランクが"X"(X=B〜D)となっているRAID−Gのことも、同様に、XランクRAID−Gと表記する。また、注目ランクテーブル60に識別情報が登録(記憶)されており、系列リストへの識別情報の登録が完了していないRAID−Gのことを、FW適用要RAID−Gと表記する。
【0131】
AランクRAID−Gが存在していた場合(ステップS401;YES)、スケジュール制御部28は、ステップS402にて、第1系列リストに、各AランクRAID−Gの識別情報(本実施形態では、RAID−G番号)を登録(記憶)する処理を行う。また、スケジュール制御部28は、ステップS402にて、第2系列リストに各DランクRAID−Gの識別情報を登録(記憶)する処理も行う。尚、この処理は、DランクRAID−Gが存在しなかった場合、第2系列リストに対して何も行わない処理である。
【0132】
ステップS402の処理を終えたスケジュール制御部28は、FW適用要RAID−Gが残っているか否かを判断する(ステップS403)。
【0133】
そして、スケジュール制御部28は、FW適用要RAID−Gが残っていた場合(ステップS403;YES)には、第1系列のドライブ数が第2系列のドライブ数よりも少ないか否かを判断する(ステップS404)。ここで、第Y系列(Y=1、2)のドライブ数とは、その時点における第Y系列リストに識別情報が登録されている各RAID−Gの構成ドライブ数の総和のことである。
【0134】
第1系列のドライブ数の方が少なかった場合(ステップS404;YES)、スケジュール制御部28は、各系列リストに、残っている各FW適用要RAID−Gの識別番号を、各系列のドライブ数が近づくように追加する(ステップS405)。
【0135】
すなわち、このステップS405の処理が実行されるのは、AランクRAID−Gが存在するが故に、ステップS402が実行されている場合である。従って、ステップS405の処理時に残っているFW適用要RAID−Gは、BランクRAID−G又はCランクRAID−Gであることになる。また、"第1系列のドライブ数<第2系列のドライブ数"が成立している場合、第1系列に対するFW適用の方が早く完了することになるが、ステップS405の処理の実行時点において第2系列に属しているRAID−Gは、全てDランクRAID−Gである。従って、残っているどのFW適用要RAID−Gをどちらの系列リストに登録しても、第1系列(AランクRAID−G)に対するFW適用完了後に同時にFWの適用対象となる2RAID−Gが、Bランク以下の2RAID−G(つまり、同時にFWを適用してもFW適用の完了前に退避データ記憶領域220がフルにならない2RAID−G)に限られることになる。
【0136】
そして、両系列のドライブ数が近づくようにしておいた方が、全てのドライブ150に対するFW適用が早く完了する。そのため、各系列リストに、残っている各FW適用要RAID−Gの識別番号を、各系列のドライブ数が近づくように、追加しているのである。
【0137】
ステップS405の処理を終えたスケジュール制御部28は、その時点の第1、第2系列リストに基づき、系列指定FW適用開始要求75を生成する処理(ステップS410)を行う。尚、指定時間帯が"01:00:00〜01:30:00"であり、注目ランクテーブル60が図9に示したものであり、RAID−G1〜4の構成ドライブ数が、それぞれ、8、8、2、4であった場合、このステップS410の処理により、図16Aに示してある系列指定FW適用開始要求75が生成されることになる。
【0138】
ステップS410の処理を終えたスケジュール制御部28は、指定時間帯の開始時間となったときに、系列指定FW適用開始要求75を注目CM12に対して送信する(ステップS411)。そして、スケジュール制御部28は、この第2FW適用制御処理を終了する。
【0139】
一方、第1系列のドライブ数≧第2系列のドライブ数が成立していた場合(ステップS404;NO)、スケジュール制御部28は、残FW適用要RAID−Gを、総ドライブ数がほぼ一致するように、第1系列用のRAID−Gと第2系列用のRAID−Gとに分類する(ステップS406)。続くステップS407において、スケジュール制御部28は、第1系列用の各RAID−Gの識別情報を第1系列に追加する処理を行う。また、スケジュール制御部28は、第2系列用の各RAID−Gの識別情報を、先頭の識別情報に、最後のAランクRAID−Gに対するFW適用の完了後にFWを適用する旨の開始条件を付加した形で、第2系列リストに追加する処理も行う。
【0140】
その後、スケジュール制御部28は、第1、第2系列リストに基づき、系列指定FW適用開始要求75(図16B参照)を生成する(ステップS410)。そして、スケジュール制御部28は、指定時間帯の開始時間となったときに、系列指定FW適用開始要求75
を注目CMに対して送信(ステップS411)してから、この第2FW適用制御処理を終了する。
【0141】
要するに、ステップS404の判断時点において、第1系列、第2系列に属しているRAID−Gは、それぞれ、AランクRAID−G、DランクRAID−Gだけである(ステップS402参照)。そのため、"第1系列のドライブ数≧第2系列のドライブ数"が成立している場合、両系列に対するFW適用を同時に開始すると、第1系列(AランクRAID−G)のFW適用が完了する前に、第2系列(DランクRAID−G)に対するFW適用が完了することになる。そして、FW適用要RAID−Gの中には、AランクRAID−Gと同時にFW適用を行えるDランクRAID−Gが残っていない(ステップS402参照)。そのため、第2系列リストに、開始条件を付加した形でFW適用要RAID−Gの識別情報を追加することによって、AランクRAID−Gと同時に他のB,CランクRAID−GのFW適用が行われないようにしているのである。
【0142】
AランクRAID−Gが存在していなかった場合(ステップS401;NO)、スケジュール制御部28は、全FW適用要RAID−Gを、総ドライブ数がほぼ一致するように、第1系列用のRAID−Gと第2系列用のRAID−Gとに分類する(ステップS408)。次いで、スケジュール制御部28は、第1系列リストに第1系列用の各RAID−Gの識別情報を追加し、第2系列リストに第2系列用の各RAID−Gの識別情報を追加する処理(ステップS409)を行う。
【0143】
そして、スケジュール制御部28は、第1、第2系列リストに基づき、系列指定FW適用開始要求75(図16A参照)を生成する(ステップS410)。そして、スケジュール制御部28は、指定時間帯の開始時刻となったときに、系列指定FW適用開始要求を注目CMに対して送信(ステップS411)してから、この第2FW適用制御処理を終了する。
【0144】
すなわち、AランクRAID−Gが存在していない(ステップS401;NO)ということは、各FW適用要RAID−Gが、BランクRAID−G〜DランクRAID−Gのいずれかであるということである。そして、Bランク以下の2つのRAID−Gは同時にFWを適用しても、原則として、FW適用の完了前に退避データ記憶領域220がフルにならない。また、各系列のドライブ数が近づくようにしておいた方が、全てのドライブ150に対するFW適用が早く完了する。そのため、上記のように、各FW適用要RAID−Gを第1、第2系列リストに振り分けることにより、系列指定FW適用開始要求75を生成して送信しているのである。
【0145】
尚、流れ図(図15)中への表記は省略したが、スケジュール制御部28は、ステップS411の処理を実行する前に、各系列のドライブ数に基づき、生成した系列指定FW適用開始要求75が、その完了に30分(つまり、指定時間帯の長さ)以上かかるものであるか否かを判断する。そして、スケジュール制御部28は、生成した系列指定FW適用開始要求75が、その完了に30分以上かかるものであった場合には、ステップS411の処理を行うことなく、その旨をユーザに通知してから、この第2FW適用制御処理を終了する。
【0146】
以上、詳細に説明したように、本実施形態に係るディスクアレイ装置10のCE11(及びマスターCM12)は、
RAIDグループについてのアクセス頻度情報を取得し、
指定された時間範囲の中で前後の時間帯よりもアクセス頻度が低い時間帯を、取得したアクセス頻度情報に基づいて求め、求めた時間帯に基づいて、RAIDグループに属するドライブ150のファームウェアの書き換え処理の開始タイミングを決定し、
決定した開始タイミングで、ドライブ150のファームウェアの書き換え処理を開始する
機能を有している。
【0147】
そして、FWの適用中にRAID−Gに問題(ドライブ150の故障)が発生した場合、通常、データロストが発生してしまい、RAID−Gに問題が発生する確率は、アクセス頻度が高くなるにつれ大きくなる。従って、アクセス頻度が前後の時間帯よりも低い時間帯を求めて(予測して)当該時間帯にRAID−Gのドライブ150のFW更新を行う本実施形態に係るCE11(又はマスターCM12)は、冗長性を有するRAID−Gの各構成ドライブ150のFWを、安全に書き換えられる装置となっていると言うことが出来る。
【0148】
さらに、上記したCE11(又はマスターCM12)は、可能である場合に2つ以上のRAID−Gに対するFW適用を同時に行う機能を有している。従って、本実施形態に係るCE11(又はマスターCM12)によれば、複数のRAIDグループに対するFW適用を短時間で完了させられることになる。
【0149】
《第2実施形態》
本発明の第2実施形態に係るディスクアレイ装置は、スケジュール制御部28が、第2FW適用制御処理の代わりに図18A〜図18Iに示した手順の分割FW適用制御処理を実行するように、第1実施形態に係るディスクアレイ装置10を変形した装置である。そのため、以下では、第1実施形態のディスクアレイ装置10の説明時に用いたものと同じ符号を用いて、分割FW適用制御処理関連の動作を中心に、第2実施形態に係るディスクアレイ装置10の動作を説明する。
【0150】
上記したように、分割FW適用制御処理は、第2FW適用制御処理の代わりに実行される処理である。すなわち、スケジュール制御部28は、1つのランク算出対象時間帯を指定した形でFW適用が指示された場合に、分割FW適用制御処理(図18A〜図18I)を実行する。
【0151】
この分割FW適用制御処理も、第2FW適用制御処理と同様に、各RAID−Gについてアクセス頻度が相対的に低い時間帯をアクセス履歴情報55に基づき求め、求めた時間帯に各RAID−GのFW適用が行われるように各部を制御する処理である。ただし、分割FW適用制御処理は、指定時間帯(指定時間範囲、ユーザが指定した1つのランク算出対象時間帯)を前半区間と後半区間とに分け、RAID−G毎にFW適用に適した区間を決定する処理となっている。
【0152】
すなわち、既に説明した処理内容から明らかなように、第2FW適用制御処理は、指定時間帯内の各時刻におけるアクセス頻度が同じであるとみなして、各RAID−GのFW適用タイミングを決定するものであった。これに対して、分割FW適用制御処理は、指定時間帯を前半区間と後半区間とに二分し、両区間のアクセス頻度をアクセス履歴情報55から推定した上で、RAID−G毎にFW適用に適した区間を決定する処理となっている。
【0153】
具体的には、図18Aに示してあるように、分割FW適用制御処理を開始したスケジュール制御部28は、まず、ステップS501にて、前半リスト及び後半リストを初期化する。また、スケジュール制御部28は、ステップS501にて、前半ドライブ数及び後半ドライブ数をそれぞれ"0"に初期化する。
【0154】
前半リストは、前半区間にFW適用を行うべきRAID−GのRAID−G番号を、そ
のRAID−Gの指定時間帯のランクと共に記憶しておくためのリスト(メモリ103上の一記憶領域)である。後半リストは、後半区間にFW適用を行うべきRAID−GのRAID−G番号を、そのRAID−Gの指定時間帯のランクと共に記憶しておくためのリストである。ステップS501の処理では、前半リスト及び後半リストの双方が空のリストに初期化される。
【0155】
さらに、スケジュール制御部28は、ステップS501にて、ランクAテーブル80A、ランクBテーブル80B、ランクCテーブル80C、ランクDテーブル80Dを初期化する。図19A、図19B、図19C、図19Dに、それぞれ、ランクAテーブル80A、ランクBテーブル80B、ランクCテーブル80C、ランクDテーブル80Dの一例を示す。尚、図19A〜図19Dに示したランクXテーブル80X(X=A〜D)は、初期化直後のものではなく、データの書き込みが行われた後のものである。
【0156】
図19A〜図19Dから明らかなように、ランクXテーブル80Xは、RAID−G番号、前ランク指標値、現ランク指標値及び後ランク指標値を設定可能なレコードを記憶しておくためのテーブルである。ステップS501の処理では、各ランクXテーブル80Xが、空のテーブル(有意なデータが設定されたレコードを保持していないテーブル)に初期化される。尚、各ランク指標値の詳細については後述することにする。
【0157】
ステップS501(図18A)の処理を終えたスケジュール制御部28は、注目ランクテーブル60(図9)上に識別情報が記憶されているRAID−Gの中から、処理対象RAID−Gを選択する(ステップS502)。
【0158】
その後、スケジュール制御部28は、注目ランクテーブル60に記憶されている,処理対象RAID−Gに関する指定時間帯のランク(以下、現ランクと表記する)が"A"であるか否かを判断する(ステップS503)。
【0159】
現ランクが"A"ではなかった場合(ステップS503;NO)、スケジュール制御部28は、注目ランクテーブル60上に識別情報が記憶されている全RAID−Gに対する処理が完了したか否かを判断する(ステップS505)。そして、スケジュール制御部28は、全RAID−Gに対する処理が完了していなかった場合(ステップS505;NO)には、処理対象RAID−Gを次のRAID−Gに変更(ステップS506)してから、ステップS503以降の処理を再び開始する。
【0160】
現ランクが"A"であった場合(ステップS503;YES)、スケジュール制御部28は、処理対象RAID−GのRAID−G番号、前ランク指標値、現ランク指標値及び後ランク指標値を設定したレコードをランクAテーブル80Aに追加する(ステップS504)。
【0161】
ここで、処理対象RAID−Gの現ランク指標値とは、現ランク(注目ランクテーブル60上の,処理対象RAID−Gの指定時間帯のランク)を、A→0、B→1、C→2、D→3という変換規則によって数値化した値のことである。処理対象RAID−Gの前ランク指標値とは、注目ランクテーブル60上の,処理対象RAID−Gに関する指定時間帯の直前の時間帯のランク(以下、前ランクと表記する)を上記変換規則によって数値化した値のことである。同様に、処理対象RAID−Gの後ランク指標値とは、注目ランクテーブル60上の,処理対象RAID−Gに関する指定時間帯の直後の時間帯のランク(以下、後ランクと表記する)を上記変換規則によって数値化した値のことである。
【0162】
ステップS504の処理を終えたスケジュール制御部28は、ステップS505以降の処理を開始する。そして、スケジュール制御部28は、全RAID−Gに対する処理が完
了した場合(ステップS505;YES)には、ランクAテーブル80Aから、処理対象レコードを選択する(図18B:ステップS511)。以下、処理対象レコードに設定されているRAID−G番号で識別されるRAID−Gのことを処理対象RAID−Gと表記する。また、処理対象レコードに設定されている前ランク指標値、現ランク指標値、後ランク指標値のことを、それぞれ、V(前)、V(現)、V(後)と表記する。
【0163】
ステップS512〜S518の処理は、基本的には、ランク指標値の大小関係に基づき、前半区間、後半区間のいずれの区間のアクセス頻度の方が低いかを推定し、処理対象RAID−GのFW適用をアクセス頻度が低い方の区間で行うことを記憶する処理である。
【0164】
ステップS512〜S515の処理が、ランク指標値の大小関係に基づき、前半区間、後半区間のいずれの区間のアクセス頻度の方が低いかを推定している部分である。
【0165】
ステップS512〜S515の処理は、図20Aに示したような場合、すなわち、前時間帯のアクセス頻度が、後時間帯のそれよりも高い場合(V(前)<V(後)が成立する場合)に、後半区間のアクセス頻度の方が低いと判定する処理となっている。また、ステップS512〜S515の処理は、図20B、図20Cに示したような場合、すなわち、前時間帯のアクセス頻度が、後時間帯のそれよりも高い場合(V(前)>V(後)が成立する場合)に、前半区間のアクセス頻度の方が後半区間よりも低いと判定する処理ともなっている。
【0166】
ステップS517(図18B)の処理が、前半区間のアクセス頻度の方が低いと推定された場合(ステップS515;NO、ステップS513;NO等)に実行される処理である。このステップS517の処理では、処理対象RAIDグループのRAID−G番号と"A"(処理対象RAIDグループの指定時間帯についてのランク)との組み合わせが前半リストに追加され、前半ドライブ数に、処理対象RAIDグループの構成ドライブ数が加算される。
【0167】
また、ステップS518の処理が、後半区間のアクセス頻度の方が低いと推定された場合(ステップS515;NO、ステップS513;NO等)に実行される処理である。このステップS518の処理では、処理対象RAIDグループのRAID−G番号と"A"との組み合わせが後半リストに追加され、後半ドライブ数に、処理対象RAIDグループの構成ドライブ数が加算される。
【0168】
上記したように、ステップS512〜S515の処理では、ランク指標値に基づき、アクセス頻度がより低い区間が推定されるのであるが、V(前)=V(後)が成立している場合、ランク指標値から各区間のアクセス頻度の大小関係を推定することは出来ない。従って、この場合、アクセス頻度という観点からは、処理対象RAID−GのRAID−G番号をどちらのテーブルに追加しても良いことになる。ただし、後半ドライブ数と前半ドライブ数が大きく異なるのは好ましくない。そのため、V(前)=V(現)=V(後)が成立している場合(ステップS513;NO)、ステップS516の判断が行われて、ドライブ数が少ない方のテーブルに処理対象RAID−GのRAID−G番号が追加されるようにしてあるのである。
【0169】
ステップS517又はS518の処理を終えたスケジュール制御部28は、ランクAテーブル80A内の全レコードに対する処理が完了したか否かを判断する(ステップS519)。全レコードに対する処理が完了していなかった場合(ステップS519;NO)、スケジュール制御部28は、処理対象レコードを次レコードに変更(ステップS520)してから、ステップS512以降の処理を再び開始する。
【0170】
一方、全レコードに対する処理が完了していた場合(ステップS519;YES)、スケジュール制御部28は、図18Cに示した手順の処理を行う。
【0171】
すなわち、スケジュール制御部28は、ランクAテーブル80Aへのレコードの追加時の手順(図18A)と同手順で、ランクBテーブル80Bへレコードを追加する処理(ステップS602〜S606)を行う。
【0172】
ランクBテーブル80Bへのレコードの追加が完了した場合(ステップS605;YES)、スケジュール制御部28は、図18Dに示した手順の処理を実行する。
【0173】
すなわち、スケジュール制御部28は、ランクBテーブル80B内のレコード毎に(ステップS611,S620)、いずれの区間のアクセス頻度の方が低いかを推定する(ステップS612〜S616、S621、S622)。尚、図18Bより、判断ステップの数が多くなっているのは、現ランクがBである場合、現ランクがAである場合には成立し得ない関係("V(前)<V(現)"等)が成立し得るためである。
【0174】
また、スケジュール制御部28は、ランク指標値から各区間のアクセス頻度の大小関係を推定することが出来ない場合(ステップS613;YES等)には、前半ドライブ数と後半ドライブ数の大小関係から処理対象RAID−GのRAID−G番号を追加するテーブルを決定する(ステップS616)。
【0175】
そして、スケジュール制御部28は、前半区間のアクセス頻度の方が低いと推定した場合(ステップS615;>V(後)、等)には、処理対象RAIDグループのRAID−G番号と"B"との組み合わせを前半リストに追加する(ステップS617)。さらに、スケジュール制御部28は、前半ドライブ数に、処理対象RAIDグループの構成ドライブ数を加算する(ステップS617)。
【0176】
また、スケジュール制御部28は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象RAID−GのRAID−G番号を追加するテーブルを前半テーブルに決定した場合(ステップS616;YES)にも、ステップS617の処理を行う。
【0177】
スケジュール制御部28は、後半区間のアクセス頻度の方が低いと推定した場合(ステップS615;<V(後)、等)には、処理対象RAIDグループのRAID−G番号と"B"との組み合わせを後半リストに追加する(ステップS618)。さらに、スケジュール制御部28は、後半ドライブ数に、処理対象RAIDグループの構成ドライブ数を加算する(ステップS618)。
【0178】
また、スケジュール制御部28は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象RAID−GのRAID−G番号を追加するテーブルを後半テーブルに決定した場合(ステップS616;NO)にも、ステップS618の処理を行う。
【0179】
そして、スケジュール制御部28は、ランクBテーブル80B内の全レコードに対する、ステップS617又はS618の処理が完了したときに(ステップS619;YES)、図18Eに示した手順の処理を行う。
【0180】
要するに、スケジュール制御部28は、ランクAテーブル80AやランクBテーブル80Bへのレコードの追加時の手順(図18A、図18C)と同手順で、ランクCテーブル80Cへレコードを追加する処理(ステップS702〜S706)を行う。
【0181】
ランクCテーブル80Cへのレコードの追加が完了した場合(ステップS705;YE
S)、スケジュール制御部28は、図18Fに示した手順の処理を実行する。
【0182】
すなわち、スケジュール制御部28は、ランクCテーブル80C内のレコード毎に(ステップS711、S720)に、いずれの区間のアクセス頻度の方が低いかを推定する(ステップS712〜S715、S721、S722)。
【0183】
また、スケジュール制御部28は、ランク指標値から各区間のアクセス頻度の大小関係を推定することが出来ない場合(ステップS713;YES等)には、前半ドライブ数と後半ドライブ数の大小関係から処理対象RAID−GのRAID−G番号を追加するテーブルを決定する(ステップS716)。
【0184】
そして、スケジュール制御部28は、前半区間のアクセス頻度の方が低いと推定した場合(ステップS715;>V(後)、等)には、処理対象RAIDグループのRAID−G番号と"C"との組み合わせを前半リストに追加すると共に、前半ドライブ数に処理対象RAIDグループの構成ドライブ数を加算する(ステップS717)。
【0185】
また、スケジュール制御部28は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象RAID−GのRAID−G番号を追加するテーブルを前半テーブルに決定した場合(ステップS716;YES)にも、ステップS717の処理を行う。
【0186】
スケジュール制御部28は、後半区間のアクセス頻度の方が低いと推定した場合(ステップS716;<V(後)、等)には、処理対象RAIDグループのRAID−G番号と"C"との組み合わせを後半リストに追加する(ステップS718)。さらに、スケジュール制御部28は、後半ドライブ数に、処理対象RAIDグループの構成ドライブ数を加算する(ステップS718)。
【0187】
また、スケジュール制御部28は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象RAID−GのRAID−G番号を追加するテーブルを後半テーブルに決定した場合(ステップS716;NO)にも、ステップS718の処理を行う。
【0188】
そして、スケジュール制御部28は、ランクCテーブル80C内の全レコードに対する、ステップS717又はS718の処理が完了した場合(ステップS719;YES)には、図18Gに示した手順の処理を行う。
【0189】
すなわち、スケジュール制御部28は、ランクAテーブル80A等へのレコードの追加時の手順(図18A、図18C、図18E)と同手順で、ランクDテーブル80Dへレコードを追加する処理(ステップS802〜S806)を行う。
【0190】
ランクDテーブル80Dへのレコードの追加が完了した場合(ステップS805;YES)、スケジュール制御部28は、図18Hに示した手順の処理を実行する。
【0191】
すなわち、スケジュール制御部28は、ランクDテーブル80D内のレコード毎に(ステップS811、S820)に、いずれの区間のアクセス頻度の方が低いかを推定する(ステップS812〜S815)。
【0192】
また、スケジュール制御部28は、ランク指標値から各区間のアクセス頻度の大小関係を推定することが出来ない場合(ステップS813;YES等)には、前半ドライブ数と後半ドライブ数の大小関係から処理対象RAID−GのRAID−G番号を追加するテーブルを決定する(ステップS816)。
【0193】
そして、スケジュール制御部28は、前半区間のアクセス頻度の方が低いと推定した場合(ステップS815;NO、等)には、処理対象RAIDグループのRAID−G番号と"D"との組み合わせを前半リストに追加すると共に、前半ドライブ数に処理対象RAIDグループの構成ドライブ数を加算する(ステップS817)。
【0194】
また、スケジュール制御部28は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象RAID−GのRAID−G番号を追加するテーブルを前半テーブルに決定した場合(ステップS816;YES)にも、ステップS817の処理を行う。
【0195】
スケジュール制御部28は、後半区間のアクセス頻度の方が低いと推定した場合(ステップS816;YES、等)には、処理対象RAIDグループのRAID−G番号と"D"との組み合わせを後半リストに追加する(ステップS818)。さらに、スケジュール制御部28は、後半ドライブ数に、処理対象RAIDグループの構成ドライブ数を加算する(ステップS818)。
【0196】
また、スケジュール制御部28は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象RAID−GのRAID−G番号を追加するテーブルを後半テーブルに決定した場合(ステップS816;NO)にも、ステップS818の処理を行う。
【0197】
そして、スケジュール制御部28は、ランクDテーブル80D内の全レコードに対する、ステップS817又はS818の処理が完了した場合(ステップS819;YES)には、図18Iに示した手順の処理を実行する。
【0198】
すなわち、図18A〜図18Hの処理を終えたスケジュール制御部28は、まず、前半リスト内の情報(何組かのRAID−G番号とランク)から、第1系列指定FW適用開始要求を生成する処理(ステップS901)を行う。
【0199】
このステップS901の処理は、処理対象とする情報が注目ランクテーブル60内の情報ではなく前半リスト内の情報であること(及び生成される要求の名称が系列指定FW適用開始要求ではなく第1系列指定FW適用開始要求であること)を除けば、ステップS400〜S410(図15)と同手順の処理である。
【0200】
次いで、スケジュール制御部28は、後半リスト内の情報から、第2系列指定FW適用開始要求を生成する処理(ステップS902)を行う。このステップS902の処理も、処理対象とする情報が注目ランクテーブル60内の情報ではなく後半リスト内の情報であることを除けば、ステップS400〜S410と同手順の処理である。
【0201】
そして、スケジュール制御部28は、指定時間帯の開始時刻(前半区間の開始時刻)に第1系列指定FW適用開始要求を注目CM12に対して送信する処理(ステップS903)と後半区間の開始時刻に第2系列指定FW適用開始要求を注目CM12に対して送信する処理(ステップS904)とを行ってから、この分割FW適用制御処理を終了する。
【0202】
尚、流れ図への表記は省略したが、ステップS901又はS902の処理で生成された系列指定FW適用開始要求が、その完了に15分以上かかるものであった場合、スケジュール制御部28は、ステップS903以降の処理を行うことなく、その旨をユーザに通知する。また、スケジュール制御部28は、第1系列指定FW適用開始要求でFW適用を指示した全RAID−GについてのFW適用が完了したことを後半区間の開始時刻までに確認できなかった場合、ステップS904の処理を行うことなく、その旨をユーザに通知する。
【0203】
以上、説明したように、第2実施形態に係るディスクアレイ装置10のCE11(及びマスタCM12)は、別のFWを適用すべき各RAID−Gについての、指定時間帯(ユーザが指定した1つのランク算出対象時間帯)とその前後の時間帯に関するアクセスランクから、RAID−G毎に、指定時間帯の前半区間、後半区間のいずれの方がアクセス頻度が少ないかを推定する。そして、CE11(及びマスタCM12)は、各RAID−GのFW適用を、アクセス頻度が低いと推定した方の区間(時間帯)内に行う。
【0204】
従って、この第2実施形態に係るCE11(又はマスタCM12)によれば、FW適用中に退避データ格納領域220がフルになる可能性が第1実施形態に係るCE11(又はマスタCM12)よりも低い形で、各RAID−GのFW適用を行えることになる。
【0205】
《変形形態》
上記した各実施形態の技術は、各種の変形を行えるものである。例えば、各実施形態に係るディスクアレイ装置10を、各CM12が、独立して、自CM12が担当しているRAID−GのFW適用時期を決定する装置に変形することが出来る。また、各実施形態に係るディスクアレイ装置10を、特定数が2以上であった場合(図13:S304;YES)に、第2FW適用制御処理又は分割FW適用制御処理に相当する処理が行われる装置に変形することも出来る。
【0206】
また、各実施形態に係るディスクアレイ装置10を、ランクの調整(図8)が行われない装置や、上記したものとは具体的な形式が異なるテーブル/要求を生成する装置に変形しても良いことは当然のことである。
【0207】
以上、開示した技術に関し、更に以下の付記を開示する。
【0208】
(付記1) 冗長性を有するRAIDグループに対してアクセス制御を行うRAIDグループ制御装置であって、
前記RAIDグループについてのアクセス頻度情報を取得する取得部と、
指定された時間範囲の中で前後の時間帯よりもアクセス頻度が低い時間帯を、前記アクセス頻度情報に基づいて求め、求めた時間帯に基づいて、前記RAIDグループに属するドライブのファームウェアの書き換え処理の開始タイミングを決定するスケジューリング部と、
決定した前記開始タイミングで、前記ドライブのファームウェアの書き換え処理を開始するファームウェア書き換え処理部と、
を備えるRAIDグループ制御装置。
【0209】
(付記2) 前記スケジューリング部は、アクセス頻度が低い時間帯が求められなかったRAIDグループがある場合、当該RAIDグループの前記開始タイミングを、他のRAIDグループについて求められた時間帯とは異なる時間帯に決定する
ことを特徴とする付記1に記載のRAIDグループ制御装置。
【0210】
(付記3) 前記ファームウェア適用処理が行われているファームウェア適用中ドライブを含むRAIDグループに対するリード/ライト要求に応答する要求応答部を、さらに備え、
前記要求応答部は、
或るファームウェア適用中ドライブを含む或るRAIDグループに対するリード要求を、当該ファームウェア適用中ドライブを除いた当該RAIDグループ内のドライブを制御することにより処理し、
或るファームウェア適用中ドライブを含む或るRAIDグループに対するライト要求を、当該ファームウェア適用中ドライブを除いた当該RAIDグループ内のドライブを制御
すると共に、当該ファームウェア適用中ドライブに書き込むべきデータと、当該データを書き込むべき当該ファームウェア適用中ドライブの記憶領域及び当該ファームウェア適用中ドライブを示す書込位置情報とを情報格納領域に記憶することにより処理し、
或るファームウェア適用中ドライブに対するファームウェア適用処理の完了後に、前記書込位置情報に基づき、前記情報格納領域に記憶されている当該ファームウェア適用中ドライブに書き戻すべき各データを当該ファームウェア適用中ドライブに書き戻してから、当該ファームウェア適用中ドライブに書き戻した各データと当該各データに対応する書込位置情報を前記情報格納領域上から消去する
ことを特徴とする付記1又は2に記載のRAIDグループ制御装置。
【0211】
(付記4) 前記スケジューリング部は、各ファームウェア適用中ドライブに対するファームウェア適用処理を行う際における前記情報格納領域の使用状況を予測して、前記RAIDグループの前記開始タイミングを決定する
ことを特徴とする付記3に記載のRAIDグループ制御装置。
【0212】
(付記5) 前記取得部は、所定時間毎のアクセス回数を含むアクセス頻度情報を取得し、
前記スケジューリング部は、前記アクセス頻度情報に基づき、アクセス頻度が前後の時間帯よりも低い,前記所定時間よりも短い時間帯を求め、求めた時間帯に基づいて、前記RAIDグループに属するドライブのファームウェアの書き換え処理の開始タイミングを決定する
ことを特徴とする付記1から4のいずれか一項に記載のRAIDグループ制御装置。
【0213】
(付記6) 上位装置から入力されるリード/ライト要求に応じた内容の制御を、冗長性を有する複数のRAIDグループに対して行うRAIDグループ制御装置であって、
複数のRAIDグループのそれぞれに関するアクセス頻度履歴を保持する保持部と、
複数のRAIDグループのそれぞれに対するアクセス状況を監視し、各RAIDグループに対するアクセス状況の監視結果に基づき、前記保持部が保持している各RAIDグループに関するアクセス頻度履歴を更新する更新部と、
前記保持部が保持している、新ファームウェアを適用すべき各RAIDグループに関する前記アクセス頻度履歴に基づき、新ファームウェアを適用すべき各RAIDグループについて、アクセス頻度が前後の時間帯よりも低くなる将来の時間帯を決定するスケジューリング部と、
前記スケジューリング部が各RAIDグループについて決定した時間帯内に、各RAIDグループを構成している各ドライブに対して、ファームウェアを別のファームウェアに書き換えてから再起動をかけるファームウェア適用処理を順に行うファームウェア適用処理部と、
前記ファームウェア適用処理が行われているドライブであるファームウェア適用中ドライブを含むRAIDグループに対するリード/ライト要求に、当該ファームウェア適用中ドライブを利用することなく応答する要求応答部と、
を備えることを特徴とするRAIDグループ制御装置。
【0214】
(付記7) 前記要求応答部は、
或るファームウェア適用中ドライブを含む或るRAIDグループに対するリード要求を、当該ファームウェア適用中ドライブを除いた当該RAIDグループ内のドライブを制御することにより処理し、
或るファームウェア適用中ドライブを含む或るRAIDグループに対するライト要求を、当該ファームウェア適用中ドライブを除いた当該RAIDグループ内のドライブを制御すると共に、当該ファームウェア適用中ドライブに書き込むべきデータと、当該データを書き込むべき当該ファームウェア適用中ドライブの記憶領域及び当該ファームウェア適用
中ドライブを示す書込位置情報とを両者の対応関係が分かる形で所定の情報格納領域に記憶することにより処理し、
或るファームウェア適用中ドライブに対するファームウェア適用処理の完了後に、前記所定の情報格納領域に記憶されている書込位置情報に基づき、前記所定の情報格納領域に記憶されている当該ファームウェア適用中ドライブに書き戻すべき各データを当該ファームウェア適用中ドライブに書き戻してから、当該ファームウェア適用中ドライブに書き戻した各データと各データに対応する書込位置情報を前記所定の情報格納領域上から消去する
ことを特徴とする付記6に記載のRAIDグループ制御装置。
【0215】
(付記8) 前記スケジューリング部は、各ファームウェア適用中ドライブに対するファームウェア適用処理の完了前に、前記所定の情報格納領域に空き記憶領域がなくならないように、各RAIDグループについての時間帯を決定する
ことを特徴とする付記7に記載のRAIDグループ制御装置。
【0216】
(付記9) 前記スケジューリング部は、
複数のRAIDグループに関する同時間帯についてのアクセス頻度情報から、当該複数のRAIDグループが、同時に前記ファームウェア適用処理部の処理対象とした場合における前記情報格納領域の使用状況を予測し、
同時に前記ファームウェア適用処理部の処理対象としても、各ファームウェア適用中ドライブに対するファームウェア適用処理の完了前に、前記所定の情報格納領域に空き記憶領域がなくならないと判定された複数のRAIDグループについての時間帯が一致するように、各RAIDグループについての前記タイミングを決定する
ことを特徴とする付記7に記載のRAIDグループ制御装置。
【0217】
(付記10) 前記保持部は、前記アクセス頻度履歴として、所定時間毎のアクセス回数を保持し、
前記スケジューリング部は、前記保持部が保持している、新ファームウェアを適用すべき各RAIDグループに関する前記所定時間毎のアクセス回数に基づき、新ファームウェアを適用すべき各RAIDグループについて、アクセス頻度が前後の時間帯よりも低くなる将来の前記所定時間よりも短い時間帯を決定する
ことを特徴とする付記6から9のいずれか一項に記載のRAIDグループ制御装置。
【符号の説明】
【0218】
10 ディスクアレイ装置
11 コントローラエンクロージャ(CE)
12 コントローラモジュール(CM)
15 ドライブエンクロージャ(DE)
16 記憶部
21 IO制御部
22 システム制御部
23 装置監視部
24 ファームウェア管理制御部
25 アクセス退避制御部
26 アクセス監視部
27 アクセスランク調整部
28 スケジュール制御部
40 ホスト
50 アクセス数情報
55 アクセス履歴情報
60 ランクテーブル
70 作業用テーブル
75 系列指定FW適用開始要求
80A ランクAテーブル
80B ランクBテーブル
80C ランクCテーブル
80D ランクDテーブル
101 チャネルアダプタ(CA)
102 CPU
103 メモリ
104 ドライブアダプタ(DA)
150 ドライブ
150a ファームウェア適用中ドライブ
150c 故障発生ドライブ
155 ホットスペアドライブ
200 ファームウェア適用中RAIDグループ
220 退避データ格納領域

【特許請求の範囲】
【請求項1】
冗長性を有するRAIDグループに対してアクセス制御を行うRAIDグループ制御装置であって、
前記RAIDグループについてのアクセス頻度情報を取得する取得部と、
指定された時間範囲の中で前後の時間帯よりもアクセス頻度が低い時間帯を、前記アクセス頻度情報に基づいて求め、求めた時間帯に基づいて、前記RAIDグループに属するドライブのファームウェアの書き換え処理の開始タイミングを決定するスケジューリング部と、
決定した前記開始タイミングで、前記ドライブのファームウェアの書き換え処理を開始するファームウェア書き換え処理部と、
を備えるRAIDグループ制御装置。
【請求項2】
前記スケジューリング部は、アクセス頻度が低い時間帯が求められなかったRAIDグループがある場合、当該RAIDグループの前記開始タイミングを、他のRAIDグループについて求められた時間帯とは異なる時間帯に決定する
ことを特徴とする請求項1に記載のRAIDグループ制御装置。
【請求項3】
前記ファームウェア適用処理が行われているファームウェア適用中ドライブを含むRAIDグループに対するリード/ライト要求に応答する要求応答部を、さらに備え、
前記要求応答部は、
或るファームウェア適用中ドライブを含む或るRAIDグループに対するリード要求を、当該ファームウェア適用中ドライブを除いた当該RAIDグループ内のドライブを制御することにより処理し、
或るファームウェア適用中ドライブを含む或るRAIDグループに対するライト要求を、当該ファームウェア適用中ドライブを除いた当該RAIDグループ内のドライブを制御すると共に、当該ファームウェア適用中ドライブに書き込むべきデータと、当該データを書き込むべき当該ファームウェア適用中ドライブの記憶領域及び当該ファームウェア適用中ドライブを示す書込位置情報とを情報格納領域に記憶することにより処理し、
或るファームウェア適用中ドライブに対するファームウェア適用処理の完了後に、前記書込位置情報に基づき、前記情報格納領域に記憶されている当該ファームウェア適用中ドライブに書き戻すべき各データを当該ファームウェア適用中ドライブに書き戻してから、当該ファームウェア適用中ドライブに書き戻した各データと当該各データに対応する書込位置情報を前記情報格納領域上から消去する
ことを特徴とする請求項1又は2に記載のRAIDグループ制御装置。
【請求項4】
前記スケジューリング部は、各ファームウェア適用中ドライブに対するファームウェア適用処理を行う際における前記情報格納領域の使用状況を予測して、前記各RAIDグループの前記開始タイミングを決定する
ことを特徴とする請求項3に記載のRAIDグループ制御装置。
【請求項5】
前記取得部は、所定時間毎のアクセス回数を含むアクセス頻度情報を取得し、
前記スケジューリング部は、前記アクセス頻度情報に基づき、アクセス頻度が前後の時間帯よりも低い,前記所定時間よりも短い時間帯を求め、求めた時間帯に基づいて、前記RAIDグループに属するドライブのファームウェアの書き換え処理の開始タイミングを決定する
ことを特徴とする請求項1から4のいずれか一項に記載のRAIDグループ制御装置。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16A】
image rotate

【図16B】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図18A】
image rotate

【図18B】
image rotate

【図18C】
image rotate

【図18D】
image rotate

【図18E】
image rotate

【図18F】
image rotate

【図18G】
image rotate

【図18H】
image rotate

【図18I】
image rotate

【図19A】
image rotate

【図19B】
image rotate

【図19C】
image rotate

【図19D】
image rotate

【図20A】
image rotate

【図20B】
image rotate

【図20C】
image rotate


【公開番号】特開2013−73353(P2013−73353A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−210977(P2011−210977)
【出願日】平成23年9月27日(2011.9.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】