Just MyShopへ
Princo.org は Justsystem を応援します
技術関連情報サイト http://wiki.princo.org/ をオープンしました.
dum
logo01 logo02
Linux Tips
TOP > tips > ipvs.html
メニュー

Just MyShopへ
Justsystem
応援します!
border01 border02 border03
border04

LVS(ipvsadm)で作る負荷分散装置(ロードバランサー)

はじめに

アプリケーションサーバの運用で頭を悩ませるのが、 アクセス増加に伴うCPUの高負荷状態です。

1台のLinuxBoxで処理できるプロセス数やメモリー容量は 無制限では無く、ある一定の同時実行処理数を越えた時点で 極端にパフォーマンスが落ちたり、最悪の場合はカーネルが 停止してしまう事もあります。

LVSはこれを回避するために、1つのフロントエンドサーバに来たリクエストを複数の バックエンドサーバーにリクエストを分散させます。

ここで扱う分散方式はNATベースと呼ばれるものに当たります。

LVSについての詳しい内容については、 http://www.linuxvirtualserver.org/ を参照してください。

必要なソフトウェア

  • LVS導入済みのカーネル (Red Hat Linux 7.3, FedoraCore2)
  • ipvsadm

ネットワーク接続概略図

グローバルIPアドレス(eth0:aaa.bbb.ccc.ddd)へのhttpリクエストを NATベース負荷分散により 192.168.100.50-192.168.100.53 の4台に振り分けます。

                 (インターネット)
                        |
              +--------------------+
              |eth0 aaa.bbb.ccc.ddd| ← このルーターに設定を実施する。
              |eth1 192.168.100.254|
              +--------------------+
                        |
     -------------------------------------------------
     |               |               |               |
192.168.100.50  192.168.100.51  192.168.100.52  192.168.100.53

ipvsadm設定

ipvsadm コマンドでパラメータを設定します。

モジュールをロードする

# modprobe ip_vs_rr

フロントエンドのIPとPORTを設定

負荷分散方式を設定する rr は ラウンドロビンを意味する

# ipvsadm -A -t aaa.bbb.ccc.ddd:www -s rr

バックエンドのIPを設定

# ipvsadm -a -t aaa.bbb.ccc.ddd:www -r 192.168.100.50 -m
# ipvsadm -a -t aaa.bbb.ccc.ddd:www -r 192.168.100.51 -m
# ipvsadm -a -t aaa.bbb.ccc.ddd:www -r 192.168.100.52 -m
# ipvsadm -a -t aaa.bbb.ccc.ddd:www -r 192.168.100.53 -m

これでリクエストが均等に4台のwwwサーバーに分散されます。 ただし、cookieなどセッション情報を維持する必要のあるアプリケーションの運用は できません。

dum
border05 dum dum

(c) 2002 Princo.org