FusionComputer 集群介紹
1、為什么要做集群
保證業務的高可用和連續性。
2、主機內存復用
做集群時,會讓我們選擇一些配置。這里我們會看到讓我們選擇是否開啟主機內存復用。那么內存復用是什么意思呢?

如下圖所示。假如我們有一台64G內存的主機。在創建虛擬機時分別分出去了16G、32G、16G,這時候所有64G內存已經都分出去了,按道理來說主機已經沒有內存在分給別的虛擬機了。但是其實這3台虛擬機不可能真的用了這么多內存,他們3個加起來的實際內存可能只用了20G,利用率是很低的。所有如果開了主機內存復用,我們就依然可以繼續創建虛擬機。這就是內存復用,內存復用可以避免造成資源浪費。 華為的官方文檔描述的最大利復用率可以達到150%,超過這個值就會告警。但是在實際應用中,復用率最多可達120%。 (需要注意的是內存復用是針對單台主機的,不是指集群)

3、虛擬機啟動策略
負載均衡:當一台虛擬機啟動時,會根據主機的資源使用率自動選擇宿主機。例如,一台虛擬機要啟動,vrm會查看現在的主機使用情況,如果CNA03上的資源已經特別緊張了,而CNA01很空閑,那么這台虛擬機就會在CNA01上啟動。
自動分配:即輪詢策略。虛擬機啟動時,按照順序依次在主機上啟動。比如上一台虛擬機是在CNA01上啟動的,那么下一台就要在CNA02上啟動。
4、NUMA結構自動調整
UMA: uniform memory access. 一致性內存訪問。我們的計算機由三部分組成,cpu、內存和disk。計算機里還有兩塊芯片,一個是南橋芯片,用來處理慢設備,例如磁盤、USB等,北橋芯片用來處理快設備,例如內存等。CPU作為計算機的核心,它的運行速度是最快的,內存次之,磁盤是最慢的。當我們的CPU需要訪問磁盤中的數據時,CPU是不會直接訪問磁盤中的數據的,因為太慢了,他會通過內存來調用磁盤中的數據。所以我們的CPU會頻繁訪問內存中的數據,而內存和cpu之間的訪問鏈接是通過FSB(前端總線)實現的。FSB受帶寬限制,帶寬越高,那么數據傳輸速率越快。
這里之所以說是一致性內存訪問,是因為假如這里有兩個內存條(甚至多個),CPU是可以訪問每一個內存的,所有的CPU所訪問的內存數據都是全局一致的。這就是一致性內存訪問(UMA)。

NUMA:non uniform memory access。非一致性內存訪問。隨着計算機技術的不斷發展,計算機配置不斷升高,多CPU多內存已經是一種很常見的現象。如下圖所示,如果這里有3個CPU,每個CPU都可以訪問所有內存,這里就會存在一個問題,CPU很多可以內存很多可以,但是由於FSB帶寬的限制,數據傳輸速率會很受影響。這就好比路上的車增加了很多,但是依然還是4車道,這就造成了堵塞的現象。

NUMA架構可以解決這個問題。在NAMA架構中,如下圖所示,一個CPU綁定一個內存,形成一個NUMA節點,一般情況下,CPU只能訪問自己綁定內存中的數據,不可以訪問別的內存數據,這就是非一致性內存訪問。但是如果內存確實不夠用了怎么辦呢?那么這個CPU可以通過別的CPU來訪問別的內存,這種方式也稱為遠程訪問。當然一個NUMA節點中,CPU對內存的訪問我們稱為本地訪問。顯然本地訪問的速度要遠遠大於遠程訪問。

下圖可以更加直觀的體現出UMA和NUMA的區別。

5、IMC模式
IMC:Incompatable migration cluster. 不兼容遷移集群。它的作用主要是:假設我們的集群中總共有3台主機,但是每台的CPU型號不一樣,比如分別是inter1,intel3,initel5,這時候雖然我們做了集群高可用策略,但是主機1上的虛擬機是不會往主機2,3上遷移的,因為他們的CPU型號不一樣。此時如果打開了IMC模式,那么就可以解決這個問題。這就是IMC模式的作用。
