叢集(Cluster)通俗來說,是將多個系統連結,使多台伺服器能像一台機器那樣工作、或看起來像一台機器。採用叢集通常為提升系統穩定性、網路中心資料處理與服務能力。
隨著電子商務網站聲量增長,點擊率與負載飆升。面臨兩種選擇:
1. 升級單一伺服器(更快 CPU、更多記憶體),但請求持續增長會再次過載,陷入升級怪圈,且升級時服務如何持續是難題。
2. 增加伺服器,讓多台共同完成相同服務——這就是伺服器叢集。
簡言之,叢集是一組獨立伺服器在網路中表現為單一系統,以單一模式管理,為用戶端提供高可靠服務。叢集包含多台共享資料儲存空間的伺服器,透過內部 LAN 通訊;單節點故障時,應用由其他節點自動接管。多數情況下叢集擁有共同名稱,任一節點均可被所有網路用戶使用。
目前兩種主流:
1. 備份伺服器連接主伺服器,主機故障時備機接管所有任務。
2. 多台伺服器連接,共同分擔應用與資料庫運算,改善關鍵大型應用回應時間,同時承擔容錯任務,故障時隔離並重新負載分配。
PC 伺服器常見雙節點叢集,UNIX 支援 8 節點,康柏 OpenVMS 專用系統支援高達 96 節點。
叢集中所有電腦擁有共同名稱,內部任一系統服務可被所有網路用戶使用。叢集必須協調管理各分離元件錯誤,並能透明加入元件。用戶公共資料置於共享磁碟櫃,應用程式安裝於所有伺服器。正常運行時應用僅在一台伺服器執行,唯有該伺服器能操作共享磁碟上的資料區;其他節點監控主節點,一旦應用停止(硬體損壞、OS 當機、應用故障、人為誤操作),其他節點接管應用與資料區,過程分三階段:系統接管、載入應用、用戶端重連。
應用僅在單節點運行,故障時需經偵測確認、備機重啟應用、接管共享資料區三步驟,切換需耗費時間。原則上應用越大,切換時間越長。