(57)【特許請求の範囲】
【請求項１】
記憶デバイスと、
１以上の他の計算機と接続されるＮＷ  Ｉ／Ｆ（ネットワークインターフェイス）と、
１以上のエンティティを実行するプロセッサとを有し、
前記１以上のエンティティの各々は、当該エンティティが認識している論理ボリュームに対するデータのライトと、前記ＮＷ  Ｉ／Ｆ経由のデータ送信とのいずれも行うことができ、
前記プロセッサは、前記１以上のエンティティの各々について、当該エンティティが認識している論理ボリュームに対するライト対象のデータを受けた場合、前記ライト対象のデータを前記記憶デバイスに格納し、且つ、前記ライト対象のデータを前記１以上の他の計算機のうちのＮ台の他の計算機（Ｎは自然数）の各々に当該他の計算機に格納するために転送し、
前記プロセッサは、
前記１以上のエンティティの各々について割り当てられた送信量である割当て送信量を定義するポリシーを参照し、
前記１以上のエンティティの各々についてのライト量の上限の設定値を含むＩ／Ｏ上限とＮＷ送信量の上限の設定値を含むＮＷ上限を更新し、
前記Ｉ／Ｏ上限に基づいて、前記１以上のエンティティの各々について前記ライト量を制限し、
前記ＮＷ上限に基づいて、前記１以上のエンティティの各々について前記ＮＷ送信量を制限し、
前記割当て送信量は、前記ＮＷ送信量と前記ライト量との合計の上限値であり、
前記ＮＷ送信量は、前記１以上のエンティティの各々について前記エンティティの仮想ＮＷ  Ｉ／Ｆ及び前記ＮＷ  Ｉ／Ｆを介して単位時間当たりに送信されるデータの量であり、
前記ライト量は、当該エンティティが認識する前記論理ボリュームに単位時間当たりにライトされるデータの量であり、前記ライトされるデータは、他の計算機内の記憶部にライトされるデータである、
計算機。
【請求項２】
前記１以上のエンティティの各々について、前記ライト量の上限である上限ライト量は、前記Ｎの値が大きい程小さい、
請求項１に記載の計算機。
【請求項３】
前記１以上のエンティティの各々について、前記ライト量の上限である上限ライト量は、当該エンティティが認識している論理ボリュームの数が多い程小さい、
請求項１に記載の計算機。
【請求項４】
前記１以上のエンティティの各々について、前記ＮＷ送信量の上限である上限ＮＷ送信量と前記ライト量の上限である上限ライト量のうちの少なくとも１つの初期値は、当該エンティティの前記割当て送信量の半分である、
請求項１に記載の計算機。
【請求項５】
前記プロセッサは、前記１以上のエンティティの各々について、前記ＮＷ送信量の上限である上限ＮＷ送信量に対する当該エンティティのＮＷ送信量の割合がＮＷ上限閾値を超過しているか否か、および、前記ライト量の上限である上限ライト量に対するライト量の割合がＩ／Ｏ上限閾値を超過しているか否かに基づき、前記上限ＮＷ送信量と前記上限ライト量とを調整し、
前記ＮＷ上限閾値は、前記上限ＮＷ送信量に対する前記ＮＷ送信量の割合の閾値であり、
前記Ｉ／Ｏ上限閾値は、前記上限ライト量に対する前記ライト量の割合の閾値である、
請求項１に記載の計算機。
【請求項６】
前記１以上のエンティティの各々について、前記上限ＮＷ送信量に対する当該エンティティのＮＷ送信量の割合がＮＷ上限閾値を超過しており、且つ上限ライト量に対するライト量の割合がＩ／Ｏ上限閾値を超過している場合、前記上限ＮＷ送信量と前記上限ライト量との調整は、前記上限ＮＷ送信量と前記上限ライト量との各々を初期値に戻すことである、
請求項５に記載の計算機。
【請求項７】
前記１以上のエンティティの各々について、前記上限ＮＷ送信量に対する当該エンティティのＮＷ送信量の割合がＮＷ上限閾値を超過しており、且つ、前記上限ライト量に対するライト量の割合がＩ／Ｏ上限閾値以下の場合、前記上限ＮＷ送信量と前記上限ライト量との調整は、前記上限ＮＷ送信量を大きくし前記上限ライト量を小さくすることである、
請求項５に記載の計算機。
【請求項８】
前記１以上のエンティティの各々について、前記上限ＮＷ送信量に対する当該エンティティのＮＷ送信量の割合がＮＷ上限閾値以下であり、且つ、前記上限ライト量に対するライト量の割合がＩ／Ｏ上限閾値を超えている場合、前記上限ＮＷ送信量と前記上限ライト量との調整は、前記上限ＮＷ送信量を小さくし前記上限ライト量を大きくすることである、
請求項５に記載の計算機。
【請求項９】
前記ＮＷ上限閾値は、０％より大きく１００％未満であり、
前記Ｉ／Ｏ上限閾値は、０％より大きく１００％未満である、
請求項５に記載の計算機。
【請求項１０】
前記プロセッサは、前記１以上のエンティティの他に、ストレージ制御プログラムと、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）制限プログラムと、ＮＷ（ネットワーク）制限プログラムとを実行し、
前記プロセッサは、前記Ｉ／Ｏ制限プログラムを実行することで、前記１以上のエンティティの各々について、ライト量が前記ライト量の上限である上限ライト量以下になるよう制限し、
前記プロセッサは、前記ストレージ制御プログラムを実行することで、前記１以上のエンティティの各々について、当該エンティティが認識している論理ボリュームに対するライト対象のデータを受けた場合、前記ライト対象のデータを前記記憶デバイスに格納し、且つ、前記ライト対象のデータを前記１以上の他の計算機のうちのＮ台の他の計算機の各々に当該他の計算機に格納するために転送し、
前記プロセッサは、前記ＮＷ制限プログラムを実行することで、前記１以上のエンティティの各々について、ＮＷ送信量が前記ＮＷ送信量の上限である上限ＮＷ送信量以下になるよう制限する、
請求項１に記載の計算機。
【請求項１１】
前記ＮＷ  Ｉ／Ｆは、全二重方式で通信するインターフェイスであり、
前記プロセッサは、
前記１以上のエンティティの各々について割り当てられた受信量である割当て受信量を定義するポリシーを参照し、
前記１以上のエンティティの各々についてのリード量の上限の設定値を含むＩ／Ｏ上限とＮＷ受信量の上限の設定値を含むＮＷ上限を更新し、
前記Ｉ／Ｏ上限に基づいて、前記１以上のエンティティの各々について前記リード量を制限し、
前記ＮＷ上限に基づいて、前記１以上のエンティティの各々について前記ＮＷ受信量を制限し、
前記割当て受信量は、前記ＮＷ受信量と前記リード量との合計の上限値であり、
前記ＮＷ受信量は、前記１以上のエンティティの各々について前記エンティティの仮想ＮＷ  Ｉ／Ｆ及び前記ＮＷ  Ｉ／Ｆを介して単位時間当たりに受信されるデータの量であり、
前記リード量は、当該エンティティが認識する前記論理ボリュームから単位時間当たりにリードされるデータの量であり、前記リードされるデータは、他の計算機内の記憶部からリードされるデータである、
請求項１に記載の計算機。
【請求項１２】
前記１以上のエンティティは、１以上のアプリケーション、または、１以上のＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）である、
請求項１に記載の計算機。
【請求項１３】
複数の計算機を有し、
前記複数の計算機の各々は、
記憶デバイスと、
前記複数の計算機のうちの当該計算機以外の１以上の他の計算機と接続されるＮＷ  Ｉ／Ｆ（ネットワークインターフェイス）と、
１以上のエンティティを実行するプロセッサとを有し、
前記複数の計算機の各々において、前記１以上のエンティティの各々は、当該エンティティが認識している論理ボリュームに対するデータのライトと、当該計算機の前記ＮＷ  Ｉ／Ｆ経由のデータ送信とのいずれも行うことができ、
前記複数の計算機のうちのいずれかの計算機において、
前記プロセッサは、前記１以上のエンティティの各々について、当該エンティティが認識している論理ボリュームに対するライト対象のデータを受けた場合、前記ライト対象のデータを当該計算機の前記記憶デバイスに格納し、且つ、前記ライト対象のデータを当該計算機に接続されている１以上の他の計算機のうちのＮ台の他の計算機（Ｎは自然数）の各々に当該他の計算機に格納するために転送し、
前記プロセッサは、
前記１以上のエンティティの各々について割り当てられた送信量である割当て送信量を定義するポリシーを参照し、
前記１以上のエンティティの各々についてのライト量の上限の設定値を含むＩ／Ｏ上限とＮＷ送信量の上限の設定値を含むＮＷ上限を更新し、
前記Ｉ／Ｏ上限に基づいて、前記１以上のエンティティの各々について前記ライト量を制限し、
前記ＮＷ上限に基づいて、前記１以上のエンティティの各々について前記ＮＷ送信量を制限し、
前記割当て送信量は、前記ＮＷ送信量と前記ライト量との合計の上限値であり、
前記ＮＷ送信量は、前記１以上のエンティティの各々について前記エンティティの仮想ＮＷ  Ｉ／Ｆ及び前記ＮＷ  Ｉ／Ｆを介して単位時間当たりに送信されるデータの量であり、
前記ライト量は、当該エンティティが認識する前記論理ボリュームに単位時間当たりにライトされるデータの量であり、前記ライトされるデータは、他の計算機内の記憶部にライトされるデータである、
計算機システム。
【請求項１４】
記憶デバイスと、１以上の他の計算機と接続されるＮＷ  Ｉ／Ｆ（ネットワークインターフェイス）と、それぞれが論理ボリュームに対するデータのライトと前記ＮＷ  Ｉ／Ｆ経由のデータ送信とのいずれも行うことができる１以上のエンティティを実行するプロセッサとを有する計算機についてのデータ量制限方法であって、
前記１以上のエンティティの各々について、当該エンティティが認識している論理ボリュームに対するライト対象のデータを受けた場合、前記ライト対象のデータを前記記憶デバイスに格納し、且つ、前記ライト対象のデータを前記１以上の他の計算機のうちのＮ台の他の計算機（Ｎは自然数）の各々に当該他の計算機に格納するために転送し、
前記１以上のエンティティの各々について割り当てられた送信量である割当て送信量を定義するポリシーを参照し、
前記１以上のエンティティの各々についてのライト量の上限の設定値を含むＩ／Ｏ上限とＮＷ送信量の上限の設定値を含むＮＷ上限を更新し、
前記Ｉ／Ｏ上限に基づいて、前記１以上のエンティティの各々について前記ライト量を制限し、
前記ＮＷ上限に基づいて、前記１以上のエンティティの各々について前記ＮＷ送信量を制限し、
前記割当て送信量は、前記ＮＷ送信量と前記ライト量との合計の上限値であり、
前記ＮＷ送信量は、前記１以上のエンティティの各々について前記エンティティの仮想ＮＷ  Ｉ／Ｆ及び前記ＮＷ  Ｉ／Ｆを介して単位時間当たりに送信されるデータの量であり、
前記ライト量は、当該エンティティが認識する前記論理ボリュームに単位時間当たりにライトされるデータの量であり、前記ライトされるデータは、他の計算機内の記憶部にライトされるデータである、
データ量制限方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、データ量の制限に関する。
【背景技術】
【０００２】
データ量の制限に関し、例えば特許文献１に開示の技術が知られている。特許文献１に開示の装置は、アプリケーションが送信または受信するデータの量の上限と、ボリュームに対してリードまたはライトするデータ量の上限との各々が、それぞれ要件を満たしているかどうかを判断する。その装置は、要件が満たされていない上限を調整する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４６０９３３１号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
アプリケーションとストレージ制御機能の両方が動作するサーバが考えられる。アプリケーションおよびストレージ制御機能は、いずれも少なくとも１つのプロセッサにより実行されるコンピュータプログラムである。ストレージ制御機能は、アプリケーションのデータを格納するボリュームを提供する。アプリケーションは、データをそのボリュームに格納する。サーバは、ボリュームに格納されるデータの格納先となる記憶デバイス（典型的には、不揮発性の物理記憶デバイス）を有する。【０００５】
このようなサーバは、一般に、複数の記憶デバイスで構成されたＲＡＩＤ（Redundant Array of Independent （or Inexpensive） Disks）グループを有さないと考えられる。例えば、このようなサーバとして、汎用的な計算機を採用することができ、その場合、サーバは、通常、ＲＡＩＤグループを有さない。【０００６】
このようなサーバに格納されたデータの冗長性を維持する方法（例えば、そのサーバの故障時にも、データにアクセスできるようにするための方法）として、例えば次のような方法が考えられる。すなわち、サーバが、そのサーバ内の記憶デバイスにデータを格納することに加えて、他のサーバ内の記憶デバイスにそのデータを格納する。そのために、サーバは、そのデータを、そのサーバのＮＷ  Ｉ／Ｆ（Network Interface）を介して、他のサーバに送信する。ここで、ＮＷ  Ｉ／Ｆ（Network Interface）を介した他サーバへのデータ送信を「ＮＷ送信」と呼び、ＮＷ  Ｉ／Ｆを介した他サーバからのデータ受信を「ＮＷ受信」と呼ぶ。【０００７】
サーバ内の記憶デバイスとして、ＨＤＤ（Hard Disk Drive）が採用された場合、ＮＷ送信のためのネットワーク帯域が飽和する可能性は低いと考えられる。なぜなら、ＨＤＤは、一般に、低速であり、故に、単位時間当たりにライト可能なデータの量が少ないためである。【０００８】
しかし、サーバ内の記憶デバイスとして、不揮発性メモリデバイス（典型的にはＳＳＤ（Solid State Drive））が採用された場合、ＮＷ送信のためのネットワーク帯域が飽和する可能性は、記憶デバイスがＨＤＤである場合に比べて高いと考えられる。なぜなら、不揮発性メモリデバイスは、一般に、ＨＤＤより高速であり、故に、単位時間当たりにライト可能なデータの量がＨＤＤより多いためである。【０００９】
ＮＷ  Ｉ／Ｆを同一サーバ上で共用するアプリケーションごとに、ＮＷ送信のデータ量（ＮＷ送信されるデータの量）と、ボリュームライトのデータ量（ボリュームにライトされるデータの量）との各々について、上限を設定することが考えられる。すなわち、アプリケーションによるＮＷ送信のデータ量をその上限以下に制限し、アプリケーションがボリュームにライトするデータの量をその上限以下に制限する技術が考えられる。しかし、その技術は、アプリケーションとストレージ制御機能の両方が動作する上記のようなサーバに、必ずしも有効ではない。具体的には、例えば次の通りである。【００１０】
第１に、いずれかのアプリケーションが大量のＮＷ送信を行うと、ＮＷ  Ｉ／Ｆがボトルネックとなる。そこで、サーバに設けられたＮＷ制限機能が、ＮＷ送信のデータ量を制限する。これにより、アプリケーションがボリュームにデータをライトしたためにそのデータをストレージ制御機能が他のサーバへＮＷ送信することが発生しても、そのＮＷ送信のデータ量を制限できる。しかし、ストレージ制御機能がＮＷ送信するデータが、どのアプリケーションによってライトされたデータであるのかを、ＮＷ制限機能は判別することはできない。従って、いずれのアプリケーションが大量にデータをライトしても、ＮＷ送信のデータ量が制限されるために、他のアプリケーションがボリュームへライトするデータの量が制限されることがある。【００１１】
第２に、アプリケーションがＮＷ送信のみを行いボリュームにデータをライトしない場合、そのアプリケーションについてライト用に確保したデータ量（ボリュームライトのデータ量の上限）をＮＷ送信には利用できない。同様に、アプリケーションがボリュームへのライトのみを行いＮＷ送信をしない場合、そのアプリケーションについてＮＷ送信用に確保したデータ量（ＮＷ送信のデータ量の上限）をボリュームへのライトには利用できない。【００１２】
ＮＷ受信についても、同様な問題が生じ得る。
【課題を解決するための手段】
【００１３】
計算機は、１以上のエンティティの各々について、上限ＮＷ送信量と上限ライト量との総和を、当該エンティティについて割り当てられた送信量である割当て送信量以下とする。１以上のエンティティの各々について、上限ＮＷ送信量は、計算機のＮＷ  Ｉ／Ｆを介して単位時間当たりに送信されるデータの量であるＮＷ送信量の上限値である。１以上のエンティティの各々について、上限ライト量は、当該エンティティが認識する論理ボリュームに単位時間当たりにライトされるデータの量であるライト量の上限値である。
【発明の効果】
【００１４】
同一のＮＷ  Ｉ／Ｆを共有する１以上のエンティティの各々についてＮＷ送信量もライト量も適切にすることが期待できる。
【図面の簡単な説明】
【００１５】
【図１】実施例１に係るサーバの構成の例を示す。
【図２】実施例１に係る計算機システムの構成の例を示す。
【図３】ボリューム管理情報の例を示す。
【図４】稼働状況の例を示す。
【図５】Ｉ／Ｏ（Input/Output）上限の例を示す。
【図６】ＮＷ上限の例を示す。
【図７】ＮＷ割当てポリシーの例を示す。
【図８】ＮＷ割当てポリシー設定画面の例を示す。
【図９】ＮＷ上限とＩ／Ｏ上限の初期設定処理の流れを示す。
【図１０】制限制御機能のＮＷ上限とＩ／Ｏ上限の適正化処理の流れを示す。
【図１１】実施例２に係るサーバの構成を示す。
【発明を実施するための形態】
【００１６】
以下、実施例を説明する。
【００１７】
なお、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号（または参照符号における共通部分）を使用し、同種の要素を区別する場合は、要素のＩＤ（または要素の参照符号）を使用することがある。
【００１８】
さらに、以下の説明では、要素の識別子として番号が使用されるが、番号に代えてまたは加えて他種の符号が使用されてもよい。
【００１９】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Central Processing Unit））によって実行されることで、定められた処理を、適宜に記憶部（例えばメモリ）および／またはインターフェースデバイス（例えば通信ポート）等を用いながら行うため、処理の主語が、プロセッサ（或いは、そのプロセッサを有する装置またはシステム）とされてもよい。また、プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。また、以下の説明において、２以上のプログラムが１つのプログラムとして実現されてもよいし、１つのプログラムが２以上のプログラムとして実現されてもよい。なお、以下の説明において、「プログラム」は、例えば、「アプリケーション」および各「ｘｘｘ機能」（「ｘｘｘ」は機能名）である。
【００２０】
また、以下に説明するｘｘｘ機能のうちの少なくとも１つは、ＡＳＩＣ（Application Specific Integrated Circuit）またはＦＰＧＡ（Field-Programmable Gate Array）のようなハードウェア回路で実現されてもよい。また、以下の説明において、２以上のｘｘｘ機能が１つの機能として実現されてもよいし、１つのｘｘｘ機能が２以上のｘｘｘ機能として実現されてもよい。
【００２１】
また、以下の説明では、情報の一例はテーブルであるが、１つのテーブルは、２以上のテーブルに分割されてもよいし、２以上のテーブルの全部又は一部が１つのテーブルであってもよい。
【実施例１】
【００２２】
図１は、実施例１に係るサーバ１０の構成の例を示す。【００２３】
図１に示すサーバ１０は、複数のサーバ１０のうちのいずれかである。図１に示すサーバ１０以外の１以上のサーバ１０の各々も、図１に示すサーバ１０と同様の構成を有することができる。以下、説明の混同を避けるために、図１に示すサーバ１０を単に「サーバ１０」と言い、図１に示すサーバ１０以外のいずれかのサーバ１０を「他サーバ１０」と言う。【００２４】
サーバ１０は、計算機の一例である。サーバ１０は、記憶デバイスの一例としてのＳＳＤ１３と、「インターフェイス」の一例としてのＮＷ  Ｉ／Ｆ１４と、ハイパーバイザー４０と、後述する稼働状況５０を取得する稼働状況取得機能（図示しない）と、ＮＷ割当てポリシー６０と、制限制御機能６１とを有する。【００２５】
ＳＳＤ１３は、サーバ１０内のハイパーバイザー４０で実行されるアプリケーション４２のデータを格納する。ＮＷ  Ｉ／Ｆ１４は、サーバ１０と他のサーバ１０とを接続する。【００２６】
ハイパーバイザー４０は、ＶＭ（Virtual Machine）４１と、ＳＶＭ（Storage VM）４５と、稼働状況５０と、Ｉ／Ｏ上限５１と、Ｉ／Ｏ制限機能５２と、ＮＷ上限５３と、ＮＷ制限機能５４とを有する。ＶＭ４１は、仮想的なサーバの一例であり、アプリケーション４２と、仮想ボリューム４３と、仮想ＮＷ  Ｉ／Ｆ４４とを有する。図１の例によれば、ＶＭ４１ａとＶＭ４１ｂとがある。ＶＭ４１ａは、アプリケーション４２ａと、仮想ボリューム４３ａと、仮想ＮＷ  Ｉ／Ｆ４４ａとを有する。ＶＭ４１ｂは、アプリケーション４２ｂと、仮想ボリューム４３ｂと、仮想ＮＷ  Ｉ／Ｆ４４ｂとを有する。１つのＶＭ４１が複数のアプリケーション４２を実行してもよい。ＳＶＭ４５は、仮想的なストレージの一例であり、仮想ＮＷ  Ｉ／Ｆ４９と、ストレージ制御機能４６と、ボリューム管理情報４７とを有する。ＶＭ４１およびＳＶＭ４５のいずれにも、ハイパーバイザー４０により、サーバ１０の物理的な資源（例えば、後述のＣＰＵ、メモリおよびＮＷ  Ｉ／Ｆ１４）が割り当てられる。例えば、ＶＭ４１内の仮想ＮＷ  Ｉ／Ｆ４４、および、ＳＶＭ４５内の仮想ＮＷ  Ｉ／Ｆ４９は、ＮＷ  Ｉ／Ｆ１４に基づく。【００２７】
アプリケーション４２は、ＶＭ４１上で動作する。アプリケーション４２は、例えばデータベース管理システムである。アプリケーション４２がデータをライトする場合は、仮想ボリューム４３に対してライト命令を発行する。仮想ボリューム４３は、ストレージ制御機能４６から提供されＶＭ４１にマウントされアプリケーション４２によって認識されたボリューム（論理ボリューム）である。アプリケーション４２がデータをリードする場合は、仮想ボリューム４３に対してリード命令を発行する。仮想ボリューム４３に対するリード命令およびライト命令の各々を、ＳＶＭ４５内のストレージ制御機能４６が受信し処理する。アプリケーション４２がサーバ１０内の他のアプリケーション４２と通信する場合は、仮想ＮＷ  Ｉ／Ｆ４４を使用してデータを送受信する。つまり、サーバ１０内のアプリケーション４２間の通信（典型的にはＶＭ４１間の通信）は、仮想Ｉ／Ｆ４４経由で行われる。アプリケーション４２が他サーバ１０内のアプリケーション４２と通信する場合は、ＮＷ  Ｉ／Ｆ１４を使用してデータを送受信する。つまり、サーバ１０内のアプリケーション４２と他サーバ１０内のアプリケーション４２間の通信は、ＮＷ  Ｉ／Ｆ１４経由で行われる。【００２８】
データライト処理を説明する。アプリケーション４２ａを例に取る。アプリケーション４２ａが仮想ボリューム４３ａに対するライト命令を発行し、そのライト命令をＳＶＭ４５内のストレージ制御機能４６が受信する（破線矢印７０参照）。ストレージ制御機能４６は、そのライト命令とボリューム管理情報４７とを参照し、ライト先サーバを特定する。ストレージ制御機能４６は、ボリューム管理情報４７を参照せずに、ライト命令を基に計算によりライト先サーバを特定してもよい。ライト先サーバがサーバ１０の場合は、ストレージ制御機能４６は、サーバ１０内のＳＳＤ１３にライト命令を転送する。ライト先サーバが他サーバ１０ｂ（他サーバ１０の一例（図２参照））の場合は、ストレージ制御機能４６は、仮想ＮＷ  Ｉ／Ｆ４４ｃと、ＮＷ  Ｉ／Ｆ１４とを介して、他サーバ１０ｂのストレージ制御機能４６にライト命令を転送する。他サーバ１０ｂ内のストレージ制御機能４６は、サーバ１０からライト命令を受信し、そのライト命令を他サーバ１０ｂ内のＳＳＤ１３に転送し、その結果（例えばライト完了）をライト命令の送信元であるサーバ１０に返す。以上のように、サーバ１０が故障した時のデータ消失を防ぐために、サーバ１０を含む２台以上のサーバ１０にデータがそれぞれ書き込まれる。以上が、アプリケーション４２ａがデータをライトする場合の処理である。【００２９】
データリード処理を説明する。アプリケーション４２ａを例に取る。アプリケーション４２ａが仮想ボリューム４３ａに対するリード命令を発行し、そのリード命令をＳＶＭ４５内のストレージ制御機能４６が受信する。ストレージ制御機能４６は、そのリード命令とボリューム管理情報４７とを参照し、リード元サーバを特定する。ストレージ制御機能４６は、ボリューム管理情報４７を参照せずに、リード命令を基に計算によりリード元サーバを特定してもよい。リード元サーバがサーバ１０の場合は、ストレージ制御機能４６は、ＳＳＤ１３にそのリード命令を転送する。リード元サーバが他サーバ１０ｂの場合は、ストレージ制御機能４６は、仮想ＮＷ  Ｉ／Ｆ４９と、ＮＷ  Ｉ／Ｆ１４とを介して、他サーバ１０ｂのストレージ制御機能４６にリード命令を転送する。他サーバ１０ｂのストレージ制御機能４６は、サーバ１０からリード命令を受信し、そのリード命令を他サーバ１０ｂ内のＳＳＤ１３に転送し、その結果（例えばリードされたデータ）をリード命令の送信元であるサーバ１０に返す。以上が、アプリケーション４２ａがデータをリードする場合の処理である。【００３０】
稼働状況５０は、仮想ボリューム４３ごとのリード量およびライト量と、仮想ＮＷ  Ｉ／Ｆ４４ごとのＮＷ送信量およびＮＷ受信量とを保持する。仮想ボリューム４３の「リード量」は、その仮想ボリューム４３から単位時間当たりにリードされたデータの量である。仮想ボリューム４３の「ライト量」は、その仮想ボリューム４３に単位時間当たりにライトされたデータの量である。仮想ＮＷ  Ｉ／Ｆ４４の「ＮＷ送信量」は、その仮想ＮＷ  Ｉ／Ｆ４４およびＮＷ  Ｉ／Ｆ１４経由で単位時間当たりに送信されるデータの量である。仮想ＮＷ  Ｉ／Ｆ４４の「ＮＷ受信量」は、その仮想ＮＷ  Ｉ／Ｆ４４およびＮＷ  Ｉ／Ｆ１４経由で単位時間当たりに受信されるデータの量である。稼働状況５０において、ＮＷ送信量もＮＷ受信量も、仮想ＮＷ  Ｉ／Ｆ４４ごとに存在し、ＳＶＭ４５内の仮想ＮＷ  Ｉ／Ｆ４９については存在しないでよい。【００３１】
Ｉ／Ｏ上限５１は、仮想ボリューム４３ごとの上限リード量（リード量の上限）および上限ライト量（ライト量の上限）の設定値である。Ｉ／Ｏ制限機能５２は、Ｉ／Ｏ上限５１に基づき、Ｉ／Ｏ先（ライト先またはリード元）の仮想ボリューム４３について、リード量（ストレージ制御機能４６経由でリードされるデータの量）およびライト量（ストレージ制御機能４６経由でライトされるデータの量）を制限する機能である。なお、破線矢印７０は、仮想ボリューム４３ａからストレージ制御機能４６へのライトを示す。破線矢印７１は、仮想ボリューム４３ｂからストレージ制御機能４６へのライトを示す。【００３２】
ＮＷ上限５３は、仮想ＮＷ  Ｉ／Ｆ４４ごとの上限ＮＷ送信量（ＮＷ送信量の上限）および上限ＮＷ受信量（ＮＷ受信量の上限）の設定値である。ＮＷ上限５３は、ＳＶＭ４５内の仮想ＮＷ  Ｉ／Ｆ４９については、そのような設定を含まないでよい。【００３３】
ＮＷ制限機能５４は、ＮＷ上限５３に基づき、仮想ＮＷ  Ｉ／Ｆ４４について、ＮＷ送信量およびＮＷ受信量を制限する機能である。ＮＷ制限機能５４は、ＳＶＭ４５内の仮想ＮＷ  Ｉ／Ｆ４９については、ＮＷ送信量およびＮＷ受信量を制限しない。ＮＷ上限５３が、仮想ＮＷ  Ｉ／Ｆ４９について上限ＮＷ送信量および上限ＮＷ受信量を含んでいないためである。なお、ＮＷ上限５３が仮想ＮＷ  Ｉ／Ｆ４９についてそのような設定値を含んでいたとしても、ＮＷ制限機能５４は、仮想ＮＷ  Ｉ／Ｆ４９について、ＮＷ送信量およびＮＷ受信量を制限しないことができる。【００３４】
図１において、実線矢印８０は、仮想ＮＷ  Ｉ／Ｆ４４ａからＮＷ  Ｉ／Ｆ１４を介した他サーバ１０（ＶＭ４１）への送信を示す。矢印８１は、仮想ＮＷ  Ｉ／Ｆ４４ｂからＮＷ  Ｉ／Ｆ１４を介した他サーバ１０（ＶＭ４１）への送信を示す。矢印８２は、仮想ＮＷ  Ｉ／Ｆ４９からＮＷ  Ｉ／Ｆ１４を介した他サーバ１０（ＳＶＭ４５）への送信を示す。例えば、ＶＭ４１ａ（４１ｂ）がデータをエクスポートする場合、実線矢印８０（８１）が示すＮＷ送信（データ送信）が行われるが、実線矢印８２が示すデータ転送は行われない。一方、ＶＭ４１ａ（４１ｂ）がデータを仮想ボリューム４３ａ（４３ｂ）にライトする場合、実線矢印８２が示すデータ転送が行われるが、実線矢印８０（８１）が示すＮＷ送信は行われない。なお、例えば、ＶＭ４１ａ（４１ｂ）がデータをインポートする場合、実線矢印８０（８１）が示す向きとは逆向きのＮＷ受信（データ受信）が行われる。また、ＶＭ４１ａ（４１ｂ）がデータを仮想ボリューム４３ａ（４３ｂ）からリードする場合、他サーバ１０内のＳＳＤ１３にリード対象のデータがあれば、実線矢印８２が示す向きとは逆向きのデータ転送が行われる。【００３５】
ＮＷ割当てポリシー６０は、ＶＭ４１ごとの割当て送信量および割当て受信量を定義するポリシーである。「割当て送信量」は、ＮＷ送信のデータ量とボリュームライト（仮想ボリュームに対するライト）のデータ量との合計の上限である。「割当て受信量」は、ＮＷ受信のデータ量とボリュームリード（仮想ボリュームからのリード）のデータ量との合計の上限である。【００３６】
制限制御機能６１は、稼働状況５０に基づいてＩ／Ｏ上限５１を変更したり、ＮＷ割当てポリシー６０に基づいてＮＷ上限５３を変更したりする機能である。【００３７】
図２は、実施例１に係る計算機システムの構成の例を示す。【００３８】
計算機システムは、複数のサーバ１０ａ、１０ｂ、１０ｃ、１０ｄ、…と、管理サーバ２０と、スイッチ３０とを有する。サーバの数は２以上であれば幾つでもよい。スイッチ３０は、PCI-Expressスイッチのような単一のスイッチでもよいし、１以上のネットワークスイッチ（例えばＬＡＮ（Local Area Network）のような通信ネットワーク）でもよい。【００３９】
サーバ１０ａは、図１に示したサーバ１０であり、メモリ１１と、ＳＳＤ１３と、ＮＷ  Ｉ／Ｆ１４と、それらに接続されたＣＰＵ（Central Processing Unit）１２とを有する。図１におけるハイパーバイザー４０と、図示しない稼働状況取得機能と、ＮＷ割り当てポリシー６０と、制限制御機能６１とのデータは、メモリ１１に格納されている。サーバ１０ａ以外のいずれかが、他サーバの一例である。ＮＷ  Ｉ／Ｆ１４がスイッチ３０に接続される。サーバ１０（サーバ１０ａ）がスイッチ３０を介して他サーバ１０と通信可能である。【００４０】
管理サーバ２０は、メモリ２１と、ＮＷ  Ｉ／Ｆ２３と、それらに接続されたＣＰＵ２２とを有する。ＮＷ  Ｉ／Ｆ２３がスイッチ３０に接続される。管理サーバ２０は、スイッチ３０を介して、複数のサーバ１０ａ、１０ｂ、１０ｃ、１０ｄ、…のうちの少なくとも１つと通信可能である。【００４１】
図３は、ボリューム管理情報４７の例を示す。【００４２】
ボリューム管理情報４７は、ストレージ制御機能４６により作成、参照、および更新される情報である。ボリューム管理情報４７は、例えば、メモリ１１またはＳＳＤ１３に格納される。ボリューム管理情報４７は、例えばテーブルであり、仮想ボリューム４３ごとに、仮想ボリュームＩＤ３０１と、容量３０２と、ＶＭ  ＩＤ３０３と、第一サーバＩＤ３０４と、第二サーバＩＤ３０５と、第三サーバＩＤ３０６といった情報を有する。【００４３】
仮想ボリュームＩＤ３０１は、当該仮想ボリューム４３のＩＤを示す。容量３０２は、当該仮想ボリューム４３の容量を示す。ＶＭ  ＩＤ３０３は、当該仮想ボリューム４３を使用するＶＭ４１のＩＤを示す。第一サーバＩＤ３０４は、当該仮想ボリューム４３を格納するサーバのＩＤを示す。第二サーバＩＤ３０５および第三サーバＩＤ３０６の各々は、当該仮想ボリューム４３に格納されるデータの転送先（格納先）サーバのＩＤを示す。サーバ１０（第一サーバ）が故障しても、いずれかの他サーバ（第二サーバまたは第三サーバ）のデータにアクセスできる。サーバ１０における仮想ボリューム４３に格納されるデータは、Ｎ台の他サーバ（Ｎは１以上の整数）に格納される。Ｎ台の他サーバにデータをライトすることを「（Ｎ＋１）重書き」と呼ぶことができる。二重書き（Ｎ＝１）が採用された仮想ボリュームについては、第三サーバＩＤ３０６は空欄となる。【００４４】
図４は、稼働状況５０の例を示す。【００４５】
稼働状況５０は、ハイパーバイザー４０により作成、および更新される情報である。稼働状況５０は、サーバ１０の記憶部、例えば、メモリ１１またはＳＳＤ１３に格納される。稼働状況５０は、仮想ボリューム稼働状況４００と、仮想ＮＷ  Ｉ／Ｆ稼働状況４１０とを有する。【００４６】
仮想ボリューム稼働状況４００は、例えばテーブルであり、仮想ボリューム４３ごとに、ＶＭ  ＩＤ４０１と、仮想ボリュームＩＤ４０２と、リード量４０３と、ライト量４０４とを有する。ＶＭ  ＩＤ４０１は、当該仮想ボリューム４３にアクセスするＶＭ４１のＩＤを示す。仮想ボリュームＩＤ４０２は、当該仮想ボリューム４３のＩＤを示す。リード量４０３は、ＶＭ  ＩＤ４０１で示されるＶＭ４１が当該仮想ボリューム４３から単位時間当たりにリードしたデータの量を示す。ライト量４０４は、ＶＭ  ＩＤ４０１で示されるＶＭ４１が当該仮想ボリューム４３に単位時間当たりにライトしたデータの量を示す。【００４７】
仮想ＮＷ  Ｉ／Ｆ稼働状況４１０は、例えばテーブルであり、仮想ＮＷ  Ｉ／Ｆ４４ごとに、ＶＭ  ＩＤ４１１と、仮想ＮＷ  Ｉ／Ｆ  ＩＤ４１２と、ＮＷ受信量４１３と、ＮＷ送信量４１４とを有する。ＶＭ  ＩＤ４１１は、当該仮想ＮＷ  Ｉ／Ｆ４４を有するＶＭ４１のＩＤを示す。仮想ＮＷＩ／Ｆ  ＩＤ４１２は、当該仮想ＮＷ  Ｉ／Ｆ４４のＩＤを示す。ＮＷ受信量４１３は、ＶＭ  ＩＤ４１１で示されるＶＭ４１が当該仮想ＮＷ  Ｉ／Ｆ４４（およびＮＷ  Ｉ／Ｆ１４）を介して単位時間当たりに受信（入力）したデータの量を示す。ＮＷ送信量４１４は、ＶＭ  ＩＤ４１１で示されるＶＭ４１が当該仮想ＮＷ  Ｉ／Ｆ４４（およびＮＷ  Ｉ／Ｆ１４）を介して単位時間当たりに送信（出力）したデータの量を示す。【００４８】
本実施例では、複数のサーバ１０ａ、１０ｂ、１０ｃ、１０ｄ、…の各々において、ＮＷ  Ｉ／Ｆ１４は、全二重方式で通信する。従って、ＮＷ送信量およびＮＷ受信量の一方の増減が他方の増減に影響を与えない。ＮＷ  Ｉ／Ｆ１４の通信方式は、全二重方式に限られないでよい。【００４９】
図５は、Ｉ／Ｏ上限５１の例を示す。【００５０】
Ｉ／Ｏ上限５１は、制限制御機能６１が更新し、Ｉ／Ｏ制限機能５２が参照する情報である。Ｉ／Ｏ上限５１は、サーバ１０の記憶部、例えば、メモリ１１またはＳＳＤ１３に格納される。Ｉ／Ｏ上限５１は、例えばテーブルであり、仮想ボリューム４３ごとに、ＶＭ  ＩＤ５０１と、仮想ボリュームＩＤ５０２と、上限リード量５０３と、上限ライト量５０４とを有する。ＶＭ  ＩＤ５０１は、当該仮想ボリューム４３にアクセスするＶＭ４１のＩＤを示す。仮想ボリュームＩＤ５０２は、当該仮想ボリューム４３のＩＤを示す。上限リード量５０３は、当該仮想ボリューム４３のリード量４０３の上限、すなわち、ＶＭ  ＩＤ５０１で示されるＶＭ４１が当該仮想ボリューム４３から単位時間当たりにリードできるデータの量の上限値を示す。上限ライト量５０４は、当該仮想ボリューム４３のライト量４０４の上限、すなわち、ＶＭ  ＩＤ５０１で示されるＶＭ４１が当該仮想ボリューム４３に単位時間当たりにライトできるデータの量の上限値を示す。【００５１】
図６は、ＮＷ上限５３の例を示す。【００５２】
ＮＷ上限５３は、制限制御機能６１が更新し、ＮＷ制限機能５４が参照する情報である。ＮＷ上限５３は、サーバ１０の記憶部、例えば、メモリ１１またはＳＳＤ１３に格納される。ＮＷ上限５３は、例えばテーブルであり、仮想ＮＷ  Ｉ／Ｆ４４ごとに、ＶＭ  ＩＤ６０１と、仮想ＮＷ  Ｉ／Ｆ  ＩＤ６０２と、上限ＮＷ受信量６０３と、上限ＮＷ送信量６０４とを有する。ＶＭ  ＩＤ６０１は、当該仮想ＮＷ  Ｉ／Ｆ４４を有するＶＭ４１のＩＤを示す。仮想ＮＷ  Ｉ／Ｆ  ＩＤ６０２は、当該仮想ＮＷ  Ｉ／Ｆ４４のＩＤを示す。上限ＮＷ受信量６０３は、当該仮想ＮＷ  Ｉ／Ｆ４４のＮＷ受信量４１３の上限、すなわち、ＶＭ  ＩＤ６０１で示されるＶＭ４１が当該仮想ＮＷ  Ｉ／Ｆ４４を介して単位時間当たりに受信できるデータの量の上限値を示す。上限ＮＷ送信量６０４は、当該仮想ＮＷ  Ｉ／Ｆ４４のＮＷ送信量４１４の上限、すなわち、ＶＭ  ＩＤ６０１で示されるＶＭ４１が当該仮想ＮＷ  Ｉ／Ｆ４４を介して単位時間当たりに送信できるデータの量の上限値を示す。【００５３】
図７は、ＮＷ割当てポリシー６０の例を示す。【００５４】
ＮＷ割当てポリシー６０は、計算機システムの管理者が作成し（または、ＶＭ４１の規模あるいは他種の情報を基に制限制御機能６１によって自動で作成され）、且つ制限制御機能６１が参照する情報である。ＮＷ割当てポリシー６０は、サーバ１０の記憶部、例えば、メモリ１１またはＳＳＤ１３に格納される。ＮＷ割当てポリシー６０は、ＶＭ４１ごとに、ＶＭ  ＩＤ７０１と、割当て受信量７０２と、割当て送信量７０３とを有する。また、ＮＷ割当てポリシー６０は、全てのＶＭ４１に共通の情報として、ＮＷ上限閾値７１１と、ＮＷ下限閾値７１２と、Ｉ／Ｏ上限閾値７１３と、Ｉ／Ｏ下限閾値７１４とを有する。【００５５】
ＶＭ  ＩＤ７０１は、当該ＶＭ４１のＩＤを示す。【００５６】
割当て受信量７０２は、当該ＶＭ４１について、ＮＷ受信のデータ量と、ボリュームリードのデータ量との合計の上限値を示す。ＶＭ４１の「ＮＷ受信のデータ量」は、当該ＶＭ４１が仮想ＮＷ  Ｉ／Ｆ４４およびＮＷ  Ｉ／Ｆ１４を介して単位時間当たりに受信するデータの量である。ＶＭ４１の「ボリュームリードのデータ量」は、当該ＶＭ４１における仮想ボリューム４３および仮想ＮＷ  Ｉ／Ｆ４９およびＮＷ  Ｉ／Ｆ１４を介して単位時間当たりにリードされるデータの量である。「リードされるデータ」は、他サーバ１０内のＳＳＤ１３からリードされるである。割当て受信量７０２は、ＮＷ  Ｉ／Ｆ１４が単位時間当たりに受信可能なデータ量であるＮＷ  Ｉ／Ｆ受信量に基づく（例えば、ＮＷ  Ｉ／Ｆ受信量の全部又は一部でよい）。複数のＶＭ４１にそれぞれ対応した複数の割当て受信量７０２の合計が、ＮＷ  Ｉ／Ｆ受信量以下でよい。【００５７】
割当て送信量７０３は、当該ＶＭ４１について、ＮＷ送信のデータ量と、ボリュームライトのデータ量との合計の上限値を示す。ＶＭ４１の「ＮＷ送信のデータ量」は、当該ＶＭ４１が仮想ＮＷ  Ｉ／Ｆ４４およびＮＷ  Ｉ／Ｆ１４を介して単位時間当たりに送信するデータの量である。ＶＭ４１の「ボリュームライトのデータ量」は、当該ＶＭ４１における仮想ボリューム４３に単位時間当たりにライトされるデータの量である。「ライトされるデータ」は、他サーバ１０内のＳＳＤ１３にライトされるデータである。割当て送信量７０３は、ＮＷ  Ｉ／Ｆ１４が単位時間当たりに送信可能なデータ量であるＮＷ  Ｉ／Ｆ送信量に基づく（例えば、ＮＷ  Ｉ／Ｆ送信量の全部又は一部でよい）。複数のＶＭ４１にそれぞれ対応した複数の割当て送信量７０３の合計が、ＮＷ  Ｉ／Ｆ送信量以下でよい。【００５８】
ＮＷ上限閾値７１１は、各ＶＭ４１について、上限ＮＷ受信量６０３に対するＮＷ受信量４１３の割合の閾値、および、上限ＮＷ送信量６０４に対するＮＷ送信量４１４の割合の閾値である。ＮＷ下限閾値７１２は、各ＶＭ４１について、上限ＮＷ受信量６０３および上限ＮＷ送信量６０４の各々の下限値である。Ｉ／Ｏ上限閾値７１３は、各ＶＭ４１について、上限リード量５０３に対するリード量４０３の割合の閾値、および、上限ライト量５０４に対するライト量４０４の割合の閾値である。Ｉ／Ｏ下限閾値７１４は、各ＶＭ４１について、上限リード量５０３および上限ライト量５０４の各々の下限値である。【００５９】
なお、割当て受信量７０２および割当て送信量７０３が、ＶＭ４１ごとの情報に代えて、全てのＶＭ４１に共通の情報であってもよい。ＮＷ上限閾値７１１、ＮＷ下限閾値７１２、Ｉ／Ｏ上限閾値７１３およびＩ／Ｏ下限閾値７１４のうちの少なくとも１つが、全てのＶＭ４１に共通の情報に代えて、ＶＭ４１ごとの情報であってもよい。【００６０】
また、図４〜図７のうちの少なくとも１つの図が示す情報において、仮想ボリューム４３ごとの情報、または、仮想ＮＷ  Ｉ／Ｆ４４ごとの情報は、アプリケーション４２ごとの情報、または、ＶＭ４１ごとの情報でもよい。また、図４〜図７のうちの少なくとも１つの図が示す情報において、ＶＭ４１ごとの情報は、アプリケーション４２ごとの情報でもよい。【００６１】
図８は、ＮＷ割当てポリシー設定画面８００の例を示す。【００６２】
ＮＷ割当てポリシー設定画面８００は、例えばＧＵＩ（Graphical User Interface）であり、サーバ１０用の設定画面である。この画面８００を用いて行われた設定は、サーバ１０に限らず全ての他サーバに適用されてもよい。あるいは、他サーバ毎に、他サーバ用のＮＷ割当てポリシー設定画面があってもよい。【００６３】
ＮＷ割当てポリシー設定画面８００は、ＶＭ４１ごとに、ＶＭ  ＩＤ８０１と、割当て受信量８０２と、割当て送信量８０３とを有する。ＶＭ  ＩＤ８０１は、予め表示される固定であるが、計算機システムの管理者によって追加または編集されてもよい。割当て受信量８０２および割当て送信量８０３の各々について、設定値が管理者により手動で入力される。【００６４】
また、ＮＷ割当てポリシー設定画面８００は、ＮＷ上限閾値８１１と、ＮＷ下限閾値８１２と、Ｉ／Ｏ上限閾値８１３と、Ｉ／Ｏ下限閾値８１４と、設定ボタン８２１とを有する。ＮＷ上限閾値８１１、ＮＷ下限閾値８１２、Ｉ／Ｏ上限閾値８１３およびＩ／Ｏ下限閾値８１４の各々について、設定値が管理者により手動で入力される。【００６５】
ＮＷ割当てポリシー設定画面８００経由で入力された設定値（データ）は、管理サーバ２０上のメモリ２１に格納されてもよいし、それに代えて又は加えて、それらの設定値（データ）が管理サーバ２０から（または管理サーバ２０非経由で）サーバ１０のメモリ１１におけるＮＷ割当てポリシー６０に反映（格納）されてもよい。ＮＷ割当てポリシー設定画面８００は、管理サーバ２０、管理サーバ２０に接続された表示用計算機（例えばクライアント）、または、サーバ１０に接続された表示用計算機に表示されてよい。計算機システムの管理者が設定ボタン８２１を押すと、入力された設定値がＮＷ割当てポリシー６０に反映される。【００６６】
図９は、ＮＷ上限５３とＩ／Ｏ上限５１の初期設定処理の流れを示す。【００６７】
ステップ９０１において、計算機システムの管理者が、ＮＷ割当てポリシー設定画面８００に設定値を入力すると、設定値がＮＷ割当てポリシー６０に反映される。【００６８】
ステップ９０２において、制限制御機能６１は、各ＶＭ４１について、割当て受信量７０２の１／２を上限ＮＷ受信量６０３として設定し、且つ、割当て送信量７０３の１／２を上限ＮＷ送信量６０４として設定する。つまり、上限ＮＷ受信量６０３および上限ＮＷ送信量６０４の各々について初期値が設定される。なお、上限ＮＷ送信量６０４（上限ＮＷ受信量６０３）の初期値が、割当て送信量７０３×Ａ（割当て受信量７０２×Ａ）であり、Ａ＝１／２である理由は、ＮＷ送信（ＮＷ受信）とライト（リード）の２要素があるためである。例えば、ＶＭ４１ａが、２００ＭＢのデータのうちの半分のデータを仮想ボリューム４３ａにライトし、残りの半分のデータをＮＷ送信するとする。この場合、仮想ボリューム４３ａにライトされる半分のデータは、ＳＶＭ４５（ストレージ制御機能４６）経由で他サーバ１０に転送されるが、ＳＶＭ４５（ストレージ制御機能４６）経由で転送されるデータの量は、ＮＷ制限機能５４により制限され得ない。上述したように、ＮＷ上限５３は、ＳＶＭ４５内の仮想ＮＷ  Ｉ／Ｆ４９について上限を含まないためである。一方、ＮＷ送信される残りの半分のデータは、ＮＷ制限機能５４により制限され得る。ＮＷ上限５３は、ＶＭ４１内の仮想ＮＷ  Ｉ／Ｆ４４について上限を含むためである。以上のような理由から、上限ＮＷ送信量６０４（上限ＮＷ受信量６０３）の初期値は、割当て送信量７０３の１／２（割当て受信量７０２の１／２）とされる。しかし、これは、一例であり、初期値は、これに限られない。【００６９】
ステップ９０３において、制限制御機能６１は、各ＶＭ４１について、割当て受信量７０２の１／２を上限リード量５０３として設定し、且つ、割当て送信量７０３の１／２を上限ライト量５０４として設定する。つまり、上限リード量５０３および上限ライト量５０４の各々について初期値が設定される。なお、上限ライト量５０４（上限リード量５０３）の初期値が、割当て送信量７０３×Ｂ（割当て受信量７０２×Ｂ）であり、Ｂ＝１／２とした理由は、ＮＷ送信（ＮＷ受信）とライト（リード）の２要素があるためである。なお、ＶＭ４１において、Ｐ個の仮想ボリューム４３が存在し（Ｐは自然数）、（Ｎ＋１）重書きが実行されるとした場合（Ｎは、ライト先（転送先）の他サーバの台数であり、１以上の整数）、Ｂ＝１／２は、上限ライト量５０４および上限リード量５０３のいずれについても、Ｐ＝１且つＮ＝２のときに採用されてよい。言い換えれば、上限ライト量５０４および上限リード量５０３のいずれについても、Ｂの値は、ＰおよびＮのうちの少なくとも１つに基づいて決定されてよい。例えば、三重書きが採用される場合は、ＳＶＭ４５から転送されるデータの量が二重書きのときと比べて２倍になるため、上限ライト量５０４の値がさらに半分にされてよい。すなわち、上限ライト量５０４の初期値が、割当て送信量７０３×１／４（つまりＢ＝１／４）でよい。また、Ｐ＝２以上の場合、上限リード量５０３および上限ライト量５０４は、Ｐ（１つのＶＭ４１（またはアプリケーション４２）における仮想ボリューム４３の数）で割った値でよい。すなわち、下記の式が採用されてよい。しかし、これは、一例であり、初期値は、これに限られない。
上限ライト量５０４＝｛割当て送信量７０３×Ｂ｝×１／Ｎ×１／Ｐ
上限リード量５０３＝｛割当て送信量７０３×Ｂ｝×１／Ｐ【００７０】
図１０は、制限制御機能６１のＮＷ上限５３とＩ／Ｏ上限５１の適正化処理の流れを示す。なお、図１０を参照した説明では、ＮＷ送信とボリュームライトを例に取るが、ＮＷ受信およびボリュームリードについても同様でよい。【００７１】
図１０に示す処理は、例えば、数秒または数分おきなど、定期的に実行される。ステップ１００１において、制限制御機能６１は、稼働状況５０を取得する。【００７２】
ステップ１００２において、制限制御機能６１は、上限ＮＷ送信量６０４に対するＮＷ送信量４１４の割合がＮＷ上限閾値７１１を超過しており、且つ上限ライト量５０４に対するライト量４０４の割合がＩ／Ｏ上限閾値７１３を超過しているか否かを判断する。ステップ１００２の判断結果が真の場合（ステップ１００２：ＹＥＳ）は、ステップ１００５に進む。ステップ１００２の判断結果が偽の場合（ステップ１００２：ＮＯ）は、ステップ１００３に進む。【００７３】
ステップ１００３において、制限制御機能６１は、上限ＮＷ送信量６０４に対するＮＷ送信量４１４の割合がＮＷ上限閾値７１１を超過しており、且つ上限ライト量５０４に対するライト量４０４の割合がＩ／Ｏ上限閾値７１３以下であるか否かを判断する。ステップ１００３の判断結果が真の場合（ステップ１００３：ＹＥＳ）は、ステップ１００６に進む。ステップ１００３の判断結果が偽の場合（ステップ１００３：ＮＯ）は、ステップ１００４に進む。【００７４】
ステップ１００４において、制限制御機能６１は、上限ＮＷ送信量６０４に対するＮＷ送信量４１４の割合がＮＷ上限閾値７１１以下であり、且つ上限ライト量５０４に対するライト量４０４の割合がＩ／Ｏ上限閾値７１３を超過しているか否かを判断する。ステップ１００４の判断結果が真の場合（ステップ１００４：ＹＥＳ）は、ステップ１００８に進む。ステップ１００４の判断結果が偽の場合（ステップ１００４：ＮＯ）は、処理を終了する。【００７５】
ステップ１００５において、制限制御機能６１は、上限ライト量５０４と上限ＮＷ送信量６０４との各々を、ステップ９０２とステップ９０３との各々において設定した値に戻す。【００７６】
ステップ１００６において、制限制御機能６１は、上限ライト量５０４がＩ／Ｏ下限閾値７１４よりも大きいか否かを判断する。ステップ１００６の判断結果が真の場合（ステップ１００６：ＹＥＳ）は、ステップ１００７に進む。ステップ１００６の判断結果が偽の場合（ステップ１００６：ＮＯ）は処理が終了する。【００７７】
ステップ１００７において、制限制御機能６１は、Ｉ／Ｏ下限閾値７１４よりも小さくならないように上限ライト量５０４を小さくし、且つ上限ＮＷ送信量６０４を大きくする。ここでの上限５０４および６０４の変更量は、予め定めた値とする。ステップ９０３と同様に、制限制御機能６１は、Ｎの値（データを（Ｎ＋１）重書きする場合）と、１つのＶＭ４１が２つ以上の仮想ボリューム４３を有するか否かとのうちの少なくとも１つに基づいて、上限５０４および６０４のうちの少なくとも１つを変更できる。【００７８】
ステップ１００８において、制限制御機能６１は、上限ＮＷ送信量６０４がＮＷ下限閾値７１２よりも大きいか否かを判断する。ステップ１００８の判断結果が真の場合（ステップ１００８：ＹＥＳ）は、ステップ１００９に進む。ステップ１００８の判断結果が偽の場合（ステップ１００８：ＮＯ）は、処理が終了する。【００７９】
ステップ１００９において、制限制御機能６１は、ＮＷ下限閾値７１２よりも小さくならないように上限ＮＷ送信量６０４を小さくし、且つＩ／Ｏ上限５０４を大きくする。ここでの上限５０４および６０４の変更量は、予め定めた値とする。ステップ９０３と同様に、制限制御機能６１は、Ｎの値（データを（Ｎ＋１）重書きする場合）と、１つのＶＭ４１が２つ以上の仮想ボリューム４３を有するか否かとのうちの少なくとも１つに基づいて、上限５０４および６０４のうちの少なくとも１つを変更できる。【００８０】
各ＶＭ４１について、割当て受信量７０２および割当て送信量７０３は、優先度で表現されてもよい。例えば、優先度３は３００ＭＢ／ｓ、優先度２は２００ＭＢ／ｓ、優先度１は１００ＭＢ／ｓであってもよい。また、例えば、優先度３のＶＭ数が“ａ”、優先度２のＶＭ数が“ｂ”、優先度１のＶＭ数が“ｃ”であり、ＮＷ  Ｉ／Ｆ１４の受信および送信のデータ量がそれぞれ１，０００ＭＢ／ｓの場合、優先度３のＶＭ４１の割当て受信量７０２と割当て送信量７０３とをそれぞれ１，０００÷（ａ×３＋ｂ×２＋ｃ×１）×３、優先度２のＶＭ４１の割当て受信量７０２と割当て送信量７０３とをそれぞれ１０００÷（ａ×３＋ｂ×２＋ｃ×１）×２、優先度２のＶＭ４１の割当て受信量７０２と割当て送信量７０３とをそれぞれ１，０００÷（ａ×３＋ｂ×２＋ｃ×１）×１としてもよい。つまり、優先度Ｘ（Ｘは自然数）のＶＭ４１の割当て送信量７０３（割当て受信量７０２）は、Ｘの値と、優先度の数（例えば優先度１、２および３の場合は優先度の数＝３）と、優先度毎のＶＭ数と、ＮＷ  Ｉ／Ｆ１４の送信のデータ量（受信のデータ量）とに基づいて決定されてよい。【００８１】
ＮＷ上限閾値７１１およびＩ／Ｏ上限閾値７１３のいずれも、１００％未満であり０％より大きい。なぜなら、Ｉ／Ｏ上限閾値７１３が１００％（最大値）または０％（最小値）となってしまうと、ライトしたいのにできないのか、あるいは、ライトしたくないのかを判断することができない（上限ライト量５０４を大きくしたい状況なのか小さくしたい状況なのかを判断することができない）。この点は、ＮＷ上限閾値７１１についても同様である。【００８２】
以上が、実施例１の説明である。【００８３】
ＶＭからの１００ＭＢデータ（１００ＭＢのデータ）のライトに応じてＳＶＭが１００ＭＢデータを他サーバのＳＶＭに転送する。一比較例によれば、当該ＶＭについてＮＷ送信量の上限が設定された場合、ＮＷ制限機能は、当該ＶＭからＳＶＭ非経由のデータをＮＷ送信量の上限以下に抑えることができるが、当該ＶＭからＳＶＭ経由のデータの量を制限することができない。このため、第１ＶＭが大量のデータをライトしているときに、第２ＶＭがＳＶＭ非経由でデータ転送しようとすると、第１ＶＭのライトがボトルネックとなって、第２ＶＭについて期待されるデータ転送性能が出ない。【００８４】
一方、一比較例において、ＳＶＭについてＮＷ送信量の上限（例えば５００ＭＢ／ｓ）とすると、第１ＶＭおよび第２ＶＭのいずれも５００ＭＢデータをライトすると、ＳＶＭは、合計１０００ＭＢのデータを転送しようとするが、転送されるデータ量は、ＳＶＭについてのＮＷ送信量の上限（５００ＭＢ／ｓ）に制限される。このため、第１ＶＭおよび第２ＶＭのいずれについても期待されるライト性能が出ない。【００８５】
本実施例によれば、このような課題が解決される。【００８６】
すなわち、本実施例によれば、ＶＭ４１（例えば４１ａ）に対応したＮＷ送信量４１４（例えば矢印８０）と、当該ＶＭ４１のライトによるＮＷ送信量（ＳＶＭ４５からのＮＷ送信量）（矢印８２）との総和が、当該ＶＭ４１の割当て送信量７０３の値以下になる。各ＶＭ４１のＮＷ受信上限６０３とリード上限５０３とについても、同様に制御する。ＮＷ  Ｉ／Ｆ１４を使用するＶＭ４１の割当て送信量７０３の総和を、当該ＮＷ  Ｉ／Ｆ１４の送信上限値以下とすることにより、ＮＷ  Ｉ／Ｆ１４がボトルネックになることはなくなり、特定のＶＭ４１が他のＶＭ４１に性能影響を与えることはなくなる。【００８７】
また、本実施例によれば、ＶＭ４１（例えば４１ａ）のＮＷ受信量４１３と、当該ＶＭ４１のリードによるＮＷ受信量（ＳＶＭ４５からのＮＷ受信量）との総和が、当該ＶＭ４１の割当て受信量７０２の値以下になる。ＮＷ  Ｉ／Ｆ１４を使用するＶＭ４１の割当て受信量７０２の総和が、当該ＮＷ  Ｉ／Ｆ１４の受信上限値以下とすることにより、ＮＷ  Ｉ／Ｆ１４がボトルネックになることはなくなり、特定のＶＭ４１が他のＶＭ４１に性能影響を与えることはなくなる。【００８８】
また、本実施例によれば、上限リード量５０３および上限ＮＷ受信量６０３の各々の初期値は、割当て受信量７０２の半分である。また、上限ライト量５０４および上限ＮＷ送信量６０４の各々の初期値は、割当て送信量７０３の半分である。このように、初期状態では、上限ライト量５０４および上限ＮＷ送信量６０４の各々の使用領域（上限リード量５０３および上限ＮＷ受信量６０３の各々の使用領域）を確保することができる。
【実施例２】
【００８９】
実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略又は簡略する。【００９０】
図１１は、実施例２に係るサーバの構成の一例を示す。【００９１】
実施例１では、ＶＭ４１ごとに、リード量４０３、ライト量４０４、ＮＷ受信量４１３、ＮＷ送信量４１４、上限リード量５０３、上限ライト量５０４、上限ＮＷ受信量６０３、上限ＮＷ送信量６０４、割当て受信量７０２および割当て送信量７０３があるが、実施例２では、図１１の通り、アプリケーション４２ごとに、リード量４０３、ライト量４０４、ＮＷ受信量４１３、ＮＷ送信量４１４、上限リード量５０３、上限ライト量５０４、上限ＮＷ受信量６０３、上限ＮＷ送信量６０４、割当て受信量７０２および割当て送信量７０３があってよい。ハイパーバイザー４０、ＶＭ４１およびＳＶＭ４５はなくてもよい。従って、ＳＶＭ４５経由または非経由のデータ転送は、ストレージ制御機能４６経由または非経由のデータ転送となる。【００９２】
なお、アプリケーション４２ごとにリード量４０３、ライト量４０４、ＮＷ受信量４１３、ＮＷ送信量４１４、上限リード量５０３、上限ライト量５０４、上限ＮＷ受信量６０３、上限ＮＷ送信量６０４、割当て受信量７０２および割当て送信量７０３が管理されることは、実施例１の構成（つまりＶＭ４１およびＳＶＭ４５が存在する構成）でも採用されてもよい。【００９３】
以上、幾つかの実施例を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。【００９４】
例えば、ＮＷ送信及びボリュームライトに関する上述の説明に基づいて、ＮＷ受信およびボリュームリードに関して、下記のように表現することができる。【００９５】
（表現１）
記憶デバイスと、
１以上の他の計算機と接続されるＮＷ  Ｉ／Ｆ（ネットワークインターフェイス）と、
１以上のエンティティを実行するプロセッサと
を有し、
前記プロセッサは、前記１以上のエンティティの各々について、上限ＮＷ受信量と上限リード量との総和を、当該エンティティについて割り当てられた受信量である割当て受信量以下とし、
前記１以上のエンティティの各々について、前記上限ＮＷ受信量は、前記ＮＷ  Ｉ／Ｆを介して短時間当たりに受信されるデータの量であるＮＷ受信量の上限値であり、
前記１以上のエンティティの各々について、前記上限リード量は、当該エンティティが認識する前記論理ボリュームに単位時間当たりにリードされるデータの量であるリード量の上限値である、
計算機。【００９６】
（表現２）
前記１以上のエンティティの各々について、前記上限リード量は、当該エンティティが認識している論理ボリュームの数が多い程小さい、
表現１に記載の計算機。【００９７】
（表現３）
前記１以上のエンティティの各々について、前記上限ＮＷ受信量と前記上限リード量のうちの少なくとも１つの初期値は、当該エンティティの前記割当て受信量の半分である、
表現１または２に記載の計算機。【００９８】
（表現４）
前記プロセッサは、前記１以上のエンティティの各々について、前記上限ＮＷ受信量と前記上限リード量との総和が当該エンティティの前記割当て受信量以下であることを維持しながら、前記上限ＮＷ受信量と前記上限リード量とを調整する、
表現１乃至３のうちのいずれか１つに記載の計算機。【００９９】
（表現５）
前記プロセッサは、前記１以上のエンティティの各々について、前記上限ＮＷ受信量に対する当該エンティティのＮＷ受信量の割合がＮＷ上限閾値を超過しているか否か、および、前記上限リード量に対するリード量の割合がＩ／Ｏ上限閾値を超過しているか否かに基づき、前記上限ＮＷ受信量と前記上限リード量とを調整する、
表現４に記載の計算機。【０１００】
（表現６）
前記１以上のエンティティの各々について、前記上限ＮＷ受信量に対する当該エンティティのＮＷ受信量の割合がＮＷ上限閾値を超過しており、且つ上限リード量に対するリード量の割合がＩ／Ｏ上限閾値を超過している場合、前記上限ＮＷ受信量と前記上限リード量との調整は、前記上限ＮＷ受信量と前記上限リード量との各々を初期値に戻すことである、
表現４または５に記載の計算機。【０１０１】
（表現７）
前記１以上のエンティティの各々について、前記上限ＮＷ受信量に対する当該エンティティのＮＷ受信量の割合がＮＷ上限閾値を超過しており、且つ、前記上限リード量に対するリード量の割合がＩ／Ｏ上限閾値以下の場合、前記上限ＮＷ受信量と前記上限リード量との調整は、前記上限ＮＷ受信量を大きくし前記上限リード量を小さくすることである、
表現４乃至６のうちのいずれか１つに記載の計算機。【０１０２】
（表現８）
前記１以上のエンティティの各々について、前記上限ＮＷ受信量に対する当該エンティティのＮＷ受信量の割合がＮＷ上限閾値以下であり、且つ、前記上限リード量に対するリード量の割合がＩ／Ｏ上限閾値を超えている場合、前記上限ＮＷ受信量と前記上限リード量との調整は、前記上限ＮＷ受信量を小さくし前記上限リード量を大きくすることである、
表現４乃至７のうちのいずれか１つに記載の計算機。【０１０３】
（表現９）
前記プロセッサは、前記１以上のエンティティの他に、ストレージ制御プログラムと、Ｉ／Ｏ（Input/Output）制限プログラムと、ＮＷ（ネットワーク）制限プログラムとを実行し、
前記Ｉ／Ｏ制限プログラムは、前記１以上のエンティティの各々について、リード量が前前記上限リード量以下になるよう制限し、
前記ストレージ制御プログラムは、前記１以上のエンティティの各々について、当該エンティティが認識している論理ボリュームに対するリード対象のデータを、前記記憶デバイスからリードすることと、前記ＮＷ  Ｉ／Ｆ経由で前記１以上の他の計算機のいずれかからリードすることとのいずれかを実行でき、
前記ＮＷ制限プログラムは、前記１以上のエンティティの各々について、ＮＷ受信量が前前記上限ＮＷ受信量以下になるよう制限する、
表現１に記載の計算機。
【符号の説明】
【０１０４】
１０…サーバ、１３…ＳＳＤ、１４…ＮＷ  Ｉ／Ｆ、４２…アプリケーション、４３…仮想ボリューム
【図１】
0006782303.tif 000002
【図２】
0006782303.tif 000003
【図３】
0006782303.tif 000004
【図４】
0006782303.tif 000005
【図５】
0006782303.tif 000006
【図６】
0006782303.tif 000007
【図７】
0006782303.tif 000008
【図８】
0006782303.tif 000009
【図９】
0006782303.tif 000010
【図１０】
0006782303.tif 000011
【図１１】
0006782303.tif 000012