虚拟机(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计算机。