¿Cuál es la sabiduría convencional con respecto a los sistemas similares a LXC y RHEL en la actualidad?
Personalmente, la configuración actual me parece un tanto deficiente. LXC parece más a la vanguardia, ciertamente más mantenido.
¿Cómo los estás implementando?
En términos de ofrecerlo como una opción de virtualización, no lo soy. Encuentro que falta la configuración tecnológica actual.
- Sin espacio de nombre de usuario.
- Ciertos puntos de montaje no son conscientes del espacio de nombres (cgroups, selinux)
- Los valores en / proc son globales del sistema engañosos que no tienen en cuenta la división de recursos en espacios de nombres.
- Rompe auditoria.
Sin embargo, me parece una herramienta realmente buena para la contención de nivel de aplicación. Utilizamos espacios de nombres y cgroups directamente para contener recursos de red e IPC para ciertas aplicaciones web administradas por usuarios. Proporcionamos nuestra propia interfaz para controlarlo. En RHEL7 estoy considerando trasladar esta funcionalidad a libvirt-lxc
las nuevas revisiones de libvirt
soporte del concepto de ACL de usuario.
Para la virtualización en términos de un sistema completamente inicializado, estoy esperando para ver lo que se ofrece en RHEL7, pero honestamente, siento que solo podríamos ver una solución lo suficientemente buena una vez que estemos en una versión menor posterior de RHEL7 y luego tal vez solo en un estado de vista previa de tecnología.
Esté atento a systemd-nspawn
algo que me dice en los próximos 18 meses, o sea que podría ocupar su lugar, es la mejor herramienta para hacer una virtualización completamente contenida en Linux, ya sea que los autores del sistema aclaren que no es seguro en este momento. No me sorprendería si eventualmente libvirt
cae libvirt-lxc
y solo ofrece un envoltorio alrededorsystemd-nspawn
con rebanadas systemd definidas.
Además, tenga cuidado de que se haya hablado mucho en los últimos 6 meses con respecto a la re-implementación de cgroups como una interfaz de programador de kernel en lugar de una interfaz de sistema de archivos (tal vez usando netlink o algo así, no lo he comprobado) por lo que systemd debería estar muy caliente en la cola de hacerlo bien muy rápido.
¿Hay alguna ventaja en un enfoque versus el otro?
Creo que la opción LXC (no libvirt-lxc) se mantiene mejor. Después de leer el libvirt-lxc
código fuente, se siente apresurado. El LXC tradicional ciertamente tiene nuevas características que han sido mejor probadas. Ambos requieren un cierto grado de compatibilidad por parte del sistema init que se ejecuta en ellos, pero sospecho que encontrarás LXC un poco más "llave en mano" que la libvirt-lxc
opción, particularmente en lo que respecta a conseguir que las distribuciones funcionen en ellos.
¿Pueden estos coexistir?
Claro, recuerde que para todos los efectos, ambos están haciendo lo mismo. Organización de espacios de nombres, cgroups y puntos de montaje. Todas las primitivas son tratadas por el núcleo mismo. Ambas lxc
implementaciones solo ofrecen un mecanismo para interactuar con las opciones de kernel disponibles.