Actualización para Intel Cloud Hypervisor 0.3 y Amazon Firecracker 0.19 escrita en Rust

Intel опубликовала nueva versión del hipervisor Hipervisor en la nube 0.3. El hipervisor se construye alrededor de componentes.
proyecto conjunto Óxido-VMM, en el que, además de Intel, también participan Alibaba, Amazon, Google y Red Hat. Rust-VMM está escrito en lenguaje Rust y le permite crear hipervisores para tareas específicas. Cloud Hypervisor es uno de esos hipervisores que proporciona un monitor de máquina virtual (VMM) de alto nivel que se ejecuta sobre KVM y está optimizado para tareas nativas de la nube. Código de proyecto esta disponible licenciado bajo Apache 2.0.

Cloud Hypervisor se centra en ejecutar distribuciones modernas de Linux utilizando dispositivos paravirtualizados basados ​​en virtio. Entre las tareas clave mencionadas se encuentran: alta capacidad de respuesta, bajo consumo de memoria, alto rendimiento, simplificación de la configuración y reducción de posibles vectores de ataques.

El soporte de emulación se mantiene al mínimo y se hace hincapié en la paravirtualización. Actualmente solo se admiten sistemas x86_64, pero la compatibilidad con AArch64 está en camino. De los sistemas invitados, actualmente solo se admiten versiones de Linux de 64 bits. Las configuraciones de CPU, memoria, PCI y NVDIMM se realizan en la etapa de construcción. Es posible migrar máquinas virtuales entre servidores.

Versículos nuevos:

  • Se continuó trabajando para trasladar E/S paravirtualizadas a procesos separados. Se agregó la capacidad de usar backends para interactuar con dispositivos de bloque. usuario-vhost-blk. El cambio le permite conectar dispositivos de bloque basados ​​en el módulo de usuario vhost al hipervisor en la nube, como SPDK, como backends para almacenamiento paravirtualizado;
  • Introducido en la última versión, soporte para mover operaciones de red a backends vhost-usuario-net, ampliado con un nuevo backend basado en un controlador de red virtual TAP. El backend está escrito en Rust y ahora se utiliza en Cloud Hypervisor como la principal arquitectura de red paravirtualizada;
  • Para aumentar la eficiencia y seguridad de las comunicaciones entre el entorno host y el sistema huésped, se propone una implementación híbrida de sockets con direccionamiento AF_VSOCK (sockets de red virtuales) que funcionan a través de virtio. La implementación se basa en los desarrollos del proyecto. Petardodesarrollado por Amazon. VSOCK le permite utilizar la API de sockets POSIX estándar para la interacción entre aplicaciones en el lado del sistema invitado y el host, lo que facilita adaptar programas de red ordinarios para dicha interacción e implementar la interacción de varios programas cliente con una aplicación de servidor;
  • Se ha proporcionado soporte inicial para una API de administración que utiliza el protocolo HTTP. En el futuro, esta API permitirá iniciar operaciones asincrónicas en sistemas invitados, como la conexión en caliente de recursos y la migración de entornos;
  • Se agregó una capa de implementación de transporte basada en virtio MMIO (virtio mapeado en memoria), que se puede usar para crear sistemas invitados minimalistas que no requieren emulación de bus PCI;
  • Como parte de una iniciativa para ampliar el soporte para ejecutar sistemas invitados anidados en Cloud Hypervisor, se agregó la capacidad de reenviar dispositivos IOMMU paravirtualizados a través de virtio, lo que le permite aumentar la seguridad del reenvío directo y anidado de dispositivos.
  • Se proporcionó soporte para Ubuntu 19.10;
  • Se agregó la capacidad de ejecutar sistemas invitados con más de 64 GB de RAM.

Adicionalmente, se puede señalar nueva edición adyacente desarrollado monitor de máquina virtual Petardo, también escrito en Rust, basado en Rust-VMM y ejecutándose sobre KVM. Firecracker es una bifurcación del proyecto. CruzVMutilizado por Google para ejecutar aplicaciones Linux и Android en ChromeOS. Amazon Web Services está desarrollando Firecracker para mejorar el rendimiento y la eficiencia de las plataformas AWS Lambda y AWS Fargate.

La plataforma está diseñada para ejecutar máquinas virtuales con una sobrecarga mínima y proporciona herramientas para crear y administrar entornos y servicios aislados creados utilizando un modelo de desarrollo sin servidor (función como servicio). Firecracker ofrece máquinas virtuales livianas, llamadas microVM, que utilizan tecnologías de virtualización de hardware para aislarlas completamente y, al mismo tiempo, brindar el rendimiento y la flexibilidad de los contenedores tradicionales. Por ejemplo, cuando se utiliza Firecracker, el tiempo desde el inicio de microVM hasta el inicio de la aplicación no supera los 125 ms, lo que permite iniciar nuevas máquinas virtuales con una intensidad de hasta 150 entornos por segundo.

La nueva versión de Firecracker ha agregado un modo de operación sin ejecutar un controlador API ("--no-api"), lo que limita el entorno solo a configuraciones codificadas en el archivo de configuración. La configuración estática se especifica mediante la opción "--config-file" y se define en formato JSON. De las opciones de la línea de comando, también se agregó soporte para el delimitador "—", después del cual las banderas se pasan a lo largo de la cadena sin procesar.

El desarrollador de petardos Amazon también anunció el sobre el patrocinio de desarrolladores del lenguaje de programación Rust. Cabe señalar que Rust se utiliza cada vez más en los proyectos de la empresa y sus desarrollos ya se han implementado en servicios como Lambda, EC2 y S3. Amazon proporcionó al proyecto Rust la infraestructura para almacenar versiones y compilaciones en S3, ejecutar pruebas de regresión en EC2 y mantener un sitio docs.rs con documentación para todos los paquetes del repositorio crates.io.

Amazon también presentado программу Crédito promocional de AWS, donde los proyectos abiertos pueden obtener acceso gratuito a los servicios de AWS que se pueden utilizar para el almacenamiento, la construcción, la integración continua y las pruebas de recursos. De los proyectos ya aprobados para participar en el programa, además de Rust, se destacan AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy y Julia. Se aceptan solicitudes de cualquier proyecto de código abierto suministrado bajo licencias aprobadas por OSI.

Fuente: opennet.ru

Añadir un comentario