虛擬化是指在同一臺(tái)物理服務(wù)器上模擬多臺(tái)虛擬機(jī)的能力。且每臺(tái)虛擬機(jī)在邏輯上擁有獨(dú)立的CPU,、內(nèi)存,、硬盤和網(wǎng)絡(luò)接口等,。虛擬化可以提高硬件資源的利用率,,使多個(gè)應(yīng)用能隔離的運(yùn)行在同一臺(tái)物理機(jī)上,。虛擬化分為硬件層面的虛擬化和軟件層面的虛擬化。
硬件虛擬化是通過模擬硬件的方式來獲得真實(shí)計(jì)算機(jī)的環(huán)境,,可以運(yùn)行一個(gè)完整的操作系統(tǒng),。在硬件虛擬化中,又有Full Virtualization(全虛擬化,,完整的模擬一整套真實(shí)的硬件設(shè)備),、Partial Virtualization(部分虛擬化,僅對(duì)關(guān)鍵性計(jì)算組件或者指令集進(jìn)行模擬,。操作系統(tǒng)需要修改才能運(yùn)行在部分虛擬化環(huán)境中)和Paravirtualization(半虛擬化,,不對(duì)硬件設(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),這樣在同一臺(tái)物理宿主機(jī)上存在大量相同或者相似的進(jìn)程和內(nèi)存頁(yè),,從而導(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ù)可以識(shí)別與合并含有相同內(nèi)容的內(nèi)存頁(yè),,但是還沒有對(duì)大量相同或者相似的進(jìn)程進(jìn)行優(yōu)化處理的有效手段,,相信隨著虛擬化技術(shù)的發(fā)展,該技術(shù)也會(huì)取得巨大的進(jìn)展,。因此,,硬件虛擬化也被稱為重量級(jí)虛擬化,在同一宿主機(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í)虛擬化,在同一宿主機(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)域,國(guó)內(nèi)外的各大公司對(duì)硬件虛擬化的興趣較大,,在研發(fā)和生產(chǎn)環(huán)境中也大都采用硬件虛擬化技術(shù),。但是近段時(shí)間國(guó)內(nèi)外很多云計(jì)算廠商紛紛開始嘗試使用LXC替代KVM/XEN等硬件虛擬化技術(shù)以獲得更好的性能。至于在實(shí)際的應(yīng)用場(chǎ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)勢(shì),,另外還包括工程師的學(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)勢(shì)互補(bǔ),以達(dá)到最佳的運(yùn)行效果,。
一般來講虛擬化發(fā)展公認(rèn)分為5個(gè)階段,。階段一,服務(wù)器整合,。通過虛擬化技術(shù)完成IT基礎(chǔ)架構(gòu),、資源的整合,,包括服務(wù)器整合,、存儲(chǔ)整合、網(wǎng)絡(luò)整合等,。以此來進(jìn)行IT基礎(chǔ)設(shè)計(jì)的簡(jiǎn)化,、達(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)對(duì)局部資源的削峰填谷效應(yīng),,進(jìn)一步提高IT投資的利用率,。傳說中的虛擬機(jī)Resize&Live Migrate。階段三,,高可用,。通過虛擬化實(shí)現(xiàn)高可用,即通過虛擬化技術(shù)提升服務(wù)質(zhì)量,,增強(qiáng)為前端業(yè)務(wù)提供服務(wù)支持的能力,。用戶在不增加IT投資的情況下,就可以使用虛擬機(jī)的冗余和備份,。高可用分為硬件和軟件,,硬件層面只能通過采購(gòu)冗余的硬件解決。比如:交換機(jī),、路由器,、電力,空調(diào),,消防,,和其他的冗余;軟件層面需要考慮有狀態(tài)的與無狀態(tài)的區(qū)別。如:軟件服務(wù)集群,、Active/Passive,、Active/Active等實(shí)現(xiàn),。階段四,工作負(fù)載管理,。通過虛擬化技術(shù)實(shí)現(xiàn)工作負(fù)載管理,,有了前幾個(gè)階段的基礎(chǔ),用戶可以對(duì)虛擬服務(wù)器進(jìn)行統(tǒng)一的規(guī)劃和管理,。例如京東每個(gè)月月末都會(huì)有促銷,,那么管理員就可以有計(jì)劃地在月末為其調(diào)配更多的虛擬資源,而無需增加物理設(shè)備的購(gòu)買,。這個(gè)就是傳說中的ELB(Elastic Load Balance)+ AS(AutoScaling),。階段五,災(zāi)難恢復(fù),。通過虛擬技術(shù)來實(shí)現(xiàn)災(zāi)難恢復(fù),,這同樣是建立在前幾階段之上的高級(jí)應(yīng)用,在本地或異地,,通過虛擬服務(wù)器或虛擬存儲(chǔ)實(shí)現(xiàn)不同等級(jí)的災(zāi)難恢復(fù)能力,,用戶可以根據(jù)自己能夠忍受的業(yè)務(wù)中斷時(shí)間來選擇相應(yīng)的方案,而這,,也幾乎不用增加過多的IT物理設(shè)施投入和運(yùn)維成本,。
為了快速的完成虛擬化5個(gè)階段的建設(shè),推動(dòng)虛擬化技術(shù)的發(fā)展,,IT巨頭們紛紛加大對(duì)虛擬化投入,。從2006年到現(xiàn)在,虛擬化技術(shù)進(jìn)入了爆發(fā)期,。諸多廠商如雨后春筍般涌現(xiàn),,如微軟、紅帽,、思杰,、IBM、Amazon,、Rackspace,、Google、Oracle等,。在國(guó)內(nèi),,京東、騰訊,、華為等也都紛紛推出了各自的公有云服務(wù),。仿佛一瞬間國(guó)內(nèi)外的IT巨頭們都加入了公有云的競(jìng)爭(zhēng),將其推向了白日化,。最后鹿死誰手還需要時(shí)間的驗(yàn)證,。
在了解了那么多虛擬化的概念和基礎(chǔ)知識(shí)之后,,那么我們還有一個(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%,。而且在每臺(tái)服務(wù)器上都只運(yùn)行了一個(gè)應(yīng)用程序,,以免出現(xiàn)一個(gè)應(yīng)用程序中的漏洞影響同一服務(wù)器上其他應(yīng)用程序的可用性風(fēng)險(xiǎn)。拿京東舉例:京東的店慶日是618(6月18日)也是一年中銷售的最高峰,。京東在每年618之前都會(huì)預(yù)估這一天的訪問量,、銷量來評(píng)估需要采購(gòu)多少服務(wù)器,。但是這一天過后,,另外364天的平均機(jī)器利用率只有10%左右。
物理基礎(chǔ)設(shè)施成本——為了支持不斷增長(zhǎng)的業(yè)務(wù),。物理基礎(chǔ)設(shè)施和運(yùn)營(yíng)成本都在穩(wěn)步的攀升,。大多數(shù)的計(jì)算基礎(chǔ)設(shè)施都必須時(shí)刻保持運(yùn)行狀態(tài),因此耗電量,,制冷設(shè)備成本都不會(huì)隨利用率的水平而變化,,提升利用率成本不會(huì)提升。
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í)間較長(zhǎng),。需要給物理機(jī)安裝操作系統(tǒng),,相關(guān)軟件,并恢復(fù)相應(yīng)的App,。整個(gè)過程至少需要20-30分鐘,。
為了解決上述問題,虛擬化問題孕育而生了,??偠灾摂M化降低了用戶的各種成本,,且穩(wěn)定,,高效,,靈活、可靠,。
【想看更多互聯(lián)網(wǎng)新聞和深度報(bào)道請(qǐng)關(guān)注速途網(wǎng)官方微信,。(微信號(hào):速途網(wǎng))】