【redhat 5.5】linuxサーバ負荷バランスLB Clusterの(LVS)技術実現方案

7677 ワード

【1】LVSプロファイル
LVS(linux virtual server)は、linuxカーネルにおいて実現されるIP層とコンテンツ要求に基づいて配信される負荷バランススケジューリング解決方法とを用いて、トランスポート層で動作する。
【2】LVSの3つのルート方式
1)VVS-NAT
パケットの流れ:CIP-DGW-VIP-DIP-DGW-IP
VSL-NATは構成が一番簡単です。
大量のサーバー(20台)及び大量のデータ更新サービスには適用されません。すべての流量はディストリビュータを経由します。
拡張性が悪い
双方向でパケットのIPとポートを修正します。
2)VSL-DR
パケットの流れ:CIP-DGW-VIP-RIP-DGW-IP
大量のクライアント要求を同時に処理することができ、本当にサーバや頻繁に更新されるサービス(サーバIPはリアルIP)に多く利用される。
拡張性が良い
要求パケットのMACアドレスのみを修正する。
3)VSL-TUN
パケットの流れ:CIP-DGW-VIP-RIP-DGW-IP
放送エリアを夸张することができます。つまり、同じローカルエリアエリアではありません。
拡張性が良い
修正要求のみIPに入る
【3】LVSのスケジューリングアルゴリズム(10種類)
1)循環スケジュール(rr)
2)重み付け循環スケジュール(wrr)
3)最少接続(lc)
4)重み付け最少接続(wlc)(デフォルト)
5)地域ベースの最小接続スケジュール(lblc)
【4】パッケージをインストールする
ミラーをインストールしたClusterフォルダ内にあります。
yum-y install ipvsadmin
【5】ipvsadmin常用命令
ipvsadm-Lnは配布規則と配布状況を調べます。
ipvsadm-Ln-cは接続状態を確認します。
ipvsadm-L-n--rateは現在の接続数を確認します。
ipvsadm-L-n--statsは総接続数を確認します。
ipvsadm-Cクリアルール
【6】LVSの一般的なアーキテクチャ構築と配置
1)VVS-NATルーティング方式の構築と配置
a:ネットワークトポロジ構造
client 8.48.22(CIP)
?
?
|8.48.1
DGW
|4.4.4.4.1
?
|4.4.4.66(VIP)
ディレクター
|10.68.1(DIP)
?
------------------
??
A B C(real http server)(RIP)
10.68.21.10.68.202.10.68.203
b:real http server(ABC)の配置A(10.10.68.201)の配置
ifconfig eth 0 10.68.21/24
route add default gw 10.68.1
echo 10.68.21>/var/www/html/index.
service httpd start B(10.10.68.202)C(10.10.10.68.203)同上配置
c:DGWの構成ifconfig eth 0 8.48.1/24
ifconfig eth 0:0 4.4.1/24
echo 1>/proc/sys/net/ipv 4/ip_forward
d】Director配信器の配置ifconfig eth 0.4.66/24
ifconfig eth 0:0 10.68.1/24
echo 1>/proc/sys/net/ipv 4/ip_forward
route add default gw 4.4.1
ipvsadm-A-t 4.4.66 6:80-s rr
ipvsadm-a-t 2.2.2:80-r 10.68.21-m
ipvsadm-a-t 2.2.2:80-r 10.68.21-m
ipvsadm-a-t 2.2.2:80-r 10.68.21-m
e】Clientエンドテスト
ifconfig eth 0 8.48.22/24
route add default gw 8.48.1
elinks-dumphttp://4.4.64.66
2)VSL-DRルート方式の構築構成
a:ネットワークトポロジ構造
Client 8.48.22
?
?
|8.48.1
DGW
|4.4.4.4.1
?
|4.4.4.66(VIP)
ディレクター
|4.4.4.4.100(DIP)
?
----------------------------
??
A B C(real http server)(RIP)
eth 0:4.4.4.4.21 4.4.22.4.4.203
ロ:0 4.4.4.66 4.66
b:real http server(ABC)の配置
A(4.4.4.21)の配置
ifconfig lo:0 4.4.66/32(VIP)
echo 1>/proc/sys/net/ipv 4/conf/eth 0/arp_ignore
echo 2>/proc/sys/net/ipv 4/conf/eth 0/arp_announce(VIPのarp応答をオフにする)
ifconfig eth 0 4.4.4.21/24
route add default gw 4.4.1
echo 10.68.21>/var/www/html/index.
service httpd start
B(10.68.202)C(10.10.68.203)同上配置
c】DGWの構成
ifconfig eth 0 8.48.1/24
ifconfig eth 0:0 4.4.1/24
echo 1>/proc/sys/net/ipv 4/ip_forward
d)ディレクタの配置
ifconfig eth 0 4.4.4.4.100/24菗(順番が下りと逆にならないので、同じ放送エリアのデータがETh 0から送られることを保証する)
ifconfig eth 0:0 4.66/24
echo 1>/proc/sys/net/ipv 4/ip_forward
route add default gw 4.4.1
ipvsadm-A-t 4.4.66 6:80-s wrr
ipvsadm-a-t 2.2.2:80-r 10.68.21-g-w 10(重み)
ipvsadm-a-t 2.2.2:80-r 10.68.21-g-w 20
ipvsadm-a-t 2.2.2:80-r 10.68.21-g-w 30
e】設定完了Cient端テスト
ifconfig eth 0 8.48.22/24
route add default gw 8.48.1
elinks-dumphttp://4.4.64.66
【7】LVSは、FTPサービスのような多ポートサービスの負荷均衡クラスタを実現する。
1)ネットワークトポロジ構造
Client 8.48.22
?
?
|8.48.1
DGW
|4.4.4.4.1
?
|4.4.4.66(VIP)
ディレクター
|4.4.4.4.100(DIP)
?
----------------------------
??
A B C(real ftp server)(RIP)
eth 0:4.4.4.4.21 4.4.22.4.4.203
ロ:0 4.4.4.66 4.66
2)real ftp server(ABC)の配置
A(4.4.4.21)の配置
ifconfig lo:0 4.4.66/32(VIP)
echo 1>/proc/sys/net/ipv 4/conf/eth 0/arp_ignore
echo 2>/proc/sys/net/ipv 4/conf/eth 0/arp_announce(VIPのarp応答をオフにする)
ifconfig eth 0 4.4.4.21/24
route add default gw 4.4.1
vim/etc/vsftpd/vsftp.com nf
pasv_enable=YES
pasv_min.ポルト=50000
pasv_max_ポータブル=60000
touch/var/ftp/4.4.201
service vsftp start
B(10.68.202)C(10.10.68.203)同上配置
3)DGWの配置
ifconfig eth 0 8.48.1/24
ifconfig eth 0:0 4.4.1/24
echo 1>/proc/sys/net/ipv 4/ip_forward
4)ディレクタの配置
ifconfig eth 0 4.4.4.4.100/24菗(順番が下りと逆にならないので、同じ放送エリアのデータがETh 0から送られることを保証する)
ifconfig eth 0:0 4.66/24
echo 1>/proc/sys/net/ipv 4/ip_forward
route add default gw 4.4.1
ipvsadm-C
iptables-t magle-A PREROUTTING-p-d 4.46--dport 21-j MARK--set mark 2100
iptables-t magle-A PREROUTTING-p-d 4.46--dport 50000:600-j MARK--set mark 2100
ipvsadm-C
ipvsadm-A-f 2100-s lc-p 300(LVS持続的接続300秒:同一client要求は同じreal ftp server)
ipvsadm-a-f 2100-r 4.4.4.21-g
ipvsadm-a-f 2100-r 4.4.4.202-g
ipvsadm-a-f 2100-r 4.4.4.203-g
5)設定完了Cient端テスト
ifconfig eth 0 8.48.22/24
route add default gw 8.48.1
ftp 4.4.66
【8】Pirahaプログラムによって実現される(VSL-DR方式のHTTP LB Cluuster)の高い利用可能性
1:Piraha概要
PirahaはLVSクラスタを監視、配置、管理するためのWEBベースのツールです。これはメンテナンス/etc/syssconfig/ha/lvs.cfクラスタ構成ファイルのデフォルトツールです。
2)ネットワークトポロジ構造
Client 8.48.22
?
?
|8.48.1
DGW--------------
|4.4.4.4.1|
124 124
|4.4.4.66(VIP)124;
Director(主)Director(備)
|4.4.4.4.100(DIP)|4.4.4.200(DIP)
124 124
-------------------------
??
A B C(real http server)(RIP)
eth 0:4.4.4.4.21 4.4.22.4.4.203
ロ:0 4.4.4.66 4.66
3)DGW、Director(主)とreal http serverの配置は同じです。
Director(予備)の配置はDirector(主)と同じです。そしてテストの主な準備は正常に動作します。
4)Director(主)とDirector(備え付け)には、Pirahaソフトをインストールしています。
yum install pirana
5)Director(主)上の配置
a:piraha-passwd铅生成サイト登録パスワード
このプロファイルに依存します。/etc/syssconfig/ha/conf/httpd.com nf
b)/etc/init.d/piraha-gui start〓起動サービス
c:netstat-naltp?grep:3636玣確認サービスの起動が成功しているかどうかを確認する。
d)firefoxhttp://4.4.64.100:3636/piranha/ 登録ページを開く
e】ページヒントに従って設定し、設定が完了したら表示から生成されたプロファイルを終了します。
cat/etc/syssconfig/ha/lvs.cf
serial_no = 20
primary = 4.4.64.100
service = lvs
backup_active = 1
backup = 4.4.64.200
heartbeat = 1
heartbeat_port = 539
keepalive = 3
deadtime = 10
network = direct
debug_level = NONE
monitor_links = 1
syncdaemon = 0
virtual web_lb {
     active = 1
     address = 4.4.64.66 eth0:0
     sorry_server = 127.0.0.1
     vip_nmask = 255.255.255.0
     port = 80
     send = "GET / HTTP/1.0\r
\r
" expect = "HTTP" use_regex = 0 load_monitor = none scheduler = rr protocol = tcp timeout = 2 reentry = 10 quiesce_server = 0 server RSA { address = 4.4.64.201 active = 1 port = 80 weight = 1 } server RSB { address = 4.4.64.202 active = 1 port = 80 weight = 1 } server RSC { address = 4.4.64.203 active = 1 port = 80 weight = 1 } }
f:scp/etc/syssconfig/ha/lvs.cf 4.4.4.4.200:/etc/syssconfig/ha/龚は配置ファイルをDirector(備え付け)にコピーする。
g】DirectorとDirectorのSorryページを配置し、すべてのrealserverが故障した場合、要求はdirectorが提供するsorryページに配信されます。
echo Sorry,please wait…//var/www/html/index.
service httpd start
h)/etc/init.d/pulse start
Director(主)とDirector(備)はこのサービスを開始します。
i)ps aux|grep lvs菗起動のプロセスを確認する。
/usr/sbin/lvsd〓このプロセスはメインディレクト間で心拍を確認し、フロート資源の配置と故障の切り替えを行うために使われます。
/usr/sbin/nany钻このプロセスはrealserverの健康状態をチェックするために使われます。いくつかのrealserverがあります。いくつかのnanyプロセスがあります。
j:両方ともpulseサービスを開始した後、主director(2.2.2.100)にフローティングリソース(VIPとlvs配布戦略)が見られますが、directorにはこれらのリソースが配置されていません。
h)テストを行う
Director(主)が故障したら、自動的にDirector(予備)に切り、Directorが回復したら自動的に切り戻します。
三つのrealserverが故障した後、Sorryページを表示します。