虛擬化是指在同一臺物理服務(wù)器上模擬多臺虛擬機(jī)的能力菩佑。且每臺虛擬機(jī)在邏輯上擁有獨(dú)立的CPU遗秩、內(nèi)存别凹、硬盤和網(wǎng)絡(luò)接口等剩症。虛擬化可以提高硬件資源的利用率揍拆,使多個(gè)應(yīng)用能隔離的運(yùn)行在同一臺物理機(jī)上苔盆。虛擬化分為硬件層面的虛擬化和軟件層面的虛擬化姊黍。
硬件虛擬化是通過模擬硬件的方式來獲得真實(shí)計(jì)算機(jī)的環(huán)境谍臀,可以運(yùn)行一個(gè)完整的操作系統(tǒng)辱得。在硬件虛擬化中,又有Full Virtualization(全虛擬化抡杈,完整的模擬一整套真實(shí)的硬件設(shè)備)沉享、Partial Virtualization(部分虛擬化,僅對關(guān)鍵性計(jì)算組件或者指令集進(jìn)行模擬曹略。操作系統(tǒng)需要修改才能運(yùn)行在部分虛擬化環(huán)境中)和Paravirtualization(半虛擬化砂裹,不對硬件設(shè)備進(jìn)行模擬,虛擬機(jī)擁有獨(dú)立的運(yùn)行環(huán)境踢故,通過虛擬機(jī)管理程序共享的硬件資源文黎。大部分操作系統(tǒng)需要修改才能運(yùn)行在半虛擬化環(huán)境中)等不同的實(shí)現(xiàn)方式。軟件層面的虛擬化殿较,指在同物理服務(wù)器上提供多個(gè)隔離的虛擬運(yùn)行環(huán)境耸峭,也被稱為容器技術(shù)。
在硬件虛擬化的層面淋纲,現(xiàn)代虛擬化技術(shù)通常是全虛擬和半虛擬的混合體劳闹。常見的虛擬化技術(shù)例如VMWare、Xen和KVM都同時(shí)支持全虛擬化和半虛擬化洽瞬。硬件虛擬化方式提供的虛擬機(jī)本涕,都獨(dú)立的運(yùn)行著一個(gè)完整的操作系統(tǒng),這樣在同一臺物理宿主機(jī)上存在大量相同或者相似的進(jìn)程和內(nèi)存頁伙窃,從而導(dǎo)致較大的性能損耗(比如:宿主機(jī)操作系統(tǒng)是Centos菩颖,使用KVM生成的多個(gè)虛擬機(jī)样漆,且在每個(gè)虛擬機(jī)中都運(yùn)行Windows操作系統(tǒng)和相同的QQ程序,這樣宿主機(jī)的性能必然產(chǎn)生較大損耗)晦闰。目前放祟,通過KSM(kernel samepage merging)等技術(shù)可以識別與合并含有相同內(nèi)容的內(nèi)存頁,但是還沒有對大量相同或者相似的進(jìn)程進(jìn)行優(yōu)化處理的有效手段散烂,相信隨著虛擬化技術(shù)的發(fā)展巾妖,該技術(shù)也會取得巨大的進(jìn)展。因此变钙,硬件虛擬化也被稱為重量級虛擬化牵梗,在同一宿主機(jī)上能夠同時(shí)運(yùn)行的虛擬機(jī)數(shù)量相當(dāng)有限。在軟件虛擬化的層面啸业,同一宿主機(jī)上的所有虛擬機(jī)(又稱Container)共享宿主機(jī)的操作系統(tǒng)實(shí)例洗筛,不存在由于運(yùn)行多個(gè)操作系統(tǒng)實(shí)例所造成的性能損耗(比如:宿主機(jī)的操作系統(tǒng)為Centos,通過軟件虛擬化技術(shù)生成多個(gè)Container宿柜,且每個(gè)Container都運(yùn)行著QQ程序凸窖,由于它們共享同一個(gè)宿主機(jī)Centos操作系統(tǒng),所有Container中QQ程序的進(jìn)程在Centos中只有一個(gè))霹补。因此天证,軟件虛擬化也被稱為輕量級虛擬化,在同一宿主機(jī)上能夠同時(shí)運(yùn)行的虛擬運(yùn)行環(huán)境數(shù)量比較寬松十匆。以Solaris操作系統(tǒng)上的Container為例哀买,一個(gè)Solaris操作系統(tǒng)的實(shí)例理論上可以支持多達(dá)8000個(gè)Container(實(shí)際能夠運(yùn)行的Container數(shù)量取決于系統(tǒng)資源和負(fù)載)。與此類似柬赐,Linux操作系統(tǒng)上的LXC也可以輕松地在同一宿主機(jī)上同時(shí)支持?jǐn)?shù)量可觀的虛擬運(yùn)行環(huán)境亡问。
在虛擬化這個(gè)領(lǐng)域,國內(nèi)外的各大公司對硬件虛擬化的興趣較大肛宋,在研發(fā)和生產(chǎn)環(huán)境中也大都采用硬件虛擬化技術(shù)州藕。但是近段時(shí)間國內(nèi)外很多云計(jì)算廠商紛紛開始嘗試使用LXC替代KVM/XEN等硬件虛擬化技術(shù)以獲得更好的性能。至于在實(shí)際的應(yīng)用場景中到底應(yīng)該選擇硬件虛擬化還是軟件虛擬化酝陈,需要從以下方面考慮床玻。靈活性、易管理沉帮,可靠性锈死、穩(wěn)定性、性能考慮穆壕。硬件虛擬化更靈活待牵、易管理。軟件虛擬化則有更高性能。關(guān)于穩(wěn)定性和可靠性沒有一個(gè)確切的證據(jù)證明誰比誰更優(yōu)缨该。如果最終用戶不需要獨(dú)立的操作系統(tǒng)漫玄。而只需要關(guān)心運(yùn)行環(huán)境(例如PaaS層面的各種App Engine服務(wù)),這樣軟件虛擬化也是比較好的選擇摆采。雖然Container能提升資源利用率,但遷移成本很高舀鼎,硬件虛擬化具有天生的遷移優(yōu)勢选从,另外還包括工程師的學(xué)習(xí)成本,這些都是需要考慮在內(nèi)的因素园桑。所以選擇上還需要根據(jù)自身的業(yè)務(wù)和公司的戰(zhàn)略去確定使用哪種虛擬化技術(shù)麦咪。
目前京東根據(jù)自身業(yè)務(wù)需求,在公有云方面采用Openstack + KVM硬件虛擬化技術(shù)塔端。但在PaaS層和私有云娄勒,則采用了Openstack + LXC的方式進(jìn)行實(shí)現(xiàn)。讓彼此的優(yōu)勢互補(bǔ)媒湖,以達(dá)到最佳的運(yùn)行效果馋奠。
一般來講虛擬化發(fā)展公認(rèn)分為5個(gè)階段。階段一舒贼,服務(wù)器整合丰吐。通過虛擬化技術(shù)完成IT基礎(chǔ)架構(gòu)、資源的整合琳钉,包括服務(wù)器整合势木、存儲整合、網(wǎng)絡(luò)整合等歌懒。以此來進(jìn)行IT基礎(chǔ)設(shè)計(jì)的簡化啦桌、達(dá)到提高IT設(shè)備的利用率,降低運(yùn)維成本的目的及皂。階段二甫男,動(dòng)態(tài)工作負(fù)載遷移。通過虛擬化技術(shù)實(shí)現(xiàn)動(dòng)態(tài)工作負(fù)載遷移躲庄。即在業(yè)務(wù)不受到任何影響的情況下查剖,實(shí)現(xiàn)IT資源的動(dòng)態(tài)調(diào)整和遷移,以此實(shí)現(xiàn)對局部資源的削峰填谷效應(yīng)噪窘,進(jìn)一步提高IT投資的利用率笋庄。傳說中的虛擬機(jī)Resize&Live Migrate。階段三倔监,高可用直砂。通過虛擬化實(shí)現(xiàn)高可用,即通過虛擬化技術(shù)提升服務(wù)質(zhì)量,增強(qiáng)為前端業(yè)務(wù)提供服務(wù)支持的能力蜀梢。用戶在不增加IT投資的情況下傻当,就可以使用虛擬機(jī)的冗余和備份。高可用分為硬件和軟件颗用,硬件層面只能通過采購冗余的硬件解決堤型。比如:交換機(jī)、路由器类繁、電力教物,空調(diào),消防撞浪,和其他的冗余;軟件層面需要考慮有狀態(tài)的與無狀態(tài)的區(qū)別糊争。如:軟件服務(wù)集群、Active/Passive炭央、Active/Active等實(shí)現(xiàn)婴鞭。階段四,工作負(fù)載管理熙掺。通過虛擬化技術(shù)實(shí)現(xiàn)工作負(fù)載管理未斑,有了前幾個(gè)階段的基礎(chǔ),用戶可以對虛擬服務(wù)器進(jìn)行統(tǒng)一的規(guī)劃和管理适掰。例如京東每個(gè)月月末都會有促銷颂碧,那么管理員就可以有計(jì)劃地在月末為其調(diào)配更多的虛擬資源,而無需增加物理設(shè)備的購買类浪。這個(gè)就是傳說中的ELB(Elastic Load Balance)+ AS(AutoScaling)载城。階段五,災(zāi)難恢復(fù)费就。通過虛擬技術(shù)來實(shí)現(xiàn)災(zāi)難恢復(fù)诉瓦,這同樣是建立在前幾階段之上的高級應(yīng)用,在本地或異地力细,通過虛擬服務(wù)器或虛擬存儲實(shí)現(xiàn)不同等級的災(zāi)難恢復(fù)能力睬澡,用戶可以根據(jù)自己能夠忍受的業(yè)務(wù)中斷時(shí)間來選擇相應(yīng)的方案,而這眠蚂,也幾乎不用增加過多的IT物理設(shè)施投入和運(yùn)維成本煞聪。
為了快速的完成虛擬化5個(gè)階段的建設(shè),推動(dòng)虛擬化技術(shù)的發(fā)展逝慧,IT巨頭們紛紛加大對虛擬化投入讹荣。從2006年到現(xiàn)在,虛擬化技術(shù)進(jìn)入了爆發(fā)期保跨。諸多廠商如雨后春筍般涌現(xiàn)合杜,如微軟秽烫、紅帽、思杰断迁、IBM耙窥、Amazon、Rackspace迎硼、Google还皮、Oracle等。在國內(nèi)雹税,京東那捍、騰訊、華為等也都紛紛推出了各自的公有云服務(wù)签党。仿佛一瞬間國內(nèi)外的IT巨頭們都加入了公有云的競爭,將其推向了白日化勃痴。最后鹿死誰手還需要時(shí)間的驗(yàn)證谒所。
在了解了那么多虛擬化的概念和基礎(chǔ)知識之后,那么我們還有一個(gè)很大的疑問沛申,為什么我們要用虛擬化劣领,它有什么優(yōu)點(diǎn)呢?我們將從以下幾個(gè)方面進(jìn)行考慮。
基礎(chǔ)設(shè)施利用率——在沒有虛擬化技術(shù)之前铁材,公司需要為最高峰時(shí)刻而準(zhǔn)備充足的服務(wù)器尖淘,然而平時(shí)服務(wù)器的利用率極其低下。根據(jù)IDC的報(bào)告著觉,典型的X86服務(wù)器部署平均達(dá)到的利用率僅為總?cè)萘康?0%-15%村生。而且在每臺服務(wù)器上都只運(yùn)行了一個(gè)應(yīng)用程序,以免出現(xiàn)一個(gè)應(yīng)用程序中的漏洞影響同一服務(wù)器上其他應(yīng)用程序的可用性風(fēng)險(xiǎn)饼丘。拿京東舉例:京東的店慶日是618(6月18日)也是一年中銷售的最高峰趁桃。京東在每年618之前都會預(yù)估這一天的訪問量、銷量來評估需要采購多少服務(wù)器肄鸽。但是這一天過后卫病,另外364天的平均機(jī)器利用率只有10%左右。
物理基礎(chǔ)設(shè)施成本——為了支持不斷增長的業(yè)務(wù)啄灭。物理基礎(chǔ)設(shè)施和運(yùn)營成本都在穩(wěn)步的攀升膏娃。大多數(shù)的計(jì)算基礎(chǔ)設(shè)施都必須時(shí)刻保持運(yùn)行狀態(tài),因此耗電量囊喜,制冷設(shè)備成本都不會隨利用率的水平而變化蚜再,提升利用率成本不會提升。
IT管理成本——隨著計(jì)算環(huán)境日益復(fù)雜间皮,運(yùn)維人員所需的專業(yè)教育和經(jīng)驗(yàn)要求都在不斷提高采璧。而且此類人員的相關(guān)薪資成本也隨之增加琼葫。如果還在使用手動(dòng)的維護(hù)方式,將花費(fèi)過多的時(shí)間和資源馋顶。
災(zāi)備——物理機(jī)的災(zāi)備極其復(fù)雜蚯巍,且恢復(fù)時(shí)間較長。需要給物理機(jī)安裝操作系統(tǒng)麻彬,相關(guān)軟件浅涛,并恢復(fù)相應(yīng)的App。整個(gè)過程至少需要20-30分鐘窍各。
為了解決上述問題恤锣,虛擬化問題孕育而生了∪猓總而言之马昙,虛擬化降低了用戶的各種成本,且穩(wěn)定刹悴,高效行楞,靈活、可靠土匀。
【想看更多互聯(lián)網(wǎng)新聞和深度報(bào)道請關(guān)注速途網(wǎng)官方微信子房。(微信號:速途網(wǎng))】