(57)【要約】      （修正有）【課題】記憶領域の運用効率を格段的に向上させ得るストレージシステムを提案する。【解決手段】ホスト計算機２から送信されるデータを格納するための記憶領域と、当該記憶領域が動的に割り当てられ、ホスト計算機２に提供される仮想論理ボリューム３３とを有するストレージシステムにおいて、記憶領域により構成されるプール領域を複数作成するプール領域作成部と、プール領域内の記憶領域を仮想論理ボリューム３３に割り当てる際の、当該記憶領域の割当てサイズを、プール領域作成部により作成された複数のプール領域ごとに設定する設定部と、ホスト計算機２から記憶領域に格納すべきデータが送信されたときに、当該データのデータサイズに応じて、設定部により設定されたいずれかのプール領域を選択する選択部と、選択部により選択されたプール領域の記憶領域を仮想論理ボリューム３３に割り当てる割当て部とを備えるようにした。【選択図】図２
2007265270.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機から送信されるデータを格納するための記憶領域と、当該記憶領域が動的に割り当てられ、前記ホスト計算機に提供される仮想論理ボリュームとを有するストレージシステムにおいて、
前記記憶領域により構成されるプール領域を複数作成するプール領域作成部と、
前記プール領域内の記憶領域を前記仮想論理ボリュームに割り当てる際の、当該記憶領域の割当てサイズを、前記プール領域作成部により作成された複数の前記プール領域ごとに設定する設定部と、
前記ホスト計算機から前記記憶領域に格納すべき前記データが送信されたときに、当該データのデータサイズに応じて、前記設定部により設定されたいずれかの前記プール領域を選択する選択部と、
前記選択部により選択された前記プール領域の記憶領域を前記仮想論理ボリュームに割り当てる割当て部と
を備えることを特徴とするストレージシステム。
【請求項２】
前記選択部は、
前記ホスト計算機から前記データが送信されたときに、当該データのデータサイズに応じて前記仮想論理ボリュームに対応づけられた前記プール領域を固定的に選択する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記選択部は、
前記ホスト計算機から前記データが送信されたときの、当該データのデータサイズに応じて、前記設定部により設定された前記プール領域を、複数の前記プール領域から可変的に選択する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項４】
前記選択部は、
前記仮想論理ボリュームと同一のエミュレーションタイプであり、かつ前記ホスト計算機から送信された前記データのデータサイズに最も近い割当てサイズに設定された前記プール領域を選択する
ことを特徴とする請求項３に記載のストレージシステム。
【請求項５】
前記選択部は、
前記仮想論理ボリュームにシーケンシャルに前記データが書き込まれる場合には、前記仮想論理ボリュームにランダムに前記データが書き込まれる場合に比して、大きい割当てサイズに設定された前記プール領域を選択する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項６】
ホスト計算機から送信されるデータを格納するための記憶領域と、当該記憶領域が動的に割り当てられ、前記ホスト計算機に提供される仮想論理ボリュームとを有するストレージシステムの記憶領域割当て方法において、
前記記憶領域により構成されるプール領域を複数作成する第１のステップと、
前記プール領域内の記憶領域を前記仮想論理ボリュームに割り当てる際の、当該記憶領域の割当てサイズを、前記第１のステップにおいて作成した複数の前記プール領域ごとに設定する第２のステップと、
前記ホスト計算機から前記記憶領域に格納すべき前記データが送信されたときに、当該データのデータサイズに応じて、前記第２のステップにおいて設定したいずれかの前記プール領域を選択する第３のステップと、
前記第３のステップにおいて選択した前記プール領域の記憶領域を前記仮想論理ボリュームに割り当てる第４のステップと
を備えることを特徴とするストレージシステムの記憶領域割当て方法。
【請求項７】
前記第３のステップでは、
前記ホスト計算機から前記データが送信されたときに、当該データのデータサイズに応じて前記仮想論理ボリュームに対応づけられた前記プール領域を固定的に選択する
ことを特徴とする請求項６に記載のストレージシステムの記憶領域割当て方法。
【請求項８】
前記第３のステップでは、
前記ホスト計算機から前記データが送信されたときの、当該データのデータサイズに応じて、前記第２のステップにおいて設定した前記プール領域を、複数の前記プール領域から可変的に選択する
ことを特徴とする請求項６に記載のストレージシステムの記憶領域割当て方法。
【請求項９】
前記第３のステップでは、
前記仮想論理ボリュームと同一のエミュレーションタイプであり、かつ前記ホスト計算機から送信された前記データのデータサイズに最も近い割当てサイズに設定された前記プール領域を選択する
ことを特徴とする請求項８に記載のストレージシステムの記憶領域割当て方法。
【請求項１０】
前記第３のステップでは、
前記仮想論理ボリュームにシーケンシャルに前記データが書き込まれる場合には、前記仮想論理ボリュームにランダムに前記データが書き込まれる場合に比して、大きい割当てサイズに設定された前記プール領域を選択する
ことを特徴とする請求項６に記載のストレージシステムの記憶領域割当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶領域が動的に割り当てられ、ホスト計算機に提供される仮想論理ボリュームを有するストレージシステムに適用して好適なものである。
【背景技術】
【０００２】
近年、データを格納するための記憶領域をホスト計算機に提供するストレージシステムでは、非常に数多くの大容量ディスクデバイスを備えることが可能となり、記憶容量の大規模化が進んでいる。このようなストレージシステムでは、まずディスクデバイスから、ＲＡＩＤ（Redundant Array of Independent Disks）構成されたディスクアレイを作成し、この物理的な記憶リソースを複数個集めて、物理論理ボリュームを作成しておき、その物理論理ボリュームからホスト計算機が要求する容量の記憶領域を論理ボリュームとして作成し、ホスト計算機に提供する。
【０００３】
さらに近年では、物理論理ボリュームから固定容量の論理ボリュームを作成せずに、まずホスト計算機に仮想的な論理ボリューム（以下、仮想論理ボリュームと呼ぶ）を提供し、ホスト計算機からのコマンドに応じて、その仮想論理ボリュームに対して、ある単位で記憶領域を、物理リソースである物理論理ボリュームから動的に割り当てることで動的に記憶容量を拡張するストレージシステムが提案されている。
【０００４】
例えば、特許文献１のストレージシステムでは、複数のディスク記憶装置から個々のホスト計算機に対応する仮想論理ボリュームを提供し、ホスト計算機から送信された仮想論理ボリュームへのコマンドにより、読み出しや書き込みが行われる論理ブロックアドレスを読み取り、仮想論理ボリューム上にコマンドがアクセスした論理ブロックアドレスの記憶領域が存在しない場合、ボリューム提供装置が未使用磁気ディスク記憶装置から記憶領域を割り当て、動的に仮想論理ボリュームの記憶領域を拡張するようになされている。
【特許文献１】特開２００３−０１５９１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のストレージシステムでは、予め固定された割当てサイズで仮想論理ボリュームに記憶領域を割り当てるようになされているため、ホスト装置から送信されるデータに対して、当該データを格納する記憶領域の割当てサイズが大きい割当てサイズで固定されている場合には、ホスト計算機から小さいサイズのデータが送信されたときにも、大きい割当てサイズで記憶領域が割り当てられることとなり、記憶領域の運用効率が悪いという問題がある。
【０００６】
一方、特許文献１のストレージシステムでは、ホスト装置から送信されるデータに対して、当該データを格納する記憶領域の割当てサイズが小さい割当てサイズで固定されている場合には、割り当てた記憶領域を管理するための管理ビット数を増加させなければならず、当該管理ビットを保持するために、膨大なメモリ容量が必要となることとなる。
【０００７】
本発明は以上の点を考慮してなされたもので、記憶領域の運用効率を格段的に向上させ得るストレージシステム及び記憶領域割当て方法を提案するものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するために本発明においては、ホスト計算機から送信されるデータを格納するための記憶領域と、当該記憶領域が動的に割り当てられ、ホスト計算機に提供される仮想論理ボリュームとを有するストレージシステムにおいて、記憶領域により構成されるプール領域を複数作成するプール領域作成部と、プール領域内の記憶領域を仮想論理ボリュームに割り当てる際の、当該記憶領域の割当てサイズを、プール領域作成部により作成された複数のプール領域ごとに設定する設定部と、ホスト計算機から記憶領域に格納すべきデータが送信されたときに、当該データのデータサイズに応じて、設定部により設定されたいずれかのプール領域を選択する選択部と、選択部により選択されたプール領域の記憶領域を仮想論理ボリュームに割り当てる割当て部とを備えるようにした。
【０００９】
従って、ホスト計算機から送信されるデータに対して、大きすぎる割当てサイズの記憶領域や、小さすぎる割当てサイズの記憶領域を複数割り当てることを有効に防止し、当該データに対して、適切な割当てサイズの記憶領域を割り当てることができる。
【００１０】
また、本発明においては、ホスト計算機から送信されるデータを格納するための記憶領域と、当該記憶領域が動的に割り当てられ、ホスト計算機に提供される仮想論理ボリュームとを有するストレージシステムの記憶領域割当て方法において、記憶領域により構成されるプール領域を複数作成する第１のステップと、プール領域内の記憶領域を仮想論理ボリュームに割り当てる際の、当該記憶領域の割当てサイズを、第１のステップにおいて作成した複数のプール領域ごとに設定する第２のステップと、ホスト計算機から記憶領域に格納すべきデータが送信されたときに、当該データのデータサイズに応じて、第２のステップにおいて設定したいずれかの前記プール領域を選択する第３のステップと、第３のステップにおいて選択したプール領域の記憶領域を仮想論理ボリュームに割り当てる第４のステップとを備えるようにした。
【００１１】
従って、ホスト計算機から送信されるデータに対して、大きすぎる割当てサイズの記憶領域や、小さすぎる割当てサイズの記憶領域を複数割り当てることを有効に防止し、当該データに対して、適切な割当てサイズの記憶領域を割り当てることができる。
【発明の効果】
【００１２】
本発明によれば、記憶領域により構成されるプール領域を複数作成し、プール領域内の記憶領域を仮想論理ボリュームに割り当てる際の、当該記憶領域の割当てサイズを、複数のプール領域ごとに設定して、ホスト計算機から記憶領域に格納すべきデータが送信されたときに、当該データのデータサイズに応じて、いずれかのプール領域を選択し、当該プール領域の記憶領域を仮想論理ボリュームに割り当てることにより、ホスト計算機から送信されるデータに対して、大きすぎる割当てサイズの記憶領域や、小さすぎる割当てサイズの記憶領域を複数割り当てることを有効に防止し、当該データに対して、適切な割当てサイズの記憶領域を割り当てることができ、かくして記憶領域の運用効率を格段的に向上させ得るストレージシステム及び記憶領域割当て方法を実現できる。
【発明を実施するための最良の形態】
【００１３】
以下図面について、本発明の一実施の形態を詳述する。
【００１４】
（１）第１の実施の形態
（１−１）第１の実施の形態による記憶システムの構成
図１は、第１の実施の形態による記憶システム１の構成を示す。この記憶システム１は、複数のホスト計算機２がネットワーク３を介してストレージシステム４に接続されることにより構成されている。
【００１５】
上位装置としてのホスト計算機２は、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームコンピュータなどから構成される。ホスト計算機２は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備えている。
【００１６】
ネットワーク３は、例えばＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）、インターネット、公衆回線又は専用回線などから構成される。このネットワーク３を介したホスト計算機２及びストレージシステム４間の通信は、例えばネットワーク３がＳＡＮである場合にはファイバーチャネルプロトコルに従って行われ、ネットワーク３がＬＡＮである場合にはＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。
【００１７】
ストレージシステム４は、データの入出力を制御するコントロール部１０と、データを記憶する複数のディスクデバイス２１からなる記憶デバイス部２０とを備えて構成されている。
【００１８】
コントロール部１０は、複数のチャネルアダプタ１１、接続部１２、共有メモリ１３、キャッシュメモリ１４、複数のディスクアダプタ１５及び管理端末１６を備えて構成されている。
【００１９】
各チャネルアダプタ１１は、それぞれマイクロプロセッサ、メモリ及び通信インタフェース等を備えたマイクロコンピュータシステムとして構成されており、それぞれネットワーク３や他のストレージシステム等に接続するためのポートを備える。チャネルアダプタ１１は、ホスト計算機２からネットワーク３を介して送信される各種コマンドを解釈して対応する処理を実行する。各チャネルアダプタ１１のポートには、それぞれを識別するためのネットワークアドレス（例えば、ＩＰアドレスやＷＷＮ）が割り当てられており、これにより各チャネルアダプタ１１がそれぞれ個別にＮＡＳ（Network Attached Storage）として振る舞うことができるようになされている。
【００２０】
接続部１２は、チャネルアダプタ１１、共有メモリ１３、キャッシュメモリ１４及びディスクアダプタ１５と接続されている。チャネルアダプタ１１、共有メモリ１３、キャッシュメモリ１４及びディスクアダプタ１５間でのデータやコマンドの授受は、この接続部１２を介して行われる。接続部１２は、例えば高速スイッチングによりデータ伝送を行う超高速クロスバススイッチなどのスイッチ又はバス等で構成されている。
【００２１】
共有メモリ１３及びキャッシュメモリ１４は、チャネルアダプタ１１及びディスクアダプタ１５により共有される記憶メモリである。共有メモリ１３は、ストレージシステム４全体の構成に関する種々のシステム構成情報、各種プログラムや各種テーブルを記憶したり、書込み要求や読出し要求等のコマンドを記憶するために利用される。なお、本実施の形態において、共有メモリ１３に記憶されている各種プログラムや各種テーブルについては、後述する。また、キャッシュメモリ１４は、主に、ストレージシステム４に入出力する書込み対象や読出し対象のデータを一時的に記憶するために利用される。
【００２２】
各ディスクアダプタ１５は、マイクロプロセッサやメモリ等を備えたマイクロコンピュータシステムとして構成され、記憶デバイス部２０内のディスクデバイス２１との通信時におけるプロトコル制御を行うインタフェースとして機能する。これらディスクアダプタ１５は、例えばファイバーチャネルケーブルを介して記憶デバイス部２０内の対応するディスクデバイス２１と接続されており、ファイバーチャネルプロトコルに従ってこれらディスクデバイス２１との間のデータの授受を行う。
【００２３】
管理端末１６は、ストレージシステム４全体の動作を制御する端末装置であり、例えばノート型のパーソナルコンピュータから構成される。管理端末１６は、ＬＡＮ１７を介して各チャネルアダプタ１１とそれぞれ接続され、ＬＡＮ１８を介して各ディスクアダプタ１５とそれぞれ接続されている。オペレータは、管理端末１６を用いてシステム構成情報を定義することができ、またこの定義したシステム構成情報を、チャネルアダプタ１１又はディスクアダプタ１５と接続部１２とを経由して、共有メモリ１３に格納することができる。
【００２４】
ユーザ用管理端末１９は、ユーザからのストレージシステム４の状態や構成変更等を管理するコンピュータシステムである。ユーザ用管理端末１９は、管理端末１６と通信ネットワーク１９Ａを介して接続されており、管理端末１６を介してストレージシステム４の
各制御状態を示す情報を取得し、また、管理端末１６を介してストレージシステム４に各種の指示を与える。
【００２５】
一方、記憶デバイス部２０のディスクデバイス２１としては、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスク、又はＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクが適用される。
【００２６】
記憶デバイス部２０の各ディスクデバイス２１は、コントロール部１０によりＲＡＩＤ方式で運用される。１又は複数のディスクデバイス２１により提供される物理的な記憶領域上に、１又は複数の論理的なボリューム（以下、これを物理論理ボリュームと呼ぶ）が設定される。そしてデータは、この物理論理ボリューム内に所定大きさのブロック（以下、これを論理ブロックと呼ぶ）単位で記憶される。
【００２７】
各論理ボリュームには、それぞれ固有の識別子（以下、これをＬＵＮ（Logical Unit Number）と呼ぶ）が付与される。本実施の形態の場合、データの入出力は、このＬＵＮと、各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号（ＬＢＡ：Logical Block Address）とを組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２８】
（１−２）第１の実施の形態による記憶領域の割当て処理
次に、本実施の形態における記憶システム１のストレージシステム４において、仮想論理ボリュームに記憶領域を割り当てる割当て処理について図２〜図１２を参照して説明する。図２は、かかる割当て処理の内容を概略的に示した概念図である。
【００２９】
この場合、ストレージシステム４は、ホスト計算機２から送信されるデータを格納するための物理論理ボリューム３１と、マッピングテーブル４０を参照することにより、当該物理論理ボリューム３１の記憶領域を動的に割り当て、ホスト計算機２に提供する仮想的な論理ボリュームである仮想論理ボリューム３３とを有している。
【００３０】
そして、ストレージシステム４では、物理論理ボリューム３１を保持するためのプール領域を複数作成し、プール領域３２内の物理論理ボリューム３１の記憶領域を仮想論理ボリューム３３に割り当てる際の、当該記憶領域の割当てサイズを、プール領域３２ごとに設定し、ホスト計算機２からデータが送信されたときに、仮想論理ボリューム対応づけられたプール領域３２を固定的に選択して、当該プール領域３２内の物理論理ボリューム３１の記憶領域を仮想論理ボリューム３３に割り当てることを特徴の１つにしている。なお、詳細な処理については、後述する。
【００３１】
図３は、共有メモリ１３に格納されている、本実施の形態による記憶領域の割当て処理にかかる各種プログラム及び各種テーブルを示している。この場合、共有メモリ１３には、マッピングテーブル４０、プール領域管理テーブル５０、仮想論理ボリューム管理テーブル６０、論理ボリューム構成テーブル７０、空き記憶領域管理ビットマップ８０、プール領域作成処理プログラム９０、仮想論理ボリューム作成処理プログラム１００及びコマンド処理プログラム１１０が格納されている。なお、プール領域作成処理プログラム９０、仮想論理ボリューム作成処理プログラム１００及びコマンド処理プログラム１１０については、後述する。
【００３２】
図４は、マッピングテーブル４０の構成を示している。マッピングテーブル４０は、仮想論理ボリューム３３ごとに管理され、当該仮想論理ボリューム３３と物理論理ボリューム３１との対応を保持するテーブルであり、仮想論理ボリュームアドレス管理欄４１と、物理論理ボリューム識別番号管理欄４２と、物理論理ボリュームアドレス管理欄４３とにより構成されている。
【００３３】
仮想論理ボリュームアドレス管理欄４１は、例えば、仮想論理ボリューム３３のＬＢＡ等でなる、仮想論理ボリューム３３のアドレスを管理する。物理論理ボリューム識別番号管理欄４２は、当該仮想論理ボリューム３３のアドレスに対応づけられた、例えば、物理論理ボリューム３１のＬＵＮ等でなる、物理論理ボリューム３１の識別番号を管理する。物理論理ボリューム割当てアドレス管理欄４３は、当該仮想論理ボリューム３３のアドレスに対応づけられた、例えば、物理論理ボリューム３１のＬＢＡ等でなる、物理論理ボリューム３１のアドレスを管理する。
【００３４】
この場合、例えば、仮想論理ボリュームアドレス「０」は、物理論理ボリューム識別番号「０ｘ０００１」の物理論理ボリューム３１の物理論理ボリューム割当てアドレス「０」と対応づけられていることとなる。
【００３５】
図５は、プール領域管理テーブル５０の構成を示している。プール領域管理テーブル５０は、プール領域３２と物理論理ボリューム３１との対応を保持するテーブルであり、プール領域識別番号管理欄５１と、物理論理ボリューム識別番号管理欄５２と、エミュレーションタイプ管理欄５３と、物理論理ボリュームサイズ管理欄５４と、割当てサイズ管理欄５５と、空き数管理欄５６とにより構成されている。
【００３６】
プール領域識別番号管理欄５１は、プール領域３２の識別番号を管理する。物理論理ボリューム識別番号管理欄５２は、プール領域３２に保持されている物理論理ボリューム３１の識別番号を管理する。
【００３７】
エミュレーションタイプ管理欄５３は、物理論理ボリューム３１に格納されるデータが送信されたホスト計算機２のエミュレーションのタイプを管理する。なお、エミュレーションとは、あるハードウェア向けに開発されたソフトウェアを、設計の異なる他のハードウェア上で実行させることであり、例えば、「ＯＰＥＮ−Ｖ」がエミュレーションタイプ管理欄５３に格納されている場合には、ストレージシステム４において「ＯＰＥＮ−Ｖ」のソフトウェアを実行して、「ＯＰＥＮ−Ｖ」のホスト計算機２のデータを格納することを示している。またなお、例えば、「ＯＰＥＮ−Ｖ」又は「ＯＰＥＮ−３」は、いわゆるＷｉｎｄｏｗｓ（登録商標）等のオープン系のコンピュータシステムであり、「３３９０−３」は、いわゆるメインフレーム系のコンピュータシステムである。
【００３８】
物理論理ボリュームサイズ管理欄５４は、物理論理ボリューム３１のボリュームサイズを管理する。割当てサイズ管理欄５５は、プール領域３２内の物理論理ボリューム３１の記憶領域を仮想論理ボリューム３３に割り当てる際の、当該記憶領域の割当てサイズを管理する。空き記憶領域数管理欄５６は、物理論理ボリューム３１のボリュームサイズを記憶領域の割当てサイズにより除算することにより算出した、物理論理ボリューム３１の記憶領域の数のうち、データが格納されていない空き記憶領域の数を管理する。
【００３９】
なお、プール領域３２は、物理論理ボリューム３１に格納されるデータを送信するホスト計算機２のエミュレーションのスロットタイプが同一であり、かつ割当てサイズが同一である場合には、図２に示すように、同一のプール領域３２に複数の物理論理ボリューム３１を保持することができる。
【００４０】
この場合、例えば、プール領域識別番号「０」のプール領域３２は、エミュレーションタイプ「ＯＰＥＮ−Ｖ」、物理論理ボリュームサイズ「３００Ｇ（ＧＢ）」、空き数「３０７２００」である物理論理ボリューム識別番号「０ｘ０００１」の物理論理ボリューム３１と、エミュレーションタイプ「ＯＰＥＮ−Ｖ」、物理論理ボリュームサイズ「２００Ｇ」、空き数「２０４８００」である物理論理ボリューム識別番号「０ｘ０００２」の物理論理ボリューム３１が保持されていることとなり、割当てサイズ「１Ｍ（ＭＢ）」に設定されている。
【００４１】
図６は、仮想論理ボリューム管理テーブル６０の構成を示している。仮想論理ボリューム管理テーブル６０は、仮想論理ボリューム３３とプール領域３２との対応を保持するテーブルであり、仮想論理ボリューム識別番号管理欄６１と、プール領域識別番号管理欄６２とにより構成されている。
【００４２】
仮想論理ボリューム識別番号管理欄６１は、例えば、仮想論理ボリューム３３のＬＵＮ等でなる、仮想論理ボリューム３３の識別番号を管理する。プール領域識別番号管理欄６２は、仮想論理ボリューム３３の識別番号に、ユーザ等により選択されることにより割り当てられた、プール領域３２の識別番号を管理する。  
【００４３】
この場合、例えば、仮想論理ボリューム識別番号「０ｘ０１００」の仮想論理ボリューム３３は、プール領域「０」のプール領域３２が割り当てられていることとなる。
【００４４】
図７は、論理ボリューム構成テーブル７０の構成を示している。論理ボリューム構成テーブル７０は、物理論理ボリューム３１及び仮想論理ボリューム３３の構成並びにホスト計算機２との対応を保持するテーブルであり、論理ボリューム識別番号管理欄７１と、エミュレーションタイプ管理欄７２と、論理ボリュームサイズ管理欄７３と、接続ポート識別番号管理欄７４とにより構成されている。
【００４５】
論理ボリューム識別番号管理欄７１は、例えば、物理論理ボリューム３１又は仮想論理ボリューム３３のＬＵＮ等でなる、物理論理ボリューム３１又は仮想論理ボリューム３３の識別番号を管理する。エミュレーションタイプ管理欄７２は、物理論理ボリューム３１又は仮想論理ボリューム３３に格納されるデータが送信されたホスト計算機２のエミュレーションのタイプを管理する。論理ボリュームサイズ管理欄５４は、物理論理ボリューム３１又は仮想論理ボリューム３３のボリュームサイズを管理する。接続ポート識別番号管理欄７４は、ホスト計算機２と接続するための接続ポートを管理する。
【００４６】
この場合、例えば、論理ボリューム識別番号「０ｘ０１００」の仮想論理ボリューム３３は、エミュレーションタイプ「ＯＰＥＮ−Ｖ」、論理ボリュームサイズ「５００Ｇ」、接続ポート「１Ａ」であることとなる。
【００４７】
図８は、空き記憶領域管理ビットマップ８０を概略的に示した概念図を示している。空き記憶領域管理ビットマップ８０は、物理論理ボリューム３１ごとに管理されており、物理論理ボリュームアドレスごとに仮想論理ボリューム３３に割り当てられているか否かを管理する。この場合、空き記憶領域管理ビットマップ８０は、網掛け部分となっている物理論理ボリュームアドレスの記憶領域については、仮想論理ボリューム３３に割り当てられており、網掛け部分となっていない物理論理ボリュームアドレスの記憶領域については、仮想論理ボリューム３３に割り当てられていないことを示している。
【００４８】
図９は、空き記憶領域管理ビットマップ８０の実際上の管理図を示している。実際上、空き記憶領域管理ビットマップ８０は、図８における仮想論理ボリューム３３に割り当てられている、網掛け部分となっている物理論理ボリュームアドレスの記憶領域については、「使用中」を示す「ＢｉｔＯＮ（１）」で管理し、仮想論理ボリューム３３に割り当てられていない、網掛け部分となっていない物理論理ボリュームアドレスの記憶領域については、「未使用」を示す「ＢｉｔＯＦＦ（０）」で管理する。
【００４９】
ここで、第１の実施の形態における記憶システム１のプール領域作成処理について説明する。図１０は、この記憶システム１におけるプール領域作成処理に関するストレージシステム４の具体的な処理手順を示したフローチャートである。
【００５０】
ストレージシステム４のチャネルアダプタ１１は、初期時、物理論理ボリューム３１を保持するプール領域３２を作成するプログラムであるプール領域作成処理プログラム９０を実行することにより、図１０に示すプール領域作成処理手順ＲＴ１に従って、ユーザ等の操作によりユーザ用管理端末１９から管理端末１６を介してプール領域作成コマンドを受信するのを待機モードで待ち受ける（Ｓ１）。
【００５１】
なお、プール領域作成コマンドには、例えば、ユーザ等により指定された作成するプール領域３２のプール領域識別番号、プール領域３２に保持した物理論理ボリューム３１の記憶領域を仮想論理ボリューム３３に割り当てる際の割当てサイズや、予め図７に示されている論理ボリューム構成テーブル７０の物理論理ボリューム３１を参照することにより指定された、プール領域３２が保持する物理論理ボリューム３１の構成情報（物理論理ボリューム識別番号、エミュレーションタイプ、物理論理ボリュームサイズ）等の情報が含まれている。
【００５２】
やがて、チャネルアダプタ１１は、ユーザ用管理端末１９から管理端末１６を介してプール領域作成コマンドを受信する（Ｓ１：ＹＥＳ）と、空き記憶領域管理ビットマップ８０を作成し、当該空き記憶領域管理ビットマップ８０を初期化する（Ｓ２）。
【００５３】
具体的に、チャネルアダプタ１１は、プール領域作成コマンドに従って、ユーザ等により指定された物理論理ボリューム３１ごとに空き記憶領域管理ビットマップ８０を作成し、空き記憶領域管理ビットマップ８０の物理論理ボリュームアドレスの記憶領域にデータが格納されている場合には、当該物理論理ボリュームアドレスの管理状態を「１」に設定し、空き記憶領域管理ビットマップ８０の物理論理ボリュームアドレスの記憶領域にデータが格納されていない場合には、当該物理論理ボリュームアドレスの管理状態を「０」に設定して、空き記憶領域管理ビットマップ８０を更新する。
【００５４】
続いて、チャネルアダプタ１１は、ユーザ用管理端末１９から管理端末１６を介して受信したプール領域作成コマンドに基づいて、プール領域管理テーブル５０を作成し、又は更新する（Ｓ３）。
【００５５】
具体的に、チャネルアダプタ１１は、プール領域管理テーブル５０が作成されていない場合には、プール領域管理テーブル５０を作成して、プール領域作成コマンドに従って、ユーザ等により指定された物理論理ボリューム３１の構成情報、プール領域識別番号及び割当てサイズをプール領域管理テーブル５０の対応位置に格納し、物理論理ボリュームサイズ及び割当てサイズ並びに空き記憶領域管理ビットマップ８０に基づいて、当該物理論理ボリュームごとに空き記憶領域の数を算出して、当該空き記憶領域の数をプール領域管理テーブル５０の対応位置に格納する。
【００５６】
また、チャネルアダプタ１１は、プール領域管理テーブル５０が作成されている場合には、プール領域作成コマンドに従って、ユーザ等により指定された物理論理ボリューム３１の構成情報、プール領域識別番号及び割当てサイズをプール領域管理テーブル５０の対応位置に格納し、物理論理ボリュームサイズ及び割当てサイズ並びに空き記憶領域管理ビットマップ８０に基づいて、当該物理論理ボリュームごとに空き記憶領域の数を算出して、当該空き記憶領域数をプール領域管理テーブル５０の対応位置に格納し、プール領域管理テーブル５０を更新する。
【００５７】
やがて、チャネルアダプタ１１は、この後、図１０に示すプール領域作成処理手順ＲＴ１を終了する（Ｓ４）。
【００５８】
次に、第１の実施の形態における記憶システム１の仮想論理ボリューム作成処理について説明する。図１１は、この記憶システム１における仮想論理ボリューム作成処理に関するストレージシステム４の具体的な処理手順を示したフローチャートである。
【００５９】
チャネルアダプタ１１は、初期時、仮想論理ボリューム３３を作成するプログラムである仮想論理ボリューム作成処理プログラム１００を実行することにより、図１１に示す仮想論理ボリューム作成処理手順ＲＴ２に従って、ユーザ等の操作によりユーザ用管理端末１９から管理端末１６を介して仮想論理ボリューム作成コマンドを受信するのを待機モードで待ち受ける（Ｓ１１）。
【００６０】
なお、仮想論理ボリューム作成コマンドには、例えば、ユーザ等により指定された、作成する仮想論理ボリューム３３の仮想論理ボリューム識別番号、作成する仮想論理ボリューム３３の仮想論理ボリュームサイズ、作成する仮想論理ボリューム３３をホスト計算機２に接続するための接続ポートや、作成する仮想論理ボリューム３３を割り当てるプール領域３２のプール領域識別番号又は作成する仮想論理ボリューム３３に割り当てる記憶領域の割当てサイズ等の情報が含まれている。
【００６１】
やがて、チャネルアダプタ１１は、ユーザ等の操作によりユーザ用管理端末１９から管理端末１６を介して仮想論理ボリューム作成コマンドを受信する（Ｓ１１：ＹＥＳ）と、仮想論理ボリューム作成コマンドによりプール領域識別番号が指定されたか否かをチェックする（Ｓ１２）。
【００６２】
そして、チャネルアダプタ１１は、仮想論理ボリューム作成コマンドによりプール領域識別番号が指定されていない場合（Ｓ１２：ＮＯ）には、指定された割当てサイズのプール領域識別番号を取得する（Ｓ１３）。
【００６３】
具体的に、チャネルアダプタ１１は、例えば、仮想論理ボリューム作成コマンドにより割当てサイズ「１Ｍ」が指定された場合には、プール領域管理テーブル５０を参照して、割当てサイズ管理欄５５の割当てサイズ「１Ｍ」であるプール領域識別番号「０」を取得する。
【００６４】
なお、チャネルアダプタ１１は、仮想論理ボリューム作成コマンドにより指定された割当てサイズがプール領域管理テーブル５０により管理されていない場合には、当該指定された割当てサイズに最も近い割当てサイズのプール領域識別番号を取得するようになされている。
【００６５】
これに対して、チャネルアダプタ１１は、仮想論理ボリューム作成コマンドによりプール領域識別番号が指定されている場合（Ｓ１２：ＹＥＳ）、又は指定された割当てサイズのプール領域識別番号を取得した場合（Ｓ１３）には、ホスト計算機２から受信した仮想論理ボリューム作成コマンドに基づいて、仮想論理ボリューム管理テーブル６０を作成し、又は更新する（Ｓ１４）。
【００６６】
具体的に、チャネルアダプタ１１は、仮想論理ボリューム管理テーブル６０が作成されていない場合には、仮想論理ボリューム管理テーブル６０を作成して、仮想論理ボリューム作成コマンドに従って、ユーザ等により指定された仮想論理ボリューム識別番号、及びユーザ等により指定された、又は取得したプール領域識別番号を仮想論理ボリューム管理テーブル６０の対応位置に格納する。
【００６７】
また、チャネルアダプタ１１は、仮想論理ボリューム管理テーブル６０が作成されている場合には、仮想論理ボリューム作成コマンドに従って、ユーザ等により指定された仮想論理ボリューム識別番号、及びユーザ等により指定された、又は取得したプール領域識別番号を仮想論理ボリューム管理テーブル６０の対応位置に格納し、仮想論理ボリューム管理テーブル６０を更新する。
【００６８】
このようにして、チャネルアダプタ１１は、仮想論理ボリューム管理テーブル６０により、仮想論理ボリューム３３に割り当てる記憶領域の物理論理ボリューム３１が保持されているプール領域３２を固定的に選択することができるようになされている。
【００６９】
続いて、チャネルアダプタ１１は、ユーザ用管理端末１９から管理端末１６を介して受信したプール領域作成コマンドに基づいてマッピングテーブル４０を作成する（Ｓ１５）。具体的に、チャネルアダプタ１１は、作成した仮想論理ボリューム３３ごとにマッピングテーブル４０を作成し、仮想論理ボリューム作成コマンドに従って、ユーザ等により指定された仮想論理ボリュームサイズ分の仮想論理ボリュームアドレスをマッピングテーブル４０の対応位置に格納する。
【００７０】
続いて、チャネルアダプタ１１は、ユーザ用管理端末１９から管理端末１６を介して受信したプール領域作成コマンドに基づいて論理ボリューム構成テーブル７０を更新する（Ｓ１６）。具体的に、チャネルアダプタ１１は、仮想論理ボリューム作成コマンドに従って、ユーザ等により指定された仮想論理ボリューム識別番号（論理ボリューム識別番号）、仮想論理ボリュームサイズ（論理ボリュームサイズ）及び接続ポートを論理ボリューム構成テーブル７０の対応位置に格納し、仮想論理ボリューム管理テーブル６０を参照することにより、当該仮想論理ボリューム識別番号に対応づけられたプール領域識別番号のエミュレーションタイプを論理ボリューム構成テーブル７０の対応位置に格納する。
【００７１】
やがて、チャネルアダプタ１１は、この後、図１１に示す仮想論理ボリューム作成処理手順ＲＴ２を終了する（Ｓ１７）。
【００７２】
次に、第１の実施の形態における記憶システム１のデータ書込み要求時のコマンド処理について説明する。図１２は、この記憶システム１におけるデータ書込み要求時のコマンド処理に関するストレージシステム４の具体的な処理手順を示したフローチャートである。
【００７３】
チャネルアダプタ１１は、初期時、ホスト計算機２から受信したデータ書込み要求のコマンドにより記憶領域にデータを書き込むプログラムであるコマンド処理プログラム１１０を実行することにより、図１２に示すデータ書込み要求時のコマンド処理手順ＲＴ３に従って、ユーザ等の操作によりホスト計算機２からデータ書込み要求のコマンドを受信するのを待機モードで待ち受ける（Ｓ２１）。
【００７４】
やがて、チャネルアダプタ１１は、ホスト計算機２からデータ書込み要求のコマンドを受信する（Ｓ２１：ＹＥＳ）と、仮想論理ボリューム３３の仮想論理ボリュームアドレスに物理論理ボリューム３１の記憶領域が割り当てられているか否かをチェックする（Ｓ２２）。
【００７５】
具体的に、チャネルアダプタ１１は、マッピングテーブル４０を参照することにより、データ書込み要求のコマンドに含まれる書込み対象のデータを書き込むべき仮想論理ボリュームアドレスに、物理論理ボリューム識別番号及び物理論理ボリュームアドレスが対応付けられているか否かをチェックする。
【００７６】
そして、チャネルアダプタ１１は、仮想論理ボリューム３３の仮想論理ボリュームアドレスに物理論理ボリューム３１の記憶領域が割り当てられていない場合（Ｓ２２：ＮＯ）には、仮想論理ボリューム３３に対応づけられているプール領域３２の物理論理ボリューム３１に空き記憶領域があるか否かをチェックする（Ｓ２３）。
【００７７】
具体的に、チャネルアダプタ１１は、仮想論理ボリューム管理テーブル６０を参照することにより、仮想論理ボリューム識別番号に対応づけられているプール領域識別番号を取得し、その後、プール領域管理テーブル５０を参照することにより、当該プール領域識別番号に対応づけられている空き記憶領域数があるか否かをチェックする。
【００７８】
そして、チャネルアダプタ１１は、仮想論理ボリューム３３に対応づけられているプール領域３２の物理論理ボリューム３１に空き記憶領域がない場合（Ｓ２３：ＮＯ）には、プール領域３２の物理論理ボリューム３１を閉塞させて、その後、図１２に示すデータ書込み要求時のコマンド処理手順ＲＴ３を終了する（Ｓ２７）。
【００７９】
これに対して、チャネルアダプタ１１は、仮想論理ボリューム３３に対応づけられているプール領域３２の物理論理ボリューム３１に空き記憶領域がある場合（Ｓ２３：ＹＥＳ）には、マッピングテーブル４０を更新し、仮想論理ボリューム３３に対応するプール領域３２に保持された物理論理ボリューム３１の記憶領域を割り当てる（Ｓ２４）。
【００８０】
具体的に、チャネルアダプタ１１は、ビットマップ管理テーブル８０を参照することにより、割り当てる記憶領域の物理論理ボリュームアドレスの開始アドレスを確定し、その後、マッピングテーブル４０を参照することにより、マッピングテーブル４０の当該仮想論理ボリュームアドレスの対応位置に物理論理ボリューム３１の物理論理ボリューム識別番号及び割り当てるべき物理論理ボリューム３１の記憶領域の物理論理ボリュームアドレスをマッピングテーブル４０の当該仮想論理ボリュームアドレスの対応位置に格納し、マッピングテーブル４０を更新する。
【００８１】
この場合、チャネルアダプタ１１は、空き記憶領域数がある物理論理ボリュームが複数ある場合には、空き記憶領域が最も多い物理論理ボリューム３１の記憶領域を割り当てるようになされている。
【００８２】
続いて、チャネルアダプタ１１は、マッピングテーブル４０の更新に伴って、空き記憶領域管理ビットマップ８０を変更する（Ｓ２５）。具体的に、チャネルアダプタ１１は、マッピングテーブル４０を参照することにより、空き記憶領域管理ビットマップ８０における、割り当てた物理論理ボリューム３１の記憶領域の物理論理ボリュームアドレスの管理状態を「１」にすることにより、空き記憶領域管理ビットマップ８０を変更する。
【００８３】
これに対して、チャネルアダプタ１１は、仮想論理ボリューム３３の仮想論理ボリュームアドレスに物理論理ボリューム３１の記憶領域が割り当てられている場合（Ｓ２２：ＹＥＳ）、又は仮想論理ボリューム３３に記憶領域を割り当て、マッピングテーブル４０を更新し、空き記憶領域管理ビットマップ８０を変更した場合（Ｓ２４、Ｓ２５）には、書き込むべき仮想論理ボリュームアドレスに対応する物理論理ボリューム３１の記憶領域に書込み対象のデータを書き込む（Ｓ２６）。
【００８４】
やがて、チャネルアダプタ１１は、この後、図１２に示すデータ書込み要求時のコマンド処理手順ＲＴ３を終了する（Ｓ２７）。
【００８５】
このようにして、記憶システム１では、物理論理ボリューム３１を保持するためのプール領域を複数作成し、プール領域３２内の物理論理ボリューム３１の記憶領域を仮想論理ボリューム３３に割り当てる際の、当該記憶領域の割当てサイズを、プール領域３２ごとに設定し、ホスト計算機２からデータが送信されたときに、仮想論理ボリューム対応づけられたプール領域３２を固定的に選択して、当該プール領域３２内の物理論理ボリューム３１の記憶領域を仮想論理ボリューム３３に割り当てる。
【００８６】
従って、記憶システム１では、ホスト計算機２から送信されるデータに対して、大きすぎる割当てサイズの記憶領域や、小さすぎる割当てサイズの記憶領域を複数割り当てることを有効に防止し、当該データに対して、適切な割当てサイズの記憶領域を割り当てることができ、物理論理ボリュームの記憶領域を効率的に運用することができる。
【００８７】
（２）第２の実施の形態
第２の実施の形態による記憶システム１２０は、マッピングテーブル４０の構成が異なること、仮想論理ボリューム作成処理プログラム１００及びコマンド処理プログラム１１０の処理内容が異なること、仮想論理ボリューム管理テーブル６０を有していないことを除いて、第１の実施の形態による記憶システム１と同様に構成されている。
【００８８】
本実施の形態における記憶システム１２０のストレージシステム１３０において、仮想論理ボリュームに記憶領域を割り当てる割当て処理について図１３〜図１７を参照して説明する。図１３は、かかる割当て処理の内容を概略的に示した概念図である。
【００８９】
この場合、ストレージシステム１３０では、物理論理ボリューム３１を保持するためのプール領域を複数作成し、プール領域３２内の物理論理ボリューム３１の記憶領域を仮想論理ボリューム３３に割り当てる際の、当該記憶領域の割当てサイズを、プール領域３２ごとに設定し、ホスト計算機２からデータが送信されたときの、当該データのデータサイズに応じて、プール領域３２を、複数のプール領域３２から可変的に選択して、当該プール領域３２内の物理論理ボリューム３１の記憶領域を仮想論理ボリューム３３に割り当てることを特徴の１つにしている。なお、詳細な処理については、後述する。
【００９０】
図１４は、共有メモリ１３に格納されている、本実施の形態による記憶領域の割当て処理にかかる各種プログラム及び各種テーブルを示している。この場合、共有メモリ１３には、マッピングテーブル１４０、プール領域管理テーブル５０、論理ボリューム構成テーブル７０、空き記憶領域管理ビットマップ８０、プール領域作成処理プログラム９０、仮想論理ボリューム作成処理プログラム１５０及びコマンド処理プログラム１６０が格納されている。なお、仮想論理ボリューム作成処理プログラム１５０及びコマンド処理プログラム１６０については、後述する。
【００９１】
図１５は、マッピングテーブル１４０の構成を示している。マッピングテーブル１４０は、仮想論理ボリューム３３ごとに管理され、当該仮想論理ボリューム３３と物理論理ボリューム３１との対応を保持するテーブルであり、仮想論理ボリュームアドレス管理欄１４１と、物理論理ボリューム識別番号管理欄１４２と、物理論理ボリューム開始アドレス管理欄１４３と、割当てサイズ管理欄１４４とにより構成されている。
【００９２】
仮想論理ボリュームアドレス管理欄４１は、例えば、仮想論理ボリューム３３のＬＢＡ等でなる、仮想論理ボリューム３３のアドレスを管理する。物理論理ボリューム識別番号管理欄１４２は、当該仮想論理ボリューム３３のアドレスに対応づけられた、例えば、物理論理ボリューム３１のＬＵＮ等でなる、物理論理ボリューム３１の識別番号を管理する。物理論理ボリューム割当てアドレス管理欄４３は、当該仮想論理ボリューム３３のアドレスに対応づけられた、例えば、物理論理ボリューム３１のＬＢＡ等でなる、物理論理ボリューム３１の開始アドレスを管理する。割当てサイズ管理欄１４４は、プール領域３２内の物理論理ボリューム３１の記憶領域を仮想論理ボリューム３３に割り当てる際の、当該記憶領域の割当てサイズを管理する。
【００９３】
この場合、例えば、仮想論理ボリュームアドレス「０」は、物理論理ボリューム識別番号「０ｘ０００７」の物理論理ボリューム３１の物理論理ボリューム開始アドレス「０」から割当てサイズ「１Ｍ」分の記憶領域が対応づけられていることとなる。
【００９４】
記憶システム１２０では、例えば、１つの仮想論理ボリュームアドレスの領域あたり２５６（ＫＢ）のデータサイズであったときに、ホスト計算機２から１（ＭＢ）の書込み要求のコマンドを受信した場合には、割り当てた物理論理ボリューム識別番号及び物理論理ボリューム開始アドレスから１（ＭＢ）の書き込みを行い、マッピングテーブル１４０に管理するものである。
【００９５】
また、記憶システム１２０では、例えば、空き記憶領域を検索する際に、オープン系のコンピュータシステムの場合には、例えば、「ｎ」番の論理ブロックから「ｍ」個の論理ブロック分の書込み又は読出しが実施される（１論理ブロックは５１２（ＫＢ）である）ため、物理論理ボリューム開始アドレスを「５１２×ｎ」とし、「５１２×ｍ」分の記憶領域と、割当てサイズとが同じものを検索し、当該物理論理ボリュームアドレスがすべて「未使用」であるか否かをチェックする。
【００９６】
また、記憶システム１２０では、例えば、空き記憶領域を検索する際に、メインフレーム系のコンピュータシステムの場合には、例えば、「ｎ」番のシリンダの「ｍ」番のディスクデバイス２１に対しての書込み又は読出しが実施されるため、すべてのディスクデバイス２１を換算して、物理論理ボリューム開始アドレスを確定する。この場合、記憶システム１２０では、「（ｎ×１５＋ｍ）×エミュレーションタイプにおけるサイズ（３３８０系は４８（ＫＢ）、３３９０系は５７（ＫＢ）である）」からのアドレスが「未使用」であるか否かをチェックする。
【００９７】
ここで、第２の実施の形態における記憶システム１２０の仮想論理ボリューム作成処理について説明する。図１６は、この記憶システム１２０における仮想論理ボリューム作成処理に関するストレージシステム１３０の具体的な処理手順を示したフローチャートである。
【００９８】
チャネルアダプタ１１は、初期時、仮想論理ボリューム３３を作成するプログラムである仮想論理ボリューム作成処理プログラム１５０を実行することにより、図１６に示す仮想論理ボリューム作成処理手順ＲＴ４に従って、ユーザ等の操作によりホスト計算機２から仮想論理ボリューム作成コマンドを受信するのを待機モードで待ち受ける（Ｓ３１）。
【００９９】
なお、仮想論理ボリューム作成コマンドには、例えば、ユーザ等により指定された、作成する仮想論理ボリューム３３の仮想論理ボリューム識別番号、作成する仮想論理ボリューム３３の仮想論理ボリュームサイズ、作成する仮想論理ボリューム３３をホスト計算機２に接続するための接続ポート、作成する仮想論理ボリューム３３に格納されるデータを送信するホスト計算機２のエミュレーションタイプ等の情報が含まれている。
【０１００】
やがて、チャネルアダプタ１１は、ユーザ等の操作によりユーザ用管理端末１９から管理端末１６を介して仮想論理ボリューム作成コマンドを受信する（Ｓ３１：ＹＥＳ）と、ユーザ用管理端末１９から管理端末１６を介して受信したプール領域作成コマンドに基づいてマッピングテーブル４０を作成する（Ｓ３２）。具体的に、チャネルアダプタ１１は、作成した仮想論理ボリューム３３ごとにマッピングテーブル１４０を作成し、仮想論理ボリューム作成コマンドに従って、ユーザ等により指定された仮想論理ボリュームサイズ分の仮想論理ボリュームアドレスをマッピングテーブル１４０の対応位置に格納する。
【０１０１】
続いて、チャネルアダプタ１１は、ユーザ用管理端末１９から管理端末１６を介して受信したプール領域作成コマンドに基づいて論理ボリューム構成テーブル７０を更新する（Ｓ３３）。具体的に、チャネルアダプタ１１は、仮想論理ボリューム作成コマンドに従って、ユーザ等により指定された仮想論理ボリューム識別番号（論理ボリューム識別番号）、仮想論理ボリュームサイズ（論理ボリュームサイズ）、接続ポート及びエミュレーションタイプを論理ボリューム構成テーブル７０の対応位置に格納する。
【０１０２】
やがて、チャネルアダプタ１１は、この後、図１６に示す仮想論理ボリューム作成処理手順ＲＴ４を終了する（Ｓ３４）。
【０１０３】
次に、第２の実施の形態における記憶システム１２０のデータ書込み要求時のコマンド処理について説明する。図１７は、この記憶システム１２０におけるデータ書込み要求時のコマンド処理に関するストレージシステム１３０の具体的な処理手順を示したフローチャートである。
【０１０４】
チャネルアダプタ１１は、初期時、ホスト計算機２から受信したデータ書込み要求のコマンドにより記憶領域にデータを書き込むプログラムであるコマンド処理プログラム１６０を実行することにより、図１７に示すデータ書込み要求時のコマンド処理手順ＲＴ５に従って、ユーザ等の操作によりホスト計算機２からデータ書込み要求のコマンドを受信するのを待機モードで待ち受ける（Ｓ４１）。
【０１０５】
やがて、チャネルアダプタ１１は、ホスト計算機２からデータ書込み要求のコマンドを受信する（Ｓ４１：ＹＥＳ）と、仮想論理ボリューム３３の仮想論理ボリュームアドレスに物理論理ボリューム３１の記憶領域が割り当てられているか否かをチェックする（Ｓ４２）。
【０１０６】
そして、チャネルアダプタ１１は、仮想論理ボリューム３３の仮想論理ボリュームアドレスに物理論理ボリューム３１の記憶領域が割り当てられていない場合（Ｓ２２：ＮＯ）には、プール領域管理テーブル５０を参照することにより、仮想論理ボリューム３３と同一のエミュレーションタイプであり、かつデータ書込み要求のコマンドに含まれる書込み対象のデータのデータサイズに最も近い割当てサイズであるプール領域識別番号を取得する（Ｓ４３）。
【０１０７】
このようにして、チャネルアダプタ１１は、プール領域管理テーブル５０により、仮想論理ボリューム３３に割り当てる記憶領域の物理論理ボリューム３１が保持されているプール領域３２を可変的に選択することができるようになされている。
【０１０８】
続いて、チャネルアダプタ１１は、仮想論理ボリューム３３に対応づけられているプール領域３２の物理論理ボリューム３１に空き記憶領域があるか否かをチェックする（Ｓ４４）。
【０１０９】
具体的に、チャネルアダプタ１１は、プール領域管理テーブル５０を参照することにより、当該プール領域識別番号に対応づけられている空き記憶領域数があるか否かをチェックする。
【０１１０】
そして、チャネルアダプタ１１は、仮想論理ボリューム３３に対応づけられているプール領域３２の物理論理ボリューム３１に空き記憶領域がない場合（Ｓ４４：ＮＯ）には、プール領域３２の物理論理ボリューム３１を閉塞させて、その後、図１７に示すデータ書込み要求時のコマンド処理手順ＲＴ５を終了する（Ｓ４８）。
【０１１１】
これに対して、チャネルアダプタ１１は、仮想論理ボリューム３３に対応づけられているプール領域３２の物理論理ボリューム３１に空き記憶領域がある場合（Ｓ４４：ＹＥＳ）には、マッピングテーブル１４０を更新し、仮想論理ボリューム３３に対応するプール領域３２に保持された物理論理ボリューム３１の記憶領域を割り当てる（Ｓ４５）。
【０１１２】
具体的に、チャネルアダプタ１１は、ビットマップ管理テーブル８０を参照することにより、割り当てる記憶領域の物理論理ボリュームアドレスの開始アドレスを確定し、その後、マッピングテーブル１４０を参照することにより、マッピングテーブル１４０の当該仮想論理ボリュームアドレスの対応位置に物理論理ボリューム３１の物理論理ボリューム識別番号、割り当てるべき物理論理ボリューム３１の記憶領域の物理論理ボリューム開始アドレス及び割り当てるべき記憶領域の割当てサイズをマッピングテーブル１４０の当該仮想論理ボリュームアドレスの対応位置に格納し、マッピングテーブル１４０を更新する。
【０１１３】
この場合、チャネルアダプタ１１は、空き記憶領域数がある物理論理ボリュームが複数ある場合には、空き記憶領域が最も多い物理論理ボリューム３１の記憶領域を割り当てるようになされている。
【０１１４】
続いて、チャネルアダプタ１１は、マッピングテーブル１４０の更新に伴って、空き記憶領域管理ビットマップ８０を変更する（Ｓ４６）。具体的に、チャネルアダプタ１１は、マッピングテーブル１４０を参照することにより、空き記憶領域管理ビットマップ８０における、割り当てた物理論理ボリューム３１の記憶領域の物理論理ボリュームアドレスの管理状態を「１」にすることにより、空き記憶領域管理ビットマップ８０を変更する。
【０１１５】
これに対して、チャネルアダプタ１１は、仮想論理ボリューム３３の仮想論理ボリュームアドレスに物理論理ボリューム３１の記憶領域が割り当てられている場合（Ｓ４２：ＹＥＳ）、又は仮想論理ボリューム３３に記憶領域を割り当て、マッピングテーブル４０を更新し、空き記憶領域管理ビットマップ８０を変更した場合（Ｓ４３〜Ｓ４６）には、書き込むべき仮想論理ボリュームアドレスに対応する物理論理ボリューム３１の記憶領域に書込み対象のデータを書き込む（Ｓ４７）。
【０１１６】
やがて、チャネルアダプタ１１は、この後、図１７に示すデータ書込み要求時のコマンド処理手順ＲＴ５を終了する（Ｓ４８）。
【０１１７】
このようにして、記憶システム１２０では、物理論理ボリューム３１を保持するためのプール領域を複数作成し、プール領域３２内の物理論理ボリューム３１の記憶領域を仮想論理ボリューム３３に割り当てる際の、当該記憶領域の割当てサイズを、プール領域３２ごとに設定し、ホスト計算機２からデータが送信されたときの、当該データのデータサイズに応じて、プール領域３２を、複数のプール領域３２から可変的に選択して、当該プール領域３２内の物理論理ボリューム３１の記憶領域を仮想論理ボリューム３３に割り当てる。
【０１１８】
従って、記憶システム１では、ホスト計算機２から送信されるデータに対して、当該データのデータサイズに応じて、プール領域３２を、複数のプール領域３２から可変的に選択するため、当該データごとに適切な割当てサイズの記憶領域を割り当てることができ、物理論理ボリュームの記憶領域を一段と効率的に運用することができる。
【０１１９】
なお、本実施の形態では、図１８に示すように、メインフレーム系のコンピュータシステムの環境においては、論理ボリュームを先頭から末尾の論理ボリュームアドレスに向かって順に使用する（論理ボリュームをシーケンシャルに使用する（（１）→（３）））ようになされているため、例えば、１（ＧＢ）程度のように、割当てサイズを大きめに設定することにより、物理論理ボリュームの記憶領域を一段と効率的に運用することができる。
【０１２０】
また、本実施の形態では、図１９に示すように、オープン系のコンピュータシステムの環境においては、論理ボリュームを故意に空き記憶領域作成して使用する（論理ボリュームをランダムに使用する（（１）→（３）））ようになされているため、例えば、１〜１０（ＭＢ）程度のように、割当てサイズを小さめに設定することにより、物理論理ボリュームの記憶領域を一段と効率的に運用することができる。
【０１２１】
さらに、本実施の形態では、ユーザ等により指定されなくても（割当てサイズが指定されていなくとも）、ホスト計算機２からのコマンドに基づいて、ホスト計算機２がメインフレーム系のコンピュータシステムであるか、又はオープン系のコンピュータシステムであるかを判定し、メインフレーム系のコンピュータシステムのときには割当てサイズを自動的に大きめに設定し、オープン系のコンピュータシステムのときには割当てサイズを自動的に小さめに設定することにより、物理論理ボリュームの記憶領域を一段と効率的に運用することができる。
【０１２２】
さらに、本実施の形態では、バックアップ用途によりＳＡＴＡのディスクデバイス２１を使用するときには、割当てサイズを大きめに設定することにより、物理論理ボリュームの記憶領域を一段と効率的に運用することができる。
【０１２３】
さらに、本実施の形態では、ユーザ等の操作によりユーザ用管理端末１９から管理端末１６を介してプール領域作成コマンドや仮想論理ボリューム作成コマンドを送信した場合について述べたが、本発明はこれに限らず、管理端末１６からプール領域作成コマンドや仮想論理ボリューム作成コマンドを送信するようにしても良く、この他種々の接続機器から送信することができる。
【産業上の利用可能性】
【０１２４】
本発明は、記憶領域が動的に割り当てられ、ホスト計算機に提供される仮想論理ボリュームを有する種々の装置に適用することができる。
【図面の簡単な説明】
【０１２５】
【図１】本実施の形態による記憶システムの構成を示す略線図である。
【図２】第１の実施の形態による割当て処理の内容を概略的に示す概念図である。
【図３】共有メモリ内の各種テーブル及び各種プログラムの説明に供する概念図である。
【図４】マッピングテーブルの説明に供する概念図である。
【図５】物理論理ボリューム管理テーブルの説明に供する概念図である。
【図６】仮想論理ボリューム管理テーブルの説明に供する概念図である。
【図７】論理ボリューム構成テーブルの説明に供する概念図である。
【図８】空き記憶領域管理ビットマップの記憶領域の割当て状態を概略的に示す概念図である。
【図９】空き記憶領域管理ビットマップの記憶領域の割当て状態の説明に供する概念図である。
【図１０】プール領域作成処理の説明に供するフローチャートである。
【図１１】仮想論理ボリューム作成処理の説明に供するフローチャートである。
【図１２】データ書込み時のコマンド処理の説明に供するフローチャートである。
【図１３】第２の実施の形態による割当て処理の内容を概略的に示す概念図である。
【図１４】共有メモリ内の各種テーブル及び各種プログラムの説明に供する概念図である。
【図１５】マッピングテーブルの説明に供する概念図である。
【図１６】仮想論理ボリューム作成処理の説明に供するフローチャートである。
【図１７】データ書込み時のコマンド処理の説明に供するフローチャートである。
【図１８】メインフレーム系のコンピュータシステムにおける割当て処理の内容を概略的に示す概念図である。
【図１９】オープン系のコンピュータシステムにおける割当て処理の内容を概略的に示す概念図である。
【符号の説明】
【０１２６】
１、１２０……記憶システム、２……ホスト計算機、４、１３０……ストレージシステム、１０……コントロール部、１１……チャネルアダプタ、１２……接続部、１３……共有メモリ、１４……キャッシュメモリ、１５……ディスクアダプタ、１６……管理端末、２０……記憶デバイス部、２１……ディスクデバイス、３１……物理論理ボリューム、３２……プール領域、３３……仮想論理ボリューム、４０、１４０……マッピングテーブル、５０……プール領域管理テーブル、５５、１４４……割当てサイズ管理欄、６０……仮想論理ボリューム管理テーブル、７０……論理ボリューム構成テーブル、８０……空き記憶領域管理ビットマップ、９０……プール領域作成処理プログラム、１００、１５０……仮想論理ボリューム作成処理プログラム、１１０、１６０……コマンド処理プログラム
【図１】
2007265270.tif 000003
【図２】
2007265270.tif 000004
【図３】
2007265270.tif 000005
【図４】
2007265270.tif 000006
【図５】
2007265270.tif 000007
【図６】
2007265270.tif 000008
【図７】
2007265270.tif 000009
【図８】
2007265270.tif 000010
【図９】
2007265270.tif 000011
【図１０】
2007265270.tif 000012
【図１１】
2007265270.tif 000013
【図１２】
2007265270.tif 000014
【図１３】
2007265270.tif 000015
【図１４】
2007265270.tif 000016
【図１５】
2007265270.tif 000017
【図１６】
2007265270.tif 000018
【図１７】
2007265270.tif 000019
【図１８】
2007265270.tif 000020
【図１９】
2007265270.tif 000021