Firecracker技術(shù)的優(yōu)勢如何?
Firecracker技術(shù)
1、簡介
現(xiàn)在的技術(shù)環(huán)境下,容器具有快速啟動時間和高密度,VM可以對硬件虛擬化,具有更好的安全性,并對工作負載具有更好的隔離性。容器和VM的特性現(xiàn)在還不可兼得。
AWS開源了Firecracker,一種利用KVM的新虛擬化技術(shù),專門用于創(chuàng)建和管理多租戶容器以及基于函數(shù)的服務。你可以在幾分之一秒內(nèi)在非虛擬化環(huán)境中啟動輕量級微虛擬機(microVM),充分利用傳統(tǒng)虛擬機提供的安全性和工作負載隔離,同時兼具容器的資源效率。
Firecracker是一種采用基于Linux內(nèi)核的虛擬機(KVM)技術(shù)的開源虛擬機監(jiān)控程序(VMM)。Firecracker允許您創(chuàng)建微型虛擬機,即microVM。Firecracker堅持精簡主義的設(shè)計原則,它僅包含運行安全、輕量的虛擬機所需的組件。在設(shè)計過程的各個環(huán)節(jié),AWS依據(jù)安全性、速度和效率要求來優(yōu)化Firecracker。例如,僅啟動相對較新的Linux內(nèi)核,并且僅啟動使用特定配置選項集編譯的內(nèi)核(內(nèi)核編譯配置選項超過1000種)。此外,不支持任何類型的圖形卡或加速器,不支持硬件透傳,不支持(大多數(shù))老舊設(shè)備。
Firecracker啟動的內(nèi)核配置極少,不依賴仿真BIOS,不使用完整設(shè)備模式。唯一的設(shè)備是半虛擬化網(wǎng)卡和半虛擬化硬盤,以及單按鈕鍵盤(復位引腳在無電源管理設(shè)備時使用)。這種極簡的設(shè)備模式不僅有利于縮短開機時間(采用默認microVM型號的i3.metal實例開機時間<125毫秒),同時也減少了***面,從而提高了安全性。請參閱有關(guān)Firecracker承諾支持以極低的開銷執(zhí)行容器和無服務器工作負載的更多信息。
2017年秋,AWS決定以Rust語言來編寫Firecracker,這是一種非常先進的編程語言,可保證線程和內(nèi)存安全,防止緩存溢出以及可能導致安全性漏洞的許多其他類型的內(nèi)存安全問題。請訪問Firecracker設(shè)計以了解有關(guān)Firecracker VMM功能和架構(gòu)的更多詳細信息。
由于設(shè)備模型極簡,內(nèi)核加載過程也簡單,可以實現(xiàn)小于125 ms的啟動時間和更少的內(nèi)存占用。Firecracker目前支持Intel CPU,并將于2019年開始支持AMD和ARM,還將與containerd等流行的容器運行時集成。Firecracker支持內(nèi)核版本為4.14及更高版本的Linux主機和客戶機操作系統(tǒng)。
Firecracker microVM提高了效率和利用率,內(nèi)存開銷極低,每microVM的內(nèi)存開銷<5MiB。這意味著用戶可以將數(shù)千個microVM封裝到一個虛擬機中??梢允褂眠M程中速率限制器來實現(xiàn)對網(wǎng)絡(luò)和存儲資源的共享方式的精細控制,即使跨數(shù)千個microVM也同樣可行。所有硬件計算資源可以安全地超訂,從而最大化可以在主機上運行的工作負載數(shù)量。
2、Firecracker的優(yōu)勢
AWS依據(jù)如下開放源項目的指導信條開發(fā)了Firecracker。
內(nèi)置安全性:AWS提供了支持多租戶工作負載并且不會被客戶錯誤禁用的計算安全性屏障??蛻艄ぷ髫撦d被認為既神圣(不可侵犯)又邪惡(應當拒之門外)。
高性能:可以在短至125毫秒內(nèi)啟動microVM(在2019年可以更快),使其成為眾多工作負載類型的理想選擇,包括瞬態(tài)或短期工作負載。
輕量虛擬化:重視瞬時性或無狀態(tài)的工作負載,而非長時間運行或持續(xù)性的工作負載。Firecracker的硬件資源開銷是明確且又保障的。
久經(jīng)沙場:Firecracker經(jīng)過了很多測試,已經(jīng)為包括AWS Lambda和AWS Fargate在內(nèi)的多個高容量AWS服務提供支持。
低開銷:Firecracker每個microVM消耗大約5 MiB的內(nèi)存。你可以在同一實例上運行數(shù)千個具有不同vCPU和內(nèi)存配置的安全VM。
功能極簡主義:不會構(gòu)建非我們的任務所明確要求的功能。每個功能僅實施一項。
計算超訂:Firecracker向來賓開放的所有硬件計算資源都可以安全地超訂。
開源:Firecracker是一個開源項目。AWS已經(jīng)準備好審核并接受拉取請求。
近些年AWS非常推崇無服務器模式,自從2014年Lambda發(fā)布之后,無服務器大受歡迎,隨之2017年推出AWS Fargate服務,應用于自家的容器服務平臺ECS。在2019年,EKS也相繼支持AWS Fargate。
現(xiàn)在,更多的用戶使用無服務器計算來構(gòu)建應用程序,AWS旨在打造讓用戶無需擔心基礎(chǔ)設(shè)施的預置或管理問題。開發(fā)人員可以使用AWS Fargate將其代碼封裝為無服務器容器,或使用AWS Lambda封裝為無服務器函數(shù)。無服務器的低運營開銷特點,這將繼續(xù)對計算的未來發(fā)揮關(guān)鍵作用。
隨著用戶越來越廣泛采用無服務器技術(shù),AWS認識到現(xiàn)行虛擬化技術(shù)還未同步發(fā)展,以針對此類事件驅(qū)動性,有時又呈短暫性特點的工作負載進行優(yōu)化。AWS認為需要構(gòu)建特別針對無服務器計算設(shè)計的虛擬化技術(shù)。這種技術(shù)需要既能提供基于硬件虛擬化的虛擬機安全性邊界,同時又能保持容器和函數(shù)較小的封裝型號和敏捷性。