日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
【深度】解析IaaS的基本資源及資源虛擬化

【深度】解析IaaS的基本資源及資源虛擬化

2015-08-25 09:31:55
云計(jì)算
IaaS 雖然IaaS并不一定需要虛擬化,但是通常來(lái)說(shuō)虛擬化被認(rèn)為是IaaS的基礎(chǔ),本篇短文將會(huì)主要介紹IaaS環(huán)境下各種資源是如何被虛擬化的。

在德化等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需設(shè)計(jì)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),全網(wǎng)營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站制作,德化網(wǎng)站建設(shè)費(fèi)用合理。

前言

前陣子聽(tīng)到IT圈內(nèi)的朋友聊到,IaaS相關(guān)領(lǐng)域的軟件工程師應(yīng)該是當(dāng)前IT產(chǎn)業(yè)中待遇最高的一批人。云計(jì)算作為IT基礎(chǔ)產(chǎn)業(yè),已經(jīng)獲得國(guó)內(nèi)外IT界的高度投入。當(dāng)前只要是大型的互聯(lián)網(wǎng)公司,不論是做門(mén)戶(hù)的、視頻的、搜索的,還是電商的、社交的、游戲的公司都在云計(jì)算上投入巨額的人力物力,以期望占領(lǐng)Iaas的制高點(diǎn)。他們通常是以自身業(yè)務(wù)需求為起點(diǎn),來(lái)部署IaaS。一旦成功部署,也可以利用IaaS來(lái)創(chuàng)建新的業(yè)務(wù)領(lǐng)域。此外,這兩年因IaaS而獲得風(fēng)投的創(chuàng)業(yè)企業(yè)也頗多,他們手上有大筆的現(xiàn)金,不惜以重金和高股票來(lái)籠絡(luò)軟件人才。不過(guò),相比于各大公司對(duì)云人才的渴求,這個(gè)市場(chǎng)上真正合格的IaaS軟件研發(fā)工程師卻非常少。主要原因大概是因?yàn)镮aaS系統(tǒng)本身涉及的內(nèi)容比較廣泛,需要軟件開(kāi)發(fā)人員對(duì)IT領(lǐng)域有一定的積累。前陣子,我造訪了電子科技大學(xué),和計(jì)算機(jī)專(zhuān)業(yè)的大學(xué)生進(jìn)行了一些交流。發(fā)現(xiàn)同學(xué)們對(duì)云計(jì)算技術(shù)非常感興趣,但是對(duì)它的具體功能和原理很難準(zhǔn)確描述。

本人從10年前開(kāi)始玩虛擬化,之后由于工作和興趣,也對(duì)云計(jì)算有了一些了解。個(gè)人感覺(jué)IaaS并沒(méi)有像云一般難以琢磨和理解,并非需要很高深的計(jì)算機(jī)知識(shí),有很多方面也是很多基本的計(jì)算機(jī)概念組成。于是在回上海的飛機(jī)上就有了要寫(xiě)一點(diǎn)關(guān)于介紹基本的IaaS概念和基礎(chǔ)的想法。希望能幫助對(duì)IaaS感興趣的人能夠了解和進(jìn)入這個(gè)領(lǐng)域,也希望有更多的人能加入IaaS軟件的開(kāi)發(fā)中來(lái),讓這個(gè)潮流技術(shù)盡快普及。

雖然IaaS并不一定需要虛擬化,但是通常來(lái)說(shuō)虛擬化被認(rèn)為是IaaS的基礎(chǔ),本篇短文將會(huì)主要介紹IaaS環(huán)境下各種資源是如何被虛擬化的。

IaaS的基本概念

IaaS (Infrastructure as aService)基礎(chǔ)架構(gòu)即服務(wù),是云計(jì)算的一種類(lèi)型,它是PaaS(Platform as a Service 平臺(tái)即服務(wù))和SaaS(softwareas a service軟件即服務(wù))的基礎(chǔ)。IaaS軟件通常用于管理大規(guī)模的物理硬件(IaaS可以管理小到一臺(tái)物理主機(jī),多到成千上萬(wàn)的物理服務(wù)器)并把客戶(hù)所需的軟硬件資源(CPU,內(nèi)存,網(wǎng)絡(luò),存儲(chǔ)等)以“主機(jī)”的形式提供(這里的主機(jī)可以是一臺(tái)獨(dú)立物理主機(jī),但更多的情況是虛擬機(jī),VirtualMachine, 簡(jiǎn)稱(chēng)VM)。

IaaS的根本目的在于計(jì)算資源的池化、統(tǒng)一的、智能的(如按需)管理調(diào)度。計(jì)算資源的池化,也就是把所有的資源放在一個(gè)大池子里并按照較小的單元進(jìn)行管理。例如把100個(gè)1TB的硬盤(pán)放在存儲(chǔ)池中,這個(gè)池子便有了100TB的容量,分配存儲(chǔ)的時(shí)候,不再是以1TB這樣的獨(dú)立硬盤(pán)單元進(jìn)行分發(fā),而是可以分發(fā)一個(gè)較小的容量(例如10GB,具體的分配的單元可以由IaaS進(jìn)行配置)。IaaS的Service,現(xiàn)在普遍都是以WebService的形式來(lái)提供,因?yàn)榉浅H菀撞僮鳌?/p>

IaaS所提供的虛擬機(jī)通常都會(huì)至少包含一個(gè)可以連上網(wǎng)絡(luò)的操作系統(tǒng)(如Linux,Windows)。用戶(hù)通過(guò)網(wǎng)絡(luò)可以登錄并操作虛擬機(jī)并按照虛擬機(jī)的資源配置和使用時(shí)間來(lái)付費(fèi)。用戶(hù)在虛擬機(jī)上進(jìn)行的操作就同操作一臺(tái)本地剛剛安裝好操作系統(tǒng)的電腦一樣,他可以在虛擬機(jī)上安裝更多的軟件(如Apache,MySQL,SQL-Server,Python,GCC等等)。他還可以加載自己的程序以完成更多的功能(例如搭建一個(gè)網(wǎng)站,或者VPN服務(wù)器)。用戶(hù)還可以靈活的按需申請(qǐng)存儲(chǔ)空間。由于這些提供給用戶(hù)的功能都是最基礎(chǔ)的計(jì)算機(jī)功能,所以這種服務(wù)形式也就被形象的稱(chēng)為基礎(chǔ)架構(gòu)即服務(wù)。

雖然講了IaaS的基本概念,大家對(duì)為什么需要IaaS也許還有疑問(wèn)。IaaS軟件提供的功能和傳統(tǒng)的不使用IaaS軟件相比,究竟有什么好處呢?我們來(lái)舉一個(gè)例子,在傳統(tǒng)方式里,當(dāng)客戶(hù)由于業(yè)務(wù)(開(kāi)設(shè)一個(gè)社交網(wǎng)站)需要搭建一個(gè)小型服務(wù)器,在搭建上層服務(wù)軟件之前,他還需要購(gòu)買(mǎi)硬件和安裝操作系統(tǒng),這往往都需要至少一天的時(shí)間,由于直接購(gòu)買(mǎi)硬件會(huì)導(dǎo)致一次性產(chǎn)生大量的花費(fèi),而且用戶(hù)需要對(duì)軟硬件提供日常的保養(yǎng)維護(hù)。相反,IaaS軟件通常可以在分分鐘就提供客戶(hù)所需的全部資源,而且是按需(使用的時(shí)間和空間)收費(fèi)。這不僅節(jié)省了用戶(hù)的時(shí)間,還節(jié)省了客戶(hù)初期的投資,也降低了客戶(hù)構(gòu)建服務(wù)器的門(mén)檻(很多人往往需要花費(fèi)大量的時(shí)間來(lái)調(diào)查購(gòu)買(mǎi)什么樣的服務(wù)器,安裝什么樣的操作系統(tǒng)。當(dāng)使用了IaaS軟件后,用戶(hù)可以在業(yè)務(wù)開(kāi)始之初只申請(qǐng)配置較小的虛擬機(jī),當(dāng)業(yè)務(wù)需求提高后,再升級(jí)到更高配置的虛擬機(jī))。此外IaaS軟件還會(huì)提供全方位的安全保障,用戶(hù)不必?fù)?dān)心自己在云上的數(shù)據(jù)會(huì)因?yàn)槠胀ǖ挠布收隙鴮?dǎo)致丟失。所以IaaS提供的按需服務(wù),是一種先進(jìn)的,快捷的,更經(jīng)濟(jì)的和更安全的軟件服務(wù)形式。有了IaaS之后,PaaS和SaaS會(huì)更加容易的疊加和部署。

那么誰(shuí)會(huì)使用IaaS軟件呢?公有云服務(wù)提供商是IaaS概念的發(fā)明者(Amazon在2005年推出了最早的公有云AWS服務(wù)),也是目前IaaS軟件商業(yè)使用的主力軍。公有云服務(wù)提供商,他們擁有海量的物理服務(wù)器(數(shù)千,到數(shù)十萬(wàn)),大規(guī)模的網(wǎng)絡(luò)帶寬和穩(wěn)定的機(jī)房環(huán)境。要管理這些海量的物理服務(wù)器,如果僅僅通過(guò)人工方式來(lái)進(jìn)行是不可想象的。IaaS軟件可以做到自動(dòng)的通過(guò)網(wǎng)絡(luò)來(lái)管理物理服務(wù)器的配置和運(yùn)行。另外考慮到大量的客戶(hù)往往只需要比較小的服務(wù)器資源,這些小資源的配置往往比單臺(tái)物理服務(wù)器小很多,那么就需要通過(guò)軟件的方法把單臺(tái)物理服務(wù)器的資源在保證數(shù)據(jù)安全隔離的情況下分配給不同的用戶(hù)使用。IaaS軟件可以輕松的把一臺(tái)服務(wù)器的資源劃分成幾個(gè)或幾十個(gè)虛擬機(jī)的形式提供給客戶(hù)(IaaS軟件也可以把一臺(tái)服務(wù)器的全部資源做成一個(gè)虛擬機(jī);或者不采用任何虛擬化技術(shù)而直接使用物理服務(wù)器,通常這種形式被稱(chēng)為Baremental)。這種降低了單個(gè)客戶(hù)成本的方式,擴(kuò)大了客戶(hù)量,也就大大提高了公有云服務(wù)提供商的營(yíng)收。除了公有云提供商外,私有云和混合云是IaaS軟件的主要使用者。使用私有云的企業(yè)往往是中大型的公司,他們內(nèi)部有大量的服務(wù)器需要管理,這點(diǎn)和公有云服務(wù)商的類(lèi)似,他們也需要高效的自動(dòng)化IaaS軟件來(lái)幫助管理這些大量的服務(wù)器。當(dāng)采用了IaaS來(lái)管理私有云之后,企業(yè)的業(yè)務(wù)模式也可以發(fā)生拓展,在內(nèi)部私有云超負(fù)荷的情況下(例如當(dāng)節(jié)日促銷(xiāo)活動(dòng)時(shí),客戶(hù)服務(wù)的需求量可能是平時(shí)的十幾甚至幾十倍),可以和公有云組建混合云,這就讓企業(yè)的服務(wù)能力變得無(wú)限。目前IaaS軟件還沒(méi)有在家庭用戶(hù)中直接使用,不過(guò)未來(lái)個(gè)人云創(chuàng)新后,家庭用戶(hù)可能可以直接使用IaaS軟件的衍生產(chǎn)品。

目前最主流IaaS軟件有亞馬遜的AWS,微軟的Azure和開(kāi)源的OpenStack。其中前兩個(gè)都是閉源的僅供內(nèi)部使用,想?yún)⑴c開(kāi)發(fā),只能加入亞馬遜或者微軟了。OpenStack是目前最火的開(kāi)源軟件,已經(jīng)有183家公司和3386名開(kāi)發(fā)人員參與研發(fā)。據(jù)分析,到2018年OpenStack將會(huì)擁有33億美元的云市場(chǎng)。國(guó)內(nèi)超過(guò)一半的IaaS研發(fā)公司都在使用OpenStack。因?yàn)殚_(kāi)源,OpenStack非常有利于學(xué)習(xí)和研究IaaS的基本概念。

#p#

IaaS的基本資源

IaaS把眾多的物理資源進(jìn)行劃分和重組,提供給用戶(hù)。IaaS具體管理的物理資源,可以分為三大類(lèi):計(jì)算資源(CPU加內(nèi)存),存儲(chǔ)資源和網(wǎng)絡(luò)資源。從計(jì)算資源角度來(lái)講,IaaS軟件管理的最小的物理單元為一個(gè)物理服務(wù)器(Host)。根據(jù)需求,服務(wù)器上會(huì)被創(chuàng)建多個(gè)虛擬機(jī)。若干配置相同(相同的虛擬化軟件Hypervisor和網(wǎng)絡(luò)設(shè)備以及拓?fù)浣Y(jié)構(gòu))的物理服務(wù)器會(huì)組成一個(gè)集群(Cluster),要求配置相同的主要原因是因?yàn)樾枰С痔摂M機(jī)動(dòng)態(tài)遷移。通常一些集群還會(huì)組成更大規(guī)模的區(qū)域(Zone)。某些IaaS軟件,還能支持由若干Zone組成的地區(qū)(Region)。集群、區(qū)域的劃分會(huì)體現(xiàn)在對(duì)網(wǎng)絡(luò)和存儲(chǔ)不同配置。例如一個(gè)集群可以共享相同的網(wǎng)絡(luò)主存儲(chǔ),以支持虛擬機(jī)的動(dòng)態(tài)遷移。一個(gè)區(qū)域可以共享相同的網(wǎng)絡(luò)備份存儲(chǔ),可用來(lái)存放共享的虛擬機(jī)鏡像文件。

虛擬機(jī)和存儲(chǔ)服務(wù)是IaaS提供服務(wù)的最基本單元。通常存儲(chǔ)服務(wù)是和虛擬機(jī)緊密相關(guān)的,這是因?yàn)橛脩?hù)主要是通過(guò)虛擬機(jī)來(lái)訪問(wèn)IaaS的存儲(chǔ)資源(這點(diǎn)和PaaS和SaaS不同)。IaaS依賴(lài)于軟硬件虛擬化技術(shù)(現(xiàn)在主要是硬件虛擬化)在一個(gè)服務(wù)器上創(chuàng)建多個(gè)VM,所以虛擬化(Virtualization)常被稱(chēng)為是云計(jì)算的基礎(chǔ)。所以如果要了解IaaS,我們就不得不認(rèn)識(shí)一下虛擬化技術(shù)。虛擬化技術(shù)上也并不神秘,它通過(guò)時(shí)空復(fù)用的技術(shù)讓資源可以被劃分和共享。

IaaS的基本資源的虛擬化

CPU虛擬化

首先我們來(lái)看一下CPU是如何虛擬化的。對(duì)于當(dāng)代的CPU來(lái)說(shuō),它具有極高的計(jì)算調(diào)度能力,它能在一秒鐘內(nèi)可以運(yùn)算上千萬(wàn)條指令。另外,由于客戶(hù)的虛擬機(jī)往往運(yùn)行的并不是計(jì)算密集型的應(yīng)用程序(如瀏覽網(wǎng)頁(yè),訪問(wèn)數(shù)據(jù)庫(kù),存儲(chǔ)文件等等),換句話說(shuō)它的程序功能可以在很短時(shí)間(毫秒級(jí)別)內(nèi)計(jì)算完成,當(dāng)計(jì)算完成或等待其他網(wǎng)絡(luò)、硬盤(pán)等IO操作時(shí),如果沒(méi)有其他計(jì)算任務(wù),CPU便會(huì)進(jìn)入空閑(IDLE)狀態(tài)。經(jīng)過(guò)統(tǒng)計(jì),通常情況我們的CPU繁忙的時(shí)間很短,例如CPU有95%的時(shí)間都處于空閑狀態(tài)。如果我們讓CPU在等待的時(shí)候,也能給別人提供服務(wù),便可以讓資源利用率最大化,所以CPU的虛擬化技術(shù)的本質(zhì)就是以分時(shí)復(fù)用的方式,讓所有的虛擬機(jī)能夠共享CPU的計(jì)算能力。因?yàn)镃PU運(yùn)算的速度非常快,而且這種分時(shí)的單元非常的小,以至于用戶(hù)完全不會(huì)察覺(jué)到自己的虛擬機(jī)是在CPU上輪流運(yùn)算的,所以在宏觀的世界里,這些虛擬機(jī)看起來(lái)就是在同時(shí)工作的。當(dāng)然IaaS軟件還需要通過(guò)一些手段保證每個(gè)虛擬機(jī)申請(qǐng)的CPU可以分到足夠的時(shí)間片。這是一個(gè)比較簡(jiǎn)單的便于理解的對(duì)于CPU虛擬化的描述,但是CPU虛擬化內(nèi)幕是非常精巧和復(fù)雜的,為了實(shí)現(xiàn)高效準(zhǔn)確的CPU虛擬化能力,世界上頂尖的軟硬件工程師已經(jīng)為此付出超過(guò)十年的努力。

內(nèi)存虛擬化

如果我們說(shuō)CPU虛擬化是一個(gè)時(shí)間之旅,那么內(nèi)存虛擬化就是一個(gè)空間之旅。內(nèi)存是用來(lái)存放CPU要運(yùn)行和計(jì)算的數(shù)據(jù)和代碼。我們知道,物理內(nèi)存在計(jì)算機(jī)上通常是一段以零地址開(kāi)始以全部?jī)?nèi)存空間為截止地址的空間。例如4個(gè)8GB內(nèi)存條組成的32GB內(nèi)存,它在物理服務(wù)器上看起來(lái)就是0~32GB的空間(可以在BIOS和系統(tǒng)啟動(dòng)后看到)。內(nèi)存地址就好比門(mén)牌號(hào)碼,CPU在訪存的時(shí)候,只要提供對(duì)應(yīng)的內(nèi)存地址,就可以拜訪對(duì)應(yīng)地址內(nèi)的數(shù)據(jù)。對(duì)于每個(gè)虛擬機(jī)來(lái)說(shuō),不論它分配了512MB的內(nèi)存,還是分配了4GB的內(nèi)存,它通常都是認(rèn)為自己的內(nèi)存是從零地址開(kāi)始的一段空間(至少虛擬機(jī)的用戶(hù)是這樣認(rèn)為的)。但是實(shí)際上,它們都會(huì)被映射到物理機(jī)上不同的空間段,有的可能是從1G開(kāi)頭的,有的可能是從10G開(kāi)頭的。而且不僅僅是內(nèi)存的起始地址在物理機(jī)上不同,通常連虛擬機(jī)的內(nèi)存在物理機(jī)內(nèi)存上的分布也不是連續(xù)的。他們可能會(huì)被映射到不同的內(nèi)存區(qū)間。虛擬機(jī)管理程序(Hypervisor)負(fù)責(zé)維護(hù)虛擬機(jī)內(nèi)存在物理內(nèi)存上的映射。當(dāng)虛擬機(jī)訪問(wèn)一段自己的內(nèi)存空間(例如1073741824,也就是1G)的時(shí)候,會(huì)被映射到真實(shí)的物理地址(例如6442450944)。這種映射對(duì)虛擬機(jī)的操作系統(tǒng)來(lái)說(shuō)可以是完全透明而高效的。因?yàn)橐慌_(tái)物理機(jī)上運(yùn)行了多個(gè)虛擬機(jī),所以虛擬機(jī)管理程序需要保證,不論在任何時(shí)候,來(lái)自虛擬機(jī)A的訪存請(qǐng)求不能到達(dá)虛擬機(jī)B的內(nèi)存空間。這也就是資源的隔離?,F(xiàn)有的虛擬機(jī)管理程序甚至支持分配的虛擬機(jī)內(nèi)存空間的總和大于物理內(nèi)存,這種技術(shù)叫做超分(overcommit)。KVM里面使用KSM(KernelSamePage Merging)就可以讓在不同虛擬機(jī)里使用相同數(shù)據(jù)的頁(yè)(例如使用相同的內(nèi)核)共享一份內(nèi)存來(lái)保存。這就是內(nèi)存虛擬化帶來(lái)的好處。

存儲(chǔ)虛擬化

IaaS虛擬存儲(chǔ)資源的方法和虛擬內(nèi)存類(lèi)似,主要也是通過(guò)把一個(gè)大的存儲(chǔ)空間劃分成多個(gè)小的存儲(chǔ)空間分配給虛擬機(jī)使用。但是與內(nèi)存虛擬化不同的是,存儲(chǔ)虛擬化通常并不是直接發(fā)生在硬盤(pán)的尋址層面,也就是不會(huì)在具體訪問(wèn)硬盤(pán)驅(qū)動(dòng)的時(shí)候才轉(zhuǎn)化訪問(wèn)的地址。存儲(chǔ)虛擬化是以文件為單位來(lái)進(jìn)行資源的存儲(chǔ)和隔離的。這個(gè)文件不是虛擬機(jī)里看到每個(gè)具體文件,而是在物理機(jī)上用于模擬虛擬機(jī)硬盤(pán)的一個(gè)超大文件,對(duì)硬盤(pán)地址的訪問(wèn)就是對(duì)文件的某個(gè)偏移量的訪問(wèn)。這點(diǎn)看似復(fù)雜,其實(shí)更容易理解。例如一個(gè)大小為20GB的獨(dú)立文件,可以被看成是一個(gè)20GB的硬盤(pán)空間,當(dāng)需要訪問(wèn)0地址的時(shí)候,也就是訪問(wèn)文件的開(kāi)頭,當(dāng)需要訪問(wèn)3G這個(gè)地址的時(shí)候,也就是訪問(wèn)文件的3G偏移量的地方。使用這種靈活分配的方法,理論上可以讓一個(gè)2TB的物理硬盤(pán),化身身成接近100個(gè)20GB或者接近20個(gè)100GB的硬盤(pán)。需要說(shuō)明的是,看似一個(gè)完整的20GB文件,它在硬盤(pán)上可能并不是連續(xù)存放的,這完全取決于虛擬機(jī)管理程序的文件系統(tǒng)是如何分配硬盤(pán)空間的。當(dāng)然虛擬機(jī)本身并不會(huì)意識(shí)到這點(diǎn),具體訪問(wèn)硬盤(pán)的時(shí)候,會(huì)由虛擬機(jī)管理程序的文件系統(tǒng)來(lái)保證訪問(wèn)的準(zhǔn)確性。有些虛擬機(jī)管理程序用一個(gè)文件來(lái)模擬一個(gè)虛擬機(jī)硬盤(pán),有些則支持多個(gè)文件合并模擬一個(gè)虛擬機(jī)硬盤(pán)。使用多個(gè)文件來(lái)模擬虛擬機(jī)硬盤(pán)的方法更加靈活,并且有利于實(shí)現(xiàn)硬盤(pán)快照功能。

#p#

網(wǎng)絡(luò)虛擬化

與之前講的CPU、內(nèi)存、硬盤(pán)等物理資源相比較,計(jì)算機(jī)網(wǎng)絡(luò)虛擬化的內(nèi)容和實(shí)現(xiàn)要相對(duì)復(fù)雜一些。通常用戶(hù)通常熟悉的計(jì)算機(jī)網(wǎng)絡(luò)概念包含,網(wǎng)卡、IP地址,主機(jī)名等等。例如在一臺(tái)物理機(jī)上,可能有一個(gè)或幾個(gè)網(wǎng)卡,每個(gè)網(wǎng)卡在工作的時(shí)候會(huì)分配不同的IP地址,對(duì)外可能有一個(gè)或多個(gè)網(wǎng)絡(luò)主機(jī)名。網(wǎng)絡(luò)連接速度取決于網(wǎng)卡的能力以及網(wǎng)絡(luò)接入(例如交換機(jī))的能力。在網(wǎng)絡(luò)上通過(guò)IP地址或者網(wǎng)絡(luò)主機(jī)名可以連接不同的物理主機(jī),所以在一個(gè)可以路由的網(wǎng)段內(nèi)IP地址和主機(jī)名必須是唯一的。在每個(gè)網(wǎng)卡上,還有一個(gè)MAC地址,用來(lái)標(biāo)識(shí)在相同網(wǎng)段上不同的網(wǎng)卡。用戶(hù)通常不會(huì)注意MAC地址,因?yàn)樗⒉恍枰脩?hù)手動(dòng)配置。那么什么是網(wǎng)絡(luò)虛擬化呢?假如原本的物理機(jī)只有一個(gè)網(wǎng)卡,那么它有一個(gè)MAC地址,并且可以分配一個(gè)IP地址,其他機(jī)器就可以通過(guò)IP地址訪問(wèn)這個(gè)物理主機(jī)。當(dāng)創(chuàng)建N個(gè)虛擬機(jī)后,每個(gè)虛擬機(jī)都需要有獨(dú)立的網(wǎng)絡(luò)配置,以便他們可以像物理機(jī)一樣的處理各種網(wǎng)絡(luò)連接。但是這個(gè)時(shí)候物理機(jī)上依然只有一個(gè)網(wǎng)卡,N個(gè)虛擬機(jī)通過(guò)這一個(gè)物理網(wǎng)卡都能進(jìn)行順暢的網(wǎng)絡(luò)連接的過(guò)程即為網(wǎng)絡(luò)虛擬化。

虛擬機(jī)上的網(wǎng)絡(luò)概念和物理機(jī)一樣。在一個(gè)物理機(jī)上創(chuàng)建多個(gè)虛擬機(jī),就是要?jiǎng)?chuàng)建多份虛擬機(jī)的虛擬網(wǎng)卡,并且保證它們能夠正確的聯(lián)通到網(wǎng)絡(luò)上。這是如何做到的呢?這主要是通過(guò)虛擬機(jī)管理程序在虛擬層面創(chuàng)建了一個(gè)虛擬的網(wǎng)橋(Bridge)。這個(gè)網(wǎng)橋就和我們我們看到的交換機(jī)一樣,上面有很多“接口”可以連接不同的虛擬網(wǎng)卡,當(dāng)然物理機(jī)的真實(shí)網(wǎng)卡也需要連在這個(gè)網(wǎng)橋上,并且設(shè)置了一種特殊的混雜模式(可以允許不論該物理網(wǎng)卡是否為網(wǎng)絡(luò)包的目的地址都能通過(guò)該網(wǎng)卡接收或者發(fā)送)。在同一個(gè)網(wǎng)橋上的不同虛擬機(jī)之間進(jìn)行的網(wǎng)絡(luò)通信,只會(huì)在本網(wǎng)橋內(nèi)發(fā)生。只有當(dāng)虛擬機(jī)的網(wǎng)絡(luò)通信的對(duì)象不在本機(jī)(比如物聯(lián)網(wǎng)上的其他主機(jī))上的時(shí)候,他們就會(huì)通過(guò)物理機(jī)的網(wǎng)卡向外進(jìn)行傳輸。由于物理機(jī)的網(wǎng)卡帶寬能力是固定的,所以在一個(gè)網(wǎng)橋上的虛擬網(wǎng)卡也是分時(shí)共享相同的網(wǎng)絡(luò)帶寬(如果網(wǎng)絡(luò)包的交換之發(fā)生在本網(wǎng)橋內(nèi),速度不會(huì)受到物理網(wǎng)卡的影響)。雖然他們?cè)谧约簜鬏數(shù)臅r(shí)間段內(nèi)是獨(dú)占全部帶寬(例如1Gbps),但是同時(shí)會(huì)導(dǎo)致其他虛擬網(wǎng)卡暫時(shí)無(wú)法傳輸數(shù)據(jù),以至于在宏觀范圍(秒)來(lái)看,虛擬機(jī)是沒(méi)有辦法在共享網(wǎng)絡(luò)的時(shí)候占用全部帶寬的。如果假設(shè)有4個(gè)虛擬機(jī)都在進(jìn)行大規(guī)模的網(wǎng)絡(luò)操作(例如大文件的下載和上傳),那么理論上他們的實(shí)際連接速度最多就只能達(dá)到250Mbps。由于網(wǎng)絡(luò)速度對(duì)云計(jì)算中虛擬機(jī)的能力非常重要,芯片公司也在不斷推出各種針對(duì)網(wǎng)絡(luò)連接的硬件虛擬化解決方案(例如SR-IOV,VMDq等等)。

如果物理機(jī)去上只有一個(gè)物理網(wǎng)卡,那么不同的虛擬機(jī)的網(wǎng)絡(luò)都是通過(guò)同一個(gè)網(wǎng)卡連接出去,這是會(huì)導(dǎo)致網(wǎng)絡(luò)安全問(wèn)題的。例如一個(gè)虛擬機(jī)可以監(jiān)聽(tīng)整個(gè)網(wǎng)絡(luò)上的所有數(shù)據(jù)包,并分析截獲感興趣的別的虛擬機(jī)的網(wǎng)絡(luò)數(shù)據(jù)。為了解決這個(gè)問(wèn)題,計(jì)算機(jī)網(wǎng)絡(luò)提供了一種叫做VLan的技術(shù)。通過(guò)對(duì)網(wǎng)絡(luò)編輯指定的VLan編號(hào),一個(gè)物理網(wǎng)卡可以拓展多達(dá)4095個(gè)獨(dú)立連接能力。例如,如果原本的物理網(wǎng)卡為eth0,VLan1的網(wǎng)卡設(shè)備在操作系統(tǒng)就變成eth0.1,VLan1000的網(wǎng)卡設(shè)備就是eth0.1000,eth0.1和eth0.1000之間都無(wú)法看到對(duì)方的網(wǎng)絡(luò)包。有了VLan的支持,在相同物理機(jī)上的虛擬機(jī)就可以分配不同的VLan編號(hào)的網(wǎng)絡(luò)設(shè)備,從而進(jìn)行了網(wǎng)絡(luò)隔離。

有了計(jì)算機(jī)資源、存儲(chǔ)資源和網(wǎng)絡(luò)資源的虛擬化,IaaS就可以管理起把整套虛擬化的資源,并且在客戶(hù)需要的時(shí)候,把一部分資源劃分給用戶(hù)使用。例如用戶(hù)可以申請(qǐng)2個(gè)CPU,2GB的內(nèi)存,100GB的硬盤(pán)和2個(gè)網(wǎng)卡,或者可以申請(qǐng)4個(gè)CPU,16GB的內(nèi)存,2T的硬盤(pán)和1個(gè)具有公網(wǎng)IP地址的網(wǎng)卡等不同的資源。由于虛擬機(jī)共享著物理機(jī)的資源,所以IaaS軟件必須要做好資源的隔離以保證數(shù)據(jù)的安全。需要指出的是,IaaS軟件管理和分配的過(guò)程是完全自動(dòng)化的。它的輸入是用戶(hù)的需求(通常通過(guò)網(wǎng)頁(yè)輸入),它的輸出是一個(gè)具有網(wǎng)絡(luò)連接能力的虛擬機(jī)。

至此,IaaS軟件的基本概念和資源虛擬化的部分就介紹完畢了,為了簡(jiǎn)化,我們并沒(méi)有涉及資源虛擬化的細(xì)節(jié)和IaaS是如何管理和分配這些資源的,從了解基本概念的角度來(lái)說(shuō)已經(jīng)足夠。不過(guò)要成為IaaS軟件研發(fā)工程師,還需要熟悉和了解各種資源是如何虛擬化的,并且掌握如何管理和分配這些資源(池化),并用自動(dòng)化的方法把它們串聯(lián)起來(lái)。為了更好的分配這些資源,IaaS軟件通常會(huì)構(gòu)建很多內(nèi)部的邏輯概念。例如對(duì)于存儲(chǔ)資源,IaaS會(huì)分成主存儲(chǔ)和備份存儲(chǔ)。由于存儲(chǔ)類(lèi)型的不同,IaaS軟件需要支持不同的存儲(chǔ)方式,例如NFS,iSCSI或者對(duì)象存儲(chǔ)。由于虛擬化管理程序可能是異構(gòu)的,例如(KVMvs. VSphere),IaaS軟件往往還需要支持幾種不同的虛擬化解決方案。每一種虛擬化管理程序的應(yīng)用程序接口是不同的,IaaS需要能夠分別并暴露給用戶(hù)統(tǒng)一的接口。此外由于管理著成百上千的物理服務(wù)器,服務(wù)器難免會(huì)出現(xiàn)各種問(wèn)題(例如掉電,電子元件損壞等等),IaaS軟件都需要針對(duì)不同的錯(cuò)誤進(jìn)行自我隔離、容錯(cuò)和修復(fù)。以上這些都是IaaS軟件工程師需要處理和解決的常見(jiàn)問(wèn)題。


新聞名稱(chēng):【深度】解析IaaS的基本資源及資源虛擬化
鏈接地址:http://www.dlmjj.cn/article/dhpsepj.html