以下、本発明の一実施の形態を、図面を参照しながら詳細に説明する。なお、以下の説明により本発明が限定されるものではなく、本発明はその趣旨を逸脱することなく変更、改良されうるとともに、本発明にはその等価物も含まれる。なお、本発明において主電源とは、ストレージ装置を構成する、記憶デバイスやコントローラなどのコンポーネントの一つ以上に稼動電力を供給する電源をいい、待機電源とは、ストレージ装置をブート状態に維持するのに必要な、好適には最低限の電力をストレージ装置に供給する電源をいう。
(1)第1の実施の形態におけるストレージシステムの構成
第1の実施の形態におけるストレージシステムの構成について説明する。図1乃至図6はストレージシステムの構成及びストレージシステムに接続される装置の構成を示し、図7乃至図14は各装置に具備される管理情報を示す。
図1にストレージシステムの構成を示す。このストレージシステムは、一つ以上のボリューム20300を利用する一台以上の上位ホスト装置10000及び一台以上のストレージ装置20000が、ストレージエリアネットワーク50000を介して互いに接続されることにより構成されている。
また、ストレージ装置20000を管理する管理計算機40000は、管理ネットワーク60000を介して複数のストレージ装置20000に接続している。ストレージエリアネットワークストレージエリアネットワーク50000には、複数のストレージ装置20000間でボリュームの移動を制御するためのボリューム移動用計算機70000が存在する。ボリューム移動用計算機70000は、管理計算機40000からのデータ移動要求を受け付けられるように、管理ネットワーク60000にも接続している。ボリューム移動用計算機は、図1において、ストレージ装置、管理計算機とは別装置として記載しているが、ストレージ装置内のコントローラ、或いは管理計算機がボリューム移動用制御手段を兼ねても良い。
上位ホスト装置H1、H2、H3及びH4は、ストレージエリアネットワーク50000を介して、それぞれストレージ装置ST1、ST2、ST3及びST4にアクセス可能である。なお、ストレージエリアネットワーク50000はファイバチャネル(Fibre Channel)プロトコルを用いたネットワークで、管理ネットワーク60000はIPプロトコルを用いたネットワークである。
ストレージ管理者90000は管理計算機40000を用いて、一つ又は複数のストレージ装置20000(ST1−ST4)をそれぞれ管理することができる。業務運用管理者80000は、一つ又は複数の上位ホスト装置10000(H1-H4)がユーザに対して提供する業務を管理する。例えば、預貯金の管理に関する複数の業務を複数のホスト装置を用いてユーザへ提供することである。ユーザに対する業務の提供は業務運用計画という形で実現される。後述する図14はこの業務運用計画に関する管理テーブルである。業務運用計画は、ホストがストレージ装置のボリュームへアクセスすることのスケジュールである。すなわち、一つの業務は一つのホスト装置の業務アプリケーションプログラムの実行によってユーザに提供される。このホスト装置はこの業務の遂行においてデータを、このホスト装置がアクセス可能な特定のボリュームに格納し、或いは特定のボリュームからデータを読み出す。
図2に上位ホスト装置10000の詳細な構成例を示す。上位ホスト装置10000は、プロセッサ10500、メモリ10200及びストレージエリアネットワーク50000に接続するための一つ以上のネットワークインターフェイス(Network Interface(I/F))10100と、処理結果を出力するためのディスプレイ装置等の出力部10400と、キーボード又はマウス等の入力部10300とを有し、これらは内部バス10600で互いに接続される。メモリ10200には、OS(オペレーティングシステム)と、ボリューム20300へのデータアクセスを伴う処理を行う一つ以上の業務アプリケーションプログラム10210とがハードディスク等の記憶媒体(図示せず)からロードされ、プロセッサ10500がこれらのプログラムを実行することにより、ストレージシステムのボリューム20300のデータが読み書きされる。
図3にボリューム移動用計算機70000の詳細な構成例を示す。ボリューム移動用計算機70000は、プロセッサ70500と、メモリ70200と、ストレージエリアネットワーク50000に接続するための一つ以上のネットワークインターフェイス70100と、管理ネットワーク60000に接続するための一つ以上の管理ポート70800と、処理結果を出力するためのディスプレイ装置等の出力部70400と、キーボードやマウス等の入力部70300とを有し、これらは内部バス70600で互いに接続される。メモリには、OS(オペレーティングシステム)と、ストレージ装置20000間のボリューム20300のデータ移動を実行するボリューム移動実行プログラム70210とがハードディスク等の記憶媒体(図示せず)からロードされ、プロセッサ70500がこれらのプログラムを実行することにより、ボリューム20300のデータが読み書きされる。
図4にストレージ装置20000の詳細な構成例を示す。ストレージ装置20000は、ストレージエリアネットワーク50000に接続するためのネットワークインターフェイス20100と、管理ネットワーク60000に接続するための管理ポート20800と、ハードディスク等の記憶媒体であるディスク20001、20002、20003、20005、20005及び20006と、上位ホスト装置10000に割当てられたボリューム20300と、未割当て記憶領域20400と、ストレージ装置20000内のコンポーネントへの電源供給を制御する電源制御回路20900と、を有し、これらはストレージ装置20000内のコントローラ20200に接続され、コントローラ20200により制御される。
さらに、ストレージ装置20000は、ストレージ装置20000内部のストレージ装置20000を構成する、記憶デバイス(ディスクなど)やコントローラなどの各構成要素(以下、「コンポーネント」という)に主電源を供給する回路(以下、「主電源回路」という)20700と、主電源回路20700がオフの場合、メモリ20500内の各プログラムを実行するために必要な電力を、コントローラ20200とメモリ20500とに供給するための待機電源回路20600とを有し、これらは、電源制御回路20900に接続される。電源制御回路は、電力の供給を必要とする全てのコンポーネントへの主電力の供給、特定のコンポーネントを選択して、選択したコンポーネントへの主電源の供給、あるいはコントローラ及びメモリへの待機電力の供給を行なう。電源供給回路からの電力供給はコントローラ20100によって制御される。ボリューム20300は、一台のディスクもしくは、複数台のディスクの物理的な記憶領域をRAIDで構成することによって実現される。
メモリ20500には、管理計算機40000から発行されたストレージ装置20000内の電源制御要求を実行する電源制御プログラム20510と、管理計算機40000から発行されたストレージ装置20000内のボリューム20300の作成および削除と上位ホスト装置10000への割当ての要求を実行するボリューム20300割当てプログラム20520と、ボリューム20300の構成と上位ホスト装置10000への割当てを保持するボリューム管理テーブル20530と、ストレージ装置20000が装備するディスクを管理するディスク管理テーブル20540と、装置内のコンポーネントの電源供給状態を保持する電源管理テーブル20550とが格納されている。これらの各プログラムおよび各テーブルは、ストレージ装置20000起動時に、ハードディスク等の記憶媒体(図示せず)からロードされ、コントローラ20200により処理されるものである。
図5にも、ストレージ装置20000の詳細な構成例を示す。図5は、ストレージ装置20000内にコントローラ20200、ネットワークI/F20101、ボリューム20300及び未割当て記憶領域20400を冗長構成した場合の一例を示したものである。
ストレージ装置20000は、ストレージエリアネットワーク50000に接続するためのネットワークインターフェイス20100と、管理ネットワーク60000に接続するための管理ポート20800と、ハードディスク等の記憶媒体であるディスク20001、20002、20003、20004、20005、20006、20007、20008、20009、20010、20011及び20012と、上位ホスト装置10000に割当てられた一つ以上のボリューム20300と、未割当て記憶領域20400と、ストレージ装置20000内のコンポーネントへの電源供給を制御する電源制御回路20900と、を有し、これらはストレージ装置20000内の制御を行うコントローラ20200に接続され、コントローラ20200により制御される。
図6に管理計算機40000の詳細な構成例を示す。管理計算機40000は、プロセッサ41000と、メモリ42000と、管理ネットワーク60000に接続するための管理ポート43000と、処理結果を出力するためのディスプレイ装置等の出力部45000と、キーボード又はマウス等の入力部44000とを有し、これらは内部バス46000で互いに接続される。
メモリ42000には、後述する業務運用計画入力プログラム42100と、電源制御指示プログラム42150と、ボリューム構成情報収集プログラム42200と、ボリューム割当て指示プログラム42250と、入出力プログラム42300と、管理対象となるストレージ装置を特定するためのストレージ装置テーブル42400と、管理対象のストレージ装置20000の未割当て記憶領域20400を保持する未割当て記憶領域管理テーブル42500と、管理対象のストレージ装置20000の割当て済みのボリューム20300の構成情報を保持するボリューム構成情報テーブル42600と、上位ホスト装置10000を利用するユーザにより業務に利用されるボリュームを保持するボリューム運用管理テーブル42700と、業務の運用計画を保持する業務運用計画テーブル42800と、が格納されている。
これら各プログラムおよび各テーブルは、プロセッサ41000がハードディスク等の記憶媒体(図示せず)からメモリ42000にロードして実行することにより実現される。また、図示していないが、メモリ42000には、OS(オペレーティングシステム)が記憶媒体からロードされ、プロセッサ41000がこれらの各プログラムを実行している。
図7、図8及び図9に、ストレージ装置20000が具備するテーブルの一例を示す。図7は、ストレージ装置20000が具備する記憶領域の構成を示す、ボリューム構成管理テーブル20530の一例である。ボリューム構成管理テーブル20530は、ボリューム20300及び未割当て記憶領域20400をストレージ装置20000内で一意に識別するための識別子であるボリュームIDを登録するフィールド20531と、ボリューム20300や未割当て記憶領域20400の容量を登録するフィールド20532と、ボリューム20300の割当先上位ホスト装置を登録するフィールド20533と、ボリューム20300がストレージエリアネットワーク50000に接続するために利用するネットワークインターフェイス20100を登録するフィールド20534と、ボリューム20300を構成するアレイグループ(Array Group)の識別子を登録するフィールド20535と、から構成されている。
図8は、ストレージ装置20000に装備されたディスク20001と、ディスク容量と、複数のディスクにより構成されるアレイグループを示す、ディスク管理テーブル20540の一例である。ディスク管理テーブル20540は、ストレージ装置20000内でディスク20001を一意に識別するための識別子であるディスクIDを登録するフィールド20541と、ディスクの容量を登録するフィールド20542と、ディスク20001により構成されるアレイグループの識別子を登録するフィールド20543と、から構成されている。ここで、アレイグループの識別子は、ボリューム構成管理テーブル20530と同じ識別子を用いる。
図9は、ストレージ装置20000内にあるコンポーネントの電源供給状態を監視する、電源管理テーブル20550の一例である。電源管理テーブル20550は、ストレージ装置20000内部のストレージ装置20000を構成する装置である各コンポーネントをストレージ装置20000内で一意に識別するための識別子であるコンポーネントIDを登録するフィールド20551及び電源供給状態を登録するフィールド20552とから構成されている。
図10、図11、図12、図13及び図14に、管理計算機40000が具備する各テーブルの一例を示す。図10は、管理計算機40000が管理対象であるストレージ装置20000を特定するためのストレージ装置テーブル42400の一例である。ストレージ装置テーブル42400は、管理対象装置を管理計算機40000内で一意に識別するための識別子であるストレージ装置IDを登録するフィールド42410と、装置の種類を登録するフィールド42420と、管理対象装置のベンダ名、モデル名又はシリアル番号など、一般に装置を一意に特定するための装置識別情報を登録するフィールド42430と、管理対象装置の管理ポート20800に接続するための管理ポート20800のIPアドレスを登録するフィールド42440と、から構成されている。
なお、これらの情報は、管理計算機40000を取り扱うストレージ管理者90000によって管理計算機40000から予め登録してもよい。また、ストレージエリアネットワーク50000又は管理ネットワーク60000上のネームサービスなどを用いて自動的に作成してもよい。
図11は、ストレージ装置40000が具備する、上位ホスト装置へ割り当てられていない、未割当て記憶領域20400の容量を管理する、未割当て記憶領域管理テーブル42500の一例である。未割当て記憶領域管理テーブル42500は、ストレージ装置IDを登録するフィールド42510及び未割当て記憶領域20400の容量を登録するフィールド42520から構成される。
図12は、管理計算機40000が、管理対象であるストレージ装置20000にある、上位ホスト装置への割当て済みのボリューム20300を管理するためのボリューム構成情報テーブル42600の一例である。ボリューム構成情報テーブル42600は、ストレージ装置20000の装置IDを登録するフィールド42610と、ストレージ装置20000内でボリューム20300を一意に識別するための装置内ボリュームIDを登録するフィールド42620と、ボリュームの容量を登録するフィールド42630と、ボリューム20300の割当先上位ホスト装置を登録するフィールド42640と、ボリューム20300を制御するコントローラ20200のコントローラIDを登録するフィールド42650と、ボリューム20300を構成するアレイグループを登録する42660と、から構成されている。
図13は、業務IDと、この業務IDで特定された業務を、上位ホスト装置が実行する上でアクセスするボリュームID(グローバルボリュームID)との対応させた情報を保持するボリューム運用管理テーブル42700の一例である。ボリューム運用管理テーブル42700は、管理計算機40000及び業務運用管理者80000とストレージ管理者90000がボリューム20300を一意に識別するためのグローバルボリュームIDを登録するフィールド42710と、そのボリューム20300を利用する業務を管理計算機40000および業務運用管理者80000及びストレージ管理者90000が一意に識別するための業務IDを登録するフィールド42720と、ボリューム20300が格納されているストレージ装置20000のIDを登録するフィールド42730と、装置内のボリュームIDを登録するフィールド42740と、から構成されている。
図14は、業務運用管理者80000が担当する業務の運用開始や運用停止のタイミングやサイクルを保持する業務運用計画テーブル42800の一例である。業務運用計画テーブル42800は、業務IDを登録するフィールド42810及び業務の運用又は業務の停止の業務運用計画を登録するフィールド42820で構成される。ここで、図14では、日数単位の業務運用計画を登録した例を示しているが、業務運用計画テーブル42800に対し週間、月間、又は年間など、任意の一定の期間で統一された業務運用計画を登録してもよい。また、一度業務運用計画が業務運用計画テーブル42800に登録された後であっても、業務運用管理者80000が担当する業務の変更に応じて、業務運用計画テーブル42800の内容を変更することができる。図13に示すように、業務はボリュームに対応しており、かつ、ボリュームは複数のストレージ装置の間で移動することができるために、その日に運用される業務に対応するボリュームを他のストレージ装置に移動させることによって、ストレージシステム全体で複数の業務を遂行するためのボリュームを一部のストレージ装置を集約して、残りのストレージ装置の電源をオフすることができる。
(2)第1の実施の形態のプログラムの詳細説明
(2−1)ストレージ装置が具備する各プログラム
次に第1の実施の形態におけるストレージ装置20000が実行するプログラムである電源制御プログラム20510及びボリューム割当てプログラム20520の処理フローについて説明する。
コントローラ20200は、管理計算機40000から管理ネットワーク60000を介して送信された、ストレージ装置の電源を制御するためのコマンド(以下「電源制御要求」という)を受け取り、この制御コマンドに基づいて電源制御プログラム20510を実行して、電源制御回路を動作させる。具体的には、ストレージ装置20000が電源制御要求を受け取ると、コントローラ20200は、電源制御要求に指定されているコンポーネントへの電源供給を要求において指定された状態にするために、電源制御回路20900へ制御信号を送信する。電源制御回路は、主電源回路をオフして待機電源回路をオンする、又は、主電源回路をオンしたまま各コンポーネント側の電源スイッチをオフするなどの電源制御処理をストレージ装置内で実現する。コントローラはこの制御が適用された後の状態を既述の電源管理テーブルに登録する。
また、電源制御プログラム20510は主電源回路20700がオフの状態のストレージ装置に、上位ホスト装置10000やボリューム移動実行手段(ボリューム移動用計算機)70000からボリューム20300や未割当て記憶領域20400へのアクセス要求が送信されると、主電源回路20700をオンにしてアクセス対象のボリューム20300を構成するディスク20001、及びコントローラ20200へ電力を供給するようにする。
ボリューム割当てプログラム20520は、ストレージ装置20000内のボリューム20300の作成と指定された上位ホスト装置10000へのボリューム20300の割当てと、ボリューム20300の割当て解除と解除されたボリューム20300の未割当て記憶領域20400への登録とを行うプログラムであり、ストレージ装置20000内のコントローラ20200によって実行される。具体的には、コントローラ20200は、管理計算機40000から上位ホスト装置10000へのボリューム20300割当て要求を受け取ると、ボリューム割当てプログラム20520をボリュームを割当てるためのボリューム割当てモードにして、このプログラムを実行する。
コントローラ20200が未割当て記憶領域20400からボリューム割当て要求で指示された容量のボリューム20300を作成し、指示された上位ホスト装置10000へボリューム20300を割当てる。次に、コントローラ20200は、ボリューム構成管理テーブル20530と、ディスク管理テーブル20540と、電源管理テーブル20550とを更新する。最後にコントローラ20220は、作成したボリューム20300の装置内ボリューム20300IDを管理計算機40000へ送信し、ボリューム割当てプログラム20520を終了する。また、管理計算機40000からボリューム20300解除要求をストレージ装置20000が受け取ると、コントローラ20200はボリューム割当てプログラム20520をボリューム20300解除モードで実行する。次に、コントローラ20200は、指定されたボリューム20300の指定された上位ホスト装置10000への割当てを解除し、ボリューム20300を未割当て記憶領域20400に登録する。
次に、コントローラ20200は、ボリューム構成管理テーブル20530、ディスク管理テーブル20540及び電源管理テーブル20550を更新する。最後に、コントローラ20200が、ボリューム20300割当て解除成功を管理計算機40000へ送信すると、ボリューム割当てプログラム20520を終了する。
(2−2)ボリューム移動用計算機が具備するボリューム移動実行プログラム
本実施形態におけるボリューム移動実行プログラム70210は、例えば、管理計算機40000及び管理ネットワーク60000を介して指示パラメータとなるストレージ装置20000の装置内ボリュームIDを含む情報を受け取る独立のボリューム移動用計算機70000で実行されるプログラムである。ボリューム移動実行プログラム70210の実行によりストレージエリアネットワーク50000を介してストレージ装置20000間のボリューム20300の移動を行う。
具体的には、管理計算機40000から、ボリューム移動用計算機70000へ、パラメータとなる情報、すなわち、移動元のストレージ装置20000と、装置内ボリュームIDと、移動先のストレージ装置20000と、装置内ボリュームIDとを送信する。ここで、ボリューム20300は、データを格納する、512バイトを単位とするブロックの集合体である。
ボリューム移動実行プログラム70210は、管理計算機40000から受け取ったパラメータを元に、移動元のストレージ装置20000のボリューム20300の最初のブロックから最後のブロックまでを、移動先のストレージ装置20000のボリューム20300にコピーする。また、ボリューム移動実行プログラム70210は、管理計算機40000から、ボリューム移動用計算機70000に対し、ボリューム20300のスワップ(交換)指示が渡された場合は、移動元のストレージ装置20000のボリューム20300と移動先のストレージ装置20000のボリューム20300のブロックを最初から順に交換する。従って、管理計算機40000は、ボリューム移動用計算機70000に対する指示パラメータとして、移動元のストレージ装置20000及び装置内ボリューム20300IDと、移動先のストレージ装置20000及び装置内ボリューム20300IDとを渡すだけでよい。
(2−3)管理計算機が具備する各プログラム
(2−3−1)ボリューム構成情報収集プログラム及び入出力プログラム
次に第1の実施の形態における管理計算機40000が実行する各プログラムのフローについて、図15乃至図28を用いて説明する。まず、詳細フローを図示しない、ボリューム構成情報収集プログラム42200及び入出力プログラム42300について述べる。
ボリューム構成情報収集プログラム42200は、管理計算機40000が、管理対象のストレージ装置20000のストレージ装置20000を構成する情報を収集するため定期的に実行する、又は、管理計算機40000が、ストレージ管理者90000からの指示や管理計算機40000に具備される他のプログラムからの指示により実行するプログラムである。具体的には、ストレージ装置テーブル42400に登録された複数のストレージ装置20000に対して、当該ストレージ装置20000のIPアドレスフィールド42440のIPアドレスを用いて構成情報取得命令を発行し、ストレージ装置20000が具備するボリューム構成管理テーブル20530の値を取得する。
管理計算機40000は、取得したボリューム構成管理テーブル20530の値を管理計算機40000内のボリューム運用管理テーブル42700の対応する各フィールドにコピーする。一方、ボリューム構成情報収集プログラム42200は、取得したボリューム構成管理テーブル20530が示す未割当て記憶領域20400の値を未割当記憶領域管理テーブル42500の対応する各フィールドにコピーする。本ボリューム構成情報収集プログラム42200により、管理計算機40000は、管理対象とするストレージ装置20000のボリューム構成情報の値を最新のものとすることができる。
入出力プログラム42300は、後述する業務運用計画入力プログラム42100及びボリューム割当て指示プログラム42250に対する入力要求を管理計算機40000の出力部に出力し、業務運用管理者80000又はストレージ管理者90000が業務運用計画入力プログラム42100及びボリューム割当て指示プログラム42250に対する実行指示を受け取り、業務運用計画入力プログラム42100及びボリューム割当て指示プログラム42250プログラムを開始させるプログラムである。本発明の実施形態では、入力要求を後述する図15又は図16のように画面表示する例を記載したが、入力要求はこれに限らず、設定ファイルの記入によるバッチ処理やコマンド入力による処理であってもよい。
(2−3−2)業務運用計画入力プログラム
次に、管理計算機40000が具備するその他の前記プログラムについて説明する。業務運用管理者80000が担当する業務の運用開始や運用停止のタイミングやサイクルを保持する業務運用計画は、業務運用計画入力プログラム42100を管理計算機40000が実行することで、業務運用計画テーブル42800に登録される。
入出力プログラム42300は、図15に示すような業務運用計画入力画面H1000を出力して、業務運用管理者80000又はストレージ管理者90000から業務の運用や停止を示す業務運用計画を取得する。業務運用計画入力画面H1000は、ストレージシステムで一意に業務を識別するための業務IDを入力するフィールドH1005と、日付を入力するフィールドH1010と、指定した日の業務の運用又は停止を選択するフィールドH1015と、入力した情報を登録する登録ボタンH1020と入力を破棄するキャンセルボタンH1025と、から構成されている。ここで、業務運用計画入力画面H1000への入力は、管理計算機40000の入力部を介して業務運用管理者80000又はストレージ管理者90000によって行われる。
業務運用管理者80000又はストレージ管理者90000により、登録ボタンH1020が押されると、業務運用計画入力プログラム42100が開始される。業務運用計画プログラム42100により、与えられた入力情報が業務運用計画テーブル42800の対応する各フィールドへ登録される。最後に、管理計算機40000は、業務運用計画が登録されたことを示す結果を出力し、業務運用計画入力プログラム42100を終了する。
(2−3−3)ボリューム割当て指示プログラム
業務運用管理者80000又はストレージ管理者90000は、ボリューム割当て指示プログラム42250を、管理計算機40000により実行し、上位ホスト装置10000に対するボリューム20300を割当て又は割当て解除のために利用する。具体的には、入出力プログラム42300により、図16に示すようなボリューム割当て画面H2000を出力し、業務運用管理者80000又はストレージ管理者90000からボリューム20300割当て要求を取得する。
ボリューム割当て画面H2000は、業務IDを選択するフィールドH2050と、割当先の上位ホスト装置10000を選択するフィールドH2100と、ボリューム20300の容量を入力するフィールドH2150と、ボリューム20300をストレージシステムで一意に識別するためのグローバルボリュームIDを入力するフィールドH2200と、入力した情報を登録する登録ボタンH2250及び入力を破棄するキャンセルボタンH2300とから構成されている。業務運用管理者80000又はストレージ管理者90000により、登録ボタンH2250が押されると、管理計算機40000は、図17で示されるボリューム割当て指示プログラム42250を開始する(ステップM1005)。
図17は、ボリューム割当て指示プログラム42250が実行されたときのフローを示す。まず、管理計算機40000は、業務運用管理者80000又はストレージ管理者90000からボリューム割当て要求を受信する(ステップM1005)。次に、管理計算機40000は、ボリューム構成情報を収集するために、ボリューム構成情報テーブル42600の更新を要求する(ステップM1010)。具体的には、管理計算機40000がボリューム構成情報収集プログラム42200に対し、ボリューム構成情報収集を要求する。
次に、管理計算機40000は、管理対象のストレージ装置20000に具備された電源管理テーブル20550を取得する(ステップM1015)。
次に、管理計算機40000は、ステップM1010で取得した電源管理テーブル20550及び未割当て記憶領域管理テーブル42500を参照し、主電源回路20700がオンのストレージ装置20000の中から、未割当て記憶領域20400の容量が最大となるストレージ装置20000を抽出する(ステップM1020)。このように主電源回路20700がオンのストレージ装置20000から優先して抽出を行うのは、後に主電源回路20700がオンのストレージ装置20000に運用されているボリュームを集中して割当てるためである。
次に、管理計算機40000は、ステップM1020で抽出したストレージ装置20000に、ステップM1005で受信したボリューム20300割当て要求で指示された容量のボリューム20300が作成可能か調べる(ステップM1025)。ステップM1025で、ボリューム20300が作成できない場合、管理計算機40000は、主電源回路20700がオフのストレージ装置20000の中から、未割当て記憶領域20400が最大のストレージ装置20000を抽出する(ステップM1030)。
次に、管理計算機40000は、ステップM1030で抽出したストレージ装置20000に、ステップM1005で受信したボリューム割当て要求で指示された容量のボリューム20300が作成可能か調べる(ステップM1035)。管理計算機40000は、ステップM1035で、ボリューム20300が作成できないときには(ステップM1035:NO)、ボリューム20300作成不可能を通知し(ステップM1040)、ボリューム割当て指示プログラム42250を終了する。管理計算機40000は、ステップM1025、又は、ステップM1035でボリューム20300を作成することができるときには(ステップM1035:YES)、抽出したストレージ装置20000へボリューム割当て要求に指示された容量のボリューム20300を作成し、ボリューム割当て要求で指示された上位ホスト装置10000へ作成されたボリューム20300を割り当てる指示を送信する(ステップM1045)。
管理計算機40000は、該当するストレージ装置20000より、装置内ボリュームIDを受信する(ステップM1050)。次に、管理計算機40000は、ボリューム運用管理テーブル42700に、作成したボリューム20300を追加し、ボリューム運用管理テーブル42700を更新する(ステップM1055)。具体的には、ボリューム運用管理テーブル42700のグローバルボリュームIDフィールド42710にボリューム20300割当て要求に含まれるボリューム20300IDを追加し、業務IDフィールド42720にボリューム割当て要求に含まれる業務IDを登録する。さらに、ステップM1025でボリューム20300の作成を指示したストレージ装置20000のIDを該当するストレージ装置20000IDフィールド42730に登録し、ステップM1050で受信した装置内ボリューム20300IDをボリュームIDフィールド42740に登録する。
最後に、管理計算機40000は、ボリューム20300の作成が成功したことを示す結果を出力し(ステップM1060)、ボリューム割当て指示プログラム42250を終了する(ステップM1065)。以上がボリューム割当て指示プログラム42250に基づき上位ホスト装置10000に対してボリューム20300割当てるための割当てモードの場合のフローである。
以下、ボリューム割当て指示プログラム42250に基づき上位ホスト装置10000に対して割り当てたボリューム20300を解除するための解除モードの場合のフローを説明する。まず、入出力プログラム42300は、図18に示すようなボリューム解除画面H2500を出力して、業務運用管理者80000又はストレージ管理者90000からボリューム20300解除要求を取得する。ボリューム解除画面H2500は、業務IDを選択するフィールドH2550と、選択した業務により利用されているボリューム20300のグローバルボリュームID、容量及びボリューム割当先の上位ホスト装置10000を表示するフィールドH2600と、解除するボリューム20300のグローバルボリュームIDを入力するフィールドH2650及び解除ボタンH2700と、から構成されている。
業務運用管理者80000又はストレージ管理者90000が解除ボタンH2700を押すと、管理計算機40000は、ボリューム割当て指示プログラム42250を、ボリューム20300を解除するための解除モードで開始する。具体的には、まず、管理計算機40000は、業務運用管理者80000又はストレージ管理者90000からボリューム20300解除要求を受信する。
次に、管理計算機40000は、ボリューム運用管理テーブル42700から、ボリューム解除画面H2500の入力フィールドH2650に入力されたグローバルボリュームIDが示す値を抽出する。次に、管理計算機40000は、抽出したストレージ装置IDを有するストレージ装置20000へ、抽出した装置内ボリュームIDの割当て解除及び未割当て記憶領域20400への登録の指示を送る。次に、管理計算機40000は、ストレージ装置20000から、ボリューム割当て解除及び未割当て記憶領域20400への登録成功を受信する。最後に、管理計算機40000は、ボリューム運用管理テーブル42700から要求されたボリューム20300を削除し、ボリューム20300の解除成功を出力し、処理を終了する。
(2−3−4)電源制御指示プログラム
(2−3−4−1)電源制御指示プログラムの概要
電源制御指示プログラム42150は、管理計算機40000が定期的に実行するか、又は、ストレージ管理者90000の指示に基づき管理計算機40000が実行する。電源制御指示プログラム42150のフローを、図19乃至図21に示すフローチャートを用いて説明する。
まず、図19のフローについて説明する。管理計算機40000は、ボリューム構成情報を取得するため、ボリューム構成情報収集プログラム42200を実行し、取得したボリューム構成情報を反映させるため、ボリューム構成情報テーブル42600を更新する(ステップS1005)。次に、管理計算機40000は、ストレージ装置テーブル42400にある全ストレージ装置20000に対して、ステップS1015乃至ステップS1035を実行する(ステップS1010)。まず、管理計算機40000は、未処理のストレージ装置20000を選択する(ステップS1015)。次に、管理計算機40000は、業務運用計画テーブル42800と、ボリューム運用管理テーブル42700及びボリューム構成情報テーブル42600とを参照し、選択したストレージ装置20000に格納されているボリューム20300にアクセスがあるか調査する(ステップS1020)。
ここで、管理計算機40000は、ボリューム20300のアクセス状態を、図14に示される業務運用計画テーブル42800に保持された、業務に関するあらかじめ固定された運用計画情報に基づいて判断し、ボリューム20300を利用する業務が運用であるときにはアクセスありとし、停止であれば、アクセスなしとする。管理計算機40000は、ステップS1020で、選択したストレージ装置20000内にアクセスのあるボリューム20300があるときには(ステップS1020:YES)、ステップS1035へ進む。管理計算機40000は、ステップS1020で、選択したストレージ装置20000内にアクセスのあるボリューム20300がないときには(ステップS1020:NO)、選択したストレージ装置20000に対し、主電源回路20700をオフにする指示を送信する(ステップS1025)。
次に、管理計算機40000は、選択したストレージ装置20000を電源処理済とする(ステップS1030)。次に、管理計算機40000は、選択したストレージ装置20000をステップS1020の処理済とする(ステップS1035)。管理計算機40000は、該当する全てのストレージ装置20000がステップS1020の処理済となると、さらに図20のフローを実行する。管理計算機40000は、電源処理済でないストレージ装置20000に対して、ステップS1045からステップS1100までの処理を実行する(ステップS1040)。
管理計算機40000は、電源処理済でないストレージ装置20000から、ステップS1075の処理が未処理のストレージ装置20000を選択し、これを装置Aとする(ステップS1045)。管理計算機40000は、電源処理済でなく、かつ装置Aでないストレージ装置20000に対して、ステップS1055乃至ステップS1075を実行する(ステップS1050)。管理計算機40000は、電源処理済でなく、かつ装置Aでない、ステップS1075が未処理のストレージ装置20000を選択し、これを装置Bとする(ステップS1055)。管理計算機40000は、装置A内のアクセスのある全ボリューム20300を、装置Bへ移動可能か調査する(ステップS1060)。
管理計算機40000は、ステップS1060で、ボリューム20300全てがコピー不可能なときには(ステップS1060:NO)、装置Aのアクセスのある全ボリューム20300及び装置Bのアクセスのないボリューム20300がスワップ(交換)可能か調査する(ステップS1065)。管理計算機40000は、ステップS1060で、ボリューム20300がコピー可能なとき(S1060:YES)、又はステップS1065で、スワップが可能なときには(ステップS1065:YES)、装置Bを移動先装置候補とする(ステップS1070)。
管理計算機40000は、ステップS1065でスワップ不可能なとき(ステップS1065:NO)、又はステップS1070にて装置Bを移行先候補とした後、装置BをステップS1050の処理済とする(ステップS1075)。管理計算機40000は、ステップS1050の処理後、移動先装置候補から、移動先装置を決定可能か調査する(ステップS1080)。ここで、移動先装置の決定の際に、装置Aのアクセスのあるボリューム20300の総容量より、移動先装置のアクセスのあるボリューム20300の総容量のほうが大きいまたは等しく、かつ該当する移動先装置候補が複数ある場合、未割当て記憶領域の容量が最も大きい装置とするという条件を用いてもよい。
管理計算機40000は、ステップS1080で、移動先装置が決まらないときには(ステップS1080:NO)、装置Aを処理済みとする(ステップS1100)。管理計算機40000は、ステップS1080で、移動先装置が決まったときには(ステップS1080:YES)、移動先装置に装置Aのアクセスがあるボリューム20300と同容量のボリューム20300を作成し、ボリューム移動実行プログラム70210に、装置Aのアクセスのある全ボリューム20300を移動先装置の作成したボリューム20300へコピーする要求を送信する。又は、管理計算機40000は、装置Aのアクセスのあるボリューム20300及び、移動先装置のアクセスのないボリューム20300のスワップ要求をボリューム移動用計算機70000に送信する(ステップS1085)。
次に、管理計算機40000は、装置Aに対し、主電源回路20700をオフにする指示を送信する(ステップS1090)。次に、管理計算機40000は、装置Aを電源処理済とする(ステップS1095)。次に、管理計算機は、装置AをステップS1050の処理済とする(ステップS1100)。管理計算機40000は、該当する全てのストレージ装置20000がステップS1050の処理済となると、さらに図21のフローを実行する。管理計算機40000は、電源処理済でないストレージ装置20000に対して、ステップS1110乃至ステップS1150を実行する(ステップS1105)。管理計算機40000は、未処理のストレージ装置20000を選択する(ステップS1110)。
次に、管理計算機40000は、選択したストレージ装置20000からボリューム構成管理テーブル20530を抽出する(ステップS1115)。次に、管理計算機40000は、選択したストレージ装置20000からディスク管理テーブル20540を抽出する(ステップS1120)。次に、管理計算機40000は、選択したストレージ装置20000から電源管理テーブル20550を抽出する(ステップS1125)。
次に、管理計算機40000は、選択したストレージ装置20000に対し、アクセスのあるボリューム20300を構成するディスク20001以外のディスク20001の電源オフを指示する(ステップS1130)。具体的には、管理計算機40000は、ステップS1115、ステップS1120及びステップS1125で抽出した各テーブルと、ボリューム運用管理テーブル42700及び業務運用計画テーブル42800を参照して、アクセスのあるボリューム20300を構成するディスク20001以外のディスク20001を選択し、該当するディスク20001の電源オフの指示を、選択したストレージ装置20000に対して送信する。
次に、管理計算機40000は、選択したストレージ装置20000に対し、アクセスのあるボリューム20300を所持しないコントローラ20200の電源オフを指示する(ステップS1135)。具体的には、管理計算機40000は、ステップS1115、ステップS1120及びステップS1125で抽出した各テーブルと、ボリューム運用管理テーブル42700及び業務運用計画テーブル42800を参照して、アクセスのあるボリューム20300を所有しないコントローラ20200を選択し、該当するコントローラ20200の電源オフの指示を選択したストレージ装置20000に送信する(ステップS1135)。
次に、管理計算機40000は、選択したストレージ装置を処理済みとする(ステップS1140)。該当する全てのストレージ装置20000がステップS1105の処理済となると、管理計算機40000は、電源制御指示プログラム42150を終了する(ステップS1145)。
(2−3−4−2)具体的な電源制御指示プログラムの説明
本実施形態における、電源制御指示プログラム42150の処理の具体例を、上述した図19乃至図21に記載のフローに基づき、さらに詳細に説明する。本実施形態のストレージシステムの構成を図1とし、電源制御指示プログラム42150実行前のストレージ装置20000の主電源回路20700はすべてオンとする。さらに、本実施形態では、管理計算機40000は、図14に示す1日後の業務運用計画を参照して電源制御指示プログラム42150を実行する。
まず、管理計算機40000は、図19において説明したステップS1005において、ストレージ装置テーブル42400にある管理対象となるストレージ装置20000から、ボリューム構成管理テーブル20530を抽出し、ボリューム構成情報テーブル42600、ボリューム運用管理テーブル42700、及び未割当て記憶領域管理テーブル42500とを更新する。ここで、更新されたボリューム構成情報テーブル42600を図12、ボリューム運用管理テーブル42700を図13、及び未割当て記憶領域管理テーブル42500を図11に示す。また、電源制御指示プログラム42150実行前の各ストレージ装置20000が格納する、アクセスがあるボリューム20300のリストと、アクセスがないボリューム20300のリストと、各ストレージ装置20000の未割当て記憶領域容量20400及び主電源回路20700の状態を示すストレージ装置状態テーブルR1000と、を図22に示す。
管理計算機40000は、図19において説明したステップS1010乃至ステップS1035の処理を行う(ステップS1010)。まず、管理計算機40000は、ストレージ装置テーブル42400から、図22に示す未処理のストレージ装置ST1を選択する(ステップS1015)。次に、管理計算機40000は、ストレージ装置ST1内にアクセスのあるボリューム20300が格納されているか調査する(ステップS1020)。具体的には、管理計算機40000は、ストレージ装置ST1に格納されているボリュームVOL1及びVOL2を利用する業務の運用状況をボリューム運用管理テーブル42700及び業務運用計画テーブル42800から抽出する。ボリュームVOL1及びVOL2は、業務Aで利用されるが、業務Aは停止となるので、ストレージ装置ST1にアクセスのあるボリュームとして格納されていない。
そこで、管理計算機40000は、ストレージ装置ST1へ主電源回路20700オフの指示を送信し(ステップS1025)、ストレージ装置ST1を電源処理済とする(ステップS1030)。次に、管理計算機40000は、ストレージ装置ST1をステップS1010の処理済とし(ステップS1035)、ステップS1010に戻る。続けて、管理計算機40000は、残るストレージ装置ST2、ST3及びST4についても同様にステップS1015乃至ステップS1035の処理を実行する(ステップS1010)。本実施形態では、ストレージ装置ST2、ST3及びST4にアクセスのあるボリューム20300が格納されているので、ステップS1010の処理後も、ストレージ装置ST2、ST3及びST4は電源処理が未処理となる。
次に、管理計算機40000は、図20に示すフローへと進み、電源処理未処理のストレージ装置ST2、ST3、及びST4に関して、図20に示すステップS1040からステップS1100の処理を行う(ステップS1040)。まず、管理計算機40000は、電源処理未処理のストレージ装置ST2を選択し装置Aとする(ステップS1045)。ステップS1010の処理後のストレージ装置状態テーブルR1010を図23に示す。
次に、管理計算機40000は、装置A以外でかつ電源処理未処理のストレージ装置20000から、装置A内で、アクセスのある全てのボリューム20300を移動するストレージ装置20000の選出を行う(ステップS1050)。ステップS1050の処理では、管理計算機40000は、装置A以外でかつ電源処理未処理のストレージ装置20000としてストレージ装置ST3を選択し装置Bとする(ステップS1055)。管理計算機40000は、装置Aのうち、アクセスのある全てのボリューム20300を装置Bへ移動可能か調査する(ステップS1060)。ここで、装置Aすなわちストレージ装置ST2のアクセスのある全てのボリューム20300の総容量は20GBである。一方、装置Bすなわちストレージ装置ST3の未割当て記憶領域20400の容量は100GBであり、装置Aの全てのボリューム20300の総容量である20GBを上回っている。
よって、ステップS1060で、装置Aのアクセスのある全てのボリューム20300を装置Bへ移動することが可能となるので、管理計算機40000は、装置Bすなわちストレージ装置ST3を移動先候補とする(ステップS1070)。管理計算機40000は、装置BをステップS1050の処理済とする(ステップS1075)。また、管理計算機40000は、ステップS1050に戻り、装置A以外の電源処理未処理でかつステップS1050の処理未処理のストレージ装置20000としてストレージ装置ST4を選択し、装置Bとする(ステップS1055)。管理計算機40000は、装置Aのアクセスのある
全てのボリューム20300を装置Bへ移動可能か調査する(ステップS1060)。
ここで、装置Aのアクセスのある全てのボリューム20300の総容量は20GBであり、装置Bの未割当て記憶領域20400の容量は150GBであり、装置Aの全てのボリューム20300の総容量である20GBを上回っている。よって、管理計算機40000は、ステップS1060で、装置Aのアクセスのある全てのボリューム20300を装置Bへ移動可能となるので、装置Bすなわちストレージ装置ST4を移動先候補とする(ステップS1070)。管理計算機40000は、装置BをステップS1050の処理済とする(ステップS1075)。これで、管理計算機40000は、装置A以外の電源処理未処理のストレージ装置20000に対し、ステップS1050の処理をしたこととなる。図24(A)に、移動先候補テーブルR2000を示す。
次に、管理計算機40000は、ステップS1050で抽出した移動先候補の中から、装置Aの移動先を決定可能か調査する(ステップS1080)。本実施形態では、移動先の決定に関し、ステップS1080において、装置Aのアクセスのあるボリューム20300の総容量より、移動先装置のアクセスのあるボリューム20300の総容量のほうが大きいまたは等しく、かつアクセスのあるボリューム20300の総容量が同じ場合、未割当て記憶領域の容量20400が大きい装置を優先することとする。
管理計算機40000は、ストレージ装置ST4のアクセスのあるボリューム20300の総容量が装置Aより大きくかつ、未割当て記憶領域20400の容量がストレージ装置ST3より大きいので、ストレージ装置ST4を移動先装置として決定する。次に、管理計算機40000は、装置Aのうちアクセスのあるボリューム20300を選択し、選択したボリューム20300と同じ容量のボリューム20300を移動先装置となるストレージ装置ST4に作成する指示を送信する。具体的には、グローバルボュームIDがVOL3であるボリュームと同じ容量のボリューム20300をストレージ装置ST4に作成する指示を送信する。ここで、作成したボリューム20300の装置内ボリュームIDをVOL002とする。管理計算機40000は、ボリューム20300作成後、移動元ボリュームであるVOL3の装置ID(ST2)と装置内ボリュームID(VOL001)と、移動先ボリュームの装置ID(ST4)と移動先ボリューム20300の装置内ボリュームID(VOL002)とをボリューム移動用計算機70000に送信する。
管理計算機40000は、ボリューム移動用計算機70000からボリューム20300の移動完了通知を受信すると、移動元装置ST2に装置内ボリュームID VOL001の割当て解除指示を送信し、移動先装置ST4に装置内ボリュームID VOL002を上位ホスト装置H2へ割り当てる指示を送信する。管理計算機40000は、ボリューム運用管理テーブル42700のグローバルボリュームIDフィールド42710内のVOL3の行の装置IDフィールド42730に移動先装置ST4を登録する。また、ボリュームIDフィールド42740に移動先ボリューム20300の装置内ボリュームIDであるVOL002を登録する。その後、ストレージ装置ST2及びST3からボリューム構成管理テーブル20530を抽出し、ボリューム構成情報テーブル42600を更新する(ステップS1085)。
次に、管理計算機40000は、装置Aのストレージ装置ST2へ主電源回路20700オフの指示を送信し(ステップS1090)、装置Aを電源処理済とする(ステップS1095)。管理計算機40000は、装置AをステップS1040の処理済とし(ステップS1100)、ステップS1040へ戻る。ここまでの処理終了後のストレージ装置状態テーブルR1020を図24(B)に示す。管理計算機40000は、電源処理未処理でステップS1040が未処理なストレージ装置20000としてストレージ装置ST3を装置Aとし、ステップS1040からステップS1100を実行する。
まず、管理計算機40000は、装置A以外で、電源処理未処理でかつステップS1050の処理が未処理であるストレージ装置20000としてストレージ装置ST4を選出し、これを装置Bとする(ステップS1055)。次に、管理計算機40000は、装置A内のアクセスのあるボリューム20300を全て装置Bへ移動可能か調査する(ステップS1060)。具体的には、ストレージ装置ST3のアクセスのあるボリュームVOL5の容量は100GBであり、ストレージ装置ST4の未割当て記憶領域20400の容量は130GBである。よって、ストレージ装置ST4の未割当て記憶領域20400の容量がストレージ装置ST3のアクセスのあるボリュームVOL5の容量は100GBを上回り、移動が可能であるので、ストレージ装置ST4を移動先候補とする(ステップS1070)。管理計算機40000は、装置BをステップS1050の処理済みとし(ステップS1075)、ステップS1050へ戻る。ここで、装置A以外で、電源処理未処理でかつステップS1050の処理が未処理であるストレージ装置20000がないので、管理計算機40000は、ステップS1080を実行する。
本発明は、複数のストレージ装置から構成されるストレージシステムにおいて、余分な電力の消費を避けることができるストレージシステムを提供するものである。ステップS1050で抽出した移動先候補は、ストレージ装置ST4のみであり、ストレージ装置ST3のアクセスのあるボリューム20300はボリュームVOL5のみで容量は100GBとなり、ストレージ装置ST4のアクセスのあるボリューム20300は、VOL3とVOL7で総容量は120GBである。よって、ストレージ装置ST4を移動先装置とする(ステップS1080)。ここで生成された移動先装置候補テーブルR2010を図25(A)に示す。管理計算機40000は、ストレージ装置ST3のボリュームVOL5をストレージ装置ST4へ移動し(ステップS1085)、その後、ストレージ装置ST3に主電源回路20700オフの指示を送信する(ステップS1090)。
次に、管理計算機40000は、ストレージ装置ST3を電源処理済みとし(ステップS1095)、ストレージ装置ST3をステップS1040の処理済みとし(ステップS1100)、ステップS1040へ戻る。ここまでの処理後のストレージ装置状態テーブルR1030を図24(B)に示す。管理計算機40000は、電源処理未処理でかつステップS1040の処理が未処理であるストレージ装置20000として、ストレージ装置ST4を選出し、装置Aとする(ステップS1045)。次に、管理計算機40000は、ステップS1050を実行する。ここで、装置A以外の電源処理未処理であるストレージ装置20000が存在しないため、電源処理済みでなくかつ装置Aでないストレージ装置20000が存在しないことになるから、管理計算機40000は、ステップS1080を実行し、移動先候補から移動先装置を決定可能か調査する(ステップS1080)。管理計算機40000は、移動先候補が存在しないため、移動先候補を決定不可能と判断し(ステップS1080:NO)、ストレージ装置ST4をステップS1040の処理済みとし(ステップS1100)、ステップS1040に戻る。
管理計算機40000は、電源処理未処理でかつステップS1040の処理が未処理であるストレージ装置20000が存在しないので、ステップS1105を実行する(ステップS1040)。管理計算機40000は、電源処理未処理であるストレージ装置20000に対して、ストレージ装置20000内のコンポーネントの電源制御指示を行う(ステップS1105)。まず、管理計算機40000は、電源処理未処理でかつステップS1105の処理が未処理であるストレージ装置ST4を選出する(ステップS1110)。
次に、管理計算機40000は、ストレージ装置ST4から、ボリューム構成管理テーブル20530を取得する(ステップS1115)。次に、管理計算機40000は、ストレージ装置ST4からディスク管理テーブル20540を取得する(ステップS1120)。次に、管理計算機40000は、ストレージ装置ST4から電源管理テーブル20550を取得する(ステップS1125)。ステップS1115で取得したボリューム構成管理テーブル20530を図26に、ステップS1120で取得したディスク管理テーブル20540を図27に、ステップS1125で取得した電源管理テーブル20550を図28にそれぞれ示す。
次に、管理計算機40000は、ストレージ装置ST4内で、アクセスのあるボリュームVOL3、VOL5及びVOL7を構成するディスク以外のディスクの電源オフをストレージ装置ST4に指示する(ステップS1130)。具体的には、ボリュームVOL7を構成するアレイグループAG1と、ボリュームVOL3を構成するアレイグループAG2と、ボリュームVOL5を構成するアレイグループAG3に該当しないディスクである、DISK005、DISK006及びDISK007との電源オフを指示する。
次に、管理計算機40000は、ストレージ装置ST4内で、アクセスのあるボリュームVOL3、VOL5及びVOL7を制御するコントローラ以外のコントローラ20200の電源オフをストレージ装置ST4へ指示する(ステップS1135)。具体的には、ボリュームVOL3、VOL5及びVOL7は、コントローラ0に所属しており、コントローラ0以外のコントローラ20200が存在しないため、ステップS1135では、管理計算機40000から、ストレージ装置ST4へコントローラ20200の電源オフの指示は送信されない。次に、管理計算機40000は、ストレージ装置ST4を電源処理済とし(ステップS1140)、ステップS1105へ戻る。管理計算機40000は、電源処理未処理のストレージ装置20000が存在しないため、電源制御指示プログラム20510を終了する(ステップS1145)。以上が本実施形態における電源制御指示プログラム20510の具体例となる。
(3)本実施の形態の効果
本実施形態によれば、上位ホスト装置10000がアクセスするストレージ装置20000内のボリューム20300を他のストレージ装置20000に移動させて、アクセスのないボリューム20300のみを有するストレージ装置20000を作成し、かかるストレージ装置20000に対しストレージ装置20000本体の主電源回路20700に対する電源供給を停止することができるので、ストレージシステム全体における省消費電力化を実現することができるという効果を達成することになる。又、上位ホスト装置10000の有する業務に関するあらかじめ作成された運用計画情報に基づいて、ストレージ装置20000本体の主電源回路20700に対する電源供給を停止することができるので、ストレージシステム全体における省消費電力化を実現することができるという効果を達成することになる。
第2の実施の形態
第1の実施の形態では、複数のストレージ装置20000からなるストレージシステムにおいて、ボリューム20300を他のストレージ装置20000へ移動または交換し、又はストレージ装置内のボリューム20300を利用する業務の運用計画に基づき、ストレージ装置20000の主電源回路36000の電源をオフすることができる例を説明した。さらに、本実施形態では、他のストレージ装置20000のボリューム20300を自らのボリューム20300として上位ホスト装置10000へ提供する機能を備えるストレージコントローラ30000を有するストレージシステムでのストレージ装置20000の電源制御について説明する。
(1)第2の実施の形態のストレージシステムの構成
第2の実施の形態おけるストレージシステムの構成について説明する。図29乃至図31はストレージシステムの構成およびストレージシステムに接続される装置の構成を示し、図32乃至図37は各装置に具備される管理情報を示す。まず、本実施形態と第1の実施の形態との違いについて説明する。第1の違いは、第1の実施の形態では、ストレージ装置20000間のボリューム20300の移動をストレージエリアネットワーク50000にあるボリューム移動用計算機70000によって実行するのに対して、本実施形態では、ストレージコントローラ30000内に設けているボリューム移動プログラム35300によって、ストレージ装置20000間のボリューム20300の移動を実行することである。
第2の違いは、本実施形態における、追加するストレージコントローラ30000の構成である。以下に詳しく説明する。以降の説明の都合上、他のストレージ装置20000のボリューム20300を自らのボリューム20300として上位ホスト装置10000へ提供する機能を備えるストレージコントローラ30000により、自らのボリュームとして提供されるボリュームを仮想ボリューム30300と呼び、その実体となる他のストレージ装置20000のボリュームを実ボリュームと呼ぶ。
図29にストレージシステムの構成を示す。一つ以上の仮想ボリューム30300を利用する一台以上の上位ホスト装置10000及び一台以上のストレージコントローラ30000は、第1ストレージエリアネットワーク50001を介して接続される。また、ストレージコントローラ30000及び一台以上のストレージ装置20000は、第2ストレージエリアネットワーク50002を介して接続される。さらに、ストレージコントローラ30000及びストレージ装置20000は、管理ネットワーク60000を介して管理計算機40001に接続される。
ここで、ストレージコントローラ30000が具備する仮想ボリューム機能について説明する。近年、ボリューム20300割当の管理者負担を軽減する技術で、たとえば、英国特許出願公開第2351375号明細書に開示される技術がある。かかる特許文献によれば、ストレージサーバと呼ばれる装置が以下の三つの機能を有することが開示されている。1)ストレージサーバが各ストレージシステムのボリュームを検出し、ストレージサーバ自身の未割当記憶領域として管理する機能。2)未割当記憶領域内の一つ以上のボリュームをもとに、ストレージサーバ上に仮想的なボリューム(以降、仮想ボリュームと呼ぶ)を生成し、上位ホスト装置に仮想ボリュームを割当可能とする機能。3)上位ホスト装置からの仮想ボリュームへのデータアクセスを、逐次仮想ボリュームを構成する実際のボリュームのアドレスに変換して、データアクセスを中継することにより、上位ホスト装置からのデータアクセスに応答する機能。
このような仮想ボリューム機能を具備する装置を用いることで、上位ホスト装置利用者や一般ストレージ管理者は、仮想ボリューム機能を具備する装置のみを意識してボリューム(VOL)割当を実施すればよく、ボリューム割当に対する管理者負担が軽減される。本実施形態では、第1ストレージエリアネットワーク50001と第2ストレージエリアネットワーク50002とを分別しているが、実際は、同一のストレージエリアネットワークでも良い。しかし、上位ホスト装置10000は、ストレージ装置20000のボリューム20300を、対応付けられたストレージコントローラ30000の仮想ボリューム30300を介してのみ利用することができる。
以降の説明の都合上、第1の実施の形態では、図29に示す通り、上位ホスト装置H1、H2、H3及びH4は、第1ストレージエリアネットワーク50001を介してストレージコントローラSC1に接続されている。さらに、ストレージコントローラSC1は、第2ストレージエリアネットワーク50002を介して、ストレージ装置ST1、ST2、ST3及びST4に接続される。ここで、第1ストレージエリアネットワーク50001と第2ストレージエリアネットワーク50002とは、FC(Fibre Channel)プロトコルを用いたネットワークで、管理ネットワーク60000はIPプロトコルを用いたネットワークである。また、ストレージ管理者90000は管理計算機40001を用いてストレージコントローラ30000とストレージ装置20000とを管理し、業務運用管理者90000は、上位ホスト装置10000を用いて業務の運用を管理する。上位ホスト装置10000の詳細な構成例は、第1の実施の形態と同じなのでここでは省略する。
図30にストレージコントローラ30001の詳細な構成例を示す。ストレージコントローラ30000は、第1ストレージエリアネットワーク50001に接続するための一つ以上のネットワークインターフェイス31000と、第2ストレージエリアネットワーク50002に接続するための一つ以上の外部接続ポート39000と、管理ネットワーク60000に接続するための管理ポート38000と、ストレージ装置20000のボリュームを外部接続ポート39000を介して取り込んだ一つ以上の仮想ボリューム33000と、ストレージコントローラ30000内のコンポーネントの電源を制御する電源制御回路31111と、を有し、これらはコントローラ32000に接続され、コントローラ32000により制御されている。
さらに、ストレージコントローラ30000内のコンポーネントに電源を供給する主電
源回路36000と、主電源回路36000がオフの場合、メモリ35000内の各プログラムを実行するためにコントローラ32000とメモリ35000に電源を供給する待機電源回路37000とを有し、これらは電源のオン及びオフを制御する電源制御回路31111に接続される。
メモリ35000内には、管理計算機40001から発行されたストレージコントローラ30000内の電源制御要求を実行する電源制御プログラム35200と、管理計算機40001から発行された仮想ボリューム33000の作成および削除と上位ホスト装置10000への割当ての要求を実行する仮想ボリューム割当てプログラム35100と、仮想ボリューム33000とストレージ装置20000のボリュームの接続関係と上位ホスト装置10000への割当てを保持する仮想ボリューム管理テーブル35300と、ストレージ装置20000のボリュームを他のストレージ装置20000へ移動するボリューム移動プログラム35400を備えている。これらの各プログラムおよび各テーブルは、ストレージ装置20000起動時に、ハードディスク等の記憶媒体(図示せず)からロードされ、コントローラ32000により処理されるものである。ストレージ装置20000の詳細な構成例は、第1の実施の形態と同じなのでここでは省略する。
図31に管理計算機40001の詳細な構成例を示す。管理計算機40001は、プロセッサ41000と、メモリ42000と、管理ネットワーク60000に接続するための管理ポート43000と、処理結果を出力するためのディスプレイ装置等の出力部45000と、キーボードやマウス等の入力部44000とを有し、これらは内部バス46000で互いに接続される。メモリ42000には、後述する業務運用計画入力プログラム42100と、電源制御指示プログラム42150と、ボリューム構成情報収集プログラム42200と、ボリューム割当て指示プログラム42250と、入出力プログラム42300と、ボリューム移動指示プログラム42350と、管理対象となるストレージ装置20000を特定するためのストレージ装置テーブル42400と、管理対象のストレージ装置20000の未割当て記憶領域20400を保持する未割当て記憶領域管理テーブル42500と、管理対象のストレージ装置20000の割当て済みのボリューム20300の構成情報を保持するボリューム構成情報テーブル42600と、上位ホスト装置10000を利用する業務と業務が利用するボリューム20300を保持するボリューム運用管理テーブル42700と、業務の運用計画を保持する業務運用計画テーブル42800と、ストレージコントローラ30000が有する仮想ボリューム33000とストレージ装置20000のボリューム20300の接続情報を保持する仮想ボリューム管理テーブル42900と、が格納されている。
これら各プログラムおよび各テーブルは、プロセッサ41000がハードディスク等の記憶媒体(図示せず)からメモリ42000にロードして実行することにより実現される。また、図示していないが、メモリ42000には、OS(オペレーティングシステム)が記憶媒体からロードされ、プロセッサ41000がこれらのプログラムを実行している。
図32(A)に、ストレージコントローラ30000が具備する仮想ボリューム33000の構成を示す、仮想ボリューム構成管理テーブル35300の一例を示す。仮想ボリューム構成管理テーブル35300は、ストレージコントローラ30000内で一意に識別可能な仮想ボリューム33000のIDを登録するフィールド35310と、仮想ボリューム33000の容量を登録するフィールド35320と、仮想ボリューム33000の割当先上位ホスト装置を登録するフィールド35330と、仮想ボリューム33000が制御するコントローラ32000の装置内で一意に識別可能なコントローラIDを登録するフィールド35340と、仮想ボリューム33000の実ボリューム20300が割当てられている外部接続ポート39000を一意に識別するための外部接続ポートIDを登録するフィールド35350と、仮想ボリューム33000の実ボリューム20300の情報を登録するフィールド35360と、から構成されている。
ここで、図32(B)に示す通り、仮想ボリューム33000に対応する実ボリュームの情報を登録するフィールド35360は、仮想ボリューム33000に対応する実ボリューム20300を有するストレージ装置20000を登録するフィールド35361及びそのストレージ装置20000内で実ボリューム20300を一意に識別可能なボリューム20300のIDを登録するフィールド35362から構成されている。ここで、図32(A)は、本実施形態におけるストレージコントローラSC1の仮想ボリューム管理テーブル35300であり、図32(B)は、ストレージコントローラSC2の仮想ボリューム管理テーブル35300である。
図33に、ストレージコントローラ30000が具備するストレージ装置20000内のコンポーネントの電源状態を管理する、電源管理テーブル35500の一例を示す。電源管理テーブル35500は、コンポーネントのストレージコントローラ30000で一意に識別可能なコンポーネントIDを登録するフィールド35501及び電源状態を登録するフィールド35502から構成されている。電源管理テーブル35500は、ストレージコントローラ30000内の電源制御プログラム35200によって更新される。
図34、図35、図36及び図37に、管理計算機40001が具備する各テーブルの一例を示す。なお、管理計算機40001が具備する未割当て記憶領域管理テーブル42500及び業務運用計画テーブル42800は、第1の実施の形態の管理計算機40000が具備する未割当て記憶領域管理テーブル42500及び業務運用計画テーブル42800と同じ構成なので、本実施形態では説明を省略する。
図34は、管理計算機40001が管理対象であるストレージ装置20000を特定するためのストレージ装置テーブル42400の一例である。ストレージ装置テーブル42400は、管理対象装置を管理計算機40000内で一意に識別するための識別子であるストレージ装置IDを登録するフィールド42410と、装置の種類を登録するフィールド42420と、管理対象装置のベンダ名・モデル名・シリアル番号など、一般に装置を一意に識別するための装置情報を登録するフィールド42430と、管理対象装置の管理ポートに接続するための管理ポートのIPアドレスを登録するフィールド42440とから構成されている。
なお、これらの情報は、管理計算機40001を取り扱うストレージ管理者90000によって管理計算機40001から予め登録してもよい。また、第1ストレージエリアネットワーク50001又は第2ストレージエリアネットワーク50002や管理ネットワーク60000上のネームサービスなどを用いて自動的に作成してもよい。
図35は、ストレージシステムが有するボリューム20300の構成を示す、ボリューム構成情報テーブル42600の一例を示す。第1の実施の形態との違いは、ストレージコントローラ30000の装置への追加であり、装置IDフィールド42610にはストレージコントローラ30000の装置IDが登録される他、装置内ボリュームIDを登録するフィールド42620、容量を登録するフィールド42630、割当先上位ホスト装置を登録するフィールド42640及びコントローラIDを登録するフィールド42650にもストレージコントローラ30000の対応する情報が登録される。また、装置がストレージコントローラ30000の場合、アレイグループ(Array Group)フィールド42660には、実ボリューム20300が割り当てられている外部接続ポート39000のストレージコントローラ30000内で一意に識別可能な外部接続ポートIDが登録される。
図36は、上位ホスト装置10000を用いた業務と、業務により利用される仮想ボリューム33000を管理するボリューム運用管理テーブル42700の一例である。ボリューム運用管理テーブル42700は、管理計算機40001及び、業務運用管理者80000及びストレージ管理者90000が業務で利用するボリューム20300を一意に識別するためのグローバルボリュームIDを登録するフィールド42710と、ボリューム20300を利用する業務を、管理計算機40001および業務運用管理者80000とストレージ管理者90000とが一意に識別するための業務IDを登録するフィールド42720と、仮想ボリューム33000情報を登録するフィールド42730と、から構成されている。
ここで、仮想ボリューム情報を登録するフィールド42730は、ストレージコントローラ30000をストレージシステムで一意に識別可能なストレージコントローラIDを登録するフィールド42731及びストレージコントローラ内で仮想ボリュームを一意に識別可能な仮想ボリュームIDを登録するフィールド42732から構成されている。
図37は、ストレージコントローラ30000が制御する仮想ボリューム33000の構成を管理する、仮想ボリューム管理テーブル42900の一例である。仮想ボリューム管理テーブル42900は、管理計算機40001がストレージコントローラ30000をストレージシステムで一意に識別するためのストレージコントローラIDを登録するフィールド42910と、ストレージコントローラ内で仮想ボリューム33000を一意に識別するための仮想ボリュームIDを登録するフィールド42920と、仮想ボリューム33000の実ストレージ装置20000情報を登録するフィールド42930と、から構成されている。
ここで、仮想ボリュームの実ストレージ装置情報を登録するフィールド42930は、仮想ボリューム33000の実ボリューム20300を格納しているストレージ装置20000を管理計算40001がストレージシステム内で一意に識別可能な装置IDを登録するフィールド42931及びストレージ装置20000内のボリュームIDを登録するフィールド42932から構成されている。
(2)第2の実施の形態のプログラムの詳細説明
(2−1)ストレージコントローラが具備するプログラム
次に第2の実施の形態におけるストレージコントローラ30000が実行するプログラム、仮想ボリューム33000割当てプログラム35100、電源制御プログラム35200及びボリューム移動プログラム35400のフローについて説明する。仮想ボリューム割当てプログラム35100は、管理計算機40001からの指示により、外部接続ポート39000に、第2ストレージエリアネットワーク50002を介して接続されたストレージ装置20000の実ボリューム20300を、ストレージコントローラ30000内の仮想ボリューム33000へ対応付け及び対応付けの解除と、指示された上位ホスト装置10000への仮想ボリューム33000の割当て及び割当ての解除と、既存の仮想ボリューム33000の実ボリューム20300を他の実ボリューム20300への変更を行うプログラムであり、ストレージコントローラ30000内のコントローラ32000によって実行される。
具体的には、ストレージコントローラ30000内のコントローラ32000は、管理計算機40001から仮想ボリューム33000の作成要求を受け取ると、仮想ボリューム構成管理テーブル35300に新たな仮想ボリュームIDを登録し、さらに指示された実ボリューム20300を新たに登録された仮想ボリュームIDの実ストレージ情報フィールド35360に登録し、利用するコントローラのIDを仮想ボリューム33000を制御するコントローラ32000の装置内で一意に識別可能なコントローラIDを登録するフィールド35340に、外部ポートのIDを仮想ボリューム33000の実ボリューム20300が割当てられている外部接続ポート39000を一意に識別するための外部接続ポートIDを登録するフィールド35350に、実ボリューム20300の容量を仮想ボリューム33000の容量を登録するフィールド35320に、のように対応する各フィールドへ登録し、仮想ボリューム割当てプログラム35100を終了する。
また、ストレージコントローラ30000は、管理計算機40001から仮想ボリューム33000の上位ホスト装置10000への割当て要求を受け取ると、仮想ボリューム構成管理テーブル35300の指示された仮想ボリュームIDの割当先フィールド35330に、指示された上位ホスト装置10000を登録し、仮想ボリューム割当てプログラム35100を終了する。さらに、仮想ボリューム割当てプログラム35100は、管理計算機40001から実ボリューム20300の変更の指示を受け取ると、仮想ボリューム構成管理テーブル35300の実ストレージ情報フィールド35360を指定された実ボリューム20300に変更し、仮想ボリューム割当てプログラム35100を終了する。
電源制御プログラム35200は、管理計算機40001から管理ネットワーク60000を介して送信される電源制御要求をストレージコントローラ30000が受け取ることにより、コントローラ32000が実行する。具体的には、ストレージコントローラ30000が電源制御要求を受け取ると、コントローラ32000は、電源制御要求が示すコンポーネントの電源を指定された状態にするために、電源制御回路31111へ制御信号を送信する。その後、コントローラ32000は、電源制御要求で指定されているコンポーネントの電源管理テーブル35500の電源状態フィールド35502を要求に指定された状態に書き換え、電源管理テーブル35500を更新して装置内のコンポーネントの電源供給状態の更新を反映させる。
また、上位ホスト装置10000や他のストレージコントローラ30000から仮想ボリューム33000へデータアクセス要求が送信されると、コントローラ32000が電源制御プログラム35200を実行し、主電源回路36000がオフの場合、主電源回路36000をオンにする制御信号を電源制御回路31111に送信し、さらに、該当する仮想ボリューム33000に関係する外部接続ポート39000の電源をオンにする制御信号を電源制御回路31111へ送信し、この処理で電源状態が変更されたコンポーネントの電源管理テーブル35500の電源状態フィールド35502を制御信号送信後の状態に書き換える。
ボリューム移動プログラム35400は、管理計算機40001からの指示により、移動元仮想ボリューム33000のデータを移動先仮想ボリューム33000にコピーする、または、移動元仮想ボリューム33000のデータと移動先仮想ボリューム33000のデータをスワップするプログラムであり、コントローラ32000が実行する。具体的には、コピーが指示された場合、移動元仮想ボリューム33000の最初のブロックから最後のブロックまでを、移動先仮想ボリューム33000にコピー(複写)する。
また、スワップが指示された場合、移動元仮想ボリューム33000と移動先仮想ボリューム33000のブロックを最初から順にスワップ(交換)する。また、移動先仮想ボリューム33000に、他のストレージコントローラ30000の仮想ボリューム33000が指示された場合は、第2ストレージエリアネットワーク50002を介するストレージコントローラ30000間の仮想ボリューム33000のデータの読み書きにより、コピーやスワップを行う。
(2−2)管理計算機が具備するプログラム
(2−2−1)ボリューム構成情報収集プログラム
次に第2の実施の形態における管理計算機40001が実行するプログラムのフローについて、図38乃至図44を用いて説明する。本実施形態では、第1の実施の形態と異なるフローとなる、ボリューム構成情報収集プログラム42200と、ボリューム割当て指示プログラム42250と、電源制御指示プログラム42150と、について説明する。まず、フローを図示しないボリューム構成情報収集プログラム42200について説明し、第1の実施形態と同一のフローについては説明を省略する。
ボリューム構成情報収集プログラム42200は、管理対象のストレージ装置20000からボリュームの構成情報を、管理対象のストレージコントローラ30000から仮想ボリューム33000の構成情報を収集するために、管理計算機40001が定期的に実行する、または、ストレージ管理者90000からの指示や管理計算機40001に具備される他のプログラムからの指示により管理計算機40001が実行するプログラムである。具体的には、ストレージ装置テーブル42400に登録されたストレージ装置を構成する装置に対して、当該装置のIPアドレスフィールド42440に記載されたIPアドレスを用いて構成情報取得命令を発行し、例えば当該装置の種類がストレージ装置20000の場合、ストレージ装置20000が具備するボリューム構成管理テーブル20530の値を取得する。
次に、管理計算機40001は、取得したボリューム構成管理テーブル20530の値を管理計算機40001内のボリューム運用管理テーブル42700の対応する各フィールドにコピーする。一方、ボリューム構成情報収集プログラム42200は、取得したボリューム構成管理テーブル20530が示す未割当て記憶領域20400の値を未割当記憶領域管理テーブル42500の対応する各フィールドにコピーする。
管理計算機40001は、当該装置の種類がストレージコントローラ30000の場合、ストレージコントローラ30000が具備する仮想ボリューム構成管理テーブル35300の値を取得する。次に、管理計算機40001は、取得した仮想ボリューム構成管理テーブル35300の値を管理計算機40001内の仮想ボリューム管理テーブル42900及びボリューム構成管理テーブル20530の対応する各フィールドにコピーする。本プログラムを実行することにより、管理対象とするストレージ装置20000のボリューム構成情報の値及びストレージコントローラ30000の仮想ボリューム構成情報の値を最新のものとすることができる。
(2−2−2)ボリューム割当指示プログラム
業務運用管理者80000又はストレージ管理者90000は、ボリューム割当て指示プログラム42250を、ボリューム20300の上位ホスト装置に対する割当て又は割当て解除のために利用し、かかるプログラムは管理計算機40001により実行される。入出力プログラム42300は、第1の実施形態において説明した図16に示すようなボリューム割当て画面H2000を出力して、業務運用管理者80000又はストレージ管理者90000からボリューム割当て要求を取得する。
ボリューム割当て画面H2000は、業務IDを選択するフィールドH2050と、割当先を選択するフィールドH2100と、ボリューム20300の容量を入力するフィールドH2150と、ボリューム20300をストレージシステムで一意に識別するためのグローバルボリュームIDを入力するフィールドH2200と、入力内容を登録する登録ボタンH2250と、入力を破棄するキャンセルボタンH2300と、から構成されている。業務運用管理者80000又はストレージ管理者90000により、登録ボタンH2250が押されると、管理計算機40001は、ボリューム割当て指示プログラム42250を、ボリュームを割当てるためのボリューム割当てモードで開始する。
図38、図39及び図40に、ボリューム割当て指示プログラム42250がボリュームを割当てるためのボリューム割当てモードで実行されたときのフローを示す。まず、管理計算機40001は、業務運用管理者80000又はストレージ管理者90000から上位ホスト装置10000に対するボリューム20300割当て要求を受信する(ステップM1005)。次に、管理計算機40001は、ボリューム構成情報収集プログラム42200を実行する。(ステップM1010)。次に、管理計算機40001は、管理対象の装置に具備された電源管理テーブル35500を取得する(ステップM1015)。
次に、管理計算機40001は、ステップM1010で取得した電源管理テーブル35500及び未割当て記憶領域管理テーブル42500を参照し、主電源回路36000がオンのストレージ装置20000の中から、未割当て記憶領域20400の容量が最大となるストレージ装置20000を抽出する(ステップM1020)。
次に、管理計算機40001は、ステップM1020で抽出したストレージ装置20000に、ステップM1005で受信したボリューム20300割当て要求で指示された容量のボリューム20300が作成可能か調べる(ステップM1025)。管理計算機40001は、ステップM1025で、ボリューム20300が作成できない場合(ステップM1025:NO)、主電源回路36000オフのストレージ装置20000の中から、未割当て記憶領域20400が最大のストレージ装置20000を抽出する(ステップM1030)。
次に、管理計算機40001は、ステップM1030で抽出したストレージ装置20000に、ステップM1005で受信したボリューム20300割当て要求で指示された容量のボリューム20300が作成可能か調べる(ステップM1035)。管理計算機4001は、ステップM1035で、ボリューム20300が作成できない場合には、ボリューム20300作成不可能を通知し(ステップM1040)、ボリューム割当て指示プログラム42250を終了する。
管理計算機40001は、ステップM1025、または、ステップM1035でボリューム20300を作成可能と判断された場合(ステップM1025:YES、ステップM1035:YES)、管理対象の全ストレージコントローラ30000に対して、図39に示すステップM1045からステップM1065を実行する(ステップM1045)。まず、管理計算機40001は、ステップM1045の処理が未処理のストレージコントローラ30000を選択する(ステップM1050)。次に、管理計算機40001は、選択したストレージコントローラ30000に、ボリューム20300割当て要求で指示された上位ホスト装置10000へ仮想ボリューム33000を割当て可能か、また、指示された容量の仮想ボリューム33000を担当するコントローラ32000が存在するか調査する(ステップM1055)。管理計算機40001は、ステップM1055で該当するストレージコントローラ30000が存在する場合(ステップM1055:YES)、選択したストレージコントローラ30000を仮想ボリューム33000作成候補とする(ステップM1060)。
次に、管理計算機40001は、選択したストレージコントローラ30000をステップM1045の処理済とし(ステップM1065)、ステップM1045へ戻り、他のストレージコントローラ30000に対しても同様の処理を行う。管理計算機40001は、全ストレージコントローラ30000に対してステップM1045の処理が完了すると、仮想ボリューム33000作成候補があるか調査する(ステップM1070)。
管理計算機40001は、ステップM1070で、仮想ボリューム33000作成候補が存在しないと判断されると(ステップM1070:NO)、ボリューム20300作成不可能を通知し(ステップM1075)、ボリューム割当て指示プログラム42250を終了する。管理計算機40001は、ステップM1070で、仮想ボリューム33000作成候補が存在すると判断された場合、仮想ボリューム33000作成候補の中に主電源回路36000がオンのストレージコントローラ30000が存在するか調査する(ステップM1080)。
管理計算機40001は、ステップM1080で、仮想ボリューム33000作成候補の中に主電源回路36000がオンのストレージコントローラ30000が存在すると判断された場合、仮想ボリューム33000作成候補から主電源回路36000オフのストレージコントローラ30000を削除する(ステップM1085)。次に、管理計算機40001は、仮想ボリューム作成候補のストレージコントローラ33000から、既存の仮想ボリューム33000の数が最も多いストレージコントローラ32000を選択する(ステップM1090)。
次に、管理計算機40001は、ステップM1025乃至ステップM1035により抽出されたストレージ装置20000に、ボリューム20300割当て要求で指示された容量のボリューム20300を作成する指示を送信し、作成したボリューム20300をステップM1090で選択したストレージコントローラ30000に割当てる指示を送信する(ステップM1095)。次に、管理計算機40001は、作成したボリューム20300の装置内IDを受信する(ステップM1100)。次に、管理計算機40001は、ステップM1090で選択したストレージコントローラ30000にステップM1095で作成したボリューム20300の仮想ボリューム33000を作成する指示を送信する(ステップM1105)。
次に、管理計算機40001は、作成した仮想ボリューム33000の装置内IDを受信する(ステップM1110)。次に、管理計算機40001は、受信した情報を反映させるため、ボリューム運用管理テーブル42700を更新する(ステップM1115)。最後に、管理計算機40001は、ボリューム構成情報収集プログラム42200を実行し(ステップM1120)、ボリューム割当て指示プログラム42250を終了する(ステップM1125)。以上がボリューム割当て指示プログラム42250のボリューム割当てモードにおけるフローである。
次に、ボリューム割当て指示プログラム42250のボリューム20300の割当を解除するための割当て解除モードの場合のフローについて説明する。入出力プログラム42250は、第1の実施形態において説明した図18に示すようなボリューム解除画面H2500を出力して、業務運用管理者80000又はストレージ管理者90000からボリューム20300解除要求を取得する。ボリューム解除画面H2500は、業務IDを選択するフィールドH2550と、選択した業務が利用しているボリューム20300のグローバルボリュームIDと、容量と、割当先とを表示する利用ボリューム一覧フィールドH2600と、解除するボリューム20300のグローバルボリュームIDを入力するフィールドH2650と、解除ボタンH2700と、から構成されている。
業務運用管理者80000又はストレージ管理者90000が解除ボタンH2700を押すと、管理計算機40001は、ボリューム割当て指示プログラム42250をボリューム20300解除モードで開始する。具体的には、まず、管理計算機40001は、ボリューム20300解除要求を受信する。次に、管理計算機40001は、ボリューム運用管理テーブル42700から、ボリューム解除画面H2500の入力フィールドH2650に入力されたグローバルボリュームIDが示す値を抽出する。
次に、管理計算機40001は、抽出したストレージコントローラIDが示すストレージコントローラ30000へ該当する仮想ボリューム33000の上位ホスト装置10000への割当て解除と、該当する仮想ボリューム33000の削除の指示を送信する。
次に、管理計算機40001は、ボリューム構成情報テーブル42600を参照し、該当する仮想ボリューム33000の実ストレージ情報の値が示すストレージ装置20000へ該当するボリューム20300の割当て解除と未割当て記憶領域20400への登録の指示を送信する。最後に、管理計算機40001は、ボリューム運用管理テーブル42700から削除要求されたボリューム20300を削除する。次に、管理計算機40001は、ボリューム構成情報収集プログラム42200を実行し、ボリューム割当て指示プログラム42250を終了する。以上がボリューム割当て指示プログラム42250のボリューム割当て解除モードの場合のフローである。
(2−2−3)ボリューム移動指示プログラム
ボリューム移動指示プログラム42350による、ストレージコントローラ30000のボリューム移動プログラム35400を利用したストレージ装置20000の装置間ボリューム20300移動について説明する。ボリューム移動指示プログラム42350は、管理計算機40001が具備する他のプログラムやストレージ管理者90000の指示により管理計算機40001が実行する。まず、コピーによる移動の場合について説明する。
コピーによる移動の場合、ボリューム移動指示プログラム42350は、移動元実ボリューム20300と移動先ストレージ装置20000とを指示するパラメータをストレージ管理者90000又は管理計算機40001が具備する他のプログラムから受信する。前記パラメータを受信すると、管理計算機40001は、移動元実ボリューム20300に対応する仮想ボリューム33000を仮想ボリューム管理テーブル42900より抽出する。次に、管理計算機40001は、移動先ストレージ装置20000に、移動先実ボリューム20300を作成する指示を送信する。次に、管理計算機40001は、作成した実ボリューム20300を、移動元仮想ボリューム33000を有するストレージコントローラ30000の外部ポートに割り当てる指示を送信する。
次に、管理計算機40001は、移動元仮想ボリューム33000を有するストレージコントローラ30000に、作成した実ボリューム20300に対応する移動先仮想ボリューム33000の作成指示を送信する。次に、管理計算機40001は、移動元仮想ボリューム33000を有するストレージコントローラ30000に、移動元仮想ボリューム33000と移動先仮想ボリューム33000とをコピーする指示を送信する。
指示を受信したストレージコントローラ30000は、ボリューム移動プログラム35400を実行して、移動先仮想ボリューム33000のデータを移動元仮想ボリューム33000にコピーする。管理計算機40001は、ストレージコントローラ30000よりコピー完了通知を受信すると、まず、移動先仮想ボリューム33000と移動先実ボリューム20300の対応付けの解除と、移動元仮想ボリューム33000と移動元実ボリューム20300の対応付け解除の指示を対象となるストレージコントローラ30000へ送信する。次に、移動元仮想ボリューム33000に移動先実ボリューム20300を対応付ける指示と、移動先仮想ボリューム33000の削除の指示を対象となるストレージコントローラ30000へ送信する。最後に、管理計算機40001は、移動元実ボリューム20300を未割当て記憶領域20400へ登録する指示を移動元ストレージ装置20000へ送信し、ボリューム移動指示プログラム42350を終了する。
スワップによる移動の場合、ボリューム移動指示プログラム42350は、移動元ストレージ装置20000と移動元実ボリューム20300と移動先ストレージ装置20000と移動先実ボリューム20300とを指示するパラメータをストレージ管理者90000又は管理計算機40001が具備する他のプログラムから受信する。
管理計算機40001は、前記パラメータを受信すると、移動元実ボリューム20300の仮想ボリューム33000と、移動先実ボリューム20300の仮想ボリューム33000を仮想ボリューム管理テーブル42900より抽出する。次に、管理計算機40001は、移動元仮想ボリューム33000を有するストレージコントローラ30000へ、移動元仮想ボリューム33000と移動先仮想ボリューム33000をスワップする指示を送信する。
次に、管理計算機40001は、ストレージコントローラ30000からスワップ完了通知を受信すると、移動元仮想ボリューム33000の実ボリューム20300を移動先仮想ボリューム33000へ対応付ける指示と、移動先仮想ボリューム33000の実ボリューム20300を移動先仮想ボリューム33000に対応付ける指示を対象ストレージコントローラ30000へ送信し、ボリューム移動指示プログラム42350を終了する。
(2−2−4)電源制御指示プログラム
(2−2−4−1)電源制御指示プログラムの概要
電源制御指示プログラム42150は、管理計算機40001が定期的に実行する、又は、ストレージ管理者90000の指示により管理計算機40001が実行する。電源制御指示プログラム42150のフローを図41乃至図43に示すフローチャートを用いて説明する。まず、図41のフローについて説明する。管理計算機40001は、ボリューム構成情報収集プログラム42200を実行し、ボリューム構成情報テーブル42600と仮想ボリューム管理テーブル42900を更新する(ステップS1005)。
次に、管理計算機40001は、ストレージ装置テーブル42400にある全装置に対して、ステップS1015からステップS1035を実行する(ステップS1010)。管理計算機40001は、未処理の装置を選択する(ステップS1015)。次に、管理計算機40001は、業務運用計画テーブル42800と、ボリューム運用管理テーブル42700と、ボリューム構成情報テーブル42600と、仮想ボリューム管理テーブル42900とを参照し、選択したストレージ装置20000に格納されているボリューム20300にアクセスがあるか調査する(ステップS1020)。ここで、ボリューム20300のアクセス状態は、業務運用計画テーブル42800に保持された、業務に関するあらかじめ作成された運用計画情報に基づいて判断し、ボリューム20300を利用する業務が運用であればアクセスありとし、停止であればアクセスなしとする。
管理計算機40001は、ステップS1020で、選択したストレージ装置20000内にアクセスのあるボリューム20300があるときには、ステップS1035へ進む(ステップS1020:YES)。管理計算機40001は、ステップS1020で、アクセスのあるボリューム20300がないときには(ステップS1020:NO)、選択したストレージ装置20000に、主電源回路36000オフの指示を送信する(ステップS1025)。
次に、管理計算機40001は、選択した装置を電源処理済とする(ステップS1030)。次に、管理計算機40001は、選択した装置をステップS1020の処理済とする(ステップS1035)。該当する全ての装置がS1020の処理済となると、管理計算機40001は、図44に示すフローを実行する。管理計算機40001は、電源処理済でないストレージ装置20000に対して、ステップS1045からステップS1100を実行する(ステップS1040)。管理計算機40001は、電源処理済でないストレージ装置20000から未処理のストレージ装置20000を選択し、これを装置Aとする(ステップS1045)。管理計算機40001は、電源処理済でなく、かつ装置Aでないストレージ装置20000に対して、ステップS1055乃至ステップS1075を実行する(ステップS1050)。管理計算機40001は、電源処理済でない、かつ装置AでないステップS1075が未処理のストレージ装置20000を選択し、これを装置Bとする(ステップS1055)。管理計算機40001は、装置Aのアクセスのある全ボリューム20300を装置Bへ移動可能か調査する(ステップS1060)。
ステップS1060で、ボリューム20300がコピー不可能な場合、管理計算機40001は、装置Aのアクセスのある全ボリューム20300と、装置Bのアクセスのないボリューム20300がスワップ可能か調査する(ステップS1065)。管理計算機40001は、ステップS1060で、ボリューム20300がコピー可能な場合、または、ステップS1065で、スワップ可能な場合、装置Bを移動先装置候補とする(ステップS1070)。ステップS1065で、スワップ不可能な場合、もしくは、ステップS1070の後、管理計算機40001は、装置BをステップS1050の処理済とする。ステップS1050の処理後、管理計算機40000は、移動先装置候補から、移動先装置を決定する(ステップS1080)。ここで、移動先装置の決定の際に、装置Aのアクセスのあるボリューム20300の総容量より、移動先装置のアクセスのあるボリューム20300の総容量のほうが大きく、かつ該当する装置が複数ある場合、未割当て記憶装置の容量が最も大きい装置とするという条件を用いてもよい。
ステップS1060で、移動先装置が決まらない場合、管理計算機40001は、ステップS1100を実行する。ステップS1060で、移動先装置が決まった場合、管理計算機40001は、装置Aの全てのアクセスがあるボリューム20300を移動先装置にボリューム移動指示プログラム42350を実行して移動する(ステップS1085)。
次に、管理計算機40001は、主電源回路36000オフの指示を装置Aへ送信する(ステップS1090)。次に、管理計算機40001は、装置Aを電源処理済とする(ステップS1095)。次に、管理計算機40001は、装置AをステップS1050の処理済とする(ステップS1100)。管理計算機40001は、該当する全てのストレージ装置20000がステップS1050の処理済となると、図43のフローを実行する。管理計算機40001は、電源処理済でないストレージ装置20000に対して、ステップS1110からステップS1150を実行する(ステップS1105)。管理計算機40001は、未処理のストレージ装置20000を選択する(ステップS1110)。次に、管理計算機40001は、選択したストレージ装置20000からボリューム構成管理テーブル20530を抽出する(ステップS1115)。
次に、管理計算機40001は、選択したストレージ装置20000からディスク管理テーブル20540を抽出する(ステップS1120)。次に、管理計算機40001は、選択したストレージ装置20000から電源管理テーブル20550を抽出する(ステップS1125)。次に、管理計算機40001は、アクセスのあるボリューム20300を構成するディスク以外のディスクの電源オフを選択したストレージ装置20000に指示する(S1130)。具体的には、管理計算機40001は、ステップS1115、ステップS1120及びステップS1125で抽出した電源管理テーブル20550と、ボリューム運用管理テーブル42700と、業務運用計画テーブル42800とを参照して、アクセスのあるボリューム20300を構成するディスク以外のディスクを選択し、該当するディスクの電源オフの指示を選択したストレージ装置20000に送信する。
次に、管理計算機40001は、アクセスのあるボリューム20300を所持しないコントローラ32000の電源オフを選択したストレージ装置20000に指示する(S1130)。具体的には、管理計算機40000は、ステップS1100及びステップS1120で抽出した各テーブルと、ボリューム運用管理テーブル42700と、業務運用計画テーブル42800とを参照して、アクセスのあるボリューム20300を所有しないコントローラ32000を選択し、該当するコントローラ32000の電源オフの指示を選択したストレージ装置20000に送信する(ステップS1135)。
次に、管理計算機40001は、選択したストレージ装置20000を電源処理済とする(ステップS1140)。該当する全てのストレージ装置20000にステップS1105の処理を施した後、管理計算機40001は、図44のフローを実行する。
管理計算機40001は、電源処理済でないストレージコントローラ30000に対して、ステップS1145からステップS1180を実行する(ステップS1145)。管理計算機40001は、未処理のストレージコントローラ30000を選択する(ステップS1155)。次に、管理計算機40001は、選択したストレージコントローラ30000から仮想ボリューム構成管理テーブル25300を抽出する(ステップS1160)。
次に、管理計算機40001は、選択したストレージコントローラ30000から電源管理テーブル35500を抽出する(ステップS1165)。次に、管理計算機40001は、アクセスのある仮想ボリューム33000の実ボリューム20300が割り当てられていない外部接続ポート以外の外部接続ポート39000の電源オフを選択したストレージコントローラ30000に指示する(ステップS1170)。次に、管理計算機40001は、アクセスのある仮想ボリューム33000を所持しないコントローラ32000の電源オフを選択したストレージコントローラ30000に指示する(ステップS1175)。次に、管理計算機40001は、ストレージコントローラ30000を電源処理済とする。該当する全てのストレージコントローラ30000がステップS1145の処理済となると(ステップS1180)、管理計算機40001は、電源制御指示プログラム42150を終了する(ステップS1185)。
(2−2−4−2)具体的な電源制御指示プログラムの説明
本実施形態における、電源制御指示プログラム42150の具体例を、上述した図42及び図43に記載のフローに基づき、さらに詳細に説明する。本実施形態のストレージシステムの構成を図29とし、電源制御指示プログラム42150を実行する前の管理計算機40001が具備する各テーブルを図34乃至図37及び図14とする。また、電源制御指示プログラム42150実行前のストレージ装置20000の主電源回路36000はすべてオンとし、図14に示す業務運用計画の1日後の情報を参照し、この計画情報に基づいて電源制御を実行する。ここで、ストレージコントローラ30000の仮想ボリューム33000と、実ストレージ情報と、グローバルストレージIDと、業務によるボリューム20300のアクセスの有無とを図45(A)に示し、ストレージ装置20000およびストレージコントローラ30000の主電源回路状態を図45(B)に示す。
まず、ステップS1000からステップS1035までの処理について説明する。本実施形態において、図45(A)を参照すると、アクセスのないボリューム20300のみを格納しているのは、ストレージ装置ST1のみである。よって、管理計算機40001は、主電源回路36000オフの指示をストレージ装置ST1に送信する(ステップS1025)。
次に、ステップS1040からステップS1100までの処理について説明する。まず、管理計算機40001は、電源処理未処理のストレージ装置20000としてストレージ装置ST2を選択する(ステップS1045)。ストレージ装置ST2のアクセスのあるボリューム20300の総容量は20GBである。そのため、ステップS1050からステップS1075までの処理により、ストレージ装置ST3とストレージ装置ST4がストレージ装置ST2のアクセスのあるボリューム20300の移動先装置候補となる。
次に、管理計算機40001は、ステップS1080において、ストレージ装置ST2のアクセスのあるボリューム20300の総容量より、移動先装置のアクセスのあるボリューム20300の総容量のほうが大きく、かつ該当する装置が複数ある場合、未割当て記憶装置の容量が最も大きい装置とするという条件を用いて、移動先を決定可能か調査すると(ステップS1080)、移動先装置は、ストレージ装置ST4となる。次に、管理計算機40001は、ステップS1085にて、移動元装置(ST2)のアクセスあるボリュームVOL2を移動先装置(ST4)へ移動する(ステップS1085)。具体的には、移動元実ボリューム20300としてVOL2を移動先ストレージ装置20000としてストレージ装置ST4を移動手段にコピーを指示するパラメータをボリューム移動指示プログラム42350へ与える。
次に、管理計算機40001は、ステップS1090にて、ストレージ装置ST2へ主電源回路36000オフの指示を送信する。次に、管理計算機40001は、ステップS1095にて、ストレージ装置ST2を電源処理済とし、さらにステップS1100にて、ストレージ装置ST2をステップS1040の処理済とし、ステップS1040へ戻る。次に、管理計算機40001は、ステップS1045にて、電源処理未処理でかつステップS1040の処理が未処理であるストレージ装置20000としてストレージ装置ST3を選択する。ステップS1050からステップS1075までの処理では、移動先装置候補としてストレージ装置ST4が抽出される。ステップS1080において、移動先装置候補がストレージ装置ST4のみなので、ストレージ装置ST4が移動先装置となる。
次に、管理計算機40001は、ステップS1085にて、移動元装置(ST3)のアクセスあるボリュームVOL5を移動先装置(ST4)へ移動する。具体的には、移動元実ボリューム20300としてVOL5を移動先ストレージ装置20000としてストレージ装置ST4を移動手段としてコピーを指示するパラメータをボリューム移動指示プログラム42350へ与える。次に、管理計算機40001は、ステップS1090にて、ストレージ装置ST3へ主電源回路36000オフの指示を送信する。次に、ステップS1095にて、ストレージ装置ST2を電源処理済とし、さらにステップS1100にて、ストレージ装置ST2をステップS1040の処理済とし、ステップS1040へ戻る。
管理計算機40001は、ステップS1045にて、電源処理未処理でかつステップS1040の処理が未処理であるストレージ装置20000としてストレージ装置ST4を選択する。次に、ステップS1050からステップS1075の処理では、電源処理未処理のストレージ装置20000が存在しないため、移動先候補なしとなる。よって、ステップS1080では、移動先候補が決定不可能となるので、ステップS1095へ進む。
ステップS1095にて、ストレージ装置ST4をステップS1040の処理済とし、ステップS1040へ戻る。管理計算機40001は、ステップS1040では、電源処理未処理でかつステップS1040の処理が未処理であるストレージ装置20000が存在しないので、ステップS1150へ進む。ここまでの処理後のストレージコントローラ30000の仮想ボリューム33000と、装置ID及び装置内ボリュームIDを含む実ストレージ情報と、グローバルストレージIDと、業務によるボリューム20300のアクセスの有無とを図46(A)に示し、ストレージ装置20000およびストレージコントローラ30000の主電源回路の状態を図46(B)に示す。
次に、管理計算機40001は、ステップS1105からステップS1140からなるストレージ装置20000の装置内コンポーネントの電源制御指示を実行する。まず、管理計算機40001は、電源処理未処理のストレージ装置ST4を選択する(ステップS1110)。次に、管理計算機40001は、ストレージ装置ST4のボリューム構成管理テーブル20530を取得する(ステップS1115)。この結果を図24に示す。次に、管理計算機40001は、ストレージ装置ST4のディスク管理テーブル20540を取得する(ステップS1120)。この結果を図25に示す。次に、管理計算機40001は、ストレージ装置ST4の電源管理テーブル35500を取得する(ステップS1125)。この結果を図24に示す。
管理計算機40001は、ストレージ装置ST4へDISK005、DISK006及びDISK007の電源オフを指示する(ステップS1130)。ステップS1135では、ストレージ装置ST4内に対応するコントローラ30200が存在しないため電源指示が行われない。管理計算機40001は、ストレージ装置ST4を電源処理済とする(ステップS1140)。ステップS1105へ戻ると、電源処理未処理のストレージ装置20000が存在しないため、ステップS1145へ進む。
次に、管理計算機40001は、ステップS1145からステップS1180からなるストレージコントローラ30000の装置内コンポーネントの電源制御指示を実行する。まず、ステップS1155にて、電源処理未処理のストレージコントローラSC1を選択する。管理計算機40001は、ステップS1160にて、ストレージコントローラSC1の仮想ボリューム構成管理テーブル35300(図47(A))を取得し、ステップS1165にて、ストレージコントローラSC1の電源管理テーブル35500(図47(B))を取得する。
管理計算機40001は、ステップS1170にて、アクセスのない実ボリューム20300のみが割当てられている外部接続ポート39000PORT0の電源オフをストレージコントローラSC1へ送信する。管理計算機40001は、ステップS1175では、アクセスのない仮想ボリューム33000のみを有するコントローラ32000が存在しないので、コントローラ32000の電源制御指示は送信されない。ステップS1180にて、ストレージ32000コントローラSC1を電源処理済とし、ステップS1145へ戻る。
管理計算機40001は、ステップS1155にて、電源処理未処理のストレージコントローラSC2を選択する。次に、管理計算機40001は、ステップS1160にて、ストレージコントローラSC2の仮想ボリューム構成管理テーブル35300(図48(A))を取得し、ステップS1165にて、ストレージコントローラSC2の電源管理テーブル35500(図48(B))を取得する。
管理計算機40001は、ステップS1170にて、アクセスのない実ボリューム20300のみが割当てられている外部接続ポートPORT0の電源オフをストレージコントローラSC2へ送信する。管理計算機40001は、ステップS1175では、アクセスのない仮想ボリューム33000のみを有するコントローラ32000が存在しないので、コントローラ32000の電源制御指示は送信されない。ステップS1180にて、ストレージコントローラSC2を電源処理済とし、ステップS1145へ戻る。
管理計算機40001は、ステップS1145では、電源処理未処理のストレージコントローラ30000が存在しないので、電源制御指示プログラム42150を終了する。 以上が本実施形態における電源制御指示プログラム42150の具体例となる。
(3)本実施の形態の効果
本実施形態によれば、仮想ボリューム33000を用いる場合にも、仮想ボリューム33000と関連付けられた実ボリューム20300に関し、ボリュームを移動させることにより、ストレージ装置20000の主電源回路36000への電源供給を停止することができるので、ストレージシステム全体における省消費電力化を実現することができるという効果を達成することになる。又、上位ホスト装置10000の行う業務に関するあらかじめ作成された運用計画情報に基づいて、ストレージ装置20000の主電源回路36000への電源供給を停止することができるので、ストレージシステム全体における省消費電力化を実現することができるという効果を達成することになる。
(4)他の実施の形態
上述の実施の形態においては、ハードディスク等の記憶媒体を用いて物理的な記憶領域を提供する場合について述べたが、本発明はこれに限らず、ブラッシュメモリなどの半導体メモリを記憶デバイスとして用いるようにしても良い。また、一つのストレージ装置が管理計算機の機能を果たしても良い。
10000・・・上位ホスト装置、20000・・・ストレージ装置、30000・・・ストレージコントローラ、40000・・・管理計算機、40001・・・管理計算機、50000・・・ストレージエリアネットワーク、50001・・・第1ストレージエリアネットワーク、50002・・・第2ストレージエリアネットワーク、60000・・・管理ネットワーク、80000・・・業務運用管理者、90000・・・ストレージ管理者