張薇 施紹興
摘要:自楚雄卷煙廠新廠區投產以來,鍋爐一直處于高負荷長時間運轉狀態,原上位機已經老化嚴重,死機故障頻發,不利于鍋爐的操作和監控,降低了鍋爐班的生產保障能力。為解決上述問題,動力車間鍋爐運行班申報了旨在提高鍋爐房自動控制系統優化提升的科技項目,通過前期調研和綜合分析現狀,確定了新方案的實施,本文以此就楚雄卷煙廠鍋爐房自動控制系統服務器虛擬化技術展開了簡單闡述,僅供參考。
關鍵詞:煙廠鍋爐;自動控制系統;優化提升
引言
在信息技術領域,虛擬化無疑是目前最受關注的熱點技術之一,特別是在各大企業的傳統IT業務開銷不斷提高的形勢下,虛擬化因其具有能夠節約成本的優勢而備受重視。根據IDC的預測,虛擬化市場在最近兩三年內江迎來飛速增長。當前,掌握虛擬化核心技術的IT廠商基本為國外大廠,他們的發展戰略和技術特點各有特色,本文以我廠實際情況,展開論述。
1服務器虛擬化實現方案
1.1全虛擬化
在虛擬服務器和底層硬件之間建立一個hypervisor抽象層。VMware和Microsoft是代表該方法的兩個商用產品品牌,而KVM是面向Linux系統的開源產品。Hypervisor捕獲CPU指令,為指令訪問硬件控制器和外設充當中介。因而,全虛擬化技術幾乎能讓任何一款操作系統不用改動就能安裝搭配虛擬服務器上,而他們不知道自己與逆行在虛擬化環境。主要缺點是Hypervisor給處理器帶來開銷。在全虛擬化的環境下,Hypervisor運行在裸金屬架構上,充當主機操作系統,而由hypervisor管理的虛擬服務器運行客戶端操作系統(guest OS)。
1.2半虛擬化
半虛擬化的思想就是,讓客戶操作系統知道自己實在虛擬機上運行,那么它原先在屋里機上執行的一些特權指令,就會修改成其他方式,這種方式是和VMM約定好的,這就相當于定制化操作系統,通過修改代碼把操作系統一直到一種新的架構上來。所以像Xen這種半虛擬化技術,客戶機操作系統都是有一個專門的定制內核版本,這樣一來,就不會有捕獲異常、翻譯、模擬的過程了,性能損耗非常低。這就是Xen架構的又是,因為微軟不支持修改內核代碼,無法虛擬化Windows,所以Xen只支持虛擬化Linux。
2虛擬化核心技術
服務器虛擬化的實現是對三種硬件資源的虛擬化:CPU、內存、I/O設備。此外,為了實現更好的動態資源整合,當前的服務器虛擬化大多支持虛擬機的實時遷移。
2.1 CPU虛擬化
CPU虛擬化技術把物理CPU抽象成虛擬CPU,同一時刻一個物理CPU只能運行一個虛擬CPU的指令。每個客戶操作系統使用一個或多個虛擬CPU,在這些客戶操作系統之間,虛擬CPU的運行相互隔離,互不影響。基于X86架構的操作系統被設計成直接運行在物理機器上,這些操作系統在設計之初都假設其完整地控制底層物理機硬件。在X86體系結構中,處理器有4個運行級別,分別為RING 0、RING 1、RING 2和RING 3。其中,RING 0級別是最高級別,執行操作系統內核指令以及使用也全指令。應用程序的代碼一般運行在RING 3級別,不能做控制操作。如果要做,比如要修改磁盤文件,那就要通過執行系統調用函數,執行系統調用的時候,CPU的運行幾倍會從RING 3切換到RING 0,并跳轉到系統調用對應的內核代碼位置執行,這樣內科就完成了設備訪問,完成之后再從RING 0返回RING 03.這個過程也稱作用戶態和內核態的切換。在X86體系結構中的虛擬化實現比較困難,因為主機操作系統工作在RING 0級別的,客戶操作系統就不能也在RING 0級別,但是客戶操作系統不知道這一點,以前執行上面指令,現在還是執行什么指令,所以這時候VMM就要避免這種事情發生。一般虛擬機管理程序是通過觸發異常來處理的。當客戶操作系統執行特權指令時,會觸發異常,然后虛擬機管理程序捕獲這個異常,在異常里面做解碼、執行,最后寫回到客戶操作系統內,客戶操作系統會認為自己的特權指令工作正常,繼續運行。但是這個性能損耗非常大,一條指令,現在需要通過復雜的異常處理過程。
為了解決X86體系結構下的CPU虛擬化問題,除了通過軟件的方式以外,還提出了在硬件層添加支持功能的硬件輔助虛擬化方案來處理高級別指令。硬件輔助虛擬化這項技術將支持虛擬化技術的CPU加入了新的指令集和處理器運行模式來完成與CPU虛擬化相關的功能。Intel和AMD分別推出了硬件輔助虛擬化技術Intel VT-x和AMD-Vi。以Intel VT-x技術為例,支持硬件輔助虛擬化的處理器增加了一套名為虛擬機擴展(Virtual Machine Extensions,VMX)的指令集,該指令集包括十條左右的新增指令來支持與虛擬化相關的操作。此外,Intel VT-x為處理器定義了兩種運行模式,Root模式和Non-root模式。虛擬化平臺運行在root模式,客戶操作系統運行在non-root模式。由于硬件輔助虛擬化支持客戶操作系統直接在其上運行,無需再進行捕獲或解碼等附加動作,因此減少了性能開銷,簡化了虛擬化平臺的設計。主流的虛擬化軟件廠商都在通過和CPU廠商的合作來提高他們的虛擬化產品的性能和兼容性。
2.2內存虛擬化
內存虛擬化技術把原機的真實物理內存空間包裝成多個虛擬空間統一管理,這些虛擬的物理內存分別供每個虛擬機使用,使得每個虛擬機擁有各自獨立的內存空間。在服務器虛擬化技術中,因為內存是虛擬機訪問最頻繁的設備,因此內存虛擬化與CPU虛擬化具有同等重要的地位。在內存虛擬化中,VMM要能夠管理物理主機上的內存,并按每個虛擬機對內存的需求劃分機器內存,同時保持各個虛擬機對內存訪問的相互隔離。物理主機的內存是一段連續的地址空間,上層應用對于內存的訪問多是隨機的,因此VMM需要維護物理主機里內存地址塊和虛擬機內部看到的連續內存塊的映射關系,保證虛擬機的內存訪問是連續的、一致的。操作系統對內存管理采用了段式、頁式、段頁式、多級頁表、緩存、虛擬內存等多種技術,VMM必須能夠支持這些技術,病使他們在虛擬環境下仍能夠保證高效運作。內存作為一種純屬設備,使程序運行所必不可少的,因為所有的程序都要通過內存將代碼和數據提交到CPU進行解碼和執行。如果計算機中運行的應用程序過多,就會耗盡系統中的內存,成為提高計算機性能的瓶頸。之前,人們利用擴展內存和優化程序來解決該問題,但是這些方法成本都很高,因此,虛擬內存技術出現了,現在所有基于X86架構的CPU都配置了內存管理單元(Memory Management Unit,MMU)和頁表轉換緩沖(Translation Lookaside Buffer,TLB),通過它們來優化虛擬內存的性能。傳統的內存管理維護了應用程序所看到的虛擬內存和物理內存映射關系。為了在物理服務器上能夠運行多個虛擬機,VMM需要具備管理虛擬機內存管理單元。由于新增了這樣一個管理層次,所以虛擬機內存管理與傳統的內存管理有所區別。虛擬機中操作系統看到的“物理”內存不再是真正的物理內存,而是被VMM管理的“偽”物理內存。與這個“物理”內存相對應的是新概念“機器內存”。機器內存是指物理服務器硬件上真正的內存。在內存虛擬化中存在著邏輯內存、“物理”內存和機器內存三種內存類型,而這三種內存的地址空間被稱為邏輯內存、“物理”地址和機器地址。在內存虛擬化中,邏輯內存與機器內存之間的映射關系是由內存虛擬化管理單元來負責的。
內存虛擬化管理單元的實現主要有兩種方法:
第一種是影子頁表法。客戶操作系統維護這自己的頁表,該頁報中的內存地址客戶操作系統看到的“物理”地址。同時,VMM也為每臺虛擬機維護著一個對應的頁表,只不過這個頁表中記錄的是真實的機器內存地址。VMM中的頁表是以客戶操作系統維護的頁表為藍本建立起來的,并且會隨著客戶操作系統頁表的更新而更新,就像它的影子一樣,所以被稱為影子頁表。VMware和KVM都采用了影子頁表技術。
第二種是頁表寫入法。當客戶操作系統創建一個新頁表時,需要向VMM注冊該頁表。此時,VMM將奪取客戶操作系統對頁表的寫權限,并向該頁表寫入由VMM維護的機器內存地址。當客戶操作系統訪問內存時,它在自己的頁表中獲得真實的機器內存地址。客戶操作系統對頁表的每次修改都會“trap”VMM,由VMM來更新頁表,保證其頁表項記錄的始終是真實的機器地址。頁表寫入法需要修改客戶操作系統,Xen是采用該方法的典型代表。
2.3 I/O設備虛擬化
除了處理器與內尺寸外,服務器中需要虛擬化的關鍵部件還包括I/O設備。I/O設備虛擬化技術把物理機的真實I/O設備統一管理,包裝成多個虛擬設備給若干個虛擬機使用,響應每個虛擬機的I/O設備訪問請求。目前主流的I/O設備虛擬化都是通過軟件的方式實現的。虛擬化平臺作為在共享硬件與虛擬化之間的平臺,為I/O設備管理提供了便利,也為虛擬機提供了豐富的虛擬設備功能。
2.4實時遷移技術
實時遷移是指在保證虛擬機上服務正常運行的同時,虛擬機在不同的物理主機之間進行遷移,其邏輯步驟與離線遷移幾乎完全一致。為了保證遷移過程中虛擬機服務的可用,遷移過程僅有機器短暫的停機時間。遷移的起步階段,服務在源主機運行,經過一個幾乎察覺不到的切換,源主機將控制權轉移到目的主機,服務在目的主機上繼續運行。實時遷移需要VMM的介入,即通過源主機和目標主機上VMM的相互配合,來完成客戶操作系統的內存和其他狀態信息的拷貝。實時遷移開始以后,內存頁面被不斷地從源VMM拷貝到目標VMM。這個拷貝過程對源虛擬機的運行不會產生影響。當遷移進行到一定階段,目的主機已經具備了運行系統的必要資源,目標虛擬機開始運行,VMM切換源虛擬機與目標虛擬機,源虛擬機的運行被終止,實時遷移過程完成。
實時遷移技術最初只應用在系統硬件維護方面。眾所周知,數據中心的硬件需要定期地進行維護和更新,而虛擬機上的服務需要不間斷地運行。如果使用實時遷移技術,便可以在服務不中斷的情況下,將虛擬機遷移到另外一臺物理主機上,然后對原來虛擬機所在的物理主機進行硬件維護。對于服務本身而已,由于切換的時間機器短暫,用戶是感覺不到服務中斷的,因而遷移過程對用戶是透明的。目前,實時遷移技術更多的是與資源整合操作結合起來使用,通過虛擬機動態資源調度方法,數據中心的戲院利用率可以得到顯著提升。
3結語
綜上分析,楚雄卷煙廠鍋爐房自動控制系統服務器虛擬化技術確定利用虛擬軟件VMWare Workstation 15,將鍋爐控制系統整體虛擬化至DCS室工程師操作站。
參考文獻
[1]李友宏.面向煉化企業的服務器虛擬化技術方案設計[J].中國管理信息化,2019(5):164-167.
[2]郭婧.關于利用虛擬化技術對服務器和應用系統進行整合的研究[J].電子測試,2019(Z1):85-87.