Synnefo es una pila de nube completa de código abierto escrito en Python que proporciona servicios de Computación , Red , Imagen , Volumen y Almacenamiento , similares a los que ofrece AWS . Synnefo administra múltiples clústeres de Google Ganeti en el backend que manejan operaciones de VM de bajo nivel y usa Archipelago para unificar el almacenamiento en la nube. Para aumentar la compatibilidad con terceros, Synnefo expone las API de OpenStack a los usuarios.
Desarrollador (es) | GRNET |
---|---|
Lanzamiento estable | 0.19.1 / 23 de junio de 2017 [1] |
Repositorio | github |
Escrito en | Pitón |
Tipo | Computación en la nube |
Licencia | Licencia pública general GNU |
Sitio web | www |
Synnefo está siendo desarrollado por GRNET (Red de Investigación y Tecnología de Grecia) y está impulsando dos de sus servicios en la nube pública, el servicio ~ okeanos , que está dirigido a la comunidad académica griega, y el servicio global ~ okeanos , que está abierto para todos. miembros de la red GÉANT .
Historia
En noviembre de 2006, en un esfuerzo por proporcionar servicios avanzados en la nube para la comunidad académica y de investigación griega, GRNET decide lanzar un servicio de almacenamiento en la nube, similar al S3 de Amazon , llamado Pithos . El proyecto se subcontrata y se abre a la versión beta pública para los miembros de la comunidad académica y de investigación griega en mayo de 2009 [2].
En junio de 2010, GRNET decide el siguiente paso de este curso; para crear un servicio en la nube completo, similar a AWS (Computación / Red / Volumen / Imagen / Almacenamiento). Este servicio, llamado ~ okeanos , tiene como objetivo proporcionar a la comunidad académica y de investigación griega acceso a una infraestructura virtualizada que varios proyectos pueden aprovechar, por ejemplo, experimentos, simulaciones y laboratorios. Dada la naturaleza no efímera de los recursos que proporciona el servicio, surge la necesidad de servidores en la nube persistentes. En busca de una solución, en octubre de 2010 GRNET decide basar el servicio en Google Ganeti y diseñar e implementar todas las piezas faltantes internamente.
En mayo de 2011, el antiguo servicio Pithos se reescribe desde cero internamente, con la intención de integrarse a ~ okeanos como su servicio de almacenamiento. Además, el nuevo Pithos agrega soporte para sincronización similar a Dropbox.
En julio de 2011, ~ okeanos alcanza su etapa alfa pública. Esta versión (v0.5.2.1) incluye Identidad, Computación, Red y un servicio de imagen primitivo. El lanzamiento alfa del nuevo Pithos reescrito se produce poco después, en noviembre de 2011. Se comercializa como Pithos + y el antiguo Pithos permanece como un servicio separado. El nuevo Pithos +, aunque todavía no está integrado a ~ okeanos, proporciona capacidades de sincronización y uso compartido de archivos, así como clientes de sincronización nativos para Mac OS X, iPhone, iPad y Windows.
En marzo de 2012, ~ okeanos entra en la fase pública alpha2. Esta versión (v0.9) incluye una integración completa del nuevo Pithos como parte de ~ okeanos y ahora actúa como la tienda unificada de imágenes y archivos. Alrededor de este punto, en abril de 2012, el equipo de ~ okeanos decide referirse a toda la pila de software como Synnefo y comienza a escribir la primera versión de la documentación de Synnefo.
En diciembre de 2012, debido al interés de otras partes en el stack de Synnefo, GRNET decide separar conceptualmente los proyectos ~ okeanos y Synnefo. Synnefo comienza a convertirse en un software de computación en la nube IaaS de marca neutral, mientras que ~ okeanos se convierte en su aplicación del mundo real, un IaaS para la comunidad académica y de investigación griega.
En abril de 2013, se lanza una nueva versión de Synnefo (v.013) después de una gran limpieza y refactorización de código. Todos los componentes separados se fusionan en un único repositorio de Synnefo. Esta es la primera versión como proyecto unificado, que contiene todas las partes (Computación / Red / Volumen / Imagen / Almacenamiento).
En junio de 2013, se lanza Synnefo v0.14. Desde esta versión, Synnefo tiene una marca neutral (se eliminan todas las referencias restantes de ~ okeanos). También obtiene un mecanismo de branding y la documentación correspondiente, para que otros puedan adaptarlo a su identidad de branding.
Descripción general
Synnefo ha sido diseñado para implementarse en cualquier entorno
Componentes
Synnefo es de naturaleza modular y consta de los siguientes componentes:
Astakos (servicios de identidad / cuenta)
Astakos es el componente de gestión de identidad que proporciona una base de usuarios común al resto de Synnefo. Astakos maneja la creación de usuarios, grupos de usuarios, contabilidad de recursos, cuotas, proyectos y emite tokens de autenticación utilizados en toda la infraestructura. Admite múltiples métodos de autenticación:
Pithos (servicios de almacenamiento de archivos / objetos)
Pithos es el componente de almacenamiento de objetos / archivos de Synnefo. Los usuarios cargan archivos en Pithos utilizando la interfaz de usuario web, el cliente de línea de comandos o los clientes de sincronización nativos. Es una capa delgada que asigna archivos de usuario a bloques direccionables por contenido que luego se almacenan en un backend de almacenamiento. Los archivos se dividen en bloques de tamaño fijo, a los que se les aplica un hash de forma independiente para crear un identificador único para cada bloque, de modo que cada archivo se representa mediante una secuencia de nombres de bloque (un mapa de hash). De esta manera, Pithos proporciona deduplicación de datos de archivos; los bloques compartidos entre archivos solo se almacenan una vez.
La implementación actual utiliza bloques de 4 MB con hash con SHA256. El direccionamiento basado en contenido también permite una sincronización de archivos bidireccional eficiente que pueden utilizar todos los clientes de Pithos (por ejemplo, el cliente de línea de comandos kamaki o los clientes nativos de Windows / Mac OS). Siempre que alguien desee cargar una versión actualizada de un archivo, el cliente aplica un hash a todos los bloques del archivo y luego solicita al servidor que cree una nueva versión para esta secuencia de bloques. El servidor devolverá una respuesta de error con una lista de los bloques que faltan. Luego, el cliente puede cargar cada bloque uno por uno y volver a intentar la creación del archivo. Del mismo modo, siempre que se ha modificado un archivo en el servidor, el cliente puede solicitar su lista de bloques y solo descargar los modificados.
Pithos se ejecuta en la capa de nube y expone la API de almacenamiento de objetos de OpenStack al mundo exterior, con extensiones personalizadas para la sincronización. Cualquier cliente que hable con OpenStack Swift también se puede utilizar para almacenar objetos en una implementación de Pithos. El proceso de asignación de archivos de usuario a objetos hash es independiente del backend de almacenamiento real, que el administrador puede seleccionar mediante controladores conectables. Actualmente, Pithos tiene controladores para dos backends de almacenamiento:
- archivos en un sistema de archivos compartido, por ejemplo, NFS, Lustre, GPFS o GlusterFS
- objetos en un clúster Ceph / RADOS.
Cualquiera que sea el backend de almacenamiento, es responsable de almacenar objetos de manera confiable, sin ninguna conexión a las API de la nube ni a las operaciones de hash.
Cyclades (servicios de computación / red / imagen / volumen)
Cyclades es el componente Synnefo que implementa los servicios de Computación, Red, Imagen y Volumen. Expone las API REST de OpenStack asociadas: OpenStack Compute, Network, Glance y pronto también Cinder. Cyclades es la parte que administra múltiples clústeres de Ganeti en el backend. Cyclades emite comandos a un clúster de Ganeti utilizando la API remota de Ganeti (RAPI). El administrador puede expandir la infraestructura de forma dinámica agregando nuevos clústeres de Ganeti para alcanzar la escala del centro de datos. Cyclades no sabe nada sobre las operaciones de administración de VM de bajo nivel, por ejemplo, manejo de creaciones de VM, migraciones entre nodos físicos y manejo de tiempos de inactividad de los nodos; el diseño y la implementación de la API de usuario final es ortogonal al manejo de VM en el backend.
Hay dos caminos asincrónicos distintos en la interacción entre Synnefo y Ganeti. La ruta del efecto se activa en respuesta a una solicitud del usuario; Cyclades emite comandos de control de VM a Ganeti a través de RAPI. La ruta de actualización se activa cada vez que cambia el estado de una máquina virtual, debido a acciones iniciadas por Synnefo o por el administrador que ocurren en el nivel de Ganeti. En la ruta de actualización, monitoreamos la cola de trabajos de Ganeti para producir notificaciones al resto de la infraestructura de Synnefo a través de una cola de mensajes.
Los usuarios tienen control total sobre sus máquinas virtuales: pueden crear nuevas, iniciarlas, apagarlas, reiniciarlas y destruirlas. Para la configuración de sus máquinas virtuales, pueden seleccionar la cantidad de CPU, el tamaño de la RAM y el disco del sistema, y el sistema operativo de imágenes predefinidas, incluidas las distribuciones populares de Linux (Debian, Ubuntu, CentOS, Fedora, Gentoo, Archlinux, OpenSuse), MS- Windows Server 2008 R2 y 2012, así como FreeBSD.
La API REST para la gestión de VM, al ser compatible con OpenStack, puede interoperar con bibliotecas cliente y herramientas de terceros.
La interfaz de usuario de Cyclades está escrita en Javascript / jQuery y se ejecuta completamente en el lado del cliente para una máxima capacidad de respuesta. Es solo otro cliente API; todas las operaciones de la interfaz de usuario ocurren con llamadas asincrónicas a través de la API.
La funcionalidad de red incluye conectividad IPv4 / IPv6 dual para cada VM, cortafuegos sencillo proporcionado por la plataforma, ya sea a través de una serie de perfiles de cortafuegos preconfigurados o mediante un cortafuegos que se puede instalar dentro de la VM. Los usuarios pueden crear múltiples redes privadas virtuales L2, de modo que construyan una topología de red arbitraria, por ejemplo, para implementar máquinas virtuales en configuraciones de varios niveles. La funcionalidad de red se exporta desde el backend hasta la API y la IU.
Ver también
Referencias
- ^ "Synnefo v0.19.1 lanzado" . Consultado el 13 de julio de 2017 .
- ^ "Línea de tiempo Synnefo" . synnefo.org . Consultado el 4 de abril de 2014 .