潘玉偉
(華電國(guó)際山東信息管理有限公司,山東濟(jì)南 250101)
服務(wù)器虛擬化技術(shù)在PI實(shí)時(shí)數(shù)據(jù)庫(kù)的應(yīng)用
潘玉偉
(華電國(guó)際山東信息管理有限公司,山東濟(jì)南250101)
PI實(shí)時(shí)數(shù)據(jù)庫(kù)應(yīng)用環(huán)境要求盡可能的提高可用性和性能。同時(shí)需要靈活的在生產(chǎn)和測(cè)試環(huán)境中調(diào)配資源。而物理服務(wù)器要滿足高可用和高性能,需要準(zhǔn)備過量的硬件資源。本文提出一種基于服務(wù)器虛擬化技術(shù)結(jié)合PI實(shí)時(shí)數(shù)據(jù)庫(kù)COLLECTIVE技術(shù)的實(shí)時(shí)數(shù)據(jù)庫(kù)集群系統(tǒng)的部署方案。本文提出的方案對(duì)PI服務(wù)器、AF服務(wù)器、MSSQL數(shù)據(jù)庫(kù)服務(wù)器、域控制器服務(wù)器進(jìn)行高效虛擬化,提高了服務(wù)器和存儲(chǔ)的利用率,保證了PI服務(wù)器的高可用性和性能。
虛擬化實(shí)時(shí)數(shù)據(jù)庫(kù)PI
隨著電力行業(yè)信息化的不斷深化發(fā)展,實(shí)時(shí)數(shù)據(jù)庫(kù)作為存儲(chǔ)電力生產(chǎn)數(shù)據(jù)的核心數(shù)據(jù)庫(kù)變的越來越重要,因此對(duì)于實(shí)時(shí)數(shù)據(jù)庫(kù)的高可用和性能的要求也越來越高。Osisoft公司的PI實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)是目前在電力行業(yè)廣泛應(yīng)用的數(shù)據(jù)庫(kù)系統(tǒng),隨著PI數(shù)據(jù)庫(kù)的不斷發(fā)展,PI2012版本部署需要安裝PI服務(wù)器、域控制器、AF服務(wù)器、MSSQL服務(wù)器等多個(gè)服務(wù)器。鑒于以上兩個(gè)原因筆者研究了基于虛擬化技術(shù)的pi實(shí)時(shí)數(shù)據(jù)庫(kù)部署方案,一是提高實(shí)時(shí)數(shù)據(jù)庫(kù)的高可用性和性能,二是提高服務(wù)器資源利用率,滿足pi數(shù)據(jù)庫(kù)系統(tǒng)部署的服務(wù)器需要。
圖1 VMware虛擬機(jī)結(jié)構(gòu)
傳統(tǒng)的實(shí)時(shí)數(shù)據(jù)庫(kù)群集主要是服務(wù)器主備(Active-Standby)方式,服務(wù)器主-備方式由一臺(tái)服務(wù)器對(duì)外提供服務(wù),其它集群節(jié)點(diǎn)作為備份機(jī),備份節(jié)點(diǎn)平時(shí)處于備份狀態(tài),不接受服務(wù)請(qǐng)求,只有在主服務(wù)器出現(xiàn)停機(jī)情況時(shí),備份機(jī)才會(huì)接管業(yè)務(wù)請(qǐng)求,硬件利用率最高只能達(dá)到50%。這種方式的缺點(diǎn)主要有以下幾個(gè)方面:
(1)在系統(tǒng)切換過程中,客戶端與服務(wù)器之間的數(shù)據(jù)庫(kù)連接會(huì)中斷,需要重新啟動(dòng)連接才能繼續(xù)。
(2)由于數(shù)據(jù)庫(kù)在一臺(tái)服務(wù)器上運(yùn)行,造成資源浪費(fèi)。
服務(wù)器虛擬化利用虛擬化技術(shù)將操作系統(tǒng)和應(yīng)用進(jìn)行抽象化,使其與物理硬件分離,可以獲得一個(gè)更加高效、敏捷、簡(jiǎn)化的服務(wù)器環(huán)境,可以使目前的X86服務(wù)器以虛擬機(jī)的形式運(yùn)行多個(gè)操作系統(tǒng)和應(yīng)用,每個(gè)虛擬機(jī)都可以訪問底層服務(wù)器的資源。
當(dāng)前比較成熟的虛擬化產(chǎn)品和技術(shù)主要有VMware 公司的vSphere、Microsoft公司的hyper-v、citrix公司xen server。根據(jù)Gartner的調(diào)研報(bào)告顯示VMware的vSphere產(chǎn)品在2012年市場(chǎng)占有率達(dá)85%以上,在服務(wù)器虛擬化市場(chǎng)占有絕對(duì)領(lǐng)導(dǎo)地位,其產(chǎn)品技術(shù)成熟度得到廣泛的認(rèn)可。因此本文采用VMware vSphere5.5作為研究對(duì)象。
圖2 內(nèi)存壓縮技術(shù)
VMware vSphere中的核心組件是ESXi,它是一個(gè)可以獨(dú)立安裝和運(yùn)行在裸機(jī)上的系統(tǒng),而不是像workstation一樣依賴于宿主操作系統(tǒng),ESXi包含了一個(gè)vmkernel的微內(nèi)核,可直接調(diào)配物理硬件的cpu、內(nèi)存、磁盤等資源。根據(jù)VMware提供的數(shù)據(jù)顯示ESXi性能方面可以實(shí)現(xiàn)每秒執(zhí)行8900個(gè)數(shù)據(jù)庫(kù)事務(wù)、完成200000項(xiàng)I/O操作??蓪?shí)現(xiàn)接近于本機(jī)水平的虛擬機(jī)性能、可靠性和可擴(kuò)展性(如圖1)。
圖3 Vsphere群集示意圖
圖4 Vsphere群集架構(gòu)圖
圖5 在虛擬化中部署PI HA
ESXi還提供了一些高級(jí)資源管理功能,用以提高性能和整合率??梢葬槍?duì)不同的虛擬機(jī)制定不同的資源使用策略。以保證重要的業(yè)務(wù)應(yīng)用得到足夠的資源。在物理機(jī)所有的可用cpu之間采用智能進(jìn)程調(diào)度和負(fù)載均衡,以此方式管理虛擬機(jī)進(jìn)程的執(zhí)行。利用內(nèi)存過量分配可以配置虛擬機(jī)內(nèi)存超過物理機(jī)總內(nèi)存,提高內(nèi)存使用率,使主機(jī)能夠運(yùn)行更多的虛擬機(jī)。通過透明頁共享技術(shù)可以將多臺(tái)虛擬機(jī)完全相同的內(nèi)存頁僅存儲(chǔ)一次,增加物理機(jī)內(nèi)存使用率。利用內(nèi)存釋放技術(shù)可以將RAM從空閑虛擬機(jī)釋放出來給活動(dòng)虛擬機(jī)使用,以更大限度的提高內(nèi)存的使用率(如圖2)。
PI(Plant Information System)是由美國(guó)OSIsoft公司開發(fā)的一套基于Client/Server結(jié)構(gòu)的商品化軟件應(yīng)用平臺(tái),是過程工業(yè)全廠信息集成的必然選擇。作為工廠底層控制網(wǎng)絡(luò)與上層管理信息系統(tǒng)網(wǎng)絡(luò)連接的橋梁,PI在工廠信息集成中扮演著特殊和重要的角色。
與業(yè)界其他實(shí)時(shí)數(shù)據(jù)庫(kù)產(chǎn)品相比,PI實(shí)時(shí)數(shù)據(jù)庫(kù)有著強(qiáng)大的技術(shù)優(yōu)勢(shì)。PI系統(tǒng)除滿足通用的開放性、安全性等指標(biāo)外,重點(diǎn)解決各生產(chǎn)控制系統(tǒng)海量數(shù)據(jù)的收集、存儲(chǔ)、加工、發(fā)布等環(huán)節(jié)中出現(xiàn)的技術(shù)難題。是業(yè)界效率最高,使用最便捷,應(yīng)用最廣泛的實(shí)時(shí)數(shù)據(jù)庫(kù)。
目前,PI的數(shù)據(jù)吞吐量已達(dá)4百萬/秒;存儲(chǔ)能力為10-15萬個(gè)事件/秒;數(shù)據(jù)訪問能力為100萬個(gè)/秒,并可以在秒級(jí)時(shí)間內(nèi)取到1000點(diǎn)的2年至3年的歷史數(shù)據(jù)。
采用了旋轉(zhuǎn)門壓縮專利技術(shù)和獨(dú)到的二次過濾技術(shù),使進(jìn)入到PI 數(shù)據(jù)庫(kù)的數(shù)據(jù)經(jīng)過了最有效的壓縮,極大地節(jié)省了硬盤空間。據(jù)計(jì)算,每秒1萬點(diǎn)數(shù)據(jù)存儲(chǔ)一年,僅需要4G的空間,即一只普通硬盤也可存貯五到十年的數(shù)據(jù)。這在行業(yè)中是無與倫比的。PI 保持了對(duì)信息的精確記錄,同時(shí)又在存儲(chǔ)時(shí)保持極高的壓縮比。
在本文中筆者利用服務(wù)器虛擬化技術(shù)提出了三種不同的部署方案,分別適用于不同應(yīng)用環(huán)境,三種方案有不同的保護(hù)級(jí)別。其中虛擬機(jī)以單機(jī)方式運(yùn)行借助于虛擬化群集對(duì)虛擬機(jī)的保護(hù),在物理服務(wù)器服務(wù)器出現(xiàn)故障時(shí)能夠快速的使虛擬機(jī)切換到其它物理機(jī)運(yùn)行。虛擬機(jī)冷備方式是在運(yùn)行PI系統(tǒng)的虛擬機(jī)本身的服務(wù)器出現(xiàn)問題時(shí)能夠使用人工的方式快速切換的一種方式。以HA方式運(yùn)行PI服務(wù)器的方式能夠保證在PI虛擬機(jī)本身出現(xiàn)問題時(shí)不會(huì)中斷PI系統(tǒng)服務(wù)器的一種方案。
4.1虛擬機(jī)單機(jī)部署PI服務(wù)器運(yùn)行
本方案借助于vSphere群集的保護(hù)機(jī)制,在vSphere群集中部署多臺(tái)虛擬機(jī),在虛擬機(jī)上安裝PI系統(tǒng)所需要的服務(wù),其中包括域控制器、數(shù)據(jù)庫(kù)服務(wù)器、PI服務(wù)器、AF服務(wù)器(如圖3)。
將上述服務(wù)器以虛擬機(jī)額形式部署在vsphere群集中,vsphere群集開啟HA功能,每個(gè)虛擬機(jī)都受到群集的保護(hù)。
Vsphere群集的架構(gòu)如下圖圖4所示。
vSphere 5.0的HA是有三個(gè)主要的組件構(gòu)成:FDM,HOSTD,vCenter。
HA架構(gòu)中最重要的組件是FDM(Fault Domain Manager),它是HA的代理,F(xiàn)DM代理負(fù)責(zé)很多任務(wù),如主機(jī)之間資源信息和虛擬機(jī)狀態(tài)的傳遞,溝通群集中適合的HA的主機(jī),F(xiàn)DM也處理心跳機(jī)制,虛擬機(jī)的放置,虛擬機(jī)的重新啟動(dòng)、登錄及其它等等。
另一個(gè)主機(jī)上重要的代理叫做HOSTD,這個(gè)代理也負(fù)責(zé)很多任務(wù),如授權(quán)它打開虛擬機(jī)的電源、FDM直接和HOSTD、vCenter對(duì)話。FDM依賴于HOSTD,如果HOSTD無法運(yùn)行,在等待HOSTD開始運(yùn)作之前,F(xiàn)DM的所有功能也是停止的。
vCenter Server,vCenter是每個(gè)vSphere群集的核心,它負(fù)責(zé)著很多項(xiàng)任務(wù):部署和配置HA代理,群集配置改變后的通信,虛擬機(jī)的保護(hù)。
vCenter負(fù)責(zé)向ESXi主機(jī)上推送FDM代理,vCenter還負(fù)責(zé)群集中master主機(jī)的配置更改,HA還利用vCenter來獲取虛擬機(jī)的狀態(tài)信息,如果vCenter不可用,它不會(huì)影響到群集的現(xiàn)有配置,vCenter會(huì)實(shí)時(shí)顯示虛擬機(jī)的保護(hù)狀態(tài),群集配置,虛擬機(jī)同主機(jī)的兼容信息和主機(jī)清單列表,所以,在設(shè)計(jì)HA時(shí),故障切換時(shí)沒有加入vCenter,HA只是依賴vCenter配置和監(jiān)視群集。
Vsphere群集還支持分布式資源調(diào)度(DRS),VMware vSphere分布式資源調(diào)度(DRS)是運(yùn)行在VMware vCenter服務(wù)器(vCenter)上的基礎(chǔ)設(shè)施服務(wù),DRS聚合群集中ESXi主機(jī)資源,通過監(jiān)控利用率,自動(dòng)分配這些資源給虛擬機(jī),并能夠跨ESXi主機(jī)不斷進(jìn)行虛擬機(jī)資源優(yōu)化。
DRS基于靜態(tài)資源配置、動(dòng)態(tài)資源利用率和動(dòng)態(tài)資源爭(zhēng)用級(jí)別來為虛擬機(jī)計(jì)算資源。
DRS利用vMotion,以滿足虛擬機(jī)在群集中的可用資源配額,vMotion將虛擬機(jī)遷移到有更多可用資源的ESXi主機(jī)上來平衡利用率,DRS也可以使用vMotion進(jìn)行分散資源整理,使得虛擬機(jī)有更多的資源利用。
4.2虛擬機(jī)冷備方式運(yùn)行
虛擬機(jī)冷備方式在第一種方案的基礎(chǔ)上針對(duì)PI服務(wù)器制作一個(gè)clone版本,在PI服務(wù)器虛擬機(jī)出現(xiàn)問題的時(shí)候可以將clone版本的虛擬機(jī)啟動(dòng),為了保證數(shù)據(jù)的一致性,運(yùn)行中的PI服務(wù)器數(shù)據(jù)存放在單獨(dú)的虛擬磁盤(單獨(dú)的vmdk),在手動(dòng)切換虛擬機(jī)的時(shí)候,需要將數(shù)據(jù)盤從原虛擬機(jī)卸載,掛載到clone的虛擬機(jī)。
一個(gè)虛擬機(jī)的克隆就是原始虛擬機(jī)全部狀態(tài)的一個(gè)備份,或者一個(gè)鏡像。克隆的過程并不影響原始虛擬機(jī),克隆的操作一旦完成,克隆的虛擬機(jī)就可以脫離原始虛擬機(jī)而獨(dú)立存在。而且在克隆的虛擬機(jī)中和原始虛擬機(jī)中的操作是相對(duì)獨(dú)立的,不會(huì)相互影響??寺∵^程中,vCenter會(huì)生成和原始虛擬機(jī)不同的MAC地址和UUID,這就允許克隆的虛擬機(jī)和原始虛擬機(jī)在同一網(wǎng)絡(luò)中出現(xiàn),并且不會(huì)產(chǎn)生任何沖突。
vCenter支持兩種類型的克?。和暾寺『玩溄涌寺 ?/p>
一個(gè)完整克隆是和原始虛擬機(jī)完全獨(dú)立的一個(gè)備份,它不和原始虛擬機(jī)共享任何資源, 可以脫離原始虛擬機(jī)獨(dú)立使用。
一個(gè)鏈接克隆需要和原始虛擬機(jī)共享同一虛擬磁盤文件,不能脫離原始虛擬機(jī)獨(dú)立運(yùn)行。但采用共享磁盤文件卻能大大縮短創(chuàng)建克隆虛擬機(jī)的時(shí)間,同時(shí)還可節(jié)省寶貴的物理磁盤空間。通過鏈接克隆,可以輕松地為不同的任務(wù)創(chuàng)建一個(gè)獨(dú)立的虛擬機(jī)。
在克隆虛擬機(jī)時(shí),虛擬機(jī)創(chuàng)建整個(gè)副本,這個(gè)副本包括虛擬機(jī)的硬件配置、安裝的軟件、用戶的設(shè)置和用戶的文件等,是一個(gè)完整的復(fù)制過程。在這個(gè)復(fù)制過程中,可以設(shè)置一些自定義的屬性(如IP地址、計(jì)算機(jī)名稱、用戶等),如果使用自定義的規(guī)范,就必須在克隆前設(shè)置自定義的選項(xiàng)。
本方案中建議使用完整克隆。
4.3HA方式運(yùn)行PI服務(wù)器
以HA(OSIsoft High Availability)方式運(yùn)行的PI服務(wù)器是利用了PI實(shí)時(shí)數(shù)據(jù)庫(kù)COLLECTIVE技術(shù),創(chuàng)建多個(gè)虛擬機(jī),組建PI COLLECTIVE群集。當(dāng)其中的主服務(wù)器出現(xiàn)問題時(shí),系統(tǒng)不會(huì)中斷對(duì)外服務(wù)。在PI Server 中使用Collective Manager創(chuàng)建和管理 PI集合,實(shí)現(xiàn)高可用性 (HA)。使用虛擬化的方式可以減少部署的群集物理服務(wù)器,而達(dá)到與使用物理服務(wù)器相同的效果(如圖5)。PI HA的部署不需要共享存儲(chǔ),使用虛擬機(jī)也可以更方便的部署PI COLLECTIVE群集。
PICOLLECTIVE群集是通過PIServer的復(fù)制,允許存在多個(gè)PI Server,其中包括一臺(tái)主服務(wù)器和一臺(tái)或多臺(tái)輔助服務(wù)器,統(tǒng)稱為“群集(collective)”服務(wù)器??梢栽谌杭?wù)器內(nèi)部復(fù)制PIServer 點(diǎn)數(shù)據(jù)庫(kù)、模塊數(shù)據(jù)庫(kù)、用戶數(shù)據(jù)庫(kù)、信任表和配置表。一旦PI客戶端與主服務(wù)器的連接不可用,任何基于PI客戶端的SDK(如ProcessBook、DataLink)都能自動(dòng)將連接從主PIServer切換至復(fù)制的服務(wù)器,從而確保所有客戶端都具有讀取PI數(shù)據(jù)的權(quán)限。
任何配置更改都只寫到集合服務(wù)器的主服務(wù)器中,主服務(wù)器會(huì)維護(hù)一份配置更改日志。輔助服務(wù)器會(huì)定期查看更改日志并對(duì)服務(wù)器中的配置數(shù)據(jù)進(jìn)行相應(yīng)的更新。如果主服務(wù)器宕機(jī),配置數(shù)據(jù)便無法更改。此時(shí)若用戶嘗試做出更改,則會(huì)顯示錯(cuò)誤消息。一旦主服務(wù)器無法恢復(fù)或恢復(fù)時(shí)間超過標(biāo)準(zhǔn)的時(shí)間框架,則可使用簡(jiǎn)單的手工處理程序?qū)⑤o助服務(wù)器的角色提升為主服務(wù)器角色。
VMware的服務(wù)器虛擬化技術(shù)和Osisoft的PI實(shí)時(shí)數(shù)據(jù)庫(kù)都是各自行業(yè)領(lǐng)域中的佼佼者,將二者結(jié)合實(shí)現(xiàn)了對(duì)PI服務(wù)器性能和可靠性的提高。實(shí)現(xiàn)了對(duì)PI數(shù)據(jù)庫(kù)系統(tǒng)高效的管理,在電力企業(yè)的信息系統(tǒng)建設(shè)中得到了非常好的驗(yàn)證。
[1]馬博峰.VMware、Citrix和Microsoft虛擬化技術(shù)詳解與應(yīng)用實(shí)踐.
[2]John SavillMicrosoft Virtualization Secrets.
[3]劉云生.實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng).
PI real time database application environment is required to improve availability and performance. At the same time, that is necessary for flexible deployment of resources in the production and testing environment. While the physical server to meet the high availability and high performance, the need to prepare the excess hardware resources. In this paper, we propose a scheme of real-time database cluster system based on server virtualization technology combined with COLLECTIVE PI technology. The scheme proposed in this paper on PI servers, AF server, SQL database server, domain controller, server for efficient virtualization, improve the utilization of server and storage and ensure the PI server high availability and performance.
VirtualizationReal Time Database