Ir al contenido
documentation.suse.com / Guía de distribución
SUSE Enterprise Storage 7

Guía de distribución

Autores: Tomáš Bažant, Alexandra Settle, y Liam Proven
Fecha de publicación: 11 Dic 2023

Copyright © 2020–2023 SUSE LLC y colaboradores. Reservados todos los derechos.

Salvo que se indique lo contrario, este documento está sujeto a la licencia Creative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA 4.0): https://creativecommons.org/licenses/by-sa/4.0/legalcode.

Para obtener información sobre las marcas comerciales de SUSE, consulte http://www.suse.com/company/legal/. Todas las marcas comerciales de otros fabricantes son propiedad de sus propietarios respectivos. Los símbolos de marca comercial (®,™ etc.) indican marcas comerciales de SUSE y sus afiliados. Los asteriscos (*) indican marcas comerciales de otros fabricantes.

Toda la información recogida en esta publicación se ha compilado prestando toda la atención posible al más mínimo detalle. Sin embargo, esto no garantiza una precisión total. Ni SUSE LLC, ni sus filiales, ni los autores o traductores serán responsables de los posibles errores o las consecuencias que de ellos pudieran derivarse.

Acerca de esta guía

Esta guía se centra en la distribución de un clúster de Ceph básico y en cómo distribuir servicios adicionales. También se describen los pasos necesarios para actualizar a SUSE Enterprise Storage 7 desde la versión anterior del producto.

SUSE Enterprise Storage 7 es una extensión para SUSE Linux Enterprise Server 15 SP2. Combina las funciones del proyecto de almacenamiento Ceph (http://ceph.com/) con la ingeniería empresarial y la asistencia de SUSE. SUSE Enterprise Storage 7 proporciona a las organizaciones de TI la capacidad de distribuir una arquitectura de almacenamiento distribuida que admite varios casos de uso mediante plataformas de hardware básicas.

1 Documentación disponible

Nota
Nota: documentación en línea y actualizaciones más recientes

La documentación de nuestros productos está disponible en https://documentation.suse.com, donde también encontrará las actualizaciones más recientes y podrá explorar o descargar la documentación en diferentes formatos. Las últimas actualizaciones de la documentación se pueden encontrar en la versión en inglés.

Además, la documentación del producto también estará disponible en el sistema instalado, en la vía /usr/share/doc/manual. Se incluye en un paquete de RPM denominado ses-manual_CÓDIGO_DE_IDIOMA. Instálelo si aún no está en el sistema, por ejemplo:

root # zypper install ses-manual_en

La documentación disponible para este producto es la siguiente:

Guía de distribución

Esta guía se centra en la distribución de un clúster de Ceph básico y en cómo distribuir servicios adicionales. También se describen los pasos necesarios para actualizar a SUSE Enterprise Storage 7 desde la versión anterior del producto.

Guía de administración y operaciones

Esta guía se centra en las tareas rutinarias de las que usted, como administrador, debe ocuparse después de que se haya distribuido el clúster de Ceph básico (operaciones del día 2). También describe todas las formas admitidas para acceder a los datos almacenados en un clúster de Ceph.

Guía de protección de la seguridad

Esta guía se centra en cómo garantizar la seguridad del clúster.

Guía de resolución de problemas

Esta guía describe varios problemas comunes al ejecutar SUSE Enterprise Storage 7 y otros problemas relacionados con los componentes relevantes, como Ceph u Object Gateway.

Guía de SUSE Enterprise Storage para Windows

Esta guía describe la integración, instalación y configuración de entornos Microsoft Windows y SUSE Enterprise Storage mediante el controlador de Windows.

2 Proporcionar comentarios

Agradecemos sus comentarios y contribuciones sobre esta documentación. Existen varios canales para enviarlos:

Peticiones de servicio y asistencia técnica

Para obtener más información sobre los servicios y las opciones de asistencia técnica disponibles para el producto, consulte http://www.suse.com/support/.

Para abrir una petición de servicio, necesita una suscripción de SUSE registrada en el Centro de servicios al cliente de SUSE. Diríjase a https://scc.suse.com/support/requests, entre a la sesión y haga clic en Create New (Crear nueva).

Informes de errores

Puede informar sobre errores de la documentación en https://bugzilla.suse.com/. Para informar sobre errores, se requiere una cuenta de Bugzilla.

Para simplificar el proceso, puede utilizar los enlaces Report Documentation Bug (Informar sobre errores de la documentación) que aparecen junto a los titulares de la versión HTML de este documento. De esta forma, se preseleccionan el producto y la categoría correctos en Bugzilla y se añade un enlace a la sección actual. Así, podrá empezar a escribir directamente el informe.

Contribuciones

Para contribuir a esta documentación, utilice los enlaces Edit Source (Editar origen) situados junto a los titulares de la versión HTML de este documento. Llevan al código fuente de GitHub, donde puede abrir una petición de extracción. Para contribuir, se requiere una cuenta de GitHub.

Para obtener más información sobre el entorno utilizado en esta documentación, consulte el archivo README (Léame) en https://github.com/SUSE/doc-ses.

Correo

También puede informar sobre errores y enviar comentarios sobre la documentación a <>. Por favor, incluya el título del documento, la versión del producto y la fecha de publicación de la documentación. También puede incluir el número de sección y título correspondientes (o proporcionar la URL), así como una descripción concisa del problema.

3 Convenciones de la documentación

En este documento se utilizan los siguientes avisos y convenciones tipográficas:

  • /etc/passwd: nombres de directorio y nombres de archivos.

  • ESPACIO RESERVADO: sustituya ESPACIO RESERVADO con el valor real.

  • VÍA: una variable de entorno.

  • ls, ‑‑help: comandos, opciones y parámetros.

  • usuario: el nombre del usuario o grupo.

  • nombre_de_paquete: el nombre de un paquete de software.

  • Alt, AltF1: tecla o combinación de teclas que pulsar. Las teclas se muestran en mayúsculas como en un teclado.

  • Archivo, Archivo › Guardar como: elementos de menú, botones.

  • AMD/Intel Este párrafo solo es relevante para la arquitectura Intel 64/AMD64. Las flechas marcan el principio y el final del bloque de texto.

    IBM Z, POWER Este párrafo solo es relevante para las arquitecturas IBM Z y POWER. Las flechas marcan el principio y el final del bloque de texto.

  • Capítulo 1, capítulo de ejemplo: referencia cruzada a otro capítulo de esta guía.

  • Comandos que se deben ejecutar con privilegios de usuario root. A menudo, también es posible añadir estos comandos como prefijos con el comando sudo para que un usuario sin privilegios los puedan ejecutar.

    root # command
    tux > sudo command
  • Comandos que pueden ejecutar los usuarios sin privilegios.

    tux > command
  • Notificaciones

    Aviso
    Aviso: aviso de advertencia

    Información vital que debe tener en cuenta antes de continuar. Advierte acerca de problemas de seguridad, pérdida de datos potenciales, daños del hardware o peligros físicos.

    Importante
    Importante: aviso importante

    Información importante que debe tener en cuenta antes de continuar.

    Nota
    Nota: aviso de nota

    Información adicional, por ejemplo sobre las diferencias en las versiones de software.

    Sugerencia
    Sugerencia: aviso de sugerencia

    Información útil, como una directriz o un consejo práctico.

  • Avisos compactos

    Nota

    Información adicional, por ejemplo sobre las diferencias en las versiones de software.

    Sugerencia

    Información útil, como una directriz o un consejo práctico.

4 Ciclo de vida y asistencia del producto

Los distintos productos de SUSE tienen distintos ciclos de vida. Para comprobar las fechas exactas del ciclo de vida de SUSE Enterprise Storage, consulte https://www.suse.com/lifecycle/.

4.1 Definiciones de asistencia técnica de SUSE

Para obtener información sobre nuestra directiva de asistencia técnica y las opciones disponibles, consulte https://www.suse.com/support/policy.html y https://www.suse.com/support/programs/long-term-service-pack-support.html.

4.2 Declaración de asistencia técnica para SUSE Enterprise Storage

Para recibir asistencia técnica, necesita disponer de una suscripción adecuada de SUSE. Para ver las ofertas de asistencia técnica específicas que tiene a su disposición, diríjase a https://www.suse.com/support/ y seleccione su producto.

Los niveles de asistencia se definen así:

L1

Determinación de problemas; lo que significa que se ofrece asistencia técnica diseñada para proporcionar información de compatibilidad, asistencia sobre el uso, mantenimiento continuo, recopilación de información y resolución de problemas básicos con la documentación disponible.

L2

Aislamiento de problemas; lo que significa que se ofrece asistencia técnica diseñada para analizar datos, reproducir los problemas del cliente, aislar el área del problema y proporcionar una resolución a los problemas que no se pueden resolver en el nivel 1 (L1) ni preparar para el nivel 3 (L3).

L3

Resolución de problemas; lo que significa que se ofrece asistencia técnica diseñada para resolver los problemas mediante ingeniería y resolver los defectos que se han identificado en la asistencia de nivel 2 (L2).

En el caso de los clientes y socios con contrato, SUSE Enterprise Storage se suministra con asistencia L3 para todos los paquetes, excepto en los siguientes casos:

  • Tecnología en fase preliminar.

  • Sonido, gráficos, fuentes y material gráfico.

  • Paquetes que precisan de un contrato de clientes adicional.

  • Algunos paquetes incluidos como parte del módulo de extensión de estación de trabajo solo admiten asistencia L2.

  • Los paquetes con nombres que terminan en -devel (que contienen archivos de encabezado y recursos similares para desarrolladores) solo incluyen asistencia si van acompañados de sus paquetes principales.

SUSE solo admite el uso de paquetes originales. Es decir, paquetes que no hayan sido modificados ni recompilados.

4.3 Tecnología en fase preliminar

Se considera como "tecnología en fase preliminar" cualquier paquete, pila o función proporcionada por SUSE para ofrecer un adelanto de las próximas innovaciones. Estos elementos se incluyen para ofrecer la oportunidad de probar nuevas tecnologías en su entorno. Le agradeceremos mucho sus comentarios. Si se dispone a probar una tecnología en fase preliminar, póngase en contacto con su representante de SUSE e infórmele de su experiencia y sus casos de uso. Sus comentarios nos resultarán útiles para desarrollar el producto.

Las tecnologías en fase preliminar tienen las limitaciones siguientes:

  • Están aún en proceso de desarrollo. En consecuencia, sus funciones pueden estar incompletas, ser inestables o no ser adecuadas de alguna otra forma para su uso en producción.

  • No se ofrece asistencia técnica para ellas.

  • Es posible que solo estén disponibles para arquitecturas de hardware específicas.

  • Sus detalles y funciones están sujetos a cambios. Como resultado, quizás no sea posible actualizar estas tecnologías en las versiones posteriores o que sea necesario realizar una instalación nueva.

  • Las tecnologías en fase preliminar se pueden eliminar de un producto en cualquier momento. SUSE no se compromete a facilitar una versión con asistencia técnica de dichas tecnologías en el futuro. Esto puede suceder, por ejemplo, si SUSE descubre que la tecnología en fase preliminar no cumple las necesidades del cliente o del mercado, o que no cumple con los estándares empresariales.

Para ver una descripción general de las tecnologías en fase preliminar incluidas con el producto, consulte la notas de la versión en https://www.suse.com/releasenotes/x86_64/SUSE-Enterprise-Storage/7.

5 Colaboradores de Ceph

El proyecto Ceph y su documentación son el resultado del trabajo de cientos de colaboradores y organizaciones. Consulte https://ceph.com/contributors/ para obtener más información.

6 Comandos e indicadores de comandos utilizados en esta guía

Como administrador de clústeres de Ceph, va a configurar y ajustar el comportamiento del clúster ejecutando comandos específicos. Necesitará varios tipos de comandos:

6.1 Comandos relacionados con Salt

Estos comandos ayudan a distribuir los nodos de clúster de Ceph, a ejecutar comandos en varios nodos de clúster al mismo tiempo (o en todos ellos) o a ayudarle a añadir o quitar nodos de clúster. Los comandos más utilizados son ceph-salt y ceph-salt config. Los comandos de Salt se deben ejecutar en el nodo master de Salt como usuario root. Estos comandos se introducen con el siguiente símbolo del sistema:

root@master # 

Por ejemplo:

root@master # ceph-salt config ls

6.2 Comandos relacionados con Ceph

Se trata de comandos de nivel inferior para configurar y ajustar todos los aspectos del clúster y sus pasarelas en la línea de comandos, por ejemplo ceph, cephadm, rbd o radosgw-admin.

Para ejecutar comandos relacionados con Ceph, debe tener acceso de lectura a una clave de Ceph. Los privilegios que tiene en el entorno Ceph se definen en las capacidades de la clave. Una opción es ejecutar comandos de Ceph como usuario root (o mediante sudo) y utilizar el anillo de claves sin restricciones por defecto "ceph.client.admin.key".

La opción más segura y recomendada es crear una clave individual más restrictiva para cada usuario administrador y colocarla en un directorio donde los usuarios puedan leerla, por ejemplo:

~/.ceph/ceph.client.USERNAME.keyring
Sugerencia
Sugerencia: vía a claves de Ceph

Para utilizar un usuario administrador y un anillo de claves personalizados, debe especificar el nombre de usuario y la vía a la clave cada vez que ejecute el comando ceph mediante las opciones -n client.NOMBRE_USUARIO y ‑‑keyring VÍA/A/ANILLO/DE/CLAVES.

Para evitarlo, incluya estas opciones en la variable CEPH_ARGS en los archivos ~/.bashrc de los usuarios individuales.

Aunque puede ejecutar comandos relacionados con Ceph en cualquier nodo de clúster, se recomienda hacerlo en el nodo de administración. Esta documentación utiliza al usuario cephuser para ejecutar los comandos, por lo tanto, se introducen con el siguiente símbolo del sistema:

cephuser@adm > 

Por ejemplo:

cephuser@adm > ceph auth list
Sugerencia
Sugerencia: comandos para nodos específicos

Si la documentación indica que ejecute un comando en un nodo de clúster con una función específica, el símbolo del sistema se encargará. Por ejemplo:

cephuser@mon > 

6.2.1 Ejecución de ceph-volume

A partir de SUSE Enterprise Storage 7, los servicios de Ceph se ejecutan en contenedores. Si necesita ejecutar ceph-volume en un nodo de OSD, debe anteponer el comando cephadm, por ejemplo:

cephuser@adm > cephadm ceph-volume simple scan

6.3 Comandos generales de Linux

Los comandos de Linux no relacionados con Ceph, como mount, cat o openssl se introducen con los símbolos del sistema cephuser@adm > o root #, dependiendo de los privilegios que requiera el comando relacionado.

6.4 Información adicional

Para obtener más información sobre la gestión de claves de Ceph, consulte el Book “Guía de administración y operaciones”, Chapter 30 “Autenticación con cephx”, Section 30.2 “Áreas clave de gestión”.

Parte I Presentación de SUSE Enterprise Storage (SES)

  • 1 SES y Ceph
  • SUSE Enterprise Storage es un sistema de almacenamiento distribuido basado en la tecnología Ceph diseñado para que tenga capacidad de ampliación, sea fiable y aporte alto rendimiento. Los clústeres de Ceph se pueden ejecutar en servidores básicos en una red común como Ethernet. Es posible ampliar fá…

  • 2 Requisitos y recomendaciones de hardware
  • Los requisitos de hardware de Ceph dependen en gran medida de la carga de trabajo de E/S. Se deben tener en cuenta los requisitos y recomendaciones de hardware siguientes como punto de partida para realizar una planificación detallada.

  • 3 Configuración de alta disponibilidad del nodo de administración
  • El nodo de administración es un nodo de clúster de Ceph donde se ejecuta el servicio master de Salt. Gestiona el resto de los nodos del clúster consultando y dando instrucciones a sus servicios de minion de Salt. Normalmente también incluye otros servicios; por ejemplo, la consola Grafana respaldada…

1 SES y Ceph

SUSE Enterprise Storage es un sistema de almacenamiento distribuido basado en la tecnología Ceph diseñado para que tenga capacidad de ampliación, sea fiable y aporte alto rendimiento. Los clústeres de Ceph se pueden ejecutar en servidores básicos en una red común como Ethernet. Es posible ampliar fácilmente el clúster hasta miles de servidores (a partir de ahora denominados nodos) y almacenar petabytes de información. A diferencia de los sistemas convencionales que cuentan con tablas de asignación para almacenar y recuperar datos, Ceph utiliza un algoritmo determinista para asignar el almacenamiento de datos y no tiene ninguna estructura de información centralizada. Ceph entiende que en los clústeres de almacenamiento la adición o eliminación de hardware es la norma, no la excepción. El clúster de Ceph automatiza las tareas de gestión, como la distribución, redistribución y réplica de datos; la detección de fallos y la recuperación. Ceph se autorrepara y se autoadministra, con lo que se consigue una reducción de las tareas administrativas y del presupuesto necesario.

Este capítulo proporciona una visión general de SUSE Enterprise Storage 7 y describe brevemente los componentes más importantes.

1.1 Características de Ceph

El entorno Ceph incluye las siguientes características:

Capacidad de ampliación

Ceph puede ampliarse a miles de nodos y gestionar petabytes de almacenamiento.

Hardware básico

Para ejecutar un clúster de Ceph no se requiere ningún hardware especial. Para obtener información, consulte el Capítulo 2, Requisitos y recomendaciones de hardware

Autoadministración

El clúster de Ceph se gestiona automáticamente. Cuando se añaden o se eliminan nodos, o cuando estos fallan, el clúster redistribuye los datos automáticamente. También es consciente de los discos sobrecargados.

Sin un punto único de error

Ningún nodo de un clúster almacena información importante por sí solo. El número de redundancias se puede configurar.

Software de código abierto

Ceph es una solución de software de código abierto e independiente de hardware o proveedores específicos.

1.2 Componentes principales de Ceph

Para aprovechar al máximo las ventajas de Ceph, es necesario comprender algunos de sus componentes y conceptos básicos. Esta sección presenta algunas partes de Ceph a las que se hace referencia con frecuencia en otros capítulos.

1.2.1 RADOS

El componente básico de Ceph se denomina RADOS (Reliable Autonomic Distributed Object Store, almacén de objetos distribuido autónomo fiable). Es el encargado de gestionar los datos almacenados en el clúster. Los datos de Ceph se almacenan normalmente como objetos. Cada objeto se compone de un identificador y datos.

RADOS proporciona los siguientes métodos de acceso para los objetos almacenados que abarcan muchos casos de uso:

Object Gateway

Object Gateway es una pasarela REST HTTP para el almacén de objetos RADOS. Permite el acceso directo a los objetos almacenados en el clúster de Ceph.

Dispositivo de bloques RADOS

Es posible acceder al dispositivo de bloques RADOS (RBD) igual que a cualquier otro dispositivo de bloques. Por ejemplo, se pueden usar en combinación con libvirt con fines de virtualización.

CephFS

El sistema de archivos de Ceph tiene conformidad con POSIX.

librados

librados es una biblioteca que se puede utilizar con varios lenguajes de programación a fin de crear una aplicación capaz de interactuar directamente con el clúster de almacenamiento.

librados se utiliza en Object Gateway y RBD, mientras que CephFS interactúa directamente con RADOS (Figura 1.1, “Interfaces con el almacén de objetos de Ceph”).

Interfaces con el almacén de objetos de Ceph
Figura 1.1: Interfaces con el almacén de objetos de Ceph

1.2.2 CRUSH

En el núcleo de un clúster de Ceph se encuentra el algoritmo CRUSH. CRUSH es el acrónimo de Controlled Replication Under Scalable Hashing (réplica controlada bajo hash escalable). Es una función que gestiona la asignación del almacenamiento y, en comparación con otros algoritmos, necesita pocos parámetros. Es decir, que solo necesita una pequeña cantidad de información para calcular la posición de almacenamiento de un objeto. Los parámetros son un mapa actual del clúster, incluido el estado de actividad, algunas reglas de colocación definidas por el administrador y el nombre del objeto que se va a almacenar o recuperar. Con esta información, todos los nodos del clúster de Ceph pueden calcular dónde está almacenado un objeto y sus réplicas. De esta forma, la escritura o lectura de los datos se realiza de forma muy eficaz. CRUSH intenta distribuir homogéneamente los datos por todos los nodos del clúster.

El mapa de CRUSH contiene todos los nodos de almacenamiento y las reglas de colocación definidas por el administrador para almacenar los objetos en el clúster. Define una estructura jerárquica que se suele corresponder con la estructura física del clúster. Por ejemplo, los discos que contienen los datos están en hosts, los hosts están en bastidores, los bastidores en filas y las filas en centros de datos. Esta estructura se puede utilizar para definir dominios de fallo. Ceph se asegura de que las réplicas se almacenan en diferentes ramas de un dominio de fallo concreto.

Si el dominio de fallo se define en el bastidor, las réplicas de los objetos se distribuyen en distintos bastidores. Esto puede mitigar las interrupciones causadas por un conmutador que falle en un bastidor. Si una unidad de distribución de alimentación da energía a una fila de bastidores, el dominio de fallo se puede definir en la fila. Cuando se produce un fallo en la unidad de distribución de alimentación, los datos replicados siguen disponibles en las demás filas.

1.2.3 Nodos y daemons de Ceph

En Ceph, los nodos son servidores que trabajan para el clúster. Pueden ejecutar distintos tipos de daemons. Se recomienda ejecutar solo un tipo de daemon en cada nodo, excepto los daemons de Ceph Manager, que se pueden colocar junto con los monitores Ceph Monitor. Cada clúster requiere al menos los daemons de Ceph Monitor, Ceph Manager y Ceph OSD:

Nodo de administración

El nodo de administración es un nodo de clúster de Ceph desde el que se ejecutan comandos para gestionar el clúster. El nodo de administración es un punto central del clúster de Ceph porque gestiona el resto de los nodos del clúster consultando y dando instrucciones a los servicios minion de Salt.

Ceph Monitor

Los nodos de Ceph Monitor (a menudo abreviado como MON) guardan información sobre el estado de la actividad del clúster: un mapa de todos los nodos y las reglas de distribución de los datos (consulte la Sección 1.2.2, “CRUSH”).

Si se producen fallos o conflictos, los nodos de Ceph Monitor del clúster deciden por mayoría qué información es la correcta. Para formar una mayoría cualificada, se recomienda tener un número impar de nodos de Ceph Monitor, y tres como mínimo.

Si se utiliza más de un sitio, los nodos de Ceph Monitor deben distribuirse en un número impar de sitios. El número de nodos de Ceph Monitor por sitio debe ser superior al 50 % de los nodos de Ceph Monitor que permanecen operativos si se produce un fallo en un sitio.

Ceph Manager

Ceph Manager recopila la información de estado de todo el clúster. El daemon de Ceph Manager se ejecuta junto con los daemons de Ceph Monitor. Proporciona supervisión adicional y sirve de interfaz entre los sistemas de supervisión y gestión externos. También incluye otros servicios. Por ejemplo, la interfaz de usuario Web de Ceph Dashboard se ejecuta en el mismo nodo que Ceph Manager.

Ceph Manager no requiere configuración adicional, aparte de asegurarse de que está en ejecución.

Ceph OSD

Un Ceph OSD es un daemon que gestiona dispositivos de almacenamiento de objetos, que son unidades de almacenamiento físicas o lógicas (discos duros o particiones). Los dispositivos de almacenamiento de objetos pueden ser discos físicos/particiones o volúmenes lógicos. El daemon se encarga también de la réplica de datos y del reequilibrio de la carga en caso de que se añadan o se eliminen nodos.

Los daemons Ceph OSD se comunican con los daemons de monitor y les proporcionan el estado de los demás daemons de OSD.

Para utilizar CephFS, Object Gateway, NFS Ganesha o iSCSI Gateway se necesitan nodos adicionales:

Servidor de metadatos (MDS)

Los metadatos de CephFS se almacenan en su propio repositorio RADOS (consulte la Sección 1.3.1, “Repositorios”). Los servidores de metadatos actúan como una capa de almacenamiento en caché inteligente para los metadatos y serializan el acceso cuando es necesario. Esto permite el acceso simultáneo desde muchos clientes sin sincronización explícita.

Object Gateway

Object Gateway es una pasarela REST HTTP para el almacén de objetos RADOS. Es compatible con OpenStack Swift y Amazon S3 y tiene su propia de gestión de usuarios.

NFS Ganesha

NFS Ganesha proporciona acceso NFS para Object Gateway o CephFS. Se ejecuta en el espacio del usuario, en lugar de en el espacio del kernel, e interactúa directamente con Object Gateway o CephFS.

iSCSI Gateway

iSCSI es un protocolo de red de almacenamiento que permite a los clientes enviar comandos SCSI a dispositivos de almacenamiento SCSI (destinos) en servidores remotos.

Samba Gateway

Samba Gateway proporciona un acceso Samba a los datos almacenados en CephFS.

1.3 Estructura de almacenamiento de Ceph

1.3.1 Repositorios

Los objetos que se almacenan en un clúster de Ceph se colocan en repositorios. Los repositorios representan particiones lógicas del clúster hacia el mundo exterior. Por cada repositorio, es posible definir un conjunto de reglas; por ejemplo, cuántas réplicas de cada objeto deben existir. La configuración estándar de los repositorios se denomina repositorio replicado.

Los repositorios suelen contener objetos, pero también pueden configurarse para actuar como si fueran un sistema RAID 5. En esta configuración, los objetos se almacenan en porciones junto con porciones de código adicionales. Las porciones de código contienen información redundante. El administrador puede definir el número de datos y de porciones de código. En esta configuración, los repositorios se denominan repositorios codificados de borrado o repositorios EC.

1.3.2 Grupos de colocación

Los grupos de colocación (PG) se utilizan para la distribución de datos dentro de un repositorio. Cuando se crea un repositorio, se define un número determinado de grupos de colocación. Los grupos de colocación se utilizan de modo interno para agrupar objetos y son un factor importante para el rendimiento de un clúster de Ceph. El grupo de colocación para un objeto se determina según el nombre del objeto.

1.3.3 Ejemplo

Esta sección proporciona un ejemplo de cómo gestiona Ceph los datos (consulte la Figura 1.2, “Ejemplo de Ceph a pequeña escala”). El ejemplo no representa una configuración recomendada de un clúster de Ceph. El hardware está formado por tres nodos de almacenamiento o tres Ceph OSD (Host 1, Host 2 y Host 3). Cada nodo tiene tres discos duros que se utilizan como OSD (osd.1 a osd.9). Los nodos de Ceph Monitor no se tratan en este ejemplo.

Nota
Nota: diferencia entre Ceph OSD y OSD

Ceph OSD o daemon Ceph OSD hace referencia a un daemon que se ejecuta en un nodo, mientras que el término OSD hace referencia al disco lógico con el que interactúa el daemon.

El clúster tiene dos repositorios, Repositorio A y Repositorio B. Mientras Repositorio A replica objetos solo dos veces, la capacidad de recuperación de Repositorio B es más importante y tiene tres réplicas para cada objeto.

Cuando una aplicación coloca un objeto en un repositorio, por ejemplo, mediante la API REST, se selecciona un grupo de colocación (PG1 a PG4) según el repositorio y el nombre del objeto. El algoritmo CRUSH calcula en qué OSD se almacena el objeto, según el grupo de colocación que contiene el objeto.

En este ejemplo, el dominio de fallo está definido en el host. Esto garantiza que las réplicas de los objetos se almacenan en distintos hosts. Según el nivel de réplica que se defina para un repositorio, el objeto se almacenará en dos o en tres de los OSD que usa el grupo de colocación.

Una aplicación que escribe un objeto solo interactúa con un Ceph OSD: el Ceph OSD primario. El Ceph OSD primario se encarga de la réplica y confirma que el proceso de escritura ha terminado después de que todos los demás OSD hayan almacenado el objeto.

Si falla osd.5, todos los objetos de PG1 siguen estando disponibles en osd.1. En cuanto el clúster reconoce que un OSD ha fallado, otro OSD toma su lugar. En este ejemplo, osd.4 se utiliza como sustituto de osd.5. Los objetos almacenados en osd.1 se replican a osd.4 para restaurar el nivel de réplica.

Ejemplo de Ceph a pequeña escala
Figura 1.2: Ejemplo de Ceph a pequeña escala

Si se añade un nuevo nodo con nuevos OSD al clúster, el mapa del clúster cambia. La función CRUSH devuelve ubicaciones diferentes para los objetos. los objetos que reciben las nuevas ubicaciones se reubican. Este proceso da como resultado un uso equilibrado de todos los OSD.

1.4 BlueStore

BlueStore es el procesador final de almacenamiento por defecto para Ceph desde SES 5. Su rendimiento es mejor que el de FireStore y cuenta con suma de comprobación de los datos completos y compresión integrada.

BlueStore puede gestionar uno, dos o tres dispositivos de almacenamiento. En el caso más sencillo, BlueStore consume un único dispositivo de almacenamiento primario. Normalmente, el dispositivo de almacenamiento se divide en dos partes:

  1. Una pequeña partición denominada BlueFS que implementa las funciones de sistema de archivos requeridas por RocksDB.

  2. El resto del dispositivo suele estar ocupado por una partición de gran tamaño. Se gestiona directamente mediante BlueStore y contiene todos los datos reales. Este dispositivo primario normalmente se identifica mediante un enlace simbólico de bloque en el directorio de datos.

También es posible distribuir BlueStore en dos dispositivos adicionales:

Un dispositivo WAL que se puede usar para el diario interno o el registro de escritura anticipada de BlueStore. Se identifica mediante el enlace simbólico block.wal en el directorio de datos. Solo resulta útil emplear un dispositivo WAL independiente si el dispositivo es más rápido que el dispositivo primario o que el dispositivo DB, por ejemplo en estos casos:

  • Si el dispositivo WAL es un NVMe, el dispositivo DB es una unidad SSD y el dispositivo de datos es una unidad SSD o un disco duro.

  • Los dispositivos WAL y DB están en unidades SSD independientes, y el dispositivo de datos está en un SSD o un disco duro.

Es posible utilizar un dispositivo DB para almacenar los metadatos internos de BlueStore. BlueStore (o en su lugar, la instancia incrustada de RocksDB) colocará todos los metadatos que pueda en el dispositivo DB para mejorar el rendimiento. De nuevo, provisionar un dispositivo DB compartido solo resulta útil si es más rápido que el dispositivo primario.

Sugerencia
Sugerencia: planificación del tamaño del dispositivo DB

Debe realizar una planificación exhaustiva para garantizar un tamaño suficiente al dispositivo DB. Si el dispositivo DB se llena, los metadatos se diseminarán por todo el dispositivo primario, lo que afectará muy negativamente al rendimiento del OSD.

Puede comprobar si una partición WAL/BD se está llenando y desbordándose con el comando ceph daemon osd.ID perf dump. El valor slow_used_bytes muestra la cantidad de datos que se han desbordado:

cephuser@adm > ceph daemon osd.ID perf dump | jq '.bluefs'
"db_total_bytes": 1073741824,
"db_used_bytes": 33554432,
"wal_total_bytes": 0,
"wal_used_bytes": 0,
"slow_total_bytes": 554432,
"slow_used_bytes": 554432,

1.5 Información adicional

  • Ceph es un proyecto comunitario que cuenta con su propia documentación en línea completa. Para obtener información sobre temas que no encuentre en este manual, consulte https://docs.ceph.com/en/octopus/.

  • La publicación original CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data (CRUSH: colocación controlada, ampliable y descentralizada de datos replicados) de S.A. Weil, S.A. Brandt, E.L. Miller y C. Maltzahn proporciona información útil sobre el funcionamiento interno de Ceph. Se recomienda su lectura sobre todo al distribuir clústeres a gran escala. Encontrará la publicación en http://www.ssrc.ucsc.edu/papers/weil-sc06.pdf.

  • SUSE Enterprise Storage se puede utilizar con distribuciones OpenStack que no sean de SUSE. Los clientes de Ceph deben estar en un nivel que sea compatible con SUSE Enterprise Storage.

    Nota
    Nota

    SUSE admite el componente de servidor de la distribución de Ceph y el proveedor de distribución de OpenStack debe admitir el cliente.

2 Requisitos y recomendaciones de hardware

Los requisitos de hardware de Ceph dependen en gran medida de la carga de trabajo de E/S. Se deben tener en cuenta los requisitos y recomendaciones de hardware siguientes como punto de partida para realizar una planificación detallada.

En general, las recomendaciones proporcionadas en esta sección dependerán de los procesos que haya activos. Si hay varios procesos en el mismo equipo, los requisitos de CPU, RAM, espacio en disco y red deben sumarse.

2.1 Descripción general de la red

Ceph tiene varias redes lógicas:

  • Una red de procesador frontal denominada red pública.

  • Una red interna de confianza, la red de procesador final, denominada red de clúster. Este campo es opcional.

  • Una o varias redes cliente para las pasarelas. Esto es opcional y queda fuera del alcance de este capítulo.

La red pública es la red a través de la cual los daemons de Ceph se comunican entre sí y con sus clientes. Esto significa que todo el tráfico del clúster de Ceph pasa por esta red, excepto en el caso de que se configure una red de clúster.

La red de clúster es la red de procesador final entre los nodos de OSD para la réplica, el reequilibrado y la recuperación. Si se configura, esta red opcional proporcionaría, idealmente, el doble del ancho de banda que la red pública, con réplica de tres vías por defecto, ya que el OSD primario envía dos copias a otros OSD a través de esta red. La red pública se encuentra entre los clientes y las pasarelas por un lado para comunicarse con los monitores, los gestores, los nodos de MDS y los nodos de OSD. También la utilizan los monitores, los gestores y los nodos MDS para comunicarse con los nodos de OSD.

Descripción general de la red
Figura 2.1: Descripción general de la red

2.1.1 Recomendaciones de red

Se recomienda tener una única red tolerante a fallos con suficiente ancho de banda para satisfacer sus necesidades. Para el entorno de red pública de Ceph, se recomiendan dos interfaces de red de 25 GbE (o más rápidas) asociadas mediante 802.3ad (LACP). Esto se considera la configuración mínima para Ceph. Si también utiliza una red de clúster, se recomiendan cuatro interfaces de red de 25 GbE asociadas. La asociación de dos o más interfaces de red proporciona un mejor rendimiento mediante la agregación de enlaces y, mediante enlaces y conmutadores redundantes, mejora la tolerancia a fallos y la facilidad de mantenimiento.

También puede crear VLAN para aislar diferentes tipos de tráfico a través de una asociación. Por ejemplo, puede crear una asociación para proporcionar dos interfaces VLAN, una para la red pública y la segunda para la red de clúster. Sin embargo, esto no es necesario al configurar la red de Ceph. Encontrará información detallada sobre la asociación de las interfaces en https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-network.html#sec-network-iface-bonding.

La tolerancia a fallos se puede mejorar aislando los componentes en dominios de fallo. Para mejorar la tolerancia a fallos de la red, la asociación de una interfaz desde dos tarjetas de interfaz de red (NIC) independientes ofrece protección contra fallos de una sola NIC. Del mismo modo, la creación de una asociación entre dos conmutadores protege contra el fallo de un conmutador. Se recomienda consultar con el proveedor del equipo de red para determinar el nivel de tolerancia a fallos necesario.

Importante
Importante: red de administración no compatible

La configuración de red de administración adicional (que permite, por ejemplo, separar las redes SSH, Salt o DNS) no se ha probado ni se admite.

Sugerencia
Sugerencia: nodos configurados a través de DHCP

Si los nodos de almacenamiento se configuran a través de DHCP, es posible que los tiempos límite por defecto no sean suficientes para que la red se configure de forma correcta antes de que se inicien los daemons de Ceph. Si esto ocurre, los MON y los OSD de Ceph no se iniciarán correctamente (al ejecutar systemctl status ceph\* se producirán errores de tipo "no se puede asociar"). Para evitar este problema, se recomienda aumentar el tiempo límite del cliente DHCP a al menos 30 segundos en cada nodo del clúster de almacenamiento. Para hacerlo, hay que cambiar los valores siguientes en cada nodo:

En /etc/sysconfig/network/dhcp, defina

DHCLIENT_WAIT_AT_BOOT="30"

En /etc/sysconfig/network/config, defina

WAIT_FOR_INTERFACES="60"

2.1.1.1 Adición de una red privada a un clúster en ejecución

Si no especifica una red de clúster durante la distribución de Ceph, se considera que se trata de un único entorno de redes público. Aunque Ceph funciona correctamente con una red pública, su rendimiento y la seguridad mejoran si se establece una segunda red de clúster privada. Para que admitan dos redes, cada nodo de Ceph debe tener al menos dos tarjetas de red.

Debe aplicar los cambios siguientes a cada nodo de Ceph. Hacerlo en un clúster pequeño es relativamente rápido, pero si el clúster está formado por cientos o miles de nodos, puede tardarse mucho tiempo.

  1. Defina la red del clúster mediante el comando siguiente:

    root # ceph config set global cluster_network MY_NETWORK

    Reinicie los OSD para asociarlos a la red de clúster especificada:

    root # systemctl restart ceph-*@osd.*.service
  2. Compruebe que la red de clúster privada funciona según lo previsto en el nivel de sistema operativo.

2.1.1.2 Nodos de monitor en subredes diferentes

Si los nodos de monitor se encuentran en varias subredes, por ejemplo, se encuentran en distintas salas y emplean conmutadores distintos, es necesario especificar la dirección de la red pública con notación CIDR.

cephuser@adm > ceph config set mon public_network "MON_NETWORK_1, MON_NETWORK_2, MON_NETWORK_N

Por ejemplo:

cephuser@adm > ceph config set mon public_network "192.168.1.0/24, 10.10.0.0/16"
Aviso
Aviso

Si especifica más de un segmento de red para la red pública (o de clúster) como se describe en esta sección, cada una de estas subredes debe ser capaz de encaminarse a todas las demás; de lo contrario, los MON y otros daemons de Ceph en diferentes segmentos de la red no podrán comunicarse entre sí y se producirá una situación de clústeres malinformados. Además, si está utilizando un cortafuegos, asegúrese de incluir cada dirección IP o subred en sus iptables y abrir puertos para ellos en todos los nodos según sea necesario.

2.2 Configuraciones de varias arquitecturas

SUSE Enterprise Storage admite arquitecturas x86 y Arm. Al considerar cada arquitectura, es importante tener en cuenta que desde la perspectiva de los núcleos por OSD, la frecuencia y la RAM, no hay diferencia real entre las arquitecturas de CPU en lo que respecta al tamaño.

como ocurre con los procesadores x86 más pequeños (que no son de servidor), los núcleos basados en Arm de menor rendimiento podrían no proporcionar una experiencia óptima, especialmente si se utilizan para repositorios codificados de borrado.

Nota
Nota

En toda la documentación se utiliza SYSTEM-ARCH en lugar de x86 o Arm.

2.3 Configuración del hardware

Para obtener el mejor resultado del producto, se recomienda comenzar con la configuración de clúster recomendada. Para un clúster de prueba o uno con menos requisitos de rendimiento, se indica una configuración de clúster mínima compatible.

2.3.1 Configuración de clúster mínima

Una configuración de clúster mínima para el producto consta de:

  • Al menos cuatro nodos físicos (nodos de OSD) con coubicación de servicios

  • Ethernet dual de 10 Gb como red asociada

  • Un nodo de administración independiente (se puede virtualizar en un nodo externo)

Una configuración detallada está formada por:

  • Un nodo de administración independiente con 4 GB de RAM, cuatro núcleos y 1 TB de capacidad de almacenamiento. Normalmente, se trata del nodo master de Salt. Los servicios y pasarelas de Ceph, como Ceph Monitor, el servidor de metadatos, Ceph OSD, Object Gateway o NFS Ganesha no se admiten en el nodo de administración, ya que necesita organizar los procesos de actualización del clúster de forma independiente.

  • Al menos cuatro nodos de OSD físicos, con ocho discos de OSD cada uno, consulte los requisitos en la Sección 2.4.1, “Requisitos mínimos”.

    La capacidad total del clúster debe ajustarse de modo que, incluso si un nodo no está disponible, la capacidad total utilizada (incluida la redundancia) no supere el 80 %.

  • Tres instancias de Ceph Monitor. Por motivos de latencia, los monitores deben ejecutarse desde el almacenamiento SSD/NVMe, no desde los discos duros.

  • Los monitores, el servidor de metadatos y las pasarelas se pueden coubicar en los nodos de OSD; encontrará más información sobre la coubicación de monitores en la Sección 2.12, “Servidor compartido por varios OSD y monitores”. Si tiene servicios coubicados, es necesario sumar los requisitos de memoria y CPU.

  • iSCSI Gateway, Object Gateway y el servidor de metadatos requieren al menos 4 GB de RAM y cuatro núcleos.

  • Si utiliza CephFS, S3/Swift o iSCSI, se requieren al menos dos instancias de las funciones respectivas (servidor de metadatos, Object Gateway e iSCSI) para la redundancia y la disponibilidad.

  • Los nodos deben estar dedicados a SUSE Enterprise Storage y no deben utilizarse para ninguna otra carga de trabajo física, ni en contenedores ni virtualizada.

  • Si alguna de las pasarelas (iSCSI, Object Gateway, NFS Ganesha, servidor de metadatos, etc.) se distribuye dentro de máquinas virtuales, estas no deben estar alojadas en equipos físicos que dan servicio a otras funciones del clúster. (Esto no es necesario, ya que se admiten como servicios coubicados).

  • Al distribuir servicios como máquinas virtuales en hipervisores fuera del clúster físico central, se deben respetar los dominios de fallo para garantizar la redundancia.

    Por ejemplo, no distribuya varias funciones del mismo tipo en el mismo hipervisor, como varias instancias de MON o MDS.

  • Al distribuir dentro de máquinas virtuales, es fundamental asegurarse de que los nodos cuentan con una conectividad de red sólida y una sincronización del tiempo de trabajo adecuada.

  • Los nodos del hipervisor deben tener el tamaño adecuado para evitar la interferencia de otras cargas de trabajo que consumen recursos de CPU, RAM, red y almacenamiento.

Configuración de clúster mínima
Figura 2.2: Configuración de clúster mínima

2.3.2 Configuración recomendada para clúster de producción

Si el tamaño del clúster ha aumentado, se recomienda reubicar los monitores Ceph Monitor, los servidores de metadatos y las pasarelas en nodos independientes para mejorar la tolerancia a fallos.

  • Siete nodos de almacenamiento de objeto

    • Ningún nodo individual debe superar aproximadamente el 15 % del almacenamiento total.

    • La capacidad total del clúster debe ajustarse de modo que, incluso si un nodo no está disponible, la capacidad total utilizada (incluida la redundancia) no supere el 80 %.

    • Ethernet de 25 Gb o superior, asociados para el clúster interno y la red pública externa cada uno.

    • Más de 56 OSD por clúster de almacenamiento.

    • Consulte la Sección 2.4.1, “Requisitos mínimos” para obtener más recomendaciones.

  • Nodos de infraestructura física dedicados.

2.3.3 Configuración de múltiples rutas

Si desea utilizar hardware de múltiples rutas, asegúrese de que LVM puede acceder a multipath_component_detection = 1 en el archivo de configuración en la sección devices (dispositivos). Esto se puede comprobar mediante el comando lvm config.

Como alternativa, asegúrese de que LVM filtre los componentes de múltiples rutas de un dispositivo mediante la configuración de filtro de LVM. Esto será específico para cada host.

Nota
Nota

Esta configuración no se recomienda y solo debe plantearse si no es posible definir multipath_component_detection = 1.

Para obtener más información acerca de la configuración de múltiples rutas, consulte https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-multipath.html#sec-multipath-lvm.

2.4 Nodos de almacenamiento de objetos

2.4.1 Requisitos mínimos

  • Las siguientes recomendaciones de CPU sirven para los dispositivos, independientemente del uso por parte de Ceph:

    • 1 subproceso de CPU de 2 GHz por disco giratorio.

    • 2 subprocesos de CPU de 2 GHz por SSD.

    • 4 subprocesos de CPU de 2 GHz por NVMe.

  • Redes 10 GbE separadas (pública/cliente e interna): se requieren 4 de 10 GbE; se recomiendan 2 de 25 GbE.

  • Total de RAM requerida = número de OSD x (1 GB + osd_memory_target) + 16 GB

    Consulte el Book “Guía de administración y operaciones”, Chapter 28 “Configuración del clúster de Ceph”, Section 28.4.1 “Configuración del tamaño automático del caché” para obtener más detalles sobre el valor de osd_memory_target.

  • Discos OSD en configuraciones JBOD o configuraciones RAID-0 individuales.

  • El diario del OSD puede encontrarse en el disco del OSD.

  • Los discos OSD deben utilizarse exclusivamente para SUSE Enterprise Storage.

  • Disco o unidad SSD dedicados para el sistema operativo, preferiblemente en una configuración de RAID 1.

  • Asigne al menos 4 GB adicionales de RAM si este host OSD va a alojar parte de un repositorio de caché utilizado para la organización en niveles del caché.

  • Los monitores Ceph Monitor, la pasarela y los servidores de metadatos pueden encontrarse en los nodos de almacenamiento de objeto.

  • Por motivos de rendimiento del disco, los nodos de OSD son nodos de hardware. Ninguna otra carga de trabajo debe ejecutarse en un nodo de OSD a menos que sea una configuración mínima de Ceph Monitors y gestores Ceph Managers.

  • Discos SSD para el diario con una proporción de 6:1 entre el diario de SSD y los OSD.

Nota
Nota

Asegúrese de que los nodos de OSD no tienen asignados dispositivos de bloques en red, como iSCSI o imágenes de dispositivos de bloques RADOS.

2.4.2 Tamaño mínimo de disco

Existen dos tipos de espacio de disco necesarios para ejecutarse en OSD: el espacio para el dispositivo WAL/DB, y el espacio principal para los datos almacenados. El valor mínimo (y por defecto) para WAL/DB es de 6 GB. El espacio mínimo para los datos es de 5 GB, ya que a las particiones de menos de 5 GB se les asigna automáticamente un peso de 0.

Por lo tanto, aunque el espacio mínimo de disco para un OSD es de 11 GB, no se recomienda usar discos de menos de 20 GB, ni siquiera con fines de prueba.

2.4.3 Tamaño recomendado para el dispositivo WAL y DB de BlueStore

Sugerencia
Sugerencia: más información

Consulte la Sección 1.4, “BlueStore” para obtener más información sobre BlueStore.

  • Se recomienda reservar 4 GB para el dispositivo WAL. El tamaño recomendado para DB es de 64 GB para la mayoría de las cargas de trabajo.

    Importante
    Importante

    Se recomiendan volúmenes de base de datos más grandes para las distribuciones de alta carga, especialmente si hay un uso elevado de RGW o CephFS. Reserve parte de la capacidad (ranuras) para instalar más hardware y disponer de más espacio en la base de datos si es necesario.

  • Si tiene previsto colocar el dispositivo WAL y el dispositivo DB en el mismo disco, se recomienda usar una partición única para ambos dispositivos, en lugar de tener una partición independiente para cada uno. Esto permite a Ceph utilizar también el dispositivo DB para el funcionamiento de WAL. Por lo tanto, la gestión del espacio de disco es más eficaz, ya que Ceph utiliza la partición de DB para WAL solo si es necesario. Otra ventaja es que la probabilidad de que la partición WAL se llene es muy pequeña, y si no se utiliza por completo, su espacio no se desperdicia, sino que se usa para el funcionamiento del dispositivo DB.

    Para compartir el dispositivo DB con el dispositivo WAL, no especifique el dispositivo WAL: especifique solo el dispositivo DB.

    Encontrará más información sobre cómo especificar un diseño de OSD en el Book “Guía de administración y operaciones”, Chapter 13 “Tareas operativas”, Section 13.4.3 “Adición de OSD mediante la especificación DriveGroups”.

2.4.4 SSD para particiones WAL/DB

Las unidades de estado sólido (SSD) no tienen piezas móviles. Esto reduce el tiempo de acceso aleatorio y la latencia de lectura, a la vez que acelera el rendimiento de los datos. Dado que su precio por MB es mucho mayor que el de los discos duros giratorios, las unidades SSD solo son adecuadas para almacenamiento de menor tamaño.

Los OSD pueden tener una mejora significativa del rendimiento si almacenan sus particiones WAL/DB en una unidad SSD y los datos del objeto en un disco duro independiente.

Sugerencia
Sugerencia: uso compartido de una unidad SSD para varias particiones WAL/DB

Dado que las particiones WAL/DB ocupan relativamente poco espacio, puede compartir un disco SSD con varias particiones WAL/DB. Tenga en cuenta que con cada partición WAL/DB, el rendimiento del disco SSD se resiente. No es recomendable compartir más de seis particiones WAL/DB en el mismo disco SSD, o 12 en discos NVMe.

2.4.5 Número máximo de discos recomendado

Puede tener tantos discos como permita un servidor. Pero existen algunos asuntos que debe tener en cuenta a la hora de planificar el número de discos por servidor:

  • Ancho de banda de red. Cuantos más discos haya en un servidor, más datos deben transferirse a través de las tarjetas de red para las operaciones de escritura del disco.

  • Memoria. La RAM que supere los 2 GB se utiliza para el caché de BlueStore. Con el valor por defecto de osd_memory_target de 4 GB, el sistema tiene un tamaño de caché inicial razonable para los medios giratorios. Si utiliza SSD o NVME, plantéese la posibilidad de aumentar el tamaño de la memoria caché y la asignación de RAM por OSD para maximizar el rendimiento.

  • Tolerancia a fallos. Si el servidor falla por completo, cuantos más discos tenga, más OSD perderá temporalmente el clúster. Además, para mantener las reglas de réplica en ejecución, necesita copiar todos los datos desde el servidor que ha fallado a los demás nodos del clúster.

2.5 Nodos de monitor

  • Se necesitan al menos tres nodos de MON. El número de monitores debe ser siempre impar (1+2n).

  • 4 GB de RAM.

  • Procesador con cuatro núcleos lógicos.

  • Se recomienda un disco SSD u otro tipo de almacenamiento suficientemente rápido para los monitores, específicamente para la vía /var/lib/ceph de cada nodo de monitor, ya que el quórum puede ser inestable con latencias elevadas de disco. Se recomiendan dos discos con configuración RAID 1 para aportar redundancia. Se recomienda utilizar discos distintos, o al menos particiones de disco independientes para los procesos de monitor a fin de proteger el espacio disponible en el monitor frente a estados como la ralentización del archivo de registro.

  • Solo debe haber un proceso de monitor por nodo.

  • La mezcla de nodos de OSD, MON y Object Gateway solo se admite si los recursos de hardware disponibles son suficientes. Esto significa que deberán sumarse los requisitos de todos los servicios.

  • Dos interfaces de red vinculadas a varios conmutadores.

2.6 Nodos de Object Gateway

Los nodos de Object Gateway deben tener al menos seis núcleos de CPU y 32 GB de RAM. Si hay otros procesos ubicados en el mismo equipo, deben sumarse sus requisitos.

2.7 Nodos de servidor de metadatos

El tamaño correcto de los nodos del servidor de metadatos depende del caso de uso específico. Por lo general, cuantos más archivos abiertos deba gestionar el servidor de metadatos, más CPU y RAM se necesitará. Los requisitos mínimos de son los descritos a continuación:

  • 4 GB de RAM para cada daemon de servidor de metadatos.

  • Interfaz de red vinculada.

  • 2,5 GHz de CPU con un mínimo de 2 núcleos.

2.8 Nodo de administración

Se requieren al menos 4 GB de RAM y una CPU de cuatro núcleos. Esto incluye la ejecución del master de Salt en el nodo de administración. Para clústeres de gran tamaño con cientos de nodos, se recomiendan 6 GB de RAM.

2.9 Nodos de iSCSI Gateway

Los nodos de iSCSI Gateway deben tener al menos seis núcleos de CPU y 16 GB de RAM.

2.10 SES y otros productos SUSE

Esta sección contiene información importante acerca de la integración de SES con otros productos SUSE.

2.10.1 SUSE Manager

SUSE Manager y SUSE Enterprise Storage no están integrados; por lo tanto, SUSE Manager no puede gestionar actualmente un clúster de SES.

2.11 Limitaciones de nombres

En general, Ceph no admite caracteres no ASCII en los archivos de configuración, los nombres de repositorio, los nombres de usuario, etc. Cuando configure un clúster de Ceph, se recomienda utilizar solo caracteres alfanuméricos sencillos (A-z, a-z, 0-9) y la puntuación mínima (".", "-" o "_") en todos los nombres de objeto y configuración de Ceph.

2.12 Servidor compartido por varios OSD y monitores

Aunque es técnicamente posible ejecutar varios OSD y monitores MON en el mismo servidor en entornos de prueba, se recomienda encarecidamente disponer de un servidor independiente para cada nodo de monitor en entornos de producción. El motivo principal es el rendimiento: cuantos más OSD tenga el clúster, más operaciones de E/S deberán realizar los nodos de MON. Y cuando se comparte un servidor entre un nodo de MON y varios OSD, las operaciones de E/S de los OSD suponen un factor limitador para el nodo de monitor.

Otra consideración importante a tener en cuenta es si se comparten discos entre un OSD, un nodo de MON y el sistema operativo en el servidor. La respuesta es sencilla: si es posible, dedique un disco independiente al OSD y un servidor independiente a un nodo de monitor.

Aunque Ceph admite los OSD basados en directorios, un OSD siempre debe tener un disco dedicado distinto al que se use para el sistema operativo.

Sugerencia
Sugerencia

Si es realmente necesario ejecutar el OSD y el nodo de MON en el mismo servidor, ejecute MON en un disco independiente montando ese disco en el directorio /var/lib/ceph/mon para mejorar ligeramente el rendimiento.

3 Configuración de alta disponibilidad del nodo de administración

El nodo de administración es un nodo de clúster de Ceph donde se ejecuta el servicio master de Salt. Gestiona el resto de los nodos del clúster consultando y dando instrucciones a sus servicios de minion de Salt. Normalmente también incluye otros servicios; por ejemplo, la consola Grafana respaldada por el kit de herramientas de supervisión Prometheus.

En caso de que el nodo de administración falle, lo habitual es que deba proporcionar un nuevo hardware que funcione para el nodo y que tenga que restaurar la pila de configuración del clúster completa a partir de una copia de seguridad reciente. Este método lleva bastante tiempo y provoca interrupciones del clúster.

Para evitar tiempos de inactividad del clúster de Ceph debido a fallos en el nodo de administración, se recomienda usar un clúster de alta disponibilidad (HA) para el nodo de administración de Ceph.

3.1 Esquema del clúster de alta disponibilidad para el nodo de administración

La idea de un clúster de alta disponibilidad consiste en que, en caso de fallo del nodo del clúster, el otro nodo se haga cargo automáticamente de su función, incluido el nodo de administración virtualizado. De este modo, los otros nodos del clúster no notan que el nodo de administración de Ceph ha fallado.

La solución de alta disponibilidad mínima para el nodo de administración requiere el siguiente hardware:

  • Dos servidores instalados desde cero donde se pueda ejecutar SUSE Linux Enterprise con la extensión de alta disponibilidad y donde se pueda virtualizar el nodo de administración.

  • Dos o más vías de comunicación de red redundantes; por ejemplo, mediante vínculos de dispositivos de red.

  • Almacenamiento compartido para alojar las imágenes de disco de la máquina virtual del nodo de administración. Debe ser posible acceder al almacenamiento compartido desde ambos servidores. Puede ser, por ejemplo, una exportación NFS, un recurso compartido Samba o el destino iSCSI.

Encontrará más información sobre los requisitos del clúster en https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/art-sleha-install-quick.html#sec-ha-inst-quick-req.

Clúster de alta disponibilidad de 2 nodos para el nodo de administración
Figura 3.1: Clúster de alta disponibilidad de 2 nodos para el nodo de administración

3.2 Creación de un clúster de alta disponibilidad con un nodo de administración

El procedimiento siguiente resume los pasos más importantes a la hora de crear el clúster de alta disponibilidad para la virtualización del nodo de administración. Para obtener más detalles, consulte los enlaces indicados.

  1. Configure un clúster de alta disponibilidad básico de 2 nodos con almacenamiento compartido, como se describe en https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/art-sleha-install-quick.html.

  2. En ambos nodos del clúster, instale todos los paquetes necesarios para ejecutar el hipervisor KVM y el kit de herramientas libvirt, como se describe en https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-vt-installation.html#sec-vt-installation-kvm.

  3. En el primer nodo del clúster, cree una máquina virtual KVM nueva mediante libvirt, como se describe en https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-kvm-inst.html#sec-libvirt-inst-virt-install. Utilice el almacenamiento compartido preconfigurado para almacenar las imágenes de disco de la máquina virtual.

  4. Después de que se haya completado la configuración de la máquina virtual, exporte su configuración a un archivo XML en el almacenamiento compartido. Utilice la siguiente sintaxis:

    root # virsh dumpxml VM_NAME > /path/to/shared/vm_name.xml
  5. Cree un recurso para la máquina virtual del nodo de administración. Consulte https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/cha-conf-hawk2.html para obtener información general sobre cómo crear recursos de alta disponibilidad. Encontrará información detallada sobre cómo crear recursos para una máquina virtual KVM en http://www.linux-ha.org/wiki/VirtualDomain_%28resource_agent%29.

  6. En la máquina virtual invitada que acaba de crear, distribuya el nodo de administración, incluidos los servicios adicionales que necesite allí. Siga los pasos relevantes de la Sección 5.2, “Distribución de Salt”. Al mismo tiempo, distribuya los demás nodos del clúster de Ceph en los servidores del clúster que no sean de alta disponibilidad.

Parte II Distribución del clúster de Ceph

  • 4 Introducción y tareas comunes
  • Desde SUSE Enterprise Storage 7, los servicios de Ceph se distribuyen como contenedores mediante cephadm en lugar de como paquetes RPM. Más detalles en el Capítulo 5, Distribución con cephadm

  • 5 Distribución con cephadm
  • SUSE Enterprise Storage 7 utiliza la herramienta ceph-salt basada en Salt para preparar el sistema operativo en cada nodo del clúster participante para la distribución a través de cephadm. cephadm distribuye y gestiona un clúster de Ceph conectándose a hosts desde el daemon de Ceph Manager a través …

4 Introducción y tareas comunes

Desde SUSE Enterprise Storage 7, los servicios de Ceph se distribuyen como contenedores mediante cephadm en lugar de como paquetes RPM. Más detalles en el Capítulo 5, Distribución con cephadm

4.1 Lectura de las notas de la versión

En las notas de la versión puede encontrar información adicional sobre los cambios realizados desde la versión previa de SUSE Enterprise Storage. Consulte las notas de versión para comprobar lo siguiente:

  • si el hardware necesita consideraciones especiales,

  • si los paquetes de software usados han cambiado de forma significativa,

  • si es necesario tomar precauciones especiales para la instalación.

Las notas de la versión también proporcionan información que no pudo publicarse en el manual a tiempo y notas acerca de problemas conocidos.

Después de instalar el paquete release-notes-ses, encontrará las notas de la versión en el directorio /usr/share/doc/release-notes o en línea en https://www.suse.com/releasenotes/.

5 Distribución con cephadm

SUSE Enterprise Storage 7 utiliza la herramienta ceph-salt basada en Salt para preparar el sistema operativo en cada nodo del clúster participante para la distribución a través de cephadm. cephadm distribuye y gestiona un clúster de Ceph conectándose a hosts desde el daemon de Ceph Manager a través de SSH. También gestiona el ciclo de vida completo de un clúster de Ceph. Comienza arrancando un clúster minúsculo en un único nodo (un servicio MON y MGR) y, a continuación, utiliza la interfaz de orquestación para expandir el clúster a fin de que incluya todos los hosts y para aprovisionar todos los servicios de Ceph. Puede realizar esta operación a través de la interfaz de línea de comandos de Ceph o parcialmente a través de la interfaz gráfica de usuario, Ceph Dashboard.

Importante
Importante

Tenga en cuenta que la documentación de la comunidad de Ceph utiliza el comando cephadm bootstrap durante la distribución inicial. ceph-salt llama al comando cephadm bootstrap y no se debe ejecutar directamente. No se admitirá ninguna distribución manual del clúster de Ceph mediante bootstrap cephadm.

Para distribuir un clúster de Ceph mediante cephadm, debe realizar las siguientes tareas:

  1. Instale y realice la configuración básica del sistema operativo subyacente (SUSE Linux Enterprise Server 15 SP2) en todos los nodos del clúster.

  2. Distribuya la infraestructura de Salt en todos los nodos del clúster para realizar los preparativos de la distribución inicial mediante ceph-salt.

  3. Configure las propiedades básicas del clúster mediante ceph-salt e impleméntelo.

  4. Añada nuevos nodos y funciones al clúster y distribuya servicios en ellos mediante cephadm.

5.1 Instalación y configuración de SUSE Linux Enterprise Server

  1. Instale y registre SUSE Linux Enterprise Server 15 SP2 en cada nodo del clúster. Durante la instalación de SUSE Enterprise Storage, se requiere acceso a los repositorios de actualización, por lo que el registro es obligatorio. Incluya al menos los siguientes módulos:

    • Módulo de sistema base

    • Módulo de aplicaciones de servidor

    Obtenga más información sobre cómo instalar SUSE Linux Enterprise Server en https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-install.html.

  2. Instale la extensión de SUSE Enterprise Storage 7 en cada nodo del clúster.

    Sugerencia
    Sugerencia: instalación de SUSE Enterprise Storage junto con SUSE Linux Enterprise Server

    Puede instalar la extensión de SUSE Enterprise Storage 7 por separado después de instalar SUSE Linux Enterprise Server 15 SP2, o bien añadirla durante el procedimiento de instalación de SUSE Linux Enterprise Server 15 SP2.

    Encontrará más información sobre cómo instalar extensiones en https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-register-sle.html.

  3. Configure los ajustes de red, incluida la resolución de nombre DNS adecuada en cada nodo. Para obtener más información acerca de cómo configurar una red, consulte https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-network.html#sec-network-yast. Para obtener más información sobre cómo configurar un servidor DNS, consulte https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-dns.html.

5.2 Distribución de Salt

SUSE Enterprise Storage utiliza Salt y ceph-salt para la preparación inicial del clúster. Salt le ayuda a configurar y ejecutar comandos en varios nodos de clúster de forma simultánea desde un host dedicado llamado máster de Salt. Antes de distribuir Salt, tenga en cuenta los siguientes puntos importantes:

  • Los minions de Salt son los nodos que se controlan mediante un nodo dedicado denominado master de Salt.

  • Si el host del master de Salt debe formar parte del clúster de Ceph, debe ejecutar su propio minion de Salt, pero esto no es un requisito.

    Sugerencia
    Sugerencia: uso compartido de varias funciones por servidor

    Conseguirá el mejor rendimiento del clúster de Ceph si cada función se distribuye en un nodo independiente. Pero las distribuciones reales requieren en ocasiones que se comparta un nodo para varias funciones. Para evitar problemas de rendimiento y en el procedimiento de actualización, no distribuya las funciones de Ceph OSD, el servidor de metadatos ni Ceph Monitor al nodo de administración.

  • Los minions de Salt deben resolver correctamente el nombre de host del master de Salt en la red. Por defecto, buscan el nombre de host salt, pero puede especificar cualquier otro nombre de host al que se pueda acceder por la red en el archivo /etc/salt/minion.

  1. Instale salt-master en el nodo master de Salt:

    root@master # zypper in salt-master
  2. Compruebe que el servicio salt-master esté habilitado y se haya iniciado, y si no lo estuviera, habilítelo e inícielo:

    root@master # systemctl enable salt-master.service
    root@master # systemctl start salt-master.service
  3. Si va a utilizar un cortafuegos, asegúrese de que el nodo master de Salt tiene los puertos 4505 y 4506 abiertos para todos los nodos minion de Salt. Si los puertos están cerrados, puede abrirlos con el comando yast2 firewall permitiendo el servicio salt-master para la zona oportuna. Por ejemplo, public.

  4. Instale el paquete salt-minion en todos los nodos minion.

    root@minion > zypper in salt-minion
  5. Edite /etc/salt/minion y elimine el comentario de la siguiente línea:

    #log_level_logfile: warning

    Cambie el nivel de registro de warning a info.

    Nota
    Nota: log_level_logfile y log_level

    Mientras que log_level controla qué mensajes de registro se mostrarán en la pantalla, log_level_logfile controla qué mensajes de registro se escribirán en /var/log/salt/minion.

    Nota
    Nota

    Asegúrese de cambiar el nivel de registro en todos los nodos del clúster (minions).

  6. Asegúrese de que todos los demás nodos pueden resolver el nombre de dominio completo de cada nodo en una dirección IP en la red pública del clúster.

  7. Configure todos los minions para que se conecten con el master. Si el host denominado salt no puede acceder al master de Salt, edite el archivo /etc/salt/minion o cree un archivo nuevo /etc/salt/minion.d/master.conf con el siguiente contenido:

    master: host_name_of_salt_master

    Si ha realizado cambios en los archivos de configuración mencionados anteriormente, reinicie el servicio Salt en todos los minions de Salt:

    root@minion > systemctl restart salt-minion.service
  8. Compruebe que el servicio salt-minion está habilitado e iniciado en todos los nodos. Habilítelo e inícielo si fuera necesario:

    root # systemctl enable salt-minion.service
    root # systemctl start salt-minion.service
  9. Verifique la huella digital de cada minion de Salt y acepte todas las claves salt del master de Salt si las huellas coinciden.

    Nota
    Nota

    Si la huella digital del minion de Salt vuelve vacía, asegúrese de que el minion de Salt tenga una configuración de master de Salt y que pueda comunicarse con el master de Salt.

    Para ver la huella digital de cada minion:

    root@minion > salt-call --local key.finger
    local:
    3f:a3:2f:3f:b4:d3:d9:24:49:ca:6b:2c:e1:6c:3f:c3:83:37:f0:aa:87:42:e8:ff...

    Después de recopilar las huellas digitales de todos los minions de Salt, muestre las huellas de todas las claves de minion no aceptadas del master de Salt:

    root@master # salt-key -F
    [...]
    Unaccepted Keys:
    minion1:
    3f:a3:2f:3f:b4:d3:d9:24:49:ca:6b:2c:e1:6c:3f:c3:83:37:f0:aa:87:42:e8:ff...

    Si las huellas digitales de los minions coinciden, acéptelas:

    root@master # salt-key --accept-all
  10. Verifique que las claves se han aceptado:

    root@master # salt-key --list-all
  11. Compruebe si todos los minions de Salt responden:

    root@master # salt-run manage.status

5.3 Distribución del clúster de Ceph

Esta sección le guía por el proceso de distribuir un clúster de Ceph básico. Lea atentamente las subsecciones y ejecute los comandos incluidos en el orden indicado.

5.3.1 Instalación de ceph-salt

ceph-salt proporciona herramientas para distribuir clústeres de Ceph gestionados por cephadm. ceph-salt utiliza la infraestructura de Salt para realizar la gestión del sistema operativo (por ejemplo, las actualizaciones de software o la sincronización horaria) y para definir funciones para los minions de Salt.

En el master de Salt, instale el paquete ceph-salt :

root@master # zypper install ceph-salt

El comando anterior, ceph-salt-formula se ha instalado como una dependencia que modifica la configuración del master de Salt insertando archivos adicionales en el directorio /etc/salt/master.d. Para aplicar los cambios, reinicie salt-master.service y sincronice los módulos de Salt:

root@master # systemctl restart salt-master.service
root@master # salt \* saltutil.sync_all

5.3.2 Configuración de las propiedades del clúster

Utilice el comando ceph-salt config para configurar las propiedades básicas del clúster.

Importante
Importante

El archivo /etc/ceph/ceph.conf se gestiona mediante cephadm y los usuarios no deben editarlo. Los parámetros de configuración de Ceph deben definirse mediante el nuevo comando ceph config. Consulte el Book “Guía de administración y operaciones”, Chapter 28 “Configuración del clúster de Ceph”, Section 28.2 “Base de datos de configuración” para obtener más información.

5.3.2.1 Uso de la shell ceph-salt

Si ejecuta ceph-salt config sin ninguna vía o subcomando, deberá introducir una shell ceph-salt interactiva. La shell es útil si necesita configurar varias propiedades en un lote y no desea escribir la sintaxis completa del comando.

root@master # ceph-salt config
/> ls
o- / ............................................................... [...]
  o- ceph_cluster .................................................. [...]
  | o- minions .............................................. [no minions]
  | o- roles ....................................................... [...]
  |   o- admin .............................................. [no minions]
  |   o- bootstrap ........................................... [no minion]
  |   o- cephadm ............................................ [no minions]
  |   o- tuned ..................................................... [...]
  |     o- latency .......................................... [no minions]
  |     o- throughput ....................................... [no minions]
  o- cephadm_bootstrap ............................................. [...]
  | o- advanced .................................................... [...]
  | o- ceph_conf ................................................... [...]
  | o- ceph_image_path .................................. [ no image path]
  | o- dashboard ................................................... [...]
  | | o- force_password_update ................................. [enabled]
  | | o- password ................................................ [admin]
  | | o- ssl_certificate ....................................... [not set]
  | | o- ssl_certificate_key ................................... [not set]
  | | o- username ................................................ [admin]
  | o- mon_ip .................................................. [not set]
  o- containers .................................................... [...]
  | o- registries_conf ......................................... [enabled]
  | | o- registries .............................................. [empty]
  | o- registry_auth ............................................... [...]
  |   o- password .............................................. [not set]
  |   o- registry .............................................. [not set]
  |   o- username .............................................. [not set]
  o- ssh ............................................... [no key pair set]
  | o- private_key .................................. [no private key set]
  | o- public_key .................................... [no public key set]
  o- time_server ........................... [enabled, no server host set]
    o- external_servers .......................................... [empty]
    o- servers ................................................... [empty]
    o- subnet .................................................. [not set]

Como puede ver en el resultado del comando ls de ceph-salt, la configuración del clúster está organizada en una estructura de árbol. Para configurar una propiedad específica del clúster en la shell ceph-salt, tiene dos opciones:

  • Ejecute el comando desde la posición actual e introduzca la vía absoluta a la propiedad como primer argumento:

    /> /cephadm_bootstrap/dashboard ls
    o- dashboard ....................................................... [...]
      o- force_password_update ..................................... [enabled]
      o- password .................................................... [admin]
      o- ssl_certificate ........................................... [not set]
      o- ssl_certificate_key ....................................... [not set]
      o- username .................................................... [admin]
    /> /cephadm_bootstrap/dashboard/username set ceph-admin
    Value set.
  • Cambie a la vía cuya propiedad necesite configurar y ejecute el comando:

    /> cd /cephadm_bootstrap/dashboard/
    /ceph_cluster/minions> ls
    o- dashboard ....................................................... [...]
      o- force_password_update ..................................... [enabled]
      o- password .................................................... [admin]
      o- ssl_certificate ........................................... [not set]
      o- ssl_certificate_key ....................................... [not set]
      o- username ................................................[ceph-admin]
Sugerencia
Sugerencia: autocompletado de fragmentos de configuración

En una shell ceph-salt, puede utilizar la función de autocompletado de forma similar a la de una shell de Linux normal (Bash). Completa vías de configuración, subcomandos o nombres de minions de Salt. Para autocompletar una vía de configuración, tiene dos opciones:

  • Para permitir que la shell termine una vía relativa a su posición actual, pulse la tecla TAB →| dos veces.

  • Para permitir que la shell termine una vía absoluta, introduzca / y pulse la tecla TAB →| dos veces.

Sugerencia
Sugerencia: navegación con las teclas del cursor

Si escribe cd desde la shell ceph-salt sin ninguna vía, el comando producirá una estructura de árbol de la configuración del clúster con la línea de la vía actual activa. Puede utilizar las teclas de cursor arriba y abajo para desplazarse por cada línea. Después de confirmar con Intro, la vía de configuración cambiará a la última activa.

Importante
Importante: convención

Para mantener la coherencia de la documentación, se utilizará una sintaxis de comando única sin entrar en la shell ceph-salt. Por ejemplo, puede mostrar el árbol de configuración del clúster mediante el comando siguiente:

root@master # ceph-salt config ls

5.3.2.2 Adición de minions de Salt

Incluya todos los minions de Salt que se han distribuido y aceptado en la Sección 5.2, “Distribución de Salt”, o un subconjunto de ellos, en la configuración del clúster de Ceph. Puede especificar los minions de Salt por sus nombres completos o utilizar las expresiones globales "*" y "?" para incluir varios minions de Salt a la vez. Utilice el subcomando add en la vía /ceph_cluster/minions. El comando siguiente incluye todos los minions de Salt aceptados:

root@master # ceph-salt config /ceph_cluster/minions add '*'

Compruebe que se han añadido los minions de Salt especificados:

root@master # ceph-salt config /ceph_cluster/minions ls
o- minions ................................................. [Minions: 5]
  o- ses-master.example.com .................................. [no roles]
  o- ses-min1.example.com .................................... [no roles]
  o- ses-min2.example.com .................................... [no roles]
  o- ses-min3.example.com .................................... [no roles]
  o- ses-min4.example.com .................................... [no roles]

5.3.2.3 Especificación de minions de Salt gestionados por cephadm

Especifique qué nodos pertenecerán al clúster de Ceph y se gestionarán mediante cephadm. Incluya todos los nodos que ejecutarán servicios de Ceph, así como el nodo de administración:

root@master # ceph-salt config /ceph_cluster/roles/cephadm add '*'

5.3.2.4 Especificación del nodo de administración

El nodo de administración es el nodo en el que se instalan el archivo de configuración ceph.conf y el anillo de claves de administración de Ceph. Normalmente, los comandos relacionados con Ceph se ejecutan en el nodo de administración.

Sugerencia
Sugerencia: master de Salt y nodo de administración en el mismo nodo

En un entorno homogéneo en el que todos o la mayoría de los hosts pertenezcan a SUSE Enterprise Storage, se recomienda tener el nodo de administración en el mismo host que el master de Salt.

En un entorno heterogéneo en el que una infraestructura de Salt aloje más de un clúster, por ejemplo, SUSE Enterprise Storage junto con SUSE Manager, no coloque el nodo de administración en el mismo host que el master de Salt.

Para especificar el nodo de administración, ejecute el comando siguiente:

root@master # ceph-salt config /ceph_cluster/roles/admin add ses-master.example.com
1 minion added.
root@master # ceph-salt config /ceph_cluster/roles/admin ls
o- admin ................................................... [Minions: 1]
  o- ses-master.example.com ...................... [Other roles: cephadm]
Sugerencia
Sugerencia: instalación de ceph.conf y el anillo de claves de administración en varios nodos

Puede instalar el archivo de configuración de Ceph y el anillo de claves del administrador en varios nodos si la distribución lo requiere. Por motivos de seguridad, evite instalarlos en todos los nodos del clúster.

5.3.2.5 Especificación del primer nodo de MON/MGR

Debe especificar cuál de los minions de Salt del clúster arrancará el clúster. Este minion se convertirá en el primero en ejecutar los servicios de Ceph Monitor y Ceph Manager.

root@master # ceph-salt config /ceph_cluster/roles/bootstrap set ses-min1.example.com
Value set.
root@master # ceph-salt config /ceph_cluster/roles/bootstrap ls
o- bootstrap ..................................... [ses-min1.example.com]

Además, debe especificar la dirección IP de carga del monitor en la red pública para asegurarse de que el parámetro public_network está definido correctamente, por ejemplo:

root@master # ceph-salt config /cephadm_bootstrap/mon_ip set 192.168.10.20

5.3.2.6 Especificación de perfiles ajustados

Debe especificar qué minions del clúster tienen perfiles ajustados de forma activa. Para ello, añada estas funciones explícitamente con los comandos siguientes:

Nota
Nota

Un minion no puede tener las funciones latency (latencia) y throughput (rendimiento).

root@master # ceph-salt config /ceph_cluster/roles/tuned/latency add ses-min1.example.com
Adding ses-min1.example.com...
1 minion added.
root@master # ceph-salt config /ceph_cluster/roles/tuned/throughput add ses-min2.example.com
Adding ses-min2.example.com...
1 minion added.

5.3.2.7 Generación de un par de claves SSH

cephadm utiliza el protocolo SSH para comunicarse con los nodos del clúster. Se crea automáticamente una cuenta de usuario denominada cephadm que se utiliza para la comunicación SSH.

Debe generar la parte privada y la pública del par de claves SSH:

root@master # ceph-salt config /ssh generate
Key pair generated.
root@master # ceph-salt config /ssh ls
o- ssh .................................................. [Key Pair set]
  o- private_key ..... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  o- public_key ...... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]

5.3.2.8 Configuración del servidor de hora

Todos los nodos del clúster deben tener su hora sincronizada con un origen horario fiable. Existen varios escenarios para abordar la sincronización horaria:

  • Si todos los nodos del clúster están ya configurados para sincronizar su hora mediante un servicio NTP de su elección, inhabilite la gestión del servidor horario:

    root@master # ceph-salt config /time_server disable
  • Si su sitio ya tiene una única fuente horaria, especifique el nombre de host de esta:

     root@master # ceph-salt config /time_server/servers add time-server.example.com
  • Como alternativa, ceph-salt tiene la capacidad de configurar uno de los minions de Salt para que sirva como servidor horario para el resto del clúster. A veces se hace referencia a esto como un "servidor horario interno". En este escenario, ceph-salt configurará el servidor horario interno (que debe ser uno de los minions de Salt) para sincronizar su hora con un servidor horario externo, como pool.ntp.org, y configurará todos los demás minions para obtener su hora del servidor horario interno. Esto se puede lograr de la siguiente manera:

    root@master # ceph-salt config /time_server/servers add ses-master.example.com
    root@master # ceph-salt config /time_server/external_servers add pool.ntp.org

    La opción /time_server/subnet especifica la subred desde la que los clientes NTP pueden acceder al servidor NTP. Se define automáticamente al especificar /time_server/servers. Si necesita cambiarlo o especificarlo manualmente, ejecute:

    root@master # ceph-salt config /time_server/subnet set 10.20.6.0/24

Compruebe los ajustes del servidor horario:

root@master # ceph-salt config /time_server ls
o- time_server ................................................ [enabled]
  o- external_servers ............................................... [1]
  | o- pool.ntp.org ............................................... [...]
  o- servers ........................................................ [1]
  | o- ses-master.example.com ..................................... [...]
  o- subnet .............................................. [10.20.6.0/24]

Encontrará más información sobre cómo configurar la sincronización horaria en https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-ntp.html#sec-ntp-yast.

5.3.2.9 Configuración de las credenciales de entrada de Ceph Dashboard

Ceph Dashboard estará disponible después de la distribución del clúster básico. Para acceder a la consola, debe definir un nombre de usuario y una contraseña válidos, por ejemplo:

root@master # ceph-salt config /cephadm_bootstrap/dashboard/username set admin
root@master # ceph-salt config /cephadm_bootstrap/dashboard/password set PWD
Sugerencia
Sugerencia: forzar la actualización de la contraseña

Por defecto, el primer usuario de la consola se verá obligado a cambiar su contraseña la primera vez que entre a la consola. Para inhabilitar esta función, ejecute el comando siguiente:

root@master # ceph-salt config /cephadm_bootstrap/dashboard/force_password_update disable

5.3.2.10 Configuración de la vía a las imágenes de contenedor

cephadm necesita conocer una vía URI válida a las imágenes de contenedor que se utilizará durante el paso de distribución. Verifique si la vía por defecto está definida:

root@master # ceph-salt config /cephadm_bootstrap/ceph_image_path ls

Si no hay ninguna vía por defecto definida. o si la distribución requiere una vía específica, añádala de la siguiente manera:

root@master # ceph-salt config /cephadm_bootstrap/ceph_image_path set registry.suse.com/ses/7/ceph/ceph
Nota
Nota

Para la pila de supervisión, se necesitan más imágenes de contenedor. En el caso de una distribución para entornos aislados, así como para distribuir desde un registro local, es posible que desee obtener esas imágenes en este momento para preparar el registro local en consecuencia.

Tenga en cuenta que ceph-salt no utilizará esas imágenes de contenedor para la distribución. Es una preparación para un paso posterior en el que se utilizará cephadm para distribuir o migrar componentes de supervisión.

Para obtener más información acerca de las imágenes utilizadas por la pila de supervisión y cómo personalizarlas, visite Book “Guía de administración y operaciones”, Chapter 16 “Supervisión y alertas”, Section 16.1 “Configuración de imágenes personalizadas o locales”.

5.3.2.11 Configuración del registro del contenedor

Opcionalmente, puede definir un registro de contenedor local. Servirá como duplicado del registro registry.suse.com. Recuerde que debe volver a sincronizar el registro local siempre que haya nuevos contenedores actualizados disponibles en registry.suse.com.

La creación de un registro local es útil en las siguientes situaciones:

  • Si tiene muchos nodos de clúster y desea ahorrar tiempo de descarga y ancho de banda creando un duplicado local de imágenes de contenedor.

  • Si el clúster no tiene acceso al registro en línea (una distribución en un entorno aislado) y necesita un duplicado local desde el que extraer las imágenes del contenedor.

  • Si los problemas de configuración o de red impiden que el clúster acceda a los registros remotos a través de un enlace seguro. En este caso, necesitará un registro local sin cifrar.

Importante
Importante

Para distribuir soluciones temporales de programa (PTF) en un sistema compatible, es necesario distribuir un registro de contenedor local.

Para configurar una URL de registro local junto con las credenciales de acceso, haga lo siguiente:

  1. Configure la URL del registro local:

    cephuser@adm > ceph-salt config /containers/registry_auth/registry set REGISTRY_URL
  2. Configure el nombre de usuario y la contraseña para acceder al registro local:

    cephuser@adm > ceph-salt config /containers/registry_auth/username set REGISTRY_USERNAME
    cephuser@adm > ceph-salt config /containers/registry_auth/password set REGISTRY_PASSWORD
  3. Ejecute ceph-salt apply para actualizar el pilar de Salt en todos los minions.

Sugerencia
Sugerencia: caché de registro

Para evitar que se deba sincronizar de nuevo el registro local cuando aparezcan nuevos contenedores actualizados, puede configurar un caché de registro.

Los métodos de entrega y desarrollo de aplicaciones nativas en la nube requieren un registro y una instancia de CI/CD (integración/entrega continua) para el desarrollo y la producción de imágenes de contenedor. Puede utilizar un registro privado en esta instancia.

5.3.2.12 Habilitación del cifrado en curso de datos (msgr2)

El protocolo Messenger v2 (MSGR2) es el protocolo con conexión de Ceph. Proporciona un modo de seguridad que cifra todos los datos que pasan por la red, encapsula las cargas útiles de autenticación y permite la integración futura de nuevos modos de autenticación (como Kerberos).

Importante
Importante

msgr2 no es compatible actualmente con los clientes de Ceph del kernel de Linux, como CephFS y el dispositivo de bloques RADOS.

Los daemons de Ceph se pueden asociar a varios puertos, lo que permite que tanto los clientes de Ceph legados como los nuevos clientes compatibles con v2 se conecten al mismo clúster. Por defecto, los MON se asocian ahora al nuevo puerto 3300 asignado por IANA (CE4h o 0xCE4) para el nuevo protocolo v2, y además se asocian al antiguo puerto por defecto 6789 para el protocolo legado v1.

El protocolo v2 (MSGR2) admite dos modos de conexión:

crc mode

Una autenticación inicial sólida cuando se establece la conexión y una comprobación de integridad CRC32C.

secure mode

Una autenticación inicial sólida cuando se establece la conexión y un cifrado completo de todo el tráfico posterior a la autenticación, incluida una comprobación de la integridad criptográfica.

Para la mayoría de las conexiones, existen opciones que controlan los modos que se utilizan:

ms_cluster_mode

El modo de conexión (o modos permitidos) utilizado para la comunicación dentro del clúster entre los daemons de Ceph. Si se muestran varios modos, se prefieren los que aparecen en primer lugar.

ms_service_mode

Una lista de los modos permitidos que pueden utilizar los clientes al conectarse al clúster.

ms_client_mode

Una lista de modos de conexión, en orden de preferencia, que los clientes pueden utilizar (o permitir) al comunicarse con un clúster de Ceph.

Existe un conjunto paralelo de opciones que se aplican específicamente a los monitores, lo que permite a los administradores establecer distintos requisitos (normalmente más seguros) en la comunicación con esos monitores.

ms_mon_cluster_mode

El modo de conexión (o modos permitidos) que se utilizará entre monitores.

ms_mon_service_mode

Una lista de modos permitidos para que los clientes u otros daemons de Ceph los utilicen al conectarse a los monitores.

ms_mon_client_mode

Una lista de modos de conexión, en orden de preferencia, para que los clientes o los daemons que no sean de monitor utilicen al conectarse a los monitores.

Para habilitar el modo de cifrado MSGR2 durante la distribución, debe añadir algunas opciones a la configuración de ceph-salt antes de ejecutar ceph-salt apply.

Para utilizar el modo secure, ejecute los comandos siguientes.

Añada la sección global a ceph_conf en la herramienta de configuración ceph-salt:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf add global

Defina las opciones siguientes:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_cluster_mode "secure crc"
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode "secure crc"
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode "secure crc"
Nota
Nota

Asegúrese de que secure vaya delante de crc.

Para forzar el modo seguro, ejecute los comandos siguientes:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_cluster_mode secure
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode secure
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode secure
Sugerencia
Sugerencia: actualización de ajustes

Si desea cambiar alguno de los ajustes anteriores, defina los cambios de configuración en el almacén de configuración del monitor. Esto se consigue mediante el comando ceph config set.

root@master # ceph config set global CONNECTION_OPTION CONNECTION_MODE [--force]

Por ejemplo:

root@master # ceph config set global ms_cluster_mode "secure crc"

Si desea comprobar el valor actual, incluido el valor por defecto, ejecute el comando siguiente:

root@master # ceph config get CEPH_COMPONENT CONNECTION_OPTION

Por ejemplo, para obtener el modo ms_cluster_mode para los OSD, ejecute:

root@master # ceph config get osd ms_cluster_mode

5.3.2.13 Configuración de la red del clúster

Opcionalmente, si ejecuta una red de clúster independiente, es posible que deba definir la dirección IP de la red del clúster seguida de la parte de la máscara de subred después de la barra inclinada, por ejemplo: 192.168.10.22/24.

Ejecute los comandos siguientes para habilitar cluster_network:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf add global
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set cluster_network NETWORK_ADDR

5.3.2.14 Verificación de la configuración del clúster

La configuración mínima del clúster ha finalizado. Examínela en busca de errores obvios:

root@master # ceph-salt config ls
o- / ............................................................... [...]
  o- ceph_cluster .................................................. [...]
  | o- minions .............................................. [Minions: 5]
  | | o- ses-master.example.com .................................. [admin]
  | | o- ses-min1.example.com ......................... [bootstrap, admin]
  | | o- ses-min2.example.com ................................. [no roles]
  | | o- ses-min3.example.com ................................. [no roles]
  | | o- ses-min4.example.com ................................. [no roles]
  | o- roles ....................................................... [...]
  |   o- admin .............................................. [Minions: 2]
  |   | o- ses-master.example.com ....................... [no other roles]
  |   | o- ses-min1.example.com ................. [other roles: bootstrap]
  |   o- bootstrap ................................ [ses-min1.example.com]
  |   o- cephadm ............................................ [Minions: 5]
  |   o- tuned ..................................................... [...]
  |     o- latency .......................................... [no minions]
  |     o- throughput ....................................... [no minions]
  o- cephadm_bootstrap ............................................. [...]
  | o- advanced .................................................... [...]
  | o- ceph_conf ................................................... [...]
  | o- ceph_image_path ............... [registry.suse.com/ses/7/ceph/ceph]
  | o- dashboard ................................................... [...]
  |   o- force_password_update ................................. [enabled]
  |   o- password ................................... [randomly generated]
  |   o- username ................................................ [admin]
  | o- mon_ip ............................................ [192.168.10.20]
  o- containers .................................................... [...]
  | o- registries_conf ......................................... [enabled]
  | | o- registries .............................................. [empty]
  | o- registry_auth ............................................... [...]
  |   o- password .............................................. [not set]
  |   o- registry .............................................. [not set]
  |   o- username .............................................. [not set]
  o- ssh .................................................. [Key Pair set]
  | o- private_key ..... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  | o- public_key ...... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  o- time_server ............................................... [enabled]
    o- external_servers .............................................. [1]
    | o- 0.pt.pool.ntp.org ......................................... [...]
    o- servers ....................................................... [1]
    | o- ses-master.example.com .................................... [...]
    o- subnet ............................................. [10.20.6.0/24]
Sugerencia
Sugerencia: estado de la configuración del clúster

Puede comprobar si la configuración del clúster es válida ejecutando el comando siguiente:

root@master # ceph-salt status
cluster: 5 minions, 0 hosts managed by cephadm
config: OK

5.3.2.15 Exportación de configuraciones de clúster

Después de haber configurado el clúster básico y comprobar que su configuración es válida, es recomendable exportar la configuración a un archivo:

root@master # ceph-salt export > cluster.json
Aviso
Aviso

El resultado de ceph-salt export incluye la clave privada SSH. Si le preocupan las implicaciones de seguridad, no ejecute este comando sin tomar las precauciones oportunas.

En caso de que se interrumpa la configuración del clúster y necesite volver a un estado de copia de seguridad, ejecute:

root@master # ceph-salt import cluster.json

5.3.3 Actualización de nodos y clúster mínimo de arranque

Antes de distribuir el clúster, actualice todos los paquetes de software en todos los nodos:

root@master # ceph-salt update

Si un nodo informa de que es necesario reiniciar durante la actualización, los paquetes del sistema operativo importantes, como el kernel, se actualizaron a una versión más reciente y es necesario reiniciar el nodo para aplicar los cambios.

Para reiniciar todos los nodos que requieren reinicio, añada la opción --reboot

root@master # ceph-salt update --reboot

O bien, reinícielos en un paso independiente:

root@master # ceph-salt reboot
Importante
Importante

El master de Salt nunca se reinicia mediante los comandos ceph-salt update --reboot o ceph-salt reboot. Si es necesario reiniciar el master de Salt, deberá hacerlo manualmente.

Después de actualizar los nodos, arranque el clúster mínimo:

root@master # ceph-salt apply
Nota
Nota

Cuando se complete el proceso, el clúster tendrá un monitor Ceph Monitor y una instancia de Ceph Manager.

El comando anterior abrirá una interfaz de usuario interactiva que muestra el progreso actual de cada minion.

Distribución de un clúster mínimo
Figura 5.1: Distribución de un clúster mínimo
Sugerencia
Sugerencia: modo no interactivo

Si necesita aplicar la configuración desde un guion, también existe un modo de distribución no interactivo. Esto también resulta útil cuando se distribuye el clúster desde un equipo remoto, ya que la actualización constante de la información de progreso en la pantalla a través de la red puede resultar una distracción:

root@master # ceph-salt apply --non-interactive

5.3.4 Revisión de los pasos finales

Después de que se haya completado el comando ceph-salt apply, debe tener un monitor de Ceph Monitor y una instancia de Ceph Manager. Debería poder ejecutar el comando ceph status correctamente en cualquiera de los minions a los que se les haya asignado la función de administrador como usuario root o como usuario cephadm mediante sudo.

Los siguientes pasos implican el uso de cephadm para distribuir Ceph Monitor, Ceph Manager, los OSD, la pila de supervisión y pasarelas adicionales.

Antes de continuar, revise la configuración de red del nuevo clúster. En este punto, el ajuste public_network se ha completado en función de lo que se haya introducido para /cephadm_bootstrap/mon_ip en la configuración de ceph-salt. Sin embargo, este ajuste solo se ha aplicado a Ceph Monitor. Puede revisar este ajuste con el comando siguiente:

root@master # ceph config get mon public_network

Esto es lo mínimo que Ceph requiere para funcionar, pero se recomienda convertir este ajuste public_network como global, lo que significa que se aplicará a todos los tipos de daemons de Ceph, y no solo a los MON:

root@master # ceph config set global public_network "$(ceph config get mon public_network)"
Nota
Nota

Este paso no es obligatorio. Sin embargo, si no utiliza este ajuste, los OSD de Ceph y otros daemons (excepto Ceph Monitor) escucharán en todas las direcciones.

Si desea que los OSD se comuniquen entre sí mediante una red completamente independiente, ejecute el comando siguiente:

root@master # ceph config set global cluster_network "cluster_network_in_cidr_notation"

La ejecución de este comando garantizará que los OSD creados en la distribución utilicen la red de clúster deseada desde el principio.

Si el clúster está configurado para tener nodos densos (más de 62 OSD por host), asegúrese de asignar suficientes puertos para los OSD de Ceph. El rango por defecto (6800-7300) no permite actualmente más de 62 OSD por host. Para un clúster con nodos densos, ajuste ms_bind_port_max con un valor adecuado. Cada OSD consumirá ocho puertos adicionales. Por ejemplo, si se configura un host para que ejecute 96 OSD, se necesitarán 768 puertos. ms_bind_port_max debe definirse al menos en 7568 ejecutando el comando siguiente:

root@master # ceph config set osd.* ms_bind_port_max 7568

Deberá ajustar la configuración del cortafuegos en consecuencia para que esto funcione. Consulte el Book “Troubleshooting Guide”, Chapter 13 “Hints and tips”, Section 13.7 “Firewall settings for Ceph” para obtener más información.

5.4 Distribución de servicios y pasarelas

Después de distribuir el clúster de Ceph básico, distribuya los servicios principales a más nodos del clúster. Para que los clientes puedan acceder a los datos del clúster, distribuya también servicios adicionales.

Actualmente, se admite la distribución de servicios de Ceph en la línea de comandos mediante Ceph Orchestrator (subcomandos de ceph orch).

5.4.1 El comando ceph orch

El comando ceph orch de Ceph Orchestrator, que es una interfaz para el módulo cephadm, se encarga de mostrar los componentes del clúster y de distribuir los servicios de Ceph en los nuevos nodos del clúster.

5.4.1.1 Visualización del estado del orquestador

El comando siguiente muestra el modo y el estado actuales de Ceph Orchestrator.

cephuser@adm > ceph orch status

5.4.1.2 Listado de dispositivos, servicios y daemons

Para mostrar todos los dispositivos del disco, ejecute lo siguiente:

cephuser@adm > ceph orch device ls
Hostname   Path      Type  Serial  Size   Health   Ident  Fault  Available
ses-master /dev/vdb  hdd   0d8a... 10.7G  Unknown  N/A    N/A    No
ses-min1   /dev/vdc  hdd   8304... 10.7G  Unknown  N/A    N/A    No
ses-min1   /dev/vdd  hdd   7b81... 10.7G  Unknown  N/A    N/A    No
[...]
Sugerencia
Sugerencia: servicios y daemons

Un servicio es un término general que se usa para un servicio de Ceph de un tipo específico, por ejemplo, Ceph Manager.

Un daemon es una instancia específica de un servicio, por ejemplo, un proceso mgr.ses-min1.gdlcik que se ejecuta en un nodo llamado ses-min1.

Para mostrar todos los servicios conocidos por cephadm, ejecute:

cephuser@adm > ceph orch ls
NAME  RUNNING  REFRESHED  AGE  PLACEMENT  IMAGE NAME                  IMAGE ID
mgr       1/0  5m ago     -    <no spec>  registry.example.com/[...]  5bf12403d0bd
mon       1/0  5m ago     -    <no spec>  registry.example.com/[...]  5bf12403d0bd
Sugerencia
Sugerencia

Puede limitar la lista a los servicios de un nodo concreto con el parámetro opcional ‑‑host y los servicios de un tipo concreto con el parámetro opcional --service-type (los tipos aceptables son mon, osd, mgr, mds y rgw).

Para mostrar todos los daemons en ejecución distribuidos por cephadm, ejecute:

cephuser@adm > ceph orch ps
NAME            HOST     STATUS   REFRESHED AGE VERSION    IMAGE ID     CONTAINER ID
mgr.ses-min1.gd ses-min1 running) 8m ago    12d 15.2.0.108 5bf12403d0bd b8104e09814c
mon.ses-min1    ses-min1 running) 8m ago    12d 15.2.0.108 5bf12403d0bd a719e0087369
Sugerencia
Sugerencia

Para consultar el estado de un daemon concreto, utilice --daemon_type y --daemon_id. Para los OSD, el ID es el ID de OSD numérico. Para MDS, el ID es el nombre del de archivos:

cephuser@adm > ceph orch ps --daemon_type osd --daemon_id 0
cephuser@adm > ceph orch ps --daemon_type mds --daemon_id my_cephfs

5.4.2 Especificación del servicio y la colocación

La forma recomendada de especificar la distribución de los servicios de Ceph es crear un archivo con formato YAML con la especificación de los servicios que desea distribuir.

5.4.2.1 Creación de especificaciones de servicio

Puede crear un archivo de especificación independiente para cada tipo de servicio, por ejemplo:

root@master # cat nfs.yml
service_type: nfs
service_id: EXAMPLE_NFS
placement:
  hosts:
  - ses-min1
  - ses-min2
spec:
  pool: EXAMPLE_POOL
  namespace: EXAMPLE_NAMESPACE

Como alternativa, puede especificar varios tipos de servicios, o todos ellos en un archivo (por ejemplo, cluster.yml) que describe qué nodos ejecutarán servicios específicos. Recuerde separar los tipos de servicios individuales con tres guiones (---):

cephuser@adm > cat cluster.yml
service_type: nfs
service_id: EXAMPLE_NFS
placement:
  hosts:
  - ses-min1
  - ses-min2
spec:
  pool: EXAMPLE_POOL
  namespace: EXAMPLE_NAMESPACE
---
service_type: rgw
service_id: REALM_NAME.ZONE_NAME
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
---
[...]

Las propiedades mencionadas anteriormente tienen el siguiente significado:

service_type

El tipo de servicio. Puede ser un servicio de Ceph (mon, mgr, mds, crash, osd o rbd-mirror), una pasarela (nfs o rgw) o parte de la pila de supervisión (alertmanager, grafana, node-exporter o prometheus).

service_id

El nombre del servicio. Las especificaciones de tipo mon, mgr, alertmanager, grafana, node-exporter y prometheus no requieren la propiedad service_id.

placement

Especifica qué nodos ejecutarán el servicio. Consulte la Sección 5.4.2.2, “Creación de especificaciones de colocación” para obtener más información.

spec

Especificación adicional relevante para el tipo de servicio.

Sugerencia
Sugerencia: aplicación de servicios específicos

Los servicios del clúster de Ceph suelen tener varias propiedades específicas. Para obtener ejemplos y detalles de cada especificación de servicios, consulte la Sección 5.4.3, “Distribución de servicios de Ceph”.

5.4.2.2 Creación de especificaciones de colocación

Para distribuir los servicios de Ceph, cephadm necesita saber en qué nodos debe distribuirlos. Utilice la propiedad placement y muestre los nombres de host cortos de los nodos a los que se aplica el servicio:

cephuser@adm > cat cluster.yml
[...]
placement:
  hosts:
  - host1
  - host2
  - host3
[...]

5.4.2.3 Aplicación de la especificación del clúster

Después de crear un archivo cluster.yml completo con las especificaciones de todos los servicios y su colocación, puede aplicar el clúster ejecutando el comando siguiente:

cephuser@adm > ceph orch apply -i cluster.yml

Para ver el estado del clúster, ejecute el comando ceph orch status. Para obtener más información, consulte la Sección 5.4.1.1, “Visualización del estado del orquestador”.

5.4.2.4 Exportación de la especificación de un clúster en ejecución

Aunque ha distribuido servicios al clúster de Ceph mediante los archivos de especificación como se describe en la Sección 5.4.2, “Especificación del servicio y la colocación”, la configuración del clúster puede diferir de la original durante su funcionamiento. Además, es posible que haya eliminado los archivos de especificación accidentalmente.

Para recuperar una especificación completa de un clúster en ejecución, ejecute:

cephuser@adm > ceph orch ls --export
placement:
  hosts:
  - hostname: ses-min1
    name: ''
    network: ''
service_id: my_cephfs
service_name: mds.my_cephfs
service_type: mds
---
placement:
  count: 2
service_name: mgr
service_type: mgr
---
[...]
Sugerencia
Sugerencia

Puede añadir la opción --format para cambiar el formato de salida yaml por defecto. Puede seleccionar json, json-pretty o yaml. Por ejemplo:

ceph orch ls --export --format json

5.4.3 Distribución de servicios de Ceph

Cuando el clúster básico esté en ejecución, puede distribuir los servicios de Ceph a nodos adicionales.

5.4.3.1 Distribución de monitores Ceph Monitor y gestores Ceph Manager

El clúster de Ceph tiene tres o cinco MON distribuidos en distintos nodos. Si hay cinco o más nodos en el clúster, se recomienda distribuir cinco MON. Una práctica recomendada consiste en distribuir los MGR en los mismos nodos que los MON.

Importante
Importante: inclusión de MON de arranque

Al distribuir MON y MGR, recuerde incluir el primer MON que haya añadido al configurar el clúster básico en la Sección 5.3.2.5, “Especificación del primer nodo de MON/MGR”.

Para distribuir MON, aplique la siguiente especificación:

service_type: mon
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
Nota
Nota

Si necesita añadir otro nodo, añada el nombre de host al final de la misma lista de YAML. Por ejemplo:

service_type: mon
placement:
 hosts:
 - ses-min1
 - ses-min2
 - ses-min3
 - ses-min4

Del mismo modo, para distribuir MGR, aplique la siguiente especificación:

Importante
Importante

Asegúrese de que la distribución tenga al menos tres Ceph Manager en cada distribución.

service_type: mgr
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
Sugerencia
Sugerencia

Si los MON o MGR no se encuentran en la misma subred, deberá añadir las direcciones de subred al final. Por ejemplo:

service_type: mon
placement:
  hosts:
  - ses-min1:10.1.2.0/24
  - ses-min2:10.1.5.0/24
  - ses-min3:10.1.10.0/24

5.4.3.2 Distribución de los OSD de Ceph

Importante
Importante: cuando el dispositivo de almacenamiento está disponible

Un dispositivo de almacenamiento se considera que está disponible si se cumplen todas las condiciones siguientes:

  • El dispositivo no tiene particiones.

  • El dispositivo no tiene ningún estado de LVM.

  • El dispositivo no está montado.

  • El dispositivo no contiene un sistema de archivos.

  • El dispositivo no contiene un OSD de BlueStore.

  • El dispositivo tiene más de 5 GB.

Si no se cumplen las condiciones anteriores, Ceph se niega a aprovisionar dichos OSD.

Hay dos formas de distribuir los OSD:

  • Indique a Ceph que consuma todos los dispositivos de almacenamiento disponibles y no utilizados:

    cephuser@adm > ceph orch apply osd --all-available-devices
  • Utilice DriveGroups (consulte el Book “Guía de administración y operaciones”, Chapter 13 “Tareas operativas”, Section 13.4.3 “Adición de OSD mediante la especificación DriveGroups”) para crear una especificación de OSD que describa los dispositivos que se distribuirán en función de sus propiedades, como el tipo de dispositivo (SSD o HDD), el nombre de modelo del dispositivo, el tamaño o los nodos en los que existen los dispositivos. A continuación, aplique la especificación ejecutando el comando siguiente:

    cephuser@adm > ceph orch apply osd -i drive_groups.yml

5.4.3.3 Distribución de servidores de metadatos

CephFS requiere uno o varios servicios de servidor de metadatos (MDS). Para crear un CephFS, primero cree servidores MDS aplicando la siguiente especificación:

Nota
Nota

Asegúrese de tener al menos dos repositorios creados, uno para los datos de CephFS y otro para los metadatos de CephFS, antes de aplicar la siguiente especificación.

service_type: mds
service_id: CEPHFS_NAME
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3

Después de que los MDS sean funcionales, cree el CephFS:

ceph fs new CEPHFS_NAME metadata_pool data_pool

5.4.3.4 Distribución de pasarelas Object Gateways

cephadm distribuye una pasarela Object Gateway como una colección de daemons que gestionan un dominio y una zona concretos.

Puede relacionar un servicio de Object Gateway con un dominio y una zona ya existentes (consulte el Book “Guía de administración y operaciones”, Chapter 21 “Ceph Object Gateway”, Section 21.13 “Pasarelas Object Gateway de varios sitios” para obtener más información), o puede especificar un REALM_NAME y ZONE_NAME que no existan y se crearán automáticamente después de aplicar la siguiente configuración:

service_type: rgw
service_id: REALM_NAME.ZONE_NAME
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
spec:
  rgw_realm: RGW_REALM
  rgw_zone: RGW_ZONE
5.4.3.4.1 Uso del acceso SSL seguro

Para utilizar una conexión SSL segura con Object Gateway, necesita un par de archivos de clave y certificado SSL válidos (consulte el Book “Guía de administración y operaciones”, Chapter 21 “Ceph Object Gateway”, Section 21.7 “Habilitación de HTTPS/SSL para pasarelas Object Gateway” para obtener más información). Debe habilitar SSL, especificar un número de puerto para las conexiones SSL y los archivos de certificado SSL y de clave.

Para habilitar SSL y especificar el número de puerto, incluya lo siguiente en la especificación:

spec:
  ssl: true
  rgw_frontend_port: 443

Para especificar el certificado SSL y la clave, puede pegar su contenido directamente en el archivo de especificación YAML. El signo de barra vertical (|) al final de la línea indica al analizador que debe esperar una cadena de varias líneas como valor. Por ejemplo:

spec:
  ssl: true
  rgw_frontend_port: 443
  rgw_frontend_ssl_certificate: |
   -----BEGIN CERTIFICATE-----
   MIIFmjCCA4KgAwIBAgIJAIZ2n35bmwXTMA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNV
   BAYTAkFVMQwwCgYDVQQIDANOU1cxHTAbBgNVBAoMFEV4YW1wbGUgUkdXIFNTTCBp
   [...]
   -----END CERTIFICATE-----
   rgw_frontend_ssl_key: |
   -----BEGIN PRIVATE KEY-----
   MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQDLtFwg6LLl2j4Z
   BDV+iL4AO7VZ9KbmWIt37Ml2W6y2YeKX3Qwf+3eBz7TVHR1dm6iPpCpqpQjXUsT9
   [...]
   -----END PRIVATE KEY-----
Sugerencia
Sugerencia

En lugar de pegar el contenido del certificado SSL y los archivos de clave, puede omitir las palabras clave rgw_frontend_ssl_certificate: y rgw_frontend_ssl_key: y cargarlos en la base de datos de configuración

cephuser@adm > ceph config-key set rgw/cert/REALM_NAME/ZONE_NAME.crt \
 -i SSL_CERT_FILE
cephuser@adm > ceph config-key set rgw/cert/REALM_NAME/ZONE_NAME.key \
 -i SSL_KEY_FILE
5.4.3.4.2 Distribución con un subclúster

Los subclústeres ayudan a organizar los nodos de los clústeres para aislar las cargas de trabajo y facilitar el escalado elástico. Si va a distribuir con un subclúster, aplique la siguiente configuración:

service_type: rgw
service_id: REALM_NAME.ZONE_NAME.SUBCLUSTER
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
spec:
  rgw_realm: RGW_REALM
  rgw_zone: RGW_ZONE
  subcluster: SUBCLUSTER

5.4.3.5 Distribución de pasarelas iSCSI Gateway

cephadm distribuye una instancia de iSCSI Gateway, que es un protocolo de red de área de almacenamiento (SAN) que permite a los clientes (denominados iniciadores) enviar comandos SCSI a dispositivos de almacenamiento SCSI (destinos) en servidores remotos.

Aplique la siguiente configuración para la distribución. Asegúrese de que trusted_ip_list contiene las direcciones IP de todos los nodos de iSCSI Gateway y de Ceph Manager (consulte el resultado de ejemplo a continuación).

Nota
Nota

Asegúrese de crear el repositorio antes de aplicar la siguiente especificación.

service_type: iscsi
service_id: EXAMPLE_ISCSI
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
spec:
  pool: EXAMPLE_POOL
  api_user: EXAMPLE_USER
  api_password: EXAMPLE_PASSWORD
  trusted_ip_list: "IP_ADDRESS_1,IP_ADDRESS_2"
Nota
Nota

Asegúrese de que las direcciones IP mostradas para trusted_ip_list no tienen un espacio después de la separación por comas.

5.4.3.5.1 Configuración SSL segura

Para utilizar una conexión SSL segura entre Ceph Dashboard y la API de destino iSCSI, necesita un par de archivos de clave y certificado SSL válidos. Estos pueden ser emitidos por una autoridad certificadora o autofirmados (consulte el Book “Guía de administración y operaciones”, Chapter 10 “Configuración manual”, Section 10.1.1 “Creación de certificados autofirmados”). Para habilitar SSL, incluya el ajuste api_secure: true en el archivo de especificación:

spec:
  api_secure: true

Para especificar el certificado SSL y la clave, puede pegar el contenido directamente en el archivo de especificación YAML. El signo de barra vertical (|) al final de la línea indica al analizador que debe esperar una cadena de varias líneas como valor. Por ejemplo:

spec:
  pool: EXAMPLE_POOL
  api_user: EXAMPLE_USER
  api_password: EXAMPLE_PASSWORD
  trusted_ip_list: "IP_ADDRESS_1,IP_ADDRESS_2"
  api_secure: true
  ssl_cert: |
    -----BEGIN CERTIFICATE-----
    MIIDtTCCAp2gAwIBAgIYMC4xNzc1NDQxNjEzMzc2MjMyXzxvQ7EcMA0GCSqGSIb3
    DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARVdGFoMRcwFQYDVQQHDA5T
    [...]
    -----END CERTIFICATE-----
  ssl_key: |
    -----BEGIN PRIVATE KEY-----
    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5jdYbjtNTAKW4
    /CwQr/7wOiLGzVxChn3mmCIF3DwbL/qvTFTX2d8bDf6LjGwLYloXHscRfxszX/4h
    [...]
    -----END PRIVATE KEY-----

5.4.3.6 Distribución de NFS Ganesha

cephadm distribuye NFS Ganesha mediante un repositorio RADOS predefinido y un espacio de nombres opcional. Para distribuir NFS Ganesha, aplique la siguiente especificación:

Nota
Nota

Debe tener un repositorio RADOS predefinido; de lo contrario, la operación ceph orch apply fallará. Para obtener más información sobre cómo crear un repositorio, consulte el Book “Guía de administración y operaciones”, Chapter 18 “Gestión de repositorios de almacenamiento”, Section 18.1 “Creación de un repositorio”.

service_type: nfs
service_id: EXAMPLE_NFS
placement:
  hosts:
  - ses-min1
  - ses-min2
spec:
  pool: EXAMPLE_POOL
  namespace: EXAMPLE_NAMESPACE
  • Sustituya EXAMPLE_NFS con una cadena arbitraria que identifique la exportación de NFS.

  • Sustituya EXAMPLE_POOL con el nombre del repositorio en el que se almacenará el objeto de configuración RADOS de NFS Ganesha.

  • Sustituya EXAMPLE_NAMESPACE (opcional) con el espacio de nombres NFS de Object Gateway deseado (por ejemplo, ganesha)

5.4.3.7 Distribución de rbd-mirror

El servicio rbd-mirror se encarga de sincronizar las imágenes del dispositivo de bloques RADOS entre dos clústeres de Ceph (para obtener más información, consulte el Book “Guía de administración y operaciones”, Chapter 20 “Dispositivo de bloques RADOS”, Section 20.4 “Duplicados de imagen RBD”). Para distribuir rbd-mirror, utilice la siguiente especificación:

service_type: rbd-mirror
service_id: EXAMPLE_RBD_MIRROR
placement:
  hosts:
  - ses-min3

5.4.3.8 Distribución de la pila de supervisión

La pila de supervisión está formada por Prometheus, los exportadores de Prometheus, Prometheus Alertmanager y Grafana. Ceph Dashboard utiliza estos componentes para almacenar y visualizar métricas detalladas sobre el uso y el rendimiento del clúster.

Sugerencia
Sugerencia

Si la distribución requiere imágenes de contenedor personalizadas o servidas localmente de los servicios de la pila de supervisión, consulte el Book “Guía de administración y operaciones”, Chapter 16 “Supervisión y alertas”, Section 16.1 “Configuración de imágenes personalizadas o locales”.

Para distribuir la pila de supervisión, siga estos pasos:

  1. Habilite el módulo prometheus en el daemon de Ceph Manager. Esto expone las métricas internas de Ceph para que Prometheus pueda leerlas:

    cephuser@adm > ceph mgr module enable prometheus
    Nota
    Nota

    Asegúrese de que este comando se ejecuta antes de distribuir Prometheus. Si el comando no se ejecutó antes de la distribución, debe volver a distribuir Prometheus para actualizar la configuración de Prometheus:

    cephuser@adm > ceph orch redeploy prometheus
  2. Cree un archivo de especificación (por ejemplo, monitoring.yaml) con un contenido similar al siguiente:

    service_type: prometheus
    placement:
      hosts:
      - ses-min2
    ---
    service_type: node-exporter
    ---
    service_type: alertmanager
    placement:
      hosts:
      - ses-min4
    ---
    service_type: grafana
    placement:
      hosts:
      - ses-min3
  3. Aplique los servicios de supervisión ejecutando:

    cephuser@adm > ceph orch apply -i monitoring.yaml

    La distribución de los servicios de supervisión puede tardar uno o dos minutos.

Importante
Importante

Prometheus, Grafana y Ceph Dashboard se configuran automáticamente para comunicarse entre sí, lo que da como resultado una integración totalmente funcional de Grafana en Ceph Dashboard cuando se distribuyen como se describe anteriormente.

La única excepción a esta regla es la supervisión con imágenes RBD. Consulte el Book “Guía de administración y operaciones”, Chapter 16 “Supervisión y alertas”, Section 16.5.4 “Habilitación de la supervisión de imágenes RBD” para obtener más información.

Parte III Instalación de servicios adicionales

  • 6 Instalación de iSCSI Gateway
  • iSCSI es un protocolo de red de área de almacenamiento (SAN) que permite a los clientes (denominados iniciadores) enviar comandos SCSI a dispositivos de almacenamiento SCSI (destinos) en servidores remotos. SUSE Enterprise Storage 7 incluye una utilidad que permite gestionar el almacenamiento de Cep…

6 Instalación de iSCSI Gateway

iSCSI es un protocolo de red de área de almacenamiento (SAN) que permite a los clientes (denominados iniciadores) enviar comandos SCSI a dispositivos de almacenamiento SCSI (destinos) en servidores remotos. SUSE Enterprise Storage 7 incluye una utilidad que permite gestionar el almacenamiento de Ceph en diversos clientes, como Microsoft Windows* y VMware* vSphere, mediante el protocolo iSCSI. El acceso iSCSI de múltiples rutas aporta disponibilidad y capacidad de ampliación para estos clientes, mientras que el protocolo iSCSI estandarizado también proporciona una capa adicional de aislamiento de seguridad entre los clientes y el clúster de SUSE Enterprise Storage 7. La utilidad de configuración se denomina ceph-iscsi. Mediante ceph-iscsi, los administradores de almacenamiento de Ceph pueden definir volúmenes de provisión ligera, replicados y de alta disponibilidad compatibles con las instantáneas de solo lectura, los clones de lectura y escritura y el cambio de tamaño automático con el dispositivo de bloques RADOS (RBD) de Ceph. Los administradores pueden, a continuación, exportar volúmenes a través de un host de pasarela ceph-iscsi único o a través de varios hosts de pasarela que admitan failover de múltiples rutas. Los hosts de Linux, Microsoft Windows y VMware pueden conectarse a los volúmenes mediante el protocolo iSCSI, por lo que están disponibles igual que cualquier otro dispositivo de bloques SCSI. Esto significa que los clientes de SUSE Enterprise Storage 7 pueden ejecutar de forma eficaz un subsistema completo de infraestructura de almacenamiento de bloques en Ceph que proporcione todas las funciones y ventajas de una SAN convencional, lo que permite el crecimiento en el futuro.

Este capítulo presenta información detallada para configurar una infraestructura de clúster de Ceph junto con una pasarela iSCSI para que los hosts del cliente puedan utilizar los datos almacenados de forma remota como dispositivos de almacenamiento local mediante el protocolo iSCSI.

6.1 Almacenamiento de bloques iSCSI

iSCSI es una implementación del conjunto de comandos Small Computer System Interface (SCSI, interfaz de sistema informático pequeño) que usa el protocolo de Internet (IP) especificado en la RFC 3720. iSCSI se implementa como un servicio en el que un cliente (iniciador) se comunica con un servidor (destino) a través de una sesión en el puerto TCP 3260. La dirección IP y el puerto de un destino iSCSI se denominan portal iSCSI, y un destino puede quedar expuesto mediante uno o varios portales. La combinación de un destino y uno o más portales se denomina grupo de portal de destino (TPG).

El protocolo de capa de enlace de datos subyacente para iSCSI suele ser Ethernet. Más concretamente, las infraestructuras iSCSI modernas utilizan 10 GigE Ethernet o redes más rápidas para un rendimiento óptimo. Se recomienda encarecidamente usar conectividad 10 Gigabit Ethernet entre iSCSI Gateway y el clúster de procesador final de Ceph.

6.1.1 Destino iSCSI de kernel de Linux

El destino iSCSI de kernel de Linux se denominaba originalmente LIO para linux-iscsi.org, el dominio y sitio Web originales del proyecto. Durante cierto tiempo, había al menos cuatro implementaciones de destino iSCSI compitiendo para la plataforma Linux, pero, al final, LIO prevaleció como el único destino iSCSI de referencia. El código de kernel de la línea principal de LIO utiliza el sencillo, aunque algo ambiguo, nombre de "destino" y distingue entre "núcleo de destino" y una variedad de módulos de destino de interfaz de usuario y procesador final.

El módulo de interfaz de usuario utilizado con mayor frecuencia es, posiblemente, iSCSI. Sin embargo, LIO también admite Fibre Channel (FC), Fibre Channel over Ethernet (FCoE) y otros protocolos de interfaz de usuario. En este momento, SUSE Enterprise Storage solo admite el protocolo iSCSI.

El módulo de procesador final de destino más utilizado es simplemente, cualquiera capaz de reexportar cualquier dispositivo de bloques disponible en el host de destino. Este módulo se denomina iblock. Sin embargo, LIO también tiene un módulo de procesador final RBD específico que admite el acceso de E/S de múltiples rutas paralelizado a imágenes RBD.

6.1.2 Iniciadores iSCSI

Esta sección presenta una breve descripción de los iniciadores iSCSI utilizados en plataformas Linux, Microsoft Windows y VMware.

6.1.2.1 Linux

El iniciador estándar para la plataforma Linux es open-iscsi. open-iscsi lanza un daemon, iscsid, que el usuario puede utilizar para descubrir destinos iSCSI en cualquier portal, entrar en los destinos y asignar volúmenes iSCSI. iscsid se comunica con la capa intermedia SCSI para crear dispositivos de bloques en el kernel que este, a continuación, puede tratar como cualquier otro dispositivo de bloques SCSI del sistema. El iniciador open-iscsi se puede distribuir junto con la utilidad Device Mapper Multipath (dm-multipath) para proporcionar un dispositivo de bloques iSCSI de alta disponibilidad.

6.1.2.2 Microsoft Windows e Hyper-V

El iniciador de iSCSI por defecto para el sistema operativo Microsoft Windows es el iniciador iSCSI de Microsoft. El servicio iSCSI se puede configurar a través de una interfaz gráfica de usuario (GUI) y es compatible con E/S de múltiples rutas para la alta disponibilidad.

6.1.2.3 VMware

El iniciador iSCSI por defecto para VMware vSphere y ESX es el iniciador iSCSI de VMware ESX, vmkiscsi. Si está habilitado, puede configurarse desde el cliente de vSphere o a través del comando vmkiscsi-tool. A continuación, puede dar formato a los volúmenes de almacenamiento conectados a través del adaptador de almacenamiento iSCSI de vSphere con VMFS y utilizarlos como cualquier otro dispositivo de almacenamiento de máquina virtual. El iniciador de VMware también es compatible con E/S de múltiples vías para la alta disponibilidad.

6.2 Información general sobre ceph-iscsi

ceph-iscsi combina las ventajas de los dispositivos de bloques RADOS con la versatilidad extendida de iSCSI. Si se emplea ceph-iscsi en un host de destino iSCSI (conocido como iSCSI Gateway), cualquier aplicación que necesite hacer uso del almacenamiento de bloques puede beneficiarse de Ceph, incluso si no utiliza ningún protocolo de cliente de Ceph. En su lugar, los usuarios pueden utilizar iSCSI o cualquier otro protocolo de interfaz de usuario de destino para conectarse a un destino LIO, que traduce todas las comunicaciones de E/S de destino en operaciones de almacenamiento RBD.

Clúster de Ceph con una sola instancia de iSCSI Gateway
Figura 6.1: Clúster de Ceph con una sola instancia de iSCSI Gateway

Por naturaleza, ceph-iscsi es de alta disponibilidad y admite operaciones de múltiples rutas. Por lo tanto, los hosts de iniciador descendentes pueden utilizar varias instancias de iSCSI Gateway para obtener tanto alta disponibilidad como capacidad de ampliación. Cuando se comunican con una configuración iSCSI con más de un pasarela, los iniciadores pueden equilibrar la carga de las peticiones iSCSI entre varias pasarelas. En caso de fallo de una pasarela, por ejemplo si no se pueda acceder temporalmente o si está inhabilitada por mantenimiento, las comunicaciones de E/S continuarán de forma transparente a través de otra pasarela.

Clúster de Ceph con varias instancias de iSCSI Gateway
Figura 6.2: Clúster de Ceph con varias instancias de iSCSI Gateway

6.3 Elementos a tener en cuenta para la distribución

Una configuración mínima de SUSE Enterprise Storage 7 con ceph-iscsi consta de los siguientes componentes:

  • Un clúster de almacenamiento de Ceph. El clúster de Ceph está formado por un mínimo de cuatro servidores físicos que alojan al menos ocho daemons de almacenamiento de objetos (OSD) cada uno. En una configuración de este tipo, tres nodos de OSD también funcionan como host de monitor (MON).

  • Un servidor de destino iSCSI con el destino iSCSI LIO en ejecución, configurado mediante ceph-iscsi.

  • Un host de iniciador iSCSI, con open-iscsi (Linux) en ejecución, el iniciador iSCSI de Microsoft (Microsoft Windows) o cualquier otra distribución de iniciador iSCSI compatible.

Una configuración de producción recomendada de SUSE Enterprise Storage 7 con ceph-iscsi consta de:

  • Un clúster de almacenamiento de Ceph. Un clúster de producción de Ceph formado por cualquier número de nodos de OSD (normalmente más de 10), que por lo general ejecutan de 10 a 12 daemons de almacenamiento de objetos (OSD) cada uno, con no menos de tres hosts MON dedicados.

  • Varios servidores de destino iSCSI en los que se ejecuta el destino iSCSI LIO, configurado mediante ceph-iscsi. Para el failover y el equilibrio de carga iSCSI, estos servidores deben ejecutar un kernel que admita el módulo target_core_rbd. Hay disponibles paquetes de actualización en el canal de mantenimiento de SUSE Linux Enterprise Server.

  • Cualquier número de hosts de iniciador iSCSI, con open-iscsi (Linux) en ejecución, el iniciador iSCSI de Microsoft (Microsoft Windows) o cualquier otra implementación de iniciador iSCSI compatible.

6.4 Instalación y configuración

En esta sección se describen los pasos necesarios para instalar y configurar una instancia de iSCSI Gateway en SUSE Enterprise Storage.

6.4.1 Distribución de iSCSI Gateway en un clúster de Ceph

La distribución de Ceph iSCSI Gateway sigue el mismo procedimiento que la distribución de otros servicios de Ceph mediante cephadm. Para obtener más información, consulte la Sección 5.4.3.5, “Distribución de pasarelas iSCSI Gateway”.

6.4.2 Creación de imágenes RBD

Las imágenes RBD se crean en el almacén de Ceph y, posteriormente, se exportan a iSCSI. Se recomienda utilizar un repositorio RADOS dedicado para este propósito. Es posible crear un volumen desde cualquier host que sea posible conectar al clúster de almacenamiento mediante la utilidad de línea de comandos rbd de Ceph. Esto requiere que el cliente tenga al menos un archivo de configuración ceph.conf mínimo y credenciales de autenticación adecuadas para CephX.

Para crear un volumen nuevo y exportarlo posteriormente a través de iSCSI, use el comando rbd create especificando el tamaño del volumen en megabytes. Por ejemplo, para crear un volumen de 100 GB denominado testvol en el repositorio denominado iscsi-images ejecute:

cephuser@adm > rbd --pool iscsi-images create --size=102400 testvol

6.4.3 Exportación de imágenes RBD a través de iSCSI

Para exportar imágenes RBD mediante iSCSI, puede utilizar la interfaz Web de Ceph Dashboard o la utilidad de línea de comandos de pasarela ceph-iscsi. En esta sección nos centraremos solo en esta utilidad y se mostrará cómo crear un destino iSCSI que exporte una imagen RBD mediante la línea de comandos.

Nota
Nota

Las imágenes RBD con las siguientes propiedades no se pueden exportar mediante iSCSI:

  • Imágenes con el registro transaccional habilitado.

  • Imágenes con una unidad de franja de menos de 4096 bytes

Como usuario root, introduzca el contenedor de iSCSI Gateway:

root # cephadm enter --name CONTAINER_NAME

Como usuario root, inicie la interfaz de línea de comandos de iSCSI Gateway:

root # gwcli

Diríjase a iscsi-targets y cree un destino con el nombre iqn.2003-01.org.linux-iscsi.iscsi.ARQUITECTURA-SISTEMA:testvol:

gwcli >  /> cd /iscsi-targets
gwcli >  /iscsi-targets> create iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol

Cree las pasarelas iSCSI especificando el nombre y la dirección IP de la pasarela:

gwcli >  /iscsi-targets> cd iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/gateways
gwcli >  /iscsi-target...tvol/gateways> create iscsi1 192.168.124.104
gwcli >  /iscsi-target...tvol/gateways> create iscsi2 192.168.124.105
Sugerencia
Sugerencia

Utilice el comando help para mostrar la lista de comandos disponibles en el nodo de configuración actual.

Añada la imagen RBD con el nombre testvol en el repositorio iscsi-images:

gwcli >  /iscsi-target...tvol/gateways> cd /disks
gwcli >  /disks> attach iscsi-images/testvol

Asigne la imagen RBD al destino:

gwcli >  /disks> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/disks
gwcli >  /iscsi-target...testvol/disks> add iscsi-images/testvol
Nota
Nota

Puede utilizar herramientas de nivel inferior, como targetcli, para consultar la configuración local, pero no para modificarla.

Sugerencia
Sugerencia

Puede utilizar el comando ls para revisar la configuración. Algunos nodos de configuración también admiten el comando info, que se puede utilizar para mostrar información más detallada.

Tenga en cuenta que, por defecto, la autenticación de ACL está habilitada para que no se pueda acceder aún a este destino. Consulte la Sección 6.4.4, “Autenticación y control de acceso” para obtener más información sobre la autenticación y el control de acceso.

6.4.4 Autenticación y control de acceso

La autenticación iSCSI es flexible y cubre muchas posibilidades de autenticación.

6.4.4.1 Inhabilitación de la autenticación de ACL

Sin autenticación significa que cualquier iniciador podrá acceder a cualquier LUN en el destino correspondiente. Para habilitar Sin autenticación, inhabilite la autenticación de ACL:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts
gwcli >  /iscsi-target...testvol/hosts> auth disable_acl

6.4.4.2 Uso de la autenticación de ACL

Si se utiliza la autenticación de ACL basada en el nombre del iniciador, solo se permite que se conecten los iniciadores definidos. Para definir un iniciador, haga lo siguiente:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts
gwcli >  /iscsi-target...testvol/hosts> create iqn.1996-04.de.suse:01:e6ca28cc9f20

Los iniciadores definidos podrán conectarse, pero solo tendrán acceso a las imágenes RBD que se hayan añadido explícitamente al iniciador:

gwcli >  /iscsi-target...:e6ca28cc9f20> disk add rbd/testvol

6.4.4.3 Habilitación de la autenticación CHAP

Además de ACL, puede habilitar la autenticación CHAP especificando un nombre de usuario y una contraseña para cada iniciador:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts/iqn.1996-04.de.suse:01:e6ca28cc9f20
gwcli >  /iscsi-target...:e6ca28cc9f20> auth username=common12 password=pass12345678
Nota
Nota

Los nombres de usuario deben tener entre 8 a 64 caracteres y pueden incluir caracteres alfanuméricos, ., @, -, _ o bien :.

Las contraseñas deben tener entre 12 y 16 caracteres y pueden incluir caracteres alfanuméricos, @, -, _ o /.

Opcionalmente, también puede habilitar la autenticación CHAP mutua especificando los parámetros mutual_username y mutual_password en el comando auth.

6.4.4.4 Configuración de la autenticación de descubrimiento y mutua

la autenticación de descubrimiento es independiente de los métodos de autenticación anteriores. Requiere credenciales para la navegación, es opcional y se puede configurar mediante:

gwcli >  /> cd /iscsi-targets
gwcli >  /iscsi-targets> discovery_auth username=du123456 password=dp1234567890
Nota
Nota

Los nombres de usuario deben tener una longitud de entre 8 a 64 caracteres y solo pueden incluir letras, ., @, -, _ o bien :.

Las contraseñas deben tener entre 12 y 16 caracteres y solo pueden incluir letras, @, -, _ o /.

Opcionalmente, también puede especificar los parámetros mutual_username y mutual_password en el comando discovery_auth.

La autenticación de descubrimiento se puede inhabilitar mediante el siguiente comando:

gwcli >  /iscsi-targets> discovery_auth nochap

6.4.5 Configuración avanzada

ceph-iscsi puede configurarse con parámetros avanzados que posteriormente se pasan al destino de E/S LIO. Los parámetros se dividen en parámetros de destino y de disco.

Aviso
Aviso

A no ser que se indique lo contrario, no se recomienda cambiar los valores por defecto de estos parámetros.

6.4.5.1 Visualización de los ajustes de destino

Puede ver el valor de estos ajustes mediante el comando info:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol
gwcli >  /iscsi-target...i.SYSTEM-ARCH:testvol> info

Y para cambiar un valor se usa el comando reconfigure:

gwcli >  /iscsi-target...i.SYSTEM-ARCH:testvol> reconfigure login_timeout 20

Los ajustes de destino disponibles son:

default_cmdsn_depth

Profundidad de CmdSN (número de secuencia de comando) por defecto. Limita la cantidad de peticiones que un iniciador iSCSI puede tener pendientes en cualquier momento.

default_erl

Nivel de recuperación de error por defecto.

login_timeout

Valor de tiempo límite de entrada a la sesión en segundos.

netif_timeout

Tiempo límite de fallo de NIC en segundos.

prod_mode_write_protect

Si se establece en 1, se impide que se pueda escribir en los LUN.

6.4.5.2 Visualización de los ajustes de disco

Puede ver el valor de estos ajustes mediante el comando info:

gwcli >  /> cd /disks/rbd/testvol
gwcli >  /disks/rbd/testvol> info

Y para cambiar un valor se usa el comando reconfigure:

gwcli >  /disks/rbd/testvol> reconfigure rbd/testvol emulate_pr 0

Los ajustes de disco disponibles son:

block_size

Tamaño de bloque del dispositivo subyacente.

emulate_3pc

Si se establece en 1, se habilita la opción Third Party Copy (Copia por parte de terceros).

emulate_caw

Si se establece en 1, se habilita la opción Compare and Write (Comparar y escribir).

emulate_dpo

Si se establece en 1, se activa la opción Disable Page Out (Inhabilitar página saliente).

emulate_fua_read

Si se establece en 1, se habilita la lectura de Force Unit Access (Forzar acceso a la unidad).

emulate_fua_write

Si se establece en 1, se habilita la escritura de Force Unit Access (Forzar acceso a la unidad).

emulate_model_alias

Si se establece en 1, se utiliza el nombre del dispositivo de procesador final para el alias del modelo.

emulate_pr

Si se define en 0, se inhabilita la compatibilidad con las reservas SCSI, incluidas las reservas de grupo persistente. Mientras está inhabilitada, la pasarela iSCSI Gateway de SES puede ignorar el estado de la reserva, lo que mejora la latencia de las peticiones.

Sugerencia
Sugerencia

Se recomienda definir en backstore_emulate_pr el valor 0 si los iniciadores iSCSI no requieren compatibilidad con la reserva SCSI.

emulate_rest_reord

Si se establece en 0, la opción Queue Algorithm Modifier (Modificador de algoritmo de cola) tiene restringido el cambio de orden.

emulate_tas

Si se establece en 1, se habilita la opción Task Aborted Status (Estado cancelado de tarea).

emulate_tpu

Si se establece en 1, se habilita la opción Thin Provisioning Unmap (Anular asignación de provisión ligera).

emulate_tpws

Si se establece en 1, se habilita la opción Thin Provisioning Write Same (Misma escritura en provisión ligera).

emulate_ua_intlck_ctrl

Si se establece en 1, se habilita la opción Unit Attention Interlock (Interbloqueo de atención en la unidad).

emulate_write_cache

Si se establece en 1, se activa la opción Write Cache Enable (Habilitar caché de escritura).

enforce_pr_isids

Si se establece en 1, se fuerzan los ISID de reserva persistente.

is_nonrot

Si se establece en 1, el almacén de respaldo es un dispositivo sin rotación.

max_unmap_block_desc_count

Número máximo de descriptores de bloque para UNMAP.

max_unmap_lba_count:

Número máximo de LBA para UNMAP.

max_write_same_len

Longitud máxima de WRITE_SAME.

optimal_sectors

Tamaño de la petición óptima en sectores.

pi_prot_type

Tipo de garantía de DIF.

queue_depth

Profundidad de la cola.

unmap_granularity

Granularidad de UNMAP.

unmap_granularity_alignment

Alineación de la granularidad de UNMAP.

force_pr_aptpl

Si está habilitado, LIO siempre escribirá el estado reserva persistente en el almacenamiento persistente, independientemente de si el cliente lo ha pedido a través de aptpl=1. Esto no tiene ningún efecto en el back-end RBD del kernel para LIO, ya que siempre persiste el estado PR. En circunstancias ideales, la opción target_core_rbd debería aplicar el valor "1" y producir un error si alguien intenta inhabilitarlo a través de la configuración.

unmap_zeroes_data

Afecta a si LIO anunciará LBPRZ a los iniciadores SCSI, lo que indica que los ceros se leerán desde una región después de UNMAP o WRITE SAME con un bit de desasignación.

6.5 Exportación de imágenes del dispositivo de bloques RADOS mediante tcmu-runner

ceph-iscsi admite los almacenes rbd (basado en el kernel) y user:rbd (tcmu-runner), lo que hace que toda la gestión sea transparente e independiente del almacén.

Aviso
Aviso: tecnología en fase preliminar

Las distribuciones de iSCSI Gateway basadas en tcmu-runner son actualmente una tecnología en fase preliminar.

A diferencia de las distribuciones de iSCSI Gateway basadas en kernel, las basadas en tcmu-runner no ofrecen compatibilidad con E/S de múltiples rutas ni con las reservas persistentes SCSI.

Para exportar una imagen de dispositivo de bloque RADOS mediante tcmu-runner, todo lo que necesita hacer es especificar el almacén user:rbd al conectar el disco:

gwcli >  /disks> attach rbd/testvol backstore=user:rbd
Nota
Nota

Si utiliza tcmu-runner, la imagen RBD exportada debe tener habilitada la función exclusive-lock.

Parte IV Actualización desde versiones anteriores

7 Actualización desde una versión anterior

En este capítulo se presentan los pasos necesarios para actualizar SUSE Enterprise Storage 6 a la versión 7.

La actualización incluye las siguientes tareas:

  • Actualización de Ceph Nautilus a Octopus.

  • Cambio de la instalación y ejecución de Ceph a través de paquetes RPM a la ejecución en contenedores.

  • Eliminación completa de DeepSea y sustitución por ceph-salt y cephadm.

Aviso
Aviso

La información sobre actualización de este capítulo solo se aplica a las actualizaciones de DeepSea a cephadm. No intente seguir estas instrucciones si desea distribuir SUSE Enterprise Storage en la plataforma SUSE CaaS.

Importante
Importante

No se admite la actualización desde versiones de SUSE Enterprise Storage anteriores a la 6. En primer lugar, debe actualizar a la versión más reciente de SUSE Enterprise Storage 6 y, a continuación, siga los pasos de este capítulo.

7.1 Antes de actualizar

Las siguientes tareas deben completarse antes de iniciar la actualización. Puede hacerlo en cualquier momento durante la vida útil de SUSE Enterprise Storage 6.

7.1.1 Puntos que se deben tener en cuenta

Antes de actualizar, lea atentamente las secciones siguientes para asegurarse de que comprende todas las tareas que deben ejecutarse.

  • Lea las notas de la versión. En ellas encontrará información adicional sobre los cambios realizados desde la versión previa de SUSE Enterprise Storage. Consulte las notas de versión para comprobar lo siguiente:

    • Si el hardware necesita consideraciones especiales.

    • Si los paquetes de software usados han cambiado de forma significativa.

    • Si es necesario tomar precauciones especiales para la instalación.

    Las notas de la versión también proporcionan información que no pudo publicarse en el manual a tiempo y notas acerca de problemas conocidos.

    Encontrará las notas de la versión de SES 7 en línea en https://www.suse.com/releasenotes/.

    Asimismo, después de instalar el paquete release-notes-ses desde el repositorio de SES 7, encontrará las notas de la versión en el directorio /usr/share/doc/release-notes o en línea en https://www.suse.com/releasenotes/.

  • Lea el Capítulo 5, Distribución con cephadm para familiarizarse con ceph-salt y Ceph Orchestrator y, en particular, con la información sobre las especificaciones de servicio.

  • La actualización del clúster puede tardar mucho tiempo, aproximadamente el que se tarda en actualizar un equipo multiplicado por el número de nodos del clúster.

  • Primero debe actualizar el master de Salt, y después sustituir DeepSea con ceph-salt y cephadm. No podrá empezar a utilizar el módulo de orcephadm orchestrator al menos hasta que se hayan actualizado todos los de Ceph Manager.

  • La actualización de usar RPM de Nautilus a contenedores de Octopus debe realizarse en un solo paso. Esto significa que se debe actualizar un nodo completo a la vez, no de daemon en daemon.

  • La actualización de los servicios principales (MON, MGR, OSD) se produce de forma ordenada. Cada servicio está disponible durante la actualización. Los servicios de pasarela (servidor de metadatos, Object Gateway, NFS Ganesha e iSCSI Gateway) deben redistribuirse después de actualizar los servicios principales. Para los siguientes servicios se produce un cierto tiempo de inactividad:

    • Importante
      Importante

      Los servidores de metadatos y las pasarelas Object Gateway están inactivos desde el momento en que los nodos se actualizan de SUSE Linux Enterprise Server 15 SP1 a SUSE Linux Enterprise Server 15 SP2 hasta que los servicios se vuelven a distribuir al final del proceso de actualización. Es especialmente importante tener esto en cuenta si estos servicios se colocan junto a servicios MON, MGR u OSD, ya que en tal caso, pueden estar inactivos durante toda la actualización del clúster. Si se prevé que esto sea un problema, considere la posibilidad de distribuir estos servicios por separado en nodos adicionales antes de la actualización, de forma que permanezcan inactivos durante el menor tiempo posible; que será lo que tarden en actualizarse los nodos de pasarela, no lo que tarde todo el clúster en actualizarse.

    • NFS Ganesha y las pasarelas iSCSI Gateway solo están inactivos mientras los nodos se reinician durante la actualización de SUSE Linux Enterprise Server 15 SP1 a SUSE Linux Enterprise Server 15 SP2 y, de nuevo, brevemente, cuando cada servicio se vuelve a distribuir en modo de contenedores.

7.1.2 Copia de seguridad de la configuración y los datos del clúster

Se recomienda encarecidamente realizar una copia de seguridad de toda la configuración y los datos del clúster antes de iniciar la actualización a SUSE Enterprise Storage 7. Para obtener instrucciones sobre cómo realizar copias de seguridad de todos los datos, consulte https://documentation.suse.com/ses/6/html/ses-all/cha-deployment-backup.html.

7.1.3 Verificación de los pasos de la actualización anterior

En caso de que haya actualizado previamente desde la versión 5, compruebe que la actualización a la versión 6 se haya completado correctamente:

Compruebe si el archivo /srv/salt/ceph/configuration/files/ceph.conf.import existe.

Este archivo se crea en el proceso de importación durante la actualización de SUSE Enterprise Storage 5 a la versión 6. La opción configuration_init: default-import se define como /srv/pillar/ceph/proposals/config/stack/default/ceph/cluster.yml.

Si configuration_init todavía está definido como default-import, el clúster está utilizando ceph.conf.import como su archivo de configuración, y no el archivo ceph.conf por defecto de DeepSea, que se compila a partir de los archivos de :/srv/salt/ceph/configuration/files/ceph.conf.d/.

Por lo tanto, debe inspeccionar si hay alguna configuración personalizada en ceph.conf.import y, posiblemente, trasladar la configuración a uno de los archivos de: /srv/salt/ceph/configuration/files/ceph.conf.d/.

A continuación, elimine la línea configuration_init: default-import de /srv/pillar/ceph/proposals/config/stack/default/ceph/cluster.yml.

7.1.4 Actualización de los nodos de clúster y verificación del estado del clúster

Verifique que todas las actualizaciones más recientes de SUSE Linux Enterprise Server 15 SP1 y SUSE Enterprise Storage 6 se han aplicado a todos los nodos de clúster:

root # zypper refresh && zypper patch

Después de aplicar las actualizaciones, compruebe el estado del clúster:

cephuser@adm > ceph -s

7.1.5 Verificación del acceso a repositorios de software e imágenes de contenedor

Verifique que cada nodo del clúster tenga acceso a los repositorios de software de SUSE Linux Enterprise Server 15 SP2 y SUSE Enterprise Storage 7, así como al registro de imágenes de contenedor.

7.1.5.1 Repositorios de software

Si todos los nodos están registrados con SCC, podrá utilizar el comando zypper migration para actualizar. Consulte https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-upgrade-online.html#sec-upgrade-online-zypper para obtener más información.

Si los nodos no están registrados con SCC, inhabilite todos los repositorios de software existentes y añada los repositorios Repositorio y Actualizaciones para cada una de las extensiones siguientes:

  • SLE-Product-SLES/15-SP2

  • SLE-Module-Basesystem/15-SP2

  • SLE-Module-Server-Applications/15-SP2

  • SUSE-Enterprise-Storage-7

7.1.5.2 Imágenes de contenedor

Todos los nodos de clúster necesitan acceso al registro de imágenes de contenedor. En la mayoría de los casos, utilizará el registro público de SUSE situado en registration.suse.com. Necesitará las siguientes imágenes:

  • registry.suse.com/ses/7/ceph/ceph

  • registry.suse.com/ses/7/ceph/grafana

  • registry.suse.com/caasp/v4.5/prometheus-server

  • registry.suse.com/caasp/v4.5/prometheus-node-exporter

  • registry.suse.com/caasp/v4.5/prometheus-alertmanager

Como alternativa, por ejemplo para las distribuciones en entornos aislados, configure un registro local y verifique que tiene el conjunto correcto de imágenes de contenedor. Consulte la Sección 5.3.2.11, “Configuración del registro del contenedor” para obtener más información sobre cómo configurar un registro de imagen de contenedor local.

7.2 Actualización del master de Salt

El procedimiento siguiente describe el proceso de actualización del master de Salt:

  1. Actualice el sistema operativo subyacente a SUSE Linux Enterprise Server 15 SP2:

    • En el caso de un clúster que tenga todos los nodos registrados con SCC, ejecute zypper migration.

    • Para un clúster cuyos nodos tienen repositorios de software asignados manualmente, ejecute zypper dup seguido de reboot.

  2. Inhabilite las fases de DeepSea para evitar un uso accidental. Añada el contenido siguiente a /srv/pillar/ceph/stack/global.yml:

    stage_prep: disabled
    stage_discovery: disabled
    stage_configure: disabled
    stage_deploy: disabled
    stage_services: disabled
    stage_remove: disabled

    Guarde el archivo y aplique los cambios:

    root@master # salt '*' saltutil.pillar_refresh
  3. Si no utiliza imágenes de contenedor de registration.suse.com sino el registro configurado localmente, edite /srv/pillar/ceph/stack/global.yml para informar a DeepSea sobre qué imagen de contenedor de Ceph y qué registro de Ceph debe utilizar. Por ejemplo, para utilizar 192.168.121.1:5000/my/ceph/image, añada las siguientes líneas:

    ses7_container_image: 192.168.121.1:5000/my/ceph/image
    ses7_container_registries:
      - location: 192.168.121.1:5000

    Guarde el archivo y aplique los cambios:

    root@master # salt '*' saltutil.refresh_pillar
  4. Asimile la configuración existente:

    cephuser@adm > ceph config assimilate-conf -i /etc/ceph/ceph.conf
  5. Verifique el estado de la actualización. El resultado puede variar según la configuración del clúster:

    root@master # salt-run upgrade.status
    The newest installed software versions are:
     ceph: ceph version 15.2.2-60-gf5864377ab (f5864377abb5549f843784c93577980aa264b9bc) octopus (stable)
     os: SUSE Linux Enterprise Server 15 SP2
    Nodes running these software versions:
     admin.ceph (assigned roles: master, prometheus, grafana)
    Nodes running older software versions must be upgraded in the following order:
     1: mon1.ceph (assigned roles: admin, mon, mgr)
     2: mon2.ceph (assigned roles: admin, mon, mgr)
     3: mon3.ceph (assigned roles: admin, mon, mgr)
     4: data4.ceph (assigned roles: storage, mds)
     5: data1.ceph (assigned roles: storage)
     6: data2.ceph (assigned roles: storage)
     7: data3.ceph (assigned roles: storage)
     8: data5.ceph (assigned roles: storage, rgw)

7.3 Actualización de los nodos de MON, MGR y OSD

Actualice los nodos de Ceph Monitor, Ceph Manager y OSD de uno en uno. Para cada servicio, siga estos pasos:

  1. Si el nodo que está actualizando es un nodo de OSD, procure que no esté marcado como out durante la actualización ejecutando el comando siguiente:

    cephuser@adm > ceph osd add-noout SHORT_NODE_NAME

    Sustituya SHORT_NODE_NAME por el nombre corto del nodo tal y como aparece en la salida del comando ceph osd. En la siguiente entrada, los nombres de host cortos son ses-min1 y ses-min2.

    root@master # ceph osd tree
    ID   CLASS  WEIGHT   TYPE NAME       STATUS  REWEIGHT  PRI-AFF
     -1         0.60405  root default
    -11         0.11691      host ses-min1
      4    hdd  0.01949          osd.4       up   1.00000  1.00000
      9    hdd  0.01949          osd.9       up   1.00000  1.00000
     13    hdd  0.01949          osd.13      up   1.00000  1.00000
    [...]
     -5         0.11691      host ses-min2
      2    hdd  0.01949          osd.2       up   1.00000  1.00000
      5    hdd  0.01949          osd.5       up   1.00000  1.00000
    [...]
  2. Actualice el sistema operativo subyacente a SUSE Linux Enterprise Server 15 SP2:

    • Si todos los nodos de clúster están registrados con SCC, ejecute zypper migration.

    • Si los nodos de clúster tienen repositorios de software asignados manualmente, ejecute zypper dup seguido de reboot.

  3. Después de reiniciar el nodo, convierta en contenedores todos los daemons de MON, MGR y OSD existentes en ese nodo ejecutando el comando siguiente en el master de Salt:

    root@master # salt MINION_ID state.apply ceph.upgrade.ses7.adopt

    Sustituya MINION_ID por el ID del minion que está actualizando. Puede obtener la lista de ID de minion ejecutando el comando salt-key -L en el master de Salt.

    Sugerencia
    Sugerencia

    Para ver el estado y el progreso de la adopción, compruebe Ceph Dashboard o ejecute uno de los comandos siguientes en el master de Salt:

    root@master # ceph status
    root@master # ceph versions
    root@master # salt-run upgrade.status
  4. Después de que la adopción haya finalizado correctamente, desmarque el indicador noout si el nodo que está actualizando es un nodo de OSD:

    cephuser@adm > ceph osd rm-noout SHORT_NODE_NAME

7.4 Actualización de nodos de pasarela

A continuación, actualice los nodos de pasarela independientes (servidor de metadatos, Object Gateway, NFS Ganesha o iSCSI Gateway). Actualice el sistema operativo subyacente a SUSE Linux Enterprise Server 15 SP2 para cada nodo:

  • Si todos los nodos de clúster están registrados en el Centro de servicios al cliente de SUSE, ejecute el comando zypper migration.

  • Si los nodos de clúster tienen repositorios de software asignados manualmente, ejecute zypper dup seguido de reboot.

Este paso también se aplica a los nodos que forman parte del clúster, pero que aún no tienen ninguna función asignada (en caso de duda, compruebe la lista de hosts en el master de Salt proporcionada por el comando salt-key -L y compárela con el resultado del comando salt-run upgrade.status).

Una vez que se actualiza el sistema operativo en todos los nodos de clúster, el siguiente paso es instalar el paquete ceph-salt y aplicar la configuración del clúster. Los servicios de pasarela reales se redistribuyen en un modo de contenedores al final del proceso de actualización.

Nota
Nota

Los servicios de servidor de metadatos y Object Gateway no están disponibles desde el momento de la actualización a SUSE Linux Enterprise Server 15 SP2 hasta que se redistribuyen al final del proceso de actualización.

7.5 Instalación de ceph-salt y aplicación de la configuración del clúster

Antes de iniciar el proceso de instalación de ceph-salt y aplicar la configuración del clúster, compruebe el estado del clúster y de la actualización ejecutando los comandos siguientes:

root@master # ceph status
root@master # ceph versions
root@master # salt-run upgrade.status
  1. Elimine los trabajos cron rbd_exporter y rgw_exporter creados por DeepSea. En el master de Salt, como usuario root, ejecute el comando crontab -e para editar crontab. Suprima los siguientes elementos, si están presentes:

    # SALT_CRON_IDENTIFIER:deepsea rbd_exporter cron job
    */5 * * * * /var/lib/prometheus/node-exporter/rbd.sh > \
     /var/lib/prometheus/node-exporter/rbd.prom 2> /dev/null
    # SALT_CRON_IDENTIFIER:Prometheus rgw_exporter cron job
    */5 * * * * /var/lib/prometheus/node-exporter/ceph_rgw.py > \
     /var/lib/prometheus/node-exporter/ceph_rgw.prom 2> /dev/null
  2. Exporte la configuración del clúster desde DeepSea ejecutando los comandos siguientes:

    root@master # salt-run upgrade.ceph_salt_config > ceph-salt-config.json
    root@master # salt-run upgrade.generate_service_specs > specs.yaml
  3. Desinstale DeepSea e instale ceph-salt en el master de Salt:

    root@master # zypper remove 'deepsea*'
    root@master # zypper install ceph-salt
  4. Reinicie el master de Salt y sincronice los módulos de Salt:

    root@master # systemctl restart salt-master.service
    root@master # salt \* saltutil.sync_all
  5. Importe la configuración del clúster de DeepSea a ceph-salt:

    root@master # ceph-salt import ceph-salt-config.json
  6. Genere las claves SSH para la comunicación del nodo de clúster:

    root@master # ceph-salt config /ssh generate
    Sugerencia
    Sugerencia

    Verifique que la configuración del clúster se ha importado desde DeepSea y especifique las opciones que pudieran faltar:

    root@master # ceph-salt config ls

    Para obtener una descripción completa de la configuración del clúster, consulte la Sección 5.3.2, “Configuración de las propiedades del clúster”.

  7. Aplique la configuración y habilite cephadm:

    root@master # ceph-salt apply
  8. Si necesita proporcionar la URL del registro del contenedor local y las credenciales de acceso, siga los pasos descritos en la Sección 5.3.2.11, “Configuración del registro del contenedor”.

  9. Si no está utilizando imágenes de contenedor de registration.suse.com, sino el registro configurado localmente, informe a Ceph sobre qué imagen de contenedor debe utilizar ejecutando:

    root@master # ceph config set global container_image IMAGE_NAME

    Por ejemplo:

    root@master # ceph config set global container_image 192.168.121.1:5000/my/ceph/image
  10. Detenga e inhabilite los daemons ceph-crash de SUSE Enterprise Storage 6. Los nuevos formularios en contenedores de estos daemons se inician más tarde automáticamente.

    root@master # salt '*' service.stop ceph-crash
    root@master # salt '*' service.disable ceph-crash

7.6 Actualización y adopción de la pila de supervisión

El siguiente procedimiento adopta todos los componentes de la pila de supervisión (consulte el Book “Guía de administración y operaciones”, Chapter 16 “Supervisión y alertas” para obtener más información).

  1. Ponga en pausa el orquestador:

    cephuser@adm > ceph orch pause
  2. En cualquier nodo en el que se ejecute Prometheus, Grafana y Alertmanager (el master de Salt por defecto), ejecute los comandos siguientes:

    cephuser@adm > cephadm adopt --style=legacy --name prometheus.$(hostname)
    cephuser@adm > cephadm adopt --style=legacy --name alertmanager.$(hostname)
    cephuser@adm > cephadm adopt --style=legacy --name grafana.$(hostname)
    Sugerencia
    Sugerencia

    Si no está ejecutando el registro de imágenes de contenedor por defecto, registration.suse.com, debe especificar la imagen que desea utilizar, por ejemplo:

    cephuser@adm > cephadm --image 192.168.121.1:5000/caasp/v4.5/prometheus-server:2.18.0 \
      adopt --style=legacy --name prometheus.$(hostname)
    cephuser@adm > cephadm --image 192.168.121.1:5000/caasp/v4.5/prometheus-alertmanager:0.16.2 \
      adopt --style=legacy --name alertmanager.$(hostname)
    cephuser@adm > cephadm --image 192.168.121.1:5000/ses/7/ceph/grafana:7.0.3 \
     adopt --style=legacy --name grafana.$(hostname)

    Para obtener más información sobre el uso de imágenes de contenedor personalizadas o locales, consulte el Book “Guía de administración y operaciones”, Chapter 16 “Supervisión y alertas”, Section 16.1 “Configuración de imágenes personalizadas o locales”.

  3. Elimine Node-Exporter. No es necesario migrarlo y se volverá a instalar como contenedor cuando se aplique el archivo specs.yaml.

    tux > sudo zypper rm golang-github-prometheus-node_exporter
  4. Aplique las especificaciones de servicio que exportó anteriormente desde DeepSea:

    cephuser@adm > ceph orch apply -i specs.yaml
  5. Reanude el orquestador:

    cephuser@adm > ceph orch resume

7.7 Redistribución del servicio de pasarela

7.7.1 Actualización de Object Gateway

En SUSE Enterprise Storage 7, las pasarelas Object Gateway siempre se configuran con un dominio, lo que permite utilizar varios sitios en el futuro (consulte el Book “Guía de administración y operaciones”, Chapter 21 “Ceph Object Gateway”, Section 21.13 “Pasarelas Object Gateway de varios sitios” para obtener más información). Si ha utilizado una configuración de Object Gateway de un solo sitio en SUSE Enterprise Storage 6, siga estos pasos para añadir un dominio. Si no tiene previsto utilizar la funcionalidad de varios sitios, puede utilizar el valor por defecto para los nombres de dominio, grupo de zonas y zona.

  1. Cree un dominio nuevo:

    cephuser@adm > radosgw-admin realm create --rgw-realm=REALM_NAME --default
  2. Opcionalmente, cambie el nombre de la zona y el grupo de zonas por defecto.

    cephuser@adm > radosgw-admin zonegroup rename \
     --rgw-zonegroup default \
     --zonegroup-new-name=ZONEGROUP_NAME
    cephuser@adm > radosgw-admin zone rename \
     --rgw-zone default \
     --zone-new-name ZONE_NAME \
     --rgw-zonegroup=ZONEGROUP_NAME
  3. Configure el grupo de zona principal:

    cephuser@adm > radosgw-admin zonegroup modify \
     --rgw-realm=REALM_NAME \
     --rgw-zonegroup=ZONEGROUP_NAME \
     --endpoints http://RGW.EXAMPLE.COM:80 \
     --master --default
  4. Configure la zona principal. Para ello, necesitará los valores de ACCESS_KEY y SECRET_KEY de un usuario de Object Gateway con el indicador system habilitado. Suele ser el usuario admin. Para obtener los valores de ACCESS_KEY y SECRET_KEY, ejecute radosgw-admin user info --uid admin.

    cephuser@adm > radosgw-admin zone modify \
     --rgw-realm=REALM_NAME \
     --rgw-zonegroup=ZONEGROUP_NAME \
     --rgw-zone=ZONE_NAME \
     --endpoints http://RGW.EXAMPLE.COM:80 \
     --access-key=ACCESS_KEY \
     --secret=SECRET_KEY \
     --master --default
  5. Asigne la configuración actualizada:

    cephuser@adm > radosgw-admin period update --commit

Para que el servicio Object Gateway se convierta en contenedores, cree su archivo de especificación como se describe en la Sección 5.4.3.4, “Distribución de pasarelas Object Gateways” y aplíquelo.

cephuser@adm > ceph orch apply -i RGW.yml

7.7.2 Actualización de NFS Ganesha

A continuación se muestra cómo migrar un servicio existente de NFS Ganesha con Ceph Nautilus a un contenedor de NFS Ganesha con Ceph Octopus.

Aviso
Aviso

Para los pasos siguientes es preciso que haya actualizado correctamente los servicios principales de Ceph.

NFS Ganesha almacena configuraciones adicionales por daemon y exporta la configuración en un repositorio RADOS. El repositorio RADOS configurado se puede encontrar en la línea watch_url del bloque RADOS_URLS en el archivo ganesha.conf. Por defecto, este repositorio se llamará ganesha_config.

Antes de iniciar cualquier migración, se recomienda encarecidamente realizar una copia de los objetos de exportación y de configuración del daemon ubicados en el repositorio RADOS. Para localizar el repositorio RADOS configurado, ejecute el comando siguiente:

cephuser@adm > grep -A5 RADOS_URLS /etc/ganesha/ganesha.conf

Para mostrar el contenido del repositorio RADOS:

cephuser@adm > rados --pool ganesha_config --namespace ganesha ls | sort
  conf-node3
  export-1
  export-2
  export-3
  export-4

Para copiar los objetos RADOS:

cephuser@adm > RADOS_ARGS="--pool ganesha_config --namespace ganesha"
cephuser@adm > OBJS=$(rados $RADOS_ARGS ls)
cephuser@adm > for obj in $OBJS; do rados $RADOS_ARGS get $obj $obj; done
cephuser@adm > ls -lah
total 40K
drwxr-xr-x 2 root root 4.0K Sep 8 03:30 .
drwx------ 9 root root 4.0K Sep 8 03:23 ..
-rw-r--r-- 1 root root 90 Sep 8 03:30 conf-node2
-rw-r--r-- 1 root root 90 Sep 8 03:30 conf-node3
-rw-r--r-- 1 root root 350 Sep 8 03:30 export-1
-rw-r--r-- 1 root root 350 Sep 8 03:30 export-2
-rw-r--r-- 1 root root 350 Sep 8 03:30 export-3
-rw-r--r-- 1 root root 358 Sep 8 03:30 export-4

Es necesario detener el servicio de NFS Ganesha existente en cada nodo de uno en uno y, a continuación, sustituirlo por un contenedor gestionado por cephadm.

  1. Detenga e inhabilite el servicio de NFS Ganesha existente:

    cephuser@adm > systemctl stop nfs-ganesha
    cephuser@adm > systemctl disable nfs-ganesha
  2. Después de detener el servicio de NFS Ganesha existente, se puede distribuir uno nuevo en un contenedor mediante cephadm. Para ello, debe crear una especificación de servicio que contenga un service_id que se utilizará para identificar este nuevo clúster de NFS, el nombre de host del nodo que estamos migrando mostrado como host en la especificación de colocación, y el repositorio RADOS y el espacio de nombres que contiene los objetos de exportación NFS configurados. Por ejemplo:

    service_type: nfs
    service_id: SERVICE_ID
    placement:
      hosts:
      - node2
      pool: ganesha_config
      namespace: ganesha

    Para obtener más información sobre cómo crear una especificación de colocación, consulte la Sección 5.4.2, “Especificación del servicio y la colocación”.

  3. Aplique la especificación de colocación:

    cephuser@adm > ceph orch apply -i FILENAME.yaml
  4. Confirme que el daemon de NFS Ganesha se está ejecutando en el host:

    cephuser@adm > ceph orch ps --daemon_type nfs
    NAME           HOST   STATUS         REFRESHED  AGE  VERSION  IMAGE NAME                                IMAGE ID      CONTAINER ID
    nfs.foo.node2  node2  running (26m)  8m ago     27m  3.3      registry.suse.com/ses/7/ceph/ceph:latest  8b4be7c42abd  c8b75d7c8f0d
  5. Repita estos pasos para cada nodo de NFS Ganesha. No es necesario crear una especificación de servicio independiente para cada nodo. Basta con añadir el nombre de host de cada nodo a la especificación del servicio NFS existente y volver a aplicarlo.

Las exportaciones existentes se pueden migrar de dos formas distintas:

  • Volviéndolas a crear o a asignar manualmente mediante Ceph Dashboard.

  • Copiando manualmente el contenido de cada objeto RADOS por daemon en la configuración común de NFS Ganesha recién creada.

Procedimiento 7.1: Copia manual de las exportaciones al archivo de configuración común de NFS Ganesha
  1. Determine la lista de objetos RADOS por daemon:

    cephuser@adm > RADOS_ARGS="--pool ganesha_config --namespace ganesha"
    cephuser@adm > DAEMON_OBJS=$(rados $RADOS_ARGS ls | grep 'conf-')
  2. Realice una copia de los objetos RADOS por daemon:

    cephuser@adm > for obj in $DAEMON_OBJS; do rados $RADOS_ARGS get $obj $obj; done
    cephuser@adm > ls -lah
    total 20K
    drwxr-xr-x 2 root root 4.0K Sep 8 16:51 .
    drwxr-xr-x 3 root root 4.0K Sep 8 16:47 ..
    -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-nfs.SERVICE_ID
    -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-node2
    -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-node3
  3. Ordene y fusione en una sola lista de exportaciones:

    cephuser@adm > cat conf-* | sort -u > conf-nfs.SERVICE_ID
    cephuser@adm > cat conf-nfs.foo
    %url "rados://ganesha_config/ganesha/export-1"
    %url "rados://ganesha_config/ganesha/export-2"
    %url "rados://ganesha_config/ganesha/export-3"
    %url "rados://ganesha_config/ganesha/export-4"
  4. Escriba el nuevo archivo de configuración común de NFS Ganesha:

    cephuser@adm > rados $RADOS_ARGS put conf-nfs.SERVICE_ID conf-nfs.SERVICE_ID
  5. Notifíqueselo al daemon de NFS Ganesha:

    cephuser@adm > rados $RADOS_ARGS notify conf-nfs.SERVICE_ID conf-nfs.SERVICE_ID
    Nota
    Nota

    Esta acción hará que el daemon vuelva a cargar la configuración.

Después de que el servicio se haya migrado correctamente, se puede eliminar el servicio de NFS Ganesha basado en Nautilus.

  1. Elimine NFS Ganesha:

    cephuser@adm > zypper rm nfs-ganesha
    Reading installed packages...
    Resolving package dependencies...
    The following 5 packages are going to be REMOVED:
      nfs-ganesha nfs-ganesha-ceph nfs-ganesha-rados-grace nfs-ganesha-rados-urls nfs-ganesha-rgw
    5 packages to remove.
    After the operation, 308.9 KiB will be freed.
    Continue? [y/n/v/...? shows all options] (y): y
    (1/5) Removing nfs-ganesha-ceph-2.8.3+git0.d504d374e-3.3.1.x86_64 .................................................................................................................................................................................................................................................................................................[done]
    (2/5) Removing nfs-ganesha-rgw-2.8.3+git0.d504d374e-3.3.1.x86_64 ..................................................................................................................................................................................................................................................................................................[done]
    (3/5) Removing nfs-ganesha-rados-urls-2.8.3+git0.d504d374e-3.3.1.x86_64 ...........................................................................................................................................................................................................................................................................................[done]
    (4/5) Removing nfs-ganesha-rados-grace-2.8.3+git0.d504d374e-3.3.1.x86_64 ..........................................................................................................................................................................................................................................................................................[done]
    (5/5) Removing nfs-ganesha-2.8.3+git0.d504d374e-3.3.1.x86_64 ......................................................................................................................................................................................................................................................................................................[done]
    Additional rpm output:
    warning: /etc/ganesha/ganesha.conf saved as /etc/ganesha/ganesha.conf.rpmsave
  2. Elimine la configuración del clúster heredada de Ceph Dashboard:

    cephuser@adm > ceph dashboard reset-ganesha-clusters-rados-pool-namespace

7.7.3 Actualización del servidor de metadatos

A diferencia de los servicios MON, MGR y OSD, el servidor de metadatos no se puede adoptar in situ. En su lugar, debe volver a distribuirlo en contenedores mediante Ceph Orchestrator.

  1. Ejecute el comando ceph fs ls para obtener el nombre del sistema de archivos, por ejemplo:

    cephuser@adm > ceph fs ls
    name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
  2. Cree un nuevo archivo de especificación de servicio mds.yml tal como se describe en la Sección 5.4.3.3, “Distribución de servidores de metadatos” utilizando el nombre del sistema de archivos como service_id y especificando los hosts que ejecutarán los daemons de MDS. Por ejemplo:

    service_type: mds
    service_id: cephfs
    placement:
      hosts:
      - ses-min1
      - ses-min2
      - ses-min3
  3. Ejecute el comando ceph orch apply -i mds.yml para aplicar la especificación de servicio e iniciar los daemons de MDS.

7.7.4 Actualización de iSCSI Gateway

Para actualizar iSCSI Gateway, debe volver a distribuirlo en contenedores mediante Ceph Orchestrator. Si dispone de varias pasarelas iSCSI Gateway, deberá volver a distribuirlas una a una para reducir el tiempo de inactividad del servicio.

  1. Detenga e inhabilite los daemons iSCSI existentes en cada nodo iSCSI Gateway:

    tux > sudo systemctl stop rbd-target-gw
    tux > sudo systemctl disable rbd-target-gw
    tux > sudo systemctl stop rbd-target-api
    tux > sudo systemctl disable rbd-target-api
  2. Cree una especificación de servicio para iSCSI Gateway como se describe en la Sección 5.4.3.5, “Distribución de pasarelas iSCSI Gateway”. Para ello, necesita los ajustes pool, trusted_ip_list y api_* del archivo /etc/ceph/iscsi-gateway.cfg existente. Si tiene habilitada la compatibilidad con SSL (api_secure = true), también necesitará el certificado SSL (/etc/ceph/iscsi-gateway.crt) y la clave (/etc/ceph/iscsi-gateway.key).

    Por ejemplo, si /etc/ceph/iscsi-gateway.cfg contiene lo siguiente:

    [config]
    cluster_client_name = client.igw.ses-min5
    pool = iscsi-images
    trusted_ip_list = 10.20.179.203,10.20.179.201,10.20.179.205,10.20.179.202
    api_port = 5000
    api_user = admin
    api_password = admin
    api_secure = true

    Debe crear el siguiente archivo de especificación de servicio iscsi.yml:

    service_type: iscsi
    service_id: igw
    placement:
      hosts:
      - ses-min5
    spec:
      pool: iscsi-images
      trusted_ip_list: "10.20.179.203,10.20.179.201,10.20.179.205,10.20.179.202"
      api_port: 5000
      api_user: admin
      api_password: admin
      api_secure: true
      ssl_cert: |
        -----BEGIN CERTIFICATE-----
        MIIDtTCCAp2gAwIBAgIYMC4xNzc1NDQxNjEzMzc2MjMyXzxvQ7EcMA0GCSqGSIb3
        DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARVdGFoMRcwFQYDVQQHDA5T
        [...]
        -----END CERTIFICATE-----
      ssl_key: |
        -----BEGIN PRIVATE KEY-----
        MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5jdYbjtNTAKW4
        /CwQr/7wOiLGzVxChn3mmCIF3DwbL/qvTFTX2d8bDf6LjGwLYloXHscRfxszX/4h
        [...]
        -----END PRIVATE KEY-----
    Nota
    Nota

    Los ajustes pool, trusted_ip_list, api_port, api_user, api_password y api_secure son idénticos a los del archivo /etc/ceph/iscsi-gateway.cfg. Los ajustes ssl_cert y ssl_key se pueden copiar desde el certificado SSL existente y los archivos de clave. Compruebe que están sangrados correctamente y que el carácter de barra vertical (|) aparece al final de las líneas ssl_cert: y ssl_key: (consulte el contenido del archivo iscsi.yml más arriba).

  3. Ejecute el comando ceph orch apply -i iscsi.yml para aplicar la especificación del servicio e iniciar los daemons de iSCSI Gateway.

  4. Elimine el paquete ceph-iscsi antiguo de todos los nodos de iSCSI Gateway existentes:

    cephuser@adm > zypper rm -u ceph-iscsi

7.8 Limpieza posterior a la actualización

Después de la actualización, realice los siguientes pasos de limpieza:

  1. Verifique que el clúster se haya actualizado correctamente comprobando la versión actual de Ceph:

    cephuser@adm > ceph versions
  2. Asegúrese de que ningún OSD antiguo se va a unir al clúster:

    cephuser@adm > ceph osd require-osd-release octopus
  3. Habilite el módulo de escalador automático:

    cephuser@adm > ceph mgr module enable pg_autoscaler
    Importante
    Importante

    Los repositorios de SUSE Enterprise Storage 6 tenían el valor pg_autoscale_mode definido por defecto como warn. Esto daba como resultado un mensaje de advertencia en caso de que hubiera un número de grupos de colocación que no fuera óptimo, pero el ajuste automático de escala no se producía. El ajuste por defecto en SUSE Enterprise Storage 7 es que la opción pg_autoscale_mode está en on para los nuevos repositorios, y los grupos de colocación se autoescalan. El proceso de actualización no cambia automáticamente el valor de pg_autoscale_mode de los repositorios existentes. Si desea cambiarlo a on para obtener todas las ventajas del escalador automático, consulte las instrucciones del Book “Guía de administración y operaciones”, Chapter 17 “Gestión de datos almacenados”, Section 17.4.12 “Habilitación del escalador automático de grupos de colocación”.

    Más detalles en el Book “Guía de administración y operaciones”, Chapter 17 “Gestión de datos almacenados”, Section 17.4.12 “Habilitación del escalador automático de grupos de colocación”.

  4. Impida los clientes anteriores a Luminous:

    cephuser@adm > ceph osd set-require-min-compat-client luminous
  5. Habilite el módulo de equilibrador:

    cephuser@adm > ceph balancer mode upmap
    cephuser@adm > ceph balancer on

    Más detalles en el Book “Guía de administración y operaciones”, Chapter 29 “Módulos de Ceph Manager”, Section 29.1 “Equilibrador”.

  6. También puede habilitar el módulo de telemetría:

    cephuser@adm > ceph mgr module enable telemetry
    cephuser@adm > ceph telemetry on

    Más detalles en el Book “Guía de administración y operaciones”, Chapter 29 “Módulos de Ceph Manager”, Section 29.2 “Habilitación del módulo de telemetría”.

A Actualizaciones de mantenimiento de Ceph basadas en versiones secundarias superiores de Octopus

Varios paquetes clave de SUSE Enterprise Storage 7 se basan en las distintas versiones de Octopus de Ceph. Cuando el proyecto Ceph (https://github.com/ceph/ceph) publica nuevas versiones secundarias de la serie Octopus, SUSE Enterprise Storage 7 se actualiza para garantizar que el producto se beneficia de las últimas correcciones de solucionar errores y actualizaciones retroactivas de características de esas versiones.

Este capítulo contiene un resumen de los principales cambios incluidos en cada versión secundaria posterior que se ha incluido en el producto, o que se tiene previsto incluir.

Octopus 15.2.5

La versión 15.2.5 de Octopus aporta las siguientes correcciones y otros cambios:

  • CephFS: las directivas de partición de subárbol estático automáticas ahora se pueden configurar mediante los nuevos atributos extendidos de fijación efímera aleatoria y distribuida en los directorios. Para obtener más datos, consulte la documentación siguiente: https://docs.ceph.com/docs/master/cephfs/multimds/

  • Los monitores tienen ahora una opción de configuración mon_osd_warn_num_repaired, que está definida en 10 por defecto. Si algún OSD ha reparado más errores de E/S en los datos almacenados de los indicados por esta cifra, se genera una advertencia de estado OSD_TOO_MANY_REPAIRS.

  • Ahora, si los indicadores no scrub o no deep-scrub se definen globalmente o por repositorio, la depuración programada del tipo inhabilitado se interrumpirán. Las depuraciones iniciadas por el usuario NO se interrumpen.

  • Se ha solucionado un problema por el que osdmaps no se optimizaba en un clúster en buen estado.

Octopus 15.2.4

La versión 15.2.4 de Octopus aporta las siguientes correcciones y otros cambios:

  • CVE-2020-10753: rgw: se han saneado las nuevas líneas en el encabezado ExposeHeader de s3 CORSConfiguration

  • Object Gateway: los subcomandos radosgw-admin relacionados con huérfanos (radosgw-admin orphans find, radosgw-admin orphans finish y radosgw-admin orphans list-jobs) han quedado obsoletos. No se han mantenido de forma activa y, dado que almacenan resultados intermedios en el clúster, podrían llegar a ocupar un clúster casi por completo. Se han sustituido por una herramienta, rgw-orphan-list, que actualmente se considera experimental.

  • RBD: el nombre del objeto de repositorio RBD que se utiliza para almacenar la programación de limpieza de la papelera de RBD ha cambiado de rbd_trash_trash_purge_schedule a rbd_trash_purge_schedule. Los usuarios que ya han comenzado a utilizar la función de programación de limpieza de papelera de RBD y tienen programas por repositorio o por espacio de nombres configuradas deben copiar el objeto rbd_trash_trash_purge_schedule en rbd_trash_purge_schedule antes de la actualización y eliminar rbd_trash_purge_schedule mediante los comandos siguientes en cada repositorio RBD y espacio de nombres configurado anteriormente:

    rados -p pool-name [-N namespace] cp rbd_trash_trash_purge_schedule rbd_trash_purge_schedule
    rados -p pool-name [-N namespace] rm rbd_trash_trash_purge_schedule

    También puede utilizar cualquier otra forma conveniente de restaurar la programación después de la actualización.

Octopus 15.2.3

  • La versión 15.2.3 de Octopus era una versión Hot Fix para solucionar un problema en el que se detectaban daños en WAL cuando se habilitaban bluefs_preextend_wal_files y bluefs_bufferen_io al mismo tiempo. La corrección de 15.2.3 es solo una medida temporal (que cambia el valor por defecto de bluefs_preextend_wal_files a false). La solución permanente será eliminar por completo la opción bluefs_preextend_wal_files: lo más probable es que esta solución llegue en la versión 15.2.6.

Octopus 15.2.2

La versión 15.2.2 de Octopus solucionó una vulnerabilidad de seguridad:

  • CVE-2020-10736: se ha corregido una omisión de autorización en MON y MGR.

Octopus 15.2.1

La versión 15.2.1 de Octopus solucionó un problema por el cual la actualización rápida de Luminous (SES5.5) a Nautilus (SES6) a Octopus (SES7) provocaba que los OSD se bloquearan. Además, se aplicaron parches a dos vulnerabilidades de seguridad presentes en la versión inicial de Octopus (15.2.0):

  • CVE-2020-1759: se ha corregido la reutilización de nonce en el modo seguro de msgr V2.

  • CVE-2020-1760: XSS corregido debido a la división de encabezado GetObject de RGW.

B Actualizaciones de la documentación

En este capítulo se describen los cambios de contenido de este documento que se aplican a la versión actual de SUSE Enterprise Storage.

  • El capítulo sobre Ceph Dashboard (Book “Guía de administración y operaciones”) se ha subido un nivel en la jerarquía del libro para que los temas detallados se puedan buscar directamente en la tabla de contenido.

  • La estructura del Book “Guía de administración y operaciones” se ha actualizado para que coincida con el rango actual de guías. Algunos capítulos se han trasladado a otras guías (jsc#SES-1397).

Glosario

General

Alertmanager

Un binario que gestiona las alertas enviadas por el servidor Prometheus y notifica al usuario final.

Almacenamiento de objetos de Ceph

El "producto", el servicio o las capacidades de almacenamiento de objetos, formado por un clúster de almacenamiento de Ceph y Ceph Object Gateway.

Árbol de enrutamiento

Un término dado a cualquier diagrama que muestre las diversas rutas que un receptor puede ejecutar.

Ceph Dashboard

Una aplicación integrada de gestión y supervisión de Ceph basada en Web para administrar varios aspectos y objetos del clúster. La consola se implementa como un módulo de Ceph Manager.

Ceph Manager

Ceph Manager, o MGR, es el software de gestión de Ceph, que recopila todo el estado de todo el clúster en un solo lugar.

Ceph Monitor

Ceph Monitor, o MON, es el software de supervisión de Ceph.

ceph-salt

Proporciona herramientas para distribuir clústeres de Ceph gestionados por cephadm mediante Salt.

cephadm

cephadm distribuye y gestiona un clúster de Ceph conectándose a hosts desde el daemon del gestor a través de SSH para añadir, eliminar o actualizar contenedores de daemon de Ceph.

CephFS

El sistema de archivos de Ceph.

CephX

El protocolo de autenticación de Ceph. Cephx funciona como Kerberos, pero no tiene un punto único de fallo.

Cliente de Ceph

Colección de componentes de Ceph que pueden acceder a un clúster de almacenamiento de Ceph. Entre ellos se incluyen Object Gateway, Ceph Block Device, CephFS y sus correspondientes bibliotecas, módulos del kernel y clientes FUSE.

Clúster de almacenamiento de Ceph

El conjunto principal de software de almacenamiento donde se almacenan los datos del usuario' Dicho conjunto está formado por los monitores Ceph Monitor y los OSD.

Conjunto de reglas

Las reglas para determinar la ubicación de los datos de un repositorio.

CRUSH, mapa de CRUSH

CRUSH: Controlled Replication Under Scalable Hashing (réplica controlada bajo hash escalable) es un algoritmo que determina cómo se deben almacenar y recuperar los datos calculando las ubicaciones de almacenamiento de los datos. CRUSH requiere un mapa del clúster para almacenar de forma pseudoaleatoria y recuperar los datos de los OSD con una distribución uniforme de los datos por el clúster.

Daemon Ceph OSD

El daemon ceph-osd es el componente de Ceph responsable de almacenar objetos en un sistema de archivos local y de proporcionar acceso a ellos a través de la red.

Depósito

Un punto que añade otros nodos en una jerarquía de ubicaciones físicas.

Dispositivo de bloques RADOS (RBD)

El componente de almacenamiento de bloques de Ceph. También conocido como dispositivo de bloques de Ceph.

DriveGroups

DriveGroups es una declaración de uno o varios diseños de OSD que se pueden asignar a unidades físicas. Un diseño de OSD define cómo Ceph asigna físicamente el almacenamiento de OSD en los medios que coinciden con criterios especificados.

Grafana

Solución de análisis y supervisión de bases de datos.

grupo de zona
Módulo de sincronización de archivos

Módulo que permite crear una zona de Object Gateway para mantener el historial de versiones de objetos de S3.

Multizona
Nodo

Cualquier equipo o servidor único de un clúster de Ceph.

Nodo de administración

El host desde el que se ejecutan los comandos relacionados con Ceph para administrar los hosts del clúster.

Nodo de OSD

Un nodo de clúster donde se almacenan los datos; se gestiona la réplica de los datos, la recuperación, la reposición y el reequilibrio, y que proporciona detalles de supervisión a los monitores Ceph Monitor mediante la comprobación de otros daemons Ceph OSD.

Object Gateway

El componente de pasarela S3/Swift para el almacén de objetos de Ceph. También conocido como pasarela RADOS (RGW).

OSD

Dispositivo de almacenamiento de objetos: unidad de almacenamiento física o lógica.

PG

Grupo de colocación: una subdivisión de un repositorio que se utiliza para ajustar el rendimiento.

Prometheus

Kit de herramientas de supervisión y alerta de sistemas.

RADOS (Reliable Autonomic Distributed Object Store, almacén de objetos distribuido automático fiable)

El conjunto principal de software de almacenamiento donde se almacenan los datos del usuario (MON+OSD).

Regla de CRUSH

La regla de colocación de datos de CRUSH que se aplica a uno o varios repositorios concretos.

Repositorio

Las particiones lógicas para almacenar los objetos, como las imágenes de disco.

Samba

Software de integración de Windows.

Samba Gateway

Samba Gateway se une a Active Directory en el dominio de Windows para autenticar y autorizar a los usuarios.

Servidor de metadatos

El servidor de metadatos, o MDS, es el software de metadatos de Ceph.

Versión secundaria

Cualquier versión ad hoc que incluye solo correcciones de errores o de seguridad.