¿Qué es Ceph?

Abril 3, 2024

Ceph es un De código abierto Plataforma de software que proporciona almacenamiento altamente escalable basado en objetos, bloques y archivos bajo un sistema unificado. Está construido para funcionar hardware básico, que ofrece una solución de almacenamiento altamente confiable y fácil de escalar para operaciones de datos de gran tamaño. El sistema está diseñado para ser autorreparable y autogestionado, con el objetivo de minimizar el tiempo de administración y otros costos.

Historia de Ceph

Ceph fue desarrollado por Sage Weil como parte de su tesis doctoral en informática en la Universidad de California, Santa Cruz (UCSC). El proyecto comenzó en 2004 bajo la dirección del profesor Scott Brandt como parte del Centro de Investigación de Sistemas de Almacenamiento de la UCSC.

El objetivo principal detrás de Ceph era diseñar un sistema de almacenamiento distribuido que pudiera escalar al nivel de exabytes y más, manteniendo un alto rendimiento y confiabilidad. Sage Weil y su equipo buscaron abordar las limitaciones de las soluciones de almacenamiento existentes, que a menudo tenían problemas de escalabilidad, eran propensas a tener cuellos de botella o requerían hardware propietario costoso.

A continuación se muestran algunos hitos clave en el desarrollo y evolución de Ceph:

  • 2006. El prototipo inicial de Ceph se lanzó públicamente y muestra su enfoque innovador para el almacenamiento distribuido, incluido el uso del Reliable Autonomic Distributed Object Store (RADOS) para lograr una alta escalabilidad y disponibilidad.
  • 2007. Ceph se lanzó bajo LGPL 2.1 (Licencia pública general reducida), invitando a una comunidad más amplia de desarrolladores a contribuir a su desarrollo.
  • 2010. La primera versión estable de Ceph, denominada Argonaut, marcó un hito importante para el proyecto, demostrando su madurez y estabilidad para entornos de producción.
  • 2011. Inktank Storage fue fundada por Sage Weil para brindar soporte y servicios comerciales a Ceph, ayudando a acelerar su adopción en entornos empresariales.
  • 2014. Red Hat, Inc. adquirió Inktank Storage, invirtió aún más en el desarrollo de Ceph e integrólo en su conjunto de cloud y soluciones de almacenamiento. Esta adquisición fue fundamental para Ceph, ya que combinó los recursos y la experiencia de Red Hat con la tecnología innovadora de Ceph.
  • 2015 y más allá. Ceph continuó evolucionando, con lanzamientos periódicos que agregan nuevas funciones, mejoran el rendimiento y amplían sus capacidades. La comunidad en torno a Ceph ha crecido significativamente y los desarrolladores, usuarios y empresas han contribuido a su desarrollo e implementación en diversas industrias.

Arquitectura Ceph

La arquitectura de Ceph está diseñada para brindar escalabilidad, confiabilidad y rendimiento, aprovechando el poder de Computación distribuída para gestionar grandes cantidades de datos de manera eficiente. La arquitectura es fundamentalmente modular, lo que permite el escalamiento independiente de diferentes componentes según los requisitos de la carga de trabajo. A continuación se ofrece una descripción general de los componentes clave de la arquitectura de Ceph.

1. RADOS (Almacén de objetos distribuidos autónomos confiables)

RADOS es la base de la arquitectura Ceph y proporciona la capacidad de almacenamiento distribuido subyacente. Lo maneja almacenamiento de datos, replicacion de datosy recuperación. Los clusters RADOS se componen de dos tipos de demonios:

  • OSD (Object Storage demonios). Estos son responsables de almacenar datos, manejar la replicación, recuperación, reabastecimiento y reequilibrio de datos en todo el clúster. Cada demonio OSD da servicio a un disco de almacenamiento y se comunica con otros OSD para garantizar que los datos se repliquen y distribuyan consistentemente en todo el clúster.
  • MON (monitores). Los monitores mantienen una copia maestra del mapa del clúster, un registro detallado del estado del clúster, incluidos los OSD, su estado y otros datos críticos. metadatos. Los monitores garantizan que el clúster logre un consenso sobre el estado del sistema utilizando Paxos. algoritmo, proporcionando una vista confiable y consistente del clúster a todos los clientes y OSD.

2. Algoritmo de aplastamiento

Ceph utiliza el algoritmo CRUSH (Replicación controlada bajo hash escalable) para almacenar y recuperar datos de manera eficiente. CRUSH es un enfoque innovador que permite a Ceph calcular dónde se deben almacenar (o recuperar) los datos en el clúster sin necesidad de una tabla de búsqueda central. Este proceso permite a Ceph escalar horizontalmente sin cuellos de botella ni puntos únicos de falla.

3. Interfaces de almacenamiento Ceph

Ceph proporciona múltiples interfaces de almacenamiento para interactuar con la capa RADOS subyacente, atendiendo a diferentes necesidades de almacenamiento:

  • RBD (Dispositivo de bloque RADOS). Esta interfaz proporciona almacenamiento en bloques, lo que permite utilizar Ceph como una solución de almacenamiento en bloques distribuida y escalable para maquinas virtuales y bases de datos.
  • CephFS (sistema de archivos Ceph). Un compatible con POSIX del sistema de archivos que utiliza Ceph para el almacenamiento, proporcionando una interfaz de almacenamiento de archivos para el clúster de Ceph. Ofrece funciones como instantáneas y cuotas.
  • RGW (RADOS Puerta de enlace). Esto proporciona object storage capacidades, ofreciendo una interfaz compatible con las API S3 y Swift. Se usa comúnmente para escala web. object storage necesariamente.

4. Demonio Ceph Manager (ceph-mgr)

El demonio Ceph Manager es responsable del seguimiento tiempo de ejecución métricas y el estado actual del clúster. Proporciona capacidades esenciales de gestión y supervisión, lo que garantiza que los administradores tengan información en tiempo real sobre el estado y el rendimiento del clúster.

¿Cómo funciona Ceph?

Aquí hay una explicación paso a paso de cómo opera Ceph:

1. Distribución de datos

En Ceph, todos los datos se almacenan como objetos dentro de un espacio de nombres plano. Cuando se guarda un archivo en el clúster de Ceph, se divide en bloques de tamaño fijo, que luego se envuelven en objetos. Estos objetos son la unidad básica de almacenamiento en Ceph y contienen el bloque de datos, metadatos y un identificador único.

Ceph utiliza el algoritmo CRUSH para determinar cómo almacenar y recuperar estos objetos en el clúster. CRUSH utiliza el identificador único de cada objeto para calcular qué OSD deben almacenar las réplicas del objeto. Este proceso permite a Ceph gestionar la ubicación de los datos en el clúster de forma dinámica y eficiente sin depender de un directorio centralizado o un nodo maestro.

2. Replicación de datos

Para garantizar la durabilidad de los datos y alta disponibilidad, Ceph replica cada objeto varias veces en diferentes OSD. El número de réplicas es configurable (normalmente tres) para equilibrar entre redundancia y eficiencia de almacenamiento.

Ceph también garantiza una gran consistencia. Cuando se escriben o modifican datos, los cambios se replican en todas las copias antes de que el cliente reconozca la escritura. Esto garantiza que todos los clientes vean los mismos datos, independientemente de a qué réplica accedan.

3. Tolerancia a fallos y autorreparación

Los Ceph Monitors (MON) supervisan el estado del clúster, incluido el estado de los OSD y su distribución en todo el clúster. Los MON utilizan el algoritmo de consenso de Paxos para acordar el estado actual del clúster, lo que garantiza vistas coherentes entre los nodos.

Cuando falla un OSD, Ceph redistribuye automáticamente sus datos a otros OSD, manteniendo el nivel deseado de replicación. Este proceso se conoce como autorreparación y ayuda a garantizar que el sistema permanezca disponible y duradero frente a hardware fallas

4. Acceso a los datos

Ceph proporciona varias interfaces para el acceso a datos, cada una de las cuales satisface diferentes necesidades de almacenamiento:

  • Dispositivo de bloqueo RADOS (RBD) para almacenamiento en bloques, lo que permite que las máquinas virtuales y las bases de datos almacenen datos en Ceph como si fuera un dispositivo de bloques local.
  • Sistema de archivos Ceph (CephFS) para el almacenamiento de archivos, proporcionando un sistema de archivos compatible con POSIX para almacenar y administrar archivos en una estructura jerárquica.
  • Puerta de enlace RADOS (RGW) para object storage, que ofrece API compatibles con S3 y Swift para almacenar y acceder a datos como objetos.

Los clientes de Ceph interactúan con el clúster de almacenamiento a través de estas interfaces. Utilizan librados, una biblioteca que implementa el protocolo de comunicación con Ceph OSD, para acceder a los datos almacenados en el clúster.

5. Escala

La arquitectura de Ceph le permite escalar a miles de nodos y de petabytes a exabytes de datos. Agregar más capacidad de almacenamiento o rendimiento es tan simple como agregar más nodos al clúster. El algoritmo CRUSH permite a Ceph gestionar esta escalabilidad de manera eficiente, distribuyendo los datos de manera uniforme en todo el clúster sin ningún cuello de botella central.


Anastasia
Spasojevic
Anastazija es una escritora de contenido experimentada con conocimiento y pasión por cloud informática, tecnología de la información y seguridad en línea. En phoenixNAP, se centra en responder preguntas candentes sobre cómo garantizar la solidez y seguridad de los datos para todos los participantes en el panorama digital.