(57)【要約】【課題】  計算機からアクセスされる記憶容量を変更できるストレージシステムを提供する。【解決手段】  計算機及び管理装置と接続され、計算機がアクセスする記憶装置と記憶領域を制御する制御部とを備えたストレージシステムにおいて、制御部は、記憶装置に論理デバイスを設定し、計算機がアクセスする仮想ボリュームに仮想デバイスを設定し、論理デバイスを仮想デバイスに割り当て、論理デバイスと仮想デバイスとの割り当てを変更して、仮想ボリュームの記憶領域を変更することを特徴とする。【選択図】  図１
2006338341.tif 000002
【特許請求の範囲】
【請求項１】
計算機及び管理装置と接続され、前記計算機がアクセスする記憶装置と前記記憶領域を制御する制御部とを備えたストレージシステムにおいて、
前記制御部は、
前記記憶装置に第１の論理デバイスを含む第１の仮想デバイスを設定し、
前記計算機がアクセスする仮想ボリュームを構成する第２の論理デバイスを含む第２の仮想デバイスを設定し、
前記第２の論理デバイスに前記第１の論理デバイスのアドレスを割り当て、
前記第２の論理デバイスと前記第１の論理デバイスとの割り当てを変更して、前記仮想ボリュームの記憶領域を変更することを特徴とするストレージシステム。
【請求項２】
前記記憶装置は、前記仮想ボリュームに関連付けるプールボリュームを備え、
前記制御部は、
前記第１の論理デバイスの属性をプールボリューム属性に設定し、当該プールボリューム属性の第１の論理デバイスのアドレスを前記第２の論理デバイスのアドレスに割り当てることで、第１の論理デバイスを第２の論理デバイスに割り当てることを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記制御部は、前記第１の論理デバイスに前記プールボリュームの識別子を設定することで、前記第１の論理デバイスをプールボリューム属性に設定することを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記制御部は、
さらに新たな前記第１の論理デバイスの属性を前記プールボリューム属性に設定して、前記プールボリュームの容量を拡張することを特徴とする請求項２に記載のストレージシステム。
【請求項５】
前記制御部は、
前記プールボリューム属性の少なくとも一つの第１の論理ボリュームの属性を解除して、前記プールボリュームの容量を縮小することを特徴とする請求項２に記載のストレージシステム。
【請求項６】
前記制御部は、
前記プールボリューム属性の第１の論理ボリュームの属性を解除する際に、当該第１の論理ボリュームを確認し、
当該第１の論理ボリュームにデータが格納されている場合は、当該第１の論理デバイスの属性を解除しないことを特徴とする請求項２に記載のストレージシステム。
【請求項７】
前記制御部は、
前記プールボリューム属性の全ての第１の論理ボリュームの属性を解除して、前記プールボリュームを解除することを特徴とする請求項２に記載のストレージシステム。
【請求項８】
前記第１の論理デバイスの識別子を含む第１の構成情報と前記第２の論理ボリュームの識別子を含む第２の構成情報とを備え、
前記制御部は、
前記第１の構成情報の識別子を、前記第２の構成情報に格納することで、前記第２の論理デバイスを前記第１の論理デバイスに割り当てることを特徴とする請求項２に記載のストレージシステム。
【請求項９】
前記第１の構成情報は、前記第１の論理デバイスの識別子と、当該第１の論理デバイスのアドレスと、当該第１の論理デバイスの前後の領域の識別子とを含み、
前記第２の構成情報は、前記第２の論理デバイスの識別子と、当該第２の論理デバイスのアドレスとを含むことを特徴とする請求項８に記載のストレージシステム。
【請求項１０】
前記制御部は、
前記仮想ボリュームと、当該仮想ボリュームにアクセスする計算機との接続ポート番号と、経路の情報とを対応付けて、当該仮想ボリュームを前記計算機がアクセス可能に設定する特徴とする請求項２に記載のストレージシステム。
【請求項１１】
前記制御部は、
前記ホスト計算機からデータの読み出し要求を受信したときに、読み出し要求に係るアドレスに対応する論理デバイスの種類を特定し、
特定した論理デバイスが第２の論理デバイスであった場合は、当該第２の論理デバイスに割り当てられている第１の論理デバイスを特定し、
特定した第１の論理デバイスから、読み出し要求に係るデータを読み出すことを特徴とする請求項２に記載のストレージシステム。
【請求項１２】
前記制御部は、
前記ホスト計算機からデータの書き込み要求を受信したときに、書き込み要求に係るアドレスに対応する論理デバイスの種類を特定し、
特定した論理デバイスが第２の論理デバイスであった場合は、当該第２の論理デバイスに割り当てられている第１の論理デバイスを特定し、
特定した第１の論理デバイスに、書き込み要求に係るデータを書き込むことを特徴とする請求項２に記載のストレージシステム。
【請求項１３】
前記制御部は、
前記ホスト計算機からデータの書き込み要求を受信したときに、書き込み要求に係るアドレスに対応する論理デバイスの種類を特定し、
特定した論理デバイスが第２の論理デバイスであった場合に、当該第２の論理デバイスに前記第１の論理デバイスが割り当てられていない場合は、当該第２の論理デバイスに前記プールボリューム属性の第１の論理デバイスを割り当てることを特徴とする請求項２に記載のストレージシステム。
【請求項１４】
前記制御部は、
前記ホスト計算機からの要求を受信したときに、要求に係るアドレスに対応する論理デバイスの種類を特定し、
特定した論理デバイスがプールボリューム属性の第１の論理デバイスであった場合は、当該要求を拒否することを特徴とする請求項２に記載のストレージシステム。
【請求項１５】
前記制御部は、
前記記憶装置の障害を検出したときに、
当該記憶装置を含む第１の仮想デバイスを閉塞し、
当該第１の仮想デバイスに含まれる第１の論理デバイスを閉塞し、
当該第１の論理デバイスがプールボリューム属性である場合に、当該プールボリュームを閉塞することを特徴とする請求項２に記載のストレージシステム。
【請求項１６】
前記制御部は、
電源切断時に、前記プールボリューム属性の第１の論理デバイスにストレージシステムの管理情報を格納し、
電源再開時に、前記格納された管理情報を読み出してストレージシステムを起動することを特徴とする請求項２に記載のストレージシステム。
【請求項１７】
前記制御部は、
電源切断時に、前記プールボリューム属性の第１の論理デバイスのうち、データが格納されていない第１の論理デバイスを取得し、取得した当該第１の論理デバイスにストレージシステムの管理情報を格納し、
電源再開時に、前記格納された管理情報を読み出してストレージシステムを起動することを特徴とする請求項２に記載のストレージシステム。
【請求項１８】
計算機及び管理装置と接続され、前記計算機がアクセスする記憶装置と前記記憶領域を制御する制御部とを備えたストレージシステムの構成変更方法であって、
前記記憶装置に第１の論理デバイスを含む第１の仮想デバイスを設定する第１のステップと、
前記計算機がアクセスする仮想ボリュームを構成する第２の論理デバイスを含む第２の仮想デバイスを設定する第２のステップと、
前記第２の論理デバイスに前記第１の論理デバイスのアドレスを割り当てる第３のステップと、
前記第２の論理デバイスと前記第１の論理デバイスとの割り当てを変更して、前記仮想ボリュームの記憶領域を変更する第４のステップと、
を備えることを特徴とする構成変更方法。
【請求項１９】
前記記憶装置は、前記仮想ボリュームに関連付けるプールボリュームを備え、
前記第３のステップは、
前記第１の論理デバイスの属性をプールボリューム属性に設定し、当該プールボリューム属性の第１の論理デバイスのアドレスを前記第２の論理デバイスのアドレスに割り当てることで、第１の論理デバイスを第２の論理デバイスに割り当てる第５のステップを備えることを特徴とする請求項１３に記載の構成変更方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機が使用するデータを格納するストレージシステムに関し、特に、計算機からアクセスされる記憶容量を変更できるストレージシステムに関する。
【背景技術】
【０００２】
従来のストレージシステムでは、記憶容量は搭載されるディスクドライブ等の物理的なデバイスの容量に依存する。従って、ストレージシステムに要求される記憶容量が大きければ、物理デバイスの搭載量も大きくなる。その一方で、ユーザからは、コストダウンや省スペース化という要望がある。
【０００３】
そのため、ストレージシステムの記憶容量を動的に変更させる仕組み急務となっている。このようなストレージシステムを実現する方法として、ホストから記憶装置の論理ボリュームへアクセスされるリードもしくはライトＩ／Ｏの論理ブロックアドレスを監視する。取得された論理ブロックアドレスを元に、論理ボリュームの記憶領域を動的に伸長する。また、ホストの命令部からボリュームサーバへ論理ボリュームの容量縮小／拡張の指示により論理ボリュームの記憶領域を縮小／拡張する記憶装置の容量自動拡張方法が知られている（例えば特許文献１参照。）。
【特許文献１】特開２００３−１５９１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の技術では、ホストからアクセスされるデバイスの容量を動的に変更することは開示されているが、どのように応用するかは開示されていない。特にストレージシステムに仮想ボリュームを利用する場合に、仮想ボリュームにどのように論理ボリュームを設定し、それをどのように利用するかは開示されていない。
【０００５】
本発明はこのような問題点に鑑みてなされたものであり、仮想ボリュームを利用したストレージシステムの記憶容量を変更できる計算機システムを提供するものである。
【課題を解決するための手段】
【０００６】
本発明は、計算機及び管理装置と接続され、計算機がアクセスする記憶装置と記憶領域を制御する制御部とを備えたストレージシステムにおいて、制御部は、記憶装置に論理デバイスを設定し、計算機がアクセスする仮想ボリュームに仮想デバイスを設定し、論理デバイスを仮想デバイスに割り当て、論理デバイスと仮想デバイスとの割り当てを変更して、仮想ボリュームの記憶領域を変更することを特徴とする。
【発明の効果】
【０００７】
本発明によると、計算機がアクセスする仮想ボリュームと論理ボリュームとの割り当てを変更して仮想ボリュームの記憶領域を変更することによって、仮想ボリュームの記憶領域を動的に変更することができる。このようにすることによって、ストレージシステムに備えられた物理デバイスの合計記憶容量を超えた容量の仮想ボリュームを設定することができ、計算機システムにおけるデータのアクセスの自由度が高まる。
【発明を実施するための最良の形態】
【０００８】
以下に、図面を用いて、本発明の実施の形態について説明する。
【実施例１】
【０００９】
図１は本発明の第１の実施例の計算機システムの構成ブロック図である。
【００１０】
本実施例の計算機システムは、ホスト計算機１０とストレージシステム管理装置２０とがストレージシステム３０に接続されている。
【００１１】
ホスト計算機１０は、ストレージシステム３０の記憶領域のデータをアクセスする。ストレージシステム管理装置２０は、ストレージシステム３０の記憶領域の構成を管理する。ストレージシステム３０は、物理デバイス３４を備え、物理デバイス３４に設定された記憶領域にデータを格納する。
【００１２】
ホスト計算機１０は、入力手段１１０、出力手段１２０、ＣＰＵ１３０、メモリ１４０、ディスクアダプタ１５０、ネットワークアダプタ１６０及びディスクドライブ１７０を備える。
【００１３】
入力手段１１０は、ホスト計算機１０を操作する管理者等の入力を受け付ける手段である。入力手段１１０は、例えばキーボードで構成される。出力手段１２０は、ホスト計算機１０の状態や設定項目を表示する手段である。出力手段１２０は、例えばディスプレイ装置で構成される。
【００１４】
ＣＰＵ１３０は、ディスクドライブ１７０に格納されているプログラムをメモリ１４０に読み込んで、そのプログラムに規定された処理を実行する。メモリ１４０は、例えばＲＡＭ等で構成され、プログラムやデータ等を格納する。
【００１５】
ディスクアダプタ１５０は、ストレージシステム３０とストレージネットワーク５０を介して接続し、ストレージシステム３０にデータを送受信する。ストレージネットワーク５０は、データ転送に適したプロトコル（例えば、Fibre Channel）で構成される。
【００１６】
ネットワークアダプタ１６０は、ストレージシステム管理装置２０又はストレージシステム３０と管理ネットワーク４０を介してデータを送受信する。管理ネットワーク４０は、例えばＥｔｈｅｒｎｅｔ（登録商標）で構成される。
【００１７】
ディスクドライブ１７０は、例えばハードディスク装置で構成され、データやプログラムを格納する。
【００１８】
ストレージシステム管理装置２０は、入力手段２１０、出力手段２２０、ＣＰＵ２３０、メモリ２４０、ネットワークアダプタ２５０及びディスクドライブ２６０を備える。
【００１９】
入力手段２１０は、ストレージシステム管理装置２０を操作する管理者等の入力を受け付ける手段である。入力手段２１０は、例えばキーボードで構成される。出力手段２２０は、ストレージシステム管理装置２０の状態や設定項目を表示する手段である。出力手段２２０は、例えばディスプレイ装置で構成される。
【００２０】
ＣＰＵ２３０は、ディスクドライブ２６０に格納されているプログラムをメモリ２４０に読み込んで、そのプログラムに規定された処理を実行する。メモリ２４０は、例えばＲＡＭ等で構成され、プログラムやデータ等を格納する。
【００２１】
ネットワークアダプタ２５０は、ホスト計算機１０又はストレージシステム３０と管理ネットワーク４０を介してデータを送受信する。
【００２２】
ディスクドライブ２６０は、例えばハードディスク装置で構成され、データやプログラムを格納する。
【００２３】
ストレージシステム３０は、コントローラ３１、ストレージキャッシュメモリ３２、共有メモリ３３、物理デバイス（ＰＤＥＶ）３４、電源スイッチ３５及び電源３６を備える。
【００２４】
コントローラ３１は、ＰＤＥＶ３４に構成された記憶領域へのデータの格納を制御する。
【００２５】
ストレージキャッシュメモリ３２は、ＰＤＥＶ３４に読み書きされるデータを一時的に格納する。共有メモリ３３は、コントローラ３１やＰＤＥＶ３４の構成情報を格納する。
【００２６】
ＰＤＥＶ３４は、複数のディスク装置によって構成される。
【００２７】
電源３６は、ストレージシステム３０の各部に電力を供給する。電源スイッチ３５は、電源３６からの電力の供給をＯＮ／ＯＦＦするスイッチである。
【００２８】
コントローラ３１は、ホストアダプタ３１０、ネットワークアダプタ３２０、不揮発性メモリ３３０、電源制御部３４０、メモリ３５０、プロセッサ３６０、ストレージアダプタ３７０及び共有メモリアダプタ３８０によって構成される。
【００２９】
ホストアダプタ３１０は、ストレージネットワーク５０を介してホスト計算機１０との間でデータを送受信する。ネットワークアダプタ３２０は、管理ネットワーク４０を介してホスト計算機１０又はストレージシステム管理装置２０との間でデータを送受信する。
【００３０】
不揮発性メモリ３３０は、ハードディスクやフラッシュメモリで構成され、コントローラ３１で動作するプログラムや構成情報等を格納する。
【００３１】
電源制御部３４０は、電源３６から供給される電力を制御する。
【００３２】
メモリ３５０は、例えばＲＡＭ等で構成され、プログラムやデータ等を格納する。
【００３３】
プロセッサ３６０は、不揮発性メモリ３３０に格納されているプログラムをメモリ３５０に読み込んで、そのプログラムに規定された処理を実行する。
【００３４】
ストレージアダプタ３７０は、ＰＤＥＶ３４及びストレージキャッシュメモリ３２との間でデータを送受信する。
【００３５】
共有メモリアダプタ３８０は、共有メモリ３３との間でデータを送受信する。
【００３６】
次に、本実施例のストレージプールについて説明する。
【００３７】
図２は、本実施例の計算機ステムにおける記憶領域の説明図である。
【００３８】
ホスト計算機１０は、ストレージシステム３０のボリュームをあて先として記憶領域にアクセスする。このボリュームは、何れかのＬＤＥＶが設定されている。
【００３９】
ストレージシステム３０において、ＰＤＥＶ３４からＲＡＩＤ構成によってＲＡＩＤグループが構成される。このＲＡＩＤグループから仮想デバイス（ＶＤＥＶ）４００が構成される（Ｓ１０１）。ＶＤＥＶ４００は記憶領域である複数の論理デバイス（ＬＤＥＶ）５００に分割されている。
【００４０】
なお、このＰＤＥＶ３４から構成されたＶＤＥＶを、以降は「第１種ＶＤＥＶ」と呼ぶ。この第１種ＶＤＥＶに含まれるＬＤＥＶを、以降は「第１種ＬＤＥＶ」と呼ぶ。
【００４１】
ホスト計算機１０は、ストレージシステム３０のボリュームをあて先としてアクセスする。ホスト計算機１０から見えるボリュームを「ターゲットデバイス」と呼ぶ。ターゲットデバイス７００は、第１種ＬＤＥＶ５００を含むボリュームにホスト計算機１０へのパスを定義して設定される（Ｓ１０２）。
【００４２】
なお、ストレージシステム３０の外部に接続されている外部物理デバイス６００をＰＤＥＶ３４と同様に扱うこともできる。すなわち、ＲＡＩＤ構成によって複数の外部物理デバイス（ＥＤＥＶ）６００から複数の第１種ＶＤＥＶ４００が構成される（Ｓ１０３）。第１種ＤＥＶ４００は一つ以上の記憶領域である第１種ＬＤＥＶ５００に分割されている。この第１種ＬＤＥＶ５００にホスト計算機１０へのパスを設定して、ターゲットデバイス７００が設定される（Ｓ１０４）。
【００４３】
また、ストレージシステム３０において、第２種ＶＤＥＶ４０１を設定できる。第２種ＶＤＥＶとは、ＰＤＥＶ３４によって構成される第１種ＶＤＥＶとは異なり、アドレスと領域を持っているがＰＤＥＶ３４に対応する領域は持っていない仮想的なデバイスである。なお、第２種ＶＤＥＶに対応するキャッシュメモリの領域は持つことができる。この第２種ＶＤＥＶ４０１には、一つ以上の記憶領域であるＬＤＥＶが構成されている。このＬＤＥＶを２種ＬＤＥＶ５０１と呼ぶ。
【００４４】
この第２種ＬＤＥＶ５０１にホスト計算機１０へのパスを設定して、ターゲットデバイス７０１が設定される（Ｓ１１０）。このターゲットデバイスを仮想ボリュームと呼ぶ。
【００４５】
第２種ＶＤＥＶ及び第２種ＬＤＥＶは、物理的な実体を持っていない。これをホスト計算機１０が使用するためには、第２種ＬＤＥＶを、ストレージプールに関連付ける必要がある。
【００４６】
ストレージプールは、前述した第１種ＬＤＥＶ５００をストレージプールの属性に設定することで構成される（Ｓ１１２）。このストレージプールに設定された第１種ＬＤＥＶ５００を第２種ＬＤＥＶ５０１に関連付け、アドレスをマッピングする（Ｓ１１１）。これによって、ホスト計算機１０が、仮想ボリュームの記憶領域である第２種ＬＤＥＶを使用できる。また、第１種ＬＤＥＶと第２種ＬＤＥＶとのマッピングを変更することで、仮想ボリュームの記憶領域を変更できる。
【００４７】
なお、以降は、「ＶＤＥＶ」とのみ表記したる場合は、第１種ＶＤＥＶ及び第２種ＶＤＥＶを含むことを意図する。同様に、「ＬＤＥＶ」とのみ表記したる場合は、第１種ＬＤＥＶ及び第２種ＬＤＥＶを含むことを意図する。
【００４８】
図３は、ストレージシステム３０のコントローラ３１のメモリ３５０のブロック図である。
【００４９】
メモリ３５０には、プロセッサ３６０によって読み込まれて実行される各種プログラムや、ＬＤＥＶの設定に関する構成情報３５１及びストレージプールの設定に関するプール情報３５２が格納される。
【００５０】
コマンド制御プログラム３５０１は、ホスト計算機１０又はストレージシステム管理装置２０からのコマンドを解釈し、そのコマンドに規定された処理を実行する。
【００５１】
パス制御プログラム３５０２は、ホスト計算機１０との間のパスを設定する。
【００５２】
構成制御プログラム３５０３は、ストレージシステム３０の構成を制御する。
【００５３】
ホストアダプタ制御プログラム３５０４は、ホストアダプタ３１０の入出力するデータを制御する。
【００５４】
ディスクＩ／Ｏプログラム３５０５は、ＰＤＥＶ３４へのアクセスを制御する。
【００５５】
ネットワーク制御プログラム３５０６は、ストレージネットワーク５０又は管理ネットワーク４０を介して送受信するデータを制御する。
【００５６】
プール制御プログラム３５０７は、ストレージプールを設定する。
【００５７】
電源制御プログラム３５０８は、電源３６の供給する電力のＯＮ／ＯＦＦを制御する。
【００５８】
キャッシュ制御プログラム３５０９は、ストレージキャッシュメモリ３２の領域及びデータを制御する。
【００５９】
ドライブ診断プログラム３５１０は、ＰＤＥＶ３４の各ディスク装置の状態を診断する。
【００６０】
構成情報３５１は、ストレージシステム３０のＶＤＥＶ及びＬＤＥＶに関する設定を格納する。
【００６１】
プール情報３５２は、ストレージプールに関する設定を格納する。
【００６２】
構成情報３５１は、アドレス管理テーブル３５１１、ＬＤＥＶ管理情報３５１２、ターゲットデバイス情報３５１３、ＶＤＥＶ管理情報３５１４を含む。
【００６３】
アドレス管理テーブル３５１１は、ターゲットデバイスとＬＤＥＶとＶＤＥＶと物理デバイスとのアドレスのマッピング情報を格納する。アドレス管理テーブル３５１１は、ターゲットデバイス−ＬＤＥＶマッピング情報３５１１１、ＬＤＥＶ−ＶＤＥＶマッピング情報３５１１２及びＶＤＥＶ−ＰＤＥＶマッピング情報３５１１３を含む。
【００６４】
ＬＤＥＶ管理情報３５１２は、ＬＤＥＶに関する情報を格納する。
【００６５】
ターゲットデバイス管理情報３５１３は、ホスト計算機１０とでパスの設定されたボリュームのＬＤＥＶの情報を格納する。
【００６６】
ＶＤＥＶ管理情報３５１４は、仮想論理ボリュームに関する情報を格納する。
【００６７】
プール情報３５２は、ＰＯＯＬ管理情報３５２１、ＰＯＯＬ−ＶＯＬ管理情報３５２２、ＶＶＯＬ−ＤＩＲ３５２３、ＰＳＣＢ３５２４及びＳＹＳ領域情報３５２５を含む。
【００６８】
ＰＯＯＬ管理情報３５２１は、ストレージプールの設定を格納する。ＰＯＯＬ−ＶＯＬ管理情報３５２２は、ストレージプールのボリュームの情報を格納する。ＶＶＯＬ−ＤＩＲ３５２３は、ストレージプールのＬＤＥＶのアドレスの割り当てを格納する。ＰＳＣＢ情報は、ストレージプールのＬＤＥＶのアドレスの情報を格納する。ＳＹＳ領域情報３５２５は、ストレージシステム３０の構成情報を格納するＬＤＥＶの情報を格納する。
【００６９】
図４は、ストレージシステム管理装置２０の構成のより詳細なブロック図である。
【００７０】
ストレージシステム管理装置２０は、前述のように入力手段２１０、出力手段２２０、ＣＰＵ２３０、メモリ２４０、ネットワークアダプタ２５０及びディスクドライブ２６０を備える。
【００７１】
入力手段２１０は入力装置２１１を備える。また出力手段２２０は出力装置２２１を備える。
【００７２】
メモリ２４０は、半導体メモリ２４１を備える。またディスクドライブ２６０は、光ディスクドライブ２４２、磁気ディスクドライブ２４３を備える。
【００７３】
ＣＰＵ２３０は、光ディスクドライブ２４２又は磁気ディスクドライブ２４３からプログラムや構成情報を半導体メモリ２４１に読み出して、そのプログラムに規定された処理を実行する。
【００７４】
これら入力手段２１０、出力手段２２０、ＣＰＵ２３０、メモリ２４０、ネットワークアダプタ２５０及びディスクドライブ２６０は、バス２７０によって接続されている。
【００７５】
メモリ２４０には、ストレージシステム構成情報２４０１、記憶装置システム管理プログラム２４０２、ストレージ構成管理プログラム２４０３、ＰＯＯＬ管理プログラム２４０４、ストレージシステム保守プログラム２４０５及びＯＳ２４０６が読み込まれて動作している。
【００７６】
ＯＳ２４０６は、ストレージシステム管理装置２０の基本プログラムである。その他のプログラムはこのＯＳ２４０６上で動作する。
【００７７】
ストレージシステム構成情報２４０１は、ストレージシステム３０の構成に関する情報を格納する。
【００７８】
記憶装置システム管理プログラム２４０２は、ストレージシステム３０に設定される論理ボリュームによって構成される記憶装置の構成を管理する。
【００７９】
記憶装置システム管理サーバプログラム２４０３は、ストレージシステム３０に設定される論理ボリュームによって構成される記憶装置の構成の管理を受け付ける。
【００８０】
ストレージ構成管理プログラム２４０４は、ストレージシステム３０の構成を管理する。そしてその構成情報をストレージシステム構成情報２４０１に格納する。
【００８１】
ＰＯＯＬ管理プログラム２４０５は、ストレージシステム３０のストレージプールの
構成を管理する。
【００８２】
ストレージシステム保守プログラム２４０６は、ストレージシステム３０の保守をする。
【００８３】
ストレージシステム管理装置２０は、これらのプログラムによって、ストレージシステム３０に構成の設定や変更、保守を実行する。
【００８４】
なお、このメモリ２４０に格納される各プログラムや情報は、ホスト計算機１０のメモリ１４０に備えられていてもよい。すなわちホスト計算機１０のメモリ１４０に格納されたプログラムによって、ストレージシステム３０の構成の設定や変更を実行してもよい。
【００８５】
このとき、ホスト計算機１０は、ストレージシステム３０のコマンドデバイスをあて先としてコマンドを送信する。コマンドデバイスとは、ストレージシステム３０のターゲットデバイスの何れかに予め設定される。ストレージシステム３０は、ホスト計算機１０からコマンドデバイスをあて先とするＩ／Ｏ要求を受け取ると、それを指示コマンドと解釈する。
【００８６】
図５は、ターゲットデバイスとＬＤＥＶ及びＰＤＥＶとの説明図である。
【００８７】
ホスト計算機１０は、ストレージシステム３０に設定されたターゲットデバイス７００をアクセスする。ターゲットデバイス７００の記憶領域は、ターゲットデバイス７００として設定された第１種ＬＤＥＶ５００である。
【００８８】
第１種ＬＤＥＶ５００は、物理ボリュームからＲＡＩＤ構成によって構成された第１種ＶＤＥＶ４００の領域である。第１種ＶＤＥＶ４００が一つ以上の第１種ＬＤＥＶ５００に分割されている。
【００８９】
また、ホスト計算機１０は、ストレージシステム３０に設定された仮想ボリュームをターゲットデバイス７０１としてアクセスする。このターゲットデバイス７０１の記憶領域は第２種ＬＤＥＶ５０１である。
【００９０】
第２種ＬＤＥＶ５０１は、ストレージプールとして設定されている第１種ＬＤＥＶ５００に関連付けられている。
【００９１】
ホスト計算機１０が、仮想ボリュームであるターゲットデバイス７０１にアクセスする。この仮想ボリュームの記憶領域は第２種ＬＤＥＶ５０１である。ストレージシステム３０は、第２種ＬＤＥＶ５０１へのアクセスを受け付けると、アドレス管理テーブル３５１１を参照して、第２種ＬＤＥＶ５０１に関連付けられている第１種ＬＤＥＶ５００をアクセス先に変換する。
【００９２】
図６は、ＶＤＥＶの設定のフローチャートである。
【００９３】
まず、ストレージ構成管理プログラム２４０４は、ストレージシステム構成情報２４０１を検索して、未定義のＶＤＥＶの番号（ＶＤＥＶ＃）を取得する（Ｓ１００１）。
【００９４】
管理者は、入力手段２１０を操作して、ＶＤＥＶの情報を設定する。管理者は、第１種ＶＤＥＶ又は第２種ＶＤＥＶの設定に必要な情報を設定する。第１種ＶＤＥＶを設定する場合は、第１種ＶＤＥＶに設定するＰＤＥＶ３４のＲＡＩＤグループの情報及びそのエミュレーションタイプを指示する。また、第２種ＶＤＥＶを設定する場合は、エミュレーションタイプ及びそのサイズを指示する（Ｓ１００２）。
【００９５】
ストレージ構成管理プログラム２４０４は、設定された情報を含むＶＤＥＶ作成の指示コマンドを生成する。生成した指示コマンドをネットワークアダプタ２５０を介してストレージシステム３０に送信する（Ｓ１００３）。
【００９６】
ストレージシステム３０において、ストレージシステム管理装置２０から送信された指示コマンドは、ネットワークアダプタ３２０を介してコマンド制御プログラム３５０１が受信する（Ｓ１００４）。コマンド制御プログラム３５０１は、受信した指示コマンドの内容を確認する。指示コマンドの内容が無効である場合はこれを拒否する（Ｓ１００５）。
【００９７】
コマンド制御プログラム３５０１は、指示コマンドがＶＤＥＶの設定である場合は、構成制御プログラム３５０３に受信した指示コマンドを渡す。構成制御プログラム３５０３は指示コマンドを受け取って、ＶＤＥＶ作成処理を実行する（Ｓ１００６）。
【００９８】
構成制御プログラム３５０３は、指示コマンドに係るＶＤＥＶ番号が、既に使われているＶＤＥＶ番号ではないか確認する（Ｓ１００７）。指示コマンドに係るＶＤＥＶ番号が既に使われている場合は、その指示コマンドを拒否する。
【００９９】
次に、構成制御プログラム３５０３は、ＶＤＥＶ管理情報３５１４にＶＤＥＶ固有情報を新たに作成する。このＶＤＥＶ固有情報に、指示コマンドに係るＶＤＥＶの情報を設定する。具体的には、指示コマンドに係るＶＤＥＶが第１種ＶＤＥＶである場合は、指示されたＲＡＩＤグループの容量に基づいて総サイズ、残サイズ及びエミュレーションタイプを、ＶＤＥＶ固有情報に設定する。また指示コマンドに係るＶＤＥＶが第２種ＶＤＥＶである場合は、指示されたサイズ及びエミュレーションタイプを設定し、デバイス属性に「仮想ボリューム」を設定する（Ｓ１００８）。これによって、指示コマンドに係るＶＤＥＶが設定される。当該ＶＤＥＶを仮想ボリュームに設定する場合は、デバイス属性を「仮想ボリューム」に設定する。
【０１００】
コマンド制御プログラム３５０１は、ＶＤＥＶ作成処理が完了すると、ストレージシステム管理装置２０に、コマンド成功の応答を送信する（Ｓ１００９）。
【０１０１】
ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４は、ストレージシステム３０からの応答を受信すると（Ｓ１０１０）、処理を終了する。
【０１０２】
この処理によってＶＤＥＶが設定される。
【０１０３】
図７は、ＬＤＥＶ設定のフローチャートである。
【０１０４】
この処理は、ＶＤＥＶに、記憶領域であるＬＤＥＶを設定する。なお、この処理のＶＤＥＶは、図６の処理で設定されたＶＤＥＶでもよいし、既に設定されているＶＤＥＶでもよい。また、設定するＬＤＥＶは、第１種ＬＤＥＶでもよいし、第２種ＬＤＥＶでもよい。
【０１０５】
まず、ストレージ構成管理プログラム２４０４は、ＬＤＥＶを設定するＶＤＥＶの番号（ＶＤＥＶ＃）を取得する（Ｓ１１０１）。このＶＤＥＶ番号は、図６の処理で設定したＶＤＥＶ番号をストレージ構成管理プログラム２４０４が自動的に設定する。また、管理者が、既に設定されているＶＤＥＶ番号を指定してもよい。
【０１０６】
次に、管理者は、入力手段２１０を操作して、設定するＬＤＥＶの情報を指定する。具体的には、設定するＬＤＥＶ番号、ＶＥＤＶ番号、ＶＤＥＶの先頭スロット番号及び終了スロット番号の情報を設定する（Ｓ１１０２）。
【０１０７】
ストレージ構成管理プログラム２４０４は、管理者によって設定された情報を含むＬＤＥＶ設定の指示コマンドを生成する。生成した指示コマンドをネットワークアダプタ２５０を介してストレージシステム３０に送信する（Ｓ１１０３）。
【０１０８】
ストレージシステム３０において、ストレージシステム管理装置から送信された指示コマンドは、ネットワークアダプタ３２０を介してコマンド制御プログラム３５０１が受信する（Ｓ１１０４）。コマンド制御プログラム３５０１は、受信した指示コマンドの内容を確認する。指示コマンドの内容が無効である場合はこれを拒否する（Ｓ１１０５）。
【０１０９】
コマンド制御プログラム３５０１は、指示コマンドがＬＤＥＶ設定である場合は、構成制御プログラム３５０３に受信した指示コマンドを渡す。構成制御プログラム３５０３は指示コマンドを受け取って、ＬＤＥＶ設定処理を実行する（Ｓ１１０６）。
【０１１０】
構成制御プログラム３５０３は、指示コマンドに係るＶＥＤＶ番号が、既に使われているＶＥＤＶ番号ではないかを確認する（Ｓ１１０７）。指示コマンドに係るＶＥＤＶ番号が既に使われている場合は、その指示コマンドを拒否する。
【０１１１】
次に、構成制御プログラム３５０３は、指示コマンドに係るＶＤＥＶの総サイズを、ＶＤＥＶ管理情報３５１２から取得する。そして、指定コマンドに係るＬＤＥＶのサイズが、そのＶＤＥＶに定義可能であるかを確認する（Ｓ１１０８）。ＬＤＥＶのサイズは指示コマンドの先頭スロット番号と終了スロット番号とから算出する。ＬＤＥＶが定義不可能である場合はコマンドを拒否する。
【０１１２】
次に。構成制御プログラム３５０３は、指示コマンドに係るＶＤＥＶのエミュレーションタイプ、ＶＤＥＶ固有情報から取得する。このエミュレーションタイプを、指示コマンドに係るＬＤＥＶのエミュレーションタイプに設定する（Ｓ１１０９）。
【０１１３】
ステップＳ１１０８又はステップ１１０９において、
次に、構成制御プログラム３５０３は、指定コマンドに係るＬＤＥＶ番号のＬＤＥＶ固有情報を設定する。また、指定コマンドに係るＶＤＥＶ番号のＶＤＥＶ固有情報を設定する。（Ｓ１１１０）。
【０１１４】
具体的には、構成制御プログラム３５０３は、指示コマンドに係るＬＤＥＶ番号のＬＤＥＶ固有情報を新たに作成する。そのＬＤＥＶ固有情報に、ＬＤＥＶ番号、先頭スロット番号、終了スロット番号及びデバイス属性を定義する。第２種ＬＤＥＶの場合は、デバイス属性を「第２種ＬＤＥＶ」に設定する。また、ＬＤＥＶ固有情報を設定した後に、指示コマンドに係るＶＤＥＶ番号のＶＤＥＶ固有情報を設定する。具体的には、設定したＬＤＥＶ数を加算し、指示コマンドに係るＬＤＥＶ番号、残サイズ、先頭ＬＤＥＶスロット及び終了ＬＤＥＶスロットを設定する。これによって、指示コマンドに係るＬＤＥＶが、ＶＤＥＶに設定される。
【０１１５】
コマンド制御プログラム３５０１は、ＬＤＥＶ設定の処理が完了すると、ストレージシステム管理装置２０に、コマンド成功の応答を送信する（Ｓ１１１１）。
【０１１６】
ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４は、ストレージシステム３０からの応答を受信すると（Ｓ１１１２）、処理を終了する。
【０１１７】
この処理によってＶＤＥＶにＬＤＥＶが設定される。
【０１１８】
図８は、ＶＤＥＶ管理情報の説明図である。
【０１１９】
ＶＤＥＶ管理情報は、ＶＤＥＶ固有情報３５１４１から構成される。
【０１２０】
ＶＤＥＶ固有情報３５１４１は、ＶＤＥＶ番号（ＶＤＥＶ＃）３５１４２、エミュレーションタイプ３５１４３、総サイズ３５１４４、残サイズ３５１４５、デバイス属性３５１４６、デバイス状態３５１４７、設定ＬＤＥＶ数３５１４８、ＬＤＥＶ番号３５１４９、先頭ＶＤＥＶ−ＳＬＯＴ＃３５１５０及び終了ＶＤＥＶ−ＳＬＯＴ＃３５１５１で構成される。
【０１２１】
ＶＤＥＶ＃３５１４２は、ＶＤＥＶの識別子である。エミュレーションタイプ３５１４３はＶＤＥＶのエミュレーションタイプの識別子である。総サイズ３５１４４は、ＶＤＥＶに設定されている総サイズである。残サイズ３５１４５はＶＤＥＶの未使用の領域のサイズである。
【０１２２】
デバイス属性３５１４６は、ＶＤＥＶに定義されている属性の識別子である。そのＶＤＥＶが第１種ＶＤＥＶである場合には第１種ＶＤＥＶを示す識別子が格納され、そのＶＤＥＶが第２種ＶＤＥＶであり、仮想ボリュームに設定されている場合には第２種ＶＤＥＶを示す識別子が格納される。
【０１２３】
デバイス状態３５１４７は、ＶＤＥＶの状態を示す識別子である。ＶＤＥＶの状態は、正常、閉塞、障害閉塞等がある。閉塞は、パンク閉塞など、障害の発生意外の要因によって閉塞されていることを示す。障害閉塞は、デバイスの何れかに障害が発生しておりそのために閉塞されていることを示す。
【０１２４】
設定ＬＤＥＶ数３５１４８は、ＶＤＥＶに設定されているＬＤＥＶの総数である。ＬＤＥＶ番号３５１４９はＶＤＥＶに設定されているＬＤＥＶの番号が格納される。先頭ＶＤＥＶ−ＳＬＯＴ＃３５１５０は、設定されているＬＤＥＶの物理的な先頭のスロット番号の識別子である。終了ＶＤＥＶ−ＳＬＯＴ＃３５１５１は、設定されているＬＤＥＶの物理的な最終のスロット番号である。このＬＤＥＶ番号３５１４９、先頭ＶＤＥＶ−ＳＬＯＴ＃３５１５０及び終了ＶＤＥＶ−ＳＬＯＴ＃３５１５１は、ＬＤＥＶ数と同じ数だけＬＤＥＶ番号毎に設定される。
【０１２５】
図９は、ＬＤＥＶ管理情報の説明図である。
【０１２６】
ＬＤＥＶ管理情報は、ＶＤＥＶ固有情報３５１２１から構成される。
【０１２７】
ＬＤＥＶ固有情報３５１２１は、ＬＤＥＶ番号（ＬＤＥＶ＃）３５１２２、エミュレーションタイプ３５１２３、サイズ３５１２４、先頭スロット番号３５１２５、終了スロット番号３５１２６、パス定義情報３５１２７、デバイス属性３５１２８、デバイス状態３５１２９、プログラム使用状況３５１３００及びＰＯＯＬ−ＩＤ３５１３０１で構成される。
【０１２８】
ＬＤＥＶ＃３５１２２は、ＬＤＥＶの識別子である。エミュレーションタイプ３５１２３はＬＤＥＶのエミュレーションタイプの識別子である。サイズ３５１２４は、ＬＤＥＶに設定されている総サイズである。
【０１２９】
先頭スロット番号３５１２５は設定されたＬＤＥＶの先頭のスロット番号の識別子である。終了スロット番号３５１２６は設定されたＬＤＥＶの最終のスロット番号である。パス定義情報３５１２７は、ホスト計算機１０に定義されたパスの識別子である。
【０１３０】
デバイス属性３５１２８は、ＬＤＥＶの属性の識別子である。ＬＤＥＶが第１種ＬＤＥＶである場合には第１種ＬＤＥＶを示す識別子が格納され、ＬＤＥＶが第２種ＬＤＥＶである場合には第２種ＬＤＥＶを示す識別子が格納される。また、ＬＤＥＶがストレージプールに設定されている場合は、プール属性を示す識別子が格納される。
【０１３１】
デバイス状態３５１２９は、そのＬＤＥＶが所属するＶＤＥＶの状態を示す識別子である。ＶＤＥＶの状態は、正常、閉塞、障害閉塞等がある。閉塞は、パンク閉塞など、障害の発生意外の要因によって閉塞されていることを示す。障害閉塞は、デバイスの何れかに障害が発生しておりそのために閉塞されていることを示す。
【０１３２】
プログラム使用状況３５１３００は、ＬＤＥＶが何れかのプログラムによって処理中である場合に、そのプログラムの識別子が格納される。ＰＯＯＬ−ＩＤ３５１３０１は、ＬＤＥＶがストレージプールに設定されている場合に、その識別子が格納される。
【０１３３】
図１０は、アドレス管理テーブルの説明図である。
【０１３４】
アドレス管理テーブル３５１１は、ターゲットデバイスとＬＤＥＶとＶＤＥＶと物理デバイスとのアドレスのマッピング情報を格納する。
【０１３５】
アドレス管理テーブル３５１１は、ターゲットデバイス−ＬＤＥＶマッピング情報３５１１１、ＬＤＥＶ−ＶＤＥＶマッピング情報３５１１２及びＶＤＥＶ−ＰＤＥＶマッピング情報３５１１３を含む。
【０１３６】
ターゲットデバイス−ＬＤＥＶマッピング情報３５１１１は、ターゲットデバイスのアドレスとＬＤＥＶのアドレスとの対応が格納される。
【０１３７】
ＬＤＥＶ−ＶＤＥＶマッピング情報３５１１２は、ＬＤＥＶのアドレスとＶＤＥＶのアドレスが格納される。
【０１３８】
ＶＤＥＶ−ＰＤＥＶマッピング情報３５１１３は、ＶＤＥＶのアドレスとそのＲＡＩＤグループ番号（又はパリティグループ）とＰＤＥＶのアドレスか格納される。
【０１３９】
ストレージシステム３０は、このアドレス管理テーブルを参照することによって、ターゲットデバイスのアドレスがどのＬＤＥＶのどのアドレスであるかを知ることができる。また、ＬＤＥＶのアドレスがどのＶＤＥＶのどのアドレスであるかを知ることができる。また、ＶＤＥＶのアドレスがどのＲＡＩＤグループに属しており、どのＰＤＥＶのどのアドレスであるかを知ることができる。
【０１４０】
図１１Ａ及び図１１Ｂは、ＶＤＥＶ及びＬＤＥＶの設定の他の例のフローチャートである。
【０１４１】
このフローチャートは、前述した図６及び図７の処理を一括して実行して、仮想ボリューム属性のＶＤＥＶ及びＬＤＥＶを設定する処理である。
【０１４２】
まず、管理者は、入力手段２１０を操作して、ＶＤＥＶ番号、ＬＤＥＶ番号、ＶＤＥＶに設定するエミュレーションタイプ、ＬＤＥＶのサイズ、先頭スロット番号、終了スロット番号及び第１種又は第２種であるかを設定する（Ｓ１２０１）。
【０１４３】
ストレージ構成管理プログラム２４０４は、設定された情報を含むＬＤＥＶ作成の指示コマンドを生成する。生成した指示コマンドをネットワークアダプタ２５０を介してストレージシステム３０に送信する（Ｓ１２０２）。
【０１４４】
ストレージシステム３０において、ストレージシステム管理装置から送信された指示コマンドは、ネットワークアダプタ３２０を介してコマンド制御プログラム３５０１が受信する（Ｓ１２０３）。コマンド制御プログラム３５０１は、受信した指示コマンドの内容を確認する。指示コマンドの内容が無効である場合はこれを拒否する（Ｓ１２０４）。
【０１４５】
コマンド制御プログラム３５０１は、指示コマンドがＶＤＥＶの設定である場合は、構成制御プログラム３５０３に受信した指示コマンドを渡す。構成制御プログラム３５０３は指示コマンドを受け取って、ＶＤＥＶ作成処理を実行する（Ｓ１２０５）。
【０１４６】
図１１Ｂに移行し、構成制御プログラム３５０３は、指示コマンドに係るＶＤＥＶ番号を確認する。無効なＶＤＥＶ番号である場合は、指示コマンドを拒否する（Ｓ１２０６）。
【０１４７】
次に構成制御プログラム３５０３は、指示コマンドに係るＬＤＥＶ番号を確認する。無効なＬＤＥＶ番号である場合は、指示コマンドを拒否する（Ｓ１２０７）。
【０１４８】
次に、構成制御プログラム３５０３は、ＬＤＥＶ管理情報３５１２を参照して、指示コマンドに係るＬＤＥＶ番号のＬＤＥＶ固有情報が定義されているかを確認する。既にそのＬＤＥＶ固有情報が定義されている場合は、コマンドを拒否する（Ｓ１２０８）。
【０１４９】
次に、構成制御プログラム３５０３は、ＶＤＥＶ管理情報３５１４を参照して、指示コマンドに係るＶＤＥＶ番号のＶＤＥＶ固有情報から残サイズを確認する。そのサイズは指示コマンドに係るＬＤＥＶを定義可能な十分な容量があるか確認する。容量が不足している場合はコマンドを拒否する（Ｓ１２０９）。
【０１５０】
次に、構成制御プログラム３５０３は、指示コマンドに係る先頭スロット番号及び終了スロット番号を確認する。そして、指示コマンドに係るＶＤＥＶのアドレス範囲内にＬＤＥＶを定義可能であるか確認する。ＬＤＥＶが範囲内に定義できない場合はコマンドを拒否する（Ｓ１２１０）。
【０１５１】
次に、構成制御プログラム３５０３は、指定コマンドに係るＬＤＥＶ番号のＬＤＥＶ固有情報を設定する（Ｓ１２１１）。具体的には、構成制御プログラム３５０３は、指示コマンドに係るＬＤＥＶ番号のＬＤＥＶ固有情報を新たに作成する。そのＬＤＥＶ固有情報に、ＬＤＥＶ番号、先頭スロット番号、終了スロット番号及びデバイス属性を定義する。第２種ＬＤＥＶの場合は、デバイス属性を「第２種ＬＤＥＶ」に設定する。
【０１５２】
ＬＤＥＶ固有情報を設定した後に、指示コマンドに係るＶＤＥＶ番号のＶＤＥＶ固有情報を設定する（Ｓ１２１２）。具体的には、設定したＬＤＥＶ数を加算し、指示コマンドに係るＬＤＥＶ番号、残サイズ、先頭ＬＤＥＶスロット及び終了ＬＤＥＶスロットを設定する。
【０１５３】
これによって指示コマンドに係るＬＤＥＶが、ＶＤＥＶに設定される。
【０１５４】
図１１Ａに戻り、コマンド制御プログラム３５０１は、ＬＤＥＶ設定の処理が完了すると、ストレージシステム管理装置２０に、コマンド成功の応答を送信する（Ｓ１２１５）。
【０１５５】
ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４は、ストレージシステム３０からの応答を受信すると（Ｓ１２１６）、処理を終了する。
【０１５６】
この処理によって仮想ボリューム属性のＶＤＥＶ及びＬＤＥＶが設定される。
【０１５７】
次に、ストレージプールの設定を説明する。
【０１５８】
前述のように、ストレージシステム３０は、ＬＤＥＶをストレージプールに設定して、それを仮想ボリュームの記憶領域に設定する。
【０１５９】
図１２Ａ及び図１２Ｂは、ストレージプールの設定のフローチャートである。
【０１６０】
ストレージプールの設定は、ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４によって実行される。
【０１６１】
まず、管理者は、ストレージプールに設定する第１種ＬＤＥＶの情報を入力する。管理者、ストレージプールの識別子であるＰＯＯＬ−ＩＤ、閾値、ＬＤＥＶ数及びＬＤＥＶ番号を設定する。そして、管理者は、入力手段２１０を操作して、ＰＯＯＬ−ＩＤ、閾値、ＬＤＥＶ数及びＬＤＥＶ番号の情報を設定する（Ｓ２００１）。なお、ストレージプールに設定するＬＤＥＶは、物理デバイスである第１種ＬＤＥＶである必要がある。
【０１６２】
ストレージ構成管理プログラム２４０４は、入力された情報を含むストレージプール設定の指示コマンドを生成してネットワークアダプタ２５０を介してストレージシステム３０に送信する（Ｓ２００２）。
【０１６３】
ストレージシステム３０において、ストレージシステム管理装置から送信された指示コマンドは、ネットワークアダプタ３２０を介してコマンド制御プログラム３５０１が受信する（Ｓ２００３）。
【０１６４】
コマンド制御プログラム３５０１は、受信した指示コマンドの内容を確認する。指示コマンドの内容が無効である場合はこれを拒否する（Ｓ２００４）。
【０１６５】
コマンド制御プログラム３５０１は、指示コマンドがストレージプールの設定である場合は、プール制御プログラム３５０７に受信した指示コマンドを渡す。プール制御プログラム３５０７は指示コマンドを受け取って、ストレージプール設定処理を実行する（Ｓ２００５）。
【０１６６】
図１２Ｂに移り、プール制御プログラム３５０７は、まず、指示コマンドに係るＰＯＯＬ−ＩＤが有効であるかを確認する。かつ、そのＰＯＯＬ−ＩＤは未だ未定義であるかを確認する（Ｓ２００６）。
【０１６７】
次に、プール制御プログラム３５０７は、ＰＯＯＬ管理情報３５２１から、指示コマンドに係るＰＯＯＬ−ＩＤのＰＯＯＬ固有情報を取得し、状態をＰＯＯＬ未定義からＰＯＯＬ定義中に設定する（Ｓ２００７）。
【０１６８】
次に、プール制御プログラム３５０７は、指示コマンドに係るＬＤＥＶ番号が使用可能であるか否かを確認する（Ｓ２００８）。具体的には、指示コマンドに係るＬＤＥＶ番号が閉塞している又はフォーマット中である場合は、当該ＬＤＥＶは使用不可であるためコマンドを拒否する（Ｓ２００９）。また、指示コマンドに係るＬＤＥＶが既に使用中である場合（例えば、ＬＤＥＶがパス定義済みである場合、コピー機能等によって使用中である場合又はコピー先として予約中に設定されている場合）は、当該ＬＤＥＶは使用不可であるためコマンドを拒否する（Ｓ２０１０）。
【０１６９】
次に、プール制御プログラム３５０７は、ＰＯＯＬ固有情報に、容量、空き容量、閾値、ＰＯＯＬ−ＶＯＬ数、ＰＯＯＬ−ＶＯＬデバイスリストを設定する（Ｓ２０１１）。次に、ストレージプールに設定した第１種ＬＤＥＶにＰＳＣＢ３５２４を割り当てる（Ｓ２０１２）。このＰＳＣＢ３５２４は図１４で説明する。
【０１７０】
このプール制御プログラム３５０７の処理によって第１種ＬＤＥＶがストレージプールに設定される。
【０１７１】
ストレージプールの設定後、構成制御プログラム３５０３は、ＬＤＥＶ管理情報３５１２を設定する（Ｓ２０１３）。具体的には、ＬＤＥＶ管理情報３５１２を参照して、ストレージプールを設定したＬＤＥＶに対応するＬＤＥＶ固有情報を取得する。取得したＬＤＥＶ固有情報のデバイス属性３５１２８にストレージプールであることを示す識別子（ＰＯＯＬ−ＶＯＬ属性）を設定する。また、ＰＯＯＬ−ＩＤ３５１３０１に、指示コマンドに係るＰＯＯＬ−ＩＤを設定する。
【０１７２】
次に、構成制御プログラム３５０３は、ＰＯＯＬ管理情報３５２１のＰＯＯＬ−ＩＤの状態を「ＰＯＯＬ有効」に設定する（Ｓ２０１４）。そして、ストレージシステム管理装置２０に、コマンドが成功した旨の応答を送信する（Ｓ２０１５）。
【０１７３】
ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４は、ストレージシステム３０からの応答を受信すると（Ｓ２０１６）、処理を終了する。
【０１７４】
この処理によって第１種ＬＤＥＶがストレージプールに設定される。
【０１７５】
図１３は、ＰＯＯＬ管理情報の説明図である。
【０１７６】
ＰＯＯＬ管理情報３５２１は、ＰＯＯＬ固有情報３５２１１から構成される。
【０１７７】
ＰＯＯＬ固有情報３５２１１は、ＰＯＯＬ−ＩＤ３５２１２、属性／用途３５２１３、エミュレーションタイプ３５２１４、容量３５２１５、空き容量３５２１６、閾値３５２１７、状態３５２１８、ＰＯＯＬ−ＶＯＬ数３５２１９、ＰＯＯＬ−ＶＯＬデバイス番号リスト３５２２０、ＰＯＯＬを利用しているデバイス数３５２２１及びＰＯＯＬを利用しているデバイス番号３５２２２で構成される。
【０１７８】
ＰＯＯＬ−ＩＤ３５２１２は、ＰＯＯＬの識別子である。属性／用途３５２１３は、そのストレージプールの属性及び用途を示す識別子である。属性は、ＰＳＣＢ３５２４の連結の形態（図１５及び図１６で後述）である。用途は、例えばスナップショットやＳＹＳ領域など、運用形態の用途である。
【０１７９】
エミュレーションタイプ３５２１４はストレージプールのエミュレーションタイプの識別子である。容量３５２１５は、ストレージプールの総容量である、空き容量３５２１６はストレージプールの未使用の領域のサイズである。
【０１８０】
閾値３５２１７は、ストレージプールが許容する最大のデータ格納容量である。状態３５２１８は、ストレージプールの現在の状態である。例えば、定義中、拡張中、有効等である。ＰＯＯＬ−ＶＯＬ数３５２１９は、ストレージプールとして設定されているＬＤＥＶの総数である。ＰＯＯＬ−ＶＯＬデバイス番号リスト３５２２０はストレージプールとして設定されているＬＤＥＶ番号の一覧である。ＰＯＯＬを利用しているデバイス数３５２２１は、ストレージプールのＬＤＥＶが関連付けられている第２種ＬＤＥＶの数である。ＰＯＯＬを利用しているデバイス番号３５２２２は、ストレージプールのＬＤＥＶが関連付けられている第２種ＬＤＥＶ番号の一覧である。
【０１８１】
図１４は、ＶＶＯＬ−ＤＩＲ３５２３及びＰＳＣＢ３５２４の説明図である。
【０１８２】
ＶＶＯＬ−ＤＩＲ３５２３は、仮想ボリュームの記憶領域である第２種ＬＤＥＶの構成の情報である。ＰＳＣＢ（POOL Slot Control Brock）３５２４は、ストレージプールに設定された第１種ＬＤＥＶの構成の情報である。
【０１８３】
前述のように、ストレージシステム３０は、ＰＤＥＶ３４からＲＡＩＤ構成によって第１種ＶＤＥＶを構成する。この第１種ＶＤＥＶを、記憶領域である第１種ＬＤＥＶに分割する。前述の図１１の処理によって、第１種ＬＤＥＶがストレージプールに設定される。このストレージプールに設定された第１種ＬＤＥＶによって構成されるボリュームをＰＯＯＬ−ＶＯＬ９００とする。
【０１８４】
また、ストレージシステム３０は、仮想ボリューム（ＶＶＯＬ）を設定する。第２種ＶＤＥＶを構成する。この第２種ＶＤＥＶを記憶領域である第２種ＬＤＥＶに分割する。
【０１８５】
ストレージシステム３０は、ＶＶＯＬ８００の第２種ＬＤＥＶを、ＰＯＯＬ−ＶＯＬ９００の第１種ＬＤＥＶに割り当てる。これによって、ホスト計算機１０がアクセスする仮想ボリュームの記憶領域が、物理デバイスであるＰＤＥＶ３４から構成された第１種ＬＤＥＶに設定される。
【０１８６】
ＶＶＯＬの構成は、ＶＶＯＬ−ＤＩＲ３５２３に格納される。
【０１８７】
ＶＶＯＬ−ＤＩＲ３５２３は、ＬＤＥＶ番号（ＬＤＥＶ＃）３５２３１及びエントリ３５２３２によって構成される。
【０１８８】
ＬＤＥＶ番号（ＬＤＥＶ＃）３５２３１は第２種ＬＤＥＶの識別子である。エントリ３５２３２は、第２種ＬＤＥＶの構成情報である。このエントリ３５２３２は、第２種ＬＤＥＶアドレス３５２３３及びＰＳＣＢポインタ３５２３４から構成される。
【０１８９】
第２種ＬＤＥＶアドレス３５２３３は、ＶＶＯＬの第２種ＬＤＥＶのアドレスが格納される。
【０１９０】
ＰＳＣＢポインタ３５２３４は、第２種ＬＤＥＶがＰＯＯＬ−ＶＯＬ９００の第１種ＬＤＥＶに割り当てられている場合に、その第１種ＬＤＥＶの領域のポインタが格納される。なお、初期状態では第２種ＬＤＥＶは第１種ＬＤＥＶに割り当てられていないので、ＰＳＣＢポインタ３５２３４には「ＮＵＬＬ」が格納される。
【０１９１】
ＰＳＣＢ（POOL Slot Control Brock）３５２４は、ストレージプールに設定されている第１種ＬＤＥＶの情報である。このＰＳＣＢ３５２４は、ストレージプールに設定されている第１種ＬＤＥＶのスロット毎に設定される。
【０１９２】
ＰＳＣＢ３５２４は、ＬＤＥＶ番号（ＬＤＥＶ＃）３５２４１、ＰＯＯＬ−ＶＯＬアドレス３５２４２、ＰＳＣＢ前方ポインタ３５２４３及びＰＳＣＢ後方ポインタ３５２４４から構成される。
【０１９３】
ＬＤＥＶ番号（ＬＤＥＶ＃）３５２４１は、ＰＯＯＬ−ＶＯＬでの第１種ＬＤＥＶの識別子である。ＰＯＯＬ−ＶＯＬアドレス３５２４２は、ＰＯＯＬ−ＶＯＬ９００における第１種ＬＤＥＶのアドレスである。
【０１９４】
ＰＳＣＢ前方ポインタ３５２４３及びＰＳＣＢ後方ポインタ３５２４４は、ＰＯＯＬ−ＶＯＬ９００内の第１種ＬＤＥＶの前後のスロットの識別子である。
【０１９５】
また、ＰＯＯＬ−ＶＯＬ９００の領域のうち、未使用の領域は、その先頭がフリーＰＳＣＢキュー３５２４０で示される。フリーＰＳＣＢキュー３５２４０は、次のスロットを示すＰＳＣＢ３５２４へのポインタを含む。
【０１９６】
ストレージシステム３０は、フリーＰＳＣＢキュー３５２４０に示されたポインタを参照して、次のＰＳＣＢ３５２４を得る。さらに、次のＰＳＣＢ３５２４のＰＳＣＢ後方ポインタ３５２４５を参照して、段階的にＰＳＣＢ３５２４を辿る。そして、その未使用の領域の最終のスロットに対応するＰＳＣＢ３５２４を得る。この最後のＰＳＣＢ３５２４のＰＳＣＢ後方ポインタ３５２４４はフリーＰＳＣＢキュー３５２４０である。ストレージシステム３０は、フリーＰＳＣＢキュー３５２４０を辿り、ＰＳＣＢ３５２４のポインタによって連結された集合によって、ストレージプールのＰＯＯＬ−ＶＯＬ９００の未使用の領域を知ることができる。
【０１９７】
前述した図１２のステップ２０１２において、ストレージプールに設定された第１種ＬＤＥＶに対応するＰＳＣＢ３５２４を設定する。具体的には、ストレージプールに設定された第１種ＬＤＥＶの各スロットに対応するＰＳＣＢ３５２４を設定し、さらにフリーＰＳＣＢキュー３５２４０を設定する。初期状態ではストレージプールは全て未使用であるため、フリーＰＳＣＢキュー３５２４０によって連結される集合は、ストレージプールに設定された第１種ＬＤＥＶの全ての領域に対応する。
【０１９８】
そして、ストレージシステム３０は、このストレージプールの領域を使用する場合に、必要なスロット分のＰＳＣＢ３５２４を第２種ＬＤＥＶであるＶＶＯＬ−ＤＩＲ３５２３に割り当てることで、当該領域が使用可能となる。具体的には、ストレージシステム３０は、フリーＰＳＣＢキュー３５２４０を参照する。そして、第２種ＬＤＥＶに割り当てる必要な領域分のＰＳＣＢ３５２４を取得する。この取得したＰＳＣＢ３５２４を、それぞれＶＶＯＬ−ＤＩＲ３５２３のエントリに割り当てる。すなわち、ＶＶＯＬ−ＤＩＲ３５２３の各エントリのＰＳＣＢポインタ３５２３４に、対応するＰＳＣＢ３５２４を示すポインタを格納する。なお、割り当て済みのＰＳＣＢ３５２４は、フリーＰＳＣＢキュー３５２４０の連結から外す。
【０１９９】
これによって、第２種ＬＤＥＶの各スロットが、ＶＶＯＬ−ＤＩＲ３５２３の各エントリのＰＳＣＢポインタ３５２３４で示されるＰＳＣＢ３４２４に割り当てられる。ＰＳＣＢ３５２４は第１種ＬＤＥＶのスロットに対応しているので、結果として、第２種ＬＤＥＶが第１種ＬＤＥＶに割り当てられ、ホスト計算機１０のアクセス対象である仮想ボリュームが物理デバイスとして使用可能となる。
【０２００】
図１５は、ＰＳＣＢ３５２４の連結の一例の説明図である。
【０２０１】
ＰＯＯＬ−ＶＯＬ９００の第１種ＬＤＥＶのＰＳＣＢ３５２４の連結にはいくつかの方法がある。
【０２０２】
図１５の例では、同一のＰＯＯＬ−ＶＯＬの第１種ＬＤＥＶの各スロットを連続して連結する。この連結方法をシーケンシャルと呼ぶ。このように設定することで、ＰＯＯＬ−ＶＯＬは、第１種ＬＤＥＶ上の連続した領域となる。このようにすることによって、ホスト計算機１０が、複数のＬＤＥＶにまたがるような大きなデータを格納した場合には、ストレージシステム３０では、一つのＰＯＯＬ−ＶＯＬのみのアクセスとなり、アクセス速度が向上する。
【０２０３】
図１６は、ＰＳＣＢ３５２４の連結の他の例の説明図である。
【０２０４】
図１６の例では、異なるＰＯＯＬ−ＶＯＬ９００に渡って分散して第１種ＬＤＥＶの各スロットを連結する。この連結方法をランダムと呼ぶ。このようにすることによって、ホスト計算機１０が、ＬＤＥＶの全体の容量を超えない比較的小さなデータを多数格納する場合には、ストレージシステム３０では、異なる第１種ＬＤＥＶに並列したアクセスとなり、アクセス速度が向上する。
【０２０５】
このように、ストレージシステム３０は、アクセスされるデータに適したＰＳＣＢ３５２４の連結方法を採ることができる。
【０２０６】
図１７は、第２種ＬＤＥＶの設定のフローチャートである。
【０２０７】
この処理は、仮想ボリュームに設定される第２種ＬＤＥＶをストレージプールに関連付ける処理である。
【０２０８】
この処理は、ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４によって実行される。この処理によってストレージプールに関連付けられた第２種ＬＤＥＶを、図１１の処理によってストレージプールに設定された第１種ＬＤＥＶに割り当てることで、ホスト計算機１０が仮想ボリュームを記憶領域として使用できる。
【０２０９】
まず、管理者は、入力手段２１０を操作して、ストレージプールのＰＯＯＬ−ＶＯＬの識別子であるＰＯＯＬ−ＩＤ及び関連付ける第２種ＬＤＥＶのＬＤＥＶ番号を設定する（Ｓ３００１）。
【０２１０】
ストレージ構成管理プログラム２４０４は、設定された情報を含むストレージプール関連付けの指示コマンドを生成する。生成した指示コマンドをネットワークアダプタ２５０を介してストレージシステム３０に送信する（Ｓ３００２）。
【０２１１】
ストレージシステム３０において、ストレージシステム管理装置２０から送信された指示コマンドは、ネットワークアダプタ３２０を介してコマンド制御プログラム３５０１が受信する（Ｓ３００３）。コマンド制御プログラム３５０１は、受信した指示コマンドの内容を確認する。指示コマンドの内容が無効である場合はこれを拒否する（Ｓ３００４）。
【０２１２】
コマンド制御プログラム３５０１は、指示コマンドがストレージプール関連付けである場合は、プール制御プログラム３５０７に受信した指示コマンドを渡す。プール制御プログラム３５０７は指示コマンドを受け取って、第２種ＬＤＥＶ設定処理を実行する（Ｓ３００５）。
【０２１３】
まず、プール制御プログラム３５０７は、指示コマンドに係るＬＤＥＶ番号の第２種ＬＤＥＶのＶＶＯＬ−ＤＩＲ３５２３を作成する（Ｓ３００６）。具体的には、ＶＶＯＬ−ＤＩＲ３５２３のＬＤＥＶ＃３５２３１に当該ＬＤＥＶ番号を格納する。そして、そのＬＤＥＶ番号の各スロットに対応するＶＶＯＬ−ＤＩＲ３５２３のエントリ３５２３２作成する。
【０２１４】
次に、プール制御プログラム３５０７は、ＬＤＥＶ管理情報３５１２を参照して、指示コマンドに係る第２種ＬＤＥＶのＬＤＥＶ固有情報を取得する。そして、取得したＬＤＥＶ固有情報のＰＯＯＬ−ＩＤ３５１３０１に、指示コマンドに係るＰＯＯＬ−ＩＤを設定する（Ｓ３００７）。
【０２１５】
次に、プール制御プログラム３５０７は、ＰＯＯＬ管理情報３５２１を参照して、指示コマンドに係るＰＯＯＬ−ＩＤのＰＯＯＬ固有情報を設定する（Ｓ３００８）。具体的には、ＰＯＯＬ固有情報のＰＯＯＬを利用しているデバイス数及びＰＯＯＬを利用しているデバイス番号に、指示コマンドに係る仮想ボリュームに含まれる第２種ＬＤＥＶの情報を設定する。
【０２１６】
ストレージプールの関連付け後、構成制御プログラム３５０３は、ストレージシステム管理装置２０に、コマンドが成功した旨の応答を送信する（Ｓ３００９）。ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４は、ストレージシステム３０からの応答を受信すると（Ｓ３０１０）、処理を終了する。
【０２１７】
この処理によって仮想ボリュームである第２種ＬＤＥＶがストレージプールに関連付けられる。
【０２１８】
図１８は、パスの定義のスローチャートである。
【０２１９】
この処理は、ＬＤＥＶ（第１種又は第２種）をホスト計算機１０のターゲットデバイスとして設定する処理である。第２種ＬＤＥＶをターゲットデバイスに設定する場合は、そのターゲットデバイスは仮想ボリュームである。
【０２２０】
この処理は、ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４によって実行される。
【０２２１】
まず、管理者は、入力手段２１０を操作して、ターゲットデバイスの情報を設定する。具体的には、ターゲットデバイスを利用するホスト計算機１０と接続されるホストアダプタ３１０のポート番号、ターゲットデバイス番号及び一つ以上のＬＤＥＶ番号を設定する（Ｓ４００１）。
【０２２２】
ストレージ構成管理プログラム２４０４は、設定された情報を含むパスの定義の指示コマンドを生成する。生成した指示コマンドをネットワークアダプタ２５０を介してストレージシステム３０に送信する（Ｓ４００２）。
【０２２３】
ストレージシステム３０において、ストレージシステム管理装置２０から送信された指示コマンドは、ネットワークアダプタ３２０を介してコマンド制御プログラム３５０１が受信する（Ｓ４００３）。コマンド制御プログラム３５０１は、受信した指示コマンドの内容を確認する。指示コマンドの内容が無効である場合はこれを拒否する（Ｓ４００４）。
【０２２４】
コマンド制御プログラム３５０１は、指示コマンドがパスの定義である場合は、パス制御プログラム３５０２に受信した指示コマンドを渡す。パス制御プログラム３５０２は指示コマンドを受け取って、パス定義処理を実行する（Ｓ４００５）。
【０２２５】
パス制御プログラム３５０２は、まず、指示コマンドに係るＬＤＥＶ番号の状態を確認する（Ｓ４００６）。指示コマンドに係るＬＤＥＶが閉塞している、又はフォーマット中である場合は、当該ＬＤＥＶは使用不可であるためコマンドを拒否する。
【０２２６】
次に、パス制御プログラム３５０２は、指示コマンドに係るＬＤＥＶのデバイス属性を確認する（Ｓ４００７）。デバイス属性が「ＰＯＯＬ−ＶＯＬ」である場合は、当該ＬＤＥＶはストレージプールに設定されており、ホスト計算機１０からはアクセスできないので、コマンドを拒否する。
【０２２７】
次に、パス制御プログラム３５０２は、指示コマンドを許可する場合は、まず、ターゲットデバイス情報３５１３の指示コマンドに係るポート番号のターゲットデバイステーブルを編集する（Ｓ４００８）。
【０２２８】
具体的には、ターゲットデバイステーブルに、指示コマンドに係るＬＤＥＶ番号を格納する（Ｓ４００９）。また、ターゲットデバイステーブルに指示コマンドに係るＬＤＥＶの容量を格納する（Ｓ４０１０）。また、ターゲットデバイステーブルの状態を「パス定義済み」に変更する（Ｓ４０１１）。また、許可ホスト情報を設定する（Ｓ４０１２）。
【０２２９】
このパス制御プログラム３５０２の処理によってホスト計算機１０とターゲットデバイスとのパスが定義される。
【０２３０】
パスの定義後、ストレージシステム管理装置２０に、コマンドが成功した旨の応答を送信する（Ｓ４０１３）。
【０２３１】
ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４は、ストレージシステム３０からの応答を受信すると（Ｓ４０１４）、処理を終了する。
【０２３２】
この処理によって仮想ボリュームがターゲットデバイスとして設定される。
【０２３３】
図１９は、ターゲットデバイス情報３５１３の説明図である。
【０２３４】
ターゲットデバイス情報３５１３は、ポート番号（ポート＃）毎に設定されるターゲットデバイステーブル３５１３１から構成される。
【０２３５】
ターゲットデバイステーブル３５１３１は、ポート番号３５１３２、ターゲットデバイス番号３５１３３、ＬＤＥＶ数３５１３４、ＬＤＥＶ番号３５１３５、属性３５１３６、状態３５１３７、容量３５１３８及び許可ホスト情報３５１３９を含む。
【０２３６】
ポート番号３５１３２は、ホスト計算機１０と接続するホストアダプタ３１０のポート番号である。ターゲットデバイス番号３５１３３は、ホスト計算機１０のアクセス先となるターゲットデバイスの識別子である。ＬＤＥＶ数３５１３４は、ターゲットデバイスに設定されたＬＤＥＶの総数である。ＬＤＥＶ番号３５１３５は、ターゲットデバイスに設定されたＬＤＥＶの番号の一覧である。
【０２３７】
属性３５１３６は、ターゲットデバイスの属性を示す識別子である。ターゲットデバイスに設定されているＬＤＥＶが第１種ＬＤＥＶである場合には第１種ＬＤＥＶを示す識別子が格納され、ＬＤＥＶが第２種ＬＤＥＶである場合には第２種ＬＤＥＶを示す識別子が格納される。またそのターゲットデバイスがコマンドデバイスである場合はコマンドデバイスを示す識別子が格納される。
【０２３８】
状態３５１３６は、ターゲットデバイスの状態であり、ターゲットデバイスに対応するＶＤＥＶの状態を示す識別子である。状態には、正常、閉塞、障害閉塞等がある。容量３５１３７は、ターゲットデバイスのボリュームの総容量である。許可ホスト情報３５１３８は、ターゲットデバイスへのアクセスを許可されたホスト計算機１０の識別子である。
【０２３９】
次にストレージプールの変更を説明する。
【０２４０】
前述の図１２Ａ及び図１２Ｂの処理によって、第１種ＬＤＥＶがストレージプールに設定される。ストレージシステム管理装置２０は、このストレージプールに設定された第１種ＬＤＥＶを変更できる。変更は、例えば第１種ＬＤＥＶの拡張、縮小、解除である。
【０２４１】
図２０は、ストレージプールの拡張のフローチャートである。
【０２４２】
ストレージプールの拡張とは、ストレージプールにさらに第１種ＬＤＥＶを追加して、ストレージプールの第１種ＬＤＥＶの数を増やして、ストレージプールの容量を拡張する処理である。
【０２４３】
ストレージシステム管理装置２０の処理及びストレージシステム３０のコマンド制御プログラムの処理は、前述した図１２Ａの処理と同様である。すなわち、まず、管理者は、ストレージプールに拡張して設定する第１種ＬＤＥＶの情報を入力する。（Ｓ２００１）。ストレージ構成管理プログラム２４０４は、入力された情報を含むストレージプール設定の指示コマンドをストレージシステム３０に送信する（Ｓ２００２）。ストレージシステム３０において、コマンド制御プログラム３５０１がこのコマンドを受信する（Ｓ２００３）。コマンド制御プログラム３５０１は、受信した指示コマンドの内容が無効である場合はこれを拒否する（Ｓ２００４）。
【０２４４】
そして、コマンド制御プログラム３５０１は、指示コマンドがストレージプールの拡張である場合は、プール制御プログラム３５０７に受信した指示コマンドを渡す。プール制御プログラム３５０７は指示コマンドを受け取って、ストレージプール拡張処理を実行する（Ｓ２００５）。
【０２４５】
図２０に移り、プール制御プログラム３５０７は、まず、指示コマンドに係るＰＯＯＬ−ＩＤが有効であるかを確認する。さらに、ＰＯＯＬ管理情報３５２１から指示コマンドに係るＰＯＯＬ−ＩＤのＰＯＯＬ固有情報を取得して、取得したＰＯＯＬ固有情報の状態が有効であるかを確認する（Ｓ２１０６）。ＰＯＯＬ−ＩＤが無効である場合、又は、ＰＯＯＬの状態が有効でない場合（例えば、無効、拡張中、縮小中等である場合）は、指示コマンドを拒否する。
【０２４６】
次に、プール制御プログラム３５０７は、取得したＰＯＯＬ固有情報の状態をＰＯＯＬ拡張中に設定する（Ｓ２１０７）。
【０２４７】
次に、指示コマンドに係るＬＤＥＶ番号が使用可能であるか否かを確認する（Ｓ２１０８）。
【０２４８】
具体的には、指示コマンドに係る第１種ＬＤＥＶが閉塞している、又はフォーマット中である場合は、当該第１種ＬＤＥＶは使用不可であるためコマンドを拒否する（Ｓ２１０９）。
【０２４９】
また、指示コマンドに係るＬＤＥＶが、既に使用中である場合（例えば、その第１種ＬＤＥＶがパス定義済みである場合、コピー機能等によって使用中である場合、又は、コピー先として予約中に設定されている場合）は、当該第１種ＬＤＥＶは使用不可であるためコマンドを拒否する（Ｓ２１１０）。
【０２５０】
プール制御プログラム３５０７は、指示コマンドを許可する場合は、指示コマンドに係るＰＯＯＬ−ＩＤのＰＯＯＬ固有情報に、容量、空き容量、閾値、ＰＯＯＬ−ＶＯＬ数、ＰＯＯＬ−ＶＯＬデバイスリストを設定する（Ｓ２１１１）。ＰＯＯＬ−ＶＯＬ数は、拡張後の第１種ＬＤＥＶの総数を、ＰＯＯＬ−ＶＯＬのデバイスリストは、拡張した第１種ＬＤＥＶの情報を追加して、ＰＯＯＬ固有情報を設定する。次に、ストレージプールに設定した第１種ＬＤＥＶのＰＳＣＢ３５２４を割り当てる（Ｓ２１１２）。
【０２５１】
このプール制御プログラム３５０７の処理によって指示コマンドに係る第１種ＬＤＥＶがストレージプールに追加され、ストレージプールが拡張される。
【０２５２】
ストレージプールの拡張後、構成制御プログラム３５０３は、ＬＤＥＶ管理情報３５１２を設定する（Ｓ２１１３）。ＬＤＥＶ管理情報３５１２から、ストレージプールに設定した第１種ＬＤＥＶに対応するＬＤＥＶ固有情報を取得する。取得したＬＤＥＶ固有情報のデバイス属性３５１２８にストレージプールであることを示す識別子（ＰＯＯＬ−ＶＯＬ属性）を設定する。また、ＰＯＯＬ−ＩＤ３５１３０１に指示コマンドに係るＰＯＯＬ−ＩＤを設定する。
【０２５３】
次に、構成制御プログラム３５０３は、ＰＯＯＬ管理情報３５２１のＰＯＯＬ−ＩＤの状態をＰＯＯＬ拡張中からＰＯＯＬ有効に設定する（Ｓ２１１４）。
【０２５４】
図１２Ａに戻り、以上の処理が完了すると、コマンド制御プログラム３５０１は、ストレージシステム管理装置２０に、コマンドが成功した旨の応答を送信する（Ｓ２０１５）。
【０２５５】
ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４は、ストレージシステム３０からの応答を受信すると（Ｓ２０１６）、処理を終了する。
【０２５６】
この処理によってストレージプールが拡張される。
【０２５７】
図２１は、ストレージプールの縮小のフローチャートである。
【０２５８】
ストレージプールの縮小とは、ストレージプールに設定された第１種ＬＤＥＶをストレージプールから解除して、ストレージプールの第１種ＬＤＥＶの数を減らして、ストレージプールの容量を縮小する処理である。
【０２５９】
ストレージプールの縮小は、ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４によって実行される。
【０２６０】
ストレージシステム管理装置２０の処理及びストレージシステム３０のコマンド制御プログラムの処理は、前述した図１２Ａの処理と同様である。すなわち、まず、管理者は、ストレージプールを解除する第１種ＬＤＥＶの情報を入力する。（Ｓ２００１）。ストレージ構成管理プログラム２４０４は、入力された情報を含むストレージプール設定の指示コマンドをストレージシステム３０に送信する（Ｓ２００２）。ストレージシステム３０において、コマンド制御プログラム３５０１がこのコマンドを受信する（Ｓ２００３）。コマンド制御プログラム３５０１は、受信した指示コマンドの内容が無効である場合はこれを拒否する（Ｓ２００４）。
【０２６１】
そして、コマンド制御プログラム３５０１は、指示コマンドがストレージプールの縮小である場合は、プール制御プログラム３５０７に受信した指示コマンドを渡す。プール制御プログラム３５０７は指示コマンドを受け取って、ストレージプール縮小処理を実行する（Ｓ２００５）。
【０２６２】
図２１に移り、プール制御プログラム３５０７は、まず、指示コマンドに係るＰＯＯＬ−ＩＤが有効であるかを確認する。さらに、ＰＯＯＬ管理情報３５２１から指示コマンドに係るＰＯＯＬ−ＩＤのＰＯＯＬ固有情報を取得して、取得したＰＯＯＬ固有情報の状態が有効であるかを確認する（Ｓ２２０６）。ＰＯＯＬ−ＩＤが無効である場合、又は、ＰＯＯＬの状態が有効でない場合（例えば、無効、拡張中、縮小中等である場合）は、指示コマンドを拒否する。
【０２６３】
またこのとき、ストレージプールを解除する第１種ＬＤＥＶ内にデータが存在し、そのデータを待避するための領域がストレージシステム３０の他の記憶領域内に存在しない場合は、コマンドを拒否する。
【０２６４】
次に、プール制御プログラム３５０７は、取得したＰＯＯＬ固有情報の状態をＰＯＯＬ縮小中に設定する（Ｓ２２０７）。
【０２６５】
次に、プール制御プログラム３５０７は、指示コマンドに係る第１種ＬＤＥＶのＬＤＥＶ固有情報、すなわち、ストレージプールの解除を指示された第１種ＬＤＥＶのＬＤＥＶ固有情報を取得する。そして、当該ＬＤＥＶ固有情報のＰＯＯＬ−ＩＤを削除する（Ｓ２２０８）。次に、指示コマンドに係るＰＯＯＬ−ＩＤのＰＯＯＬ固有情報に、容量、空き容量、閾値、ＰＯＯＬ−ＶＯＬ数、ＰＯＯＬ−ＶＯＬデバイスリストを設定する（Ｓ２２０９）。ＰＯＯＬ−ＶＯＬ数は、縮小後の第１種ＬＤＥＶの総数を、ＰＯＯＬ−ＶＯＬのデバイスリストは、縮小後の第１種ＬＤＥＶの情報に設定して、ＰＯＯＬ固有情報を設定する。
【０２６６】
次に、プール制御プログラム３５０７は、ストレージプールを解除する第１種ＬＤＥＶにデータが格納されている場合は、第１種ＬＤＥＶの空き領域にそのデータをコピーする（Ｓ２２１０）。空き領域は、同じストレージプールに設定されている第１種ＬＤＥＶでもよいし、その他の第１種ＬＤＥＶでもよい。次に、ストレージプールを解除する第１種ＬＤＥＶのＰＳＣＢ３５２４を、ＶＶＯＬ−ＤＩＲ３５２３から解除する（Ｓ２２１１）。解除したＰＳＣＢ３５２４は、未使用に設定する。
【０２６７】
このプール制御プログラム３５０７の処理によってストレージプールのＬＤＥＶが解除され、ストレージプールが縮小される。
【０２６８】
ストレージプールの縮小後、構成制御プログラム３５０３は、ＬＤＥＶ管理情報３５１２を設定する（Ｓ２２１２）。ＬＤＥＶ管理情報３５１２から、ストレージプールを解除した第１種ＬＤＥＶに対応するＬＤＥＶ固有情報を取得する。取得したＬＤＥＶ固有情報のデバイス属性３５１２８の識別子（ＰＯＯＬ−ＶＯＬ属性）を解除する。また、ＰＯＯＬ−ＩＤ３５１３０１のＰＯＯＬ−ＩＤを削除する。
【０２６９】
次に、構成制御プログラム３５０３は、ＰＯＯＬ管理情報３５２１のＰＯＯＬ−ＩＤの状態をＰＯＯＬ縮小中からＰＯＯＬ有効に設定する（Ｓ２２１３）。
【０２７０】
図１２Ａに戻り、以上の処理が完了すると、コマンド制御プログラム３５０１は、ストレージシステム管理装置２０に、コマンドが成功した旨の応答を送信する（Ｓ２０１５）。
【０２７１】
ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４は、ストレージシステム３０からの応答を受信すると（Ｓ２０１６）、処理を終了する。
【０２７２】
この処理によってストレージプールが縮小される。
【０２７３】
図２２は、ストレージプールの解除のフローチャートである。
【０２７４】
ストレージプールの解除とは、ストレージプールに設定されている第１種ＬＤＥＶを、全て解除して、そのストレージプールを解除する処理である。
【０２７５】
ストレージプールの解除は、ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４によって実行される。
【０２７６】
ストレージシステム管理装置２０の処理及びストレージシステム３０のコマンド制御プログラムの処理は、前述した図１２Ａの処理と同様である。すなわち、まず、管理者は、解除するストレージプールの情報を入力する。（Ｓ２００１）。ストレージ構成管理プログラム２４０４は、入力された情報を含むストレージプール設定の指示コマンドをストレージシステム３０に送信する（Ｓ２００２）。ストレージシステム３０において、コマンド制御プログラム３５０１がこのコマンドを受信する（Ｓ２００３）。コマンド制御プログラム３５０１は、受信した指示コマンドの内容が無効である場合はこれを拒否する（Ｓ２００４）。
【０２７７】
そして、コマンド制御プログラム３５０１は、指示コマンドがストレージプールの解除である場合は、プール制御プログラム３５０７に受信した指示コマンドを渡す。プール制御プログラム３５０７は指示コマンドを受け取って、ストレージプール解除処理を実行する（Ｓ２００５）。
【０２７８】
図２２に移り、プール制御プログラム３５０７は、まず、指示コマンドに係るＰＯＯＬ−ＩＤが有効であるかを確認する。さらに、ＰＯＯＬ管理情報３５２１から指示コマンドに係るＰＯＯＬ−ＩＤのＰＯＯＬ固有情報を取得して、取得したＰＯＯＬ固有情報の状態が有効であるかを確認する（Ｓ２３０６）。ＰＯＯＬ−ＩＤが無効である場合、又は、ＰＯＯＬの状態が有効でない場合（例えば、無効、拡張中、縮小中等である場合）は、指示コマンドを拒否する。
【０２７９】
また、指示コマンドに係るＰＯＯＬ−ＩＤのストレージプールに設定されている第１種ＬＤＥＶにデータが格納されている場合は、コマンドを拒否する。これは、ストレージプールを解除してしまうとストレージプールに設定されている第１種ＬＤＥＶのデータが失われてしまうからである。
【０２８０】
次に、プール制御プログラム３５０７は、取得したＰＯＯＬ固有情報の状態をＰＯＯＬ解除中に設定する（Ｓ２３０７）。
【０２８１】
次に、指示コマンドに係るＬＤＥＶ番号が使用可能であるか否かを確認する（Ｓ２３０８）。
【０２８２】
具体的には、指示コマンドに係る第１種ＬＤＥＶが閉塞している、又はフォーマット中である場合は、当該第１種ＬＤＥＶは使用不可であるためコマンドを拒否する（Ｓ２３０９）。
【０２８３】
また、指示コマンドに係る第１種ＬＤＥＶが、既に使用中である場合（例えば、第１種ＬＤＥＶがパス定義済みである場合、コピー機能等によって使用中である場合、又は、コピー先として予約中に設定されている場合）は、当該第１種ＬＤＥＶは使用不可であるためコマンドを拒否する（Ｓ２３１０）。
【０２８４】
プール制御プログラム３５０７は、指示コマンドを許可する場合は、指示コマンドに係るＰＯＯＬ−ＩＤのＰＯＯＬ固有情報の、容量、空き容量、閾値、ＰＯＯＬ−ＶＯＬ数、ＰＯＯＬ−ＶＯＬデバイスリストを全て初期化する（Ｓ２３１１）。
【０２８５】
このプール制御プログラム３５０７の処理によってストレージプールが解除される。
【０２８６】
ストレージプールの解除後、構成制御プログラム３５０３は、ＬＤＥＶ管理情報３５１２を設定する（Ｓ２３１２）。ＬＤＥＶ管理情報３５１２から、ストレージプールを解除した第１種ＬＤＥＶに対応するＬＤＥＶ固有情報を取得する。取得したＬＤＥＶ固有情報のデバイス属性３５１２８の識別子（ＰＯＯＬ−ＶＯＬ属性）を解除する。また、ＰＯＯＬ−ＩＤ３５１３０１を削除する。
【０２８７】
次に、構成制御プログラム３５０３は、ＰＯＯＬ管理情報３５２１のＰＯＯＬ−ＩＤの状態をＰＯＯＬ解除中からＰＯＯＬ未定義に設定する（Ｓ２３１３）。
【０２８８】
図１２Ａに戻り、以上の処理が完了すると、コマンド制御プログラム３５０１は、ストレージシステム管理装置２０に、コマンドが成功した旨の応答を送信する（Ｓ２０１５）。
【０２８９】
ストレージシステム管理装置２０のストレージ構成管理プログラム２４０４は、ストレージシステム３０からの応答を受信すると（Ｓ２０１６）、処理を終了する。
【０２９０】
この処理によってストレージプールが解除される。
【０２９１】
次に、ホスト計算機１０からの仮想ボリュームへのアクセスを説明する。
【０２９２】
図２３Ａ及び図２３Ｂは、ホスト計算機１０からストレージシステム３０のターゲットデバイスにデータのリード要求があったときの処理のフローチャートである。
【０２９３】
ホスト計算機１０は、ターゲットデバイスのアドレスを指定して、Ｉ／Ｏ要求を送信する。このＩ／Ｏ要求は、データのリード要求である。
【０２９４】
ストレージシステム３０において、コマンド制御プログラム３５０１がホスト計算機からのＩ／Ｏ要求を受信する。受信したＩ／Ｏ要求の内容が無効である場合はこれを拒否する。そして、そのＩ／Ｏ要求の内容を解析する（Ｓ３００１）。解析の結果、コマンド制御プログラム３５０１は、Ｉ／Ｏ要求がデータのリード要求であることを知る。
【０２９５】
次に、コマンド制御プログラム３５０１は、受信した要求に係るリード対象データのターゲットデバイスのアドレスを取得する（Ｓ３００２）。
【０２９６】
次に、コマンド制御プログラム３５０１は、キャッシュのヒットミス判定を実行する（Ｓ３００３）。具体的には、コマンド制御プログラム３５０１は、ストレージキャッシュメモリ３２を参照して、取得したアドレスに対応する領域に要求に係るデータが存在するか否かを判定する。
【０２９７】
コマンド制御プログラム３５０１は、キャッシュヒットと判定した場合は、ストレージキャッシュメモリ３２の当該領域からデータを読み出す。そして、そのデータをホスト計算機１０に送信する（Ｓ３００９）。そして、ホスト計算機１０にリード要求の完了報告を送信して（Ｓ３０１０）、処理を終了する。
【０２９８】
一方、コマンド制御プログラム３５０１は、キャッシュミスと判定した場合は、まず、要求に係るアドレスに対応するＶＤＥＶのスロットにストレージキャッシュメモリ３２の領域を割り当てる（Ｓ３００４）。
【０２９９】
次に、コマンド制御プログラム３５０１は、要求に係るにアドレスに相応するＶＤＥＶは、第１種ＶＤＥＶであるか、第２種ＶＤＥＶであるかを判定する（Ｓ３００５）。
【０３００】
ＶＤＥＶが第１種ＶＤＥＶであると判定した場合は、Ｓ３０１３（図２３Ｂ）に移行する。
【０３０１】
ＶＤＥＶが第２種ＶＤＥＶであると判定した場合は、コマンド制御プログラム３５０１は、プール制御プログラム３５０７を介して、その第２種ＶＤＥＶのＰＯＯＬ−ＶＯＬでのアドレスを取得する（Ｓ３００６）。
【０３０２】
次に、コマンド制御プログラム３５０１は、取得したアドレスに格納されているデータはリード可能であるかを判定する（Ｓ３００７）。具体的には、そのアドレスに対応するＰＯＯＬ−ＶＯＬの状態が正常か否かを判定する。状態が障害閉塞であり、データの読み出しができない場合は、コマンド制御プログラム３５０１は、ホスト計算機１０にＩ／Ｏエラーを送信する（Ｓ３００８）。
【０３０３】
ＰＯＯＬ−ＶＯＬの状態が正常、又はパンク閉塞等であってデータの読み出しが可能である場合は、ＰＯＯＬ−ＶＯＬにおけるキャッシュのヒットミス判定を実行する（Ｓ３０１１）。具体的には、コマンド制御プログラム３５０１は、ストレージキャッシュメモリ３２を参照して、ＰＯＯＬ−ＶＯＬに対応する領域に要求に係るデータが存在するか否かを判定する。
【０３０４】
コマンド制御プログラム３５０１は、キャッシュヒットと判定した場合は、まず、要求に係るデータが格納されているストレージキャッシュメモリ３２のアドレスを、キャッシュ制御プログラム３５０９に通知する（Ｓ３０１５）。
【０３０５】
キャッシュ制御プログラム３５０９は、要求に係る仮想ボリュームのアドレスに対応する第２種ＶＤＥＶのスロットに、ストレージキャッシュメモリ３２の領域を割り当てる（Ｓ３０１６）。
【０３０６】
次に、キャッシュ制御プログラム３５０９は、要求に係るデータが格納されているＰＯＯＬ−ＶＯＬのアドレスに対応するストレージキャッシュメモリ３２にアドレスから、割り当てたストレージキャッシュメモリ３２に領域に、データをコピーする（Ｓ３０１７）。データのコピーが完了すると、コマンド制御プログラム３５０１にデータのコピー完了を通知する（Ｓ３０１８）。
【０３０７】
コマンド制御プログラム３５０１は、この通知を受けて、当該キャッシュメモリの領域からデータを読み出しホスト計算機に送信する（Ｓ３００９）。そして、ホスト計算機１０にリード要求の完了報告を送信して（Ｓ３０１０）、処理を終了する。
【０３０８】
一方、コマンド制御プログラム３５０１は、キャッシュミスと判定した場合は、まず、アドレス管理テーブル３５１１を参照して、要求に係るデータの格納されているＰＯＯＬ−ＶＯＬのアドレスに対応するＰＤＥＶ３４内のアドレスを取得する。そして、取得したアドレス、要求に係るデータ長及び仮想ボリューム上のアドレスを、ディスクＩ／Ｏプログラム３５０５に通知する（Ｓ３０１２）。
【０３０９】
ディスクＩ／Ｏプログラム３５０５は、この通知を受けて、ＰＤＥＶ３４のアドレスから要求に係るデータを読み出す。そしてこのデータを、Ｓ３００４で割り当てたストレージキャッシュメモリ３２の領域にコピーする（Ｓ３０１３）。データのコピーが完了すると、コマンド制御プログラム３５０１にデータのコピー完了を通知する（Ｓ３０１８）。
【０３１０】
コマンド制御プログラム３５０１は、この通知を受けて、当該キャッシュメモリの領域からデータを読み出しホスト計算機に送信する（Ｓ３００９）。そして、ホスト計算機１０にリード要求の完了報告を送信して（Ｓ３０１０）、処理を終了する。
【０３１１】
以上の処理によって、ホスト計算機１０のデータのリード要求が完了する。
【０３１２】
次に、データのライト要求を説明する。
【０３１３】
図２４Ａ乃至図２４Ｃは、ホスト計算機１０からストレージシステム３０のターゲットデバイスにデータのリード要求があったときの処理のフローチャートである。
【０３１４】
ホスト計算機１０は、ターゲットデバイスのアドレスを指定して、Ｉ／Ｏ要求を送信する。このＩ／Ｏ要求は、データのライト要求である。
【０３１５】
ストレージシステム３０において、コマンド制御プログラム３５０１がホスト計算機からのＩ／Ｏ要求を受信する。受信したＩ／Ｏ要求の内容が無効である場合はこれを拒否する。そして、そのＩ／Ｏ要求の内容を解析する（Ｓ３１０１）。解析の結果、コマンド制御プログラム３５０１は、Ｉ／Ｏ要求がデータのライト要求であることを知る。
【０３１６】
次に、コマンド制御プログラム３５０１は、受信したライト要求に係るターゲットデバイスのアドレスを取得する（Ｓ３１０２）。
【０３１７】
次に、コマンド制御プログラム３５０１は、取得したアドレスに対応するＶＤＥＶが第１種ＶＤＥＶであるか、第２種ＶＤＥＶであるかを判定する（Ｓ３１０３）。
【０３１８】
ＶＤＥＶが第１種ＶＤＥＶであると判定した場合は、Ｓ３１０７に移行する。
【０３１９】
ＶＤＥＶが第２種ＶＤＥＶであると判定した場合は、そのＶＤＥＶに使用されるＰＯＯＬ−ＶＯＬの状態を取得する（Ｓ３２０４）。そして、そのＰＯＯＬに対応する第２種ＶＤＥＶの状態が閉塞であるか否かを判定する（Ｓ３２０５）。第１種ＶＤＥＶが閉塞である場合は、当該ＶＤＥＶにはアクセスできないので、コマンド制御プログラム３５０１は、Ｉ／Ｏエラーをホスト計算機に送信する（Ｓ３２０６）。
【０３２０】
第１種ＶＤＥＶが閉塞していないと判定した場合は、コマンド制御プログラム３５０１は、要求に係るアドレスに、ストレージキャッシュメモリ３２に領域を割り当てる（Ｓ３５０７）。
【０３２１】
次に、コマンド制御プログラム３５０１は、要求送信元のホスト計算機１０に、ライトデータの転送が可能である旨送信する（Ｓ３５０８）。ホスト計算機１０は、これを受けて、ライトデータをストレージシステム３０に送信する。
【０３２２】
コマンド制御プログラム３５０１は、ホスト計算機１０が送信したライトデータを受信する（Ｓ３１０９）。そして、このライトデータを、Ｓ３５０７で割り当てたストレージキャッシュメモリ３２の領域に書き込む（Ｓ３１１０）。
【０３２３】
コマンド制御プログラム３５０１は、ストレージキャッシュメモリ３２にライトデータの書き込みが完了すると、ホスト計算機１０にライト要求の完了報告を送信して（Ｓ３１１１）、処理を終了する。
【０３２４】
一方で、キャッシュ制御プログラム３５０９は、ディスク装置（ＰＤＥＶ３４）に未書き込みのライトデータがストレージキャッシュメモリ３２に存在するかを監視している（Ｓ３２０１、図２４Ｂ）。
【０３２５】
キャッシュ制御プログラム３５０９は、未書き込みのライトデータを検出した場合は、そのライトデータの書き込み対象は仮想ボリュームであるか否かを判定する（Ｓ３２０２）。具体的には、ストレージキャッシュメモリ３２に対応するＶＤＥＶのスロット番号が、第１種ＶＤＥＶであるか第２種ＶＤＥＶであるかを判定する。
【０３２６】
仮想ボリュームでないと判定した場合、すなわち、ライトデータの書き込み対象は第１種ＶＤＥＶであると判定した場合は、キャッシュ制御プログラム３５０９は、ディスクＩ／Ｏプログラム３５０５に、ＰＤＥＶ３４にそのデータの書き込みを指示する。ディスクＩ／Ｏプログラム３５０５は、これを受けて、当該データをディスクに書き込む（Ｓ３２０３）。
【０３２７】
一方、仮想ボリュームであると判定した場合、すなわち、ライトデータの書き込み対象は第２種ＶＤＥＶであると判定した場合は、キャッシュ制御プログラム３５０９は、書き込み対象の第２種ＶＤＥＶのスロットをＰＯＯＬ−ＶＯＬに割り当てるための割り当て要求をプール制御プログラム３５０７に通知する（Ｓ３２０４）。
【０３２８】
プール制御プログラム３５０７は、これを受けて、まず、その仮想ボリュームの第２種ＶＤＥＶにＰＯＯＬ−ＶＯＬが割り当てられているか否かを判定する（Ｓ３２０５）。
【０３２９】
既に第２種ＶＤＥＶにＰＯＯＬ−ＶＯＬが割り当てられていると判定した場合は、そのＰＯＯＬ−ＶＯＬのＰＳＣＢ３５２４を参照して、対応する第１種ＶＤＥＶのスロットを取得する。そして、取得したＶＤＥＶスロットを、コマンド制御プログラム３５０１に通知する（Ｓ３２０６）。
【０３３０】
コマンド制御プログラム３５０１は、その第１種ＶＤＥＶのスロットが、ストレージキャッシュメモリ３２の領域に割り当てられているか否かを判定する（Ｓ３２０７）。
【０３３１】
ストレージキャッシュメモリ３２が割り当てられていると判定した場合は、コマンド制御プログラム３５０１は、そのストレージキャッシュメモリ３２の領域に、ライトデータをコピーする（Ｓ３２０８）。
【０３３２】
ストレージキャッシュメモリ３２が割り当てられていないと判定した場合は、コマンド制御プログラム３５０１は、ストレージキャッシュメモリ３２に、第１種ＶＤＥＶのスロットに対応する領域を割り当てる。そして、割り当てた領域にライトデータをコピーする（Ｓ３２０９）。
【０３３３】
一方、Ｓ３２０５において、第２種ＶＤＥＶにＰＯＯＬ−ＶＯＬが割り当てられていないと判定した場合は、まず、プール制御プログラム３５０７は、ＰＯＯＬ管理情報３５２１を参照して、ＰＯＯＬ−ＶＯＬの残サイズを確認する。そして、ＰＯＯＬ−ＶＯＬに、ライトデータを格納する十分の容量があるかを確認する（Ｓ３２１０）。
【０３３４】
ＰＯＯＬ−ＶＯＬの残サイズが十分にあると判定した場合は、プール制御プログラム３５０７は、ＰＯＯＬ−ＶＯＬのＰＳＣＢ３５２４を、仮想ボリュームのＶＶＯＬ−ＤＩＲ３５２３に割り当る。これによって仮想ボリュームの領域をＰＯＯＬ−ＶＯＬに新たに割り当てる（Ｓ３２１１）。そして、ＰＯＯＬ管理情報３５２１の残サイズを変更して（Ｓ３２１２）、Ｓ３２０７に移行する。
【０３３５】
一方で、ＰＯＯＬ−ＶＯＬの残サイズが十分にないと判定した場合は、プール制御プログラム３５０７は、ＰＯＯＬ管理情報３５２１の状態を「パンク閉塞」に変更する（Ｓ３２１３）。そして、Ｉ／Ｏ要求元のホスト計算機１０及びストレージシステム管理装置２０に、パンク閉塞を通知して（Ｓ３２１４）処理を終了する。
【０３３６】
以上の処理によって、ホスト計算機１０のデータのライト要求が完了する。
【０３３７】
また、プール制御プログラム３５０７は、図２４ＢのＳ３２１３において、ＰＯＯＬ−ＶＯＬがパンク閉塞となったことを検出すると（３３０１、図２４Ｃ）、まず、そのＰＯＯＬ−ＶＯＬに追加可能な第１種ＬＤＥＶがあるか否かを判定する（Ｓ３３０２）。具体的には、プール制御プログラム３５０７は、パンク閉塞状態のＰＯＯＬ−ＶＯＬとは異なるＰＯＯＬ−ＶＯＬ（ＰＯＯＬ−ＩＤ）に設定されている第１種ＬＤＥＶのうち、未使用のものが存在するか否かを判定する。
【０３３８】
追加可能な第１種ＬＤＥＶがあると判定した場合は、プール制御プログラム３５０７は、その第１種ＬＤＥＶをＰＯＯＬ−ＶＯＬに追加してストレージプールの拡張を実行する（Ｓ３３０６）。そして、新たなＰＯＯＬ−ＶＯＬの空き領域を確認する（Ｓ３３０７）。そして、十分な領域が確保できたことを確認して、ＰＯＯＬ−ＶＯＬのパンク閉塞を解除し、ＰＯＯＬ−ＶＯＬを回復する（Ｓ３３０８）。
【０３３９】
追加可能な第１種ＬＤＥＶがないと判定した場合は、プール制御プログラム３５０７は、空き領域のある他のＰＯＯＬ−ＶＯＬに、パンク閉塞状態のＰＯＯＬ−ＶＯＬのデータを移動可能であるか否かを判定する（Ｓ３３０３）。
【０３４０】
移動可能でないと判定した場合は、プール制御プログラム３５０７は、第１種ＬＤＥＶを新たにストレージプールに設定し（Ｓ３３０４）、Ｓ３３０２に戻る。
【０３４１】
移動可能であると判定した場合は、プール制御プログラム３５０７は、データを空き領域のあるＰＯＯＬ−ＶＯＬに移動する（Ｓ３３０５）。そして、ＰＯＯＬ−ＶＯＬのパンク閉塞を解除し、ＰＯＯＬ−ＶＯＬを回復する（Ｓ３３０８）。
【０３４２】
以上の処理によって、ストレージプールのＰＯＯＬ−ＶＯＬの記憶領域が足りない場合にも、ＰＯＯＬ−ＶＯＬの容量を確保することができる。
【０３４３】
次に、ディスクドライブ装置（ＰＤＥＶ）の障害の処理を説明する。
【０３４４】
図２５は、ディスク障害発生時のフローチャートである。
【０３４５】
ディスクＩ／Ｏプログラム３５０５は、指示に基づいてＰＤＥＶ３４からデータを読み出す、又はデータを書き込む。このとき、ＰＤＥＶ３４からデータの読み出しが失敗した場合は、ディスクＩ／Ｏプログラム３５０５は、データの読み出しをリトライする。所定回数リトライが失敗した場合は、ＰＤＥＶ３４に何らかの障害があると判定し、読み出し要求に係るＰＤＥＶ３４のディスク装置に障害を検出したことをドライブ診断プログラム３５１０に通知する。
【０３４６】
同様に、ディスクＩ／Ｏプログラム３５０５は、データの書き込みが失敗した場合は、データの書き込みをリトライする。所定回数リトライが失敗した場合は、書き込み要求に係るＰＤＥＶ３４のディスク装置に障害を検出したことをドライブ診断プログラム３５１０に通知する。
【０３４７】
また一方で、ドライブ診断プログラム３５１０は、定期的に診断処理を起動し、ＰＤＥＶ３４のディスク装置の障害の発生を診断する。
【０３４８】
ドライブ診断プログラム３５１０は、ディスクＩ／Ｏプログラム３５０７からディスク装置の障害の検知を受信した場合、又は、診断処理によってディスク装置の障害を検出した場合は（Ｓ４００１）、アドレス管理テーブル３５１１を参照して、当該ディスク装置を含むＰＤＥＶ３４が所属している第１種ＶＤＥＶのＶＤＥＶ番号を取得する（Ｓ４００２）。
【０３４９】
次に、アドレス管理テーブルを参照して、取得したＶＤＥＶ番号の第１種ＶＤＥＶを構成するＰＤＥＶ３４のディスク装置を取得する。そして、取得した全てのディスク装置の障害の有無を判定する。障害が、そのＶＤＥＶに設定されている冗長度を超えて発生している場合は、そのＶＤＥＶを閉塞する。例えば、データディスクが二つ、パリティが一つ１のＲＡＩＤ構成において、同一のパリティグループに属する二つのディスク装置に障害が発生していた場合は、そのパリティグループのデータの普及は見込めない。そのため、そのディスク装置が所属するＶＤＥＶを閉塞する（Ｓ４００３）。
【０３５０】
次に、プール制御プログラム３５０７は、構成制御プログラム３５０３にＶＤＥＶの閉塞を指示する。構成制御プログラム３５０３は、その第１種ＶＤＥＶのＶＤＥＶ番号に対応するＶＤＥＶ固有情報の属性を「閉塞」に設定する。これによってＶＤＥＶが閉塞される（Ｓ４００４）。
【０３５１】
次に、プール制御プログラム３５０７は、構成制御プログラム３５０３にＬＤＥＶの閉塞を指示する。構成制御プログラム３５０３は、その第１種ＬＤＥＶのＬＤＥＶ番号に対応するＬＤＥＶ固有情報の属性を「閉塞」に設定する。これによってＬＤＥＶが閉塞される（Ｓ４００５）。
【０３５２】
次に、そのＬＤＥＶがストレージプールに設定されているか否かを判定する。まず、プール制御プログラム３５０７は、その第１種ＬＤＥＶのＬＤＥＶ番号に対応するＬＤＥＶ固有情報のＰＯＯＬ−ＩＤを参照する。当該ＬＤＥＶがＰＯＯＬ−ＶＯＬに設定されていると判定した場合は、構成制御プログラム３５０３にＰＯＯＬ−ＶＯＬの閉塞を指示する。構成制御プログラム３５０３は、そのＰＯＯＬ−ＩＤで示されるストレージプールのＰＯＯＬ−ＶＯＬの状態を「閉塞」に設定する。これによってＰＯＯＬ−ＶＯが閉塞される（Ｓ４００６）。
【０３５３】
次に、プール制御プログラム３５０７は、ホスト計算機１０及びストレージシステム管理装置２０に、障害の発生及びＰＯＯＬ−ＶＯＬの閉塞を通知する（Ｓ４００７）。
【０３５４】
以上の処理によって、ディスク装置に障害があった場合に、ストレージプールが閉塞される。
【０３５５】
次に、ディスクドライブ装置（ＰＤＥＶ）の障害の回復処理を説明する。
【０３５６】
ストレージシステム管理装置２０は、ストレージシステム３０から障害の発生及びＰＯＯＬ−ＶＯＬの閉塞の通知を受信すると、管理者にその旨を通知する（Ｓ４１０１）。
【０３５７】
管理者は、この通知を受けて、ストレージシステム３０の障害発生対象のディスクドライブ装置を交換する（Ｓ４１０２）。
【０３５８】
ストレージシステム３０の構成制御プログラム３５０３は、ディスクドライブ装置が交換されてディスクドライブ装置の障害が解消されたことを検出する。そして、閉塞状態の第１種ＶＤＥＶを回復する（Ｓ４１０３）。また、閉塞状態の第１種ＬＤＥＶを回復する（Ｓ４１０４）。また、閉塞状態のＰＯＯＬ−ＶＯＬを回復する（Ｓ４１０５）。
【０３５９】
以上の処理によって、ＰＯＯＬ−ＶＯＬの閉塞が回復する。
【０３６０】
以上のように、本発明の第１の実施例の計算機システムでは、仮想的な領域である第２種ＶＤＥＶを設定して第２種ＬＤＥＶを設定する。そして、この第２種ＬＤＥＶに物理デバイスであるＰＤＥＶ３４から構成された第１種ＬＤＥＶを関連付けることによって、第２種ＬＤＥＶを物理デバイスである記憶領域として利用できる。ホスト計算機１０は、この第２種ＬＤＥＶを仮想ボリュームとしてアクセスする。この第１種ＬＤＥＶと第２種ＬＤＥＶとの関連付けは、ＰＳＣＢ３５２４をＶＶＯＬ−ＤＩＲ３５２３に割り当てることよって設定する。また、このＰＳＣＢ３５２４とＶＶＯＬ−ＤＩＲ３５２３との割り当てを変更することで、仮想ボリュームの記憶領域を動的に変更することができる。このようにすることによって、ストレージシステム３０に備えられた物理デバイスの合計記憶容量を超えた容量の仮想ボリュームを設定することができ、計算機システムにおけるデータのアクセスの自由度が高まる。
【０３６１】
また、ストレージシステム３０において、ディスクＩ／Ｏプログラム３５０５は、ホスト計算機１０からのＩ／Ｏ要求を受け付けたとき、Ｉ／Ｏ要求のアクセス先がストレージプールに設定されている第１種ＬＤＥＶであった場合は、その要求を拒否する。すなわち、仮想ボリュームとして第２種ＬＤＥＶに割り当てられている第１種ＬＤＥＶへの外部からのアクセスを遮断する。このようにすることによって、仮想ボリュームに対応する第１種ＬＤＥＶへの不用意なアクセスを避けることができ、ストレージシステムの安全性を向上する。
【０３６２】
また、本発明におけるＶＤＥＶというある記憶領域をもつデバイスと、ＶＤＥＶから定義されるＬＤＥＶを用いることで、物理的なＰＤＥＶの容量に依存しない形でＰＯＯＬの容量をＬＤＥＶ単位に拡張／縮小できる。
【０３６３】
ＶＤＥＶから定義される、ＬＤＥＶ自体はＰＤＥＶの容量に依存せず、任意の容量を持つ論理的な記憶装置として定義可能である。
【０３６４】
更に、ＰＯＯＬの拡張／縮小やＰＯＯＬの性格（例えば、シーケンシャルアクセスに特化したＰＯＯＬ等）をデバイス単位に管理可能なストレージシステムの管理ソフトウェアの運用に容易に導入可能となる。
【実施例２】
【０３６５】
次に、本発明の第２の実施例の計算機システムを説明する。
【０３６６】
本実施例では、前述の第１の実施例のように構成された計算機システムにおいて、ストレージシステム３０が、電源切断時に管理情報をストレージプールに設定した領域に待避する。この領域をＳＹＳ領域と呼ぶ。
【０３６７】
図２７は、本実施例のストレージプールとＳＹＳ領域の説明図である。
【０３６８】
ＳＹＳ領域の構成は、ＳＹＳ領域情報３５２５に格納される。
【０３６９】
ＳＹＳ領域情報３５２５は、ＰＯＯＬ使用量カウンタ３５２５１及びエントリ３５２５２によって構成される。
【０３７０】
ＰＯＯＬ使用量カウンタ３５２３１は、ストレージプールのＬＤＥＶに関連付けられているＬＤＥＶの情報である。エントリ３５２５２は、ＰＶＯＬ８００のＬＤＥＶの構成情報である。
【０３７１】
エントリ３５２５２は、ＬＤＥＶ番号（ＬＤＥＶ＃）３５２５３、ＰＶＯＬアドレス３５２５４、ＰＯＯＬ−ＶＯＬアドレス３５２５５、ＰＳＣＢ前方ポインタ３５２５６及びＰＳＣＢ後方ポインタ３５２５７から構成される。
【０３７２】
ＬＤＥＶ番号（ＬＤＥＶ＃）３５２５３は、ＬＤＥＶの識別子である。ＰＶＯＬアドレス３５２５４は、ＰＶＯＬ中のＬＤＥＶのアドレスである。
【０３７３】
ＰＯＯＬ−ＶＯＬアドレス３５２５５は、ＬＤＥＶがＰＯＯＬ−ＶＯＬ９００のＬＤＥＶに割り当てられている場合、そのＰＯＯＬ−ＶＯＬ９００の識別子である。
【０３７４】
ＰＳＣＢ前方ポインタ３５２５６及びＰＳＣＢ後方ポインタ３５２５７は、ＬＤＥＶがＰＯＯＬ−ＶＯＬのＬＤＥＶに割り当てられている場合に格納される識別子である。ＰＯＯＬ−ＶＯＬに割り当てられていない場合は、それぞれ「ＮＵＬＬ」が格納される。
【０３７５】
ＳＹＳ領域に待避する管理情報は、ストレージキャッシュメモリ３２又は共有メモリ３３に格納されている情報である。具体的には、ストレージキャッシュメモリ３２に格納されている、未反映のキャッシュデータである。また、ストレージシステム３０の記憶領域の構成情報（ＶＤＥＶ、ＬＤＥＶ、ボリューム、ストレージプール、パス定義情報等）である。
【０３７６】
ストレージシステム３０が、電源を切断するときに、この管理情報をＳＹＳ領域に待避する。
【０３７７】
ストレージシステム３０は、電源の切断時に、ＰＳＣＢ３５２４からフリーＰＳＣＢキューを検索して、ストレージプールの未使用の領域を取得し、これをＳＹＳ領域として割り当てる。具体的には、フリーＰＳＣＢキューのＰＳＣＢ３５２４を、ＳＹＳ領域情報３５２４の各エントリに割り当てる。そして、割り当てたＳＹＳ領域に管理情報を格納する。このＳＹＳ領域の情報（アドレス及びサイズ）は、ストレージシステム３０の不揮発メモリ３３０に格納する。
【０３７８】
この後、電源の開通時に、ストレージシステム３０は、まず不揮発メモリ３３０を参照して、管理情報が格納されているＳＹＳ領域の情報を取得する。そしてそのＳＹＳ領域格納されている管理情報を読み込んで、システムを再起動する。システムの再起動後は、ＳＹＳ領域に設定されたＰＳＣＢ３５２４を解除し、フリーＰＳＣＢキューに戻す。
【０３７９】
以上のように、本発明の第２の実施例の計算機システムでは、ＰＶＯＬの記憶領域であるＬＤＥＶのうち、未使用のものをＳＹＳ領域に設定する。特に、緊急の電源切断時など、ＳＹＳ領域が予め設定されていない場合にも、ＶＶＯＬ−ＤＩＲ３５２４を検索して未使用の記憶領域を取得してＳＹＳ情報を格納する。このようにすることで、計算機システムの可用性が高まる。
【図面の簡単な説明】
【０３８０】
【図１】本発明の第１の実施例の計算機システムの構成ブロック図である。
【図２】本発明の第１の実施例の計算機ステムにおける記憶領域の説明図である。
【図３】本発明の第１の実施例のメモリのブロック図である。
【図４】本発明の第１の実施例のストレージシステム管理装置の構成ブロック図である。
【図５】本発明の第１の実施例のボリュームとＬＤＥＶとの説明図である。
【図６】本発明の第１の実施例のＶＤＥＶの設定のフローチャートである。
【図７】本発明の第１の実施例のＬＤＥＶ設定のフローチャートである。
【図８】本発明の第１の実施例のＶＤＥＶ管理情報の説明図である。
【図９】本発明の第１の実施例のＬＤＥＶ管理情報の説明図である。
【図１０】本発明の第１の実施例のアドレス管理テーブルの説明図である。
【図１１Ａ】本発明の第１の実施例のＶＤＥＶ及びＬＤＥＶの設定の別の変形例のフローチャートである。
【図１１Ｂ】本発明の第１の実施例のＶＤＥＶ及びＬＤＥＶの設定の別の変形例のフローチャートである。
【図１２Ａ】本発明の第１の実施例のストレージプールの設定のフローチャートである。
【図１２Ｂ】本発明の第１の実施例のストレージプールの設定のフローチャートである。
【図１３】本発明の第１の実施例のＰＯＯＬ管理情報の説明図である。
【図１４】本発明の第１の実施例のＶＶＯＬ−ＤＩＲ及びＰＳＣＢの説明図である。
【図１５】本発明の第１の実施例のＰＳＣＢの連結の一例の説明図である。
【図１６】本発明の第１の実施例のＰＳＣＢの連結の他の例の説明図である。
【図１７】本発明の第１の実施例の仮想ボリュームの設定のフローチャートである。
【図１８】本発明の第１の実施例のパスの定義のスローチャートである。
【図１９】本発明の第１の実施例のターゲットデバイス情報の説明図である。
【図２０】本発明の第１の実施例のストレージプールの拡張のフローチャートである。
【図２１】本発明の第１の実施例のストレージプールの縮小のフローチャートである。
【図２２】本発明の第１の実施例のストレージプールの解除のフローチャートである。
【図２３Ａ】本発明の第１の実施例のリード要求のフローチャートである。
【図２３Ｂ】本発明の第１の実施例のリード要求のフローチャートである。
【図２４Ａ】本発明の第１の実施例のライト要求のフローチャートである。
【図２４Ｂ】本発明の第１の実施例のライト要求のフローチャートである。
【図２４Ｃ】本発明の第１の実施例のライト要求のフローチャートである。
【図２５】本発明の第１の実施例のディスク障害処理のフローチャートである。
【図２６】本発明の第１の実施例のディスク回復処理のフローチャートである。
【図２７】本発明の第２の実施例のストレージプールとＳＹＳ領域の説明図である。
【符号の説明】
【０３８１】
１０      ホスト計算機
２０      ストレージシステム管理装置
３０      ストレージシステム
３２      ストレージキャッシュメモリ
３３      共有メモリ
３４      物理デバイス
３５      電源スイッチ
３６      電源
４０      管理ネットワーク
５０      ストレージネットワーク
６０      ストレージプール
１１０      入力手段
１２０      出力手段
１５０      ディスクアダプタ
１６０      ネットワークアダプタ
１７０      ディスクドライブ
２１０      入力手段
２２０      出力手段
【図１】
2006338341.tif 000003
【図２】
2006338341.tif 000004
【図３】
2006338341.tif 000005
【図４】
2006338341.tif 000006
【図５】
2006338341.tif 000007
【図６】
2006338341.tif 000008
【図７】
2006338341.tif 000009
【図８】
2006338341.tif 000010
【図９】
2006338341.tif 000011
【図１０】
2006338341.tif 000012
【図１１Ａ】
2006338341.tif 000013
【図１１Ｂ】
2006338341.tif 000014
【図１２Ａ】
2006338341.tif 000015
【図１２Ｂ】
2006338341.tif 000016
【図１３】
2006338341.tif 000017
【図１４】
2006338341.tif 000018
【図１５】
2006338341.tif 000019
【図１６】
2006338341.tif 000020
【図１７】
2006338341.tif 000021
【図１８】
2006338341.tif 000022
【図１９】
2006338341.tif 000023
【図２０】
2006338341.tif 000024
【図２１】
2006338341.tif 000025
【図２２】
2006338341.tif 000026
【図２３Ａ】
2006338341.tif 000027
【図２３Ｂ】
2006338341.tif 000028
【図２４Ａ】
2006338341.tif 000029
【図２４Ｂ】
2006338341.tif 000030
【図２４Ｃ】
2006338341.tif 000031
【図２５】
2006338341.tif 000032
【図２６】
2006338341.tif 000033
【図２７】
2006338341.tif 000034