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:
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.
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 ...
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 ...
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)
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 ...
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.
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.
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.
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.
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.
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).
la 29 de octubre de 2014El equipo de desarrollo ha lanzado Ceph gigante, el 7 º mayor liberación de Ceph.
la 7 de abril de 2015El equipo de desarrollo ha lanzado Ceph Hammer, el 8 º importante liberación de Ceph.
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.
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.
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.
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.
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.
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.
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.