(57)【要約】コンピュータ・ネットワークは、それぞれが物理的ストレージ資源（１２１ａ）を有する複数のストレージ・ノード（１０３ａ−１０６ａ）を含む。ネットワーク（１００）上のシステム管理サーバ（１５０）は、ネットワーク上の物理的ストレージ（１２１ａ）を特定し、それを仮想的ストレージプール（１６０）にまとめる。ストレージ・クライアントによって実行されるアプリケーション（１２１）がネットワーク・ストレージにアクセスするとき、システム管理サーバ（１５０）は、仮想的ストレージプール（１６０）のセグメントを各アプリケーションに割り当てる。仮想的ストレージプール（１６０）のセグメントは、ネットワーク（１００）上の物理的ストレージ（１２１ａ）資源上にストアされる。システム管理サーバはネットワーク・ストレージのアプリケーションの使用をモニターし、最適な物理的ストレージ資源に、仮想的セグメントをトランスペアレントかつ動的に再割り当てする。
2005512232.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上のストレージ資源を管理するシステムであって、
それぞれが物理的ストレージ資源と関連するネットワーク上の複数のストレージ・ノードと、
前記ストレージ・ノードに関連する前記物理的ストレージ資源を仮想的ストレージ資源のプールにまとめるためのネットワーク上の管理サーバと、
前記管理サーバによってまとめられた前記プールにアクセスするためのストレージ・クライアントと
で構成されるシステム。
【請求項２】
前記仮想的ストレージのプールは、複数の仮想的セグメントから成り、該仮想的セグメントは上記物理的ストレージ資源上に記憶されるように構成されていることを特徴とする請求項１に記載のシステム。
【請求項３】
前記仮想的セグメントは仮想的ストレージ・ボリューム内に配置され、該仮想的ストレージ・ボリュームは、前記ストレージ・クライアントからは物理的なストレージ資源のように見えることを特徴とする請求項２に記載のシステム。
【請求項４】
前記仮想的ストレージ資源のプールにおける全仮想ストレージは、前記ネットワーク上の前記物理的ストレージ資源の合計よりも多いことを特徴とする請求項１に記載のシステム。
【請求項５】
前記管理サーバは、前記ストレージ・ノードによる仮想的ストレージ資源に対するアクセスを監視し、該アクセスに応じて仮想的ストレージ資源を物理的ストレージ資源に動的に割り当てるように構成されたことを特徴とする請求項１に記載のシステム。
【請求項６】
前記物理的ストレージ資源は性能パラメータによって特徴付けられ、該性能パラメータ及び前記ストレージ・ノードによるアクセスの特性に応じて、前記管理サーバは前記仮想的ストレージ資源を前記物理的ストレージ資源に動的に割り当てることを特徴とする請求項５に記載のシステム。
【請求項７】
前記動的割り当ては、ストレージ・クライアントからは見えないことを特徴とする請求項５に記載のシステム。
【請求項８】
前記管理サーバは、前記ストレージ・クライアントの仮想的ストレージの使用レベルに応じて、前記仮想的ストレージ資源を物理的ストレージ資源に動的に割り当てるように構成されていることを特徴とする請求項５に記載のシステム。
【請求項９】
前記ストレージ・クライアントは、複数のアプリケーションを実行するように構成されており、前記管理サーバは、前記複数のアプリケーションの何れかによる仮想的ストレージ資源へのアクセスを監視し、該アプリケーションのアクセスに応じて、前記複数のアプリケーションの各々に前記仮想的ストレージを動的に割り当てるように構成されていることを特徴とする請求項５に記載のシステム。
【請求項１０】
前記ストレージ・クライアントは、複数の仮想的ストレージ資源によって保持されるデータにアクセスし、前記ストレージ・クライアントは、更に、前記データを保持する複数の仮想的ストレージ資源をテストし、データにアクセスするための一組の最適な仮想的ストレージ資源を特定することを特徴とする請求項１に記載のシステム。
【請求項１１】
前記ストレージ・クライアントは、データにアクセスするための前記一組の仮想的ストレージ資源から一の仮想的ストレージ資源を選択するように構成された負荷バランサを更に有することを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記ネットワーク上のストレージ・ノードは、前記ストレージ・クライアントにアクセスすることは出来ないが、メディエータ・コンピュータ・システムにアクセスすることが出来、前記管理サーバは、該メディエータ・コンピュータ・システムを利用し、前記ストレージ・クライアントが前記ストレージ・ノードに対応する前記物理的ストレージにアクセス出来るようにするよう構成されていることを特徴とする請求項１に記載のシステム。
【請求項１３】
前記ネットワークは、複数のストレージ・ノードをそれぞれ有する複数の領域から成り、前記仮想的ストレージ資源を、前記領域のうち一の領域における複数のストレージ・ノードに対応する前記物理的ストレージ資源に前記仮想的ストレージ資源をマッピングするローカル・ルーティング・テーブルを有するコンピュータ・システムを更に有することを特徴とする請求項１に記載のシステム。
【請求項１４】
ネットワーク上のストレージ資源を維持するためのコンピュータ・プログラム・ロジックを内部で具現化するコンピュータ読み取り可能な媒体で構成されるコンピュータ・プログラム製品であって、前記ネットワークは、それぞれ物理的ストレージ資源に関連する複数のストレージ・ノードと、該ストレージ資源にアクセスするためのストレージ・クライアントとで構成され、
前記コンピュータ・プログラム・ロジックが、前記ストレージ・ノードに関連する前記物理的ストレージ資源を仮想的ストレージ資源のプールにまとめ、該プール内の仮想的ストレージ資源を前記ストレージ・クライアントに供給するための管理サーバ・ロジックで構成されることを特徴とするコンピュータ・プログラム製品。
【請求項１５】
前記仮想的ストレージのプールは複数の仮想的セグメントから成り、該仮想的セグメントは上記物理的ストレージ資源上に記憶されるように構成されていることを特徴とする請求項１４に記載のコンピュータ・プログラム製品。
【請求項１６】
前記仮想的セグメントは仮想的ストレージ・ボリューム内に配置され、該仮想的ストレージ・ボリュームは、前記ストレージ・クライアントからは物理的なストレージ資源のように見えることを特徴とする請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
前記管理サーバ・ロジックは、更に、前記ストレージ・ノードによる仮想的ストレージ資源に対するアクセスを監視し、該アクセスに応じて仮想的ストレージ資源を物理的ストレージ資源に動的に割り当てるように構成されたことを特徴とする請求項１４に記載のコンピュータ・プログラム製品。
【請求項１８】
前記物理的ストレージ資源は性能パラメータによって特徴付けられ、該性能パラメータ及び前記ストレージ・ノードによるアクセスの特性に応じて、前記管理サーバ・ロジックは前記仮想的ストレージ資源を前記物理的ストレージ資源に動的に割り当てることを特徴とする請求項１７に記載のコンピュータ・プログラム製品。
【請求項１９】
前記ストレージ・クライアントは、複数のアプリケーションを実行するように構成されており、前記管理サーバ・ロジックは、前記複数のアプリケーションの何れかによる仮想的ストレージ資源へのアクセスを監視し、該アプリケーションのアクセスに応じて、前記複数のアプリケーションの各々に前記仮想的ストレージを動的に割り当てるように構成されていることを特徴とする請求項１４に記載のコンピュータ・プログラム製品。
【請求項２０】
前記ストレージ・クライアントは、複数の仮想的ストレージ資源によって保持されるデータにアクセスし、前記ストレージ・クライアントは更に、前記データを保持する複数の仮想的ストレージ資源をテストし、データにアクセスするための一組の最適な仮想的ストレージ資源を特定することを特徴とする請求項１４に記載のコンピュータ・プログラム製品。
【請求項２１】
前記ストレージ・クライアントは、データにアクセスするための前記一組の仮想的ストレージ資源から一の仮想的ストレージ資源を選択するように構成された負荷バランサを更に有することを特徴とする請求項２０に記載のコンピュータ・プログラム製品。
【請求項２２】
ネットワーク上のストレージ資源を管理する方法であって、
それぞれが物理的ストレージ資源と関連するネットワーク上の複数のストレージ・ノードを特定するステップと、
前記ストレージ・ノードに対応する前記物理的ストレージ資源を仮想的ストレージ資源のプールにまとめるステップと、
ストレージ・クライアントによる前記ネットワーク上のストレージ資源に対するアクセスに応じて、前記プールの仮想ストレージ資源を該ストレージ・クライアントに提供するステップと、
で構成される方法。
【請求項２３】
前記仮想的ストレージのプールは、複数の仮想的セグメントから成り、該仮想的セグメントは上記物理的ストレージ資源間で分配されることを特徴とする請求項２２に記載の方法。
【請求項２４】
前記仮想的セグメントは仮想的ストレージ・ボリューム内に配置され、該仮想的ストレージ・ボリュームは、前記ストレージ・クライアントからは物理的なストレージ資源のように見えることを特徴とする請求項２３に記載の方法。
【請求項２５】
前記提供するステップが、前記ストレージ・ノードによる仮想的ストレージに対するアクセスを監視するステップと、該アクセスに応じて仮想的ストレージ資源を物理的ストレージ資源に動的に割り当てるステップとで構成されることを特徴とする請求項２２に記載の方法。
【請求項２６】
前記物理的ストレージ資源は性能パラメータによって特徴付けられ、前記動的に割り当てるステップが、該性能パラメータ及び前記ストレージ・ノードによるアクセスの特性に応じて、前記仮想的ストレージ資源を前記物理的ストレージ資源に動的に割り当てるステップで構成されることを特徴とする請求項２５に記載方法。
【請求項２７】
前記動的に割り当てるステップが、前記ストレージ・クライアントの仮想的ストレージの使用レベルに応じて、前記仮想的ストレージ資源を物理的ストレージ資源に動的に割り当てるステップで構成されることを特徴とする請求項２５に記載の方法。
【請求項２８】
前記ストレージ・クライアントは、複数の仮想的ストレージ資源によって保持されるデータにアクセスし、更に、前記データを保持する複数の仮想的ストレージ資源をテストするステップと、データにアクセスするための一組の最適な仮想的ストレージ資源を特定するステップとを有することを特徴とする請求項２２に記載の方法。
【請求項２９】
前記ストレージ・クライアントが前記データにアクセスするための前記一組の仮想的ストレージ資源から一の仮想的ストレージ資源を選択するステップを更に有することを特徴とする請求項２８に記載の方法。
【請求項３０】
新しい物理的ストレージ資源に関連する前記ネットワーク上の新しいストレージ・ノードを特定するステップと、
前記仮想ストレージ資源の一部を前記新しい物理的ストレージ資源に割り当てるステップと
を更に有することを特徴とする請求項２２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
(関連出願)
本出願は、２００１年１２月１０日に出願されたイスラエル特許出願第147073号米国特許法第１１９条の規定による優先権を主張するものである。
【０００２】
本発明は、データ・ネットワーク分野に関する。特に、本発明は、データ・ネットワークに付属されたストレージ（記憶）資源を動的に管理するとともに、データ・ネットワークに付属された複数のワークステーションにストレージ資源を動的に割り当てる方法に関する。
【背景技術】
【０００３】
一般的なネットワーク・コンピューティング環境では、使用できるストレージ量をテラバイト単位で測定するが、機構レベルでのストレージ管理が複雑であるため、ストレージの効率的な利用を複雑化してしまう。類似した多種類のコンピュータファイルは、機構にわたるユーザのハードディスクをばらばらにしてしまう。ストレージの使用について早急にチェックしようとしても、多くの実施上の問題に直面してきた。一般的なストレージ割り当て方法及びストレージの使用チェックを実施することは機構の観点からも複雑である。
【０００４】
近年、機構には、全てのストレージ資源を集中化させずにストレージを集中管理する方法を実施及び管理できないという問題があった。その他、様々なヴァージョンのファイルの不整合の問題があり、効率的なアップデートが難しくなっている。
【０００５】
従来例では、中央の専用ファイルサーバが、ネットワークのためのコンピュータ・ストレージのリポジトリとして使用される。ファイルの数が多い場合、ファイルサーバは複数のコンピュータシステムに分配される。しかし、コンピュータ・ストレージの容量の増加により、専用ファイルサーバの使用が潜在的な障害となっている。多数のファイルを中央の専用ファイルサーバに送信するために必要なデータ・スループットは、ネットワークの混雑の原因となる大きな要素の一つとなっている。
【０００６】
専用ファイルサーバに接続されたコンピュータ・ストレージのコスト及びストレージ管理の複雑さは、需要がある限度を超えるにつれて、急速に上昇している。ストレージの内容は頻繁にバックアップする必要があるため、専用ファイルサーバには大きな負荷が掛けられている。
【０００７】
ファイルサーバに対する負荷が上昇すると、そのオペレーティング・システムの多くの部分がサーバ自身の内部管理に使用される。使用できるストレージを増やす目的でハードウェア要素を追加すると、ファイルサーバのストレージ管理がますます複雑になってしまう。
【０００８】
従来のストレージ・システムは、特定のデータ項目に頻繁にアクセスすることを考慮に入れていないため、ストレージ資源を効率的に分配することができなかった。例えば、電子メールに関し、インボックス・フォルダは、削除済みアイテム・フォルダに比べて頻繁にアクセスされる。更に、多くの場合、サーバに対してストレージ資源を静的に割り当てると、他のサーバが利用できる使用可能ストレージを十分に活用できないという状況をもたらす。
【０００９】
他にも、従来のストレージ割り当てシステムの欠点として、サービスの質（ＱｏＳ）が低いことが挙げられる。これは、必要なストレージ資源が、コンピュータ資源をそれほど必要としないアプリケーションに割り当てられている場合、大容量のコンピュータ資源を必要とするアプリケーションのためのストレージ資源が不足し得ることを意味する。加えて、非効率的なストレージ管理及び割り当てはストレージ・クラッシュを引き起こす結果となり、クラッシュしたストレージを使用するアプリケーションもまたクラッシュすることとなる。これは、システム・ダウンタイムとしても知られている（不具合のためにアプリケーションが不稼動状態となる時間）。更に、従来のストレージ管理システム欠点として、ストレージ資源を維持（運営）、更新、追加、又は削除しなくてはならないことが挙げられる。このような場合には、いくつかのアプリケーション（又は全てのアプリケーション）を中断しなければならず、システム・ダウンタイムが更に長くなってしまう。
【００１０】
したがって、ストレージ資源を効率的に管理し、データネットワークにファイルを分配するための新しい手法が求められている。現行の技術では、データを多数のディスクに効率的に分配することが、データ交換についてのより良い解決策であろう。
【発明の開示】
【００１１】
よって、本発明の目的は、ストレージ資源を動的に管理及び分配し、従来例の欠点を克服する方法を提供することを目的とする。
【００１２】
また、本発明の目的は、ストレージ資源を動的に管理及び分配し、不使用のストレージ資源を減らす方法を提供することを目的とする。
【００１３】
更に、本発明の目的は、ストレージ資源を動的に管理及び分配し、サービスの質（ＱｏＳ）を向上する方法を提供することを目的とする。
【００１４】
更に、本発明の目的は、ストレージ資源を動的に管理及び分配し、システム・ダウンタイムを短縮することによってアプリケーションが消費するストレージ資源の信頼性を向上する方法を提供することを目的とする。
【００１５】
更に、本発明の目的は、ストレージ資源を動的に管理及び分配し、各アプリケーションによる負荷をストレージ資源間で動的に均衡させる方法を提供することを目的とする。
【００１６】
更に、本発明の目的は、各アプリケーションが実際に要求するストレージ容量に応じて、ストレージ資源をアプリケーションに動的に分配する方法を提供することを目的とする。
【００１７】
本発明は、データ・ネットワークに付属されたストレージ資源を動的に管理するとともに、アクセス・ポイントを介してデータ・ネットワークに接続するユーザによって実行されるアプリケーションにストレージ資源を動的に割り当てる方法に係る。各アプリケーションに割り当てられた物理的ストレージ資源と、物理的ストレージ資源の性能＝遂行能力（performance）を周期的に監視する。一以上の物理的なストレージ資源は、仮想ストレージ・リポジトリに格納された対応する仮想ストレージ空間に相当する。各アプリケーションの物理的ストレージ要求を周期的に監視する。各物理的ストレージ資源は、それぞれ物理的ストレージ資源の性能に対応する性能属性を有する複数の物理的ストレージ・セグメントに分割される。リポジトリは、複数の仮想ストレージ・セグメントに分割され、各物理的ストレージ・セグメントは、同様の性能属性を有する仮想ストレージ・セグメントにマッピングされる。各アプリケーションに対し、対応する物理的ストレージ・セグメントの性能属性や要求に応じてアプリケーションのために最適化されている仮想的ストレージ・セグメントの組み合わせから成る仮想的ストレージ資源が導入される。物理的ストレージ空間は、上記組み合わせの各仮想ストレージ・セグメントを対応する物理的ストレージ・セグメントに向けることにより、アプリケーションに再割り当てされる。
【００１８】
好ましくは、性能を評価するパラメータは、物理的ストレージ資源に記憶されたデータ／データ・ファイルのアプリケーションによる使用レベル、物理的ストレージ資源の信頼性、物理的ストレージ資源上の使用可能ストレージ空間、物理的ストレージ資源に記憶されたデータへのアクセス時間、及びアプリケーションを実行するコンピュータと物理的ストレージ資源のアクセス・ポイントとの間で行われるデータ交換の遅延時間である。各物理的ストレージ資源の性能が繰り返し評価され、各アプリケーションの物理的ストレージ要求が監視される。対応する他の物理的ストレージ・セグメントへの各仮想的ストレージ・セグメントのリダイレクトは、性能及び／又は要求の変化に応じて動的に変更される。
【００１９】
接続された物理的ストレージ資源へのアクセス・ポイントに相当する複数のストレージ・ノードを特定することにより評価を行うことができる。各ストレージ・ノードに関連する一以上のパラメータが監視され、各ストレージ・ノードに動的スコアが割り当てられる。
【００２０】
一形態においては、ストレージの優先順位を各ストレージ・ノードに割り当てる。優先的に実行されるアプリケーションに関連する各仮想的ストレージ・セグメントは、ストレージの優先順位が更に高い一組のストレージ・ノードにリダイレクトされる。ストレージ・ノードの性能を動的に監視し、ストレージ・ノードの優先位は監視結果に応じて変更する。必要であれば、各仮想的ストレージ・セグメントのリダイレクトを変更する。
【００２１】
いくつかの異なるストレージ・ノード内のデータ・ファイルの複製を記憶し、最適な性能を有するストレージ・ノードに記憶された複製に該アプリケーションがアクセスできるようにすることにより、要求されたデータ・ブロックに対するアプリケーションのアクセス時間を短縮する。
【００２２】
物理的ストレージ資源の追加／削除に応じたリポジトリの内容を更新し、追加された各物理的ストレージ資源の性能を評価し、追加された物理的ストレージ資源から得る物理的ストレージ・セグメント、及び／又は、他の対応する物理的ストレージ・セグメントに対する少なくとも一の仮想的ストレージ・セグメントのリダイレクトを動的に変化させることにより、現在実行中であるアプリケーションからは見えないように（トランスペアレントに）物理的ストレージ資源がデータ・ネットワークに追加され、削除される。
【００２３】
仮想的ストレージ資源からのデータ読み込み動作は、該仮想的ストレージ資源内の要求されたデータの場所を特定する要求をアプリケーションから要求を送ることにより実行することができる。仮想的ストレージ資源内の要求されたデータの場所は、要求されたデータの少なくとも一部を記憶する少なくとも一のストレージ・ノードのプールにマッピングされる。要求を実行するための応答時間が最も短い一以上のストレージ・ノードが上記プールから選択される。要求は、データ交換の負荷が最も低い選択されたストレージ・ノードに向けられ、アプリケーションは、選択されたストレージ・ノードから要求されたデータを読み込むことができる。
【００２４】
仮想的ストレージ資源からのデータ書き込み動作は、書き込むデータ及びデータを書き込むべき仮想的ストレージ資源内の場所を示す要求をアプリケーションから送ることにより実行される。データを書き込むための潜在的なストレージ・ノードのプールが作成される。データ・ネットワーク内の物理的位置の要求を実行するための応答時間が最も短い少なくとも一のストレージ・ノードがプールから選択される。要求は、データ交換の負荷が最も低い選択されたストレージ・ノードに向けられ、アプリケーションは、選択されたストレージ・ノードに、要求されたデータを書き込むことができる。
【００２５】
少なくとも一のストレージ・ノードに接続され、アプリケーションがアクセスできない物理的ストレージ資源にアクセスできるコンピュータを、アプリケーションと該アクセスできないストレージ資源との間のメディエータ（mediator: 媒介手段）として用いることにより、各アプリケーションが各ストレージ・ノードにアクセスすることができる。
【００２６】
好ましくは、各メディエータのデータ・スループット性能が各アプリケーションについて評価され、評価結果に応じて、各アプリケーションについて、アクセスできないストレージ資源にアクセス可能にするために必要な負荷を二以上のメディエータ間で動的に分配される。
【００２７】
物理的ストレージ空間を、アプリケーションに対応する仮想的ストレージ・セグメントを二以上のストレージ・ノードにリダイレクトすることにより、各アプリケーションに再割り当てすることにより、対応するスコアに応じて負荷が二以上のストレージ・ノード間で動的に分配され、その結果、二以上のストレージ・ノード間で負荷が分散される。
【００２８】
実際の物理的ストレージ空間の要求レベルを連続的に、又は周期的に監視し、アプリケーションが実際に物理的ストレージ空間を必要とする時間における要求レベルに応じ、アプリケーションに実際の物理的ストレージ空間を割り当て、要求レベルの変化に応じて割り当てレベルを動的に変化させることにより、各アプリケーションに対する物理的ストレージ資源の再割り当てを行うことができる。
【００２９】
また、本発明は、データ・ネットワークに付属されたストレージ資源を動的に管理するとともに、アクセス・ポイントを介してデータ・ネットワークに接続するユーザによって実行されるアプリケーションに動的に割り当てるシステムであって、上述した方法によって動作するシステムに係る。
【００３０】
本発明の上記特徴及び他の特徴は、添付図面を参照し、以下の好適な実施例の具体的及び非限定的な詳細な説明により理解できるであろう。
【００３１】
【００３２】
【００３３】
【発明を実施するための最良の形態】
【００３４】
本発明は以下の構成要素から成る：
ストレージ割り当て方法を管理し、ストレージをクライアントに分配するためのシステム管理サーバ上に設けられたストレージ・ドメイン監視装置；
使用可能ストレージ空間をハードディスク上に有する各コンピュータ上に設けられたストレージ・ノード・エージェント；及び
前記ストレージ空間を使用する必要がある各コンピュータ上に設けられたストレージ・クライアント。
【００３５】
以下、上記各構成要素のタスクについて詳細に説明する。
【００３６】
図１は、本発明の一実施例に係る、ストレージ資源を動的に管理するとともに、データ・ネットワークに付属されたアプリケーション・サーバ／ワークステーションにストレージ資源を動的に割り当てるためのシステムの構造を示す概略図である。データ・ネットワーク１００は、ネットワーク・アドミニストレータ１０２、ローカル・ストレージ１０３ａ〜１０６ａをそれぞれ有する複数のワークステーション１０３〜１０６、及び、ＬＡＮによって利用される大容量のストレージ空間をそれぞれ有する複数のネットワーク・エリア・ストレージ（ＮＡＳ）・サーバ１１０、１１１から成るローカルエリア・ネットワーク（ＬＡＮ）１０１を含む。ＮＡＳ１１０、１１１は、ＬＡＮ１００に接続されワークステーション１０２〜１０５によって使用されるアプリケーションが動作するアプリケーション・サーバ１２１〜１２３と連続的に通信(通信路１７０を介する)を行う。通信路１７０は、ＬＡＮ１０１のワークステーション１０２〜１０５がアプリケーションを動作するのに必要なデータ・ファイルを一時的に記憶するために用いられる。アプリケーション・サーバ１２１〜１２３は、自身の（ローカル・ストレージ）ハードディスク１２１ａを有してもよく、又は、記憶ディスク１４１〜１４３のいくつかを利用することにより、外部のストレージ・エリア・ネットワーク（ＳＡＮ）１４０によって提供されるストレージ・サービスを利用することもできる。独立したストレージ資源（ハードディスクのような物理的ストレージ要素）のネットワークに対する各アクセス・ポイントをストレージ・ノードと称する。
【００３７】
既存の技術では、各アプリケーション・サーバ１２１〜１２３は、アプリケーション・データを各々のハードディスク１２１ａ（十分であれば、さもなければ、ＳＡＮ１４０によって割り当てられる対応ディスク１４１〜１４３）に記憶していた。未使用のストレージ空間、システム・ダウンタイム、及び不十分なサービスの質という欠点を克服するため、管理サーバ１５０がネットワーク・アドミニストレータ１０１に追加される。管理サーバ１５０は、ネットワーク１００に接続される全ての物理的ストレージ資源（つまり、全てのハードディスク）を特定し、各アプリケーションからは分配が見えないように（トランスペアレントに）、動的に処理及び評価される所定の基準を用いて物理的ストレージ資源間で分配される複数のセグメントによって実現される仮想ストレージ・プール１６０にまとめる。更に、管理サーバ１５０は、ネットワーク・ワークステーション１０３〜１０６によって使用中である各種アプリケーションの全てを（管理サーバ１５０にインストールされているストレージ・ドメイン・スーパバイザを動作させることにより）監視する。よって、サーバ１５０は、各アプリケーションが、該アプリケーションを動作させているアプリケーション・サーバのディスク空間を実際にどのくらい消費しているか検出できる。この知識と基準を用い、サーバ１５０は、実際の要求と使用レベルに応じて仮想ストレージ資源の再割り当てを行う。サーバ１５０は、ネットワーク・アドミニストレータ１０２に動的な指示を出すため、集めた知識を処理し、使用可能なストレージ空間を管理し動作中のアプリケーションに再蟻宛する一方、適切な動作のために各アプリケーションに求められる仮想ストレージ空間の容量を各アプリケーションに知らせる。サーバ１５０は、ＬＡＮ１０１とアプリケーション・サーバ１２１〜１２３との間のネットワーク通信路１７１に平行になるように配置されている。このような構成により、通信路１７１を通過するデータに対してサーバ１５０が障害となることがなくなるため、データの混雑もなくなる。
【００３８】
再割り当て処理は、多くのアプリケーションが大量のディスク資源を消費しているものの、実際には該資源を部分的にしか利用していないという事実に基づくものである。アプリケーションが利用しない残りの資源は、アプリケーションが認識するためだけに必要とされ、該資源上でアプリケーションが動作することはない。例えば、アプリケーションが１５ギガバイトのメモリを消費するが、１０ギガバイトのみがインストール用ディスクおよびデータ・ファイルで用いられる場合がある。正常に作動するために、アプリケーションは、割り当てられたディスク上で使用できる残りの５ギガバイトを要求するものの、殆ど（若しくは全く）利用することはない。再割り当て処理では、このようなディスク資源の不使用部分を用い、これらを実際の動作のために必要としているアプリケーションに割り当てる。このようにして、ネットワークの仮想ストレージ・ボリューム（大容量記憶部）の容量を、実際の物理的ストレージ空間よりも大きくすることができる。これにより、オペレーティング・システムの物理的ストレージ空間のフォーマット能力の限界まで、ネットワークの柔軟性を向上することができる。実際の物理的ストレージ空間の割り当ては、各アプリケーションに対し、要求に応じて（動的に）、該アプリケーションが実際に必要とする時間のみ実行される。要求レベルは連続的、又は周期的に監視され、要求レベルの低下が検出されると、それに応じて、対応するアプリケーションに割り当てる物理的ストレージ空間が減少され、要求レベルが上昇している他のアプリケーションに割り当てられる。仮想ストレージ資源を各アプリケーションに割り当てる場合も同様である。
【００３９】
本システムの更に任意的な特徴として、その流動性、即ち、アプリケーションが即座に使用するためにシステムが割り当てるべき追加ストレージ資源がどのくらいであるか示すことが挙げられる。この流動性により、ストレージの割り当て性能が向上し、アプリケーションが、ストレージ要求が予想以上に上昇した場合のストレージ資源を使い果たすことが無くなる。ストレージ・ボリューム使用インジケータは、アプリケーションが使用可能ストレージ資源を使い果たす前にシステム・マネージャに警告を発する。
【００４０】
本システムの更に任意的な特徴として、アクセスの容易さ、即ち、ストレージのいくつかがネットワーク内にある限られた数のコンピュータからのみアクセスできる場合でも、アプリケーション・サーバが、ネットワークの記憶装置（ストレージ・ノード）の全てにアクセスできることが挙げられる。これは、アクセスできないディスクにアクセスできるコンピュータをメディエータとして用い、該コンピュータによるアクセスにより、該アクセスできないデータを要求するアプリケーションが該データにアクセスすることができるようにするものである。各メディエータのデータ・スループット（即ち、所定時間にメディエータが扱えるデータの量）はアプリケーション毎に具体的に判断され、判断の結果に応じて、各アプリケーションに対し、アクセスの容易性を実現するために必要な負荷が各種メディエータ間で動的に分配される（メディエータ間での負荷の分散）。
【００４１】
資源が除外されているアプリケーションが不具合なく確実に動作できるように、サーバ１５０は、それぞれアプリケーション・サーバ１２１、１２２、１２３に対して、（仮想的ストレージ・プール１６０内に）仮想的ストレージ・ボリューム１６１、１６２、１６３を作成する。これらの仮想ストレージ・ボリュームは、仮想ディスク１２１ｂ、１２２ｂ、１２３ｂとして反映される。このことは、例えアプリケーションが動作に必要な物理的ディスク資源の全てを有していなくとも、実際に不使用の資源が他のアプリケーションに割り当てられている場合、該資源の全てを利用できるという指示をネットワーク・アドミニストレータ１０２から受けることを意味する。したがって、アプリケーション・サーバは、仮想ディスクの容量についての知識しか持たず、物理的ディスクの容量についての知識は持たない。各アプリケーションの資源要求は常に変化するため、アプリケーション・サーバが認識する仮想ディスクの容量も変化する。各仮想ストレージ・ボリュームは所定の記憶セグメント（「チャンク」、「塊」）に分割され、該記憶セグメントは、対応する物理的ストレージ資源間で分配することにより、物理的ストレージ資源（例えば、ディスク１２１ａ、１４１、１４３）に再びマッピングされる。
【００４２】
各ストレージ・ノードに対してストレージ・ノード・エージェントが設けられる。ストレージ・ノード・エージェントは、割り当てられた物理的ストレージ資源と仮想的ストレージ資源との間で行われるデータ交換の方向変換を行う。本発明の一実施例によれば、各ストレージ・ノードの資源は、エンドユーザのワークステーションにリンクされるとともに、仮想ストレージ・プール１６０に加えられる。対応する物理的ストレージ資源にそれぞれ接続されている複数のストレージ・ノード１３０ａ〜１３０ｉを特定することによりマッピングが行われる。各ストレージ・ノードは、所定基準から得られる性能パラメータ、例えば、ノード上の使用可能物理的ストレージ、データ・ネットワークを越えてノードに到達するためのデータ遅れ、ストレージ・ノードに接続されたディスクに対するアクセス時間等により評価され、特徴付けられる。
【００４３】
再割り当て処理を最適化するため、サーバ１５０は各ストレージ・ノードを動的に評価し、アプリケーションからは見えない（トランスペアレントな）方法で、各アプリケーションに対して、該アプリケーションに対応する物理的空間を、該アプリケーションに最適だと判断されるストレージ・ノード間で（割り当てにより）分配する。アプリケーションからのデータ・ファイルに対するアクセス要求は、該データ・ファイルを現在格納している対応ストレージ・ノードに向けられる。この評価処理を繰り返し、評価結果に応じてデータ・ファイルをノードからノードへ移動させる。
【００４４】
サーバ１５０の動作は、ＬＡＮ／ＷＡＮ１６５を介して通信する管理コンソール１６４から制御され、ネットワーク・アドミニストレータ１０２に動的な指示を出す。
【００４５】
サーバ１５０はシステム内の各ファイルに対応する仮想ストレージ・プール１６０内での位置を示すポインタを有するため、ファイルを要求するアプリケーションは該ファイルの物理的な位置を認識する必要がない。仮想ストレージ・プール１６０は、仮想ストレージ空間をネットワークにわたって種々のディスク（ストレージ・ノード）上に位置する一組の物理的な記憶ボリュームに対してマッピングする一組のテーブルを維持（maintain）する。
【００４６】
何れのクライアント・アプリケーションも、ネットワークに付属されたすべての記憶ディスクに仮想ストレージ・プール１６０を介してアクセスすることができる。クライアント・アプリケーションは、データ要求を転送する間に自身を特定することにより、仮想ストレージ・プール１６０内の適当なテーブルからアクセスのセキュリティ・レベルを抽出することができる。
【００４７】
図２は、本発明の一実施例に係る物理的ストレージ資源及び仮想的ストレージ資源間の構造及びマッピングの概略図である。各アプリケーションに対応する各仮想ストレージ・ボリューム（１６１等）は、等しいストレージの「チャンク」（「塊」）に分割され、それらは、各セグメントが最適なストレージ・ノードに（連続的な評価の結果）対応するように各セグメントに分割される。チャンクの各セグメントは、対応する最適なストレージ・ノードを介して、該ノードに対応するディスクの対応パーティションに位置する「小さいチャンク」にマッピングされる。図から分かるとおり、各チャンクは、それぞれ異なる性能を有しデータ・ネットワーク上の異なる場所に配置される複数のディスクにマッピング（分配）してもよい。
【００４８】
本発明が提示する階層構造はストレージ・ネットワークの拡張性を向上するとともに、その性能（performance）を実質的に維持（maintain）する。ネットワークは、互いに接続される領域（例えば、別々のＬＡＮ等）に分割される。各所定領域において選択されたコンピュータは、仮想ストレージ空間を該領域に位置する一組の物理的ストレージ資源にマッピングするローカル・ルーティング・テーブルを維持する。マッピングされていないストレージ・ボリュームに対するアクセスが要求されるといつでも、コンピュータは要求された記憶ボリュームの仮想ストレージ・プール１６０内における位置を探し、そのデータにアクセスする。ローカル・ルーティング・テーブルは、ストレージ空間内のデータが変化する度に更新される。仮想ストレージ・プール１６０のみが、全ての領域に対するメタデータ（即ち、記憶されたデータ・ファイルの属性、構造、及び位置）の包括的な変化を維持（maintain）する。このように、ネットワーク上の何れかのストレージ・ノードにアクセスするために仮想ストレージ・プール１６０にアクセスすべき回数を減らすことができるとともに、ローカル・ルーティング・テーブルを更新するために必要なメタデータの混雑を、特に大規模なストレージ・ネットワークにおいて、緩和することができる。
【００４９】
物理的ストレージ資源には、ＲＡＩＤ｛Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  Ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ〜複数のハードディスク上に（つまり、別々の場所に）同じデータを重複して記憶させる手法｝を用いられる。ファイルの複数のコピーを保持することにより、回復による動作上の遅れがなくなり、ファイルのバックアップを即座に使用できるため、コスト効率が向上する。
【００５０】
図３Ａ及び３Ｂは、本発明の一実施例に係る、ストレージ資源を動的に管理し、データ・ネットワークに付属されたアプリケーション・サーバ／ワークステーションにストレージ資源を動的に割り当てるためにシステム内で実行される読み込み及び書き込み動作を示す図である。
【００５１】
読み込み動作において、（ストレージ・クライアント上で動作する）ユーザ・アプリケーションは、あるデータの読み込み要求を出し、３つのパラメータ、即ち、データを読み出すストレージ・ボリューム、該ボリューム内の要求データのオフセット、及びデータの長さを要求に加える。要求はファイルシステムを介して送られ、ストレージ・クライアントの低水準デバイス要素、通常はディスクにアクセスする。そして、低水準デバイスはブロック・アロケータを呼び出す。ブロック・アロケータはボリューム・マッピング・テーブルを用いて、（要求のボリューム及びオフセット・パラメータによって特定される）要求データの仮想的な位置（仮想ストレージ・プール１６０内に割り当てられた仮想ドライブ）を、データが実際に記憶されるネットワーク内の物理的な位置（ストレージ・ノード）に変換する。
【００５２】
しばしば、要求されたデータがネットワーク内の２以上の場所に書き込まれる場合がある。どのストレージ・ノードからデータを検索するのが最適か判断するため、ストレージ・クライアントは、ネットワーク内の各ストレージ・ノードに対して、ファイルの読み込み要求を周期的に送信し、応答時間を測定する。そして、ストレージ・クライアントの位置について、読み込みアクセス時間（最短である最も優先順位が高い）最適なストレージ・ノードのテーブルを作成する。負荷バランサは、このテーブルを用いて、要求されたデータを検索するのに最適なストレージ・ノードを算出する。優先順位が最も高いストレージ・ノードからデータを検索することができる。他のアプリケーションから並行して要求が出されているため、優先順位が最も高いストレージ・ノードが混雑している場合は、同等の、若しくは二番目に優先順位が高い他のストレージ・ノードからデータを検索する。各アプリケーションについて、各ストレージ・ノードの性能を連続的（又は周期的に）評価しているため、評価結果に応じて、各アプリケーションについて要求されたデータの一部を格納する異なるストレージ・ノード全ての間でデータ検索を動的に分散することができる（ストレージ・ノード間での負荷分散）。各アプリケーションに対して、各読み込み動作に用いるストレージ・ノードの組み合わせは、評価結果の違いに応じて異なる。
【００５３】
検索場所が決定された後、システムの入出力動作を受け持つＲＡＩＤコントローラが種々のネットワーク通信カードを介して要求を送信する。そして、適切なストレージ・ノードにアクセスし、要求されたデータを検索する。
【００５４】
書き込み動作も同様に行われる。ユーザ・アプリケーションから再度受け取ったデータの書き込み要求は３つのパラメータを有し、この場合だけは、データ長（読み込み動作で説明した）の代わりに、書き込むべき実際のデータを用いる。ブロック・アロケータが、データを書き込むべき正確な位置をボリューム・マッピング・テーブルから抽出するところまでの初期ステップは同じである。次に、ブロック・アロケータは、ノード速度結果及び使用情報テーブルを用いて、ネットワークにわたって使用可能なストレージ・ノードをチェックし、データを書き込むための潜在的なストレージ空間のプールを形成する。ブロック・アロケータは、ユーザによる新しいデータ・ファイルを作成する要求に対して、データ・ブロックを少なくとも二つ複製するのに必要なストレージを割り当てる。
【００５５】
最も効率が良い方法でストレージを割り当てる目的でプールからストレージ・ノードを選択するため、負荷バランサが、以下のパラメータによって決定される優先順位に応じて遠隔の各ストレージ・ノードを評価する：
−ストレージ・ノード上に残る記憶容量
−ストレージ・ノードに向けられた他のアプリケーションからのデータ・アクセス要求
−ノードに到達するための経路におけるデータの混雑状況
【００５６】
データは、優先順位が最も高いストレージ・ノードに書き込まれるか、各アプリケーションに対する各ストレージ・ノードの性能を連続的に（又は周期的に）評価することにより書き込まれる。データ書き込み動作は、各アプリケーションに対して、種々の（又は全ての）ストレージ・ノード間で評価結果に応じて動的に分散される（ストレージ・ノード間での負荷分散）。各書き込み動作に用いられるストレージ・ノードの組み合わせは、評価結果に応じ、アプリケーション毎に異なる。
【００５７】
使用するストレージ・ノードが選択された後、ＲＡＩＤコントローラが適切なＮＡＳやＳＡＮ装置に書き込み要求を発し、各種ネットワーク通信カードを介して、それらにデータを送信する。該データは、適切なＮＡＳやＳＡＮ装置内の適切なストレージ・ノードによって受け取られ、記憶される。
【００５８】
ネットワーク上に記憶されたデータに対するユーザからの要求は連続的に変化するため、データのストレージ分散は、変化するストレージ要求に応じて動的に変更される。最終的には、ユーザの要求に応じて、データのインスタンス数が最適化され、ネットワーク上の各種ストレージ・ノード間における物理的な位置も変更される。このように、構成が最適になるまで、システムは自身を調整し続ける。
【００５９】
本発明の一実施例によれば、故障の場合に有するバックアップのために、各ファイルの複数の複製が、ネットワーク内の少なくとも二つの異なるノードに記憶される。ファイルの使用パターンは、該ファイルに関連するプロファイル・テーブルに記憶され、要求された各ファイルに対して評価される。評価結果に応じて、ファイルに対するアクセスの競合を無くし、ファイルの複製をネットワーク上の異なるストレージ・ノードに記憶することにより、ネットワークにわたるデータ・スループットが増加する。
【００６０】
ファイルの分配は、セントラル・サーバによるのではなく、ネットワークにおける異なるノードにおいてファイルの複製を同時に複数生成することにより行うことができる。したがって、ファイルの分配が分散化され、障害になる状況が無くなる。
【００６１】
マッピング処理は、アプリケーションを中断することなく動的に行われる。よって、新しい記憶ディスクを、仮想ストレージ・プールに登録するだけでデータ・ネットワークに追加することができる。
【００６２】
各ファイルの各複製の記憶場所及び該ファイルから成るストレージの各ブロック（ハードディスク上の小さい記憶セグメント）についての更新されたメタデータは、仮想ストレージ・プール１６０のテーブルにおいて動的に維持される。
【００６３】
種々のファイルについての重複レベルも動的に設定されるため、ネットワークにわたって、より多くの場所において重要なデータを有するファイルが複製されるため、ストレージの不具合からより一層保護される。
【００６４】
上述した例及び説明は例示の目的で挙げたものであり、本発明を何ら限定するものではない。本発明は、その範囲から逸脱することなく、上述した技術のうち一の技術を用い、様々な方法で実施することができることを当業者であれば理解できるであろう。
【図面の簡単な説明】
【００６５】
【図１】本発明の一実施例に係る、ストレージ資源を動的に管理するとともに、データ・ネットワークに付属されたアプリケーション・サーバ／ワークステーションにストレージ資源を動的に割り当てるためのシステムの構造を示す概略図である。
【図２】物理的及び仮想的ストレージ資源間の構造及びマッピングを示した図である。
【図３Ａ】本発明の一実施例に係る、ストレージ資源を動的に管理するとともに、データ・ネットワークに付属されたアプリケーション・サーバ／ワークステーションに動的に割り当てるためのシステムにおいて実行される書き込み及び読み込み動作の概略図である。
【図３Ｂ】本発明の一実施例に係る、ストレージ資源を動的に管理するとともに、データ・ネットワークに付属されたアプリケーション・サーバ／ワークステーションに動的に割り当てるためのシステムにおいて実行される書き込み及び読み込み動作の概略図である。
【図１】
2005512232.tif 000003
【図２】
2005512232.tif 000004
【図３Ａ】
2005512232.tif 000005
【図３Ｂ】
2005512232.tif 000006
【国際調査報告】
2005512232.tif 000007