21. Serverless虚拟化遇到的内核device-mapper driver是什么

我在打造k8e的 Serverless 引擎时,选择了AWS的 Firecracker-microvm,遇到一个技术问题,它要求一定要支持内核device-mapper驱动,这是个什么东西?和 overlayfs 对比有啥优缺点要讲一讲。

Device-mapper是一个虚拟化块设备的框架,通过它构建出了逻辑卷(LVM)。主要通过dmsetup这个工具来处理磁盘映射。这里通过LVM来管理块设备更高效,

  • 创建多个物理卷或整个硬盘的单一逻辑卷(有点类似于RAID 0,但更类似于JBOD),允许动态调整卷的大小。
  • 管理大型硬盘群,允许在不停机或不中断服务的情况下增加和更换磁盘,与热交换相结合。

这种环境一般还真是数据中心才有,也看出想在当个服务器上玩转Serverless也是没有意义的,需要具有硬盘群的服务器才能玩起来。

普及以上的知识,并不能打消我们的疑问。我们想要的环境,是容器化的环境,用轻量级vm把资源隔离出来,然后在里面启动init进程,把容器启动起来。这样,我们实现了VM的资源强隔离,又可以实现全容器化管理。

在FC的实现中,AWS明确提到

  • Snapshotter:通过创建文件形式为 MicroVM 提供块设备,该 Snapshotter 用于将容器映像提供给 MicroVM。 Snapshotter 作为进程外 gRPC 代理插件运行,与 Docker 不同的是目前仅支持 Native 和 Device Mapper 两种方式。

这里Snapshotter是给虚拟机中容器提供rootfs (根文件系统)的。为什么它要用Device mapper驱动给容器提供存储࿰

你可能感兴趣的:(Kubernetes,实践入门指南,serverless,云原生)