張江凱,陳 聞
(湖北華中電力科技開發(fā)有限責(zé)任公司,湖北 武漢 430077)
云計(jì)算是指一種IT基礎(chǔ)設(shè)施的交付和使用模式,通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需的軟硬件資源。提供資源的網(wǎng)絡(luò)被稱為“云”,云中的資源可以隨時(shí)獲取,按需使用,隨時(shí)擴(kuò)展。電力企業(yè)因?yàn)闃I(yè)務(wù)的不斷發(fā)展、服務(wù)器維護(hù)工作量大、維護(hù)成本高等特點(diǎn),需要基于云計(jì)算、虛擬化等先進(jìn)信息技術(shù)開展信息化建設(shè)工作。目前國(guó)網(wǎng)湖北省電力公司已經(jīng)在電力行業(yè)內(nèi)率先使用了云計(jì)算技術(shù)[1]。
OpenStack是由NASA(美國(guó)航空航天局)和RackSpace公司合作發(fā)起的開源項(xiàng)目,目前已成為全球最流行的開源云計(jì)算解決方案。在國(guó)內(nèi)Open?Stack正受到各行各業(yè)用戶追捧,典型案例有中移動(dòng)公有云和私有云、聯(lián)通的沃云、中國(guó)電信集團(tuán)云管理平臺(tái)、中國(guó)銀聯(lián)金融生產(chǎn)云、湖北省楚天云、華為公有云和私有云、上海交大JCloud等。
OpenStack組件采用松耦合設(shè)計(jì),用戶可以根據(jù)需要靈活選擇,自由組合。其基礎(chǔ)服務(wù)組件有Key?Stone身份認(rèn)證服務(wù)、Glance鏡像服務(wù)、Nova計(jì)算服務(wù)、Neutron網(wǎng)絡(luò)服務(wù)、Cinder塊存儲(chǔ)服務(wù)、Swift對(duì)象存儲(chǔ)和Horizon面板服務(wù):
Keystone負(fù)責(zé)處理私有云中所有請(qǐng)求的認(rèn)證以及授權(quán),并為其它組件提供系統(tǒng)功能目錄服務(wù),其它組件的服務(wù)功能都需要在Keystone中注冊(cè);
Glance負(fù)責(zé)管理VM系統(tǒng)鏡像,提供虛擬機(jī)鏡像的檢索、注冊(cè)以及拉取功能;
Nova負(fù)責(zé)提供VM的計(jì)算資源和VM的管理控制;
Neutron負(fù)責(zé)管理VM網(wǎng)絡(luò),它允許租戶創(chuàng)建自定義的網(wǎng)絡(luò),并將網(wǎng)絡(luò)添加到虛擬路由設(shè)備端口上使用;
Cinder負(fù)責(zé)為VM提供磁盤附屬卷存儲(chǔ)功能;
Swift負(fù)責(zé)為VM提供磁盤文件對(duì)象存儲(chǔ)功能;
Horizon是OpenStack的管理系統(tǒng),負(fù)責(zé)為管理員和普通用戶提供Web界面管理各種云資源和服務(wù)。
OpenStack各組件之間的關(guān)系如圖1所示。
圖1 OpenStack組件相互關(guān)系圖Fig.1 OpenStack component relationship diagram
KVM服務(wù)器虛擬化使用QEMU技術(shù)模擬處理器,使用KVM、QEMU-KVM技術(shù)模擬CPU的運(yùn)行,使用Libvirt技術(shù)為各種虛擬化工具提供編程接口。利用KVM和QEMU虛擬機(jī)Hypervisor各自的優(yōu)點(diǎn)和特性,結(jié)合QEMU-KVM和Libvirt,可以為服務(wù)器底層虛擬化提供完整的解決方案。
開源Ceph分布式存儲(chǔ)技術(shù)能在廉價(jià)的存儲(chǔ)介質(zhì)上構(gòu)建具有高性能、高擴(kuò)展性、高可用性的分布式存儲(chǔ)系統(tǒng)。它可以在一個(gè)統(tǒng)一的系統(tǒng)中同時(shí)提供對(duì)象、塊和文件存儲(chǔ)功能。目前Ceph已經(jīng)被納入Linux內(nèi)核之中,廣泛應(yīng)用在科學(xué)計(jì)算等HPC領(lǐng)域。
Ceph最大的特點(diǎn)是分布式的元數(shù)據(jù)服務(wù)器。通過CRUSH擬算法來分配文件的位置,其核心是RADOS(resilient automatic distributed object storage)對(duì)象集群存儲(chǔ),提供對(duì)象的高可用,錯(cuò)誤檢測(cè)和修復(fù)功能。
基于SDN+Overlay網(wǎng)絡(luò)虛擬化技術(shù)通過在現(xiàn)有網(wǎng)絡(luò)上疊加一個(gè)軟件定義的邏輯網(wǎng)絡(luò)實(shí)現(xiàn)業(yè)務(wù)邏輯,原有網(wǎng)絡(luò)盡量不做改造,這種網(wǎng)絡(luò)虛擬化技術(shù)可以動(dòng)態(tài)感知虛擬機(jī)的遷移,進(jìn)而實(shí)現(xiàn)網(wǎng)絡(luò)策略的動(dòng)態(tài)跟隨。Open vSwitch是實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化的重要基礎(chǔ)組件,在OpenStack中可以利用Open vSwitch作為底層部件來完成虛擬網(wǎng)絡(luò)的提供和租戶網(wǎng)絡(luò)的管理。
為了保證電力企業(yè)信息安全,遵循開源、自主可控的原則,采用OpenStack開源云技術(shù)框架來搭建企業(yè)私有云;服務(wù)器虛擬化底層采用KVM虛擬化技術(shù)進(jìn)行建設(shè);業(yè)務(wù)應(yīng)用數(shù)據(jù)存儲(chǔ)采用Ceph分布式存儲(chǔ)技術(shù)實(shí)現(xiàn),同時(shí)輔以當(dāng)前主流的網(wǎng)絡(luò)Vxlan及Open vSwitch SDN技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化,整個(gè)私有云平臺(tái)技術(shù)架構(gòu)如圖2所示。
私有云網(wǎng)絡(luò)主要分成管理網(wǎng)、業(yè)務(wù)網(wǎng)、存儲(chǔ)網(wǎng)三類子網(wǎng),并且實(shí)現(xiàn)三網(wǎng)隔離,功能如表1所示。
表1 私有云網(wǎng)絡(luò)劃分Tab.1 Private cloud network division
服務(wù)器主要分成控制節(jié)點(diǎn)、網(wǎng)絡(luò)節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)、存儲(chǔ)節(jié)點(diǎn)四種角色,功能如表2所示。
圖2 OpenStack私有云技術(shù)架構(gòu)Fig.2 OpenStack private cloud technology architecture
表2 服務(wù)器節(jié)點(diǎn)分類Tab.2 Private cloud server role classification
私有云網(wǎng)絡(luò)架構(gòu)圖如圖3所示。
圖3 私有云網(wǎng)絡(luò)架構(gòu)圖Fig.3 Private cloud network architecture
在OpenStack環(huán)境中包含很多不同的服務(wù),根據(jù)服務(wù)特點(diǎn),可以將其分為三類(見表3)。
表3 OpenStack基礎(chǔ)服務(wù)分類Tab.3 Openstack basic service classification
(1)控制節(jié)點(diǎn)HA
控制節(jié)點(diǎn)的高可用對(duì)整個(gè)OpenStack集群的高可用至關(guān)重要,因?yàn)榭刂乒?jié)點(diǎn)上運(yùn)行了很多管理服務(wù),計(jì)算節(jié)點(diǎn)和網(wǎng)絡(luò)節(jié)點(diǎn)實(shí)現(xiàn)高可用的前提就是這些控制組件是穩(wěn)定的,在故障發(fā)生后能夠繼續(xù)提供服務(wù)。在控制節(jié)點(diǎn)上要針對(duì)不同類型服務(wù)分別實(shí)現(xiàn)HA方案,見表4。
RabbitMQ-Server和MySQL這類有狀態(tài)的服務(wù),內(nèi)部有選舉機(jī)制,為了保證其數(shù)據(jù)一致性、避免網(wǎng)絡(luò)分區(qū)等故障,至少需要啟動(dòng)三個(gè)實(shí)例,所以控制節(jié)點(diǎn)至少需要3個(gè)。
(2)計(jì)算節(jié)點(diǎn)HA
計(jì)算節(jié)點(diǎn)作為宿主機(jī),運(yùn)行KVM虛擬機(jī),當(dāng)故障檢測(cè)程序檢測(cè)到宿主機(jī)發(fā)生故障時(shí),由于源宿主機(jī)和目的宿主機(jī)共享存儲(chǔ)系統(tǒng),只需要通過網(wǎng)絡(luò)發(fā)送客戶機(jī)的vCPU執(zhí)行狀態(tài)、內(nèi)存中的內(nèi)容、虛機(jī)設(shè)備的狀態(tài)到目的宿主機(jī)上,就可以實(shí)現(xiàn)KVM虛擬機(jī)的熱遷移,從而實(shí)現(xiàn)高可用性。
表4 控制節(jié)點(diǎn)服務(wù)高可用方案Tab.4 Control node service high availability solution
(3)網(wǎng)絡(luò)節(jié)點(diǎn)HA
通過故障檢測(cè)程序來判斷硬件和系統(tǒng)異常,當(dāng)某一網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)生故障時(shí),將該節(jié)點(diǎn)自動(dòng)屏蔽,將數(shù)據(jù)流量自動(dòng)引流到其它網(wǎng)絡(luò)節(jié)點(diǎn)。如果網(wǎng)絡(luò)負(fù)載較大,可以增加網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量,以提高網(wǎng)絡(luò)性能。
(4)存儲(chǔ)節(jié)點(diǎn)HA
在Ceph分布式存儲(chǔ)中,使用計(jì)算節(jié)點(diǎn)自帶SSD形成高性能的存儲(chǔ)池,構(gòu)建存儲(chǔ)計(jì)算超融合節(jié)點(diǎn)。使用存儲(chǔ)節(jié)點(diǎn)服務(wù)器掛載大容量SAS磁盤,構(gòu)建大容量的存儲(chǔ)池。池的劃分使用Ceph內(nèi)建的pool的概念實(shí)現(xiàn)。采用3副本和強(qiáng)一致性驗(yàn)證的方式,保障數(shù)據(jù)安全性的同時(shí),還可以保障高性能。當(dāng)有單一節(jié)點(diǎn)故障時(shí),不影響平臺(tái)穩(wěn)定性。
生產(chǎn)環(huán)境操作系統(tǒng)采用Linux發(fā)行版CentOS 7.1.1503 x86_64,OpenStack版本為L(zhǎng)iberty。服務(wù)器由3臺(tái)控制節(jié)點(diǎn)、3臺(tái)網(wǎng)絡(luò)節(jié)點(diǎn)、9臺(tái)計(jì)算節(jié)點(diǎn)、9臺(tái)存儲(chǔ)節(jié)點(diǎn)組成。計(jì)算節(jié)點(diǎn)使用曙光I820-G20高性能服務(wù)器,其余節(jié)點(diǎn)全部使用曙光I620-G20系列服務(wù)器。物理網(wǎng)絡(luò)使用3臺(tái)H3C s5560交換機(jī)負(fù)責(zé)平臺(tái)千兆網(wǎng)絡(luò)接入,3臺(tái)H3C s6800交換機(jī)負(fù)責(zé)平臺(tái)萬兆網(wǎng)絡(luò)接入,2臺(tái)H3C s9810交換機(jī)負(fù)責(zé)平臺(tái)核心網(wǎng)絡(luò)數(shù)據(jù)交換,如圖4所示。
圖4 云管理平臺(tái)Fig.4 OpenStack cloud management center
建成后的生產(chǎn)環(huán)境vCPU總量774,內(nèi)存總量4.4 TB,存儲(chǔ)總量607 TB。使用云管理平臺(tái)對(duì)云主機(jī)進(jìn)行統(tǒng)一管理。正常情況下一臺(tái)云主機(jī)從創(chuàng)建到可以通過網(wǎng)絡(luò)訪問經(jīng)歷的時(shí)間為10 s左右。采用OpenStack開源社區(qū)的Rally工具對(duì)平臺(tái)進(jìn)行API功能測(cè)試、高并發(fā)壓力測(cè)試,測(cè)試數(shù)據(jù)見表5~9。
表5 Keystone創(chuàng)建和刪除用戶(18.436 s)Tab.5 KeystoneBasic.create_delete_user(18.436 s)
表6 Glance創(chuàng)建和刪除鏡像(45.955 s)Tab.6 GlanceImages.create_and_delete_image(45.955 s)
表7 Cinder創(chuàng)建和刪除卷(16.473 s)Tab.7 CinderVolumes.create_and_delete_volume(16.473 s)
表8 Neutron創(chuàng)建和刪除網(wǎng)絡(luò)(38.386 s)Tab.8 NeutronNetworks.create_and_delete_networks(38.386 s)
表9 Nova啟動(dòng)和刪除虛擬機(jī)(77.396 s)Tab.9 NovaServers.boot_and_delete_server(77.396 s)
Rally測(cè)試結(jié)果顯示所有并發(fā)請(qǐng)求處理成功率為100%。
在穩(wěn)定性測(cè)試環(huán)節(jié),平臺(tái)承載66臺(tái)云主機(jī)已正常運(yùn)行262 d,云主機(jī)vCPU分配總量為465,占平臺(tái)vCPU總量的60%;內(nèi)存分配總量為1.3 TB,占平臺(tái)內(nèi)存總量的30%;存儲(chǔ)分配總量7.5 TB。測(cè)試期間平臺(tái)、各云主機(jī)及各云主機(jī)承載的業(yè)務(wù)系統(tǒng)功能正常。
截至2017年7月20日,湖北華中電力科技開發(fā)有限責(zé)任公司基于OpenStack、KVM虛擬化和Ceph分布式存儲(chǔ)等開源技術(shù)構(gòu)建的IaaS私有云平臺(tái)已經(jīng)完成了大數(shù)據(jù)平臺(tái)、變電狀態(tài)監(jiān)測(cè)系統(tǒng)、供電服務(wù)指揮平臺(tái)、配網(wǎng)實(shí)時(shí)管控、指標(biāo)看板系統(tǒng)、作業(yè)風(fēng)險(xiǎn)管控系統(tǒng)、項(xiàng)目管理系統(tǒng)、視頻診斷分析系統(tǒng)等業(yè)務(wù)系統(tǒng)的遷入,有效地解決了機(jī)房空間不足,資源利用不高,維護(hù)難等現(xiàn)實(shí)問題,為公司的信息化發(fā)展打下了牢固的基礎(chǔ)。
實(shí)踐證明OpenStack開源云計(jì)算技術(shù)具備成本低、穩(wěn)定性和可靠性高、易于管理等優(yōu)點(diǎn),可以有效地提高IT資源利用率,降低數(shù)據(jù)中心管理和運(yùn)維成本,促進(jìn)節(jié)能減排綠色發(fā)展。
(References)
[1]張科,董亮,鄒澄澄.利用云計(jì)算技術(shù)建立電力信息系統(tǒng)硬件資源池[J].湖北電力,2014,38(6):1-3.ZHANG Ke,DONG Liang,ZOU Chengcheng.Using technology of cloud computing build hardware resource pool of electric power information system[J].Hubei Electric Power,2014,38(6):1-3.
[2]OpenStack high availability guide[EB/OL].http://docs.openstack.org/ha-guide/.