Ceph

Almacenamiento Ceph Descripción de la imagen Ceph Logo.png.

Información
Desarrollado por Sage Weil (Red Hat), Yehuda Sadeh Weinraub, Gregory Farnum, Josh Durgin, Samuel Just, Wido den Hollander, Loïc Dachary
Última versión 15.2.4 "Pulpo" (7 de enero de 2019)
Versión avanzada 13.0.0 (26 de agosto de 2017)
15.0.0 (3 de abril de 2019)
Depositar github.com/ceph/ceph
Escrito en C ++ y Python
Sistema de explotación Linux
Medio ambiente
Escribe Sistema de archivos distribuido
Licencia LGPL
Sitio web ceph.com

Ceph es una solución de almacenamiento distribuido gratuito (almacenamiento definido por software) que ofrece tres protocolos populares con: Block, Files & Objet (S3). Los principales objetivos de Ceph son estar completamente distribuidos sin un solo punto de falla , escalable a exabytes y disponible gratuitamente. Los datos se replican , lo que permite que el sistema sea tolerante a fallas .

Ceph funciona en hardware estándar (servidores x86) llamado conveniencia e IP Ethernet.

El sistema está diseñado para autorrepararse y automatizar sus tareas administrativas tanto como sea posible con el fin de reducir los costos operativos y ser independiente sobre la elección del hardware asociado (discos, servidores de conveniencia).

Ceph es utilizado a menudo por centros de datos que han adoptado el código abierto como su nuevo estándar para almacenamiento de bloques de alto crecimiento, almacenamiento de objetos y big data (datalakes).

Ceph implementa el almacenamiento de objetos distribuidos utilizando RADOS ( Reliable Autonomic Distributed Object Store ), un motor de almacenamiento de objetos distribuido, autónomo y confiable .

En el lado del cliente, su biblioteca de software nativa librados permite el acceso directo a aplicaciones C, C ++, Java, Python, Ruby y PHP en modo objeto. La API S3 permite que las aplicaciones se desborden de forma nativa en la nube.

Estos suelen ser discos capacitivos que están asociados con el almacenamiento de objetos S3 de Ceph para casos de uso: Big Data (datalake), Backup & Archives (GED, mails ...), IOT, media & video vigilancia ...

Varias bibliotecas adicionales permiten obtener las abstracciones necesarias para:

  • Bloquear el acceso mediante RADOS Block Device ( RBD ) o iSCSI
  • Acceso en modo de archivo usando CephFS
  • El acceso en modo HTTP REST a través de los Amazon S3 o OpenStack Swift Interfaces gracias a la RADOS puerta de enlace ( RADOS puerta de enlace o RADOSGW )

El sistema de almacenamiento en bloque de Ceph permite a los usuarios montar Ceph como un dispositivo de bloque. Cuando una aplicación escribe datos en Ceph mediante un dispositivo de bloque, Ceph paraleliza y replica las escrituras de datos en todo el clúster de forma automática. Ceph RBD también se integra con máquinas virtuales basadas en el kernel de Linux.

  • Ceph-RBD interactúa con el mismo sistema de objetos de almacenamiento que la API librados y el sistema de archivos CephFS, y almacena imágenes de dispositivos de bloques como objetos. Desde que RBD se construyó sobre librados, RBD ha heredado las capacidades de librados, incluidas instantáneas de solo lectura y reversión a instantáneas. Al paralelizar las escrituras de imágenes en el clúster, Ceph mejora el rendimiento del acceso de lectura en imágenes de dispositivos de bloques grandes.
  • Ceph-iSCSI es una puerta de enlace que proporciona acceso a almacenamiento en bloque distribuido de alta disponibilidad desde cualquier servidor o cliente de Microsoft Windows o vmware vsphere capaz de hablar el protocolo iSCSI. Al usar ceph-iscsi en uno o más hosts de puerta de enlace iSCSI, las imágenes Ceph RBD están disponibles como unidades lógicas (LU) asociadas con destinos iSCSI, a las que se puede acceder de una manera de alta disponibilidad y carga equilibrada.

Suelen ser discos rápidos (NVMe, SSD) que están asociados con el almacenamiento en bloque Ceph para casos de uso: bases de datos, máquinas virtuales, análisis de datos, AI / ML ...

Integraciones

El acceso en bloque está integrado notablemente en ciertas plataformas de virtualización, como:

Esta integración permite que una máquina virtual utilice directamente un dispositivo RBD como disco duro virtual.

El sistema de archivos Ceph (CephFS) se ejecuta en la parte superior del sistema de almacenamiento de objetos que proporciona almacenamiento de objetos e interfaces de dispositivos de bloques. Ceph Server Cluster Metadata proporciona un servicio que asigna directorios y nombres de archivos del sistema de archivos a objetos almacenados en clústeres RADOS. Los metadatos pueden crecer o contraerse, y pueden reequilibrar dinámicamente el sistema de archivos para distribuir los datos de manera uniforme entre los hosts del clúster. Esto asegura un alto rendimiento y evita cargas pesadas en un host específico del clúster.

Los clientes montan el sistema de archivos compatible con POSIX utilizando el kernel de Linux de un cliente. la19 de marzo de 2010, Linus Torvalds fusionó el cliente Ceph en el kernel de Linux 2.6.34 que se lanzó el 16 de mayo de 2010. Hay disponible un cliente antiguo basado en FUSE. Los servidores funcionan como demonios comunes de Unix.

El almacenamiento de archivos de Ceph a menudo se asocia con casos de uso: capturas de registros, mensajería, almacenamiento de archivos ...

Sistemas de archivos subyacentes

Se utiliza un sistema de archivos subyacente en los OSD para almacenar datos como archivos en una estructura de árbol. (Un OSD suele ser un disco giratorio)

Histórico

Ceph fue creado originalmente por Sage Weil  (in) (desarrollador del concepto de Webring y cofundador de DreamHost) para su tesis doctoral supervisada por el profesor Scott A. Brandt que trabajó en la Escuela de Ingeniería Jaskin Baskin de la Universidad de California en Santa Cruz , fundada por el DOE / NNSA (Departamento de Energía / Administración Nacional de Seguridad Nuclear) en colaboración con el Laboratorio Nacional Lawrence Livermore , el Laboratorio Nacional de Los Alamos y el Laboratorio Nacional Sandia.

Después de su graduación (Ph.D) en el verano de 2007, Weil continuó trabajando en Ceph a tiempo completo. El equipo de desarrollo del kernel ha crecido para incluir a Yehuda Sadeh Weinraub y Gregory Farnum. En 2012, Weil estableció Inktank Storage para brindar soporte y servicio profesional a Ceph.

En abril de 2014, Red Hat compró Inktank tomando la mayor parte del desarrollo de Ceph internamente para convertirlo en una versión de producción para empresas con línea directa y mantenimiento (nuevas versiones). S. Weil continúa desarrollando Ceph como arquitecto principal en Red Hat.

Ceph continúa dominando el mercado como una solución de almacenamiento de código abierto gracias a los continuos esfuerzos de desarrollo de la comunidad al ofrecer nuevas funciones para satisfacer las necesidades comerciales y adaptarse a nuevos casos de uso emergentes, como almacenamiento. Persistente para contenedores, centro de datos abiertos, AI / ML, Kafka, análisis de datos ...

Argonauta (v0.48)

la 3 de julio de 2012, el equipo de desarrollo propuso la versión Argonaut, la primera versión “estable” de Ceph. Esta versión solo recibirá parches de estabilidad y rendimiento y se planearán nuevas funciones para futuras versiones.

Bobtail (v0.56)

la 1 st de enero de 2013El equipo Ceph ofrece Bobtail, la 2 ª  versión principal de Ceph. Esta versión se centra principalmente en la estabilidad. el rendimiento y la escalabilidad de la versión estable anterior.

Sepia (v0.61)

la 7 de mayo de 2013El equipo Ceph ofertas de sepia, la 3 ª  mayor liberación de Ceph. Esta versión incluye una cantidad significativa de mejoras de rendimiento y es la primera versión estable que ofrece la funcionalidad de la herramienta de implementación "ceph-deploy" en lugar del método "mkcephfs" anterior.

Bola de masa (v0.67)

la 14 de agosto de 2013, el equipo de desarrollo lanzó Dumpling, la cuarta versión principal de Ceph. Esta versión incluye un primer paso al espacio de nombres global y soporte regional, una API REST también está disponible para funciones de administración y monitoreo y soporte mejorado para plataformas basadas en RHEL.

Emperador (v0.72)

la 9 de noviembre de 2013El equipo de desarrollo lanzó Emperor, la quinta versión principal de Ceph. Esta versión trae un montón de características nuevas, incluida la replicación de múltiples centros de datos para radosgw, mejora la usabilidad y una gran cantidad de rendimiento incremental y refactorización interna para las próximas características de Firefly.

Luciérnaga (v0.80)

la 7 de mayo de 2014, El equipo de desarrollo de la luciérnaga Ceph destino, la 6 ª  mayor liberación de Ceph. Esta versión trae nuevas características que incluyen código de parche, cascada de caché, afinidad primaria, clave / valor OSD de back-end (experimental), radosgw independiente (experimental).

Gigante (v0.87)

la 29 de octubre de 2014El equipo de desarrollo ha lanzado Ceph gigante, el 7 º  mayor liberación de Ceph.

Martillo (v0.94)

la 7 de abril de 2015El equipo de desarrollo ha lanzado Ceph Hammer, el 8 º  importante liberación de Ceph.

Infernalis (v9.2.0)

la 6 de noviembre de 2015, El equipo de desarrollo Ceph liberado Infernalis, la 9 ª  versión principal de Ceph. Esta última versión es especialmente compatible con Systemd para la gestión de demonios que se inician con el usuario ceph en lugar de root.

Joya (v10.2.0)

la 21 de abril de 2016El equipo de desarrollo de Ceph lanzado joya, el 10 º  mayor liberación de Ceph y 1 st versión de Ceph que CephFS se considera estable.

Kraken (v11.2.0)

la 20 de enero de 2017El equipo de desarrollo de Ceph ha lanzado el Kraken, el 11 º  mayor liberación de Ceph. Esta nueva versión trae mejoras al sistema de archivos CephFS, RADOS, el motor Ceph, RGW y RBD.

Luminoso (v12.2.0)

la 29 de agosto de 2017, el equipo de desarrollo de Ceph lanzó Luminous, la duodécima versión principal de Ceph. Entre las muchas adiciones, el formato de almacenamiento BlueStore (que usa un disco duro en lugar de un sistema de archivos) ahora se considera estable y se recomienda su uso.

Diseño

Ceph usa cuatro demonios distintos:

Todos estos demonios operan de forma completamente distribuida y pueden ejecutarse en el mismo conjunto de servidores. Los clientes interactúan directamente con todos.

Ceph distribuye archivos individuales en varios nodos para proporcionar un mayor rendimiento, similar a RAID0, que distribuye particiones en varios discos duros. Se admite el equilibrio de carga adaptable mediante el cual los objetos a los que se accede con frecuencia se replican en más nodos.

Etimología

El nombre "Ceph" es un nombre que se da a menudo a pulpos y cefalópodos, una familia de moluscos, y en última instancia del griego antiguo κεφαλή ( ke-pha-lee ), que significa "cabeza" y πόδι ( po -dhi ), que significa "piernas". El nombre (subrayado por el logotipo) sugiere el comportamiento fuertemente paralelo de un pulpo y fue elegido para conectar el sistema de archivos con la mascota de UCSC (Universidad de California) , una babosa llamada "Sammy". La babosa es un gasterópodo, que también es una clase de molusco.

Kubernetes

El proyecto ceph-helm le permite implementar Ceph en un entorno de Kubernetes para proporcionar almacenamiento persistente.

Los contenedores de Kubernetes no tienen estado como regla general, pero los datos aún deben administrarse, protegerse y ponerse a disposición de otros servicios. Sin estado significa que el contenedor se ejecuta de forma aislada sin ningún conocimiento de transacciones pasadas, lo que facilita la sustitución, eliminación o distribución del contenedor. Sin embargo, también significa que sin almacenamiento persistente, los datos se perderán para algunos eventos del ciclo de vida, como reiniciar o eliminar el contenedor. Ceph se utiliza para evitar esta restricción y aprovisionar dinámicamente volúmenes persistentes (PV) a los contenedores.

Ver también

Notas y referencias

  1. "  Https://github.com/ceph/ceph/releases/tag/v13.0.0  " (Consultado el 20 de enero de 2018 )
  2. "  https://git.ceph.com/?p=ceph.git;a=tag;h=refs/tags/v13.0.0  " (Consultado el 20 de enero de 2018 )
  3. Versión 15.0.0  " ,3 de abril de 2019(consultado el 3 de abril de 2019 )
  4. "  V9.2.0 Infernalis lanzado  " , en ceph.com (consultado el 23 de noviembre de 2015 )
  5. "v10.2.0 Jewel lanzado"
  6. "v11.2.0 Kraken lanzado"

enlaces externos