lvs-dr 実験セットアップ 2012-04-19
18:00:59
カテゴリ: LINUX
環境:
lvs ディレクター: 10.57.220.198:80 Ubuntu 10.04 LTS vmware 仮想マシン
実サーバー 1 10.57.220.195: 80 tu 11.10 nginxサーバー
リアルサーバー2 10.57。 220.20:80 Ubuntu 11.10 nginx サーバー
仮想 IP (vip): 10.57.220.144
1. ipvsadm をダウンロード
3 台のマシンにそれぞれダウンロード
apt-get install ipvsadm 設定
dpkg-reconfigure ipvsadm
最初のもの いいえを選択してください(ブート時に ipvs ルールを自動的にロードしますか?)
2 番目の選択肢はなしです
3. 設定スクリプト
1) ディレクター スクリプト
lvs-dr.sh
(
ここ) をクリックして折りたたむか開きます
- #!/bin/bash
echo - "1" > /proc/sys/ /ipv4/ip_forward
- IPVSADM
=
- '/sbin/ipvsadm'
- VIP
= 10- .57.220 .1 44
- RS1
= 10- .57.220.20
- RS2
= 10- .57.220.195
- ifconfig eth0
: 1 $VIP ブロードキャスト $VIP ネットマスク 255- .255.255.255
up
- ルート追加
- host $VIP dev eth0- :1
- $IPVSADM
- C /*Cl Ear 仮想サーバー情報*/-
- $IPVSADM
-
- A -t $VIP:81 -s rr
/*仮想サーバー レコードを作成します。スケジューリング アルゴリズムは rr です。 http://www.it165.net/admin/html/201401/2248.html */
- $IPVSADM
-
- a - t $VIP:81 -r
$RS1:81 -g -w
1 /*仮想サーバーに物理マシンを追加*/
- $IPVSADM
-
- a-t $VIP:81 -r
$RS2:81 -g -w
1 /*仮想サーバーに物理マシンを追加*/
chmod 777 lvs-dr.sh
2) realserver スクリプトすべての realserver に同じlvs-rs.sh
(
ここ
)をクリックして折りたたむか開きます
- #!/bin/bash
- #説明:RealServer
- #書き込み:ハグwww
- #最後モデフィ:2009.1.24
- VIP=10.57.220.144
-
-
/sbin/ifconfig lo:0 $VIP ブロードキャスト $VIP ネットマスク 255.255.255.255
up
-
/sbin/route add -host $VIP dev lo:0
- echo "1"> /proc/ sys/net/ipv4/conf/lo/arp_ignore
/*ターゲット IP アドレスが訪問ネットワーク インターフェイスのローカル アドレスである ARP クエリ リクエストにのみ応答します*/
- echo "2">/proc/sys/ net /ipv4/conf/lo/arp_announce
/*クエリ ターゲットに最も適切なローカル アドレスを使用します。このモードでは、この IP パケットの送信元アドレスは無視され、そのアドレスと通信できるローカル アドレスの選択が試行されます。サブネット内のすべてのネットワーク インターフェイス 送信アクセス サブネット内のターゲット IP アドレスのローカル アドレス 適切なアドレスが見つからない場合は、現在の送信ネットワーク インターフェイスまたは ARP 応答を受信する可能性のある他のネットワーク インターフェイスが送信用に選択されます*。 /
- echo "1" >/proc/sys/net/ipv4/conf/all /arp_ignore
-
- エコー「2」>/proc/sys/net/ipv4/conf/all/arp_announce
- sysctl- p
- #end
chmod 777 lvs-rs.sh
4. 実行とテスト
3 台のマシンでそれぞれ対応するスクリプトを実行します
事前に起動することに注意してください。 nginx サーバー
firfox アクセス 10.57.220.144:81
ipvsadm -ln を使用してステータスを確認できます
5. 問題に注意してください
ファイアウォールはオフにする必要があります。Linux では iptables です
各サーバーのポート一貫性がなければ、機能しません。たとえば、それらはすべてポート 80 ですが、一部はポート 80 にできず、一部はポート 81 にできます。
この場合、VIP と実際の IP は同じネットワーク セグメント内にあります。VIP と実際の IP は異なるネットワーク セグメント内にある場合があります。Zhang 博士の回答 http://zh.linuxvirtualserver.org/node/ を参照してください。 155.ロード スケジューラに必要なのは、ネットワーク ポートを持ち、セグメント化されていないネットワークを介して実サーバーに接続することだけです。実サーバーは、独自のルーターを介してクライアントに応答メッセージを送信できます。
スケジューリング アルゴリズムについては、http://zh.linuxvirtualserver.org/node/2903 を参照してください。
アーキテクチャ リファレンス http://zh.linuxvirtualserver.org/node/28
上記では、さまざまな側面を含む lvs-dr の実験的なセットアップを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。