Ceph (pronunciado / s ɛ f / ) es un software de fuente abierta (almacenamiento definido por software) de almacenamiento de plataforma , implementos objeto de almacenamiento [6] en un solo distribuido cluster de ordenadores , y proporciona 3-en-1 de interfaces para a objetos, almacenamiento a nivel de bloque y de archivo . Ceph apunta principalmente a una operación completamente distribuida sin un solo punto de falla , escalable al nivel de exabytes y disponible gratuitamente.
Autor (es) original (es) | Inktank Storage ( Sage Weil , Yehuda Sadeh Weinraub, Gregory Farnum, Josh Durgin, Samuel Just, Wido den Hollander) |
---|---|
Desarrollador (es) | Red Hat , Intel , CERN , Cisco , Fujitsu , SanDisk , Canonical y SUSE [1] |
Lanzamiento estable | 16.2.4 "Pacífico" [2] / 13 de mayo de 2021 |
Repositorio | |
Escrito en | C ++ , Python [3] |
Sistema operativo | Linux , FreeBSD [4] |
Tipo | Almacén de objetos distribuidos |
Licencia | LGPLv2.1 [5] |
Sitio web | ceph |
Ceph replica datos y los hace tolerantes a fallas , [7] utilizando hardware básico , Ethernet IP y no requiere soporte de hardware específico. El sistema de Ceph ofrece recuperación ante desastres y redundancia de datos a través de técnicas como replicación, codificación de borrado, instantáneas y clonación de almacenamiento. Como resultado de su diseño, el sistema es tanto autorreparable como autogestionable , con el objetivo de minimizar el tiempo de administración y otros costos.
De esta forma, los administradores tienen un sistema único y consolidado que evita los silos y recopila el almacenamiento dentro de un marco de gestión común. Ceph consolida varios casos de uso de almacenamiento y mejora la utilización de recursos. También permite que una organización implemente servidores donde sea necesario.
Diseño
Ceph emplea cinco tipos distintos de demonios : [8]
- Monitores de clúster ( ceph-mon ) que realizan un seguimiento de los nodos del clúster activos y fallidos, la configuración del clúster y la información sobre la ubicación de los datos y el estado global del clúster.
- Dispositivos de almacenamiento de objetos ( ceph-osd ) que usan un almacenamiento en disco con registro diario (llamado BlueStore, [9] que desde la versión v12.x reemplaza al FileStore [10] que usaría un sistema de archivos)
- Servidores de metadatos ( ceph-mds ) que almacenan en caché y facilitan el acceso a inodos y directorios dentro de un sistema de archivos CephFS.
- Puertas de enlace HTTP ( ceph-rgw ) que exponen la capa de almacenamiento de objetos como una interfaz compatible con las API de Amazon S3 o OpenStack Swift
- Gerentes ( ceph-mgr ) que realizan tareas de monitoreo, contabilidad y mantenimiento de clústeres, e interactúan con sistemas de monitoreo y administración externos (por ejemplo, balanceador, tablero, Prometheus , complemento Zabbix) [11]
Todos estos están completamente distribuidos y pueden ejecutarse en el mismo conjunto de servidores. Los clientes con diferentes necesidades pueden interactuar directamente con diferentes subconjuntos de ellos. [12]
Ceph divide los archivos individuales en varios nodos para lograr un mayor rendimiento, similar a cómo RAID0 divide las 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. [ cita requerida ] A septiembre de 2017[actualizar], BlueStore es el tipo de almacenamiento predeterminado y recomendado para entornos de producción, [13] que es la propia implementación de almacenamiento de Ceph que proporciona una mejor latencia y capacidad de configuración que el backend del almacén de archivos, y evita las deficiencias del almacenamiento basado en sistemas de archivos que implican capas adicionales de procesamiento y almacenamiento en caché. El backend del almacén de archivos todavía se considera útil y muy estable; XFS solía ser el tipo de sistema de archivos subyacente recomendado para entornos de producción, mientras que Btrfs se recomendaba para entornos de no producción. Los sistemas de archivos ext4 no se recomendaron debido a las limitaciones resultantes en la longitud máxima de los objetos RADOS. [14] Incluso usando BlueStore, XFS se usa para una pequeña partición de metadatos. [15]
Almacenamiento de objetos S3
Ceph implementa el almacenamiento distribuido de objetos : BlueStore. La puerta de enlace RADOS (ceph-rgw) expone la capa de almacenamiento de objetos como una interfaz compatible con Amazon S3.
A menudo, estos son discos capacitivos que están asociados con el almacenamiento de objetos S3 de Ceph para casos de uso: Big Data (datalake), Backup & Archives, IOT, medios, grabación de video, etc.
Las bibliotecas de software de Ceph brindan a las aplicaciones cliente acceso directo al confiable sistema autónomo de almacenamiento de objetos distribuidos (RADOS) basado en objetos, y también proporcionan una base para algunas de las características de Ceph, incluido el dispositivo de bloque RADOS (RBD), RADOS Gateway y Ceph. Sistema de archivos . De esta forma, los administradores pueden mantener sus dispositivos de almacenamiento como un sistema unificado, lo que facilita la replicación y protección de los datos.
Las bibliotecas de software "librados" proporcionan acceso en C , C ++ , Java , PHP y Python . La puerta de enlace RADOS también expone el almacén de objetos como una interfaz RESTful que puede presentarse como API nativas de Amazon S3 y OpenStack Swift .
Almacenamiento en bloque
El sistema de almacenamiento de objetos de Ceph permite a los usuarios montar Ceph como un dispositivo de bloque de aprovisionamiento fino . Cuando una aplicación escribe datos en Ceph mediante un dispositivo de bloque, Ceph divide y replica automáticamente los datos en todo el clúster. El dispositivo de bloque RADOS (RBD) de Ceph también se integra con máquinas virtuales basadas en kernel (KVM).
Estos suelen ser discos rápidos (NVMe, SSD) que están asociados con el almacenamiento en bloque de Ceph para casos de uso, incluidas bases de datos, máquinas virtuales, análisis de datos, inteligencia artificial y aprendizaje automático.
Ceph-RBD interactúa con el mismo sistema de almacenamiento de objetos Ceph que proporciona la interfaz librados y el sistema de archivos CephFS, y almacena imágenes de dispositivos de bloques como objetos. Dado que RBD se basa en librados, RBD hereda las habilidades de librados, incluidas instantáneas de solo lectura y volver a instantáneas. Al dividir las imágenes en todo el clúster, Ceph mejora el rendimiento del acceso de lectura para imágenes de dispositivos de bloques grandes.
Ceph-iSCSI es una puerta de enlace que permite el acceso a almacenamiento en bloque distribuido y de alta disponibilidad desde cualquier servidor o cliente de microsoft windows y 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 de Ceph RBD están disponibles como unidades lógicas (LU) asociadas con destinos iSCSI, a las que se puede acceder de manera opcional con equilibrio de carga y alta disponibilidad.
Dado que toda la configuración de ceph-iscsi se almacena en el almacén de objetos de Ceph RADOS, los hosts de puerta de enlace de ceph-iscsi no tienen un estado persistente de forma inherente y, por lo tanto, se pueden reemplazar, aumentar o reducir a voluntad. Como resultado, Ceph Storage permite a los clientes ejecutar una tecnología de almacenamiento empresarial verdaderamente distribuida, altamente disponible, resistente y autorreparable en hardware básico y una plataforma de código completamente abierto.
El dispositivo de bloque se puede virtualizar, proporcionando almacenamiento en bloque a las máquinas virtuales, en plataformas de virtualización como OpenStack , Kubernetes , OpenNebula , Ganeti , Apache CloudStack y Proxmox Virtual Environment .
Almacenamiento del sistema de archivos
El sistema de archivos de Ceph (CephFS) se ejecuta sobre el mismo sistema de almacenamiento de objetos que proporciona almacenamiento de objetos e interfaces de dispositivos de bloques. El clúster de servidores de metadatos de Ceph proporciona un servicio que asigna los directorios y los nombres de archivo del sistema de archivos a los objetos almacenados dentro de los clústeres RADOS. El clúster del servidor de metadatos puede expandirse o contraerse, y puede reequilibrar el sistema de archivos de forma dinámica para distribuir los datos de manera uniforme entre los hosts del clúster. Esto asegura un alto rendimiento y evita cargas pesadas en hosts específicos dentro del clúster.
Los clientes montan el sistema de archivos compatible con POSIX mediante un cliente del kernel de Linux . También está disponible un cliente antiguo basado en FUSE . Los servidores se ejecutan como demonios normales de Unix .
El almacenamiento de archivos de Ceph a menudo se asocia con casos de uso: recopilación de registros, mensajería, almacenamiento de archivos ...
Historia
Ceph fue inicialmente creado por Sage Weil por su tesis doctoral , [16] que fue asesorado por el profesor Scott A. Brandt en el Jack Escuela Baskin de Ingeniería , Universidad de California, Santa Cruz (UCSC), y patrocinado por la Simulación Avanzada y Computación programa (ASC), incluyendo el Laboratorio Nacional de Los Álamos (LANL), los Laboratorios nacionales Sandia (SNL), y el Laboratorio Nacional Lawrence Livermore (LLNL). [17] La primera línea de código que terminó siendo parte de Ceph fue escrita por Sage Weil en 2004 mientras realizaba una pasantía de verano en LLNL, trabajando en la gestión de metadatos de sistemas de archivos escalables (conocidos hoy como MDS de Ceph). [18] En 2005, como parte de un proyecto de verano iniciado por Scott A. Brandt y dirigido por Carlos Maltzahn, Sage Weil creó un prototipo de sistema de archivos completamente funcional que adoptó el nombre Ceph. Ceph hizo su debut con Sage Weil dando dos presentaciones en noviembre de 2006, una en USENIX OSDI 2006 [19] y otra en SC '06. [20]
Después de su graduación en el otoño de 2007, Weil continuó trabajando en Ceph a tiempo completo, y el equipo de desarrollo central se expandió para incluir a Yehuda Sadeh Weinraub y Gregory Farnum. El 19 de marzo de 2010, Linus Torvalds fusionó el cliente Ceph en la versión 2.6.34 del kernel de Linux [21] [22] que fue lanzada el 16 de mayo de 2010. En 2012, Weil creó Inktank Storage para servicios profesionales y soporte para Ceph. [23] [24]
En abril de 2014, Red Hat compró Inktank, incorporando la mayor parte del desarrollo de Ceph internamente para convertirlo en una versión de producción para empresas con soporte (línea directa) y mantenimiento continuo (nuevas versiones). [25]
En octubre de 2015, se formó la Junta Asesora de la Comunidad de Ceph para ayudar a la comunidad a impulsar la dirección de la tecnología de almacenamiento definida por software de código abierto. La junta asesora de estatutos incluye miembros de la comunidad Ceph de organizaciones de TI globales que están comprometidas con el proyecto Ceph, incluidas personas de Red Hat , Intel , Canonical , CERN , Cisco , Fujitsu , SanDisk y SUSE . [26]
En noviembre de 2018, la Fundación Linux lanzó la Fundación Ceph como sucesora del Consejo Asesor Comunitario de Ceph. Los miembros fundadores de la Fundación Ceph fueron Amihan, Canonical , China Mobile , DigitalOcean , Intel , OVH , ProphetStor Data Services, Red Hat , SoftIron, SUSE , Western Digital , XSKY Data Technology y ZTE . [27]
En marzo de 2021, SUSE descontinuó su producto Enterprise Storage que incorpora Ceph en favor de Longhorn. [28] y el antiguo sitio web de Enterprise Storage se actualizó indicando que "SUSE ha reorientado los esfuerzos de almacenamiento para atender a nuestros clientes estratégicos de SUSE Enterprise Storage y ya no vende activamente SUSE Enterprise Storage". [29]
Historial de versiones
- Lanzamientos de ceph
Nombre | Lanzamiento | Primer lanzamiento | Fin de vida | Hitos |
---|---|---|---|---|
argonauta | 0,48 | 3 de julio de 2012 | Primera versión importante "estable" | |
Rabicorto | 0,56 | 1 de enero de 2013 | ||
Calamar | 0,61 | 7 de mayo de 2013 | ceph-deploy es estable | |
Bola de masa hervida | 0,67 | 14 de agosto de 2013 | Mayo de 2015 | espacio de nombres, región, API REST de supervisión |
Emperador | 0,72 | 9 de noviembre de 2013 | Mayo de 2014 | replicación de múltiples centros de datos para radosgw |
Luciérnaga | 0,80 | 7 de mayo de 2014 | Abril de 2016 | codificación de borrado, niveles de caché, afinidad primaria, backend de OSD clave / valor (experimental), radosgw independiente (experimental) |
Gigante | 0,87 | 29 de octubre de 2014 | Abril de 2015 | |
Martillo | 0,94 | 7 de abril de 2015 | Agosto de 2017 | |
Infernalis | 9.2.0 | 6 de noviembre de 2015 | Abril de 2016 | |
Joya | 10.2.0 | 21 de abril de 2016 | 2018-06-01 | CephFS estable, backend RADOS experimental llamado BlueStore |
Kraken | 11.2.0 | 20 de enero de 2017 | 2017-08-01 | BlueStore es estable |
Luminoso | 12.2.0 | 29 de agosto de 2017 | 2020-03-01 | |
Imitar | 13.2.0 | 1 de junio de 2018 | 2020-07-22 | las instantáneas son estables, Beast es estable |
Nautilo | 14.2.0 | 19 de marzo de 2019 | 2021-06-01 | |
Pulpo | 15.2.0 | 23 de marzo de 2020 | 2022-06-01 | |
Pacífico | 16.2.0 | 31 de marzo de 2021 [30] | 2023-06-01 |
Etimología
El nombre "Ceph" es una abreviatura de " cefalópodo ", una clase de moluscos que incluye al pulpo. El nombre (enfatizado por el logo) sugiere el comportamiento altamente paralelo de un pulpo y fue elegido para asociar el sistema de archivos con "Sammy", la mascota de la babosa banana de UCSC . [8] Tanto los cefalópodos como las babosas del banano son moluscos.
Kubernetes
El proyecto ceph-helm permite la implementación de Ceph en un entorno de Kubernetes para ofrecer almacenamiento persistente.
Los contenedores de Kubernetes no tienen estado como principio básico, pero los datos aún deben administrarse, protegerse y hacerse accesibles a otros servicios. Sin estado significa que el contenedor se ejecuta de forma aislada sin ningún conocimiento de transacciones pasadas, lo que facilita reemplazar, eliminar o distribuir el contenedor. Sin embargo, también significa que sin almacenamiento persistente, los datos se perderán debido a ciertos eventos del ciclo de vida, como el reinicio o la eliminación.
Rook es una herramienta de organización de almacenamiento que proporciona una solución de código abierto nativa de la nube para un conjunto diverso de proveedores de almacenamiento. Rook utiliza el poder de Kubernetes para convertir un sistema de almacenamiento en servicios de autogestión que brindan una experiencia perfecta para guardar datos de implementación o aplicaciones de Kubernetes.
Ceph es una solución de almacenamiento distribuido altamente escalable que ofrece almacenamiento de objetos, bloques y archivos. Los clústeres de Ceph están diseñados para ejecutarse en cualquier hardware mediante el algoritmo CRUSH (replicación controlada bajo hash escalable) y ofrecen almacenamiento persistente para contenedores de Kubernetes.
Uno de los principales beneficios de esta implementación es que proporciona la solución de almacenamiento altamente escalable de Ceph sin requerir una configuración manual mediante la línea de comandos de Ceph, porque Rook la maneja automáticamente. Las aplicaciones de Kubernetes pueden montar dispositivos de bloque y sistemas de archivos de Rook para preservar y monitorear los datos de sus aplicaciones.
Ver también
- BeeGFS
- Sistema de archivos distribuido
- Sistemas de archivos distribuidos paralelos tolerantes a fallas
- Sistema de archivos Gfarm
- GlusterFS
- Sistema de archivos paralelo general de IBM (GPFS)
- Kubernetes
- LizardFS
- Lustre
- MapR FS
- Sistema de archivos Moose
- OrangeFS
- Sistema de archivos virtual paralelo
- Quantcast Sistema de archivos
- RozoFS
- Almacenamiento definido por software
- XtreemFS
- ZFS
- Comparación de sistemas de archivos distribuidos
Referencias
- ^ "Junta asesora de formularios de la comunidad de Ceph" . 2015-10-28. Archivado desde el original el 29 de enero de 2019 . Consultado el 20 de enero de 2016 .
- ^ "v16.2.4 Octopus lanzado" .
- ^ "Repositorio de GitHub" .
- ^ "Informe de estado trimestral de FreeBSD" .
- ^ "Archivo de licencia LGPL2.1 en las fuentes Ceph" . 2014-10-24 . Consultado el 24 de octubre de 2014 .
- ^ Nicolas, Philippe (15 de julio de 2016). "The History Boys: almacenamiento de objetos ... desde el principio" . El registro .
- ^ Jeremy Andrews (15 de noviembre de 2007). "Sistema de archivos de red distribuida Ceph" . KernelTrap . Archivado desde el original el 17 de noviembre de 2007 . Consultado el 15 de noviembre de 2007 .
- ^ a b c M. Tim Jones (4 de junio de 2010). "Ceph: un sistema de archivos distribuido a escala de petabytes de Linux" (PDF) . IBM . Consultado el 3 de diciembre de 2014 .
- ^ "BlueStore" . Ceph . Consultado el 29 de septiembre de 2017 .
- ^ "Migración de BlueStore" . Consultado el 12 de abril de 2020 .
- ^ "Ceph Manager Daemon - Documentación de Ceph" . docs.ceph.com . Consultado el 31 de enero de 2019 .[ enlace muerto permanente ]
- ^ Jake Edge (14 de noviembre de 2007). "El sistema de archivos Ceph" . LWN.net .
- ^ Sage Weil (29 de agosto de 2017). "v12.2.0 Luminous lanzado" . Blog de Ceph.
- ^ "Recomendaciones de disco duro y sistema de archivos" . ceph.com. Archivado desde el original el 14 de julio de 2017 . Consultado el 26 de junio de 2017 .
- ^ "Referencia de configuración de BlueStore" . Consultado el 12 de abril de 2020 .
- ^ Sage Weil (1 de diciembre de 2007). "Ceph: almacenamiento distribuido confiable, escalable y de alto rendimiento" (PDF) . Universidad de California, Santa Cruz .
- ^ Gary Grider (1 de mayo de 2004). "El historial y la estrategia de E / S escalables ASCI / DOD" (PDF) . Universidad de Minnesota . Consultado el 17 de julio de 2019 .
- ^ Gestión dinámica de metadatos para sistemas de archivos a escala de petabytes, SA Weil, KT Pollack, SA Brandt, EL Miller, Proc. SC'04, Pittsburgh, PA, noviembre de 2004
- ^ "Ceph: un sistema de archivos distribuido escalable y de alto rendimiento", SA Weil, SA Brandt, EL Miller, DDE Long, C Maltzahn, Proc. OSDI, Seattle, WA, noviembre de 2006
- ^ "CRUSH: ubicación controlada, escalable y descentralizada de datos replicados", SA Weil, SA Brandt, EL Miller, DDE Long, C Maltzahn, SC'06, Tampa, FL, noviembre de 2006
- ^ Sage Weil (19 de febrero de 2010). "Cliente fusionado para 2.6.34" . ceph.newdream.net.
- ^ Tim Stephens (20 de mayo de 2010). "La nueva versión del sistema operativo Linux incluye el sistema de archivos Ceph desarrollado en UCSC" . news.ucsc.edu.
- ^ Bryan Bogensberger (3 de mayo de 2012). "Y todo se junta" . Blog de Inktank. Archivado desde el original el 19 de julio de 2012 . Consultado el 10 de julio de 2012 .
- ^ Joseph F. Kovar (10 de julio de 2012). "Las 10 startups de almacenamiento más geniales de 2012 (hasta ahora)" . CRN . Consultado el 19 de julio de 2013 .
- ^ Red Hat Inc (30 de abril de 2014). "Red Hat adquirirá Inktank, proveedor de Ceph" . Red Hat . Consultado el 19 de agosto de 2014 .
- ^ "Junta Asesora de Formas Comunitarias Ceph" . 2015-10-28. Archivado desde el original el 29 de enero de 2019 . Consultado el 20 de enero de 2016 .
- ^ "La Fundación Linux lanza la Fundación Ceph para promover el almacenamiento de código abierto" . 2018-11-12.
- ^ "SUSE dice tschüss al producto de almacenamiento empresarial basado en Ceph: de ahora en adelante es Rancher's Longhorn" .
- ^ "Almacenamiento definido por software de SUSE Enterprise" .
- ^ https://ceph.io/releases/v16-2-0-pacific-released/
Otras lecturas
- M. Tim Jones (4 de mayo de 2010). "Ceph: un sistema de archivos distribuido de escala de petabytes de Linux" . developerWorks> Linux> Biblioteca técnica . Consultado el 6 de mayo de 2010 .
- Jeffrey B. Layton (20 de abril de 2010). "Ceph: la criatura del sistema de archivos distribuido de la laguna de objetos" . Revista Linux . Consultado el 24 de abril de 2010 .
- Carlos Maltzahn; Esteban Molina-Estolano; Amandeep Khurana; Alex J. Nelson; Scott A. Brandt; Sage Weil (agosto de 2010). "Ceph como alternativa escalable al sistema de archivos distribuido Hadoop" . ; entrada: . 35 (4) . Consultado el 9 de marzo de 2012 .
- Martin Loschwitz (24 de abril de 2012). "El almacén de objetos RADOS y el sistema de archivos Ceph" . Revista HPC ADMIN . Consultado el 25 de abril de 2012 .
enlaces externos
- Página web oficial
- Red Hat Ceph
- Laboratorio de investigación de sistemas UCSC
- Centro de investigación de sistemas de almacenamiento
- Rendimiento y optimización de Ceph, Ceph Day Frankfurt (2014) en Slideshare