用 Rust 编写的 Intel Cloud Hypervisor 0.3 和 Amazon Firecracker 0.19 更新

英特尔 опубликовала 新版本的虚拟机管理程序 云管理程序 0.3。 虚拟机管理程序基于组件构建
联合项目 Rust-VMM其中,除了英特尔之外,阿里巴巴、亚马逊、谷歌和红帽也参与其中。 Rust-VMM 采用 Rust 语言编写,允许您创建特定于任务的虚拟机管理程序。 Cloud Hypervisor 就是这样一种虚拟机管理程序,它提供在 KVM 之上运行并针对云原生任务进行优化的高级虚拟机监视器 (VMM)。 项目代码 是可用的 在 Apache 2.0 下获得许可。

Cloud Hypervisor 专注于使用基于 virtio 的半虚拟化设备运行现代 Linux 发行版。 提到的关键目标包括:高响应能力、低内存消耗、高性能、简化配置和减少可能的攻击向量。

仿真支持保持在最低限度,重点是半虚拟化。 目前仅支持 x86_64 系统,但计划支持 AArch64。 对于来宾系统,当前仅支持 64 位 Linux 版本。 CPU、内存、PCI 和 NVDIMM 在组装阶段进行配置。 可以在服务器之间迁移虚拟机。

在新版本中:

  • 将半虚拟化 I/O 转移到单独进程的工作仍在继续。 添加了使用后端与块设备交互的能力 虚拟主机用户块。 此更改允许您将基于 vhost-user 模块的块设备连接到 Cloud Hypervisor,例如 SPDK,作为半虚拟化存储的后端;
  • 支持将网络操作移至后端,在上一个版本中引入 虚拟主机用户网络,扩展了基于虚拟网络驱动程序的新后端 TAP。 后端是用 Rust 编写的,现在在 Cloud Hypervisor 中用作主要的半虚拟化网络架构;
  • 为了提高主机环境和客户系统之间通信的效率和安全性,提出了通过 virtio 工作的具有 AF_VSOCK 寻址的套接字(虚拟网络套接字)的混合实现。 实施基于项目的发展 鞭炮,由亚马逊开发。 VSOCK允许您使用标准的POSIX Sockets API进行来宾和主机端应用程序之间的交互,这使得普通网络程序可以轻松地适应这种交互,并实现多个客户端程序与一个服务器应用程序的交互;
  • 为使用 HTTP 协议的管理 API 提供了初步支持。 未来,该API将使得在客户系统上发起异步操作成为可能,例如热插拔资源和迁移环境;
  • 添加了基于 virtio MMIO(内存映射 virtio)的传输实现层,可用于创建不需要 PCI 总线模拟的简约客户系统;
  • 作为扩展对运行嵌套来宾系统支持计划的一部分,Cloud Hypervisor 增加了通过 virtio 转发半虚拟化 IOMMU 设备的功能,从而提高了设备​​嵌套和直接转发的安全性。
  • 提供了对Ubuntu 19.10的支持;
  • 添加了运行具有超过 64 GB RAM 的来宾系统的能力。

另外,还可以注意到 新发布 邻近的 发达 虚拟机监视器 鞭炮,也是用 Rust 编写的,基于 Rust-VMM 并运行在 KVM 之上。 Firecracker 是该项目的一个分支 交叉虚拟机,由 Google 用于启动应用程序 Linux и Android 在 Chrome 操作系统中。 Firecracker 是由 Amazon Web Services 开发的,旨在提高 AWS Lambda 和 AWS Fargate 平台的性能和效率。

该平台旨在以最小的开销运行虚拟机,并提供用于创建和管理使用无服务器开发模型(功能即服务)构建的隔离环境和服务的工具。 Firecracker 提供称为 microVM 的轻量级虚拟机,它使用硬件虚拟化技术提供完全隔离,同时提供传统容器的性能和灵活性。 例如,使用 Firecracker 时,从启动 microVM 到开始执行应用程序的时间不超过 125 毫秒,这使您可以每秒启动高达 150 个环境的强度的新虚拟机。

新版本的 Firecracker 添加了一种无需启动 API 处理程序(“—no-api”)的操作模式,将环境仅限于配置文件中硬编码的设置。 静态配置通过“--config-file”选项指定,并以 JSON 格式定义。 在命令行选项中,还添加了对“—”分隔符的支持,其后指定的标志将沿链传递而不进行处理。

开发 Firecracker 的亚马逊也 宣布了 为 Rust 编程语言的开发者提供赞助。 值得注意的是,Rust 在该公司的项目中得到越来越多的使用,并且其开发已经在 Lambda、EC2 和 S3 等服务中实现。 Amazon 为 Rust 项目提供了基础设施,用于在 S3 中存储版本和构建,在 EC2 中运行回归测试,并维护一个 docs.rs 站点,其中包含 crates.io 存储库中所有包的文档。

亚马逊也 提交 程序 AWS 促销积分,开源项目可以免费访问AWS服务,这些服务可用于资源存储、构建、持续集成和测试。 在已经批准参与该计划的项目中,除了 Rust 之外,还有 AdoptOpenJDK、Maven Central、Kubernetes、Prometheus、Envoy 和 Julia。 接受来自 OSI 批准的许可证下交付的任何开源项目的提交。

来源: opennet.ru

添加评论