劉相坤,李 琪,徐東平,李聚寶
(中國鐵道科學研究院 電子計算技術研究所,北京 100081)
虛擬化技術在12306雙活數(shù)據(jù)中心中的應用
劉相坤,李 琪,徐東平,李聚寶
(中國鐵道科學研究院 電子計算技術研究所,北京 100081)
介紹12306互聯(lián)網售票系統(tǒng)如何使用虛擬化技術從單數(shù)據(jù)中心發(fā)展為雙數(shù)據(jù)中心高可用方面的實踐經驗。通過實踐證明,采用虛擬化技術解決雙活數(shù)據(jù)中心高可用問題,無論是從前期投入還是從后期維護角度看,都具有良好的經濟效益和社會效益。
客票系統(tǒng);12306網站;虛擬化;數(shù)據(jù)中心;高可用
隨著互聯(lián)網技術的迅猛發(fā)展,通過網絡進行鐵路客票的發(fā)售和預定的呼聲越來越高。12306作為中國鐵路客戶服務中心唯一運營網站,承擔著為全社會和鐵路客戶提供客貨運輸業(yè)務和公共信息查詢服務的重任。網站數(shù)據(jù)中心龐大,軟硬件資源眾多,出于管理和安全性考慮,針對基礎架構的虛擬化整合以及實現(xiàn)雙活數(shù)據(jù)中心已經勢在必行。
12306 作為一個萬眾矚目的網站,停頓1 min都會給全國人民的出行造成影響。因此12306互聯(lián)網售票系統(tǒng)(簡稱:12306)的高可用非常重要。
高可用解決方案很多,概括起來分為2類:(1)狹義高可用,僅僅用于避免系統(tǒng)級故障,使用冗余的硬件資源,去接管失效的資源。(2)廣義高可用,指整個系統(tǒng)的高可用,不僅可以避免系統(tǒng)級故障,還能避免天災人禍造成的故障。
狹義高可用是在單數(shù)據(jù)中心內實現(xiàn)硬件資源的冗余,保證在系統(tǒng)失效的情況下可以有資源接管應用。在傳統(tǒng)的 IT 環(huán)境中高可用涉及系統(tǒng)、網絡、數(shù)據(jù)庫、業(yè)務等方方面面,實現(xiàn)方式也是多種多樣,因此實施、配置和后期運行維護都非常的麻煩。比如要實現(xiàn)高可用一般需要配置心跳、寫 HA 的觸發(fā)腳本等,這些工作在各個系統(tǒng)都不盡相同不具有通用性;HA解決方案涉及的環(huán)節(jié)多,部署時間長;上線后的維護工作點多、面廣,出現(xiàn)故障后操作步驟也不統(tǒng)一,勢必要求維護人員熟悉IT環(huán)境的各種產品,給運行維護帶來很大的壓力。
初期的12306就是運行在由單數(shù)據(jù)中心使用小型機組建的高可用環(huán)境中,隨著業(yè)務量的增加,這種架構不能方便地進行橫向擴展,更不能避免天災人禍,這與12306的重要地位不相匹配。為此經多次研究決定建立雙活數(shù)據(jù)中心,讓12306運行在2個數(shù)據(jù)中心組成的高可用環(huán)境中,最大限度地避免各種故障對系統(tǒng)造成的影響。
鐵路客票互聯(lián)網發(fā)售比例逐年提高,12306承載的壓力越來越大。因此改造方向是:(1)能夠隨著業(yè)務量增加更加便利地擴能;(2)實現(xiàn)在2個數(shù)據(jù)中心的高可用。
根據(jù)面臨的問題,對當前業(yè)內主流技術進行了論證分析和實測,最終選定使用VMware 軟件定義數(shù)據(jù)中心解決方案的設計思想,解決橫向擴展和雙活數(shù)據(jù)中心的問題。
軟件定義數(shù)據(jù)中心的解決方案是基于虛擬化技術的整體解決方案,其中包含了計算資源虛擬化、網路資源虛擬化和存儲資源虛擬化產品。系統(tǒng)的改造借用其設計思路和虛擬化產品(vSphere)并結合12306的實際情況進行方案設計,為將來建立云數(shù)據(jù)中心打好基礎。
橫向擴展能力一直是 IT 界的夢想,希望如果一臺服務器的性能不夠,再增加一臺服務器性能就可以提升一倍。一直以來,縱向擴展(如在計算機內增加內存、磁盤)比較容易,但是縱向擴展有限度,不能無限擴展。而橫向擴展是無限的,虛擬化技術產生后,使擴展更加簡便,成本也更低。
虛擬化技術除了可以幫助12306快捷地擴能,還能幫助12306實現(xiàn)雙活數(shù)據(jù)中心。單數(shù)據(jù)中心高可用就相當復雜,雙數(shù)據(jù)中心的高可用復雜度更是陡然增加。除了在單數(shù)據(jù)中心高可用面臨的問題以外,同時還會有2個中心網絡高可用、存儲高可用等眾多問題。為此希望找到一種能夠屏蔽眾多底層技術細節(jié),極大減輕部署和運行維護強度的方案。虛擬化技術可以幫助實現(xiàn)這個目標。虛擬機在2個數(shù)據(jù)中心進行遷移,不修改現(xiàn)有應用,也不用重新配置。這樣就能屏蔽眾多配置細節(jié)從而實現(xiàn)高可用,這種解決方案無論是實施和后期運行維護都比較方便。經過慎重評估最終選擇以虛擬化技術為基礎建立跨數(shù)據(jù)中心的高可用集群。
X86虛擬化技術近年來發(fā)展迅速,幾乎成了IT系統(tǒng)的基本配置。利用虛擬化技術,可以在一個物理服務器上運行多個操作系統(tǒng)實例,可以有效提升硬件的利用率。同時虛擬機都是以文件形式存在的,可以實現(xiàn)高可用,假如運行虛擬機的物理機出現(xiàn)意外宕機,則集群中的另外物理機就會自動啟動這臺虛擬機,繼續(xù)對外提供服務。這種功能無論是在單數(shù)據(jù)中心還是在跨數(shù)據(jù)中心都是可以實現(xiàn)的。
在虛擬化平臺上部署中間件。因為中間件是無狀態(tài)的,且同一業(yè)務系統(tǒng)配置相同,因此容易形成模板。使用模板克隆出虛擬機,只需簡單配置一下網絡即可上線工作,省去了中間件安裝、配置、測試的時間,真正實現(xiàn)了快速部署,同時也減輕了運行維護壓力。
因此虛擬化對于我們最大的吸引力在于:
(1)無需安裝軟件。新的物理服務器,必須安裝平臺軟件;而虛擬化服務器采用模板克隆技術生成,模板中已經包含了需要的軟件,不用再次安裝,省時省力。
(2)實現(xiàn)高可用更加簡單。物理機的高可用必須手工配置,而虛擬機可以依靠虛擬化平臺的 HA功能保證高可用,不用在操作系統(tǒng)內進行特殊配置。當虛擬化集群中的一臺物理機發(fā)生故障,虛擬機可以在另外一臺物理機上重啟,繼續(xù)對外提供服務。
虛擬化(Virtualization)技術最早出現(xiàn)在 20 世紀 60 年代的 IBM 大型機系統(tǒng),在70年代的 System 370 系列中逐漸流行起來,這些機器通過一種叫虛擬機監(jiān)控器(VMM ,Virtual Machine Monitor)的程序在物理硬件之上生成許多可以運行獨立操作系統(tǒng)軟件的虛擬機(Virtual Machine)實例。隨著近年多核系統(tǒng)、集群、網格甚至云計算的廣泛部署,虛擬化技術在商業(yè)應用上的優(yōu)勢日益體現(xiàn),不僅降低了IT 成本,而且還增強了系統(tǒng)安全性和可靠性,虛擬化的概念也逐漸深入到人們日常的工作與生活中。
虛擬化是一個廣義的術語,對于不同的人來說可能意味著不同的東西,這要取決他們所處的環(huán)境。在計算機科學領域中,虛擬化代表著對計算資源的抽象,而不僅僅局限于虛擬機的概念。從早期的例如對物理內存的抽象,產生了虛擬內存技術,使得應用程序認為其自身擁有連續(xù)可用的地址空間(Address Space),而實際上,應用程序的代碼和數(shù)據(jù)可能是被分隔成多個碎片頁或段),甚至被交換到磁盤、閃存等外部存儲器上,即使物理內存不足,應用程序也能順利執(zhí)行。到近期的對網絡、存儲的抽象,產生了網絡虛擬化和存儲虛擬化。
當前虛擬化技術已經被廣泛應用到 IT 基礎設施的建設中 ,已經形成了豐富的產品和解決方案。2012年又提出了軟件定義的數(shù)據(jù)中心的概念。也就是說未來的數(shù)據(jù)中心要虛擬化、池化一切資源(包括計算資源、網絡資源和存儲資源等),完全用軟件控制數(shù)據(jù)中心的運行。
圖1 12306雙活數(shù)據(jù)中心虛擬化體系結構圖
4.1 方案設計
2012年 開 始 使 用VMware vSphere虛擬化平臺后,虛擬化的優(yōu)勢日益明顯。2013年開始測試將數(shù)據(jù)庫運行在虛擬化平臺上,以保證數(shù)據(jù)庫高可用。測試效果比較理想,于是在2013年底開始規(guī)劃使用VMware vSphere 作為雙活數(shù)據(jù)中心核心數(shù)據(jù)庫的基礎平臺。
方案的設計理念基于“軟件定義數(shù)據(jù)中心”的思想。架構設計結合并汲取了各項相關建議和需求,參考VMware虛擬化架構最佳實踐,針對VMware vSphere虛擬化基礎架構、網絡規(guī)劃、存儲規(guī)劃、ESXi服務器和vCenter管理服務器的配置等方面,進行了深入地分析和探討。
針對業(yè)務系統(tǒng)的特點,利用虛擬化技術可以將標準的X86服務器資源進行池化并分配給多臺虛擬機,以此實現(xiàn)在1臺物理服務器上運行多臺獨立的虛擬機。在虛擬化主機層面選用若干臺PC SERVER作為ESXi主機,HDS VSP G1000 作為虛擬化架構數(shù)據(jù)存儲存放虛擬機及其數(shù)據(jù)。體系結構如圖1所示。
設計5個群集,其中關鍵應用分為4個群集,另外1個群集為管理群集;每個群集跨2個數(shù)據(jù)中心;2個中心均為每組機器配置2臺冗余主機用于本地群集內故障轉移或者接管另一中心故障轉移;所有管理主機配置一個專有群集,共4臺主機,2個中心各2臺,主要運行管理虛擬機。
4.2 環(huán)境及典型場景說明
雙活數(shù)據(jù)中心,應包括計算環(huán)境雙活、網絡環(huán)境雙活和存儲環(huán)境的雙活。
4.2.1 計算環(huán)境
計算資源雙活也就是實現(xiàn)虛擬機可以在2個數(shù)據(jù)中心自由遷移,為此2個數(shù)據(jù)中心應保持相同的計算資源。每個中心配置m臺物理服務器,共使用2m臺物理服務器。每個中心Sybase數(shù)據(jù)庫虛擬機n臺,分別運行在n臺主機上;vCenter server虛擬機2臺,主備域控制器2臺,vCops vApp中共有2臺虛擬機,以及其他管理用的虛擬機共6臺左右,運行在4臺管理主機上;2(m-n)臺主機作為應用虛擬機的備用資源,其中,m>n;每7臺一個業(yè)務群集,5臺運行2臺備份的模式。
4.2.2 網絡環(huán)境
如果實現(xiàn)雙活數(shù)據(jù)中心,網絡作為重要的IT資源必須做到2個數(shù)據(jù)中心的高可用,也就是要將2個數(shù)據(jù)中心的客票網組成1個大的局域網,無論虛擬機在哪個數(shù)據(jù)中心運行都無須更改網絡設置。根據(jù)雙活數(shù)據(jù)中心的總體架構,網絡需要滿足要求:物理鏈路層實現(xiàn)2個數(shù)據(jù)中心2層網絡互通;群集跨數(shù)據(jù)中心存在,同一個群集中的主機之間均采用同樣的vMotion網絡,實現(xiàn)跨數(shù)據(jù)中心的vMotion。
系統(tǒng)中通過 OTN 技術進行2層打通;2層打通后,2個數(shù)據(jù)中心的 vMontion VLAN 進行合并,實現(xiàn)跨數(shù)據(jù)中心的vMotion。
同時為了保證整個方案沒有單點故障,在每個物理機上的網卡均為冗余配置,也就是無論是存儲網、業(yè)務網、管理網還是 vMotion 網絡都是雙網卡。這樣無論是數(shù)據(jù)中心的網絡還是服務器的網絡都是冗余網絡,真正實現(xiàn)了沒有單點故障,增強了整個系統(tǒng)的抗風險能力。
4.2.3 存儲環(huán)境
采用HDS VSP G1000存儲,2個數(shù)據(jù)中心各1臺,按照不同業(yè)務劃分為5個資源池,分別給5個相對獨立應用的虛擬機使用。通過劃分資源池進行各個業(yè)務之間的存儲I/O隔離,以減小業(yè)務I/O之間的相互影響。
規(guī)劃每個虛擬機對應單獨的1個LUN。在設置空間時需要合理分配LUN大小、虛擬機空間的大小、虛擬機內存的大小,每個機器的空間余量應能承擔內存的swap文件所需的空間,使虛擬機能夠正常啟動,一般要求:LUN空間-虛擬機空間≥虛擬機內存。陣列規(guī)劃參考如圖2所示。
圖2 12306雙活數(shù)據(jù)中心陣列規(guī)劃
4.3 方案特點
4.3.1 第1次將數(shù)據(jù)庫運行在虛擬化平臺上
以往因為擔心虛擬化的性能問題,不敢將數(shù)據(jù)庫運行在虛擬機中。這次通過前期的充分論證和測試,證明數(shù)據(jù)庫運行在 VMware 虛擬化環(huán)境中是完全可行的,性能和純物理環(huán)境相比不會有太多的下 降,而帶來整個系統(tǒng)的高可用和管理上的簡便性與傳統(tǒng)物理環(huán)境比較優(yōu)勢是明顯的。
4.3.2 實現(xiàn)了基于虛擬化技術的雙活數(shù)據(jù)中心
傳統(tǒng)的雙活數(shù)據(jù)中心環(huán)節(jié)多,實施和后續(xù)管理都極其復雜;而基于虛擬化的雙活數(shù)據(jù)中心,虛擬化層可以幫助用戶屏蔽眾多的底層技術細節(jié),實施和管理都比傳統(tǒng)方式更加簡便。
4.3.3 資源充分利用
通過虛擬化技術將2個數(shù)據(jù)中心的資源整合到1個資源池中,2個中心同時對外提供服務。不像主備數(shù)據(jù)中心,災備數(shù)據(jù)中心的資源平時不使用,只有在主中心失效的時候才啟用,資源浪費嚴重;而雙活數(shù)據(jù)中心可以同時利用2個中心的資源對外提供服務,資源利用率更高。
虛擬化技術在12306雙活數(shù)據(jù)中心中的應用說明,以虛擬化技術為基礎建設雙活數(shù)據(jù)中心是可行的。軟件定義數(shù)據(jù)中心的思想可以指導雙活數(shù)據(jù)中心的建設,虛擬機可以支持數(shù)據(jù)庫系統(tǒng)的穩(wěn)定運行。X86虛擬化集群方便橫向擴展,這種能夠隨著業(yè)務量進行彈性擴展的能力是小型機所不具備的。虛擬化集群的整體性能比較好,且要達到同樣的性能,小型機的成本要高于 X86 虛擬化集群,因此虛擬化運行的成本更低,經濟效益更為突出。
[1]黃怡君.銀行業(yè)的存儲虛擬化系統(tǒng)設計與實現(xiàn)[D]. 上海:上海交通大學,2012.
[2]曹巍巍.數(shù)據(jù)中心虛擬化技術研究與實現(xiàn)[D].上海:華東理工大學,2011.
[3]施 慶.基于VMware vSphere的高校數(shù)據(jù)中心虛擬化建設研究[D].上海:復旦大學,2012.
[4]李 聰. 服務器、網絡、存儲虛擬化技術在數(shù)據(jù)中心的應用研究[D].天津:天津大學, 2009.
[5]王 欣.VMware軟件虛擬化研究及應用[J].數(shù)據(jù)通信,2013(6).
責任編輯 方 圓
Virtualization technology in dual active data center of 12306 Internet Ticketing and Reservation System
LIU Xiangkun, LI Qi, XU Dongping, LI Jubao
( Institute of Computing Technologies, China Academy of Railway Sciences, Beijing 100081, China )
Virtualization technology was used in 12306 Internet Ticketing and Reservation System to develop the date center from single data center to dual active data center. Practice had proved, solving the problem of high availability was totally feasible through this technology. It had good economic and social benefits whether from the initial investment or from the late maintenance.
Ticketing and Reservation System(TRS); 12306 Website; virtualization; data center; high availability
U293.22∶TP39
A
1005-8451(2015)11-0017-04
2015-04-10
劉相坤,副研究員;李 琪,副研究員。