(57)【特許請求の範囲】
【請求項１】
冗長性を有するＲＡＩＤグループに対してアクセス制御を行うＲＡＩＤグループ制御装置であって、
前記ＲＡＩＤグループについてのアクセス頻度情報を取得する取得部と、
指定された時間範囲の中で前後の時間帯よりもアクセス頻度が低い時間帯を、前記アクセス頻度情報に基づいて求め、求めた時間帯に基づいて、前記ＲＡＩＤグループに属するドライブのファームウェアの書き換え処理の開始タイミングを決定するスケジューリング部と、
決定した前記開始タイミングで、前記ドライブのファームウェアの書き換え処理を開始するファームウェア書き換え処理部とを備え、
前記スケジューリング部は、アクセス頻度が低い時間帯が求められなかったＲＡＩＤグループがある場合、当該ＲＡＩＤグループの前記開始タイミングを、他のＲＡＩＤグループについて求められた時間帯とは異なる時間帯に決定する、
ＲＡＩＤグループ制御装置。
【請求項２】
ファームウェア適用処理が行われているファームウェア適用中ドライブを含むＲＡＩＤグループに対するリード／ライト要求に応答する要求応答部を、さらに備え、
前記要求応答部は、
或るファームウェア適用中ドライブを含む或るＲＡＩＤグループに対するリード要求を、当該ファームウェア適用中ドライブを除いた当該ＲＡＩＤグループ内のドライブを制御することにより処理し、
或るファームウェア適用中ドライブを含む或るＲＡＩＤグループに対するライト要求を、当該ファームウェア適用中ドライブを除いた当該ＲＡＩＤグループ内のドライブを制御すると共に、当該ファームウェア適用中ドライブに書き込むべきデータと、当該データを書き込むべき当該ファームウェア適用中ドライブの記憶領域及び当該ファームウェア適用中ドライブを示す書込位置情報とを情報格納領域に記憶することにより処理し、
或るファームウェア適用中ドライブに対するファームウェア適用処理の完了後に、前記書込位置情報に基づき、前記情報格納領域に記憶されている当該ファームウェア適用中ドライブに書き戻すべき各データを当該ファームウェア適用中ドライブに書き戻してから、当該ファームウェア適用中ドライブに書き戻した各データと当該各データに対応する書込
位置情報を前記情報格納領域上から消去する
ことを特徴とする請求項１に記載のＲＡＩＤグループ制御装置。
【請求項３】
前記スケジューリング部は、各ファームウェア適用中ドライブに対するファームウェア適用処理を行う際における前記情報格納領域の使用状況を予測して、前記各ＲＡＩＤグループの前記開始タイミングを決定する
ことを特徴とする請求項２に記載のＲＡＩＤグループ制御装置。
【請求項４】
前記取得部は、所定時間毎のアクセス回数を含むアクセス頻度情報を取得し、
前記スケジューリング部は、前記アクセス頻度情報に基づき、アクセス頻度が前後の時間帯よりも低い，前記所定時間よりも短い時間帯を求め、求めた時間帯に基づいて、前記ＲＡＩＤグループに属するドライブのファームウェアの書き換え処理の開始タイミングを決定する
ことを特徴とする請求項１から３のいずれか一項に記載のＲＡＩＤグループ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＩＤグループを制御するＲＡＩＤグループ制御装置に関する。
【背景技術】
【０００２】
周知のように、近年、複数のＲＡＩＤグループを備えたディスクアレイ装置が、各種サービス用のデータや業務データを管理（保存）するために使用されるようになってきている。
【０００３】
そのようなディスクアレイ装置においても、各ＲＡＩＤグループを構成しているドライブ（通常、ハードディスクドライブ）のファームウェアの書き換えが必要になる場合がある。しかしながら、サービス用のデータや業務データを管理するために使用されているディスクアレイ装置のＲＡＩＤグループを、ファームウェアの書き換えのために停止させる（アクセスできない状態とする）ことは好ましくない。
【０００４】
そして、冗長性を有するＲＡＩＤグループ（ＲＡＩＤ０以外のＲＡＩＤレベルのＲＡＩＤグループ）は、１台のドライブを停止させても記憶装置として機能し得る。そのため、冗長性を有するＲＡＩＤグループの各構成ドライブのファームウェアを、ＲＡＩＤグループを停止させることなく、書き換える装置も開発されている。
【０００５】
ただし、既存の装置は、ファームウェアの書き換え指令の入力タイミングによっては、データロストといった現象を引き起こす可能性があるものとなっている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３１８６６６号公報
【特許文献２】特開２００９−７５７１６号公報
【特許文献３】特開２００８−２５０９４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
そこで、本発明の課題は、ＲＡＩＤグループの各構成ドライブのファームウェアを、安全に書き換えられるＲＡＩＤグループ制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一態様の、冗長性を有するＲＡＩＤグループに対してアクセス制御を行うＲＡＩＤグループ制御装置は、ＲＡＩＤグループについてのアクセス頻度情報を取得する取得部と、指定された時間範囲の中で前後の時間帯よりもアクセス頻度が低い時間帯を、前記アクセス頻度情報に基づいて求め、求めた時間帯に基づいて、前記ＲＡＩＤグループに属するドライブのファームウェアの書き換え処理の開始タイミングを決定するスケジューリング部と、決定した前記開始タイミングで、ドライブのファームウェアの書き換え処理を開始するファームウェア書き換え処理部とを備える。
【発明の効果】
【０００９】
本発明によれば、ＲＡＩＤグループの各構成ドライブのファームウェアを安全に書き換えられるＲＡＩＤグループ制御装置を提供することが出来る。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の第１実施形態に係るディスクアレイ装置の構成及び使用形態例の説明図である。
【図２Ａ】図２Ａは、第１実施形態に係るディスクアレイ装置内のマスターＣＭの機能ブロック図である。
【図２Ｂ】図２Ｂは、第１実施形態に係るディスクアレイ装置内のスレーブＣＭの機能ブロック図である。
【図３】図３は、第１実施形態に係るディスクアレイ装置内のアクセス退避制御部のリードアクセスに対する動作の説明図である。
【図４Ａ】図４Ａは、アクセス退避制御部のライトアクセスに対する動作の説明図である。
【図４Ｂ】図４Ｂは、アクセス退避制御部のライトアクセスに対する動作の説明図である。
【図５】図５は、非ファームウェア適用中ドライブが故障した場合におけるアクセス退避制御部の動作の説明図である。
【図６】図６は、マスターＣＭのメモリ上に記憶されているアクセス数情報の説明図である。
【図７】図７は、マスターＣＭのメモリ上に記憶されているアクセス履歴情報の説明図である。
【図８】図８は、第１実施形態に係るディスクアレイ装置内のアクセスランク調整部が行う処理の内容の説明図である。
【図９】図９は、アクセスランク調整部が生成（更新）するランクテーブルの説明図である。
【図１０】図１０は、第１実施形態に係るディスクアレイ装置内のスケジュール制御部が実行する第１ＦＷ適用制御処理の流れ図である。
【図１１】図１１は、第１ＦＷ適用制御処理中で実行される作業用テーブル作成更新処理の流れ図である。
【図１２Ａ】図１２Ａは、作業用テーブルの説明図である。
【図１２Ｂ】図１２Ｂは、作業用テーブルの説明図である。
【図１３】図１３は、第１ＦＷ適用制御処理中で実行されるファームウェア適用順リスト作成処理の流れ図である。
【図１４】図１４は、作業用テーブルの説明図である。
【図１５】図１５は、スケジュール制御部が実行する第２ＦＷ適用制御処理の流れ図である。
【図１６Ａ】図１６Ａは、第２ＦＷ適用制御処理時に生成される系列指定ファームウェア適用開始要求の説明図である。
【図１６Ｂ】図１６Ｂは、第２ＦＷ適用制御処理時に生成される、開始条件が設定されている系列指定ファームウェア適用開始要求の説明図である。
【図１７Ａ】図１７Ａは、第１実施形態に係るディスクアレイ装置内のファームウェア管理制御部の、図１６Ａに示した系列指定ファームウェア適用開始要求に対する動作の説明図である。
【図１７Ｂ】図１７Ｂは、ファームウェア管理制御部の、図１６Ｂに示した系列指定ファームウェア適用開始要求に対する動作の説明図である。
【図１８Ａ】図１８Ａは、第２実施形態に係るディスクアレイ装置内のスケジュール制御部が実行する分割ＦＷ適用制御処理の流れ図（その１）である。
【図１８Ｂ】図１８Ｂは、分割ＦＷ適用制御処理の流れ図（その２）である。
【図１８Ｃ】図１８Ｃは、分割ＦＷ適用制御処理の流れ図（その３）である。
【図１８Ｄ】図１８Ｄは、分割ＦＷ適用制御処理の流れ図（その４）である。
【図１８Ｅ】図１８Ｅは、分割ＦＷ適用制御処理の流れ図（その５）である。
【図１８Ｆ】図１８Ｆは、分割ＦＷ適用制御処理の流れ図（その６）である。
【図１８Ｇ】図１８Ｇは、分割ＦＷ適用制御処理の流れ図（その７）である。
【図１８Ｈ】図１８Ｈは、分割ＦＷ適用制御処理の流れ図（その８）である。
【図１８Ｉ】図１８Ｉは、分割ＦＷ適用制御処理の流れ図（その９）である。
【図１９Ａ】図１９Ａは、分割ＦＷ適用制御処理時に利用されるランクＡテーブルの説明図である。
【図１９Ｂ】図１９Ｂは、分割ＦＷ適用制御処理時に利用されるランクＢテーブルの説明図である。
【図１９Ｃ】図１９Ｃは、分割ＦＷ適用制御処理時に利用されるランクＣテーブルの説明図である。
【図１９Ｄ】図１９Ｄは、分割ＦＷ適用制御処理時に利用されるランクＤテーブルの説明図である。
【図２０Ａ】図２０Ａは、分割ＦＷ適用制御処理の説明図である。
【図２０Ｂ】図２０Ｂは、分割ＦＷ適用制御処理の説明図である。
【図２０Ｃ】図２０Ｃは、分割ＦＷ適用制御処理の説明図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１２】
《第１実施形態》
図１に、本発明の第１実施形態に係るディスクアレイ装置１０の構成及び使用形態例を示す。
【００１３】
この図１に示してあるように、本実施形態に係るディスクアレイ装置１０は、複数のコントローラモジュール（ＣＭ）１２を収容したコントローラエンクロージャ（ＣＥ）１１と、記憶部１６とを、備える。記憶部１６は、それぞれ、複数のドライブ１５０（ハードディスドライブ又はＳＳＤ(Solid State Drive)）を収容した複数のドライブエンクロー
ジャ（ＤＥ）１５を含む。各ＤＥ１５には、通常、データを記憶するための複数のドライブ１５０と共に、故障したドライブ１５０の代わりに使用されるホットスペアドライブ１５５も収容される。
【００１４】
ディスクアレイ装置１０が備える各ＣＭ１２は、ＦＣ(Fibre channel)スイッチ３０を
介してホスト４０から受信した（又は、ホスト４０から直接受信した）リード／ライト要求に応じた内容の制御を記憶部１６に対して行う装置である。
【００１５】
図１に示してあるように、各ＣＭ１２は、ホスト４０に対するインターフェースモジュールである２つのチャネルアダプタ（ＣＡ）１０１と、ＤＥ１５に対するインターフェースモジュールである２つのドライブアダプタ（ＤＡ）１０４とを、備える。また、各ＣＭ１２は、ＲＯＭ（Read Only Memory；図示略）、当該ＲＯＭに記憶されているプログラム（ファームウェア）に従って各種処理を行う２つのＣＰＵ（Central Processing Unit）
１０２及び各種データを一時的に記憶しておくためのメモリ１０３を、備える。
【００１６】
本実施形態に係るディスクアレイ装置１０の各ＣＭ１２は、記憶部１６を、複数の冗長性を有するＲＡＩＤグループとして取り扱う。また、各ＣＭ１２は、自身が制御を担当すべきものとして予め割り当てられている幾つかのＲＡＩＤグループのみを制御する。さらに、ディスクアレイ装置１０内の特定のＣＭ１２は、他の各ＣＭ１２（以下、スレーブＣＭ１２とも表記する）とは異なる機能を有するマスターＣＭ１２として動作する。
【００１７】
図２Ａ、図２Ｂに、それぞれ、マスターＣＭ１２、スレーブＣＭ１２の機能ブロック図を示す。
【００１８】
図２Ａに示してあるように、マスターＣＭ１２は、ＩＯ制御部２１、システム制御部２
２、装置監視部２３、ファームウェア管理制御部２４、アクセス退避制御部２５、アクセス監視部２６、アクセスランク調整部２７及びスケジュール制御部２８を備える。また、図２Ｂに示してあるように、スレーブＣＭ１２は、ＩＯ制御部２１、システム制御部２２、装置監視部２３、ファームウェア管理制御部２４、アクセス退避制御部２５、アクセス監視部２６を備える。
【００１９】
より具体的には、スレーブＣＭ１２は、ＩＯ制御部２１、システム制御部２２、装置監視部２３、ファームウェア管理制御部２４、アクセス退避制御部２５、アクセス監視部２６として機能するＣＭ１０２を備える。また、マスターＣＭ１２（図２Ａ）は、ＩＯ制御部２１、システム制御部２２、装置監視部２３、ファームウェア管理制御部２４、アクセス退避制御部２５、アクセス監視部２６、アクセスランク調整部２７及びスケジュール制御部２８として機能するＣＭ１０２を備える。
【００２０】
各ＣＭ１２（マスター／スレーブＣＭ１２）が備えるＩＯ制御部２１、システム制御部２２及び装置監視部２３は、既存のＣＭも備えるユニット（機能ブロック）である。そのため、各部の詳細な機能説明は省略するが、ＩＯ制御部２１は、上位装置からのＩ／Ｏの制御を行う。また、システム制御部２２は、電源制御、構成管理等を行い、装置監視部２３は、装置状態（記憶部１６内の各ドライブ１５０の状態等）を監視する。
【００２１】
ファームウェア管理制御部２４、アクセス退避制御部２５、アクセス監視部２６、アクセスランク調整部２７及びスケジュール制御部２８は、既存のＣＭが備えていないユニットである。
【００２２】
以下、各部の機能を具体的に説明する。尚、以下の説明において、ＦＷ、ＲＡＩＤ−Ｇとは、それぞれ、ファームウェア、ＲＡＩＤグループのことである。
【００２３】
〔ファームウェア管理制御部〕
ＦＷ（ファームウェア）管理制御部２４は、自ＣＭ１２が制御を担当している任意のＲＡＩＤグループに対して、ＦＷ適用処理を行えるユニットである。ここで、ＦＷ適用処理とは、処理対象となっているＲＡＩＤグループを構成している各ドライブ１５０に対して、「ドライブ１５０内のＦＷ記憶用の不揮発性メモリに他のＦＷを記憶させてから、ドライブ１５０をリブートする処理」を、順次、実行する処理のことである。
【００２４】
詳細については後述するが、マスターＣＭ１２のスケジュール制御部２８は、所定条件が満たされた場合、ＦＷを適用すべきＲＡＩＤ−Ｇの制御を担当しているＣＭ１２（自／他ＣＭ１２）に対して、ＦＷ適用開始要求又は系列指定ＦＷ適用開始要求を送信する。
【００２５】
ＦＷ適用開始要求は、ＦＷを適用すべき１つ以上のＲＡＩＤ−Ｇ（以下、ＦＷ適用対象ＲＡＩＤ−Ｇと表記する）の識別情報（本実施形態では、ＲＡＩＤ−Ｇ番号）がパラメータとして含まれる要求である。
【００２６】
ＦＷ管理制御部２４は、ＦＷ適用開始要求を受信した場合、まず、装置監視部２３と通信を行うことにより、受信したＦＷ適用開始要求が示している各ＦＷ適用対象ＲＡＩＤ−Ｇの中に冗長性が失われているものがあるか否かを判断する。
【００２７】
そして、ＦＷ管理制御部２４は、全ＦＷ適用対象ＲＡＩＤ−Ｇが冗長性を有していた場合には、ＦＷ適用対象ＲＡＩＤ−Ｇのそれぞれに対するＦＷ適用処理を開始する。
【００２８】
ＦＷ管理制御部２４は、ＦＷ適用対象ＲＡＩＤ−Ｇの中に、冗長性を有するものと冗長性が失われているものとがあった場合には、冗長性が失われている各ＦＷ適用対象ＲＡＩ
Ｄ−Ｇに対するＦＷ適用処理を行わない旨をスケジュール制御部２８に通知する。その後、ＦＷ管理制御部２４は、冗長性を有していることを確認できた各ＦＷ適用対象ＲＡＩＤ−Ｇに対するＦＷ適用処理を開始する。
【００２９】
また、ＦＷ管理制御部２４は、全てのＦＷ適用対象ＲＡＩＤ−Ｇの冗長性が失われていた場合には、各（全）ＦＷ適用対象ＲＡＩＤ−Ｇに対するＦＷ適用処理を行わない旨をスケジュール制御部２８に通知する。そして、ＦＷ管理制御部２４は、ＦＷ適用処理を開始することなく、受信したＦＷ適用開始要求に対する処理を終了する。
【００３０】
尚、ＦＷ管理制御部２４は、或るＦＷ適用対象ＲＡＩＤ−Ｇに対するＦＷ適用処理を開始する前に、そのＦＷ適用対象ＲＡＩＤ−Ｇの識別情報をアクセス退避制御部２５に通知する。また、ＦＷ管理制御部２４は、一台のドライブ１５０に対するＦＷ適用処理が完了する度に、その旨を示す完了通知情報（本実施形態では、ＦＷ更新が完了したドライブ１５０の識別情報を含む情報）をアクセス退避制御部２５に送信する。そして、ＦＷ管理制御部２４は、当該完了通知情報を受信したアクセス退避制御部２５がデータ書戻処理（詳細は後述）の完了を通知してきたときに、次のドライブ１５０に対するＦＷ適用を開始する。
【００３１】
また、ＦＷ管理制御部２４は、或るＦＷ適用対象ＲＡＩＤ−Ｇに対するＦＷ適用処理が完了した場合（最後のドライブ１５０に対するデータ書戻処理の完了が通知された場合）には、その旨をマスターＣＭ１２のスケジュール制御部２８に通知する。
【００３２】
系列指定ＦＷ適用開始要求の内容、系列指定ＦＷ適用開始要求に対するＦＷ管理制御部２４の動作については、スケジュール制御部２８の動作と共に、後ほど説明する。
【００３３】
〔アクセス退避制御部〕
アクセス退避制御部２５は、ＦＷ適用処理が行われているＲＡＩＤグループに対する，ホスト４０からのリード／ライトアクセス（リード／ライト要求）を処理するユニットである。アクセス退避制御部２５は、ＦＷ管理制御部２４から通知される識別情報（ＲＡＩＤ−Ｇ番号）により、どのＲＡＩＤ−ＧがＦＷ適用中ＲＡＩＤグループ２００であるかを把握する。
【００３４】
以下、図３、図４Ａ、図４Ｂ及び図５を用いて、アクセス退避制御部２５の動作を、状況別に説明する。尚、各図及び以下の説明において、ＦＷ適用中ＲＡＩＤグループ（又は、ＦＷ適用中ＲＡＩＤ−Ｇ）２００とは、ＦＷ適用処理が行われているＲＡＩＤグループのことである。また、ＦＷ適用中ドライブ１５０ａとは、ＦＷ適用中ＲＡＩＤグループ２００内の、実際にＦＷが適用されているドライブ１５０（ＦＷの書き換え中／リブート中のドライブ１５０）のことである。
【００３５】
まず、図３を用いて、ＦＷ適用中ＲＡＩＤ−Ｇ２００を構成している全ドライブ１５０が正常に機能している状況下、ＦＷ適用中ＲＡＩＤ−Ｇ２００に対するリードアクセス（リード要求）が発生した場合におけるアクセス退避制御部２５の動作を説明する。
【００３６】
この場合、アクセス退避制御部２５は、図３に模式的に示してあるように、ＦＷ適用中ドライブ１５０ａ以外のドライブ１５０から、リードアクセスが読み出しを要求しているデータを読み出してホスト４０に返送する。
【００３７】
ＦＷ管理制御部２４から複数のＲＡＩＤ−Ｇ番号が通知されている場合（つまり、ＦＷ適用中ＲＡＩＤ−Ｇ２００が複数個ある場合）、アクセス退避制御部２５は、各ＦＷ適用中ＲＡＩＤ−Ｇ２００に対するリードアクセスについて、上記内容の処理を行う。
【００３８】
次に、図４Ａ及び図４Ｂを用いて、ＦＷ適用中ＲＡＩＤ−Ｇを構成している全ドライブ１５０が正常に機能している状況下、ＦＷ適用中ＲＡＩＤ−Ｇ２００に対するライトアクセス（ライト要求）が発生した場合におけるアクセス退避制御部２５の動作を説明する。
【００３９】
この場合、アクセス退避制御部２５は、図４Ａに模式的に示してあるように、ＦＷ適用中ドライブ１５０ａ以外の各ドライブ１５０に対しては、通常の制御処理を行う。ここで、通常の制御処理とは、ＦＷ適用を行っていない場合に書き込むものと同じデータ（ライトデータを分割したデータ、パリティ等）をドライブ１５０に書き込む処理のことである。
【００４０】
また、上記場合、アクセス退避制御部２５は、ＦＷ適用中ドライブ１５０ａに書き込むべきデータと当該データの本来の格納位置を示す格納位置情報（ＦＷ適用中ドライブ１５０ａのドライブ名を含むもの）とを退避データ格納領域２２０に記憶する処理も行う。ここで、退避データ格納領域２２０とは、特定のホットスペアドライブ１５５内又は自ＣＭ１２のメモリ１０３上に予め確保されている記憶領域のことである。この退避データ格納領域２２０のサイズは、"アクセス頻度が高い状況下でＦＷ適用を行った場合にＦＷ適用
が完了するまでの間に退避しておくことが通常必要となる量の情報"を記憶できるように
定められている。
【００４１】
尚、アクセス退避制御部２５は、退避データ格納領域２２０の一部を、格納位置情報記憶領域として使用し、退避データ格納領域２２０の残りの部分を、データ記憶領域として使用する。そして、アクセス退避制御部２５は、ＦＷ適用中ＲＡＩＤ−Ｇ２００に対するライトアクセスが発生した場合には、ＦＷ適用中ドライブ１５０ａに書き込むべきデータを、データ記憶領域に、前回、データ記憶領域に記憶したデータに続ける形で記憶する。また、アクセス退避制御部２５は、ＦＷ適用中ドライブ１５０ａに書き込むべきデータの，データ記憶領域内における記憶領域の先頭アドレス及びサイズを含む固定長の格納位置情報を格納位置情報記憶領域に記憶する。
【００４２】
アクセス退避制御部２５は、ＦＷ適用中ドライブ１５０ａに対するＦＷ適用処理が完了するまで、ＦＷ適用中ＲＡＩＤグループ２００に対するライトアクセスを上記のような形で処理する。
【００４３】
アクセス退避制御部２５は、ＦＷ適用中ドライブ１５０ａに関する完了通知情報をＦＷ管理制御部２４から受信した際には、以下のように動作する。まず、アクセス退避制御部２５は、図４Ｂに示してあるように、退避データ格納領域２２０上の各データをＦＷ適用処理が完了したＦＷ適用中ドライブ（図４Ｂでは、ＦＷ適用完了ドライブ）１５０ａに書き込むデータ書戻処理を行う。このデータ書戻処理時、アクセス退避制御部２５は、退避データ格納領域２２０上の格納位置情報から、各データの書き戻し先を把握する。
【００４４】
その後、アクセス退避制御部２５は、データ書戻処理の完了をＦＷ管理制御部２４に通知し、不要となったデータを退避データ格納領域２２０上から消去する（図示略）。そして、アクセス退避制御部２５は、今回、ＦＷが適用されたドライブ１５０（１５０ａ）に対する処理を終了する。
【００４５】
尚、アクセス退避制御部２５は、ＦＷ適用処理が完了する前に、退避データ格納領域２２０がフルになった場合には、ＦＷ適用中ＲＡＩＤ−Ｇ２００に対するアクセスを受け付けない状態に移行する。そして、アクセス退避制御部２５は、ＦＷ適用処理が完了したときに、上記したデータ書戻処理を行ってから、ＦＷ適用中ＲＡＩＤ−Ｇ２００に対するアクセスを受け付ける状態に戻る。
【００４６】
ＦＷ管理制御部２４から複数のＲＡＩＤ−Ｇ番号が通知されている場合（ＦＷ適用中ＲＡＩＤ−Ｇ２００が複数個存在する場合）におけるアクセス退避制御部２５の動作内容も、同様のものである。すなわち、ＦＷ管理制御部２４から複数のＲＡＩＤ−Ｇ番号が通知されている場合、ＦＷ管理制御部２４は、退避データ格納領域２２０上に、各ＦＷ適用中ＲＡＩＤ−Ｇ２００のＦＷ適用中ドライブ１５０ａに書き込むべきデータとそれに関する格納位置情報とを記憶する。そして、アクセス退避制御部２５は、或るＦＷ適用中ドライブ１５０ａに対するＦＷ適用処理が完了した際には、当該ＦＷ適用中ドライブ１５０ａのドライブ名を含む各格納位置情報に対応付けられているデータのみを、ＦＷ適用完了ドライブ１５０ａに書き戻すデータ書戻処理を行う。
【００４７】
次に、図５を用いて、ＦＷ適用中ＲＡＩＤ−Ｇ２００に対するリード／ライトアクセスを上記のような形で処理している間に、ＦＷ適用中ＲＡＩＤ−Ｇ２００の非ＦＷ適用中ドライブ１５０が故障した場合におけるアクセス退避制御部２５の動作を説明する。
【００４８】
非ＦＷ適用中ドライブ１５０が故障すると、通常のＲＡＩＤレベルのＦＷ適用中ＲＡＩＤグループ２００は、「或るドライブ１５０のＦＷ適用が失敗すると利用不可能な状態となる記憶装置」として機能することになる。尚、通常のＲＡＩＤレベルとは、冗長性は有するが、複数のドライブ故障に対応できないＲＡＩＤレベルのことである。
【００４９】
そのため、アクセス退避制御部２５は、現ＦＷ適用中ドライブ１５０ａに対するＦＷ適用が完了した段階で、ＦＷ管理制御部２４によるＦＷ適用処理を中断させる。そして、ＦＷ管理制御部２４は、中断したＦＷ適用処理を、ＲＡＩＤ−Ｇが冗長性を有する状態に戻った後（ホットスペアドライブ１５５を、故障発生ドライブ１５０ｃの代わりのドライブ１５０として機能させるための処理等が完了した後）に再開する。
【００５０】
また、アクセス退避制御部２５は、ＦＷ適用中ドライブ１５０ａのＦＷ適用が完了するまでの間は、ＦＷ適用中ＲＡＩＤ−Ｇ２００に対するアクセスを内部に保持し、各アクセスをＦＷ適用中ドライブ１５０ａのＦＷ適用が完了した後に処理する状態で動作する。ただし、或るアクセスの受信後、一定時間内にＦＷ適用中ドライブ１５０ａに対するＦＷ適用が完了しなかった場合、アクセス退避制御部２５は、受信済みのアクセスを破棄して、ホスト４０に対して当該アクセスのリトライ要求を送信する。
【００５１】
要するに、アクセス退避制御部２５は、或る非ＦＷ適用中ドライブ１５０（１５０ｃ）が故障した場合、ＦＷ適用中ドライブ１５０ａのＦＷ適用が完了するまで、ＦＷ適用中ＲＡＩＤ−Ｇ２００に対するアクセスを全く行わない状態で動作する。
【００５２】
ＦＷ管理制御部２４から複数のＲＡＩＤ−Ｇ番号等が通知されている状況下、２つ以上のＦＷ適用中ＲＡＩＤ−Ｇ２００内の非ＦＷ適用中ドライブ１５０が故障した場合も、アクセス退避制御部２５は、同様に動作する。
【００５３】
〔アクセス監視部〕
各ＣＭ１２のメモリ１０３上には、自ＣＭ１２が制御を担当している各ＲＡＩＤグループについてのアクセス数情報、アクセス履歴情報を記憶しておくための領域が確保されている。ここで、或るＲＡＩＤ−Ｇについてのアクセス数情報とは、当該ＲＡＩＤ−Ｇに対する，過去の所定期間（例えば、２４時間前から現時点まで）内の各単位時間（例えば１分）におけるアクセス数（アクセス頻度）を含む情報のことである。このアクセス数情報は、例えば図６に示したような形式のアクセス数情報５０としてメモリ１０３上に記憶される。
【００５４】
また、或るＲＡＩＤ−Ｇについてのアクセス履歴情報とは、例えば図７に示したような形式のアクセス履歴情報５５としてメモリ１０３上に記憶される情報（詳細は後述）のことである。
【００５５】
アクセス監視部２６は、常時、自ＣＭ１２が制御を担当している各ＲＡＩＤグループに対するアクセス状況を監視している。そして、アクセス監視部２６は、アクセス状況の監視結果に基づき、メモリ１０３上の、各ＲＡＩＤ−Ｇについてのアクセス数情報５０（図６）を、過去の所定期間内の各単位時間におけるアクセス数を含むものとなるように、随時、更新する。
【００５６】
また、アクセス監視部２６は、各ＲＡＩＤ−Ｇについてのアクセス履歴情報５５の内容を、同じＲＡＩＤ−Ｇについてのアクセス数情報５０に基づき更新するアクセス履歴情報更新処理を、定期的に（例えば２４時間毎に）、行う。
【００５７】
アクセス履歴情報５５は、図７に示してあるように、過去の所定時間（本実施形態では、２４時間）内の各規定時間（本実施形態では、３０分）毎のアクセス数とアクセスランクとを含む情報である。アクセス履歴情報更新処理時、アクセス監視部２６は、各ＲＡＩＤ−Ｇに関するアクセス数情報５０（図６）に基づき、各ＲＡＩＤ−Ｇに対する，各規定時間の時間帯におけるアクセス数を求める。そして、アクセス監視部２６は、各ＲＡＩＤ−Ｇに関するアクセス履歴情報５５中の各時間帯についてのアクセス数を、求めた値に変更する。
【００５８】
また、アクセス履歴情報更新処理時、アクセス監視部２６は、各ＲＡＩＤ−Ｇについて求めた各時間帯のアクセス数から、以下のアルゴリズムでアクセスランク（以下、単にランクとも表記する）を求める。そして、アクセス監視部２６は、各ＲＡＩＤ−Ｇに関するアクセス履歴情報５５中の各時間帯についてのランクを、求めたランクに変更してから、アクセス履歴情報更新処理を終了する。
【００５９】
アクセス数＞Ａ・Ｂ境界アクセス数                        →  ランク＝Ａ
Ａ・Ｂ境界アクセス数≧アクセス数＞Ｂ・Ｃ境界アクセス数  →  ランク＝Ｂ
Ｂ・Ｃ境界アクセス数≧アクセス数＞Ｃ・Ｄ境界アクセス数  →  ランク＝Ｃ
Ｃ・Ｄ境界アクセス数≧アクセス数                        →  ランク＝Ｄ
【００６０】
ここで、Ａ・Ｂ境界アクセス数とは、各ドライブ１５０のＦＷ適用中に退避データ格納領域２２０のほぼ４０％が使用される（図４Ａ、図４Ｂ参照）ことになる標準的なアクセス数として予め設定されている値のことである。Ｂ・Ｃ境界アクセス数とは、各ドライブ１５０のＦＷ適用中に退避データ格納領域２２０のほぼ２０％が使用されることになる標準的なアクセス数として予め設定されている値のことである。Ｃ・Ｄ境界アクセス数とは、各ドライブ１５０のＦＷ適用中に退避データ格納領域２２０が殆ど使用されない（退避データ格納領域２２０のほぼ１％が使用される）ことになる標準的なアクセス数として予め設定されている値のことである。
【００６１】
〔アクセスランク調整部〕
既に説明したように、アクセスランク調整部２７は、マスターＣＭ１２のみが備えるユニット（図２Ａ及び図２Ｂ参照）である。
【００６２】
このアクセスランク調整部２７は、ディスクアレイ装置１０内の各ＣＭ１２に対して同内容の処理を行うユニットとなっている。そのため、以下では、アクセスランク調整部２７が、或るＣＭ１２（含む自ＣＭ１２：以下、注目ＣＭ１２と表記する）に対して行う処理のみを説明する。また、以下の説明では、注目ＣＭ１２内のＦＷ管理制御部２４、アク
セス監視部２６のことを、注目ＦＷ管理制御部２４、注目アクセス監視部２６と表記する。
【００６３】
アクセスランク調整部２７は、注目アクセス監視部２６によるアクセス履歴情報５５（図７）の更新が完了する度に、注目アクセス監視部２６から、注目ＣＭ１２が制御を担当している各ＲＡＩＤ−Ｇに関する，各時間帯についてのランクを取得する。換言すれば、アクセスランク調整部２７は、注目アクセス監視部２６により各ＲＡＩＤ−Ｇに関するアクセス履歴情報５５の内容が更新される度に、内容が更新された各アクセス履歴情報５５中の一部の情報を取得する。
【００６４】
そして、アクセスランク調整部２７は、今回、取得した各ＲＡＩＤ−Ｇに関する各時間帯のランクを、各時間帯になったときの実際のアクセス数に対応している可能性がより高いランクに更新（調整）するためのランク更新処理を行う。
【００６５】
具体的には、ランク更新処理時、アクセスランク調整部２７は、今回、取得した各ランク（以下、算出ランクと表記する）を、前回のランク更新処理による，同時間帯のランクの処理結果（以下、旧ランクと表記する）と比較する。そして、アクセスランク調整部２７は、図８に示したように、旧ランクと同じ算出ランク、旧ランクとの違いが１ランクしかない算出ランクについては、算出ランクを、そのまま、更新（調整）後のランク（以下、更新ランクと表記する）とする。また、アクセスランク調整部２７は、旧ランクとの差違が２ランク以上ある算出ランク（つまり、特殊な事情の存在が疑われる算出ランク）については、算出ランクを、旧ランク側へ１ランク分近づけたランクを更新ランクとする。
【００６６】
このような内容のランク更新処理により、各ＲＡＩＤ−Ｇに関する各時間帯の更新ランクを求めたアクセスランク調整部２７は、メモリ１０３上に図９に示したような内容のランクテーブル６０を生成する。尚、このランクテーブル６０の生成は、メモリ１０３上に存在するランクテーブル６０（前回のランク更新処理の処理結果）を書き換える形で行われる。
【００６７】
要するに、アクセスランク調整部２７は、注目アクセス監視部２６によるアクセス履歴情報５５の更新が完了する度に、注目アクセス監視部２６から、注目ＣＭ１２が制御を担当している各ＲＡＩＤ−Ｇに関する，各時間帯についてのランクを取得する。そして、アクセスランク調整部２７は、取得した各ランクを実際のアクセス数に対応している可能性がより高いランクに更新し、更新した各時間帯のランクをＲＡＩＤ−Ｇ別に記憶したランクテーブル６０をメモリ１０３上に用意する。
【００６８】
〔スケジュール制御部〕
スケジュール制御部２８は、アクセスランク調整部２７と同様に、マスターＣＭ１２のみが備えるユニット（図２Ａ及び図２Ｂ参照）である。
【００６９】
このスケジュール制御部２８は、アクセスランク調整部２７がメモリ１０３上にＣＭ１２毎に用意する各ランクテーブル６０（図９）に対して、同内容の処理を行うユニットとなっている。そのため、以下では、アクセスランク調整部２７が或るＣＭ１２（以下、注目ＣＭ１２と表記する）について用意したランクテーブル６０（以下、注目ランクテーブル６０と表記する）に対して、スケジュール制御部２８が行う処理のみを説明する。また、以下の説明では、注目ランクテーブル６０に、各時間帯のランクが記憶されているＲＡＩＤ−Ｇ（つまり、注目ＣＭ１２が制御を担当しているＲＡＩＤ−Ｇ）のことを、単に、ＲＡＩＤ−Ｇとも表記する。
【００７０】
スケジュール制御部２８は、第１及び第２ＦＷ適用制御処理を実行できる。
【００７１】
第１、第２ＦＷ適用制御処理は、いずれも、注目ランクテーブル６０上の情報に基づき、各ＲＡＩＤ−ＧのＦＷ適用を開始すべき時間を決定し、各ＲＡＩＤ−ＧのＦＷ適用を、決定した時間に開始させる処理である。また、各ＦＷ適用制御処理は、いずれも、ユーザにより、或るＦＷを、或る連続した時間範囲内に各ＲＡＩＤ−Ｇに適用すべきことが指示された場合にスケジュール制御部２８が実行する処理となっている。
【００７２】
スケジュール制御部２８は、ユーザにより、ＦＷ適用を行うべき時間範囲（以下、指定時間範囲と表記する）として、連続した複数のランク算出対象時間帯からなる時間範囲が指定された場合に、第１ＦＷ適用制御処理を実行する。尚、ランク算出対象時間帯とは、アクセスランクが定められる時間帯（図７参照；本実施形態では、長さが３０分の時間帯）のことである。
【００７３】
また、スケジュール制御部２８は、ユーザにより、指定時間範囲として、１つのランク算出対象時間帯が指定された場合に、第２ＦＷ適用制御処理を実行する。
【００７４】
まず、指定時間範囲が連続した複数のランク算出対象時間帯からなる時間範囲である場合にスケジュール制御部２８が実行する第１ＦＷ適用制御処理の内容を説明する。
【００７５】
図１０に、第１ＦＷ適用制御処理の流れ図を示す。
【００７６】
この図１０に示してあるように、第１ＦＷ適用制御処理を開始したスケジュール制御部２８は、まず、作業用テーブル作成更新処理（ステップＳ１０１）を実行する。
【００７７】
作業用テーブル作成更新処理は、図１１に示した手順の処理である。すなわち、作業用テーブル作成更新処理を開始したスケジュール制御部２８は、まず、注目ランクテーブル６０に基づき、メモリ１０３上に作業用テーブル７０を作成する処理（ステップＳ２０１）を行う。
【００７８】
図１２Ａに、ステップＳ１０２の処理にてメモリ１０３上に作成される作業用テーブル７０の一例を示す。尚、この図１２Ａに示した作業用テーブル７０は、注目ランクテーブル６０が図９に示した内容のものである場合にメモリ１０３上に作成されるものである。
【００７９】
図１２Ａ及び図９から明らかなように、作業用テーブル７０は、注目ランクテーブル６０と同じ情報を保持したテーブルである。ただし、作業用テーブル７０には、各ＲＡＩＤ−Ｇについて状態情報（図１２Ａにおける"未決定"）を記憶するためのフィールドと、各ＲＡＩＤ−Ｇの各時間帯について作業用フラグを記憶するためのフィールド（"作業用Ｆ"）とが追加されている。
【００８０】
この作業用テーブル７０に記憶される状態情報は、対応するＲＡＩＤ−ＧのＦＷ適用時間が決定済みであるか否かを示す情報である。作業用フラグは、各ＲＡＩＤ−ＧのＦＷ適用時間を決定するために使用される２値情報である。図１２Ａに示してあるように、ステップＳ２０１の処理時には、各状態情報として、対応するＲＡＩＤ−ＧのＦＷ適用時間が決定済みでないことを示す"未決定"が設定され、各作業用フラグとして、"０"が設定された作業用テーブル７０が作成される。
【００８１】
図１１に戻って、作業用テーブル作成更新処理の説明を続ける。
【００８２】
作業用テーブル７０を作成したスケジュール制御部２８は、作業用テーブル７０上に識別情報が記憶されているＲＡＩＤ−Ｇの中から、処理対象とするＲＡＩＤ−Ｇ（以下、処
理対象ＲＡＩＤ−Ｇと表記する）を選択する（ステップＳ２０２）。
【００８３】
次いで、スケジュール制御部２８は、作業用テーブル７０上の情報に基づき、指定時間範囲内の時間帯の中から、処理対象ＲＡＩＤ−Ｇに関する，ランクが最も低い時間帯を特定する（ステップＳ２０３）。その後、スケジュール制御部２８は、作業用テーブル７０上の，処理対象ＲＡＩＤ−Ｇに関する，特定した各時間帯についての作業用フラグを、"
１"に変更する（ステップＳ２０４）。
【００８４】
ステップＳ２０４の処理を終えたスケジュール制御部２８は、作業用テーブル７０上に識別情報が記憶されている全ＲＡＩＤ−Ｇに対する処理が完了したか否かを判断する（ステップＳ２０５）。処理が未完了のＲＡＩＤ−Ｇが残っていた場合（ステップＳ２０５；ＮＯ）、スケジュール制御部２８は、処理対象ＲＡＩＤ−Ｇを次のＲＡＩＤ−Ｇに変更（ステップＳ２０６）してから、ステップＳ２０３以降の処理を再び実行する。
【００８５】
そして、スケジュール制御部２８は、作業用テーブル７０上に識別情報が記憶されている全ＲＡＩＤ−Ｇに対する処理が完了したときに（ステップＳ２０５；ＹＥＳ）、作業用テーブル作成更新処理を終了する。
【００８６】
ここで、指定時間範囲が"00:00:00〜02:00:00"であり、注目ランクテーブル６０が図９に示した内容のものであった場合を例に、作業用テーブル作成更新処理の内容をより具体的に説明しておくことにする。
【００８７】
上記場合、作業用テーブル作成更新処理では、まず、図１２Ａに示した内容の作業用テーブル７０がメモリ１０３上に作成される。
【００８８】
その後、各ＲＡＩＤグループについて、ステップＳ２０３及びＳ２０４の処理が行われる。そのため、ＲＡＩＤグループ１については、指定時間範囲内の、ランクが最も低い時間帯である"00:30:00〜01:00:00"及び"01:00:00〜01:30:00"が特定され、それらの作業用フラグが"１"に変更される。また、ＲＡＩＤグループ４については、指定時間範囲内の、ランクが最も低い時間帯である"01:00:00〜01:30:00"及び"01:30:00〜02:00:00"が特定され、それらの作業用フラグが"１"に変更される。
【００８９】
また、ＲＡＩＤグループ２、３についての，指定時間範囲内の各時間帯のランクは、同ランクである。すなわち、ＲＡＩＤグループ２、３についての、指定時間範囲内の各時間帯のランクは、全て最も低いランクとなっている。そのため、ＲＡＩＤグループ２、３については、指定時間範囲内の各時間帯についての作業用フラグが全て"１"に変更される。
【００９０】
指定時間範囲が"00:00:00〜02:00:00"であり、注目ランクテーブル６０が図９に示した内容のものであった場合、上記のような処理が行われる。従って、作業用テーブル作成更新処理が完了すると、メモリ１０３上に図１２Ｂに示した内容の作業用テーブル７０が存在する状態が形成されることになる。
【００９１】
作業用テーブル作成更新処理（図１０；ステップＳ１０１）が完了すると、スケジュール制御部２８は、続くステップＳ１０２にて、図１３に示した手順のＦＷ適用順リスト作成処理を実行する。
【００９２】
すなわち、ＦＷ適用順リスト作成処理を開始したスケジュール制御部２８は、まず、ＦＷ適用順リストを空のリストに初期化する（ステップＳ３００）。次いで、スケジュール制御部２８は、指定時間範囲内の最初の時間帯を、処理対象時間帯として選択する（ステップＳ３０１）。
【００９３】
その後、スケジュール制御部２８は、作業用テーブル７０上の処理対象時間帯に関する作業用フラグが"１"となっており、且つ、作業用テーブル７０上の状態情報が"未決定"となっている各ＲＡＩＤ−Ｇを特定する処理（ステップＳ３０２）を行う。
【００９４】
上記条件を満たすＲＡＩＤ−Ｇが全く特定できなかった場合（ステップＳ３０３；ＮＯ）、スケジュール制御部２８は、指定時間範囲内の全時間帯に対する処理が完了したか否かを判断する（ステップＳ３０８）。そして、スケジュール制御部２８は、未処理の時間帯が残っていた場合（ステップＳ３０８；ＹＥＳ）には、処理対象時間帯を次の時間帯に変更（ステップＳ３０９）から、ステップＳ３０２以降の処理を再び実行する。
【００９５】
一方、上記条件を満たすＲＡＩＤ−Ｇを１つ以上特定できた場合（ステップＳ３０３；ＹＥＳ）、スケジュール制御部２８は、特定できたＲＡＩＤ−Ｇ数（以下、特定数と表記する）が"１"であるか否かを判断する（ステップＳ３０４）。
【００９６】
特定数が"１"であった場合（ステップＳ３０４；ＹＥＳ）、スケジュール制御部２８は、ＦＷ適用順リストに、特定したＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号と処理対象時間帯とを含むＦＷ適用対象情報を追加する（ステップＳ３０５）。次いで、スケジュール制御部２８は、作業用テーブル７０上の、ＦＷ適用順リストにＦＷ適用対象情報を追加したＲＡＩＤ−Ｇに関する状態情報を"決定済"に変更する（ステップＳ３０６）。
【００９７】
その後、スケジュール制御部２８は、"未決定"ＲＡＩＤ−Ｇ（状態情報が"未決定"となっているＲＡＩＤ−Ｇ）が残っているか否かを判断する（ステップＳ３０７）。そして、スケジュール制御部２８は、"未決定"ＲＡＩＤ−Ｇが残っていた場合（ステップＳ３０７；ＹＥＳ）には、ステップＳ３０８以降の処理を開始する。
【００９８】
作業用フラグが"１"となっているＲＡＩＤ−Ｇが２つ以上特定された場合（ステップＳ３０４；ＮＯ）、スケジュール制御部２８は、特定された複数のＲＡＩＤ−Ｇが同時にＦＷ適用可能なものであるか否かを判定する（ステップＳ３１１）。
【００９９】
より具体的には、スケジュール制御部２８は、以下の判定用不等式が成立するか否かにより、特定された複数のＲＡＩＤ−Ｇが同時にＦＷ適用可能なものであるか否かを判定する。
ＮＡ＋ＮＢ・１／２＋ＮＣ・１／４≦１
尚、ＮＡ、ＮＢ、ＮＣとは、それぞれ、同時にＦＷ適用可能なものであるか否かの判定対象となっている複数のＲＡＩＤ−Ｇの中に含まれる，処理対象時間帯におけるランクがＡ、Ｂ、ＣとなっているＲＡＩＤ−Ｇ数のことである。
【０１００】
ここで、上記判定用不等式で、複数のＲＡＩＤ−Ｇが、同時にＦＷ適用可能なものであるか否かを判定できる理由を説明しておくことにする。
【０１０１】
既に説明したように、ＦＷ管理制御部２４は、複数のＲＡＩＤ−ＧのそれぞれについてのＦＷ適用処理を同時に実行することができる。ただし、ＦＷ適用中に多量のライトアクセスがなされた結果として退避データ記憶領域２２０がフルになると、ＦＷ管理制御部２４は、各ＦＷ適用中ＲＡＩＤ−Ｇ２００に対するアクセスを受け付けない状態に移行してしまう。
【０１０２】
そのような状況が発生しないようにするためには、ＦＷ適用中に退避データ記憶領域２２０に記憶されることになるデータ量（以下、退避データ量と表記する）をＲＡＩＤ−Ｇ毎に推定し、当該データ量の総和が退避データ記憶領域のサイズ以下となるように、同時
にＦＷを適用するＲＡＩＤ−Ｇの数、組み合わせを決定してやれば良い。
【０１０３】
そして、上記アルゴリズム（『Ａ・Ｂ境界アクセス数≧アクセス数＞Ｂ・Ｃ境界アクセス数  →  ランク＝Ｂ』等）で求められているランク（アクセスランク）は、以下のことを示す情報となっている。
ランク＝Ａ：最大退避データ量が、退避データ記憶領域２２０のサイズの１／２以上、退避データ記憶領域サイズ以下。
ランク＝Ｂ：最大退避データ量が、退避データ記憶領域２２０のサイズのほぼ１／２（４０％）。
ランク＝Ｃ：最大退避データ量が、退避データ記憶領域２２０のサイズのほぼ１／４（２０％）。
ランク＝Ｄ：最大退避データ量が、ほぼ"０"。
【０１０４】
従って、上記判定用不等式で、複数のＲＡＩＤ−Ｇが、ＦＷ適用中に退避データ記憶領域２２０がフルになる可能性が殆どないもの（つまり、同時にＦＷ適用可能なもの）であるか否かを判定できることになる。
【０１０５】
特定された複数のＲＡＩＤ−Ｇが同時にＦＷ適用可能なものであった場合（ステップＳ３１１；ＹＥＳ）、スケジュール制御部２８は、ＦＷ適用順リストに、特定したＲＡＩＤ−Ｇのそれぞれについて、そのＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号と処理対象時間帯とを含むＦＷ適用対象情報を追加する（ステップＳ３０５）。尚、スケジュール制御部２８は、処理対象時間帯を、割当完了時間帯（用途は後述）として記憶する処理も、このステップＳ３０５にて、行う。
【０１０６】
次いで、スケジュール制御部２８は、ＦＷ適用対象情報をＦＷ適用順リストに追加した各ＲＡＩＤ−Ｇに関する作業用テーブル７０上の状態情報を"決定済"に変更する（ステップＳ３０６）。そして、スケジュール制御部２８は、ステップＳ３０７以降の処理を開始する。
【０１０７】
一方、特定された複数のＲＡＩＤ−Ｇが同時にＦＷ適用可能なものではなかった場合（ステップＳ３１１；ＮＯ）、スケジュール制御部２８は、特定したＲＡＩＤ−Ｇの中から、処理対象時間帯におけるランクの昇順で同時にＦＷ適用できる数のＲＡＩＤ−Ｇを選択する（ステップＳ３１２）。
【０１０８】
次いで、スケジュール制御部２８は、ＦＷ適用順リストに、選択したＲＡＩＤ−Ｇのそれぞれについて、そのＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号と処理対象時間帯とを含むＦＷ適用対象情報を追加する（ステップＳ３１３）。スケジュール制御部２８は、このステップＳ３１３にて、処理対象時間帯を、割当完了時間帯として記憶する処理も行う。
【０１０９】
その後、スケジュール制御部２８は、ステップＳ３０６以降の処理を開始する。
【０１１０】
上記のような処理を繰り返していると、通常、指定時間範囲内の何個目かの時間帯の処理完了時に、"未決定"ＲＡＩＤ−Ｇがなくなる（ステップＳ３０７；ＮＯ）ので、スケジュール制御部２８は、このＦＷ適用順リスト作成処理を終了する。
【０１１１】
ただし、指定時間範囲内の最後の時間帯の処理が完了しても、"未決定"ＲＡＩＤ−Ｇが残っている場合（ステップＳ３０７；ＹＥＳ、ステップＳ３０８；ＮＯ）もあり得る。例えば、指定時間範囲が"00:00:00〜02:00:00"であり、作業用テーブル作成更新処理完了時における作業用テーブル７０の内容が図１４に示したものであった場合、指定時間範囲内の最後の時間帯の処理が完了しても、"未決定"ＲＡＩＤ−Ｇが残っていることになる。
【０１１２】
そのような場合（ステップＳ３０８；ＮＯ）、スケジュール制御部２８は、作業用テーブル７０上の、"未決定"ＲＡＩＤ−Ｇについての，作業用フラグが"０"となっている最もランクが低い指定時間範囲内の時間帯に関する作業用フラグを"１"に変更する（ステップＳ３１５）。そして、スケジュール制御部２８は、ステップＳ３０１以降の処理を、指定時間範囲内の，割当完了時間帯ではない各時間帯のみを対象とした形で、実行する。
【０１１３】
図１０に戻って、ＦＷ適用順リスト作成処理完了後のスケジュール制御部２８の動作を説明する。
【０１１４】
ここまで説明した各処理の内容から明らかなように、指定時間範囲が"00:00:00〜02:00:00"であり、ランクテーブル６０が図９に示した内容のものであった場合、ＦＷ適用順リスト作成処理により、以下の内容のＦＷ適用順リストが作成されることになる。
【０１１５】
『２："00:00:00〜00:30:00"』
『３："00:00:00〜00:30:00"』
『１："00:30:00〜01:00:00"』
『４："01:00:00〜01:30:00"』
【０１１６】
ＦＷ適用順リスト作成処理を終えたスケジュール制御部２８は、ステップＳ１０３の判断とＳ１０６の処理とを繰り返す状態となる。すなわち、スケジュール制御部２８は、ＦＷ適用順リスト上のいずれかのＦＷ適用対象情報内の時間帯の開始時間（以下、ＦＷ適用処理実行時間と表記する）になるのを監視している状態となる。
【０１１７】
ＦＷ適用処理実行時間になった場合（ステップＳ１０３；ＹＥＳ）、スケジュール制御部２８は、そのＦＷ適用処理実行時間にＦＷ適用を開始すべき各ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を含めたＦＷ適用開始要求を注目ＣＭ１２に対して送信する（ステップＳ１０４）。
【０１１８】
その後、スケジュール制御部２８は、ＦＷ適用開始要求を未送信のＲＡＩＤ−Ｇが残っているか否かを判断する（ステップＳ１０５）。
【０１１９】
ＦＷ適用開始要求を未送信のＲＡＩＤ−Ｇが残っていた場合（ステップＳ１０５；ＹＥＳ）、スケジュール制御部２８は、ステップＳ１０６以降の処理を開始する。
【０１２０】
そして、スケジュール制御部２８は、ＦＷ適用開始要求を未送信のＲＡＩＤ−Ｇがなくなったとき（ステップＳ１０５；ＮＯ）に、この第１ＦＷ適用制御処理を終了する。
【０１２１】
以下、第２ＦＷ適用制御処理の内容、系列指定ＦＷ適用開始要求の内容、及び、当該要求に対するＦＷ管理制御部２４の動作を、説明する。
【０１２２】
図１５に、第２ＦＷ適用制御処理の流れ図を示す。尚、既に説明したように、第２ＦＷ適用制御処理とは、指定時間範囲が１つのランク算出対象時間帯であった場合にスケジュール制御部２８が実行する処理のことである。
【０１２３】
まず、この第２ＦＷ適用制御処理のステップＳ４１０の処理時に生成される系列指定ＦＷ適用開始要求の内容と、当該要求に対するＦＷ管理制御部２４の動作とを、説明する。
【０１２４】
図１６Ａ、図１６Ｂに、系列指定ＦＷ適用開始要求７５の説明図を示す。
【０１２５】
図１６Ａに示してあるように、系列指定ＦＷ適用開始要求７５は、基本的には、ＦＷを適用すべき幾つかのＲＡＩＤ−Ｇの識別情報のリストである第１系列情報と、ＦＷを適用すべき幾つかのＲＡＩＤ−Ｇの識別情報のリストである第２系列情報とを含む要求である。ただし、系列指定ＦＷ適用開始要求７５は、図１６Ｂに示したように、第２系列側の任意のＲＡＩＤ−Ｇの識別情報に、当該ＲＡＩＤ−Ｇに対するＦＷ適用の開始条件を設定できるものとなっている。
【０１２６】
一方、ＦＷ管理制御部２４は、系列指定ＦＷ適用開始要求７５を受信した場合、当該要求中の第１系列情報でＦＷ適用が指示されている各ＲＡＩＤ−Ｇに対するＦＷ適用を、第１系列情報で指定されている順番に行う第１系列制御処理を開始する。また、ＦＷ管理制御部２４は、受信した系列指定ＦＷ適用開始要求中の第２系列情報でＦＷ適用が指示されている各ＲＡＩＤ−Ｇに対するＦＷ適用を、第２系列情報で指定されている順番に行う第２系列制御処理も開始する。ただし、この第２系列制御処理において、ＦＷ管理制御部２４は、第２系列指定情報にて開始条件付きでＦＷ適用を行うことが指定されている各ＲＡＩＤ−Ｇに対するＦＷ適用は、開始条件が満たされた後に開始する。
【０１２７】
要するに、ＦＷ管理制御部２４は、図１６Ａに示した内容の系列指定ＦＷ適用開始要求７５を受信した場合には、図１７Ａに示したような順番で、ＲＡＩＤグループ１〜４内の各ドライブ１５０にＦＷを適用する。また、ＦＷ管理制御部２４は、図１６Ｂに示した内容の系列指定ＦＷ適用開始要求７５を受信した場合には、図１７Ｂに示したような順番及びタイミングで、ＲＡＩＤグループ１〜４内の各ドライブ１５０にＦＷを適用する。
【０１２８】
図１５に戻って、第２ＦＷ適用制御処理の内容を説明する。
【０１２９】
指定時間範囲が１つのランク算出対象時間帯（以下、指定時間帯と表記する）であったため、この第２ＦＷ適用制御処理を開始したスケジュール制御部２８は、まず、第１系列リスト及び第２系列リストを初期化する（ステップＳ４００）。第１、第２系列リストは、第１、第２系列情報を用意するために使用されるリスト（メモリ１０３上の一記憶領域）である。ステップＳ４００の処理では、各系列リストが空のリスト（有意な情報を記憶していないリスト）に初期化される。
【０１３０】
第１、第２系列リストの初期化を終えたスケジュール制御部２８は、ＡランクＲＡＩＤ−Ｇが存在しているか否かを判断する（ステップＳ４０１）。ここで、ＡランクＲＡＩＤ−Ｇとは、注目ランクテーブル６０（図９参照）上の，指定時間帯のランクが"Ａ"となっているＲＡＩＤ−Ｇのことである。以下、注目ランクテーブル６０上の，指定時間帯のランクが"Ｘ"（Ｘ＝Ｂ〜Ｄ）となっているＲＡＩＤ−Ｇのことも、同様に、ＸランクＲＡＩＤ−Ｇと表記する。また、注目ランクテーブル６０に識別情報が登録（記憶）されており、系列リストへの識別情報の登録が完了していないＲＡＩＤ−Ｇのことを、ＦＷ適用要ＲＡＩＤ−Ｇと表記する。
【０１３１】
ＡランクＲＡＩＤ−Ｇが存在していた場合（ステップＳ４０１；ＹＥＳ）、スケジュール制御部２８は、ステップＳ４０２にて、第１系列リストに、各ＡランクＲＡＩＤ−Ｇの識別情報（本実施形態では、ＲＡＩＤ−Ｇ番号）を登録（記憶）する処理を行う。また、スケジュール制御部２８は、ステップＳ４０２にて、第２系列リストに各ＤランクＲＡＩＤ−Ｇの識別情報を登録（記憶）する処理も行う。尚、この処理は、ＤランクＲＡＩＤ−Ｇが存在しなかった場合、第２系列リストに対して何も行わない処理である。
【０１３２】
ステップＳ４０２の処理を終えたスケジュール制御部２８は、ＦＷ適用要ＲＡＩＤ−Ｇが残っているか否かを判断する（ステップＳ４０３）。
【０１３３】
そして、スケジュール制御部２８は、ＦＷ適用要ＲＡＩＤ−Ｇが残っていた場合（ステップＳ４０３；ＹＥＳ）には、第１系列のドライブ数が第２系列のドライブ数よりも少ないか否かを判断する（ステップＳ４０４）。ここで、第Ｙ系列（Ｙ＝１、２）のドライブ数とは、その時点における第Ｙ系列リストに識別情報が登録されている各ＲＡＩＤ−Ｇの構成ドライブ数の総和のことである。
【０１３４】
第１系列のドライブ数の方が少なかった場合（ステップＳ４０４；ＹＥＳ）、スケジュール制御部２８は、各系列リストに、残っている各ＦＷ適用要ＲＡＩＤ−Ｇの識別番号を、各系列のドライブ数が近づくように追加する（ステップＳ４０５）。
【０１３５】
すなわち、このステップＳ４０５の処理が実行されるのは、ＡランクＲＡＩＤ−Ｇが存在するが故に、ステップＳ４０２が実行されている場合である。従って、ステップＳ４０５の処理時に残っているＦＷ適用要ＲＡＩＤ−Ｇは、ＢランクＲＡＩＤ−Ｇ又はＣランクＲＡＩＤ−Ｇであることになる。また、"第１系列のドライブ数＜第２系列のドライブ数"が成立している場合、第１系列に対するＦＷ適用の方が早く完了することになるが、ステップＳ４０５の処理の実行時点において第２系列に属しているＲＡＩＤ−Ｇは、全てＤランクＲＡＩＤ−Ｇである。従って、残っているどのＦＷ適用要ＲＡＩＤ−Ｇをどちらの系列リストに登録しても、第１系列（ＡランクＲＡＩＤ−Ｇ）に対するＦＷ適用完了後に同時にＦＷの適用対象となる２ＲＡＩＤ−Ｇが、Ｂランク以下の２ＲＡＩＤ−Ｇ（つまり、同時にＦＷを適用してもＦＷ適用の完了前に退避データ記憶領域２２０がフルにならない２ＲＡＩＤ−Ｇ）に限られることになる。
【０１３６】
そして、両系列のドライブ数が近づくようにしておいた方が、全てのドライブ１５０に対するＦＷ適用が早く完了する。そのため、各系列リストに、残っている各ＦＷ適用要ＲＡＩＤ−Ｇの識別番号を、各系列のドライブ数が近づくように、追加しているのである。
【０１３７】
ステップＳ４０５の処理を終えたスケジュール制御部２８は、その時点の第１、第２系列リストに基づき、系列指定ＦＷ適用開始要求７５を生成する処理（ステップＳ４１０）を行う。尚、指定時間帯が"01:00:00〜01:30:00"であり、注目ランクテーブル６０が図９に示したものであり、ＲＡＩＤ−Ｇ１〜４の構成ドライブ数が、それぞれ、８、８、２、４であった場合、このステップＳ４１０の処理により、図１６Ａに示してある系列指定ＦＷ適用開始要求７５が生成されることになる。
【０１３８】
ステップＳ４１０の処理を終えたスケジュール制御部２８は、指定時間帯の開始時間となったときに、系列指定ＦＷ適用開始要求７５を注目ＣＭ１２に対して送信する（ステップＳ４１１）。そして、スケジュール制御部２８は、この第２ＦＷ適用制御処理を終了する。
【０１３９】
一方、第１系列のドライブ数≧第２系列のドライブ数が成立していた場合（ステップＳ４０４；ＮＯ）、スケジュール制御部２８は、残ＦＷ適用要ＲＡＩＤ−Ｇを、総ドライブ数がほぼ一致するように、第１系列用のＲＡＩＤ−Ｇと第２系列用のＲＡＩＤ−Ｇとに分類する（ステップＳ４０６）。続くステップＳ４０７において、スケジュール制御部２８は、第１系列用の各ＲＡＩＤ−Ｇの識別情報を第１系列に追加する処理を行う。また、スケジュール制御部２８は、第２系列用の各ＲＡＩＤ−Ｇの識別情報を、先頭の識別情報に、最後のＡランクＲＡＩＤ−Ｇに対するＦＷ適用の完了後にＦＷを適用する旨の開始条件を付加した形で、第２系列リストに追加する処理も行う。
【０１４０】
その後、スケジュール制御部２８は、第１、第２系列リストに基づき、系列指定ＦＷ適用開始要求７５（図１６Ｂ参照）を生成する（ステップＳ４１０）。そして、スケジュール制御部２８は、指定時間帯の開始時間となったときに、系列指定ＦＷ適用開始要求７５
を注目ＣＭに対して送信（ステップＳ４１１）してから、この第２ＦＷ適用制御処理を終了する。
【０１４１】
要するに、ステップＳ４０４の判断時点において、第１系列、第２系列に属しているＲＡＩＤ−Ｇは、それぞれ、ＡランクＲＡＩＤ−Ｇ、ＤランクＲＡＩＤ−Ｇだけである（ステップＳ４０２参照）。そのため、"第１系列のドライブ数≧第２系列のドライブ数"が成立している場合、両系列に対するＦＷ適用を同時に開始すると、第１系列（ＡランクＲＡＩＤ−Ｇ）のＦＷ適用が完了する前に、第２系列（ＤランクＲＡＩＤ−Ｇ）に対するＦＷ適用が完了することになる。そして、ＦＷ適用要ＲＡＩＤ−Ｇの中には、ＡランクＲＡＩＤ−Ｇと同時にＦＷ適用を行えるＤランクＲＡＩＤ−Ｇが残っていない（ステップＳ４０２参照）。そのため、第２系列リストに、開始条件を付加した形でＦＷ適用要ＲＡＩＤ−Ｇの識別情報を追加することによって、ＡランクＲＡＩＤ−Ｇと同時に他のＢ，ＣランクＲＡＩＤ−ＧのＦＷ適用が行われないようにしているのである。
【０１４２】
ＡランクＲＡＩＤ−Ｇが存在していなかった場合（ステップＳ４０１；ＮＯ）、スケジュール制御部２８は、全ＦＷ適用要ＲＡＩＤ−Ｇを、総ドライブ数がほぼ一致するように、第１系列用のＲＡＩＤ−Ｇと第２系列用のＲＡＩＤ−Ｇとに分類する（ステップＳ４０８）。次いで、スケジュール制御部２８は、第１系列リストに第１系列用の各ＲＡＩＤ−Ｇの識別情報を追加し、第２系列リストに第２系列用の各ＲＡＩＤ−Ｇの識別情報を追加する処理（ステップＳ４０９）を行う。
【０１４３】
そして、スケジュール制御部２８は、第１、第２系列リストに基づき、系列指定ＦＷ適用開始要求７５（図１６Ａ参照）を生成する（ステップＳ４１０）。そして、スケジュール制御部２８は、指定時間帯の開始時刻となったときに、系列指定ＦＷ適用開始要求を注目ＣＭに対して送信（ステップＳ４１１）してから、この第２ＦＷ適用制御処理を終了する。
【０１４４】
すなわち、ＡランクＲＡＩＤ−Ｇが存在していない（ステップＳ４０１；ＮＯ）ということは、各ＦＷ適用要ＲＡＩＤ−Ｇが、ＢランクＲＡＩＤ−Ｇ〜ＤランクＲＡＩＤ−Ｇのいずれかであるということである。そして、Ｂランク以下の２つのＲＡＩＤ−Ｇは同時にＦＷを適用しても、原則として、ＦＷ適用の完了前に退避データ記憶領域２２０がフルにならない。また、各系列のドライブ数が近づくようにしておいた方が、全てのドライブ１５０に対するＦＷ適用が早く完了する。そのため、上記のように、各ＦＷ適用要ＲＡＩＤ−Ｇを第１、第２系列リストに振り分けることにより、系列指定ＦＷ適用開始要求７５を生成して送信しているのである。
【０１４５】
尚、流れ図（図１５）中への表記は省略したが、スケジュール制御部２８は、ステップＳ４１１の処理を実行する前に、各系列のドライブ数に基づき、生成した系列指定ＦＷ適用開始要求７５が、その完了に３０分（つまり、指定時間帯の長さ）以上かかるものであるか否かを判断する。そして、スケジュール制御部２８は、生成した系列指定ＦＷ適用開始要求７５が、その完了に３０分以上かかるものであった場合には、ステップＳ４１１の処理を行うことなく、その旨をユーザに通知してから、この第２ＦＷ適用制御処理を終了する。
【０１４６】
以上、詳細に説明したように、本実施形態に係るディスクアレイ装置１０のＣＥ１１（及びマスターＣＭ１２）は、
ＲＡＩＤグループについてのアクセス頻度情報を取得し、
指定された時間範囲の中で前後の時間帯よりもアクセス頻度が低い時間帯を、取得したアクセス頻度情報に基づいて求め、求めた時間帯に基づいて、ＲＡＩＤグループに属するドライブ１５０のファームウェアの書き換え処理の開始タイミングを決定し、
決定した開始タイミングで、ドライブ１５０のファームウェアの書き換え処理を開始する
機能を有している。
【０１４７】
そして、ＦＷの適用中にＲＡＩＤ−Ｇに問題（ドライブ１５０の故障）が発生した場合、通常、データロストが発生してしまい、ＲＡＩＤ−Ｇに問題が発生する確率は、アクセス頻度が高くなるにつれ大きくなる。従って、アクセス頻度が前後の時間帯よりも低い時間帯を求めて（予測して）当該時間帯にＲＡＩＤ−Ｇのドライブ１５０のＦＷ更新を行う本実施形態に係るＣＥ１１（又はマスターＣＭ１２）は、冗長性を有するＲＡＩＤ−Ｇの各構成ドライブ１５０のＦＷを、安全に書き換えられる装置となっていると言うことが出来る。
【０１４８】
さらに、上記したＣＥ１１（又はマスターＣＭ１２）は、可能である場合に２つ以上のＲＡＩＤ−Ｇに対するＦＷ適用を同時に行う機能を有している。従って、本実施形態に係るＣＥ１１（又はマスターＣＭ１２）によれば、複数のＲＡＩＤグループに対するＦＷ適用を短時間で完了させられることになる。
【０１４９】
《第２実施形態》
本発明の第２実施形態に係るディスクアレイ装置は、スケジュール制御部２８が、第２ＦＷ適用制御処理の代わりに図１８Ａ〜図１８Ｉに示した手順の分割ＦＷ適用制御処理を実行するように、第１実施形態に係るディスクアレイ装置１０を変形した装置である。そのため、以下では、第１実施形態のディスクアレイ装置１０の説明時に用いたものと同じ符号を用いて、分割ＦＷ適用制御処理関連の動作を中心に、第２実施形態に係るディスクアレイ装置１０の動作を説明する。
【０１５０】
上記したように、分割ＦＷ適用制御処理は、第２ＦＷ適用制御処理の代わりに実行される処理である。すなわち、スケジュール制御部２８は、１つのランク算出対象時間帯を指定した形でＦＷ適用が指示された場合に、分割ＦＷ適用制御処理（図１８Ａ〜図１８Ｉ）を実行する。
【０１５１】
この分割ＦＷ適用制御処理も、第２ＦＷ適用制御処理と同様に、各ＲＡＩＤ−Ｇについてアクセス頻度が相対的に低い時間帯をアクセス履歴情報５５に基づき求め、求めた時間帯に各ＲＡＩＤ−ＧのＦＷ適用が行われるように各部を制御する処理である。ただし、分割ＦＷ適用制御処理は、指定時間帯（指定時間範囲、ユーザが指定した１つのランク算出対象時間帯）を前半区間と後半区間とに分け、ＲＡＩＤ−Ｇ毎にＦＷ適用に適した区間を決定する処理となっている。
【０１５２】
すなわち、既に説明した処理内容から明らかなように、第２ＦＷ適用制御処理は、指定時間帯内の各時刻におけるアクセス頻度が同じであるとみなして、各ＲＡＩＤ−ＧのＦＷ適用タイミングを決定するものであった。これに対して、分割ＦＷ適用制御処理は、指定時間帯を前半区間と後半区間とに二分し、両区間のアクセス頻度をアクセス履歴情報５５から推定した上で、ＲＡＩＤ−Ｇ毎にＦＷ適用に適した区間を決定する処理となっている。
【０１５３】
具体的には、図１８Ａに示してあるように、分割ＦＷ適用制御処理を開始したスケジュール制御部２８は、まず、ステップＳ５０１にて、前半リスト及び後半リストを初期化する。また、スケジュール制御部２８は、ステップＳ５０１にて、前半ドライブ数及び後半ドライブ数をそれぞれ"０"に初期化する。
【０１５４】
前半リストは、前半区間にＦＷ適用を行うべきＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を、そ
のＲＡＩＤ−Ｇの指定時間帯のランクと共に記憶しておくためのリスト（メモリ１０３上の一記憶領域）である。後半リストは、後半区間にＦＷ適用を行うべきＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を、そのＲＡＩＤ−Ｇの指定時間帯のランクと共に記憶しておくためのリストである。ステップＳ５０１の処理では、前半リスト及び後半リストの双方が空のリストに初期化される。
【０１５５】
さらに、スケジュール制御部２８は、ステップＳ５０１にて、ランクＡテーブル８０Ａ、ランクＢテーブル８０Ｂ、ランクＣテーブル８０Ｃ、ランクＤテーブル８０Ｄを初期化する。図１９Ａ、図１９Ｂ、図１９Ｃ、図１９Ｄに、それぞれ、ランクＡテーブル８０Ａ、ランクＢテーブル８０Ｂ、ランクＣテーブル８０Ｃ、ランクＤテーブル８０Ｄの一例を示す。尚、図１９Ａ〜図１９Ｄに示したランクＸテーブル８０Ｘ（Ｘ＝Ａ〜Ｄ）は、初期化直後のものではなく、データの書き込みが行われた後のものである。
【０１５６】
図１９Ａ〜図１９Ｄから明らかなように、ランクＸテーブル８０Ｘは、ＲＡＩＤ−Ｇ番号、前ランク指標値、現ランク指標値及び後ランク指標値を設定可能なレコードを記憶しておくためのテーブルである。ステップＳ５０１の処理では、各ランクＸテーブル８０Ｘが、空のテーブル（有意なデータが設定されたレコードを保持していないテーブル）に初期化される。尚、各ランク指標値の詳細については後述することにする。
【０１５７】
ステップＳ５０１（図１８Ａ）の処理を終えたスケジュール制御部２８は、注目ランクテーブル６０（図９）上に識別情報が記憶されているＲＡＩＤ−Ｇの中から、処理対象ＲＡＩＤ−Ｇを選択する（ステップＳ５０２）。
【０１５８】
その後、スケジュール制御部２８は、注目ランクテーブル６０に記憶されている，処理対象ＲＡＩＤ−Ｇに関する指定時間帯のランク（以下、現ランクと表記する）が"Ａ"であるか否かを判断する（ステップＳ５０３）。
【０１５９】
現ランクが"Ａ"ではなかった場合（ステップＳ５０３；ＮＯ）、スケジュール制御部２８は、注目ランクテーブル６０上に識別情報が記憶されている全ＲＡＩＤ−Ｇに対する処理が完了したか否かを判断する（ステップＳ５０５）。そして、スケジュール制御部２８は、全ＲＡＩＤ−Ｇに対する処理が完了していなかった場合（ステップＳ５０５；ＮＯ）には、処理対象ＲＡＩＤ−Ｇを次のＲＡＩＤ−Ｇに変更（ステップＳ５０６）してから、ステップＳ５０３以降の処理を再び開始する。
【０１６０】
現ランクが"Ａ"であった場合（ステップＳ５０３；ＹＥＳ）、スケジュール制御部２８は、処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号、前ランク指標値、現ランク指標値及び後ランク指標値を設定したレコードをランクＡテーブル８０Ａに追加する（ステップＳ５０４）。
【０１６１】
ここで、処理対象ＲＡＩＤ−Ｇの現ランク指標値とは、現ランク（注目ランクテーブル６０上の，処理対象ＲＡＩＤ−Ｇの指定時間帯のランク）を、Ａ→０、Ｂ→１、Ｃ→２、Ｄ→３という変換規則によって数値化した値のことである。処理対象ＲＡＩＤ−Ｇの前ランク指標値とは、注目ランクテーブル６０上の，処理対象ＲＡＩＤ−Ｇに関する指定時間帯の直前の時間帯のランク（以下、前ランクと表記する）を上記変換規則によって数値化した値のことである。同様に、処理対象ＲＡＩＤ−Ｇの後ランク指標値とは、注目ランクテーブル６０上の，処理対象ＲＡＩＤ−Ｇに関する指定時間帯の直後の時間帯のランク（以下、後ランクと表記する）を上記変換規則によって数値化した値のことである。
【０１６２】
ステップＳ５０４の処理を終えたスケジュール制御部２８は、ステップＳ５０５以降の処理を開始する。そして、スケジュール制御部２８は、全ＲＡＩＤ−Ｇに対する処理が完
了した場合（ステップＳ５０５；ＹＥＳ）には、ランクＡテーブル８０Ａから、処理対象レコードを選択する（図１８Ｂ：ステップＳ５１１）。以下、処理対象レコードに設定されているＲＡＩＤ−Ｇ番号で識別されるＲＡＩＤ−Ｇのことを処理対象ＲＡＩＤ−Ｇと表記する。また、処理対象レコードに設定されている前ランク指標値、現ランク指標値、後ランク指標値のことを、それぞれ、Ｖ（前）、Ｖ（現）、Ｖ（後）と表記する。
【０１６３】
ステップＳ５１２〜Ｓ５１８の処理は、基本的には、ランク指標値の大小関係に基づき、前半区間、後半区間のいずれの区間のアクセス頻度の方が低いかを推定し、処理対象ＲＡＩＤ−ＧのＦＷ適用をアクセス頻度が低い方の区間で行うことを記憶する処理である。
【０１６４】
ステップＳ５１２〜Ｓ５１５の処理が、ランク指標値の大小関係に基づき、前半区間、後半区間のいずれの区間のアクセス頻度の方が低いかを推定している部分である。
【０１６５】
ステップＳ５１２〜Ｓ５１５の処理は、図２０Ａに示したような場合、すなわち、前時間帯のアクセス頻度が、後時間帯のそれよりも高い場合（Ｖ（前）＜Ｖ（後）が成立する場合）に、後半区間のアクセス頻度の方が低いと判定する処理となっている。また、ステップＳ５１２〜Ｓ５１５の処理は、図２０Ｂ、図２０Ｃに示したような場合、すなわち、前時間帯のアクセス頻度が、後時間帯のそれよりも高い場合（Ｖ（前）＞Ｖ（後）が成立する場合）に、前半区間のアクセス頻度の方が後半区間よりも低いと判定する処理ともなっている。
【０１６６】
ステップＳ５１７（図１８Ｂ）の処理が、前半区間のアクセス頻度の方が低いと推定された場合（ステップＳ５１５；ＮＯ、ステップＳ５１３；ＮＯ等）に実行される処理である。このステップＳ５１７の処理では、処理対象ＲＡＩＤグループのＲＡＩＤ−Ｇ番号と"Ａ"（処理対象ＲＡＩＤグループの指定時間帯についてのランク）との組み合わせが前半リストに追加され、前半ドライブ数に、処理対象ＲＡＩＤグループの構成ドライブ数が加算される。
【０１６７】
また、ステップＳ５１８の処理が、後半区間のアクセス頻度の方が低いと推定された場合（ステップＳ５１５；ＮＯ、ステップＳ５１３；ＮＯ等）に実行される処理である。このステップＳ５１８の処理では、処理対象ＲＡＩＤグループのＲＡＩＤ−Ｇ番号と"Ａ"との組み合わせが後半リストに追加され、後半ドライブ数に、処理対象ＲＡＩＤグループの構成ドライブ数が加算される。
【０１６８】
上記したように、ステップＳ５１２〜Ｓ５１５の処理では、ランク指標値に基づき、アクセス頻度がより低い区間が推定されるのであるが、Ｖ（前）＝Ｖ（後）が成立している場合、ランク指標値から各区間のアクセス頻度の大小関係を推定することは出来ない。従って、この場合、アクセス頻度という観点からは、処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号をどちらのテーブルに追加しても良いことになる。ただし、後半ドライブ数と前半ドライブ数が大きく異なるのは好ましくない。そのため、Ｖ（前）＝Ｖ（現）＝Ｖ（後）が成立している場合（ステップＳ５１３；ＮＯ）、ステップＳ５１６の判断が行われて、ドライブ数が少ない方のテーブルに処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号が追加されるようにしてあるのである。
【０１６９】
ステップＳ５１７又はＳ５１８の処理を終えたスケジュール制御部２８は、ランクＡテーブル８０Ａ内の全レコードに対する処理が完了したか否かを判断する（ステップＳ５１９）。全レコードに対する処理が完了していなかった場合（ステップＳ５１９；ＮＯ）、スケジュール制御部２８は、処理対象レコードを次レコードに変更（ステップＳ５２０）してから、ステップＳ５１２以降の処理を再び開始する。
【０１７０】
一方、全レコードに対する処理が完了していた場合（ステップＳ５１９；ＹＥＳ）、スケジュール制御部２８は、図１８Ｃに示した手順の処理を行う。
【０１７１】
すなわち、スケジュール制御部２８は、ランクＡテーブル８０Ａへのレコードの追加時の手順（図１８Ａ）と同手順で、ランクＢテーブル８０Ｂへレコードを追加する処理（ステップＳ６０２〜Ｓ６０６）を行う。
【０１７２】
ランクＢテーブル８０Ｂへのレコードの追加が完了した場合（ステップＳ６０５；ＹＥＳ）、スケジュール制御部２８は、図１８Ｄに示した手順の処理を実行する。
【０１７３】
すなわち、スケジュール制御部２８は、ランクＢテーブル８０Ｂ内のレコード毎に（ステップＳ６１１，Ｓ６２０）、いずれの区間のアクセス頻度の方が低いかを推定する（ステップＳ６１２〜Ｓ６１６、Ｓ６２１、Ｓ６２２）。尚、図１８Ｂより、判断ステップの数が多くなっているのは、現ランクがＢである場合、現ランクがＡである場合には成立し得ない関係（"Ｖ（前）＜Ｖ（現）"等）が成立し得るためである。
【０１７４】
また、スケジュール制御部２８は、ランク指標値から各区間のアクセス頻度の大小関係を推定することが出来ない場合（ステップＳ６１３；ＹＥＳ等）には、前半ドライブ数と後半ドライブ数の大小関係から処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を追加するテーブルを決定する（ステップＳ６１６）。
【０１７５】
そして、スケジュール制御部２８は、前半区間のアクセス頻度の方が低いと推定した場合（ステップＳ６１５；＞Ｖ（後）、等）には、処理対象ＲＡＩＤグループのＲＡＩＤ−Ｇ番号と"Ｂ"との組み合わせを前半リストに追加する（ステップＳ６１７）。さらに、スケジュール制御部２８は、前半ドライブ数に、処理対象ＲＡＩＤグループの構成ドライブ数を加算する（ステップＳ６１７）。
【０１７６】
また、スケジュール制御部２８は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を追加するテーブルを前半テーブルに決定した場合（ステップＳ６１６；ＹＥＳ）にも、ステップＳ６１７の処理を行う。
【０１７７】
スケジュール制御部２８は、後半区間のアクセス頻度の方が低いと推定した場合（ステップＳ６１５；＜Ｖ（後）、等）には、処理対象ＲＡＩＤグループのＲＡＩＤ−Ｇ番号と"Ｂ"との組み合わせを後半リストに追加する（ステップＳ６１８）。さらに、スケジュール制御部２８は、後半ドライブ数に、処理対象ＲＡＩＤグループの構成ドライブ数を加算する（ステップＳ６１８）。
【０１７８】
また、スケジュール制御部２８は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を追加するテーブルを後半テーブルに決定した場合（ステップＳ６１６；ＮＯ）にも、ステップＳ６１８の処理を行う。
【０１７９】
そして、スケジュール制御部２８は、ランクＢテーブル８０Ｂ内の全レコードに対する、ステップＳ６１７又はＳ６１８の処理が完了したときに（ステップＳ６１９；ＹＥＳ）、図１８Ｅに示した手順の処理を行う。
【０１８０】
要するに、スケジュール制御部２８は、ランクＡテーブル８０ＡやランクＢテーブル８０Ｂへのレコードの追加時の手順（図１８Ａ、図１８Ｃ）と同手順で、ランクＣテーブル８０Ｃへレコードを追加する処理（ステップＳ７０２〜Ｓ７０６）を行う。
【０１８１】
ランクＣテーブル８０Ｃへのレコードの追加が完了した場合（ステップＳ７０５；ＹＥ
Ｓ）、スケジュール制御部２８は、図１８Ｆに示した手順の処理を実行する。
【０１８２】
すなわち、スケジュール制御部２８は、ランクＣテーブル８０Ｃ内のレコード毎に（ステップＳ７１１、Ｓ７２０）に、いずれの区間のアクセス頻度の方が低いかを推定する（ステップＳ７１２〜Ｓ７１５、Ｓ７２１、Ｓ７２２）。
【０１８３】
また、スケジュール制御部２８は、ランク指標値から各区間のアクセス頻度の大小関係を推定することが出来ない場合（ステップＳ７１３；ＹＥＳ等）には、前半ドライブ数と後半ドライブ数の大小関係から処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を追加するテーブルを決定する（ステップＳ７１６）。
【０１８４】
そして、スケジュール制御部２８は、前半区間のアクセス頻度の方が低いと推定した場合（ステップＳ７１５；＞Ｖ（後）、等）には、処理対象ＲＡＩＤグループのＲＡＩＤ−Ｇ番号と"Ｃ"との組み合わせを前半リストに追加すると共に、前半ドライブ数に処理対象ＲＡＩＤグループの構成ドライブ数を加算する（ステップＳ７１７）。
【０１８５】
また、スケジュール制御部２８は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を追加するテーブルを前半テーブルに決定した場合（ステップＳ７１６；ＹＥＳ）にも、ステップＳ７１７の処理を行う。
【０１８６】
スケジュール制御部２８は、後半区間のアクセス頻度の方が低いと推定した場合（ステップＳ７１６；＜Ｖ（後）、等）には、処理対象ＲＡＩＤグループのＲＡＩＤ−Ｇ番号と"Ｃ"との組み合わせを後半リストに追加する（ステップＳ７１８）。さらに、スケジュール制御部２８は、後半ドライブ数に、処理対象ＲＡＩＤグループの構成ドライブ数を加算する（ステップＳ７１８）。
【０１８７】
また、スケジュール制御部２８は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を追加するテーブルを後半テーブルに決定した場合（ステップＳ７１６；ＮＯ）にも、ステップＳ７１８の処理を行う。
【０１８８】
そして、スケジュール制御部２８は、ランクＣテーブル８０Ｃ内の全レコードに対する、ステップＳ７１７又はＳ７１８の処理が完了した場合（ステップＳ７１９；ＹＥＳ）には、図１８Ｇに示した手順の処理を行う。
【０１８９】
すなわち、スケジュール制御部２８は、ランクＡテーブル８０Ａ等へのレコードの追加時の手順（図１８Ａ、図１８Ｃ、図１８Ｅ）と同手順で、ランクＤテーブル８０Ｄへレコードを追加する処理（ステップＳ８０２〜Ｓ８０６）を行う。
【０１９０】
ランクＤテーブル８０Ｄへのレコードの追加が完了した場合（ステップＳ８０５；ＹＥＳ）、スケジュール制御部２８は、図１８Ｈに示した手順の処理を実行する。
【０１９１】
すなわち、スケジュール制御部２８は、ランクＤテーブル８０Ｄ内のレコード毎に（ステップＳ８１１、Ｓ８２０）に、いずれの区間のアクセス頻度の方が低いかを推定する（ステップＳ８１２〜Ｓ８１５）。
【０１９２】
また、スケジュール制御部２８は、ランク指標値から各区間のアクセス頻度の大小関係を推定することが出来ない場合（ステップＳ８１３；ＹＥＳ等）には、前半ドライブ数と後半ドライブ数の大小関係から処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を追加するテーブルを決定する（ステップＳ８１６）。
【０１９３】
そして、スケジュール制御部２８は、前半区間のアクセス頻度の方が低いと推定した場合（ステップＳ８１５；ＮＯ、等）には、処理対象ＲＡＩＤグループのＲＡＩＤ−Ｇ番号と"Ｄ"との組み合わせを前半リストに追加すると共に、前半ドライブ数に処理対象ＲＡＩＤグループの構成ドライブ数を加算する（ステップＳ８１７）。
【０１９４】
また、スケジュール制御部２８は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を追加するテーブルを前半テーブルに決定した場合（ステップＳ８１６；ＹＥＳ）にも、ステップＳ８１７の処理を行う。
【０１９５】
スケジュール制御部２８は、後半区間のアクセス頻度の方が低いと推定した場合（ステップＳ８１６；ＹＥＳ、等）には、処理対象ＲＡＩＤグループのＲＡＩＤ−Ｇ番号と"Ｄ"との組み合わせを後半リストに追加する（ステップＳ８１８）。さらに、スケジュール制御部２８は、後半ドライブ数に、処理対象ＲＡＩＤグループの構成ドライブ数を加算する（ステップＳ８１８）。
【０１９６】
また、スケジュール制御部２８は、前半ドライブ数と後半ドライブ数の大小関係から、処理対象ＲＡＩＤ−ＧのＲＡＩＤ−Ｇ番号を追加するテーブルを後半テーブルに決定した場合（ステップＳ８１６；ＮＯ）にも、ステップＳ８１８の処理を行う。
【０１９７】
そして、スケジュール制御部２８は、ランクＤテーブル８０Ｄ内の全レコードに対する、ステップＳ８１７又はＳ８１８の処理が完了した場合（ステップＳ８１９；ＹＥＳ）には、図１８Ｉに示した手順の処理を実行する。
【０１９８】
すなわち、図１８Ａ〜図１８Ｈの処理を終えたスケジュール制御部２８は、まず、前半リスト内の情報（何組かのＲＡＩＤ−Ｇ番号とランク）から、第１系列指定ＦＷ適用開始要求を生成する処理（ステップＳ９０１）を行う。
【０１９９】
このステップＳ９０１の処理は、処理対象とする情報が注目ランクテーブル６０内の情報ではなく前半リスト内の情報であること（及び生成される要求の名称が系列指定ＦＷ適用開始要求ではなく第１系列指定ＦＷ適用開始要求であること）を除けば、ステップＳ４００〜Ｓ４１０（図１５）と同手順の処理である。
【０２００】
次いで、スケジュール制御部２８は、後半リスト内の情報から、第２系列指定ＦＷ適用開始要求を生成する処理（ステップＳ９０２）を行う。このステップＳ９０２の処理も、処理対象とする情報が注目ランクテーブル６０内の情報ではなく後半リスト内の情報であることを除けば、ステップＳ４００〜Ｓ４１０と同手順の処理である。
【０２０１】
そして、スケジュール制御部２８は、指定時間帯の開始時刻（前半区間の開始時刻）に第１系列指定ＦＷ適用開始要求を注目ＣＭ１２に対して送信する処理（ステップＳ９０３）と後半区間の開始時刻に第２系列指定ＦＷ適用開始要求を注目ＣＭ１２に対して送信する処理（ステップＳ９０４）とを行ってから、この分割ＦＷ適用制御処理を終了する。
【０２０２】
尚、流れ図への表記は省略したが、ステップＳ９０１又はＳ９０２の処理で生成された系列指定ＦＷ適用開始要求が、その完了に１５分以上かかるものであった場合、スケジュール制御部２８は、ステップＳ９０３以降の処理を行うことなく、その旨をユーザに通知する。また、スケジュール制御部２８は、第１系列指定ＦＷ適用開始要求でＦＷ適用を指示した全ＲＡＩＤ−ＧについてのＦＷ適用が完了したことを後半区間の開始時刻までに確認できなかった場合、ステップＳ９０４の処理を行うことなく、その旨をユーザに通知する。
【０２０３】
以上、説明したように、第２実施形態に係るディスクアレイ装置１０のＣＥ１１（及びマスタＣＭ１２）は、別のＦＷを適用すべき各ＲＡＩＤ−Ｇについての、指定時間帯（ユーザが指定した１つのランク算出対象時間帯）とその前後の時間帯に関するアクセスランクから、ＲＡＩＤ−Ｇ毎に、指定時間帯の前半区間、後半区間のいずれの方がアクセス頻度が少ないかを推定する。そして、ＣＥ１１（及びマスタＣＭ１２）は、各ＲＡＩＤ−ＧのＦＷ適用を、アクセス頻度が低いと推定した方の区間（時間帯）内に行う。
【０２０４】
従って、この第２実施形態に係るＣＥ１１（又はマスタＣＭ１２）によれば、ＦＷ適用中に退避データ格納領域２２０がフルになる可能性が第１実施形態に係るＣＥ１１（又はマスタＣＭ１２）よりも低い形で、各ＲＡＩＤ−ＧのＦＷ適用を行えることになる。
【０２０５】
《変形形態》
上記した各実施形態の技術は、各種の変形を行えるものである。例えば、各実施形態に係るディスクアレイ装置１０を、各ＣＭ１２が、独立して、自ＣＭ１２が担当しているＲＡＩＤ−ＧのＦＷ適用時期を決定する装置に変形することが出来る。また、各実施形態に係るディスクアレイ装置１０を、特定数が２以上であった場合（図１３：Ｓ３０４；ＹＥＳ）に、第２ＦＷ適用制御処理又は分割ＦＷ適用制御処理に相当する処理が行われる装置に変形することも出来る。
【０２０６】
また、各実施形態に係るディスクアレイ装置１０を、ランクの調整（図８）が行われない装置や、上記したものとは具体的な形式が異なるテーブル／要求を生成する装置に変形しても良いことは当然のことである。
【０２０７】
以上、開示した技術に関し、更に以下の付記を開示する。
【０２０８】
（付記１）  冗長性を有するＲＡＩＤグループに対してアクセス制御を行うＲＡＩＤグループ制御装置であって、
前記ＲＡＩＤグループについてのアクセス頻度情報を取得する取得部と、
指定された時間範囲の中で前後の時間帯よりもアクセス頻度が低い時間帯を、前記アクセス頻度情報に基づいて求め、求めた時間帯に基づいて、前記ＲＡＩＤグループに属するドライブのファームウェアの書き換え処理の開始タイミングを決定するスケジューリング部と、
決定した前記開始タイミングで、前記ドライブのファームウェアの書き換え処理を開始するファームウェア書き換え処理部と、
を備えるＲＡＩＤグループ制御装置。
【０２０９】
（付記２）  前記スケジューリング部は、アクセス頻度が低い時間帯が求められなかったＲＡＩＤグループがある場合、当該ＲＡＩＤグループの前記開始タイミングを、他のＲＡＩＤグループについて求められた時間帯とは異なる時間帯に決定する
ことを特徴とする付記１に記載のＲＡＩＤグループ制御装置。
【０２１０】
（付記３）  前記ファームウェア適用処理が行われているファームウェア適用中ドライブを含むＲＡＩＤグループに対するリード／ライト要求に応答する要求応答部を、さらに備え、
前記要求応答部は、
或るファームウェア適用中ドライブを含む或るＲＡＩＤグループに対するリード要求を、当該ファームウェア適用中ドライブを除いた当該ＲＡＩＤグループ内のドライブを制御することにより処理し、
或るファームウェア適用中ドライブを含む或るＲＡＩＤグループに対するライト要求を、当該ファームウェア適用中ドライブを除いた当該ＲＡＩＤグループ内のドライブを制御
すると共に、当該ファームウェア適用中ドライブに書き込むべきデータと、当該データを書き込むべき当該ファームウェア適用中ドライブの記憶領域及び当該ファームウェア適用中ドライブを示す書込位置情報とを情報格納領域に記憶することにより処理し、
或るファームウェア適用中ドライブに対するファームウェア適用処理の完了後に、前記書込位置情報に基づき、前記情報格納領域に記憶されている当該ファームウェア適用中ドライブに書き戻すべき各データを当該ファームウェア適用中ドライブに書き戻してから、当該ファームウェア適用中ドライブに書き戻した各データと当該各データに対応する書込位置情報を前記情報格納領域上から消去する
ことを特徴とする付記１又は２に記載のＲＡＩＤグループ制御装置。
【０２１１】
（付記４）  前記スケジューリング部は、各ファームウェア適用中ドライブに対するファームウェア適用処理を行う際における前記情報格納領域の使用状況を予測して、前記ＲＡＩＤグループの前記開始タイミングを決定する
ことを特徴とする付記３に記載のＲＡＩＤグループ制御装置。
【０２１２】
（付記５）  前記取得部は、所定時間毎のアクセス回数を含むアクセス頻度情報を取得し、
前記スケジューリング部は、前記アクセス頻度情報に基づき、アクセス頻度が前後の時間帯よりも低い，前記所定時間よりも短い時間帯を求め、求めた時間帯に基づいて、前記ＲＡＩＤグループに属するドライブのファームウェアの書き換え処理の開始タイミングを決定する
ことを特徴とする付記１から４のいずれか一項に記載のＲＡＩＤグループ制御装置。
【０２１３】
（付記６）  上位装置から入力されるリード／ライト要求に応じた内容の制御を、冗長性を有する複数のＲＡＩＤグループに対して行うＲＡＩＤグループ制御装置であって、
複数のＲＡＩＤグループのそれぞれに関するアクセス頻度履歴を保持する保持部と、
複数のＲＡＩＤグループのそれぞれに対するアクセス状況を監視し、各ＲＡＩＤグループに対するアクセス状況の監視結果に基づき、前記保持部が保持している各ＲＡＩＤグループに関するアクセス頻度履歴を更新する更新部と、
前記保持部が保持している、新ファームウェアを適用すべき各ＲＡＩＤグループに関する前記アクセス頻度履歴に基づき、新ファームウェアを適用すべき各ＲＡＩＤグループについて、アクセス頻度が前後の時間帯よりも低くなる将来の時間帯を決定するスケジューリング部と、
前記スケジューリング部が各ＲＡＩＤグループについて決定した時間帯内に、各ＲＡＩＤグループを構成している各ドライブに対して、ファームウェアを別のファームウェアに書き換えてから再起動をかけるファームウェア適用処理を順に行うファームウェア適用処理部と、
前記ファームウェア適用処理が行われているドライブであるファームウェア適用中ドライブを含むＲＡＩＤグループに対するリード／ライト要求に、当該ファームウェア適用中ドライブを利用することなく応答する要求応答部と、
を備えることを特徴とするＲＡＩＤグループ制御装置。
【０２１４】
（付記７）  前記要求応答部は、
或るファームウェア適用中ドライブを含む或るＲＡＩＤグループに対するリード要求を、当該ファームウェア適用中ドライブを除いた当該ＲＡＩＤグループ内のドライブを制御することにより処理し、
或るファームウェア適用中ドライブを含む或るＲＡＩＤグループに対するライト要求を、当該ファームウェア適用中ドライブを除いた当該ＲＡＩＤグループ内のドライブを制御すると共に、当該ファームウェア適用中ドライブに書き込むべきデータと、当該データを書き込むべき当該ファームウェア適用中ドライブの記憶領域及び当該ファームウェア適用
中ドライブを示す書込位置情報とを両者の対応関係が分かる形で所定の情報格納領域に記憶することにより処理し、
或るファームウェア適用中ドライブに対するファームウェア適用処理の完了後に、前記所定の情報格納領域に記憶されている書込位置情報に基づき、前記所定の情報格納領域に記憶されている当該ファームウェア適用中ドライブに書き戻すべき各データを当該ファームウェア適用中ドライブに書き戻してから、当該ファームウェア適用中ドライブに書き戻した各データと各データに対応する書込位置情報を前記所定の情報格納領域上から消去する
ことを特徴とする付記６に記載のＲＡＩＤグループ制御装置。
【０２１５】
（付記８）  前記スケジューリング部は、各ファームウェア適用中ドライブに対するファームウェア適用処理の完了前に、前記所定の情報格納領域に空き記憶領域がなくならないように、各ＲＡＩＤグループについての時間帯を決定する
ことを特徴とする付記７に記載のＲＡＩＤグループ制御装置。
【０２１６】
（付記９）  前記スケジューリング部は、
複数のＲＡＩＤグループに関する同時間帯についてのアクセス頻度情報から、当該複数のＲＡＩＤグループが、同時に前記ファームウェア適用処理部の処理対象とした場合における前記情報格納領域の使用状況を予測し、
同時に前記ファームウェア適用処理部の処理対象としても、各ファームウェア適用中ドライブに対するファームウェア適用処理の完了前に、前記所定の情報格納領域に空き記憶領域がなくならないと判定された複数のＲＡＩＤグループについての時間帯が一致するように、各ＲＡＩＤグループについての前記タイミングを決定する
ことを特徴とする付記７に記載のＲＡＩＤグループ制御装置。
【０２１７】
（付記１０）  前記保持部は、前記アクセス頻度履歴として、所定時間毎のアクセス回数を保持し、
前記スケジューリング部は、前記保持部が保持している、新ファームウェアを適用すべき各ＲＡＩＤグループに関する前記所定時間毎のアクセス回数に基づき、新ファームウェアを適用すべき各ＲＡＩＤグループについて、アクセス頻度が前後の時間帯よりも低くなる将来の前記所定時間よりも短い時間帯を決定する
ことを特徴とする付記６から９のいずれか一項に記載のＲＡＩＤグループ制御装置。
【符号の説明】
【０２１８】
１０  ディスクアレイ装置
１１  コントローラエンクロージャ（ＣＥ）
１２  コントローラモジュール（ＣＭ）
１５  ドライブエンクロージャ（ＤＥ）
１６  記憶部
２１  ＩＯ制御部
２２  システム制御部
２３  装置監視部
２４  ファームウェア管理制御部
２５  アクセス退避制御部
２６  アクセス監視部
２７  アクセスランク調整部
２８  スケジュール制御部
４０  ホスト
５０  アクセス数情報
５５  アクセス履歴情報
６０  ランクテーブル
７０  作業用テーブル
７５  系列指定ＦＷ適用開始要求
８０Ａ  ランクＡテーブル
８０Ｂ  ランクＢテーブル
８０Ｃ  ランクＣテーブル
８０Ｄ  ランクＤテーブル
１０１  チャネルアダプタ（ＣＡ）
１０２  ＣＰＵ
１０３  メモリ
１０４  ドライブアダプタ（ＤＡ）
１５０  ドライブ
１５０ａ  ファームウェア適用中ドライブ
１５０ｃ  故障発生ドライブ
１５５  ホットスペアドライブ
２００  ファームウェア適用中ＲＡＩＤグループ
２２０  退避データ格納領域
【図１】
0005782962.tif 000002
【図２Ａ】
0005782962.tif 000003
【図２Ｂ】
0005782962.tif 000004
【図３】
0005782962.tif 000005
【図４Ａ】
0005782962.tif 000006
【図４Ｂ】
0005782962.tif 000007
【図５】
0005782962.tif 000008
【図６】
0005782962.tif 000009
【図７】
0005782962.tif 000010
【図８】
0005782962.tif 000011
【図９】
0005782962.tif 000012
【図１０】
0005782962.tif 000013
【図１１】
0005782962.tif 000014
【図１２Ａ】
0005782962.tif 000015
【図１２Ｂ】
0005782962.tif 000016
【図１３】
0005782962.tif 000017
【図１４】
0005782962.tif 000018
【図１５】
0005782962.tif 000019
【図１６Ａ】
0005782962.tif 000020
【図１６Ｂ】
0005782962.tif 000021
【図１７Ａ】
0005782962.tif 000022
【図１７Ｂ】
0005782962.tif 000023
【図１８Ａ】
0005782962.tif 000024
【図１８Ｂ】
0005782962.tif 000025
【図１８Ｃ】
0005782962.tif 000026
【図１８Ｄ】
0005782962.tif 000027
【図１８Ｅ】
0005782962.tif 000028
【図１８Ｆ】
0005782962.tif 000029
【図１８Ｇ】
0005782962.tif 000030
【図１８Ｈ】
0005782962.tif 000031
【図１８Ｉ】
0005782962.tif 000032
【図１９Ａ】
0005782962.tif 000033
【図１９Ｂ】
0005782962.tif 000034
【図１９Ｃ】
0005782962.tif 000035
【図１９Ｄ】
0005782962.tif 000036
【図２０Ａ】
0005782962.tif 000037
【図２０Ｂ】
0005782962.tif 000038
【図２０Ｃ】
0005782962.tif 000039