(57)【要約】【課題】  複数のディスク型記憶装置から選択されたディスク型記憶装置にファームウェアを効率良く搭載することができる方法及び記憶制御システムを提供する。【解決手段】  記憶制御システム６００は、新たに装着された新ディスク型記憶装置３００Ａから新バージョンファームウェア３２５ＡをＣＭ１３０のキャッシュ領域１３０Ａに読み出し、新ディスク型記憶装置３００Ａよりも過去に装着されている複数の稼動中ディスク型記憶装置３００Ｂから選択された１以上のディスク型記憶装置の旧バージョンファームウェア３２５Ｂを、上記読み出された新バージョンファームウェア３２５Ａに更新する。【選択図】図５
2005242555.tif 000002
【特許請求の範囲】
【請求項１】
上位装置に接続される記憶制御システムにおいて、
上位装置に接続され、前記上位装置からデータを受けるチャネル制御部と、
前記チャネル制御部に接続され、前記上位装置との間でやり取りされるデータを保存するキャッシュメモリと、
前記上位装置との間でやり取りされるデータに関する制御情報を格納する共有メモリと、
前記キャッシュメモリに接続され、前記上位装置との間でやり取りされるデータを、前記キャッシュメモリに格納し又は前記キャッシュメモリから読み出すように制御する複数のディスク制御部と、
前記複数のディスク制御部と複数のファイバチャネルループを用いて接続され、前記複数のディスク制御部の制御によって前記上位装置から送られたデータが格納される複数のディスク型記憶装置と
を備え、
前記複数のディスク型記憶装置には、既に前記記憶制御システムに搭載されている２以上の稼動中ディスク型記憶装置と、前記２以上の稼動中ディスク型記憶装置よりも後に前記記憶制御システムに搭載され、前記２以上の稼動中ディスク型記憶装置から選択された読出し先ディスク型記憶装置に対して転送されるべき転送対象ファームウェアを有する読出し元ディスク型記憶装置とが含まれており、
前記複数のディスク制御部のうち、前記読出し元ディスク型記憶装置と同一のファイバチャネルループに接続される読出し元ディスク制御部は、前記読出し元ディスク型記憶装置から転送対象ファームウェアを読み出し、前記キャッシュメモリ、前記共有メモリ、又は前記複数のディスク制御部に接続され前記記憶制御システムの保守又は管理を行う保守用端末に、前記読み出した転送対象ファームウェアを格納させるものであり、
前記複数のディスク制御部のうち、前記読出し先ディスク型記憶装置と同一のファイバチャネルループに接続される読出し先ディスク制御部は、前記格納された転送対象ファームウェアを、前記読出し先ディスク制御部に接続されたファイバチャネルループを介して、前記読出し先ディスク型記憶装置に転送し格納させる、
ことを特徴とする記憶制御システム。
【請求項２】
前記読出し元ディスク制御部は、前記読出し元ディスク型記憶装置が前記記憶制御システムに装着されたことが検出された場合に、前記読出し元ディスク型記憶装置から前記転送対象ファームウェアを読み出し、
前記転送対象ファームウェアは、前記読出し先ディスク型記憶装置が有する旧バージョンファームウェアよりもバージョンの新しい新バージョンファームウェアであり、
前記読出し先ディスク型記憶装置は、前記読出し先ディスク型記憶装置が有する旧バージョンファームウェアを、前記転送ディスク制御部から転送されて来た前記新バージョンファームウェアに更新する、
請求項１記載の記憶制御システム。
【請求項３】
前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶し、
前記読出し元ディスク制御部は、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出して、前記キャッシュメモリ上に設けられたファームウェア格納領域に格納し、
前記読出し先ディスク制御部は、前記ファームウェア格納領域に格納された更新対象旧バージョン情報と、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンとを比較して、前記２以上の旧バージョンのうちの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記ファームウェア格納領域内の前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送し、
前記ファームウェア格納領域は、前記複数のディスク制御部の全てがアクセス可能である、
請求項２記載の記憶制御システム。
【請求項４】
前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶し、
前記読出し元ディスク制御部は、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出して、前記共有メモリ上に設けられた読出し先領域に格納し、
前記読出し先ディスク制御部は、前記読出し先領域に格納された更新対象旧バージョン情報と、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンとを比較して、前記２以上の旧バージョンのうちの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記読出し先領域内の前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送し、
前記読出し先領域は、前記複数のディスク制御部のうちの前記読出し元ディスク制御部及び前記読出し先ディスク制御部のみがアクセス可能である、
請求項２記載の記憶制御システム。
【請求項５】
前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶し、
前記読出し元ディスク制御部は、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出して前記保守用端末に送信し、
前記保守用端末は、記憶部を備え、前記読出し元ディスク制御部から受信した前記新バージョンファームウェア及び前記更新対象旧バージョン情報を前記記憶部に格納し、且つ、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンを前記読出し先ディスク制御部から受信して前記記憶部に格納し、前記記憶部に格納された更新対象旧バージョン情報と、前記記憶部に格納された２以上の旧バージョンとを比較して、前記２以上の旧バージョンの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記記憶部から取得された前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置を宛先として前記読出し先ディスク制御部に送信し、
前記読出し先ディスク制御部は、前記選択された読出し先ディスク型記憶装置を宛先とした前記新バージョンファームウェアを前記保守用端末から受信して、前記新バージョンファームウェアを前記選択された読出し先ディスク型記憶装置に転送する、
請求項２記載の記憶制御システム。
【請求項６】
前記読出し元ディスク型記憶装置は、前記転送対象ファームウェアが正常に動作することができる１以上のディスク型記憶装置のディスク属性を含んだディスク属性情報を記憶しており、
前記読出し元ディスク制御部は、前記読出し元ディスク型記憶装置から前記ディスク属性情報を読出して前記キャッシュメモリ、前記共有メモリ又は前記保守用端末に格納し、
前記読出し先ディスク制御部は、前記格納されたディスク属性情報と、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置にそれぞれ対応した２以上のディスク属性とを比較して、前記２以上のディスク属性の少なくとも１つが、前記ディスク属性情報に含まれた１以上のディスク属性の少なくとも１つに適合した場合に、前記適合したディスク属性を有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する、
請求項１記載の記憶制御システム。
【請求項７】
読出し先ディスク型記憶装置は、第１と第２のファームウェアのうちの一方を使用して、前記読出し先ディスク制御部との間でデータをやり取し、使用中ではない他方のファームウェアを、前記転送対象ファームウェアに更新し、前記一方のファームウェアの使用が終了した後に、前記一方のファームウェアを前記転送対象ファームウェアに更新する、
請求項１記載の記憶制御システム。
【請求項８】
読出し先ディスク型記憶装置は、前記旧バージョンファームウェアを前記新バージョンファームウェアに更新する場合、前記旧バージョンファームウェアを、前記読出し先ディスク型記憶装置の中に設けられた記憶領域に複製し、前記新バージョンファームウェアを前記読出し先ディスク型記憶装置に転送することに失敗があった場合、前記記憶領域に複製された前記旧バージョンファームウェアを、前記読出し先ディスク型記憶装置のファームウェアとして復帰させる、
請求項２記載の記憶制御システム。
【請求項９】
前記読出し元ディスク制御部は、前記読み出した転送対象ファームウェアを前記保守用端末に送信し、
前記読出し先ディスク制御部は、前記キャッシュメモリ又は前記共有メモリから読み出した転送対象ファームウェアを前記読出し先ディスク型記憶装置に転送することに失敗があった場合、転送失敗があったことを前記保守用端末に通知し、前記転送失敗の通知に応答して、前記保守用端末から前記転送対象ファームウェアを受信した場合に、前記受信した転送対象ファームウェアを前記読出し先ディスク型記憶装置に転送する、
請求項１記載の記憶制御システム。
【請求項１０】
前記複数のディスク型記憶装置には、２以上の読出し元ディスク型記憶装置が含まれており、
同一のＲＡＩＤグループを構成する２以上の読出し元ディスク型記憶装置が装着された場合、前記２以上の読出し元ディスク型記憶装置から選択された読出し先ディスク型記憶装置と同一のファイバチャネルループに接続されている読出し先ディスク制御部が、前記選択された読出し先ディスク記憶装置から転送対象ファームウェアを読み出す、
請求項１記載の記憶制御システム。
【請求項１１】
上位装置に接続された記憶制御システムが有するディスク型記憶装置にファームウェアを搭載する方法であって、
前記記憶制御システムに備えられる複数のディスク型記憶装置のうちの２以上の稼動中ディスク型記憶装置から選択された読出し先ディスク型記憶装置に対して転送されるべき転送対象ファームウェアを、前記２以上の稼動中ディスク型記憶装置よりも後に前記記憶制御システムに搭載された読出し元ディスク型記憶装置から読み出すステップと、
前記上位装置との間でやり取りされるデータを保存するキャッシュメモリ、前記上位装置との間でやり取りされるデータに関する制御情報を格納する共有メモリ、又は、前記記憶制御システムの保守又は管理を行う保守用端末に、前記読み出した転送対象ファームウェアを格納させるステップと、
前記格納された転送対象ファームウェアを前記読出し先ディスク型記憶装置に転送し記憶させるステップと
を有する方法。
【請求項１２】
前記読出し元ディスク型記憶装置が前記記憶制御システムに装着されたことを検出するステップを更に有し、
前記転送対象ファームウェアは、前記読出し先ディスク型記憶装置が有する旧バージョンファームウェアよりもバージョンの新しい新バージョンファームウェアであり、
前記読み出すステップでは、前記読出し元ディスク型記憶装置が前記記憶制御システムに装着されたことが検出された場合に、前記読出し元ディスク型記憶装置から前記新バージョンファームウェアを読み出し、
前記記憶させるステップでは、前記読出し先ディスク型記憶装置が有する旧バージョンファームウェアを、前記転送ディスク制御部から転送されて来た前記新バージョンファームウェアに更新する、
請求項１１記載の方法。
【請求項１３】
前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶しており、
前記読み出すステップでは、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出し、
前記格納するステップでは、前記キャッシュメモリ上に設けられた前記ファームウェア格納領域に格納し、
前記転送するステップでは、前記ファームウェア格納領域に格納された更新対象旧バージョン情報と、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンとを比較して、前記２以上の旧バージョンのうちの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記ファームウェア格納領域内の前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する、
請求項１２記載の方法。
【請求項１４】
前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶しており、
前記読み出すステップでは、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出し、
前記格納するステップでは、前記読み出した新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記共有メモリに設けられた読出し先領域に格納し、
前記転送するステップでは、前記読出し先領域に格納された更新対象旧バージョン情報と、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンとを比較して、前記２以上の旧バージョンのうちの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記読出し先領域内の前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する、
請求項１２記載の方法。
【請求項１５】
前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶しており、
前記保守用端末は記憶部を有しており、
前記読出すステップでは、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出し、
前記格納するステップでは、前記読み出した前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記保守用端末に送信して前記保守用端末の前記記憶部に格納し、且つ、前記２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンを前記保守用端末の記憶部に格納し、
前記転送するステップでは、前記記憶部に格納された更新対象旧バージョン情報と、前記記憶部に格納された２以上の旧バージョンとを比較して、前記２以上の旧バージョンの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記記憶部から取得された前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する、
請求項１２記載の方法。
【請求項１６】
前記読出し元ディスク型記憶装置は、前記転送対象ファームウェアが正常に動作することができる１以上のディスク型記憶装置のディスク属性を含んだディスク属性情報を記憶しており、
前記読み出すステップでは、前記読出し元ディスク型記憶装置から前記ディスク属性情報を読出し、
前記格納するステップでは、前記読み出された前記ディスク属性情報を、前記キャッシュメモリ、前記共有メモリ又は前記保守用端末に格納し、
前記転送するステップでは、前記格納されたディスク属性情報と、２以上の稼動中ディスク型記憶装置にそれぞれ対応した２以上のディスク属性とを比較して、前記２以上のディスク属性の少なくとも１つが、前記ディスク属性情報に含まれた１以上のディスク属性の少なくとも１つに適合した場合に、前記適合したディスク属性を有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する、
請求項１１記載の方法。
【請求項１７】
前記記憶させるステップでは、読出し先ディスク型記憶装置が、第１と第２のファームウェアのうちの一方を使用して、前記読出し先ディスク制御部との間でデータをやり取している場合、使用中ではない他方のファームウェアを、前記転送対象ファームウェアに更新し、前記一方のファームウェアの使用が終了した後に、前記一方のファームウェアを前記転送対象ファームウェアに更新する、
請求項１１記載の方法。
【請求項１８】
前記旧バージョンファームウェアを前記新バージョンファームウェアに更新する場合、前記旧バージョンファームウェアを、前記読出し先ディスク型記憶装置の中に設けられた記憶領域に複製するステップと、
前記新バージョンファームウェアを前記読出し先ディスク型記憶装置に転送することに失敗があった場合、前記記憶領域に複製された前記旧バージョンファームウェアを、前記読出し先ディスク型記憶装置のファームウェアとして復帰させるステップと
を更に有する請求項１２記載の方法。
【請求項１９】
前記キャッシュメモリ又は前記共有メモリから読み出した転送対象ファームウェアを前記読出し先ディスク型記憶装置に転送することに失敗があった場合、転送失敗を前記保守用端末に通知するステップを更に有し、
前記転送するステップでは、前記転送失敗の通知に応答して前記保守用端末から出力された前記転送対象ファームウェアを前記読出し先ディスク型記憶装置に転送する、
請求項１１記載の方法。
【請求項２０】
前記複数のディスク型記憶装置には、２以上の読出し元ディスク型記憶装置が含まれており、
前記読み出すステップでは、同一のＲＡＩＤグループを構成する２以上の読出し元ディスク型記憶装置が装着された場合、前記２以上の読出し元ディスク型記憶装置から選択された読出し先ディスク型記憶装置と同一のファイバチャネルループに接続されているディスク制御部が、前記選択された読出し先ディスク型記憶装置から転送対象ファームウェアを読み出す、
請求項１１記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置に接続される記憶制御システム及び記憶制御システムが有するディスク型記憶装置にファームウェアを書き込む方法に関する。
【背景技術】
【０００２】
例えば、大容量のデータを取り扱う基幹業務用の記憶システムでは、ホスト端末とは別体に構成された記憶制御システムを用いてデータが管理されている。この記憶制御システムは、例えば、ディスクアレイ装置とも呼ばれ、多数のディスク型記憶装置をアレイ状に配置して構成されているＲＡＩＤ（Redundant Array of Independent Inexpensive Disks）である。
【０００３】
一般に、ディスク型記憶装置には、ディスク型記憶装置内のハードウェアを制御するためのファームウェアが搭載されている。例えば、特開平１１−１３４１１４号公報には、システム運用中にディスク交換が判定されると、予め搭載されている基準ディスク内のファームウェアが、ディスク交換により新たに装着された交換ディスクにコピーされることが開示されている。
【０００４】
【特許文献１】特開平１１−１３４１１４号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特開平１１−１３４１１４号公報によれば、例えば、基準ディスクに搭載されているファームウェアが旧いバージョンであると、新たに搭載された交換ディスクにも、旧いバージョンのファームウェアがコピーされてしまうことになる。このため、交換ディスクに新しいバージョンのファームウェアをコピーするためには、ファームウェアのバージョンが新しくなる都度に、基準ディスクに搭載されているファームウェアをその新しいバージョンのファームウェアに更新する必要がある。これでは効率が悪い。
【０００６】
従って、本発明の目的は、複数のディスク型記憶装置から選択されたディスク型記憶装置にファームウェアを効率良く搭載することができる方法及び記憶制御システムを提供することにある。
【０００７】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本発明の側面に従う記憶制御システムは、上位装置に接続され、前記上位装置からデータを受けるチャネル制御部と、前記チャネル制御部に接続され、前記上位装置との間でやり取りされるデータを保存するキャッシュメモリと、前記上位装置との間でやり取りされるデータに関する制御情報を格納する共有メモリと、前記キャッシュメモリに接続され、前記上位装置との間でやり取りされるデータを、前記キャッシュメモリに格納し又は前記キャッシュメモリから読み出すように制御する複数のディスク制御部と、前記複数のディスク制御部と複数のファイバチャネルループを用いて接続され、前記複数のディスク制御部の制御によって前記上位装置から送られたデータが格納される複数のディスク型記憶装置とを備える。前記複数のディスク型記憶装置には、既に前記記憶制御システムに搭載されている２以上の稼動中ディスク型記憶装置と、前記２以上の稼動中ディスク型記憶装置よりも後に前記記憶制御システムに搭載され、前記２以上の稼動中ディスク型記憶装置から選択された読出し先ディスク型記憶装置に対して転送されるべき転送対象ファームウェアを有する読出し元ディスク型記憶装置とが含まれている。前記複数のディスク制御部のうち、前記読出し元ディスク型記憶装置と同一のファイバチャネルループに接続される読出し元ディスク制御部は、前記読出し元ディスク型記憶装置から転送対象ファームウェアを読み出し、前記キャッシュメモリ（例えば、キャッシュメモリに設けられたファームウェア格納領域）、前記共有メモリ（例えば、共有メモリに設けられた所定の記憶領域）、又は前記複数のディスク制御部に接続され前記記憶制御システムの保守又は管理を行う保守用端末に、前記読み出した転送対象ファームウェアを格納させるものである。前記複数のディスク制御部のうち、前記読出し先ディスク型記憶装置と同一のファイバチャネルループに接続される読出し先ディスク制御部は、前記格納された転送対象ファームウェアを、前記読出し先ディスク制御部に接続されたファイバチャネルループを介して、前記読出し先ディスク型記憶装置に転送し記憶させる。例えば、前記読出し先ディスク型記憶装置は、前記読出し先ディスク制御部から受けた前記転送対象ファームウェアを、前記読出し先ディスク型記憶装置のファームウェアとして設定する。
【０００９】
例えば、転送対象ファームウェアは、ディスク型記憶装置内のどこに保存されても良い。具体的には、例えば、転送対象ファームウェアは、ディスク型記憶装置内のメモリ或いはハードディスクにおける所定の格納領域に格納され、ディスク型記憶装置に搭載されたプロセッサが、その格納された転送対象ファームウェアを読み込むことで、ディスク型記憶装置内の種々のハードウェア資源を制御することができる。
【００１０】
この記憶制御システムの第一の実施態様では、前記読出し元ディスク制御部は、前記読出し元ディスク型記憶装置が前記記憶制御システムに装着されたことが検出された場合に、前記読出し元ディスク型記憶装置から前記転送対象ファームウェアを読み出す。前記転送対象ファームウェアは、前記読出し先ディスク型記憶装置が有する旧バージョンファームウェアよりもバージョンの新しい新バージョンファームウェアである。前記読出し先ディスク型記憶装置は、前記読出し先ディスク型記憶装置が有する旧バージョンファームウェアを、前記転送ディスク制御部から転送されて来た前記新バージョンファームウェアに更新する。具体的には、例えば、前記読出し先ディスク型記憶装置は、前記新バージョンファームウェアが有する更新プログラムに従って、前記旧バージョンファームウェアを前記新バージョンファームウェアに更新し、その後、リブートすることで、前記新バージョンファームウェアを、前記読出し先ディスク型記憶装置のファームウェアとして更新する。
【００１１】
なお、読出し元ディスク型記憶装置が記憶する新バージョンファームウェアは、例えば、旧バージョンファームウェアの情報を全く使用することのない独立したファームウェアであっても良いし、旧バージョンファームウェアの情報を使用することで新バージョンファームウェアとして機能するもの（例えば、旧バージョンファームウェアに対して追加、変更又は削除されるプログラムモジュールの集合）であっても良い。
【００１２】
この記憶制御システムの第二の実施態様では、前記第一の実施態様において、前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶する。前記読出し元ディスク制御部は、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出して、前記キャッシュメモリ上に設けられたファームウェア格納領域に格納する。前記読出し先ディスク制御部は、前記ファームウェア格納領域に格納された更新対象旧バージョン情報と、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンとを比較して、前記２以上の旧バージョンのうちの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記ファームウェア格納領域内の前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する。前記ファームウェア格納領域は、前記複数のディスク制御部の全てがアクセス可能である。
【００１３】
この記憶制御システムの第三の実施態様では、前記第一の実施態様において、前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶する。前記読出し元ディスク制御部は、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出して、前記共有メモリ上に設けられた読出し先領域に格納する。前記読出し先ディスク制御部は、前記読出し先領域に格納された更新対象旧バージョン情報と、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンとを比較して、前記２以上の旧バージョンのうちの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記読出し先領域内の前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する。前記読出し先領域は、前記複数のディスク制御部のうちの前記読出し元ディスク制御部及び前記読出し先ディスク制御部のみがアクセス可能である。
【００１４】
この第三の実施態様では、例えば、読出し先ディスク制御部は、ディスクプロセッサ（例えばマイクロプロセッサ）とローカルメモリ（例えば揮発性又は不揮発性のメモリ）とを備える。ディスクプロセッサは、前記ローカルメモリに、前記アクセス可能な読出し先領域から取得した前記新バージョンファームウェア及び前記更新対象旧バージョン情報を格納する。そして、ディスクプロセッサは、前記ローカルメモリに格納された更新対象旧バージョン情報と、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンとを比較する。
【００１５】
この記憶制御システムの第四の実施態様では、前記第一の実施態様において、前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶する。前記読出し元ディスク制御部は、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出して前記保守用端末に送信する。前記保守用端末は、記憶部（例えば、ハードディスク又はメモリ）を備える。前記保守用端末は、前記読出し元ディスク制御部から受信した前記新バージョンファームウェア及び前記更新対象旧バージョン情報を前記記憶部に格納する。また、前記保守用端末は、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンを、前記読出し先ディスク制御部から受信して前記記憶部に格納する。前記保守用端末は、前記記憶部に格納された更新対象旧バージョン情報と、前記記憶部に格納された２以上の旧バージョンとを比較して、前記２以上の旧バージョンの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択する。前記保守用端末は、前記記憶部から取得された前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置を宛先として前記読出し先ディスク制御部に送信する。前記読出し先ディスク制御部は、前記選択された読出し先ディスク型記憶装置を宛先とした前記新バージョンファームウェアを前記保守用端末から受信して、前記新バージョンファームウェアを前記選択された読出し先ディスク型記憶装置に送信する。
【００１６】
この記憶制御システムの第五の実施態様では、前記読出し元ディスク型記憶装置は、前記転送対象ファームウェアが正常に動作することができる１以上のディスク型記憶装置のディスク属性を含んだディスク属性情報を記憶している。前記読出し元ディスク制御部は、前記読出し元ディスク型記憶装置から前記ディスク属性情報を読出して前記キャッシュメモリ、前記共有メモリ又は前記保守用端末に格納する。前記読出し先ディスク制御部は、前記格納されたディスク属性情報と、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置にそれぞれ対応した２以上のディスク属性とを比較して、前記２以上のディスク属性の少なくとも１つが、前記ディスク属性情報に含まれた１以上のディスク属性の少なくとも１つに適合した場合に、前記適合したディスク属性を有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する。
【００１７】
ここで、ディスク属性とは、例えば、ディスク型記憶装置のメーカ、機種、及びＯＳ情報（例えば、ＯＳの種別又はバージョン）の少なくとも１つである。
【００１８】
この記憶制御システムの第六の実施態様では、読出し先ディスク型記憶装置は、第１と第２のファームウェアのうちの一方を使用して、前記読出し先ディスク制御部との間でデータをやり取し、使用中ではない他方のファームウェアを、前記転送対象ファームウェアに更新し、前記一方のファームウェアの使用が終了した後に、前記一方のファームウェアを前記転送対象ファームウェアに更新する。
【００１９】
この記憶制御システムの第七の実施態様では、前記第一の実施態様において、読出し先ディスク型記憶装置は、前記旧バージョンファームウェアを前記新バージョンファームウェアに更新する場合、前記旧バージョンファームウェアを、前記読出し先ディスク型記憶装置の中に設けられた記憶領域に複製し、前記新バージョンファームウェアを前記読出し先ディスク型記憶装置に転送することに失敗があった場合、前記記憶領域に複製された前記旧バージョンファームウェアを、前記読出し先ディスク型記憶装置のファームウェアとして復帰させる。
【００２０】
この記憶制御システムの第八の実施態様では、前記読出し元ディスク制御部は、前記読み出した転送対象ファームウェアを前記保守用端末に送信する。前記読出し先ディスク制御部は、前記キャッシュメモリ又は前記共有メモリから読み出した転送対象ファームウェアを前記読出し先ディスク型記憶装置に転送することに失敗があった場合、転送失敗があったことを前記保守用端末に通知し、前記転送失敗の通知に応答して、前記保守用端末から前記転送対象ファームウェアを受信した場合に、前記受信した転送対象ファームウェアを前記読出し先ディスク型記憶装置に転送する。
【００２１】
この記憶制御システムの第九の実施態様では、前記複数のディスク型記憶装置には、２以上の読出し元ディスク型制御部が含まれている。同一のＲＡＩＤグループを構成する２以上の読出し元ディスク型記憶装置が装着された場合、前記２以上の読出し元ディスク型記憶装置から選択された読出し先ディスク型記憶装置と同一のファイバチャネルループに接続されている読出し先ディスク制御部が、前記選択された読出し先ディスク記憶装置から転送対象ファームウェアを読み出す。
【００２２】
本発明の側面に従う方法は、上位装置に接続された記憶制御システムが有するディスク型記憶装置にファームウェアを搭載する方法であって、前記記憶制御システムに備えられる複数のディスク型記憶装置のうちの２以上の稼動中ディスク型記憶装置から選択された読出し先ディスク型記憶装置に対して転送されるべき転送対象ファームウェアを、前記２以上の稼動中ディスク型記憶装置よりも後に前記記憶制御システムに搭載された読出し元ディスク型記憶装置から読み出すステップと、前記上位装置との間でやり取りされるデータを保存するキャッシュメモリ、前記上位装置との間でやり取りされるデータに関する制御情報を格納する共有メモリ、又は、前記記憶制御システムの保守又は管理を行う保守用端末に、前記読み出した転送対象ファームウェアを格納させるステップと、前記格納された転送対象ファームウェアを前記読出し先ディスク型記憶装置に転送し記憶させるステップとを有する。
【００２３】
この方法に従う第一の実施態様では、前記読出し元ディスク型記憶装置が前記記憶制御システムに装着されたことを検出するステップを更に有し、前記転送対象ファームウェアは、前記読出し先ディスク型記憶装置が有する旧バージョンファームウェアよりもバージョンの新しい新バージョンファームウェアであり、前記読み出すステップでは、前記読出し元ディスク型記憶装置が前記記憶制御システムに装着されたことが検出された場合に、前記読出し元ディスク型記憶装置から前記新バージョンファームウェアを読み出し、前記記憶させるステップでは、前記読出し先ディスク型記憶装置が有する旧バージョンファームウェアを、前記転送ディスク制御部から転送されて来た前記新バージョンファームウェアに更新する。
【００２４】
この方法に従う第二の実施態様では、前記第一の実施態様において、前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶している。前記読み出すステップでは、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出す。前記格納するステップでは、前記キャッシュメモリ上に設けられた前記ファームウェア格納領域に格納する。前記転送するステップでは、前記ファームウェア格納領域に格納された更新対象旧バージョン情報と、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンとを比較して、前記２以上の旧バージョンのうちの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記ファームウェア格納領域内の前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する。
【００２５】
この方法に従う第三の実施態様では、前記第一の実施態様において、前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶している。前記読み出すステップでは、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出す。
【００２６】
前記格納するステップでは、前記読み出した新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記共有メモリに設けられた読出し先領域に格納する。
【００２７】
前記転送するステップでは、前記読出し先領域に格納された更新対象旧バージョン情報と、前記読出し先ディスク制御部と同一のファイバチャネルループに接続された２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンとを比較して、前記２以上の旧バージョンのうちの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記読出し先領域内の前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する、
この方法に従う第四の実施態様では、前記第一の実施態様において、前記読出し元ディスク型記憶装置は、前記新バージョンファームウェアに加えて、前記新バージョンファームウェアに更新されるべきファームウェアの１以上の更新対象旧バージョンが書かれた更新対象旧バージョン情報を記憶している。前記保守用端末は記憶部を有している。前記読出すステップでは、前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記読出し元ディスク型記憶装置から読み出す。前記格納するステップでは、前記読み出した前記新バージョンファームウェア及び前記更新対象旧バージョン情報を、前記保守用端末に送信して前記保守用端末の前記記憶部に格納し、且つ、前記２以上の稼動中ディスク型記憶装置がそれぞれ有する２以上の旧バージョンファームウェアの旧バージョンを前記保守用端末の記憶部に格納する。前記転送するステップでは、前記記憶部に格納された更新対象旧バージョン情報と、前記記憶部に格納された２以上の旧バージョンとを比較して、前記２以上の旧バージョンの少なくとも１つが、前記１以上の更新対象旧バージョンの少なくとも１つに適合した場合に、前記適合した旧バージョンの旧バージョンファームウェアを有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記記憶部から取得された前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する。
【００２８】
この方法に従う第五の実施態様では、前記読出し元ディスク型記憶装置は、前記転送対象ファームウェアが正常に動作することができる１以上のディスク型記憶装置のディスク属性を含んだディスク属性情報を記憶している。前記読み出すステップでは、前記読出し元ディスク型記憶装置から前記ディスク属性情報を読出す。前記格納するステップでは、前記読み出されたディスク属性情報を、前記キャッシュメモリ、前記共有メモリ又は前記保守用端末に格納する。前記転送するステップでは、前記格納されたディスク属性情報と、２以上の稼動中ディスク型記憶装置にそれぞれ対応した２以上のディスク属性とを比較して、前記２以上のディスク属性の少なくとも１つが、前記ディスク属性情報に含まれた１以上のディスク属性の少なくとも１つに適合した場合に、前記適合したディスク属性を有する読出し先ディスク型記憶装置を前記２以上の稼動中ディスク型記憶装置から選択し、前記新バージョンファームウェアを、前記選択された読出し先ディスク型記憶装置に転送する。
【００２９】
この方法に従う第六の実施態様では、前記記憶させるステップでは、読出し先ディスク型記憶装置が、第１と第２のファームウェアのうちの一方を使用して、前記読出し先ディスク制御部との間でデータをやり取している場合、使用中ではない他方のファームウェアを、前記転送対象ファームウェアに更新し、前記一方のファームウェアの使用が終了した後に、前記一方のファームウェアを前記転送対象ファームウェアに更新する。
【００３０】
この方法に従う第七の実施態様では、この方法は、前記旧バージョンファームウェアを前記新バージョンファームウェアに更新する場合、前記旧バージョンファームウェアを、前記読出し先ディスク型記憶装置の中に設けられた記憶領域に複製するステップと、前記新バージョンファームウェアを前記読出し先ディスク型記憶装置に転送することに失敗があった場合、前記記憶領域に複製された前記旧バージョンファームウェアを、前記読出し先ディスク型記憶装置のファームウェアとして復帰させるステップとを更に有する。
【００３１】
この方法に従う第八の実施態様では、この方法は、前記キャッシュメモリ又は前記共有メモリから読み出した転送対象ファームウェアを前記読出し先ディスク型記憶装置に転送することに失敗があった場合、転送失敗を前記保守用端末に通知するステップを更に有する。前記転送するステップでは、前記転送失敗の通知に応答して前記保守用端末から出力された前記転送対象ファームウェアを前記読出し先ディスク型記憶装置に転送する。
【００３２】
この方法に従う第九の実施態様では、前記複数のディスク型記憶装置には、２以上の読出し元ディスク型記憶装置が含まれている。前記読み出すステップでは、同一のＲＡＩＤグループを構成する２以上の読出し元ディスク型記憶装置が装着された場合、前記２以上の読出し元ディスク型記憶装置から選択された読出し先ディスク型記憶装置と同一のファイバチャネルループに接続されているディスク制御部が、前記選択された読出し先ディスク型記憶装置から転送対象ファームウェアを読み出す。
【００３３】
本発明の別の観点に従う記憶制御システムは、上位装置に接続される記憶制御システムであって、複数のディスク型記憶装置と、１又は複数のメモリと、記憶制御部とを備える。前記記憶制御部は、前記上位装置と前記複数のディスク型記憶装置との間のデータのやり取りを制御する。前記記憶制御部は、第１ディスク型記憶装置が前記記憶制御システムに装着されたことが検出された場合に、前記第１ディスク型記憶装置が有する新バージョンファームウェアを読み出し、前記メモリ（又は、前記記憶制御システムの保守又は管理を行うための、前記記憶制御部に接続された保守用端末）に格納する。そして、前記記憶制御部は、前記メモリ又は前記保守用端末に格納された新バージョンファームウェアを取得し、前記新バージョンファームウェアを、前記第１ディスク型記憶装置よりも過去に装着された複数の第２ディスク型記憶装置から選択された１以上の第３ディスク型記憶装置に転送する。前記第３ディスク型記憶装置は、前記第３ディスク型記憶装置が有する旧バージョンファームウェア（前記新バージョンファームウェアよりもバージョンの旧いファームウェア）を、前記記憶制御部から受信した新バージョンファームウェアに更新する。
【００３４】
この記憶制御システムの第一の実施態様では、前記メモリ、又は前記保守用端末の記憶部は、前記新バージョンファームウェアの更新対象となるファームウェアの１以上の旧バージョン属性（例えば旧バージョン識別情報）を表す更新対象旧バージョン属性情報を記憶する。前記記憶制御部は、前記複数の第２ディスク型記憶装置がそれぞれ有する複数のファームウェアのバージョン属性を前記複数の第２ディスク型記憶装置から取得し、前記メモリ又は前記保守用端末の記憶部に格納する。前記記憶制御部は、前記格納された複数のバージョン属性と、前記記憶された更新対象旧バージョン属性情報とを比較し、前記格納された複数のバージョン属性の少なくとも１つが、前記記憶された更新対象旧バージョン属性情報が表す１以上の旧バージョン属性の少なくとも１つに適合した場合、前記適合した旧バージョン属性を持つ旧バージョンファームウェアが搭載された第２ディスク型記憶装置を前記第３ディスク型記憶装置として選択する。
【００３５】
この記憶制御システムの第二の実施態様では、前記第一の実施態様において、前記メモリ、又は前記保守用端末の記憶部は、前記新バージョンファームウェアが正常に動作することができるディスク型記憶装置の１以上のディスク属性（例えば、機種、メーカ及びＯＳの少なくとも１つ）を表すディスク属性情報を記憶する。前記記憶制御部は、前記複数の第２ディスク型記憶装置にそれぞれ対応した複数の第２ディスク属性と、前記ディスク属性情報が表す１以上のディスク属性とを比較し、前記複数の第２ディスク属性の少なくとも１つが、前記１以上のディスク属性の少なくとも１つに適合した場合、前記適合したディスク属性を持つ第２ディスク型記憶装置を前記第３ディスク型記憶装置として選択する。
【発明の効果】
【００３６】
本発明によれば、複数のディスク型記憶装置から選択されたディスク型記憶装置にファームウェアを効率良く搭載することができる。
【発明を実施するための最良の形態】
【００３７】
以下、図面を参照して本発明の一実施形態を説明する。
【００３８】
まず、本実施形態の概念の一つを簡単に説明する。
【００３９】
本実施形態に係る記憶制御システムは、例えば、新たに装着された第１のディスク型記憶装置から新バージョンファームウェアを読み出し、前記第1のディスク型記憶装置よりも過去に装着されている複数の第２のディスク型記憶装置から選択された１以上の第３のディスク型記憶装置の旧バージョンファームウェア（前記新バージョンファームウェアよりもバージョンの旧いファームウェア）を、前記読み出された新バージョンファームウェアに更新する。これにより、新バージョンファームウェアを備えた第１ディスク型記憶装置を装着しさえすれば、既に装着されている第３ディスク型記憶装置内の旧バージョンファームウェアが新バージョンファームに更新される。
【００４０】
以下、本実施形態について詳述する。
【００４１】
図１は、本発明の一実施形態に係る記憶制御システムの外観の概略を示す。
【００４２】
記憶制御システム６００は、例えば、基本筐体１０と複数の増設筐体１２とから構成することができる（基本筐体１１のみで構成されても良い）。
【００４３】
基本筐体１０は、記憶制御システム６００の最小構成単位である。この基本筐体１０には、例えば、複数のディスク型記憶装置（例えばハードディスクドライブ（ＨＤＤ））３００と、複数の制御パッケージ（例えば後述するチャネル制御部又はディスク制御部）１０５と、複数の電源ユニット４００と、複数のバッテリユニット５００とがそれぞれ着脱可能に設けられている。また、基本筐体１０には、複数の冷却ファン１３が設けられている。
【００４４】
各増設筐体１２は、記憶制御システム６００のオプションであり、例えば、１つの基本筐体１０に最大４個の増設筐体１２を接続することができる。各増設筐体１２には、複数の冷却ファン１３が設けられている。また、各増設筐体１２には、複数のディスク型記憶装置３００と、複数の電源ユニット４００と、複数のバッテリユニット５００とがそれぞれ着脱可能に設けられており、それらの各々は、例えば、基本筐体１０に設けられた制御パッケージ１０５が有する制御機能により制御される。
【００４５】
図２は、本発明の一実施形態に係る記憶システムの全体構成例を示す。
【００４６】
この記憶システム１の基本的な構成要素は、１又は複数のホスト端末２００Ａ〜２００Ｄと、記憶制御システム６００である。
【００４７】
ホスト端末（上位装置）２００Ａ〜２００Ｄの各々は、例えば、ＣＰＵ（Central Processing Unit）、不揮発性及び／又は揮発性のメモリ（例えばROM又はRAM）、及びハードディスク等をハードウェア資源として備えたコンピュータシステム（例えば、パーソナルコンピュータ又はワークステーション）である。各ホスト端末２００Ａ〜２００ＤのＣＰＵが、メモリに格納された各種コンピュータプログラムを読込んで実行することにより、コンピュータプログラムとハードウェア資源（例えばメモリ）とが協働した処理が行われて、種々の機能が実現される。ホスト端末２００Ａ〜２００Ｄの各々は、種々の方法で記憶制御システム６００に接続することができる。
【００４８】
例えば、ホスト端末２００Ａ〜２００Ｂは、第一通信ネットワーク（例えば、ＬＡＮ、インターネット又は専用回線、以下、ＬＡＮであるとする）８２０を介して記憶制御システム６００に接続されている。ＬＡＮ８２０を介して行われるホスト端末２００Ａ及び２００Ｂと記憶制御システム６００との間の通信は、例えばＴＣＰ／ＩＰプロトコルに従って行われる。ホスト端末２００Ａ及び２００Ｂから記憶制御システム６００に対して、ファイル名指定によるデータアクセス要求（ファイル単位でのデータ入出力要求、以下、「ファイルアクセス要求」と言う）が送信される。
【００４９】
また、例えば、ホスト端末２００Ｂ及び２００Ｃは、第二通信ネットワーク（例えば、ＳＡＮ（Storage Area Network）、以下、ＳＡＮであるとする）８２１を介して記憶制御システム６００に接続されている。ＳＡＮ８２１を介して行われるホスト端末２００Ｂ及び２００Ｃと記憶制御システム６００との間の通信は、例えばファイバチャネルプロトコルに従って行われる。ホスト端末２００Ｂ及び２００Ｃから記憶制御システム６００に対して、例えば、ブロック単位のデータアクセス要求（以下、「ブロックアクセス要求」と言う）が送信される（なお、ブロック単位とは、後述のディスク型記憶装置３００上の記憶領域におけるデータの管理単位であるブロックを単位としたものである）。
【００５０】
また、例えば、ホスト端末２００Ｄは、ＬＡＮ８２０やＳＡＮ８２１等のネットワークを介さずに記憶制御システム６００に接続されている。ホスト端末２００Ｄは、例えば、メインフレームコンピュータとすることができる。ホスト端末２００Ｄと記憶制御システム６００との間の通信は、例えば、FICON（Fibre
Connection：登録商標）、ESCON（Enterprise System Connection：登録商標）、ACONARC（Advanced Connection Architecture：登録商標）、FIBARC（Fibre
Connection Architecture：登録商標）等の通信プロトコルに従って行われる。ホスト端末２００Ｄから記憶制御システム６００に対して、例えば、これらの通信プロトコルのうちのいずれかに従ってブロックアクセス要求が送信される。
【００５１】
ＬＡＮ８２０及びＳＡＮ８２１の少なくとも一方には、例えば、バックアップ記憶制御システム９１０が接続されている。バックアップ記憶制御システム９１０は、例えば、１又は複数個のディスク系デバイス（例えば、ＭＯ、ＣＤ−Ｒ、又はＤＶＤ−ＲＡＭ）から選択されたディスク系デバイスにデータを格納する記憶制御システムであっても良いし、後に詳述する記憶制御システム６００のような記憶制御システムであっても良いし、１又は複数個のテープ系デバイス（例えば、ＤＡＴテープ、カセットテープ、オープンテープ又はカートリッジテープ）から選択されたテープ系デバイスにデータを格納する記憶制御システムであっても良い。バックアップ記憶制御システム９１０は、例えば、ＬＡＮ８２０或いはＳＡＮ８２１（又は、更に、バックアップ制御システム９１０に接続されているホスト端末）を介して、記憶制御システム６００に記憶されているデータを受信し、自分が備えている記憶装置（例えばテープ系デバイス）にそのデータを格納する。
【００５２】
また、ＬＡＮ８２０及びＳＡＮ８２１のうちの少なくともＬＡＮ８２０には、例えば、管理サーバ８１９が接続されていても良い。管理サーバ８１９は、例えば、ホスト端末と別のホスト端末との間の通信や、ホスト端末と記憶制御システム６００との間の通信の中継を行っても良い。
【００５３】
また、ホスト端末２００Ａ〜２００Ｄは、第三通信ネットワーク（例えばＬＡＮ）を介して相互に接続されていても良い。
【００５４】
記憶制御システム６００は、例えば、ＲＡＩＤ（（Redundant
Array of Independent Inexpensive Disks））システムである。記憶制御システム６００は、ホスト端末２００Ａ〜２００Ｄから受信したコマンドに従う制御を行う。記憶制御システム６００は、記憶制御サブシステム（ディスクアレイ装置）１０２と、保守用端末（以下、Service Processorを略して「ＳＶＰ」と記載）１６０とを備える。記憶制御サブシステム１０２は、記憶制御装置１００と、記憶装置ユニット１０１とを備える。記憶制御装置１００は、１又は複数のチャネル制御部１１０Ａ〜１１０Ｄと、１又は複数のキャッシュメモリ（以下、Cache Memoryを略して「ＣＭ」と記載）１３０と、１又は複数の共有メモリ（以下、Shared Memoryを略して「ＳＭ」と記載）１２０と、１又は複数のディスク制御部１４０Ａ〜１４０Ｄと、接続部１５０とを備える。記憶装置ユニット１０１は、１以上の物理ディスク群５を備える。１以上の物理ディスク群５の各々は、アレイ状に配列された複数のディスク型記憶装置３００を有する。
【００５５】
チャネル制御部１１０Ａ〜１１０Ｄの各々は、ハードウェア回路、ソフトウェア、又はそれらの組み合わせで構成することができる。各チャネル制御部１１０Ａ〜１１０Ｄは、記憶制御装置１００（例えば基本筐体１０）に対して着脱可能であり、チャネルアダプタと呼ばれることがある。各チャネル制御部１１０Ａ〜１１０Ｄは、例えば、プロセッサやメモリ等が実装されたプリント基板と、メモリに格納された制御プログラムとをそれぞれ備えており、これらのハードウェアとソフトウェアとの協働作業によって、所定の機能を実現する。チャネル制御部１１０Ａ〜１１０Ｄの各々は、多重化（例えば二重化）されており、１つのチャネル制御部が破損しても他のチャネル制御部で動作するようになっている。チャネル制御部１１０Ａ〜１１０Ｄは、ＳＭ１２０内の制御情報等（例えば後述のＬＵ−ＬＤＥＶ管理テーブル）を参照しつつ、ホスト端末から受信したコマンドに従う処理を実行する。チャネル制御部１１０Ａ〜１１０Ｄのうち、チャネル制御部１１０Ｃを例に採り、ディスク制御部１４０Ａ〜１４０Ｄの動作も含めて先に説明すると、例えば、チャネル制御部１１０Ｃは、ホスト端末２００Ａ又は２００Ｂから、リード要求を含んだＩ／Ｏ要求（入／出力要求、ここではブロックアクセス要求）を受信すると、読出しコマンドをＳＭ１２０に記憶させると共に、ＣＭ１３０にキャッシュ領域を確保する。ディスク制御部１４０Ａ〜１４０Ｄは、ＳＭ１２０を随時参照しており、未処理の読出しコマンドを発見すると、ディスク型記憶装置３００からデータ（典型的には、ホスト端末２００Ａ〜２００Ｄとディスク型記憶装置３００との間でやり取りされるユーザデータ）を読み出して、ＣＭ１３０に確保された上記キャッシュ領域に記憶させる。チャネル制御部１１０Ｃは、ＣＭ１３０に移されたデータをキャッシュ領域から読み出し、そのデータをリード要求発行元のホスト端末２００Ａ又は２００Ｂに送信する。
【００５６】
また、例えば、チャネル制御部１１０Ｃは、ホスト端末２００Ｂ又は２００Ｃから、ライト要求を含んだＩ／Ｏ要求を受信すると、書込みコマンドをＳＭ１２０に記憶させると共に、ＣＭ１３０にキャッシュ領域を確保し、受信したＩ／Ｏ要求に含まれているデータを、上記確保したキャッシュ領域に記憶させる。その後、チャネル制御部１１０Ｃは、ライト要求発行元のホスト端末２００Ｂ又は２００Ｃに対して書込み完了を報告する。そして、ディスク制御部１４０Ａ〜１４０Ｄは、ＳＭ１２０を随時参照しており、未処理の書込みコマンドを発見すると、その書込みコマンドに従って、ＣＭ１３０に確保された上記キャッシュ領域からデータを読出し、そのデータを所定のディスク型記憶装置３００に記憶させる。
【００５７】
上記の処理は、他のチャネル制御部１１０Ａ〜１１０Ｂ及び１１０Ｄも行うことができる。なお、チャネル制御部１１０Ａ〜１１０Ｂは、ファイルアクセス要求をブロックアクセス要求に変換した後に（例えば、自分が持っているファイルシステムに従い、ファイル要求に含まれているファイル名を論理ブロックアドレスに変換した後に）、上記の処理を行う。
【００５８】
ディスク制御部１４０Ａ〜１４０Ｄは、ハードウェア回路、ソフトウェア、又はそれらの組み合わせで構成することができる。各チャネル制御部１４０Ａ〜１４０Ｄは、記憶制御装置１００（例えば基本筐体１０又は増設筐体１２）に対して着脱可能であり、ディスクアダプタと呼ばれることがある。ディスク制御部１４０Ａ〜１４０Ｄは、例えば、プロセッサやメモリ等が実装されたプリント基板と、メモリに格納された制御プログラムとをそれぞれ備えており、これらのハードウェアとソフトウェアとの協働作業によって、所定の機能を実現する。ディスク制御部１４０Ａ〜１４０Ｄの各々は、多重化（例えば二重化）されており、１つのディスク制御部が破損しても他のディスク制御部で動作するようになっている。ディスク制御部１４０Ａ〜１４０Ｄは、ＳＭ１２０内の制御情報等（例えば後述のＬＵ−ＬＤＥＶ管理テーブル）を参照しつつ、各物理ディスク群５に含まれる各ディスク型記憶装置３００との間のデータ通信を制御するものである。各ディスク制御部１４０Ａ〜１４０Ｄと各ディスク型記憶装置３００とは、例えば、ＳＡＮ等の通信ネットワークを介して接続されており、ファイバチャネルプロトコルに従ってブロック単位のデータ転送を行う。また、ディスク制御部１４０Ａ〜１４０Ｄは、ディスク型記憶装置３００の状態を随時監視しており、この監視結果は内部の通信ネットワーク（例えばＬＡＮ）１５１を介してＳＶＰ１６０に送信される。
【００５９】
１又は複数のＣＭ１３０は、例えば、揮発性又は不揮発性のメモリである。ＣＭ１３０には、キャッシュ領域が確保され、そこに、チャネル制御部１１０Ａ〜１１０Ｄとディスク制御部１４０Ａ〜１４０Ｄとの間で送受されるデータが記憶される。そのデータは、複数のＣＭ１３０により多重管理されても良い。
【００６０】
１又は複数のＳＭ１２０は、例えば不揮発性のメモリから構成され、制御情報等を記憶する（例えば、制御情報等は、複数のＳＭ１２０により多重管理されても良い）。制御情報等には、例えば、チャネル制御部１１０Ａ〜１１０Ｄとディスク制御部１４０Ａ〜１４０Ｄとの間でやり取りされる種々のコマンドや、キャッシュ管理テーブルや、ディスク管理テーブルや、ＬＵ−ＬＤＥＶ管理テーブルがある。キャッシュ管理テーブルは、例えば、キャッシュ領域と、後述するＬＤＥＶの論理アドレスとの対応関係が書かれたテーブルである。ディスク管理テーブルは、各ディスク型記憶装置３００を管理するためのテーブルであり、例えば、各ディスク型記憶装置３００毎に、ディスクＩＤ、ベンダ、記憶容量、ＲＡＩＤレベル、使用状況（例えば使用中か未使用か）等を有する。ＬＵ−ＬＤＥＶ管理テーブルは、後述するＬＤＥＶを管理するためのテーブルであり、例えば、各ＬＤＥＶ毎に、論理パス情報（例えばポート番号、ターゲットＩＤ及びＬＵＮ）、アドレス管理情報（例えば、ディスク型記憶装置３００上の物理アドレスとＬＤＥＶにおける論理アドレスとの対応関係）、記憶容量及びＲＡＩＤレベルを有する。なお、物理アドレスとは、例えば、ディスク型記憶装置３００のＩＤ、ディスクヘッド番号、及びセクタ数を含んだアドレス情報である。論理アドレスとは、例えば、ＬＵＮ（Logical Unit Number）、ＬＤＥＶ番号、及び論理ブロックアドレスを含んだアドレス情報である。
【００６１】
接続部１５０は、各チャネル制御部１１０Ａ〜１１０Ｄと、各ディスク制御部１４０Ａ〜１４０Ｄと、ＣＭ１３０と、ＳＭ１２０とを相互に接続するものである。チャネル制御部１１０Ａ〜１１０Ｄ、ＣＭ１３０、ＳＭ１２０及びディスク制御部１４０Ａ〜１４０Ｄ間でのデータやコマンドの授受は、接続部１５０を介することにより行われる。接続部１５０は、例えば、ユーザデータが通過する第１サブ接続部と、制御情報等が通過する第２接続部とを含んでいる。第１サブ接続部には、各チャネル制御部１１０Ａ〜１１０Ｄ、各ディスク制御部１４０Ａ〜１４０Ｄ及びＣＭ１３０が接続され、第２サブ接続部には、各チャネル制御部１１０Ａ〜１１０Ｄ、各ディスク制御部１４０Ａ〜１４０Ｄ及びＳＭ１２０が接続される。第１サブ接続部及び第２サブ接続部のうちの少なくとも第１サブ接続部は、例えば、高速スイッチングによりデータ伝送を行う超高速クロスバスイッチ等の高速バスである。
【００６２】
複数のディスク型記憶装置３００の各々は、例えば、ハードディスクドライブ或いは半導体メモリ装置等である。複数のディスク型記憶装置３００のうちの２以上の所定数のディスク型記憶装置３００によって、ＲＡＩＤグループ２が構成されている。ＲＡＩＤグループ２は、例えば、パリティグループ又はエラーコレクショングループとも呼ばれることがあり、ＲＡＩＤの原理に従ったディスク型記憶装置３００のグループである。同じＲＡＩＤグループ２に属する２以上のディスク型記憶装置３００は、例えば異なるマザーボード上に搭載され、一つのディスク型記憶装置３００が故障しても、残りの他のディスク型記憶装置３００のデータを用いて、その故障したディスク型記憶装置３００のデータを復元できるように構成されている。このＲＡＩＤグループ２の提供する物理的な記憶領域上に、論理的な記憶デバイスである複数のＬＤＥＶ（Logical Device）が設定され、複数のＬＤＥＶのうちの１以上のＬＤＥＶが、ＬＵＮ（Logical Unit Number）を持った１つのＬＵ（Logical Unit）３１０として、記憶制御装置１００からホスト端末２００Ａ〜２００Ｄに提供される。各ＬＵ３１０は、例えば、プライマリＬＵ（データコピー元ＬＵ）として、セカンダリＬＵ（データコピー先ＬＵ）である別ＬＵ３１０とペアになる場合があり、その場合、そのＬＵ３１０内の全部又は一部のデータ（例えば更新前のデータ）が、別ＬＵ３１０にコピーされることがある。また、各ＬＵ３１０は、例えば、セカンダリＬＵとして、プライマリＬＵである別ＬＵ３１０とペアになる場合があり、その場合、別ＬＵ３１０内の全部又は一部のデータ（例えば更新前のデータ）が、そのＬＵ３１０にコピーされることがある。
【００６３】
ＳＶＰ１６０は、ストレージシステム６００を保守又は管理するためのコンピュータマシンである。ＳＶＰ１６０は、例えば、内部ＬＡＮ等の通信ネットワーク１５１を介して、記憶制御システム６００の各構成要素（例えば、各チャネル制御部１１０Ａ〜１１０Ｄ及び各ディスク制御部１４０Ａ〜１４０Ｄ）から情報を収集することができる。具体的には、例えば、記憶制御システム６００の各構成要素（例えばチャネル制御部又はディスク制御部）に搭載されているＯＳ（オペレーティングシステム）、アプリケーションプログラム、ドライバソフトウェア等が、その構成要素で発生した障害発生に関する障害発生情報を出力するようになっていて、ＳＶＰ１６０が、その障害発生情報を受信することができる。ＳＶＰ１６０が受ける情報としては、例えば、装置構成、電源アラーム、温度アラーム、入出力速度（例えば、記憶制御装置１００が一定時間当たりに受信したＩ／Ｏ要求の数）等がある。また、例えば、ＳＶＰ１６０は、オペレータによる操作に応答して、例えば、ディスク型記憶装置３００の設定や、ＬＤＥＶの設定や、チャネル制御部１１０Ａ〜１１０Ｄにおいて実行されるマイクロプログラムのインストール等を行うことができる。また、ＳＶＰ１６０は、例えば、記憶制御システム６００の動作状態の確認や故障部位の特定、チャネル制御部１１０で実行されるオペレーティングシステムのインストール等の作業を行うこともできる。また、例えば、ＳＶＰ１６０は、ＬＡＮや電話回線等の通信ネットワークを介して外部保守センタ（図示せず）と接続されていて、その外部保守センタに、記憶制御システム６００の各構成要素から受信した障害発生情報等を通知しても良い。また、ＳＶＰ１６０は、記憶制御システム６００に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。
【００６４】
以上が、記憶制御システム６００についての基本的な説明である。なお、この記憶制御システム６００では、例えば、１つのチャネル制御部と１つのディスク制御部とが１つのモジュールとして一体的に構成されて、その１つのモジュールで、チャネル制御部及びディスク制御部の機能を発揮しても良い。また、例えば、ＳＭ１２０とＣＭ１３０が、一体的に構成されていても良い。また、各チャネル制御部毎に１つのＬＵＮが割当てられても良いし、複数のチャネル制御部に１つのＬＵＮが割当てられても良い。また、記憶制御システム６００には、別の記憶制御システムが接続されていても良い。その場合、例えば、記憶制御システム６００が有するプライマリＬＵと、別の記憶制御システムが有するセカンダリＬＵとがペア状態にされて、記憶制御システム６００に接続されているホスト端末２００Ａ〜２００Ｄが、記憶制御システム６００を介して別の記憶制御システム内のセカンダリＬＵにアクセスしても良い。また、例えば、記憶制御システム６００は、ファイルアクセス要求及びブロックアクセス要求の双方を受けるものであっても良いし、ファイルアクセス要求のみを受けるもの（例えばＮＡＳ）であっても良いし、ブロックアクセス要求のみを受けるものであっても良い。
【００６５】
図３は、本実施形態に係るディスク制御部１４０Ａの構成例を示す。ディスク制御部１４０Ａ〜１４０Ｄは実質的にどれも同じ構成なので、ディスク制御部１４０Ａを代表的に例に採り説明する。
【００６６】
ディスク制御部１４０Ａは、ユニット化されたボード（例えばディスクアダプタ）として形成されている。このディスク制御部１４０Ａは、図示しないボード接続用コネクタを備えており、そのボード接続用コネクタが記憶制御装置１００の所定コネクタに嵌合することにより、ディスク制御部１４０Ａは記憶制御装置１００と電気的に接続される。ディスク制御部１４０Ａには、ディスクインターフェース部（以下、「ディスクＩ／Ｆ」と略記）１４１、ディスク側メモリ１１５、１又は複数の入出力制御部５９１、ＳＶＰインターフェース部（以下、「ＳＶＰＩ／Ｆ」と略記）５０、ＣＭデータ転送回路７１３及びＳＭデータ転送回路７４１が搭載されている。
【００６７】
ディスクＩ／Ｆ７１１は、ディスク型記憶装置３００との間で通信を行うための通信インタフェースであり、例えば、ＳＡＮ等の通信ネットワークを介してディスク型記憶装置３００に接続される。
【００６８】
１又は複数の入出力制御部５９１の各々は、ホスト端末２００Ａ〜２００Ｄから受信したＩ／Ｏ要求に基づいて行われる処理を制御するものであり、例えばマイクロプロセッサユニットである。入出力制御部５９１には、例えば、ＤＫＰ（DisK Processor）１２３やＤＫＰメモリ１２２が搭載される。
【００６９】
ＤＫＰ１２３は、例えば、マイクロプロセッサであり、ディスク制御部１４０全体の制御を司ると共に、チャネル制御部１１０Ａ〜１１０Ｄや、ディスク型記憶装置３００や、ＳＶＰ１６０との間の通信を制御する。ＤＫＰ１２３は、ＤＫＰメモリ１２２（又はディスク側メモリ１１５）に格納された各種コンピュータプログラムを実行することにより、ディスク制御部１４０Ａとしての機能を発揮する。ディスク制御部１４０Ａが発揮する機能としては、例えば、ＲＡＩＤレベルに基づくディスク型記憶装置３００へのデータ格納及び読み出し制御や、ディスク型記憶装置３００に記憶されたデータの複製及びバックアップ等の制御である。
【００７０】
ＤＫＰメモリ１２２は、揮発性又は不揮発性のメモリ（例えばＮＶＲＡＭ（Non Volatile RAM））であり、例えば、ＤＫＰ１２３の制御を司るコンピュータプログラムを格納する。ＤＫＰメモリ１２２に記憶されるプログラムの内容は、例えば、ＳＶＰ１６０や、後述するＮＡＳマネージャ８０６からの指示により書き込みや書き換えを行うことができる。
【００７１】
ＳＶＰＩ／Ｆ５０は、内部ＬＡＮ１５０等の通信ネットワークを介してＳＶＰ１６０に接続され、且つ、ＤＫＰ１２３に接続される。ＳＶＰＩ／Ｆ５０は、ＳＶＰ１６０とＤＫＰ１２３との間の通信を制御するための通信インタフェース（例えばＬＡＮコントローラ）である。
【００７２】
ＣＭデータ転送回路７１３は、例えば、ＤＫＰ１２３の制御の下で、ＣＭ１３０からユーザデータを受信してディスク側メモリ１１５に転送したり、ディスク型記憶装置３００から取得されたユーザデータをＣＭ７１３に転送したりする。
【００７３】
ＳＭデータ転送回路７４１は、例えば、ＤＫＰ１２３の制御の下で、ＤＫＰ１２３からＣＨＰ（チャネルプロセッサ）への制御情報（例えばプロセッサ間メッセージ）をＳＭ１２０に転送したり、ＳＭ１２０から受信した制御情報をＤＫＰ１２３に転送したりする。
【００７４】
ディスク側メモリ１１５は、揮発性又は不揮発性のメモリである。ディスク型メモリ１１５には、例えば、ＤＫＰ１２３によって、ＣＭ１３０又はＳＭ１２０から読み出された情報が一時的に格納される。
【００７５】
図４は、１つのディスク制御部と複数のディスク型記憶装置との接続機構を示す。なお、この図では、ディスク制御部１４０Ａ〜１４０Ｄのうちディスク制御部１４０Ａを例に採るが、他のディスク制御部１４０Ｂ〜１４０Ｄについても接続機構は同様である。
【００７６】
例えば１つのファイバチャネルループ３９０に、ディスク制御部１４０Ａと、複数のディスク型記憶制御装置３００、３００、…が接続されている。ディスク制御部１４０Ａは、同一のファイバチャネルループ３９０に接続されている複数のディスク型記憶装置３００、３００、…にアクセスすること（例えば、データを読出す及び書込むこと）ができる。
【００７７】
ファイバチャネルループ３９０は、例えば、１又は複数のハブ（例えば、１つのファイバチャネルスイッチ、以下、「ＦＣ−ＳＷ」と表記）３１１を含んでいる。ＦＣ−ＳＷ３１１に１つのディスク制御部１４０Ａと複数のディスク型記憶装置３００、３００、…が接続されている場合、ＦＣ−ＳＷ３１１は、ディスク制御部１４０Ａと各ディスク型記憶装置３００との間の通信を制御する。
【００７８】
ＦＣ−ＳＷ３１１は、ＳＷ制御部３１３と、ＳＷメモリ３１５とを備える。ＳＷ制御部３１３は、例えばＣＰＵ（Central Processing Unit）であり、ＦＣ−ＳＷ３１１の動作（例えば、ディスク制御部１４０Ａと各ディスク型記憶装置３００との間の通信）を制御する。ＳＷ制御部３１３は、例えば、記憶制御システム６００（例えば基本筐体１０又は増設筐体１２）の所定の場所（例えばＦＣ−ＳＷ３１１が電気的に接続可能な場所）に、ディスク型記憶装置３００が装着されたか否かを監視し、その監視結果（例えば、どの場所にディスク型記憶装置が装着されたか）を、ＳＷメモリ（例えばレジスタ）３１５に書き込む。
【００７９】
ＦＣ−ＳＷ３１１に接続された複数のディスク型記憶装置３００、３００、…には、例えば、新たに記憶制御システム６００に装着された（別の言い方をすれば、新たにＦＣ−ＳＷ３１１に接続された）ディスク型記憶装置（以下、便宜上、「新ディスク型記憶装置」と言う）３００Ａと、新ディスク型記憶装置３００Ａよりも過去から既に装着されていた２以上のディスク型記憶装置（以下、便宜上、「稼動中ディスク型記憶装置」と言う）３００Ｂ、３００Ｂ、…とが含まれている。
【００８０】
新ディスク型記憶装置３００Ａと、稼動中ディスク型記憶装置３００Ｂの構成は基本的には同じである。新ディスク型記憶装置３００Ａを例に採り説明すると、新ディスク型記憶装置３００Ａは、ディスク情報記憶領域３１７Ａと、ファームウェアグループ記憶領域３１９Ａと、ホストデータ記憶領域３２１Ａと、リードライト制御部３２３Ａとがある。ディスク情報記憶領域３１７Ａ、ファームウェアグループ記憶領域３１９Ａ、及びホストデータ記憶領域３２１Ａの少なくとも１つは、同一の記憶媒体（例えばハードディスク又はメモリ）上に設けられても良いし、別々の記憶媒体上に設けられても良い。
【００８１】
ディスク情報記憶領域３１７Ａには、新ディスク型記憶装置３００Ａに関するディスク情報が記憶される。ディスク情報には、例えば、新ディスク型記憶装置３００ＡのＩＤ（以下、「ディスクID」例えば、）が含まれている。
【００８２】
ファームウェアグループ記憶領域３１９Ａには、ファームウェアグループ３２４が記憶されている。ファームウェアグループ３２４には、例えば、リードライト制御部３２３Ａに読み込まれて新ディスク型記憶装置３００Ａを制御するファームウェアが含まれている。そのファームウェアが、バージョンの新しい新バージョンファームウェアの場合、ファームウェアグループ３２４Ａには、新バージョンファームウェアに交換されるべきファームウェアの１以上の旧バージョンが書かれた交換対象バージョンリスト３２７も含まれている。なお、新バージョンファームウェア３２５Ａとは、後述する旧バージョンファームウェア３２５Ｂよりもバージョンの新しいファームウェアである。新バージョンファームウェア３２５Ａは、例えば、補助データと、本体データとを有する。補助データには、例えば、ファームウェアのバージョン（図示の例では、新バージョンであれば「VV1-RR4」、旧バージョンであれば「VV1-RR3」）を表すバージョンコードと、新バージョンファームウェア３２５Ａを稼動中ディスク型記憶装置３００Ｂに設定するためのインストールプログラムとが含まれている。本体データには、例えば、新バージョンファームウェア３２５Ａとして動作するためのコンピュータプログラム等が含まれている。本体データは、例えば、新バージョンファームウェア３２５Ａとして動作するのに必要な全てのコンピュータプログラムが含まれていても良いし、旧バージョンファームウェア３２５Ｂとの差分のみが含まれていても良い。
【００８３】
ホストデータ記憶領域３２１Ａには、新ディスク型記憶装置３００Ａとホスト端末２００Ａ〜２００Ｄとの間でやり取りされるデータ（以下、「ホストデータ」と言う）が格納される。
【００８４】
リードライト制御部３２３Ａは、例えば、ＦＣ−ＳＷ３１１と通信可能に接続されるファイバチャネルアダプタであり、ＣＰＵ及びメモリを備えた回路基板である。リードライト制御部３２３Ａは、ファームウェアグループ記憶領域３１９Ａから新バージョンファームウェア３２５Ａを読み出し、その新バージョンファームウェア３２５Ａに含まれる種々のプログラムコードに従って、新ディスク型記憶装置３００Ａの動作を制御する。例えば、リードライト制御部３２３Ａは、ホスト端末２００Ａ〜２００Ｄからディスク制御部１４０Ａ及びＦＣ−ＳＷ３１１を介して受信したホストデータを、ホストデータ記憶領域３２１Ａに格納したり、ホストデータ格納領域３２１Ａからホストデータを読み出してＦＣ−ＳＷ３１１を介してディスク制御部１４０Ａに送信したりする。また、例えば、リードライト制御部３２３Ａは、ディスク制御部１４０Ａからのファームウェアグループ読出し命令を受け、その命令に応答して、ファームウェアグループ記憶領域３１９Ａからファームウェアグループ３２４Ａを読み出しディスク制御部１４０Ａに転送する。
【００８５】
稼動中ディスク型記憶装置３００Ｂのファームウェアグループ３１９Ｂには、新バージョンファームウェア３２５Ａよりもバージョンの旧い旧バージョンファームウェア３２５Ｂが含まれている。
【００８６】
前述したように、新バージョンファームウェア３２５Ａにも旧バージョンファームウェア３２５Ｂにも、ファームウェアのバージョン（図示の例では、新バージョンであれば「VV1-RR4」、旧バージョンであれば「VV1-RR3」）を表すバージョンコードが含まれている。ファームウェアのバージョンを判別する場合には、そのファームウェアに含まれているバージョンコードを参照することで、そのファームウェアのバージョンを判別することができる。なお、ファームウェアのバージョンコードは、ディスク情報記憶領域３１７Ａ、３１７Ｂに記憶されていて、そのディスク情報記憶領域３１７Ａ、３１７Ｂにアクセスすることにより、ファームウェアのバージョンを判別することができるようになっていても良い。
【００８７】
図５は、ディスク型記憶装置３００が記憶制御システム６００に新たに装着されたこと場合に行われるファームウェアグループ読出し処理の流れを示す。
【００８８】
ＦＣ−ＳＷ３１１のＳＷ制御部３１３は、記憶制御システム６００（例えば基本筐体１０又は増設筐体１２）の所定の場所（例えばＦＣ−ＳＷ３１１が電気的に接続可能な場所）に、ディスク型記憶装置３００が装着されたか否かを監視している（ステップＳ１）。
【００８９】
新ディスク型記憶装置３００Ａが記憶制御システム６００の所定の場所に装着された場合（Ｓ２）、ＳＷ制御部３１３は、新ディスク型記憶装置３００Ａが記憶制御システム６００に電気的に接続されたことを検出して（Ｓ３）、新ディスク型記憶装置３００Ａが装着されたことをＳＷメモリ３１５に書く（例えばフラグを立てる）（Ｓ４）。
【００９０】
ディスク制御部１４０Ａ（例えばそれに搭載されているＤＫＰ１２３）は、ＦＣ−ＳＷ３１１のＳＷメモリ３１５の記憶内容を監視する（Ｓ５）。
【００９１】
ＳＷメモリ３１５に、新ディスク型記憶装置３００Ａが装着されたことが書かれた場合、ディスク制御部１４０Ａは、そのことを検出する（Ｓ６）。その後、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４Ａが、ＣＭ１３０、ＳＭ１２０及びＳＶＰ１６０のうちの少なくとも１つに読み出される。以下、順に説明する。
【００９２】
（１）新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４Ａが、ＣＭ１３０に読み出される場合。
【００９３】
ディスク制御部１４０Ａは、ＣＭ１３０上に一時バッファ領域（以下、「キャッシュ領域」と言う）１３０Ａを確保し（Ｓ７）、新ディスク型記憶装置３００Ａに、ファームウェアグループ読出し指示を出す（Ｓ８）。
【００９４】
新ディスク型記憶装置３００Ａのリードライト制御部３２３Ａは、ディスク制御部１４０Ａからのファームウェアグループ読出し指示に応答して、ファームウェアグループ記憶領域３１９Ａからファームウェアグループ３２４Ａを読み出し、それを、ディスク制御部１４０Ａ及びＤＲＲ（Data Recovery Regeneration）回路３３５を介して、Ｓ７で確保されたキャッシュ領域に転送する（Ｓ９）。
【００９５】
以上のＳ７〜Ｓ９の処理流れにより、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４Ａが、ＣＭ１３０に読み出される。
【００９６】
（２）新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４Ａが、ＳＭ１２０に読み出される場合。
【００９７】
ＳＭ１２０には、複数のディスク制御部１４０Ａ〜１４０Ｄにそれぞれ対応した複数のＤＫＡ記憶領域３３７Ａ〜３３７Ｄが用意されている。各ＤＫＡ記憶領域３３７Ａ〜３３７Ｄは、それに対応したディスク制御部によって定期的にアクセスされるようになっている。なお、各ＤＫＡ記憶領域３３７Ａ〜３３７Ｄには、図示しないが、そのＤＫＡ記憶領域に対応したディスク制御部に搭載されている１又は複数のＤＫＰ１２３にそれぞれ対応した１又は複数のＤＫＰポーリング領域が用意されている。
【００９８】
ディスク制御部１４０Ａ上のＤＫＰ１２３は、新ディスク型記憶装置３００Ａに、ファームウェアグループ読出し指示を出し（Ｓ８）、それに応答して取得されたファームウェアグループ３２４Ａを（Ｓ１０）、他のディスク制御部１４０Ｂ〜１４０Ｄ上に対応したＤＫＡ記憶領域３３７Ｂ〜３３７Ｄに格納する（Ｓ１１）。
【００９９】
以上のＳ８及びＳ１０〜Ｓ１１の処理流れにより、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４Ａが、ＳＭ１２０に読み出される。
【０１００】
（３）新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４Ａが、ＳＶＰ１６０に読み出される場合。
【０１０１】
ディスク制御部１４０Ａ上のＤＫＰ１２３は、新ディスク型記憶装置３００Ａに、ファームウェアグループ読出し指示を出し（Ｓ８）、それに応答して取得されたファームウェアグループ３２４Ａを（Ｓ１０）、内部通信ネットワーク（例えばＬＡＮ）１５１を介してＳＶＰ１６０に送信する。ＳＶＰ１６０に送信されたファームウェアグループ３２４Ａは、ＳＶＰ１６０の内部通信ネットワークインターフェース１６２を介して、ＳＶＰ１６０の記憶部（例えばハードディスク又はメモリ）１６１に格納される。
【０１０２】
以上のＳ８、Ｓ１０及びＳ１２の処理流れにより、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４Ａが、ＳＶＰ１６０に読み出される。
【０１０３】
さて、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４Ａが、ＣＭ１３０、ＳＭ１２０及びＳＶＰ１６０のうちの少なくとも１つに読み出された後、以下に説明する処理流れにより、稼動中ディスク型記憶装置３００Ｂ内の旧バージョンファームウェア３２５Ｂが、新バーションファームウェア３２５Ａに更新される。以下、その処理流れを、ディスク制御部１４０Ｃと同一のファイバチャネルループ３９０に接続されている稼動中ディスク型記憶装置３００Ｂのファームウェアが更新される場合を例に採り説明する（以下に説明する処理流れは、他のディスク制御部１４０Ａ〜１４０Ｂ及び１４０Ｄについても同様である）。
【０１０４】
（１）新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＣＭ１３０に読み出された場合。
【０１０５】
図６は、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＣＭ１３０に読み出された場合に行われるファームウェア更新処理流れを示す。
【０１０６】
チャネル制御部１４０Ｃのディスク型メモリ１１５（又はＤＫＰメモリ１２２）には、チャネル制御部１４０Ｃと同一のファイバチャネルループ３９０に接続された２以上のディスク型記憶装置３００に関するディスク装置情報３４１が格納される。ディスク装置情報３４１は、例えば、それら２以上のディスク型記憶装置３００にそれぞれ対応した２以上のディスクＩＤ及びファームウェアバージョンが含まれている。ディスク装置情報３４１は、ＳＶＰ１６０等を使用するユーザによって予め登録されても良いし、ディスク制御部１４０ＣのＤＫＰ１２３によって自動的に取得されたものであっても良い。後者の場合、ＤＫＰ１２３が、例えば、ＳＣＳＩプロトコルに基づくInquiryコマンドを、２以上のディスク型記憶装置３００に送信し、それに応答して２以上のディスク型記憶装置３００からそれぞれ受信した２以上のディスクＩＤ及びファームウェアバージョンを基に、ディスク装置情報３４１をディスク型メモリ１１５に登録する。
【０１０７】
ファームウェアグループ３２４ＡがＣＭ１３０に読み出された後、ディスク制御部１４０Ａは、ディスク制御部１４０Ｃに対応したＤＫＡ記憶領域３３７Ｃ（ＳＭ１２０上の記憶領域）に、ファームウェア更新命令を格納する（Ｓ２１）。
【０１０８】
ディスク制御部１４０Ｃ上のＤＫＰ１２３は、ＤＫＡ記憶領域３３７Ｃからファームウェア更新命令を取得した場合（Ｓ２２）、ＣＭ１３０に確保されたキャッシュ領域１３０Ａからファームウェアグループ３２４Ａを読み出し、そのファームウェアグループ３２４Ａをディスク側メモリ１１５に登録する（Ｓ２３）。
【０１０９】
ＤＫＰ１２３は、ホスト端末２００Ａ〜２００ＤからのＩ／Ｏ要求の処理中で無い場合（Ｓ２４でＮ）、同一のファイバチャネルループ３９０に接続された２以上の稼動中ディスク型記憶装置３００Ｂにそれぞれ対応した２以上の旧バージョンファームウェアバージョン（ディスク側メモリ１１５に登録された２以上の旧バージョンファームウェアバージョン）と、ファームウェアグループ３２４Ａに含まれている交換対象バージョンリスト３２７に記載の１以上の旧バージョンファームウェアバージョン（以下、「リスト記載旧バージョン」と言う）とを比較する（Ｓ２５）。
【０１１０】
Ｓ２５の結果、２以上の旧バージョンファームウェアバージョンの少なくとも１つが、１以上のリスト記載旧バージョンの少なくとも１つに適合（例えば一致）した場合（Ｓ２６でＹ）、ＤＫＰ１２３は、その旧バージョンファームウェアバージョンに対応したディスクＩＤを持った稼動中ディスク型記憶装置３００Ｂに、ディスク側メモリ１１５にある新バージョンファームウェア３２５Ａを転送し、且つ、再起動を命令する（Ｓ２７）。
【０１１１】
新バージョンファームウェア３２５Ａを受けた稼動中ディスク型記憶装置３００Ｂのリードライト制御部３２３Ｂは、ファームウェアグループ記憶領域３１９Ｂにある旧バージョンファームウェア３２５Ｂを消去し、その記憶領域３１９Ｂに、受信した新バージョンファームウェア３２５Ａを格納する（Ｓ２８）。その後、ＤＫＰ１２３からの再起動命令に従って、リードライト制御部３２３Ｂは、再起動を実行する（Ｓ２９）。それにより、ファームウェアグループ記憶領域３１９Ｂ内の新バージョンファームウェア３２５Ａがリードライト制御部３２３Ｂに読み込まれ、その新バージョンファームウェア３２５Ａにより、稼動中ディスク型記憶装置３００Ｂの動作が制御されるようになる。
【０１１２】
なお、以上の処理流れにおいて、ＤＫＰ１２３は、Ｓ２４において、Ｉ／Ｏ要求の処理中（例えば、ホストデータが稼動中ディスク型記憶装置３００Ｂに格納されている最中又は稼動中ディスク型記憶装置３００Ｂからホストデータが読み出されている最中）であれば（Ｓ２４でＹ）、Ｓ２５を開始せずに、Ｉ／Ｏ要求の処理を優先して行う（Ｓ３０）。ＤＫＰ１２３は、その処理が終了した後に（Ｓ２４でＮになった後に）、Ｓ２５を実行する。
【０１１３】
（２）新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＭ１２０に読み出された場合。
【０１１４】
図７は、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＭ１２０に読み出された場合に行われるファームウェア更新処理流れを示す。以下、ファームウェアグループ３２４ＡがＣＭ１３０に読み出された場合に行われるファームウェア更新処理流れとの相違点を主に説明し、共通点については、説明の重複を避けるために簡略又は省略する。
【０１１５】
ディスク制御部１４０Ｃ上のＤＫＰ１２３は、ＤＫＡ記憶領域３３７Ｃからファームウェア更新命令を取得した場合、そのＤＫＡ記憶領域３３７Ｃからファームウェアグループ３２４Ａを読み出し、そのファームウェアグループ３２４Ａをディスク側メモリ１１５に登録する（Ｓ４３）。
【０１１６】
以後、上述したＳ２４〜Ｓ３０の処理が行われる（Ｓ４４〜Ｓ５０）。
【０１１７】
（３）新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＶＰ１６０に読み出された場合。
【０１１８】
図８は、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＶＰ１６０に読み出された場合に行われるファームウェア更新処理流れを示す。
【０１１９】
ＳＶＰ１６０内の制御部（例えばＣＰＵ）１６３は、所定のタイミングに（例えば、ユーザの命令を受けたとき又は起動したとき）、全てのディスク制御部１４０Ａ〜１４０Ｄに対してＤＫＡ情報収集命令を送信する（Ｓ５１）。
【０１２０】
ＳＶＰ１６０からＤＫＡ情報収集命令を受けたディスク制御部１４０Ａ〜１４０Ｄの各々は、自分の管理下にある（例えば同一のファイバチャネルループ３９０に接続されている）各ディスク型記憶装置３００に対して、ディスク情報収集コマンド（例えば、ＳＣＳＩプロトコルに基づくInquiryコマンド）を送信する（Ｓ５２）。ディスク情報収集コマンドを受けた各ディスク型記憶装置３００のリードライト制御部３２３Ａ又は３２３Ｂは、そのディスク型記憶装置３００のディスクＩＤ及びファームウェアバージョンを取得し、取得したディスクＩＤ及びファームウェアバージョンを、同一のファイバチャネルループ３９０に接続されているディスク制御部に送信する。ディスク制御部１４０Ａ〜１４０Ｄは、受信したディスクＩＤ及びファームウェアバージョンをＳＶＰ１６０に送信する（Ｓ５３）。
【０１２１】
ＳＶＰ１６０の制御部１６３は、受信したディスクＩＤ及びファームウェアバージョンを記憶部（例えばメモリ又はハードディスク）１６１に格納する（Ｓ５４）。それにより、記憶部１６１には、例えば、図示のように、記憶制御システム６００に搭載されている複数のディスク型記憶装置３００にそれぞれ対応した複数のディスクＩＤ及びファームウェアバージョンが登録される。なお、制御部１６３は、受信したディスクＩＤ及びファームウェアバージョンの一覧を、ＳＶＰ１６０のディスプレイ画面に表示しても良い。
【０１２２】
制御部１６３は、記憶部１６１に登録されたディスク装置情報３４１に含まれている複数のファームウェアバージョンと、ファームウェアグループ３２４Ａに含まれている交換対象バージョンリスト３２７に記載の１以上のリスト記載旧バージョンとを比較する（Ｓ５５）。
【０１２３】
Ｓ５５の結果、複数のファームウェアバージョンの少なくとも１つが、１以上のリスト記載旧バージョンの少なくとも１つに適合（例えば一致）した場合（Ｓ５６でＹ）、制御部１６３は、その旧バージョンファームウェアバージョンを持った稼動中ディスク型記憶装置３００Ｂを管理しているディスク制御部（例えば１４０Ｃ）に、その稼動中ディスク型記憶装置３００ＢのディスクＩＤと、記憶部１６１に登録されている新バージョンファームウェア３２５Ａとを転送する（Ｓ５７）。
【０１２４】
ディスク制御部１４０Ｃは、受信したディスクＩＤを有する稼動中ディスク型記憶装置３００Ｂに、ＳＶＰ１６０から受信した新バージョンファームウェア３２５Ａを転送する（Ｓ５８）。
【０１２５】
新バージョンファームウェア３２５Ａを受けた稼動中ディスク型記憶装置３００Ｂのリードライト制御部３２３Ｂは、上述したＳ２８及びＳ２９の処理を行う（Ｓ５９及びＳ６０）。
【０１２６】
以上、上述した実施形態によれば、新バージョンファームウェア３２５Ａ及び交換対象バージョンリスト３２４Ａを有する新ディスク型記憶装置３００Ａを記憶制御システム６００に装着しさえすれば、複数の稼動中ディスク型記憶装置３００Ｂにそれぞれ対応した複数のファームウェアのうち、交換対象バージョンリスト３２４Ａに書かれたリスト記載旧バージョン（例えば「VV1-RR3」）のファームウェア３２５Ｂが自動的に新バージョンファームウェア３２５Ａに更新される。もっと抽象的に言えば、新たに装着されたディスク型記憶装置３００Ａから新バージョンファームウェア３２５Ａが読み出され、既に装着されている稼動中ディスク型記憶装置３００Ｂ内の旧バージョンファームウェアは、その読み出された新バージョンファームウェア３２５Ａに更新される。これにより、効率的に（例えば、故障したディスク型記憶装置を新品のディスク型記憶装置に交換するのと一緒に）、稼動中ディスク型記憶装置３００Ｂのファームウェアを更新することができる。また、上述した実施形態によれば、ディスク型記憶装置３００Ａを装着するだけで旧バージョンファームウェアが新バージョンファームに更新されるので、特開平１１−１３４１１４号公報のように、基準ディスクのファームウェアを新バージョンファームウェアに更新するといった別段の処理は必要無い。
【０１２７】
また、上述した（３）のファームウェア更新処理（すなわち、新ディスク型記憶装置３００ＡからＳＶＰ１６０を介して稼動中ディスク型記憶装置３００Ｂに新バージョンファームウェア３２５Ａを格納する処理）に比べて、上述した（１）又は（２）のファームウェア更新処理（すなわち、新ディスク型記憶装置３００ＡからＣＭ１３０又はＳＭ１２０を介して稼動中ディスク型記憶装置３００Ｂに新バージョンファームウェア３２５Ａを格納する処理）の方が、より効率的であると考えられる。なぜなら、（３）のファームウェア更新処理では、ＳＶＰ１６０を操作する人間を必要とし、また、新ディスク型記憶装置３００Ａの使用が開始された後はそれを使用しているユーザの承諾を得てからでないとファームウェア更新処理が行えない場合があるが、（１）又は（２）のファームウェア更新処理は、新ディスク型記憶装置３００Ａを装着した場合に自動的に行なわれるので、（３）のファームウェア更新処理のような煩わしさは無いからである。
【０１２８】
ところで、この実施形態には、幾つかの変形例が考えられる。以下、幾つかの変形例について説明する。なお、以下の説明では、上述した実施形態との相違点を主に説明し、共通点については、説明の重複を避けるために、説明を省略又は簡略する。
【０１２９】
（Ａ）第１変形例。
【０１３０】
図９は、本実施形態の第一変形例に係るディスク型記憶装置の構成を示す。
【０１３１】
例えば、稼動中ディスク型記憶装置３００Ｂのディスク情報記憶領域３１７Ｂには、その稼動中ディスク型記憶装置３００Bに関するディスク属性情報３８３Ｂが記憶されている。ディスク属性情報３８３Ｂは、例えば、そのディスク型記憶装置３００Ｂのベンダ（又はメーカ）、機種及びＯＳ属性（例えば、ＯＳの種類或いはバージョン）の少なくとも１つを含んでいる。
【０１３２】
また、例えば、新ディスク型記憶装置３００Ａのディスク情報記憶領域３１７Ａには、その新ディスク型記憶装置３００Ａに関するディスク属性情報３８３Ａが記憶されている。ディスク属性情報３８３Ａは、例えば、その新ディスク型記憶装置３００Ａのベンダ（又はメーカ）、機種及びＯＳ属性（例えば、ＯＳの種類或いはバージョン）の少なくとも１つを含んでいる。
【０１３３】
また、新ディスク型記憶装置３００Ａのファームウェアグループ３２４Ａには、交換可能ディスク属性情報グループ（以下、「属性グループ」と略記）３８１が含まれている。属性グループ３８１は、新バージョンファームウェア３２５Ａが動作することができるディスク型記憶装置３００に関する１以上のディスク属性情報を含んでいる。各ディスク属性情報は、例えば、それを有するディスク型記憶装置３００のベンダ（又はメーカ）、機種及びＯＳ属性の少なくとも１つである。
【０１３４】
以下、この第１変形例において、旧バージョンファームウェア３２５Ｂが新バージョンファームウェア３２５Ａに更新される場合の処理流れを説明する。
【０１３５】
（Ａ−１）新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＣＭ１３０に読み出された場合。
【０１３６】
図１０は、本実施形態の第１変形例において、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＣＭ１３０に読み出された場合に行われるファームウェア更新処理流れを示す。
【０１３７】
ＣＭ１３０に確保されたキャッシュ領域１３０Ａにファームウェアグループ３２４Ａが読み出されるので、そのキャッシュ領域１３０Ａに、属性グループ３８１が記憶される。
【０１３８】
チャネル制御部１４０Ｃのディスク型メモリ１１５（又はＤＫＰメモリ１２２）には、チャネル制御部１４０Ｃと同一のファイバチャネルループ３９０に接続された２以上のディスク型記憶装置３００に関するディスク装置情報３８３が格納される。ディスク装置情報３８３は、例えば、それら２以上のディスク型記憶装置３００にそれぞれ対応した２以上のディスクＩＤ、ファームウェアバージョン、及びディスク属性情報（ディスク型記憶装置のベンダ、機種及びＯＳ属性の少なくとも１つ）を含んでいる。このディスク装置情報３８３は、ＳＶＰ１６０等を使用するユーザによって予め登録されても良いし、ディスク制御部１４０ＣのＤＫＰ１２３によって自動的に取得されたものであっても良い。後者の場合、ＤＫＰ１２３が、例えば、ＳＣＳＩプロトコルに基づくInquiryコマンドを、２以上のディスク型記憶装置３００に送信し、それに応答して２以上のディスク型記憶装置３００からそれぞれ受信した２以上のディスクＩＤ、ファームウェアバージョン及びディスク属性情報を基に、ディスク装置情報３８３をディスク型メモリ１１５に登録する。
【０１３９】
ディスク制御部１４０Ｃ上のＤＫＰ１２３は、ＳＭ１２０上のＤＫＡ記憶領域３３７Ｃからファームウェア更新命令を取得した場合、ＣＭ１３０に確保されたキャッシュ領域１３０Ａからファームウェアグループ３２４Ａを読み出し、そのファームウェアグループ３２４Ａをディスク側メモリ１１５に登録する（Ｓ７３）。
【０１４０】
ＤＫＰ１２３は、ホスト端末２００Ａ〜２００ＤからのＩ／Ｏ要求の処理中で無い場合（Ｓ７４でＮ）、ディスク制御部１４０Ｃと同一のファイバチャネルループ３９０に接続された２以上の稼動中ディスク型記憶装置３００Ｂにそれぞれ対応した２以上の旧バージョンファームウェアバージョン（ディスク側メモリ１１５に登録された２以上の旧バージョンファームウェアバージョン）と、ファームウェアグループ３２４Ａに含まれている交換対象バージョンリスト３２７に記載の１以上のリスト記載旧バージョンとを比較する。また、それと共に、ＤＫＰ１２３は、２以上の稼動中ディスク型記憶装置３００Ｂにそれぞれ対応した２以上のディスク属性情報（ディスク側メモリ１１５に登録された２以上のディスク属性情報）と、属性グループ３８１に含まれる１以上のディスク属性情報とを比較する（Ｓ２５）。
【０１４１】
Ｓ２５の結果、２以上の旧バージョンファームウェアバージョンの少なくとも１つが、１以上のリスト記載旧バージョンの少なくとも１つに適合し、且つ、その適合した旧バージョンのファームウェアを持つディスク型記憶装置３００のディスク属性情報が、属性グループ３８１に含まれる１以上のディスク属性情報の少なくとも１つに適合した場合（Ｓ２６でＹ）、上述したＳ２７〜Ｓ２９の処理が行われる（Ｓ７７〜Ｓ７９）。
【０１４２】
（Ａ−２）新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＭ１２０に読み出された場合。
【０１４３】
図１１は、本実施形態の第１変形例において、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＭ１２０に読み出された場合に行われるファームウェア更新処理流れを示す。以下、（Ａ−１）のファームウェア更新処理流れとの相違点を主に説明し、共通点については、説明の重複を避けるために簡略又は省略する。
【０１４４】
ディスク制御部１４０Ｃ上のＤＫＰ１２３は、ＤＫＡ記憶領域３３７Ｃからファームウェア更新命令を取得した場合、そのＤＫＡ記憶領域３３７Ｃからファームウェアグループ３２４Ａを読み出し、そのファームウェアグループ３２４Ａをディスク側メモリ１１５に登録する（Ｓ４３）。
【０１４５】
以後、上述したＳ７４〜Ｓ８０の処理が行われる（Ｓ８４〜Ｓ９０）。
【０１４６】
（Ａ−３）新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＶＰ１６０に読み出された場合。
【０１４７】
図１２は、本実施形態の第１変形例において、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＶＰ１６０に読み出された場合に行われるファームウェア更新処理流れを示す。
【０１４８】
上述したＳ５１〜Ｓ５２の処理が行われる（Ｓ１０１〜Ｓ１０２）。ディスク情報収集コマンドを受けた各ディスク型記憶装置３００のリードライト制御部３２３Ａ又は３２３Ｂは、そのディスク型記憶装置３００のディスクＩＤ、ファームウェアバージョン及びディスク属性情報を取得し、取得したディスクＩＤ、ファームウェアバージョン及びディスク属性情報を、同一のファイバチャネルループ３９０に接続されているディスク制御部に送信する。ディスク制御部１４０Ａ〜１４０Ｄは、受信したディスクＩＤ、ファームウェアバージョン及びディスク属性情報をＳＶＰ１６０に送信する（Ｓ１０３）。
【０１４９】
ＳＶＰ１６０の制御部１６３は、記憶部１６１上に、受信した各ディスク属性情報毎のサブ記憶領域３８７、３８７、…を確保する。そして、制御部１６３は、各ディスク属性情報毎のサブ記憶領域３８７に、そのディスク属性情報（例えば、ディスク型記憶装置のベンダ、機種及びＯＳ属性の少なくとも１つ）を有する１以上のディスク型記憶装置のディスクＩＤ及びファームウェアバージョンを登録する。また、制御部１６３は、各ディスク属性情報と、属性グループ３８１に含まれる１以上のディスク属性情報とを比較し、適合があれば、その適合があったディスク属性情報に対応する１以上のサブ記憶領域３８７に、交換対象バージョンリスト３２７及び新バージョンファームウェア３２５Ａを格納する（Ｓ１０４）。
【０１５０】
次に、制御部１６３は、交換対象バージョンリスト３２７及び新バージョンファームウェア３２５Ａを記憶しているサブ記憶領域３８７について、そのサブ記憶領域３８７に登録されている１以上の旧バージョンと、１以上のリスト記載旧バージョンとを比較する（Ｓ１０５）。
【０１５１】
Ｓ１０５の結果、１以上の旧バージョンの少なくとも１つが、１以上のリスト記載旧バージョンの少なくとも１つに適合した場合（Ｓ５６でＹ）、上述したＳ５７〜Ｓ６０の処理が行われる（Ｓ１０７〜Ｓ１１０）。
【０１５２】
なお、制御部１６３は、記憶部１６１に各ディスク属性情報毎のサブ記憶領域３８７を準備する以外の方法で、更新対象の旧バージョンファームウェアがどれであってそれがどのディスク型記憶装置３００Ｂに格納されているかを判別しても良い。例えば、制御部１６３は、（Ａ−１）又は（Ａ−２）におけるディスク制御部１４０ＣのＤＫＰ１２３と同様の方法で、そのような判別を行っても良い。
【０１５３】
以上、上述した第１変形例によれば、旧バージョンがどのようなものであるのかだけでなく、稼動中ディスク型記憶装置３００Ｂのディスク属性情報がどのようなものであるのかに応じて、その稼動中ディスク型記憶装置３００Ｂに新バージョンファームウェア３２５Ａが格納されるか否かが制御される。これにより、記憶制御システム６００に、ディスク属性情報（例えば、ベンダ、機種及びＯＳ属性の少なくとも１つ）が異なる複数のディスク型記憶装置３００が混在していても、適切に、新バージョンファームウェア３２５Ａを稼動中ディスク型記憶装置３００Ｂに搭載することができる。
【０１５４】
（Ｂ）第２変形例。
【０１５５】
図１３は、本実施形態の第２変形例における稼動中ディスク型記憶装置３００Ｂの構成と、その稼動中ディスク型記憶装置３００Ｂのリードライト制御部３２３Ｂが行う処理流れを示す。
【０１５６】
この第２変形例では、旧バージョンファームウェアが多重化（例えば二重化）されており、１つの旧バージョンファームウェアが動作できなくても別の旧バージョンファームウェアが動作することで、稼動中ディスク型記憶装置３００Ｂが動作するようになっている。
【０１５７】
複数の稼動中ディスク型記憶装置３００Ｂの少なくとも１つのリードライト制御部３２３Ｂには、複数の旧バージョンファームウェア、例えば、第１旧バージョンファームウェア３２５Ｂ１と、第２旧バージョンファームウェア３２５Ｂ２とがある。これらの旧バージョンファームウェアは、図示のように、ファームウェアグループ記憶領域３１９Ｂに記憶されている２つの旧バージョンファームウェア３２５Ｂ１、３２５Ｂ２がそれぞれ読み出されたものであっても良いし、図示しないが、１つのファームウェア３２５Ｂから得られたものであっても良い。
【０１５８】
リードライト制御部３２３Ｂは、例えば、第１旧バージョンファームウェア３２５Ｂ１が動作しない場合は、第２旧バージョンファームウェア３２５Ｂ２を使用して動作することができる。
【０１５９】
このような稼動中ディスク型記憶装置３００Ｂに、新バージョンファームウェア３２５Ａが転送されて来た場合、その記憶装置３００Ｂのリードライト制御部３２３Ｂは、以下のように動作する。
【０１６０】
すなわち、リードライト制御部３２３Ｂは、新バージョンファームウェアを取得した場合（Ｓ１２１）、第１の旧バージョンファームウェア３２５Ｂ１が動作中（例えば、Ｉ／Ｏ要求の処理中）であるならば（Ｓ１２２でＹ）、動作していない第２の旧バージョンファームウェア３２５Ｂ２（ファームウェアグループ記憶領域３１９Ｂ上の第２旧バージョンファームウェア３２５Ｂ２）を、新バージョンファームウェア３２５Ａに更新する（Ｓ１２３）。そして、第１の旧バージョンファームウェア３２５Ｂ１の動作が終了したならば（Ｓ１２４でＹ）、リードライト制御部３２３Ｂは、その第１の旧バージョンファームウェア３２５Ｂ１（ファームウェアグループ記憶領域３１９Ｂ上の第１旧バージョンファームウェア３２５Ｂ１）も新バージョンファームウェア３２５Ａに更新する（Ｓ１２５）。
【０１６１】
Ｓ１２２において、第１と第２の旧バージョンファームウェア３２５Ｂ１、３２５Ｂ２が共に動作中でなければ（Ｓ１２２でＮ）、リードライト制御部３２３Ｂは、ファームウェアグループ記憶領域３１９Ｂ上の第１と第２の旧バージョンファームウェア３２５Ｂ１、３２５Ｂ２を新バージョンファームウェア３２５Ａに更新する（Ｓ１２６）。
【０１６２】
Ｓ１２５又はＳ１２６の後、リードライト制御部３２３Ｂは、再起動を実行する（Ｓ１２７）。それにより、リードライト制御部３２３Ｂが使用することになる２つのファームウェアは、いずれも、新バージョンファームウェア３２５Ａである。
【０１６３】
この第２変形例によれば、多重化された旧バージョンファームウェアの少なくとも１つが動作中であっても、その旧バージョンファームウェアの動作を妨げることなく、旧バージョンファームウェアを新バージョンファームウェアに更新することができる。
【０１６４】
なお、この第２変形例において、例えば、リードライト制御部３２３Ｂの２つの旧バージョンファームウェア３２５Ｂ１、３２５Ｂ２が１つの旧バージョンファームウェアから生成された場合、２つの旧バージョンファームウェア３２５Ｂ１，３２５Ｂ２の双方又は一方が動作中でない場合に、ファームウェアグループ記憶領域３１９Ｂ上のその１つの旧バージョンファームウェアが新バージョンファームウェア３２５Ａに更新されても良い。
【０１６５】
（Ｃ）第３変形例。
【０１６６】
図１４は、本実施形態の第３変形例に係るリードライト制御部３２３Ｂの処理流れを示す。
【０１６７】
稼動中ディスク型記憶装置３００Ｂのリードライト制御部３２３Ｂは、オリジナルの旧バージョンファームウェア３２５Ｂから、旧バージョンファームウェア３２５Ｂの複製を作成し（例えば、同一のファームウェアグループ記憶領域３１９Ｂ内に作成し）、オリジナルの旧バージョンファームウェア３２５Ｂを、転送されて来る新バージョンファームウェア３２５Ａに更新する処理を開始する（Ｓ１４１）。
【０１６８】
リードライト制御部３２３Ｂは、オリジナルの旧バージョンファームウェア３２５Ｂを新バージョンファームウェア３２５Ａに更新することに成功したならば（Ｓ１４２でＮ）、旧バージョンファームウェア３２５Ｂの複製を破棄して（Ｓ１４３）、再起動を実行する（Ｓ１４５）。
【０１６９】
一方、リードライト制御部３２３は、新バージョンファームウェア３２５Ａの転送に失敗する等の原因により、オリジナルの旧バージョンファームウェア３２５Ｂを新バージョンファームウェア３２５Ａに更新することに失敗した場合（Ｓ１４２でＹ）、旧バージョンファームウェア３２５Ｂの複製を用いてオリジナルの旧バージョンファームウェア３２５Ｂを復帰して（例えば、旧バージョンファームウェア３２５Ｂの複製をオリジナルの旧バージョンファームウェア３２５Ｂにして）（Ｓ１４４）、再起動を実行する（Ｓ１２５）。
【０１７０】
この第３変形例によれば、オリジナルの旧バージョンファームウェア３２５Ｂを新バージョンファームウェア３２５Ａに更新することに失敗があっても、旧バージョンファームウェア３２５Ｂの複製を用いて旧バージョンファームウェア３２５Ｂが復帰するので、その失敗後も、同一の稼動中ディスク型記憶装置３００Ｂを使用することが可能である。
【０１７１】
（Ｄ）第４変形例。
【０１７２】
図１５は、本実施形態の第４変形例に係る処理流れを示す。
【０１７３】
本実施形態の第４変形例では、ＣＭ１３０又はＳＭ１２０に読み出された新バージョンファームウェア３２５Ａを取得して旧バージョンファームウェア３２５Ｂを更新することに失敗しても、ＳＶＰ１６０から新バージョンファームウェア３２５Ａを取得して旧バージョンファームウェア３２５Ｂを更新することができるようになっている。
【０１７４】
例えば、稼動中ディスク型記憶装置３００Ｂのリードライト制御部３２３Ｂが、受信する新バージョンファームウェア３２５Ａに含まれているデータコード（例えばＣＲＣ（Cyclic Redundancy Check）コード）を用いて、新バージョンファームウェア３２５Ａの受信及び更新に成功したか否かを判別する（Ｓ１５１）。
【０１７５】
Ｓ１５１の結果、受信及び更新に成功していれば、リードライト制御部３２３Ｂは、再起動を実行する（Ｓ１５８）。
【０１７６】
一方、Ｓ１５１の結果、受信及び更新の少なくともいずれかで失敗があれば、その稼動中ディスク型記憶装置３００Ｂと同一のファイバチャネルループ３９０に接続されているディスク制御部が、ＳＶＰ１６０に、ファームウェア更新失敗を通知する（Ｓ１５３）。
【０１７７】
ファームウェア更新失敗の通知を受けたディスク制御部は、そのディスク制御部に接続された複数のディスク型記憶装置３００Ｂがそれぞれ有する複数の旧バージョンファームウェアバージョンと、交換対象バージョンリスト３２７に書かれている１以上のリスト記載旧バージョンとを比較する（Ｓ１５４）。その結果、それら複数の旧バージョンファームウェアバージョンの少なくとも１つが、１以上のリスト記載旧バージョンの少なくとも１つに適合すれば、適合した旧バージョンのファームウェアを有するディスク型記憶装置３００Ｂに、ディスク制御部を介して新バージョンファームウェア３２５Ａを転送する（Ｓ１５６、Ｓ１５７）。この後、Ｓ１５１が行われ、Ｓ１５２でＮとなれば、稼働中ディスク型記憶装置３００Ｂが再起動を実行し、新バージョンファームウェア３２５Ａを用いて動作する。
【０１７８】
この第４変形例によれば、ＣＭ１３０又はＳＭ１２０に読み出された新バージョンファームウェア３２５Ａを取得して旧バージョンファームウェア３２５Ｂを更新することに失敗しても、ＳＶＰ１６０から新バージョンファームウェア３２５Ａを取得して旧バージョンファームウェア３２５Ｂを更新することができる。
【０１７９】
（Ｅ）第５変形例。
【０１８０】
図１６は、本実施形態の第５変形例に係る処理流れを示す。
【０１８１】
記憶制御システム６００に新ディスク型記憶装置３００Ａが装着されたことが検出された場合（Ｓ１７１）、装着された新ディスク型記憶装置３００Ａが複数個でなければ（Ｓ１７２でＮ）、上述した図５のＳ８の処理が行われる（Ｓ１７３）。
【０１８２】
Ｓ１７２において複数個であれば（Ｓ１７２でＹ）、それら複数個の新ディスク型記憶装置３００Ａが、同一のＲＡＩＤグループ２を構成するものか否かが、新ディスク型記憶装置３００Ａの装着を検出したディスク制御部によって判断される（Ｓ１７４）。
【０１８３】
Ｓ１７４において、装着された複数個の新ディスク型記憶装置３００Ａが同一のＲＡＩＤグループ２に含まれるものでなければ、装着された全ての新ディスク型記憶装置３００Ａに対して図５のＳ８が行われる（Ｓ１７５）。
【０１８４】
Ｓ１７４において、装着された複数個の新ディスク型記憶装置３００Ａが同一のＲＡＩＤグループ２に含まれるものであれば、そのＲＡＩＤグループ２から選択された１つの新ディスク型記憶装置３００Ａに対して図５のＳ８が行われる（Ｓ１７６）。
【０１８５】
以上、本発明の実施形態及び変形例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこの実施形態及び変形例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【図面の簡単な説明】
【０１８６】
【図１】本発明の一実施形態に係る記憶制御システムの外観の概略を示す。
【図２】本発明の一実施形態に係る記憶システムの全体構成例を示す。
【図３】本実施形態に係るディスク制御部１４０Ａの構成例を示す。
【図４】１つのディスク制御部と複数のディスク型記憶装置との接続機構を示す。
【図５】ディスク型記憶装置３００が記憶制御システム６００に新たに装着されたこと場合に行われるファームウェアグループ読出し処理の流れを示す。
【図６】新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＣＭ１３０に読み出された場合に行われるファームウェア更新処理流れを示す。
【図７】新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＭ１２０に読み出された場合に行われるファームウェア更新処理流れを示す。
【図８】新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＶＰ１６０に読み出された場合に行われるファームウェア更新処理流れを示す。
【図９】本実施形態の第一変形例に係るディスク型記憶装置の構成を示す。
【図１０】本実施形態の第１変形例において、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＣＭ１３０に読み出された場合に行われるファームウェア更新処理流れを示す。
【図１１】本実施形態の第１変形例において、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＭ１２０に読み出された場合に行われるファームウェア更新処理流れを示す。
【図１２】本実施形態の第１変形例において、新ディスク型記憶装置３００Ａ内のファームウェアグループ３２４ＡがＳＶＰ１６０に読み出された場合に行われるファームウェア更新処理流れを示す。
【図１３】本実施形態の第２変形例における稼動中ディスク型記憶装置３００Ｂの構成と、その稼動中ディスク型記憶装置３００Ｂのリードライト制御部３２３Ｂが行う処理流れを示す。
【図１４】本実施形態の第３変形例に係るリードライト制御部３２３Ｂの処理流れを示す。
【図１５】本実施形態の第４変形例に係る処理流れを示す。
【図１６】本実施形態の第５変形例に係る処理流れを示す。
【符号の説明】
【０１８７】
１…記憶システム、２…ＲＡＩＤグループ、１０…基本筐体、１２…増設筐体、１００…記憶制御装置、１０１…記憶装置ユニット、１０２…記憶制御サブシステム、１１０Ａ〜１１０Ｄ…チャネル制御部、１２０…共有メモリ、１３０…キャッシュメモリ、１４０Ａ〜１４０Ｄ…ディスク制御部、１６０…保守用端末、２００Ａ〜２００Ｄ…ホスト端末、３００…ディスク型記憶装置、３１０…論理ユニット、３２５Ａ…新バージョンファームウェア、３２５Ｂ…旧バージョンファームウェア、３２７…交換対象旧バージョンリスト、３９０…ファイバチャネルループ、６００…記憶制御システム
【図１】
2005242555.tif 000003
【図２】
2005242555.tif 000004
【図３】
2005242555.tif 000005
【図４】
2005242555.tif 000006
【図５】
2005242555.tif 000007
【図６】
2005242555.tif 000008
【図７】
2005242555.tif 000009
【図８】
2005242555.tif 000010
【図９】
2005242555.tif 000011
【図１０】
2005242555.tif 000012
【図１１】
2005242555.tif 000013
【図１２】
2005242555.tif 000014
【図１３】
2005242555.tif 000015
【図１４】
2005242555.tif 000016
【図１５】
2005242555.tif 000017
【図１６】
2005242555.tif 000018