其實(shí)在許多小公司和小企業(yè)里,尤其是牽涉到電子商務(wù)和電子廣告類的網(wǎng)站,他們的網(wǎng)站也要求作負(fù)載均衡高可用的Linux集群,但由于成本的制約,老板都會(huì)要求系統(tǒng)架構(gòu)師設(shè)計(jì)的方案能夠用最少的錢實(shí)現(xiàn)這個(gè)要求,作為系統(tǒng)架構(gòu)師的我們,應(yīng)該如何實(shí)現(xiàn)這個(gè)要求呢?
首先是機(jī)房的選擇,如果公司有自己的機(jī)房那是最好不過的了;如果沒有自己的機(jī)房,我建議大家放在BGP機(jī)房內(nèi)托管,如果有選擇的話,最好是選擇帶有硬件防火墻的機(jī)房,這樣在安全方面也有保障;另外,我們?nèi)绾芜x擇服務(wù)器呢?在有了負(fù)載均衡高可用的集群環(huán)境后,我們完全可以自己組裝服務(wù)器,這樣在性價(jià)比上也是最高的。像IBM和DELL的品牌服務(wù)器,雖然質(zhì)量有保障,但價(jià)格往往是老板不能夠接受的。當(dāng)然了,一切以穩(wěn)定為前提和原則。
首先是負(fù)載均衡設(shè)備的選擇。我們可以有二種選擇,一種是通過硬件來進(jìn)行進(jìn)行,常見的硬件有比較昂貴的NetScaler、F5、Radware和Array等商用的負(fù)載均衡器,它的優(yōu)點(diǎn)就是有專業(yè)的維護(hù)團(tuán)隊(duì)來對這些服務(wù)進(jìn)行維護(hù)、缺點(diǎn)就是花銷太大,所以對于規(guī)模較小的網(wǎng)絡(luò)服務(wù)來說暫時(shí)還沒有需要使用;另外一種就是類似于LVS/HAProxy、 Nginx的基于Linux的開源免費(fèi)的負(fù)載均衡軟件策略,這些都是通過軟件級別來實(shí)現(xiàn),所以費(fèi)用非常低廉,小公司和小企業(yè)由于費(fèi)用的問題,所以軟件級別的負(fù)載均衡是第一選擇。
至于負(fù)載均衡高可用架構(gòu),我首推是Nginx/HAProxy+Keepalived的架構(gòu),這時(shí)很多朋友就有疑問,說你為什么不選擇基于LVS+Keepalived的集群方案呢?這是因?yàn)槲覀儾渴鸬木W(wǎng)站一般都會(huì)有動(dòng)靜分離、正則分發(fā)的需求,如果我們最前面選用LVS+Keepliaved的架構(gòu),那么我們至少又要在中間加一層二級負(fù)載均衡的機(jī)器,這樣比較耗機(jī)器,無形中也會(huì)增加整個(gè)網(wǎng)站的成本;另外,很多朋友都比較擔(dān)心的一個(gè)問題,說Nginx/HAProxy+Keepalived的穩(wěn)定性不如LVS+Keepalived,這個(gè)其實(shí)是誤解;我們通過十幾個(gè)項(xiàng)目的成功實(shí)施,再加上幾年的觀察期,發(fā)現(xiàn)這些軟件級別的負(fù)載均衡器的穩(wěn)定性確實(shí)很好,在高并發(fā)的情況下宕機(jī)的可能性微乎其微,而近段時(shí)間實(shí)施的一個(gè)商業(yè)網(wǎng)站,用的是HAProxy+Keepalived,在億/日高并發(fā)流量的沖擊下,HAProxy穩(wěn)如磐石。LVS在性能方面是最好的,尤其是后面的節(jié)點(diǎn)(如Web或MySQL數(shù)據(jù)庫服務(wù)器)超過10臺(tái)時(shí),它的性能是最優(yōu)異的。而小公司的并發(fā)和流量一般不是特別大,大概一天持續(xù)在100萬/日之間,所以我這里也向大家推薦Nginx/HAProxy+Keepalived。
如果網(wǎng)站是放在IDC機(jī)房托管,而機(jī)房最前面也沒有硬件防火墻防護(hù)時(shí),這時(shí)候大家盡量做好流量監(jiān)控的工作,我一般會(huì)在主Nginx/HAProxy上安裝MRTG+NlOAd軟件來對流量進(jìn)行監(jiān)控,Nload可以對流量進(jìn)行即時(shí)監(jiān)控,它的安裝也是很簡單的,我們先安裝好RPMForege。RPMforge是Centos系統(tǒng)下的軟件倉庫,擁用4000多種的軟件包,被Centos社區(qū)認(rèn)為是最安全也是最穩(wěn)定的一個(gè)軟件倉庫,地址為http://pkgs.repoforge.org/rmpforge-release。這個(gè)安裝成功以后,我們可以通過命令yum -y install nload很輕松的安裝nload。輸入此命令后,nload軟件會(huì)很直觀的顯示流量的即時(shí)狀態(tài),上半部分ncoming是進(jìn)入網(wǎng)卡的流量,下半部分Outgoing是從這塊網(wǎng)卡出去的流量,每部分都有當(dāng)前流量(Curr)、平均流量(Avg)、最小流量(Min)、最大流量(Max)、總流量(Ttl)。由于此軟件比較直觀,我用它來取代之前的即時(shí)流量監(jiān)控軟件iptraf,Nload的工作界面如下所示:
許多對集群感興趣的朋友經(jīng)常問我,如果網(wǎng)站要部署負(fù)載均衡高可用的Linux集群方案,而公司又想用最節(jié)省成本的方式來實(shí)施的話,一般需要幾臺(tái)服務(wù)器呢?我的回答是四臺(tái),即2+2架構(gòu),最前面是二臺(tái)Nginx/HAProxy+Keeplaived機(jī)器,后面是二臺(tái)配置比較好的Web機(jī)器,MySQL數(shù)據(jù)庫采用一主一從的方式,分別放在二臺(tái)Web機(jī)器上,監(jiān)控的Nagios部署在從Nginx/HAProxy機(jī)器上,流量監(jiān)控我一般放主Nginx/HAProxy,軟件采用的是MRTG+Nload的方式,服務(wù)器之間的數(shù)據(jù)同步我采用的是rsync+inotify的方法,當(dāng)然更多時(shí)候,我采用的是純r(jià)sync方式,這樣是避免網(wǎng)站有大文件發(fā)生改動(dòng)的時(shí)候會(huì)產(chǎn)生頻繁讀盤的麻煩;當(dāng)然了,如果大家的公司對文件服務(wù)器有更高要求的時(shí)候(比如圖片類型的),我們可以考慮再增加二臺(tái)服務(wù)器,做成DRBD+Heartbeat+NFS的方式;如果有海量文件需要存儲(chǔ)的話,我們可以考慮用MFS,當(dāng)然這樣也是比較耗機(jī)器的。
像類似以上的小公司集群架構(gòu)里,我們是如何解決session同步的問題呢?我們可以采用Nginx的ip_hash和HAProxy的balance source機(jī)制,它們的原理比較類似,都會(huì)讓某一客戶機(jī)在相當(dāng)長的一段時(shí)間內(nèi)只訪問固定的后端的某臺(tái)真實(shí)的Web服務(wù)器,這樣會(huì)話就會(huì)得以保持,我們在網(wǎng)站頁面進(jìn)行l(wèi)ogin的時(shí)候,就不會(huì)在二臺(tái)Web服務(wù)器之間跳來跳去了,自然也不會(huì)出現(xiàn)登陸一次后網(wǎng)站又提醒你沒有登陸,需要重新登陸的情況。
另外,小公司的Web服務(wù)器我們至少有二種選擇:一種是Apache,另一種是Nginx,在流量和并發(fā)不大的環(huán)境下,我們完全可以選擇Apache作為我們的Web服務(wù)器,雖然它的抗并發(fā)能力不高,但它的穩(wěn)定性是最好的,我的許多電子商務(wù)網(wǎng)站都是基于Apache;而大流量大并發(fā)的環(huán)境,我比較傾向于Nginx。
MySQL在這里我用的就是一主一從的設(shè)計(jì),雖然很多朋友覺得這種設(shè)計(jì)比較簡單,但事實(shí)證明,它也最穩(wěn)定的。我的電子商務(wù)網(wǎng)站也是采用這種架構(gòu),幾年下來,從沒有因?yàn)閿?shù)據(jù)庫的故障發(fā)生過丟單現(xiàn)象,網(wǎng)站上線的前期階段,我們可以通過PHP程序,把后臺(tái)的查詢功能的入口選擇Slave機(jī)器,這樣可以大大減少主數(shù)據(jù)庫的壓力;另外,從MySQL機(jī)器并非僅僅只起一個(gè)備份和備機(jī)的作用,我們完全通過PHP程序?qū)⒑笈_(tái)的復(fù)雜查詢轉(zhuǎn)到從MySQL機(jī)器上。當(dāng)然了,MySQL的主從復(fù)制狀態(tài)監(jiān)控也是非常重要的,我一般是通過Nagios和SHELL腳本雙監(jiān)控的方式。
如何能幫企業(yè)節(jié)約和省錢,這其實(shí)也是系統(tǒng)管理員/架構(gòu)師的一項(xiàng)工作職責(zé),希望大家在工作中能領(lǐng)悟到這點(diǎn)。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:小公司如何部署實(shí)施Linux集群網(wǎng)站
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1083946710.html