基本需求:
1、 高可用性:將停止服務(wù)時間降低到最低甚至是不間斷服務(wù)
2、 可擴(kuò)展性:隨著訪問的增加,系統(tǒng)具備良好的伸縮能力
3、 可視性:系統(tǒng)、服務(wù)的狀態(tài)處于一個實(shí)時的監(jiān)控之下
4、 高性能高可靠性:經(jīng)過優(yōu)化的體系結(jié)構(gòu)及合理的備份策略
5、 安全性:結(jié)構(gòu)上的安全及主機(jī)的安全策略
基本思路
1、對于訪問頻繁,用戶量大的對象(bbs,blog)采用某種合理的方式負(fù)載到多個服務(wù)器上。把數(shù)據(jù)庫獨(dú)立出來,準(zhǔn)備2套mysql數(shù)據(jù)庫,以實(shí)現(xiàn)主從復(fù)制,即減輕負(fù)載,又提高了可靠性。更近一步,使用mysql proxy技術(shù),實(shí)現(xiàn)主從服務(wù)器的讀寫分離,大大提高這個系統(tǒng)的性能和負(fù)載能力。
2、數(shù)據(jù)庫與外部網(wǎng)絡(luò)隔離,只允許web服務(wù)器(bbs,blog等)通過私有地址方式訪問。這樣就提高了數(shù)據(jù)庫的安全性,同時也節(jié)省了寶貴的帶寬。
3、部署監(jiān)控系統(tǒng),通過監(jiān)控主機(jī)存活、服務(wù)、主機(jī)資源,實(shí)時把系統(tǒng)的健康狀態(tài)置于可視狀態(tài),對系統(tǒng)的運(yùn)營狀態(tài)心中有數(shù)。
4、備份是想都不用想的事情,使用單獨(dú)的服務(wù)器集中備份,是一個比較不錯的主意。
拓?fù)浣Y(jié)構(gòu)
業(yè)務(wù)邏輯
技術(shù)實(shí)現(xiàn)
1、負(fù)載均衡。2臺同樣配置的linux服務(wù)器,內(nèi)核支持lvs,配置keepalived工具,即可實(shí)現(xiàn)負(fù)載轉(zhuǎn)發(fā)。一旦其后的真實(shí)服務(wù)器出現(xiàn)故障,keepalived會自動把故障機(jī)器從轉(zhuǎn)發(fā)隊(duì)列刪除掉,等到故障修復(fù),它又會自動把真實(shí)服務(wù)器的地址加入轉(zhuǎn)發(fā)列表。由于lvs支持會話保持,因此對于bbs 這樣的應(yīng)用,一點(diǎn)也不用擔(dān)心其登錄丟失。
2、mysql主從復(fù)制。即保證數(shù)據(jù)的安全,又提高了訪問性能。我們在前端的每個web服務(wù)器上加入mysql proxy這個工具,即可期待實(shí)現(xiàn)讀寫的自動分離,讓寫的操作發(fā)生在主數(shù)據(jù)庫,讓查詢這類讀操作發(fā)生在從數(shù)據(jù)庫。
3、nagios是一個開源的,受廣泛歡迎的監(jiān)控平臺。它可對主機(jī)的存活、系統(tǒng)資源(磁盤空間、負(fù)載等)、網(wǎng)絡(luò)服務(wù)進(jìn)行實(shí)時監(jiān)控。一旦探測到故障,將自動發(fā)送郵件(短信)通知故障。
4、備份。包括web數(shù)據(jù)和數(shù)據(jù)庫服務(wù)器的備份。對于web服務(wù)而言,GNU tar即可實(shí)現(xiàn)備份的一切愿望。簡單的設(shè)置一下crontab 就可以讓系統(tǒng)在我們做夢的時刻老老實(shí)實(shí)的幫我們備份了。但是,由于空間的限制,不可能一直備份下去,所以要做一個合適的策略,以不斷的用新的備份去替換陳舊的備份數(shù)據(jù);多少天合適?看磁盤容量吧。對于數(shù)據(jù)庫,先mysqldump一下,再tar.完成這些工作后把備份文件傳輸?shù)絺浞莘?wù)器集中。一個比較省事的方法是把備份服務(wù)器以NFS方式掛接到web服務(wù)器及數(shù)據(jù)庫服務(wù)器。
5、web服務(wù)器。至少包括apache和mysql proxy這兩個組件。Apache做bbs和blog的容器,以虛擬機(jī)方式把用戶的請求轉(zhuǎn)發(fā)到bbs目錄或blog目錄。
6、安全措施。包含兩層安全,一層是主機(jī)本身,另一層是結(jié)構(gòu)(mysql從外部網(wǎng)絡(luò)隔離)。實(shí)踐證明,iptables是一個非常值得信賴的防火墻工具。在實(shí)際應(yīng)用中,采取先關(guān)門后開窗的策略,大大增強(qiáng)系統(tǒng)的安全性。
組件
一、 硬件: 負(fù)載均衡2臺(dell 1950),web服務(wù)器2-3臺(dell1950),數(shù)據(jù)庫2臺(dell 2950),存儲NAS(5T格式化后容量),備份4u服務(wù)器(帶磁盤陣列5T容量),監(jiān)控服務(wù)器1臺(dell1850).
二、 軟件:操作系統(tǒng)centos 5(定制安裝),負(fù)載均衡ipvsadm、keepalived,監(jiān)控nagios,web服務(wù)apache+php等,數(shù)據(jù)庫mysql,數(shù)據(jù)庫代理mysql proxy.
進(jìn)度安排
1、 lvs負(fù)載均衡配置及測試:2-3天
2、 web服務(wù)器配置:2-3天
3、 mysql主從服務(wù)器配置:1-3天
4、 web數(shù)據(jù)遷移:1天
5、 數(shù)據(jù)庫數(shù)據(jù)遷移:2天
6、 上線測試:1-2天
7、 正式上線:2天