説明

コネクション選択装置、コネクション選択方法及びコネクション選択プログラム

【課題】クライアントと仮想サーバとの間の通信コネクションの確立を高速にするためのコネクション選択装置を提供する。
【解決手段】或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、通信を行うためのコネクションを選択するためのコネクション選択装置であって、或るクライアントに含まれる何れかのアプリケーションと或る物理サーバに含まれる仮想サーバであって或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合には、通信を行うためのコネクションとして、第1の既存コネクションを選択する手段を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチコアサーバ環境においてクライアントとサーバとの間のコネクションを選択するためのコネクション選択装置、コネクション選択方法及びコネクション選択プログラムに関する。
【背景技術】
【0002】
CPUのマルチコア(multi core)化、メニコア(many core)化が進んでいる。今後、一つのサーバに8コア、16コアが搭載されるというように、一つのサーバあたりのコア数が増えてくると予想される。これによりマルチスレッド・マルチプロセス(multi thread/multi process)のサーバの並列度が上がり、そのサーバの処理性能(単位時間当たりの処理数)が向上する。ただしこの様なマルチコアアーキテクチャでは、サーバプロセスやメモリ空間の扱い方が従来とは変わってくる。まずメモリについては、大容量のメモリをマルチコアで共有するが、コア数が増えたことにより、メモリバスがボトルネックになる可能性が高まる。少しでもボトルネックを回避するため、メモリをいくつかに分割し、それぞれの分割されたメモリにメモリバスをつけ、それぞれの分割されたメモリをコアとスイッチを介して接続する構成が考えられる。その際、物理的な制約から、いわゆるNUMA(Non-Uniform Memory Access)になる。つまり各コアから見るとアクセスの早いメモリと遅いメモリがある。マルチコアの性能を最大に引き出すためには、このメモリ性能の違いを利用する必要がある。
【0003】
サーバプロセスについては、マルチコアをできるだけ並列に動作させることが重要である。そのために、コア間でプロセスが移動するオーバーヘッドを避ける目的でプロセスを特定のCPUに明示的に割り当てる技術が用いられることがある。これをCPUアフィニティという。マルチコアのコア数が上がるほどCPUアフィニティをかけることで並列度向上に効果がある。
【0004】
なお、特許文献1には、仮想サーバの作成や起動に関する開示がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2007−272297号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
前述のように、マルチコアで性能を最大に引き出すためにはNUMAを考慮してメモリをコアに貼り付け、さらにサーバプロセスをコアに貼り付けて、コア同士をなるべく独立して並列動作をさせることが重要である。このように各コアにメモリを貼り付けたサーバを仮想サーバと呼ぶ。クライアントから見ると、一つの物理サーバに複数(例えばコア数)の仮想サーバが見える。ただし、仮想サーバは互いに独立ではあるが、物理サーバとしては同じである。従って、同一の物理サーバにある仮想サーバ間の接続は、物理サーバ間の接続と比較して、格段に高速である。それに対して、通信コネクションを開設する処理は、同一の物理サーバにある仮想サーバ間を接続する処理と比較して、相対的に長時間要する。例えばTCP/IP(Transmission Control Protocol/Internet Protocol)の場合、新規コネクションの開設は、3−Wayハンドシェイクにより行われる。3−wayハンドシェイクでは、SYN、SYN−ACK、ACKという3回のクライアントサーバ間のやりとりを経てコネクションが開設される。CPUやネットワークが高速になったとはいえ、新規コネクションを開設する処理は、同一の物理サーバにある仮想サーバ間を接続する処理に比べて桁違いに遅い。
【0007】
従って、ここで解決しようとする課題は、或るクライアントが、新たに何れかの仮想サーバと通信をしようとする場合についてのものである。通常は、クライアントは、通信しようとする仮想サーバと新規コネクションを無条件に開設する。
【0008】
特許文献1には、上述したように、仮想サーバの作成や起動に関する開示があるが、クライアントと仮想サーバとを接続するコネクションに関する開示はない。
【0009】
そこで、本発明は、クライアントと仮想サーバとの間の通信コネクションの確立を高速にするためのコネクション選択装置、コネクション選択方法及びコネクション選択プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の第1の観点によれば、或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置であって、前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段を備えることを特徴とするコネクション選択装置が提供される。
【0011】
本発明の第2の観点によれば、或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置であって、前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合に、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する場合の仮想サーバ間通信コストと、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する場合の新規コネクション開設コストとを計算する手段と、前記新規コネクション開設コストが前記仮想サーバ間通信コストよりも高い場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段と、前記新規コネクション開設コストが前記仮想サーバ間通信コスト以下である場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する手段を更に備えることを特徴とするコネクション選択装置が提供される。
【0012】
本発明の第3の観点によれば、或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択方法であって、前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択するステップを有することを特徴とするコネクション選択方法が提供される。
【0013】
本発明の第4の観点によれば、或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択方法であって、前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合に、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する場合の仮想サーバ間通信コストと、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する場合の新規コネクション開設コストとを計算するステップと、前記新規コネクション開設コストが前記仮想サーバ間通信コストよりも高い場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択するステップと、前記新規コネクション開設コストが前記仮想サーバ間通信コスト以下である場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択するステップを更に有することを特徴とするコネクション選択方法が提供される。
【0014】
本発明の第5の観点によれば、或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置としてコンピュータを機能させるためのコネクション選択プログラムであって、コンピュータを、前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段として機能させることを特徴とするコネクション選択プログラムが提供される。
【0015】
本発明の第6の観点によれば、或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置としてコンピュータを機能させるためのコネクション選択プログラムであって、コンピュータを、前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合に、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する場合の仮想サーバ間通信コストと、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する場合の新規コネクション開設コストとを計算する手段と、前記新規コネクション開設コストが前記仮想サーバ間通信コストよりも高い場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段と、前記新規コネクション開設コストが前記仮想サーバ間通信コスト以下である場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する手段と、として機能させることを特徴とするコネクション選択プログラムが提供される。
【発明の効果】
【0016】
本発明によれば、クライアントと仮想サーバとの間の通信コネクションの確立を高速にすることができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態によるシステム構成を示すブロック図である。
【図2】本発明の実施形態によるクライアントの詳細な構成を示すブロック図である。
【図3】本発明の第1の実施形態によるサーバ選択部の動作を説明するためのフローチャートである。
【図4】本発明の第2の実施形態によるサーバ選択部の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【0018】
以下、図面を参照して本発明を実施するための形態について詳細に説明する。
【0019】
[第1の実施形態]
図1に本発明の実施形態によるシステムの構成を示す。クライアント1と物理サーバ2があり、物理サーバ2では仮想サーバ3A〜3Cの3つの仮想サーバが起動している。仮想サーバ3A、3B、3Cは、それぞれ、ポート番号がA、B、Cのポートを利用してTCP/IPによる通信をする準備ができている。仮想サーバ3A、3B、3Cは、それぞれ、コア4A、4B、4Cにアフィニティが設定されている。コア4A、4B、4Cは、それぞれ、メモリ5A、5B、5Cに高速でアクセスできる。図1において、コアとメモリを接続する太線を流れるデータの伝送速度は、コアとメモリを接続する細線を流れるデータの伝送速度よりも高い。
【0020】
図1の例では、クライアント1と仮想サーバ3Bとの間に既存コネクションが確立されている。この例で、クライアント1が仮想サーバ3Aと新たに通信しようとする場合を考える。通常であればクライアント1と仮想サーバ3Aとの間に新規コネクションを開設して両者が通信をする。しかし、本実施形態では、クライアント1と仮想サーバ3Bとの間に既存コネクションが確立されているので、クライアント1は、仮想サーバ3B経由で仮想サーバ3Aにアクセスしたほうが高速な可能性がある。本実施形態ではこのような場合に適切な制御を行う。
【0021】
図2はクライアント1の構成を示すブロック図である。クライアント1は、アプリケーション10と、サーバ選択部11と、通信管理部12と、通信処理部13を含む。なお、これらの各部は、ハードウェア、ソフトウェア又はこれらの組合わせにより実現することができる。ここでソフトウェアにより実現するとは、コンピュータをその部分として機能させるためのプログラムをコンピュータが読み込んで実行することにより実現することをいう。
【0022】
本実施形態の特徴はサーバ選択部11にある。まずサーバと通信しようとするアプリケーション10は、通信処理部13にリクエストを出す。通信処理部13はリクエストの転送先となるべき仮想サーバを選択するため、サーバ選択部11に問い合わせを行う。通信処理部13は、サーバ選択部11から回答として得た仮想サーバとの間で、通信管理部12を介して、通信を開始する。
【0023】
一般的なサーバ選択部11として、KVS(Key-Value Storage)のような分散ストレージでコンシステントハッシュのような例がある。コンシステントハッシュはサーバリストをハッシュ空間にハッシュ関数によりばらまき、アクセスするデータのキー(Key)も同様にハッシュ関数を通すことにより、どのサーバがデータを保持しているかをアルゴリズム的に求める手法である。本実施形態はこのようなコンシステントハッシュに加えて、そのクライアントが今どの仮想サーバ、物理サーバとの間で既存コネクションを確立しているのかを情報として用いる。
【0024】
本実施形態のサーバ選択部11の動作を説明するためのフローチャートを図3に示す。
【0025】
通信処理部13からの問い合わせを元に、例えばコンシステントハッシュにより、アプリケーション10の接続先となる仮想サーバとして、仮想サーバAが選択されたとする(ステップS1)。
【0026】
次に、アプリケーション10を含むクライアント1に含まれる何れかのアプリケーションと仮想サーバAを含む物理サーバとの間に少なくとも1つの既存コネクションが確立されているか否かをチェックする(ステップS2)。コネクションの状態は通信管理部12が管理しているので、サーバ選択部11は、通信管理部12に問い合わせたり、コネクションの状態を管理するためのテーブルを通信管理部12と共有したりすることにより、そのチェックを行う。
【0027】
アプリケーション10を含むクライアント1と仮想サーバAを含む物理サーバとの間に確立されている既存コネクションがない場合には(ステップS2でNO)、既存コネクションを使って物理サーバ内の仮想サーバ間でデータや命令を転送させる方法がとれないので、アプリケーション10と仮想サーバAとの間に直接コネクションを開設するのが最も有利である。よって、アプリケーション10と仮想サーバAとの間に新たなコネクションを開設し、アプリケーション10に、その新たなコネクションを用いて、仮想サーバAと通信をさせることとする(ステップS4)。
【0028】
アプリケーション10を含むクライアント1に含まれる何れかのアプリケーションと仮想サーバAを含む物理サーバとの間に既存コネクションがある場合、アプリケーション10を含むクライアント1に含まれる何れかのアプリケーションと仮想サーバAとの間に既存コネクションがあるかをチェックする(ステップS3)。
【0029】
もし、アプリケーション10を含むクライアント1に含まれる何れかのアプリケーションと仮想サーバAとの間に既存コネクションが確立されている場合には、その既存コネクションを用いて通信をするのが最も有利である。従って、アプリケーション10に、アプリケーション10を含むクライアント1に含まれる何れかのアプリケーションと仮想サーバAとの間に確立されている既存コネクションを用いて、仮想サーバAと通信をさせることとする(ステップS5)。
【0030】
もし、アプリケーション10を含むクライアント1に含まれる何れかのアプリケーションと仮想サーバAとの間に既存コネクションが確立されていない場合、すなわち、アプリケーション10を含むクライアント1に含まれる何れかのアプリケーションと仮想サーバAを含む物理サーバに含まれる仮想サーバであって仮想サーバA以外の仮想サーバとの間に既存コネクションが確立されている場合には、その既存コネクションを用いて通信をするのが最も有利である。従って、アプリケーション10に、アプリケーション10を含むクライアント1に含まれる何れかのアプリケーションと仮想サーバAを含む物理サーバに含まれる仮想サーバであって仮想サーバA以外の仮想サーバとの間に確立されている既存コネクションを用いて、仮想サーバAと通信をさせることとする(ステップS6)。この場合、仮想サーバAと、仮想サーバを含む物理サーバに含まれる仮想サーバであって仮想サーバA以外の仮想サーバとは、仮想サーバ間通信をしたり、共有メモリを用いたりして、データや命令の転送を行う。仮想サーバが共有メモリ型のストレージサーバ、例えばKVSのようなサーバであった場合、よりオーバーヘッドの少ない方法でデータや命令の転送を行うことができる。
【0031】
[第2の実装形態]
第1の実施形態では、当該アプリケーションを含むクライアントに含まれる何れかのアプリケーションと仮想サーバAを含む物理サーバに含まれる仮想サーバであって仮想サーバA以外の仮想サーバとの間に既存コネクションがある場合には、その既存コネクションを無条件に当該アプリケーションと仮想サーバAとが通信を行うためのコネクションとして選択するようにしていた。これに対し、第2の実施形態では、当該アプリケーションを含むクライアントに含まれる何れかのアプリケーションと仮想サーバAを含む物理サーバに含まれる仮想サーバであって仮想サーバA以外の仮想サーバとの間に既存コネクションがある場合には、更に、その既存コネクションを当該アプリケーションと仮想サーバAとが通信を行うためのコネクションとして選択する場合の仮想サーバ間通信コストと、当該アプリケーションと仮想サーバとの間に新たなコネクションを開設して、当該アプリケーションと仮想サーバAとが通信を行うためのコネクションとして新たなコネクションを選択する場合の新規コネクション開設コストを比較して、コストが低い方を選択する。
【0032】
ここで、各コストの計算は、トータルで行う。トータルでコストの計算を行うとは、具体的には、クライアントの状態、物理サーバの状態、仮想サーバの状態及びネットワークの状態を含めて計算を行うことである。
【0033】
より具体的には、例えば、ネットワークが非常に混雑している場合には、新規コネクション開設コストよりも、仮想サーバ間通信コストの方が低い。
【0034】
また、例えば、コアにかかる負荷が高くなるほどコストが高くなるような評価式を用い、負荷の低いコアを使うような選択ができるようにする。当該アプリケーションを含むクライアントに含まれる何れかのアプリケーションと仮想サーバAを含む物理サーバに含まれる仮想サーバであって仮想サーバA以外の仮想サーバとの間に既存コネクションがあり、仮想サーバA以外の仮想サーバが複数あるならば、相対的に負荷の低いコアを含む仮想サーバに係る既存コネクションを選択するようにしてもよい。そして、選択された既存コネクションを利用する場合の仮想サーバ間通信コストを、新規コネクション開設コストと比較するようにしてもよい。
【0035】
また、既存コネクションを選択することとした場合には、よりアクティブに、既存コネクションのネットワーク帯域をネットワーク帯域制御と連携して増やす制御や、既存コネクションのパスをよりホップの少ないネットワークパスに切り替えるような制御を追加してもよい。
【0036】
なお、コスト計算をする際には、どれだけリアルタイムな状態を用いるかによって、コスト計算のためのコストが逆にかかってしまい、遅延が生ずる可能性があるので注意が必要である。
【0037】
図4に第2の実施形態によるサーバ選択部11の動作を説明するためのフローチャートを示す。
【0038】
図3と図4とを比較すると明らかなように、第2の実施形態によるサーバ選択部11の動作は、第1の実施形態によるサーバ選択部11の動作と比較して、ステップS3でNOとなった場合の手順が異なるだけであり、それ以外の手順は同一である。
【0039】
ステップS3でNOとなったならば、ステップS7で、新規コネクション開設コストと仮想サーバ間通信コストを計算する。
【0040】
次に、新規コネクション開設コストが仮想サーバ間通信コストより高いか否かを判断する(ステップS8)。
【0041】
新規コネクション開設コストが仮想サーバ間通信コストより高い場合には(ステップS8でYES)、アプリケーション10に、アプリケーション10を含むクライアント1に含まれる何れかのアプリケーションと仮想サーバAを含む物理サーバに含まれる仮想サーバであって仮想サーバA以外の仮想サーバとの間に確立されている既存コネクションを用いて、仮想サーバAと通信をさせることとする(ステップS6)。
【0042】
新規コネクション開設コストが仮想サーバ間通信コストより高くない場合には(ステップS8でNO)、アプリケーション10と仮想サーバAとの間に新たなコネクションを開設し、アプリケーション10に、その新たなコネクションを用いて、仮想サーバAと通信をさせることとする(ステップS4)。
【0043】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0044】
(付記1)
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置であって、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段を備えることを特徴とするコネクション選択装置。
【0045】
(付記2)
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置であって、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合に、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する場合の仮想サーバ間通信コストと、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する場合の新規コネクション開設コストとを計算する手段と、
前記新規コネクション開設コストが前記仮想サーバ間通信コストよりも高い場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段と、
前記新規コネクション開設コストが前記仮想サーバ間通信コスト以下である場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する手段を更に備えることを特徴とするコネクション選択装置。
【0046】
(付記3)
付記2に記載のコネクション選択装置であって、
前記第1の既存コネクションの帯域を増やす制御、そのパスを切り替える制御又はその双方の制御を行う手段を更に備えることを特徴とするコネクション選択装置。
【0047】
(付記4)
付記1乃至3の何れか1に記載のコネクション選択装置であって、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る仮想サーバとの間に第2の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第2の既存コネクションを選択する手段を更に備えることを特徴とするコネクション選択装置。
【0048】
(付記5)
付記1乃至4の何れか1に記載のコネクション選択装置であって、
前記或るクライアントと前記或る物理サーバとの間に確立されている既存コネクションがない場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する手段を更に備えることを特徴とするコネクション選択装置。
【0049】
(付記6)
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択方法であって、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択するステップを有することを特徴とするコネクション選択方法。
【0050】
(付記7)
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択方法であって、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合に、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する場合の仮想サーバ間通信コストと、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する場合の新規コネクション開設コストとを計算するステップと、
前記新規コネクション開設コストが前記仮想サーバ間通信コストよりも高い場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択するステップと、
前記新規コネクション開設コストが前記仮想サーバ間通信コスト以下である場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択するステップを更に有することを特徴とするコネクション選択方法。
【0051】
(付記8)
付記7に記載のコネクション選択方法であって、
前記第1の既存コネクションの帯域を増やす制御、そのパスを切り替える制御又はその双方の制御を行うステップを更に有することを特徴とするコネクション選択方法。
【0052】
(付記9)
付記6乃至8の何れか1に記載のコネクション選択方法であって、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る仮想サーバとの間に第2の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第2の既存コネクションを選択するステップを更に有することを特徴とするコネクション選択方法。
【0053】
(付記10)
付記6乃至9の何れか1に記載のコネクション選択方法であって、
前記或るクライアントと前記或る物理サーバとの間に確立されている既存コネクションがない場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択するステップを更に有することを特徴とするコネクション選択方法。
【0054】
(付記11)
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置としてコンピュータを機能させるためのコネクション選択プログラムであって、
コンピュータを、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段として機能させることを特徴とするコネクション選択プログラム。
【0055】
(付記12)
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置としてコンピュータを機能させるためのコネクション選択プログラムであって、
コンピュータを、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合に、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する場合の仮想サーバ間通信コストと、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する場合の新規コネクション開設コストとを計算する手段と、
前記新規コネクション開設コストが前記仮想サーバ間通信コストよりも高い場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段と、
前記新規コネクション開設コストが前記仮想サーバ間通信コスト以下である場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する手段と、
として機能させることを特徴とするコネクション選択プログラム。
【0056】
(付記13)
付記12に記載のコネクション選択プログラムであって、
コンピュータを更に、
前記第1の既存コネクションの帯域を増やす制御、そのパスを切り替える制御又はその双方の制御を行う手段として機能させることを特徴とするコネクション選択プログラム。
【0057】
(付記14)
付記11乃至13の何れか1に記載のコネクション選択プログラムであって、
コンピュータを更に、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る仮想サーバとの間に第2の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第2の既存コネクションを選択する手段として機能させることを特徴とするコネクション選択プログラム。
【0058】
(付記15)
付記11乃至14の何れか1に記載のコネクション選択プログラムであって、
コンピュータを更に、
前記或るクライアントと前記或る物理サーバとの間に確立されている既存コネクションがない場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する手段として機能させることを特徴とするコネクション選択プログラム。
【産業上の利用可能性】
【0059】
本発明を用いれば、これから増えるマルチコア・メニコア環境におけるクライアントサーバ処理において、従来よりも高速で大量の処理が可能となる。
【符号の説明】
【0060】
1 クライアント
2 物理サーバ
3 仮想サーバ
4 コア
5 メモリ
10 アプリケーション
11 サーバ選択部
12 通信管理部
13 通信処理部

【特許請求の範囲】
【請求項1】
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置であって、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段を備えることを特徴とするコネクション選択装置。
【請求項2】
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置であって、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合に、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する場合の仮想サーバ間通信コストと、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する場合の新規コネクション開設コストとを計算する手段と、
前記新規コネクション開設コストが前記仮想サーバ間通信コストよりも高い場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段と、
前記新規コネクション開設コストが前記仮想サーバ間通信コスト以下である場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する手段を更に備えることを特徴とするコネクション選択装置。
【請求項3】
請求項2に記載のコネクション選択装置であって、
前記第1の既存コネクションの帯域を増やす制御、そのパスを切り替える制御又はその双方の制御を行う手段を更に備えることを特徴とするコネクション選択装置。
【請求項4】
請求項1乃至3の何れか1に記載のコネクション選択装置であって、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る仮想サーバとの間に第2の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第2の既存コネクションを選択する手段を更に備えることを特徴とするコネクション選択装置。
【請求項5】
請求項1乃至4の何れか1に記載のコネクション選択装置であって、
前記或るクライアントと前記或る物理サーバとの間に確立されている既存コネクションがない場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する手段を更に備えることを特徴とするコネクション選択装置。
【請求項6】
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択方法であって、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択するステップを有することを特徴とするコネクション選択方法。
【請求項7】
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択方法であって、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合に、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する場合の仮想サーバ間通信コストと、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する場合の新規コネクション開設コストとを計算するステップと、
前記新規コネクション開設コストが前記仮想サーバ間通信コストよりも高い場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択するステップと、
前記新規コネクション開設コストが前記仮想サーバ間通信コスト以下である場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択するステップを更に有することを特徴とするコネクション選択方法。
【請求項8】
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置としてコンピュータを機能させるためのコネクション選択プログラムであって、
コンピュータを、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段として機能させることを特徴とするコネクション選択プログラム。
【請求項9】
或るクライアントに含まれる或るアプリケーションが或る物理サーバに含まれる或る仮想サーバとの間で通信を開始することとなった場合に、前記通信を行うためのコネクションを選択するためのコネクション選択装置としてコンピュータを機能させるためのコネクション選択プログラムであって、
コンピュータを、
前記或るクライアントに含まれる何れかのアプリケーションと前記或る物理サーバに含まれる仮想サーバであって前記或る仮想サーバ以外の仮想サーバとの間に第1の既存コネクションが確立されている場合に、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する場合の仮想サーバ間通信コストと、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する場合の新規コネクション開設コストとを計算する手段と、
前記新規コネクション開設コストが前記仮想サーバ間通信コストよりも高い場合には、前記通信を行うためのコネクションとして、前記第1の既存コネクションを選択する手段と、
前記新規コネクション開設コストが前記仮想サーバ間通信コスト以下である場合には、前記或るアプリケーションと前記或る仮想サーバとの間に新たなコネクションを開設し、前記通信をするためのコネクションとして、前記新たなコネクションを選択する手段と、
として機能させることを特徴とするコネクション選択プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−155602(P2012−155602A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2011−15254(P2011−15254)
【出願日】平成23年1月27日(2011.1.27)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成21年度、独立行政法人新エネルギー・産業技術総合開発機構「グリーンネットワーク・システム技術研究開発プロジェクト(グリーンITプロジェクト)/エネルギー利用最適化データセンタ基盤技術の研究開発/サーバの最適構成とクラウド・コンピューティング環境における進化するアーキテクチャーの開発/クラウド・コンピューティング技術」、委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】