微型VM彌補完整VM和容器間的差距
虛擬機(VM)和容器是現在的主流技術,但是它們都有缺點,給管理帶來挑戰,例如移動性降低和安全性較弱。而微型VM可為IT管理員提供所需的功能,且沒有增加缺點。
微型VM使管理員能夠在每個主機上運行大量的小型VM。但隨著這些微型VM的累積,主機會變得越來越緊張,這可能會導致系統性能降低和資源耗盡等問題。不過,AWS Firecracker等平臺可幫助解決這些問題,這些平臺可提供微型VM和相應管理功能,以確保最佳性能。
了解微型虛擬機及其優勢
在管理員了解微型VM所提供的功能之前,應先了解VM和容器的優缺點。VM使管理員可以運行彼此獨立的多個OS實例。雖然這提供了更多的隔離,但這里需要大量資源。與VM相比,容器更小且資源占用更少,缺點是,它們可能使整個系統面臨安全風險,因為同一主機上的容器共享同一OS。
相比之下,微型VM可為管理員提供兩全其美的體驗。本質上,微型VM采用容器架構,同時可為每個實例保留VM隔離。這使管理員可以快速創建和部署大量微型VM,而不會面臨資源爭用的風險。微型VM還確保安全性。
何時利用完整VM、容器或微型VM
我們很難知道何時利用完整的VM、容器或微型VM。這意味著,每種實例類型都有其特定的用例,并且,管理員的選擇取決于他運行的工作負載的類型。
如果管理員依賴于傳統的整體應用程序,則最好使用完整的VM,因為VM是完整且獨立的服務器,可部署復雜的傳統應用程序,例如數據庫。
對于需要可擴展性和工作負載移動性的管理員來說,容器是更理想的選擇。由于缺乏隔離性,容器也更適合不需要高級別安全性的工作負載。
另外,那些希望支持傳統的單片應用程序又想要實現可擴展性和移動性的管理員,應考慮使用微型VM。微型VM具有容器架構的優點,同時保留了完整VM提供的安全性和隔離性。
微型VM管理挑戰
微型虛擬機可彌合容器和完整虛擬機之間的鴻溝,為管理員提供兩者的優勢。但微型虛擬機也帶來獨特的挑戰。
通過微型虛擬機,管理員可以一次并連續創建大量小型虛擬機。但是,隨著微型VM的積累,管理員可能面臨的情況是:超出虛擬機管理程序的VM限制和可用的軟件許可證。
微型VM的大規模使用也會導致資源爭用。常見的誤解是,由于微型VM的尺寸減小,因此不會消耗大量資源。但是VM的大小并不一定決定其使用的資源數量。通常,單個主機中數量龐大的VM會導致資源爭用。而且,如果管理員在短時間內創建了太多的微型VM,可能會淹沒主機。
AWS Firecracker介紹
盡管微型VM帶來的新管理挑戰,但市面上有很多供應商和平臺可幫助管理員成功地對其進行管理,AWS Firecracker就是其中之一。Firecracker是一種開源虛擬化技術,使管理員能夠為容器化應用構建微型VM。
AWS使用Firecracker來支持其某些云服務,例如Lambda和Fargate,同時,管理員也在本地環境中使用該軟件。AWS于2018年11月首次推出Firecracker,它通過容器的移動性提供完整VM的隔離和安全性。
AWS Firecracker非常適合事件驅動和短暫的工作負載,例如無服務器計算。那些尋求多級隔離和保護的管理員將從Firecracker中受益。Firecracker的核心是依賴于Linux內置的KVM模塊,從而使其能夠在非虛擬化環境中啟動輕量級微型VM。
如何使用AWS Firecracker
當管理員確定微型VM是否適合其工作負載后,就可以使用AWS Firecracker構建微型VM。AWS Firecracker為管理員提供了極簡設計,這可減少內存需求并更好地防御惡意攻擊。
在管理員可以使用AWS Firecracker前,他們必須下載Firecracker二進制文件。然后,管理員需要未壓縮Linux內核二進制文件用作guest OS,以及根文件系統(例如ext4文件系統映像)。
當管理員獲取這些二進制文件后,他們必須打開Shell彈出框才能成功啟動并運行Firecracker,并需要另一個shell來寫入其API。這兩個shell程序必須與Firecracker二進制文件在同一目錄中運行。
在完成這些步驟后,管理員應在第二個Shell中設置guest OS內核和訪客根文件系統,以啟動訪客計算機。然后,管理員可以返回到第一個shell,并確保從提供的彈出框登錄到guest計算機。