どのように使うの?

バーチャルサーバーは3つの方法で実装されている。3つのIPロードバランシングテクニック(パケットを通過させる方法)だ。NATを経由したヴァーチャルサーバー、IPトンネルを経由したバーチャルサーバー、ダイレクトルーティングを経由したバーチャルサーバーがある。動作原理や設定に関してはそれらののセクションを見てください。カーネルの構築方法、それらの使い方もそこに載っています。

次のセクションで3つのバーチャルサーバー実装においての長所、短所を説明します。VS-NAT と VS-TUN と VS-DR の比較は次のテーブルに要約されています。

VS-NAT VS-TUN VS-DR
Server any tunneling non-arp device
server network private LAN/WAN LAN
server number low (10~20) high high
server gateway load balancer own router own router

NAT 経由のバーチャルサーバー

NAT 経由のバーチャルサーバーの長所は、TCP/IPをサポートしているOSならばリアルサーバーとして使うことができ、リアルサーバーにはグローバルではなくプライベートアドレスを使え、ロードバランサーだけにグローバルなIPを振ればよい。

短所としては NAT を経由したバーチャルサーバーの拡張性が限られていることだ。ロードバランサーはサーバーノードの数が20かそれ以上になると、システム全体として性能が悪くなる。なぜならば、リクエスト要求、レスポンス要求の両方がロードバランサーによってパケットを書き換えているからである。TCPの平均パケット長が536バイトを超えたと仮定すると、パケットを書き換える平均遅延が60us(Pentium プロセッサーの場合、これはもっといいCPUを使えばもうちょっと減る)で、ロードバランサーの最大スループットが 8.93 MBytes/s になる。リアルサーバーの平均スループットを 400Kbytes/s と仮定すると、ロードバランサーは22個のリアルサーバーをスケジューリングできる。

NAT を経由したバーチャルサーバーはたくさんのサーバーリクエストの要求を満たす。システム全体においてロードバランサーがボトルネックになった時も、2つの解決法があり、1つはハイブリッドアプローチでもう1つはIPトンネルを経由したバーチャルサーバー 又は ダイレクトルーティングを経由したバーチャルサーバーです。 ハイブリッドアプローチなDNSでは自分のクラスタリングサーバーをもったたくさんのロードバランサーがあり、ロードバランサーはラウンドロビンDNSによって1つのドメインネームでグループ分けされる。あなたは良い拡張性のためにバーチャルサーバートンネリングやバーチャルサーバールーティングや縮小したロードバランサーも試すことができ、初期段階ではトンネリングを経由したバーチャルサーバーかダイレクトルーティングを経由したバーチャルサーバーのロードバランサー、第二段階では自分自身のクラスターサーバーを持つNATを経由したたくさんのバーチャルサーバーを作ってみなさい。

IPトンネリングを経由したバーチャルサーバー

NATを経由したバーチャルサーバーでは、接続要求、応答のためのすべてのパケットがロードバランサーを通過しなければならない。これはサーバーのノード数が20やそれ以上になった時、新たなボトルネックになってしまった。なぜなら、ネットワークインタフェースのスループットは限られているからだ。接続要求パケットは少ないが接続応答パケットはものすごい大きなデータになる多くのインターネットサービスからもこのことがわかる。例えばWEBとか

IPトンネリングを経由したバーチャルサーバーでは、ロードバランサーは単に異なるリアルサーバーへの接続要求をスケジューリングし、リアルサーバーが直接ユーザーに接続応答を返す。だからロードバランサーはものすごい数の接続要求を処理することができ、100以上のリアルサーバーをスケジューリングすることもでき、それはシステムのボトルネックにならない。このようにIPトンネリングを使うことでロードバランサーはサーバーノードの最大値を飛躍的に上げることができた。たとえロードバランサーが100Mbpsの全二重ネットワークアダプタを持っていたとしても、バーチャルサーバーの最大スループットは1Gbpsを超えることができる。

IPトンネリングの機能はハイパフォーマンスなバーチャルサーバーやバーチャルプロキシサーバーを作るのに使われてきた。なぜならば、プロキシサーバーが接続要求を受けた時、IPトンネリングはオブジェクトを取り出してそれを直接ユーザーに返すことでインターネットにアクセスすることができた。 .

すべてのサーバーはIPトンネリング(IPカプセル化)プロトコルを使えると思うが、私はLinuxのみIPトンネリングをテストしてみた。もし、他のOSでIPトンネリングを使ったバーチャルサーバーを構築したなら私に教えてください

ダイレクトルーティングを経由したバーチャルサーバー

トンネリングアプローチのバーチャルサーバーに似ているが、LinuxDirectorはクライアントからサーバーへのダイレクトルーティングを経由したバーチャルサーバーのコネクションの半分を処理し、後の応答パケットは別のネットワークルートを使ってクライアントに返すこともできる。これによりバーチャルサーバーの拡張性が飛躍的に向上する。

IPトンネリングアプローチのバーチャルサーバーと比べると、この方法はトンネルのオーバーヘッドがない。事実、このオーバーヘッドはほとんどの状況において最小だ。 しかし、ロードバランサーのインターフェースがもう一つ必要になり、リアルサーバーのインターフェースも物理的セグメントになるに違いない。


$Id: how.html,v 1.3 2000/04/17 02:27:07 wensong Exp $
Created on: 1998/12/5