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