【IT168 專稿】架構規劃和設計好以後(1,2,3,4),就需要選擇服務商,把設備放入idc機房,連接線纜,準備測試,無誤後上線運行。
一、選擇服務商及硬體上架
由於特殊的原因,中國的網絡形成了劃江而治的格局,這導致南北互聯很大的問題,即網通和電信互訪效果極差,要達到南北用戶都能快速的訪問網站,得使用第三方的idc機房。第三方的idc機房有兩種可選,一種是雙線機房,另一種是BGP機房。這兩種機房相比較,BGP效果最佳,但價格最貴,可根據自己的資金預算和性能要求來權衡使用哪一類機房。另外在選定前先測試一下機房的網絡狀況,同時了解其電力供應,空調設施已經伺服器堆放密度,最好觀察一下是否有知名的網站也放置在這裡?
託管上選定以後,就要放置設備,接上電源、網線等線纜進行物理連接,為開機運行做好準備,如果有必要,則需要對交換機作一些設置。原則上是不需設置則不設置,保持簡單化總是對的。
在本方案中,我們採用了簡訊報警的機制,監控伺服器本身並不發送簡訊的能力,因此需要選擇簡訊服務商,購買其服務,然後通過接口程序來實現發送報警簡訊的功能。
二、安裝作業系統及部署相關軟體
除了負載均衡器而外,其他兩層的底層作業系統可以是任何一種類unix環境。理論上,負載均衡器也可以是其他類型的unix,如freebsd,但這些系統都不能linux來得方便,因為lvs已經集成在各個linux的發行版裡了,不需要額外的處理,就可以實現lvs的轉發(主要內核模塊是ip_vs)。本方案以開源為宗旨,並且考慮以節省成本,因此所有伺服器都安裝和運行centos5。
1、負載均衡層的軟體部署
負載均衡層要實現負載均衡、故障隔離、失敗切換(負載均衡器之間failover)這3個功能,需要ipvsadm和keepalived這個兩個工具緊密配合來實現。Ipvsadm是lvs的核心,由它完成負載均衡和包轉發,但它本身沒有故障隔離和失敗切換的機制。在其他人實施的一些項目裡,有採用heartbeat這樣的工具來實現故障隔離和失敗切換。但heartbeat太複雜了-要寫ipvsadm腳本、要寫資源文件、要安裝ldirectord等等。現在我們採用keepalived這個工具,只需要一個配置文件,即可輕鬆實現故障隔離、失敗切換。
Lvs即可在安裝系統是選擇安裝,也可在系統安裝完成後下載ipvsadm源碼進行安裝。當按需求配置好 keepalived以後,運行keepalived 後,將能夠查看到lvs的內核模塊ip_vs已經被加載。
負載均衡器採用DR(直接路由)模式進行包轉發,這種方式可獲得最大的網絡吞吐能力。在DR模式下,負載均衡器與後面的真實伺服器(即本方案中應用伺服器層)使用一個公用的ip地址,稱為vip(virtual ip)。
2、 應用層軟體部署
應用層涉及的軟體比較多,它主要包括apache、php、mysql 客戶端、分布式文件系統客戶端、lvs客戶端等幾個部分。看起來類別比較多,但只要配置好一個伺服器以後,然後複製這個過程即可。這是因為負載均衡伺服器之間存在配置一致性的特點。
安裝步驟:
1、 安裝apache,php,mysql客戶端,並整合apache與php。
2、 安裝分布式文件系統moosefs,接著掛接共享存儲。
3、 編寫lvs客戶端腳本,並賦予執行權限。腳本的內容大致如下:
[root@tj-pp3 conf]# more /usr/local/bin/lvs_real
#!/bin/bash
#description : start realserver
VIP=61.135.22.101
/etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of REALServer"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
stop)
/sbin/ifconfig lo:0 down
echo "close LVS Directorserver"
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
4、 安裝和配置Nagios 遠程執行插件(Nagios Remote Plug Execute)。
5、 複製程序開發人員編寫的程序到apache設定的站點的根文檔目錄,檢查apache語法,無誤後啟動apache。
6、 執行lvs客戶端腳本,運行 ip add檢查其正確性。
7、 啟動NRPE,並測試其正確性。
8、 總體檢查其正確性。
3、資料庫及分布式文件系統部署
資料庫分主從兩個部分,主從資料庫的安裝方法是相同的,只要稍微改一下從伺服器的選項文件,就能實現主從伺服器之間的數據同步。為了更進一步保證數據安全性,可以寫一個腳本,自動執行一個全數據備份。
分布式文件系統moosefs的原數據伺服器和數據存儲伺服器的安裝方法也是相同的,不同的地方在於啟動命令和其關聯的配置文件。存儲伺服器之間的配置(只軟體及配置文件)是相同的,因此只要配置好其中的一個後,把這個配置文件複製到其它伺服器相同的路徑即可。
為了實現nagios的有效監控,需要在資料庫系統和分布式文件系統安裝和配置nrpe。