文|楊敬巍,張立成,褚堯
業務支撐系統云化基礎架構設計
文|楊敬巍,張立成,褚堯
黑龍江移動早已在2010年,在業務支撐系統中引入服務器虛擬化技術,同時,將業務支撐系統逐步遷入云管理平臺中進行管理。在傳統的虛擬化方案中,云平臺的高可用、穩定性主要由基礎架構決定,如高可用、系統在線遷移、資源動態調度等機制,都依賴于特定廠商的特定解決方案。
虛擬化技術解決了傳統的應用豎井架構所帶來的資源利用率低等問題,但也又出現了新的瓶頸:在系統持續運行過程中,如何匹配計算資源與存儲資源,減少集群內的資源碎片化,需要設計、運維部門進行持續優化與調整。
為解決上述問題,本文通過分析,提出了新的基礎架構設計方案,謹供各運營商在業務支撐系統云化演進過程中參考。
(一)基礎架構豎井
業務支撐系統在實施虛擬化之前,各個子系統擁有單獨計算、存儲資源,是典型的豎井式架構,存在資源利用率低下的問題。
在虛擬化過程中,普遍使用了VMware(一種虛擬化軟件產品)虛擬化集群,事實上,形成新的集群豎井:資源調度邊界為虛擬化集群,集群間的計算資源、存儲資源無法實現共享。如集群內可以計算資源比較富余,但由于外置存儲容量不足,而無法加載新的應用實例(虛擬機),形成計算資源碎片。
(二)虛擬化高可用
在VMware虛擬化集群中,采用了高可用機制,需要昂貴的外置存儲資源。當一個服務器節點出故障,如系統崩潰、或宕機時,虛擬機恢復需要長達幾分鐘之久,這意味著業務也會中斷相應的時間。
(三)虛擬化調度
在VMware虛擬化集群中,當服務器資源緊張時,傳統的動態資源調度機制會遷移虛擬機至空閑服務器,會引起短暫的網絡流量增加,導致資源爭用。在手工遷移虛擬機時,或動態資源調度觸發的遷移操作,對于業務量較大,讀寫頻繁的虛擬機,在切換時會有長達幾十秒鐘的掛起時間,直接影響業務系統終端用戶的使用滿意度。
為解決基礎架構層虛擬化環境現存弊端,需要在業務層進行云化。業務層云化過程中,需要對應用系統進行改造。
(一)分布式處理能力
在基礎架構層虛擬化改造后,每個子系統的計算能力仍依賴于虛擬機的CPU(Central Process Unit)/內存配置,計算能力的提升需要進行縱向擴展。分布式計算為應用系統提供了水平擴展能力:通過運行多個應用實例(虛擬機、虛擬化容量、或物理機),并發處理業務需求。
(二)應用與數據分離
應用與數據分離的目的是實現應用實例的無狀態化:對應用實例進行同質化改造,臨時數據、持久化數據獨立于應用實例進行保存,保持應用實例的最小化。
如業務處理過程中的會話數據,獨立于W e b服務器、應用服務器,單獨保存在Memcached、Redis等分布式緩存系統;應用系統、操作系統日志匯集于集中的日志服務器,進行歸檔與分析。
(三)資源動態彈性伸縮
在應用系統具備了分布式處理能力后,為提高資源利用率,引入資源彈性伸縮機制,根據應用對資源的需求進行動態匹配,實現系統動態擴容、閑置資源回收、隔離故障等功能。
(四)去廠家綁定化
由云管理平臺Paas(Platform as a Service,平臺即服務)組件實現彈性調度機制,自動控制應用實例的部署、啟動、停止、刪除。應用系統的健壯性不再依賴于虛擬化平臺的高可用、動態資源調度等特性,從而減少因購買虛擬化平臺所產生的高額許可費用。
(一)基礎架構層
業務云化應用架構部分由云管理平臺Paas組件實現,主要有應用集群的定義、資源調度、彈性伸縮、健康監控、故障隔離等功能。為適應業務云化改造,本文提出Iaas(Infrastructure as a Service,基礎架構即服務)層基礎架構層設計方案。
1.高可用及資源調度
在云管理平臺上,提供應用實例的彈性擴展與收縮能力,包括提供虛擬機、計算虛擬化容器、物理機的彈性擴展與收縮能力,在基礎架構層,不再提供高可用設計,高可用及資源調度。
2.去集群化
構建虛擬化集群的目的,是為了在基礎架層實現虛擬機的高可用轉移、動態資源調度,上述功能已被云管理平臺彈性資源調度代替,因此,基礎架構層應不再做集群化配置,減化系統設計復雜度與運維工作量。
(二)計算資源架構
1.資源池化
在基礎架構層,取代虛擬化集群的是計算資源池。系統分為物理機資源池、虛擬化資源池、容器資源池、大數據資源池四個在用資源池,同時,系統中配置一個空閑資源池。在每個在用資源池中,服務器獨立運行,對于每個子業務,由云管理平臺在應用層進行管理,將應用集群部署于在用資源池中。
2.資源池彈性調度
類似應用集群彈性調度,資源池也采用彈性調度機制,提供資源動態調整。當在用資源池資源容量緊缺時,從空閑資源池獲取服務器資源,加到本資源池;在用資源池使用率過低時,歸集應用實例至少量物理服務器上,把服務器回收至空閑資源池。
3.自動化部署與資源回收
空閑服務器加入在用資源池時,云管理平臺對服務器進行PXE(Pre-boot Execution Environment,預啟動執行環境)安裝,在交換機上啟用服務器生產網絡端口,加入相應在線資源池VLAN(Virtual Local Area Network,虛擬局域網)。服務器從在用資源池回收至空閑資源池時,做一下反向的操作:禁用把服務器連接交換機的生產端口,或移入空閑池VLAN。
4.存儲本地化
在資源池中,服務器獨立使用,上面運行的應用實例不需要進行系統遷移,因此,服務器使用本地磁盤作為應用實例(即虛擬機,或虛擬化容器)的存儲介質,不再使用共享存儲。
應用實例做了無狀態化改造,只保存操作系統及臨時數據,一般情況下,本地存儲足夠支撐應用實例的存儲容量要求。因此,因存儲不足導致無法加載應用實例的情況,不會再次發生。
(三)網絡資源架構
1.大二層結構
在同一個數據中心內部,每個資源池的服務器完全對等,為保證應用實例可部署于任何服務器上,要求在網絡層使用大二層結構。
為實現容災、多活等功能,保持生產數據中心、災備數據中心可訪問相同的業務地址網段,需要在數據中心間建設大二層網絡。
2.SDN架構
為實現資源池的彈性伸縮,動態調整計算資源的安全域,需要SDN(Software Defined Networking,軟件定義網絡)技術實現對服務器的網絡進行動態配置。
在網絡管理上,結合服務器虛擬化、虛擬化容器虛化技術,引入SDN技術,根據不同的資源池,VTEP(Virtual Tunnel End Point,虛擬隧道終結點)終結于不同的設備:對于大數據、物理機資源池,VTEP終結于邊緣交換機;對于虛擬化資源池,VTEP終結于Hypervisor(虛擬化管理程序)的虛擬交換機上;對于虛擬化容器資源池,VTEP終結于Linux服務器的虛擬交換機上。
SDN技術有效地實現了網絡虛擬化,實現了網絡轉發、控制流量的分離機制。通過SDN技術,網絡基礎架構只實現管理網絡、Underlay(承載)網絡VLAN的透傳,業務網絡控制由SDN控制器動態架載至Overlay(疊加)網絡上。在增加業務系統網絡變更時,無需在網絡基礎架構層進行變更,保證了基礎架構的穩定性;同時,通過SDN方案,隔離了業務租戶的網絡配配置,在業務開通時,解決了網絡資源的快速供給問題。

圖1 大二層網絡
(四)存儲資源架構
1.非業務數據
由于虛擬機或虛擬化容器是無狀態的應用實例,由云管理平臺調度動態生成或銷毀,因此,無需共享存儲永久保存。非業務數據包括虛擬機、虛擬化容器的操作系統、操作系統日志等,這一類數據可保存于服務器內置存儲,或廉價的NAS,或分布式存儲上。
2.結構化數據
在業務支撐系統中,結構化數據保存于數據庫中,為提高數據庫的效率,現一般數據路由、采用垂直或水平拆分的方案,進行數據庫層云化改造。數據庫是整個業務支撐系統的核心,一般對磁盤IO(Input and Output)并發量、吞吐量有嚴格的要求,因此,按照傳統方案,數據庫仍保存于FC(Fiber Channel)或ISCSI(Internet Small Computer System Interface)塊存儲設備中。
3.非結構化數據
對于文本、圖片等非結構化數據,可使用的存儲技術有:并行文件系統、NAS(Network Attached Storage,網絡附加存儲)存儲、分布式存儲等。并行文件系統如GPFS(General Parallel File System,通用并行文件系統)、GFS(Global File System,全局文件系統)等,由于此類系統需要額外的安裝、配置、維護,增加運維的工作量。
所以,此類數據采用NAS存儲來實現,優點是NAS系統的文件系統已經過優化,且具有通用的NFS(Network File Syste,網絡文件系統)、CIFS(Common Internet File System,通用互聯網文件系統)、FTP(File Transfer Protocol,文件傳輸協議)接口,與現有業務應用集成代價較小。
4.分布式存儲應用
在本質上,分布式存儲是安裝了存儲軟件的x86集群構成,支持塊存儲、NAS存儲、對象存儲等協議。具有容量大、價格低的特點,因此,歷史數據可存放于分布式存儲設備上。
需要NAS存儲支持的非結構化數據等場景,也可以使用分布式存儲方案。從成熟度上考慮,建議先從邊緣應用開始使用分布式存儲,逐漸過渡到核心應用數據。
在業務支撐系統云化初期,選擇了基于基礎架構層的商用虛擬化集群方案,來提高系統的可用性與可靠性,是一種自下而上的云化過程。由于基礎架構層虛擬化方案并不能解決云化過程中所有的問題,所以提出業務云化改造方案。
業務云化可以有效提高計算、存儲資源的利用率,實現業務應用的彈性部署與回收,提供業務系統不間斷運行的能力。基于業務云化,部分應用實例失效、服務器失效不會影響整個系統正常運行,減少了應用系統對硬件、虛擬化平臺的依賴。
從這個角度上講,現有的業務應用可從商用的虛擬化平臺遷移至開源虛擬化平臺,以節省每年的大量采購與維護成本。進一步,可將應用實例從物理機/虛擬機改造為虛擬化容器實例,借助于容器虛擬化內置的Paas特性,云化改造進入全新的容器化Paas階段。
作者單位:中國移動通信集團黑龍江有限公司