■
為了安全、隔離、穩定等諸多因素,傳統的數據中心應用部署模式,即一套應用一臺服務器的部署模式,在電力消耗越來越接近機房最初設計的最大功率、機柜剩余空間越來越捉襟見肘的情況下,傳統的數據中心發展模式遇到了瓶頸。按照以往的思路,解決辦法就是重新鋪設能承載更大功率的電纜、擴建機房、擴容UPS等。但這些都是一筆巨大的投資,而且隨著服務器數量的增多,維護成本和難度也在逐漸增大。因此,必須通過其它技術手段去改變這種現狀。筆者從2007年左右開始接觸虛擬化技術,并把虛擬化技術逐步應用到工作中。這期間,隨著技術的發展,以及業務的需要,采用過好幾種虛擬化產品。 如:Parallels Virotuozzo Container、VMware Server、Windows Hyper-V、VMware vSphere等。虛擬化技術發展到今天,基本上已經很成熟,應用也很廣泛,但筆者還是希望能把自己近年來工作中的一些經驗總結出來,分享給大家,以便剛接觸虛擬化的同仁們能根據自己單位的業務需求,更快的規劃好數據中心的部署方案,減少學習的成本或者少走點彎路。
雖然現在虛擬化技術很成熟,產品也很多,許多人都知道甚至很熟悉,筆者在這里還是把虛擬化技術簡單介紹下,以便剛了解的人能有一個初步的認識。
虛擬化是一個很廣義的術語,與計算機相關的,就有平臺虛擬化、應用虛擬化、網絡虛擬化、存儲虛擬化等等諸多概念,在這里我們說的是相對俠義的虛擬化概念,即在計算機上模擬運行多個操作系統平臺,這些系統平臺彼此在相互獨立的空間內運行而互不影響,從而顯著提高計算機的使用效率。
按照不同的分類方法,可將虛擬化技術分類如下:
全虛擬化:虛擬操作系統與底層硬件完全隔離,由中間的Hypervisor層轉化虛擬客戶操作系統對底層硬件的調用代碼,全虛擬化無需更改客戶端操作系統,兼容性好。常見的產品有Microsoft VirtualServer、Oracle VirtualBox、VMware Workstation等。
半虛擬化:在虛擬客戶操作系統中加入特定的虛擬化指令,通過這些指令可以直接通過Hypervisor層調用硬件資源,免除Hypervisor層轉換指令的性能開銷。半虛擬化常見的產品有Citrix Xen、Microsoft Hyper-V、VMware vSphere等。
硬件輔助虛擬化:在CPU中加入了新的指令集和處理器運行模式,完成虛擬操作系統對硬件資源的直接調用。典型技術有Intel VT、AMD-V。
服務器虛擬化,常見的產品 有 Citrix Xen、Microsoft Hyper-V、VMware vSphere等
桌面虛擬化,常見的產品 有 Citrix Xen Desktop、Microsoft MED-V、VMware View、VMware Horizon等。
應用虛擬化,常見的產品有Citrix Xen App、VMware ThinApp等。
在數據中心,我們常會用到的主要是服務器虛擬化、桌面虛擬化、應用虛擬化三種產品,而在硬件調度方面,基本都采用了硬件輔助虛擬化技術,因此在服務器選型時,一定要選擇支持虛擬化技術的CPU。不過隨著虛擬化技術的發展以及流行趨勢,現在服務器的CPU基本上都是支持虛擬化技術的。
前面筆者已經提到,采用虛擬化技術,主要是為了解決占地、電力消耗接近極限等問題,但也解決了服務器利用率不高、業務上線前期準備時間長、每年不斷有許多新系統上線需求、缺乏災難恢復以及備份測試環境、設備數量過多導致的維護成本高和維護難度大等問題。因此,不論讀者您所在單位的數據中心處于一個什么樣的規模,例如:成百千上千臺,或者只有幾臺;不論是什么應用場景,例如:普通的業務服務、關鍵的應用平臺,還是大數據分析,基本上都可以采用虛擬化技術。對于較大規模的數據中心,采用虛擬化技術,所帶來的益處是顯而易見的,一方面可以大量降低設備數量,減少占地空間、減小電力消耗,另一方面,可以為單位業務的發展所提出的新需求,提供快速的響應。而對于只有幾臺服務器的小規模環境,通過虛擬化技術,也能帶來許多益處,例如:通過虛擬化產品中的高可用特性,可以解決單機承載業務所帶來的單點故障問題,以及傳統備份的恢復測試環境問題等。
因此,我們規劃設計數據中心虛擬化方案時要考慮實現的目標有:
1、降低成本:如降低電力消耗、使數據中心基礎架構部署合理化、使管理員執行的部分任務自動化。關于降低成本這一點,大家需要注意的是,在數據中心向虛擬化轉發的初期,是不會降低成本的,反而可能會有很高的投入,例如:虛擬化軟件產品的采購、能支持虛擬化技術的新硬件設備的采購等。因此,許多人都知道虛擬化能降低成本,但在實施虛擬化時,發現還需要很多的投入,對此就很不理解。采用虛擬化技術,所謂降低成本,主要是指,從長遠的角度來考慮,可以減少數據中心以后在電力、設備、管理等方面的成本,而不是建設初期的成本。
2、實施災難恢復計劃,設定恢復點目標、恢復時間目標,加強生產站點的安全。對于恢復點目標,需要考慮的是能夠接受的數據最大損失量是多少,每日備份適用于24小時的恢復點目標;對于幾小時的恢復點目標,需要使用快照和同步復制;而恢復點目標為0時,就需要建立同步復制模式,實現無數據損失要求。對于恢復時間點目標,需要考慮的是可接受的最大中斷時間,取決于重啟應用并重新投入服務所需的時間。對于4小時或更短的恢復時間目標,必須實施多種輔助性技術,例如:群集、復制、VMware的HA、FT、SRM,存儲虛擬化等。
對災難恢復計劃這方面,必須從單位的實際情況出發,因為,要實現的恢復點目標、恢復時間目標不同,設計的方案就不同,投入也不同,追求越小的數據損失量、越短的中斷時間,所投入也越大。
3、要讓IT系統成為單位增長的引擎,有利于單位的發展。這一點是不言而喻的,如果IT系統只是不斷的投入,而無法促進單位的增長,恐怕以后是很難獲得繼續投入或重視的。因此,技術人員在通過實施數據中心虛擬化后簡化工作的同時,要利用節省下來的時間,基于虛擬化后的數據中心環境,做一些具有創造性的工作,例如做一些數據挖掘分析平臺,輔助領導決策等。
4、可以規劃一些更長遠的目標,例如:部署私有云、為項目團隊提供簡單的IT服務訪問、實施統一的備份、防病毒解決方案等等。
云技術的基礎就是虛擬化,因此當數據中心實現虛擬化后,要向私有云過渡很方便。當實現數據中心虛擬化后,數據中心維護人員,就需要考慮怎么才能更好更便捷的為最終用戶和項目團隊提供IT服務訪問,這也能提升數據中心在單位的重要性。
當我們設定好數據中心虛擬化的目標后,下一步就是制定方案,只有提前做好方案的規劃,才能保證項目完成后能夠達到我們預想的效果。一個好的方案涉及到很多東西,由于篇幅限制,在這里只涉及部分在設計方案時需要考慮的內容。
1、虛擬化產品的成熟度。
2、解決方案的可升級性。
3、售后服務。
4、統一的管理平臺
5、健全的產品生態系統,如:具有遷移工具、提供備份工具或與第三方備份工具的兼容性、與防病毒攻擊工具的兼容等。
虛擬化技術發展到現在,已經涌現了很多產品,而選擇一款好的虛擬化軟件產品,是項目最終能否成功的關鍵。在眾多虛擬化產品中,國外具有代表性的公司有Citrix、Microsoft、VMware等,國內廠商主要有華為、H3C等。國外產品由于在虛擬化技術上已經經營了很多年,所以其技術先進性和成熟度,是不言而喻的。而國內廠商雖然起步較晚,但已緊追其后。國外產品,使用者很多,一般都有很詳細的文檔,而且遇到問題,除了依靠廠商提供的服務,有時也可通過網絡搜索自行解決;而國內產品的文檔要稍欠缺一些,這是國內產品的普遍現象,而且網上的交流區也偏少,所以出現問題基本只能靠廠商解決。國外產品基本上技術都很領先,發展很快,而且硬件兼容性比較廣,產品生態系統很健全,有很多第三方公司提供輔助型的工具,進一步完善虛擬化后的數據中心;而國內產品技術發展較慢一些,但可以根據用戶需求,做一些特殊的小的定制開發,另外,國內廠商目前多推薦一體化解決方案,軟件硬件都打包提供,因此采用后,易被鎖定到一家廠商。
現在主流的虛擬化產品基本都能滿足用戶的需要,所以在選擇一個產品時,需要從單位的實際需求,以及后期發展來進行考慮,國內外產品解決方案各有利弊。
首先,收集現有數據中心的硬件信息。例如:確定哪些硬件設備支持虛擬化,可以被繼續利用,哪些硬件設備需要被淘汰。
其次,搜集現有數據中心各種平臺的設備利用率。例如:CPU平均利用率,內存總利用率、占用的存儲空間大小、各種應用在一定時間內的IO等。
根據上面的現有硬件信息和軟件平臺信息,就可以知道目前數據中心所需的總的計算量、內存使用量、以及數據存儲大小等。然后根據單位每年新業務的增長速度,以及虛擬化后,為了保障硬件發生故障虛擬機在不同硬件之間切換時,所提供的硬件資源保留等諸多因素,確定虛擬化后數據中心的規模。一般而言,數據中心的規模最后都通過類似以下幾方面的數字化來展示,包括:總共需要多少GHz的CPU計算量、多少GB內存、多少GB存儲,以及磁盤總的峰值IOPS、平均IOPS等。通過數字化后,就可以計算出虛擬化后數據中心硬件的需求量,以及采購的硬件標準。
確定出虛擬化后數據中心總體的規模后,就需要確定硬件標準。一般情況下,實施數據中心虛擬化,都會涉及到新硬件設備的采購,因為舊的服務器,最初都是根據滿足一套軟件平臺的性能而采購的,即使能被利用,都需要對其進行繼續升級,例如:內存。而對舊服務器進行升級,其投資收益都不及采購新的服務器,一方面,新的服務器隨著技術發展,性能越來越強大,功耗反而比較低;另一方面,舊服務器,單獨升級部件時,價格都比較高。
下面分別就數據中心虛擬化后所需要的各種硬件,如CPU、內存、存儲、網卡等進行討論。
虛擬化后的數據中心,由于每臺服務器為了提升其使用效率,都會盡可能的承載更多的虛擬機,所以CPU必須滿足最高要求下的計算能力,一般選擇能安裝2路或4路CPU的服務器,而CPU盡量選擇包含大量內核數的、以及更高頻率的型號,當然內核數越大、頻率越高,其價格也越高,最好根據單位實際情況,綜合價格和性能參數,選擇一款性價比較好的CPU。
內存也是確定虛擬化后的數據中心架構規模需要考慮的一個重要要素。需要提前計算好每服務器的平均有效容量以及總內存容量。現在許多虛擬化產品都支持內存超量配置,例如:一臺安裝有64GB內存的物理服務器,一般可以運行16個每個分配了4GB內存的虛擬機,而通過內存超量配置,如內存共享、壓縮等技術手段,就可以運行20個或者更多個分配了4GB內存的虛擬機,超載運行數量視每個虛擬機里的具體業務情況而定。雖然虛擬化產品很多都支持內存超量配置,但還是建議在資金充足時,為每臺服務器盡可能多的配置內存,從而提升物理服務器上所承載虛擬機的性能。確定內存大小的基本原則是每個物理核心4-8GB。例如一臺具有12核心的2路服務器應有96-192GB內存。
服務器盡量配置千兆或萬兆網卡,如果采用千兆網卡,盡可能的配置多個千兆網卡,實現數據流量的負載,以及故障的切換。如果資金充足時,建議采用萬兆網絡,這樣可以提供更高帶寬、更小的延時,以及更好的性能。
關于存儲方面,一般可以采用兩種方式,一種方式是使用共享存儲,就是多臺物理服務器,通過SAN或IP-SAN網絡,連接到一臺統一的存儲;另一種就是利用物理服務器上本身自帶的磁盤,通過存儲虛擬化手段將所有物理服務器上的磁盤虛擬化為一個統一的存儲,供虛擬機使用,當然為了滿足虛擬機對存儲的性能,每臺服務器要配置盡可能多的磁盤,最好有固態硬盤,從而提升存儲的性能。這兩種方式各有優劣,如果采用第一種共享存儲方式,就要仔細的考察共享存儲的各種硬件性能,以及對虛擬化的支持等,例如:存儲的IOPS,是否能夠滿足虛擬化后所有虛擬機的磁盤IO需求。如果采用后一種方案,建議在考察產品時,了解下具體的技術實現細節,除了優勢外,更要了解其存在的不足地方,如:是否會影響以后數據中心規模的擴展,如何配置磁盤,才能滿足虛擬機的性能需求等。
除了上面這些硬件設備,虛擬化后的數據中心,如果要考慮的更為詳細的話,還需要考慮所采用的交換機、防火墻等,例如:交換機是否支持DCB協議族,防火墻是否支持虛擬化等,這里就不詳細介紹了。
根據虛擬化后數據中心的規模,采購并部署好硬件平臺,以及虛擬化軟件產品,然后就逐步將現有的業務平臺,利用P2V遷移工具,將之前直接運行在硬件服務器上的業務系統逐一遷移到虛擬機里。根據實施的經驗,大多數業務系統,通過P2V工具,都能平滑的,連帶操作系統轉化成虛擬機。有時會存在個別業務系統,因為系統或軟件的問題,無法通過P2V工具進行遷移,這時,就只能選擇在虛擬化平臺下重新部署該業務系統,并把舊業務系統的數據通過其它工具遷移過去。
至于各個業務系統的遷移順序,可以自己制定一些標準,并按這標準順序的遷移,例如:可以按照業務系統現在所在服務器的電力消耗,也可以按照硬件的陳舊程度,或者按照業務系統之間的依賴性等等。總之,服務器遷移沒有固定教條的原則,完全可以根據自己單位的情況進行。
由于數據中心虛擬化后,是將原來每個直接運行于硬件服務器上的業務系統,集中運行在幾臺或幾十臺性能更好的服務器上,從而大大提升服務器的利用率。因此,虛擬化后,一臺服務器上將運行多個業務系統,這時就需要關注服務器的CPU、內存、磁盤IO、網絡等關鍵硬件的性能指標,處理硬件的負載,不能將硬件資源耗費較多的業務系統都集中到一塊兒,而應該將硬件資源消耗較多的虛擬機合理的分散到不同主機上,從而使所有服務器都能得到很好的利用,同時也能保證業務系統的性能。現在,許多虛擬化產品都提供了性能監控工具,也有些第三方公司制作的虛擬化平臺性能監控工具,合理使用這些工具,可以幫助您更好的優化您的虛擬化數據中心。
除了監控虛擬化數據中心,根據業務系統需求對其進行調整外,數據中心虛擬化后,一定要注重一個問題,就是虛擬機的蔓延。因為,當數據中心虛擬化后,部署一個系統環境,相當的容易,不再像以前那樣,需要準備硬件服務器、連線、安裝操作系統等一系列繁瑣耗時的步驟,在管理平臺上,可能僅僅通過簡單的點擊,幾分鐘內就能完成以前耗時幾個小時,有時甚至幾天才能完成的工作。所以,虛擬化后,因為部署的簡單,很容易創建一些其實不需要的虛擬機出來,導致虛擬機數量越來越龐大。因此,必須對虛擬機的創建,結合單位的實際環境,提前建立一些規則,不要隨意創建。同時,對于部分長期不再使用的虛擬機,應該清除。
前面,筆者結合自己的工作經驗,對虛擬化的技術做了一些簡要介紹,同時也討論了下實施數據中心虛擬化的目標、方案,以及實施過程。最后,筆者對數據中心虛擬化的各個階段進行簡要介紹。因為任何事情都不是一蹴而就的,都是一個漸進性的過程。結合筆者經驗,以及其他人的案列,數據中心虛擬化基本可以分為三個階段。
在這一階段,基本就是用新一代服務器替換高耗能的舊服務器,使基礎硬件架構合理化,降低數據中心的占用空間和電力消耗。逐步將舊的業務系統遷移到虛擬化環境下。同時,可以利用虛擬化的快速部署功能對需求做出很快的反應,也可以利用快照功能簡單地更新應用程序,如果出現故障,可以快速回溯。
但這一階段還不能實現成本的節約,因為需要購買新的設備,虛擬化軟件產品,以及對現有技術人員知識的更新培訓。
這一階段的目標就是提高關鍵應用程序的服務水平并顯著改進操作效率。數據中心虛擬化第一階段主要是數據中心的基礎架構,而這個階段主要是關鍵應用程序,如 Oracle、SQL Server、Exchange等。這一階段,可以利用復制快速部署應用程序,簡化高可用性的實現。這一階段的挑戰就是需要利用一些技術手段去解決關鍵應用的性能、備份、災難恢復等。
這一階段,其實在實施時,是包含在第一階段將業務系統向虛擬環境遷移過程之中的,只不過單獨列出來,是為了強調許多關鍵應用也能運行在虛擬化環境之下,而且通過虛擬化環境,以前通過其它技術手段來保障關鍵業務的服務水平,通過虛擬環境下的一些技術手段,就可以簡單的實現。
這一階段,是數據中心虛擬化后,發展到一定階段的發展趨勢。這一階段,主要是引入自動化工具,實現管理的自動化,節約管理員的時間。這個階段,也是引入云計算的階段,云計算是一種利用計算資源的新方式,目標是通過提供全自動的計算服務,降低IT架構的復雜度,能夠便捷的滿足單位對IT服務的需求。
但是,這一階段主要視單位數據中心規模而定,如果單位僅僅只有幾臺或十幾臺服務器,是沒有必要引入太多自動化工具的,一方面是成本問題,另一方面,設備數量太少,自動化帶來的優勢與所花費的投入相比,優勢很不明顯。
上面是筆者結合自己工作經驗,對如何實現數據中心虛擬化所做的一些探討,有許多不足之處,懇請大家批評指正,也希望能和大家多多交流。