更多細節!英特爾頂級專家答疑虛擬化
【CNETCOM 分析評論】上一篇文章破解了服務器虛擬化比較主要的挑戰(點擊),xiangxindajiakenenghaigandaobugouxiangxi,youyupianfusuoxian,womenkenengwufaquyiyilejiebutongyonghumianlindexunihuatiaozhanzaiquyiyigeichujiejuefangan,suoxingwomenyouyoujihuizhailufanyileyixieyouguowaimeitipengyoutichudeyufuwuqixunihuaxiangguandewenti,erqieqihuidazheshiyingteergongsicongshixunihuajishuyanjiudelingjunrenwu--現任英特爾實驗室首席虛擬化架構師的Richard A.Uhlig先生,他擁有英特爾公司內部最高技術職稱"英特爾院士",希望這些內容能夠為大家提供一些有用的參考:
問題1:虛擬化技術在高吞吐量的設備,如網絡和存儲設備中的應用效果如何?
回答:目前有一個值得關注的趨勢,就是使I/O設備能夠"對虛擬化更為友好"的新標準正在製訂中。例如, PCI-SIG(PCI和PCI-Express接口標準的製訂和推進組織)已經開發了一種新的規範,使PCI-Express設備能夠更加容易地在虛擬機上共享其資源。這種規範被稱為"單根I/O虛擬化"(縮寫為SR-IOV),它定義了一種方式,以提供多重"虛擬功能"(Virtual Function),這些功能可被獨立地、直接地分配給在虛擬機上運行的客戶操作係統,從而消除一些虛擬化過程中的開銷。英特爾在其最新的網絡適配器中就提供了對SR-IOV的支持。然而,對於這種I/O設備直接分配,還有一個很大的挑戰,那就是它使其他重要的虛擬化功能變得更加複雜,例如虛擬機的遷移。因為將一個物理I/O接口直接分配給客戶操作係統之後,當其虛擬機要遷移到另外一個平台時,會很難釋放這一資源。對此,我們一直在與虛擬機監視器(VMM)的提供商協商,以解決這些問題,以便我們能通過SR-IOV,從直接I/O分配中獲得優勢和好處,而同時又可以保護虛擬機的遷移能力。
問題2:英特爾的虛擬化技術是怎樣提供具有突破性的安全特性的,這些特性是如何運作的?
回答:回hui到dao早zao些xie年nian時shi我wo們men對dui英ying特te爾er虛xu擬ni化hua技ji術shu的de定ding義yi,實shi際ji上shang從cong這zhe項xiang技ji術shu處chu於yu起qi點dian時shi,我wo們men就jiu已yi經jing有you了le很hen強qiang的de安an全quan意yi識shi,而er今jin,安an全quan問wen題ti更geng已yi被bei納na入ru了le虛xu擬ni化hua技ji術shu的de發fa展zhan路lu線xian圖tu。虛xu擬ni機ji提ti供gong了le一yi個ge從cong基ji礎chu上shang來lai說shuo更geng強qiang的de、可使代碼分離的形式,因為它運行的層級比運行操作係統內核和設備驅動程序的Ring 0更低一層。我們的目標就是幫助虛擬機監視器軟件, 通tong過guo這zhe種zhong基ji於yu硬ying件jian層ceng的de支zhi持chi而er進jin一yi步bu增zeng強qiang安an全quan防fang護hu。例li如ru,英ying特te爾er虛xu擬ni化hua技ji術shu可ke通tong過guo硬ying件jian機ji製zhi來lai重zhong新xin映ying射she和he阻zu止zhi設she備bei對dui係xi統tong內nei存cun的de直zhi接jie存cun儲chu器qi存cun取qu,所suo以yi甚shen至zhi連lian擁yong有you特te權quan、運行在Ring 0級別的某個虛擬機中的設備驅動程序,也不能訪問屬於另一個虛擬機的內存空間,這(zhe)些(xie)都(dou)是(shi)需(xu)要(yao)硬(ying)件(jian)支(zhi)持(chi)才(cai)能(neng)實(shi)現(xian)的(de)。英(ying)特(te)爾(er)虛(xu)擬(ni)化(hua)技(ji)術(shu)還(hai)能(neng)通(tong)過(guo)減(jian)少(shao)與(yu)虛(xu)擬(ni)化(hua)工(gong)作(zuo)相(xiang)關(guan)的(de)代(dai)碼(ma)來(lai)簡(jian)化(hua)虛(xu)擬(ni)機(ji)的(de)執(zhi)行(xing),最(zui)終(zhong)減(jian)少(shao)可(ke)信(xin)計(ji)算(suan)的(de)總(zong)體(ti)規(gui)模(mo),從(cong)而(er)減(jian)少(shao)其(qi)相(xiang)對(dui)於(yu)惡(e)意(yi)軟(ruan)件(jian)的(de)"受攻擊麵"。
問題3:隨著處理器內核數量的不斷增加,服fu務wu器qi的de整zheng合he比bi例li也ye在zai增zeng大da。你ni能neng不bu能neng談tan談tan,我wo們men應ying該gai如ru何he在zai一yi台tai運yun行xing著zhe數shu以yi百bai計ji虛xu擬ni機ji的de服fu務wu器qi出chu現xian故gu障zhang後hou最zui大da程cheng度du限xian製zhi其qi產chan生sheng的de不bu利li影ying響xiang?
回答:總的來說,有兩個辦法可以用於解決這類難題:第一種是在服務器發生錯誤時糾正其故障並恢複它的運行,或者包容錯誤以限製錯誤產生的效果。
眾所周知的ECC內存,就采用了內存錯誤檢測與校正功能,它是第一種辦法的典型應用。相同的故障恢複原則也可以適用於其它的資源,比如在係統為一致性進行互連和I/O的情況下(例如,使用CRC來檢測連接級別的錯誤和觸發包重發)。
當錯誤不能被糾正時,包容它們也是有所幫助的,因為其可支持更高級別的恢複算法。這一過程可通過將無法修正的數據標注"Poison"位(wei)標(biao)簽(qian),然(ran)後(hou)在(zai)係(xi)統(tong)中(zhong)跟(gen)蹤(zong)這(zhe)個(ge)數(shu)據(ju)來(lai)實(shi)現(xian)。如(ru)果(guo)有(you)這(zhe)個(ge)標(biao)簽(qian)的(de)數(shu)據(ju)在(zai)係(xi)統(tong)中(zhong)後(hou)來(lai)被(bei)再(zai)次(ci)利(li)用(yong)了(le),硬(ying)件(jian)會(hui)在(zai)操(cao)作(zuo)係(xi)統(tong)或(huo)虛(xu)擬(ni)機(ji)監(jian)視(shi)器(qi)之(zhi)外(wai)再(zai)進(jin)行(xing)機(ji)器(qi)檢(jian)測(ce),從(cong)而(er)提(ti)供(gong)有(you)關(guan)錯(cuo)誤(wu)本(ben)質(zhi)的(de)信(xin)息(xi)。理(li)想(xiang)的(de)情(qing)況(kuang)就(jiu)是(shi),這種硬件在回應錯誤時,能夠支持虛擬機監視器執行一個更有目的的行為,例如僅僅關閉有故障的虛擬機,而不是整個平台及其他正在正常運行的虛擬機。
就英特爾來說,我們還增添了豐富的全新特性,使我們的多路服務器產品線能夠兼容更多種類的,可被糾正或被包容的錯誤,包括QPI鏈接恢複和標記有"Poison"數據的轉發,還能支持PCI-E先進錯誤報告和內存鏡像等等。這些特性都是我們追求的"RAS"能力中的一部分,我們的多路服務器平台會不斷擴展和改善來實現這一目標。
上述特性,都是致力於提高某一特定的服務器的可靠性,但是有時,你可能會失去整個平台(比如在斷電時)。在這種情況下,一種有趣的全新解決方法產生了,那就是利用虛擬化技術,在另一個平台上維持虛擬機狀態的副本。
ruguochuxianpingtaixingdecuowu,gongzuofuzaidezhixingkeyizaiqitapingtaishangtongguozhezhongxunijifuzhidedaohuifuhejixu。tongshi,xunihuahaikeyiheqitayiyoudetigaokeyongxingdefangfahenhaodipeihe,如基於集群的故障解決方案。在這種情況下,出現故障的集群中,備用機器可以由虛擬機提供,而不需要動用物理設備。正如我們所見,服務器的整合比在不斷增加,我期待看到硬件故障恢複和容錯機製的更大發展,以實現單個物理平台之上的和跨平台的更高可用性和係統容錯能力。
問題4:你會如何怎樣服務器整合?特別是當很多節點被整合時會出現很多問題,比如處理器循環和莫名其妙的損耗,例如讓資源緊張的屏幕保護?
回答:處理器循環通常是由不同的情況引發的,包括空閑循環和自旋鎖。當客戶操作係統已進入一個空閑狀態,它通常也會發出一條指令,比如HLT(halt),或者發出命令到處理器,以進入到更具能效的狀態(稱為"C狀態")。虛(xu)擬(ni)機(ji)監(jian)視(shi)器(qi)可(ke)以(yi)設(she)置(zhi)各(ge)種(zhong)虛(xu)擬(ni)化(hua)技(ji)術(shu)執(zhi)行(xing)程(cheng)序(xu),來(lai)引(yin)導(dao)虛(xu)擬(ni)機(ji)從(cong)該(gai)客(ke)戶(hu)操(cao)作(zuo)係(xi)統(tong)中(zhong)退(tui)出(chu),然(ran)後(hou)安(an)排(pai)另(ling)一(yi)個(ge)虛(xu)擬(ni)機(ji)投(tou)入(ru)運(yun)行(xing),從(cong)而(er)保(bao)證(zheng)物(wu)理(li)的(de)處(chu)理(li)器(qi)資(zi)源(yuan)不(bu)被(bei)浪(lang)費(fei)。
通過這種方式檢測空閑狀態,是一種標準的通過虛擬機監視器進行的處理器資源管理,但是有一種更有趣的情況,就是一個處理器反複循環地檢查的鎖的可用性,而該鎖可能暫時是由另一個處理器所保持的。在一個沒有采用虛擬化技術的係統中,這種自旋鎖問題解決得非常快,因為持有鎖的處理器一般在很短時間內就釋放鎖, 而請求鎖的處理器就會獲得它和退出自旋鎖循環。
然而,在虛擬化後的係統中,名為"鎖保持者搶先占有"的不利情況可能會發生,即正在運行某虛擬機、持(chi)有(you)鎖(suo)的(de)處(chu)理(li)器(qi),可(ke)能(neng)不(bu)會(hui)聽(ting)從(cong)虛(xu)擬(ni)機(ji)監(jian)視(shi)器(qi)的(de)安(an)排(pai),而(er)搶(qiang)先(xian)占(zhan)有(you)鎖(suo),而(er)其(qi)他(ta)虛(xu)擬(ni)處(chu)理(li)器(qi)則(ze)一(yi)直(zhi)在(zai)請(qing)求(qiu)等(deng)待(dai)一(yi)個(ge)不(bu)能(neng)被(bei)釋(shi)放(fang)的(de)鎖(suo)。最(zui)糟(zao)糕(gao)的(de)情(qing)況(kuang)是(shi),要求獲得鎖的處理器不斷自旋,這將非常明顯地浪費CPU資源。這種情況下,虛擬機監視器也不知道這種浪費資源的情況正在發生。
為wei幫bang助zhu解jie決jue這zhe種zhong情qing況kuang,英ying特te爾er最zui近jin在zai虛xu擬ni化hua技ji術shu中zhong增zeng添tian了le一yi種zhong執zhi行xing控kong製zhi功gong能neng,它ta可ke在zai虛xu擬ni機ji上shang運yun行xing,對dui物wu理li處chu理li器qi進jin行xing監jian控kong。當dang一yi個ge數shu量liang過guo多duo的de迭die代dai在zai一yi個ge自zi旋xuan鎖suo中zhong被bei檢jian測ce到dao時shi,處chu理li器qi就jiu會hui把ba虛xu擬ni機ji退tui出chu控kong製zhi權quan返fan還hai給gei監jian視shi器qi,這樣它就可以安排另一個虛擬處理器運行。我們發現這種新的控製功能--"暫停循環退出"在較高的操作係統整合比下是非常有效的。
再來談談令資源緊張的屏幕保護程序,這是從虛擬機監視器和硬件角度很難解決的問題,因為用戶怎麼使用都是合法的。最佳方案是不要在客戶操作係統上使用屏幕保護程序,如果這些程序的計算是無用的。
問題5:隨著Nehalem-EX在Westmere-EPzhihoufabu,kanqilaiwomenxianzaikeyigoujiangengdaguimodefuwuqixunihuapingtai,bingzaiqishangyunxinggengduodexunijile,kewentishi,womenyinggairuheweiqitigongzugoudeSAN I/O帶寬,以確保所有的虛擬機都正常運行?
回答:從千兆到萬兆以太網的過渡還有很長的路要走,後者可以實現為每個虛擬機提供更好更平衡的I/O,即在提供更高帶寬到平台的同時,減少連接到物理服務器的端口數。通過將存儲協議彙聚到以太網上,例如iSCSI和FCoE也能帶來更高的效率。
在這一過程中,關鍵的挑戰,是要為客戶提供優質的服務質量,要保證在不同的虛擬機上能夠實現共享同樣的實體網絡連接,以yi及ji減jian輕qing通tong過guo虛xu擬ni機ji監jian視shi器qi進jin行xing包bao處chu理li和he交jiao換huan的de功gong能neng的de負fu擔dan。英ying特te爾er已yi經jing開kai始shi為wei萬wan兆zhao以yi太tai網wang適shi配pei器qi增zeng添tian新xin的de特te性xing,來lai解jie決jue這zhe些xie問wen題ti,包bao括kuoVMDq,它提供了一個第二層包分類和發送/接收排序功能,可以與不同的客戶操作係統協作。這種支持減少了在虛擬機監視器中的數據複製,並提高了不同虛擬機的服務質量。
另一個可見的進步,就是由PCI-SIG開發的PCI-Express設備虛擬化的全新標準,特別是SR-IOV(單根I/O虛擬化)規範。SR-IOV定義了一種方法,即每個PCI-E端點設備對應一個"虛擬功能",可ke以yi直zhi接jie從cong虛xu擬ni機ji管guan理li程cheng序xu分fen配pei到dao客ke戶hu操cao作zuo係xi統tong,以yi此ci來lai進jin一yi步bu降jiang低di網wang絡luo處chu理li管guan理li程cheng序xu中zhong的de間jian接jie開kai銷xiao。正zheng如ru前qian文wen所suo講jiang,它ta讓rang我wo們men既ji能neng獲huo得de分fen配pei直zhi接jieI/O分配到虛擬機的好處,同時又要保留了虛擬機遷移的優勢,這是很難兼得的,支持SR-IOV的產品將很快在市場上出現。
問題6:你對虛擬化在HPC領域的未來發展方向,以及改進開發並行計算集群上的舉措,有什麼看法呢?
回答:目前對這一問題普遍的認識是,虛擬化在高性能計算機(HPC)上的使用還很少,這是因為HPC的側重點是要追求極致的性能。但我也聽到越來越多的高性能計算用戶對虛擬化技術表現出了一些興趣,其原因有很多:
首先,HPCdegongzuofuzaitongchangshichangshijianyunxing,suoyiruguonengzaichuxianguzhangshihuoqujianzhadianzhongjianjieguohuihenyoubangzhu。danjianzhadianwangwangxuyaoteshudecaozuoxitonghuoyingyongchengxulaizhichi。tongguozaigaoxingnengdexunijishangyunxingHPC工作負載,就能在對操作係統和應用程序完全透明的情況下,實現對正在運行的負載的檢查。
在有多個用戶共享的HPC集(ji)群(qun)環(huan)境(jing)中(zhong),同(tong)時(shi),虛(xu)擬(ni)化(hua)技(ji)術(shu)也(ye)有(you)利(li)用(yong)於(yu)實(shi)現(xian)跨(kua)集(ji)群(qun)的(de)負(fu)載(zai)平(ping)衡(heng)。也(ye)許(xu)這(zhe)在(zai)沒(mei)有(you)虛(xu)擬(ni)化(hua)技(ji)術(shu)參(can)與(yu)的(de)情(qing)況(kuang)下(xia)也(ye)能(neng)實(shi)現(xian),但(dan)需(xu)要(yao)修(xiu)改(gai)應(ying)用(yong)程(cheng)序(xu)和(he)額(e)外(wai)的(de)管(guan)理(li)工(gong)具(ju)。透(tou)明(ming)虛(xu)擬(ni)機(ji)檢(jian)查(zha)點(dian)和(he)虛(xu)擬(ni)機(ji)遷(qian)移(yi)可(ke)以(yi)成(cheng)為(wei)強(qiang)有(you)力(li)的(de)工(gong)具(ju),用(yong)於(yu)供(gong)應(ying)和(he)管(guan)理(li)跨(kua)越(yue)不(bu)同(tong)用(yong)戶(hu)、不同優先級和不同時間敏感度工作負載的HPC集群硬件資源。
從另一個角度來看,HPC工作負載可以從OS特殊化中受益---通過提供一個擁有很小內核、並(bing)能(neng)榨(zha)取(qu)出(chu)硬(ying)件(jian)最(zui)佳(jia)性(xing)能(neng)的(de)虛(xu)擬(ni)機(ji)管(guan)理(li)程(cheng)序(xu),例(li)如(ru)通(tong)過(guo)加(jia)強(qiang)調(tiao)度(du)和(he)降(jiang)低(di)內(nei)存(cun)管(guan)理(li)的(de)開(kai)銷(xiao)。乍(zha)一(yi)看(kan),似(si)乎(hu)引(yin)進(jin)這(zhe)種(zhong)管(guan)理(li)程(cheng)序(xu)首(shou)先(xian)是(shi)增(zeng)加(jia)了(le)新(xin)一(yi)層(ceng)的(de)開(kai)銷(xiao),違(wei)背(bei)了(le)降(jiang)低(di)開(kai)銷(xiao)這(zhe)一(yi)目(mu)標(biao)。但(dan)實(shi)際(ji)上(shang),這(zhe)個(ge)管(guan)理(li)程(cheng)序(xu)可(ke)以(yi)依(yi)靠(kao)一(yi)個(ge)很(hen)小(xiao)的(de)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he)或(huo)者(zhe)執(zhi)行(xing)庫(ku),在(zai)同(tong)一(yi)個(ge)平(ping)台(tai)的(de)不(bu)同(tong)虛(xu)擬(ni)機(ji)上(shang)運(yun)行(xing)更(geng)多(duo)的(de)全(quan)功(gong)能(neng)的(de)操(cao)作(zuo)係(xi)統(tong)。這(zhe)可(ke)以(yi)實(shi)現(xian)在(zai)一(yi)個(ge)HPC集群上,不同用戶根據他們的工作量而選擇不同的操作係統,而且同時他們又都能共享相同的群集硬件資源。
關於虛擬化的性能開銷問題可能會永遠存在於HPC上,但我在上麵列出的一些優勢和特點,或許會讓用戶們對在HPC上應用虛擬化技術的想法刮目相看。
Richard A.Uhlig先生對虛擬化相關問題的解答到此告一段落,而關於虛擬化具體問題的討論未來還將在產業界討論,也會在《IT號外》zhongchengxian。zaisuihoudeneirongli,womenjiangyudajiayitongtongguoyixiliedeanligushi,laigengjinjulidilinglveyingteerjiagoufuwuqixunihuajishudemeili,jingqingqidai!





閩公網安備 35020302001891號