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