http://bbs.vsharing.com/Technology/Virtualization/1322078-1.html
Amazon虛擬化
Amazon EC2作為世界領(lǐng)先的IaaS云計(jì)算服務(wù),它有下面這些特點(diǎn):
1) 功能豐富:支持豐富的操作系統(tǒng)和海量的軟件,還支持負(fù)載均衡等,并提供功能強(qiáng)大的Web管理界面和API。
2) 優(yōu)秀性能:除了快速的啟動(dòng)速度之外,EC2還提供了各種配置強(qiáng)大的套餐讓用戶隨意地選擇。
3) 安全性高:EC2提供多種安全機(jī)制來確保用戶能安全地使用其提供的實(shí)例。
4) 多地點(diǎn):允許用戶在多個(gè)地點(diǎn)之間進(jìn)行選擇,來提升應(yīng)用的用戶體驗(yàn)。
5) 初期投入低:無需高昂的前期投入,用戶只需按照所使用的時(shí)間付費(fèi)。
6) 擴(kuò)展方便:能同時(shí)輕松地部署多個(gè)新的實(shí)例來滿足突發(fā)請求。
Amazon EC2是世界上最大的Xen集群,其應(yīng)該也是世界上最大的虛擬機(jī)集群。整個(gè)Xen集群都是基于Redhat Linux,也意味著Dom0為Redhat Linux,具體Xen的版本號未知,應(yīng)該是3.0左右,但為了讓Xen更好地適應(yīng)EC2的整體設(shè)計(jì),Amazon的團(tuán)隊(duì)肯定已經(jīng)做了很多定制化工作。在虛擬化方式上,基本以Xen的半虛擬化方式為主,但是最近一段時(shí)間,為了支持閉源的Windows系統(tǒng)和利用HVM技術(shù)在計(jì)算密集型應(yīng)用上的優(yōu)勢,所以Amazon已經(jīng)開始試著引入Xen的HVM技術(shù),其中最明顯的例子,莫過于,EC2最新推出的用于HPC應(yīng)用的集群計(jì)算(Cluster Compute)實(shí)例就是基于HVM技術(shù)。
AMI(Amazon Machine Images) 簡單的來說,AMI可以被認(rèn)為是Xen虛擬機(jī)的鏡像(Image),在鏡像里面包含了操作系統(tǒng)和一些軟件,比如,Apache和MySQL等。用戶在創(chuàng)建實(shí)例的時(shí)候,需要為這個(gè)實(shí)例選定一個(gè)AMI,在這個(gè)實(shí)例啟動(dòng)的時(shí)候,其會(huì)通過讀寫這個(gè)AMI來啟動(dòng)操作系統(tǒng)。AMI也可以被認(rèn)為是一個(gè)虛擬器件,但和標(biāo)準(zhǔn)的虛擬器件不同的是,其并不是基于OVF協(xié)議,而是基于Amazon EC2自己的一套規(guī)范來進(jìn)行配置和調(diào)整,比如,關(guān)于SSH認(rèn)證的設(shè)定等。
根據(jù)性質(zhì)的不同,AMI主要可分為三種:
1) 私有的:用戶個(gè)人創(chuàng)建的AMI,在默認(rèn)情況下是設(shè)為私有的,但可以授權(quán)其他用戶來使用這個(gè)AMI。
2) 公共的:用戶創(chuàng)建并發(fā)布到 Amazon Web Services 社區(qū)的AMI,任何用戶都可以使用這個(gè)AMI來啟動(dòng)實(shí)例。
3) 付費(fèi)的:開發(fā)者可以創(chuàng)建提供獨(dú)特功能的AMI,如果其他用戶想使用這個(gè)AMI,需要按照使用的時(shí)間來向開發(fā)者。
現(xiàn)在開發(fā)人員或者用戶主要使用名為“Amazon EC2 AMI Tools”的工具來創(chuàng)建AMI,當(dāng)AMI創(chuàng)建成功之后,需要將這個(gè)AMI上傳至S3中,并將這個(gè)AMI注冊至EC2中。
現(xiàn)有的AMI支持的操作系統(tǒng)有:Red Hat Enterprise Linux、Windows Server 2003/2008、OpenSolaris、openSUSE Linux和Ubuntu Linux等。
現(xiàn)有的AMI所支持的軟件更是數(shù)不勝數(shù),比如,在數(shù)據(jù)庫方面有:IBM DB2、微軟 SQL Server 2005、Oracle數(shù)據(jù)庫11g和MySQL等,在批處理方面有Hadoop、Condor和Open MPI等,在應(yīng)用服務(wù)器方面有:IBM的WebSphere和Oracle的WebLogic等,當(dāng)然還支持許許多多的開源軟件,比如Apache,Nginx和Ruby on Rails等。
實(shí)例
在部署AMI的時(shí)候,系統(tǒng)會(huì)首先會(huì)在一個(gè)Xen主機(jī)上創(chuàng)建一個(gè)虛擬機(jī),并將這個(gè)AMI作為這個(gè)虛擬機(jī)的系統(tǒng)盤,在創(chuàng)建成功之后,系統(tǒng)會(huì)在這個(gè)Xen主機(jī)上啟動(dòng)這個(gè)虛擬機(jī),在EC2中,這個(gè)虛擬機(jī)被稱為實(shí)例,其所消耗資源的大小和平臺(tái)的規(guī)格(32位或64位)取決于用戶所選擇實(shí)例的類型。用戶還可以使用CloudWatch等方式來檢測實(shí)例的運(yùn)行。
為了滿足不同用戶的需要,EC2有四大類的實(shí)例可供用戶選擇: 標(biāo)準(zhǔn)實(shí)例,這類實(shí)例適合大多數(shù)應(yīng)用,共分小型,大,超大這三款:小的那款的配置為1.7GB內(nèi)存、1個(gè)EC2計(jì)算單位*、160GB的本地存儲(chǔ)、32位平臺(tái)和中等的I/O性能,起始價(jià)格為每小時(shí)0.085美元;大的那款的配置為7.5GB內(nèi)存、4個(gè)EC2計(jì)算單位、850GB的本地存儲(chǔ)、64 位平臺(tái)和高 I/O 性能,每小時(shí)為0.34美元;超大的那款的配置為15GB內(nèi)存、8個(gè)EC2計(jì)算單位、1690GB的本地存儲(chǔ)、64 位平臺(tái)和高 I/O 性能,每小時(shí)為0.68美元。
高內(nèi)存實(shí)例,適合那些對內(nèi)存非常依賴的應(yīng)用,比如數(shù)據(jù)庫和Memcache等應(yīng)用,在配置上,它的起始內(nèi)存是標(biāo)準(zhǔn)實(shí)例的10倍,也就是17GB,其它配置也比標(biāo)準(zhǔn)實(shí)例也有一定的提高,當(dāng)然在價(jià)格方面也貴很多,起始價(jià)格為0.50美元每小時(shí)。
高CPU實(shí)例,適合那些計(jì)算密集型的應(yīng)用,在配置上,其起始的CPU為5個(gè)EC2計(jì)算單位,由于其在其它配置方面和標(biāo)準(zhǔn)實(shí)例非常接近,所以其初始價(jià)格只是標(biāo)準(zhǔn)實(shí)例的一倍,也就是每小時(shí)0.17美元。
集群計(jì)算實(shí)例,這種實(shí)例有極強(qiáng)的CPU和10G以太網(wǎng)的支持,從而能非常好的支持HPC應(yīng)用,并采用了HVM虛擬化技術(shù)以更好地支持計(jì)算密集型的應(yīng)用。
注:一個(gè)EC2 計(jì)算單位 (ECU) 相當(dāng)于一個(gè)1.0-1.2GHz 2007 Opteron 或 2007 Intel Xeon 處理器的處理能力。
雖然用戶只需按實(shí)際使用的量付費(fèi),但是如果長期使用的話,價(jià)格并不是特別經(jīng)濟(jì),就那最便宜的小型標(biāo)準(zhǔn)實(shí)例為例,其每月最少需要61美元的開支,所以Amazon推出了預(yù)訂機(jī)制(Reserved Instances),來幫助長期租用EC2的用戶節(jié)省投入,通過使用預(yù)訂機(jī)制,能夠節(jié)省大約30%的支出,但預(yù)訂機(jī)制需要用戶和Amazon簽署一年或者三年的長約。
在硬件方面,每臺(tái)EC2服務(wù)器的成本范圍在2千至2.5千美元之間,現(xiàn)在使用的是Rackable的服務(wù)器,大部分是2U的雙處理器系統(tǒng),共有8個(gè)內(nèi)核,每臺(tái)服務(wù)器裝有8個(gè)500GB SATA硬盤。每個(gè)機(jī)柜會(huì)裝有16到18個(gè)這種2U機(jī)箱。
存儲(chǔ)
在存儲(chǔ)方面,EC2主要使用兩類存儲(chǔ): 1) 本地存儲(chǔ) 和 2) EBS。
本地存儲(chǔ)是實(shí)例自帶的硬盤空間,但它并不是持久的的,也就是說當(dāng)這個(gè)實(shí)例被關(guān)閉了,它附帶的硬盤空間也會(huì)隨之清空,所以需要對放置在本地存儲(chǔ)上的重要數(shù)據(jù)進(jìn)行備份。在實(shí)現(xiàn)機(jī)制方面,根據(jù)一些用戶的觀察,本地存儲(chǔ)通過使用LVM(Logical Volume Manager,邏輯卷管理)技術(shù)來方便本地存儲(chǔ)的管理和分配,并可能使用Raid 0技術(shù)來提升其的運(yùn)行速度。
由于本地存儲(chǔ)是易失的,所以EC2為了滿足用戶對持久存儲(chǔ)的需要,EC2推出EBS(Elastic Block Store),它不僅是持久的,而且在性能上也優(yōu)于本地存儲(chǔ)。與本地存儲(chǔ)不同的是,EBS并不與實(shí)例綁定,而是與用戶的賬號綁定,一個(gè)賬戶能創(chuàng)建最多20 個(gè)EBS卷(Volume),可以把卷作為塊級設(shè)備加載到正在運(yùn)行的一個(gè)實(shí)例。重要的文件和數(shù)據(jù),都應(yīng)該將它們存儲(chǔ)在EBS卷上,但要注意,在任何時(shí)候每個(gè)EBS 卷只能連接到一個(gè)實(shí)例,可以一個(gè)實(shí)例可以同時(shí)連接任意數(shù)量的卷,并且實(shí)例和卷需要在同一個(gè)可用區(qū)。在實(shí)現(xiàn)方面,EBS采用了類似SAN的技術(shù),其中iSCSI的可能性最大,因?yàn)楫?dāng)實(shí)例的本地網(wǎng)絡(luò)發(fā)生擁擠的時(shí)候,它的EBS性能也會(huì)隨之下降。EBS還提供非常有用的快照(Snapshot)功能,每個(gè)快照代表一個(gè)卷在一個(gè)特定時(shí)間點(diǎn)的狀態(tài),快照主要可用于恢復(fù),或者用于創(chuàng)建一個(gè)新卷?! “踩矫?/font>
在安全方面,EC2主要提供三類機(jī)制來確保安全: 安全組(Security Group):在 EC2 環(huán)境中啟動(dòng)的實(shí)例都屬于某一個(gè)安全組。每個(gè)安全組定義自己的防火墻規(guī)則,為在組中運(yùn)行的實(shí)例指定訪問限制??梢愿鶕?jù) IP 地址或無類域間路由 (CIDR) 規(guī)則授予或限制訪問權(quán),CIDR 規(guī)則允許指定端口范圍和傳輸協(xié)議。
密鑰對(Key Pairs):安全密鑰對是在啟動(dòng)實(shí)例時(shí)指定的公共/私有 SSH 密鑰對,必須提供安全密鑰對,才能登錄啟動(dòng)的實(shí)例的控制臺(tái)。EC2 把密鑰對的公共部分添加到啟動(dòng)的實(shí)例中,然后用戶可以使用私有密鑰通過SSH/Putty來登錄實(shí)例,并無需輸入密碼。
訪問密鑰(Access Key)和X.509證書:這兩個(gè)機(jī)制主要用于API的調(diào)用。訪問密鑰主要用于REST API的調(diào)用,基于對稱密鑰加密(Symmetric Key Cryptography)的算法,主要有兩部分組成:其一是訪問密鑰ID,其二是秘密訪問密鑰(Secret Access Key),在創(chuàng)建一個(gè)API請求的時(shí)候,工具會(huì)通過秘密訪問密鑰來生成一個(gè)電子簽名(Digital Signature),并將這個(gè)電子簽名和訪問密鑰ID一并加入到請求中,之后,EC2在處理這個(gè)請求時(shí),它會(huì)用傳過來的訪問密鑰ID來查找對應(yīng)的秘密訪問密鑰,接著用找到的那個(gè)秘密訪問密鑰來對那個(gè)電子證書進(jìn)行確保,以確保對方的合法性。X.509證書則主要用于SOAP API的調(diào)用,基于公開密鑰加密(Public Key Cryptography)的算法,X.509證書也主要有兩部分組成,其一是X.509證書,其二是私鑰,在創(chuàng)建一個(gè)API請求的時(shí)候,工具會(huì)通過私鑰來創(chuàng)建一個(gè)電子簽名,并這個(gè)電子簽名和X5.09證書一并加入到請求中,之后,EC2在處理這個(gè)請求時(shí),會(huì)使用電子證書中的公鑰來對那個(gè)電子簽名進(jìn)行解密,來確認(rèn)發(fā)送者的合法性,同時(shí)也對這個(gè)電子證書進(jìn)行檢查。
可用區(qū)(Availability zones)
與單純以地點(diǎn)劃分不同數(shù)據(jù)中心的做法不同的是,Amazon為了更好的穩(wěn)定性,引入了區(qū)域(Zone)這個(gè)概念,并有兩種區(qū)域:其一是地理(Region)區(qū)域,其是按照實(shí)際位置劃分的,比如有,美國西海岸區(qū)域和美國東海岸區(qū)域;其二是可用性(Availability)區(qū)域,每個(gè)可用區(qū)采取隔離措施,從而避免一個(gè)可用區(qū)中的故障影響其他可用區(qū)。從EC2的全區(qū)而言,其共有多個(gè)地理區(qū)域,而一個(gè)地理區(qū)域內(nèi)會(huì)包括多個(gè)可用性區(qū)域,所以就算將一組實(shí)例部署到同一個(gè)地理區(qū)域,也要將它們拆分到不同的可用性區(qū)域以避免全部宕機(jī)的危險(xiǎn),Amazon也會(huì)根據(jù)當(dāng)前的系統(tǒng)健康狀態(tài)和能力自動(dòng)為用戶選擇可用區(qū)。
網(wǎng)絡(luò)方面
在網(wǎng)絡(luò)方面,一個(gè)實(shí)例會(huì)有三類IP地址:公共IP地址、私有IP地址和彈性(Elastic)IP地址。一個(gè)普通的EC2實(shí)例在創(chuàng)建的時(shí)候會(huì)自帶兩個(gè)IP地址,公共IP地址和私有IP地址,公共IP地址由EC2分配的,而且私有IP地址則通過EC2內(nèi)部的DHCP服務(wù)分配,并且他們兩個(gè)地址通過NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù)來進(jìn)行相互之間的轉(zhuǎn)換,實(shí)例通過公共IP地址來與外部通信,而使用私有IP地址來與其它EC2實(shí)例進(jìn)行內(nèi)部通信,并且與其它實(shí)例之間的內(nèi)部通信是免費(fèi)的。由于實(shí)例的每次啟動(dòng),都會(huì)導(dǎo)致其公共IP地址出現(xiàn)變化,而且需要一定時(shí)間才能更新IP地址和DNS之間的映射關(guān)系,所以EC2還提供彈性IP地址,與其它兩個(gè)地址不同的是,其并不與實(shí)例綁定,而是與用戶的賬號進(jìn)行綁定,通過將一個(gè)彈性IP地址和一個(gè)實(shí)例進(jìn)行綁定,那么就算實(shí)例失效了,用戶也能將這個(gè)彈性IP地址映射到另一個(gè)實(shí)例,來保證用戶不會(huì)受到服務(wù)中斷的影響。