KVM虛擬化叢集技術概述

才智咖 人氣:4.6K

一、 虛擬化叢集介紹、設計思路及架構

KVM虛擬化叢集技術概述

使用虛擬化叢集的目標是克服單機虛擬化的侷限性,利用技術手段提高虛擬機器可用性,最終達到業務不中斷或者減少中斷時間,確保業務資料更安全的目標。

1. 虛擬化叢集介紹

1)什麼是虛擬化叢集

虛擬機器叢集最顯著的特徵是有共享儲存,因為有了共享儲存,虛擬機器就可以實現非常快速的線上遷移,並在虛擬化層配置高可用。筆者在生產環境使用的叢集有兩種儲存方式,基於商業儲存和基於開源分散式檔案系統。

2)虛擬化叢集的高可用和基於應用層高可用的區別

高可用是經常用到的運維技術,在系統、網路、資料庫、Web業務等各個應用層面都有使用。高可用技術是指至少有主備兩個節點,當主節點故障的時候,迅速切換到備用節點。為了避免備用節點誤判,有時候還有第三個節點,或者主節點和備用節點共同能訪問到的儲存空間,用於做仲裁判斷。應用層面的高可用還有一個特點,就是一般都有浮動IP,當切換髮生的時候,IP從主節點漂移到備用節點。應用層面的高可用一般切換時間比較快,從幾毫米到幾秒中,同時應用層面的高可用一般需要專用軟體,比如常用的Keepalived,Heartbeat等。

虛擬化層面的高可用是虛擬機器系統層面的高可用,即當一臺計算節點故障的時候,在另外一臺計算節點上自動將故障節點上的虛擬機器啟動起來。注意如果虛擬機器上的業務不能做到開機自啟動,即使虛擬機器自動啟動了,並不能保證業務層面的自動恢復!

另外還有一個問題,就是即使虛擬機器啟動起來了,當啟動到一半虛擬機器的系統卡住了,也不能及時恢復業務!

虛擬化層的高可用一般業務恢復實際是系統重啟的時間,加上業務開機自啟動的時間,通常是分鐘級別。

雖然虛擬化層高可用有業務不能恢復的風險,業務恢復時間也相對比較長,但是虛擬化層高可用有個非常巨大的優勢,就是不需要在應用層面配置,大大的拓寬了高可用的適用範圍,使原來在應用層難以使用高可用技術的應用,也能做到高可用,尤其是在某些專用的軟體領域。

其實虛擬機器層高可用和應用層面高可用並不矛盾,在虛擬機器的系統裡面,也可以配置應用層面的高可用,做這樣的配置的時候,注意主備節點放置到不同宿主機上!

3)虛擬化集群后端儲存的使用

最早的時候,筆者在生產環境使用的叢集都是以機櫃為單位的小叢集,主要因為筆者一直搭建的是私有云,在IDC機房裡面機櫃都是要計算費用的,為了充分利用資源,合理節省成本,筆者私有云一個設計思想就是能夠按照機櫃,靈活擴充套件或者伸縮。

後來隨著虛擬化的規模擴大,也進行了一些基於開源分散式檔案系統叢集的搭建,基於開源分散式檔案系統的叢集,規模可以更大,擴充套件性更好,適用於KVM的開源分散式檔案系統在第9章、第10章都有詳細的介紹。開源的虛擬化管理平臺,本書第11章、第12章、第13章有詳細介紹,所以本章不再介紹開源分散式檔案系統及管理平臺。

2. 使用虛擬化叢集的優勢

虛擬化叢集相對於單機虛擬化,有以下幾點優勢:

q 快速的線上遷移(Live Migration),裝置、系統維護造成的業務計劃內停機時間減少到零。

q 高可用(HA),一臺計算節點故障,上面的虛擬機器可以很快在其他計算節點上啟動執行起來,極大縮短計劃外停機時間。

q 動態資源排程,業務負載發生變化引起計算節點壓力分佈不均勻時,可手動或者自動平衡物理機負載。也可在整體壓力較低的時間段,將虛擬機器集中在部分計算節點上,將不用的計算節點臨時關閉,達到節能的目標。

q 業務快速部署,叢集將資源池化,通過和管理平臺結合,在叢集的容量範圍內,業務部署的速度非常快。

q 資料更安全,後端儲存採用冗餘度更高的商業儲存,或者分散式檔案系統,資料可靠性可以達到99.99%以上。

q 網路速度、可靠性更高,叢集網路採用冗餘架構,網路裝置、網路連線都是雙冗餘,網路速度更高,可靠性也更高,單臺網絡裝置、單根網線、單個網絡卡故障都不會引起網路中斷。

提示:

1)什麼是計劃內停機與計劃外停機

計劃內停機是指可預期可計劃的停機,比如定期的維護,提前通告的維護。計劃外停機是指突發事件引起的停機事件,比如硬體故障,網路DDOS攻擊等。一般計劃內停機因為是提前預知的,會做好預防措施,不會有資料丟失,對業務的損失是比較小的。計劃外停機則因為是突發事件,對業務的損失要大很多。運維的重要職責之一就是通過技術手段減少計劃外和計劃內停機時間,對虛擬化來說,虛擬化叢集能夠做到線上虛擬機器遷移,並且是全冗餘設計,需要計劃內硬體和軟體維護的時候,可以做到計劃內停機時間為零。當宿主機發生緊急硬體故障的時候,虛擬機器可以很快在其他宿主機上開起來,所以虛擬化叢集也能有效降低計劃外停機。

2)線上遷移並不是災備手段

線上遷移實際遷移的是虛擬機器的記憶體,當宿主機發生故障的時候,虛擬機器的記憶體資訊已經丟失了,這時候是不能再去做虛擬機器的線上遷移的。所以線上遷移解決的是有計劃的維護問題,比如要升級宿主機記憶體,可以將宿主機上的虛擬機器線上遷移到其他宿主機上,記憶體升級完成後,在將虛擬機器線上遷移回來。

3. 叢集設計及架構

1)虛擬化叢集設計

為保證虛擬機器的儘量的線上時間,靈活的擴充套件,虛擬化叢集的設計需要滿足以下要求:

q 有共享儲存,虛擬機器能夠線上遷移;

q 通過增加計算節點、儲存、網路裝置可以橫向擴充套件;

q 沒有單點故障,計算節點有多個,商業儲存為雙控制器,分散式檔案系統映象寫多份,網路裝置冗餘;

q 效能滿足要求,並且通過增加裝置,效能可以擴充套件

2)虛擬化叢集的架構

一套虛擬化叢集體系包括以下組成部分:

q 若干計算節點,承載虛擬機器的計算、記憶體、網路資源;

q 管理節點及管理平臺,管理虛擬機器的映象,虛擬機器生成、維護、銷燬的生命週期,虛擬機器的排程;

q 後端儲存,儲存虛擬機器映象存放;

q 網路裝置。

二、虛擬化叢集技術方案

1. 前端計算

虛擬化叢集前端計算節點可以使用普通機架式伺服器,也可以使用刀鋒伺服器。

1)機架式伺服器做為計算節點的優缺點

機架式伺服器做為計算節點的優點是:

q 架構簡單,安裝配置方便;

q 擴充套件節點數量和升級較為容易;

q 成本有一定的優勢。

缺點是:

q 隨著節點數量的增多,佔用的機櫃空間也在增大,單機櫃伺服器密度低;

q 網路結構複雜,每臺伺服器有公網、私網、儲存網;

q 交換機埠數量多,接線容易出錯。

2)刀鋒伺服器做為計算節點的優缺點

使用刀鋒伺服器作為計算節點的優點是:

q 刀鋒伺服器內建交換機,可以靈活的配置網路;

q 刀鋒伺服器連線簡單,佔有交換機埠數量少,網路非常簡潔;

q 單位機櫃伺服器密度大;

q 功耗低;

q 刀鋒伺服器冗餘電源和風扇,冗餘交換模組,是全冗餘的架構。

使用刀鋒伺服器的缺點是:

q 成本較高;

q 配置複雜,安裝配置需要專業的知識;

q 往往需要改造機櫃電源,並受限於機櫃最高電流。

另外目前還有一種多節點伺服器,就是在1U或者2U的空間裡面,能夠容納2到4臺伺服器,這些伺服器很像是刀鋒伺服器,共享電源和機框,但是網路介面獨立。多節點伺服器密度介於機架式伺服器和刀鋒伺服器之間,使用上和機架式伺服器完全一樣。

伺服器的配置選型,根據筆者的經驗,選擇比較高的配置,雖然初期投入高,但是長遠看,因為能夠容納更多的虛擬機器,其實是節省成本的.。宿主機在執行一段時間後,往往會發現記憶體是瓶頸,所以一開始配置的時候,記憶體儘量配置大一些。具體宿主機如何選型在第15章已經有詳細的介紹,本章就不重複介紹了。

3. 後端儲存技術方案

虛擬化叢集的後端儲存可以使用商業儲存和分散式檔案系統,商業儲存有三類:NAS、IP SAN、FC SAN。

1)NAS共享儲存

NAS(NETWORK ATTACHED STORAGE )即網路附加儲存,網路上直接掛接的儲存裝置,相當於一個網路檔案分享伺服器。

測試環境可以用一臺普通的主機模擬NAS,只要這臺主機有自己的磁碟和檔案系統,並且對外提供訪問檔案系統的介面。最常見的NAS有Linux下的NFS和windows下的CIFS。

2)IP SAN共享儲存

SAN(STORAGE AREA NETWORK)即儲存區域網路,主要是基於TCP/IP的網路來實現資料存取,即傳輸介質為IP網路。通過IP網路將計算計算節點和儲存裝置連線起來,計算節點通過傳送Block I/O的請求到儲存裝置,最常見的就是用ISCSI技術,計算節點通過SCSI協議發出讀取資料的請求,並用TCP/IP包封裝SCSI包,就可以再TCP/IP網路中進行傳輸,即SCSI over TCP/IP。

測試環境也可以用普通伺服器模擬ISCSI儲存。

3)FC儲存

FC(Fibre Channel 光纖通道)SAN類似於IP SAN,只是以光纖作為傳輸介質,效能較高,目前使用最廣。計算節點上安裝光纖介面的HBA(Host BusAdapter,提供伺服器內部的I/O通道與儲存系統的I/O通道之間的物理連線)卡,為了冗餘HBA卡一般有兩塊,分別接兩臺光纖交換機,儲存一般有兩個控制器,也分別接兩臺光纖交換機,達到全容易的目標。FC SAN計算節點直接將I/O請求通過FC網路傳送到儲存裝置,效能非常高。

4)生產環境如何選擇儲存型別

在實際部署的生產環境中,選擇儲存型別,取決於以下幾個因素:

q 業務效能及可靠性需求

q 預算

q 運維對技術熟悉程度

一般來說,對效能要求非常高的業務,使用FC SAN儲存,FC SAN儲存也是成本最高的一種方案。如果業務效能需要稍低,可以使用NAS、IP SAN的儲存,NAS、IP SAN的儲存是價效比比較高的方式。如果業務主要是CPU消耗型的,可以考驗使用分散式檔案系統,本書第9章介紹的DRBD、GlusterFS,第10章介紹的CEPH,工作都很穩定,但是效能相對比較低,很適合CPU消耗型的虛擬機器。

關於NFS和ISCSI,業內一直有爭論,NFS配置簡單,但是因為是應用層的協議,有人認為效能低,其實商業儲存做了許多優化,效能也不見得比ISCSI差。如何選擇主要取決於預算、運維的技術習慣、具體的儲存品牌型號,筆者生產環境喜歡使用ISCSI儲存。