一、 現狀
二、 目標
用業界標準的LVS 替換當前的DNS 輪詢.
三、 總體方案
3.1、系統設計
本方案將在5臺服務器上實現具備負載均衡和高可用性的LVS, 使用的轉發模式爲直接路由, 使用的連接分配模式爲源地址哈希(SH). 其中兩臺服務器作爲負載均衡器,以實現高可用性, 另外三臺服務器作爲Real Server 提供 WEB 服務, 以實行負載均衡.
另外還將配置簡單的GUI, 以實現對LVS的簡單監控.
LVS 羣集配置完成後, 需要在我們的DNS 服務器上配置相應的DNS 記錄.
圖3-1
3.2、方案描述
Ø 本方案將在不增加任何硬件設備的條件下進行, 因此將把負載均衡器安裝在兩臺提供其它服務的服務器上.
Ø 爲達到很好的性能我們選用直接路由這種轉發模式
Ø 爲達到切實的負載均衡我們選用最少連接數這種連接分配模式.
Ø 使用成熟的LVS解決方案Ultramonkey(keepalived 也是不錯的選擇).
3.3、負載分析
Ø 負載均衡器的系統負載: CPU 和內存使用量都很低
Ø 負載均衡器的網絡負載: 網絡流量很低
因此負載均衡器可以跟其它服務共用一臺服務器的資源
3.4、冗餘設計
我們選用的這種配置(如圖3-1所示)本身就具備冗餘能力.
3.5、IP 地址分配
功能類別 內網IP地址 公網 IP 地址 IP of lo:0 /VIP
WEB服務器1 192.168.1.1 1.1.1 .6
WEB服務器2 192.168.1.2 1.1.1 .6
WEB服務器3 192.168.1.3 1.1.1 .6
負載均衡器1 192.168.1.4 1.1.1 .4
負載均衡器2 192.168.1.5 1.1.1 .5
3.6、安裝應用軟件時,必須有設備名稱,軟件版本,安裝目錄
設備名稱 軟件 安裝目錄
web-svr-001 arptables-noarp-addr (rpm 包) --
web-svr-002 同上 --
web-svr-003 同上 --
lb-svr-mst heartbeat --
heartbeat-ldirectord --
heartbeat-pils --
heartbeat-stonith --
ipvsadm --
libnet --
perl-Authen-SASL --
perl-Digest-HMAC --
perl-Digest-SHA1 --
perl-IO-Socket-SSL --
perl-ldap --
perl-Mail-IMAPClient --
perl-Net-DNS --
perl-Net-SSLeay --
perl-Parse-RecDescent --
(以上是rpm包)
libart_lgpl /usr/local/libart
rrd-tool /usr/local/rrd-tool
lvs-rrd /var/www/html/lvs-rrd
(以上爲tarball)
lb-svr-slv 同上 同上
四、 實施步驟
4.1施工計劃與時間
計劃安排 |
預計完成時間(分鐘) |
主要負責人 |
獲取跟配置LVS相關的信息 |
30 |
鄒可見 |
配置負載均衡器 |
60 |
鄒可見 |
配置後端WEB 服務器 |
30 |
鄒可見 |
驗證LVS 集羣 |
30 |
鄒可見 |
配置LVS集羣監控工具 |
30 |
鄒可見 |
檢查LVS集羣監控工具的運行狀況 |
15 |
鄒可見 |
修改DNS記錄 |
15 |
鄒可見 |
再次驗證LVS 集羣 |
30 |
鄒可見 |
4.2操作步驟(詳細到命令級別)
預估花費時間 |
預計開始時間-完成時間 |
實際開始時間-完成時間 |
4小時 |
待定 |
|
1) 登錄到將建立集羣的每臺服務器上,執行 uname –n 獲取主機名。
2) 登錄到將作爲負載均衡器的兩臺服務器上,執行LB/script/install.sh 安裝相關軟件包並拷貝配置文件到/etc/ha.d目錄下。
3) 修改其中一臺負載均衡器上的/etc/ha.d 目錄下的配置文件,並將修改後的配置文件拷貝到另外一臺負載均衡器的/etc/ha.d目錄下。
4) 啓動兩臺負載均衡器上的/etc/init.d/heartbeat 服務:/etc/init.d/heartbeat start
5) 查看兩臺負載均衡器上的 /var/log/lvs.log 文件,確認它們工作正常。
6) 登錄到三臺後端WEB服務器上,執行RS/script/install.sh 安裝相關軟件包並進行配置,
將RS/config/mytest.html 文件拷貝到 各臺機的apache 文檔目錄下。
7) 在 Master 負載均衡器上執行 ipvsadm –L –n 確認 LVS 已經將三臺後端WEB服務器加入到 Real Server Pool 中。
8)在兩臺負載均衡器上運行LB/script/install_mon.sh 安裝監控軟件lvs-rrd。
9)修改lvs-rrd 的配置腳本 graph-lvs.sh 和 lvs.rrd.update
10) 修改DNS配置,將[url]www.domain.com[/url]映射到VIP上。
11)在Master 負載均衡器上執行 ipvsadm –L –n 檢查LVS 分發HTTP 請求的情況。
五、應急和回滾方案
5.1.本方案可能會引起的風險,包括極限風險和應變措施
風險:LVS 不穩定導致無法正常訪問[url]www.domain.com[/url]
應變措施:修改DNS 配置,恢復使用DNS 輪詢。
5.2、明確採用應急方案條件
在修改DNS 配置並且配置生效後,如果無法正常訪問[url]www.domain.com[/url],必須立即回滾。
六、測試及驗收
6.1施工人員測試方案
1、操作步驟詳細到命令行級別
查看LVS的連接情況: ipvsadm –L –n
查看LVS的吞吐量情況: ipvsadm –L –n –rate
查看LVS的統計信息: ipvsadm –L –n –stat
如果上述步驟都返回正常信息,則檢查LVS監控頁面是否正常。
在WEB 瀏覽器中打開如下頁面,檢查是否能夠看到LVS集羣中各個服務器的 active connection 和 inactive connection 情況。
2、明確結果正常或異常的條件
如果看到三臺WEB服務器的active connection 大體相同,則表示LVS 正常。
反之,如果三臺WEB服務器的active connection在很長一段時間內都相差懸殊,則需要作調整。
附:附件裏面是排版工整的本文原件,和相關腳本。