以下、本発明の一実施の形態を、図面を参照して詳細に説明する。なお、これにより本発明が限定されるものではない。
図1は、本実施の形態によるストレージシステム1の構成の一例を示している。ストレージシステム1は、ホスト装置2、ディスクアレイ装置3及び管理端末4を備えて構成されている。ストレージシステム1は、ホスト装置2及びディスクアレイ装置3がSAN(Storage Area Network)等のネットワーク6を介して接続されている。また、ストレージシステム1は、ディスクアレイ装置3及び管理端末4がLAN(Local Area Network)等のネットワーク7を介して接続されている。
ホスト装置2は、例えば、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等により構成されている。また、ホスト装置2は、例えば、キーボードやポインティングデバイス、マイクロフォン等の情報入力装置(図示せず)や、例えば、モニタディスプレイやスピーカ等の情報出力装置(図示せず)を備えて構成されている。さらに、ホスト装置2は、例えば、ディスクアレイ装置3が提供する記憶領域を使用してデータの送受信を制御するアプリケーションプログラムや、ディスクアレイ装置3のボリューム46(後述)のバックアップを実施するバックアッププログラム、ネットワーク6を介してディスクアレイ装置3にアクセスするためのアダプタ(図示せず)等を備えて構成されている。
ディスクアレイ装置3は、基本筐体11及び増設筐体12を備えて構成されている。ディスクアレイ装置3は、基本筐体11及び増設筐体12や増設筐体12同士がSAS(Serial Attached SCSI)やSAN、WAN(World Area Network)等のネットワーク13を介して接続されている。
基本筐体11は、第1のコントローラ部21、第2のコントローラ部22及び記憶部23を備えて構成されている。基本筐体11は、コントローラ部を最低1つ備えている必要がある。本実施の形態では、信頼性向上のため、冗長度を有するように同一のディスク装置45(後述)に対して第1のコントローラ部21、第2のコントローラ部22の2つのコントローラ部を備えている。第1のコントローラ部21、第2のコントローラ部22は、ディスクアレイ装置3全体を制御して、ホスト装置2と記憶部23又は増設筐体12との間でデータの送受信を行う。記憶部23は、第1のコントローラ部21、第2のコントローラ部22から送信されるデータを格納するディスク装置45(後述)から構成されている。
増設筐体12は、第1のエンクロージャ(ENC)31、第2のエンクロージャ32及び記憶部33を備えて構成されている。増設筐体12は、エンクロージャを最低1つ備えている必要がある。本実施の形態では、信頼性向上のため、冗長度を有するように同一のディスク装置45(後述)に対して第1のエンクロージャ31、第2のエンクロージャ32の2つのエンクロージャを備えている。第1のエンクロージャ31、第2のエンクロージャ32は、増設筐体12全体を制御して、第1のコントローラ部11、第2のコントローラ部12と自己の増設筐体12の記憶部33又は他の増設筐体12との間でデータの送受信を行う。記憶部33は、第1のエンクロージャ31、第2のエンクロージャ32から送信されるデータを格納するディスク装置45(後述)から構成されている。
管理端末4は、例えば、ノート型のパーソナルコンピュータなどから構成されている。なお、管理端末4の詳細な構成については、後述する。管理端末4は、基本筐体11及び増設筐体12のファームウェア99(後述)を更新するためのダウンロードデータを基本筐体11に送信し、当該ファームウェア99(後述)を更新するタイミングを決定する等のディスクアレイ装置3の管理を行う。
図2は、基本筐体11の構成の一例を示している。なお、第2のコントローラ部22については、第1のコントローラ部21と同様の構成であるため、図2では記載していない。第1のコントローラ部21は、ホストI/F41、RAID(Redundant Arrays of Independent Disks)制御部42、管理I/F43及びバックエンドI/F44を備えて構成されている。また、記憶部23は、ファイバチャネル、SAS、SATA(Serial ATA)等のディスク装置45を備えて構成されている。
ホストI/F41は、ホスト装置2とネットワーク5を介して接続され、ホスト装置2から送信される各種コマンドやデータの送受信を制御する。ホストI/F41は、ネットワーク5の種類に応じた種々のインタフェースを用いることができる。
RAID制御部42は、CPU51、キャッシュメモリ52、タイマ53及びローカルメモリ54を備えて構成されている。
CPU51は、コントローラ部ごとに1つ備えられる。CPU51は、各種のプログラムを実行することにより、第1のコントローラ部21全体を制御し、例えば、ホストI/F41から送信されたコマンドを解釈して、各構成要素に指示を送信する。また、CPU51は、ディスク装置45に対して、RAID制御を行うことにより、ディスクアレイ装置3の信頼性、可用性及び性能を向上させることができる。
この場合、CPU51は、ディスク装置45をRAID方式で運用する。CPU51は、1又は複数のディスク装置45により提供される物理的な記憶領域(RAIDグループ)上に、1又は複数の論理的なボリューム46(以下、これをボリューム(LU :Logical Unit)と呼ぶ)を設定する。そして、データは、このボリューム内に所定の大きさのブロック(以下、これを論理ブロックと呼ぶ)単位で記憶される。
各ボリューム46には、それぞれ固有の識別子(以下、これをLUN(Logical Unit number)と呼ぶ)が付与される。本実施の形態の場合、データの入出力は、このLUNと、各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号(LBA :Logical Block Address)とを組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
キャッシュメモリ52は、ホスト装置2から受信したデータを一時的に格納したり、ディスクアレイ装置3内部で使用する各種テーブルを格納する。この場合、キャッシュメモリ52の一部は、第2のコントローラ部22との共有メモリとして使用されており、一方のコントローラ部が閉塞(故障)した場合に、正常な別のコントローラ部に情報を引き継ぐ。
タイマ53は、第1のコントローラ部21内部のクロックを管理するためのタイマである。ローカルメモリ54は、第1のコントローラ部21内部で使用する各種プログラムや、各種テーブルを格納する。
ローカルメモリ54には、RAID制御プログラム61、デバイスコマンド発行プログラム62、管理端末通信プログラム63、ENCマイクロダウンロード制御プログラム64、デバイス管理プログラム65、省電力制御プログラム66、デバイス管理テーブル67、電源停止予定情報68及び統計情報69が格納されている。
RAID制御プログラム61は、上述のように、ディスク装置45に対してRAID制御を行うプログラムである。デバイスコマンド発行プログラム62は、バックエンドI/F44や増設筐体12にコマンドを発行するプログラムである。管理端末通信プログラム63は、管理端末4と通信するプログラムである。ENCマイクロダウンロード制御プログラム64は、エクスパンダ73(後述)内のファームウェア99(後述)の更新を制御するプログラムである。デバイス管理プログラム65は、ディスカバリ制御プログラム70及びPHY制御プログラム71を備えて構成されている。ディスカバリ制御プログラム70は、ディスカバリコマンドに対する制御を行うプログラムである。PHY制御プログラム71は、エクスパンダ73内のPHY100(後述)を制御するプログラムである。デバイス管理テーブル67は、エクスパンダ73やディスク装置45、ボリューム46を管理するためのテーブルである。電源停止予定情報68は、省電力のためディスク装置45の電源を切る省電力モードに切り替わるディスク装置45の予定である。統計情報69は、所定時間におけるデータの送受信(I/O(Input/Output))を統計する情報である。なお、ローカルメモリ54には、この他、所定時間ごとに各エクスパンダ73のI/Oを統計する情報統計プログラム等の各種のプログラムが格納されている。
管理I/F43は、管理端末4とネットワーク6を介して接続され、管理端末4から送信される各種コマンドやデータの送受信を制御する。管理I/F43は、ネットワーク6の種類に応じた種々のインタフェースを用いることができる。
バックエンドI/F44は、SASコントローラ72及びエクスパンダ73を備えて構成されている。バックエンドI/F44は、記憶部23のディスク装置45又は増設筐体12と接続され、ホスト装置2から送信されるデータの送受信を制御する。バックエンドI/F44は、SASの他、ファイバチャネル、SATA(Serial ATA)等の種類に応じた種々のインタフェースを用いることができる。SASコントローラ72は、バックエンドI/F44全体を制御すると共に、ディスク装置45へのデータの書込みやディスク装置45からのデータの読出しを制御する。
図3は、エクスパンダ73の構成の一例を示している。エクスパンダ73は、プロセッサ81、スイッチ部82、メモリ83、不揮発メモリ84、デバイスI/F85を備えて構成されている。
プロセッサ81は、エクスパンダ73ごとに1つ備えられる。プロセッサ81は、各種のプログラムを実行することにより、エクスパンダ73全体を制御し、例えば、第1のコントローラ部21、第2のコントローラ部22から送信されたコマンドを解釈して、各構成要素に指示を送信する。スイッチ部82は、プロセッサ81の制御のもと、デバイスI/F85のPHY100(後述)をスイッチング制御する。
メモリ83には、制御プログラム91、デバイスI/F監視プログラム92、ブロードキャスト発行プログラム94、管理コマンド処理プログラム95及びデバイスI/F接続状態情報96が格納されている。また、メモリ83は、引継ぎ情報領域97を備える。
制御プログラム91は、エクスパンダ73全体を制御するプログラムである。デバイスI/F監視プログラム92は、デバイスI/F85のPHY100のI/O等を監視するプログラムである。ブロードキャスト発行プログラム94は、ブロードキャストコマンドを発行するプログラムである。管理コマンド処理プログラム95は、第1のコントローラ部21、第2のコントローラ部22から送信される管理コマンドを処理するプログラムである。デバイスI/F接続状態情報96は、デバイスI/F85のPHY100と第1のコントローラ部21、第2のコントローラ部22や増設筐体12のPHY100(後述)、記憶部23のディスク装置45との接続状態の情報である。引継ぎ情報領域97には、エクスパンダ73を初期化するときの各種の引継ぎ情報が格納される。
不揮発メモリ84は、プログラム格納領域98を備える。プログラム格納領域98には、エクスパンダ73のファームウェア99が格納されている。ファームウェア99は、ダウンロードデータ109(後述)がダウンロードされることにより、更新される。
デバイスI/F85は、複数のPHY100を備えて構成されている。PHY100は、第1のコントローラ部21、第2のコントローラ部22や増設筐体12のPHY100(後述)、記憶部23のディスク装置45と接続され、データの送受信を行う。
なお、増設筐体12の第1のエンクロージャ31、第2のエンクロージャ32は、図3と同様のエクスパンダ73を備えて構成されている。この場合、増設筐体12のPHY100は、基本筐体11のPHY100や増設筐体12のPHY100、記憶部33のディスク装置45と接続され、データの送受信を行う。
図4は、管理端末4の構成の一例を示している。管理端末4は、ネットワーク6を介してディスクアレイ装置3に接続するための管理ポート101と、プロセッサ102と、メモリ103と、ディスク装置(HDD: Hard Disk Drive)104と、後述するファームウェア99の更新タイミングを決定する画面を表示するためのディスプレイ装置等の出力部105と、管理者が指示を入力するためのキーボード等の入力部106とを有し、これらが内部バス等の回路を介して相互に接続される。
メモリ103には、ディスクアレイ装置3を管理する装置管理プログラム107、ディスクアレイ装置3の構成を管理する装置構成管理表108及び管理者がファームウェア99を更新するタイミングを指定するスケジュールデータ109が格納されている。装置管理プログラム107は、例えば、ディスクアレイ装置3から、構成情報を管理者からの要求に応じて取得し、出力部105を介してユーザに表示する。また、装置管理プログラム107は、取得した構成情報を装置構成管理表108に格納する。
ディスク装置104には、エクスパンダ73のファームウェア99を更新するためのダウンロードデータ110が格納されている。なお、ダウンロードデータ110は、所定の記録媒体等に格納されており、ディスクアレイ装置3に送信するときに、管理端末4に読み込むようにしても良い。
図5は、統計情報69の構成の一例を示している。統計情報69は、管理端末4の管理者がファームウェア99を更新するタイミングを決定するために参照する情報である。統計情報69は、時間欄69A、パス欄69B、ドライブ欄69C、IOPS(Input/Output Per Second)(1秒あたりのデータ送受信の頻度)欄69Dを備えて構成されている。時間欄69Aは、データがディスク装置45に格納された時間を管理する。パス欄69Bは、データがディスク装置45に格納されるときに通過したパス(複数のPHY100を束ねたもの)を管理する。ドライブ欄69Cは、データが格納されるドライブ(ディスク装置45)を管理する。IOPS欄69Dは、ドライブ欄69Cに格納されたディスク装置45のIOPSを管理する。
図6は、スケジュールデータ109の構成の一例を示している。スケジュールデータ109は、ファームウェア99を更新するエクスパンダ73ごとに、エクスパンダ73のユニット番号欄、エンクロージャ番号欄、種別欄、機能欄、日付欄、IOPS欄、継続時間欄、期限(日付)欄、期限(tick)欄、省電力モード欄等を備えて構成されている。例えば、所定の日付欄に「2008/07/22 05:00」が格納されている場合、当該日付欄に対応するエクスパンダ73は、2008年7月22日5:00にファームウェア99が更新される。また、所定のIOPS欄に「100以下」が格納されている場合、当該日付欄に対応するエクスパンダ73は、当該エクスパンダ73のIOPSが100以下のときにファームウェア99が更新される。また、所定の省電力モード欄に「オン」が格納されている場合、当該省電力モード欄に対応するエクスパンダ73は、当該エクスパンダ73のディスク装置45が省電力モードに移行するときにファームウェア99が更新される。
図7は、ダウンロードデータ110の構成の一例を示している。ダウンロードデータ110は、当該ダウンロードデータ110を制御する情報である制御情報110A及びファームウェア99を更新する実質的なデータであるプログラムデータ110Bを備えて構成されている。制御情報110Aは、制御データの他、ファームウェア99を更新した際にエクスパンダ73の初期化をするか否かの判定情報である初期化判定情報110Cを備えて構成されている。
図8は、ディスクアレイ装置3がダウンロードデータ110を受信して、エクスパンダ73のファームウェア99を更新する流れの一例を示している。なお、以下の説明において、プログラムが主語になる処理は、実際には、そのプログラムを実行するCPU51が行う処理である。
まず、管理端末通信プログラム63は、所定のタイミングで、管理端末4からダウンロードデータ110を受信して(図8(1))、ENCマイクロダウンロード制御プログラム64を起動する(図8(2))。続いて、ENCマイクロダウンロード制御プログラム64は、管理端末通信プログラム63からダウンロードデータ110を受信すると(図8(2))、ファームウェア99を更新するタイミングで、デバイスコマンド発行プログラム62を起動する(図8(3))。そして、デバイスコマンド発行プログラム62は、ダウンロードデータ110を該当するエクスパンダ73に送信する(図8(4))。そして、ダウンロードデータ110を受信したエクスパンダ73は、ダウンロードデータ110をダウンロードして、ファームウェア99を更新する。
図9は、このストレージシステム1におけるディスクアレイ装置3のファームウェア更新指示処理に関する、ディスクアレイ装置3のCPU51の具体的な処理手順を示したフローチャートの一例である。
ENCマイクロダウンロード制御プログラム64は、管理端末通信プログラム63を介して、管理端末4からダウンロードデータ110を受信すると、図9に示すファームウェア更新指示処理手順RT1に従って、ダウンロードデータ110の初期化要否情報110Cを参照することにより、エクスパンダ73がダウンロードデータ110をダウンロードしてファームウェア99を更新した後に、エクスパンダ73の初期化が必要であるか否かをチェックする(SP1)。なお、エクスパンダ73の初期化が必要であるか否かをチェックは、管理端末4が行うようにしても良い。
そして、ENCマイクロダウンロード制御プログラム64は、ダウンロードデータ110が初期化が必要でない情報であり、ファームウェア99を更新した後にエクスパンダ73の初期化が必要でない場合(SP1:NO)には、管理端末通信プログラム63を介して、エクスパンダ73の初期化が不要である旨を管理端末4に通知する(SP2)。
続いて、ENCマイクロダウンロード制御プログラム64は、管理端末4から初期化不要のファームウェア99の更新を指示されるのを待機モードで待ち受ける(SP3)。そして、ENCマイクロダウンロード制御プログラム64は、管理端末4から初期化不要のファームウェア99の更新を指示されると(SP3:YES)、該当するエクスパンダ73にダウンロードデータ110を送信し、初期化不要のファームウェア99の更新を指示し(SP4)、この後、図9に示すファームウェア更新指示処理手順RT1を終了する(SP6)。
これに対して、ENCマイクロダウンロード制御プログラム64は、ダウンロードデータ110が初期化が必要であるデータであり、ファームウェア99を更新した後にエクスパンダ73の初期化が必要である場合(SP1:YES)には、電源停止予定情報68及び統計情報69を管理端末4に送信し、エクスパンダ73の初期化が必要である旨を管理端末4に通知する(SP5)。
続いて、ENCマイクロダウンロード制御プログラム64は、初期化が必要な場合のファームウェア更新指示処理を実施する(RT2)。やがて、ENCマイクロダウンロード制御プログラム64は、この後、図9に示すファームウェア更新指示処理手順RT1を終了する(SP6)。なお、初期化が必要な場合のファームウェア更新指示処理の詳細については、後述する。
図10は、このストレージシステム1におけるディスクアレイ装置3の初期化が必要な場合のファームウェア更新指示処理に関する、ディスクアレイ装置3のCPU51の具体的な処理手順を示したフローチャートの一例である。
ENCマイクロダウンロード制御プログラム64は、管理端末通信プログラム63を介して、エクスパンダ73の初期化が必要である旨を管理端末4に通知すると(SP5)、図10に示す初期化が必要な場合のファームウェア更新指示処理手順RT2に従って、管理端末4から即時にファームウェア99を更新するように指示されたか否かをチェックする(SP11)。
この場合、管理端末4は、ディスクアレイ装置3からエクスパンダ73の初期化が必要である旨を通知されると、図11に示す選択画面111を出力部105の表示画面に表示する。
図11は、管理端末4の出力部105の表示画面に表示される、ダウンロードデータ110のダウンロード方法を選択する選択画面111の構成の一例を示している。選択画面111は、例えば、「省電力機能により電源を切る際にダウンロードを実行します。」、「冗長度がなくなることを承知で即座にダウンロードを実行します。」及び「性能への影響を考慮してダウンロードを実施します。」の3つの選択肢を管理者が選択することができるように表示されている。
そして、管理端末4は、管理者の操作により、「冗長度がなくなることを承知で即座にダウンロードを実行します。」のチェックボックスがチェックされ、その後、図示しない決定ボタンが押下されると、即時にファームウェア99を更新するようにディスクアレイ装置3に指示する。
そして、ENCマイクロダウンロード制御プログラム64は、管理端末4から即時にファームウェア99を更新するように指示された場合(SP11:YES)には、ステップSP18に進む。これに対して、ENCマイクロダウンロード制御プログラム64は、管理端末4から即時にファームウェア99を更新するように指示されていない場合(SP11:NO)には、スケジュールデータ109を受信し、管理端末4から所定の時間にファームウェア99を更新するように指示されたか否かをチェックする(SP12)。
この場合、管理端末4は、ディスクアレイ装置3からエクスパンダ73の初期化が必要である旨を通知されると、選択画面111を出力部105の表示画面に表示する。続いて、管理端末4は、管理者の操作により、「性能への影響を考慮してダウンロードを実施します。」のチェックボックスがチェックされ、その後、「次へ」のボタンが押下されると、図12に示す選択画面112を出力部105の表示画面に表示する。
図12は、管理端末4の出力部105の表示画面に表示される、ダウンロードデータ110の性能への影響を考慮してダウンロード方法を選択する選択画面112の構成の一例を示している。選択画面112は、例えば、「スケジューリングにより、I/Oが少ないときにダウンロードを実施します。」、「指定した時間にダウンロードを実行します。」及び「ダウンロードを即座に実施します。」の3つの選択肢を管理者が選択することができるように表示されている。
続いて、管理端末4は、例えば、管理者の操作により、「指定した時間にダウンロードを実行します。」のチェックボックスがチェックされ、その後、「次へ」のボタンが押下されると、図13に示すスケジュールデータ109の作成画面113を出力部105の表示画面に表示する。
図13は、管理端末4の出力部105の表示画面に表示される、スケジュールデータ109を作成する作成画面113の構成の一例を示している。作成画面113は、第1のコントローラ部21、第2のコントローラ部22、第1のエンクロージャ31、第2のエンクロージャ32を選択することができるように表示されている。また、作成画面113は、第1のコントローラ部21、第2のコントローラ部22、第1のエンクロージャ31、第2のエンクロージャ32ごとのスケジュール等が表示されている。
続いて、管理端末4は、例えば、管理者の操作により、第1のコントローラ部21(Controller 0(ENC0))が選択され、その後、「変更」ボタンが押下されると、図14に示すスケジュールデータ109の作成画面114を出力部105の表示画面に表示する。
図14は、管理端末4の出力部105の表示画面に表示される、スケジュールデータ109を作成する作成画面114の構成の一例を示している。作成画面114は、例えば、「性能への影響を考慮したダウンロード方法」として、「ファームウェア99を更新する時間」や「ファームウェア99を更新するIOPS」、「省電力モード移行に連動してファームウェア99を更新する」を管理者が選択することができるように表示されている。また、作成画面114は、電源停止予定情報68及び統計情報69に基づいて、対象のコントローラ部又はエンクロージャの電源停止予定情報やI/Oの履歴情報等が表示されている。
続いて、管理端末4は、例えば、管理者の操作により、「性能への影響を考慮したダウンロード方法」として「指定時間」が選択され、「ファームウェア99を更新する時間」として「2008/07/22 05:00」が選択されて、「スケジュールの決定」ボタンが押下されると、第1のコントローラ部21(Controller 0(ENC0))のスケジュールが決定し、図13に示す作成画面113に戻ると共に、決定された第1のコントローラ部21(Controller 0(ENC0))のスケジュールが図13に示す作成画面113に反映される。
一方、管理端末4は、図13において、例えば、管理者の操作により、いずれのコントローラ部又はエンクロージャも選択されずに、「次へ」のボタンが押下されると、図15に示すスケジュールデータ109の作成の確認画面115を出力部105の表示画面に表示する。
図15は、管理端末4の出力部105の表示画面に表示される、スケジュールデータ109の作成の確認画面115の構成の一例を示している。確認画面115は、第1のコントローラ部21、第2のコントローラ部22、第1のエンクロージャ31、第2のエンクロージャ32のスケジュール等が表示されている。
そして、管理端末4は、例えば、管理者の操作により、「次へ」のボタンが押下され、その後、図示しない決定ボタンが押下されると、例えば、2008年7月22日5:00に第1のコントローラ部21(Controller 0(ENC0))のファームウェア99を更新する等、図15に表示される確認画面115でスケジュールデータ109を作成し、当該スケジュールデータ109を管理端末4に送信する。
図10に戻り、ENCマイクロダウンロード制御プログラム64は、管理端末4から所定の時間にファームウェア99を更新するように指示された場合(SP12:YES)には、該当するエクスパンダ73がファームウェア99を更新する時間となるのを待機モードで待ち受ける(SP13)。そして、ENCマイクロダウンロード制御プログラム64は、該当するエクスパンダ73がファームウェア99を更新する時間となると(SP13:YES)、ステップSP18に進む。
これに対して、ENCマイクロダウンロード制御プログラム64は、管理端末4から所定の時間にファームウェア99を更新するように指示されていない場合(SP12:NO)には、スケジュールデータ109を受信し、管理端末4から指定IOPS以下のときに、ファームウェア99を更新するように指示されたか否かをチェックする(SP14)。
この場合、管理端末4は、図12において、管理者の操作により、「スケジューリングにより、I/Oが少ないときにダウンロードを実施します。」のチェックボックスがチェックされ、その後、「次へ」のボタンが押下されると、図13に示すスケジュールデータ109の作成画面113を出力部105の表示画面に表示する。
続いて、管理端末4は、例えば、管理者の操作により、第1のコントローラ部21(Controller 0(ENC0))が選択され、その後、「変更」ボタンが押下されると、図14に示すスケジュールデータ109の作成画面114を出力部105の表示画面に表示する。
続いて、管理端末4は、例えば、管理者の操作により、「性能への影響を考慮したダウンロード方法」として「IOPS」が選択され、「ファームウェア99を更新するIOPS」として「100以下」が選択されて、「スケジュールの決定」ボタンが押下されると、第1のコントローラ部21(Controller 0(ENC0))のスケジュールが決定し、図13に示す作成画面113に戻ると共に、決定された第1のコントローラ部21(Controller 0(ENC0))のスケジュールが図13に示す作成画面113に反映される。
一方、管理端末4は、図13において、例えば、管理者の操作により、いずれのコントローラ部又はエンクロージャも選択されずに、「次へ」のボタンが押下されると、図15に示すスケジュールデータ109の作成の確認画面115を出力部105の表示画面に表示する。
そして、管理端末4は、例えば、管理者の操作により、「次へ」のボタンが押下され、その後、図示しない決定ボタンが押下されると、例えば、該当するエクスパンダ73のディスク装置45のIOPSが100以下のときに第1のコントローラ部21(Controller 0(ENC0))のファームウェア99を更新する等、図15に表示される確認画面115でスケジュールデータ109を作成し、当該スケジュールデータ109をディスクアレイ装置3に送信する。
図10に戻り、ENCマイクロダウンロード制御プログラム64は、管理端末4から指定IOPS以下のときに、ファームウェア99を更新するように指示された場合(SP14:YES)には、該当するエクスパンダ73のディスク装置45が指定IOPS以下となるのを待機モードで待ち受ける(SP15)。そして、ENCマイクロダウンロード制御プログラム64は、該当するエクスパンダ73のディスク装置45が指定IOPS以下となると(SP15:YES)、ステップSP18に進む。
これに対して、ENCマイクロダウンロード制御プログラム64は、管理端末4から指定IOPS以下のときにファームウェア99を更新するように指示されていない場合(SP15:NO)には、スケジュールデータ109を受信し、管理端末4から省電力モードに移行するときに、ファームウェア99を更新するように指示されたか否かをチェックする(SP16)。
この場合、管理端末4は、図11において、管理者の操作により、「省電力機能により電源を切る際にダウンロードを実行します。」のチェックボックスがチェックされ、その後、「次へ」のボタンが押下されると、図13に示すスケジュールデータ109の作成画面113を出力部105の表示画面に表示する。
続いて、管理端末4は、例えば、管理者の操作により、第1のコントローラ部21(Controller 0(ENC0))が選択され、その後、「変更」ボタンが押下されると、図14に示すスケジュールデータ109の作成画面114を出力部105の表示画面に表示する。
続いて、管理端末4は、例えば、管理者の操作により、「性能への影響を考慮したダウンロード方法」として「省電力に連動」が選択されて、「スケジュールの決定」ボタンが押下されると、第1のコントローラ部21(Controller 0(ENC0))のスケジュールが決定し、図13に示す作成画面113に戻ると共に、決定された第1のコントローラ部21(Controller 0(ENC0))のスケジュールが図13に示す作成画面113に反映される。
一方、管理端末4は、図13において、例えば、管理者の操作により、いずれのコントローラ部又はエンクロージャも選択されずに、「次へ」のボタンが押下されると、図15に示すスケジュールデータ109の作成の確認画面115を出力部105の表示画面に表示する。
そして、管理端末4は、例えば、管理者の操作により、「次へ」のボタンが押下され、その後、図示しない決定ボタンが押下されると、例えば、該当するエクスパンダ73のディスク装置45が省電力モードに移行するときに第1のコントローラ部21(Controller 0(ENC0))のファームウェア99を更新する等、図15に表示される確認画面115でスケジュールデータ109を作成し、当該スケジュールデータ109をディスクアレイ装置3に送信する。
図10に戻り、ENCマイクロダウンロード制御プログラム64は、管理端末4から省電力モードに移行するときに、ファームウェア99を更新するように指示された場合(SP16:YES)には、該当するエクスパンダ73のディスク装置45が省電力モードとなるのを待機モードで待ち受ける(SP17)。そして、ENCマイクロダウンロード制御プログラム64は、該当するエクスパンダ73のディスク装置45が省電力モードとなると(SP17:YES)、ステップSP18に進む。
これに対して、ENCマイクロダウンロード制御プログラム64は、管理端末4から所定の時間にファームウェア99を更新するように指示されていない場合(SP17:NO)には、ステップSP19に進む。
一方、ENCマイクロダウンロード制御プログラム64は、ステップSP11、SP13、SP15、SP17において「YES」の場合には、該当するエクスパンダ73にダウンロードデータ110を送信し、初期化が必要なファームウェア99の更新を指示する(SP18)。なお、ENCマイクロダウンロード制御プログラム64は、省電力モードに移行するときに、ファームウェア99を更新するように指示する場合には、省電力制御プログラム66を介して、あわせて該当するディスク装置45のスピンダウンが完了していることを確認する。
続いて、ENCマイクロダウンロード制御プログラム64は、他にファームウェア99を更新するスケジュールのエクスパンダ73が存在するか否かをチェックする(SP19)。
そして、ENCマイクロダウンロード制御プログラム64は、他にファームウェア99を更新するスケジュールのエクスパンダ73が存在する場合(SP19:YES)には、ステップSP12に戻り、再び、管理端末4から所定の時間にファームウェア99を更新するように指示されたか否かをチェックし(SP12)、その後、ステップSP12〜ステップSP19を繰り返す。
これに対して、ENCマイクロダウンロード制御プログラム64は、他にファームウェア99を更新するスケジュールのエクスパンダ73が存在しない場合(SP19:NO)には、その後、図10に示す初期化が必要な場合のファームウェア更新指示処理手順RT2を終了する(SP20)。
図16は、このストレージシステム1におけるディスクアレイ装置3のエクスパンダ73のファームウェア更新処理に関する、ディスクアレイ装置3のエクスパンダ73のプロセッサ81の具体的な処理手順を示したフローチャートの一例である。なお、以下の説明において、プログラムが主語になる処理は、実際には、そのプログラムを実行するプロセッサ81が行う処理である。
制御プログラム91は、第1のコントローラ部21、第2のコントローラ部22からダウンロードデータを受信し、ファームウェア99の更新の指示を受信すると、図16に示すファームウェア更新処理手順RT3に従って、ダウンロードデータ110の初期化判定情報110C及びデバイスI/F接続状態情報96を引継ぎ情報領域97に格納する(SP21)。
続いて、制御プログラム91は、ダウンロードデータ110をプログラム格納領域98のファームウェア99にダウンロードしてファームウェア99を更新し、エクスパンダ73の再起動を実施する(SP22)。続いて、制御プログラム91は、引継ぎ情報領域97に格納された期化判定情報110Cを参照することにより、エクスパンダ73のデバイスI/F85の初期化が必要であるか否かをチェックする(SP23)。
そして、制御プログラム91は、エクスパンダ73のデバイスI/F85の初期化が必要である場合(SP23:YES)には、メモリ83に格納されているデバイスI/F接続状態情報96を初期化する(SP24)。続いて、制御プログラム91は、スイッチ部82及びデバイスI/F85の各PHY100を初期化する(SP25)。
これに対して、制御プログラム91は、エクスパンダ73のデバイスI/F85の初期化が必要でない場合(SP23:NO)には、新たにデバイスI/F85の接続状態を取得し、メモリ83に格納する(SP28)。続いて、制御プログラム91は、引継ぎ情報領域98に格納されているデバイスI/F接続状態情報96と新たにメモリ83に格納されたデバイスI/F接続状態情報96とを比較し、再起動前のデバイスI/Fの接続状態と差があるか否かをチェックする(SP29)。
そして、制御プログラム91は、再起動前のデバイスI/Fの接続状態と差がない場合(SP29:NO)には、例えば、自己のエクスパンダ73より下位の増設筐体12のエクスパンダ73等の、他のエクスパンダ73からブロードキャストコマンドを受信したか否かをチェックする(SP30)。そして、制御プログラム91は、他のエクスパンダ73からブロードキャストコマンドを受信した場合(SP30:YES)には、ステップSP31に進む。これに対して、制御プログラム91は、他のエクスパンダ73からブロードキャストコマンドを受信していない場合(SP30:NO)には、この後、図16に示すファームウェア更新処理手順RT3を終了する(SP32)。
一方、制御プログラム91は、ステップSP26、SP27の後、又はステップSP29、SP30において「YES」の場合には、ブロードキャスト発行プログラム94を介して、第1のコントローラ部21又は第2のコントローラ部22にブロードキャストコマンドを発行し(SP31)、この後、図16に示すファームウェア更新処理手順RT3を終了する(SP32)。
図17は、このストレージシステム1におけるディスクアレイ装置3のブロードキャストコマンド受信時の処理に関する、ディスクアレイ装置3のCPU51の具体的な処理手順を示したフローチャートの一例である。
デバイス管理プログラム65は、エクスパンダ73からデバイスコマンド発行プログラム62を介して、ブロードキャストコマンドを受信すると、図17に示すブロードキャストコマンド受信時の処理手順RT4に従って、ブロードキャストコマンドの種類を判別し、エクスパンダ73からブロードキャスト(CHANGE)を受信したか否かをチェックする(SP41)。
そして、デバイス管理プログラム65は、エクスパンダ73からブロードキャスト(CHANGE)を受信した場合(SP41:YES)には、ディスカバリ制御プログラム70、PHY制御プログラム71を介して、ディスカバリ処理を実施する(SP42〜SP45)。
すなわち、デバイス管理プログラム65は、所定のエクスパンダ73を選択し(SP42)、管理コマンドにより当該エクスパンダ73のデバイスI/F85内のPHY100の接続状態を取得して(SP43)、デバイス管理テーブル67を更新する(SP44)。
続いて、デバイス管理プログラム65は、未だ選択されていないエクスパンダが存在するか否かをチェックする(SP45)。そして、デバイス管理プログラム65は、未だ選択されていないエクスパンダが存在する場合(SP45:YES)には、ステップSP42に戻り、再び、所定のエクスパンダ73を選択し、その後、ステップSP42〜SP45を繰り返す。
これに対して、デバイス管理プログラム65は、未だ選択されていないエクスパンダが存在する場合(SP45:YES)、又はエクスパンダ73からブロードキャスト(CHANGE)を受信していない場合(SP41:NO)には、エクスパンダ73からブロードキャスト(SES)を受信したか否かをチェックする(SP46)。そして、デバイス管理プログラム65は、エクスパンダ73からブロードキャスト(SES)を受信した場合(SP46:YES)には、SES取得処理を実施する(SP47)。これに対して、デバイス管理プログラム65は、エクスパンダ73からブロードキャスト(SES)を受信していない場合(SP46:NO)には、該当するブロードキャスト処理を実施する(SP48)。
やがて、デバイス管理プログラム65は、この後、図17に示すブロードキャストコマンド受信時の処理手順RT4を終了する(SP49)。
このようにして、本実施の形態におけるストレージシステム1では、管理端末4からダウンロードデータ110を受信すると、エクスパンダ73がダウンロードデータ110をダウンロードした後に当該エクスパンダ73を初期化する必要があるか否かを判定し、判定結果を管理端末4に送信して、判定結果に基づいて管理端末4により決定されるファームウェア99を更新するタイミングで、ダウンロードデータ110を該当するエクスパンダ73に送信して、ファームウェア99の更新を該当するエクスパンダ73に指示する。
従って、管理者の指定するタイミングでファームウェア99を更新することができるため、データの送受信を一時的に実行することができなくなるということを未然かつ有効に防止することができ、又はデータの送受信の性能の低下を減少させることができ、かくして、データ送受信の高速化及び信頼性を向上させることができる。
また、ストレージシステム1では、エクスパンダ73を初期化する必要がないと判定されたときであって、管理端末4からファームウェア99を更新するよう指示された場合には、即時にダウンロードデータ110を該当するエクスパンダ73に送信して、ファームウェア99の更新を該当するエクスパンダ73に指示することにより、エクスパンダ73の初期化の必要がないため、データの送受信を一時的に停止することなくファームウェア99を更新することができる。
さらに、ストレージシステム1では、エクスパンダ73を初期化する必要があると判定されたときであって、管理端末4から所定の時間にファームウェア99を更新するよう指示された場合には、指示された時間に、ダウンロードデータ110を該当するエクスパンダ73に送信して、ファームウェア99の更新を該当するエクスパンダ73に指示することにより、データの送受信が閑散となる時間帯を指定してファームウェア99を更新することができる。
さらに、ストレージシステム1では、エクスパンダ73を初期化する必要があると判定されたときであって、管理端末4から指定IOPS以下のときにファームウェア99を更新するよう指示された場合には、指定IOPS以下のときに、ダウンロードデータ110を該当するエクスパンダ73に送信して、ファームウェア99の更新を該当するエクスパンダ73に指示することにより、データの送受信が閑散となるときにファームウェア99を更新することができる。
さらに、ストレージシステム1では、エクスパンダ73を初期化する必要があると判定されたときであって、管理端末4からディスク装置45が省電力モードに移行するときにファームウェア99を更新するよう指示された場合には、ディスク装置45が省電力モードに移行するときに、ダウンロードデータ110を該当するエクスパンダ73に送信して、ファームウェア99の更新を該当するエクスパンダ73に指示することにより、データの送受信が停止するときにファームウェア99を更新することができる。
1……ストレージシステム、2……ホスト装置、3……ディスクアレイ装置、4……管理端末、11……基本筐体、12……増設筐体、21……第1のコントローラ部、22……第2のコントローラ部、23、33……記憶部、31……第1のエンクロージャ、32……第2のエンクロージャ、42……RAID制御部、44……バックエンドI/F、45……ディスク装置、51……CPU、64……ENCマイクロダウンロード制御プログラム、65……デバイス管理プログラム、68……統計情報、73……エクスパンダ、81……プロセッサ、85……デバイスI/F、91……制御プログラム、99……ファームウェア、100……PHY、109……スケジュールデータ、110……ダウンロードデータ