AWS正式把KVM投入使用 你需要知道些什麼?

2021-12-25 Linux就該這麼學

純手工打造每一篇開源資訊與技術乾貨,數十萬程式設計師和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秒,即可自動關注。

點擊左下角查看更多熱門技術

相關焦點

  • 全球第一大雲廠商AWS的Nitro介紹
    DID中斷傳輸方式對是建立在普通的外部中斷和IPI不觸發VM Exit(kvm中,外部中斷基本是會觸發VM Exit的),只有NMI才會觸發VM Exit的基礎上,對各種中斷的傳輸方式進行了一定的改造。
  • Linux KVM 安裝使用手冊
    一、安裝1、前期準備egrep '(vmx|svm)' /proc/cpuinfo如果flags: 裡有 vmx 或者 svm 就說明支持 VT;如果沒有任何的輸出,說明你的 cpu 不支持,將無法成功安裝 KVM 虛擬機。2.
  • KVM最初的2小時——KVM從入門到放棄
    現在guest OS用戶態和內核態分別運行在CPU的ring3和ring1,然后蒼老師在的Windows的內核想讀CPU的一個寄存器知道CPU現在在什麼狀態,假設這個指令叫做ABC,由於現在雖然蒼老師Windows在內核態,但是CPU實際處於ring1,所以她讀到的是ring1,這顯然不符合應有的期待,虛擬化后蒼老師應該讀到ring0才對!
  • 手把手教你centos kvm安裝
    KVM有一個內核模塊叫 kvm.ko,只用於管理虛擬 CPU 和內存。 啟用了kvm模塊,還不能使用kvm功能,因為你沒有管理kvm模塊的工具。所以這個時候得裝一些管理工具,常用得管理工具: xml格式的配置, 命令行工具virsh, 圖形化工具virt-manager那 IO 的虛擬化,比如存儲和網絡設備由誰實現呢?
  • 關於 iOS 上的 PWA 應用,你需要知道些什麼?
    本文帶你看看 PWA 是如何工作的?它的能力和挑戰是什麼?以及如果你有已發布的 PWA 應用,那麼你需要知道些什麼。這就是一個 PWA 應用,它能在 iPad 上全屏展示,並且具有離線功能,它也與 App Store 中的其它本地應用程式一樣會出現在 iPad Dock 中PWA 還沒有一個確切的定義,總的來說,它是使用某種不需要打包或籤名的
  • KVM架構與原理詳解
    今天給大家分享一篇講 KVM 架構的文章,不知道的人可以學習下,知道的人可以將就回顧下。kvm 驅動,現在已經是linux kernel的一個模塊了。其主要負責虛擬機的創建,虛擬內存的分配,VCPU寄存器的讀寫以及VCPU的運行。另個組成是Qemu,用於模擬虛擬機的用戶空間組件,提供I/O設備模型,訪問外設的途徑。kvm基本結構如上圖。
  • CentOS下KVM虛擬化學習筆記
    後來redhat聯合IBM以及Linux社區創造了libvirt,模擬的設備性能要比qemu的好很多,並提供了一系列的管理工具和api,整個集成了kvm虛擬化的解決方案。Linux(redhat系)裝載kvm模塊後,妖神一變成為了VM Monitor,也稱為Hypervisor,部署使用簡單,需要硬體支持虛擬化。一.
  • KVM 虛擬化技術 | Linux雲計算乾貨你了解嗎?
    1.1 什麼是虛擬化?在計算機技術中,虛擬化(技術)或虛擬技術(英語:Virtualization)是一種資源管理技術,是將計算機的各種實體資源(CPU、內存、磁碟空間、網絡適配器等),予以抽象、轉換後呈現出來並可供分區、組合為一個或多個電腦配置環境。
  • KVM與QEMU
    ,可能會突然就講完了(這一篇的技術含量比較高,我會儘量講的通俗一點)而且這一篇不太可能會出現圖片了首先,你需要知道什麼是虛擬化就是由原有的內核中的一個線程,通過 kvm 模塊輔助完成,比如一個虛擬機的一顆 cpu運行就是通過原有內核中的一個線程通過 kvm 模塊輔助在內核中完成,兩顆 cpu 就是用兩個線程,
  • 今天來講講學術界的主流VMM——KVM
    順便提一下VMM是什麼:即虛擬機監控器(Virtual Machine Monitor)也叫Hypervisor,是一種運行在基礎物理伺服器和作業系統之間的軟體層,可允許多個作業系統和應用共享硬體,Hypervisor是所有虛擬化技術的核心,不但協調著這些硬體資源的訪問,也同時在各個虛擬機之間施加防護。
  • 亞馬遜AWS認證攻略
    整體來說,助理級相對容易些,專業級則相當有難度(筆者考完後編號接近1200, 而公司裡一個去年6月份通過的同事編號則是500多,一年多時間才通過了600多。而且所有認證中還包括相當部分AWS自己的員工)。因為比較難,據說還有培訓班。不過好在之前和現在的公司中都使用AWS,實踐和經驗還比較多,再通過考試前的集中自學還是通過Solutions Architect專業級認證。
  • KVM 虛擬化技術
    這使得 KMV 能夠使用 Linux 內核的已有功能。但是,KVM 本身不執行任何硬體模擬,需要客戶空間程序通過 /dev/kvm 接口設置一個客戶機虛擬伺服器的地址空間,向它提供模擬的 I/O,並將它的視頻顯示映射回宿主的顯示屏。目前這個應用程式是 QEMU。
  • 如何在 Ubuntu Linux 上使用 KVM 雲鏡像 | Linux 中國
    你可以在命令行使用 Ubuntu 為 libvirt 和 KVM 提供的虛擬化前端通過 KVM 創建 Ubuntu 雲鏡像。這個快速教程展示了如何安裝和使用 uvtool,它為 Ubuntu 雲鏡像下載,libvirt 和 clout_int 提供了統一的集成虛擬機前端。步驟 1 - 安裝 KVM你必須安裝並配置 KVM。
  • Qemu-KVM的CPUID初始化和自定義CPU Model顯示
    ,可以知道Linux系統是根據CPUID指令來顯示具體的CPU型號的。所以很自然的一個想法:是不是可以自定義顯示的內容呢?答案顯而易見,必然是可以的。但是如果要改物理CPU的寄存器,那確實會有些困難,不過沒關係,我們還有虛擬機嘛,理論上虛擬機可以虛擬這些東西,那改動起來應該也是比較方便的。
  • 基於Linux命令行KVM虛擬機的安裝配置與基本使用
    結合了一些資料和個人使用的狀況,我大致列出了一些基本和常用的使用方法。egrep 'vmx|svm' /proc/cpuinfo三、安裝KVM1、這裡安裝一些虛擬化的組件yum -y install kvm python-virtinst libvirt bridge-utils virt-manager qemu-kvm-tools virt-viewer
  • AWS EC2的價格模型
    AWS EC2按需實例,你是按小時或者按秒來付費的,具體取決於你運行的實例,不需要長期承諾或預付費。* 首次在Amazon EC2上開發或測試的應用程式;AWS EC2的競價實例,允許你可以以按需實例最低10%的價格,使用aws空餘的計算能力     競價實例建議在以下場景中使用:     * 具有靈活的開始和結束時間的應用程式,比如一些網絡爬蟲     * 僅在非常低的計算價格下才可行的應用程式,比如挖礦,當然用aws競價實例挖礦,
  • 【今日分享】kvm簡介
    這使得 KMV 能夠使用 Linux 內核的已有功能。  但是,KVM 本身不執行任何硬體模擬,需要用戶空間程序通過 /dev/kvm 接口設置一個客戶機虛擬伺服器的地址空間,向它提供模擬 I/O,並將它的視頻顯示映射回宿主的顯示屏。目前這個應用程式是 QEMU。 Linux 上的用戶空間、內核空間和虛機:
  • 在 AWS 中使用 Ansible 來管理你的 SSH 密鑰 | Linux 中國
    :當你登錄一臺你最近沒有使用的區域的新實例,你最終會創建一個新的 SSH 密鑰對,久而久之這最終就會造成個人擁有太多密鑰,導致管理起來複雜混亂。使用 Ansible 的 ec2_key 模塊,你可以創建一個簡單的 Ansible 劇本來在所有區域中維護你的 SSH 密鑰對。如果你需要增加或者刪除密鑰,在 Ansible 中這就像從文件中添加和刪除行一樣簡單。
  • 爬坑日記 - AWS 成本優化
    為了公司能活下去,並且避免大規模裁員,需要大家配合。提供了以下選項來幫助公司:無薪休假 3 個月兼職工作 3 個月全職但減薪工作 3 個月自願離職拿補償走人不過和其他公司「直接郵件通知裁員一半 / 減薪 20% 起 / 競爭上崗」等操作相比,還算是禮貌溫柔些,至少還問你喜歡哪種死法。
  • RHCSA 系列(十五): 虛擬化基礎和使用 KVM 進行虛擬機管理
    你可以使用下面的命令來查看你的系統是否滿足這個要求:# grep -E 'svm|vmx' /proc/cpuinfo在下面的截圖中,我們可以看到當前的系統(帶有一個 AMD 的微處理器)支持虛擬化,svm 字樣的存在暗示了這一點。假如我們有一個 Intel 系列的處理器,我們將會看到上面命令的結果將會出現 vmx 字樣。