亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于虛擬機(jī)的高可用終端集群方案說(shuō)明

        2019-06-20 10:31:23劉洪磊沈健王濤
        電子技術(shù)與軟件工程 2019年5期
        關(guān)鍵詞:虛擬機(jī)

        劉洪磊 沈健 王濤

        摘要??? 本文選擇了Ubuntu Linux宿主操作系統(tǒng)+VirtualBox虛擬機(jī)實(shí)現(xiàn)了集群管理層,增加了各類虛擬設(shè)備包括軟件定義串口、軟件定義聲卡、軟件定義CAN口和軟件定義顯示,修復(fù)了客戶機(jī)3D加速缺陷,重寫了網(wǎng)絡(luò)虛擬設(shè)備以支持萬(wàn)兆網(wǎng),基本達(dá)到了實(shí)用程度,在各種場(chǎng)景下掉電測(cè)試可用性約為99%。

        【關(guān)鍵詞】虛擬機(jī) 高可用集群 終端集群

        1 高可用集群介紹

        高可用集群(High?Available Cluster),指一類以減少業(yè)務(wù)的服務(wù)中斷時(shí)間為目的的服務(wù)器集群。它通過(guò)一定集群技術(shù)保護(hù)業(yè)務(wù)程序運(yùn)行,降低因軟硬件或人為故障對(duì)用戶業(yè)務(wù)的影響。

        集群的可用性一般通過(guò)集群可靠性(Reliablity)和可維護(hù)性(Maintainablity)衡量。項(xiàng)目上一般采用平均無(wú)故障時(shí)間(MTTF)指標(biāo)以度量系統(tǒng)可靠性,采用平均維修時(shí)間(MTTR)指標(biāo)以度量系統(tǒng)可維護(hù)性,因而集群可用性指標(biāo)計(jì)算公式為:HA=MTTF/(MTTF+MTTR)*100%,99.9%約為一年內(nèi)連續(xù)服務(wù)時(shí)的中斷時(shí)間不超過(guò)10小時(shí)。

        通常業(yè)界提及的高可用集群,一般指C/S或B/S架構(gòu)中的服務(wù)器(server)集群——如數(shù)據(jù)庫(kù)服務(wù)器集群、WEB服務(wù)器集群、文件服務(wù)器集群等。一個(gè)高可用服務(wù)器集群由多個(gè)聯(lián)網(wǎng)的服務(wù)器硬件節(jié)點(diǎn)和管理套件構(gòu)成。管理套件一般匯總集群內(nèi)的軟硬件資源信息,相互檢測(cè)節(jié)點(diǎn)心跳,在節(jié)點(diǎn)故障時(shí)切換網(wǎng)絡(luò)、把指定的業(yè)務(wù)程序在其它節(jié)點(diǎn)啟動(dòng)起來(lái)。這類管理套件已經(jīng)成熟,所管理的設(shè)備一般僅限計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)設(shè)備,中心機(jī)房部署較多。

        在實(shí)際應(yīng)用中,大量面向終端用戶的業(yè)務(wù)程序——例如文檔程序、繪圖程序、分析程序等,也需要高可用性。這類業(yè)務(wù)程序在正常運(yùn)行時(shí),除了計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)等設(shè)備外,通常還需要有鍵盤、鼠標(biāo)、顯示器或觸摸屏,以及各類外設(shè)如COM串口、聲卡或攝像頭等設(shè)備。對(duì)于一些特殊場(chǎng)景,例如話務(wù)中心、指揮中心等,一般一個(gè)終端席位對(duì)應(yīng)著一個(gè)固定職責(zé)。這類場(chǎng)景的高可用終端集群,需要保存業(yè)務(wù)程序的狀態(tài),并處理業(yè)務(wù)程序與鍵盤鼠標(biāo)、顯示以及各類外設(shè)的關(guān)系。此處我們提出了一種基于虛擬機(jī)(Virtual Machine)的集群實(shí)施方案,結(jié)合軟件定義硬件(SDHW,Software Defined Hardware),實(shí)現(xiàn)了高可用終端集群。

        2 基于虛擬機(jī)的高可用終端集群方案

        2.1 系統(tǒng)方案概述

        高可用終端集群系統(tǒng)由集群硬件和集群軟件構(gòu)成。集群硬件提供軟件運(yùn)行環(huán)境。集群軟件與支撐硬件一起提供給用戶應(yīng)用程序一個(gè)運(yùn)行環(huán)境。

        高可用終端集群硬件,包括固定在終端席位的鍵盤鼠標(biāo)顯示器或觸摸屏,聯(lián)網(wǎng)的計(jì)算機(jī),及各類已固定連接的串口或聲卡外設(shè)等,按作用劃分為計(jì)算存儲(chǔ)層、交換控制層、接口轉(zhuǎn)換層等3層。

        其中,各主要組件通過(guò)10G以太網(wǎng)聯(lián)網(wǎng)。計(jì)算機(jī)就是一個(gè)符合一定標(biāo)準(zhǔn)的獨(dú)立計(jì)算機(jī),運(yùn)行業(yè)務(wù)程序。存儲(chǔ)服務(wù)器掛載多個(gè)RAID磁盤,提供集群存儲(chǔ)。切換板負(fù)責(zé)高速視頻數(shù)據(jù)與USB數(shù)據(jù)切換。接口板具有顯示制式轉(zhuǎn)換、網(wǎng)絡(luò)外設(shè)輸出等功能,外接顯示器、麥克風(fēng)音響和串口等。集群內(nèi)網(wǎng)絡(luò)被分為3個(gè)平面,存儲(chǔ)網(wǎng)絡(luò)提供NAS/SAN存儲(chǔ)或磁盤數(shù)據(jù)同步服務(wù),管理網(wǎng)絡(luò)提供低速外設(shè)網(wǎng)絡(luò)化和集群心跳、應(yīng)用遷移等服務(wù),業(yè)務(wù)網(wǎng)絡(luò)供最終用戶自己使用。

        高可用終端集群軟件,包括物理(宿主)機(jī)系統(tǒng),虛擬機(jī)軟件,各類軟件定義設(shè)備,集群管理軟件以及用戶操作系統(tǒng)、用戶應(yīng)用等,按作用可粗略劃分為設(shè)備定義層、集群管理層、操作系統(tǒng)層、用戶應(yīng)用層等4層。

        其中,各主要組件如有必要通過(guò)網(wǎng)絡(luò)通信交互。設(shè)備定義層,按照軟件定義硬件(Software Defined)思想設(shè)計(jì),對(duì)顯示、聲卡以及串口等外設(shè)進(jìn)行網(wǎng)絡(luò)化、虛擬化處理,以滿足終端集群的高可用需求。集群管理層,主要結(jié)合軟件定義設(shè)備、虛擬機(jī)等,提供給用戶一個(gè)操作系統(tǒng)安裝環(huán)境。操作系統(tǒng)與用戶應(yīng)用,由用戶依據(jù)需求而安裝。在用戶應(yīng)用層內(nèi),提供一個(gè)集群管理客戶端,讓用戶設(shè)置策略管理集群。

        該集群系統(tǒng)將提供給用戶一個(gè)高可用終端運(yùn)行環(huán)境。例如,用戶的業(yè)務(wù)程序正在一個(gè)主板上運(yùn)行,當(dāng)該主板故障時(shí),這個(gè)主板上的操作系統(tǒng)連同業(yè)務(wù)程序?qū)⒆詣?dòng)遷移到指定主板上,恢復(fù)以前運(yùn)行狀態(tài),繼續(xù)工作。原來(lái)用戶所在的鍵盤鼠標(biāo)、顯示器等繼續(xù)可用。原有外設(shè)所接的設(shè)備如聲卡外接麥克風(fēng)、串口GPS等可以繼續(xù)工作。

        2.2 硬件環(huán)境設(shè)計(jì)

        本集群內(nèi)的計(jì)算機(jī)、交換機(jī)、存儲(chǔ)服務(wù)器等組件,選擇市場(chǎng)通用IT基礎(chǔ)設(shè)施即可。其中建議計(jì)算機(jī)選擇DisplayPort輸出接口,可以輸出到多類制式的顯示器,支持熱插拔完成在線顯示切換。本集群內(nèi)的切換板、接口板,可以選擇市場(chǎng)單板拼裝或者自行開發(fā)。切換板完成顯示切換,可選擇市場(chǎng)高端KVM切換器替代。接口板提供顯示器制式轉(zhuǎn)換、網(wǎng)絡(luò)化串口、聲卡等功能,可選擇多個(gè)市場(chǎng)設(shè)備組裝。為了最終設(shè)備簡(jiǎn)潔可靠,方便終端用戶使用,可以自行開發(fā)該集群硬件。

        2.3 虛擬機(jī)選型

        虛擬機(jī)(Virtual Machine,VM)技術(shù)是虛擬化的一種常用技術(shù),指通過(guò)軟件模擬的一個(gè)具有完整硬件功能的、運(yùn)行在物理硬件隔離環(huán)境中的計(jì)算機(jī)系統(tǒng)。此處根據(jù)上下文,虛擬機(jī)有時(shí)指稱提供虛擬機(jī)運(yùn)行環(huán)境的管理軟件(Virtual Machine Supervisor),或者僅指運(yùn)行在模擬硬件上的一個(gè)客戶機(jī)操作系統(tǒng)(Guest Machine OS)。市場(chǎng)常用的虛擬機(jī)軟件如VMWare公司的Vmware虛擬機(jī)、ESX服務(wù)器,微軟公司的Hyper-V虛擬機(jī),Oracle公司開源VirtualBox虛擬機(jī),原劍橋大學(xué)開源的XEN虛擬機(jī),Redhat公司開源的KVM虛擬機(jī)等。虛擬機(jī)監(jiān)視器(VMM,Virtual Machine Monitor)是虛擬機(jī)運(yùn)行核心,它是一層處于計(jì)算機(jī)硬件(或宿主機(jī)系統(tǒng))與客戶機(jī)操作系統(tǒng)之間的代碼,運(yùn)行在特權(quán)模式,隔離并管理上層運(yùn)行的虛擬機(jī),仲裁虛擬機(jī)對(duì)底層硬件的訪問(wèn)。它結(jié)合虛擬機(jī)的設(shè)備管理模塊,為每個(gè)客戶機(jī)操作系統(tǒng)虛擬一套獨(dú)立于實(shí)際硬件的虛擬硬件環(huán)境(包括處理器,內(nèi)存,I/O設(shè)備等),把物理硬件轉(zhuǎn)換成用戶所需的虛擬硬件。

        本集群內(nèi)的虛擬機(jī),除了處理作為服務(wù)器角色的計(jì)算、網(wǎng)絡(luò)與存儲(chǔ)外,尚需要處理鍵盤鼠標(biāo)顯示器或觸摸屏以及各類外設(shè)設(shè)備,同時(shí)具有故障遷移等功能。設(shè)計(jì)的主要規(guī)格可列表如下:

        (1)支持客戶機(jī)安裝各系列Windows系統(tǒng)、Linux系統(tǒng)。

        (2)支持客戶機(jī)SMP計(jì)算,虛擬CPU可達(dá)32核。

        (3)支持IntelVT-x或AMD-V虛擬化技術(shù),提高性能。

        (4)支持客戶機(jī)掛載虛擬的IDE/SCSI/SATA磁盤存儲(chǔ)。

        (5)支持網(wǎng)絡(luò)橋接虛擬化。

        (6)支持客戶機(jī)ACPI/APIC感知能力。

        (7)具有客戶機(jī)本地顯示功能,不依賴遠(yuǎn)端顯示。

        (8)支持客戶機(jī)多屏顯示。

        (9)虛擬機(jī)支持遠(yuǎn)端顯示能力,不依賴客戶機(jī)操作系統(tǒng)。

        (10)支持3D硬件加速,提供客戶機(jī)3D虛擬化加速能力。

        (11)提供本機(jī)USB、顯示等設(shè)備作為客戶機(jī)虛擬設(shè)備。

        (12)支持掛載遠(yuǎn)端物理設(shè)備,提供客戶機(jī)串口、聲卡等虛擬設(shè)備。

        (13)支持直接掛載iSCSI磁盤。

        (14)客戶機(jī)支持網(wǎng)絡(luò)PXE啟動(dòng)(Preboot Execution Environment)。

        (15)支持客戶機(jī)在線遷移。

        (16)客戶機(jī)心跳檢測(cè)能力,可檢測(cè)客戶機(jī)操作系統(tǒng)宕機(jī)。

        由于市場(chǎng)通用虛擬機(jī)軟件無(wú)法完全滿足這些需求,所以我們將選擇開源的虛擬機(jī)軟件定制開發(fā)。

        2.4 故障遷移設(shè)計(jì)

        對(duì)那些運(yùn)行在Windows或Linux上的終端應(yīng)用程序,很難僅遷移應(yīng)用軟件本身狀態(tài),使其在故障后繼續(xù)運(yùn)行。此處采用虛擬機(jī)遷移技術(shù)實(shí)現(xiàn)應(yīng)用遷移。

        虛擬機(jī)遷移技術(shù),是指通過(guò)復(fù)制虛擬機(jī)數(shù)據(jù)(如虛擬機(jī)配置、磁盤存儲(chǔ)或內(nèi)存狀態(tài)等),可以讓一個(gè)虛擬機(jī)在不同的物理機(jī)上運(yùn)行。(這里不涉及P2V或V2P的客戶物理機(jī)遷移。)一般按遷移時(shí)機(jī)把其分為2類遷移。第1類遷移是離線遷移(或冷遷移、靜態(tài)遷移、常規(guī)遷移),需要在虛擬機(jī)關(guān)閉或暫停的情況下執(zhí)行,它將源物理(宿主)機(jī)上的虛擬機(jī)配置、磁盤文件等復(fù)制到目標(biāo)物理機(jī)內(nèi),通過(guò)配置虛擬機(jī)可以重新運(yùn)行。第2類遷移是在線遷移(或熱遷移、動(dòng)態(tài)遷移、實(shí)時(shí)遷移),可以在虛擬機(jī)正常運(yùn)行的情況下執(zhí)行,它需要源和目標(biāo)物理機(jī)采用共享存儲(chǔ),以相同目錄結(jié)構(gòu)存放虛擬機(jī),直接將源物理(宿主)機(jī)上的虛擬機(jī)運(yùn)行環(huán)境以及內(nèi)存實(shí)時(shí)同步到目標(biāo)物理機(jī),讓虛擬機(jī)接著以前狀態(tài)繼續(xù)運(yùn)行。第1類離線遷移無(wú)法滿足高可用性需求。為了達(dá)到終端集群的高可用性,這里重點(diǎn)討論第2類在線遷移。

        目前開源的虛擬機(jī)軟件如LinuxKVM或OracleVirtualBox等,在源和目標(biāo)物理機(jī)都正常運(yùn)行時(shí)執(zhí)行在線遷移,從用戶角度看虛擬機(jī)僅有毫秒(milliseconds)級(jí)別中斷。

        注:遷移成功后,源上客戶機(jī)的內(nèi)存、磁盤存儲(chǔ)和網(wǎng)絡(luò)連接等在目標(biāo)物理機(jī)上保持不變,源物理機(jī)上的客戶機(jī)關(guān)閉,目標(biāo)物理機(jī)上的客戶機(jī)繼續(xù)運(yùn)行。

        但是此場(chǎng)景并非自動(dòng)故障遷移所需要的。對(duì)于自動(dòng)故障遷移,僅當(dāng)源物理機(jī)(和其客戶機(jī)操作系統(tǒng))故障崩潰時(shí),我們才需要目標(biāo)物理機(jī)上的客戶機(jī)操作系統(tǒng)繼續(xù)運(yùn)行。在源物理機(jī)正常時(shí),目標(biāo)物理機(jī)上客戶機(jī)系統(tǒng)不應(yīng)運(yùn)行。

        當(dāng)集群系統(tǒng)啟用自動(dòng)故障遷移功能時(shí),在源物理機(jī)正常運(yùn)行時(shí),目標(biāo)物理機(jī)上的虛擬機(jī)處于熱備狀態(tài),不實(shí)際運(yùn)行。當(dāng)源物理機(jī)崩潰后,目標(biāo)物理機(jī)上立即接管客戶機(jī)系統(tǒng),恢復(fù)客戶機(jī)系統(tǒng)的運(yùn)行。在故障遷移后,原客戶機(jī)系統(tǒng)所連接的外設(shè)如鍵盤鼠標(biāo)顯示器、串口、聲卡等保持不變,繼續(xù)可用。設(shè)計(jì)的主要規(guī)格可列表如下:

        (1)虛擬機(jī)基于共享存儲(chǔ)運(yùn)行,支持在線遷移。

        (2)客戶機(jī)系統(tǒng)遷移到目標(biāo)機(jī)后,原外設(shè)連接關(guān)系保持不變,外設(shè)繼續(xù)可用。

        (3)支持設(shè)定主備節(jié)點(diǎn),配置熱備關(guān)系。

        (4)提供故障狀態(tài)檢測(cè),支持自動(dòng)遷移。

        (5)磁盤存儲(chǔ)支持文件鎖定機(jī)制,避免同一個(gè)虛擬機(jī)同一時(shí)刻在不同主機(jī)運(yùn)行。

        (6)支持客戶機(jī)內(nèi)終端業(yè)務(wù)程序感知遷移事件。

        (7)遷移時(shí)間滿足一般終端業(yè)務(wù)程序中斷的要求。

        自動(dòng)故障遷移,可在開源虛擬機(jī)軟件的在線遷移或增量快照源碼上修訂。

        2.4.1 熱備時(shí)的內(nèi)存復(fù)制機(jī)制

        原在線遷移主要是內(nèi)存復(fù)制。設(shè)遷移時(shí)網(wǎng)絡(luò)復(fù)制速度為X*Byte/s(考慮壓縮等),VM運(yùn)行時(shí)內(nèi)存速度Y*Byte/s,顯然在時(shí)間t內(nèi)如:∫t0x<∫t0y,則不可能在時(shí)間t內(nèi)完整復(fù)制原VM運(yùn)行內(nèi)存。只有在時(shí)間t之后暫停VM使y=0,才可以復(fù)制。

        原在線遷移流程無(wú)法滿足熱備不停機(jī)要求。我們改進(jìn)流程,采用鎖定并復(fù)制機(jī)制來(lái)實(shí)現(xiàn),以新增內(nèi)存代價(jià)降低熱備影響,實(shí)現(xiàn)不連續(xù)熱備。該鎖定并復(fù)制說(shuō)明如下:

        (1)在時(shí)間t時(shí)刻點(diǎn),設(shè)△M=∫t0y—∫t0x,虛擬機(jī)鎖定△M內(nèi)存。

        (2)虛擬機(jī)在t時(shí)刻點(diǎn)之后,新的寫內(nèi)存操作如有涉及到△M內(nèi)存,則觸發(fā)trap,在物理機(jī)上分配新的內(nèi)存。

        此時(shí)理論上,源虛擬機(jī)不必暫停。

        (3)遷移程序在t時(shí)刻點(diǎn)之后,繼續(xù)復(fù)制△M內(nèi)存到目標(biāo)物理機(jī)上。這個(gè)復(fù)制預(yù)計(jì)可在t2=△M/x時(shí)間內(nèi)完成。

        (4)則目標(biāo)物理機(jī)上在約t+t2時(shí)刻點(diǎn)完成復(fù)制,其VM內(nèi)存是源虛擬機(jī)在t時(shí)刻點(diǎn)的完整鏡像。

        如果源虛擬機(jī)故障,則此時(shí)在目標(biāo)物理機(jī)上,配合正確的運(yùn)行環(huán)境如磁盤存儲(chǔ)等,就可以恢復(fù)虛擬機(jī)在t時(shí)刻的運(yùn)行狀態(tài),從t時(shí)刻點(diǎn)繼續(xù)運(yùn)行。

        2.4.2 復(fù)制機(jī)制的性能分析原在線遷移實(shí)現(xiàn),在t時(shí)刻源虛擬機(jī)要暫

        停若干毫秒,直至t+t2時(shí)刻點(diǎn)才能繼續(xù)運(yùn)行,嚴(yán)重影響性能。

        采用鎖定并復(fù)制機(jī)制,理論上則在t→t+t2時(shí)間內(nèi),源虛擬機(jī)可以繼續(xù)運(yùn)行,因?qū)Ω骆i定地址需要觸發(fā)trap,性能比正常運(yùn)行會(huì)有降低。

        在采用鎖定并復(fù)制機(jī)制實(shí)現(xiàn)熱備時(shí),應(yīng)處理內(nèi)存與磁盤存儲(chǔ)的關(guān)系,保持一致性。2.4.3熱備時(shí)的故障遷移流程

        我們采用鎖定并復(fù)制機(jī)制,說(shuō)明熱備時(shí)的故障遷移流程。

        (1)(Startup)源虛擬機(jī)啟動(dòng)。同時(shí)執(zhí)行熱備初始化[1]:a)標(biāo)記磁盤存儲(chǔ)開始更新,b)分配VM內(nèi)存、虛擬設(shè)備數(shù)據(jù)以及VM寄存器等影子緩沖區(qū),c)預(yù)備復(fù)制VM內(nèi)存(存為目標(biāo)VM快照文件,或運(yùn)行目標(biāo)物理機(jī)服務(wù)端,復(fù)制源VM內(nèi)存到目標(biāo)機(jī)內(nèi)存)。

        (2)(Migrating)源虛擬機(jī)開始運(yùn)行,讀寫內(nèi)存,更新存儲(chǔ)。在VM寫存儲(chǔ)時(shí),采用ROW(Redirect On Write)機(jī)制更新(注1)。在VM寫內(nèi)存時(shí),同時(shí)復(fù)制寫數(shù)據(jù)到目標(biāo),并開始作熱備倒計(jì)時(shí)。

        (3)源虛擬機(jī)正常運(yùn)行。同時(shí)存儲(chǔ)采用ROW機(jī)制更新,VM運(yùn)行時(shí)的刷新內(nèi)存被復(fù)制傳輸?shù)侥繕?biāo),繼續(xù)熱備倒計(jì)時(shí)。(Migrating)

        (4)(Seprating)熱備倒計(jì)時(shí)結(jié)束。此時(shí),源虛擬機(jī)對(duì)未復(fù)制內(nèi)存首次寫動(dòng)作采用COW(Copy On Write)機(jī)制(注2),保留最后時(shí)刻點(diǎn)源VM的寄存器、虛擬設(shè)備數(shù)據(jù)和運(yùn)行內(nèi)存等映像數(shù)據(jù),標(biāo)記對(duì)應(yīng)時(shí)刻的存儲(chǔ)快照。同時(shí)復(fù)制源VM最后時(shí)刻映像數(shù)據(jù)到目標(biāo)。

        (5)源虛擬機(jī)正常運(yùn)行。源VM最后時(shí)刻映像數(shù)據(jù)完成復(fù)制,目標(biāo)內(nèi)具有了完整VM狀態(tài)(及存儲(chǔ)數(shù)據(jù))。此時(shí),源虛擬機(jī)關(guān)閉內(nèi)存COW機(jī)制并更新內(nèi)存索引。同時(shí)上次增量存儲(chǔ)分片可合并到原磁盤存儲(chǔ)。

        (6)(Migrating)源虛擬機(jī)運(yùn)行,預(yù)備下一輪熱備。

        如果源虛擬機(jī)故障(Collapsed),則此時(shí)在目標(biāo)物理機(jī)上,加載上一次完整的VM虛擬機(jī)狀態(tài),匹配正確的存儲(chǔ)快照,即可恢復(fù)虛擬機(jī)運(yùn)行(Running)(注3)。

        注1:ROW機(jī)制,Redirect On Write,在虛擬機(jī)處于熱備狀態(tài)時(shí)(Migrating或Setparing),其間磁盤存儲(chǔ)更新作為分片快照保存。一個(gè)分片快照與正在熱備復(fù)制的內(nèi)存匹配。一個(gè)VM內(nèi)存熱備動(dòng)作完成后,Migrating期間的快照可被合并到主存儲(chǔ),形成一個(gè)完整VM快照。如果源虛擬機(jī)在Migrating期間崩潰,則丟棄當(dāng)時(shí)的存儲(chǔ)更新分片快照,回滾到上一次匹配狀態(tài)。這樣來(lái)解決故障恢復(fù)時(shí)的內(nèi)存與磁盤存儲(chǔ)一致性問(wèn)題。

        注2:COW機(jī)制,Coyp On Write,在‘未復(fù)制內(nèi)存被首次寫更新時(shí),其原有數(shù)據(jù)頁(yè)將被復(fù)制到等待緩沖區(qū),后續(xù)再?gòu)?fù)制到目標(biāo)內(nèi),避免當(dāng)VM內(nèi)存刷新速度大于熱備復(fù)制速度時(shí)的不收斂問(wèn)題。

        注3:此處把這種策略稱為雙機(jī)熱備。我們可以選用另一種帶優(yōu)先級(jí)的負(fù)荷分擔(dān)完成自動(dòng)故障遷移。當(dāng)集群系統(tǒng)采用負(fù)荷分擔(dān)時(shí),在源物理機(jī)正常運(yùn)行時(shí),目標(biāo)物理機(jī)上的其它客戶機(jī)也正常運(yùn)行。當(dāng)一個(gè)高優(yōu)先級(jí)的客戶機(jī)系統(tǒng)所處的物理機(jī)崩潰后,該客戶機(jī)系統(tǒng)將被遷移到指定目標(biāo)物理機(jī)上繼續(xù)運(yùn)行,而目標(biāo)物理機(jī)上的原客戶機(jī)將自動(dòng)暫停。

        2.5 軟件定義外設(shè)

        終端計(jì)算機(jī)在用戶使用時(shí),通常有鍵盤、鼠標(biāo)、顯示器或觸摸屏,以及各類外設(shè)如COM串口、聲卡或攝像頭等設(shè)備。作為高可用終端集群,需要在自動(dòng)故障遷移后,原有終端所接的外設(shè)保持可用。但是采用計(jì)算機(jī)線纜或PCB布線直接連接的外設(shè),很難做到遷移。我們借鑒軟件定義存儲(chǔ)(Software DefinedStorage)模型,對(duì)計(jì)算機(jī)所連的外設(shè)進(jìn)行網(wǎng)絡(luò)化、虛擬化,使外設(shè)遷移易于實(shí)現(xiàn)。其中,網(wǎng)絡(luò)服務(wù)層與物理聲卡在同一接口板內(nèi),它具有2個(gè)功能:

        (1)抽象定義原物理聲卡功能與配置;

        (2)在TCP/IP網(wǎng)絡(luò)上發(fā)布服務(wù)。網(wǎng)絡(luò)接口與網(wǎng)絡(luò)服務(wù)交互,連接遠(yuǎn)端聲卡設(shè)備給本機(jī)使用。

        管理控制層作為集群管理服務(wù)端的一部分功能:

        (1)控制設(shè)備應(yīng)用模式;

        (2)隨集群策略故障遷移。虛擬聲卡設(shè)備,則依據(jù)OS的設(shè)備規(guī)范,提供虛擬聲卡給客戶機(jī)操作系統(tǒng)。當(dāng)故障發(fā)生時(shí),虛擬機(jī)將自動(dòng)在故障遷移的同時(shí),把在用聲卡外設(shè)隨遷到目標(biāo)機(jī)器,目標(biāo)機(jī)器仍可以采用故障機(jī)器的聲卡來(lái)播放與錄音。

        2.6 軟件定義顯示

        考慮到繪圖程序的使用以及DirectDraw與3D硬件加速的場(chǎng)景,顯卡作為一種高負(fù)載、大流量的設(shè)備,我們需要特殊處理顯卡設(shè)備。此處把顯卡內(nèi)置在本計(jì)算機(jī),顯卡外接顯示器部分借鑒軟件定義存儲(chǔ)(Software Defined Storage)模型,在硬件架構(gòu)中增加針對(duì)顯示的交換控制層,對(duì)計(jì)算機(jī)所連接的顯示器進(jìn)行虛擬化,使故障時(shí)的顯示遷移易于實(shí)現(xiàn)。

        其中,DP交換控制層完成類似以太網(wǎng)交換機(jī)的功能,把一個(gè)DP制式數(shù)據(jù)封包交換到指定的顯示器接口內(nèi)。接口轉(zhuǎn)換主要完成從DP到VGA/DVI/HDMI等顯示格式數(shù)據(jù)轉(zhuǎn)換,包括控制數(shù)據(jù)和顯示器應(yīng)答數(shù)據(jù)。3D硬件加速通過(guò)虛擬顯卡轉(zhuǎn)換完成。

        這樣在故障遷移時(shí)原虛擬顯卡數(shù)據(jù)被隨遷到目標(biāo)物理上,可以保證源虛擬機(jī)正常運(yùn)行。同時(shí),管理控制層則下發(fā)指令給DP交換控制組件,本物理機(jī)顯示數(shù)據(jù)將被交換到原故障機(jī)器顯示器上。

        軟件定義顯示類似于KVM切換器,與RDP遠(yuǎn)程桌面不同。RDP遠(yuǎn)程桌面需要2個(gè)計(jì)算機(jī),顯示性能受2個(gè)計(jì)算機(jī)限制,DirectDraw與3D硬件加速受限(僅Windows 7或以上版本支持RemoteFX)。

        2.7 設(shè)備健康管理

        高可用終端集群,基于IPMB、TCP/IP實(shí)現(xiàn)設(shè)備健康管理。

        設(shè)計(jì)的主要規(guī)格可列表如下:

        (1)設(shè)備硬件電壓、溫度檢測(cè),運(yùn)行狀態(tài)檢測(cè)。

        (2)宿主機(jī)系統(tǒng)CPU、內(nèi)存、網(wǎng)絡(luò)與進(jìn)程狀態(tài)等檢測(cè)。

        (3)集群的共享存儲(chǔ)、軟件定義外設(shè)等檢測(cè)。

        (4)虛擬機(jī)運(yùn)行狀態(tài)檢測(cè)。

        (5)熱備遷移狀態(tài)檢測(cè)。當(dāng)檢測(cè)到異常數(shù)據(jù)時(shí),系統(tǒng)自動(dòng)記錄并報(bào)警。

        3 方案實(shí)現(xiàn)

        基于此設(shè)計(jì),我們實(shí)現(xiàn)了一個(gè)非完整方案的高可用終端集群。

        我們采用自行開發(fā)硬件,完成了方案所述硬件環(huán)境。我們選擇了Ubuntu Linux宿主操作系統(tǒng)+VirtualBox虛擬機(jī)實(shí)現(xiàn)了集群管理層,增加了各類虛擬設(shè)備包括軟件定義串口、軟件定義聲卡、軟件定義CAN口和軟件定義顯示,修復(fù)了客戶機(jī)3D加速缺陷,重寫了網(wǎng)絡(luò)虛擬設(shè)備以支持萬(wàn)兆網(wǎng),基本達(dá)到了實(shí)用程度,在各種場(chǎng)景下掉電測(cè)試可用性約為99%。

        參考文獻(xiàn)

        [1]肖力.深度實(shí)踐KVM[M].機(jī)械工業(yè)出版社,2015.

        [2]《Windows DriveKit Help》,Microsoft Corporation,2009.

        [3]《Oracle VM VirtualBox User Manual》,Oracle Corporation,2017.

        [4]梅宏,郭耀.軟件定義的時(shí)代,2017.

        [5]《Software-Defined Networking: The new Norm for Networks》白皮書,Open Networking Foundation, 2012-4-13.

        猜你喜歡
        虛擬機(jī)
        基于VMware的計(jì)算機(jī)網(wǎng)絡(luò)課程虛擬實(shí)驗(yàn)平臺(tái)搭建
        東方教育(2016年8期)2017-01-17 20:13:28
        虛擬機(jī)技術(shù)在計(jì)算機(jī)安全技術(shù)實(shí)驗(yàn)教學(xué)中的應(yīng)用
        東方教育(2016年8期)2017-01-17 13:00:15
        還原卡與虛擬機(jī)技術(shù)在計(jì)算機(jī)實(shí)驗(yàn)室中的使用對(duì)比陳治
        虛擬機(jī)技術(shù)在計(jì)算機(jī)組裝課堂中的應(yīng)用
        虛擬機(jī)服務(wù)器在教學(xué)實(shí)踐中的探索研究
        淺談?dòng)?jì)算機(jī)系統(tǒng)虛擬化網(wǎng)絡(luò)設(shè)置方案
        基于虛擬機(jī)的軟件保護(hù)系統(tǒng)研究與設(shè)計(jì)
        任務(wù)驅(qū)動(dòng)教學(xué)法在《網(wǎng)絡(luò)應(yīng)用服務(wù)管理》教學(xué)中的應(yīng)用
        虛擬機(jī)局域網(wǎng)組建技術(shù)應(yīng)用初探
        虛擬機(jī)在中職企業(yè)網(wǎng)搭建中的應(yīng)用
        女人天堂av免费在线| 国产丝袜精品丝袜一区二区| 粗一硬一长一进一爽一a视频| 宅男亚洲伊人久久大香线蕉| 国产免费爽爽视频在线观看| 久久久无码一区二区三区| 国产精品无码mv在线观看| 自拍视频在线观看国产| 久久久久久欧美精品se一二三四| 国产tv不卡免费在线观看| 日韩精品成人一区二区三区| 亚洲av五月天一区二区| 精品久久久久久成人av| 91手机视频在线| 99久久国产一区二区三区| 在线视频中文字幕一区二区三区| wwww亚洲熟妇久久久久| 99在线精品国产不卡在线观看| 蜜桃av区一区二区三| 亚洲天堂成人av在线观看| 久久午夜夜伦鲁鲁片免费无码| 国产免费一区二区三区最新不卡| 综合久久加勒比天然素人| 久久久久久av无码免费网站下载 | 特黄特色的大片观看免费视频| 欧美国产高清| 91久久国产露脸国语对白| 精品国产天堂综合一区在线 | 国产一毛片| 女女同性av一区二区三区| 高清午夜福利电影在线| 激情久久av一区av二区av三区| 香蕉久久夜色精品国产| 久久女人精品天堂av影院麻| 日本三级欧美三级人妇视频黑白配| 久精品国产欧美亚洲色aⅴ大片| 青青草视频在线免费视频| 久久精品国产亚洲av果冻传媒| 精品国产精品久久一区免费式| 果冻蜜桃传媒在线观看| 成年人观看视频在线播放|