Almacenamiento de varios nodos

En esta página, se describe el almacenamiento de varios nodos del sistema de dispositivo aislado de Google Distributed Cloud (GDC).

El dispositivo aislado de GDC consta de tres servidores y seis discos de memoria no volátil express (NVMe) conectados a cada uno de ellos:

  • 2 medios de arranque NVMe de 1 TB
  • 4 NVMe de 3.84 TB

Los dos discos NVMe de 1 TB en cada nodo están dedicados a las cargas de trabajo de arranque y del sistema, mientras que los otros cuatro discos NVMe de 3.84 TB se usan como parte del almacenamiento de datos confiable.

GDC usa Ceph como almacenamiento definido por software para almacenar de forma confiable los datos del sistema y del usuario. El clúster de Ceph se implementa a nivel de hardware en los tres servidores y usa un total de 12 unidades NVMe de 3.84 TB (cuatro por servidor) conectadas a estos servidores como almacenamiento subyacente.

Cada servidor contiene un monitor, un administrador, RGW, RBD y cuatro OSD.

Componentes de almacenamiento de Ceph

Monitor de Ceph

El monitor de Ceph mantiene los mapas de estado del clúster, incluidos el mapa del monitor, el mapa del administrador y el mapa del daemon de almacenamiento de objetos (OSD). Estos mapas representan un estado crítico del clúster que es necesario para que los servicios de Ceph se coordinen entre sí. Los supervisores también son responsables de administrar la autenticación entre los servicios y los clientes. Se requieren al menos tres monitores para garantizar la redundancia y la alta disponibilidad.

Administrador de Ceph

El administrador de Ceph es responsable de hacer un seguimiento de las métricas de tiempo de ejecución y del estado actual del clúster de Ceph, incluido el uso del almacenamiento, las métricas de rendimiento actuales y la carga del sistema. Normalmente, se requieren al menos dos administradores para la alta disponibilidad. El entorno de GDC ejecuta tantos administradores de Ceph como supervisores, por lo que se implementan tres administradores de Ceph en el clúster.

Daemon de almacenamiento de objetos (OSD) de Ceph

El daemon de almacenamiento de objetos (https://docs.ceph.com/en/quincy/glossary/#term-Ceph-OSD) almacena datos y controla la replicación, la recuperación y el reequilibrio de datos. El OSD proporciona información de supervisión a los supervisores y administradores de Ceph verificando otros OSD de Ceph para detectar un latido. Normalmente, se requieren al menos tres OSD de Ceph para la redundancia y la alta disponibilidad. El entorno de GDC asigna un OSD por unidad física.

Dispositivos de bloques de RADOS de Ceph (RBD)

Los dispositivos de bloque de Ceph se aprovisionan de forma delgada y se pueden cambiar de tamaño. Almacenan datos distribuidos en varios OSD. Los dispositivos de bloque de Ceph aprovechan las capacidades principales de Ceph, como la creación de instantáneas, la replicación y la coherencia sólida. En el entorno de GDC, Ceph RBD no se expone directamente. Sin embargo, lo usa el controlador de CSI de Ceph de almacenamiento en bloque, que es responsable de admitir el almacenamiento de Kubernetes orientado al usuario (https://kubernetes.io/docs/concepts/storage/).

RGW de Ceph

Ceph Rados Gateway es una interfaz de almacenamiento de objetos que proporciona a las aplicaciones una puerta de enlace RESTful a los clústeres de almacenamiento de Ceph (https://docs.ceph.com/en/quincy/glossary/#term-Ceph-Object-Storage).

  • Compatible con S3: Proporciona funcionalidad de almacenamiento de objetos con una interfaz compatible con un gran subconjunto de la API de RESTful de Amazon S3.
  • Compatible con Swift: Proporciona funcionalidad de almacenamiento de objetos con una interfaz compatible con un gran subconjunto de la API de OpenStack Swift.

En el entorno de GDC, solo los extremos de S3 se exponen con el servicio de malla de servicios de Kubernetes.

Resistencia del almacenamiento de GDC

Los componentes de almacenamiento de objetos y bloques de Ceph están configurados para usar un factor de replicación de datos de 3. Debe haber un mínimo de dos réplicas disponibles para seguir publicando entrada y salida (E/S). Se usa el dominio de falla a nivel del nodo, lo que significa que Ceph intenta replicar los datos tres veces (3x) en tres servidores diferentes.

A continuación, se incluyen algunos ejemplos de cómo puedes controlar una falla:

  • La falla de un solo nodo no causa pérdida de datos ni afecta las operaciones de almacenamiento de las cargas de trabajo.
  • La falla de dos discos en nodos diferentes no causa pérdida de datos. Sin embargo, podría afectar la disponibilidad de almacenamiento para las cargas de trabajo que tienen dos de tres réplicas de datos en estos discos.
  • Si fallan más de un nodo o más de dos discos en nodos diferentes, es posible que se pierdan datos y es posible que se vea afectada la disponibilidad del almacenamiento para las cargas de trabajo.

Capacidad de almacenamiento de GDC

La capacidad de espacio en disco sin procesar disponible es igual a lo siguiente:

raw_capacity = 3.84TB * 4 (disks_per_node) * 3 (nodes) = 46.08TB

Sin embargo, dado que los datos almacenados en un clúster de Ceph se replican tres veces, la capacidad de almacenamiento útil disponible para todas las cargas de trabajo es la siguiente:

available_capacity = raw_capacity / 3 (replicas) = 15.36TB

Se comparten 15.36 TB entre las cargas de trabajo del sistema y del usuario para el almacenamiento de bloques y objetos.