—賽迪網實例分析
賽迪網(www.ccidnet.com)是一個面向99v行業和用戶的專業性垂直網站,分為賽迪信息網,賽迪商務網和賽迪咨詢網。其中賽迪信息網采用純Linux解決方案,采用的產品主要有Redhat Linux Server、Workstation、Powertools等。主體系統均安裝高可用性易於擴充的集群系統,使用Apahce+Informix+PHP結構。網絡結構示意圖如圖1所示。
Web 服務器
賽迪網的Web服務器使用最流行的Apache。Redhat Linux與Apache的經典組合目前得到了日益廣泛的應用和專家的一致認可。特別在響應和處理請求的速度方面表現卓越。同時在高負載量的評測中也表現出色。由於七成以上的頁面是動態內容,從數據庫中提取數據動態生成,所以前段采用了PHP語言來設計網頁。同時賽迪網的後台發布系統也使用PHP作為開發語言。為了保障網站的不間斷運行,Web服務器使用集群結構,保障了整個網站在高負載下的動態伸縮和良好運轉。
代理服務器
為了提高Web服務器的響應速度和效率,同時出於安全因素的考慮,在整個Web服務器集群的前段是能夠起到加速和保護功能的代理服務器。賽迪網的代理服務器使用目前公認的效率最高,功能也最強大的squid軟件。Redhat自帶的squid好像有一些問題,建議直接去squid的站點下載最穩定版本(http://squid.nlanr.net/squid/)。真正同客戶段打交道的是squid軟件而不是直接和Web服務器通訊,對系統外的用戶來說,真正的Web服務器是不可見的,這在很大的程度上保障了系統的安全性。出於負載均衡和易伸縮性的考慮,squid實際上也采用集群結構,由DNS服務器的查詢輪轉功能實現負載均衡。
集群服務器
什麼是集群服務器呢?
1.集群服務器是用兩個(或更多)的系統(節點)在一起工作,來提供相同服務或實現相同目的。
2.外面看來,整個看起來像一個系統。
3.集群服務器用來提高服務的穩定性和核心網絡服務的性能。
實際上,集群服務器(即Cluster)只是一個比較籠統的概念,大家所熟悉的“並行計算”只是Cluster的一個方面,這方面的主要應用就是用低成本的“低檔”電腦去做super computer的工作。Cluster分為下面幾方面:
1.High-Availability (HA)
2.Load Balance
3.Scientific
1.HA用在不允許中斷服務的場合。實際上是兩台(或更多台)計算機通過一定方式互相監聽,實現熱備份。當其中Primary Server出現問題時,Standby Server能夠自動立即接替工作,使用戶感覺不出停機。在Primary Server恢復正常之後,Standby Server又會把工作還給Primary Server。表1給出了一個可用性級別的劃分。
2.Load Balance應用在Web Server上比較多(盡管它支持很多別的協議如FTP、Telnet、Sendmail等,但用處最多的還是HTTP服務)。用戶訪問一個地址,但實際上後台是有若干台服務器在提供服務。而當服務請求達到飽和時,還可以很容易地再添加新的節點而不用停掉整個Cluster,實現所謂的“熱插拔”,這也就是Cluster中的一個概念—Scalability(易擴展性)。而且,Cluster還會查詢真實節點的情況,當某台真實節點沒有響應時,就不再把任務分配到那裡,直到這台節點恢復正常。
3.Scientific主要用於計算量大的場合,比如圖像處理。由於賽迪網並沒有這方面的應用,所以在此不深入討論。
目前比較新的解決方案是HA Scalability/HA Load Balancing Clusters,采用這種方案的有:Resonate Central Dispatch、F5 BigIP、Cisco LocalDirector、TurboCluster Server、LVS(Piranha, UltraMonkey)。而這些方案中,最具價格優勢的是TurboCluster和LVS。TurboCluster軟件目前約20000元人民幣,而LVS(Linux Virtual Server)則是完全免費的(而它的性能完全可以和上述產品媲美)!賽迪信息網使用的就是Redhat Linux自帶的LVS軟件Piranha。和傳統方式相比較,LVS提供了4種分配方法(Load-balancing Methods)和3種轉發機制(Traffic Forward Mechanism)。在4種分配方法中,我們使用的是比較簡單DNS的輪轉,用戶可以根據自己的調研和分析,使用適合自身網站實際情況的其他方式,比如在路由器上把任務分給多台機器。前一種做法是完全隨機的,它的優點是配置簡單,管理方便,並行服務器可以位於互聯網的任意位置上;第二種做法是固定的,兩者都不會根據當時情況調整分配到真實節點上的任務量。3種轉發機制中塞迪網使用了最常見的也是最容易配置和管理的VS-NAT。這種方式只需要幾個公有IP,真實節點都在內部使用私有IP。而且真實節點可以是任何系統(包括NT),缺點是Router(Switcher)是整個系統的瓶頸,因為所有的數據都會通過Router。一般真實節點數為20台左右時將會有出現瓶頸,但對賽迪網這樣的大型專業網站已經夠用了。由於集群結構良好的伸縮性,在出現瓶頸時可以迅速增加服務器數量而系統的整體結構不必有大的改變。通過集群的應用,充分保障了賽迪網的高負載量,高度穩定性和快速響應速度。見圖2所示。
數據庫服務器
數據庫服務器產品,賽迪網采用的是Informix的動態服務器(IDS)。Informix動態服務器是一種強有力的多線索數據庫服務器,具有超群的可伸縮性、易管理性和高效運行的能力。 Informix動態服務器的基礎,是Informix領先於業界的動態可伸縮體系結構(Dynamic Scalable Architecture,簡稱DSA)。DSA是適用於在整個企業范圍內提供高度並行處理能力的體系結構,不僅適用於桌面系統和部門級系統,而且也適用於數據中心的各類應用。
Informix動態服務器有以下特點:
·動態服務器的高效運行特性,能在較短的時間內處理更多的數據,因此能快速地得到關鍵性業務問題的答案。
·動態服務器的可伸縮性,使客戶很容易根據不同要求擴展和剪裁自己的數據庫,同時又能滿足性能要求並使企業在99v方面已作出的投資得到保護。
·動態服務器的可擴展性,使數據庫能夠管理不斷出現的新的信息類型和新的業務邏輯。因此,客戶可以靈活地按照自己的業務要求調整自己的數據庫,以適應市場的動態變化並對客戶的多種要求主動地和及時地作出回應。
數據庫服務器是網站服務器的核心,在賽迪網不間斷的運行的一年中,我們應用的Informix數據庫經受了嚴峻的考驗,即使在訪問的峰值期間,Informix數據庫也出色地完成了客戶請求,沒有發生任何宕機或死鎖現象。
郵件服務器
賽迪網是使用Qmail來構建自己的郵件系統,這是一種可以完全替代Sendmail-binmail體系的新一代功能強大的UNIX郵件系統。Qmail有以下一些優點:
1. 安全—Qmail將E-mail處理過程分為多個分過程,盡力避免用root用戶 運行。同時Qmail也禁止對特權用戶(root,deamon等)直接發信。
2. 可靠—Qmail的直接投遞保證E-mail在投遞過程中不會丟失。Qmail同時支持新的更可靠的信箱格式Maildir,保證系統在突然崩潰情況下不致破壞整個信箱。
3. 高效—在一台運行於PIII的Linux上, Qmail每天可以輕松地投遞幾十萬封信件而不發生錯誤或異常。由於業務需要,賽迪網每天有極大量的郵件需要投遞,而Qmail出色地完成了這一任務。非常令人滿意。
4. 簡單—Qmail要比其他的Internet E-mail系統小得多。Qmail通過統一的向前機制完成forwarding、alias和maillist等功能,Qmail使用簡單高效隊列來處理投遞。Qmail-smtpd可以由inetd啟動,節省了一定資源。
網站發布系統
賽迪網的網站發布系統,主要使用PHP作為編程語言,純Web界面,編輯通過它與內部的服務器進行交互,當確認無誤時,內部服務器會自動與網站的真實服務器進行同步,保障了數據的正確性。同步軟件我們采用Redhat自帶的rsync軟件。rsync是個出色的鏡像工具,當服務器上的文件被刪除時它能相應地刪除本地文件。
網站的負載及流量監控
網站的負載及流量監控對ICP來說,是非常重要的。通過對這些數據的分析,網站的管理員能夠及時准確地把握網站的運行狀況,根據這些分析結果,管理員可以量身定制網絡結構和最適合的軟硬件產品。同時由於網站的訪問量經常出現峰值現象,並具有一定的不確定性,所以分析和掌握這些數據對網站業務制訂具有相當的參考價值。Linux同許多UNIX一樣,提供了很多小巧的工具用於網站負載和流量監控,諸如top、netstat等。賽迪網使用的是另一個出色的工具—ntop。
ntop是用於顯示網絡和系統使用情況的軟件,並和現在流行的UNIX 的命令相似。ntop 以libpcap 為基礎,用一種緊湊的方式寫成。ntop 實際上是一個具有包嗅探器功能的軟件,它提供了強大並具有相當靈活性的界面,同時具有top軟件的功能。由於ntop 在功能性上發展極快,已經不能將其簡單地看成是網絡掃描器。表2是它的使用界面之一。
安全因素的考慮
網絡安全和系統安全是一個非常重要的課題,特別對網站來說,如何保護系統和數據不受非法入侵者的破壞是最需要考慮的因素之一。很小的失誤可能造成致命的後果。基本上你運行的服務後台越多,你就可能存在的安全漏洞也越多。很多人認為開放源碼的操作系統具有更大的安全隱患,我們認為恰恰相反。如果配置得恰當的話,Linux本身是非常安全可靠的。實際上,如果在Linux系統中有某個安全缺陷,由於Linux的源碼是開放的,有成千上萬的志願者會立刻發現並修補它。
賽迪網在網絡安全方面做了大量的工作,除了制訂嚴格的管理制度,並請專業網絡安全公司協助防護外,還利用Linux的特性和基於Linux的各種安全產品對賽迪網的安全進行了強化。
在網絡方面,我們使用華安公司為賽迪網量身定做的Linux入侵監測系統(LIDS),它能夠對網絡數據進行一定程度上的分析,及時發現可疑的攻擊行為並通知網絡管理員。在很大的程度上降低了系統被破壞的風險,防患於未然。
在系統方面,Linux缺省的安全等級是0,通過修改內核源碼linux/kerne
賽迪網在網絡安全方面做了大量的工作,除了制訂嚴格的管理制度,並請專業網絡安全公司協助防護外,還利用Linux的特性和基於Linux的各種安全產品對賽迪網的安全進行了強化。
在網絡方面,我們使用華安公司為賽迪網量身定做的Linux入侵監測系統(LIDS),它能夠對網絡數據進行一定程度上的分析,及時發現可疑的攻擊行為並通知網絡管理員。在很大的程度上降低了系統被破壞的風險,防患於未然。
在系統方面,Linux缺省的安全等級是0,通過修改內核源碼linux/kerne
賽迪網在網絡安全方面做了大量的工作,除了制訂嚴格的管理制度,並請專業網絡安全公司協助防護外,還利用Linux的特性和基於Linux的各種安全產品對賽迪網的安全進行了強化。
在網絡方面,我們使用華安公司為賽迪網量身定做的Linux入侵監測系統(LIDS),它能夠對網絡數據進行一定程度上的分析,及時發現可疑的攻擊行為並通知網絡管理員。在很大的程度上降低了系統被破壞的風險,防患於未然。
在系統方面,Linux缺省的安全等級是0,通過修改內核源碼linux/kerne