文|楊敬巍,張立成,褚堯
業(yè)務支撐系統(tǒng)云化基礎架構(gòu)設計
文|楊敬巍,張立成,褚堯
黑龍江移動早已在2010年,在業(yè)務支撐系統(tǒng)中引入服務器虛擬化技術,同時,將業(yè)務支撐系統(tǒng)逐步遷入云管理平臺中進行管理。在傳統(tǒng)的虛擬化方案中,云平臺的高可用、穩(wěn)定性主要由基礎架構(gòu)決定,如高可用、系統(tǒng)在線遷移、資源動態(tài)調(diào)度等機制,都依賴于特定廠商的特定解決方案。
虛擬化技術解決了傳統(tǒng)的應用豎井架構(gòu)所帶來的資源利用率低等問題,但也又出現(xiàn)了新的瓶頸:在系統(tǒng)持續(xù)運行過程中,如何匹配計算資源與存儲資源,減少集群內(nèi)的資源碎片化,需要設計、運維部門進行持續(xù)優(yōu)化與調(diào)整。
為解決上述問題,本文通過分析,提出了新的基礎架構(gòu)設計方案,謹供各運營商在業(yè)務支撐系統(tǒng)云化演進過程中參考。
(一)基礎架構(gòu)豎井
業(yè)務支撐系統(tǒng)在實施虛擬化之前,各個子系統(tǒng)擁有單獨計算、存儲資源,是典型的豎井式架構(gòu),存在資源利用率低下的問題。
在虛擬化過程中,普遍使用了VMware(一種虛擬化軟件產(chǎn)品)虛擬化集群,事實上,形成新的集群豎井:資源調(diào)度邊界為虛擬化集群,集群間的計算資源、存儲資源無法實現(xiàn)共享。如集群內(nèi)可以計算資源比較富余,但由于外置存儲容量不足,而無法加載新的應用實例(虛擬機),形成計算資源碎片。
(二)虛擬化高可用
在VMware虛擬化集群中,采用了高可用機制,需要昂貴的外置存儲資源。當一個服務器節(jié)點出故障,如系統(tǒng)崩潰、或宕機時,虛擬機恢復需要長達幾分鐘之久,這意味著業(yè)務也會中斷相應的時間。
(三)虛擬化調(diào)度
在VMware虛擬化集群中,當服務器資源緊張時,傳統(tǒng)的動態(tài)資源調(diào)度機制會遷移虛擬機至空閑服務器,會引起短暫的網(wǎng)絡流量增加,導致資源爭用。在手工遷移虛擬機時,或動態(tài)資源調(diào)度觸發(fā)的遷移操作,對于業(yè)務量較大,讀寫頻繁的虛擬機,在切換時會有長達幾十秒鐘的掛起時間,直接影響業(yè)務系統(tǒng)終端用戶的使用滿意度。
為解決基礎架構(gòu)層虛擬化環(huán)境現(xiàn)存弊端,需要在業(yè)務層進行云化。業(yè)務層云化過程中,需要對應用系統(tǒng)進行改造。
(一)分布式處理能力
在基礎架構(gòu)層虛擬化改造后,每個子系統(tǒng)的計算能力仍依賴于虛擬機的CPU(Central Process Unit)/內(nèi)存配置,計算能力的提升需要進行縱向擴展。分布式計算為應用系統(tǒng)提供了水平擴展能力:通過運行多個應用實例(虛擬機、虛擬化容量、或物理機),并發(fā)處理業(yè)務需求。
(二)應用與數(shù)據(jù)分離
應用與數(shù)據(jù)分離的目的是實現(xiàn)應用實例的無狀態(tài)化:對應用實例進行同質(zhì)化改造,臨時數(shù)據(jù)、持久化數(shù)據(jù)獨立于應用實例進行保存,保持應用實例的最小化。
如業(yè)務處理過程中的會話數(shù)據(jù),獨立于W e b服務器、應用服務器,單獨保存在Memcached、Redis等分布式緩存系統(tǒng);應用系統(tǒng)、操作系統(tǒng)日志匯集于集中的日志服務器,進行歸檔與分析。
(三)資源動態(tài)彈性伸縮
在應用系統(tǒng)具備了分布式處理能力后,為提高資源利用率,引入資源彈性伸縮機制,根據(jù)應用對資源的需求進行動態(tài)匹配,實現(xiàn)系統(tǒng)動態(tài)擴容、閑置資源回收、隔離故障等功能。
(四)去廠家綁定化
由云管理平臺Paas(Platform as a Service,平臺即服務)組件實現(xiàn)彈性調(diào)度機制,自動控制應用實例的部署、啟動、停止、刪除。應用系統(tǒng)的健壯性不再依賴于虛擬化平臺的高可用、動態(tài)資源調(diào)度等特性,從而減少因購買虛擬化平臺所產(chǎn)生的高額許可費用。
(一)基礎架構(gòu)層
業(yè)務云化應用架構(gòu)部分由云管理平臺Paas組件實現(xiàn),主要有應用集群的定義、資源調(diào)度、彈性伸縮、健康監(jiān)控、故障隔離等功能。為適應業(yè)務云化改造,本文提出Iaas(Infrastructure as a Service,基礎架構(gòu)即服務)層基礎架構(gòu)層設計方案。
1.高可用及資源調(diào)度
在云管理平臺上,提供應用實例的彈性擴展與收縮能力,包括提供虛擬機、計算虛擬化容器、物理機的彈性擴展與收縮能力,在基礎架構(gòu)層,不再提供高可用設計,高可用及資源調(diào)度。
2.去集群化
構(gòu)建虛擬化集群的目的,是為了在基礎架層實現(xiàn)虛擬機的高可用轉(zhuǎn)移、動態(tài)資源調(diào)度,上述功能已被云管理平臺彈性資源調(diào)度代替,因此,基礎架構(gòu)層應不再做集群化配置,減化系統(tǒng)設計復雜度與運維工作量。
(二)計算資源架構(gòu)
1.資源池化
在基礎架構(gòu)層,取代虛擬化集群的是計算資源池。系統(tǒng)分為物理機資源池、虛擬化資源池、容器資源池、大數(shù)據(jù)資源池四個在用資源池,同時,系統(tǒng)中配置一個空閑資源池。在每個在用資源池中,服務器獨立運行,對于每個子業(yè)務,由云管理平臺在應用層進行管理,將應用集群部署于在用資源池中。
2.資源池彈性調(diào)度
類似應用集群彈性調(diào)度,資源池也采用彈性調(diào)度機制,提供資源動態(tài)調(diào)整。當在用資源池資源容量緊缺時,從空閑資源池獲取服務器資源,加到本資源池;在用資源池使用率過低時,歸集應用實例至少量物理服務器上,把服務器回收至空閑資源池。
3.自動化部署與資源回收
空閑服務器加入在用資源池時,云管理平臺對服務器進行PXE(Pre-boot Execution Environment,預啟動執(zhí)行環(huán)境)安裝,在交換機上啟用服務器生產(chǎn)網(wǎng)絡端口,加入相應在線資源池VLAN(Virtual Local Area Network,虛擬局域網(wǎng))。服務器從在用資源池回收至空閑資源池時,做一下反向的操作:禁用把服務器連接交換機的生產(chǎn)端口,或移入空閑池VLAN。
4.存儲本地化
在資源池中,服務器獨立使用,上面運行的應用實例不需要進行系統(tǒng)遷移,因此,服務器使用本地磁盤作為應用實例(即虛擬機,或虛擬化容器)的存儲介質(zhì),不再使用共享存儲。
應用實例做了無狀態(tài)化改造,只保存操作系統(tǒng)及臨時數(shù)據(jù),一般情況下,本地存儲足夠支撐應用實例的存儲容量要求。因此,因存儲不足導致無法加載應用實例的情況,不會再次發(fā)生。
(三)網(wǎng)絡資源架構(gòu)
1.大二層結(jié)構(gòu)
在同一個數(shù)據(jù)中心內(nèi)部,每個資源池的服務器完全對等,為保證應用實例可部署于任何服務器上,要求在網(wǎng)絡層使用大二層結(jié)構(gòu)。
為實現(xiàn)容災、多活等功能,保持生產(chǎn)數(shù)據(jù)中心、災備數(shù)據(jù)中心可訪問相同的業(yè)務地址網(wǎng)段,需要在數(shù)據(jù)中心間建設大二層網(wǎng)絡。
2.SDN架構(gòu)
為實現(xiàn)資源池的彈性伸縮,動態(tài)調(diào)整計算資源的安全域,需要SDN(Software Defined Networking,軟件定義網(wǎng)絡)技術實現(xiàn)對服務器的網(wǎng)絡進行動態(tài)配置。
在網(wǎng)絡管理上,結(jié)合服務器虛擬化、虛擬化容器虛化技術,引入SDN技術,根據(jù)不同的資源池,VTEP(Virtual Tunnel End Point,虛擬隧道終結(jié)點)終結(jié)于不同的設備:對于大數(shù)據(jù)、物理機資源池,VTEP終結(jié)于邊緣交換機;對于虛擬化資源池,VTEP終結(jié)于Hypervisor(虛擬化管理程序)的虛擬交換機上;對于虛擬化容器資源池,VTEP終結(jié)于Linux服務器的虛擬交換機上。
SDN技術有效地實現(xiàn)了網(wǎng)絡虛擬化,實現(xiàn)了網(wǎng)絡轉(zhuǎn)發(fā)、控制流量的分離機制。通過SDN技術,網(wǎng)絡基礎架構(gòu)只實現(xiàn)管理網(wǎng)絡、Underlay(承載)網(wǎng)絡VLAN的透傳,業(yè)務網(wǎng)絡控制由SDN控制器動態(tài)架載至Overlay(疊加)網(wǎng)絡上。在增加業(yè)務系統(tǒng)網(wǎng)絡變更時,無需在網(wǎng)絡基礎架構(gòu)層進行變更,保證了基礎架構(gòu)的穩(wěn)定性;同時,通過SDN方案,隔離了業(yè)務租戶的網(wǎng)絡配配置,在業(yè)務開通時,解決了網(wǎng)絡資源的快速供給問題。
圖1 大二層網(wǎng)絡
(四)存儲資源架構(gòu)
1.非業(yè)務數(shù)據(jù)
由于虛擬機或虛擬化容器是無狀態(tài)的應用實例,由云管理平臺調(diào)度動態(tài)生成或銷毀,因此,無需共享存儲永久保存。非業(yè)務數(shù)據(jù)包括虛擬機、虛擬化容器的操作系統(tǒng)、操作系統(tǒng)日志等,這一類數(shù)據(jù)可保存于服務器內(nèi)置存儲,或廉價的NAS,或分布式存儲上。
2.結(jié)構(gòu)化數(shù)據(jù)
在業(yè)務支撐系統(tǒng)中,結(jié)構(gòu)化數(shù)據(jù)保存于數(shù)據(jù)庫中,為提高數(shù)據(jù)庫的效率,現(xiàn)一般數(shù)據(jù)路由、采用垂直或水平拆分的方案,進行數(shù)據(jù)庫層云化改造。數(shù)據(jù)庫是整個業(yè)務支撐系統(tǒng)的核心,一般對磁盤IO(Input and Output)并發(fā)量、吞吐量有嚴格的要求,因此,按照傳統(tǒng)方案,數(shù)據(jù)庫仍保存于FC(Fiber Channel)或ISCSI(Internet Small Computer System Interface)塊存儲設備中。
3.非結(jié)構(gòu)化數(shù)據(jù)
對于文本、圖片等非結(jié)構(gòu)化數(shù)據(jù),可使用的存儲技術有:并行文件系統(tǒng)、NAS(Network Attached Storage,網(wǎng)絡附加存儲)存儲、分布式存儲等。并行文件系統(tǒng)如GPFS(General Parallel File System,通用并行文件系統(tǒng))、GFS(Global File System,全局文件系統(tǒng))等,由于此類系統(tǒng)需要額外的安裝、配置、維護,增加運維的工作量。
所以,此類數(shù)據(jù)采用NAS存儲來實現(xiàn),優(yōu)點是NAS系統(tǒng)的文件系統(tǒng)已經(jīng)過優(yōu)化,且具有通用的NFS(Network File Syste,網(wǎng)絡文件系統(tǒng))、CIFS(Common Internet File System,通用互聯(lián)網(wǎng)文件系統(tǒng))、FTP(File Transfer Protocol,文件傳輸協(xié)議)接口,與現(xiàn)有業(yè)務應用集成代價較小。
4.分布式存儲應用
在本質(zhì)上,分布式存儲是安裝了存儲軟件的x86集群構(gòu)成,支持塊存儲、NAS存儲、對象存儲等協(xié)議。具有容量大、價格低的特點,因此,歷史數(shù)據(jù)可存放于分布式存儲設備上。
需要NAS存儲支持的非結(jié)構(gòu)化數(shù)據(jù)等場景,也可以使用分布式存儲方案。從成熟度上考慮,建議先從邊緣應用開始使用分布式存儲,逐漸過渡到核心應用數(shù)據(jù)。
在業(yè)務支撐系統(tǒng)云化初期,選擇了基于基礎架構(gòu)層的商用虛擬化集群方案,來提高系統(tǒng)的可用性與可靠性,是一種自下而上的云化過程。由于基礎架構(gòu)層虛擬化方案并不能解決云化過程中所有的問題,所以提出業(yè)務云化改造方案。
業(yè)務云化可以有效提高計算、存儲資源的利用率,實現(xiàn)業(yè)務應用的彈性部署與回收,提供業(yè)務系統(tǒng)不間斷運行的能力。基于業(yè)務云化,部分應用實例失效、服務器失效不會影響整個系統(tǒng)正常運行,減少了應用系統(tǒng)對硬件、虛擬化平臺的依賴。
從這個角度上講,現(xiàn)有的業(yè)務應用可從商用的虛擬化平臺遷移至開源虛擬化平臺,以節(jié)省每年的大量采購與維護成本。進一步,可將應用實例從物理機/虛擬機改造為虛擬化容器實例,借助于容器虛擬化內(nèi)置的Paas特性,云化改造進入全新的容器化Paas階段。
作者單位:中國移動通信集團黑龍江有限公司