以下、本発明を実施するための最良の形態を、図面を参照して説明する。
最初に、本発明の実施の形態の概要を説明する。
本実施の形態は、外部ストレージ接続方法を有する第1のストレージを1台以上の第2のストレージに接続してなるストレージシステムにおいて、ユーザ又はアプリケーションからの第1のストレージ内の第1の論理デバイスの定義要求が発行されたとき、当該論理デバイスの定義要求に基づいて構成要件を決定し、構成要件を満たす物理デバイス又は第2のストレージの第2の論理デバイスを選定し、当該デバイスに第1の論理デバイスを割り当てて、LUパスを定義する。
さらに、本発明の実施の形態は、上記のストレージシステムにおいて、ユーザ又はアプリケーションからの第1のストレージ内第1の論理デバイスへのデタッチ要求が発行されたとき、当該第1の論理デバイスのLUパス定義を解除し、当該要求に付加された制御情報に基づいて当該第1の論理デバイスの停止要否を決定する。停止する必要がある場合、当該第1の論理デバイスに対応する物理デバイス又は第2のストレージシステム内の第2の論理デバイスを停止する。このとき、当該物理デバイス又は第2のストレージシステム内の第2の論理デバイスが停止制御不能なデバイスである場合、停止制御可能な別の物理デバイス又は第2のストレージシステム内の第3の論理デバイスを選定し、当該デバイスへ第1の論理デバイスを移行することで、第1の論理デバイスに対応するデバイス停止を可能にする。
図1は、本発明の実施の形態の計算機システムのハードウェア構成の一例を示すブロック図である。
本実施の形態の計算機システムは、1台以上のホスト計算機(以下、ホストとも記載する。)100、管理サーバ110、ファイバチャネルスイッチ120、ストレージ130、管理端末140、外部ストレージ150A及び外部ストレージ150Bを備える。外部ストレージ150A及び150Bを特に区別する必要がない場合、これらを総称して、外部ストレージ150と記載する。
ホスト100、ストレージ130及び外部ストレージ150は、それぞれ、ポート107、131及び151を介してファイバチャネルスイッチ120のポート121に接続される。また、ホスト100、ストレージ130、外部ストレージ150及びファイバチャネルスイッチ120は、それぞれ、インタフェース制御部(I/F)106、138、157及び123からIPネットワーク175を介して管理サーバ110に接続され、管理サーバ110上で動作するストレージ管理ソフトウェア(図示省略)によって統合管理される。
なお、本実施の形態のストレージ130のインタフェース制御部138は、管理端末140を介して管理サーバ110に接続される。しかし、インタフェース制御部138が直接IPネットワーク175に接続されても良い。
ホスト100は、CPU101、メモリ102、記憶装置103、入力装置104、ディスプレイ105、インタフェース制御部106及びポート107を備える計算機である。
CPU101は、メモリ102に格納されたソフトウェアを読み出して実行するプロセッサである。CPU101がオペレーティングシステム及びアプリケーションプログラム等のソフトウェアを実行することによって、所定の機能が達成される。
メモリ102には、記憶装置103から読み出されたオペレーティングシステムやアプリケーションプログラム等のソフトウェアが格納される。
記憶装置103は、例えば、ディスクドライブ又は光磁気ディスクドライブであり、オペレーティングシステムやアプリケーションプログラム等のソフトウェアを格納する。
入力装置104は、例えば、キーボード及びマウス等である。入力装置104は、ホスト管理者等からの入力を受け付ける。
ディスプレイ105は、CPU101から指示された情報を出力する出力装置である。
インタフェース制御部106は、IPネットワーク175と接続される。ホスト100は、複数のインタフェース制御部106を備えてもよい。
ポート107は、ファイバチャネルスイッチ120のポート121に接続される。ホスト100は、一つ以上のホストバスアダプタ(HBA)を備え、一つのHBAが一つ以上のポート107を備えてもよい。
管理サーバ110は、CPU111、メモリ112、記憶装置113、入力装置114、ディスプレイ115及びインタフェース制御部116を備える計算機である。
CPU111は、メモリ112に格納されたソフトウェアを読み出して実行するプロセッサである。CPU111がストレージ管理ソフトウェア等を実行することによって、計算機システム全体の運用及び保守管理等の所定の機能が達成される。
メモリ112には、記憶装置113から読み出されたストレージ管理ソフトウェア等が格納される。
記憶装置113は、例えば、ディスクドライブ又は光磁気ディスクドライブであり、ストレージ管理ソフトウェア等を格納する。
入力装置114、ディスプレイ115及びインタフェース制御部116は、それぞれ、入力装置104、ディスプレイ105及びインタフェース制御部106と同様のものであるため、説明を省略する。
CPU111によってストレージ管理ソフトウェアが実行されると、管理サーバ110は、インタフェース制御部116からIPネットワーク175を介して、計算機システム内の各機器から構成情報、リソース利用率、性能監視情報、障害ログなどを収集する。そして、管理サーバ110は、収集したそれらの情報をディスプレイ115等の出力装置に出力してストレージ管理者に提示する。また、管理サーバ110は、キーボード及びマウス等の入力装置114を介してストレージ管理者からの指示を受信し、受信した運用・保守指示を、インタフェース制御部116を介して各機器に送信する。
ストレージ130は、一つ以上のポート131、一つ以上の制御プロセッサ132、各々制御プロセッサ132に接続される一つ以上のメモリ133、一つ以上のディスクキャッシュ134、一つ以上の制御メモリ135、一つ以上のポート136、各々ポート136に接続される1台以上のディスクドライブ137、及び、インタフェース制御部138を備えるデータ記憶装置である。これらの各部位は、内部結合網によって接続される。
制御プロセッサ132は、ポート131から受信した入出力要求についてアクセス対象デバイスを特定し、当該デバイスに対応するディスクドライブ137又は外部ストレージ150内のデバイスへの入出力要求を処理する。その際、制御プロセッサ132は、受信した入出力要求に含まれるポートID及びLUN(Logical Unit Number)からアクセス対象のデバイスを特定する。なお、本実施の形態では、ポート131として、SCSI(Small Computer System Interface)を上位プロトコルとしたファイバチャネルインタフェースに対応したポートを想定している。しかし、ポート131は、SCSIを上位プロトコルとしたIPネットワークインタフェースなど、他のストレージ接続用ネットワークインタフェースに対応したポートであってもよい。
ホスト100によって書き込まれたデータは、最終的に、ディスクドライブ137又は156に格納される。
本実施の形態のストレージ130は次のようなデバイス階層を有する。まず、複数台のディスクドライブ137によるディスクアレイが構成される。このディスクアレイは、制御プロセッサ132によって一つの物理デバイス(図等で、PDEVとも記載)として管理される。さらに、本発明の制御プロセッサ132は、ストレージ130内に搭載された物理デバイスに対して、論理デバイス(図等で、LDEVとも記載)を直接割り当てる(即ち、制御プロセッサ132は、物理デバイスと論理デバイスとを対応づける)。論理デバイスはストレージ130内で管理され、その番号はストレージ130毎に独立して管理される。各論理デバイスは、各ポート131に割り当てられたLUNに対応付けられ、ストレージ130のデバイスとしてホスト100に提供される。即ち、ホスト100が認識するのはストレージ130の論理デバイスである。ホスト100は、論理デバイスに対応するポート131のLUNを用いて、ストレージ130に格納されているデータにアクセスする。
なお、本実施の形態では、制御プロセッサ132は、外部ストレージ接続を実行することができる。外部ストレージ接続とは、外部ストレージ150の論理デバイスを外部デバイス(図等で、EDEVとも記載)として管理し、ストレージ130のデバイスとして仮想化する技術である。この外部ストレージ接続を用いてストレージ130によって管理される一つ以上の外部デバイスは、物理デバイスと同様、ストレージ130の論理デバイスと直接対応づけられる。なお、外部デバイスも各ストレージ130内で独立して管理される。
また、本実施の形態では、論理デバイスに対して拡張ボリューム技術を適用することもできる。拡張ボリューム技術とは、論理デバイスのうち更新アクセスがあった部分に対して動的に物理記憶領域を追加割り当てする、仮想ボリューム管理技術である。その場合、物理デバイス又は外部デバイスに対してプールボリューム(図等で、プールVOLとも記載)が割り当てられる。さらに、プールボリュームに対応する拡張ボリューム(図等で、拡張VOLとも記載)が定義される。そして、当該拡張ボリュームに論理デバイスが割り当てられる。
ここで、拡張ボリュームとは、拡張ボリューム技術を用いた仮想的なデバイスであり、論理デバイスと1対1で対応する。プールボリュームとは、拡張ボリュームに動的に割り当てられる物理記憶領域を管理する仮想的なデバイスである。本実施例では、簡単のため、一つのプールボリュームが一つの物理デバイス又は一つの外部デバイスに対応する。しかし、一つのプールボリュームが複数の物理デバイス又は複数の外部デバイスと対応してもよい。
例えば、ストレージ130がホスト100から更新アクセス要求を受信したとき、その要求の対象の論理デバイス上の領域に対応する拡張VOL上の領域に物理記憶領域が割り当てられていなかった場合、ストレージ130は、プールVOLの物理記憶領域のうち、まだ他の拡張VOLに割り当てられていないものを、要求の対象の領域に割り当てる。そして、ストレージ130は、要求の対象のデータを論理デバイスに格納する。その結果、要求の対象のデータは、要求の対象の論理デバイス上の領域に対応する拡張VOLに割り当てられた物理記憶領域に格納される。
以上のようなデバイス階層を実現するため、制御プロセッサ132は、それぞれのデバイス、すなわち、論理デバイス、拡張ボリューム、プールボリューム、物理デバイス、ディスクドライブ137、外部デバイス及び外部ストレージ150の論理デバイスの間の対応関係を管理する。さらに、制御プロセッサ132は、論理デバイスに対するアクセス要求をディスクドライブ137や外部ストレージ150の論理デバイスへのアクセス要求へ変換し、適当なデバイスへ送信する処理を実行する。
なお、前述の通り、本実施の形態におけるストレージ130は、複数のディスクドライブ137をまとめて一つ又は複数の物理デバイスを定義し(即ち、複数のディスクドライブ137をまとめて一つ又は複数の物理デバイスと対応付け)、一つの物理デバイスに一つの論理デバイス又は一つのプールボリュームを割り当てて、ホスト100に提供する。しかし、もちろん、個々のディスクドライブ137を一つの物理デバイスと対応付け、その物理デバイスに一つの論理デバイス又は一つのプールボリュームを割り当ててもよい。
また、制御プロセッサ132は、デバイスに対する入出力処理以外にも、データ複製及びデータ再配置等、デバイス間のデータ連携を実現する各種処理を実行する。
また、制御プロセッサ132は、インタフェース制御部138を介して接続される管理端末140に、ストレージ管理者へ提示する構成情報を送信する。そして、ストレージ管理者から管理端末140に入力された保守・運用指示を管理端末140から受信して、ストレージ130の構成変更等を実行する。
ディスクキャッシュ134は、ホスト100からのアクセス要求に対する処理速度を高めるため、ディスクドライブ137から頻繁に読み出されるデータを予め格納してもよいし、ホスト100から受信したライトデータを一時的に格納してもよい。例えば、制御プロセッサ132は、ホスト100から受信したライトデータをディスクキャッシュ134に格納した後、そのライトデータがディスクドライブ137に実際に書き込まれる前に、ホスト100に対してライト要求に対する応答を返してもよい。このような処理は、ライトアフタと呼ばれる。ディスクキャッシュ134を用いたライトアフタが実行される場合、ディスクキャッシュに格納されているライトデータがディスクドライブ137に書き込まれる前に消失することを防止する必要がある。このため、ディスクキャッシュ134の可用性を向上させることが望ましい。このため、例えば、ディスクキャッシュ134をバッテリバックアップ等によって不揮発化してもよいし、ディスクキャッシュ134を二重化することによって媒体障害への耐性を向上させてもよい。
制御メモリ135は、前述のデバイス階層を実現するための各デバイスの属性及びデバイス間の対応関係を管理するための制御情報、並びに、ディスクキャッシュ134上に保持されたディスク反映済み又は未反映データを管理するための制御情報等を格納する。制御メモリ135に格納されている制御情報が消失すると、ディスクドライブ137に格納されているデータへアクセスできなくなる。このため、制御メモリ135は、ディスクキャッシュ134と同様に、高可用化されていることが望ましい。
ストレージ130内の各部位は、図1に示すとおり、内部結合網で接続され、各部位間で、データ、制御情報及び構成情報の送受信が実行される。この内部結合網によって、制御プロセッサ132同士が、ストレージ130の構成情報を共有し、管理することができる。なお、可用性向上のため、内部結合網も多重化されていることが望ましい。
管理端末140は、CPU142、メモリ143、記憶装置144、インタフェース制御部141、インタフェース制御部147、入力装置145及びディスプレイ146を備える。
CPU142は、記憶装置144に格納されるストレージ管理プログラムをメモリ143に読み出して、これを実行することによって、構成情報の参照、構成変更の指示、特定機能の動作指示等を実行する。その結果、管理端末140は、ストレージ130の保守運用に関して、ストレージ管理者又は管理サーバ110とストレージ130との間のインタフェースとなる。なお、ストレージ130は、直接管理サーバ110へ接続され、管理サーバ110で動作する管理ソフトウェアによって管理されてもよい。この場合、計算機システムから管理端末140を省略することができる。
メモリ143及び記憶装置144は、ストレージ管理プログラムを格納することを除いて、管理サーバ110のメモリ112及び記憶装置113と同様である。
入力装置145は、ストレージ管理者からの入力を受付ける。
ディスプレイ146は、ストレージ管理者にストレージ130の構成情報及び管理情報等を出力する出力装置である。
インタフェース制御部141は、ストレージ130と接続される。
インタフェース制御部147は、IPネットワーク175と接続される。
外部ストレージ150は、一つ又は複数のポート151、制御プロセッサ152、メモリ153、ディスクキャッシュ154、一つ又は複数のディスクドライブ156及び一つ又は複数のポート155を備えるデータ記憶装置である。
一つ又は複数のポート151は、ファイバチャネルスイッチ120を介してストレージ130のポート131と接続される。
制御プロセッサ152は、メモリ153に格納されたプログラムを実行することによって、ポート151から受信したディスクドライブ156への入出力要求を処理する。
ディスクキャッシュ154は、ストレージ130のディスクキャッシュ135と同様のものである。
一つ又は複数のポート155は、それぞれ、一つ又は複数のディスクドライブ156に接続される。
本実施の形態の外部ストレージ150は、制御メモリを備えず、ストレージ130より小規模な構成のストレージである。しかし、外部ストレージ150は、ストレージ130と同じ構成を備える同規模のストレージであってもよい。
ファイバチャネルスイッチ120は、複数のポート121を備え、ホスト100、ストレージ130及び外部ストレージ150を相互に接続するネットワーク(いわゆるストレージエリアネットワーク)を構成する。
なお、本実施の形態では、図1に示すように、ストレージ装置130のポート131と外部ストレージ150のポート151とがファイバチャネルスイッチ120を介して接続される。このため、ファイバチャネルスイッチ120のゾーニングを設定することによって、ホスト100から外部ストレージ150への直接アクセスを抑止することが望ましい。あるいは、ファイバチャネルスイッチ120を介さずにポート131とポート151とが直接接続されてもよい。
次に、本発明の実施の形態におけるストレージ130のソフトウェア構成について説明する。
図2は、本発明の実施の形態のストレージ130、外部ストレージ150および管理サーバ110の制御メモリ及びメモリに格納される、制御情報及びストレージ制御処理のためのプログラムの一例を示すソフトウェア構成図である。
ストレージ130の制御メモリ135には、ストレージ130の構成管理情報として、論理デバイス管理情報201、LUパス管理情報202、物理デバイス管理情報203、外部デバイス管理情報204、キャッシュ管理情報205、デバイス機能管理情報206、拡張VOL管理情報207及びプールVOL管理情報208が格納される。本実施の形態において、これらの情報は、消失を防ぐため、制御メモリ135に格納される。制御プロセッサ132は、これらの制御情報を参照及び更新することができる。ただし、その際に、相互接続網を介したアクセスが必要となる。よって、処理性能向上のため、各制御プロセッサ132で実行される処理に必要な制御情報の複製(デバイス管理情報の複製211)が、メモリ133に格納される。さらに、制御端末140及び管理サーバ110にもストレージ130の構成情報が送信され、格納される。
管理サーバ110若しくは管理端末140から、ストレージ管理ソフトウェア若しくはストレージ管理者の指示を受けて、ストレージ130の構成が変更された場合、又は、ストレージ130内の構成が、各部位の障害若しくは自動交替等によって変化した場合、制御プロセッサ132のうちの一つが制御メモリ135内の該当する構成情報を更新する。そして、制御プロセッサ132は、制御情報が構成変更のために更新された旨を、相互接続網を介して他の制御プロセッサ132、管理端末140及び管理サーバ110に通知し、最新情報を制御メモリ135から他部位のメモリへ取り込ませる。
ストレージ130のメモリ133には、デバイス管理情報の複製211に加えて、デバイス接続切替処理221、デバイス起動/停止処理222、停止デバイス監視処理223、デバイス定義処理224及びデバイス移行処理225が格納される。これらの処理は、制御プロセッサ132によって実行されるプログラムである。これらの処理については、後で詳細に説明する。
外部ストレージ150のメモリ153には、ストレージ130と同様、自装置内部の論理デバイス及び物理デバイスのデバイス管理及びデータ管理のために、論理デバイス管理情報251、LUパス管理情報252、物理デバイス管理情報253及びキャッシュ管理情報254が格納される。これらの情報は、それぞれ、ストレージ130の論理デバイス管理情報201、LUパス管理情報202、物理デバイス管理情報203及びキャッシュ管理情報205と同じ目的で用いられる。
さらに、外部ストレージ150のメモリ153には、I/O処理261及び外部デバイス起動/停止処理262が格納される。これらの処理は、制御プロセッサ152によって実行されるプログラムである。これらの処理については、後で詳細に説明する。
管理サーバ110のメモリ112には、ストレージ130及び外部ストレージ150から収集したデバイス管理情報の複製231及び各ストレージの属性を示すストレージ管理情報232が格納される。これらの情報は、データ消失を避けるために、管理サーバ110に搭載された記憶装置113に格納されてもよい。
さらに、管理サーバ110のメモリ112には、デバイス接続切替要求処理241及びデバイス定義指示処理242が格納される。これらの処理は、CPU111によって実行されるプログラムである。これらの処理については、後で詳細に説明する。
次に、各管理情報について説明する。最初に、論理デバイス管理情報201について説明する。
図3は、本発明の実施の形態の論理デバイス管理情報201の一例を示す説明図である。
論理デバイス管理情報201は、各論理デバイスについて、論理デバイス番号301から最終起動/停止時間312までの情報の組を保持する。
論理デバイス番号301には、論理デバイスを識別するために制御プロセッサ132が論理デバイスに割り当てた番号が格納される。
サイズ302には、論理デバイス番号301によって特定される論理デバイスの容量が格納される。以下、図3の説明において、論理デバイス番号301によって特定される論理デバイスを「当該論理デバイス」と記載する。
対応下位デバイス番号303には、当該論理デバイスに対応づけられている物理デバイス、外部デバイス、又は拡張ボリュームの番号が格納される。物理デバイス、外部デバイス、又は拡張ボリュームの番号とは、それぞれの管理情報である物理デバイス管理情報203、外部デバイス管理情報204、又は拡張VOL管理情報207のエントリ番号である。
本実施の形態の論理デバイスは、物理デバイス、外部デバイス又は拡張VOLと1対1に対応する。しかし、論理デバイスは、複数の物理デバイス又は外部デバイスの結合と対応してもよい。この場合、論理デバイス管理情報201に、各論理デバイスが対応する物理デバイス又は外部デバイスの番号のリストと、それらの物理デバイス又は外部デバイスの数を格納するエントリが必要となる。なお、論理デバイスが未定義の場合、対応下位デバイス番号303には無効値が格納される。
タイプ304には、当該論理デバイスのデバイスタイプ識別情報が格納される。ストレージ130は、キャッシュ上でのデータ管理単位又はデバイス管理情報の格納形態(ディスク空間に管理情報が格納されるか否か、及び、格納形態等)等が異なる複数のデバイスタイプの論理デバイスを定義することができる。タイプ304に格納された情報は、各論理デバイスがどのデバイスタイプであるかを示す。
デバイス状態305には、当該論理デバイスの状態を示す情報が格納される。論理デバイスの状態は、「アタッチド」、「デタッチド」、「未実装」又は「ブロックド」のいずれかである。
「アタッチド」は、当該論理デバイスが正常に稼動し、一つ以上のポート131にLUパスが定義され、ホスト100が当該論理デバイスにアクセスできる状態を示す。「デタッチド」は、当該論理デバイスは定義され、正常に稼動しているが、LUパスが未定義であるなどの理由で、ホスト100が当該論理デバイスにアクセスできない状態を示す。「未実装」は、当該論理デバイスが物理デバイス、外部デバイス又は拡張VOLに対して定義されておらず、ホスト100が当該論理デバイスにアクセスできない状態を示す。「ブロックド」は、当該論理デバイスに障害が発生して、ホスト100が当該論理デバイスにアクセスできない状態を示す。
デバイス状態305の初期値は「未実装」であり、論理デバイス定義処理によって「デタッチド」に、更にLUパス定義処理によって「アタッチド」に変更される。
エントリ306には、ポート番号、ターゲットID及びLUNが格納される。エントリ306のポート番号は、当該論理デバイスが複数のポート131のうちどのポートにLUN定義されているかを表す情報、即ち、当該論理デバイスにアクセスするために用いられるポート131の識別情報である。ここでポート131の識別情報とは、各ポート131に割り当てられているストレージ130内で一意な番号である。また、エントリ306に格納されるターゲットID及びLUNは、当該論理デバイスを識別するための識別子である。本実施の形態においては、論理デバイスを識別するための識別子として、SCSI上でホスト100がデバイスにアクセスする場合に用いられるSCSI−ID及びLUNが用いられる。エントリ306は、当該論理デバイスに対するLUパス定義が実行された際に設定される。
接続ホスト名307は、当該論理デバイスへのアクセスが許可されているホスト100を識別するホスト名である。ホスト名としては、ホスト100のポート107に付与されたWWN(World Wide Name)など、ホスト100又はポート107を一意に識別できる値であれば何を用いてもよい。ストレージ130は、このほかに、各ポート131のWWNなど、ポートの属性に関する管理情報を保持する。当該エントリ307は、ストレージ管理者によって論理デバイス定義時に設定される。
移行中の下位デバイス番号308、データ移行進捗ポインタ309及びデータ移行中フラグ310には、当該論理デバイスのデータの移行に関する情報が格納される。
移行中の下位デバイス番号308には、当該論理デバイスが現在対応している物理デバイス、外部デバイス又は拡張VOLのデータが、別の物理デバイス、外部デバイス又は拡張VOLへ移行中である場合、移行先のデバイス番号が格納される。当該論理デバイスがデータ移行中である場合、データ移行中フラグ310には「ON」が格納され、データ移行進捗ポインタ309にはデータ移行が完了した領域の末尾を示すアドレス情報が格納される。なお、エントリ308及び309は、データ移行中フラグ310が「ON」の時のみ有効となる。
停止フラグ311には、当該論理デバイスの起動又は停止状態を示す情報が設定される。すなわち、ユーザ又はアプリケーションプログラムから当該論理デバイスへ停止を伴うデタッチ要求又は停止要求があり、ストレージ130が当該要求を受信した場合、停止フラグ311には当該論理デバイスが停止していることを示す「Off」が格納される。ここで、デタッチ要求とは、当該論理デバイスに関するLUパス定義を解除する要求である。「アタッチド」状態の論理デバイスについてデタッチ要求が発行されると、その論理デバイスの状態は「デタッチド」に変更される。また、当該論理デバイスが起動している場合、停止フラグ311には当該論理デバイスが起動していることを示す「On」が格納される。
最終起動/停止時間312には、当該論理デバイスが最後に起動又は停止した時間を示す情報が格納される。
次に、LUパス管理情報202について説明する。
図4は、本発明の実施の形態のLUパス管理情報202の一例を示す説明図である。
LUパス管理情報202には、ストレージ130内の各ポート131について、各ポートに定義されている有効なLUNに関する情報が格納される。
ポート番号401には、ポート131を識別するために割り当てられた番号が格納される。
ターゲットID/LUN402には、ポート番号401によって特定されるポート131に定義された(割り当てられた)LUNが格納される。以下、図4の説明において、ポート番号401によって特定されるポート131を「当該ポート131」、当該ポート131に定義されたLUNを「当該LUN」と記載する。
対応論理デバイス番号403には、当該LUNが割り当てられている論理デバイスの番号が格納される。
接続ホスト名404は、当該ポート131に定義されている当該LUNに対してアクセスを許可されているホスト100を示す情報が格納される。ホスト100を示す情報としては、例えば、上記のホスト100のポート107に付与されているWWNが用いられる。なお、一つの論理デバイスに対して複数のポート131のLUNが定義され(割り当てられ)ており、複数のポート131を経由して当該論理デバイスにアクセスできる場合がある。この場合、当該複数のポート131の各LUNに関するLUパス管理情報202の接続ホスト名404の和集合が、当該論理デバイスに関する論理デバイス管理情報201の接続ホスト名308に格納される。
次に、物理デバイス管理情報203について説明する。物理デバイス管理情報203は、ストレージ130内の1台以上のディスクドライブ137によって構成される物理デバイスの管理に用いられる。
図5は、本発明の実施の形態の物理デバイス管理情報203の一例を示す説明図である。
各ストレージ130は、そのストレージ130内に存在する物理デバイス毎に、物理デバイス番号501から対応ディスクドライブ停止可否フラグ510までの情報の組を保持する。
物理デバイス番号501には、物理デバイスを識別するための識別番号が格納される。
サイズ502には、物理デバイス番号501によって特定される物理デバイスの容量が格納される。以下、図5の説明において、物理デバイス番号501によって特定される物理デバイスを「当該物理デバイス」と記載する。
対応上位デバイス番号503には、当該物理デバイスが対応付けられている論理デバイス番号又はプールVOL番号が、当該論理デバイス又はプールVOLが定義されたことを契機に、格納される。当該物理デバイスが論理デバイス又はプールVOLへ割り当てられていない場合、エントリ503には無効値が格納される。
デバイス状態504には、当該物理デバイスの状態を示す情報が格納される。物理デバイスの状態は、「アタッチド」、「デタッチド」、「未実装」、「ブロックド」のいずれかである。
「アタッチド」は、当該物理デバイスが正常に稼動し、論理デバイス又はプールVOLに割り当てられている状態を示す。「デタッチド」は、当該物理デバイスは定義され、正常に稼動しているが、論理デバイス又はプールVOLに割り当てられていないことを示す。「未実装」は、当該物理デバイス番号に対応する物理デバイスがディスクドライブ137上に定義されていない状態を示す。「ブロックド」は、当該物理デバイスに障害が発生してアクセスできない状態を示す。
デバイス状態504の初期値は「未実装」であり、物理デバイス定義処理によって「デタッチド」に、さらに論理デバイスが定義されたことを契機に「アタッチド」に変更される。
停止フラグ505には、当該物理デバイスの起動又は停止状態を示す情報が格納される。すなわち、ユーザ又はアプリケーションプログラムから当該物理デバイスに対応する論理デバイスへ停止を伴うデタッチ要求又は停止要求があり、当該要求が受理されて当該論理デバイスが停止状態となり、当該物理デバイスに対応する全ての論理デバイスが停止状態になった場合、当該物理デバイスに対応するディスクドライブ137が停止したときに、停止フラグ505には当該物理デバイスが停止状態になったことを示す「Off」が格納される。一方、当該物理デバイスが起動している場合、停止フラグ505には起動状態を示す「On」が格納される。
最終起動/停止時間506には、当該物理デバイスが起動状態又は停止状態に変更された日時、すなわち、停止フラグ505が「On」又は「Off」に変更された日時を示す情報が格納される。最終起動/停止時間506と現在時刻を用いることによって、当該物理デバイスが起動又は停止してから現在までの経過時間を算出することができる。
RAID構成507には、RAID構成に関連する情報が格納される。RAID構成に関連する情報とは、例えば、当該物理デバイスが割り当てられたディスクドライブ137のRAIDレベル、データディスク及びパリティディスクの数、並びに、データ分割単位であるストライプのサイズ等である。
ディスク番号リスト508には、当該物理デバイスが割り当てられた、RAIDを構成する複数のディスクドライブ137の識別番号が保持される。これらのディスクドライブ137の識別番号は、ストレージ130内でディスクドライブ137を識別するために付与された一意の値である。
ディスク内サイズ/オフセット509は、当該物理デバイスが各ディスクドライブ137内のどの領域に割り当てられているかを示す情報である。本実施の形態は、簡単のため、全物理デバイスについて、RAIDを構成する各ディスクドライブ137内のオフセット及びサイズが同一である場合について説明する。しかし、上記のオフセット及びサイズが物理デバイスごとに異なる場合にも、本発明を適用することができる。
対応ディスクドライブ停止可否フラグ510には、当該物理デバイスを構成する1台以上のディスクドライブが起動/停止制御可能な場合(すなわち、それらのディスクドライブのディスク回転の起動及び停止が制御される場合)には「On」が格納される。一方、これらのディスクドライブが起動/停止制御不能な場合(すなわち、それらのディスクドライブのディスク回転の起動及び停止が制御されない場合)には、対応ディスクドライブ停止可否フラグ510に「Off」が格納される。このフラグは、制御可否の判定に用いられる(例えば、図12のステップ1206参照)。
なお、ディスクドライブの起動及び停止とは、ディスクドライブ内のディスクの回転の開始及び停止であってもよいし、ディスクドライブに供給する電源の投入及び遮断であってもよい。
次に、外部デバイス管理情報204について説明する。外部デバイス管理情報204は、ストレージ130に接続された外部ストレージ150の論理デバイスを外部デバイスとして管理するために用いられる。
図6は、本発明の実施の形態の外部デバイス管理情報204の説明図である。
ストレージ130は、ストレージ130で管理する外部デバイス毎に、外部デバイス番号601から対応ディスクドライブ停止可否フラグ611までの情報の組を保持する。
外部デバイス番号601には、ストレージ130の制御プロセッサ132が当該外部デバイスに対して割り当てた、ストレージ130内で一意な値が格納される。
サイズ602には、外部デバイス番号601によって特定される外部デバイスの容量が格納される。以下、図6の説明において、外部デバイス番号601によって特定される外部デバイスを「当該外部デバイス」と記載する。
対応上位デバイス番号603には、当該外部デバイスが対応付けられているストレージ130内の論理デバイス又はプールVOLの番号が格納される。
デバイス状態604、停止フラグ605及び最終起動/停止時間606には、当該外部デバイスについて、物理デバイス管理情報203のデバイス状態504、停止フラグ505及び最終起動/停止時間506と同様の情報が格納される。なお、ストレージ130は初期状態では外部ストレージ150を接続していないため、デバイス状態604の初期値は「未実装」となる。
ストレージ識別情報607には、当該外部デバイスを搭載する外部ストレージ150の識別情報が格納される。外部ストレージ150の識別情報は、例えば、その外部ストレージ150のベンダ識別情報及び各ベンダが一意に割り当てる製造シリアル番号の組み合わせであってもよい。
外部ストレージ内デバイス番号608には、当該外部デバイスに対応する外部ストレージ150の論理デバイスの論理デバイス番号、すなわち、その論理デバイスに対して、外部ストレージ150内で割り当てられた識別番号が格納される。
イニシエータポート番号リスト609には、当該外部デバイスへアクセス可能なストレージ130のポート131の識別番号が格納される。複数のポート131から当該外部デバイスへアクセスできる場合、複数のポート識別番号が格納される。
ターゲットポートID/ターゲットID/LUNリスト610には、当該外部デバイスが外部ストレージ150の一つ以上のポート151にLUN定義されている場合、それらのポート151のポートID、並びに、当該外部デバイスが割り当てられたターゲットID及びLUNが一つ又は複数個格納される。なお、ストレージ装置130の制御プロセッサ132が外部デバイスにアクセスする場合(すなわち、制御プロセッサ132がポート131から外部デバイスに対する入出力要求を送信する場合)、当該外部デバイスが属する外部ストレージ150によって当該外部デバイスに割り当てられたターゲットID及びLUNが、当該外部デバイスを識別するための情報として用いられる。
対応ディスクドライブ停止可否フラグ611には、当該外部デバイスに対応する外部ストレージ150の論理デバイスについて、ディスクドライブ起動/停止制御が可能か否かを示す情報が格納される。具体的には、当該外部デバイスが対応する外部ストレージ150自体がディスクドライブ156の起動/停止を制御可能か否かが判定される。さらに、当該外部ストレージ150がディスクドライブ156の起動/停止を制御可能である場合、当該外部デバイスが対応する当該外部ストレージ150の論理デバイスに対応するディスクドライブ156が起動/停止制御可能であるか否かが判定される。その結果、制御可能であると判定された場合、対応ディスクドライブ停止可否フラグ611に「On」が格納される。一方、制御不能と判定された場合、対応ディスクドライブ停止可否フラグ611に「Off」が格納される。このフラグは、制御可否の判定に用いられる(例えば、図12のステップ1206参照)。
次に、デバイス機能管理情報206について説明する。デバイス機能管理情報206には、各論理デバイスに設定された様々な属性を示す属性情報(図示省略)が格納される。論理デバイスの属性情報としては、例えば、当該論理デバイスへのアクセスを特定ホストからのみに制限するアクセス制御情報、当該論理デバイスへのリード又はライトアクセスを抑止するアクセス属性情報、当該論理デバイス内のデータへ暗号化を適用するか否かを示す情報及び暗号化・複合化に用いられる鍵情報を含む暗号設定情報、などが挙げられる。
次に、拡張VOL管理情報207について説明する。本実施の形態の拡張VOLは、物理記憶領域が動的に割り当てられる仮想ボリュームである。具体的には、拡張VOLが定義された時点で、その拡張VOLには物理記憶領域が割り当てられていない。その後、ホスト100等から更新アクセスを受けると、拡張VOL上のアクセス対象の部分に対応する物理記憶領域として、プールVOLの記憶領域が動的に割り当てられる。拡張VOL管理情報207は、拡張VOLと論理デバイスとの対応関係、及び、拡張VOLとプールVOLとの対応関係を管理するために用いられる。
図7は、本発明の実施の形態の拡張VOL管理情報207の説明図である。
ストレージ130は、拡張VOL毎に、拡張VOL番号701から実領域割当総量709までの情報の組を保持する。
拡張VOL番号701には、ストレージ130の制御プロセッサ132が拡張VOLに対して割り当てた、ストレージ130内で一意な値が格納される。
サイズ702には、拡張VOL番号701によって特定される拡張VOLのホスト100からの見掛けの容量が格納される。言い換えると、ホスト100は、当該拡張VOLの容量が、サイズ702に格納された値であると認識する。以下、図7の説明において、拡張VOL番号701によって特定される拡張VOLを「当該拡張VOL」と記載する。
対応論理デバイス番号703には、当該拡張VOLが対応付けられているストレージ130内の論理デバイスの番号が格納される。
VOL状態704、停止フラグ705及び最終起動/停止時間706には、当該拡張VOLについて、物理デバイス管理情報203のデバイス状態504、停止フラグ505及び最終起動/停止時間506と同様の情報が格納される。なお、本実施の形態では、VOL状態704の初期値は「未実装」となる。
対応プール番号リスト707には、当該拡張VOLの物理記憶領域を格納する全てのプールVOLの番号が格納される。
プールエントリ対応管理情報708には、当該拡張VOLがホストに提供する記憶領域と、当該拡張VOLに対応するプールVOL内の物理記憶領域との対応を示す情報が格納される。当該拡張VOLが定義されたばかりの初期状態において、当該拡張VOLには物理記憶領域が割り当てられていない。このため、当該拡張VOLの全記憶領域は未割り当て状態である。ホスト100等から当該拡張VOLに対応する論理デバイスへの更新アクセスを受けると、拡張VOL内のアクセス対象位置が算出され、該当する記憶領域にプールVOLの記憶領域(すなわち、物理記憶領域)が割り当てられているか否かがチェックされる。アクセス対象の記憶領域に対して物理記憶領域が割り当てられていない場合、対応プール番号リスト707が示す一つ以上のプールVOLから適当な記憶領域が選択される。そして、選択された記憶領域が、拡張VOLのアクセス対象の記憶領域に対応する物理記憶領域として割り当てられる。
実領域割当総量709には、当該拡張VOLに対して割り当てられた物理記憶領域の総容量が格納される。
次に、プールVOL管理情報208について説明する。本実施の形態のプールVOLとは、拡張VOLの物理記憶領域として割り当てられる記憶領域を提供及び管理する仮想的なボリュームである。プールVOL管理情報208は、プールVOLと拡張VOLとの対応関係、及び、プールVOLと物理デバイス又は外部デバイスとの対応関係を管理するために用いられる。
図8は、本発明の実施の形態のプールVOL管理情報208の説明図である。
ストレージ130は、プールVOL毎に、プールVOL番号801から最終起動/停止時間811までの情報の組を保持する。
プールVOL番号801には、ストレージ130の制御プロセッサ132が当該プールVOLに対して割り当てた、ストレージ130内で一意な値が格納される。
サイズ802には、プールVOL番号801によって特定されるプールVOLの容量が格納される。以下、図8の説明において、プールVOL番号801によって特定されるプールVOLを「当該プールVOL」と記載する。
空き容量803には、拡張VOLに割り当てられていない記憶領域の総容量を示す情報が格納される。
VOL状態804、停止フラグ810及び最終起動/停止時間811には、当該プールVOLについて、拡張VOL管理情報207のVOL状態704、停止フラグ705及び最終起動/停止時間706と同様の情報が格納される。
物理/外部デバイス番号805には、当該プールVOLが割り当てられた物理デバイス又は外部デバイスの番号が格納される。
プールエントリサイズ806には、当該プールVOLの記憶領域を拡張VOLの物理記憶領域として割り当てる際の割り当て単位(エントリ)の大きさを示す情報が格納される。拡張VOLの記憶領域は、対応するプールVOLのプールエントリサイズ806が示す大きさの複数のエントリに分割される。
プールエントリ割当状態管理情報807には、拡張VOLの各エントリとプールVOLの各エントリとの対応状態が格納される。
対応拡張VOL番号リスト808には、当該プールVOLの記憶領域を物理記憶領域として割り当てた一つ以上の拡張VOLの番号が格納される。
対応ディスクドライブ停止可否フラグ809には、当該プールVOLが対応する物理デバイス又は外部デバイスの対応ディスクドライブ停止可否フラグ510又は611の内容がそのまま複製して格納される。
本実施の形態では、ストレージ130は、上記の7つのデバイス管理情報及びボリューム管理情報を用いて、デバイス及びボリュームを管理する。工場出荷時において、ストレージ130の各ディスクドライブ137に物理デバイスが定義され、論理デバイス、外部デバイス、拡張VOL及びプールVOLは定義されていない。これがストレージ130の初期状態である。
物理デバイスを定義する際に、各物理デバイスに対応するディスクドライブ137が起動/停止制御可能か否かによって、物理デバイス管理情報203の対応ディスクドライブ停止可否フラグ510に「On」又は「Off」が設定される。対応ディスクドライブ停止可否フラグ510に「On」が設定された物理デバイスは、デバイス状態が「デタッチド」であるとき、すなわち、当該物理デバイスが論理デバイスに割り当てられていないとき、対応するディスクドライブ137を停止してもよい。これによって、ストレージ130稼動に伴う電力消費量を削減することができる。
また、ユーザ又はストレージ管理者は、ストレージ130を導入する時に、そのストレージ130に接続された外部ストレージ150の論理デバイスを外部デバイスとして定義し、これらの物理デバイス及び外部デバイス上に論理デバイス又はプールVOLを定義することができる。ユーザ又はストレージ管理者は、プールVOLを定義した場合、更に拡張VOL及び論理デバイスを定義する。そして、ユーザ又はストレージ管理者は、定義された論理デバイスについて、各ポート131にLUNを定義する。
なお、物理デバイスと同様に、ディスクドライブ起動/停止制御可能な外部デバイスのうち、論理デバイスに割り当てられていないものに対応するディスクドライブ156は、停止してもよい。さらに、外部ストレージ150に対応するいずれの外部デバイスも論理デバイスに割り当てられていない場合、当該外部ストレージ150自体を停止してもよい。
次に、再び図2を参照して、ストレージ130、外部ストレージ150及び管理サーバ110のメモリ133、153及び112に格納されるプログラムのうち、本発明に関係のあるものについて説明する。
以下、ストレージ130へ論理デバイスを定義する処理、論理デバイスの起動/停止を伴うアタッチ/デタッチ処理、及び、停止されたデバイスを周期的に監視する処理について説明する。これらの処理は、ユーザ又はアプリケーションからの要求に対して、管理サーバ110、ストレージ130及び外部ストレージ150が連携することによって実行される。
まず、論理デバイスを定義する処理について説明する。ストレージ130へ論理デバイスを定義するために、管理サーバ110及びストレージ130は、それぞれ、デバイス定義指示処理242及びデバイス定義処理224を実行する。
図9は、本発明の実施の形態の管理サーバ110で実行される、デバイス定義指示処理242の一例を示すフローチャートである。
図9の説明において、管理サーバ110が実行する処理は、実際には、デバイス定義指示処理242を実行するCPU111によって実行される。
管理サーバ110は、IPネットワーク175及びインタフェース制御部116を介して、ユーザ又はアプリケーションプログラムからストレージ130の論理デバイス定義要求を受信する(ステップ901)。当該要求には、例えば、要求の対象のストレージ130(当該ストレージ130)の識別情報、要求の対象の論理デバイス(当該論理デバイス)の論理デバイス番号、アクセス元HBA特定情報、ポート特定情報及びデバイス属性情報等の情報が含まれる。ここで、アクセス元HBA特定情報とは、例えば、WWN等である。ポート特定情報とは、例えば、ポート131のポートID、ターゲットID及びLUNのリスト等である。デバイス属性情報とは、例えば、当該論理デバイスが拡張VOLとして割り当てられるか否かを示す情報、及び、当該論理デバイスの用途を示す情報等である。
管理サーバ110は、最初に、受信したデバイス定義要求に含まれる情報及び当該ストレージ130に設定された管理アクセス権設定等を参照して、受信した要求が当該ストレージ130の管理アクセス権を持ったユーザ又はホスト100上のアプリケーションプログラムから発行されたことを確認する。そして、その要求が管理アクセス権を持ったユーザ等から発行されたことが確認された場合、管理サーバ110は、処理を続行する。
次に、管理サーバ110は、受信したデバイス定義要求に含まれる情報から、当該論理デバイスを通常のボリュームとして定義するか、拡張VOLとして定義するかを判定する(ステップ902)。
ステップ902において、当該論理デバイスを拡張VOLとして定義する(言い換えると、当該論理デバイスを拡張VOLとして割り当てる)と判定された場合、管理サーバ110は、当該論理デバイスの用途を示す情報等を参照して、ディスクドライブ起動/停止制御をする必要があるか否かを判定する(ステップ903)。なお、図9における「HDD(ハードディスクドライブ)」は、ディスクドライブ137を意味する。
例えば、論理デバイスの起動/停止制御要否を示すフラグを設け、論理デバイス定義時にユーザ等がこのフラグを設定し、管理サーバ110がこのフラグを参照してステップ903の要否判定を実行してもよい。あるいは、ユーザ等がアタッチ/デタッチ制御要否を示す情報を設定し、管理サーバ110がこの情報を参照してステップ903の要否判定を実行してもよい。
あるいは、論理デバイスのアクセス頻度及びアクセスの傾向を示す情報として、「WORM(Write Once Read Many)」又は「WORF(Write Once Read Few)」等の属性を設定してもよい。例えば、当該論理デバイスにWORM属性が設定されている場合、当該論理デバイスのデータは、頻繁に読み出される(すなわち、アクセス頻度が高い)ことが予想される。一方、当該論理デバイスにWORF属性が設定されている場合、当該論理デバイスのデータは、ほとんど読み出されることがない(すなわち、アクセス頻度が低い)と予想される。
あるいは、管理サーバ110は、上記の属性に対応する用途情報を参照して、当該論理デバイスへのアクセス頻度を予想してもよい。ここで、用途情報とは、当該論理デバイスに格納するデータの種別(例えば「DBデータ」「メールアーカイブデータ」又は「ファイルシステム」)等を示す情報である。
上記の属性又は用途情報を参照した結果、リード/ライト等のアクセス頻度が低いと予想された論理デバイスについては、ディスクドライブ停止による消費電力削減の効果が高いことが期待できる。このため、管理サーバ110は、当該論理デバイスのアクセス頻度が低いと予想された場合に、ステップ903において、ディスクドライブ起動/停止制御が必要であると判定してもよい。
ステップ903において、ディスクドライブ起動/停止制御が必要であると判定された場合、当該論理デバイスをディスクドライブ起動/停止制御可能な物理デバイス又は外部デバイスに割り当てることが望ましい。そうしないと、結局ディスクドライブを停止することができないため、消費電力削減の効果を得ることができないからである。このため、管理サーバ110は、ディスクドライブ起動/停止制御可能な物理デバイス又は外部デバイスに対応している全てのプールVOLの残容量、すなわち、拡張VOLの物理記憶領域として割り当てられていない領域の総容量が所定の規定値以上であるか否かを判定する(ステップ904)。なお、ステップ904におけるプールVOLの残容量とは、当該論理デバイスが定義された後のプールVOLの残容量の予測値である。
ステップ904において、該当するプールVOLの残容量が規定値以上であると判定された場合、既に定義されているプールVOLに十分な残容量がある。このため、管理サーバ110は、既に定義されているプールVOLうちの一つに対応した拡張VOLを定義し、当該拡張VOLへ当該論理デバイスを割り当てる旨をストレージ130へ指示する(ステップ905)。
一方、ステップ904において、該当するプールVOLの残容量が規定値以上でないと判定された場合、ディスクドライブ起動/停止制御可能なデバイス上に既に定義されているプールVOLに十分な残容量がない。この場合、管理サーバ110は、ディスクドライブ起動/停止制御可能な物理デバイス又は外部デバイスのうち、論理デバイスにもプールVOLにも割り当てられていないデバイス(以下、空きデバイスと記載する)があるか否かを調査する(ステップ906)。
ステップ906において、該当する空きデバイスがあると判定された場合、管理サーバ110は、その空きデバイスに新たなプールVOL及びそのプールVOLに対応する拡張VOLを定義して、その拡張VOLに当該論理デバイスを割り当てる旨をストレージ130へ指示する(ステップ907)。その結果、当該論理デバイスは、新たに定義された一つのプールVOLと対応付けられる。すなわち、一つの論理デバイスは、ディスクドライブ起動/停止制御可能な一つの物理デバイス又は一つの外部デバイスと対応付けられる。
一方、ステップ906において、該当する空きデバイスがないと判定された場合、結局、当該論理デバイスをディスクドライブ起動/停止制御可能な物理デバイス又は外部デバイスに割り当てることができない。この場合、管理サーバ110は、ディスクドライブ起動/停止制御不能なプールVOLの残容量が所定の規定値以上であるか否かを判定する(ステップ908)。
ステップ908において、該当するプールVOLの残容量が所定の規定値以上であると判定された場合、既に定義されているプールVOLに十分な残容量がある。この場合、管理サーバ110は、拡張VOLがディスクドライブ起動/停止制御不能な複数のプールVOLに分散するように、その拡張VOLを定義する。言い換えると、定義された拡張VOLは、ディスクドライブ起動/停止制御不能な複数(望ましくは、全て)のプールVOLに対応する。そして、管理サーバ110は、その拡張VOLに当該論理デバイスを割り当てる旨をストレージ130に指示する(ステップ909)。ここで、拡張VOLを全プールVOLに分散させるのは、アクセス性能を向上させるためである。
一方、ステップ908において、該当するプールVOLの残容量が所定の規定値以上でないと判定された場合、既に定義されているプールVOLに十分な残容量がない。この場合、管理サーバ110は、空きデバイスを検索し、見つかった空きデバイスにプールVOL及びそのプールVOLに対応する拡張VOLを定義し、その拡張VOLに当該論理デバイスを割り当てる(ステップ910)。
一方、ステップ903において、ディスクドライブ起動/停止制御が必要でないと判定された場合、当該論理デバイスをディスクドライブ起動/停止制御不能な物理デバイス又は外部デバイスに割り当てることが望ましい。ディスクドライブ起動/停止制御可能なデバイスを他の論理デバイスに残しておくためである。この場合、管理サーバ110は、ステップ904から910までの手順とは逆に、まず、ディスクドライブ起動/停止制御不能なプールVOLの残容量が所定の規定値以上であるか否かを判定する(ステップ918)。
ステップ918において、該当するプールVOLの残容量が所定の規定値以上であると判定された場合、管理サーバ110は、ステップ919を実行する。ステップ918及び919の処理は、それぞれ、ステップ908及び909と同じであるため、説明を省略する。
一方、ステップ918において、該当するプールVOLの残容量が所定の規定値以上でないと判定された場合、管理サーバ110は、ディスクドライブ起動/停止制御不能な空きデバイスがあるか否かを調査する(ステップ920)。
ステップ920において、該当する空きデバイスがあると判定された場合、管理サーバ110は、その一つ以上の空きデバイスに新たな一つ以上のプールVOL及びそれらのプールVOLに対応する拡張VOLを定義して、その拡張VOLに当該論理デバイスを割り当てる旨をストレージ130へ指示する(ステップ921)。その結果、当該論理デバイスは、新たに定義された一つ以上のプールVOLと対応付けられる。このとき、一つのプールVOLが複数の空きデバイスに対応するように定義され、その一つのプールVOLが一つの拡張VOLと対応するように定義されてもよい。あるいは、一つのプールVOLが一つの空きデバイスに対応するように定義され、複数のプールVOLが一つの拡張VOLと対応するように定義されてもよい。
一方、ステップ920において、該当する空きデバイスがないと判定された場合、管理サーバ110は、ディスクドライブ起動/停止制御可能な物理デバイス又は外部デバイスに対応している全てのプールVOLの残容量が所定の規定値以上であるか否かを判定する(ステップ922)。
ステップ922において、残容量が規定値以上であると判定された場合、管理サーバ110は、ステップ923を実行する。一方、ステップ922において、残容量が規定値以上でないと判定された場合、管理サーバ110は、ステップ924を実行する。ステップ922、923及び924の処理は、それぞれ、ステップ904、905及び910と同じであるため、説明を省略する。
以上の処理の結果、当該論理デバイスの割り当て対象がディスクドライブ起動/停止制御可能なプールVOLである場合、拡張VOLは一つのプールVOLに対応して定義される。一方、当該論理デバイスの割り当て対象がディスクドライブ起動/停止制御不能なプールVOLである場合、拡張VOLは既に定義されている全プールVOLに対応して定義される。その結果、ディスクドライブ起動/停止制御が必要な場合、一つの論理デバイスのデータを特定のプールVOLに集約することによって、ディスクドライブ起動/停止制御に関るディスクドライブ137の数を制限することができる。その結果、ディスクドライブ起動/停止制御が容易になる。
一方、ディスクドライブ起動/停止制御が不要な場合、一つの論理デバイスのデータを多数のディスクドライブ137に分散することによって、アクセス性能を向上させることができる。
一方、ステップ902において、当該論理デバイスを拡張VOLとして定義しないと判定された場合(すなわち、当該論理デバイスを通常のボリュームとして定義する場合)、管理サーバ110は、受信した要求に含まれる情報を参照して、ディスクドライブ起動/停止制御をする必要があるか否かを判定する(ステップ912)。この判定は、ステップ903と同様に実行される。
ステップ912において、ディスクドライブ起動/停止制御をする必要があると判定された場合、管理サーバ110は、ディスクドライブ起動/停止制御可能な空きデバイスがあるか否かを判定する(ステップ913)。
ステップ913において、ディスクドライブ起動/停止制御可能な空きデバイスがあると判定された場合、管理サーバ110は、その空きデバイスに当該論理デバイスを割り当てる旨をストレージ130に指示する(ステップ914)。
一方、ステップ913において、ディスクドライブ起動/停止制御可能な空きデバイスがないと判定された場合、管理サーバ110は、ストレージ130全体から空きデバイスを検索する。そして、発見された空きデバイスに当該論理デバイスを割り当てる旨をストレージ130に指示する(ステップ917)。
一方、ステップ912において、ディスクドライブ起動/停止制御をする必要がないと判定された場合、管理サーバ110は、ディスクドライブ起動/停止制御不能な空きデバイスがあるか否かを判定する(ステップ915)。
ステップ915において、ディスクドライブ起動/停止制御不能な空きデバイスがあると判定された場合、管理サーバ110は、その空きデバイスに当該論理デバイスを割り当てる旨をストレージ130に指示する(ステップ916)。
一方、ステップ915において、ディスクドライブ起動/停止制御不能な空きデバイスがないと判定された場合、管理サーバ110は、ステップ917を実行する。
ステップ905、907、909、910、914、916、917、919、921、923又は924が終了すると、管理サーバ110は、ユーザ又はアプリケーションプログラムに処理の完了を報告する(ステップ911)。以上で処理を終了する。
図10は、本発明の実施の形態のストレージ130で実行される、デバイス定義処理224の一例を示すフローチャートである。
図10の説明において、ストレージ130が実行する処理は、実際には、デバイス定義処理224を実行する制御プロセッサ132によって実行される。
まず、ストレージ130は、管理サーバ110から論理デバイス定義要求を受信する(ステップ1001)。この要求は、デバイス定義指示処理242(図9)のステップ905、907、909、910、914、916、917、919、921、923又は924において発行された指示である。受信した要求には、管理サーバ110がデバイス定義指示処理242のステップ901で受信した情報が含まれる。要求の対象の論理デバイス(当該論理デバイス)が通常のボリュームとして定義される場合、受信した要求には、さらに、論理デバイス割り当て対象の物理デバイス番号又は外部デバイス番号が含まれる。当該論理デバイスが拡張VOLとして定義される場合、受信した要求には、さらに、新規に割り当てる拡張VOL番号及びその拡張VOLの割り当て対象のプールVOL番号か、又は、新規に割り当てる拡張VOL番号及びプールVOL番号、並びに、そのプールVOLの割り当て対象の物理デバイス番号又は外部デバイス番号等が含まれる。
次に、ストレージ130は、受信した要求に含まれる情報を参照して、当該論理デバイスが拡張VOLとして定義されるか否かを判定する(ステップ1002)。例えば、ストレージ130が図9のステップ905、907、909、910、919、921、923又は924の指示を受信した場合、当該論理デバイスが拡張VOLとして定義されると判定される。一方、ストレージ130が図9のステップ914、916又は917の指示を受信した場合、当該論理デバイスが通常のボリュームとして定義されると判定される。
ステップ1002において、当該論理デバイスが拡張VOLとして定義されない(すなわち、当該論理デバイスが通常のボリュームとして定義される)と判定された場合、プールVOLに関する処理を実行する必要がない。この場合、処理はステップ1006に進む。
一方、ステップ1002において、当該論理デバイスが拡張VOLとして定義されると判定された場合、その拡張VOLにプールVOLを割り当てる必要がある。このため、ストレージ130は、新たなプールVOLを定義する必要があるか否かを判定する(ステップ1003)。例えば、ストレージ130が図9のステップ907、910、921又は924の指示を受信した場合、新たなプールVOLを定義する必要があると判定される。一方、ストレージ130が図9のステップ905、909、919又は923の指示を受信した場合、新たなプールVOLを定義する必要がないと判定される。
ステップ1003において、新たなプールVOLを定義する必要がないと判定された場合、処理はステップ1005に進む。
一方、ステップ1003において、新たなプールVOLを定義する必要があると判定された場合、ストレージ130は、受信した要求によって指定された物理デバイス又は外部デバイスに対してプールVOLを定義する(ステップ1004)。
具体的には、ストレージ130は、プールVOL管理情報208(図8)内の指定されたプールVOL番号に対応する情報エントリについて、割り当て対象の物理デバイス番号又は外部デバイス番号を、物理/外部デバイス番号805に設定する。さらに、ストレージ130は、プールVOL管理情報208を参照して、サイズ802及び対応ディスクドライブ停止可否フラグ809を設定する。さらに、ストレージ130は、空き容量803をサイズ802の値に、VOL状態804を「デタッチ」に、対応拡張VOL番号リスト808を無効値に、停止フラグ810を起動状態を示す「On」に、最終起動/停止時間811を現在時刻に、それぞれ初期化する。プールエントリサイズ806には、ストレージ130で固定の値が設定されてもよいし、ユーザからの論理デバイス割り当て指示によって設定されてもよい。プールエントリ割当状態管理情報807は、全エントリが拡張VOLに未割当となるよう初期化される。
次に、ストレージ130は、ステップ1004において定義されたプールVOL又は受信した要求によって指定された一つ以上のプールVOLに拡張VOLを対応させることによって、拡張VOLを定義する(ステップ1005)。
具体的には、ストレージ130は、指定された拡張VOL番号に対応する拡張VOL管理情報207の情報エントリと、当該拡張VOLに対応するプールVOL(当該プールVOL)のプールVOL管理情報208の情報エントリについて、対応拡張VOL番号リスト808に当該拡張VOL番号を、VOL状態804に「アタッチ」をそれぞれ設定する。さらに、ストレージ130は、サイズ702に当該拡張VOLに対応させる論理デバイスのサイズを、対応論理デバイス番号703に無効値を、VOL状態704に「デタッチ」を、停止フラグ705に「On」を、最終起動/停止時間706に現在時刻を、対応プール番号リスト707に当該プールVOL番号を、実領域割当総量に「0」をそれぞれ設定する。プールエントリ対応管理情報708は、全エントリが未割当状態となるよう初期化される。
次に、ストレージ130は、当該拡張VOLに対して当該論理デバイスを定義する(ステップ1006)。
具体的には、ストレージ130は、対応する論理デバイス管理情報201及び拡張VOL管理情報207において、対応論理デバイス番号703に当該論理デバイス番号を、VOL状態704に「アタッチ」をそれぞれ設定する。さらに、ストレージ130は、サイズ302及びタイプ304に、受信した要求によって指示された内容を、対応下位デバイス番号303に当該拡張VOL番号を、デバイス状態に「デタッチ」を、エントリ306から309に無効値を、データ移行中フラグ310に「Off」を、停止フラグ311に「On」を、最終起動/停止時間312に現在時刻をそれぞれ設定する。
さらに、ステップ1006において、ストレージ130は、指定されたポート131に対してLUNパス定義を実行する。
具体的には、ストレージ130は、対応する論理デバイス管理情報201及びLUパス管理情報202において、エントリ306及び307に、受信した要求によって指定されたポート情報を設定する。さらに、ストレージ130は、エントリ402及び404に、受信した要求によって指定された接続ホスト100情報を設定する。さらに、ストレージ130は、対応論理デバイス番号403に当該論理デバイス番号を設定する。
次に、ストレージ130は、処理完了を管理サーバ110へ報告する(ステップ1007)。
一方、当該論理デバイスが通常のボリュームとして定義される場合、ストレージ130は、指定された空き物理デバイス又は外部デバイスに対して当該論理デバイスを定義し、LUNパス定義を実行し、処理完了を報告する(ステップ1002、1006及び1007)。具体的には、ストレージ130は、対応する論理デバイス管理情報201及び物理デバイス管理情報202又は外部デバイス管理情報203に、必要な情報を設定する。
なお、空き状態の物理デバイス又は外部デバイスについて、対応するディスクドライブ135又は156を停止させる場合、ストレージ130は、ステップ1004及び1006において、プールVOL又は通常のボリュームの割り当て対象となる空きデバイスが停止状態か否かを判定する。その結果、停止状態ならば、ストレージ130は、後述するデバイス起動/停止処理222を実行して、その空きデバイスに対応するディスクドライブ137又は156を起動する必要がある。
次に、論理デバイスのアタッチ/デタッチ処理及び停止デバイス監視処理について説明する。論理デバイスのアタッチ/デタッチ処理を実行するために、管理サーバ110は、デバイス接続切替指示処理241を実行し、ストレージ130は、デバイス接続切替処理221及びデバイス起動/停止処理222を実行し、外部ストレージ150は、I/O処理261及び外部デバイス起動/停止処理262を実行する。I/O処理261においては、対応する物理デバイスが停止した論理デバイスへのアクセス抑止が考慮されている。また、停止デバイス監視処理を実行するために、ストレージ130は、停止デバイス監視処理223及びデバイス移行処理225を実行する。
図11は、本発明の実施の形態の管理サーバ110で実行される、デバイス接続切替要求処理241の一例を示すフローチャートである。
以下の説明において、既に説明した処理と同様の部分については、詳細な説明を省略する。
図11の説明において、管理サーバ110が実行する処理は、実際には、デバイス接続切替要求処理241を実行するCPU111によって実行される。
管理サーバ110は、IPネットワーク175及びインタフェース制御部116を介して、ユーザ又はアプリケーションプログラムから、ストレージ130のある論理デバイス(以下、当該論理デバイスと記載する)に対するアタッチ要求又はデタッチ要求を受信する(ステップ1101)。受信した要求には、例えば、接続切替内容(デタッチ又はアタッチ)、デバイス停止判定情報、アクセス元HBA特定情報(WWN等)、ポート特定情報(ポート131のポートID、ターゲットID及びLUNのリスト等)、及び、対象デバイス特定情報(ストレージ130識別情報及び論理デバイス番号)等が含まれる。
次に、管理サーバ110は、受信した要求の実行可否を判定する(ステップ1102)。具体的には、例えば、管理サーバ110は、当該論理デバイスに設定されたアクセス権等を参照して、受信した要求が、当該論理デバイスへのアクセスを許可されたユーザ又はホスト100上のアプリケーションプログラムからのものであることを確認する。
受信した要求を実行できる場合、管理サーバ110は、受信した要求の種類を判定する(ステップ1003)。具体的には、管理サーバ110は、受信した要求の内容が「当該論理デバイスのデタッチ」であるか否かを判定する。
ステップ1003において、受信した要求が「当該論理デバイスのデタッチ」であると判定された場合、管理サーバ110は、受信した要求に含まれるデバイス停止判定情報等を参照して、当該論理デバイスを停止する必要があるか否かを判定する(ステップ1104)。このときのデバイス停止判定情報は、デタッチ要求の中に設けられた停止要否を示すフラグであってもよい。あるいは、当該論理デバイスをデタッチされた状態にしておく予定期間が設定され、この期間が規定値以上の場合に、当該論理デバイスを停止する必要があると判定してもよい。あるいは、予定時間ではなく、デタッチ期間が設定され、デタッチ期間に応じて、デバイス停止要否判定(ステップ1104)及びデタッチ期間満了時の自動アタッチ等が制御されてもよい。あるいは、デタッチ対象の論理デバイスに対して予想されるアクセス頻度を示す情報が設定され、アクセス頻度が低いと予想されるデバイスを停止すると判定してもよい。
例えば、監査に対応するために長期保存されるメールアーカイブデータなど、「一度だけ書き込まれ、次の監査時までほとんど参照されない」ことがわかっているデータを格納したデバイスについては、あらかじめ、前述した「WORF」等の属性を設定しておく。そして、当該WORF属性が設定されたデバイスのデタッチが指示された場合、ユーザによる指定の有無に関らず、当該論理デバイスを停止すると判定してもよい。あるいは、停止要否を判定せずに、論理デバイスがデタッチを指示された場合には、無条件に停止すると判定してもよい。
ただし、ディスクドライブ137は一般に停止回数の上限が決められており、この上限を越える停止処理の操作は故障につながる。このため、各ディスクドライブ137毎に停止回数を管理し、高頻度の停止を抑制することが望ましい。なお、ストレージ130が停止回数を管理してもよい。言い換えれば、特定のディスクドライブ137を一定の期間内に規定回数以上起動/停止させる結果となる論理デバイスのアタッチ/デタッチ指示又は起動/停止指示を発行しないように、管理サーバ110が制御してもよい。あるいは、管理サーバ110が無条件にアタッチ/デタッチ指示等を発行し、その指示を受信したストレージ130が規定回数超過を検出し、その指示を拒否又は無視してもよい。
次に、管理サーバ110は、ストレージ130に対して当該論理デバイスのアタッチ又はデタッチの要求を送信し(ステップ1105)、ストレージ130から完了報告を受信した後に、ユーザ又はアプリケーションプログラムに対して処理完了を報告する(ステップ1106)。
図12は、本発明の実施の形態のストレージ130で実行される、デバイス接続切替処理221の一例を示すフローチャートである。
図12の説明において、ストレージ130が実行する処理は、実際には、デバイス接続切替処理221を実行する制御プロセッサ132によって実行される。
ストレージ130は、管理サーバ110からIPネットワーク175、管理端末140及びインタフェース制御部138を介して、論理デバイスの接続切替要求を受信する(ステップ1201)。ここで受信する接続切替要求は、アタッチ要求又はデタッチ要求のいずれかである。受信した要求には、ステップ1101で管理サーバ110が受信する切替要求とほぼ同じ情報が含まれる。ただし、ステップ1201で受信した要求には、デバイス停止要否判定情報の代わりに、管理サーバ110での判定結果である、デバイス停止要否フラグが含まれる。
次に、ストレージ130は、受信した要求の対象の論理デバイス(当該論理デバイス)へのアクセス権情報等を参照して、受信した要求を実行できるか否かを判定する。当該要求を実行できない場合、ストレージ130は、管理サーバ110へその旨を通知し、処理を終了する。当該要求を実行できる場合、ストレージ130は、受信した要求の種類を判定する(ステップ1202)。具体的には、受信した要求がデタッチ要求であるかアタッチ要求であるかが判定される。
ステップ1202において、要求がデタッチ要求であると判定された場合、ストレージ130は、まず当該論理デバイスに設定されているLUパス定義を解除する(ステップ1203)。具体的には、ストレージ130は、論理デバイス管理情報201の当該論理デバイスに対応する領域において、エントリ306及び307の内容を消去し、デバイス状態305をデタッチド状態に変更し、LUパス定義情報202の当該論理デバイスに対応するポート番号、ターゲットID及びLUNが格納された領域のエントリ403及び404の内容を消去する。
次に、ストレージ130は、管理サーバ110から受信した要求で当該論理デバイスの停止を指示されているか否かを判定する(ステップ1204)。
ステップ1204において、当該論理デバイスの停止を指示されていないと判定された場合、ストレージ130は、管理サーバ110へ処理の完了を報告し(ステップ1212)、処理を終了する。
一方、ステップ1204において、当該論理デバイスの停止を指示されたと判定された場合、ストレージ130は、当該論理デバイスを停止状態に変更する(ステップ1205)。具体的には、ストレージ130は、論理デバイス管理情報201の停止フラグ306を「Off」に設定する。
次に、ストレージ130は、対応ディスクドライブ停止可否フラグ510、611又は809を参照して、当該論理デバイスが対応する物理デバイス、外部デバイス又はプールVOLに対応するディスクドライブ137等が起動/停止制御可能か否かを判定する(ステップ1206)。ここで、プールVOLに対応するディスクドライブ137等が起動/停止制御可能であるとは、プールVOLに対応する物理デバイスを構成するディスクドライブ137が起動/停止制御可能であること、又は、プールVOLに対応する外部デバイスを構成するディスクドライブ157が起動/停止制御可能であることを意味する。
ステップ1206において、起動/停止制御可能であると判定された場合、ストレージ130は、当該論理デバイスが拡張VOLに対応しているか否か(言い換えると、当該論理デバイスが拡張VOLを介してプールVOLと対応しているか否か)を判定する(ステップ1207)。具体的には、ストレージ130は、当該論理デバイスに関する対応下位デバイス番号303を参照して上記の判定をする。
ステップ1207において、当該論理デバイスが拡張VOLに対応していると判定された場合、その拡張VOLを停止状態に設定する(ステップ1208)。
次に、ストレージ130は、その拡張VOLに関する対応プール番号リスト707を参照して、その拡張VOLに対応するプールVOLを特定する。そして、ストレージ130は、そのプールVOLに対応する全拡張VOLが停止状態であり、かつ、そのプールVOLの残容量を利用停止とすることができるか否かを判定する(ステップ1209)。ここで、「プールVOLに対応する全拡張VOLが停止状態である」とは、それらの拡張VOLに対応する全ての論理デバイスが停止状態であることを意味する。また、「そのプールVOLの残容量を利用停止とすることができる」とは、そのプールVOLの残容量を利用することができなくなっても、起動している残りのプールVOLを利用することによって他の拡張VOLの運用を維持することができることを意味する。
ステップ1209において、そのプールVOLに対応する全拡張VOLが停止状態であり、かつ、そのプールVOLの残容量を利用停止とすることができると判定された場合、そのプールVOLを停止することができる。言い換えると、そのプールVOLに対応するディスクドライブ137を停止することができる。この場合、ストレージ130は、そのプールVOLを停止状態に設定する(ステップ1210)。
次に、ストレージ130は、デバイス起動/停止処理222を呼び出して、対応する物理デバイス又は外部デバイスを停止する(ステップ1211)。
一方、ステップ1207において、当該論理デバイスが拡張VOLではなく、通常のボリュームに対応していると判定された場合、ストレージ130は、当該論理デバイスに関する対応下位デバイス番号303を参照して、当該論理デバイスが対応する物理デバイス又は外部デバイスを特定する。そして、ストレージ130は、特定された物理デバイス又は外部デバイスに対応する全ての論理デバイスが停止状態であるか否かを判定する(ステップ1213)。
ステップ1213において、当該論理デバイスが対応する物理デバイス又は外部デバイスに対応する全ての論理デバイスが停止状態であると判定された場合、その物理デバイス又は外部デバイスを停止することができる。言い換えると、その物理デバイス又は外部デバイスに対応するディスクドライブ137を停止することができる。この場合、ストレージ130は、その物理デバイス又は外部デバイスを停止する(ステップ1211)。
一方、ステップ1209において、プールVOLを停止することができない場合、ステップ1213において、物理デバイス又は外部デバイスを停止することができない場合、及び、ステップ1206において、当該論理デバイスが対応する物理デバイス、外部デバイス又はプールVOLに対応するディスクドライブ137が起動/停止制御不能であると判定された場合、ディスクドライブ137を停止することができない。しかし、これらの場合、デタッチ対象の当該論理デバイスを別の物理デバイス等に移行することによって、ディスクドライブ137を停止することができる場合がある。
このため、ストレージ130は、当該論理デバイスを別の物理デバイス、外部デバイス又はプールVOLへ移行すべく、移行先となるディスクドライブ起動/停止制御可能な空きデバイス又は空きプールVOLを検索し、該当する空きデバイス又は空きプールVOLがあるか否かを判定する(ステップ1214)。ステップ1214において実行される処理については、後で図18を参照して詳細に説明する。
ステップ1214において、該当する空きデバイス等があると判定された場合、ストレージ130は、当該論理デバイスのデバイス移行処理を登録する(ステップ1215)。具体的には、移行元論理デバイス番号、及び、移行先物理デバイス番号又は移行先外部デバイス番号等を含む登録情報が制御メモリ135に格納される。格納された登録情報は、後述するデバイス移行処理225によって周期的にチェックされる。そして、登録情報が格納されている場合、デバイス移行処理225がデバイスを移行する。
一方、ステップ1202において、管理サーバ110から受信した要求がアタッチ要求であると判定された場合、ストレージ130は、当該論理デバイスに対応する物理デバイス、外部デバイス又はプールVOLを特定する。そして、ストレージ130は、物理デバイス管理情報203、外部デバイス管理情報204又はプールVOL管理情報208を参照して、特定された物理デバイス、外部デバイス又はプールVOLが停止しているか否かを判定する(ステップ1216)。
ステップ1216において、特定された物理デバイス等が停止していると判定された場合、ストレージ130は、デバイス起動/停止処理222を呼び出して、特定された物理デバイス、特定された外部デバイス、又は、特定されたプールVOLに対応する物理デバイス若しくは外部デバイスを起動する(ステップ1217)。
次に、ストレージ130は、必要ならば、対応する拡張VOL及びプールVOLを起動状態とし、当該論理デバイスを起動状態とする。具体的には、ストレージ130は、各管理情報の停止フラグを「On」に設定する(ステップ1218)。
次に、ストレージ130は、LUパスを定義する(ステップ1219)。具体的には、ストレージ130は、論理デバイス管理情報201の当該論理デバイスに対応する領域のエントリ307に、受信した要求によって指定されたポート特定情報を設定し、デバイス状態305をアタッチド状態に変更する。さらに、ストレージ130は、LUパス定義情報202のうち、対象のポート、ターゲットID及びLUNに対応する領域のエントリ403及び404に、それぞれ、当該論理デバイス番号及びアクセス元HBA識別情報を設定する。
図13は、本発明の実施の形態のストレージ130で実行される、デバイス起動/停止処理222の一例を示すフローチャートである。
図13の説明において、ストレージ130が実行する処理は、実際には、デバイス起動/停止処理222を実行する制御プロセッサ132によって実行される。
ストレージ130は、デバイス接続切替処理221等から論理デバイスの起動要求又は停止要求を受信する(ステップ1301)。受信した要求には、例えば、要求内容識別情報(起動/停止)及び対象デバイス特定情報(物理デバイス番号、又は外部デバイス番号)等が含まれる。
次に、ストレージ130は、受信した要求の処理対象デバイスがディスクドライブ起動/停止制御可能であるか否かを判定する(ステップ1302)。
ステップ1302において、ディスクドライブ起動/停止制御不能であると判定された場合、処理対象の物理デバイス等に対応するディスクドライブ137を起動又は停止する制御をすることができない。この場合、ストレージ130は、ディスクドライブ137の起動又は停止のいずれも実行せずに、要求された処理の完了を要求元に報告する(ステップ1307)。
一方、ステップ1302において、ディスクドライブ起動/停止制御可能であると判定された場合、ストレージ130は、受信した要求の処理対象が物理デバイスであるか外部デバイスであるかを判定する(ステップ1303)。
ステップ1303において、処理対象が物理デバイスであると判定された場合、ストレージ130は、受信した要求が起動要求であるか停止要求であるかを判定する(ステップ1304)。
ステップ1304において、受信した要求が起動要求であると判定された場合、ストレージ130は、要求の対象の物理デバイスに対応するディスクドライブ137を起動し(ステップ1305)、その物理デバイスを起動状態に変更する(ステップ1306)。
具体的には、制御プロセッサ132がディスクドライブ137に対してディスク回転開始を指示するコマンドを送信する。ディスクドライブ137内のコントローラ(図示省略)は、そのコマンドに従ってディスクの回転を開始させた後、処理の完了を制御プロセッサ132へ報告する。制御プロセッサ132は、ディスクドライブ137からの処理完了報告を確認して、そのディスクドライブ137への入出力が実行できる状態に変更する。そして、制御プロセッサ132は、要求の対象の物理デバイスに対応する物理デバイス管理情報203の停止フラグ505を「On」に設定する。
一方、ステップ1304において、受信した要求が停止要求であると判定された場合、ストレージ130は、要求の対象の物理デバイスに対応するディスクドライブ137を停止し(ステップ1308)、その物理デバイスを停止状態に変更する(ステップ1309)。
具体的には、制御プロセッサ132がディスクドライブ137に対してディスク回転停止を指示するコマンドを送信する。ディスクドライブ137内のコントローラは、そのコマンドに従ってディスクの回転を停止させた後、処理の完了を制御プロセッサ132へ報告する。制御プロセッサ132は、ディスクドライブ137からの処理完了報告を確認する。そして、制御プロセッサ132は、物理デバイス管理情報203の停止フラグ505を「Off」に、最終停止時間506を当該停止処理実行時刻に、それぞれ設定する。
一方、ステップ1303において、処理対象が外部デバイスであると判定された場合、ストレージ130は、要求の対象の外部ストレージ150に対して外部デバイスの起動又は停止を指示するコマンドを送信する(ステップ1310)。
ストレージ130は、外部ストレージ150からの当該処理完了報告を受信した後、外部デバイスを起動状態又は停止状態に変更するために外部デバイス管理情報205を更新する(ステップ1311)。
ストレージ130は、ステップ1306、1309又は1311が終了すると、要求された処理の完了を要求元に報告し(ステップ1307)、デバイス起動/停止処理222を終了する。
なお、上記のディスクドライブ137へディスク回転開始又は停止を指示するコマンドは、例えば、SCSIプロトコルのSTART STOP UNIT コマンドである。
図14は、本発明の実施の形態のストレージ130で実行される、停止デバイス監視処理223の一例を示すフローチャートである。
停止デバイス監視処理223は、停止中の物理デバイス等が正常に動作するか否か(すなわち、それらの物理デバイス等に障害が発生していないか否か)を監視する処理である。
図14の説明において、ストレージ130が実行する処理は、実際には、停止デバイス監視処理223を実行する制御プロセッサ132によって実行される。
まず、ストレージ130は、先頭の物理デバイス又は外部デバイスを処理対象に設定する(ステップ1401)。
次に、ストレージ130は、処理対象の物理デバイス又は外部デバイスがディスクドライブ起動/停止制御可能か否かを判定する(ステップ1402)。
ステップ1402において、処理対象の物理デバイス又は外部デバイスがディスクドライブ起動/停止制御可能であると判定された場合、ストレージ130は、処理対象の物理デバイス又は外部デバイスが停止中である(すなわち、停止フラグ505又は605が「Off」である)か否かを判定する(ステップ1403)。
ステップ1403において、処理対象の物理デバイス又は外部デバイスが停止中であると判定された場合、ストレージ130は、その物理デバイス又は外部デバイスを動作チェック処理対象とする。そして、ストレージ130は、動作チェック処理対象の物理デバイス又は外部デバイスを起動する(ステップ1404)。
次に、ストレージ130は、ステップ1404の起動に成功したか否かを判定する(ステップ1405)。
ステップ1405において起動に成功したと判定された場合、ストレージ130は、動作チェック処理対象の物理デバイス又は外部デバイスに対してテストI/Oを実行する(ステップ1406)。テストI/Oとは、物理デバイス等が正常に動作しているか否かを確認するために実行されるI/Oである。テストI/Oの内容は、センス情報参照等の診断系コマンド送信、又は、ユーザデータ自体のリードアクセスであってもよい。あるいは、空きデバイス又はデバイス内の空き領域に対するリード/ライトアクセスであってもよい。
次に、ストレージ130は、ステップ1406のテストI/Oに成功したか否かを判定する(ステップ1407)。
ステップ1407においてテストI/Oに成功したと判定された場合、ストレージ130は、起動した物理デバイス又は外部デバイスを停止する(ステップ1408)。
次に、ストレージ130は、ステップ1408の停止に成功したか否かを判定する(ステップ1409)。
ステップ1409において停止に成功したと判定された場合、動作チェック処理対象の物理デバイス又は外部デバイスは、正常に動作する。この場合、ストレージ130は、全ての物理デバイス及び外部デバイスについて処理が終了したか否かを判定する(ステップ1410)。
ステップ1410において、全ての物理デバイス及び外部デバイスについて処理が終了していないと判定された場合、次の物理デバイス又は外部デバイスを処理対象に設定して(ステップ1411)、ステップ1402に戻る。
一方、ステップ1405において起動に失敗したと判定された場合、ステップ1407においてテストI/Oに失敗したと判定された場合、及び、ステップ1409において停止に失敗したと判定された場合、動作チェック処理対象の物理デバイス又は外部デバイスは、障害が発生したために正常に動作しない。この場合、ストレージ130は、動作チェック処理対象の物理デバイス又は外部デバイスがブロックド状態であることを登録し(ステップ1412)、管理サーバ110へそのデバイスについてのエラー報告を送信する(ステップ1413)。その後、処理はステップ1410に進む。
一方、ステップ1402において、処理対象の物理デバイス又は外部デバイスがディスクドライブ起動/停止制御不能であると判定された場合、及び、ステップ1403において、処理対象の物理デバイス又は外部デバイスが停止中でない(すなわち起動中である)と判定された場合、ストレージ130は、処理対象のデバイスに対応する一つ以上の論理デバイス(対応論理デバイス)の中に停止中のものがあるか否かを判定する(ステップ1414)。
ステップ1414において、対応論理デバイスの中に停止中のものがあると判定された場合、ストレージ130は、その停止中の論理デバイスについて停止要否を再判定する(ステップ1415)。この再判定は、管理サーバ110のデバイス接続切替要求処理241中のステップ1104と同様の方法で実行されてもよい。
ステップ1415において、停止中の論理デバイスが依然として停止要であると判定された場合、ストレージ130は、停止中の論理デバイスの移行先となる、ディスクドライブ起動/停止制御可能な空き物理デバイス、外部デバイス若しくはプールVOL、又は、入れ替え可能な論理デバイスを検索する。そして、ストレージ130は、該当する空きデバイス、プールVOL又は論理デバイスがあるか否かを判定する(ステップ1416)。ステップ1416において実行される処理については、後で図18を参照して詳細に説明する。
ステップ1416において、該当するデバイスが存在すると判定された場合、ストレージ130は、ステップ1215と同様に、当該論理デバイスの移行要求を登録する(ステップ1417)。ステップ1417の処理は、デバイス接続切替処理221のステップ1215と同様である(図12参照)。
一方、ステップ1414において対応論理デバイスの中に停止中のものがないと判定された場合、ステップ1415において停止中の論理デバイスが停止要でないと判定された場合、及び、ステップ1416において、該当するデバイスが存在すると判定された場合、ストレージ130は、処理対象の物理デバイス又は外部デバイスの処理をあきらめ、ステップ1410に進む。
ステップ1410において、全ての物理デバイス及び外部デバイスについて処理が終了していないと判定された場合、停止デバイス監視処理223を終了する。
なお、図12のステップ1214及び図14のステップ1416では、停止状態にある特定の論理デバイスに対して、当該論理デバイスが属する物理デバイス、外部デバイス又はプールVOLに対応するディスクドライブ137等を停止することができない。このため、ストレージ130は、当該論理デバイスを他の物理デバイス、外部デバイス又はプールVOLの空き領域へ移行することができるか、あるいは、当該論理デバイスを他の論理デバイスと入れ替えることができるかを判定する。この判定処理の一例を、図18を参照して説明する。
図18は、本発明の実施の形態のストレージ130で実行される、デバイス移行判定処理の一例を示すフローチャートである。
図18の説明において、ストレージ130が実行する処理は、実際には、制御プロセッサ132によって実行される。
ストレージ130は、最初に、当該論理デバイスが拡張VOLに対応しているか否かを判定する(ステップ1801)。
ステップ1801において、当該論理デバイスが拡張VOLに対応していると判定された場合、ストレージ130は、ディスクドライブ起動/停止制御可能なプールVOLの容量の総量が規定値以上であるか否かを判定する(ステップ1802)。
ステップ1802において、プールVOLの容量の総量が規定値以上であると判定された場合、ストレージ130は、既に定義されているプールVOLの一つを移行対象として決定する(ステップ1803)。
一方、ステップ1802において、プールVOLの容量の総量が規定値未満であると判定された場合、ストレージ130は、ディスクドライブ起動/停止制御可能なプールVOLの中に、当該論理デバイスと入れ替え可能な第二の論理デバイスがあるか否かを判定する(ステップ1804)。
ステップ1804において、当該論理デバイスと入れ替え可能な第二の論理デバイスがあると判定された場合、第二の論理デバイスを当該論理デバイスの入れ替え対象として決定する(ステップ1805)。
一方、ステップ1804において、当該論理デバイスと入れ替え可能な第二の論理デバイスがないと判定された場合、ストレージ130は、ディスクドライブ起動/停止制御可能な空き物理デバイス又は外部デバイスがあるか否かを判定する(ステップ1806)。
ステップ1806において、ディスクドライブ起動/停止制御可能な空き物理デバイス又は外部デバイスがあると判定された場合、ストレージ130は、その物理デバイス又は外部デバイスに新たにプールVOLを定義する。さらに、ストレージ130は、定義されたプールVOLを当該論理デバイスの移行先として決定する(ステップ1807)。
一方、ステップ1806において、ディスクドライブ起動/停止制御可能な空き物理デバイス又は外部デバイスのいずれもないと判定された場合、ストレージ130は、当該論理デバイスの移行処理を断念する(ステップ1808)。
一方、ステップ1801において、当該論理デバイスが拡張VOLに対応していない(すなわち、当該論理デバイスが通常のボリュームに対応している)と判定された場合、ストレージ130は、ディスクドライブ起動/停止制御可能な空き物理デバイス又は外部デバイスがあるか否かを判定する(ステップ1809)。
ステップ1809において、ディスクドライブ起動/停止制御可能な空き物理デバイス等があると判定された場合、ストレージ130は、そのデバイスを移行対象として決定する(ステップ1810)。
一方、ステップ1809において、ディスクドライブ起動/停止制御可能な空き物理デバイス等がないと判定された場合、ストレージ130は、ディスクドライブ起動/停止制御可能な物理デバイス又は外部デバイスに、当該論理デバイスと入れ替え可能な第二の論理デバイスがあるか否かを判定する(ステップ1811)。
ステップ1811において、該当する第二の論理デバイスがあると判定された場合、ストレージ130は、その第二の論理デバイスを当該論理デバイスとの入れ替え対象として決定する(ステップ1812)。
一方、ステップ1811において、該当する第二の論理デバイスがないと判定された場合、ストレージ130は、当該論理デバイスの移行処理を断念する(ステップ1813)。
ストレージ130は、ステップ1803、1805、1807、1808、1810、1812又は1813を実行すると、デバイス移行判定処理を終了する。
図15は、本発明の実施の形態の外部ストレージ150で実行される、I/O処理261の一例を示すフローチャートである。
図15の説明において、外部ストレージ150が実行する処理は、実際には、I/O処理261を実行する制御プロセッサ152によって実行される。
本実施の形態では、ストレージ130の外部デバイスとして管理されている外部ストレージ150の論理デバイスは、ポート151のLUパス定義を維持したまま、対応する物理デバイスを停止させる。このとき、当該外部デバイスに対するストレージ130からの入出力要求は、原則として抑止されるはずである。しかし、安全のため、外部ストレージ150もI/O処理の対象の論理デバイスが停止状態か否かを判定する。
具体的には、外部ストレージ150は、I/O要求を受信すると(ステップ1501)、受信したI/O要求の対象の論理デバイスが停止状態であるか否かを判定する(ステップ1502)。
ステップ1502において、論理デバイスが停止状態でないと判定された場合、要求されたI/O処理を実行することができる。このため、外部ストレージ150は、要求されたI/O処理を実行して(ステップ1503)、ストレージ130に完了報告を送信する(ステップ1504)。
一方、ステップ1502において、論理デバイスが停止状態であると判定された場合、処理不可を示すため、外部ストレージ150はストレージ130に対してエラー報告をする。具体的には、外部ストレージ150は、終了ステータスを「エラー」に設定し(ステップ1505)、要求されたI/O処理を実行せずにストレージ130に完了報告を送信する(ステップ1504)。なお、外部ストレージ150は、エラーを報告せずに、当該デバイスがビジーであると報告してもよい。
以上で、I/O処理261を終了する。
図16は、本発明の実施の形態の外部ストレージ150で実行される、外部デバイス起動/停止処理262の一例を示すフローチャートである。
図16の説明において、外部ストレージ150が実行する処理は、実際には、外部デバイス起動/停止処理262を実行する制御プロセッサ152によって実行される。
外部ストレージ150は、ストレージ130から、ファイバチャネルスイッチ120及びポート151を介して、外部デバイスに対応する外部ストレージ150内の論理デバイスに対する起動/停止要求コマンドを受信する(ステップ1601)。受信した要求には、要求内容識別情報(起動又は停止)、対象デバイス特定情報(ストレージ150識別情報及び論理デバイス番号)、要求元ストレージ130識別情報(ポート131のWWN等)等を含む。本実施の形態では、この要求はSCSIプロトコルに従って送信される。
この要求は、SCSIの診断系コマンドのパラメタを拡張することによって送信されてもよいし、外部ストレージ150とストレージ130との間のみで通じる専用のSCSIコマンドを追加し、このSCSIコマンドを使用して送信されてもよい。あるいは、外部ストレージ150内の特定の論理デバイスを制御コマンド送受信用のものと定義しておき、その制御コマンド送受信用デバイスへデータをリード及びライトすることによって、外部ストレージ150及びストレージ130がデータを授受してもよい。
次に、外部ストレージ150は、要求対象の論理デバイスについて要求された処理を実行できるか否かを判定し、実行不可であればその旨をストレージ130へ報告する(ステップ1602)。
次に、外部ストレージ150は、受信した要求が起動要求であるか停止要求であるかを判定する(ステップ1603)。
ステップ1603において、受信した要求が論理デバイスの起動要求であると判定された場合、外部ストレージ150は、要求の対象の論理デバイス(当該論理デバイス)に対応する物理デバイスが停止しているか否かを判定する(ステップ1604)。
ステップ1604において、対応する物理デバイスが停止していると判定された場合、外部ストレージ150は、その物理デバイスに対応するディスクドライブ156を起動し(ステップ1605)、その物理デバイスを起動状態に変更する(ステップ1606)。
次に、外部ストレージ150は、当該論理デバイスを起動状態に変更する(ステップ1607)。ここで、ディスクドライブ156の起動は、ディスク回転開始を指示するコマンドを送信し、ディスク回転を開始したディスクドライブ156からの完了報告を確認することによって実現される。
一方、ステップ1604において、対応する物理デバイスが停止していない(すなわち、起動している)と判定された場合、外部ストレージ150は、ステップ1605及び1606を実行せずに、ステップ1607を実行する。
次に、外部ストレージ150は、処理完了をストレージ130に報告する(ステップ1608)。
一方、ステップ1603において、受信した要求が当該論理デバイスの停止要求であると判定された場合、外部ストレージ150は、まず当該論理デバイスを停止状態にする(ステップ1609)。
次に、外部ストレージ150は、当該論理デバイスに対応する物理デバイスに対応する全ての論理デバイスが停止状態にあるか否かを判定する(ステップ1610)。
ステップ1610において、対応する全ての論理デバイスが停止状態にあると判定された場合、当該論理デバイスに対応する物理デバイスに対応するディスクドライブ156を停止し(ステップ1611)、その物理デバイスを停止状態に変更する(ステップ1612)。ここで、ディスクドライブ156の停止は、ディスク回転停止を指示するコマンドを送信し、ディスク回転を停止したディスクドライブ156からの完了報告を確認することによって実現される。
次に外部ストレージ150は、ステップ1608を実行する。
一方、ステップ1610において、対応する全ての論理デバイスが停止状態にない(すなわち、少なくとも一つの論理デバイスが起動状態である)と判定された場合、ディスクドライブ156を停止することができない。この場合、外部ストレージ150は、ステップ1611及び1612を実行せずに、ステップ1608を実行する。
外部ストレージ150は、ステップ1608を実行すると、外部デバイス起動/停止処理262を終了する。
図17は、本発明の実施の形態のストレージ130で実行される、デバイス移行処理225の一例を示すフローチャートである。
図17の説明において、ストレージ130が実行する処理は、実際には、デバイス移行処理225を実行する制御プロセッサ132によって実行される。
ストレージ130は、周期的にデバイス移行処理225を実行し、デバイス移行要求が登録されているか否かを判定する(ステップ1701)。先述の通り、デバイス接続切替処理221及び停止デバイス監視処理223において、停止状態にある論理デバイスに対応する物理デバイス、外部デバイス又はプールVOLを停止できない場合に、デバイス判定処理が実行される(図12のステップ1214及び図14のステップ1416参照)。デバイス判定処理の一例は、図18に示す通りである。その結果、移行対象となる空き領域又は入替対象となる別の論理デバイスが見つかった場合、デバイス移行要求が登録される(図12のステップ1215及び図14のステップ1417参照)。
ステップ1701において、デバイス移行要求が登録されていないと判定された場合、何も実行せずにデバイス移行処理225を終了する。
一方、ステップ1701において、デバイス移行要求が登録されていると判定された場合、ストレージ130は、移行要求の対象の論理デバイス(当該論理デバイス)が拡張VOLに対応しているか否かを判定する(ステップ1702)。
ステップ1702において、当該論理デバイスが拡張VOLに対応していない(すなわち、当該論理デバイスが通常のボリュームである)と判定された場合、ストレージ130は、当該論理デバイスを空きデバイスへ移行することを要求されているか否かを判定する(ステップ1703)。
ステップ1703において、空きデバイスへの移行を要求されていると判定された場合、ストレージ130は、移行元の当該論理デバイスのデータを先頭アドレスから順次移行先物理デバイス又は外部デバイスへ移行する(ステップ1706)。そして、全領域のデータ移行が完了したら、ストレージ130は、移行元の当該論理デバイスを移行先の空き物理デバイス又は外部デバイスへ対応付けるように、デバイス管理情報を更新する(ステップ1707)。具体的には、当該論理デバイスに関する論理デバイス管理情報201の対応下位デバイス番号303に、移行先の物理デバイス、外部デバイス又はプールVOLの番号を登録する。また、移行先のデバイスの対応上位デバイス番号503又は603に、当該論理ボリュームの番号又は移行先のプールVOL番号を登録する。なお、このとき、移行先の空きデバイスが停止状態であれば、先述したデバイス起動/停止処理222を実行して、移行先の空きデバイスを起動する必要がある。
一方、ステップ1703において、空きデバイスへの移行を要求されていない(すなわち、当該論理デバイスと別の論理デバイスとの入替を要求されている)と判定された場合、ストレージ130は、移行元及び移行先の論理デバイスのデータを先頭アドレスから順次読み出し、そのデータをディスクキャッシュ等の別の記憶装置に順次書き込み、移行元の当該論理デバイスのデータを移行先の論理デバイスへ、移行先の論理デバイスのデータを移行元の当該論理デバイスへ書き込む(ステップ1704)。当該論理デバイス全領域についてデータの入替が完了したら、移行元の当該論理デバイスと移行先の論理デバイスについて、それぞれが対応する物理デバイス又は外部デバイスとの対応関係を入れ替えるよう、デバイス管理情報を更新する(ステップ1705)。
一方、ステップ1702において、当該論理デバイスが拡張VOLに対応していると判定された場合、ストレージ130は、当該論理デバイスを別のプールVOLに移行することを要求されているか否かを判定する(ステップ1711)。
ステップ1711において、当該論理デバイスを別のプールVOLに移行することを要求されていると判定された場合、ストレージ130は、当該論理デバイスの先頭エントリから、対応する拡張VOLに実領域が割り当てられているエントリを順次検索し、当該エントリのデータのみを移行先プールVOLの空きエントリに追記する(ステップ1712)。より詳細には、ストレージ130は、その拡張VOLに対応するプールVOLに移行先プールVOLを追加する。そして、移行元プールVOLのエントリから読み出したデータに移行先プールVOLの空きエントリを割り当て、そのデータを、割り当てられた空きエントリに書き込む。そして、ストレージ130は、移行先VOLのエントリを当該拡張ボリュームの当該エントリに対応付けるように管理情報を更新する。
なお、このとき、移行先となるプールVOLが停止状態の場合、ストレージ130は、ステップ1706と同様にデバイス起動/停止処理222を実行して、移行先のプールVOLに対応するデバイスを起動する必要がある。
ストレージ130は、上記の処理を、論理デバイス管理情報のデータ移行進捗ポインタ309を使用して順次実行する。全領域について移行処理が完了したら、ストレージ130は、当該拡張VOLの対応プール番号リスト707から移行元プールVOL(当初、当該論理デバイスが対応していたプールVOL)の番号を削除する(ステップ1713)。
一方、ステップ1711において、当該論理デバイス(移行元)を別の論理デバイス(移行先)と入れ替えることを要求されていると判定された場合、ストレージ130は、移行元及び移行先論理デバイスの先頭エントリを処理対象とする(ステップ1714)。
次に、ストレージ130は、処理対象のエントリ(領域)に実領域(プールVOLのエントリ)が割り当てられている場合、そのエントリに入替の相手(移行先又は移行元)のプールVOLの空きエントリを新規に割り当て、処理対象のエントリのデータを新規に割り当てた空きエントリに移行する(ステップ1715及び1716)。
この移行処理過程において、移行先及び移行元論理デバイスにおいて移行が終了したエントリ数に大きな差がついてしまうと、一方のプールVOLの空きエントリ数が枯渇する恐れがある。従って、移行が終了したエントリ数が移行先及び移行元論理デバイスで大きく乖離しないよう、進捗を制御する必要がある。
次に、ストレージ130は、移行元及び移行先論理デバイスにおいて、現在の処理対象のエントリの次のエントリを新たな処理対象とする(ステップ1717)。
次に、ストレージ130は、移行元及び移行先論理デバイスの全エントリにおいて処理が終了したか否かを判定する(ステップ1718)。
ステップ1718において、全エントリにおいて処理が終了していないと判定された場合、次のエントリについて処理をするために、ステップ1715に戻る。
一方、ステップ1718において、全エントリにおいて処理が終了したと判定された場合、移行元及び移行先論理デバイスの全エントリの入替が完了した。この場合、ストレージ130は、移行先及び移行元論理デバイスと、それぞれのプールVOLとの対応が入れ替わるように、デバイス管理情報を更新する(ステップ1719)。
ステップ1705、1707、1713又は1719が終了した時点で、停止状態の論理デバイスを別の物理デバイス、外部デバイス又はプールVOLに移行する処理が終了する。次に、ストレージ130は、再度移行元及び移行先の論理デバイスについて、それらに対応する物理デバイス、外部デバイス又はプールVOLを停止する必要があるか否かを判定する(ステップ1708及び1709)。このとき、ストレージ130は、図12のステップ1209と同様に、そのプールVOLに対応する全拡張VOLが停止状態であるか否か等を判定する。
ステップ1709において、物理デバイス、外部デバイス又はプールVOLを停止する必要があると判定された場合、ストレージ130は、デバイス起動/停止処理262を実行して、該当する物理デバイス等を停止して(ステップ1710)、処理を終了する。
一方、ステップ1709において、物理デバイス、外部デバイス又はプールVOLを停止する必要がないと判定された場合、ストレージ130は、デバイス起動/停止処理262を実行せずに、処理を終了する。
なお、本発明は上記の実施の形態に限定されず、種々の変形が可能である。
本実施の形態では、ストレージ130は、外部ストレージ接続手段を有する。具体的には、ストレージ130は、外部ストレージを管理する情報(例えば、外部デバイス管理情報204)を有する。さらに、ストレージ130が有するプログラムにおいて、外部ストレージの存在が考慮されている。しかし、ストレージ130が外部ストレージ接続手段を持たなくてもよい。すなわち、管理サーバ110及びストレージ130は、内部に備えるディスクドライブ137のみについて、起動/停止制御可否を考慮したデバイスプール管理を行ってもよい。あるいは、逆に、ストレージ130が内部にディスクドライブ137を備えず、外部ストレージ接続手段によって接続された外部デバイスのみについて、管理サーバ110及びストレージ130がデバイスプール管理を行ってもよい。
本実施の形態では、ストレージ管理者又はホストアプリケーションからの論理デバイスへのデタッチ要求を受信した時に、管理サーバ110が当該論理デバイスの停止要否を判定し、必要であれば、ストレージ130が当該論理デバイスを停止する。しかし、管理サーバ110は、デタッチ又はアタッチ要求を伴わない当該論理デバイスへの起動又は停止要求を受信してもよい。これによって、当該論理デバイスへのホストからのアクセスパスを維持したままで、当該論理デバイスに対応したディスクドライブ137等の起動及び停止を制御することができる。
また、本実施の形態では、デタッチ対象論理デバイスについて、全ポート131のLUパス定義が解除される。しかし、ユーザ又はアプリケーションプログラムから指定された特定のポート131についてのみLUパス定義が解除されてもよい。
また、本実施の形態では、管理サーバ110のデバイス接続切替要求処理241がデバイス停止要否を判定していたが、ストレージ130のデバイス接続切替処理221がデバイス停止要否を判定してもよい。
また、本実施の形態では、論理デバイスをアタッチする際、ポート131及びLUNが指定される。しかし、別の論理デバイスをデタッチし、このポート131及びLUNを用いて論理デバイスがアタッチされてもよい。そのためには、ホスト100からLUNへのアクセスを開始する前に必ず対応する論理デバイスを確認するプロトコルが使用される。さらに、論理デバイスの属性として「自動デタッチ可能」が設定される。そして、第一の論理デバイスをアタッチする際には、別の「自動デタッチ可能」な第二の論理デバイスをデタッチした後、第二の論理デバイスに対応付けられていたポート131のLUNを用いて第一の論理デバイスをアタッチする。また、同様に、外部デバイスに「自動デタッチ可能」属性を設定し、第一の外部デバイスをアタッチする時に第二の外部デバイスをデタッチし、第二の外部デバイスが対応付けられていた論理デバイスを用いて第一の外部デバイスをアタッチしてもよい。
また、本実施の形態では、ストレージ130の物理デバイスに対応するディスクドライブ137、又は、外部ストレージ150の物理デバイスに対応するディスクドライブ157にコマンドが送信され、ディスクドライブ137又は157内のコントローラがディスク回転を制御することによって、ディスクドライブ137又は157の起動及び停止が制御される。しかし、ストレージ130又はストレージ150がディスクドライブ137又は157への電源供給をオン/オフ可能なスイッチを備え、そのスイッチを用いてディスクドライブ137又は157の起動及び停止を制御してもよい。