趙丙秀,張 堯
(1.武漢軟件工程職業(yè)學(xué)院信息學(xué)院,湖北 武漢 430205;2.中國(guó)電力工程顧問(wèn)集團(tuán)中南電力設(shè)計(jì)院有限公司)
互聯(lián)網(wǎng)技術(shù)的發(fā)展及4G、5G 的出現(xiàn),互聯(lián)網(wǎng)寬帶越來(lái)越快,各大企業(yè)如HP、Dell 等公司開始使用企業(yè)無(wú)盤技術(shù)來(lái)管理員工的計(jì)算機(jī),以保證信息安全。網(wǎng)吧或企業(yè)通過(guò)成立運(yùn)維公司來(lái)實(shí)現(xiàn)資源的低成本和易管理。隨著云機(jī)房、云主機(jī)的概念興起,各大運(yùn)營(yíng)商結(jié)合自己的路由合作伙伴如碧海銀河、順網(wǎng)等公司,推出了適合各大企業(yè)和高校的云機(jī)房,讓資源達(dá)到最優(yōu)配置。
所謂云機(jī)房[1],就是利用小型機(jī)作為路由,將運(yùn)營(yíng)商的10Gbps的城域網(wǎng)帶寬分配給一臺(tái)臺(tái)云主機(jī),通過(guò)PXE 等技術(shù),實(shí)現(xiàn)每個(gè)終端的零維護(hù)、零管理。不管是企業(yè)還是網(wǎng)吧、高校,甚至個(gè)人,都可以根據(jù)自己的實(shí)際辦公需要,臨時(shí)向云機(jī)房運(yùn)營(yíng)商申請(qǐng)一臺(tái)云主機(jī),按照一臺(tái)100 元左右的價(jià)格打包設(shè)備維護(hù)、使用、配置、帶寬等費(fèi)用,讓企業(yè)和網(wǎng)吧的設(shè)備支出大大降低,也無(wú)需單獨(dú)的計(jì)算機(jī)部門來(lái)維護(hù)。
云主機(jī)現(xiàn)在流行的方案有三種,根據(jù)占用帶寬的多少,分為無(wú)盤PXE(Preboot Execution Environment,遠(yuǎn)程引導(dǎo)技術(shù))云主機(jī)、主機(jī)盒子云主機(jī)、虛擬辦公電腦云主機(jī)。
現(xiàn)在主流移動(dòng)電信的云機(jī)房方案就是無(wú)盤PXE云主機(jī)方案。通過(guò)城域網(wǎng)的10Gps 光纖,將機(jī)房和企業(yè)、網(wǎng)吧、高校的無(wú)盤主機(jī)聯(lián)系起來(lái),用PXE 無(wú)盤引導(dǎo)技術(shù),將云機(jī)房的主機(jī)硬盤內(nèi)容引導(dǎo)到每個(gè)終端[2]。良好的磁盤回寫技術(shù)和內(nèi)存緩存技術(shù),使得每個(gè)終端引導(dǎo)時(shí)最大流量26MBps,一般使用流量在10-20KBps,一個(gè)10Gbps 的機(jī)房,足夠帶動(dòng)3000-8000 個(gè)終端。企業(yè)效益明顯,使用毫無(wú)卡頓。除了磁盤之外,一切運(yùn)算還是在本地運(yùn)行,只不過(guò)操作系統(tǒng)的鏡像可以復(fù)用,管理簡(jiǎn)單,個(gè)人磁盤存儲(chǔ)數(shù)據(jù)方便。這是現(xiàn)階段最完美的方案。
其弱點(diǎn)是,每個(gè)用戶必須還是要有一臺(tái)完整的主機(jī),主機(jī)成本較高無(wú)法分?jǐn)?,加上各種主機(jī)配置千變?nèi)f化,為了適配各種主機(jī),就需要做不同的鏡像,大大浪費(fèi)了資源,且維護(hù)成本大為增加。為了克服這些缺點(diǎn),這種方案的主機(jī)PNP(Plug-and-Play,即插即用)自適應(yīng)硬件的技術(shù)就必不可少了。
PXE云主機(jī)的技術(shù)難點(diǎn)在于設(shè)備的PNP。其關(guān)鍵在于取得設(shè)備的硬件ID 之后,通過(guò)云端比對(duì)硬件ID和兼容ID,從而找到Windows 驅(qū)動(dòng)并安裝。如果不涉及無(wú)盤技術(shù),這不難辦到。Windows Update、驅(qū)動(dòng)精靈、驅(qū)動(dòng)人生、360 驅(qū)動(dòng)大師、魯大師和萬(wàn)能驅(qū)動(dòng)助理等工具都是根據(jù)這個(gè)原理,找到計(jì)算機(jī)上還沒有驅(qū)動(dòng)的硬件ID,然后根據(jù)云端的海量驅(qū)動(dòng)庫(kù),找到對(duì)應(yīng)的硬件ID適配的驅(qū)動(dòng),然后安裝,從而解決驅(qū)動(dòng)難題。
無(wú)盤系統(tǒng)有點(diǎn)不一樣,因?yàn)闆]有磁盤,因此無(wú)法直接保存驅(qū)動(dòng),通過(guò)超級(jí)或者鏡像回寫方式,又會(huì)產(chǎn)生鏡像和機(jī)型綁定,導(dǎo)致鏡像配置過(guò)多,啟動(dòng)復(fù)雜?,F(xiàn)在市面上的無(wú)盤如網(wǎng)維大師、云更新、方格子、信佑等,均不支持單鏡像多配置,易樂游雖然支持,但是問(wèn)題很多,效率不高,實(shí)際使用也不多。
現(xiàn)在的計(jì)算機(jī)聲顯網(wǎng)全部集成到主板,主板的主流音頻芯片只有兩三家廠商提供,可以通過(guò)安裝一定數(shù)量的廠商驅(qū)動(dòng)即可實(shí)現(xiàn)市面絕大多數(shù)主板兼容,故PNP的關(guān)鍵在于網(wǎng)卡和顯卡。由于無(wú)盤系統(tǒng)極端依賴于網(wǎng)卡,下面以網(wǎng)卡PNP 為例,來(lái)說(shuō)明如何在云機(jī)房中實(shí)現(xiàn)終端設(shè)備的PNP自適應(yīng)。
首先主板PXE 引導(dǎo)模塊通過(guò)Mac 地址找到Dhcp服務(wù)器獲取IP[3],然后在通過(guò)Tftp 來(lái)獲取引導(dǎo)文件。引導(dǎo)之后,通過(guò)鏡像內(nèi)置的尋找軟件通過(guò)SetupAPi來(lái)獲取網(wǎng)卡的硬件ID,如PCIVEN_8086&DEV_10EA&SUBSYS_215317AA&REV_06,分別為VEN 供應(yīng)商、DEV 設(shè)備ID、SUBSYS 子系統(tǒng)等關(guān)鍵信息,版本號(hào)可以忽略,將VEN、DEV、SUBSYS 的值合并,并取Hash。通過(guò)鏡像內(nèi)置的尋找軟件和無(wú)盤服務(wù)器通信,無(wú)盤服務(wù)器獲取到這個(gè)Hash值后,跟自己本地的驅(qū)動(dòng)庫(kù)進(jìn)行比對(duì)。如果有,就將鏡像中間的系統(tǒng)配置目錄下的SYSTEM 注冊(cè)表文件備份出來(lái),然后通過(guò)掛載注冊(cè)表文件的方式將驅(qū)動(dòng)寫入服務(wù)。無(wú)盤引導(dǎo)的時(shí)候然后通過(guò)無(wú)盤服務(wù)器備份的IP和設(shè)備ID對(duì)照表,傳輸對(duì)應(yīng)的注冊(cè)表文件覆蓋,即可實(shí)現(xiàn)網(wǎng)卡的PNP。
硬件ID 的獲取是通過(guò)SetupApi 中間的SetupDi-GetDeviceRegistryProperty函數(shù)獲取,如下所示:
驅(qū)動(dòng)程序本質(zhì)也是一個(gè)Windows 服務(wù)程序,因此可以采取類似注冊(cè)表注冊(cè)服務(wù)的形式來(lái)安裝。下面以Intel(R) PRO/1000 為例生成注冊(cè)表配置文件,然后通過(guò)外掛配置文件方式,將驅(qū)動(dòng)寫入SYSTEM 文件即可,注冊(cè)表示例文件如下:
本文結(jié)合在云機(jī)房搭建中獲得的經(jīng)驗(yàn),認(rèn)為PXE無(wú)盤技術(shù)能在現(xiàn)有的帶寬下完美地實(shí)現(xiàn)計(jì)算機(jī)的遠(yuǎn)程維護(hù)與配置,大大節(jié)省企業(yè)動(dòng)態(tài)增減計(jì)算機(jī)的費(fèi)用,降低維護(hù)難度。該方案不失為現(xiàn)在的主流云機(jī)房方案。但是我們也要看到,由于用戶端還是需要配置一個(gè)計(jì)算機(jī),計(jì)算機(jī)硬件沒有集中管理,硬件損壞難免,因此硬件維護(hù)的費(fèi)用并沒有降低。隨著國(guó)家互聯(lián)網(wǎng)的發(fā)展,帶寬需求越來(lái)越不是問(wèn)題的時(shí)候,主機(jī)盒子甚至虛擬主機(jī)將是未來(lái)云機(jī)房發(fā)展的主要方向。