看 Amazon 如何通过 Nitro System 构建技术优势
前言
亞馬遜云科技提供了100余種產(chǎn)品免費套餐。其中,計算資源 Amazon EC2 首年12個月免費,750小時/月;存儲資源 Amazon S3 首年12個月免費,5GB標(biāo)準(zhǔn)存儲容量。
-
亞馬遜AWS海外區(qū)域賬戶免費套餐_免費云服務(wù)-AWS云服務(wù)
Amazon Nitro System 從 2013 年開始秘密研發(fā),2017 年正式發(fā)布,到 2021 年已經(jīng)迭代到了第五代。
作為近年來市場火熱的硬件虛擬化技術(shù)先驅(qū)者,Amazon Nitro System 的誕生目的也被各界人士重新賦予了各種解讀和含義。但正如亞馬遜云科技副總裁 Swami 所言:“在 Amazon Web Services,我們 90% 到 95% 的新項目都是基于客戶給我們的反饋,剩下 5% 也是從客戶角度出發(fā)所做得創(chuàng)新嘗試。”
作為亞馬遜云科技的老用戶,筆者認(rèn)為 Amazon Nitro System 誕生的 “因” 到底還是為了能夠滿足客戶對 EC2 計算實例類型的多樣化需求這個 First principle thinking(第一性原理)。而現(xiàn)在我們看到了 Amazon Nitro System 所帶來的顯著的性能提升和成本下降,只是 “因” 所造就的 “果” 而已。
所以本篇內(nèi)容,希望能夠從技術(shù)的角度回顧 Amazon Nitro System 的演進(jìn)之路,回歸當(dāng)初的那個 “因”。
另外,亞馬遜云科技面向廣大的云計算開發(fā)者們提供了100余種產(chǎn)品免費套餐。其中,計算資源Amazon EC2首年12個月免費,750小時/月;存儲資源 Amazon S3 首年12個月免費,5GB標(biāo)準(zhǔn)存儲容量。感興趣的朋友可以點擊鏈接免費獲取。
-
亞馬遜AWS海外區(qū)域賬戶免費套餐_免費云服務(wù)-AWS云服務(wù)
Amazon Nitro System Overview
Nitro System 這一新的架構(gòu)使得 EC2 實例類型自 2017 年以來開始爆發(fā)式增長,目前已經(jīng)達(dá)到 400 多種。從 2022 年開始,新的 M1、M2、M3、C1、C3、R3、I2 和 T1 等 EC2 實例類型都將基于 Nitro System 構(gòu)建。例如:
-
Amazon EC2 內(nèi)存增強型實例,支持最大 24TiB 的內(nèi)存規(guī)格,專為運行大型內(nèi)存數(shù)據(jù)庫而設(shè)計。
-
Amazon EC2 計算優(yōu)化型實例,支持最大 192 vGPU + 384GiB Memory,專為計算密集型工作負(fù)載而設(shè)計。
-
Amazon EC2 計算加速型實例,支持最大 8 NVIDIA A100 Tensor Core GPU,600 GB/s NVSwitch,400 Gbps Bandwith ENA 和 EFA,轉(zhuǎn)為 AI/ML 和 HPC 設(shè)計。
更多的 Amazon EC2 實例類型請點擊鏈接瀏覽詳情。
-
Amazon EC2實例類型-EC2虛擬云服務(wù)器托管-AWS云服務(wù)
在 “后摩爾定律” 的時代大背景下,要想跟上業(yè)務(wù)需求的增速來持續(xù)推出規(guī)格更高的計算實例類型,顯然不是一件容易的事情。一方面,要求云計算平臺基礎(chǔ)設(shè)施層的虛擬化技術(shù)能夠做到 Near Bare-metal 的水平,甚至是提供更徹底的彈性裸金屬實例服務(wù);另一方面,常規(guī)的依靠摩爾定理進(jìn)行縱向擴容和軟件優(yōu)化的技術(shù)手段已經(jīng)難以為繼,需要一種更具革命性的思路和形式。軟硬件融合加速就是其中一種方式,將云平臺基礎(chǔ)設(shè)施層的系統(tǒng)組件盡可能的 Offloading(卸載)到專用硬件平臺,釋放珍貴的 Host CPU core,讓服務(wù)器的資源更加極限的去支撐客戶需求。
正如 Amzion Nitro System 首席工程師 Anthony Liguori 所說:“Nitro System 用于確保 EC2 計算實例能夠?qū)⒄麄€底層服務(wù)器資源完全開放給客戶使用。”基于這樣的思路,Amazon Nitro System 開啟了軟硬件融合加速的商業(yè)化產(chǎn)品之路。
顧名思義,Amazon Nitro System 不僅僅是一個單一的專用硬件設(shè)備,而是一套完整的軟硬件融合協(xié)同系統(tǒng)。由 Nitro Hypervisor、Nitro I/O Accelerator Cards、Nitro Security Chip 三大部分組成,今年又再繼續(xù)加入了 Nitro Enclaves 和 NitroTPM(Coming soon in 2022)兩大組成部分。彼此合作,又相互獨立。
-
Nitro Hypervisor:是一個 Lightweight Hypervisor(輕量級虛擬機監(jiān)控程序)只負(fù)責(zé)管理 CPU 和 Memory 的分配,幾乎不占用 Host 資源,所有的服務(wù)器資源都可用來執(zhí)行客戶的工作負(fù)載。
-
Nitro Cards:是一系列用于 Offloading and Accelerated(卸載和加速)的協(xié)處理外設(shè)卡,承載網(wǎng)絡(luò)、存儲、安全及管理功能,使得網(wǎng)絡(luò)和存儲性能得到了極大提升,并且從硬件層提供天然的安全保障。
-
Nitro Security Chip:隨著更多的功能被卸載到專用硬件設(shè)備上,Nitro Security Chip 提供了面向?qū)S糜布O(shè)備及其固件的安全防護(hù)能力,包括限制云平臺維護(hù)人員對設(shè)備的訪問權(quán)限,消除人為的錯誤操作和惡意篡改。
-
Nitro Enclaves:為了進(jìn)一步保障 EC2 用戶的個人信息保護(hù)及數(shù)據(jù)安全,Nitro Enclaves 基于 Nitro Hypervisor 進(jìn)一步提供了創(chuàng)建 CPU 和 Memory 完全隔離的計算環(huán)境的能力,以保護(hù)和安全地處理高度敏感的數(shù)據(jù)。
-
Nitro TPM(Trusted Platform Module,可信平臺模塊):支持 TPM 2.0 標(biāo)準(zhǔn),Nitro TPM 允許 EC2 實例生成、存儲和使用密鑰,繼而支持通過 TPM 2.0 認(rèn)證機制提供實例完整性的加密驗證,能夠有效地保護(hù) EC2 實例,防止非法用戶訪問用戶的個人隱私數(shù)據(jù)。
亞馬遜云科技 EC2 的虛擬化技術(shù)演進(jìn)之路
一直以來,虛擬化技術(shù)都是云計算的基石。通過虛擬化技術(shù),將不可分割的硬件資源會抽象為可二次配置的邏輯單位,從而實現(xiàn)按需分配和共享現(xiàn)有的計算、存儲和網(wǎng)絡(luò)資源。
亞馬遜云科技的虛擬化技術(shù)演進(jìn)之路有一張廣為人知的示意圖,由 Brendan Gregg 于 2017 年所繪制,他在自己的博客中說明了 Nitro System 的來歷和技術(shù)架構(gòu)(AWS EC2 Virtualization 2017: Introducing Nitro)。
從圖中我們可以看到,Brendan 把虛擬化的關(guān)鍵技術(shù)根據(jù)功能做了拆分并根據(jù)其重要程度進(jìn)行排序,顯然最重要的是 CPU 和 Memory,其次是 Network I/O,再來就是 Local Storage I/O 和 Remote Storage I/O,最后是 Motherboard(中斷)和 Boot(主板)等。
Amazon EC2 實例從最早的采用了 Xen PV(Para-Virtualization,半虛擬化)到后來的 Xen HVM(Hardware-assisted virtualization,硬件輔助的全虛擬化),再逐步地加入 SR-IOV NIC 硬加速技術(shù),并最終在 2017 年推出了軟硬件融合的 Nitro System。
整個技術(shù)演進(jìn)的脈絡(luò)清晰明了,但我們不能停留于此,還需繼續(xù)探索其背后的緣由。
Nitro Hypervisor
正如前面提到亞馬遜云科技自 2006 年成立并發(fā)布的第一個 EC2 實例類型 m1.small 采用了 Xen 虛擬化技術(shù)。首批亞馬遜云科技用戶能以每小時 10 美分的價格獲得一臺相當(dāng)于 1.7G 主頻的 Intel Xeon CPU、1.75GiB Memory、160GB Disk 和 250Mb/s Bandwidth 的云主機。
Xen 虛擬化技術(shù)的誕生最早可以追溯到 1990 年,那年 Ian Pratt 和 Keir Fraser 創(chuàng)建了 XenServer 的初始代碼工程。直到 2003 年發(fā)布了 Xen 1.0 版本,并成立 XenSource 公司。在那個 Intel 和 AMD 還沒有推出 CPU 硬件虛擬化技術(shù)的年代,Xen 為了提升虛擬機的性能而選擇了 PV(半虛擬化)的技術(shù)方向。正如 Xen 之父 Ian Pratt 所言:“這個項目是由我本人和劍橋大學(xué)計算機科學(xué)實驗室的一些學(xué)生共同做的。我們當(dāng)時就意識到要想使得虛擬化的工作越來越好,必須需要得到硬件方面的幫助,而且要不斷地改變 CPU,改變芯片組,以及改變一些 I/O 的裝置,使得他們能夠適應(yīng)虛擬化的需要。”
在當(dāng)年,以 Xen 為代表的 PV 虛擬化技術(shù)象征著能夠擁有一臺性能先進(jìn)的虛擬機。所以很快的,基于 Xen 虛擬化技術(shù)的解決方案陸續(xù)被 RedHat、Novell 和 Sun 等的 Linux 發(fā)行版集成,作為默認(rèn)的虛擬化解決方案。
-
2005 年,Xen 3.0.0 發(fā)布,該版本可以在 32 位服務(wù)器上運行,作為第一個支持 Intel VT-x 技術(shù)的 Hypervisor。從而使得 Xen 虛擬機可以運行完全沒有被修改過的 GuestOS,該版本是 Xen 真正意義上可用的版本。
-
2006 年,RedHat 將 Xen 虛擬機作為企業(yè)版 RHEL 的默認(rèn)特性。
-
2007 年,Novell 在推出的企業(yè)級 SLES(Suse Linux Enterprise Server)10 中添加了 Xen 虛擬化軟件。
-
2007 年 6 月,RedHat 在所有平臺和管理工具中包含了 Xen 虛擬化功能。
-
2007 年 10 月,Citrix 公司出資 5 億美金收購了 XenSource,變成了 Xen 虛擬機項目的東家。之后推出了虛擬化產(chǎn)品 Citrix 交付中心。
而誕生于 2006 年的亞馬遜云科技自然也選擇了 Xen 來作為 EC2 的虛擬化技術(shù)底層支撐,并在后來的十多年里,又陸續(xù)發(fā)布了 27 個基于 Xen 虛擬化技術(shù)的 EC2 實例。
Xen 實現(xiàn)了虛擬機的 CPU 和內(nèi)存虛擬化,但是虛擬機的 I/O 功能,包括網(wǎng)絡(luò)和存儲等,還需要通過虛擬機中的一個 Front-end(前端模塊)與 Domain 0 中的 Backend(后端模塊)進(jìn)行交互,并最終由 Domain 0 中的 Device drivers 實現(xiàn)。
這里的 Domain 0 是 Xen 的一個特權(quán)虛擬機(唯一運行在 Xen Hypervisor 之上的虛擬機),運行著被修改過的 Linux kernel,它擁有訪問物理 I/O 資源的權(quán)限。Domain 0 需要在其它的業(yè)務(wù)虛擬機啟動之前啟動,并用于提供業(yè)務(wù)虛擬機的外設(shè)模擬仿真功能。
2013 年,亞馬遜云科技采用 Xen PV 虛擬化技術(shù)的 cr1.8xlarge EC 實例的架構(gòu)如下圖所示。可以看見,Host(宿主機)上既要運行用戶的業(yè)務(wù)虛擬機,還運行 Xen 的 Domain 0 管理虛擬機。業(yè)務(wù)虛擬機的本地存儲、EBS Volume 和 VPC 網(wǎng)絡(luò)訪問都是通過 Domain 0 虛擬機來實現(xiàn)的。
顯然,這樣的 I/O 路徑非常冗長,不可避免的降低了 I/O 性能,而且 Domain 0 還會和業(yè)務(wù)虛擬機搶占 Host 的 CPU/Memory/IO 資源,很難實現(xiàn)管理虛機和業(yè)務(wù)虛機之間的平衡,以及避免性能抖動。并且,隨著業(yè)務(wù)需求的發(fā)展,對存儲和網(wǎng)絡(luò)的性能不斷提出要求,這意味著 Host 需要預(yù)留更多 CPU core 來模擬這些外設(shè),當(dāng)規(guī)模大到一定程度,問題就會變得非常明顯。
這些問題促使了亞馬遜云科技尋求新的方法來改進(jìn)純軟件實現(xiàn)的虛擬機管理程序架構(gòu),探索更靈活可行的虛擬機管理手段。而探索的結(jié)果,正是 Amzon Nitro System。
Nitro System 采用了新型的 Nitro Hypervisor 來替代亞馬遜云科技早期采用的 Xen 虛擬化技術(shù),其基于 KVM,運行于極簡化定制的 Linux Kernel 中,作為一種 Lightweight Hypervisor 只負(fù)責(zé)管理 CPU 和 Memory 的分配,以及將 Nitro I/O Acceleration Cards 分配給計算實例,本身并不實現(xiàn)任何 I/O 虛擬化功能。因此,Nitro Hypervisor 能夠具有 BareMetal-Like 的性能。
Amazon EC2 首席工程師 Anthony Liguori 表示:“Nitro 基于 Linux KVM 技術(shù),但其本身并不包含通用型操作系統(tǒng)的 I/O 組件。Nitro Hypervisor 主要負(fù)責(zé)為 EC2 實例提供 CPU 與 Memory 的虛擬化隔離能力,Nitro Hypervisor 取消了主機系統(tǒng)的軟件組件,從而為 EC2 實例提供更出色的性能一致性,同時提升宿主機可利用的計算與內(nèi)存資源,使幾乎所有服務(wù)器資源都可供客戶直接使用。”
KVM(Kernel-based Virtual Machine,基于內(nèi)核的虛擬機)于 2007 年 2 月 5 日被集成到 Linux Kernel 2.6.20 中,是現(xiàn)今最流行的虛擬化技術(shù)之一。KVM 的本質(zhì)是一個嵌入到 Linux Kernel 中的虛擬化功能模塊 kvm.ko(kvm-intel.ko/kvm-AMD.ko),該模塊在利用 Linux Kernel 所提供的部分操作系統(tǒng)能力(e.g. 任務(wù)調(diào)度、內(nèi)存管理、硬件設(shè)備交互)的基礎(chǔ)上,再加入了 CPU 和 Memory 虛擬化的能力,使得 Linux Kernel 具備了成為 Hypervisor VMM 的條件。
KVM 最大的特點就是其本身只提供了 CPU 和 Memory 的虛擬化功能,而不能進(jìn)行任何設(shè)備的模擬。所以,通常的 KVM 還必須借助于一個 VMM 來模擬出虛擬機所需要的虛擬設(shè)備(e.g. 網(wǎng)卡、顯卡、存儲控制器和硬盤),同時為 GuestOS 提供操作入口。最常見的,就是選擇 QEMU(Quick Emulator)來作為補充。所以 KVM 社區(qū)在對 QEMU 進(jìn)行稍加改造后,推出了 QEMU-KVM 分支發(fā)行版。
QEMU 是一款免費的、開源的、純軟件實現(xiàn)的、功能強大的 VMM,直至 2019 年 QEMU 4.0.0 發(fā)布并對外宣稱幾乎可以模擬所有的設(shè)備。但是,但由于這些模擬都是純軟件實現(xiàn)的,所以其性能低下。
而 Nitro System 與業(yè)界普遍采用的 QEMU-KVM 方案的最大區(qū)別之一,就是它沒有使用 QEMU,而是將 QEMU 所提供的設(shè)備模擬功能 Offloading 到了 Nitro I/O Acceleration Cards 實現(xiàn),進(jìn)而為 Nitro EC2 實例提供了存儲、網(wǎng)絡(luò)、管理、監(jiān)控以及安全能力。
但并不是說原生的 KVM 就具備了 Hardware Offloading 框架可以直接遷移,據(jù)筆者了解,里面必然會涉及到不小的適配性定制開發(fā)。所以 Nitro System 團隊并沒有一開始就從這方面入手,而是先陸續(xù)解決網(wǎng)絡(luò)和存儲的卸載加速之后,再來攻堅 Hypervisor 的難題。當(dāng)然亞馬遜云科技最不缺的就是虛擬化領(lǐng)域的技術(shù)大牛,例如 James Hamilton,他是亞馬遜云科技副總裁及杰出工程師,是少有的被允許在個人博客中發(fā)表重大技術(shù)思路的工程師。在 James Hamilton 的個人博客中(Perspectives – James Hamilton's Blog),我們可以翻閱大量與 Nitro System 相關(guān)的技術(shù)內(nèi)幕。
回到主題,直到 2017 年 11 月,亞馬遜云科技發(fā)布了 C5 實例類型,它首次使用基于 KVM 的 Nitro hypervisor 替換了 Xen。可以看見,在新的虛擬化架構(gòu)中已經(jīng)完全移除了 Xen Domain 0 管理虛擬機,極大的釋放了 Host 資源。
另外值得注意的是,近年來盡管 IaaS 和 PaaS 等云服務(wù)已經(jīng)非常完善,但在一些特定場景下(例如物理層面的完全獨占隔離),用戶依然對彈性裸金屬云服務(wù)提出了訴求。
區(qū)別于傳統(tǒng)的數(shù)據(jù)中心機房租賃,彈性裸金屬云服務(wù)要求具備與常規(guī)云服務(wù)一般無異的敏捷開通、按需付費和成本效益特性。所以交付彈性裸金屬云服務(wù)的技術(shù)困難在于:在不能夠安裝任何具有侵入性的云平臺基礎(chǔ)設(shè)施管理組件到裸金屬服務(wù)器的前提之下,如何對裸金屬服務(wù)器集群進(jìn)行高效的資源池化管理?
從目前來看,只有將云平臺基礎(chǔ)設(shè)施管理組件卸載到專用硬件設(shè)備是一個較為可行的方案。在使用彈性裸金屬服務(wù)的同時,還能繼續(xù)使用比如 EBS、ELB 和 VPC 等基礎(chǔ)云服務(wù)。在交付裸金屬實例的過程中,以自動化的方式完成對服務(wù)器網(wǎng)絡(luò)以及基于網(wǎng)絡(luò)的共享存儲的設(shè)置,并且支持裸金屬實例的 Migration 等云主機特性。
所以,也是在 2017 年,亞馬遜云科技同時發(fā)布了首個基于 Nitro System 的彈性裸金屬實例類型 i3.metal。i3.metal 實例幾乎沒有 Host 性能開銷,用戶可以直接在服務(wù)器中運行任何期望的應(yīng)用程序,例如:Xen、KVM、ESXi、容器、FireCracker 微虛機等等。
綜上,在引入了 Nitro Hypervisor 并將更多的 I/O 外設(shè)卸載到 Nitro I/O Acceleration Cards 之后,Nitro System 重新構(gòu)建了亞馬遜云科技云平臺的基礎(chǔ)設(shè)施層。將存儲、網(wǎng)絡(luò)和安全功能 Offloading 到專用的硬件所帶來的最主要且直觀的好處是 EC2 實例幾乎可以為 GuestOS 提供 Host 所有的 CPU 和 Memory,在性能上也得到了巨大的提升(Bypass 了 Kernel 冗長的 I/O 路徑),同時還能夠支撐交付彈性裸金屬服務(wù)。
正如亞馬遜云科技首席技術(shù)布道師 Jeff Bar 在一篇博客里寫道:“有了 Nitro Hypervisior 的 EC2 實例跟裸金屬服務(wù)器相比,性能只差了大約 1%,這一微小差別很難察覺出來。”
從下圖的測試結(jié)果可以看出,使用了 Nitro Hypervisor 的 C5 實例相對與 i3.metal 裸金屬實例只有一點極小的附加開銷,而且性能非常平穩(wěn),能完全滿足應(yīng)用的 SLA 需求。Nitro Hypervisor 提供的虛擬化性能非常的接近裸設(shè)備。
Nitro Cards
Nitro Cards 具有以下 6 種類型,本質(zhì)仍然是一張張 PCIe 外設(shè)卡,可以采用各種 Passthrough 技術(shù)接入到 Nitro 實例。Nitro Cards 作為亞馬遜云科技云平臺基礎(chǔ)設(shè)施的一部分,對用戶而言是透明的。
Nitro Controllere Card(管理)
Nitro VPC Card(網(wǎng)絡(luò))
Nitro EBS Card(遠(yuǎn)程存儲)
Nitro Instance Storage Card(本地存儲)
Nitro Security Chip Card(安全)
如此的,Nitro Hypervisor 和 Nitro Cards 的結(jié)合就能夠 “組裝” 出一臺虛擬機所需要的所有計算機組成系統(tǒng)部件,將更多的服務(wù)器硬件設(shè)備資源應(yīng)用于生產(chǎn)需求,并為客戶提供更多可用計算實例類型,而不必再為一系列云平臺基礎(chǔ)設(shè)施(管理、監(jiān)控、安全性、網(wǎng)絡(luò)或存儲 I/O)預(yù)留出 Host 計算資源。
Nitro Controller Card
Nitro System 作為一個系統(tǒng),具有一個邏輯上集中的 Nitro Controller 作為中央管控角色。Nitro Controller Card 實現(xiàn)了 Accelerator Cards 協(xié)同控制能力,為每個不同類型的 Nitro EC2 實例加載相應(yīng)的 Device Drivers 和 Control Plane Controllers。例如:
-
通過 Nitro VPC Card 提供 ENA Controller;
-
通過 Nitro EBS Card 提供 NVMe Controller;
-
通過 Nitro Security Chip 提供 Hardware Root Of Trust(硬件信任根),用于支持實例監(jiān)控、計量和認(rèn)證;
-
通過 Nitro Enclave 提供數(shù)據(jù)安全防護(hù)能力等等。
Nitro VPC Card
網(wǎng)絡(luò)增強型的 EC2 實例是 Amazon Nitro System 技術(shù)團隊最先選擇的切入點,2013 年發(fā)布的 C3 首先采用了 SR-IOV Passthrough 技術(shù)。
SR-IOV(Single-Root I/O Virtualization,單根 I/O 虛擬化)是 PCI-SIG 推出的一項 PCIe 設(shè)備虛擬化技術(shù)標(biāo)準(zhǔn),是一種基于物理硬件的虛擬化解決方案。SR-IOV 技術(shù)允許在虛擬機之間共享 PCIe 設(shè)備,同時通過 SR-IOV Passthrough 可以令 VF/PF Bypass Hypervisor 直接接入到虛擬機,有效的提高了物理 I/O 設(shè)備的性能與可擴展性。由于 SR-IOV 是基于硬件實現(xiàn)的,所以虛擬機獲得與宿主機媲美的 I/O 性能。
如下圖所示,在 Host 上增加了一塊 SR-IOV NIC,EC2 實例的 VPC virtual interface 不再由 Xen Domain 0 提供,而是直接接入到 SR-IOV PF/VF。如果采用的是 Intel 82599 NIC,那么只需要在 EC2 實例中安裝 ixgbe drivers,即可擁有最高 10Gbps 的網(wǎng)絡(luò)吞吐量。
但是 SR-IOV 實際上也有著其局限性,存在 3 點主要問題:1)擴展性有限,只支持一定數(shù)量的 VFs;2)靈活性有限,不支持 Live Migration;3)計算能力有限,無法提供更多的高級網(wǎng)絡(luò)虛擬化功能。
所以,在 SR-IOV 的理念基礎(chǔ)上進(jìn)行演進(jìn),Nitro System 團隊在 2016 年發(fā)布了 ENA(Elastic Network Adapter)技術(shù),并應(yīng)用于 X1 實例類型,最大吞吐量可以到 25Gbps。ENA 正是 Nitro System 項目的一部分,基于 ENA 技術(shù)的 Nitro VPC Card 最初由以色列的 Annapurna Labs 公司開發(fā)的 ASIC 芯片加速卡支撐,是 Nitro System 第一款真正的專用硬件卡,并于 2015 年被亞馬遜云科技收購。
現(xiàn)在最新的 Nitro VPC Card 完全實現(xiàn)了 VPC Data Plane Offloading,Nitro 實例通過 ENA drivers 能夠像 SR-IOV Passthrough 一般地 Bypass Kernel 直接與 Nitro VPC Card 進(jìn)行數(shù)據(jù)傳輸,極大地提升了 I/O 效率。同時在 Nitro VPC Card 上的 ASIC 芯片還實現(xiàn)了多租戶平臺網(wǎng)絡(luò)隔離、數(shù)據(jù)報文的封裝/解封裝、Security Group、QoS 和 Routing 等功能。
此外,Nitro VPC Card 還進(jìn)一步實現(xiàn)了更豐富的網(wǎng)絡(luò)加速特性。例如 EFA(Elastic Fabric Adapter)提供了 User Space Network Function(用戶態(tài)網(wǎng)絡(luò)功能),客戶可以通過 EFA 來使用 OpenFabrics Alliance Libfabric SDK/API,如:MPI(消息傳遞接口)或 NCCL(NVIDIA 集體通信庫)。
使用 EFA 和 Libfabric,User Space Applications 能夠以 Bypass Linux Kernel 的方式進(jìn)行 RDMA/RoCE 通信,與 Nitro EBS Card 提供的 NVMe-oF 能力結(jié)合,能夠以更低的 CPU 使用率實現(xiàn)更高的性能。
另外,隨著網(wǎng)絡(luò)技術(shù)發(fā)展,從 2006 年的 1000M 時代、到 2012 的 10GB 時代、到 2016 年的 25GB 時代,再到今天的 100GB 時代。如果不能夠?qū)⒏鼜V泛的網(wǎng)絡(luò)虛擬化技術(shù)(e.g. VxLAN / GRE Overlay)卸載到專用硬件上處理,進(jìn)而釋放 Host CPU core,那么珍貴的 CPU core 基本無法處理除了網(wǎng)絡(luò)流量之外的任何業(yè)務(wù)。
正如如亞馬遜云科技所介紹的:“新的 C5n EC2 實例是因為采用了第四代 Nitro VPC Card,才能夠達(dá)到 100Gbps 的網(wǎng)絡(luò)吞吐能力。”
Nitro EBS Card
存儲增強型的 EC2 是 Amazon Nitro System 團隊做出的第二個嘗試,在 2015 年推出的 C4 實例類型引入了基于 NVMe SSD 的 EBS Volumes。
隨著 AI 技術(shù)的發(fā)展步入了快車道。深度學(xué)習(xí)依賴海量的樣本數(shù)據(jù)和強大的計算能力,也推動 HPC(高性能計算)的發(fā)展。高效的 AI 訓(xùn)練需要非常高的網(wǎng)絡(luò)吞吐量和高速存儲來處理大量的數(shù)據(jù),大量的數(shù)據(jù)將會在計算節(jié)點、存儲節(jié)點之間進(jìn)行傳送。通常情況下,在低于 10% 鏈路帶寬利用率的低負(fù)載流量環(huán)境中,突發(fā)流量引起的網(wǎng)絡(luò)丟包率會接近 1%,而這 1% 的丟包率在 AI 運算系統(tǒng)中直接帶來了接近 50% 算力損失。在分布式 AI 訓(xùn)練場景中,網(wǎng)絡(luò)抖動和數(shù)據(jù)傳輸時延引起的網(wǎng)絡(luò)重傳會進(jìn)一步降低網(wǎng)絡(luò)的吞吐量,使模型訓(xùn)練的效率大大下降,甚至失敗。
所以我們可以看見,近幾年的高性能算力中心都在馬不停蹄的陸續(xù)引入 RDMA/RoCE、NVMe/NVMe-oF、NVMe over RoCE 等新型技術(shù)。
在存儲方面,相對于傳統(tǒng)的 HDD(Hard Disk Drive,機械硬盤)磁盤存儲介質(zhì),SSD(Solid-State Drive,固態(tài)硬盤)半導(dǎo)體存儲介質(zhì)帶來了存儲性能近 100 倍的提升。而基于 NVMe(Non-Volatile Memory express,非易失性內(nèi)存主機控制器接口規(guī)范)標(biāo)準(zhǔn)的 SSD 能夠在性能提升的同時在大幅的降低延遲。
所以在 2015 年發(fā)布了 NVMe SSD 標(biāo)準(zhǔn)之后,Nitro System 團隊就立刻瞄準(zhǔn)了這一方向。現(xiàn)在一塊 NVMe SSD 的容量可以達(dá)到十幾 TB,100 萬的 IOPS 性能,同時有著微秒級的延遲。
雖然,當(dāng)時出于對 NVMe 技術(shù)兼容性問題的考慮依舊保留了 Xen 虛擬化技術(shù)傳統(tǒng)的 Forint-end/Back-end I/O 架構(gòu)(直到 2017 年推出 Nitro Hypervisor 為止),但仍然按照專用硬件卸載的思路增加了一張同為 Annapurna Labs 公司開發(fā)的存儲網(wǎng)絡(luò)加速卡,它能將 Remote Storage 以 NMVe 協(xié)議呈現(xiàn)給 EC2 實例。這一改進(jìn)帶來的好處就是進(jìn)一步釋放了 Host CPU core,以及實踐了先進(jìn)的 NVMe SSD 技術(shù)。
現(xiàn)在,最新的 Nitro EBS Card 可以完全實現(xiàn)了 EBS Data Plane Offloading,EC2 實例通過標(biāo)準(zhǔn)的 NVMe drivers 與它進(jìn)行通信,并基于 NVMe-oF 協(xié)議進(jìn)行數(shù)據(jù)傳輸,同時支持 EBS Volume Data 加密/解密、QoS、存儲 I/O 加速等功能。不僅如此,Nitro EBS Cards 還在硬件層實現(xiàn)了 EC2 實例與存儲 I/O 資源消耗之間的隔離,隔絕了不同租戶之間的性能干擾。
Nitro Instance Storage Card
在到 2017 年發(fā)布的 i3 存儲優(yōu)化型 EC2 實例,針對性的解決了 EC2 實例本地存儲的硬件加速需求。i3 實例類型基于以往的技術(shù)積累,將 SR-IOV 技術(shù)和 Local NVMe SSD drivers 進(jìn)行了結(jié)合,實現(xiàn)了 Instance Storage Data Plane Offloading。
本地 NVMe 磁盤的性能優(yōu)勢毋庸贅言,在 IOPS 和延遲方面都有顯著提升。結(jié)合 SR-IOV,使 NVMe SSD 直接被多個 Local EC2 實例使用。虛擬機只需要安裝相應(yīng)的 NVMe drivers 即可訪問這些 SSD 磁盤,繼而能夠提供 300 萬以上的 IOPS 性能。Nitro Instance Storage Card 還可以監(jiān)控 Local SSD 的磨損情況。
Nitro Security Chip Card
區(qū)別于上述提到的 Nitro Cards,Nitro Security Chip Card 集成了 Nitro Security Chip,主要用于持續(xù)監(jiān)控和保護(hù) Server 的 Hardware 資源,并在每次啟動 HostOS 時獨立地驗證 Firmware 的安全性,以確保沒有任何被修改或以任何未經(jīng)授權(quán)的方式更改。所以 Nitro Security Chip Card 所提供的功能并不會被 EC2 實例感知。
在生產(chǎn)環(huán)節(jié)中,各種設(shè)備的 Firmware 對整個系統(tǒng)的安全運行非常關(guān)鍵,為了正確管理這些 Firmware。Nitro Security Chip 一方面會追蹤 Host 對各種 Firmware 的 I/O 操作,對 Firmware 的每個校驗和(設(shè)備度量)都會遇存儲在 Security Chip 中的驗證值進(jìn)行檢查;另一方面還能管理這些 Firmware 的更新,這在普遍的標(biāo)準(zhǔn)服務(wù)器上是難以實現(xiàn)。
結(jié)尾
在云計算過去的十年里,我們發(fā)現(xiàn)越來越多的企業(yè) CIO 在引入云計算服務(wù)的時候會更加理性和科學(xué)的進(jìn)行成本核算,如何切實有效的交付高性價比的云服務(wù)產(chǎn)品比以往的任何時刻都要能夠有效的構(gòu)建出競爭壁壘。
令人敬佩的是,亞馬遜云科技一直依賴都堅持著高性價比策略,目前統(tǒng)計已經(jīng)連續(xù)降價了 70 多次。回顧 Nitro System 的技術(shù)演進(jìn)之路,亞馬遜云科技通過在硬件虛擬化技術(shù)方向上進(jìn)行革命性創(chuàng)新來提升性價比的手段,與市場性質(zhì)的價格戰(zhàn)有著本質(zhì)的不同。是一種更為樸實的、由技術(shù)革命所帶來的降本和增效,無疑是其競爭壁壘中最堅實的一塊磚石。
最后,再為大家介紹一下亞馬遜云科技專為云計算開發(fā)者們打造的多樣化學(xué)習(xí)平臺,感興趣的朋友們可以從里面獲取到大量優(yōu)質(zhì)的官方一手教程內(nèi)容。
亞馬遜云科技專為開發(fā)者們打造了多種學(xué)習(xí)平臺:
入門資源中心:從0到1 輕松上手云服務(wù),內(nèi)容涵蓋:成本管理,上手訓(xùn)練,開發(fā)資源。AWS入門_AWS入門使用教程_AWS云計算資源-AWS云服務(wù)
架構(gòu)中心:亞馬遜云科技架構(gòu)中心提供了云平臺參考架構(gòu)圖表、經(jīng)過審查的架構(gòu)解決方案、Well-Architected 最佳實踐、模式、圖標(biāo)等。AWS架構(gòu)中心部署說明_AWS云架構(gòu)白皮書-AWS云服務(wù)
構(gòu)建者庫:了解亞馬遜云科技如何構(gòu)建和運營軟件。Amazon Builders' Libraryall&awsf.filter-content-type=all&awsf.filter-content-level=*all&trk=835e6894-d909-4691-aee1-3831428c04bd&sc_channel=el
用于在亞馬遜云科技平臺上開發(fā)和管理應(yīng)用程序的工具包:aws工具下載_aws開發(fā)工具_(dá)資源下載-AWS云服務(wù)
【專屬福利】
福利一:100余種產(chǎn)品免費套餐。其中,計算資源Amazon EC2首年12個月免費,750小時/月;存儲資源 Amazon S3 首年12個月免費,5GB標(biāo)準(zhǔn)存儲容量。亞馬遜AWS海外區(qū)域賬戶免費套餐_免費云服務(wù)-AWS云服務(wù)
福利二:最新優(yōu)惠大禮包,200$數(shù)據(jù)與分析抵扣券,200$機器學(xué)習(xí)抵扣券,200$微服務(wù)與應(yīng)用開發(fā)抵扣券。最新優(yōu)惠活動_云服務(wù)器促銷 - 亞馬遜云科技
福利三:解決方案CloudFormation一鍵部署模版庫云服務(wù)解決方案部署快速入門_云服務(wù)部署-AWS云服務(wù)
?
總結(jié)
以上是生活随笔為你收集整理的看 Amazon 如何通过 Nitro System 构建技术优势的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玩转Mixly – 10、Arduino
- 下一篇: 15.unsafe类的CAS是怎么保证原