(57)【要約】      （修正有）【課題】プールがスペース不足に近づいたら、追加のストレージスペースを取得することで、管理者がこのリスクを軽減することを可能にするフリーセグメントプールを管理するシステムと方法を提供する。【解決手段】ストレージサブシステムのフリーセグメントプール内のフリーセグメントの数が望まれる最小値未満であると検知されたら、次の一つ以上が実行される：内部ストレージからＬＤＥＶ（論理デバイス）を選択してフリーセグメントプールに追加する、ＶＤＥＶ（仮想デバイス）にＬＤＥＶを転換する、外部ストレージからＬＤＥＶを選択してフリーセグメントプールに追加する。データ移行も又以下によって行われる：移行のためにＶＤＥＶのソースセグメントを選択する、ソースセグメントからデータを読み出す、フリーセグメントプールのフリーセグメントであるターゲットセグメントにデータを書き込む、及びＶＤＥＶにターゲットセグメントを割り当てる。【選択図】図３
2006302258.tif 000002
【特許請求の範囲】
【請求項１】
シン・プロビジョン型ストレージサブシステムにおいて、
ストレージサブシステムのフリーセグメントプール内のフリーセグメントの数が望まれる最小値未満かどうか判定するステップと、
もし前記フリーセグメントの数が前記望まれる最小値未満ならば、ＬＤＥＶ（論理デバイス）をＶＤＥＶ（仮想デバイス）に転換するステップ、又は外部ストレージからＬＤＥＶを選択して前記フリーセグメントプールにフリーセグメントとして追加するステップの少なくとも一方を実行するステップと、
から成り、
前記転換するステップは部分的に使用済み又はすべて使用済みのＬＤＥＶを識別して、これらを前記ＶＤＥＶに転換するステップを含むことを特徴とする、ディスクスペースを管理する方法。
【請求項２】
請求項１に於いて更に、もし前記フリーセグメントの数が前記望まれる最小値未満ならば、内部ストレージからＬＤＥＶを選択して前記フリーセグメントプールにフリーセグメントとして追加するステップから成ることを特徴とする、請求項１による方法。
【請求項３】
前記内部ストレージからＬＤＥＶを選択して追加する前記ステップと前記外部ストレージからＬＤＥＶを選択して追加する前記ステップは、管理者が保守コンソールにて１個以上のＧＵＩ（グラフィカルユーザインタフェース）を使用することにより実行されることを特徴とする、請求項２による方法。
【請求項４】
請求項２に於いて更に、
前記フリーセグメントプール内の前記フリーセグメントの数が前記望まれる最小値未満かどうか判定するステップと、
前記フリーセグメントの数が前記望まれる最小値未満ならば、前記内部ストレージからＬＤＥＶを前記フリーセグメントプールにフリーセグメントとして追加するステップと、
前記フリーセグメントプール内の前記フリーセグメントの数が依然として前記望まれる最小値未満かどうか判定し、もしそうであれば、ＬＤＥＶを前記ＶＤＥＶに転換するステップと、
前記フリーセグメントプール内の前記フリーセグメントの数が依然として前記望まれる最小値未満かどうか判定し、もしそうであれば、前記外部ストレージから前記ＬＤＥＶを前記フリーセグメントプールにフリーセグメントとして追加するステップと、
から成ることを特徴とする、請求項２による方法。
【請求項５】
前記転換するステップは更に、
使用済みのＬＤＥＶのリスト上のＬＤＥＶの情報を取得するステップと、
前記ＬＤＥＶに対する使用済みセグメントの合計が規定された閾値を超えるかどうか判定するステップと、
もしも前記使用済みセグメントの合計が前記規定された閾値を超えるならば、前記ＬＤＥＶを前記ＶＤＥＶへの転換の候補リストに追加するステップと、
前記使用済みのＬＤＥＶのリスト上の各ＬＤＥＶに対して、前記の取得し、判定し、追加するステップを繰り返すステップと、
前記ＶＤＥＶへの前記転換の候補リストからＬＤＥＶを選択するステップと、
これら選択したＬＤＥＶの前記ＶＤＥＶへの前記転換を実行するステップと、
から成ることを特徴とする、請求項１による方法。
【請求項６】
前記選択するステップは、管理者が前記候補リストを検討した後、保守コンソールのＧＵＩを使用することにより実行されることを特徴とする、請求項５による方法。
【請求項７】
前記閾値は、管理者が保守コンソールのＧＵＩを使用することにより設定されることを特徴とする、請求項１による方法。
【請求項８】
ＬＤＥＶのＶＤＥＶへの前記転換を実行する前記ステップは、前記フリーセグメントの数が前記望まれる最小値未満であれば、自動的に行われることを特徴とする、請求項１による方法。
【請求項９】
前記外部ストレージからＬＤＥＶを選択して前記フリーセグメントプールにフリーセグメントとして追加するステップを実行する前記ステップは、前記フリーセグメントの数が前記望まれる最小値未満であれば、自動的に行われることを特徴とする、請求項１による方法。
【請求項１０】
フリーセグメントプール内にフリーセグメントが存在するかどうか判定するステップと、
移行のためにＶＤＥＶのソースセグメントを選択するステップと、
前記ソースセグメントからデータを読み出すステップと、
前記フリーセグメントプールからのフリーセグメントであるターゲットセグメントに前記データを書き込むステップと、
前記ＶＤＥＶに前記ターゲットセグメントを割り当てるステップと、
前記フリーセグメントプールに前記ソースセグメントを割り当てるステップと、
から成ることを特徴とする、ストレージサブシステムのデータ移行方法。
【請求項１１】
前記ターゲットセグメントは前記ストレージサブシステムの内部に置かれたストレージデバイスに存在することを特徴とする、請求項１０による方法。
【請求項１２】
前記ターゲットセグメントは前記ストレージサブシステムの外部に置かれたストレージデバイスに存在することを特徴とする、請求項１０による方法。
【請求項１３】
移行のために前記ソースセグメントを選択する前記ステップ、前記ＶＤＥＶに前記ターゲットセグメントを割り当てる前記ステップ、及び前記フリーセグメントプールに前記ソースセグメントを割り当てる前記ステップは、管理者が保守コンソールのＧＵＩを使用することにより実行されることを特徴とする、請求項１０による方法。
【請求項１４】
請求項１０に於いて更に、管理者が保守コンソールのＧＵＩを使用することにより前記フリーセグメントプール内の使用可能なフリーセグメントの量を管理者が監視することに基づいて、該フリーセグメントプールに対してフリーセグメントを与えるロケーションに新たなストレージデバイスを追加するステップから成ることを特徴とする、請求項１０による方法。
【請求項１５】
Ｉ／Ｏ動作のための少なくとも１台のホストデバイスとの接続を提供する第一のポート、外部ストレージサブシステムとの接続を提供する第二のポート、及び外部コンソールとの接続を提供する第三のポートを有するコントローラと、
前記コントローラの第四のポートを介して該コントローラと相互接続される少なくとも１台のストレージデバイスと、
から成るシン・プロビジョン型ストレージサブシステムにおいて、
前記ストレージサブシステムは、もしフリーセグメントプール内のフリーセグメントの数が望まれる最小値未満ならば、ＬＤＥＶをＶＤＥＶに転換するステップ、又は外部ストレージからＬＤＥＶを該フリーセグメントプールにフリーセグメントとして追加するステップの少なくとも一方を実行する能力を有し、該転換するステップは部分的に使用済みか又はすべて使用済みのＬＤＥＶを識別して、これらを該ＶＤＥＶに転換するステップから成ることを特徴とする、ディスクスペースを管理するためのシン・プロビジョン型ストレージサブシステム。
【請求項１６】
前記第一のポートは、ファイバチャネルスイッチ、ハブ、ＩＰネットワーク、及びイーサネットスイッチの一つから成る第一のスイッチングネットワークを介して前記少なくとも１台のホストデバイスに接続されることを特徴とする、請求項１５によるサブシステム。
【請求項１７】
前記第二のポートは、ファイバチャネルスイッチ、ハブ、ＩＰネットワーク、及びイーサネットスイッチの一つから成る第二のスイッチングネットワークを介して前記外部のストレージサブシステムに接続されることを特徴とする、請求項１５によるサブシステム。
【請求項１８】
前記第三のポートは、ファイバチャネルスイッチ、ハブ、ＩＰネットワーク、及びイーサネットスイッチの一つから成る第三のスイッチングネットワークを介して前記外部コンソールに接続されることを特徴とする、請求項１５によるサブシステム。
【請求項１９】
前記Ｉ／Ｏ動作は、ＳＣＳＩ動作及びｉＳＣＳＩ動作の少なくとも一方から成ることを特徴とする、請求項１５によるサブシステム。
【請求項２０】
請求項１５に於いて、各コントローラは更に、
プロセッサと、
１個以上のシン・プロビジョンを実現するＶＤＥＶを生成し管理するＶＤＥＶマネージャと、
ＬＤＥＶからＶＤＥＶへ、ＶＤＥＶからＬＤＥＶへ、ＶＤＥＶからＶＤＥＶへ、及びＬＤＥＶからＬＤＥＶへデータを移行するマイグレータと、
前記少なくとも１台のストレージデバイスから前記少なくとも１台のホストデバイスに前記Ｉ／Ｏ動作のための論理ストレージを提供するためにＬＤＥＶを生成するＬＤＥＶマネージャと、
前記フリーセグメントプールを有し、該フリーセグメントプール内の前記フリーセグメントを管理するセグメントマネージャと、
から成るモジュールを有するメモリーと、
から成り、前記メモリーは論理ユニットのＬＤＥＶへのマッピングとディスクの外部論理ユニットへのマッピングを記憶することを特徴とする、請求項１５によるサブシステム。
【請求項２１】
前記外部コンソールは、前記フリーセグメントプール、前記論理ユニットのＬＤＥＶへのマッピング、及び前記ディスクの外部論理ユニットへのマッピングに関する情報を含む少なくとも一つのＧＵＩを管理者に提供し、該管理者は、前記フリーセグメントプール内の前記フリーセグメントの数が前記望まれる最小値未満ならば、該情報を使用してＶＤＥＶへの前記転換のためにＬＤＥＶを調査して選択し、外部ストレージからＬＤＥＶを該フリーセグメントプールにフリーセグメントとして追加する前記ステップを実行することを特徴とする、請求項２０によるサブシステム。
【請求項２２】
前記モジュールはマイクロコード又はソフトウェアの少なくとも一方から成ることを特徴とする、請求項２０によるサブシステム。
【請求項２３】
前記モジュールはリムーバブルストレージ媒体から前記メモリーにインストールされたプログラムコードから成ることを特徴とする、請求項２０によるサブシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージエリアネットワークシステムに関する。
【背景技術】
【０００２】
使用中割り振り（allocation-on-use；使用時割り当て）システムの管理は、書き込まれるデータに対してあるサイズのストレージエリアを割り振ることにより、仮想ボリュームに対して効率の良いストレージスペース管理を提供する。
【０００３】
米国特許６，７２５，３２８「ストレージデバイスの自動的オンライン容量拡張方法」を参照すると、使用中割り振り技術の初期的段階の発展の詳細が開示されている。
【０００４】
【特許文献１】米国特許６，７２５，３２８
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、この方法はシステムが管理者にフリースペース不足に関する警報を発した後にサブシステム内の新たなディスクをフリースペースに割り振るに過ぎない。このようにして、新たなディスクのインストールが遅れることにより、フリースペースが不足するというリスクが存在する。また、使用中割り振りシステムは、ホストの書き込み動作の間にデータを記憶するセグメントを割り振るためにフリーセグメントのプールを持たなければならない。
【０００６】
一方、一般に、プールは静的に割り当てられ、例えば管理者はプールが少なくなるとディスク又は内部ストレージのストレージエリアの一部分をプールに割り当てる。これは、ストレージ上にディスクが山のように存在するか、又は顧客のストレージサブシステムを保守するカストマーエンジニアが必要時に顧客サイトに行って新たなディスクをインストールすることが可能ならば、有効であろう。しかしながら、この方法は、ディスクに限りがあるか、又は必要時にカストマーエンジニアが顧客サイトに行くことができないという理由で、ディスク又はストレージエリアの部分から新たなセグメントがインストールされないかもしれない点でリスクがある。
【０００７】
従って、プールがスペース不足に近づいたら、ＬＤＥＶや追加のストレージスペース、又は外部のストレージサブシステムからセグメントを取得することで、管理者がこのリスクを軽減することを可能にするフリーセグメントプールを管理するシステムと方法が必要になる。
【課題を解決するための手段】
【０００８】
シン・プロビジョン型ストレージサブシステムのディスクスペースを管理するシステムと方法に関する。ストレージサブシステムのフリーセグメントプール内のフリーセグメントの数が望まれる最小値未満であると検知されたら、次の一つ以上が実行される：内部ストレージからＬＤＥＶを選択してフリーセグメントプールにフリーセグメントとして追加する、ＬＤＥＶをＶＤＥＶに転換する、及び（又は）外部ストレージからＬＤＥＶを選択してフリーセグメントプールにフリーセグメントとして追加する。転換するとは、部分的に使用済みか又は完全に使用済みのＬＤＥＶを識別して、これらをＶＤＥＶに転換することを含む。データ移行も又次により行われる：ＶＤＥＶのソースセグメントを移行のために選択する、ソースセグメントからデータを読み出す、フリーセグメントプール内のフリーセグメントであるターゲットセグメントにデータを書き込む、ターゲットセグメントをＶＤＥＶに割り当てる、及びソースセグメントをフリーセグメントプールに割り当てる。
【発明を実施するための最良の形態】
【０００９】
ここに示す詳細は例として取り上げるものであり、本発明の実施例を説明して論ずるためのものである。図面と共になされる説明により本発明を如何にして実際に具体化するか当該技術分野に通じている者には明白になる。
【００１０】
更に本発明を不明瞭にするのを避けるため、更に又手順の実行に関する細部は本発明が実行されるべきプラットフォームに高度に依存するという事実に照らして、手順はブロック図の形で示される。即ち詳細は当該技術分野に通じている者が十分理解できる範囲内である。特定の詳細（例えば回路、フローチャート）が本発明の実施例を説明するために述べられる場合は、本発明の技術分野に通じている者にはこれら特定の詳細がなくても実施できることは明らかであろう。最後に、本発明の実施例を実行するために配線接続された回路とソフトウェア命令の任意の組み合わせを用いることができることは明らかであろう。即ち本発明は配線接続された回路とソフトウェア命令の任意の特定の組み合わせに限定されるものでない。
【００１１】
本発明の実施例は一例となるホストユニット環境に於いて一例となるシステムのブロック図を用いて説明されるが、本発明の実施はそれに限定されるものでない。即ち本発明は他のタイプのシステムについてでも、他のタイプの環境に於いてでも実施し得るものである。
【００１２】
本発明で「一つの実施例」又は「一実施例」として言及しているものは、当該実施例に関連して説明される特定の特徴、構造又は特性が本発明の少なくとも一つの実施例に含まれることを意味する。明細書のいろいろな箇所で「一実施例に於いて」という語句が出てきても必ずしもすべてが同じ実施例に言及しているとは限らない。
【００１３】
本発明の実施例は、フリーセグメントをフリーストレージプールに供給し、このプールが不足に近づいたときにいくつかのストレージリソースの管理者に通知することによって、シン・プロビジョン型ストレージサブシステムのフリーセグメントプール内のセグメントが常に利用できることを保証することに関する。本発明の実施例により、２個以上のストレージエリアが使用できる。例えば、ＬＤＥＶのような内部ボリュームスペースの未使用ブロックをＬＤＥＶからＶＤＥＶへと変換して使用でき、又ストレージサブシステムに、例えばＷＡＮ（Wide Area Network；広域ネットワーク）を介して接続された外部ストレージデバイス又は遠隔ストレージサブシステムの外部ボリュームのブロック全体を使用できる。
【００１４】
更に、管理者がこれらのストレージエリアをフリーセグメントプールに適応させた後は、データは記憶されるが、管理者が後でデータを再配置してデータを新たな好適な又は指定されたロケーションに記憶することを望むことがあるので、一時的なロケーションに置かれるに過ぎない。例えば、データは現在は外部ストレージに置かれているが、当該データを内部ストレージに再配置すること、又はこの逆にすることが望まれることがある。このように、本発明の実施例は管理者によって指定されたロケーションにデータを記憶するデータ集約も可能にする。例えば、ストレージサブシステムは、カストマーエンジニアが設定するＬＤＥＶが管理者によってデータを一時的に記憶する場所を提供するためにプールに割り当てられた後で、管理者が指定した集約ロケーションにデータを移行することができる。
【００１５】
図１はシン・プロビジョンを実現する書き込み動作の図である。初めに、ストレージサブシステムが使用中割り振り技術を使用する前に、管理者は通常フリーセグメントプール１２７としてＬＤＥＶ（logical device；論理デバイス）を割り当てる。このＬＤＥＶはローカルブロックアドレスへのストレージ割り振りのあるパリティーグループに基づくディスクから成る。ストレージサブシステムは、ユーザの定義した又はシステムのデフォルトサイズのセグメントに基づくフリーセグメントプールを得るために、ＬＤＥＶをセグメントに分割する。一旦これが行われると、ＬＢＡ（logical block address；論理ブロックアドレス）、例えばＬＢＡ２２５２０への１ＬＢＡのサイズでの書き込みアクセスが行われると、ＬＢＡスペースへのストレージ割り振りのないＬＢＡスペースを有するＶＤＥＶ（virtual device；仮想デバイス）は、このＶＬＢＡ（virtual logical block address；仮想論理ブロックアドレス）のセグメントが現時点では割り当てられていないので、フリーセグメントプール１２７からセグメント＃３０１を割り振る。次いでデータが書き込まれる。
【００１６】
図２は、ＶＤＥＶがＬＵ（logical unit；論理ユニット）に割り当てられ、ＶＤＥＶの一部がＳＣＳＩ  ＷＲＩＴＥ（６）コマンドや他の書き込みコマンドによってアクセスされる時のＶＤＥＶに関するプロセスの例をフローチャートで示している。アクセスを求められているセグメントが、ホスト要求のＬＢＡに基づいて割り当てられているかどうかが判定される、ステップ１２１。もしセグメントが割り当てられていないならば、セグメントがフリーセグメントプールから取得される、ステップ１２２。セグメントが割り当てられ又は取得されたならば、データが、要求されたＬＢＡ−（マイナス）セグメントのＶＬＢＡからデータサイズ分書き込まれる、ステップ１２３。
【００１７】
図３は本発明の一実施例によるディスクスペースを管理するシン・プロビジョン型ストレージサブシステムの図を示す。この実施例はホストデバイス１０、第一のストレージサブシステム３０、第二のストレージサブシステム４０、及びホスト１０とストレージサブシステム３０、４０間を相互接続し、更にストレージサブシステム３０と４０との間を相互接続することもできるスイッチネットワーク７１、８１を有する。更に、スイッチ／ハブネットワーク８２を介して各ストレージサブシステムに相互接続される外部コンソール８３も示されている。
【００１８】
ホスト１０は計算デバイスであり、データ処理を実行し、ワークステーションやパーソナルコンピュータと同様にハードウェア要素とオペレーティングシステムを有している。ホスト１０はＣＰＵ１１、メモリー１２、及び内部ディスク１３を有しており、これらは内部システムバスを介して相互接続されている。ホスト１０は更にホスト１０と１台以上のストレージサブシステム３０、４０とをスイッチ７１を介して接続するためのＨＢＡ（Host Bus Adapter；ホストバスアダプタ）１４を有する。スイッチ７１はホストとストレージサブシステムとのインタフェースに使用できる任意のタイプのスイッチ、例えば、ＦＣ（Fibre Channel；ファイバチャネル）スイッチ、イーサネット（イーサネットは登録商標）スイッチ等である。各ホスト１０はストレージサブシステム３０、４０にて与えられるＬＵ上にデータを記憶することができる。
【００１９】
ストレージサブシステム４０は１台以上のＲＡＩＤコントローラ４１、１台以上のディスク４９、及び管理コンソール４０２を有する。コントローラ４１はプロセッサ、メモリー、及び例えばイーサネット又はＦＣポート４６のようなＮＩＣインタフェースを有する。コントローラ４１のポート４６はストレージサブシステム４０を１台以上のホストデバイス１０に接続することを可能にし、ストレージサブシステム４０がホストからＩ／Ｏ（input / output；入出力）動作を受信して処理することを可能にする。コントローラ４１はＮＶＲＡＭ（non-volatile random access memory；不揮発性ランダムアクセスメモリー）を有するのが望ましく、ＮＶＲＡＭを、データを記憶し、例えば電源故障から保護するための、キャッシュとして使用することができる。電源故障の場合、ＮＶＲＡＭに記憶されたデータは、コントローラ４１及びディスク４９のバッテリー電源を用いて、ディスク４９のストレージ構成エリアにデステージすることができる。コントローラ４１はＳＣＳＩの世界でストレージサブシステム４０のターゲットＩＤを指定するためにＷＷＮ（World Wide Name）と関連付けられ、一つのＦＣポートに対して一つのＬＵＮから構成されるＦＣポート４６を備える。ＳＣＳＩ  Ｉ／Ｏ動作はホストデバイス１０とストレージサブシステム４０のストレージとの間で処理することができる。ＳＣＳＩ  Ｉ／ＯプロセスはｉＳＣＳＩに対しても応用可能である。ストレージはストレージサブシステム４０に置かれた幾つかのディスク４９を用いてＲＡＩＤ構成にすることができる。
【００２０】
ストレージサブシステム４０はカストマーエンジニアによって使用されるための管理コンソール４０２を持つことができ、このコンソールはコントローラ４１に接続することができる。コンソール４０２はディスク４９からパリティーグループを生成するためＧＵＩを備えることができる。ストレージサブシステム４０は更に、ストレージサブシステム４０のコントローラ４１のポート４７、スイッチ８１、外部ストレージサブシステム３０のコントローラ３１のポート３３を介して外部ストレージサブシステム３０への接続機能を有する。このようにストレージサブシステム４０のコントローラ４１は少なくとも２種のポートを有し、一つのポート４６はホストとの接続を可能にするため、もう一つのポート４７は外部のストレージサブシステムとの接続を可能にするためにある。
【００２１】
外部ストレージサブシステム３０はストレージサブシステム４０と同じか又は類似に構成することができ、コントローラ３１、１台以上のディスク３２、及びコントローラ３１に接続された管理コンソール３０２を有する。更に前に述べたように、コントローラ３１は、１個以上のポートも有し、そのうちの少なくとも一つのポート３３はスイッチ又はハブ８１を通じてストレージサブシステム４０に対して接続を可能にする。
【００２２】
システムは更に管理者が使用するための、（ストレージサブシステムの）外部に設けられたコンソール８３を有し、このコンソールはイーサネット、トークンリング、ＦＤＤＩ等のようなＴＣＰ／ＩＰによって通信を行うことができるスイッチ／ハブ８２を介して各ストレージサブシステム３０、４０のコントローラ３１、４１のポートに接続することができる。本発明の実施例により、各ストレージサブシステム３０、４０のコントローラ３１、４１はシン・プロビジョン型ストレージサブシステムのディスクスペース管理を実行する機能を有し、この機能はソフトウェア、マイクロコード、ハードウェア、又はそれらの組み合わせで実行することができる。
【００２３】
コンソール８３は管理者にスイッチ、ハブ、ＬＡＮ／ＷＡＮ等８２を介してストレージサブシステムを遠隔管理する能力を与える。外部コンソール８３は、例えばＬＤＥＶの生成、ＬＤＥＶのＬＵへのマッピング、フリーセグメントプールの生成、ＶＤＥＶのＬＵへのマッピング等各種の動作に対するＧＵＩを提供することができる。
【００２４】
図４は本発明の一実施例によるディスクスペースを管理するシン・プロビジョン型ストレージサブシステムの論理構成の図を示す。本発明を説明するために、コンポーネントがソフトウェア又はマイクロコードの場合の実施例を用いているが、本発明はこれらの実施例又は実装に限定されるものでない。ＳＡＮ（Storage Area Network；ストレージエリアネットワーク）７０は例えばＦＣ、イーサネット等のスイッチやハブを用いてホスト１０とストレージサブシステム４０との間の論理接続を提供する。ＬＡＮ８２は外部コンソール８３とストレージサブシステム３０、４０との間の論理接続を提供し、イーサネット、ＦＤＤＩ、トークンリングのようなスイッチを有することができる。外部コンソール８３はストレージサブシステム３０、４０のいくつかの機能を遠隔管理することを可能にする。
【００２５】
ストレージサブシステム４０のコントローラ４１はプロセッサ及び本発明によるシン・プロビジョン型ストレージサブシステムのディスクスペースの管理を行う手助けをするモジュールを含むメモリーを有している。これらのモジュールはＬＤＥＶ  Ｍｇｒ（logical device manager；ＬＤＥＶマネージャ）６３を有し、このＬＤＥＶ  Ｍｇｒは物理ディスクからＩ／Ｏプロセス６１、ＶＤＥＶ  Ｍｇｒ（virtual device manager；ＶＤＥＶマネージャ）６２及びマイグレータ６４に論理ストレージを提供するためにＬＤＥＶを生成する。更に、これらはパリティーグループマネージャ（図示せず）を有することができる。これらのモジュールはマイクロコード、ソフトウェア、又はそれらの組み合わせにより実装することができ、コントローラ４１に置かれて実行される。更に、モジュールは、例えば光メディア、ＦＤ（Floppy Disk；フロッピーディスク）、（フロッピー、Ｆｌｏｐｐｙは登録商標）又は他のリムーバブルメディアのようなストレージメディアデバイスからインストールされるプログラムコードとして与えられても良い。ＬＵのＬＤＥＶ／ＶＤＥＶへのマッピング６５、セグメントマネージャ６６、及びディスクの外部ＬＵへのマッピング４８はテーブル形式で記憶される関係情報を持つことができる。
【００２６】
ＬＵＮ５３が１個以上のＬＤＥＶ５１、５２と関連付けられている。各ＬＤＥＶ５１、５２は当該ＬＤＥＶのセグメントの利用を表わす関連ビットマップ５４を有する。ビットマップの各ブロック（即ちビット）はＬＤＥＶのセグメントを表わす。更に、前に述べたように、各ＬＵ５５は関連ＶＤＥＶを持つことができる。多くの又は大部分の又はすべてのセグメントが使用済みのＬＤＥＶは割り振り済み５６とみなすことができ、このことはＬＤＥＶ５１のビットマップ５４からわかる。その一方、大部分又はすべてのセグメントが使用されていないＬＤＥＶは、ＬＤＥＶ５２のビットマップからわかるようにフリー５７とみなされる。ビットマップの影付きの四角形はＬＤＥＶ５１、５２の割り振られていないセグメントを表わす。更に、１個以上のＬＵ５９は（関連するＬＤＥＶと共に）パリティーグループ５８の一部となり、ＬＤＥＶと関連付けられる。
【００２７】
ＬＤＥＶ  Ｍｇｒ６３はＬＤＥＶの構造を管理し、ＬＤＥＶのフォーマットを処理し、ＳＣＳＩターゲットとしてマップされたＬＵから読み出し／書き込みＩ／Ｏプロセスの動作を処理する。ＬＤＥＶは、ホスト１０からのデータを記憶し、ホスト１０にデータを返送するためのＬＵの論理ストレージエリアを表わす。ＬＤＥＶはパリティーグループの一部分になり得る。管理者は当該ＬＤＥＶの領域を定義し初期フォーマットを行い、各定義されたＬＤＥＶの番号を保存する。各ＬＤＥＶとパリティーグループとの間のマッピングも又図５に示すようにＬＤＥＶ構成６７に保存することができる。
【００２８】
ＬＤＥＶの初期フォーマットは管理者が要求する。フォーマットデータのデフォルト値は０とすることができ、この値はＬＤＥＶ内で定義された各セグメントに対するＬＤＥＶのビットマップ５４に記憶される初期値とすることができる。フォーマットデータは、外部コンソール８３を介して、管理者によって空文字又は任意の他の文字に再構成することができる。各ＬＤＥＶのビットマップ５４は、もしＬＤＥＶがＶＤＥＶに割り当てられていないならば、ＬＤＥＶを初期フォーマットして以来ＬＤＥＶに書き込まれたブロックを管理するために用いられる。ビットマップの各ビットはシステム又はユーザが定義したサイズ、例えば１ＭＢ、で分割したサイズのブロックの一部分（セグメント）を管理する。
【００２９】
ＬＤＥＶの初期フォーマットの間に、コントローラはＬＤＥＶの一部分をフォーマットし、ビットマップを例えば「０」にリセットする。更に、管理者はＬＤＥＶのビットマップが生成されていない場合は外部コンソール８３を介してＬＤＥＶから各ビットマップに関係するデータを読み出すことによってビットマップを再構築することができる。管理者がＬＤＥＶのビットマップを再構築するように要求する時、ＬＤＥＶ  Ｍｇｒは各ビットマップに関係する各セグメントのデータを読み出し、ビットマップのデータがすべて「０」又は管理者が定義した文字と同じ場合はビットマップを「ＯＮ」即ち「１」に設定し、ビットマップのデータがすべて「０」又は管理者が定義した文字と同じとはいえない場合はビットマップを「ＯＦＦ」にする。ビットマップを再構築した後、管理者はＬＤＥＶを移行源として用いることができる。このことは追って更に詳細に説明する。
【００３０】
ＳＡＮ８０はストレージサブシステム４０ともう一つのストレージサブシステム３０との間の論理接続を表わす。この機能は、例えばＦＣスイッチ、ハブ、イーサネットスイッチ等により与えられる。ＦＣプロトコルを使用するのが好適である。この接続はＷＡＮに於いてストレージサブシステム３０を遠隔サイトと接続するために使用することができる。この実施例では、ＳＡＮはＦＣＩＰ、ｉＳＣＳＩ又は他のタイプの遠隔接続可能なプロトコルとハードウェアを使用することができる。
【００３１】
ストレージサブシステム３０は、いくつかのＬＵをＳＡＮ８０に提供するＲＡＩＤ技術に基づく汎用ストレージサブシステムの役割を引き受けることができる。しかしながら、ストレージサブシステム４０が汎用ストレージサブシステムの役割で使用されるならば、ストレージサブシステム３０は外部ストレージデバイスに接続するためのディスク−ＥｘＬＵマッピング（図１１に関連して後述する）を用いて外部ストレージデバイスに接続する機能を持つ必要がなくなる。
【００３２】
図５は本発明の一実施例によるＬＤＥＶ構成マッピングの図を示す。パリティーグループマネージャモジュールはマイクロコードの一部分であり、ＲＡＩＤ０／１／２／３／４／５／６技術を用いてディスクからパリティーグループを構成することができる。ＲＡＩＤ５技術に基づくＲＡＩＤ６は、デュアルパリティーの保護である。生成されたパリティーグループはストレージサブシステム内のパリティーグループを識別するためのパリティーグループ番号１０１、ＲＡＩＤ技術により生成される使用可能容量サイズ１０２、ＲＡＩＤ構成１０３、パリティーグループのディスク１０４、関連するＬＤＥＶのＬＤＥＶ番号１０５、開始ＬＢＡ１０６、及び終了ＬＢＡ１０７を有する。
【００３３】
図６は本発明の一実施例によるＬＤＥＶ書き込みプロセスのフローチャートを示す。書き込みプロセスはホストデバイスのような開始デバイスによって開始され、例えばＳＣＳＩ  ＷＲＩＴＥ（６）又は他の書き込みコマンドによりＬＤＥＶのストレージスペースにアクセスする。書き込みに関連付けられたデータは開始ＬＢＡとサイズで指定されたＬＵによってＬＤＥＶに書き込まれる、ステップ１１６。ＬＤＥＶの書き込まれたセグメントに関係する１個以上のビットマップはＯＮに変わる、ステップ１１７。前述のように、このことはこれらＬＤＥＶのセグメントが今や使用済みか割り振られ済みであることを意味する。次いで、プロセスが終了する。後述のように、ＶＤＥＶからＬＤＥＶに、及びＶＤＥＶからＶＤＥＶにデータを移行するためにビットマップを使用することができる。
【００３４】
図７は本発明の一実施例によるフリーセグメントプール内のＬＤＥＶの割り振られないセグメントの図を示す。フリーセグメントプール６６−１はホストデバイスから受信したＩ／Ｏ要求に基づいて必要とされるＶＤＥＶに割り振ることができるセグメントを有する。フリーセグメントプールは、例えばセグメント番号１４６、セグメントが関連付けられるＬＤＥＶ１４７、ＬＢＡ１４８、セグメントのオフセット量又はサイズ１４９、及び例えばストレージサブシステムの内部にあるか外部ストレージサブシステムにあるかのセグメントロケーション１５０、等の各セグメントに関する情報を有する。
【００３５】
ＶＤＥＶ  Ｍｇｒ６２は、使用中割り振り技術ベースの一つ以上のボリュームを生成する。ＶＤＥＶは、セグメントのサイズで分割され、セグメントに割り振られていないＶＤＥＶの一部分がＬＵから書き込まれる時に、セグメントマネージャ６６にあるフリーセグメントプール６６−１からストレージエリアのセグメントを割り振られる。セグメントマネージャ６６はこれらのストレージセグメントを管理することができる。
【００３６】
図８は本発明の一実施例による割り振りテーブルの図を示す。ストレージセグメントは、割り振り済みか及びフリーか、の少なくとも二つの特性を有する。前述のように、セグメントはＶＤＥＶに割り振り済み５６か、又はＬＤＥＶ上で割り振りが可能な状態にあってフリー５７である。割り振り済みのセグメントは既に割り振りが済んでおり、記憶データを有する。ＶＤＥＶマネージャは、各ＶＤＥＶに対してＶＬＢＡスペースを管理するために、割り振りテーブル６６−０内に各ＶＤＥＶ内に割り振られたセグメントに関する情報を有する。割り振りテーブル６６−０は、例えばシステム内のＶＤＥＶを識別するＶＤＥＶ番号１４０、ホストからのＳＣＳＩ  ＲＥＡＤ  ＣＡＰＡＣＩＴＹコマンドによって収集されるＶＤＥＶのホストから見えるサイズ１４１、管理された開始ＶＬＢＡ１４２を持つ各割り振り済みのセグメント情報、ＶＤＥＶの部分に対するオフセット１４３、データを記憶するセグメント番号１４４、及びセグメントのロケーション１４５、のような情報を有する。一般的に、セグメントのオフセットはＬＤＥＶ上のセグメントのサイズと同じである。しかしながら、ＬＤＥＶ上で使用されるものと異なったサイズのセグメントがＶＤＥＶ上で使用され得る。この場合、本発明の実施例は、テーブル６６−１に示されるＬＤＥＶ内のセグメントのサイズからＶＤＥＶに対するテーブル６６−０に示されるＶＤＥＶ上のセグメントのサイズに交換するためにアドレスを変換するための変換テーブルを使用することができる。ＶＤＥＶ内の割り振られていないセグメントに関して、開始ＶＬＢＡ１４２とオフセット１４３で決まるセグメント番号１４４上で「−１」を指定することができる。
【００３７】
セグメントが「フリー」５７であると分類されたなら、セグメントはセグメントマネージャ６６の一部分になり得るフリーセグメントプール６６−１から割り振ることができる。セグメントプール６６−１が編成され、セグメントが管理者によっていくつかのＬＤＥＶから割り当てられる。管理者がフリーセグメントプールにＬＤＥＶを割り当てると、セグメントマネージャはセグメントマネージャが定義する又はストレージサブシステムにより予め設定されているセグメントサイズの一部分でＬＤＥＶを分割することができる。この分割の後、フリーセグメントプール６６−１が構成される。
【００３８】
セグメントのロケーションに関して、もしパリティーグループ（図５参照）が外部ストレージサブシステム（例えばＥｘ１、Ｅｘ２）上のＬＤＥＶのみから構成される場合は、ロケーションは「外部」と表わされる。更に、もしパリティーグループが内部ストレージサブシステム上及び外部ストレージサブシステム上のＬＤＥＶ（例えばＥｘ１、ＬＤＥＶ３００）から構成される場合は、ロケーションは「混在」と表わされる。更に、もしパリティーグループがすべて内部ストレージサブシステム上のＬＤＥＶ（例えばＬＤＥＶ１、ＬＤＥＶ２）から構成される場合は、ロケーションは「内部」と表わされる。
【００３９】
ＶＤＥＶがＬＵに割り当てられ、ＶＤＥＶの一部分がＳＣＳＩ  ＷＲＩＴＥ（６）コマンドや他の書き込みコマンドによりアクセスされる時のＶＤＥＶの動作の例が、前に図２に関して論じられた。セグメントに属しているデータはＶＤＥＶ割り振りテーブル６６−０内のホストが要求したＬＢＡに基づいて調べられる。もしセグメントが見つからないならば、セグメントがフリーセグメントプール６６−１から取得される。この後、又はこのセグメントが見出されたならば、要求されたＬＢＡからデータが書き込まれる。書き込みアクセスが２２５２０ＬＢＡに対して１ＬＢＡサイズで生ずると、ＶＤＥＶ２２は、ＶＬＢＡのセグメントは現在割り当てられていないので、フリーセグメントプール１２７からセグメント（＃３０１）を割り振り、次いでデータが書き込まれる。前述のように、使用中割り振り技術を使用する前に管理者はフリーセグメント６６−１に対してＬＤＥＶを割り当てることができ、ストレージサブシステムはフリーセグメントプール６６−１のためにＬＤＥＶをそのストレージサブシステムに於いてユーザが規定したサイズ又はシステムのデフォルトのサイズのセグメントに分割することができる。
【００４０】
図９は本発明の一実施例によるシン・プロビジョン型ストレージサブシステムの読み出しプロセスのフローチャートを示す。ＳＣＳＩ  ＲＥＡＤ（６）コマンド及び他の読み出しコマンドの場合、このアクセス手順は、セグメントテーブルのＳＣＳＩ読み出し要求ＬＢＡに基づき、データが属するセグメントを調べる、ステップ１３１。もしセグメントが見つかったら開始ＶＬＢＡとサイズで定義されたデータが、見出されたセグメントの相対アドレスを考慮して返送される、ステップ１３２。セグメントが見つからなかった場合は、１セットの「０」、空文字、又は管理者が定義した文字がセグメントに対して返送される、ステップ１３３。このセットのサイズはＳＣＳＩ書き込みにより要求することができる。
【００４１】
ストレージサブシステム４０のコントローラ４１のＩ／Ｏプロセス６１は、ホスト１０から要求されたＬＵの入力／出力を処理する。このモジュールは主として二つの主なサブモジュール、即ちストレージサブシステムのポートを介してＬＵを表わすモジュールとＳＣＳＩ  Ｉ／Ｏ動作のモジュールとから成る。ＳＣＳＩ  Ｉ／Ｏ動作のモジュールは汎用のＳＣＳＩ−２／３コマンドセットを処理する。更にｉＳＣＳＩコマンドも処理できる。
【００４２】
図１０は本発明の一実施例によるＬＵのデバイスへのマッピングの図を示す。ストレージサブシステムのポートを介してＬＵを表わすモジュールが、ＬＵを表わすために用いられ、この場合コントローラ４１はＬＵ−ＤＥＶ（device：デバイス）マッピング６５を使用する。ＬＵ−ＤＥＶマッピング６５はホストの観点からＬＤＥＶ／ＶＤＥＶを指定するテーブルの形式をとっており、例えばストレージサブシステムの物理的なＦＣポートを識別するポート番号９１、ホストからポートを識別するＷＷＮ９２、ＳＣＳＩによりホストに対して記憶ロケーションを表示するＬＵＮ９３、及びＤＥＶ名９４を有する。ＤＥＶ名は、例えば（論理デバイスの場合は）ＬＤＥＶ、（仮想デバイスの場合は）ＶＤＥＶ、等のようにいくつかのボリュームのタイプのうち任意のものにすることができる。
【００４３】
マイグレータモジュール６４は、ＬＤＥＶからＶＤＥＶ、ＶＤＥＶからＬＤＥＶ、ＶＤＥＶからＶＤＥＶ、及びＬＤＥＶからＬＤＥＶへの移行を実行する能力を持つ。データを移行するにはいくつかの行き方があるが、ＬＤＥＶからＶＤＥＶ、及びＶＤＥＶからＶＤＥＶの二つのみが本発明の説明に役立てるために使用される。このことについては追ってより詳細に論ずる。更に、スケジューラ（図示せず）が、ＵＮＩＸ（ＵＮＩＸは登録商標）のｃｒｏｎ又はＷｉｎｄｏｗｓ（Ｗｉｎｄｏｗｓは登録商標）のタスクスケジューラのようなタスク実行者となることができ、コントローラ４１内に置くことができる。
【００４４】
図１１は本発明の一実施例による外部ＬＵのＬＵＮへのマッピングの図を示す。このマッピングはテーブルの形式をとることができ、外部ストレージとの接続機能を持ったストレージサブシステムに置くことができ、ストレージサブシステム３０上の外部ＬＵを内部ディスクとみなすことを可能にするマッピング能力を提供する。このマッピングは、例えば、Ｅｘ−ＬＵ（external logical unit；外部ＬＵ）ディスク番号１１１、ＬＵサイズ１１２、ＷＷＮ１１３、及びターゲットボリュームを指定するためのＬＵＮ１１４を有する。ストレージサブシステム４０からＥｘ−ＬＵを指定するために、ストレージサブシステムは、例えば図５にディスク番号１０４として示すようにＥｘ＜番号＞のような識別子を使用することができる。この識別子は外部ストレージサブシステムのＬＵを示す。
【００４５】
図１２は本発明の一実施例によるパリティーグループ構造の図を示す。本発明の実施例はＬＤＥＶ及びＶＤＥＶを使用している。これらのデバイスはいくつかのパリティーグループから構成することができる。パリティーグループはストレージサブシステムの新たなディスクのインストレーションの間にカストマーエンジニアが設定することができる。例えば、もしストレージサブシステム３０でディスクインストレーションが行われるならば、カストマーエンジニアは、ストレージサブシステム４０及び外部ストレージサブシステム３０に対して、例えばＦＣ配線のような物理接続及び、例えばＷＷＮによるポートログインのようなＦＣプロトコル接続が使用できる論理接続を提供することができる。接続が成立した後は、管理者はパリティーグループからＬＤＥＶを生成し、或いは仮想ボリュームに対するフリーセグメントプール６６−１にフリーセグメントスペースを割り当て、仮想ボリュームを生成することができる。
【００４６】
ストレージサブシステムは、ストレージサブシステムのコントローラがＳＣＳＩイニシエータとなる時、外部ＬＵからパリティーグループを生成することができる。例えば外部ストレージサブシステムから与えられる５００ＧＢ（０．５ＴＢ）ＬＵ及び当該外部ストレージサブシステムから与えられる５００ＧＢＬＵを用いて、ディスク−ＥｘＬＵマッピング生成後、ボリュームマネージャはそれぞれが既に論理ディスクに識別子を割り当てられている二つの５００ＧＢＬＵを連結して１個のパリティーグループを生成することができる。パリティーグループの各ＬＵは、ヘッダー情報５１１、５１４、ＬＢＡのオフセット即ちＬＵの開始アドレススペース、サイズ（例えばこの実施例ではＬＵのサイズは５１２バイトである）、及び前に示した（例えば図５、１０、１１）ような他の可能な情報、例えば、パリティーグループ番号上のデータスペース、所属するパリティーグループ、サイズ、所属ＬＵ（ポート及びポート上のＬＵＮ）、論理ディスク番号、構成（結合、ＲＡＩＤ０／１／２／３／４／５／６）、構成のためのＬＵの順序、等のような関連情報を有する。データスペースサイズはＬＵサイズ−（マイナス）ＬＤＥＶヘッダーサイズの値である。この実施例ではヘッダーのサイズは５ＭＢにすることができる。
【００４７】
例えば、特定のＬＵのパリティーグループのサイズが１ＴＢ−（マイナス）ヘッダーサイズである場合、ＬＤＥＶとストレージサブシステムの物理アドレススペースとのアドレスマッピングを示すことができる。例えば、パリティーグループ５１０のＬＢＡ０に関して、１番目のＬＵシーケンス５１３のヘッダーサイズの後の１番目のＬＵシーケンスのデータアドレススペースは、１番目のＬＵシーケンスのヘッダー５１１の後から１番目のＬＵシーケンスのヘッダーに関して書き込まれるであろうサイズまでになることができる。次の２番目のＬＵシーケンス５１６のデータアドレススペースは２番目のＬＵシーケンスのヘッダー５１４の後から２番目のＬＵシーケンスのヘッダーに関するサイズまでになることができる。
【００４８】
本発明の別な実施例では、ストレージサブシステム４０はボリュームヘッダー情報なしでボリュームを使用することができる。このことは、外部ＬＵがボリュームなしで直接Ｅｘ−Ｘに接続されることを意味する。
【００４９】
図１３は本発明の一実施例による管理者によって設定可能な閾値レベル情報を含むＧＵＩの図を示す。フリーセグメントプールに望まれるのは、フリーセグメントが、何個残されているかを示すある閾値又は使用率に保たれる必要があることである。管理者はフリーセグメントプール内の残存フリーセグメントの閾値レベルを示す情報１９１を設定するために、ＧＵＩ２３０、又は他のＣＬＩインタフェースを使用する。この場合、利用できるフリーセグメントを増やすためには行動がとられる必要がある。例えば、利用できるフリーセグメントがフリーセグメントプールのサイズ全体の３０％又はそれ以下に低下したならば、プールが少なくなっておりセグメントを追加する必要があることを、ｅメール、ＳＮＭＰ、ポケットベル等を介して管理者に注意する警告又はその他の警報が発せられる。更に、管理者はＬＤＥＶからＶＤＥＶにデータを移行する提案としてＧＵＩで閾値１９０を設定することができる。これが起こると、フリーセグメントプール６６−１のフリースペースにＬＤＥＶ上のより広げられた未書き込みの領域が割り振られることになる。勿論、管理者は変更した後は修正を加える。
【００５０】
本発明の実施例によれば、ＶＤＥＶの生成後、ストレージサブシステム４０は、管理者が規定した又はシステムのデフォルトで規定された閾値１９１を定期的に保守するためにフリーセグメントプール６６−１のフリーセグメントの割合をチェックすることができる。規定の割合は管理者が保守コンソールに於いてＧＵＩを用いて規定することができる。もし割合がシステムが規定したデフォルト値であるならば、その割合は新たなデフォルトの割合がＧＵＩで管理者又はカストマーエンジニアにより再設定されるまでは、ストレージサブシステム４０で恒常的に使用され得る。
【００５１】
図１４は本発明の一実施例によるシン・プロビジョン型ストレージサブシステムのディスクスペースを管理するプロセスのフローチャートである。もし閾値となる割合が設定されていたなら、割合がチェックされた後に、セグメントマネージャ６６はチェックした割合に基づき動作を実行することができる。使用済みとフリーのセグメントを含めたセグメントの合計に対するフリーセグメントの割合が規定された閾値未満かどうか判定される、ステップ１５１。もしそうでなければプロセスは終了するが、もしそうであれば、内部ＬＤＥＶはフリーセグメントプールにフリーセグメントとして追加され得る、ステップ１５２。もしストレージサブシステムが自分自身でフリーの内部ＬＤＥＶをＬＵの未割り当ての内部ＬＤＥＶから選ぶように管理者が指示したならば、ストレージサブシステムはフリーセグメントプールに未割り当てのＬＤＥＶを挿入することができる。もしストレージサブシステムがそうしないなら、管理者は外部コンソールのＧＵＩを介して自らのフリーセグメントプールに内部ＬＤＥＶを挿入する動作を開始することができる。前述の通り管理者は図５に示すようなＬＤＥＶ構成マッピング６７で見出される内部又は外部を意味するＬＤＥＶロケーション情報を使用することができる。ＬＵにマッピングされていないすべての未割り振りのＬＤＥＶがステップ１５２でフリーセグメントのスペースの候補として用いられ得ると仮定される。
【００５２】
本発明の別の実施例では、管理者によるＬＤＥＶの手動割り当てなしで、１個以上のＬＤＥＶがセグメントプールに自動的に割り当てられ得る。この実施例では、割り当ては、管理者又はカストマーエンジニアが自動割り当て可能なＬＤＥＶのグループを予め生成し、そのグループに生成したＬＤＥＶを割り当てる時に行われる。セグメントマネージャはグループ内のＬＤＥＶから一つのＬＤＥＶを自動的に収集し、セグメントプールに不足が生じていることをセグメントマネージャが検知した時に、当該ＬＤＥＶをセグメントプールに割り当てることができる。例えば、このことはフリーセグメントプールの利用可能なセグメントの数が或る閾値未満であると判定された場合に起こり得る。もし予め生成した自動割り当て可能なＬＤＥＶのグループが空であるか、又はフリーセグメントプールの現在の必要数を満たすに十分な数のＬＤＥＶがグループ内に不足している場合は、セグメントマネージャは別な方法を用いてフリーセグメントプールを再び満たすか、又は自動割り当て可能なＬＤＥＶのグループが再び満たされる必要がある、又は手動でＬＤＥＶを割り当てる必要があることを示すメッセージを管理者又はカストマーエンジニアに発行することができる。
【００５３】
更に、フリーセグメントの割合が依然として規定した閾値未満かどうか判定される、ステップ１５３。もしそうでないのならプロセスは終了するが、もしそうであれば、ＬＤＥＶからＶＤＥＶに転換する候補があるかどうか判定するために内部ＬＤＥＶがチェックされ、もし候補があれば転換が行われる、ステップ１５４。このプロセスの詳細は後述される。次いでフリーセグメントの割合が依然として規定した閾値未満かどうか判定され、ステップ１５５、もしそうでないならばプロセスは終了するが、もしそうであれば外部ＬＤＥＶがフリーセグメントプールにフリーセグメントとして追加され得る、ステップ１５６。ストレージサブシステムがＬＵの未割り当ての外部ＬＤＥＶからフリーの外部ＬＤＥＶを選び出すように管理者が指示したならば、ストレージサブシステムはフリーセグメントプールに未割り当てのＬＤＥＶを挿入することができる。もし管理者がそうしないのなら、管理者は外部コンソールのＧＵＩを介してフリーセグメントプールに外部ＬＤＥＶを挿入する動作を開始することができる。前述のように、内部又は外部を意味するＬＤＥＶのロケーション情報は図５に示すようなＬＤＥＶ構成マッピング６７中に見出される。
【００５４】
更に別の実施例では、フリーセグメントの割合が依然として規定した閾値未満かどうか判定するプロセス、ステップ１５５、とフリーセグメントプールにフリーセグメントとして外部ＬＤＥＶを追加するプロセス、ステップ１５６、との間で、フリースペースを生成するためにＬＤＥＶからＶＤＥＶに転換する候補が存在するかどうかを判定するために外部ストレージがステップ１５４のようにチェックされ、フリーセグメントプールの割合がステップ１５５のようにチェックされる。もしストレージサブシステムがフリーセグメントプール内のフリーセグメントの不足を検知したならば、ストレージサブシステムは管理者がプールに新たなフリーセグメントになる内部又は外部ＬＤＥＶを追加するまで、すべての仮想ボリュームに対してＩ／Ｏプロセスを一時中止することができ、或いは、ストレージサブシステムは外部ストレージの使用の間にフリーセグメントプールが不足してＧＵＩ、システムログ、ｅメール、ポケットベル等を介してユーザに警告が発せられるまでＩ／Ｏを続け、次いでフリーセグメントプール６６−１のセグメントの数がゼロになったら管理者が内部又は外部のＬＤＥＶを追加するまでＩ／Ｏプロセスを一時中止することができる。
【００５５】
ＬＵにマップされていないすべての未割り振りの外部ＬＤＥＶがステップ１５２でフリーセグメントのスペースの候補として用いられ得ると仮定しよう。本発明の別な実施例に於いて、管理者やカストマーエンジニアが自動割り当て可能な外部ＬＤＥＶのグループを予め生成して、それら生成した外部ＬＤＥＶをそのグループに割り当てる時は、管理者による手動の外部ＬＤＥＶ割り当てなしで１個以上のＬＤＥＶがフリーセグメントプールに自動的に割り当てられ得る。セグメントマネージャはグループ内の外部ＬＤＥＶから一つの外部ＬＤＥＶを収集することができる。もしグループに外部ＬＤＥＶが不足していたら、ストレージサブシステムは、管理者が内部又は外部ＬＤＥＶをプールに対して新たなフリーセグメントとなるように追加するまで、又はフリーセグメントプールに自動割当され得るグループにＬＤＥＶを追加するまで、すべての仮想ボリュームに対するＩ／Ｏプロセスをも一時中止することができる。
【００５６】
図１５は本発明の一実施例による転換プロセスのフローチャートを示す。このプロセスは図１４で論じられたステップ１５４の実行の間に行われる。ストレージサブシステムは内部ストレージ又は外部ストレージのＬＤＥＶを検索することができる。規定された閾値１９１に基づくＬＤＥＶの転換候補を有するリストが取得され得る、ステップ１６１。ＬＤＥＶがＬＵ−ＬＤＥＶ／ＶＤＥＶマッピング６５から取得される。もしＬＤＥＶの全ビットマップ内でＯＮになったビットマップ（例えばＯＮとは「１」である）の割合が規定された閾値を超えているかどうか判定され、ステップ１６２、もしそうでないならプロセスはステップ１６１に戻る。ＬＤＥＶに対する全ビットマップ内でＯＮになったビットマップの割合が規定された閾値を超えていたら、ステップ１６２、ＬＤＥＶはＶＤＥＶに転換するための候補ＬＤＥＶのリストに追加される、ステップ１６３。これがリストの最後のＬＤＥＶであるかどうか判定され、ステップ１６４、もしそうであればプロセスはステップ１６５に移動する。しかしながらこれが最後のＬＤＥＶでないならば、プロセスはステップ１６１に戻る。リストはＬＤＥＶ番号で構成することができる。次いでＬＤＥＶ転換候補リストが管理者に示される、ステップ１６５。管理者はＧＵＩ（例えば図１６の２２６）を用いてＶＤＥＶに転換するＬＤＥＶを選択することができる、ステップ１６６。選択されたＬＤＥＶのＶＤＥＶへの転換が実行される、ステップ１６７。
【００５７】
図１６は本発明の一実施例によるＬＤＥＶのＶＤＥＶへの転換のためのＧＵＩの図を示す。ＧＵＩ２２６は、例として、ＬＤＥＶ番号２０１、現在の構成２０２、転換候補リストに基づく推奨２０３、ＬＤＥＶ上の書き込み済み／割り当て済み領域の割合２０４、ＬＤＥＶからＶＤＥＶへの転換要求を指示するための選択オプション２０５から構成することができる。割り振り済み領域の割合２０４は書き込み済みのビットマップ（即ちＯＮになったビットマップ）の数をビットマップの全数で割った値を用いて浮動小数点を％に変換して計算できる。即ち、割り振り済み領域（ＬＤＥＶ）の割合＝ＯＮになったビット数／全ビット数×１００（式１）。
【００５８】
図１７は本発明の一実施例による転換時のビットマップタイプからセグメントタイプへの変換を説明する図を示す。本発明の実施例によれば、ＬＤＥＶからＶＤＥＶへの転換は多くの方法で行うことができる。例えば、一つの効率の良い転換方法はビットマップタイプからセグメントタイプへと変換することである。はじめにマイグレータが転換タスクを生成することができる。マイグレータはＶＤＥＶマネージャから与えられるＶＤＥＶ番号（図８のテーブル６６―０の未使用値）を選択し、リザーブされたＬＤＥＶ内にソースＬＤＥＶをリザーブする。そこではデータ転換プロセスが完了するまで、ソースＬＤＥＶに対する管理者動作からソースＬＤＥＶを保護状態に置く。スケジューラがこのタスクを実行することができ、次いでマイグレータが割り振り済みのセグメントテーブル６６―０の各エントリーを生成するために各ビットマップをチェックすることができる。この間セグメントに対するデータロケーションは管理されたストレージセグメントのビットマップと同じであり得る。ビットマップに対して割り当てられたエントリーを生成した後、マイグレータはフリーセグメントプールに対するフリーセグメントとして他のセグメントを取り除き、ＬＤＥＶの状態を「使用済み」ＬＤＥＶに変更することができる。その結果、ＬＤＥＶとＶＤＥＶの間に何らコピーが存在しない。転換プロセスはビットマップ５４から割り振り済みのセグメントテーブル６６−０に変換することによって完了とすることができる。
【００５９】
カストマーエンジニアが１台以上の新たなディスクを追加し、コンソール４０１を介してストレージサブシステムに新たなパリティーグループを設定した後、管理者はパリティーグループから使用するために１個以上の新たなＬＤＥＶを生成し、外部コンソール８３を介してＬＤＥＶを挿入することができる。新たなＬＤＥＶを生成した後、管理者は外部コンソール８３のＧＵＩを用いて新たなフリーセグメントとしてフリーセグメントプールに新たなＬＤＥＶを割り当てることができる。
【００６０】
図１８は本発明の一実施例によるＬＤＥＶをフリーセグメントプールに挿入するＧＵＩの図を示す。ＧＵＩ２１０はＬＤＥＶ２１１に対するＧＵＩ２１０のボックス２１４をチェックすることでＬＤＥＶ２１１を管理しフリーセグメントスペースに挿入するために使用される。チェックボックス２１４はＬＤＥＶが割り振り済みか否かについても示す。ストレージサブシステム内のＬＤＥＶのロケーションを識別するために、ＧＵＩはストレージ構成２１２（図５の１０３参照）及びストレージサブシステムのロケーション２１３（図８の１４５参照）も示すことができる。パリティーグループが外部ストレージサブシステムのディスクのみ（例えばＥｘ１、Ｅｘ２、・・・）から構成される場合、ロケーションは「外部」と示される。更に、パリティーグループが内部ストレージサブシステムのディスクと外部ストレージサブシステムのディスク（例えばＥｘ１、ＬＤＥＶ３００、・・・）から構成される場合、ロケーションは「混在」と示され得る。更にパリティーグループが内部ディスクのみ（例えばＬＤＥＶ１、ＬＤＥＶ２、・・・）から構成される場合、ロケーションは「内部」と示される。更にＧＵＩは転換後に残存するフリーセグメントの更新された容量２１６のみならずプールに残存するフリーセグメントに関して管理者に警報するのに役立つ残存するフリーセグメントの全容量２１５を示すことができる。
【００６１】
新たなＬＤＥＶを何も追加していない時の全容量はフリーセグメントプール６６−１内のフリーセグメントの全数にセグメントのサイズを乗じて計算されて決定され、新たなＬＤＥＶを追加した後の一つのセグメントの全容量は容量２１５に、プールの新たなＬＤＥＶとフリーのＬＤＥＶのセグメントの総数にセグメントサイズを乗じて計算される新たなＬＤＥＶの容量を加えることで計算される。
【００６２】
図１９は本発明の一実施例による集約プロセスに用いられるＧＵＩの一部分の図である。管理者は選択オプション２２１内に内部、外部等のような集約ロケーションを規定するためにＧＵＩ２２０を使用する。ＬＤＥＶ追加に基づき管理者は更に望ましいロケーションにデータを集約又は移行することができる。例えば管理者は外部ストレージサブシステムから内部ストレージサブシステムにセグメント上のデータを集約することを望むことがある。別の例では、管理者は内部ストレージサブシステムから外部サブシステムにセグメント上のデータを集約することを望むことがある。すべてのデータ又はデータの一部分のみが、ＬＤＥＶ追加により利用可能になったフリーセグメントに依存して集約ロケーションに移行される。管理者は外部コンソール８３のＧＵＩ２２０を用いて集約ロケーションを規定する。この選択に基づき、ストレージサブシステムはフリーセグメントプールに新たなＬＤＥＶを挿入後、集約ロケーションにデータをミラーする。
【００６３】
図２０は本発明の一実施例による移行プロセスのフローチャートを示す。このプロセスはステップ１７０で始まり、管理者が集約ロケーションに新たなＬＤＥＶから新たなセグメントを追加したかどうか判定し、ステップ１７１、もし追加していないならばプロセスは終了する。管理者はフリーセグメントに対してより多くのセグメントを利用可能にするために、新たなセグメントを含む新たなストレージデバイスをシステムに挿入する。集約ロケーションは、ストレージサブシステムの内部であるか、又は新たに追加されたストレージデバイスが外部又は遠隔ストレージサブシステムに存在することを意味する外部である。もし管理者が新たなセグメントとして新たなＬＤＥＶを追加するならば、ステップ１７１、マイグレータはデータをＶＤＥＶセグメントから集約ロケーションの新たなセグメントに移行する動作又はプロセスを開始し、ステップ１７２、ＶＤＥＶに対して新たなセグメントを割り当てる。フリーセグメントプールに追加された利用可能な新たなセグメントに依存してデータの一部分のみ移行が行われる。
【００６４】
本発明の別な実施例では、ステップ１７１は別のやり方で実行される。ストレージサブシステムは、管理者がストレージデバイスを挿入した後、管理者が規定したポリシーを処理することができる。このポリシーはパリティーグループの生成、ＬＤＥＶの生成、及びセグメントプールへのＬＤＥＶの挿入を処理する。例えばディスク挿入後、直接セグメントを挿入するためには、管理者は５台のディスクがストレージサブシステムに挿入される場合、ＲＡＩＤ５によって４Ｄ＋１Ｐを生成し、生成したパリティーグループから２ＴＢのＬＤＥＶを生成し、ＬＤＥＶをセグメントプールへと挿入するというポリシーを予め構成することができる。セグメントマネージャは、ポリシーに基づいてディスク挿入後、セグメントプールに自動的にセグメントを生成する。規定されたＬＤＥＶグループ中にＬＤＥＶを挿入する別の例では、管理者は、５台のディスクがストレージサブシステムに挿入される場合、ＲＡＩＤ５によって４Ｄ＋１Ｐを生成し、生成したパリティーグループから２ＴＢのＬＤＥＶを生成し、ＬＤＥＶを各内部又は外部ＬＤＥＶグループに挿入するというポリシーを予め構成する。セグメントマネージャはＬＤＥＶの挿入について通知を受け、セグメントプールにセグメントを生成する。
【００６５】
図２１は本発明の一実施例によるセグメント移行プロセスのフローチャートを示す。ステップ１８０で移行プロセスが開始し、マイグレータは移行され新たなＬＤＥＶに挿入されるべきフリーセグメントが残存しているか確認する、ステップ１８１。新たなＬＤＥＶに対してセグメントが全く存在しないならば、プロセスは終了する。新たなＬＤＥＶに対して残存するセグメントが依然として存在するのであれば、マイグレータは割り振りテーブルのロケーション（図８の１４５）を用いて集約したロケーションに対してソースセグメントを選択する、ステップ１８２。マイグレータはフリーセグメントプールから新たなＬＤＥＶ上のセグメントを取得する、ステップ１８３。マイグレータは選択したソースセグメントからデータを読み出す、ステップ１８４。移行の間にセグメントに対するＩ／Ｏ動作が相対ＬＢＡにアクセスしてメモリー上で実行される。相対ＬＢＡはＩ／Ｏ要求されたＬＢＡをセグメントサイズで割った端数とすることができる。ソースセグメントから読み出されるデータはメモリーのターゲットセグメントに書き込まれる、ステップ１８５。
【００６６】
書き込み時、ホストからのソースセグメントに対する読み出しＩ／Ｏ要求はメモリーに書き込まれるデータを用いて続けられ、その書き込みＩ／Ｏ動作はソースセグメントに対するデータ読み出し及びターゲットセグメントに対する書き込みであるコピー動作が終了するまでコントローラ４１のＩ／Ｏバッファー上でスタックされる。書き込み動作の持続時間は、セグメントがパリティーのストライプサイズに等しいならば、短い。書き込まれるセグメントが割り振りテーブル（図８）で割り当てられ、ソースセグメントはフリーセグメントプール（図７）に返送される、ステップ１８６。本発明の実施例によれば、ホストはセグメントの移行の間でもデータを書き込むことができる。
【００６７】
前述の例は単に説明の目的で与えられたものであり、決して本発明を限定して解釈されるべきでないことに注意願いたい。本発明は好適な実施例を参照して説明されてきたが、ここで用いられた語句は制限するための語句でなく、記述及び説明するための語句であることを理解願いたい。その態様に於いて、本発明の範囲と精神から逸脱することなく、添付の現在記載され、修正される特許請求に範囲内で変更がなされ得るものである。本発明は特定の方法、材料、実施例を参照してここに述べられているが、本発明はここに開示された詳細に限定することを意図するものでなく、むしろ本発明は添付の特許請求の範囲内にあるあらゆる機能的に等価な構造、方法、用法に及ぶべきものである。
【図面の簡単な説明】
【００６８】
【図１】図１は現状のシン・プロビジョンを実現する書き込み動作の図である。
【図２】図２はＶＤＥＶがＬＵに割り当てられ、ＶＤＥＶの一部がＳＣＳＩ  ＷＲＩＴＥ（６）コマンドや他の書き込みコマンドによってアクセスされる時のＶＤＥＶに関するプロセスの例のフローチャートである。
【図３】図３は本発明の一実施例によるディスクスペースを管理するシン・プロビジョン型ストレージサブシステムの図である。
【図４】図４は本発明の一実施例によるディスクスペースを管理するシン・プロビジョン型ストレージサブシステムの論理構成の図である。
【図５】図５は本発明の一実施例によるＬＤＥＶ構成マッピングの図である。
【図６】図６は本発明の一実施例によるＬＤＥＶ書き込みプロセスのフローチャートである。
【図７】図７は本発明の一実施例によるフリーセグメントプール内のＬＤＥＶの割り振られていないセグメントの図である。
【図８】図８は本発明の一実施例による割り振りテーブルの図である。
【図９】図９は本発明の一実施例によるシン・プロビジョン型ストレージサブシステムの読み出しプロセスのフローチャートである。
【図１０】図１０は本発明の一実施例によるＬＵのデバイスへのマッピングの図である。
【図１１】図１１は本発明の一実施例による外部ＬＵのＬＵＮ（logical unit number；ＬＵ番号）へのマッピングの図である。
【図１２】図１２は本発明の一実施例によるパリティーグループ構造の図である。
【図１３】図１３は本発明の一実施例による管理者によって設定可能な閾値レベル情報を含むＧＵＩ（Graphical User Interface；グラフィカルユーザインタフェース）の図である。
【図１４】図１４は本発明の一実施例によるシン・プロビジョン型ストレージサブシステムのディスクスペースを管理するプロセスのフローチャートである。
【図１５】図１５は本発明の一実施例による転換プロセスのフローチャートである。
【図１６】図１６は本発明の一実施例によるＬＤＥＶのＶＤＥＶへの転換のためのＧＵＩの図である。
【図１７】図１７は本発明の一実施例による転換時のビットマップタイプからセグメントタイプへの変換を説明する図である。
【図１８】図１８は本発明の一実施例によるＬＤＥＶをフリーセグメントプールに挿入するＧＵＩの図である。
【図１９】図１９は本発明の一実施例による集約プロセスに用いられるＧＵＩの一部分の図である。
【図２０】図２０は本発明の一実施例による移行プロセスのフローチャートである。
【図２１】図２１は本発明の一実施例によるセグメント移行プロセスのフローチャートである。
【図１】
2006302258.tif 000003
【図２】
2006302258.tif 000004
【図３】
2006302258.tif 000005
【図４】
2006302258.tif 000006
【図５】
2006302258.tif 000007
【図６】
2006302258.tif 000008
【図７】
2006302258.tif 000009
【図８】
2006302258.tif 000010
【図９】
2006302258.tif 000011
【図１０】
2006302258.tif 000012
【図１１】
2006302258.tif 000013
【図１２】
2006302258.tif 000014
【図１３】
2006302258.tif 000015
【図１４】
2006302258.tif 000016
【図１５】
2006302258.tif 000017
【図１６】
2006302258.tif 000018
【図１７】
2006302258.tif 000019
【図１８】
2006302258.tif 000020
【図１９】
2006302258.tif 000021
【図２０】
2006302258.tif 000022
【図２１】
2006302258.tif 000023
【外国語明細書】
2006302258000001.pdf