背景
隨著互聯網訪問量的急劇增加,單臺服務器的能力已嚴重不能滿足需求。則需要從兩個方面考慮提高服務能力:1、向上擴展,2、向外擴展
向上擴展的缺點:
1、造價高
2、隨著性能的提高,會在某個臨界點遇到瓶頸,導致性能隨后降低。
向外擴展的優點:
1、造價低
2、提供高并發能力和高可用性
3、可擴展性好。
分類
負載均衡集群(Load Balance)
高可用集群(High Availability Cluster)
高性能集群(High performance computing)
負載均衡集群:由于電信運行商dns的原因,所以不能靠dns來做負載均衡,必須通過前端調度器將請求分發至后端的服務器,以提高并發訪問量。但隨著訪問量的提高,調度器和存儲等的限制,訪問速度會成為瓶頸,所以需對網站進行功能切分,分別做集群,例如門戶網站的分類。為了保證后端服務器提供的內容一致性,網頁的靜態內容使用rsync+inotify的機制做同步。一個web頁面包含多個web對象,而目前的瀏覽器都支持多線程,所以來自客戶端的請求,可能并發多個請求,調度器分發至多個后端服務器,可以提高網頁的打開速度。而調度器具有health check的能力,能將掛了的主機移除,也能將恢復的主機加進集群。
優點:提高并發處理能力
高可用集群:可以提高服務的在線能力、服務可用性。例如有兩臺主機提供web服務,A作為正常提供服務的主機,B作為備用的主機,A不斷地將自己的心跳信息用組播的方式傳遞給B,而B也能去檢查A的心跳信息。當B不能得到A的心跳后,則會通過電源交換機關閉A的電源,并將A的ip地址奪過來,啟動A之前提供的服務,以提高服務的在線能力。若是多臺主機的高可用集群,還可以設置備節點的優先級,來響應主節點掛掉后的動作。
高可用集群傳遞的不只是心跳信息,還有事務信息(優先級等)。而負責協調完成事務的節點叫做DC(節點中的一臺),若DC掛了,則其他主機間推選一個即可。
負載均衡集群和高可用集群的主要區別:
負載均衡集群提供并發處理能力,提供health check
高可用集群提供服務的始終在線能力,提供heartbeat
高性能集群:利用分布式文件系統將復雜問題分解為小問題并行處理。
由于高可用集群的效率不是很高(備份的主機會造成資源浪費),所以需要提高。例如web服務和郵件服務分別在A、B主機啟動,然后它倆互為主備,則可以提高效率。但高可用集群在某一時刻資源只能在一臺主機上啟動。
腦裂:是因為cluster分裂導致的,cluster集群中節點因為處理器忙或者其他原因暫時停止響應時,其他節點可能誤認為該節點“已死”,從而奪取共享磁盤(即資源)的訪問權,此時極有可能假死節點重新對共享文件系統產生讀寫操作,從而導致共享磁盤文件系統損壞。
stonith:爆頭,shoot the other node in the head通過電源交換機切斷檢測不到心跳信息的主機的電源。
隔離:fancing,拒絕某個節點訪問某個資源。分為節點隔離(stonith)和資源隔離。
為了防止集群腦裂,集群節點應該為3或3個以上的奇數個。
其他知識:
DAS:直接附加存儲。內核直接操作塊設備的數據。若不同主機同時訪問同一文件,則會造成寫錯誤。但效率高。
NAS:網絡附加存儲。是文件級別的操作,第一個主機寫數據時會施加鎖,第二個主機就不能寫。性能要比DAS差。
原創文章,作者:黑白子,如若轉載,請注明出處:http://www.www58058.com/9468