以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージ装置を示す図である。ストレージ装置1は、複数の記憶装置を収納可能である。ストレージ装置1は、ネットワークを介して情報処理装置2と接続されている。ストレージ装置1は、給電手段1a、収納手段1b、制御手段1c、計測手段1d,1e、収集手段1fおよび記憶手段1gを有する。
給電手段1aは、ストレージ装置1の各手段や記憶装置を動作させるための電力を供給する。給電手段1aは、例えば無停電電源装置や商用電源などから供給される電力を、給電ラインPLを介して、各手段や記憶装置に供給する。給電ラインPLは、ストレージ装置1内に設けられた給電用の配線である。
収納手段1bは、複数の記憶装置を収納可能である。収納手段1bは記憶装置3,4を収納している。記憶装置3,4は、例えばHDDやSSDなどである。
制御手段1cは、情報処理装置2から記憶装置3,4へのデータアクセスを制御する。
計測手段1dは、記憶装置3,4の各々において消費される電力(単に消費電力ということがある)を計測する。例えば、給電ラインPLは記憶装置3,4の各々へ給電するためにメインのラインから分岐されたラインを含む。例えば、計測手段1dは当該分岐先のラインにおいて電流および電圧を計測して乗算することで、記憶装置3,4の各々における消費電力を計測する。
計測手段1eは、制御手段1cにおいて消費される電力を計測する。例えば、給電ラインPLは制御手段1cへ給電するためにメインのラインから分岐されたラインを含む。例えば、計測手段1eは当該分岐先のラインにおいて電流および電圧を計測して乗算することで、制御手段1cにおける消費電力を計測する。
収集手段1fは、計測手段1d,1eにより計測された消費電力に関する情報を収集する。収集手段1fは、収集した消費電力に関する情報を記憶手段1gに格納する。例えば、収集手段1fは計測手段1d,1eからの消費電力に関する情報の収集を定期的に行う。収集手段1fは、記憶手段1gに記憶された情報を用いて、記憶装置3,4および制御手段1cの消費電力を集計してもよい。収集手段1fは、収集した消費電力に関する情報や消費電力の集計結果などを制御手段1cに提供してもよい。収集手段1fは、運用管理用の情報処理装置(図1では図示を省略)に(例えばネットワークを介して)これらの情報を提供してもよい。
記憶手段1gは、収集手段1fが収集した情報や収集手段1fが生成した情報を格納するためのメモリである。
ストレージ装置1によれば、計測手段1dにより、記憶装置3,4の各々において消費される電力が計測される。計測手段1eにより、制御手段1cにおいて消費される電力が計測される。収集手段1fにより、計測手段1d,1eにより計測された電力に関する情報が収集される。
これにより、ストレージ装置1について詳細な消費電力に関する情報を容易に取得することができる。具体的には、制御手段1cおよび記憶装置3,4について、それぞれが消費する電力を個別に取得可能となる。また、消費電力のきめ細かな監視を容易に行えるようになる。例えば、制御手段1cは、収集手段1fが収集した(または、集計した)情報を取得すれば、記憶装置3,4や制御手段1cの消費電力を把握可能である。例えば、制御手段1cはストレージ装置1の運用管理を行う情報処理装置に、取得した消費電力に関する情報を提供することもできる。
また、ストレージ装置1の製造過程において、給電手段1a、収納手段1bおよび制御手段1cは、個別の装置として組み立てられることがある。その場合、ストレージ装置1を組み立てるために、接続手段(接続装置)をストレージ装置1の部品として用いることがある。接続手段は、給電手段1a、記憶装置3,4および制御手段1cを接続するために用いられる。この場合、接続手段には、給電ラインPLや各手段の間でデータ通信するためのデータラインが設けられる。給電手段1aは、接続手段上の給電ラインPLを介して既往装置3,4および制御手段1cに給電可能である。
そこで、計測手段1d,1e、収集手段1fおよび記憶手段1gを当該接続手段に設けてもよい。そうすれば、給電手段1a、収納手段1bおよび制御手段1cなどに消費電力を収集する機能を組み込まなくてもよい。また、例えば、制御手段1cは、収集手段1fから消費電力に関する情報を取得すれば、記憶装置3,4や制御手段1cの消費電力を把握可能となる。よって、ストレージ装置1への電力監視の機能の実装を容易化できる。また、接続手段を電力監視の機能を備えた部品として市場に供給可能となる。
[第2の実施の形態]
図2は、第2の実施の形態のストレージシステムを示す図である。第2の実施の形態のストレージシステムは、コントローラエンクロージャ(CE:Controller Enclosure)100およびディスクエンクロージャ(DE:Disk Enclosure)200,300を含む。CE100とDE200とはケーブル11,12を用いて接続されている。DE200,300はケーブル13,14を用いて接続されている。
また、CE100はケーブル15,16,21,22を用いてスイッチ装置400に接続されている。スイッチ装置400にはケーブル17,23を用いて業務サーバ500が接続されている。スイッチ装置400にはケーブル24を用いて運用管理サーバ600が接続されている。
ケーブル11,12,13,14としては、例えばEthernet(登録商標)、FC(Fibre Channel)およびinfiniBandなどに対応したケーブル(例えば、QSFP(Quad Small Form Factor Pluggable)ケーブルなど)を用いることができる。ケーブル15,16としては、例えばFC、SAS(Serial Attached Small Computer System Interface)、iSCSI(Internet Small Computer System Interface)およびFCoE(Fibre Channel over Ethernet)などに対応したケーブルを用いることができる。ケーブル11,12,13,14,15,16,17は、業務サーバ500が、CE100やDE200,300へデータアクセスするための通信に用いられる。
ケーブル21,22,23,24としては、例えばEthernetに対応したケーブルを用いることができる。ケーブル21,22,23,24は、運用管理サーバ600がストレージシステムの運用管理を行うための通信に用いられる。
CE100は、複数のHDDを収納可能なストレージ装置である。CE100は、HDDに代えて、または、HDDと併せて、SSDなどの他の種類の記憶装置を複数収納することもできる。CE100は、業務サーバ500からのアクセス要求に応じて、DE200,300に収納された記憶装置に対するデータアクセスをDE200,300に実行させることもできる。
DE200,300は、複数のHDDを収納可能なストレージ装置である。DE200,300は、HDDに代えて、または、HDDと併せて、SSDなどの他の種類の記憶装置を複数収納することもできる。ここで、DE200,300におけるデータアクセスは、CE100によって制御される。例えば、DE200は、CE100からの指示に応じて、DE200に収納されたHDDに対するデータの書き込みや読み出しを行う。また、DE300はCE100からの指示に応じて、DE300に収納されたHDDに対するデータの書き込みや読み出しを行う。
スイッチ装置400は、CE100、業務サーバ500および運用管理サーバ600の間の通信を中継する中継装置である。スイッチ装置400は、複数の種類のケーブルを接続するための複数のポートを備えている。
業務サーバ500は、ストレージシステムに記憶されたデータを用いて所定の業務処理を行うサーバコンピュータである。
運用管理サーバ600は、ストレージシステムの運用管理を行うサーバコンピュータである。運用管理サーバ600は、ストレージシステムの消費電力を取得する。例えば、運用管理サーバ600は、SNMP(Simple Network Management Protocol)を用いてCE100からストレージシステムの消費電力に関する情報(以下、単に消費電力の情報ということがある)を取得できる。
例えば、ストレージシステムの管理者は、運用管理サーバ600を操作して、ストレージシステムにおける消費電力の状況を閲覧することができる。例えば、管理者は、運用管理サーバ600に接続された表示装置に消費電力の状況を表示させることができる。消費電力の状況としては、現在の消費電力、過去の消費電力および消費電力の遷移などが考えられる。運用管理サーバ600は、消費電力の状況に応じて、管理者に対する通知(例えば、消費電力が閾値を超過したなどの通知)を行ってもよい。通知の方法としては、電子メールの送信や表示装置へのメッセージの出力などが考えられる。
CE100、DE200,300、スイッチ装置400、業務サーバ500および運用管理サーバ600は、例えばラックに収納される。ただし、各装置はタワー型でもよい。
図3は、第2の実施の形態のCEの外観例(その1)を示す図である。図3(A)はCE100の斜視図の例である。CE100は筐体101および収納部102を有する。
筐体101はCE100の本体を収納する。筐体101は筐体カバーで覆われている。
収納部102は複数のHDDを収納する。収納部102の一部は筐体101の内部に収納されている。収納部102の他の一部(収納部分)は筐体101の外部へ露出しており、管理者や保守員がHDDの交換などの作業を行えるようになっている。筐体101の外部から収納部102に対してHDDを挿抜することで、収納部102にHDDを収めたり、取り出したりすることが可能である。
ここで、収納部102が外部へ露出している側をCE100の前面側とする。また、CE100の当該前面側と逆側を後面側とする。すなわち、図3(A)はCE100の前面側の斜視図である。
図3(B)はCE100の後面側の斜視図の例である。図3(B)では筐体101の筐体カバーを取り外した場合を例示している。CE100は、更に、ミッドプレーン(MP:Mid Plane)103、コントローラモジュール(CM:Controller Module)104,105および給電ユニット(PSU:Power Supply Unit)106,107を有する。
MP103は、収納部102、CM104,105およびPSU106,107を接続するための接続装置である。MP103は、給電用のラインやデータ通信用のラインを有する。
CM104,105は、CE100の全体を制御するストレージ制御装置である。CM104,105は、業務サーバ500と通信して、CE100およびDE200,300に収納されたHDDへアクセスする。また、CM104,105は、CE100およびDE200,300の稼働状況を示す情報を収集する。CM104,105は、運用管理サーバ600と通信して、CE100およびDE200,300の稼働状況を示す情報を運用管理サーバ600に提供する。稼働状況を示す情報は消費電力の情報を含む。
CM104,105は、両方をアクティブ状態として稼働させることができる。例えば、両方をアクティブ状態として稼働させる場合、アクセスするHDDを分担する。具体的には、収納部102に収納された複数のHDDのうちの一部のアクセスをCM104が担当し、残りの一部のアクセスをCM105が担当するというように、アクセス先を分担する。一方で障害が発生した場合には他方のCMにより全てのHDDへのデータアクセスを継続できる。
なお、CM104,105は、一方をアクティブ状態、他方をスタンバイ状態として稼働させることもできる。一方をアクティブ状態とする場合、例えばCM104がアクティブ状態であれば、CM104が収納部102に収納された全てのHDDへのアクセスを担当する。以下の説明では、CM104,105の両方をアクティブ状態にして運用する場合を例示する。
PSU106,107は、CE100を動作させるための電力を収納部102(収納部102に収納されたHDDを含む)、MP103およびCM104,105を含むCE100全体に供給する。PSU106,107の両方からCE100の各部へ給電することができる。その場合、PSU106は収納部102に収納された複数のHDDの一部およびCM104へ電力を供給する。また、PSU107は収納部102に収納された複数のHDDの他の一部およびCM105へ電力を供給する。また、PSU106,107の何れか一方で障害が発生した場合には、正常な方のPSUでCE100全体に電力を供給し続けることで、CE100の動作を維持することも考えられる。
なお、DE200,300もCE100と同様の外観である。DE200,300もCE100と同様の斜視図となる。ただし、DE200,300はCE100からの指示に基づいてDE200,300に収納されたHDDへアクセスするのが主な役割である。このため、DE200,300は、CMに代えて、IOM(Input Output Module)と呼ばれるモジュールを有する。IOMは、HDDに対するデータの読み書きを主に行うためのモジュールである。
図4は、第2の実施の形態のCEの外観例(その2)を示す図である。図4はCE100の分解斜視図の例である。図4では図3(B)の収納部102、MP103、CM104,105およびPSU106,107を分解した場合を例示している。DE200,300もCE100と同様の分解斜視図となる。
例えば、収納部102および収納部102に収納された各HDDは、MP103に接続するためのコネクタを有する。例えば、MP103も収納部102および当該各HDDに接続するためのコネクタを有する。収納部102、各HDDおよびMP103に設けられた当該コネクタ同士を嵌め合わせることで、収納部102および収納部102に収納された各HDDをMP103に接続する。コネクタを介して、MP103の上の給電ラインおよびデータラインに各HDDが接続される。
例えば、CM104,105はMP103に接続するためのコネクタを有する。例えば、MP103もCM104,105に接続するためのコネクタを有する。MP103およびCM104,105に設けられた当該コネクタ同士を嵌め合わせることで、CM104,105をMP103に接続する。コネクタを介して、MP103上の給電ラインおよびデータラインにCM104,105が接続される。
例えば、PSU106,107はMP103に接続するためのコネクタを有する。例えば、MP103もPSU106,107に接続するためのコネクタを有する。MP103およびPSU106,107に設けられた当該コネクタ同士を嵌め合わせることで、PSU106,107をMP103に接続する。コネクタを介して、MP103上の給電ラインにPSU106,107が接続される。
図5は、第2の実施の形態のCEのハードウェア例を示す図である。収納部102は、HDD31,32,・・・を収納している。また、PSU106,107は、5VL、5Vおよび12Vで給電している。5VLおよび12Vの電源は、CM104,105の駆動に用いる。5Vおよび12Vの電源は、HDD31,32,・・・の駆動に用いる。
MP103は、給電ラインPL1,PL2,PL3、データラインDL1,DL2,DL3,DL4、監視部103a、メモリ103b、電力計測部103c,103d,103e,103f,103gを有する。
給電ラインPL1は5VLの給電に用いられる。給電ラインPL2は5Vの給電に用いられる。給電ラインPL3は12Vの給電に用いられる。
データラインDL1は、監視部103aと電力計測部103c,103dとの間のデータの入出力に用いられる。データラインDL2は、監視部103aと電力計測部103eとの間のデータの入出力に用いられる。データラインDL3は、監視部103aと電力計測部103f,103gとの間のデータの入出力に用いられる。データラインDL4は、監視部103aとCM104,105との間のデータの入出力に用いられる。
なお、図5ではCM104,105がHDD31,32,・・・へアクセスするためのデータラインの図示を省略している。
監視部103aは、電力計測部103c,103d,103e,103f,103gが計測した消費電力の情報を収集する電子回路である。監視部103aは、収集した情報をメモリ103bに格納する。また、監視部103aは、メモリ103bに記憶された消費電力の情報を集計する。監視部103aは、消費電力の情報をCM104(またはCM105)に提供する。また、監視部103aは、消費電力を収集した時間を管理するためのRTC(Real Time Clock)を含む。
監視部103aは、例えばASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)でもよく、メモリ103bに記憶されたファームウェアのプログラムを実行する汎用のプロセッサでもよい。監視部103aは、複数のASICなどで実装されてもよい。監視部103aは第1の実施の形態の収集手段の一例である。
メモリ103bは、監視部103aが実行するプログラムや処理に用いるデータを記憶する記憶部である。メモリ103bは、揮発性および不揮発性のメモリを含む。例えば、メモリ103bは、監視部103aが収集した消費電力の情報および監視部103aが当該消費電力を集計した集計結果の情報を記憶する。MP103は複数個のメモリを備えてもよい。
電力計測部103cは、PSU106からCE100全体へ供給される電力を計測する計測器である。電力計測部103cは給電ラインPL1,PL2,PL3に接続する。電力計測部103cは給電ラインPL1,PL2,PL3により供給される電力を計測することで、CE100全体へ供給される電力を計測する。例えば、電力計測部103cは、MP103とPSU106との接続部分の付近(コネクタ内やコネクタ周縁部など)に設けられる。
電力計測部103dは、PSU107からCE100全体へ供給される電力を計測する計測器である。電力計測部103dは電力計測部103cと同様にしてCE100全体へ供給される電力を計測できる。PSU106,107から同時に給電される場合、電力計測部103c,103dで計測された消費電力の合計がCE100全体の消費電力に相当する。例えば、電力計測部103dは、MP103とPSU107との接続部分の付近(コネクタ内やコネクタ周縁部など)に設けられる。
電力計測部103eは、PSU106,107からHDD31,32,・・・それぞれへ供給される電力を計測する計測器である。電力計測部103eは給電ラインPL2,PL3に接続する。電力計測部103eは(HDDごとに)給電ラインPL2,PL3により供給される電力を計測することで、各HDDへ供給される電力を計測する。例えば、電力計測部103eは、MP103とHDD31,32,・・・との接続部分の付近(各HDDを接続するための各コネクタ内や各コネクタ周縁部など)で消費電力を計測する。電力計測部103eは、各HDD用に複数個設けられてもよい。
電力計測部103fは、PSU106(またはPSU107)からCM104へ供給される電力を計測する計測器である。電力計測部103fは給電ラインPL1,PL3に接続する。電力計測部103fは給電ラインP1,PL3により供給される電力を計測することで、CM104へ供給される電力を計測する。例えば、電力計測部103fは、MP103とCM104との接続部分の付近(コネクタ内やコネクタ周縁部など)に設けられる。
電力計測部103gは、PSU107(またはPSU106)からCM105へ供給される電力を計測する計測器である。電力計測部103gは電力計測部103fと同様にしてCM105へ供給される電力を計測できる。例えば、電力計測部103gは、MP103とCM105との接続部分の付近(コネクタ内やコネクタ周縁部など)に設けられる。
例えば、電力計測部103c,103d,103e,103f,103gは、次のようにして各部の消費電力を計測できる。まず、計測箇所の電圧および電流の瞬時値を計測して乗算することで、瞬時電力を計測する。そして、所定の時間間隔でサンプリングした瞬時電力の平均値を消費電力とする。
CM104は、CPU(Central Processing Unit)104a、メモリ104b、LAN(Local Area Network)ポート104c、CA(Channel Adaptor)104dおよびDA(Disk Adaptor)104eを有する。
CPU104aは、CM104の情報処理を制御するプロセッサである。CM104には、複数のプロセッサを設けて、プログラムを分散して実行してもよい。
メモリ104bは、CPU104aが実行するファームウェアのプログラムや処理に用いるデータを記憶する記憶部である。メモリ104bは不揮発性メモリおよび揮発性メモリを含む。例えば、メモリ104bは、データの読み出しや書き込みの際に対象のデータを一時的に格納しておくキャッシュメモリとしても利用され得る。また、例えば、メモリ104bは、CPU104aが収集したデータを記憶するためにも利用され得る。CM104は、複数個のメモリを備えていてもよい。
LANポート104cは、スイッチ装置400を介して運用管理サーバ600と通信を行う通信インタフェースである。CM104は複数個のLANポートを備えてもよい。
CA104dは、スイッチ装置400を介して業務サーバ500と通信を行う通信インタフェースである。CM104は複数個のCAを備えてもよい。
DA104eは、DE200,300と通信を行う通信インタフェースである。DA104eは、DE200を介してDE300と通信を行える。CM104は複数個のDAを備えてもよい。
CM105は、CPU105a、メモリ105b、LANポート105c、CA105dおよびDA105eを有する。CPU105a、メモリ105b、LANポート105c、CA105dおよびDA105eの説明は、CPU104a、メモリ104b、LANポート104c、CA104dおよびDA104eの説明と同様であるため、その説明を省略する。
図6は、第2の実施の形態のDEのハードウェア例を示す図である。DE200は、収納部202、MP203、IOM204,205およびPSU206,207を有する。DE200が備える各ユニットの説明は、CE100が備える同名の各ユニットの説明と同様である。このため、共通の事項の説明を省略し、相違点を説明する。なお、DE300もDE200と同様のハードウェアによって実装できる。
収納部202は収納部102と同様である。収納部202はHDD61,62,・・・を収納している。PSU206,207は、5VL、5Vおよび12Vで給電している。5VLおよび12Vの電源は、IOM204,205の駆動に用いる。5Vおよび12Vの電源は、HDD61,62,・・・の駆動に用いる。
MP203は、給電ラインPL4,PL5,PL6、データラインDL5,DL6,DL7,DL8、監視部203a、メモリ203b、電力計測部203c,203d,203e,203f,203gを有する。
給電ラインPL4は5VLの給電に用いられる。給電ラインPL5は5Vの給電に用いられる。給電ラインPL6は12Vの給電に用いられる。
データラインDL5は、監視部203aと電力計測部203c,203dとの間のデータの入出力に用いられる。データラインDL6は、監視部203aと電力計測部203eとの間のデータの入出力に用いられる。データラインDL7は、監視部203aと電力計測部203f,203gとの間のデータの入出力に用いられる。データラインDL8は、監視部203aとIOM204,205との間のデータの入出力に用いられる。
なお、図6ではIOM204,205がHDD61,62,・・・へアクセスするためのデータラインの図示を省略している。
監視部203aは、電力計測部203c,203d,203e,203f,203gが計測した消費電力の情報を収集する電子回路である。監視部203aは、監視部103aと同様の機能を有する。監視部203aは、消費電力の情報を集計してIOM204(またはIOM205)に提供する。
監視部203aは、例えばASICやFPGAでもよく、メモリ103bに記憶されたファームウェアのプログラムを実行する汎用のプロセッサでもよい。監視部203aは、複数のASICなどで実装されてもよい。監視部203aも第1の実施の形態の収集手段の一例である。
メモリ203bは、監視部203aが実行するプログラムや処理に用いるデータを記憶する記憶部である。メモリ203bの説明はメモリ103bの説明と同様であるため、その説明を省略する。
電力計測部203cは、PSU206からDE200全体へ供給される電力を計測する計測器である。電力計測部203dは、PSU207からDE200全体へ供給される電力を計測する計測器である。電力計測部203eは、PSU206,207からHDD61,62,・・・それぞれへ供給される電力を計測する計測器である。電力計測部203fは、PSU206(またはPSU207)からIOM204へ供給される電力を計測する計測器である。電力計測部203gは、PSU207(またはPSU206)からCM205へ供給される電力を計測する計測器である。
電力計測部203c,203d,203e,203f,203gの説明は、電力計測部103c,103d,103e,103f,103gの説明と同様である。具体的には、図5の説明において、HDD31,32,・・・をHDD61,62,・・・に読み替え、CM104,105それぞれをIOM204,205に読み替え、PSU106,107それぞれをPSU206,207に読み替えればよい。また、図5の説明において、電源ラインPL1,PL2,PL3それぞれを電源ラインPL4,PL5,PL6に読み替えればよい。
IOM204は、CPU204a、メモリ204bおよびDA204c,204dを有する。CPU204a、メモリ204bおよびDA204c,204dの説明は、CPU104a、メモリ104bおよびDA104eの説明と同様であるため、その説明を省略する。DA204cはCE100(例えば、DA104e)と接続される。DA204dはDE300と接続される。
IOM205は、CPU205a、メモリ205bおよびDA205c,205dを有する。CPU205a、メモリ205bおよびDA205c,205dの説明は、CPU104a、メモリ104bおよびDA104eの説明と同様であるため、その説明を省略する。DA205cはCE100(例えば、DA105e)と接続される。DA205dはDE300と接続される。
図7は、第2の実施の形態のソフトウェア例を示す図である。CM104は、管理部110および記憶部120を有する。
管理部110は、監視部103aにより収集された消費電力の情報や監視部103aによる消費電力の集計結果を取得し、記憶部120に格納する。管理部110は、IOM204から監視部203aにより収集された消費電力の情報や監視部203aによる消費電力の集計結果を取得し、記憶部120に格納する。更に、管理部110は、IOM204を介してDE300からも、同様に消費電力の情報や消費電力の集計結果を取得し、記憶部120に格納する。管理部110は、記憶部120に記憶された情報を運用管理サーバ600に提供する。
記憶部120は、管理部110が収集したデータを記憶する。記憶部120は、例えば、メモリ104bを用いて実装できる。
CM105は、管理部110aおよび記憶部120aを有する。管理部110aおよび記憶部120aの説明は、管理部110および記憶部120の説明と同様であるため省略する。
ここで、管理部110,110aは、何れか一方が、CE100およびDE200,300における消費電力の情報を収集する。管理部110,110aは通信可能であり、一方の収集機能をアクティブ、他方の収集機能を非アクティブとすることができる。例えば、管理部110がアクティブであれば、管理部110がCE100およびDE200,300における消費電力の情報を収集する。非アクティブである管理部110aは管理部110が障害などによって動作していない場合に、アクティブ化して情報の収集を代替する。ただし、管理部110,110aの両方に消費電力の情報を収集させてもよい。この場合は、管理部110,110aの何れか一方が運用管理サーバ600への情報提供を行えばよい。
IOM204は、管理部210および記憶部220を有する。
管理部210は、監視部203aにより収集された消費電力の情報や監視部203aによる消費電力の集計結果を取得し、記憶部220に格納する。管理部210は、DE300からもDE300が備える監視部により収集された消費電力の情報や当該監視部による消費電力の集計結果を取得し、記憶部220に格納する。管理部210は、記憶部220に記憶された情報をCE100(例えば、管理部110)に提供する。
記憶部220は、管理部210が収集したデータを記憶する。記憶部120は、例えば、メモリ204bを用いて実装できる。
IOM205は、管理部210aおよび記憶部220aを有する。管理部210aおよび記憶部220aの説明は、管理部210および記憶部220の説明と同様であるため、その説明を省略する。
ここで、管理部210,210aも、管理部110,110aと同様に何れか一方がDE200,300における消費電力の情報を収集する。あるいは、IOM210,210aの両方に消費電力の情報を収集させてもよい。この場合は、管理部210,210aの何れか一方がCE100に情報の提供を行えばよい。
以下の説明では、管理部110,210がCE100およびDE200における消費電力の情報の収集および提供を行うものとする。DE300についても同様に、冗長化された管理部のうちの一方が消費電力の情報の収集を行い、当該管理部が管理部210に情報の提供を行うものとする。
なお、管理部110,110a,210,210aの機能は、CPU104a,105a,204a,205aが所定のプログラムを実行することで発揮されてもよい。また、管理部110,110a,210,210aは、CM104,105およびIOM204,205に設けられたFPGAやASICなどの電子回路であってもよい(独立した管理手段としてCPUとは別個に設けられてもよい)。
DE300もDE200と同様にIOM内に管理部や記憶部を有している。
図8は、第2の実施の形態の消費電力テーブルの例(その1)を示す図である。消費電力テーブル121は、CE100に関する消費電力の情報を登録したテーブルである。消費電力テーブル121は、監視部103aにより生成されメモリ103bに格納される。また、消費電力テーブル121は監視部103aにより管理部110に提供され、管理部110により記憶部120に格納される。
消費電力テーブル121には、CE単位、CM単位、HDD単位の消費電力が登録されている。消費電力テーブル121に登録される消費電力は、所定時間の平均値である。例えば、1秒間の平均値、1分間の平均値、1時間の平均値、12時間の平均値および24時間の平均値などが登録され得る。30秒、30分、6時間など、他の時間の平均値を取得してもよい。
消費電力テーブル122は、DE200に関する消費電力の情報を登録したテーブルである。消費電力テーブル122は、監視部203aにより生成されメモリ203bに格納される。また、消費電力テーブル122は、監視部203aにより管理部210に提供され、管理部210により記憶部220に格納される。更に、消費電力テーブル122は、管理部210により管理部110に提供され、管理部110により記憶部120に格納される。
消費電力テーブル123は、DE300に関する消費電力の情報を登録したテーブルである。消費電力テーブル123も、消費電力テーブル122と同様に、DE300が備える監視部により生成される。消費電力テーブル123は、DE200を介して管理部110に提供され、管理部110により記憶部120に格納される。
消費電力テーブル122,123も消費電力テーブル121と同様に、CE単位、HDD単位、CM単位の消費電力が登録される。消費電力テーブル122,123に登録される消費電力は、消費電力テーブル121と同様に、所定時間の平均値である。次に、消費電力テーブル121の具体的なデータ構造を例示する。
図9は、第2の実施の形態の消費電力テーブルの例(その2)を示す図である。消費電力テーブル121は、時刻、1秒平均、1分平均、・・・の項目を含む。“・・・”により略記した箇所には平均をとる時間単位を示す項目(例えば、上述の例では1時間平均、12時間平均、24時間平均など)が含まれる。
時刻の項目には、消費電力を計測した時刻が登録される。1秒平均の項目には、CE単位、CM単位、HDD単位の消費電力の1秒間の平均値が登録される。登録される値の単位は、例えばワット(W:Watt)である。例えば、1秒平均の項目は、ENC(Enclosureの頭文字)の項目、MOD(Moduleの頭文字)の項目およびHDDの項目に細分化されている。ENCの項目には、CE単位の消費電力が登録される。MODの項目には、CM単位の消費電力がCM104,105について個別に登録される。CM104の識別子は“MOD#0”である。CM105の識別子は“MOD#1”である。HDDの項目には、HDD単位の消費電力がHDD31,32,・・・について個別に登録される。なお、図9では、HDD31,32,・・・が収納部102に24個収納されている場合を例示している。HDD31の識別子は“HDD#0”である。HDD32の識別子は“HDD#1”である。そして、24個目のHDDの識別子は“HDD#23”である。
1分平均、1時間平均などの他の時間単位を示す項目についても、1秒平均の項目と同様に、ENC、MOD、HDDそれぞれの項目を含む。そして、ENC、MOD、HDDそれぞれの項目について、消費電力が登録される。
例えば、消費電力テーブル121には、時刻が“0:00:00”、ENCが“150.0”(W)、MOD#0が“30.0”(W)、MOD#1が“25.0”(W)、HDD#0が“8.1”(W)、HDD#1が“8.1”(W)、・・・、HDD#23が“5.0”(W)という情報が登録されている。
これは、時刻0時0分00秒の時点において、CE100全体の消費電力が150Wであったことを示す。当該時点で、CM104の消費電力が30Wであり、CM105の消費電力が25Wであったことを示す。当該時点で、HDD31の消費電力が8.1Wであり、HDD32の消費電力が8.1Wであり、24個目のHDDの消費電力が5Wであったことを示す。
また、1分平均の項目については、直近の過去60秒間の消費電力の履歴の平均値をENC、MODおよびHDDのそれぞれの項目について求めたものが登録される。
更に、例えば、1時間平均の項目についても同様に、直近の過去60分間の消費電力の履歴の平均値をENC、MODおよびHDDのそれぞれの項目について求めたものが登録される。12時間、24時間平均の項目についても同様に、直近の過去12時間、24時間の消費電力の履歴の平均値をENC、MODおよびHDDのそれぞれの項目について求めたものが登録される。
なお、消費電力テーブル121では時刻に加えて年月日を管理してもよい。また、消費電力テーブル121は、直近24時間分の履歴のみを保持するようにしてもよい。メモリ103bの節約のためである。その場合、管理部110は24時間よりも短い周期で監視部103aから消費電力テーブル121の情報を取得すれば、計測された消費電力の取得漏れを防げる。
また、消費電力テーブル122,123も消費電力テーブル121と同様のデータ構造である。
次に、以上のようなストレージシステムにおける消費電力の監視の手順を説明する。以下の説明では、監視部103aによる手順を主に説明するが、監視部203aやDE300が備える監視部も同様の手順で消費電力の監視を行う。
ここで、監視部103aは、自身の監視機能がオンにされたタイミングで以下の手順を開始し、また、当該監視機能がオフにされたタイミングで手順を終了する。監視機能のオン/オフは、例えば、運用管理サーバ600から、CM104を介して切替可能である。あるいは、CE100の操作パネルなどに設けられた所定の操作部に対する操作に応じて切替可能としてもよい。
また、以下の手順は、5ミリ秒(ms:milli seconds)周期で実行される手順を例示したものである。第2の実施の形態の例では、消費電力の計測の1サイクルを10ミリ秒とする。5ミリ秒は0.5サイクルに相当する。まず、CE単位の消費電力の監視例を説明する。
図10は、第2の実施の形態の監視例(CE単位)を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
(ステップS11)監視部103aは、1ミリ秒待機する。消費電力の計測後に挿入される当該1ミリ秒の待機時間は、計測された消費電力をメモリ103bへ記録するための時間でもある(以下、同様)。
(ステップS12)監視部103aは、監視対象のPSUを切り替える。例えば、前回の監視対象がPSU107であった場合、今回の監視対象をPSU106に切り替える。
(ステップS13)監視部103aは、今回の監視対象であるPSU側の電力計測部で計測された消費電力の情報を収集してメモリ103bに格納する。今回の監視対象がPSU106であれば、電力計測部103cから消費電力の情報を収集する。今回の監視対象がPSU107であれば、電力計測部103dから消費電力の情報を収集する。
(ステップS14)監視部103aは、ステップS11の完了後、4ミリ秒が経過したことを検出すると、ステップS11に処理を進める。
監視部103aは、以上の手順を5ミリ秒周期で実行することで、電力計測部103c,103dからCE単位の消費電力の情報を継続的に収集する。
なお、電力計測部103c,103dは直流での消費電力を計測する。このため、ステップS13において、監視部103aはPSU106,107のAC(Alternating Current)/DC(Direct Current)変換効率に基づいて、電力計測部103c,103dから収集した消費電力を交流での消費電力に換算してもよい。例えば、AC/DC変換効率が0.8であれば、電力計測部103c,103dから収集した消費電力を0.8で割った値が交流での消費電力である。監視部103aにより交流での消費電力に予め換算しておけば、管理部110や運用管理サーバ600などで当該換算を行わなくてもよくなる。
次に、CM単位の消費電力の監視例を説明する。
図11は、第2の実施の形態の監視例(CM単位)を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
(ステップS21)監視部103aは、1ミリ秒待機する。
(ステップS22)監視部103aは、監視対象のCMを切り替える。例えば、前回の監視対象がCM105であった場合、今回の監視対象をCM104に切り替える。
(ステップS23)監視部103aは、今回の監視対象であるCM側の電力計測部で計測された消費電力の情報を収集してメモリ103bに格納する。今回の監視対象がCM104であれば、電力計測部103fから消費電力の情報を収集する。今回の監視対象がCM105であれば、電力計測部103gから消費電力の情報を収集する。監視部103aは、CMの切替回数に1を加算する。
(ステップS24)監視部103aは、ステップS22の開始から、2ミリ秒が経過したことを検出すると、ステップS25に処理を進める。
(ステップS25)監視部103aは、CMの切替回数が2であるか否かを判定する。CMの切替回数が2である場合、ステップS26に処理を進める。CMの切替回数が2でない場合、ステップS22に処理を進める。
(ステップS26)監視部103aは、CMの切替回数を0にリセットする。そして、ステップS21に処理を進める。
監視部103aは、以上の手順を5ミリ秒周期で実行することで、電力計測部103f,103gからCM単位の消費電力の情報を継続的に収集する。なお、ステップS23において、監視部103aは電力監視部103f,103gから収集した消費電力を交流での消費電力に換算してもよい。その理由は、ステップS13と同様である。
次に、HDD単位の消費電力の監視例を説明する。
図12は、第2の実施の形態の監視例(HDD単位)を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
(ステップS31)監視部103aは、1ミリ秒待機する。
(ステップS32)監視部103aは、監視対象のHDDの組を切り替える。ここで、第2の実施の形態では収納部102に計24個のHDDが収納されている場合を例示している。そこで、一例としてHDD6個を1つの組として扱う。CE100に計4つの組が存在することになる。ただし、1組当たりのHDDの個数は監視間隔に合わせて任意に決定できる。例えば、前回の監視対象がHDD#0〜HDD#5の識別子で示されるHDDの第1の組であった場合には、今回の監視対象をHDD#6〜HDD#11の識別子で示されるHDDの第2の組に切り替える。監視部103aは、HDDの組の切替回数に1を加算する。
(ステップS33)監視部103aは、今回の監視対象であるHDDの組に含まれるHDDごとに電力計測部103eで計測された消費電力の情報を収集して、メモリ103bに格納する。
(ステップS34)監視部103aは、ステップS32の開始から0.5ミリ秒が経過したことを検出すると、ステップS35に処理を進める。
(ステップS35)監視部103aは、HDDの組の切替回数が4であるか否かを判定する。HDDの組の切替回数が4である場合、処理をステップS36に進める。HDDの組の切替回数が4でない場合、ステップS32に処理を進める。
(ステップS36)監視部103aは、HDDの組の切替回数を0にリセットする。
(ステップS37)監視部103aは、全組(計4つの全ての組)の監視回数に1を加算する。
(ステップS38)監視部103aは、全組の監視回数が2であるか否かを判定する。全組の監視回数が2である場合、ステップS39に処理を進める。全組の監視回数が2でない場合、処理をステップS32に進める。
(ステップS39)監視部103aは、全組の監視回数を0にリセットする。そして、ステップS31に処理を進める。
監視部103aは、以上の手順を5ミリ秒周期で実行することで、電力計測部103eからHDD単位の消費電力の情報を継続的に収集する。なお、ステップS33において、監視部103aは電力監視部103eから収集した消費電力を交流での消費電力に換算してもよい。その理由は、ステップS13と同様である。
また、監視部103aは図10〜12の手順を並行して行う。ステップS11,S21,S31は1つの処理を便宜的に分けて記載したものであり、実行タイミングは同じである。
図13は、第2の実施の形態の1サイクルの監視対象の切替例を示す図である。前述したように、1サイクルは10ミリ秒である。CE単位の消費電力監視では、(監視対象として)PSU106側およびPSU107側を5ミリ秒(0.5サイクル)ごとに切り替えて消費電力を収集する。5ミリ秒の内訳は、計測時間が4ミリ秒、メモリ103bへのデータ書き込み(FlashWrite)の時間が1ミリ秒である。電力計測部103c,103dの両方から消費電力の情報を収集するためには10ミリ秒(1サイクル)を所要する。電力計測部103c,103dで個別に計測された消費電力を合計した値がCE単位の消費電力となる。
CM単位の消費電力監視では、5ミリ秒(0.5サイクル)内にCM104,105の両方を消費電力の収集対象とする。そのための計測時間は4ミリ秒(電力計測部103fでの計測に2ミリ秒、電力計測部103gでの計測に2ミリ秒)である。メモリ103bへのデータ書き込みの時間は1ミリ秒である。10ミリ秒(1サイクル)では、CM104,105それぞれについて2回ずつ消費電力の情報を収集可能である。
HDD単位の消費電力監視では、5ミリ秒(0.5サイクル)内に24個のHDDの全部を消費電力の収集対象とする。そのための計測時間は4ミリ秒である。メモリ103bへのデータ書き込みの時間は1ミリ秒である。ここで、図13では、HDDの組の識別子をHDD#G0,G1,G2,G3のように表している。例えば、HDD#G0はHDD#0〜5を含む組である。HDD#G1はHDD#6〜11を含む組である。HDD#G2はHDD#12〜17を含む組である。HDD#G3はHDD#18〜23を含む組である。また、計測時間4ミリ秒のうち、1回の計測につき1組当たりの計測時間は0.5ミリ秒である。したがって、5ミリ秒(0.5サイクル)内に各HDDにつき2回ずつ消費電力の情報を収集可能である。また、10ミリ秒(1サイクル)では、各HDDにつき4回ずつ消費電力の情報を収集可能である。
1サイクルで複数回の消費電力の情報を得られる場合、監視部103aは、1サイクル単位に得られた複数の消費電力の平均を当該1サイクルの消費電力とする。例えば、CM104については1サイクル当たり消費電力を2回取得できるので、2回の平均を当該1サイクル当たりの消費電力とする。また、例えば、1つのHDDについては1サイクル当たり消費電力を4回取得できるので、4回の平均を当該1サイクル当たりの消費電力とする。
図14は、第2の実施の形態の消費電力の集計例を示す図である。監視部103aは、計測された時間が連続する1サイクル(10ミリ秒)単位の消費電力の情報を10個用いて、平均の消費電力を算出することで、10サイクル(100ミリ秒)単位の消費電力の情報を生成する。例えば、1サイクル単位の消費電力の情報をcycle1,2,・・・と表す。cycleの文字列に付加された連続する番号は、計測された時間が連続することを示している(他の時間単位で取得された消費電力も同様)。10サイクル単位の消費電力の情報をmsDATA1,2,・・・と表す。cycle1,2,・・・,10の平均がmsDATA1である。同様に、cycle11,12,・・・,20の平均がmsDATA2である。このようにして、監視部103aは、10サイクルおきに新たにmsDATAを算出する。
監視部103aは、計測された時間が連続する10サイクル単位の消費電力の情報を10個用いて、平均の消費電力を算出することで、1秒単位の消費電力の情報を生成する。例えば、1秒単位の消費電力の情報をsDATA1,2,・・・と表す。msDATA1,2,・・・,10の平均がsDATA1である。同様に、msDATA11,12,・・・,20の平均がsDATA2である。このようにして、監視部103aは、1秒おきに新たにsDATAを算出する。監視部103aは、新たにsDATAが算出された時刻をRTCから取得する。監視部103aは、メモリ103bに記憶された消費電力テーブル121に当該時刻と新たなsDATAとを登録する。
監視部103aは、計測された時間が連続する1秒単位の消費電力の情報を60個用いて、平均の消費電力を算出することで、1分単位の消費電力の情報を生成する。例えば、1分単位の消費電力の情報をmDATA1,2,・・・と表す。sDATA1,2,・・・,60の平均がmDATA1である。同様に、sDATA61,62,・・・,120の平均がmDATA2である。このようにして、監視部103aは、1分おきに、新たにmDATAを算出する。監視部103aは、新たにmDATAが算出された時刻をRTCから取得する。監視部103aは、メモリ103bに記憶された消費電力テーブル121に当該時刻と新たなmDATAとを登録する。
監視部103aは、計測された時間が連続する1分単位の消費電力の情報を60個用いて、平均の消費電力を算出することで、1時間単位の消費電力の情報を生成する。例えば、1時間単位の消費電力の情報をhDATA1,2,・・・と表す。mDATA1,2,・・・,60の平均がhDATA1である。同様に、mDATA61,62,・・・,120の平均がhDATA2である。このようにして、監視部103aは、1時間おきに、新たにhDATAを算出する。監視部103aは、新たにhDATAが算出された時刻をRTCから取得する。監視部103aは、メモリ103bに記憶された消費電力テーブル121に当該時刻と新たなhDATAとを登録する。
監視部103aは、計測された時間が連続する1時間単位の消費電力の情報を12個用いて、平均の消費電力を算出することで、12時間単位の消費電力の情報を生成する。例えば、12時間単位の消費電力の情報を12hDATA1,2,・・・と表す。hDATA1,2,・・・,12の平均が12hDATA1である。同様に、hDATA13,14,・・・,hDATA24の平均が12DATA2である。このようにして、監視部103aは、12時間おきに、新たに12hDATAを算出する。監視部103aは、新たに12hDATAが算出された時刻をRTCから取得する。監視部103aは、メモリ103bに記憶された消費電力テーブル121に当該時刻と新たな12hDATAとを登録する。
また、監視部103aは、計測された時間が連続する1時間単位の消費電力の情報を24個用いて平均の消費電力を算出することで、24時間単位の消費電力の情報を生成する。例えば、24時間単位の消費電力の情報を24hDATA1,2,・・・と表す。hDATA1,2,・・・,24の平均が24hDATA1である。同様に、hDATA25,26,・・・,48の平均が24hDATA2である。このようにして、監視部103aは、24時間おきに、新たに24hDATAを算出する。監視部103aは、新たに24hDATAが算出された時刻をRTCから取得する。監視部103aは、メモリ103bに記憶された消費電力テーブル121に当該時刻と新たな24hDATAとを登録する。監視部103aは12hDATAを2つ用いて24hDATAを取得してもよい。
また、各時間を単位として消費電力の平均を算出する際に、収集したサンプルのうち消費電力の最大値と最小値とを除いて当該平均を算出してもよい。突発的に消費電力が大きく計測されたり、小さく計測されたりすることもあり、このようなサンプルは消費電力監視の精度を悪化させるおそれがあるからである。このような情報を取り除くことで、消費電力の計測の精度を向上し得る。
次に、CEの他の例を説明して、CE100と対比する。
図15は、CEの他のハードウェア例を示す図である。CE700は、収納部702、MP703、CM704,705およびPSU706,707を有する。CE700が備える各ユニットの説明は、CE100が備える同名の各ユニットの説明と同様である。このため、共通の事項の説明を省略し、相違点を説明する。
収納部702は収納部102と同様である。収納部702はHDD91,92,・・・を収納している。
MP703は、給電ラインPL11,PL12,PL13、データラインDL11を有する。給電ラインPL11は5VLの給電に用いられる。給電ラインPL12は5Vの給電に用いられる。給電ラインPL13は12Vの給電に用いられる。
データラインDL11は、CM704,705とPSU706,707との間のデータの入出力に用いられる。なお、図15ではCM704,705がHDD91,92,・・・へアクセスするためのデータラインの図示を省略している。
CM704,705の説明は、CM104,105の説明と同様である。ただし、CM704,705は、消費電力の情報をPSU706,707から収集する点がCM104,105の場合と異なる。
PSU706は、電力計測部706aを有する。電力計測部706aは、PSU706内で電圧および電流を計測することで消費電力を計測する。電力計測部706aは、計測した消費電力をCM704(あるいはCM705)に提供する。PSU707も同様に電力計測部707aを有している。電力計測部707aも、電力計測部706aと同様に、PSU707内で電圧および電流を計測することで消費電力を計測して、CM704(あるいはCM705)に提供する。
ここで、CE700では、電力計測部706a,707aがPSU706,707に設けられている点がCE100と異なる。この場合、電力計測部706aは、PSU706の出力電圧および出力電流を計測できる。このため、電力計測部706aはCE700全体を単位とした消費電力を取得可能である。しかし、PSU706の出力は給電ラインPL11,PL12,PL13を介して分岐され、CE700内の各部へ供給される。これに対して、電力計測部706aでは、分岐前の根元(PSU706内)での消費電力を取得できるものの、分岐先での消費電力を取得することは難しい。電力計測部707aも同様である。このため、CE700では、CM単位およびHDD単位の消費電力を取得することが容易でない。
これに対し、CE100では、MP103上に電力計測部103e,103f,103gを設けている。例えば、電力計測部103e,103f,103gは給電ラインPL1,PL2,PL3からHDD31,32,・・・およびCM104,105へ分岐した後のラインに設けられる。このため、CM104,105および各HDDについて、個別に消費電力を計測することができる。よって、CE100について、詳細な消費電力を取得できる。
また、監視部103aが電力計測部103e,103f,103gが計測した消費電力を収集してCM104,105に提供可能である。このため、CM104,105は、監視部103aから当該消費電力の情報を収集することで、CE100内の詳細な消費電力を容易に取得可能となる。例えば、CM104,105で消費電力を収集して集計することも考えられる。しかし、この場合、CM104,105において、集計などの余計な負荷が生じ、本来の処理(例えば、データアクセス)に悪影響を及ぼし得る。これに対し、第2の実施の形態では、CM104,105は、監視部103aが集計した消費電力の情報を取得しさえすればよいので、CM104,105に余計な負荷をかけずに済む。
また、CM104,105は、DE200,300で収集された消費電力の情報をDE200,300から取得することができる。このため、CE100において、ストレージシステム全体の詳細な消費電力状況を一元管理できる。
また、電力計測部103c,103d,103e,103f,103gをMP103上に設ける。このため、PSU106,107などに電力計測部を設けなくても、詳細な消費電力の監視を行える。近年ではストレージシステムで利用するデバイスの標準化が議論されており、例えば、SBB(Storage Bridge Bay)のような規格も考えられている。標準化されたPSUでは電力計測機能が省かれることも考え得る。MP103を用いれば、そのような場合にもCE単位の消費電力の監視を行える。加えて、CM単位、HDD単位での詳細な消費電力の監視も可能となる。
CE100についての利点は、DE200,300でも同様である。例えば、DE200,300においてもDE単位、IOM単位、HDD単位での詳細な消費電力の監視を行うことができる。また、IOMは監視部が集計した消費電力の情報を取得すればよく、IOMに余計な負荷をかけずに済む。更に、PSU内に電力計測部を設けなくても、DE単位の消費電力の監視を行える。
[第3の実施の形態]
以下、第3の実施の形態を説明する。前述の第2の実施の形態との相違点を主に説明し、共通の事項の説明を省略する。
第2の実施の形態では、CE100およびDE200,300において、CM(あるいはIOM)単位、HDD単位での詳細な消費電力の監視方法を例示した。第3の実施の形態では、詳細に取得した消費電力の情報を用いて、CE100やDE200,300の動作モードを制御し、省電力化を図る方法を例示する。
ここで、第3の実施の形態のストレージシステム(およびストレージシステムに含まれる各装置)は、図2で説明した第2の実施の形態のストレージシステムと同様である。また、第3の実施の形態のCE、DEのハードウェア例およびソフトウェア例は、図3〜7で説明した第2の実施の形態のCE100、DE200,300のハードウェア例およびソフトウェア例と同様である。このため、第3の実施の形態の各装置を第2の実施の形態と同一の名称・符号を付して示す。
ただし、管理部110,110aが監視部103aやDE200,300から取得した消費電力テーブル121,122,123に基づいて、CE100およびDE200,300の動作モードを制御する点が第2の実施の形態と異なる。ただし、管理部110,110aは、一方が当該動作モードの制御を行えばよく、他の一方はスタンバイ系とする。例えば、一方の管理部が障害などで動作していない場合に、他の一方の管理部が制御を代替する。以下では、管理部110が動作モードの制御を担っており、管理部110aはスタンバイ系であるとする。
図16は、第3の実施の形態の動作モードの例を示す図である。図16(A)はHDDの動作モードを例示している。HDDの動作モードは、RUN、IDLE、ECOmodeおよびPowerOFFに切り替え可能である。
RUNは、通常の運用時(定常的にデータアクセスを行う状態)の動作モードである。RUNでは、HDD内のほぼ全ての回路に電力が供給される。IDLEは、HDDの一部の回路への電力供給を停止する動作モードである。IDLEで活性化される回路数は、RUNで活性化される回路数よりも少ない。このため、IDLEではRUNよりも省電力化できる。ECOmodeは、IDLEの状態から更に磁気ディスクの回転を停止させる動作モードである。ECOmodeではIDLEよりも省電力化できる。PowerOFFは、HDDへの電力供給を停止させた状態である。PowerOFFではECOmodeよりも省電力化できる。
管理部110は、1つのHDDに対するIO負荷と当該HDDの消費電力とに基づいて、当該HDDの動作モードをRUNからIDLEへ、IDLEからECOmodeへ、ECOmodeからPowerOFFへ遷移させる。また、管理部110は、1つのHDDに対するIO負荷に基づいて、当該HDDの動作モードを、RUN以外の動作モードからRUNへ遷移させる。
ここで、HDDのIO負荷は、個々のHDDについて計測されるものである。各HDDのIO負荷は、HDDへアクセスするためにCM104,105が備えるインタフェースにおいて計測可能である。例えば、当該インタフェースがHDDに対して有する通信帯域が、どれだけ利用されているかを示す割合(IO負荷率)を当該IO負荷とする。例えば、管理部110は、計測された各HDDのIO負荷率を取得して、各HDDの動作モードの制御に用いる。具体的には、管理部110は次のようにHDDの動作モードの制御を行う。
HDDの動作モードがRUNのとき、当該HDDのIO負荷率および消費電力に増加変化がない状態が所定時間継続した場合に、当該HDDの動作モードをRUNからIDLEへ遷移させる。
HDDの動作モードがIDLEのとき、当該HDDのIO負荷率および消費電力に増加変化がない状態が所定時間継続した場合に、当該HDDの動作モードをIDLEからECOmodeへ遷移させる。
HDDの動作モードがECOmodeのとき、当該HDDのIO負荷率および消費電力に増加変化がない状態が所定時間継続した場合に、当該HDDの動作モードをECOmodeからPowerOFFへ遷移させる。
HDDの動作モードがIDLEのとき、当該HDDのIO負荷率の増加があった場合に、当該HDDの動作モードをIDLEからRUNへ遷移させる。
HDDの動作モードがECOmodeのとき、当該HDDのIO負荷率の増加があった場合に、当該HDDの動作モードをECOmodeから(IDLEを経て)RUNまで遷移させる。
HDDの動作モードがPowerOFFのとき、当該HDDのIO負荷率の増加があった場合に、当該HDDの動作モードをPowerOFFから(ECOmode、IDLEを経て)RUNまで遷移させる。
図16(B)はCM104の動作モードを例示している。ただし、CM105およびIOM204,205も同様である。CM104の動作モードは、RUN、IDLEおよびECOmodeに切り替え可能である。RUNは、通常の運用時の動作モードである。RUNでは、CM104内のほぼ全ての回路に電力が供給される。
IDLEは、CM104の一部の回路への電力供給を停止する動作モードである。IDLEで活性化される回路数は、RUNで活性化される回路数よりも少ない。このため、IDLEではRUNよりも省電力化できる。ECOmodeは、IDLEの状態から電力供給対象の回路を更に低減した動作モードである。ECOmodeではIDLEよりも省電力化できる。なお、IDLEおよびECOmodeの何れの場合においても、管理部110を動作させるための電力は供給される。
管理部110は、CM104と業務サーバ500との間のIO負荷とCM104の消費電力とに基づいて、CM104の動作モードをRUNからIDLEへ、IDLEからECOmodeへ遷移させる。また、管理部110は、CM104と業務サーバ500との間のIO負荷に基づいて、CM104の動作モードを、RUN以外の動作モードからRUNへ遷移させる。
ここで、CM104と業務サーバ500との間のIO負荷は、CA104dで計測可能である。例えば、CA104dが有する通信帯域が、どれだけ利用されているかを示す割合(IO負荷率)を当該IO負荷とする。例えば、管理部110は、CA104dで計測されたIO負荷率を取得して、CM104の動作モードの制御に用いる。具体的には、管理部110は次のようにHDDの動作モードの制御を行う。
CM104の動作モードがRUNのとき、CM104と業務サーバ500との間のIO負荷率およびCM104の消費電力に増加変化がない状態が所定時間経過した場合に、CM104の動作モードをRUNからIDLEへ遷移させる。
CM104の動作モードがIDLEのとき、CM104と業務サーバ500との間のIO負荷率およびCM104の消費電力に増加変化がない状態が所定時間継続した場合に、CM104の動作モードをIDLEからECOmodeへ遷移させる。
CM104の動作モードがIDLEのとき、CM104と業務サーバ500との間のIO負荷率の増加があった場合に、CM104の動作モードをIDLEからRUNへ遷移させる。
CM104の動作モードがECOmodeのとき、CM104と業務サーバ500との間のIO負荷率の増加があった場合に、CM104の動作モードをECOmodeから(IDLEを経て)RUNまで遷移させる。
図17は、第3の実施の形態の動作モード閾値テーブルの例を示す図である。動作モード閾値テーブル124は、記憶部120,120aに予め格納される。動作モード閾値テーブル124は、管理部110により、各HDDやCM(あるいはIOM)の現在の動作モードを特定するための情報である。動作モード閾値テーブル124は、区分、動作モード、IO負荷率および消費電力の項目を含む。
区分の項目には、該当するデバイスの種別が登録される。動作モードの項目には、動作モードを示す情報が登録される。IO負荷率の項目には、当該動作モードであると判断する際に、基準の閾値となるIO負荷率が登録される。なお、IDLEやECOmodeであっても、CM104がHDDの状態などを監視するためのIOが発生することもある。消費電力の項目には、当該動作モードであると判断する際に、基準の閾値となる消費電力の値が登録される。
例えば、動作モード閾値テーブル124には、区分が“HDD”、動作モードが“RUN”、IO負荷率が“12%以上”、消費電力が“7.0W以上”という情報が登録されている。これは、HDDの動作モードを判断する際、当該HDDのIO負荷率が12%以上および当該HDDの消費電力が7.0W以上の少なくとも一方を満たす場合に、当該HDDの動作モードはRUN状態であると判断できることを示す。
また、例えば、動作モード閾値テーブル124には、区分が“HDD”、動作モードが“IDLE”、IO負荷率が“12%未満”、消費電力が“4.0W以上、7.0W未満”という情報が登録されている。これは、HDDの動作モードを判断する際、当該HDDのIO負荷率が12%未満であり、かつ、当該HDDの消費電力が4.0W以上7.0W未満である場合に、当該HDDの動作モードはIDLE状態であると判断できることを示す。
ここで、RUN状態であると判断するためには、例えば、設定されたIO負荷率および消費電力の少なくとも一方が満たされていればよい(CMやIOMのRUN状態を判断する場合も同様)。一方、IDLE、ECOmodeおよびPowerOFFであると判断するためには、例えば、設定されたIO負荷率および消費電力の両方が満たされていることが条件である(CMやIOMのIDLE状態やECOmode状態を判断する場合も同様)。
また、例えば、動作モード閾値テーブルには、区分が“CM(IOM)”、動作モードが“RUN”、IO負荷率が“5%以上”、消費電力が“25W以上”という情報が登録されている。これは、CM104の動作モードを判断する際、CM104と業務サーバ500との間のIO負荷率が5%以上およびCM104の消費電力が25W以上の少なくとも一方を満たす場合に、CM104の動作モードはRUN状態であると判断できることを示す。
また、例えば、動作モード閾値テーブル124には、区分が“CM(IOM)”、動作モードが“IDLE”、IO負荷率が“5%未満”、消費電力が“10W以上25W未満”という情報が登録されている。これは、CM104の動作モードを判断する際、CM104と業務サーバ500との間のIO負荷率が5%未満であり、かつ、CM104の消費電力が10W以上25W未満である場合に、CM104の動作モードはIDLE状態であると判断できることを示す。
なお、以上の説明ではCM104を例示して説明したが、CM105およびIOM204,205もCM104と同様にして動作モードを判断できる。例えば、管理部110は、CM105およびIOM204,205からも、各モジュールが担当するHDDに対するIO負荷率や業務サーバ500からのIO負荷率を収集する。管理部110は、収集した情報に基づいて、CM105やIOM204,205の動作モードを把握できる。
次に、CE100において、1つのHDDに着目して動作モードを変更する際の手順を説明する。ただし、管理部110は複数のHDDを動作モードの変更対象として、以下の手順を各HDDについて実行することができる。
図18は、第3の実施の形態の動作モード変更例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
(ステップS41)管理部110は、動作モード更新間隔の設定を受け付ける。動作モード更新間隔とは、対象のHDDの動作モードを(省電力化する方向へ)変更する前に消費電力などを監視するための期間である。例えば、ストレージシステムの管理者は、運用管理サーバ600からCE100に対して当該動作モード更新間隔を入力することができる。
(ステップS42)管理部110は、対象のHDDの現在の動作モードを判定する。例えば、管理部110は当該HDDについて、現在の動作モードを次のように判定する。管理部110は、当該HDDの現時点のIO負荷率を取得する。取得の方法は前述した通りである。また、管理部110は、監視部103aから当該HDDについて現時点の消費電力の情報を取得する。管理部110は、記憶部120に記憶された動作モード閾値テーブル124を参照して、取得したIO負荷率と消費電力とが何れの動作モードの条件に合致しているかを判断することで、当該HDDの現時点の動作モードを判定する。なお、IO負荷率と消費電力とをサンプリングして現在の動作モードの判定を行ってもよい(後述する)。
(ステップS43)管理部110は、対象のHDDのIO負荷率と当該HDDの消費電力とを取得し、記憶部120に記録する。IO負荷率と消費電力との取得の方法は、ステップS42と同様である。管理部110は、監視部103aから取得した消費電力の情報を、記憶部120に記憶された消費電力テーブル121に記録する。
(ステップS44)管理部110は、対象のHDDのIO負荷率および消費電力が前回の取得時よりも増加しているか否かを判定する。増加していない場合、処理をステップS45に進める。増加している場合、処理をステップS47に進める。
(ステップS45)管理部110は、ステップS42の完了時点から、または、前回動作モード更新間隔の時間が経過した時点から、動作モード更新間隔の時間が経過したか否かを判定する。経過した場合、処理をステップS46に進める。経過していない場合、処理をステップS43に進める。
(ステップS46)管理部110は、対象のHDDの動作モードを省電力化する方向へ1段階変更する。例えば、当該HDDの動作モードがRUNであればIDLEへ変更する。IDLEであればECOmodeへ変更する。ECOmodeであればPowerOFFへ変更する。
(ステップS47)管理部110は、対象のHDDの動作モードをRUNへ復帰させる。なお、元々RUN状態であった場合には、その状態が維持される。
このようにして、管理部110はHDDごとにIO負荷率および消費電力を取得し、HDDごとの動作モードを変更する。
ここで、ステップS42では、HDDのIO負荷率と消費電力とをサンプリングして現在の動作モードの判定を行ってもよい。例えば、サンプリングされたIO負荷率と消費電力との値(サンプリング値)の変動を所定期間(例えば、動作モード更新間隔の時間)だけ取得し、当該サンプリング値の変動に基づいて動作モードを判断する。例えば、動作モード閾値テーブル124に設定された各動作モードのうち、取得した複数のサンプリング値に対して最も多く合致する範囲を条件にもつ動作モードを、当該HDDの動作モードとすることが考えられる。例えば、複数のサンプリング値のうちIDLEの範囲(IO負荷率が12%未満、消費電力が4.0W以上7.0W未満)に含まれるものが最多であれば、当該HDDの動作モードをIDLEとする。このようにして初期の動作モードを判定すれば、瞬間のIO負荷率や消費電力で判定するよりも動作モードの特定精度を高められる。
更に、ステップS47ではRUN状態へ復帰させるものとしたが、復帰先の状態をRUN以外の状態としてもよい。例えば、ECOmodeの場合に、ステップS44でIO負荷率および消費電力の増加変化があったとしても、RUN状態のIO負荷率(12%以上)または消費電力(7.0W以上)に達していないことも考えられる。その場合には、IDLE状態までの復帰に留めておいてもよい。RUN状態のIO負荷率または消費電力に達していなければ、単にパイロット用のアクセスなどで一時的に負荷が上がっただけとも考えられるからである。その場合、IDLE状態までの復帰に留めておけば、RUN状態まで復帰させるよりも省電力化を図れる。
また、管理部110は、図18と同様の手順により、CM104,105の動作モードも制御できる。例えば、CM104であれば、図18の説明において、HDDのIO負荷率を「CM104と業務サーバとの間のIO負荷率」と読み替えればよい。また、CM104の動作モードにはPowerOFFはないため、ECOmodeからPowerOFFへの変更は行われない。CM105についても同様である。更に、管理部110は、DE200,300についても同様の手順により各HDDおよびIOMの動作モードを制御できる。
なお、DE200については管理部210(または、管理部210a)で動作モードの変更を制御してもよい。同様に、DE300についてはDE300の管理部で動作モードの変更を制御してもよい。
図19は、第3の実施の形態の消費電力対比表を示す図である。消費電力対比表800は、CE100について、第3の実施の形態の動作モードの変更を行う前と後での消費電力を対比するものである。消費電力対比表800は、装置、区分、番号、IO負荷率(単位は%)、消費電力(単位はW)、現動作モード、変更後モードおよび変更後消費電力(単位はW)の項目を含む。
装置の項目には、装置(ここではCE100)を示す情報が表記されている。区分の項目には、HDDまたはCMの別を示す情報が表記されている。番号の項目には、個々のHDDおよび個々のCMを識別するための情報が表記されている。IO負荷率の項目には、現状のIO負荷率が表記されている。消費電力の項目には、現状の消費電力が表記されている。現動作モードの項目には、現在の動作モードが表記されている。変更後モードの項目には、変更後の動作モードが表記されている。変更後消費電力の項目には、動作モードの変更後の消費電力が表記されている。なお、消費電力対比表800の最下段には、合計の項目を設けて、動作モードの変更前の各部の消費電力の合計と、動作モードの変更後の各部の消費電力の合計とを表記している。なお、表記する情報が存在しない箇所には、“−”(ハイフン)を表記している。
例えば、消費電力対比表800では、HDD#0で示されるHDD31に対してIO負荷率が75%、消費電力が8.1Wであり、現動作モードがRUNであることが示されている。当該HDD31は、頻繁にアクセスが行われており、以後もRUN状態を維持する。このため、HDD31について、現動作モードおよび変更後モードは同一(RUN)である。変更前後での消費電力も同一である。HDD32(HDD#1のHDD)もHDD31と同様である。
また、消費電力対比表800では、HDD#6のHDDに対して、IO負荷率が10%、消費電力が5.0Wであり、現動作モードがIDLEであることが示されている。当該HDDは、動作モード更新間隔の間、この状態が継続したため、IDLEからECOmodeへ変更する。すると、当該HDDの消費電力は、5.0Wから2.0Wに低減する。HDD#7のHDDについても同様である。
また、消費電力対比表800では、HDD#15のHDDに対して、IO負荷率が5%、消費電力が2.0Wであり、現動作モードがECOmodeであることが示されている。当該HDDは、動作モード更新間隔の間、この状態が継続したため、ECOmodeからPowerOFFへ変更する。すると、当該HDDの消費電力は、5.0Wから0Wに低減する。HDD#16についても同様である。
また、消費電力対比表800では、MOD#0で示されるCM104に対して業務サーバ500との間のIO負荷率が50%、消費電力が30Wであり、現動作モードがRUNであることが示されている。CM104は、頻繁に利用されており、以後もRUN状態を維持する。このため、CM104について、現動作モードおよび変更後動作モードは同一(RUN)である。変更前後での消費電力も同一である。
また、消費電力対比表800では、MOD#1で示されるCM105に対して業務サーバ500との間のIO負荷率が0%、消費電力が15Wであり、現動作モードがIDLEであることが示されている。CM105は、動作モード更新間隔の間、この状態が継続したため、IDLEからECOmodeへ変更する。すると、CM105の消費電力は、15Wから10Wに低減する。
このように、管理部110は、各HDDおよびCM104,105ごとにIO負荷率および消費電力を取得する。そして、管理部110は、各HDDおよびCM104,105ごとの動作モードを制御して省電力化を図る。消費電力対比表の例では、現動作モードでは、消費電力の合計値が150Wであったものを、変更後の動作モードでは100Wまで低減している。このように、管理部110は、各HDDおよびCM104,105ごとにきめ細かな省電力制御を行うことができる。
なお、消費電力対比表800では、CE100を例示したが、DE200,300についても同様にして省電力化を図ることができる。
また、第3の実施の形態では、管理部110が動作モードを制御するものとしたが、当該動作モードの制御機能を備えたASICやFPGA(管理部110に対応する管理手段)をMP103上に設けてもよい。その場合、例えば、MP103において、各HDDへのIO負荷率に相当する情報やCM104と業務サーバ500との間のIO負荷率に相当する情報を取得する。MP103には、CM104と各HDDとの間のデータラインも存在するため、当該データラインの帯域を監視することでこれらの情報を取得することが考えられる。また、MP103はCM104から各IO負荷率に相当する情報を取得してもよい。このようにすれば、当該動作モードの制御に伴うCM104,105の負荷を軽減することができる。