· KVM虛擬化集群技術概述
1)什么是虛擬化集群
虛擬機集群最顯著的特征是有共享存儲,因為有了共享存儲,虛擬機就可以實現非常快速的在線遷移,并在虛擬化層配置高可用。筆者在生產環境使用的集群有兩種存儲方式,基于商業存儲和基于開源分布式文件系統。
2)虛擬化集群的高可用和基于應用層高可用的區別
高可用是經常用到的運維技術,在系統、網絡、數據庫、Web業務等各個應用層面都有使用。高可用技術是指至少有主備兩個節點,當主節點故障的時候,迅速切換到備用節點。為了避免備用節點誤判,有時候還有第三個節點,或者主節點和備用節點共同能訪問到的存儲空間,用于做仲裁判斷。應用層面的高可用還有一個特點,就是一般都有浮動IP,當切換發生的時候,IP從主節點漂移到備用節點。應用層面的高可用一般切換時間比較快,從幾毫米到幾秒中,同時應用層面的高可用一般需要專用軟件,比如常用的Keepalived,Heartbeat等。
虛擬化層面的高可用是虛擬機系統層面的高可用,即當一臺計算節點故障的時候,在另外一臺計算節點上自動將故障節點上的虛擬機啟動起來。注意如果虛擬機上的業務不能做到開機自啟動,即使虛擬機自動啟動了,并不能保證業務層面的自動恢復!
另外還有一個問題,就是即使虛擬機啟動起來了,當啟動到一半虛擬機的系統卡住了,也不能及時恢復業務!
虛擬化層的高可用一般業務恢復實際是系統重啟的時間,加上業務開機自啟動的時間,通常是分鐘級別。
雖然虛擬化層高可用有業務不能恢復的風險,業務恢復時間也相對比較長,但是虛擬化層高可用有個非常巨大的優勢,就是不需要在應用層面配置,大大的拓寬了高可用的適用范圍,使原來在應用層難以使用高可用技術的應用,也能做到高可用,尤其是在某些專用的軟件領域。
其實虛擬機層高可用和應用層面高可用并不矛盾,在虛擬機的系統里面,也可以配置應用層面的高可用,做這樣的配置的時候,注意主備節點放置到不同宿主機上!
3)虛擬化集群后端存儲的使用
最早的時候,筆者在生產環境使用的集群都是以機柜為單位的小集群,主要因為筆者一直搭建的是私有云,在IDC機房里面機柜都是要計算費用的,為了充分利用資源,合理節省成本,筆者私有云一個設計思想就是能夠按照機柜,靈活擴展或者伸縮。
后來隨著虛擬化的規模擴大,也進行了一些基于開源分布式文件系統集群的搭建,基于開源分布式文件系統的集群,規模可以更大,擴展性更好,適用于KVM的開源分布式文件系統在第9章、第10章都有詳細的介紹。開源的虛擬化管理平臺,本書第11章、第12章、第13章有詳細介紹,所以本章不再介紹開源分布式文件系統及管理平臺。
|