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