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