純手工打造每一篇開源資訊與技術乾貨,數十萬程式設計師和Linuxer已經關注。
Linux技術交流QQ群:2650582(十一月最新!!)
如之前InfoQ中文站所報導,AWS在11月6日推出新的實例類型C5,其中採用了新的虛擬化引擎——一款AWS自家定製的KVM。這可能意味著AWS從2006年啟動時就開始使用並持續優化至今的Xen技術棧,將逐漸淡出這一體量龐大的雲計算平臺。
Xen最早是劍橋大學的一個研究項目。該項目在2003年以開源協議發布後,先後經歷了XenSource公司、Citrix公司、Linux基金會等組織的領導,其技術陣營包含了Citrix、IBM、Intel、HP、Novel、紅帽、Sun、Oracle、Amazon、AMD、Bromium、CA Technologies、Calxeda、Cisco、Google、三星、以及Verizon等業界巨頭。
KVM(Kernel-based Virtual Machine,直譯為「基於內核的虛擬機」),最早是以色列初創企業Qumranet發布的開源項目。該項目在2007年被合併入Linux內核代碼——這對KVM而言是非常重要的一個節點,該公司則在2008年被紅帽收購。KVM技術差不多到2010年之後進入成熟階段,該技術陣營目前包括紅帽、SUSE、Linaro(ARM)、IBM、Intel、Google、Oracle等業界巨頭,國內的華為、阿里巴巴、騰訊等也均有參與。
在AWS啟動的2006年,Xen還是當時最成熟的虛擬化引擎技術(對於Linux作業系統而言),而KVM項目還沒有出現在大家的視野中。因此,AWS在早期技術選型當中採用了Xen,成為其彈性計算的底層基礎。(此外,2009年啟動的阿里雲也因為當時KVM還不成熟的原因採用了Xen,不過兩家一直未停止過對KVM的關注與投入,阿里雲更是在數年前就已經推出了基於KVM的主機。另外,2011年啟動的Google Cloud從一開始就採用了KVM引擎。)
首先,AWS的用戶現在已經可以將自己跑在C4實例上的主機切換到C5,前提是:
現在已經推出C5的區域有US East (Northern Virginia)、US West (Oregon)、EU (Ireland) Regions,目前要用C5的話只能在這三個區,其他區還得等等。
AMI鏡像的作業系統必須包含ENA和NVMe的驅動,因為C5的網絡和存儲功能是在硬體層面實施的。AWS平臺上提供的最新版AMI鏡像,包括Amazon Linux、Microsoft Windows (Windows Server 2012 R2 以及 Windows Server 2016)、Ubuntu、RHEL、CentOS、SLES、Debian、FreeBSD,現在都支持。同理,如果你製作自己的AMI,也是一樣的要求。
Reddit網站上已經有用戶在分享自己的切換過程,感興趣的讀者可以前往查看或提問。Jeff Barr也會在那裡回復一些問題。
C5實例可以選擇的實例尺寸見下表:
Instance Name
vCPUs
RAM
EBS Bandwidth
Network Bandwidth
c5.large
2
4 GiB
Up to 2.25 Gbps
Up to 10 Gbps
c5.xlarge
4
8 GiB
Up to 2.25 Gbps
Up to 10 Gbps
c5.2xlarge
8
16 GiB
Up to 2.25 Gbps
Up to 10 Gbps
c5.4xlarge
16
32 GiB
2.25 Gbps
Up to 10 Gbps
c5.9xlarge
36
72 GiB
4.5 Gbps
10 Gbps
c5.18xlarge
72
144 GiB
9 Gbps
25 Gbps
其次,如果你已經用上了C5,想用它跑一些機器學習的推斷(inferencing)任務或者類似的計算任務,可以看一下這個Intel Math Kernel Library。C5的處理器用的是3.0 GHz Intel Xeon Platinum 8000系列,這款專為EC2做過優化的處理器配合上面那個數學庫可能會有很好的性能。
此外,C5還增加了每個vCPU的內存。對於兼容AVX-512指令集的代碼而言,矢量操作和浮點操作的性能甚至可以翻倍。
切換到C5之後,由於運行在新虛擬化引擎上的實例是通過NVMe接口從EBS卷上啟動的,而運行在Xen上的實例是從一個模擬IDE硬碟上啟動、再切換到Xen的半虛擬塊存儲驅動上的,所以雖然作業系統(OS)能夠識別自己正運行在哪個虛擬化引擎上,但如果軟體本身假設底層的虛擬化引擎是Xen並依賴於該假設,則可能會引發一些問題。
但總體來說,AWS表示只要OS層面能夠支持ENA網絡和NVMe存儲,則大部分軟體都能正常工作。AWS還表示,其他的EC2功能並不會受到影響。
如果你是AWS EC2 API的重度用戶,擔心這次虛擬化引擎的變更會對API造成什麼變化,則不用擔心了:AWS在其FAQs頁面中表示其對外公開的API完全不會因為引入新的虛擬化引擎而有任何改變。
作為計算資源服務的提供方,提升性能、降低成本是永恆的話題。
Xen最初設計時,x86架構尚未引入虛擬化擴展功能,所以Xen為了實現Linux系統的虛擬化,就把Linux內核給改了——這就相當於在之後的十幾年裡,Xen一直維護著一套自己的Linux內核版本,所以上遊Linux內核社區的很多新的好東西,它要費一番功夫才能移植進來,這就造成了很大的維護成本。
而另一方面,因為KVM項目是合併在Linux內核代碼中的,維護起來就非常容易。Linux內核上遊社區的研發勢能是非常大的,在這種情況下,KVM的發展速度迅猛,在穩定性、性能方面的提升很快趕超了Xen,受到很多技術人與企業的青睞。
EC2是AWS的基石,虛擬化引擎又是EC2的基石。由於AWS是一套構建多年的、龐大而複雜的系統,很多功能會對Xen有所依賴,要讓這套系統同時穩定的支持Xen與KVM,是一項非常複雜的工作。所以C5的推出,意味著AWS這套系統已經脫離了對Xen的完全依賴。
對AWS而言,基於KVM的系統要比基於Xen的系統的維護成本更低,這是一方面。
另一方面,可能也與性能有關。按AWS首席布道師Jeff Barr在博客中所說,C5在性價比方面相比C4提升了25%,針對有些任務甚至可以達到50%——這是針對用戶而言。要知道對於AWS今天這樣的體量,哪怕是1%的節省都是巨大的;如果有25%這樣比例的性價比提升,則絕對是勢在必行,無論花費多大代價也要上。當然這其中的性能提升有多少是來自新的硬體,有多少是來自KVM,這就不一定了。
此外,AWS首先在「計算密集型實例」(compute-intensive)上正式採用KVM,而不是從通用型、內存密集型等其他類型上開始,可能是因為考慮到計算密集型業務的I/O操作較少,比較獨立,耦合性比較小,因此更容易替換的原因。
從市場佔有率的角度來看,就是Xen的最後一個大體量的用戶對Xen說,以後我不再需要你了。
如果說以前還有業界傳言說AWS在Xen上投入太過巨大、依賴太重,所以AWS將一直支持Xen的話,那麼現在這個傳言已經宣告終結。畢竟,如果連AWS都以實際行動表示切換到KVM的收益大於成本了,那麼那些體量更小的Xen用戶還能對Xen有什麼更多的期待呢?
所以對於未來的市場而言,這次改變也許象徵著Xen的使命已經結束了。對於過去的市場而言,Xen的使命就是讓那些仍然跑在Xen上的業務們能夠繼續平穩運行。不過這裡面還有一個變數就是Unikernel,那就是另一個話題了。
從上遊社區的角度,影響可能不大,因為Amazon一直不是個活躍的開源社區參與者。即使作為最大的Xen用戶那麼多年,Amazon對Xen上遊社區的代碼貢獻數量卻是屈指可數。所以對於KVM項目,可能我們未來也不大會看到很多來自Amazon的代碼貢獻。
從技術發展的角度,這是個大趨勢下技術更新換代的必然——也許從KVM被合併到Linux內核代碼的那時起就已經種下了種子吧。
關於AWS此次擁抱KVM的C5發布,目前公開的信息就總結到此。11月27日到12月1日期間的AWS re:Invent 2017,InfoQ中文站記者會在前線報導,敬請期待!
原文來自: http://www.infoq.com/cn/news/2017/11/aws-kvm-what-to-know
本文地址: http://www.linuxprobe.com/aws-kvm-what-to-know.html編輯:逄增寶,審核員:劉遄
《Linux就該這麼學》是由資深運維專家劉遄及全國多名紅帽架構師(RHCA)基於最新RHEL7系統共同編寫的高質量Linux技術自學教程,極其適合用於Linux技術入門教程或講課輔助教材。
☀ 劉遄老師QQ:5604241 微信:gnu_chuan
☀ 學員助教QQ:5604674
☀ Linux技術交流A群(滿):560843
☀ Linux技術交流B群:340829
☀ Linux技術交流C群:463590
☀ Linux技術交流D群:915246
☀ Linux技術交流E群:1663106
☀ Linux技術交流F群:1653851
☀ Linux技術交流G群:2632018(新群,火熱加群中……)
☀ 官方站點:www.linuxprobe.com
☀ 電腦在線閱讀效果更佳:
http://www.linuxprobe.com/chapter-00.html
按住圖片3秒,即可自動關注。
點擊左下角查看更多熱門技術