(57)【要約】【課題】ディスクドライブの起動停止を制御可能なストレージとそうでないストレージとが混在したストレージシステムにおいて、各ストレージの特性を考慮して論理デバイスを割り当て、ストレージシステムの稼動に要する消費電力等のコストを削減する。【解決手段】論理デバイス割り当て時に、その論理デバイスの用途等の属性に応じて、割当対象のディスクドライブの起動停止制御可否を判定し、割当先ディスクドライブを決定する。また、パス定義解除等によって特定の論理デバイスへのアクセスが停止する場合、当該論理デバイスに対応するディスクドライブが停止可能か否かを判定する。停止可能であると判定された場合はそのディスクドライブを停止する。停止可能でない場合は当該論理デバイスを停止可能な別のディスクドライブへ移行し、移行先のディスクドライブを停止する。【選択図】図１
2007133821.tif 000002
【特許請求の範囲】
【請求項１】
一つ以上のホスト計算機と、前記一つ以上のホスト計算機と第１ネットワークを介して接続されるストレージ装置と、前記一つ以上のホスト計算機及び前記ストレージ装置と第２ネットワークを介して接続される管理サーバと、を備える計算機システムにおいて、
前記ホスト計算機は、前記第１ネットワークに接続される第１ポートと、前記第２ネットワークに接続される第１インタフェースと、前記第１ポート及び前記第１インタフェースに接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、を備え、
前記ストレージ装置は、
前記第１ネットワークに接続される第２ポートと、
前記第２ネットワークに接続される第２インタフェースと、
前記第２ポート及び前記第２インタフェースに接続される第２プロセッサと、
前記第２プロセッサに接続される第２メモリと、
ディスク回転の起動及び停止を制御される一つ以上のディスクドライブによって構成され、前記ホスト計算機によって書き込まれたデータを格納する一つ以上の第１物理デバイスと、を備え、
前記ストレージ装置には、複数の論理デバイスが設定され、
少なくとも一つの前記論理デバイスは、プール領域と対応し、
前記管理サーバは、
前記第２ネットワークに接続される第３インタフェースと、前記第３インタフェースに接続される第３プロセッサと、前記第３プロセッサに接続される第３メモリと、を備え、
前記第３プロセッサは、
前記論理デバイスに対するパス解除要求を受信し、
受信した前記パス解除要求に含まれる情報を参照して、前記論理デバイスを停止する必要があるか否かを判定し、
前記論理デバイスを停止する必要があると判定された場合、前記論理デバイスの停止要求を含むパス解除要求を前記第３インタフェースを介して前記ストレージ装置に送信し、
前記第２プロセッサは、
前記第２インタフェースを介して前記論理デバイスの停止要求を含むパス解除要求を受信し、
当該パス解除要求に係る論理デバイスのパス定義を解除し、
前記パス解除要求に係る論理デバイスが前記プール領域に対応するか否かを判定し、
当該パス解除要求に係る論理デバイスが前記プール領域に対応しない場合、当該パス解除要求に係る論理デバイスに対応する物理デバイスを特定し、
当該特定された物理デバイスが前記第１物理デバイスであるか否かを判定し、
当該特定された物理デバイスが前記第１物理デバイスである場合、当該第１物理デバイスを構成するディスクドライブを停止することを特徴とする計算機システム。
【請求項２】
前記ストレージ装置は、ディスク回転の起動及び停止を制御されない一つ以上のディスクドライブによって構成され、前記ホスト計算機によって書き込まれたデータを格納する一つ以上の第２物理デバイスを備え、
前記第２プロセッサは、
前記特定された物理デバイスが前記第２物理デバイスである場合、前記第１物理デバイスを検索し、
前記パス解除要求に係る論理デバイスのデータを前記第１物理デバイスに移行し、
当該パス解除要求に係る論理デバイスを当該移行先の第１物理デバイスと対応付けることを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記第２プロセッサは、
前記論理デバイスのデータを前記第１物理デバイスに移行した後、当該移行先の第１物理デバイスに対応する全ての論理デバイスが停止しているか否かを判定し、
当該移行先の第１物理デバイスに対応する全ての論理デバイスが停止している場合、当該移行先の第１物理デバイスを構成するディスクドライブを停止することを特徴とする請求項２に記載の計算機システム。
【請求項４】
前記第２プロセッサは、
前記パス解除要求に係る論理デバイスが前記プール領域に対応する場合、当該パス解除要求に係る論理デバイスに対応する第１プール領域を特定し、
当該特定された第１プール領域が前記第１物理デバイスに対応するか否かを判定し、
当該特定された第１プール領域が前記第１物理デバイスに対応する場合、当該特定された第１プール領域に対応する全ての論理デバイスが停止しているか否かを判定し、
当該特定された第１プール領域に対応する全ての論理デバイスが停止している場合、当該特定された第１プール領域に対応する前記第１物理デバイスを構成するディスクドライブを停止することを特徴とする請求項１に記載の計算機システム。
【請求項５】
前記ストレージ装置は、ディスク回転の起動及び停止を制御されない一つ以上のディスクドライブによって構成され、前記ホスト計算機によって書き込まれたデータを格納する一つ以上の第２物理デバイスを備え、
前記第２プロセッサは、
前記特定された第１プール領域が前記第２物理デバイスに対応する場合、前記第１物理デバイスに対応する第２プール領域を検索し、
前記パス解除要求に係る論理デバイスのデータを前記第２プール領域に移行し、
当該パス解除要求に係る論理デバイスを当該移行先の第２プール領域と対応付けることを特徴とする請求項４に記載の計算機システム。
【請求項６】
前記第２プロセッサは、
前記論理デバイスのデータを前記第２プール領域に移行した後、当該移行先の第２プール領域に対応する全ての論理デバイスが停止しているか否かを判定し、
当該移行先の第２プール領域に対応する全ての論理デバイスが停止している場合、当該移行先の第２プール領域に対応する第１物理デバイスを構成するディスクドライブを停止することを特徴とする請求項５に記載の計算機システム。
【請求項７】
一つ以上のホスト計算機と、前記一つ以上のホスト計算機と第１ネットワークを介して接続されるストレージ装置と、前記一つ以上のホスト計算機及び前記ストレージ装置と第２ネットワークを介して接続される管理サーバと、を備える計算機システムにおいて、
前記ホスト計算機は、前記第１ネットワークに接続される第１ポートと、前記第２ネットワークに接続される第１インタフェースと、前記第１ポート及び前記第１インタフェースに接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、を備え、
前記ストレージ装置は、
前記第１ネットワークに接続される第２ポートと、
前記第２ネットワークに接続される第２インタフェースと、
前記第２ポート及び前記第２インタフェースに接続される第２プロセッサと、
前記第２プロセッサに接続される第２メモリと、
ディスク回転の起動及び停止を制御される一つ以上のディスクドライブによって構成され、前記ホスト計算機によって書き込まれたデータを格納する一つ以上の第１物理デバイスと、を備え、
前記管理サーバは、
前記第２ネットワークに接続される第３インタフェースと、前記第３インタフェースに接続される第３プロセッサと、前記第３プロセッサに接続される第３メモリと、を備え、
前記第３プロセッサは、
前記ストレージ装置に論理デバイスを定義する要求を受信し、
受信した前記要求に含まれる情報を参照して、前記論理デバイスに対応する物理デバイスの起動及び停止を制御する必要があるか否かを判定し、
前記論理デバイスに対応する物理デバイスの起動及び停止を制御する必要がある場合、一つの前記第１物理デバイスにプール領域を定義し、当該プール領域と前記論理デバイスとを対応付ける要求を、前記第３インタフェースを介して前記ストレージ装置に送信することを特徴とする計算機システム。
【請求項８】
前記ストレージ装置は、ディスク回転の起動及び停止を制御されない一つ以上のディスクドライブによって構成され、前記ホスト計算機によって書き込まれたデータを格納する一つ以上の第２物理デバイスを備え、
前記第３プロセッサは、前記論理デバイスに対応する物理デバイスの起動及び停止を制御する必要がない場合、複数の前記第２物理デバイスにプール領域を定義し、当該プール領域と前記論理デバイスとを対応付ける要求を、前記第３インタフェースを介して前記ストレージ装置に送信することを特徴とする請求項７に記載の計算機システム。
【請求項９】
一つ以上のホスト計算機と、前記一つ以上のホスト計算機とネットワークを介して接続されるストレージ装置と、を備える計算機システムの制御方法において、
前記ストレージ装置は、
ディスク回転の起動及び停止を制御される一つ以上のディスクドライブによって構成され、前記ホスト計算機によって書き込まれたデータを格納する一つ以上の第１物理デバイスを備え、
前記ストレージ装置には、複数の論理デバイスが設定され、
少なくとも一つの前記論理デバイスは、プール領域と対応し、
前記方法は、
前記論理デバイスに対するパス解除要求を受信し、
受信したパス解除要求に含まれる情報を参照して、前記論理デバイスを停止する必要があるか否かを判定し、
当該パス解除要求に係る論理デバイスのパス定義を解除し、
前記論理デバイスを停止する必要がある場合、前記パス解除要求に係る論理デバイスが前記プール領域に対応するか否かを判定し、
当該パス解除要求に係る論理デバイスが前記プール領域に対応しない場合、当該パス解除要求に係る論理デバイスに対応する物理デバイスを特定し、
当該特定された物理デバイスが前記第１物理デバイスであるか否かを判定し、
当該特定された物理デバイスが前記第１物理デバイスである場合、当該第１物理デバイスを構成するディスクドライブを停止することを特徴とする方法。
【請求項１０】
前記ストレージ装置は、ディスク回転の起動及び停止を制御されない一つ以上のディスクドライブによって構成され、前記ホスト計算機によって書き込まれたデータを格納する一つ以上の第２物理デバイスを備え、
前記特定された物理デバイスが前記第２物理デバイスである場合、前記第１物理デバイスを検索し、
前記パス解除要求に係る論理デバイスのデータを前記第１物理デバイスに移行し、
当該パス解除要求に係る論理デバイスを当該移行先の第１物理デバイスと対応付けることを特徴とする請求項９に記載の方法。
【請求項１１】
前記論理デバイスのデータを前記第１物理デバイスに移行した後、当該移行先の第１物理デバイスに対応する全ての論理デバイスが停止しているか否かを判定し、
当該移行先の第１物理デバイスに対応する全ての論理デバイスが停止している場合、当該移行先の第１物理デバイスを構成するディスクドライブを停止することを特徴とする請求項１０に記載の方法。
【請求項１２】
前記パス解除要求に係る論理デバイスが前記プール領域に対応する場合、当該パス解除要求に係る論理デバイスに対応する第１プール領域を特定し、
当該特定された第１プール領域が前記第１物理デバイスに対応するか否かを判定し、
当該特定された第１プール領域が前記第１物理デバイスに対応する場合、当該特定された第１プール領域に対応する全ての論理デバイスが停止しているか否かを判定し、
当該特定された第１プール領域に対応する全ての論理デバイスが停止している場合、当該特定された第１プール領域に対応する前記第１物理デバイスを構成するディスクドライブを停止することを特徴とする請求項９に記載の方法。
【請求項１３】
前記ストレージ装置は、ディスク回転の起動及び停止を制御されない一つ以上のディスクドライブによって構成され、前記ホスト計算機によって書き込まれたデータを格納する一つ以上の第２物理デバイスを備え、
前記特定された第１プール領域が前記第２物理デバイスに対応する場合、前記第１物理デバイスに対応する第２プール領域を検索し、
前記パス解除要求に係る論理デバイスのデータを前記第２プール領域に移行し、
当該パス解除要求に係る論理デバイスを当該移行先の第２プール領域と対応付けることを特徴とする請求項１２に記載の方法。
【請求項１４】
前記論理デバイスのデータを前記第２プール領域に移行した後、当該移行先の第２プール領域に対応する全ての論理デバイスが停止しているか否かを判定し、
当該移行先の第２プール領域に対応する全ての論理デバイスが停止している場合、当該移行先の第２プール領域に対応する第１物理デバイスを構成するディスクドライブを停止することを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ストレージ装置に論理デバイスを定義する要求を受信し、
受信した前記要求に含まれる情報を参照して、前記論理デバイスに対応する物理デバイスの起動及び停止を制御する必要があるか否かを判定し、
前記論理デバイスに対応する物理デバイスの起動及び停止を制御する必要がある場合、一つの前記第１物理デバイスにプール領域を定義し、当該プール領域と前記論理デバイスとを対応付けることを特徴とする請求項９に記載の方法。
【請求項１６】
前記ストレージ装置は、ディスク回転の起動及び停止を制御されない一つ以上のディスクドライブによって構成され、前記ホスト計算機によって書き込まれたデータを格納する一つ以上の第２物理デバイスを備え、
前記論理デバイスに対応する物理デバイスの起動及び停止を制御する必要がない場合、複数の前記第２物理デバイスにプール領域を定義し、当該プール領域と前記論理デバイスとを対応付けることを特徴とする請求項１５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムにおいて複数の計算機によって共用されるストレージ装置の制御方法に関し、特に、計算機に対して記憶デバイスを割り当てるための方法、及び、記憶デバイスを起動又は停止する方法に関する。
【背景技術】
【０００２】
電子保存の規制緩和、インターネットビジネスの拡大、及び、手続きの電子化など、急速に情報システムが進展する中、計算機システムが扱うデータ量の飛躍的増加が顕著になっている。このようなデータ量の飛躍的増加に加え、ディスク装置へのデータバックアップ（Ｄｉｓｋ−ｔｏ−Ｄｉｓｋ  Ｂａｃｋｕｐ）、及び、監査対応等のための企業の業務活動記録（取引情報及び電子メール等）の長期保管等に対する顧客要求が高まっている。その結果、ストレージに格納するデータが飛躍的に増加を続け、これらのことがストレージシステムの大規模化を招いている。それに伴い、企業情報システムでは、各部門／各システムのストレージの増強が図られる一方で、複雑化するＩＴインフラストラクチャの管理の簡素化及び効率化が要求されている。特に、ストレージシステムの管理を簡素化し、データの価値に応じ最適なストレージを活用してトータルコストの最適化を図ることへの期待が高まっている。
【０００３】
大規模ストレージシステムの管理コストを低減する方法の一つとして、ストレージ仮想化技術が開示されている（特許文献１参照）。特許文献１が開示する仮想化技術によれば、第一のストレージが一台以上の第二のストレージへ接続される。そして、第二のストレージが上位の機器（例えば、ホスト）に提供するデバイス（以下、論理デバイスと記載する）が、第一のストレージを介して、第一のストレージの論理デバイスとしてホストへ提供される。以下、このようなストレージ仮想化技術を外部ストレージ接続方法と記載する。第一のストレージは、ホストからの論理デバイスへの入出力要求を受信したとき、アクセス対象のデバイスが、第二のストレージの論理デバイス、又は、第一のストレージ内のディスクドライブ等の物理デバイスのいずれに対応しているかを判定する。そして、第一のストレージは、判定結果に従って適当なアクセス先に入出力要求を送信する。
【０００４】
また、ストレージシステムの設計を簡素化する方法の一つとして、動的に容量を拡張可能なボリューム管理技術が開示されている（特許文献２参照）。以下、動的に容量を拡張可能なボリュームを、拡張ボリュームと記載する。特許文献２によれば、論理デバイスが定義される時点で、ユーザから要求されたデバイス容量分の物理記憶領域（例えば、ハードディスクドライブ（ＨＤＤ）等）が固定的に割り当てられない。一方、ストレージ内には、物理記憶領域と対応するプール領域が設けられる。そして、当該論理デバイスへ更新アクセスが行われたとき、当該更新部分のみに対して、プール領域から必要な容量分の物理記憶領域が動的に追加される。その結果、少ない物理記憶領域に対して大容量の論理デバイスを導入することができ、ストレージ容量設計を簡易化することができる。
【０００５】
さらに、上記のように大量データを長期間保存する大規模ストレージシステムの運用コストを低減する方法の一つとして、ディスクドライブの起動停止制御技術が開示されている（特許文献３参照）。特許文献３によれば、ホスト又はバックアップソフトから指定された論理デバイスに対応するディスクドライブ（ＨＤＤ等）のディスク回転を停止し、又は、そのディスクドライブの電源供給を遮断することによって、ストレージシステムの維持・運用コスト（消費電力及び機器交換コスト）を低減することができる。
【特許文献１】特開２００５−１１２７７号公報
【特許文献２】特開２００３−１５９１５号公報
【特許文献３】特開２００５−１５７７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示される外部ストレージ接続方法を有するストレージを用いることによって、性能、信頼性、価格等の属性の異なる複数のストレージを統合したストレージシステムを構築できる。例えば、外部ストレージ接続手段を有する高コスト高機能高信頼な第一のストレージと低コスト低機能低信頼な第二のストレージ複数台とを接続することによって、データの鮮度又は価値に応じた最適なデータ配置が可能な記憶階層システムを実現できる。このような記憶階層システムを用いることによって、監査への対応等を目的として、日々の業務で発生する取引情報及び電子メール等の大量の情報を、各情報が持つ価値に応じて最適なコストで長期間保存することが可能となる。
【０００７】
さらに、上記外部ストレージ接続システムへ特許文献２に示す拡張ボリューム技術及び特許文献３に示すディスクドライブ起動停止制御技術を組み合わせることで、ストレージシステム設計の簡易化及びストレージシステム維持・運用コストの低減を実現できる。
【０００８】
ただし、ディスクドライブ起動停止制御技術を適用したストレージとそうでないストレージが混在するストレージシステムでは、それぞれの特性を考慮した記憶領域管理をすることが重要である。すなわち、アーカイブデータ用ボリューム等、長期間保持することが必要なデータを格納するボリュームに対するアクセス頻度が少ないことが予想されるため、その低アクセス頻度とデータ量の大きさを考慮して、ディスクドライブ起動停止制御技術を適用したストレージに格納することが望ましい。逆に、データベースボリュームなど常時業務システムで利用されるボリュームは、データ保持の期間に関らず、常時利用し続けられることが求められる。
【０００９】
一方、拡張ボリューム技術を適用した論理デバイスには、更新アクセス時にプール領域から規定量の物理記憶領域が割り当てられる。このとき、アクセス性能を改善するために、複数のディスクアレイグループにデータが分散配置される。このような拡張ボリューム技術を適用した論理デバイスにディスクドライブ起動停止制御技術を適用する場合、当該論理デバイスに対応するディスクドライブ、すなわち、物理記憶領域を格納したプール領域に対応するディスクドライブの起動及び停止を制御する必要がある。しかし、プール領域は複数の論理デバイスの物理記憶領域を格納するため、特定の論理デバイスのためにディスクドライブの起動及び停止を制御することができない。また、仮に、プール領域に格納した全論理デバイスが同時にディスクドライブ停止状態となった場合でも、次回に特定の論理デバイスを利用するため、ディスクドライブを起動する際には、プール領域に対応する全ディスクドライブを起動しなければならない。従って、拡張ボリューム技術を適用した論理デバイスに対しては、ディスクドライブ起動停止制御技術を効果的に利用することができない。
【００１０】
本発明の目的は、ディスクドライブ起動停止制御技術を適用したストレージとそうでないストレージが混在する、ストレージシステム又は外部ストレージ接続方法を用いたストレージシステムにおいて、条件に応じたストレージ領域へ論理デバイスを割り当てることを可能とすることである。
【００１１】
本発明の別の目的は、上記ストレージシステムにおいて、拡張ボリューム技術を適用した論理デバイスにディスクドライブ起動停止制御技術を適用して、大容量論理デバイスを少ない物理容量でかつ少ない運用コスト（消費電力）で長期間維持・運用可能とすることである。
【課題を解決するための手段】
【００１２】
本願で開示する代表的な発明は、一つ以上のホスト計算機と、前記一つ以上のホスト計算機と第１ネットワークを介して接続されるストレージ装置と、前記一つ以上のホスト計算機及び前記ストレージ装置と第２ネットワークを介して接続される管理サーバと、を備える計算機システムにおいて、前記ホスト計算機は、前記第１ネットワークに接続される第１ポートと、前記第２ネットワークに接続される第１インタフェースと、前記第１ポート及び前記第１インタフェースに接続される第１プロセッサと、前記第１プロセッサに接続される第１メモリと、を備え、前記ストレージ装置は、前記第１ネットワークに接続される第２ポートと、前記第２ネットワークに接続される第２インタフェースと、前記第２ポート及び前記第２インタフェースに接続される第２プロセッサと、前記第２プロセッサに接続される第２メモリと、ディスク回転の起動及び停止を制御される一つ以上のディスクドライブによって構成され、前記ホスト計算機によって書き込まれたデータを格納する一つ以上の第１物理デバイスと、を備え、前記ストレージ装置には、複数の論理デバイスが設定され、少なくとも一つの前記論理デバイスは、プール領域と対応し、前記管理サーバは、前記第２ネットワークに接続される第３インタフェースと、前記第３インタフェースに接続される第３プロセッサと、前記第３プロセッサに接続される第３メモリと、を備え、前記第３プロセッサは、前記論理デバイスに対するパス解除要求を受信し、受信した前記パス解除要求に含まれる情報を参照して、前記論理デバイスを停止する必要があるか否かを判定し、前記論理デバイスを停止する必要があると判定された場合、前記論理デバイスの停止要求を含むパス解除要求を前記第３インタフェースを介して前記ストレージ装置に送信し、前記第２プロセッサは、前記第２インタフェースを介して前記論理デバイスの停止要求を含むパス解除要求を受信し、当該パス解除要求に係る論理デバイスのパス定義を解除し、前記パス解除要求に係る論理デバイスが前記プール領域に対応するか否かを判定し、当該パス解除要求に係る論理デバイスが前記プール領域に対応しない場合、当該パス解除要求に係る論理デバイスに対応する物理デバイスを特定し、当該特定された物理デバイスが前記第１物理デバイスであるか否かを判定し、当該特定された物理デバイスが前記第１物理デバイスである場合、当該第１物理デバイスを構成するディスクドライブを停止することを特徴とする。
【発明の効果】
【００１３】
本発明の一形態によれば、ディスクドライブ起動停止制御技術が適用されたストレージと適用されていないストレージとが混在したストレージシステムにおいて、多数のディスクドライブに大量のデータを長期保管する場合、ユーザ又はアプリケーションプログラムからの論理デバイス定義指示に従って、当該論理デバイスの用途等の情報から導き出された構成要件に対応したストレージが選択され、当該論理デバイスが定義される。その結果、上記のようなストレージシステムにもディスクドライブ起動停止制御を適用し、電力消費抑制及び機器延命によってシステム運用コストを低減することができる。
【００１４】
また、本発明の一形態によれば、ユーザ又はアプリケーションからの論理デバイスのデタッチ指示に従って、当該論理デバイスに対応するディスクドライブを停止して電力消費を抑制し、システム運用コストを低減することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を実施するための最良の形態を、図面を参照して説明する。
【００１６】
最初に、本発明の実施の形態の概要を説明する。
【００１７】
本実施の形態は、外部ストレージ接続方法を有する第１のストレージを１台以上の第２のストレージに接続してなるストレージシステムにおいて、ユーザ又はアプリケーションからの第１のストレージ内の第１の論理デバイスの定義要求が発行されたとき、当該論理デバイスの定義要求に基づいて構成要件を決定し、構成要件を満たす物理デバイス又は第２のストレージの第２の論理デバイスを選定し、当該デバイスに第１の論理デバイスを割り当てて、ＬＵパスを定義する。
【００１８】
さらに、本発明の実施の形態は、上記のストレージシステムにおいて、ユーザ又はアプリケーションからの第１のストレージ内第１の論理デバイスへのデタッチ要求が発行されたとき、当該第１の論理デバイスのＬＵパス定義を解除し、当該要求に付加された制御情報に基づいて当該第１の論理デバイスの停止要否を決定する。停止する必要がある場合、当該第１の論理デバイスに対応する物理デバイス又は第２のストレージシステム内の第２の論理デバイスを停止する。このとき、当該物理デバイス又は第２のストレージシステム内の第２の論理デバイスが停止制御不能なデバイスである場合、停止制御可能な別の物理デバイス又は第２のストレージシステム内の第３の論理デバイスを選定し、当該デバイスへ第１の論理デバイスを移行することで、第１の論理デバイスに対応するデバイス停止を可能にする。
【００１９】
図１は、本発明の実施の形態の計算機システムのハードウェア構成の一例を示すブロック図である。
【００２０】
本実施の形態の計算機システムは、１台以上のホスト計算機（以下、ホストとも記載する。）１００、管理サーバ１１０、ファイバチャネルスイッチ１２０、ストレージ１３０、管理端末１４０、外部ストレージ１５０Ａ及び外部ストレージ１５０Ｂを備える。外部ストレージ１５０Ａ及び１５０Ｂを特に区別する必要がない場合、これらを総称して、外部ストレージ１５０と記載する。
【００２１】
ホスト１００、ストレージ１３０及び外部ストレージ１５０は、それぞれ、ポート１０７、１３１及び１５１を介してファイバチャネルスイッチ１２０のポート１２１に接続される。また、ホスト１００、ストレージ１３０、外部ストレージ１５０及びファイバチャネルスイッチ１２０は、それぞれ、インタフェース制御部（Ｉ／Ｆ）１０６、１３８、１５７及び１２３からＩＰネットワーク１７５を介して管理サーバ１１０に接続され、管理サーバ１１０上で動作するストレージ管理ソフトウェア（図示省略）によって統合管理される。
【００２２】
なお、本実施の形態のストレージ１３０のインタフェース制御部１３８は、管理端末１４０を介して管理サーバ１１０に接続される。しかし、インタフェース制御部１３８が直接ＩＰネットワーク１７５に接続されても良い。
【００２３】
ホスト１００は、ＣＰＵ１０１、メモリ１０２、記憶装置１０３、入力装置１０４、ディスプレイ１０５、インタフェース制御部１０６及びポート１０７を備える計算機である。
【００２４】
ＣＰＵ１０１は、メモリ１０２に格納されたソフトウェアを読み出して実行するプロセッサである。ＣＰＵ１０１がオペレーティングシステム及びアプリケーションプログラム等のソフトウェアを実行することによって、所定の機能が達成される。
【００２５】
メモリ１０２には、記憶装置１０３から読み出されたオペレーティングシステムやアプリケーションプログラム等のソフトウェアが格納される。
【００２６】
記憶装置１０３は、例えば、ディスクドライブ又は光磁気ディスクドライブであり、オペレーティングシステムやアプリケーションプログラム等のソフトウェアを格納する。
【００２７】
入力装置１０４は、例えば、キーボード及びマウス等である。入力装置１０４は、ホスト管理者等からの入力を受け付ける。
【００２８】
ディスプレイ１０５は、ＣＰＵ１０１から指示された情報を出力する出力装置である。
【００２９】
インタフェース制御部１０６は、ＩＰネットワーク１７５と接続される。ホスト１００は、複数のインタフェース制御部１０６を備えてもよい。
【００３０】
ポート１０７は、ファイバチャネルスイッチ１２０のポート１２１に接続される。ホスト１００は、一つ以上のホストバスアダプタ（ＨＢＡ）を備え、一つのＨＢＡが一つ以上のポート１０７を備えてもよい。
【００３１】
管理サーバ１１０は、ＣＰＵ１１１、メモリ１１２、記憶装置１１３、入力装置１１４、ディスプレイ１１５及びインタフェース制御部１１６を備える計算機である。
【００３２】
ＣＰＵ１１１は、メモリ１１２に格納されたソフトウェアを読み出して実行するプロセッサである。ＣＰＵ１１１がストレージ管理ソフトウェア等を実行することによって、計算機システム全体の運用及び保守管理等の所定の機能が達成される。
【００３３】
メモリ１１２には、記憶装置１１３から読み出されたストレージ管理ソフトウェア等が格納される。
【００３４】
記憶装置１１３は、例えば、ディスクドライブ又は光磁気ディスクドライブであり、ストレージ管理ソフトウェア等を格納する。
【００３５】
入力装置１１４、ディスプレイ１１５及びインタフェース制御部１１６は、それぞれ、入力装置１０４、ディスプレイ１０５及びインタフェース制御部１０６と同様のものであるため、説明を省略する。
【００３６】
ＣＰＵ１１１によってストレージ管理ソフトウェアが実行されると、管理サーバ１１０は、インタフェース制御部１１６からＩＰネットワーク１７５を介して、計算機システム内の各機器から構成情報、リソース利用率、性能監視情報、障害ログなどを収集する。そして、管理サーバ１１０は、収集したそれらの情報をディスプレイ１１５等の出力装置に出力してストレージ管理者に提示する。また、管理サーバ１１０は、キーボード及びマウス等の入力装置１１４を介してストレージ管理者からの指示を受信し、受信した運用・保守指示を、インタフェース制御部１１６を介して各機器に送信する。
【００３７】
ストレージ１３０は、一つ以上のポート１３１、一つ以上の制御プロセッサ１３２、各々制御プロセッサ１３２に接続される一つ以上のメモリ１３３、一つ以上のディスクキャッシュ１３４、一つ以上の制御メモリ１３５、一つ以上のポート１３６、各々ポート１３６に接続される１台以上のディスクドライブ１３７、及び、インタフェース制御部１３８を備えるデータ記憶装置である。これらの各部位は、内部結合網によって接続される。
【００３８】
制御プロセッサ１３２は、ポート１３１から受信した入出力要求についてアクセス対象デバイスを特定し、当該デバイスに対応するディスクドライブ１３７又は外部ストレージ１５０内のデバイスへの入出力要求を処理する。その際、制御プロセッサ１３２は、受信した入出力要求に含まれるポートＩＤ及びＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）からアクセス対象のデバイスを特定する。なお、本実施の形態では、ポート１３１として、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）を上位プロトコルとしたファイバチャネルインタフェースに対応したポートを想定している。しかし、ポート１３１は、ＳＣＳＩを上位プロトコルとしたＩＰネットワークインタフェースなど、他のストレージ接続用ネットワークインタフェースに対応したポートであってもよい。
【００３９】
ホスト１００によって書き込まれたデータは、最終的に、ディスクドライブ１３７又は１５６に格納される。
【００４０】
本実施の形態のストレージ１３０は次のようなデバイス階層を有する。まず、複数台のディスクドライブ１３７によるディスクアレイが構成される。このディスクアレイは、制御プロセッサ１３２によって一つの物理デバイス（図等で、ＰＤＥＶとも記載）として管理される。さらに、本発明の制御プロセッサ１３２は、ストレージ１３０内に搭載された物理デバイスに対して、論理デバイス（図等で、ＬＤＥＶとも記載）を直接割り当てる（即ち、制御プロセッサ１３２は、物理デバイスと論理デバイスとを対応づける）。論理デバイスはストレージ１３０内で管理され、その番号はストレージ１３０毎に独立して管理される。各論理デバイスは、各ポート１３１に割り当てられたＬＵＮに対応付けられ、ストレージ１３０のデバイスとしてホスト１００に提供される。即ち、ホスト１００が認識するのはストレージ１３０の論理デバイスである。ホスト１００は、論理デバイスに対応するポート１３１のＬＵＮを用いて、ストレージ１３０に格納されているデータにアクセスする。
【００４１】
なお、本実施の形態では、制御プロセッサ１３２は、外部ストレージ接続を実行することができる。外部ストレージ接続とは、外部ストレージ１５０の論理デバイスを外部デバイス（図等で、ＥＤＥＶとも記載）として管理し、ストレージ１３０のデバイスとして仮想化する技術である。この外部ストレージ接続を用いてストレージ１３０によって管理される一つ以上の外部デバイスは、物理デバイスと同様、ストレージ１３０の論理デバイスと直接対応づけられる。なお、外部デバイスも各ストレージ１３０内で独立して管理される。
【００４２】
また、本実施の形態では、論理デバイスに対して拡張ボリューム技術を適用することもできる。拡張ボリューム技術とは、論理デバイスのうち更新アクセスがあった部分に対して動的に物理記憶領域を追加割り当てする、仮想ボリューム管理技術である。その場合、物理デバイス又は外部デバイスに対してプールボリューム（図等で、プールＶＯＬとも記載）が割り当てられる。さらに、プールボリュームに対応する拡張ボリューム（図等で、拡張ＶＯＬとも記載）が定義される。そして、当該拡張ボリュームに論理デバイスが割り当てられる。
【００４３】
ここで、拡張ボリュームとは、拡張ボリューム技術を用いた仮想的なデバイスであり、論理デバイスと１対１で対応する。プールボリュームとは、拡張ボリュームに動的に割り当てられる物理記憶領域を管理する仮想的なデバイスである。本実施例では、簡単のため、一つのプールボリュームが一つの物理デバイス又は一つの外部デバイスに対応する。しかし、一つのプールボリュームが複数の物理デバイス又は複数の外部デバイスと対応してもよい。
【００４４】
例えば、ストレージ１３０がホスト１００から更新アクセス要求を受信したとき、その要求の対象の論理デバイス上の領域に対応する拡張ＶＯＬ上の領域に物理記憶領域が割り当てられていなかった場合、ストレージ１３０は、プールＶＯＬの物理記憶領域のうち、まだ他の拡張ＶＯＬに割り当てられていないものを、要求の対象の領域に割り当てる。そして、ストレージ１３０は、要求の対象のデータを論理デバイスに格納する。その結果、要求の対象のデータは、要求の対象の論理デバイス上の領域に対応する拡張ＶＯＬに割り当てられた物理記憶領域に格納される。
【００４５】
以上のようなデバイス階層を実現するため、制御プロセッサ１３２は、それぞれのデバイス、すなわち、論理デバイス、拡張ボリューム、プールボリューム、物理デバイス、ディスクドライブ１３７、外部デバイス及び外部ストレージ１５０の論理デバイスの間の対応関係を管理する。さらに、制御プロセッサ１３２は、論理デバイスに対するアクセス要求をディスクドライブ１３７や外部ストレージ１５０の論理デバイスへのアクセス要求へ変換し、適当なデバイスへ送信する処理を実行する。
【００４６】
なお、前述の通り、本実施の形態におけるストレージ１３０は、複数のディスクドライブ１３７をまとめて一つ又は複数の物理デバイスを定義し（即ち、複数のディスクドライブ１３７をまとめて一つ又は複数の物理デバイスと対応付け）、一つの物理デバイスに一つの論理デバイス又は一つのプールボリュームを割り当てて、ホスト１００に提供する。しかし、もちろん、個々のディスクドライブ１３７を一つの物理デバイスと対応付け、その物理デバイスに一つの論理デバイス又は一つのプールボリュームを割り当ててもよい。
【００４７】
また、制御プロセッサ１３２は、デバイスに対する入出力処理以外にも、データ複製及びデータ再配置等、デバイス間のデータ連携を実現する各種処理を実行する。
【００４８】
また、制御プロセッサ１３２は、インタフェース制御部１３８を介して接続される管理端末１４０に、ストレージ管理者へ提示する構成情報を送信する。そして、ストレージ管理者から管理端末１４０に入力された保守・運用指示を管理端末１４０から受信して、ストレージ１３０の構成変更等を実行する。
【００４９】
ディスクキャッシュ１３４は、ホスト１００からのアクセス要求に対する処理速度を高めるため、ディスクドライブ１３７から頻繁に読み出されるデータを予め格納してもよいし、ホスト１００から受信したライトデータを一時的に格納してもよい。例えば、制御プロセッサ１３２は、ホスト１００から受信したライトデータをディスクキャッシュ１３４に格納した後、そのライトデータがディスクドライブ１３７に実際に書き込まれる前に、ホスト１００に対してライト要求に対する応答を返してもよい。このような処理は、ライトアフタと呼ばれる。ディスクキャッシュ１３４を用いたライトアフタが実行される場合、ディスクキャッシュに格納されているライトデータがディスクドライブ１３７に書き込まれる前に消失することを防止する必要がある。このため、ディスクキャッシュ１３４の可用性を向上させることが望ましい。このため、例えば、ディスクキャッシュ１３４をバッテリバックアップ等によって不揮発化してもよいし、ディスクキャッシュ１３４を二重化することによって媒体障害への耐性を向上させてもよい。
【００５０】
制御メモリ１３５は、前述のデバイス階層を実現するための各デバイスの属性及びデバイス間の対応関係を管理するための制御情報、並びに、ディスクキャッシュ１３４上に保持されたディスク反映済み又は未反映データを管理するための制御情報等を格納する。制御メモリ１３５に格納されている制御情報が消失すると、ディスクドライブ１３７に格納されているデータへアクセスできなくなる。このため、制御メモリ１３５は、ディスクキャッシュ１３４と同様に、高可用化されていることが望ましい。
【００５１】
ストレージ１３０内の各部位は、図１に示すとおり、内部結合網で接続され、各部位間で、データ、制御情報及び構成情報の送受信が実行される。この内部結合網によって、制御プロセッサ１３２同士が、ストレージ１３０の構成情報を共有し、管理することができる。なお、可用性向上のため、内部結合網も多重化されていることが望ましい。
【００５２】
管理端末１４０は、ＣＰＵ１４２、メモリ１４３、記憶装置１４４、インタフェース制御部１４１、インタフェース制御部１４７、入力装置１４５及びディスプレイ１４６を備える。
【００５３】
ＣＰＵ１４２は、記憶装置１４４に格納されるストレージ管理プログラムをメモリ１４３に読み出して、これを実行することによって、構成情報の参照、構成変更の指示、特定機能の動作指示等を実行する。その結果、管理端末１４０は、ストレージ１３０の保守運用に関して、ストレージ管理者又は管理サーバ１１０とストレージ１３０との間のインタフェースとなる。なお、ストレージ１３０は、直接管理サーバ１１０へ接続され、管理サーバ１１０で動作する管理ソフトウェアによって管理されてもよい。この場合、計算機システムから管理端末１４０を省略することができる。
【００５４】
メモリ１４３及び記憶装置１４４は、ストレージ管理プログラムを格納することを除いて、管理サーバ１１０のメモリ１１２及び記憶装置１１３と同様である。
【００５５】
入力装置１４５は、ストレージ管理者からの入力を受付ける。
【００５６】
ディスプレイ１４６は、ストレージ管理者にストレージ１３０の構成情報及び管理情報等を出力する出力装置である。
【００５７】
インタフェース制御部１４１は、ストレージ１３０と接続される。
【００５８】
インタフェース制御部１４７は、ＩＰネットワーク１７５と接続される。
【００５９】
外部ストレージ１５０は、一つ又は複数のポート１５１、制御プロセッサ１５２、メモリ１５３、ディスクキャッシュ１５４、一つ又は複数のディスクドライブ１５６及び一つ又は複数のポート１５５を備えるデータ記憶装置である。
【００６０】
一つ又は複数のポート１５１は、ファイバチャネルスイッチ１２０を介してストレージ１３０のポート１３１と接続される。
【００６１】
制御プロセッサ１５２は、メモリ１５３に格納されたプログラムを実行することによって、ポート１５１から受信したディスクドライブ１５６への入出力要求を処理する。
【００６２】
ディスクキャッシュ１５４は、ストレージ１３０のディスクキャッシュ１３５と同様のものである。
【００６３】
一つ又は複数のポート１５５は、それぞれ、一つ又は複数のディスクドライブ１５６に接続される。
【００６４】
本実施の形態の外部ストレージ１５０は、制御メモリを備えず、ストレージ１３０より小規模な構成のストレージである。しかし、外部ストレージ１５０は、ストレージ１３０と同じ構成を備える同規模のストレージであってもよい。
【００６５】
ファイバチャネルスイッチ１２０は、複数のポート１２１を備え、ホスト１００、ストレージ１３０及び外部ストレージ１５０を相互に接続するネットワーク（いわゆるストレージエリアネットワーク）を構成する。
【００６６】
なお、本実施の形態では、図１に示すように、ストレージ装置１３０のポート１３１と外部ストレージ１５０のポート１５１とがファイバチャネルスイッチ１２０を介して接続される。このため、ファイバチャネルスイッチ１２０のゾーニングを設定することによって、ホスト１００から外部ストレージ１５０への直接アクセスを抑止することが望ましい。あるいは、ファイバチャネルスイッチ１２０を介さずにポート１３１とポート１５１とが直接接続されてもよい。
【００６７】
次に、本発明の実施の形態におけるストレージ１３０のソフトウェア構成について説明する。
【００６８】
図２は、本発明の実施の形態のストレージ１３０、外部ストレージ１５０および管理サーバ１１０の制御メモリ及びメモリに格納される、制御情報及びストレージ制御処理のためのプログラムの一例を示すソフトウェア構成図である。
【００６９】
ストレージ１３０の制御メモリ１３５には、ストレージ１３０の構成管理情報として、論理デバイス管理情報２０１、ＬＵパス管理情報２０２、物理デバイス管理情報２０３、外部デバイス管理情報２０４、キャッシュ管理情報２０５、デバイス機能管理情報２０６、拡張ＶＯＬ管理情報２０７及びプールＶＯＬ管理情報２０８が格納される。本実施の形態において、これらの情報は、消失を防ぐため、制御メモリ１３５に格納される。制御プロセッサ１３２は、これらの制御情報を参照及び更新することができる。ただし、その際に、相互接続網を介したアクセスが必要となる。よって、処理性能向上のため、各制御プロセッサ１３２で実行される処理に必要な制御情報の複製（デバイス管理情報の複製２１１）が、メモリ１３３に格納される。さらに、制御端末１４０及び管理サーバ１１０にもストレージ１３０の構成情報が送信され、格納される。
【００７０】
管理サーバ１１０若しくは管理端末１４０から、ストレージ管理ソフトウェア若しくはストレージ管理者の指示を受けて、ストレージ１３０の構成が変更された場合、又は、ストレージ１３０内の構成が、各部位の障害若しくは自動交替等によって変化した場合、制御プロセッサ１３２のうちの一つが制御メモリ１３５内の該当する構成情報を更新する。そして、制御プロセッサ１３２は、制御情報が構成変更のために更新された旨を、相互接続網を介して他の制御プロセッサ１３２、管理端末１４０及び管理サーバ１１０に通知し、最新情報を制御メモリ１３５から他部位のメモリへ取り込ませる。
【００７１】
ストレージ１３０のメモリ１３３には、デバイス管理情報の複製２１１に加えて、デバイス接続切替処理２２１、デバイス起動／停止処理２２２、停止デバイス監視処理２２３、デバイス定義処理２２４及びデバイス移行処理２２５が格納される。これらの処理は、制御プロセッサ１３２によって実行されるプログラムである。これらの処理については、後で詳細に説明する。
【００７２】
外部ストレージ１５０のメモリ１５３には、ストレージ１３０と同様、自装置内部の論理デバイス及び物理デバイスのデバイス管理及びデータ管理のために、論理デバイス管理情報２５１、ＬＵパス管理情報２５２、物理デバイス管理情報２５３及びキャッシュ管理情報２５４が格納される。これらの情報は、それぞれ、ストレージ１３０の論理デバイス管理情報２０１、ＬＵパス管理情報２０２、物理デバイス管理情報２０３及びキャッシュ管理情報２０５と同じ目的で用いられる。
【００７３】
さらに、外部ストレージ１５０のメモリ１５３には、Ｉ／Ｏ処理２６１及び外部デバイス起動／停止処理２６２が格納される。これらの処理は、制御プロセッサ１５２によって実行されるプログラムである。これらの処理については、後で詳細に説明する。
【００７４】
管理サーバ１１０のメモリ１１２には、ストレージ１３０及び外部ストレージ１５０から収集したデバイス管理情報の複製２３１及び各ストレージの属性を示すストレージ管理情報２３２が格納される。これらの情報は、データ消失を避けるために、管理サーバ１１０に搭載された記憶装置１１３に格納されてもよい。
【００７５】
さらに、管理サーバ１１０のメモリ１１２には、デバイス接続切替要求処理２４１及びデバイス定義指示処理２４２が格納される。これらの処理は、ＣＰＵ１１１によって実行されるプログラムである。これらの処理については、後で詳細に説明する。
【００７６】
次に、各管理情報について説明する。最初に、論理デバイス管理情報２０１について説明する。
【００７７】
図３は、本発明の実施の形態の論理デバイス管理情報２０１の一例を示す説明図である。
【００７８】
論理デバイス管理情報２０１は、各論理デバイスについて、論理デバイス番号３０１から最終起動／停止時間３１２までの情報の組を保持する。
【００７９】
論理デバイス番号３０１には、論理デバイスを識別するために制御プロセッサ１３２が論理デバイスに割り当てた番号が格納される。
【００８０】
サイズ３０２には、論理デバイス番号３０１によって特定される論理デバイスの容量が格納される。以下、図３の説明において、論理デバイス番号３０１によって特定される論理デバイスを「当該論理デバイス」と記載する。
【００８１】
対応下位デバイス番号３０３には、当該論理デバイスに対応づけられている物理デバイス、外部デバイス、又は拡張ボリュームの番号が格納される。物理デバイス、外部デバイス、又は拡張ボリュームの番号とは、それぞれの管理情報である物理デバイス管理情報２０３、外部デバイス管理情報２０４、又は拡張ＶＯＬ管理情報２０７のエントリ番号である。
【００８２】
本実施の形態の論理デバイスは、物理デバイス、外部デバイス又は拡張ＶＯＬと１対１に対応する。しかし、論理デバイスは、複数の物理デバイス又は外部デバイスの結合と対応してもよい。この場合、論理デバイス管理情報２０１に、各論理デバイスが対応する物理デバイス又は外部デバイスの番号のリストと、それらの物理デバイス又は外部デバイスの数を格納するエントリが必要となる。なお、論理デバイスが未定義の場合、対応下位デバイス番号３０３には無効値が格納される。
【００８３】
タイプ３０４には、当該論理デバイスのデバイスタイプ識別情報が格納される。ストレージ１３０は、キャッシュ上でのデータ管理単位又はデバイス管理情報の格納形態（ディスク空間に管理情報が格納されるか否か、及び、格納形態等）等が異なる複数のデバイスタイプの論理デバイスを定義することができる。タイプ３０４に格納された情報は、各論理デバイスがどのデバイスタイプであるかを示す。
【００８４】
デバイス状態３０５には、当該論理デバイスの状態を示す情報が格納される。論理デバイスの状態は、「アタッチド」、「デタッチド」、「未実装」又は「ブロックド」のいずれかである。
【００８５】
「アタッチド」は、当該論理デバイスが正常に稼動し、一つ以上のポート１３１にＬＵパスが定義され、ホスト１００が当該論理デバイスにアクセスできる状態を示す。「デタッチド」は、当該論理デバイスは定義され、正常に稼動しているが、ＬＵパスが未定義であるなどの理由で、ホスト１００が当該論理デバイスにアクセスできない状態を示す。「未実装」は、当該論理デバイスが物理デバイス、外部デバイス又は拡張ＶＯＬに対して定義されておらず、ホスト１００が当該論理デバイスにアクセスできない状態を示す。「ブロックド」は、当該論理デバイスに障害が発生して、ホスト１００が当該論理デバイスにアクセスできない状態を示す。
【００８６】
デバイス状態３０５の初期値は「未実装」であり、論理デバイス定義処理によって「デタッチド」に、更にＬＵパス定義処理によって「アタッチド」に変更される。
【００８７】
エントリ３０６には、ポート番号、ターゲットＩＤ及びＬＵＮが格納される。エントリ３０６のポート番号は、当該論理デバイスが複数のポート１３１のうちどのポートにＬＵＮ定義されているかを表す情報、即ち、当該論理デバイスにアクセスするために用いられるポート１３１の識別情報である。ここでポート１３１の識別情報とは、各ポート１３１に割り当てられているストレージ１３０内で一意な番号である。また、エントリ３０６に格納されるターゲットＩＤ及びＬＵＮは、当該論理デバイスを識別するための識別子である。本実施の形態においては、論理デバイスを識別するための識別子として、ＳＣＳＩ上でホスト１００がデバイスにアクセスする場合に用いられるＳＣＳＩ−ＩＤ及びＬＵＮが用いられる。エントリ３０６は、当該論理デバイスに対するＬＵパス定義が実行された際に設定される。
【００８８】
接続ホスト名３０７は、当該論理デバイスへのアクセスが許可されているホスト１００を識別するホスト名である。ホスト名としては、ホスト１００のポート１０７に付与されたＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）など、ホスト１００又はポート１０７を一意に識別できる値であれば何を用いてもよい。ストレージ１３０は、このほかに、各ポート１３１のＷＷＮなど、ポートの属性に関する管理情報を保持する。当該エントリ３０７は、ストレージ管理者によって論理デバイス定義時に設定される。
【００８９】
移行中の下位デバイス番号３０８、データ移行進捗ポインタ３０９及びデータ移行中フラグ３１０には、当該論理デバイスのデータの移行に関する情報が格納される。
【００９０】
移行中の下位デバイス番号３０８には、当該論理デバイスが現在対応している物理デバイス、外部デバイス又は拡張ＶＯＬのデータが、別の物理デバイス、外部デバイス又は拡張ＶＯＬへ移行中である場合、移行先のデバイス番号が格納される。当該論理デバイスがデータ移行中である場合、データ移行中フラグ３１０には「ＯＮ」が格納され、データ移行進捗ポインタ３０９にはデータ移行が完了した領域の末尾を示すアドレス情報が格納される。なお、エントリ３０８及び３０９は、データ移行中フラグ３１０が「ＯＮ」の時のみ有効となる。
【００９１】
停止フラグ３１１には、当該論理デバイスの起動又は停止状態を示す情報が設定される。すなわち、ユーザ又はアプリケーションプログラムから当該論理デバイスへ停止を伴うデタッチ要求又は停止要求があり、ストレージ１３０が当該要求を受信した場合、停止フラグ３１１には当該論理デバイスが停止していることを示す「Ｏｆｆ」が格納される。ここで、デタッチ要求とは、当該論理デバイスに関するＬＵパス定義を解除する要求である。「アタッチド」状態の論理デバイスについてデタッチ要求が発行されると、その論理デバイスの状態は「デタッチド」に変更される。また、当該論理デバイスが起動している場合、停止フラグ３１１には当該論理デバイスが起動していることを示す「Ｏｎ」が格納される。
【００９２】
最終起動／停止時間３１２には、当該論理デバイスが最後に起動又は停止した時間を示す情報が格納される。
【００９３】
次に、ＬＵパス管理情報２０２について説明する。
【００９４】
図４は、本発明の実施の形態のＬＵパス管理情報２０２の一例を示す説明図である。
【００９５】
ＬＵパス管理情報２０２には、ストレージ１３０内の各ポート１３１について、各ポートに定義されている有効なＬＵＮに関する情報が格納される。
【００９６】
ポート番号４０１には、ポート１３１を識別するために割り当てられた番号が格納される。
【００９７】
ターゲットＩＤ／ＬＵＮ４０２には、ポート番号４０１によって特定されるポート１３１に定義された（割り当てられた）ＬＵＮが格納される。以下、図４の説明において、ポート番号４０１によって特定されるポート１３１を「当該ポート１３１」、当該ポート１３１に定義されたＬＵＮを「当該ＬＵＮ」と記載する。
【００９８】
対応論理デバイス番号４０３には、当該ＬＵＮが割り当てられている論理デバイスの番号が格納される。
【００９９】
接続ホスト名４０４は、当該ポート１３１に定義されている当該ＬＵＮに対してアクセスを許可されているホスト１００を示す情報が格納される。ホスト１００を示す情報としては、例えば、上記のホスト１００のポート１０７に付与されているＷＷＮが用いられる。なお、一つの論理デバイスに対して複数のポート１３１のＬＵＮが定義され（割り当てられ）ており、複数のポート１３１を経由して当該論理デバイスにアクセスできる場合がある。この場合、当該複数のポート１３１の各ＬＵＮに関するＬＵパス管理情報２０２の接続ホスト名４０４の和集合が、当該論理デバイスに関する論理デバイス管理情報２０１の接続ホスト名３０８に格納される。
【０１００】
次に、物理デバイス管理情報２０３について説明する。物理デバイス管理情報２０３は、ストレージ１３０内の１台以上のディスクドライブ１３７によって構成される物理デバイスの管理に用いられる。
【０１０１】
図５は、本発明の実施の形態の物理デバイス管理情報２０３の一例を示す説明図である。
【０１０２】
各ストレージ１３０は、そのストレージ１３０内に存在する物理デバイス毎に、物理デバイス番号５０１から対応ディスクドライブ停止可否フラグ５１０までの情報の組を保持する。
【０１０３】
物理デバイス番号５０１には、物理デバイスを識別するための識別番号が格納される。
【０１０４】
サイズ５０２には、物理デバイス番号５０１によって特定される物理デバイスの容量が格納される。以下、図５の説明において、物理デバイス番号５０１によって特定される物理デバイスを「当該物理デバイス」と記載する。
【０１０５】
対応上位デバイス番号５０３には、当該物理デバイスが対応付けられている論理デバイス番号又はプールＶＯＬ番号が、当該論理デバイス又はプールＶＯＬが定義されたことを契機に、格納される。当該物理デバイスが論理デバイス又はプールＶＯＬへ割り当てられていない場合、エントリ５０３には無効値が格納される。
【０１０６】
デバイス状態５０４には、当該物理デバイスの状態を示す情報が格納される。物理デバイスの状態は、「アタッチド」、「デタッチド」、「未実装」、「ブロックド」のいずれかである。
【０１０７】
「アタッチド」は、当該物理デバイスが正常に稼動し、論理デバイス又はプールＶＯＬに割り当てられている状態を示す。「デタッチド」は、当該物理デバイスは定義され、正常に稼動しているが、論理デバイス又はプールＶＯＬに割り当てられていないことを示す。「未実装」は、当該物理デバイス番号に対応する物理デバイスがディスクドライブ１３７上に定義されていない状態を示す。「ブロックド」は、当該物理デバイスに障害が発生してアクセスできない状態を示す。
【０１０８】
デバイス状態５０４の初期値は「未実装」であり、物理デバイス定義処理によって「デタッチド」に、さらに論理デバイスが定義されたことを契機に「アタッチド」に変更される。
【０１０９】
停止フラグ５０５には、当該物理デバイスの起動又は停止状態を示す情報が格納される。すなわち、ユーザ又はアプリケーションプログラムから当該物理デバイスに対応する論理デバイスへ停止を伴うデタッチ要求又は停止要求があり、当該要求が受理されて当該論理デバイスが停止状態となり、当該物理デバイスに対応する全ての論理デバイスが停止状態になった場合、当該物理デバイスに対応するディスクドライブ１３７が停止したときに、停止フラグ５０５には当該物理デバイスが停止状態になったことを示す「Ｏｆｆ」が格納される。一方、当該物理デバイスが起動している場合、停止フラグ５０５には起動状態を示す「Ｏｎ」が格納される。
【０１１０】
最終起動／停止時間５０６には、当該物理デバイスが起動状態又は停止状態に変更された日時、すなわち、停止フラグ５０５が「Ｏｎ」又は「Ｏｆｆ」に変更された日時を示す情報が格納される。最終起動／停止時間５０６と現在時刻を用いることによって、当該物理デバイスが起動又は停止してから現在までの経過時間を算出することができる。
【０１１１】
ＲＡＩＤ構成５０７には、ＲＡＩＤ構成に関連する情報が格納される。ＲＡＩＤ構成に関連する情報とは、例えば、当該物理デバイスが割り当てられたディスクドライブ１３７のＲＡＩＤレベル、データディスク及びパリティディスクの数、並びに、データ分割単位であるストライプのサイズ等である。
【０１１２】
ディスク番号リスト５０８には、当該物理デバイスが割り当てられた、ＲＡＩＤを構成する複数のディスクドライブ１３７の識別番号が保持される。これらのディスクドライブ１３７の識別番号は、ストレージ１３０内でディスクドライブ１３７を識別するために付与された一意の値である。
【０１１３】
ディスク内サイズ／オフセット５０９は、当該物理デバイスが各ディスクドライブ１３７内のどの領域に割り当てられているかを示す情報である。本実施の形態は、簡単のため、全物理デバイスについて、ＲＡＩＤを構成する各ディスクドライブ１３７内のオフセット及びサイズが同一である場合について説明する。しかし、上記のオフセット及びサイズが物理デバイスごとに異なる場合にも、本発明を適用することができる。
【０１１４】
対応ディスクドライブ停止可否フラグ５１０には、当該物理デバイスを構成する１台以上のディスクドライブが起動／停止制御可能な場合（すなわち、それらのディスクドライブのディスク回転の起動及び停止が制御される場合）には「Ｏｎ」が格納される。一方、これらのディスクドライブが起動／停止制御不能な場合（すなわち、それらのディスクドライブのディスク回転の起動及び停止が制御されない場合）には、対応ディスクドライブ停止可否フラグ５１０に「Ｏｆｆ」が格納される。このフラグは、制御可否の判定に用いられる（例えば、図１２のステップ１２０６参照）。
【０１１５】
なお、ディスクドライブの起動及び停止とは、ディスクドライブ内のディスクの回転の開始及び停止であってもよいし、ディスクドライブに供給する電源の投入及び遮断であってもよい。
【０１１６】
次に、外部デバイス管理情報２０４について説明する。外部デバイス管理情報２０４は、ストレージ１３０に接続された外部ストレージ１５０の論理デバイスを外部デバイスとして管理するために用いられる。
【０１１７】
図６は、本発明の実施の形態の外部デバイス管理情報２０４の説明図である。
【０１１８】
ストレージ１３０は、ストレージ１３０で管理する外部デバイス毎に、外部デバイス番号６０１から対応ディスクドライブ停止可否フラグ６１１までの情報の組を保持する。
【０１１９】
外部デバイス番号６０１には、ストレージ１３０の制御プロセッサ１３２が当該外部デバイスに対して割り当てた、ストレージ１３０内で一意な値が格納される。
【０１２０】
サイズ６０２には、外部デバイス番号６０１によって特定される外部デバイスの容量が格納される。以下、図６の説明において、外部デバイス番号６０１によって特定される外部デバイスを「当該外部デバイス」と記載する。
【０１２１】
対応上位デバイス番号６０３には、当該外部デバイスが対応付けられているストレージ１３０内の論理デバイス又はプールＶＯＬの番号が格納される。
【０１２２】
デバイス状態６０４、停止フラグ６０５及び最終起動／停止時間６０６には、当該外部デバイスについて、物理デバイス管理情報２０３のデバイス状態５０４、停止フラグ５０５及び最終起動／停止時間５０６と同様の情報が格納される。なお、ストレージ１３０は初期状態では外部ストレージ１５０を接続していないため、デバイス状態６０４の初期値は「未実装」となる。
【０１２３】
ストレージ識別情報６０７には、当該外部デバイスを搭載する外部ストレージ１５０の識別情報が格納される。外部ストレージ１５０の識別情報は、例えば、その外部ストレージ１５０のベンダ識別情報及び各ベンダが一意に割り当てる製造シリアル番号の組み合わせであってもよい。
【０１２４】
外部ストレージ内デバイス番号６０８には、当該外部デバイスに対応する外部ストレージ１５０の論理デバイスの論理デバイス番号、すなわち、その論理デバイスに対して、外部ストレージ１５０内で割り当てられた識別番号が格納される。
【０１２５】
イニシエータポート番号リスト６０９には、当該外部デバイスへアクセス可能なストレージ１３０のポート１３１の識別番号が格納される。複数のポート１３１から当該外部デバイスへアクセスできる場合、複数のポート識別番号が格納される。
【０１２６】
ターゲットポートＩＤ／ターゲットＩＤ／ＬＵＮリスト６１０には、当該外部デバイスが外部ストレージ１５０の一つ以上のポート１５１にＬＵＮ定義されている場合、それらのポート１５１のポートＩＤ、並びに、当該外部デバイスが割り当てられたターゲットＩＤ及びＬＵＮが一つ又は複数個格納される。なお、ストレージ装置１３０の制御プロセッサ１３２が外部デバイスにアクセスする場合（すなわち、制御プロセッサ１３２がポート１３１から外部デバイスに対する入出力要求を送信する場合）、当該外部デバイスが属する外部ストレージ１５０によって当該外部デバイスに割り当てられたターゲットＩＤ及びＬＵＮが、当該外部デバイスを識別するための情報として用いられる。
【０１２７】
対応ディスクドライブ停止可否フラグ６１１には、当該外部デバイスに対応する外部ストレージ１５０の論理デバイスについて、ディスクドライブ起動／停止制御が可能か否かを示す情報が格納される。具体的には、当該外部デバイスが対応する外部ストレージ１５０自体がディスクドライブ１５６の起動／停止を制御可能か否かが判定される。さらに、当該外部ストレージ１５０がディスクドライブ１５６の起動／停止を制御可能である場合、当該外部デバイスが対応する当該外部ストレージ１５０の論理デバイスに対応するディスクドライブ１５６が起動／停止制御可能であるか否かが判定される。その結果、制御可能であると判定された場合、対応ディスクドライブ停止可否フラグ６１１に「Ｏｎ」が格納される。一方、制御不能と判定された場合、対応ディスクドライブ停止可否フラグ６１１に「Ｏｆｆ」が格納される。このフラグは、制御可否の判定に用いられる（例えば、図１２のステップ１２０６参照）。
【０１２８】
次に、デバイス機能管理情報２０６について説明する。デバイス機能管理情報２０６には、各論理デバイスに設定された様々な属性を示す属性情報（図示省略）が格納される。論理デバイスの属性情報としては、例えば、当該論理デバイスへのアクセスを特定ホストからのみに制限するアクセス制御情報、当該論理デバイスへのリード又はライトアクセスを抑止するアクセス属性情報、当該論理デバイス内のデータへ暗号化を適用するか否かを示す情報及び暗号化・複合化に用いられる鍵情報を含む暗号設定情報、などが挙げられる。
【０１２９】
次に、拡張ＶＯＬ管理情報２０７について説明する。本実施の形態の拡張ＶＯＬは、物理記憶領域が動的に割り当てられる仮想ボリュームである。具体的には、拡張ＶＯＬが定義された時点で、その拡張ＶＯＬには物理記憶領域が割り当てられていない。その後、ホスト１００等から更新アクセスを受けると、拡張ＶＯＬ上のアクセス対象の部分に対応する物理記憶領域として、プールＶＯＬの記憶領域が動的に割り当てられる。拡張ＶＯＬ管理情報２０７は、拡張ＶＯＬと論理デバイスとの対応関係、及び、拡張ＶＯＬとプールＶＯＬとの対応関係を管理するために用いられる。
【０１３０】
図７は、本発明の実施の形態の拡張ＶＯＬ管理情報２０７の説明図である。
【０１３１】
ストレージ１３０は、拡張ＶＯＬ毎に、拡張ＶＯＬ番号７０１から実領域割当総量７０９までの情報の組を保持する。
【０１３２】
拡張ＶＯＬ番号７０１には、ストレージ１３０の制御プロセッサ１３２が拡張ＶＯＬに対して割り当てた、ストレージ１３０内で一意な値が格納される。
【０１３３】
サイズ７０２には、拡張ＶＯＬ番号７０１によって特定される拡張ＶＯＬのホスト１００からの見掛けの容量が格納される。言い換えると、ホスト１００は、当該拡張ＶＯＬの容量が、サイズ７０２に格納された値であると認識する。以下、図７の説明において、拡張ＶＯＬ番号７０１によって特定される拡張ＶＯＬを「当該拡張ＶＯＬ」と記載する。
【０１３４】
対応論理デバイス番号７０３には、当該拡張ＶＯＬが対応付けられているストレージ１３０内の論理デバイスの番号が格納される。
【０１３５】
ＶＯＬ状態７０４、停止フラグ７０５及び最終起動／停止時間７０６には、当該拡張ＶＯＬについて、物理デバイス管理情報２０３のデバイス状態５０４、停止フラグ５０５及び最終起動／停止時間５０６と同様の情報が格納される。なお、本実施の形態では、ＶＯＬ状態７０４の初期値は「未実装」となる。
【０１３６】
対応プール番号リスト７０７には、当該拡張ＶＯＬの物理記憶領域を格納する全てのプールＶＯＬの番号が格納される。
【０１３７】
プールエントリ対応管理情報７０８には、当該拡張ＶＯＬがホストに提供する記憶領域と、当該拡張ＶＯＬに対応するプールＶＯＬ内の物理記憶領域との対応を示す情報が格納される。当該拡張ＶＯＬが定義されたばかりの初期状態において、当該拡張ＶＯＬには物理記憶領域が割り当てられていない。このため、当該拡張ＶＯＬの全記憶領域は未割り当て状態である。ホスト１００等から当該拡張ＶＯＬに対応する論理デバイスへの更新アクセスを受けると、拡張ＶＯＬ内のアクセス対象位置が算出され、該当する記憶領域にプールＶＯＬの記憶領域（すなわち、物理記憶領域）が割り当てられているか否かがチェックされる。アクセス対象の記憶領域に対して物理記憶領域が割り当てられていない場合、対応プール番号リスト７０７が示す一つ以上のプールＶＯＬから適当な記憶領域が選択される。そして、選択された記憶領域が、拡張ＶＯＬのアクセス対象の記憶領域に対応する物理記憶領域として割り当てられる。
【０１３８】
実領域割当総量７０９には、当該拡張ＶＯＬに対して割り当てられた物理記憶領域の総容量が格納される。
【０１３９】
次に、プールＶＯＬ管理情報２０８について説明する。本実施の形態のプールＶＯＬとは、拡張ＶＯＬの物理記憶領域として割り当てられる記憶領域を提供及び管理する仮想的なボリュームである。プールＶＯＬ管理情報２０８は、プールＶＯＬと拡張ＶＯＬとの対応関係、及び、プールＶＯＬと物理デバイス又は外部デバイスとの対応関係を管理するために用いられる。
【０１４０】
図８は、本発明の実施の形態のプールＶＯＬ管理情報２０８の説明図である。
【０１４１】
ストレージ１３０は、プールＶＯＬ毎に、プールＶＯＬ番号８０１から最終起動／停止時間８１１までの情報の組を保持する。
【０１４２】
プールＶＯＬ番号８０１には、ストレージ１３０の制御プロセッサ１３２が当該プールＶＯＬに対して割り当てた、ストレージ１３０内で一意な値が格納される。
【０１４３】
サイズ８０２には、プールＶＯＬ番号８０１によって特定されるプールＶＯＬの容量が格納される。以下、図８の説明において、プールＶＯＬ番号８０１によって特定されるプールＶＯＬを「当該プールＶＯＬ」と記載する。
【０１４４】
空き容量８０３には、拡張ＶＯＬに割り当てられていない記憶領域の総容量を示す情報が格納される。
【０１４５】
ＶＯＬ状態８０４、停止フラグ８１０及び最終起動／停止時間８１１には、当該プールＶＯＬについて、拡張ＶＯＬ管理情報２０７のＶＯＬ状態７０４、停止フラグ７０５及び最終起動／停止時間７０６と同様の情報が格納される。
【０１４６】
物理／外部デバイス番号８０５には、当該プールＶＯＬが割り当てられた物理デバイス又は外部デバイスの番号が格納される。
【０１４７】
プールエントリサイズ８０６には、当該プールＶＯＬの記憶領域を拡張ＶＯＬの物理記憶領域として割り当てる際の割り当て単位（エントリ）の大きさを示す情報が格納される。拡張ＶＯＬの記憶領域は、対応するプールＶＯＬのプールエントリサイズ８０６が示す大きさの複数のエントリに分割される。
【０１４８】
プールエントリ割当状態管理情報８０７には、拡張ＶＯＬの各エントリとプールＶＯＬの各エントリとの対応状態が格納される。
【０１４９】
対応拡張ＶＯＬ番号リスト８０８には、当該プールＶＯＬの記憶領域を物理記憶領域として割り当てた一つ以上の拡張ＶＯＬの番号が格納される。
【０１５０】
対応ディスクドライブ停止可否フラグ８０９には、当該プールＶＯＬが対応する物理デバイス又は外部デバイスの対応ディスクドライブ停止可否フラグ５１０又は６１１の内容がそのまま複製して格納される。
【０１５１】
本実施の形態では、ストレージ１３０は、上記の７つのデバイス管理情報及びボリューム管理情報を用いて、デバイス及びボリュームを管理する。工場出荷時において、ストレージ１３０の各ディスクドライブ１３７に物理デバイスが定義され、論理デバイス、外部デバイス、拡張ＶＯＬ及びプールＶＯＬは定義されていない。これがストレージ１３０の初期状態である。
【０１５２】
物理デバイスを定義する際に、各物理デバイスに対応するディスクドライブ１３７が起動／停止制御可能か否かによって、物理デバイス管理情報２０３の対応ディスクドライブ停止可否フラグ５１０に「Ｏｎ」又は「Ｏｆｆ」が設定される。対応ディスクドライブ停止可否フラグ５１０に「Ｏｎ」が設定された物理デバイスは、デバイス状態が「デタッチド」であるとき、すなわち、当該物理デバイスが論理デバイスに割り当てられていないとき、対応するディスクドライブ１３７を停止してもよい。これによって、ストレージ１３０稼動に伴う電力消費量を削減することができる。
【０１５３】
また、ユーザ又はストレージ管理者は、ストレージ１３０を導入する時に、そのストレージ１３０に接続された外部ストレージ１５０の論理デバイスを外部デバイスとして定義し、これらの物理デバイス及び外部デバイス上に論理デバイス又はプールＶＯＬを定義することができる。ユーザ又はストレージ管理者は、プールＶＯＬを定義した場合、更に拡張ＶＯＬ及び論理デバイスを定義する。そして、ユーザ又はストレージ管理者は、定義された論理デバイスについて、各ポート１３１にＬＵＮを定義する。
【０１５４】
なお、物理デバイスと同様に、ディスクドライブ起動／停止制御可能な外部デバイスのうち、論理デバイスに割り当てられていないものに対応するディスクドライブ１５６は、停止してもよい。さらに、外部ストレージ１５０に対応するいずれの外部デバイスも論理デバイスに割り当てられていない場合、当該外部ストレージ１５０自体を停止してもよい。
【０１５５】
次に、再び図２を参照して、ストレージ１３０、外部ストレージ１５０及び管理サーバ１１０のメモリ１３３、１５３及び１１２に格納されるプログラムのうち、本発明に関係のあるものについて説明する。
【０１５６】
以下、ストレージ１３０へ論理デバイスを定義する処理、論理デバイスの起動／停止を伴うアタッチ／デタッチ処理、及び、停止されたデバイスを周期的に監視する処理について説明する。これらの処理は、ユーザ又はアプリケーションからの要求に対して、管理サーバ１１０、ストレージ１３０及び外部ストレージ１５０が連携することによって実行される。
【０１５７】
まず、論理デバイスを定義する処理について説明する。ストレージ１３０へ論理デバイスを定義するために、管理サーバ１１０及びストレージ１３０は、それぞれ、デバイス定義指示処理２４２及びデバイス定義処理２２４を実行する。
【０１５８】
図９は、本発明の実施の形態の管理サーバ１１０で実行される、デバイス定義指示処理２４２の一例を示すフローチャートである。
【０１５９】
図９の説明において、管理サーバ１１０が実行する処理は、実際には、デバイス定義指示処理２４２を実行するＣＰＵ１１１によって実行される。
【０１６０】
管理サーバ１１０は、ＩＰネットワーク１７５及びインタフェース制御部１１６を介して、ユーザ又はアプリケーションプログラムからストレージ１３０の論理デバイス定義要求を受信する（ステップ９０１）。当該要求には、例えば、要求の対象のストレージ１３０（当該ストレージ１３０）の識別情報、要求の対象の論理デバイス（当該論理デバイス）の論理デバイス番号、アクセス元ＨＢＡ特定情報、ポート特定情報及びデバイス属性情報等の情報が含まれる。ここで、アクセス元ＨＢＡ特定情報とは、例えば、ＷＷＮ等である。ポート特定情報とは、例えば、ポート１３１のポートＩＤ、ターゲットＩＤ及びＬＵＮのリスト等である。デバイス属性情報とは、例えば、当該論理デバイスが拡張ＶＯＬとして割り当てられるか否かを示す情報、及び、当該論理デバイスの用途を示す情報等である。
【０１６１】
管理サーバ１１０は、最初に、受信したデバイス定義要求に含まれる情報及び当該ストレージ１３０に設定された管理アクセス権設定等を参照して、受信した要求が当該ストレージ１３０の管理アクセス権を持ったユーザ又はホスト１００上のアプリケーションプログラムから発行されたことを確認する。そして、その要求が管理アクセス権を持ったユーザ等から発行されたことが確認された場合、管理サーバ１１０は、処理を続行する。
【０１６２】
次に、管理サーバ１１０は、受信したデバイス定義要求に含まれる情報から、当該論理デバイスを通常のボリュームとして定義するか、拡張ＶＯＬとして定義するかを判定する（ステップ９０２）。
【０１６３】
ステップ９０２において、当該論理デバイスを拡張ＶＯＬとして定義する（言い換えると、当該論理デバイスを拡張ＶＯＬとして割り当てる）と判定された場合、管理サーバ１１０は、当該論理デバイスの用途を示す情報等を参照して、ディスクドライブ起動／停止制御をする必要があるか否かを判定する（ステップ９０３）。なお、図９における「ＨＤＤ（ハードディスクドライブ）」は、ディスクドライブ１３７を意味する。
【０１６４】
例えば、論理デバイスの起動／停止制御要否を示すフラグを設け、論理デバイス定義時にユーザ等がこのフラグを設定し、管理サーバ１１０がこのフラグを参照してステップ９０３の要否判定を実行してもよい。あるいは、ユーザ等がアタッチ／デタッチ制御要否を示す情報を設定し、管理サーバ１１０がこの情報を参照してステップ９０３の要否判定を実行してもよい。
【０１６５】
あるいは、論理デバイスのアクセス頻度及びアクセスの傾向を示す情報として、「ＷＯＲＭ（Ｗｒｉｔｅ  Ｏｎｃｅ  Ｒｅａｄ  Ｍａｎｙ）」又は「ＷＯＲＦ（Ｗｒｉｔｅ  Ｏｎｃｅ  Ｒｅａｄ  Ｆｅｗ）」等の属性を設定してもよい。例えば、当該論理デバイスにＷＯＲＭ属性が設定されている場合、当該論理デバイスのデータは、頻繁に読み出される（すなわち、アクセス頻度が高い）ことが予想される。一方、当該論理デバイスにＷＯＲＦ属性が設定されている場合、当該論理デバイスのデータは、ほとんど読み出されることがない（すなわち、アクセス頻度が低い）と予想される。
【０１６６】
あるいは、管理サーバ１１０は、上記の属性に対応する用途情報を参照して、当該論理デバイスへのアクセス頻度を予想してもよい。ここで、用途情報とは、当該論理デバイスに格納するデータの種別（例えば「ＤＢデータ」「メールアーカイブデータ」又は「ファイルシステム」）等を示す情報である。
【０１６７】
上記の属性又は用途情報を参照した結果、リード／ライト等のアクセス頻度が低いと予想された論理デバイスについては、ディスクドライブ停止による消費電力削減の効果が高いことが期待できる。このため、管理サーバ１１０は、当該論理デバイスのアクセス頻度が低いと予想された場合に、ステップ９０３において、ディスクドライブ起動／停止制御が必要であると判定してもよい。
【０１６８】
ステップ９０３において、ディスクドライブ起動／停止制御が必要であると判定された場合、当該論理デバイスをディスクドライブ起動／停止制御可能な物理デバイス又は外部デバイスに割り当てることが望ましい。そうしないと、結局ディスクドライブを停止することができないため、消費電力削減の効果を得ることができないからである。このため、管理サーバ１１０は、ディスクドライブ起動／停止制御可能な物理デバイス又は外部デバイスに対応している全てのプールＶＯＬの残容量、すなわち、拡張ＶＯＬの物理記憶領域として割り当てられていない領域の総容量が所定の規定値以上であるか否かを判定する（ステップ９０４）。なお、ステップ９０４におけるプールＶＯＬの残容量とは、当該論理デバイスが定義された後のプールＶＯＬの残容量の予測値である。
【０１６９】
ステップ９０４において、該当するプールＶＯＬの残容量が規定値以上であると判定された場合、既に定義されているプールＶＯＬに十分な残容量がある。このため、管理サーバ１１０は、既に定義されているプールＶＯＬうちの一つに対応した拡張ＶＯＬを定義し、当該拡張ＶＯＬへ当該論理デバイスを割り当てる旨をストレージ１３０へ指示する（ステップ９０５）。
【０１７０】
一方、ステップ９０４において、該当するプールＶＯＬの残容量が規定値以上でないと判定された場合、ディスクドライブ起動／停止制御可能なデバイス上に既に定義されているプールＶＯＬに十分な残容量がない。この場合、管理サーバ１１０は、ディスクドライブ起動／停止制御可能な物理デバイス又は外部デバイスのうち、論理デバイスにもプールＶＯＬにも割り当てられていないデバイス（以下、空きデバイスと記載する）があるか否かを調査する（ステップ９０６）。
【０１７１】
ステップ９０６において、該当する空きデバイスがあると判定された場合、管理サーバ１１０は、その空きデバイスに新たなプールＶＯＬ及びそのプールＶＯＬに対応する拡張ＶＯＬを定義して、その拡張ＶＯＬに当該論理デバイスを割り当てる旨をストレージ１３０へ指示する（ステップ９０７）。その結果、当該論理デバイスは、新たに定義された一つのプールＶＯＬと対応付けられる。すなわち、一つの論理デバイスは、ディスクドライブ起動／停止制御可能な一つの物理デバイス又は一つの外部デバイスと対応付けられる。
【０１７２】
一方、ステップ９０６において、該当する空きデバイスがないと判定された場合、結局、当該論理デバイスをディスクドライブ起動／停止制御可能な物理デバイス又は外部デバイスに割り当てることができない。この場合、管理サーバ１１０は、ディスクドライブ起動／停止制御不能なプールＶＯＬの残容量が所定の規定値以上であるか否かを判定する（ステップ９０８）。
【０１７３】
ステップ９０８において、該当するプールＶＯＬの残容量が所定の規定値以上であると判定された場合、既に定義されているプールＶＯＬに十分な残容量がある。この場合、管理サーバ１１０は、拡張ＶＯＬがディスクドライブ起動／停止制御不能な複数のプールＶＯＬに分散するように、その拡張ＶＯＬを定義する。言い換えると、定義された拡張ＶＯＬは、ディスクドライブ起動／停止制御不能な複数（望ましくは、全て）のプールＶＯＬに対応する。そして、管理サーバ１１０は、その拡張ＶＯＬに当該論理デバイスを割り当てる旨をストレージ１３０に指示する（ステップ９０９）。ここで、拡張ＶＯＬを全プールＶＯＬに分散させるのは、アクセス性能を向上させるためである。
【０１７４】
一方、ステップ９０８において、該当するプールＶＯＬの残容量が所定の規定値以上でないと判定された場合、既に定義されているプールＶＯＬに十分な残容量がない。この場合、管理サーバ１１０は、空きデバイスを検索し、見つかった空きデバイスにプールＶＯＬ及びそのプールＶＯＬに対応する拡張ＶＯＬを定義し、その拡張ＶＯＬに当該論理デバイスを割り当てる（ステップ９１０）。
【０１７５】
一方、ステップ９０３において、ディスクドライブ起動／停止制御が必要でないと判定された場合、当該論理デバイスをディスクドライブ起動／停止制御不能な物理デバイス又は外部デバイスに割り当てることが望ましい。ディスクドライブ起動／停止制御可能なデバイスを他の論理デバイスに残しておくためである。この場合、管理サーバ１１０は、ステップ９０４から９１０までの手順とは逆に、まず、ディスクドライブ起動／停止制御不能なプールＶＯＬの残容量が所定の規定値以上であるか否かを判定する（ステップ９１８）。
【０１７６】
ステップ９１８において、該当するプールＶＯＬの残容量が所定の規定値以上であると判定された場合、管理サーバ１１０は、ステップ９１９を実行する。ステップ９１８及び９１９の処理は、それぞれ、ステップ９０８及び９０９と同じであるため、説明を省略する。
【０１７７】
一方、ステップ９１８において、該当するプールＶＯＬの残容量が所定の規定値以上でないと判定された場合、管理サーバ１１０は、ディスクドライブ起動／停止制御不能な空きデバイスがあるか否かを調査する（ステップ９２０）。
【０１７８】
ステップ９２０において、該当する空きデバイスがあると判定された場合、管理サーバ１１０は、その一つ以上の空きデバイスに新たな一つ以上のプールＶＯＬ及びそれらのプールＶＯＬに対応する拡張ＶＯＬを定義して、その拡張ＶＯＬに当該論理デバイスを割り当てる旨をストレージ１３０へ指示する（ステップ９２１）。その結果、当該論理デバイスは、新たに定義された一つ以上のプールＶＯＬと対応付けられる。このとき、一つのプールＶＯＬが複数の空きデバイスに対応するように定義され、その一つのプールＶＯＬが一つの拡張ＶＯＬと対応するように定義されてもよい。あるいは、一つのプールＶＯＬが一つの空きデバイスに対応するように定義され、複数のプールＶＯＬが一つの拡張ＶＯＬと対応するように定義されてもよい。
【０１７９】
一方、ステップ９２０において、該当する空きデバイスがないと判定された場合、管理サーバ１１０は、ディスクドライブ起動／停止制御可能な物理デバイス又は外部デバイスに対応している全てのプールＶＯＬの残容量が所定の規定値以上であるか否かを判定する（ステップ９２２）。
【０１８０】
ステップ９２２において、残容量が規定値以上であると判定された場合、管理サーバ１１０は、ステップ９２３を実行する。一方、ステップ９２２において、残容量が規定値以上でないと判定された場合、管理サーバ１１０は、ステップ９２４を実行する。ステップ９２２、９２３及び９２４の処理は、それぞれ、ステップ９０４、９０５及び９１０と同じであるため、説明を省略する。
【０１８１】
以上の処理の結果、当該論理デバイスの割り当て対象がディスクドライブ起動／停止制御可能なプールＶＯＬである場合、拡張ＶＯＬは一つのプールＶＯＬに対応して定義される。一方、当該論理デバイスの割り当て対象がディスクドライブ起動／停止制御不能なプールＶＯＬである場合、拡張ＶＯＬは既に定義されている全プールＶＯＬに対応して定義される。その結果、ディスクドライブ起動／停止制御が必要な場合、一つの論理デバイスのデータを特定のプールＶＯＬに集約することによって、ディスクドライブ起動／停止制御に関るディスクドライブ１３７の数を制限することができる。その結果、ディスクドライブ起動／停止制御が容易になる。
【０１８２】
一方、ディスクドライブ起動／停止制御が不要な場合、一つの論理デバイスのデータを多数のディスクドライブ１３７に分散することによって、アクセス性能を向上させることができる。
【０１８３】
一方、ステップ９０２において、当該論理デバイスを拡張ＶＯＬとして定義しないと判定された場合（すなわち、当該論理デバイスを通常のボリュームとして定義する場合）、管理サーバ１１０は、受信した要求に含まれる情報を参照して、ディスクドライブ起動／停止制御をする必要があるか否かを判定する（ステップ９１２）。この判定は、ステップ９０３と同様に実行される。
【０１８４】
ステップ９１２において、ディスクドライブ起動／停止制御をする必要があると判定された場合、管理サーバ１１０は、ディスクドライブ起動／停止制御可能な空きデバイスがあるか否かを判定する（ステップ９１３）。
【０１８５】
ステップ９１３において、ディスクドライブ起動／停止制御可能な空きデバイスがあると判定された場合、管理サーバ１１０は、その空きデバイスに当該論理デバイスを割り当てる旨をストレージ１３０に指示する（ステップ９１４）。
【０１８６】
一方、ステップ９１３において、ディスクドライブ起動／停止制御可能な空きデバイスがないと判定された場合、管理サーバ１１０は、ストレージ１３０全体から空きデバイスを検索する。そして、発見された空きデバイスに当該論理デバイスを割り当てる旨をストレージ１３０に指示する（ステップ９１７）。
【０１８７】
一方、ステップ９１２において、ディスクドライブ起動／停止制御をする必要がないと判定された場合、管理サーバ１１０は、ディスクドライブ起動／停止制御不能な空きデバイスがあるか否かを判定する（ステップ９１５）。
【０１８８】
ステップ９１５において、ディスクドライブ起動／停止制御不能な空きデバイスがあると判定された場合、管理サーバ１１０は、その空きデバイスに当該論理デバイスを割り当てる旨をストレージ１３０に指示する（ステップ９１６）。
【０１８９】
一方、ステップ９１５において、ディスクドライブ起動／停止制御不能な空きデバイスがないと判定された場合、管理サーバ１１０は、ステップ９１７を実行する。
【０１９０】
ステップ９０５、９０７、９０９、９１０、９１４、９１６、９１７、９１９、９２１、９２３又は９２４が終了すると、管理サーバ１１０は、ユーザ又はアプリケーションプログラムに処理の完了を報告する（ステップ９１１）。以上で処理を終了する。
【０１９１】
図１０は、本発明の実施の形態のストレージ１３０で実行される、デバイス定義処理２２４の一例を示すフローチャートである。
【０１９２】
図１０の説明において、ストレージ１３０が実行する処理は、実際には、デバイス定義処理２２４を実行する制御プロセッサ１３２によって実行される。
【０１９３】
まず、ストレージ１３０は、管理サーバ１１０から論理デバイス定義要求を受信する（ステップ１００１）。この要求は、デバイス定義指示処理２４２（図９）のステップ９０５、９０７、９０９、９１０、９１４、９１６、９１７、９１９、９２１、９２３又は９２４において発行された指示である。受信した要求には、管理サーバ１１０がデバイス定義指示処理２４２のステップ９０１で受信した情報が含まれる。要求の対象の論理デバイス（当該論理デバイス）が通常のボリュームとして定義される場合、受信した要求には、さらに、論理デバイス割り当て対象の物理デバイス番号又は外部デバイス番号が含まれる。当該論理デバイスが拡張ＶＯＬとして定義される場合、受信した要求には、さらに、新規に割り当てる拡張ＶＯＬ番号及びその拡張ＶＯＬの割り当て対象のプールＶＯＬ番号か、又は、新規に割り当てる拡張ＶＯＬ番号及びプールＶＯＬ番号、並びに、そのプールＶＯＬの割り当て対象の物理デバイス番号又は外部デバイス番号等が含まれる。
【０１９４】
次に、ストレージ１３０は、受信した要求に含まれる情報を参照して、当該論理デバイスが拡張ＶＯＬとして定義されるか否かを判定する（ステップ１００２）。例えば、ストレージ１３０が図９のステップ９０５、９０７、９０９、９１０、９１９、９２１、９２３又は９２４の指示を受信した場合、当該論理デバイスが拡張ＶＯＬとして定義されると判定される。一方、ストレージ１３０が図９のステップ９１４、９１６又は９１７の指示を受信した場合、当該論理デバイスが通常のボリュームとして定義されると判定される。
【０１９５】
ステップ１００２において、当該論理デバイスが拡張ＶＯＬとして定義されない（すなわち、当該論理デバイスが通常のボリュームとして定義される）と判定された場合、プールＶＯＬに関する処理を実行する必要がない。この場合、処理はステップ１００６に進む。
【０１９６】
一方、ステップ１００２において、当該論理デバイスが拡張ＶＯＬとして定義されると判定された場合、その拡張ＶＯＬにプールＶＯＬを割り当てる必要がある。このため、ストレージ１３０は、新たなプールＶＯＬを定義する必要があるか否かを判定する（ステップ１００３）。例えば、ストレージ１３０が図９のステップ９０７、９１０、９２１又は９２４の指示を受信した場合、新たなプールＶＯＬを定義する必要があると判定される。一方、ストレージ１３０が図９のステップ９０５、９０９、９１９又は９２３の指示を受信した場合、新たなプールＶＯＬを定義する必要がないと判定される。
【０１９７】
ステップ１００３において、新たなプールＶＯＬを定義する必要がないと判定された場合、処理はステップ１００５に進む。
【０１９８】
一方、ステップ１００３において、新たなプールＶＯＬを定義する必要があると判定された場合、ストレージ１３０は、受信した要求によって指定された物理デバイス又は外部デバイスに対してプールＶＯＬを定義する（ステップ１００４）。
【０１９９】
具体的には、ストレージ１３０は、プールＶＯＬ管理情報２０８（図８）内の指定されたプールＶＯＬ番号に対応する情報エントリについて、割り当て対象の物理デバイス番号又は外部デバイス番号を、物理／外部デバイス番号８０５に設定する。さらに、ストレージ１３０は、プールＶＯＬ管理情報２０８を参照して、サイズ８０２及び対応ディスクドライブ停止可否フラグ８０９を設定する。さらに、ストレージ１３０は、空き容量８０３をサイズ８０２の値に、ＶＯＬ状態８０４を「デタッチ」に、対応拡張ＶＯＬ番号リスト８０８を無効値に、停止フラグ８１０を起動状態を示す「Ｏｎ」に、最終起動／停止時間８１１を現在時刻に、それぞれ初期化する。プールエントリサイズ８０６には、ストレージ１３０で固定の値が設定されてもよいし、ユーザからの論理デバイス割り当て指示によって設定されてもよい。プールエントリ割当状態管理情報８０７は、全エントリが拡張ＶＯＬに未割当となるよう初期化される。
【０２００】
次に、ストレージ１３０は、ステップ１００４において定義されたプールＶＯＬ又は受信した要求によって指定された一つ以上のプールＶＯＬに拡張ＶＯＬを対応させることによって、拡張ＶＯＬを定義する（ステップ１００５）。
【０２０１】
具体的には、ストレージ１３０は、指定された拡張ＶＯＬ番号に対応する拡張ＶＯＬ管理情報２０７の情報エントリと、当該拡張ＶＯＬに対応するプールＶＯＬ（当該プールＶＯＬ）のプールＶＯＬ管理情報２０８の情報エントリについて、対応拡張ＶＯＬ番号リスト８０８に当該拡張ＶＯＬ番号を、ＶＯＬ状態８０４に「アタッチ」をそれぞれ設定する。さらに、ストレージ１３０は、サイズ７０２に当該拡張ＶＯＬに対応させる論理デバイスのサイズを、対応論理デバイス番号７０３に無効値を、ＶＯＬ状態７０４に「デタッチ」を、停止フラグ７０５に「Ｏｎ」を、最終起動／停止時間７０６に現在時刻を、対応プール番号リスト７０７に当該プールＶＯＬ番号を、実領域割当総量に「０」をそれぞれ設定する。プールエントリ対応管理情報７０８は、全エントリが未割当状態となるよう初期化される。
【０２０２】
次に、ストレージ１３０は、当該拡張ＶＯＬに対して当該論理デバイスを定義する（ステップ１００６）。
【０２０３】
具体的には、ストレージ１３０は、対応する論理デバイス管理情報２０１及び拡張ＶＯＬ管理情報２０７において、対応論理デバイス番号７０３に当該論理デバイス番号を、ＶＯＬ状態７０４に「アタッチ」をそれぞれ設定する。さらに、ストレージ１３０は、サイズ３０２及びタイプ３０４に、受信した要求によって指示された内容を、対応下位デバイス番号３０３に当該拡張ＶＯＬ番号を、デバイス状態に「デタッチ」を、エントリ３０６から３０９に無効値を、データ移行中フラグ３１０に「Ｏｆｆ」を、停止フラグ３１１に「Ｏｎ」を、最終起動／停止時間３１２に現在時刻をそれぞれ設定する。
【０２０４】
さらに、ステップ１００６において、ストレージ１３０は、指定されたポート１３１に対してＬＵＮパス定義を実行する。
【０２０５】
具体的には、ストレージ１３０は、対応する論理デバイス管理情報２０１及びＬＵパス管理情報２０２において、エントリ３０６及び３０７に、受信した要求によって指定されたポート情報を設定する。さらに、ストレージ１３０は、エントリ４０２及び４０４に、受信した要求によって指定された接続ホスト１００情報を設定する。さらに、ストレージ１３０は、対応論理デバイス番号４０３に当該論理デバイス番号を設定する。
【０２０６】
次に、ストレージ１３０は、処理完了を管理サーバ１１０へ報告する（ステップ１００７）。
【０２０７】
一方、当該論理デバイスが通常のボリュームとして定義される場合、ストレージ１３０は、指定された空き物理デバイス又は外部デバイスに対して当該論理デバイスを定義し、ＬＵＮパス定義を実行し、処理完了を報告する（ステップ１００２、１００６及び１００７）。具体的には、ストレージ１３０は、対応する論理デバイス管理情報２０１及び物理デバイス管理情報２０２又は外部デバイス管理情報２０３に、必要な情報を設定する。
【０２０８】
なお、空き状態の物理デバイス又は外部デバイスについて、対応するディスクドライブ１３５又は１５６を停止させる場合、ストレージ１３０は、ステップ１００４及び１００６において、プールＶＯＬ又は通常のボリュームの割り当て対象となる空きデバイスが停止状態か否かを判定する。その結果、停止状態ならば、ストレージ１３０は、後述するデバイス起動／停止処理２２２を実行して、その空きデバイスに対応するディスクドライブ１３７又は１５６を起動する必要がある。
【０２０９】
次に、論理デバイスのアタッチ／デタッチ処理及び停止デバイス監視処理について説明する。論理デバイスのアタッチ／デタッチ処理を実行するために、管理サーバ１１０は、デバイス接続切替指示処理２４１を実行し、ストレージ１３０は、デバイス接続切替処理２２１及びデバイス起動／停止処理２２２を実行し、外部ストレージ１５０は、Ｉ／Ｏ処理２６１及び外部デバイス起動／停止処理２６２を実行する。Ｉ／Ｏ処理２６１においては、対応する物理デバイスが停止した論理デバイスへのアクセス抑止が考慮されている。また、停止デバイス監視処理を実行するために、ストレージ１３０は、停止デバイス監視処理２２３及びデバイス移行処理２２５を実行する。
【０２１０】
図１１は、本発明の実施の形態の管理サーバ１１０で実行される、デバイス接続切替要求処理２４１の一例を示すフローチャートである。
【０２１１】
以下の説明において、既に説明した処理と同様の部分については、詳細な説明を省略する。
【０２１２】
図１１の説明において、管理サーバ１１０が実行する処理は、実際には、デバイス接続切替要求処理２４１を実行するＣＰＵ１１１によって実行される。
【０２１３】
管理サーバ１１０は、ＩＰネットワーク１７５及びインタフェース制御部１１６を介して、ユーザ又はアプリケーションプログラムから、ストレージ１３０のある論理デバイス（以下、当該論理デバイスと記載する）に対するアタッチ要求又はデタッチ要求を受信する（ステップ１１０１）。受信した要求には、例えば、接続切替内容（デタッチ又はアタッチ）、デバイス停止判定情報、アクセス元ＨＢＡ特定情報（ＷＷＮ等）、ポート特定情報（ポート１３１のポートＩＤ、ターゲットＩＤ及びＬＵＮのリスト等）、及び、対象デバイス特定情報（ストレージ１３０識別情報及び論理デバイス番号）等が含まれる。
【０２１４】
次に、管理サーバ１１０は、受信した要求の実行可否を判定する（ステップ１１０２）。具体的には、例えば、管理サーバ１１０は、当該論理デバイスに設定されたアクセス権等を参照して、受信した要求が、当該論理デバイスへのアクセスを許可されたユーザ又はホスト１００上のアプリケーションプログラムからのものであることを確認する。
【０２１５】
受信した要求を実行できる場合、管理サーバ１１０は、受信した要求の種類を判定する（ステップ１００３）。具体的には、管理サーバ１１０は、受信した要求の内容が「当該論理デバイスのデタッチ」であるか否かを判定する。
【０２１６】
ステップ１００３において、受信した要求が「当該論理デバイスのデタッチ」であると判定された場合、管理サーバ１１０は、受信した要求に含まれるデバイス停止判定情報等を参照して、当該論理デバイスを停止する必要があるか否かを判定する（ステップ１１０４）。このときのデバイス停止判定情報は、デタッチ要求の中に設けられた停止要否を示すフラグであってもよい。あるいは、当該論理デバイスをデタッチされた状態にしておく予定期間が設定され、この期間が規定値以上の場合に、当該論理デバイスを停止する必要があると判定してもよい。あるいは、予定時間ではなく、デタッチ期間が設定され、デタッチ期間に応じて、デバイス停止要否判定（ステップ１１０４）及びデタッチ期間満了時の自動アタッチ等が制御されてもよい。あるいは、デタッチ対象の論理デバイスに対して予想されるアクセス頻度を示す情報が設定され、アクセス頻度が低いと予想されるデバイスを停止すると判定してもよい。
【０２１７】
例えば、監査に対応するために長期保存されるメールアーカイブデータなど、「一度だけ書き込まれ、次の監査時までほとんど参照されない」ことがわかっているデータを格納したデバイスについては、あらかじめ、前述した「ＷＯＲＦ」等の属性を設定しておく。そして、当該ＷＯＲＦ属性が設定されたデバイスのデタッチが指示された場合、ユーザによる指定の有無に関らず、当該論理デバイスを停止すると判定してもよい。あるいは、停止要否を判定せずに、論理デバイスがデタッチを指示された場合には、無条件に停止すると判定してもよい。
【０２１８】
ただし、ディスクドライブ１３７は一般に停止回数の上限が決められており、この上限を越える停止処理の操作は故障につながる。このため、各ディスクドライブ１３７毎に停止回数を管理し、高頻度の停止を抑制することが望ましい。なお、ストレージ１３０が停止回数を管理してもよい。言い換えれば、特定のディスクドライブ１３７を一定の期間内に規定回数以上起動／停止させる結果となる論理デバイスのアタッチ／デタッチ指示又は起動／停止指示を発行しないように、管理サーバ１１０が制御してもよい。あるいは、管理サーバ１１０が無条件にアタッチ／デタッチ指示等を発行し、その指示を受信したストレージ１３０が規定回数超過を検出し、その指示を拒否又は無視してもよい。
【０２１９】
次に、管理サーバ１１０は、ストレージ１３０に対して当該論理デバイスのアタッチ又はデタッチの要求を送信し（ステップ１１０５）、ストレージ１３０から完了報告を受信した後に、ユーザ又はアプリケーションプログラムに対して処理完了を報告する（ステップ１１０６）。
【０２２０】
図１２は、本発明の実施の形態のストレージ１３０で実行される、デバイス接続切替処理２２１の一例を示すフローチャートである。
【０２２１】
図１２の説明において、ストレージ１３０が実行する処理は、実際には、デバイス接続切替処理２２１を実行する制御プロセッサ１３２によって実行される。
【０２２２】
ストレージ１３０は、管理サーバ１１０からＩＰネットワーク１７５、管理端末１４０及びインタフェース制御部１３８を介して、論理デバイスの接続切替要求を受信する（ステップ１２０１）。ここで受信する接続切替要求は、アタッチ要求又はデタッチ要求のいずれかである。受信した要求には、ステップ１１０１で管理サーバ１１０が受信する切替要求とほぼ同じ情報が含まれる。ただし、ステップ１２０１で受信した要求には、デバイス停止要否判定情報の代わりに、管理サーバ１１０での判定結果である、デバイス停止要否フラグが含まれる。
【０２２３】
次に、ストレージ１３０は、受信した要求の対象の論理デバイス（当該論理デバイス）へのアクセス権情報等を参照して、受信した要求を実行できるか否かを判定する。当該要求を実行できない場合、ストレージ１３０は、管理サーバ１１０へその旨を通知し、処理を終了する。当該要求を実行できる場合、ストレージ１３０は、受信した要求の種類を判定する（ステップ１２０２）。具体的には、受信した要求がデタッチ要求であるかアタッチ要求であるかが判定される。
【０２２４】
ステップ１２０２において、要求がデタッチ要求であると判定された場合、ストレージ１３０は、まず当該論理デバイスに設定されているＬＵパス定義を解除する（ステップ１２０３）。具体的には、ストレージ１３０は、論理デバイス管理情報２０１の当該論理デバイスに対応する領域において、エントリ３０６及び３０７の内容を消去し、デバイス状態３０５をデタッチド状態に変更し、ＬＵパス定義情報２０２の当該論理デバイスに対応するポート番号、ターゲットＩＤ及びＬＵＮが格納された領域のエントリ４０３及び４０４の内容を消去する。
【０２２５】
次に、ストレージ１３０は、管理サーバ１１０から受信した要求で当該論理デバイスの停止を指示されているか否かを判定する（ステップ１２０４）。
【０２２６】
ステップ１２０４において、当該論理デバイスの停止を指示されていないと判定された場合、ストレージ１３０は、管理サーバ１１０へ処理の完了を報告し（ステップ１２１２）、処理を終了する。
【０２２７】
一方、ステップ１２０４において、当該論理デバイスの停止を指示されたと判定された場合、ストレージ１３０は、当該論理デバイスを停止状態に変更する（ステップ１２０５）。具体的には、ストレージ１３０は、論理デバイス管理情報２０１の停止フラグ３０６を「Ｏｆｆ」に設定する。
【０２２８】
次に、ストレージ１３０は、対応ディスクドライブ停止可否フラグ５１０、６１１又は８０９を参照して、当該論理デバイスが対応する物理デバイス、外部デバイス又はプールＶＯＬに対応するディスクドライブ１３７等が起動／停止制御可能か否かを判定する（ステップ１２０６）。ここで、プールＶＯＬに対応するディスクドライブ１３７等が起動／停止制御可能であるとは、プールＶＯＬに対応する物理デバイスを構成するディスクドライブ１３７が起動／停止制御可能であること、又は、プールＶＯＬに対応する外部デバイスを構成するディスクドライブ１５７が起動／停止制御可能であることを意味する。
【０２２９】
ステップ１２０６において、起動／停止制御可能であると判定された場合、ストレージ１３０は、当該論理デバイスが拡張ＶＯＬに対応しているか否か（言い換えると、当該論理デバイスが拡張ＶＯＬを介してプールＶＯＬと対応しているか否か）を判定する（ステップ１２０７）。具体的には、ストレージ１３０は、当該論理デバイスに関する対応下位デバイス番号３０３を参照して上記の判定をする。
【０２３０】
ステップ１２０７において、当該論理デバイスが拡張ＶＯＬに対応していると判定された場合、その拡張ＶＯＬを停止状態に設定する（ステップ１２０８）。
【０２３１】
次に、ストレージ１３０は、その拡張ＶＯＬに関する対応プール番号リスト７０７を参照して、その拡張ＶＯＬに対応するプールＶＯＬを特定する。そして、ストレージ１３０は、そのプールＶＯＬに対応する全拡張ＶＯＬが停止状態であり、かつ、そのプールＶＯＬの残容量を利用停止とすることができるか否かを判定する（ステップ１２０９）。ここで、「プールＶＯＬに対応する全拡張ＶＯＬが停止状態である」とは、それらの拡張ＶＯＬに対応する全ての論理デバイスが停止状態であることを意味する。また、「そのプールＶＯＬの残容量を利用停止とすることができる」とは、そのプールＶＯＬの残容量を利用することができなくなっても、起動している残りのプールＶＯＬを利用することによって他の拡張ＶＯＬの運用を維持することができることを意味する。
【０２３２】
ステップ１２０９において、そのプールＶＯＬに対応する全拡張ＶＯＬが停止状態であり、かつ、そのプールＶＯＬの残容量を利用停止とすることができると判定された場合、そのプールＶＯＬを停止することができる。言い換えると、そのプールＶＯＬに対応するディスクドライブ１３７を停止することができる。この場合、ストレージ１３０は、そのプールＶＯＬを停止状態に設定する（ステップ１２１０）。
【０２３３】
次に、ストレージ１３０は、デバイス起動／停止処理２２２を呼び出して、対応する物理デバイス又は外部デバイスを停止する（ステップ１２１１）。
【０２３４】
一方、ステップ１２０７において、当該論理デバイスが拡張ＶＯＬではなく、通常のボリュームに対応していると判定された場合、ストレージ１３０は、当該論理デバイスに関する対応下位デバイス番号３０３を参照して、当該論理デバイスが対応する物理デバイス又は外部デバイスを特定する。そして、ストレージ１３０は、特定された物理デバイス又は外部デバイスに対応する全ての論理デバイスが停止状態であるか否かを判定する（ステップ１２１３）。
【０２３５】
ステップ１２１３において、当該論理デバイスが対応する物理デバイス又は外部デバイスに対応する全ての論理デバイスが停止状態であると判定された場合、その物理デバイス又は外部デバイスを停止することができる。言い換えると、その物理デバイス又は外部デバイスに対応するディスクドライブ１３７を停止することができる。この場合、ストレージ１３０は、その物理デバイス又は外部デバイスを停止する（ステップ１２１１）。
【０２３６】
一方、ステップ１２０９において、プールＶＯＬを停止することができない場合、ステップ１２１３において、物理デバイス又は外部デバイスを停止することができない場合、及び、ステップ１２０６において、当該論理デバイスが対応する物理デバイス、外部デバイス又はプールＶＯＬに対応するディスクドライブ１３７が起動／停止制御不能であると判定された場合、ディスクドライブ１３７を停止することができない。しかし、これらの場合、デタッチ対象の当該論理デバイスを別の物理デバイス等に移行することによって、ディスクドライブ１３７を停止することができる場合がある。
【０２３７】
このため、ストレージ１３０は、当該論理デバイスを別の物理デバイス、外部デバイス又はプールＶＯＬへ移行すべく、移行先となるディスクドライブ起動／停止制御可能な空きデバイス又は空きプールＶＯＬを検索し、該当する空きデバイス又は空きプールＶＯＬがあるか否かを判定する（ステップ１２１４）。ステップ１２１４において実行される処理については、後で図１８を参照して詳細に説明する。
【０２３８】
ステップ１２１４において、該当する空きデバイス等があると判定された場合、ストレージ１３０は、当該論理デバイスのデバイス移行処理を登録する（ステップ１２１５）。具体的には、移行元論理デバイス番号、及び、移行先物理デバイス番号又は移行先外部デバイス番号等を含む登録情報が制御メモリ１３５に格納される。格納された登録情報は、後述するデバイス移行処理２２５によって周期的にチェックされる。そして、登録情報が格納されている場合、デバイス移行処理２２５がデバイスを移行する。
【０２３９】
一方、ステップ１２０２において、管理サーバ１１０から受信した要求がアタッチ要求であると判定された場合、ストレージ１３０は、当該論理デバイスに対応する物理デバイス、外部デバイス又はプールＶＯＬを特定する。そして、ストレージ１３０は、物理デバイス管理情報２０３、外部デバイス管理情報２０４又はプールＶＯＬ管理情報２０８を参照して、特定された物理デバイス、外部デバイス又はプールＶＯＬが停止しているか否かを判定する（ステップ１２１６）。
【０２４０】
ステップ１２１６において、特定された物理デバイス等が停止していると判定された場合、ストレージ１３０は、デバイス起動／停止処理２２２を呼び出して、特定された物理デバイス、特定された外部デバイス、又は、特定されたプールＶＯＬに対応する物理デバイス若しくは外部デバイスを起動する（ステップ１２１７）。
【０２４１】
次に、ストレージ１３０は、必要ならば、対応する拡張ＶＯＬ及びプールＶＯＬを起動状態とし、当該論理デバイスを起動状態とする。具体的には、ストレージ１３０は、各管理情報の停止フラグを「Ｏｎ」に設定する（ステップ１２１８）。
【０２４２】
次に、ストレージ１３０は、ＬＵパスを定義する（ステップ１２１９）。具体的には、ストレージ１３０は、論理デバイス管理情報２０１の当該論理デバイスに対応する領域のエントリ３０７に、受信した要求によって指定されたポート特定情報を設定し、デバイス状態３０５をアタッチド状態に変更する。さらに、ストレージ１３０は、ＬＵパス定義情報２０２のうち、対象のポート、ターゲットＩＤ及びＬＵＮに対応する領域のエントリ４０３及び４０４に、それぞれ、当該論理デバイス番号及びアクセス元ＨＢＡ識別情報を設定する。
【０２４３】
図１３は、本発明の実施の形態のストレージ１３０で実行される、デバイス起動／停止処理２２２の一例を示すフローチャートである。
【０２４４】
図１３の説明において、ストレージ１３０が実行する処理は、実際には、デバイス起動／停止処理２２２を実行する制御プロセッサ１３２によって実行される。
【０２４５】
ストレージ１３０は、デバイス接続切替処理２２１等から論理デバイスの起動要求又は停止要求を受信する（ステップ１３０１）。受信した要求には、例えば、要求内容識別情報（起動／停止）及び対象デバイス特定情報（物理デバイス番号、又は外部デバイス番号）等が含まれる。
【０２４６】
次に、ストレージ１３０は、受信した要求の処理対象デバイスがディスクドライブ起動／停止制御可能であるか否かを判定する（ステップ１３０２）。
【０２４７】
ステップ１３０２において、ディスクドライブ起動／停止制御不能であると判定された場合、処理対象の物理デバイス等に対応するディスクドライブ１３７を起動又は停止する制御をすることができない。この場合、ストレージ１３０は、ディスクドライブ１３７の起動又は停止のいずれも実行せずに、要求された処理の完了を要求元に報告する（ステップ１３０７）。
【０２４８】
一方、ステップ１３０２において、ディスクドライブ起動／停止制御可能であると判定された場合、ストレージ１３０は、受信した要求の処理対象が物理デバイスであるか外部デバイスであるかを判定する（ステップ１３０３）。
【０２４９】
ステップ１３０３において、処理対象が物理デバイスであると判定された場合、ストレージ１３０は、受信した要求が起動要求であるか停止要求であるかを判定する（ステップ１３０４）。
【０２５０】
ステップ１３０４において、受信した要求が起動要求であると判定された場合、ストレージ１３０は、要求の対象の物理デバイスに対応するディスクドライブ１３７を起動し（ステップ１３０５）、その物理デバイスを起動状態に変更する（ステップ１３０６）。
【０２５１】
具体的には、制御プロセッサ１３２がディスクドライブ１３７に対してディスク回転開始を指示するコマンドを送信する。ディスクドライブ１３７内のコントローラ（図示省略）は、そのコマンドに従ってディスクの回転を開始させた後、処理の完了を制御プロセッサ１３２へ報告する。制御プロセッサ１３２は、ディスクドライブ１３７からの処理完了報告を確認して、そのディスクドライブ１３７への入出力が実行できる状態に変更する。そして、制御プロセッサ１３２は、要求の対象の物理デバイスに対応する物理デバイス管理情報２０３の停止フラグ５０５を「Ｏｎ」に設定する。
【０２５２】
一方、ステップ１３０４において、受信した要求が停止要求であると判定された場合、ストレージ１３０は、要求の対象の物理デバイスに対応するディスクドライブ１３７を停止し（ステップ１３０８）、その物理デバイスを停止状態に変更する（ステップ１３０９）。
【０２５３】
具体的には、制御プロセッサ１３２がディスクドライブ１３７に対してディスク回転停止を指示するコマンドを送信する。ディスクドライブ１３７内のコントローラは、そのコマンドに従ってディスクの回転を停止させた後、処理の完了を制御プロセッサ１３２へ報告する。制御プロセッサ１３２は、ディスクドライブ１３７からの処理完了報告を確認する。そして、制御プロセッサ１３２は、物理デバイス管理情報２０３の停止フラグ５０５を「Ｏｆｆ」に、最終停止時間５０６を当該停止処理実行時刻に、それぞれ設定する。
【０２５４】
一方、ステップ１３０３において、処理対象が外部デバイスであると判定された場合、ストレージ１３０は、要求の対象の外部ストレージ１５０に対して外部デバイスの起動又は停止を指示するコマンドを送信する（ステップ１３１０）。
【０２５５】
ストレージ１３０は、外部ストレージ１５０からの当該処理完了報告を受信した後、外部デバイスを起動状態又は停止状態に変更するために外部デバイス管理情報２０５を更新する（ステップ１３１１）。
【０２５６】
ストレージ１３０は、ステップ１３０６、１３０９又は１３１１が終了すると、要求された処理の完了を要求元に報告し（ステップ１３０７）、デバイス起動／停止処理２２２を終了する。
【０２５７】
なお、上記のディスクドライブ１３７へディスク回転開始又は停止を指示するコマンドは、例えば、ＳＣＳＩプロトコルのＳＴＡＲＴ  ＳＴＯＰ  ＵＮＩＴ  コマンドである。
【０２５８】
図１４は、本発明の実施の形態のストレージ１３０で実行される、停止デバイス監視処理２２３の一例を示すフローチャートである。
【０２５９】
停止デバイス監視処理２２３は、停止中の物理デバイス等が正常に動作するか否か（すなわち、それらの物理デバイス等に障害が発生していないか否か）を監視する処理である。
【０２６０】
図１４の説明において、ストレージ１３０が実行する処理は、実際には、停止デバイス監視処理２２３を実行する制御プロセッサ１３２によって実行される。
【０２６１】
まず、ストレージ１３０は、先頭の物理デバイス又は外部デバイスを処理対象に設定する（ステップ１４０１）。
【０２６２】
次に、ストレージ１３０は、処理対象の物理デバイス又は外部デバイスがディスクドライブ起動／停止制御可能か否かを判定する（ステップ１４０２）。
【０２６３】
ステップ１４０２において、処理対象の物理デバイス又は外部デバイスがディスクドライブ起動／停止制御可能であると判定された場合、ストレージ１３０は、処理対象の物理デバイス又は外部デバイスが停止中である（すなわち、停止フラグ５０５又は６０５が「Ｏｆｆ」である）か否かを判定する（ステップ１４０３）。
【０２６４】
ステップ１４０３において、処理対象の物理デバイス又は外部デバイスが停止中であると判定された場合、ストレージ１３０は、その物理デバイス又は外部デバイスを動作チェック処理対象とする。そして、ストレージ１３０は、動作チェック処理対象の物理デバイス又は外部デバイスを起動する（ステップ１４０４）。
【０２６５】
次に、ストレージ１３０は、ステップ１４０４の起動に成功したか否かを判定する（ステップ１４０５）。
【０２６６】
ステップ１４０５において起動に成功したと判定された場合、ストレージ１３０は、動作チェック処理対象の物理デバイス又は外部デバイスに対してテストＩ／Ｏを実行する（ステップ１４０６）。テストＩ／Ｏとは、物理デバイス等が正常に動作しているか否かを確認するために実行されるＩ／Ｏである。テストＩ／Ｏの内容は、センス情報参照等の診断系コマンド送信、又は、ユーザデータ自体のリードアクセスであってもよい。あるいは、空きデバイス又はデバイス内の空き領域に対するリード／ライトアクセスであってもよい。
【０２６７】
次に、ストレージ１３０は、ステップ１４０６のテストＩ／Ｏに成功したか否かを判定する（ステップ１４０７）。
【０２６８】
ステップ１４０７においてテストＩ／Ｏに成功したと判定された場合、ストレージ１３０は、起動した物理デバイス又は外部デバイスを停止する（ステップ１４０８）。
【０２６９】
次に、ストレージ１３０は、ステップ１４０８の停止に成功したか否かを判定する（ステップ１４０９）。
【０２７０】
ステップ１４０９において停止に成功したと判定された場合、動作チェック処理対象の物理デバイス又は外部デバイスは、正常に動作する。この場合、ストレージ１３０は、全ての物理デバイス及び外部デバイスについて処理が終了したか否かを判定する（ステップ１４１０）。
【０２７１】
ステップ１４１０において、全ての物理デバイス及び外部デバイスについて処理が終了していないと判定された場合、次の物理デバイス又は外部デバイスを処理対象に設定して（ステップ１４１１）、ステップ１４０２に戻る。
【０２７２】
一方、ステップ１４０５において起動に失敗したと判定された場合、ステップ１４０７においてテストＩ／Ｏに失敗したと判定された場合、及び、ステップ１４０９において停止に失敗したと判定された場合、動作チェック処理対象の物理デバイス又は外部デバイスは、障害が発生したために正常に動作しない。この場合、ストレージ１３０は、動作チェック処理対象の物理デバイス又は外部デバイスがブロックド状態であることを登録し（ステップ１４１２）、管理サーバ１１０へそのデバイスについてのエラー報告を送信する（ステップ１４１３）。その後、処理はステップ１４１０に進む。
【０２７３】
一方、ステップ１４０２において、処理対象の物理デバイス又は外部デバイスがディスクドライブ起動／停止制御不能であると判定された場合、及び、ステップ１４０３において、処理対象の物理デバイス又は外部デバイスが停止中でない（すなわち起動中である）と判定された場合、ストレージ１３０は、処理対象のデバイスに対応する一つ以上の論理デバイス（対応論理デバイス）の中に停止中のものがあるか否かを判定する（ステップ１４１４）。
【０２７４】
ステップ１４１４において、対応論理デバイスの中に停止中のものがあると判定された場合、ストレージ１３０は、その停止中の論理デバイスについて停止要否を再判定する（ステップ１４１５）。この再判定は、管理サーバ１１０のデバイス接続切替要求処理２４１中のステップ１１０４と同様の方法で実行されてもよい。
【０２７５】
ステップ１４１５において、停止中の論理デバイスが依然として停止要であると判定された場合、ストレージ１３０は、停止中の論理デバイスの移行先となる、ディスクドライブ起動／停止制御可能な空き物理デバイス、外部デバイス若しくはプールＶＯＬ、又は、入れ替え可能な論理デバイスを検索する。そして、ストレージ１３０は、該当する空きデバイス、プールＶＯＬ又は論理デバイスがあるか否かを判定する（ステップ１４１６）。ステップ１４１６において実行される処理については、後で図１８を参照して詳細に説明する。
【０２７６】
ステップ１４１６において、該当するデバイスが存在すると判定された場合、ストレージ１３０は、ステップ１２１５と同様に、当該論理デバイスの移行要求を登録する（ステップ１４１７）。ステップ１４１７の処理は、デバイス接続切替処理２２１のステップ１２１５と同様である（図１２参照）。
【０２７７】
一方、ステップ１４１４において対応論理デバイスの中に停止中のものがないと判定された場合、ステップ１４１５において停止中の論理デバイスが停止要でないと判定された場合、及び、ステップ１４１６において、該当するデバイスが存在すると判定された場合、ストレージ１３０は、処理対象の物理デバイス又は外部デバイスの処理をあきらめ、ステップ１４１０に進む。
【０２７８】
ステップ１４１０において、全ての物理デバイス及び外部デバイスについて処理が終了していないと判定された場合、停止デバイス監視処理２２３を終了する。
【０２７９】
なお、図１２のステップ１２１４及び図１４のステップ１４１６では、停止状態にある特定の論理デバイスに対して、当該論理デバイスが属する物理デバイス、外部デバイス又はプールＶＯＬに対応するディスクドライブ１３７等を停止することができない。このため、ストレージ１３０は、当該論理デバイスを他の物理デバイス、外部デバイス又はプールＶＯＬの空き領域へ移行することができるか、あるいは、当該論理デバイスを他の論理デバイスと入れ替えることができるかを判定する。この判定処理の一例を、図１８を参照して説明する。
【０２８０】
図１８は、本発明の実施の形態のストレージ１３０で実行される、デバイス移行判定処理の一例を示すフローチャートである。
【０２８１】
図１８の説明において、ストレージ１３０が実行する処理は、実際には、制御プロセッサ１３２によって実行される。
【０２８２】
ストレージ１３０は、最初に、当該論理デバイスが拡張ＶＯＬに対応しているか否かを判定する（ステップ１８０１）。
【０２８３】
ステップ１８０１において、当該論理デバイスが拡張ＶＯＬに対応していると判定された場合、ストレージ１３０は、ディスクドライブ起動／停止制御可能なプールＶＯＬの容量の総量が規定値以上であるか否かを判定する（ステップ１８０２）。
【０２８４】
ステップ１８０２において、プールＶＯＬの容量の総量が規定値以上であると判定された場合、ストレージ１３０は、既に定義されているプールＶＯＬの一つを移行対象として決定する（ステップ１８０３）。
【０２８５】
一方、ステップ１８０２において、プールＶＯＬの容量の総量が規定値未満であると判定された場合、ストレージ１３０は、ディスクドライブ起動／停止制御可能なプールＶＯＬの中に、当該論理デバイスと入れ替え可能な第二の論理デバイスがあるか否かを判定する（ステップ１８０４）。
【０２８６】
ステップ１８０４において、当該論理デバイスと入れ替え可能な第二の論理デバイスがあると判定された場合、第二の論理デバイスを当該論理デバイスの入れ替え対象として決定する（ステップ１８０５）。
【０２８７】
一方、ステップ１８０４において、当該論理デバイスと入れ替え可能な第二の論理デバイスがないと判定された場合、ストレージ１３０は、ディスクドライブ起動／停止制御可能な空き物理デバイス又は外部デバイスがあるか否かを判定する（ステップ１８０６）。
【０２８８】
ステップ１８０６において、ディスクドライブ起動／停止制御可能な空き物理デバイス又は外部デバイスがあると判定された場合、ストレージ１３０は、その物理デバイス又は外部デバイスに新たにプールＶＯＬを定義する。さらに、ストレージ１３０は、定義されたプールＶＯＬを当該論理デバイスの移行先として決定する（ステップ１８０７）。
【０２８９】
一方、ステップ１８０６において、ディスクドライブ起動／停止制御可能な空き物理デバイス又は外部デバイスのいずれもないと判定された場合、ストレージ１３０は、当該論理デバイスの移行処理を断念する（ステップ１８０８）。
【０２９０】
一方、ステップ１８０１において、当該論理デバイスが拡張ＶＯＬに対応していない（すなわち、当該論理デバイスが通常のボリュームに対応している）と判定された場合、ストレージ１３０は、ディスクドライブ起動／停止制御可能な空き物理デバイス又は外部デバイスがあるか否かを判定する（ステップ１８０９）。
【０２９１】
ステップ１８０９において、ディスクドライブ起動／停止制御可能な空き物理デバイス等があると判定された場合、ストレージ１３０は、そのデバイスを移行対象として決定する（ステップ１８１０）。
【０２９２】
一方、ステップ１８０９において、ディスクドライブ起動／停止制御可能な空き物理デバイス等がないと判定された場合、ストレージ１３０は、ディスクドライブ起動／停止制御可能な物理デバイス又は外部デバイスに、当該論理デバイスと入れ替え可能な第二の論理デバイスがあるか否かを判定する（ステップ１８１１）。
【０２９３】
ステップ１８１１において、該当する第二の論理デバイスがあると判定された場合、ストレージ１３０は、その第二の論理デバイスを当該論理デバイスとの入れ替え対象として決定する（ステップ１８１２）。
【０２９４】
一方、ステップ１８１１において、該当する第二の論理デバイスがないと判定された場合、ストレージ１３０は、当該論理デバイスの移行処理を断念する（ステップ１８１３）。
【０２９５】
ストレージ１３０は、ステップ１８０３、１８０５、１８０７、１８０８、１８１０、１８１２又は１８１３を実行すると、デバイス移行判定処理を終了する。
【０２９６】
図１５は、本発明の実施の形態の外部ストレージ１５０で実行される、Ｉ／Ｏ処理２６１の一例を示すフローチャートである。
【０２９７】
図１５の説明において、外部ストレージ１５０が実行する処理は、実際には、Ｉ／Ｏ処理２６１を実行する制御プロセッサ１５２によって実行される。
【０２９８】
本実施の形態では、ストレージ１３０の外部デバイスとして管理されている外部ストレージ１５０の論理デバイスは、ポート１５１のＬＵパス定義を維持したまま、対応する物理デバイスを停止させる。このとき、当該外部デバイスに対するストレージ１３０からの入出力要求は、原則として抑止されるはずである。しかし、安全のため、外部ストレージ１５０もＩ／Ｏ処理の対象の論理デバイスが停止状態か否かを判定する。
【０２９９】
具体的には、外部ストレージ１５０は、Ｉ／Ｏ要求を受信すると（ステップ１５０１）、受信したＩ／Ｏ要求の対象の論理デバイスが停止状態であるか否かを判定する（ステップ１５０２）。
【０３００】
ステップ１５０２において、論理デバイスが停止状態でないと判定された場合、要求されたＩ／Ｏ処理を実行することができる。このため、外部ストレージ１５０は、要求されたＩ／Ｏ処理を実行して（ステップ１５０３）、ストレージ１３０に完了報告を送信する（ステップ１５０４）。
【０３０１】
一方、ステップ１５０２において、論理デバイスが停止状態であると判定された場合、処理不可を示すため、外部ストレージ１５０はストレージ１３０に対してエラー報告をする。具体的には、外部ストレージ１５０は、終了ステータスを「エラー」に設定し（ステップ１５０５）、要求されたＩ／Ｏ処理を実行せずにストレージ１３０に完了報告を送信する（ステップ１５０４）。なお、外部ストレージ１５０は、エラーを報告せずに、当該デバイスがビジーであると報告してもよい。
【０３０２】
以上で、Ｉ／Ｏ処理２６１を終了する。
【０３０３】
図１６は、本発明の実施の形態の外部ストレージ１５０で実行される、外部デバイス起動／停止処理２６２の一例を示すフローチャートである。
【０３０４】
図１６の説明において、外部ストレージ１５０が実行する処理は、実際には、外部デバイス起動／停止処理２６２を実行する制御プロセッサ１５２によって実行される。
【０３０５】
外部ストレージ１５０は、ストレージ１３０から、ファイバチャネルスイッチ１２０及びポート１５１を介して、外部デバイスに対応する外部ストレージ１５０内の論理デバイスに対する起動／停止要求コマンドを受信する（ステップ１６０１）。受信した要求には、要求内容識別情報（起動又は停止）、対象デバイス特定情報（ストレージ１５０識別情報及び論理デバイス番号）、要求元ストレージ１３０識別情報（ポート１３１のＷＷＮ等）等を含む。本実施の形態では、この要求はＳＣＳＩプロトコルに従って送信される。
【０３０６】
この要求は、ＳＣＳＩの診断系コマンドのパラメタを拡張することによって送信されてもよいし、外部ストレージ１５０とストレージ１３０との間のみで通じる専用のＳＣＳＩコマンドを追加し、このＳＣＳＩコマンドを使用して送信されてもよい。あるいは、外部ストレージ１５０内の特定の論理デバイスを制御コマンド送受信用のものと定義しておき、その制御コマンド送受信用デバイスへデータをリード及びライトすることによって、外部ストレージ１５０及びストレージ１３０がデータを授受してもよい。
【０３０７】
次に、外部ストレージ１５０は、要求対象の論理デバイスについて要求された処理を実行できるか否かを判定し、実行不可であればその旨をストレージ１３０へ報告する（ステップ１６０２）。
【０３０８】
次に、外部ストレージ１５０は、受信した要求が起動要求であるか停止要求であるかを判定する（ステップ１６０３）。
【０３０９】
ステップ１６０３において、受信した要求が論理デバイスの起動要求であると判定された場合、外部ストレージ１５０は、要求の対象の論理デバイス（当該論理デバイス）に対応する物理デバイスが停止しているか否かを判定する（ステップ１６０４）。
【０３１０】
ステップ１６０４において、対応する物理デバイスが停止していると判定された場合、外部ストレージ１５０は、その物理デバイスに対応するディスクドライブ１５６を起動し（ステップ１６０５）、その物理デバイスを起動状態に変更する（ステップ１６０６）。
【０３１１】
次に、外部ストレージ１５０は、当該論理デバイスを起動状態に変更する（ステップ１６０７）。ここで、ディスクドライブ１５６の起動は、ディスク回転開始を指示するコマンドを送信し、ディスク回転を開始したディスクドライブ１５６からの完了報告を確認することによって実現される。
【０３１２】
一方、ステップ１６０４において、対応する物理デバイスが停止していない（すなわち、起動している）と判定された場合、外部ストレージ１５０は、ステップ１６０５及び１６０６を実行せずに、ステップ１６０７を実行する。
【０３１３】
次に、外部ストレージ１５０は、処理完了をストレージ１３０に報告する（ステップ１６０８）。
【０３１４】
一方、ステップ１６０３において、受信した要求が当該論理デバイスの停止要求であると判定された場合、外部ストレージ１５０は、まず当該論理デバイスを停止状態にする（ステップ１６０９）。
【０３１５】
次に、外部ストレージ１５０は、当該論理デバイスに対応する物理デバイスに対応する全ての論理デバイスが停止状態にあるか否かを判定する（ステップ１６１０）。
【０３１６】
ステップ１６１０において、対応する全ての論理デバイスが停止状態にあると判定された場合、当該論理デバイスに対応する物理デバイスに対応するディスクドライブ１５６を停止し（ステップ１６１１）、その物理デバイスを停止状態に変更する（ステップ１６１２）。ここで、ディスクドライブ１５６の停止は、ディスク回転停止を指示するコマンドを送信し、ディスク回転を停止したディスクドライブ１５６からの完了報告を確認することによって実現される。
【０３１７】
次に外部ストレージ１５０は、ステップ１６０８を実行する。
【０３１８】
一方、ステップ１６１０において、対応する全ての論理デバイスが停止状態にない（すなわち、少なくとも一つの論理デバイスが起動状態である）と判定された場合、ディスクドライブ１５６を停止することができない。この場合、外部ストレージ１５０は、ステップ１６１１及び１６１２を実行せずに、ステップ１６０８を実行する。
【０３１９】
外部ストレージ１５０は、ステップ１６０８を実行すると、外部デバイス起動／停止処理２６２を終了する。
【０３２０】
図１７は、本発明の実施の形態のストレージ１３０で実行される、デバイス移行処理２２５の一例を示すフローチャートである。
【０３２１】
図１７の説明において、ストレージ１３０が実行する処理は、実際には、デバイス移行処理２２５を実行する制御プロセッサ１３２によって実行される。
【０３２２】
ストレージ１３０は、周期的にデバイス移行処理２２５を実行し、デバイス移行要求が登録されているか否かを判定する（ステップ１７０１）。先述の通り、デバイス接続切替処理２２１及び停止デバイス監視処理２２３において、停止状態にある論理デバイスに対応する物理デバイス、外部デバイス又はプールＶＯＬを停止できない場合に、デバイス判定処理が実行される（図１２のステップ１２１４及び図１４のステップ１４１６参照）。デバイス判定処理の一例は、図１８に示す通りである。その結果、移行対象となる空き領域又は入替対象となる別の論理デバイスが見つかった場合、デバイス移行要求が登録される（図１２のステップ１２１５及び図１４のステップ１４１７参照）。
【０３２３】
ステップ１７０１において、デバイス移行要求が登録されていないと判定された場合、何も実行せずにデバイス移行処理２２５を終了する。
【０３２４】
一方、ステップ１７０１において、デバイス移行要求が登録されていると判定された場合、ストレージ１３０は、移行要求の対象の論理デバイス（当該論理デバイス）が拡張ＶＯＬに対応しているか否かを判定する（ステップ１７０２）。
【０３２５】
ステップ１７０２において、当該論理デバイスが拡張ＶＯＬに対応していない（すなわち、当該論理デバイスが通常のボリュームである）と判定された場合、ストレージ１３０は、当該論理デバイスを空きデバイスへ移行することを要求されているか否かを判定する（ステップ１７０３）。
【０３２６】
ステップ１７０３において、空きデバイスへの移行を要求されていると判定された場合、ストレージ１３０は、移行元の当該論理デバイスのデータを先頭アドレスから順次移行先物理デバイス又は外部デバイスへ移行する（ステップ１７０６）。そして、全領域のデータ移行が完了したら、ストレージ１３０は、移行元の当該論理デバイスを移行先の空き物理デバイス又は外部デバイスへ対応付けるように、デバイス管理情報を更新する（ステップ１７０７）。具体的には、当該論理デバイスに関する論理デバイス管理情報２０１の対応下位デバイス番号３０３に、移行先の物理デバイス、外部デバイス又はプールＶＯＬの番号を登録する。また、移行先のデバイスの対応上位デバイス番号５０３又は６０３に、当該論理ボリュームの番号又は移行先のプールＶＯＬ番号を登録する。なお、このとき、移行先の空きデバイスが停止状態であれば、先述したデバイス起動／停止処理２２２を実行して、移行先の空きデバイスを起動する必要がある。
【０３２７】
一方、ステップ１７０３において、空きデバイスへの移行を要求されていない（すなわち、当該論理デバイスと別の論理デバイスとの入替を要求されている）と判定された場合、ストレージ１３０は、移行元及び移行先の論理デバイスのデータを先頭アドレスから順次読み出し、そのデータをディスクキャッシュ等の別の記憶装置に順次書き込み、移行元の当該論理デバイスのデータを移行先の論理デバイスへ、移行先の論理デバイスのデータを移行元の当該論理デバイスへ書き込む（ステップ１７０４）。当該論理デバイス全領域についてデータの入替が完了したら、移行元の当該論理デバイスと移行先の論理デバイスについて、それぞれが対応する物理デバイス又は外部デバイスとの対応関係を入れ替えるよう、デバイス管理情報を更新する（ステップ１７０５）。
【０３２８】
一方、ステップ１７０２において、当該論理デバイスが拡張ＶＯＬに対応していると判定された場合、ストレージ１３０は、当該論理デバイスを別のプールＶＯＬに移行することを要求されているか否かを判定する（ステップ１７１１）。
【０３２９】
ステップ１７１１において、当該論理デバイスを別のプールＶＯＬに移行することを要求されていると判定された場合、ストレージ１３０は、当該論理デバイスの先頭エントリから、対応する拡張ＶＯＬに実領域が割り当てられているエントリを順次検索し、当該エントリのデータのみを移行先プールＶＯＬの空きエントリに追記する（ステップ１７１２）。より詳細には、ストレージ１３０は、その拡張ＶＯＬに対応するプールＶＯＬに移行先プールＶＯＬを追加する。そして、移行元プールＶＯＬのエントリから読み出したデータに移行先プールＶＯＬの空きエントリを割り当て、そのデータを、割り当てられた空きエントリに書き込む。そして、ストレージ１３０は、移行先ＶＯＬのエントリを当該拡張ボリュームの当該エントリに対応付けるように管理情報を更新する。
【０３３０】
なお、このとき、移行先となるプールＶＯＬが停止状態の場合、ストレージ１３０は、ステップ１７０６と同様にデバイス起動／停止処理２２２を実行して、移行先のプールＶＯＬに対応するデバイスを起動する必要がある。
【０３３１】
ストレージ１３０は、上記の処理を、論理デバイス管理情報のデータ移行進捗ポインタ３０９を使用して順次実行する。全領域について移行処理が完了したら、ストレージ１３０は、当該拡張ＶＯＬの対応プール番号リスト７０７から移行元プールＶＯＬ（当初、当該論理デバイスが対応していたプールＶＯＬ）の番号を削除する（ステップ１７１３）。
【０３３２】
一方、ステップ１７１１において、当該論理デバイス（移行元）を別の論理デバイス（移行先）と入れ替えることを要求されていると判定された場合、ストレージ１３０は、移行元及び移行先論理デバイスの先頭エントリを処理対象とする（ステップ１７１４）。
【０３３３】
次に、ストレージ１３０は、処理対象のエントリ（領域）に実領域（プールＶＯＬのエントリ）が割り当てられている場合、そのエントリに入替の相手（移行先又は移行元）のプールＶＯＬの空きエントリを新規に割り当て、処理対象のエントリのデータを新規に割り当てた空きエントリに移行する（ステップ１７１５及び１７１６）。
【０３３４】
この移行処理過程において、移行先及び移行元論理デバイスにおいて移行が終了したエントリ数に大きな差がついてしまうと、一方のプールＶＯＬの空きエントリ数が枯渇する恐れがある。従って、移行が終了したエントリ数が移行先及び移行元論理デバイスで大きく乖離しないよう、進捗を制御する必要がある。
【０３３５】
次に、ストレージ１３０は、移行元及び移行先論理デバイスにおいて、現在の処理対象のエントリの次のエントリを新たな処理対象とする（ステップ１７１７）。
【０３３６】
次に、ストレージ１３０は、移行元及び移行先論理デバイスの全エントリにおいて処理が終了したか否かを判定する（ステップ１７１８）。
【０３３７】
ステップ１７１８において、全エントリにおいて処理が終了していないと判定された場合、次のエントリについて処理をするために、ステップ１７１５に戻る。
【０３３８】
一方、ステップ１７１８において、全エントリにおいて処理が終了したと判定された場合、移行元及び移行先論理デバイスの全エントリの入替が完了した。この場合、ストレージ１３０は、移行先及び移行元論理デバイスと、それぞれのプールＶＯＬとの対応が入れ替わるように、デバイス管理情報を更新する（ステップ１７１９）。
【０３３９】
ステップ１７０５、１７０７、１７１３又は１７１９が終了した時点で、停止状態の論理デバイスを別の物理デバイス、外部デバイス又はプールＶＯＬに移行する処理が終了する。次に、ストレージ１３０は、再度移行元及び移行先の論理デバイスについて、それらに対応する物理デバイス、外部デバイス又はプールＶＯＬを停止する必要があるか否かを判定する（ステップ１７０８及び１７０９）。このとき、ストレージ１３０は、図１２のステップ１２０９と同様に、そのプールＶＯＬに対応する全拡張ＶＯＬが停止状態であるか否か等を判定する。
【０３４０】
ステップ１７０９において、物理デバイス、外部デバイス又はプールＶＯＬを停止する必要があると判定された場合、ストレージ１３０は、デバイス起動／停止処理２６２を実行して、該当する物理デバイス等を停止して（ステップ１７１０）、処理を終了する。
【０３４１】
一方、ステップ１７０９において、物理デバイス、外部デバイス又はプールＶＯＬを停止する必要がないと判定された場合、ストレージ１３０は、デバイス起動／停止処理２６２を実行せずに、処理を終了する。
【０３４２】
なお、本発明は上記の実施の形態に限定されず、種々の変形が可能である。
【０３４３】
本実施の形態では、ストレージ１３０は、外部ストレージ接続手段を有する。具体的には、ストレージ１３０は、外部ストレージを管理する情報（例えば、外部デバイス管理情報２０４）を有する。さらに、ストレージ１３０が有するプログラムにおいて、外部ストレージの存在が考慮されている。しかし、ストレージ１３０が外部ストレージ接続手段を持たなくてもよい。すなわち、管理サーバ１１０及びストレージ１３０は、内部に備えるディスクドライブ１３７のみについて、起動／停止制御可否を考慮したデバイスプール管理を行ってもよい。あるいは、逆に、ストレージ１３０が内部にディスクドライブ１３７を備えず、外部ストレージ接続手段によって接続された外部デバイスのみについて、管理サーバ１１０及びストレージ１３０がデバイスプール管理を行ってもよい。
【０３４４】
本実施の形態では、ストレージ管理者又はホストアプリケーションからの論理デバイスへのデタッチ要求を受信した時に、管理サーバ１１０が当該論理デバイスの停止要否を判定し、必要であれば、ストレージ１３０が当該論理デバイスを停止する。しかし、管理サーバ１１０は、デタッチ又はアタッチ要求を伴わない当該論理デバイスへの起動又は停止要求を受信してもよい。これによって、当該論理デバイスへのホストからのアクセスパスを維持したままで、当該論理デバイスに対応したディスクドライブ１３７等の起動及び停止を制御することができる。
【０３４５】
また、本実施の形態では、デタッチ対象論理デバイスについて、全ポート１３１のＬＵパス定義が解除される。しかし、ユーザ又はアプリケーションプログラムから指定された特定のポート１３１についてのみＬＵパス定義が解除されてもよい。
【０３４６】
また、本実施の形態では、管理サーバ１１０のデバイス接続切替要求処理２４１がデバイス停止要否を判定していたが、ストレージ１３０のデバイス接続切替処理２２１がデバイス停止要否を判定してもよい。
【０３４７】
また、本実施の形態では、論理デバイスをアタッチする際、ポート１３１及びＬＵＮが指定される。しかし、別の論理デバイスをデタッチし、このポート１３１及びＬＵＮを用いて論理デバイスがアタッチされてもよい。そのためには、ホスト１００からＬＵＮへのアクセスを開始する前に必ず対応する論理デバイスを確認するプロトコルが使用される。さらに、論理デバイスの属性として「自動デタッチ可能」が設定される。そして、第一の論理デバイスをアタッチする際には、別の「自動デタッチ可能」な第二の論理デバイスをデタッチした後、第二の論理デバイスに対応付けられていたポート１３１のＬＵＮを用いて第一の論理デバイスをアタッチする。また、同様に、外部デバイスに「自動デタッチ可能」属性を設定し、第一の外部デバイスをアタッチする時に第二の外部デバイスをデタッチし、第二の外部デバイスが対応付けられていた論理デバイスを用いて第一の外部デバイスをアタッチしてもよい。
【０３４８】
また、本実施の形態では、ストレージ１３０の物理デバイスに対応するディスクドライブ１３７、又は、外部ストレージ１５０の物理デバイスに対応するディスクドライブ１５７にコマンドが送信され、ディスクドライブ１３７又は１５７内のコントローラがディスク回転を制御することによって、ディスクドライブ１３７又は１５７の起動及び停止が制御される。しかし、ストレージ１３０又はストレージ１５０がディスクドライブ１３７又は１５７への電源供給をオン／オフ可能なスイッチを備え、そのスイッチを用いてディスクドライブ１３７又は１５７の起動及び停止を制御してもよい。
【図面の簡単な説明】
【０３４９】
【図１】本発明の実施の形態の計算機システムのハードウェア構成の一例を示すブロック図である。
【図２】本発明の実施の形態のストレージのソフトウェア構成の一例を示す図である。
【図３】本発明の実施の形態の論理デバイス管理情報の一例を示す説明図である。
【図４】本発明の実施の形態のＬＵパス管理情報の一例を示す説明図である。
【図５】本発明の実施の形態の物理デバイス管理情報の一例を示す説明図である。
【図６】本発明の実施の形態の外部デバイス管理情報の一例を示す説明図である。
【図７】本発明の実施の形態の拡張ＶＯＬ管理情報の一例を示す説明図である。
【図８】本発明の実施の形態のプールＶＯＬ管理情報の一例を示す説明図である。
【図９】本発明の実施の形態の管理サーバで実行される、デバイス定義指示処理の一例を示すフローチャートである。
【図１０】本発明の実施の形態のストレージで実行される、デバイス定義処理の一例を示すフローチャートである。
【図１１】本発明の実施の形態の管理サーバで実行される、デバイス接続切替要求処理の一例を示すフローチャートである。
【図１２】本発明の実施の形態のストレージで実行される、デバイス接続切替処理の一例を示すフローチャートである。
【図１３】本発明の実施の形態のストレージで実行される、デバイス起動／停止処理の一例を示すフローチャートである。
【図１４】本発明の実施の形態のストレージで実行される、停止デバイス監視処理の一例を示すフローチャートである。
【図１５】本発明の実施の形態の外部ストレージで実行される、Ｉ／Ｏ処理の一例を示すフローチャートである。
【図１６】本発明の実施の形態の外部ストレージで実行される、外部デバイス起動／停止処理の一例を示すフローチャートである。
【図１７】本発明の実施の形態のストレージで実行される、デバイス移行処理の一例を示すフローチャートである。
【図１８】本発明の実施の形態のストレージで実行される、デバイス移行判定処理の一例を示すフローチャートである。
【符号の説明】
【０３５０】
１００  ホスト
１１０  管理サーバ
１２０  ファイバチャネルスイッチ
１３０  ストレージ
１４０  管理端末
１５０  外部ストレージ
１７５  ＩＰネットワーク
２０１  論理デバイス管理情報
２０２  ＬＵパス管理情報
２０３  物理デバイス管理情報
２０４  外部デバイス管理情報
２０５  キャッシュ管理情報
２０６  デバイス機能管理情報
２０７  拡張ＶＯＬ管理情報
２０８  プールＶＯＬ管理情報
２２１  デバイス接続切替処理
２２２  デバイス起動／停止処理
２２３  停止デバイス監視処理
２２４  デバイス定義処理
２２５  デバイス移行処理
２６１  Ｉ／Ｏ処理
２６２  外部デバイス起動／停止処理
２４１  デバイス接続切替要求処理
２４２  デバイス定義指示処理
【図１】
2007133821.tif 000003
【図２】
2007133821.tif 000004
【図３】
2007133821.tif 000005
【図４】
2007133821.tif 000006
【図５】
2007133821.tif 000007
【図６】
2007133821.tif 000008
【図７】
2007133821.tif 000009
【図８】
2007133821.tif 000010
【図９】
2007133821.tif 000011
【図１０】
2007133821.tif 000012
【図１１】
2007133821.tif 000013
【図１２】
2007133821.tif 000014
【図１３】
2007133821.tif 000015
【図１４】
2007133821.tif 000016
【図１５】
2007133821.tif 000017
【図１６】
2007133821.tif 000018
【図１７】
2007133821.tif 000019
【図１８】
2007133821.tif 000020