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