1. 程式人生 > >【大話存儲II】學習筆記(15章),集群概論

【大話存儲II】學習筆記(15章),集群概論

但是 利用 參與 工作量 mar 容易 mage markdown 節點

隨著應用程序對服務器、存儲系統的系統要求越來越高,單臺設備有時已經無法滿足需求了,此時我們有兩種方法可以解決:

  • 使用性能更高的機器,但是成本以及維護成本非常高,而且不見得適合所有的應用。

  • 多臺設備聯合起來對外提供服務,這就是集群。

主機可以形成集群,存儲設備也可以形成集群。目前中高端存儲設備自身就有雙控制器。

一些NAS設備可以在多臺獨立設備之間形成集群,並實現單一命名空間,即用戶訪問目錄路徑就像訪問一臺機器一樣。屏蔽了後端訪問的過程,實際上,可能是由集群中不同的節點來提供服務的。

集群概述

上面講到了為什麽要用集群,首先用多個節點來代替一個節點完成任務,處理能力可以得到提高,其實還可以獲得高可用性

,即一個節點發生故障,另外的節點可以接替故障節點。

我們可以把集群分為三種:

  • 高可用集群

    在HA集群中,節點分為活動節點和備份節點,當活動節點故障了以後,備份節點立即接替任務。

    那怎麽實現切換的呢?HA集群的實現是基於資源切換。資源指的是備份節點要接管的所有東西,比如IP地址、磁盤卷、上下文等。

    那怎麽知道需要主節點掛了呢?需要依靠操作系統上安裝的HA軟件。它可以監控對方節點狀態,一旦發現故障,則強行將資源占有。

  • 負載均衡集群

    負載均衡節點中,所有節點都參與工作。每個節點的地位相同,但是工作量怎麽分配呢?可以有兩種方式:

    • 由單獨的節點來分配運算量

    • 也可以由節點通過網絡通信來協商。

  • 高性能集群

    又稱科學計算集群,其實與負載均衡集群本質上是一樣的 ,不過主要用於科學計算而已,所以這種集群主要面向與CPU消耗型的應用。

    如何把任務平均分配到每個CPU核心上呢?如果在一臺計算機上則非常簡單,操作系統會自動將多個線程平攤到多個CPU核心上

    但是在集群裏面,則可以通過網絡來進行協商。為了方便編程,還開發出很多API,可以屏蔽很多編程復雜度。所以節點收到任務數據之後,再由節點操作系統自行將任務數據分派到多個CPU核心上。

技術分享圖片

系統路徑上的集群各論

集群可以在系統路上的任何點實現。比如CPU、內存、顯卡等硬件可以形成集群,軟件上,應用程序、文件系統、卷管理系統也可以形成集群。

什麽時候需要集群呢?

  • 當需要系統高可用的時候,也就是某處故障不會影響系統的可用,可選擇使用高可用性集群

  • 當單個系統的處理能力不能滿足性能要求的時候,可使用負載均衡集群

  • 當需要運算的數據量很大的時候,運算周期很長的時候,可使用高性能集群。

下面我們一一談一下硬件層面和軟件層面的集群。

硬件層面的集群

技術分享圖片

  • CPU集群:體現在多CPU的計算機系統,比如對稱多處理系統,多個CPU共享物理內存相互協作。

  • 內存集群:多條內存組成更大的容量空間。比如通過雙通道提高性能(相當於條帶化RAID0)

  • 以太網卡集群:將多塊以太網卡綁定在一起,向上提供虛擬網卡,底層則可以通過ARP輪詢負載均衡,或者HA方式的多路徑訪問。

  • 以太網集群:多臺設備協作轉發,實現了負載均衡和HA,體現在路由器和以太網交換機上。

  • 顯卡集群:將插在總線上的多塊顯卡連接起來,實現對大型3D數據渲染負載均衡,性能可以得到很大的提升。

  • FC卡的集群:通過與主機上的多路徑軟件配合,多塊FC卡之間可以實現流量的負載均衡和HA,或者通過FC網絡中的ISL鏈路負載均衡、HA方式實現流量分攤

  • FC網絡設備的集群:一般來說FC網絡設備沒有向以太網交換機那樣實現了負載均衡和HA 。

  • 控制器集群:幾乎中高端磁盤陣列的控制器都是雙控的,可以是HA關系,或者是負載均衡關系。

  • 磁盤集群:典型的集群是RAID系統,

軟件層面的集群

  • 應用程序的集群:一個應用程序可以同時啟動多個實例(進程),共同完成工作 。不同實例可以運行在同一機器上,也可運行在不同的機器上,通過網絡交互信息。

  • 文件系統的集群:文件系統的集群是一個比較獨立的課題。可以實現集群功能的文件系統叫集群文件系統,比如NFS、CIFS等網絡文件系統,就是最簡單的集群文件系統。

    集群文件系統主要為了解決:容量、性能、共享

    • 解決容量問題:比如說分布式文件系統,文件的存儲其實是分散在各個節點上的,但是對外呈現統一的命名空間,也即目錄

    也就是說分布式文件系統將每個節點的可用空間進行虛擬的整合,形成虛擬目錄,對外屏蔽細節,對外根據多種策略來判斷數據流向,將數據寫入實際的空間裏面。

    • 解決性能問題。

    同樣的,可以使用多個節點來獲得高性能。集群文件系統使得每個節點不必連接昂貴的磁盤陣列,就可以獲得較高的文件IO性能。

    在分布式文件系統的虛擬整合目錄之上,采用了類似條帶RAID 0的方式,依據負載均衡策略,將每次IO寫入的數據,負載分擔到所有節點上,節點獲得的性能越多提升就越大。

    但是實際上,集群文件系統實施起來不那麽容易,需要經過長時間的調優。

    • 解決共享訪問的問題。

    這是集群文件系統要解決的最重要的問題,也就是多節點共同訪問相同目錄和相同文件時一致性的問題。

    集群文件系統需要考慮多個節點同時讀寫相同文件,保證所有節點都能讀到一致性的數據,並利用分布式鎖機制保證允許的性能下,節點之間不會寫沖突。

    常用的集群文件系統有PVFS,GFS,DFS,Lustre等
  • 卷管理系統集群

    本機的卷和本機和遠程的卷進行鏡像等協同操作,形成集群。
    技術分享圖片

【大話存儲II】學習筆記(15章),集群概論