- Acerca de esta guía
- I Presentación de SUSE Enterprise Storage (SES)
- 1 SES y Ceph
- 2 Requisitos y recomendaciones de hardware
- 2.1 Descripción general de la red
- 2.2 Configuraciones de varias arquitecturas
- 2.3 Configuración del hardware
- 2.4 Nodos de almacenamiento de objetos
- 2.5 Nodos de monitor
- 2.6 Nodos de Object Gateway
- 2.7 Nodos de servidor de metadatos
- 2.8 Nodo de administración
- 2.9 Nodos de iSCSI Gateway
- 2.10 SES y otros productos SUSE
- 2.11 Limitaciones de nombres
- 2.12 Servidor compartido por varios OSD y monitores
- 3 Configuración de alta disponibilidad del nodo de administración
- II Distribución del clúster de Ceph
- III Actualización desde versiones anteriores
- 10 Actualización desde SUSE Enterprise Storage 6 a la versión 7.1
- 10.1 Antes de actualizar
- 10.2 Actualización del master de Salt
- 10.3 Actualización de los nodos de MON, MGR y OSD
- 10.4 Actualización de nodos de pasarela
- 10.5 Instalación de
ceph-salt
y aplicación de la configuración del clúster - 10.6 Actualización y adopción de la pila de supervisión
- 10.7 Redistribución del servicio de pasarela
- 10.8 Limpieza posterior a la actualización
- 11 Actualización desde SUSE Enterprise Storage 7 a la versión 7.1
- 11.1 Antes de actualizar
- 11.2 Migración de SUSE Linux Enterprise Server en cada nodo del clúster a la versión SUSE Linux Enterprise Server 15 SP3
- 11.3 Actualización de los paquetes relacionados con SUSE Enterprise Storage en cada nodo del clúster
- 11.4 Actualización de los servicios de clúster de Ceph existentes
- 10 Actualización desde SUSE Enterprise Storage 6 a la versión 7.1
- A Actualizaciones de mantenimiento de Ceph basadas en versiones secundarias superiores de Pacific
- Glosario
- 1.1 Interfaces con el almacén de objetos de Ceph
- 1.2 Ejemplo de Ceph a pequeña escala
- 2.1 Descripción general de la red
- 2.2 Configuración de clúster mínima
- 3.1 Clúster de alta disponibilidad de 2 nodos para el nodo de administración
- 7.1 Distribución de un clúster mínimo
- 9.1 Clúster de Ceph con una sola instancia de iSCSI Gateway
- 9.2 Clúster de Ceph con varias instancias de iSCSI Gateway
Copyright © 2020–2024 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 marcas comerciales (®, ™, 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.1 desde la versión anterior del producto.
SUSE Enterprise Storage 7.1 es una extensión para SUSE Linux Enterprise Server 15 SP3. 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.1 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 #
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_LANG_CODE. Instálelo si aún no está en el sistema, por ejemplo:
#
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.1 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.1 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 (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
(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
(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 <doc-team@suse.com>. 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.user
: el nombre del usuario o grupo.package_name: el nombre de un paquete de software.
Alt, Alt–F1: tecla o combinación de teclas que pulsar. Las teclas se muestran en mayúsculas como en un teclado.
AMD/Intel Este párrafo solo es relevante para las arquitecturas AMD64/Intel 64. 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
yPOWER
. 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 comandosudo
para que un usuario sin privilegios los pueda ejecutar.#
command
>
sudo
command
Comandos que pueden ejecutar los usuarios sin privilegios.
>
command
Notificaciones
Aviso: aviso de advertenciaInformació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: aviso importanteInformación importante que debe tener en cuenta antes de continuar.
Nota: aviso de notaInformación adicional, por ejemplo sobre las diferencias en las versiones de software.
Sugerencia: aviso de sugerenciaInformación útil, como una directriz o un consejo práctico.
Avisos compactos
Información adicional, por ejemplo sobre las diferencias en las versiones de software.
Información útil, como una directriz o un consejo práctico.
4 Asistencia #
A continuación, encontrará la declaración de asistencia técnica de SUSE Enterprise Storage e información general sobre tecnología en fase preliminar. Para obtener más información sobre el ciclo de vida del producto, consulte https://www.suse.com/lifecycle.
Si tiene derecho a recibir asistencia técnica, encontrará detalles sobre cómo recopilar información para un ticket de asistencia en https://documentation.suse.com/sles-15/html/SLES-all/cha-adm-support.html.
4.1 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.2 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.
SUSE puede descubrir que una tecnología en fase preliminar no cumple las necesidades del cliente o del mercado, o que no cumple con los estándares empresariales. 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.
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.1.
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
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
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 #
, 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.1 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”).
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 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.
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.
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:
Una pequeña partición denominada BlueFS que implementa las funciones de sistema de archivos requeridas por RocksDB.
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.
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/pacific/.
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.
NotaSUSE 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.
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-SP3/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.
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.
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.
Defina la red del clúster mediante el comando siguiente:
#
ceph config set global cluster_network MY_NETWORKReinicie los OSD para asociarlos a la red de clúster especificada:
#
systemctl restart ceph-*@osd.*.serviceCompruebe 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"
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.
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.
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.
Tres nodos de Ceph Monitor: 4 GB de RAM, procesador de 4 núcleos, SSD RAID 1 para el disco.
Consulte la Sección 2.5, “Nodos de monitor” para obtener más recomendaciones.
Nodos de Object Gateway: 32 GB de RAM, procesador de 8 núcleos, SSD para el disco.
Consulte la Sección 2.6, “Nodos de Object Gateway” para obtener más recomendaciones.
Nodos de iSCSI Gateway: 16 GB de RAM, procesador de 8 núcleos, SSD para el disco.
Consulte la Sección 2.9, “Nodos de iSCSI Gateway” para obtener más recomendaciones.
Nodos de servidor de metadatos (uno activo y uno en hot standby): 32 GB de RAM, procesador de 8 núcleos, SSD RAID 1 para el disco.
Consulte la Sección 2.7, “Nodos de servidor de metadatos” para obtener más recomendaciones.
Un nodo de administración de SES: 4 GB de RAM, procesador de 4 núcleos, SSD RAID 1 para el disco.
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.
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-SP3/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 GBConsulte 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.
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 #
Consulte la Sección 1.4, “BlueStore” para obtener más información sobre BlueStore.
Se recomienda reservar 4 GB para el dispositivo WAL. Aunque el tamaño mínimo de la base de datos es de 64 GB para las cargas de trabajo de solo RBD, el tamaño de base de datos recomendado para las cargas de trabajo de Object Gateway y CephFS es del 2 % de la capacidad del dispositivo principal (pero al menos de 196 GB).
ImportanteSe 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.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.
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-SP3/single-html/SLE-HA-install-quick/#sec-ha-inst-quick-req.
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.
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-SP3/single-html/SLE-HA-install-quick/#art-sleha-install-quick.
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-SP3/single-html/SLES-virtualization/#sec-vt-installation-kvm.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-SP3/single-html/SLES-virtualization/#sec-libvirt-inst-virt-install. Utilice el almacenamiento compartido preconfigurado para almacenar las imágenes de disco de la máquina virtual.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:
#
virsh dumpxml VM_NAME > /path/to/shared/vm_name.xmlCree un recurso para la máquina virtual del nodo de administración. Consulte https://documentation.suse.com/sle-ha/15-SP3/single-html/SLE-HA-guide/#cha-conf-hawk2 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.
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 del Capítulo 6, 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 en lugar de como paquetes RPM. El proceso de distribución consta de dos pasos básicos:
- 5 Instalación y configuración de SUSE Linux Enterprise Server
Instale y registre SUSE Linux Enterprise Server 15 SP3 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:
- 6 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 impor…
- 7 Distribución del clúster de bootstrap mediante
ceph-salt
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.
- 8 Distribución de los servicios principales restantes mediante cephadm
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.
- 9 Distribución de servicios adicionales
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.1 incluye una utilidad que permite gestionar el almacenamiento de C…
4 Introducción y tareas comunes #
Desde SUSE Enterprise Storage 7, los servicios de Ceph se distribuyen como contenedores en lugar de como paquetes RPM. El proceso de distribución consta de dos pasos básicos:
- Distribución del clúster de bootstrap
Esta fase se denomina distribución del día 1 y consta de las siguientes tareas: incluye la instalación del sistema operativo subyacente, la configuración de la infraestructura de Salt y la distribución del clúster mínimo que consta de un servicio MON y un servicio MGR.
Instale y realice la configuración básica del sistema operativo subyacente (SUSE Linux Enterprise Server 15 SP3) en todos los nodos del clúster.
Distribuya la infraestructura de Salt en todos los nodos del clúster para realizar los preparativos de la distribución inicial mediante
ceph-salt
.Configure las propiedades básicas del clúster mediante
ceph-salt
e impleméntelo.
- Distribución de servicios adicionales
Durante la distribución del día 2, se distribuyen los servicios principales y no principales de Ceph; por ejemplo, pasarelas y la pila de supervisión.
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 automáticamente al comando cephadm bootstrap
. El comando cephadm bootstrap
no debe ejecutarse directamente. No se admitirá ninguna distribución manual del clúster de Ceph mediante bootstrap 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 Instalación y configuración de SUSE Linux Enterprise Server #
Instale y registre SUSE Linux Enterprise Server 15 SP3 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-SP3/html/SLES-all/cha-install.html.
Instale la extensión de SUSE Enterprise Storage 7.1 en cada nodo del clúster.
Sugerencia: instalación de SUSE Enterprise Storage junto con SUSE Linux Enterprise ServerPuede instalar la extensión de SUSE Enterprise Storage 7.1 por separado después de instalar SUSE Linux Enterprise Server 15 SP3, o bien añadirla durante el procedimiento de instalación de SUSE Linux Enterprise Server 15 SP3.
Encontrará más información sobre cómo instalar extensiones en https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-register-sle.html.
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-SP3/single-html/SLES-admin/#sec-network-yast. Para obtener más información sobre cómo configurar un servidor DNS, consulte https://documentation.suse.com/sles/15-SP3/single-html/SLES-admin/#cha-dns.
6 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: uso compartido de varias funciones por servidorConseguirá 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
.
Instale
salt-master
en el nodo master de Salt:root@master #
zypper in salt-masterCompruebe 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.serviceroot@master #
systemctl start salt-master.serviceSi 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 para la zona oportuna. Por ejemplo,public
.Instale el paquete
salt-minion
en todos los nodos minion.root@minion >
zypper in salt-minionEdite
/etc/salt/minion
y elimine el comentario de la siguiente línea:#log_level_logfile: warning
Cambie el nivel de registro de
warning
ainfo
.Nota:log_level_logfile
ylog_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
.NotaAsegúrese de cambiar el nivel de registro en todos los nodos del clúster (minions).
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.
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.serviceCompruebe que el servicio
salt-minion
está habilitado e iniciado en todos los nodos. Habilítelo e inícielo si fuera necesario:#
systemctl enable salt-minion.service#
systemctl start salt-minion.serviceVerifique la huella digital de cada minion de Salt y acepte todas las claves salt del master de Salt si las huellas coinciden.
NotaSi 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-allVerifique que las claves se han aceptado:
root@master #
salt-key --list-allCompruebe si todos los minions de Salt responden:
root@master #
salt-run manage.status
7 Distribución del clúster de bootstrap mediante ceph-salt
#
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.
7.1 Instalación 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 instaló ceph-salt-formula 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.serviceroot@master #
salt \* saltutil.sync_all
7.2 Configuración de las propiedades del clúster #
Utilice el comando ceph-salt config
para configurar las propiedades básicas del clúster.
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.
7.2.1 Uso de la shell ceph-salt
#
Si ejecuta config
sin ninguna vía o subcomando, deberá introducir una shell ceph-salt
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 ceph-salt
ls de
, 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]
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.
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.
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
7.2.2 Adición de minions de Salt #
Incluya todos los minions de Salt que se han distribuido y aceptado en la Capítulo 6, 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]
7.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 '*'
7.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.
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]
ceph.conf
y el anillo de claves de administración en varios nodosPuede 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.
7.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
7.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:
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.
7.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]
7.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 disableSi 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.comComo 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, comopool.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.comroot@master #
ceph-salt config /time_server/external_servers add pool.ntp.orgLa 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-SP3/html/SLES-all/cha-ntp.html#sec-ntp-yast.
7.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 adminroot@master #
ceph-salt config /cephadm_bootstrap/dashboard/password set PWD
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
7.2.10 Uso del registro del contenedor #
El clúster de Ceph debe tener acceso a un registro del contenedor para que pueda descargar y distribuir servicios de Ceph en contenedor. Existen dos formas de acceder al registro:
Si el clúster puede acceder al registro por defecto en
registry.suse.com
(directamente o mediante un proxy), puede hacer queceph-salt
apunte directamente a esta URL sin crear un registro local. Para continuar, siga los pasos de la Sección 7.2.10.2, “Configuración de la vía a las imágenes de contenedor”.Si el clúster no puede acceder al registro por defecto, por ejemplo, para una distribución con espacio abierto, deberá configurar un registro de contenedor local. Después de crear y configurar el registro local, deberá hacer que
ceph-salt
apunte a él.
7.2.10.1 Creación y configuración del registro local (opcional) #
Existen numerosos métodos para crear un registro local. Las instrucciones de esta sección son ejemplos para crear registros seguros y no seguros. Para obtener información general sobre cómo ejecutar un registro de imágenes de contenedor, consulte https://documentation.suse.com/sles/15-SP3/single-html/SLES-container/#sec-docker-registry-installation.
Distribuya el registro en un equipo al que puedan acceder todos los nodos del clúster. Recomendamos el nodo de administración. Por defecto, el registro escucha en el puerto 5000.
En el nodo de registro, utilice el siguiente comando para asegurarse de que el puerto está libre:
ss -tulpn | grep :5000
Si otros procesos (como iscsi-tcmu
) ya están escuchando en el puerto 5000, determine otro puerto libre que se pueda utilizar para asignar al puerto 5000 en el contenedor de registro.
Verifique que la extensión Containers Module esté habilitada:
>
SUSEConnect --list-extensions | grep -A2 "Containers Module" Containers Module 15 SP3 x86_64 (Activated)Verifique que los siguientes paquetes están instalados: apache2-utils (si se habilita un registro seguro), cni, cni-plugins, podman, podman-cni-config y skopeo.
Recopile la siguiente información:
Nombre de dominio completo del host de registro (
REG_HOST_FQDN
).Un número de puerto disponible utilizado para asignar al puerto del contenedor de registro 5000 (
REG_HOST_PORT
).Si el registro será seguro o no seguro (
insecure=[true|false]
).
Para iniciar un registro no seguro (sin cifrado SSL), siga estos pasos:
Configure
ceph-salt
para el registro no seguro:cephuser@adm >
ceph-salt config containers/registries_conf enablecephuser@adm >
ceph-salt config containers/registries_conf/registries \ add prefix=REG_HOST_FQDN
insecure=true \ location=REG_HOST_PORT
:5000Inicie el registro no seguro creando el directorio necesario (por ejemplo,
/var/lib/registry
) e inicie el registro con el comandopodman
:#
mkdir -p /var/lib/registry#
podman run --privileged -d --name registry \ -pREG_HOST_PORT
:5000 -v /var/lib/registry:/var/lib/registry \ --restart=always registry:2Para que el registro se inicie después de rearrancar, cree un archivo de unidad
systemd
para él y habilítelo:>
sudo
podman generate systemd --files --name registry>
sudo
mv container-registry.service /etc/systemd/system/>
sudo
systemctl enable container-registry.service
Para iniciar un registro seguro, siga estos pasos:
Cree los directorios necesarios:
#
mkdir -p /var/lib/registry/{auth,certs}Genere un certificado SSL:
#
openssl req -newkey rsa:4096 -nodes -sha256 \ -keyout /var/lib/registry/certs/domain.key -x509 -days 365 \ -out /var/lib/registry/certs/domain.crtNotaDefina el valor
CN=[valor]
en el nombre de dominio completo del host ([REG_HOST_FQDN]
).Copie el certificado en todos los nodos del clúster y actualice el caché de certificados:
#
salt-cp '*' /var/lib/registry/certs/domain.crt \ /etc/pki/trust/anchors/#
salt '*' cmd.shell "update-ca-certificates"Genere una combinación de nombre de usuario y contraseña para la autenticación en el registro:
#
htpasswd2 -bBc /var/lib/registry/auth/htpasswd \REG_USERNAME
REG_PASSWORD
Inicie el registro seguro. Utilice el indicador
REGISTRY_STORAGE_DELETE_ENABLED=true
para poder suprimir las imágenes posteriormente con el comandoskopeo delete
.podman run --name myregistry -p
REG_HOST_PORT
:5000 \ -v /var/lib/registry:/var/lib/registry \ -v /var/lib/registry/auth:/auth:z \ -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ -v /var/lib/registry/certs:/certs:z \ -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt" \ -e "REGISTRY_HTTP_TLS_KEY=/certs/domain.key" \ -e REGISTRY_STORAGE_DELETE_ENABLED=true \ -e REGISTRY_COMPATIBILITY_SCHEMA1_ENABLED=true -d registry:2Pruebe el acceso seguro al registro:
>
curl https://REG_HOST_FQDN
:REG_HOST_PORT
/v2/_catalog \ -uREG_USERNAME
:REG_PASSWORD
Después de crear el registro local, debe sincronizar las imágenes de contenedor desde el registro oficial de SUSE en
registry.suse.com
con el registro local. Puede utilizar el comandoskopeo sync
que se encuentra en el paquete skopeo para ese fin. Para obtener más información, consulte la página de manual (man 1 skopeo-sync
). Considere los siguientes ejemplos:Ejemplo 7.1: Visualización de archivos de manifiesto #skopeo inspect docker://registry.suse.com/ses/7.1/ceph/ceph | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/grafana | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1 | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2 | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0 | jq .RepoTags
Ejemplo 7.2: Sincronización con un directorio #Sincroniza todas las imágenes de Ceph:
skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/ceph /root/images/
Sincroniza solo las imágenes más recientes:
skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/ceph:latest /root/images/
Ejemplo 7.3: Sincronización de imágenes de Grafana #skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/grafana /root/images/
Sincroniza solo las imágenes de Grafana más recientes:
skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/grafana:latest /root/images/
Ejemplo 7.4: Sincronización de las imágenes más recientes de Prometheus #skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1 /root/images/ skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2 /root/images/ skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0 /root/images/
Configure la URL del registro local:
cephuser@adm >
ceph-salt config /containers/registry_auth/registry set REG_HOST_URLConfigure el nombre de usuario y la contraseña para acceder al registro local:
cephuser@adm >
ceph-salt config /containers/registry_auth/username set REG_USERNAMEcephuser@adm >
ceph-salt config /containers/registry_auth/password set REG_PASSWORD
Para evitar que se deba sincronizar de nuevo el registro local cuando aparezcan nuevos contenedores actualizados, puede configurar un caché de registro.
7.2.10.2 Configuración de la vía a las imágenes de contenedor #
Esta sección ayuda a configurar la vía a las imágenes de contenedor del clúster de bootstrap (distribución del primer par de Ceph Monitor y Ceph Manager). La vía no se aplica a las imágenes de contenedor de servicios adicionales, por ejemplo, la pila de supervisión.
Si necesita utilizar un servidor proxy para comunicarse con el servidor de registro del contenedor, realice los siguientes pasos de configuración en todos los nodos del clúster:
Copie el archivo de configuración de los contenedores:
>
sudo
cp /usr/share/containers/containers.conf /etc/containers/containers.confEdite el archivo recién copiado y añada el ajuste
http_proxy
a su sección[engine]
, por ejemplo:>
cat /etc/containers/containers.conf [engine] http_proxy=proxy.example.com [...]
cephadm necesita conocer una vía de URI válida a las imágenes del contenedor. Verifique el ajuste por defecto ejecutando:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_image_path ls
Si no necesita un registro alternativo o local, especifique el registro de contenedor de SUSE por defecto:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_image_path set registry.suse.com/ses/7.1/ceph/ceph
Si la distribución requiere una vía específica, por ejemplo, una vía a un registro local, configúrela de la siguiente manera:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_image_path set LOCAL_REGISTRY_PATH
7.2.11 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).
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"
Asegúrese de que secure
vaya delante de crc
.
Para forzar el modo secure
, ejecute los comandos siguientes:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_cluster_mode secureroot@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode secureroot@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode secure
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
7.2.12 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 globalroot@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set cluster_network NETWORK_ADDR
7.2.13 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.1/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]
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
7.2.14 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
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
7.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
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
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.
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
7.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)"
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.
7.5 Inhabilitación de clientes no seguros #
Desde Pacific 15.2.11, se ha introducido una nueva advertencia de actividad que informa de que se permite a los clientes no seguros unirse al clúster. Esta advertencia está activada por defecto. Ceph Dashboard mostrará el clúster con el estado HEALTH_WARN
y, al verificar el estado del clúster en la línea de comandos, obtendrá la siguiente información:
cephuser@adm >
ceph status
cluster:
id: 3fe8b35a-689f-4970-819d-0e6b11f6707c
health: HEALTH_WARN
mons are allowing insecure global_id reclaim
[...]
Esta advertencia significa que los monitores Ceph Monitor siguen permitiendo que los clientes antiguos sin parches aplicados se conecten al clúster. Esto garantiza que los clientes existentes puedan conectarse mientras se actualiza el clúster, pero le advierte de que hay un problema que debe solucionarse. Cuando el clúster y todos los clientes se actualicen a la versión más reciente de Ceph, deje de permitir el acceso a los clientes que no tengan los parches aplicados ejecutando el siguiente comando:
cephuser@adm >
ceph config set mon auth_allow_insecure_global_id_reclaim false
8 Distribución de los servicios principales restantes mediante cephadm #
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
).
8.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.
8.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
8.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
[...]
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
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 admitidos 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
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 0cephuser@adm >
ceph orch ps --daemon_type mds --daemon_id my_cephfs
8.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.
8.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
orbd-mirror
), una pasarela (nfs
orgw
) o parte de la pila de supervisión (alertmanager
,grafana
,node-exporter
oprometheus
).service_id
El nombre del servicio. Las especificaciones de tipo
mon
,mgr
,alertmanager
,grafana
,node-exporter
yprometheus
no requieren la propiedadservice_id
.placement
Especifica qué nodos ejecutarán el servicio. Consulte la Sección 8.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.
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 8.3, “Distribución de servicios de Ceph”.
8.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
[...]
8.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 8.1.1, “Visualización del estado del orquestador”.
8.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 8.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
---
[...]
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
8.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.
8.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.
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 7.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
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:
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
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
8.3.2 Distribución de los OSD de Ceph #
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-devicesUtilice 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
8.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:
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
8.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
8.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 especificar 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-----
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_FILEcephuser@adm >
ceph config-key set rgw/cert/REALM_NAME/ZONE_NAME.key \ -i SSL_KEY_FILE
8.3.4.1.1 Configuración de Object Gateway para que escuche en los puertos 443 y 80 #
Si desea configurar Object Gateway para que escuche en los puertos 443 (HTTPS) y 80 (HTTP), siga estos pasos:
Los comandos del procedimiento utilizan el dominio y la zona default
.
Distribuya Object Gateway proporcionando un archivo de especificación. Consulte la Sección 8.3.4, “Distribución de pasarelas Object Gateways” para obtener más información sobre la especificación de Object Gateway. Utilice el comando siguiente:
cephuser@adm >
ceph orch apply -i SPEC_FILESi no se proporcionan certificados SSL en el archivo de especificación, añádalos mediante el siguiente comando:
cephuser@adm >
ceph config-key set rgw/cert/default/default.crt -i certificate.pemcephuser@adm >
ceph config-key set rgw/cert/default/default.key -i key.pemCambie el valor por defecto de la opción
rgw_frontends
:cephuser@adm >
ceph config set client.rgw.default.default rgw_frontends \ "beast port=80 ssl_port=443"Elimine la configuración específica creada por cephadm. Identifique para qué destino se ha configurado la opción
rgw_frontends
ejecutando el comando:cephuser@adm >
ceph config dump | grep rgwPor ejemplo, el destino es
client.rgw.default.default.node4.yiewdu
. Elimine el valorrgw_frontends
específico actual:cephuser@adm >
ceph config rm client.rgw.default.default.node4.yiewdu rgw_frontendsSugerenciaEn lugar de eliminar un valor para
rgw_frontends
, puede especificarlo. Por ejemplo:cephuser@adm >
ceph config set client.rgw.default.default.node4.yiewdu \ rgw_frontends "beast port=80 ssl_port=443"Reinicie las instancias de Object Gateway:
cephuser@adm >
ceph orch restart rgw.default.default
8.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
8.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).
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"
Asegúrese de que las direcciones IP mostradas para trusted_ip_list
no tienen un espacio después de la separación por comas.
8.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-----
8.3.6 Distribución de NFS Ganesha #
NFS Ganesha admite la versión 4.1 y posteriores de NFS. No es compatible con NFS versión 3.
cephadm distribuye NFS Ganesha mediante un repositorio RADOS predefinido y un espacio de nombres opcional. Para distribuir NFS Ganesha, aplique la siguiente especificación:
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
)
8.3.7 Distribuyendo 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
8.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.
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:
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 prometheusNotaAsegú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 prometheusCree 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
Aplique los servicios de supervisión ejecutando:
cephuser@adm >
ceph orch apply -i monitoring.yamlLa distribución de los servicios de supervisión puede tardar uno o dos minutos.
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.
9 Distribución de servicios adicionales #
9.1 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.1 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.1. 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.1 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.
9.1.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.
9.1.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.
9.1.1.2 Iniciadores iSCSI #
Esta sección presenta una breve descripción de los iniciadores iSCSI utilizados en plataformas Linux, Microsoft Windows y VMware.
9.1.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.
9.1.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.
9.1.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.
9.1.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.
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.
9.1.3 Elementos a tener en cuenta para la distribución #
Una configuración mínima de SUSE Enterprise Storage 7.1 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.1 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 un mínimo 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ódulotarget_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.
9.1.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.
9.1.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 8.3.5, “Distribución de pasarelas iSCSI Gateway”.
9.1.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
9.1.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.
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:
#
cephadm enter --name CONTAINER_NAME
Como usuario root
, inicie la interfaz de línea de comandos de iSCSI Gateway:
#
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-targetsgwcli >
/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/gatewaysgwcli >
/iscsi-target...tvol/gateways> create iscsi1 192.168.124.104gwcli >
/iscsi-target...tvol/gateways> create iscsi2 192.168.124.105
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 /disksgwcli >
/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/disksgwcli >
/iscsi-target...testvol/disks> add iscsi-images/testvol
Puede utilizar herramientas de nivel inferior, como targetcli
, para consultar la configuración local, pero no para modificarla.
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 9.1.4.4, “Autenticación y control de acceso” para obtener más información sobre la autenticación y el control de acceso.
9.1.4.4 Autenticación y control de acceso #
La autenticación iSCSI es flexible y cubre muchas posibilidades de autenticación.
9.1.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/hostsgwcli >
/iscsi-target...testvol/hosts> auth disable_acl
9.1.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/hostsgwcli >
/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
9.1.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:e6ca28cc9f20gwcli >
/iscsi-target...:e6ca28cc9f20> auth username=common12 password=pass12345678
Los nombres de usuario deben tener entre 8 y 64 caracteres y pueden incluir letras, números y estos caracteres: .
, @
, -
, _
o :
.
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
.
9.1.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-targetsgwcli >
/iscsi-targets> discovery_auth username=du123456 password=dp1234567890
Los nombres de usuario deben tener una longitud de entre 8 y 64 caracteres y solo pueden incluir letras o estos caracteres: .
, @
, -
, _
o :
.
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
9.1.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
.
A no ser que se indique lo contrario, no se recomienda cambiar los valores por defecto de estos parámetros.
9.1.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:testvolgwcli >
/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.
9.1.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/testvolgwcli >
/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.
SugerenciaSe recomienda definir en
backstore_emulate_pr
el valor0
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óntarget_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.
9.1.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.
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
Si utiliza tcmu-runner
, la imagen RBD exportada debe tener habilitada la función exclusive-lock
.
Parte III Actualización desde versiones anteriores #
- 10 Actualización desde SUSE Enterprise Storage 6 a la versión 7.1
En este capítulo se presentan los pasos necesarios para actualizar SUSE Enterprise Storage 6 a la versión 7.1.
- 11 Actualización desde SUSE Enterprise Storage 7 a la versión 7.1
En este capítulo se presentan los pasos necesarios para actualizar SUSE Enterprise Storage 7 a la versión 7.1.
10 Actualización desde SUSE Enterprise Storage 6 a la versión 7.1 #
En este capítulo se presentan los pasos necesarios para actualizar SUSE Enterprise Storage 6 a la versión 7.1.
La actualización incluye las siguientes tareas:
Actualización de Ceph Nautilus a Pacific.
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.
La información sobre actualización de este capítulo solo se aplica a las actualizaciones de DeepSea a cephadm. No siga estas instrucciones si desea distribuir SUSE Enterprise Storage en una plataforma SUSE CaaS.
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, seguir los pasos de este capítulo.
10.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.
La migración del OSD de FileStore a BlueStore debe realizarse antes de la actualización, ya que FileStore no es compatible con SUSE Enterprise Storage 7.1. Encontrará más información sobre BlueStore y sobre cómo migrar desde FileStore en https://documentation.suse.com/ses/6/single-html/ses-deployment/#filestore2bluestore.
Si está ejecutando un clúster antiguo que aún utiliza los OSD de
ceph-disk
, debe cambiar aceph-volume
antes de la actualización. Más detalles en https://documentation.suse.com/ses/6/single-html/ses-deployment/#upgrade-osd-deployment
10.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.
Lectura de 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.1 en línea en https://www.suse.com/releasenotes/.
Además, después de instalar el paquete release-notes-ses desde el repositorio de SES 7.1, 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 la Parte II, “Distribución del clúster de Ceph” 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 nodos de Ceph Manager.La actualización para pasar de usar RPM de Nautilus a contenedores de Pacific debe realizarse en un solo paso. Esto significa que se debe actualizar un nodo completo cada 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
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 SP3 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 SP3 y, de nuevo, brevemente, cuando cada servicio se vuelve a distribuir en el modo de contenedores.
10.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.1. Para obtener más información sobre cómo realizar copias de seguridad de todos los datos, consulte el https://documentation.suse.com/ses/6/single-html/ses-admin/#cha-deployment-backup.
10.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
.
10.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:
#
zypper refresh && zypper patch
Consulte https://documentation.suse.com/ses/6/html/ses-all/storage-salt-cluster.html#deepsea-rolling-updates para obtener información detallada sobre la actualización de los nodos del clúster.
Después de aplicar las actualizaciones, reinicie el master de Salt, sincronice los nuevos módulos de Salt y compruebe el estado del clúster:
root@master #
systemctl restart salt-master.serviceroot@master #
salt '*' saltutil.sync_allcephuser@adm >
ceph -s
10.1.4.1 Inhabilitación de clientes no seguros #
A partir de Nautilus 14.2.20, se ha introducido una nueva advertencia de actividad que informa de que los clientes no seguros pueden unirse al clúster. Esta advertencia está activada por defecto. Ceph Dashboard mostrará el clúster con el estado HEALTH_WARN
. La línea de comandos verifica el estado del clúster de la siguiente manera:
cephuser@adm >
ceph status
cluster:
id: 3fe8b35a-689f-4970-819d-0e6b11f6707c
health: HEALTH_WARN
mons are allowing insecure global_id reclaim
[...]
Esta advertencia significa que los monitores Ceph Monitor siguen permitiendo que los clientes antiguos sin parches aplicados se conecten al clúster. Esto garantiza que los clientes existentes puedan conectarse mientras se actualiza el clúster, pero le advierte de que hay un problema que debe solucionarse. Cuando el clúster y todos los clientes se actualicen a la versión más reciente de Ceph, deje de permitir el acceso a los clientes que no tengan los parches aplicados ejecutando el siguiente comando:
cephuser@adm >
ceph config set mon auth_allow_insecure_global_id_reclaim false
10.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 SP3 y SUSE Enterprise Storage 7.1, así como al registro de imágenes de contenedor.
10.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-SP3/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-SP3
SLE-Module-Basesystem/15-SP3
SLE-Module-Server-Applications/15-SP3
SUSE-Enterprise-Storage-7.1
10.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.1/ceph/ceph
registry.suse.com/ses/7.1/ceph/grafana
registry.suse.com/ses/7.1/ceph/prometheus-server
registry.suse.com/ses/7.1/ceph/prometheus-node-exporter
registry.suse.com/ses/7.1/ceph/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 7.2.10, “Uso del registro del contenedor” para obtener más información sobre cómo configurar un registro de imagen de contenedor local.
10.2 Actualización del master de Salt #
El procedimiento siguiente describe el proceso de actualización del master de Salt:
Actualice el sistema operativo subyacente a SUSE Linux Enterprise Server 15 SP3:
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 dereboot
.
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_refreshSi 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 utilizar192.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
Si necesita especificar información de autenticación para el registro, añada el bloque
ses7_container_registry_auth:
, por ejemplo:ses7_container_image: 192.168.121.1:5000/my/ceph/image ses7_container_registries: - location: 192.168.121.1:5000 ses7_container_registry_auth: registry: 192.168.121.1:5000 username: USER_NAME password: PASSWORD
Guarde el archivo y aplique los cambios:
root@master #
salt '*' saltutil.refresh_pillarAsimile la configuración existente:
cephuser@adm >
ceph config assimilate-conf -i /etc/ceph/ceph.confVerifique 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 16.2.7-640-gceb23c7491b (ceb23c7491bd96ab7956111374219a4cdcf6f8f4) pacific (stable) os: SUSE Linux Enterprise Server 15 SP3 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)
10.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:
Antes de adoptar cualquier nodo de OSD, debe realizar una conversión de formato de los nodos de OSD para mejorar la fiabilidad de los datos de OMAP. Puede hacerlo ejecutando el siguiente comando en el nodo de administración:
cephuser@adm >
ceph config set osd bluestore_fsck_quick_fix_on_mount trueLos nodos de OSD se convertirán automáticamente cuando finalice su adopción.
NotaLa conversión puede tardar de minutos a horas, dependiendo de la cantidad de datos de OMAP que contenga el disco duro relacionado. Para obtener más información, consulte https://docs.ceph.com/en/latest/releases/pacific/#upgrading-non-cephadm-clusters.
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_NAMESustituya 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 sonses-min1
yses-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 [...]Actualice el sistema operativo subyacente a SUSE Linux Enterprise Server 15 SP3:
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 dereboot
.
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.adoptSustituya 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.SugerenciaPara 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 statusroot@master #
ceph versionsroot@master #
salt-run upgrade.statusDespué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
10.4 Actualización de nodos de pasarela #
A continuación, actualice los nodos de pasarela independientes (Samba Gateway, servidor de metadatos, Object Gateway, NFS Ganesha o iSCSI Gateway). Actualice el sistema operativo subyacente a SUSE Linux Enterprise Server 15 SP3 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 dereboot
.
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
).
Después de que el sistema operativo se haya actualizado en todos los nodos del 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.
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 SP3 hasta que se redistribuyen al final del proceso de actualización.
10.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 statusroot@master #
ceph versionsroot@master #
salt-run upgrade.status
Elimine los trabajos cron
rbd_exporter
yrgw_exporter
creados por DeepSea. En el master de Salt, como usuarioroot
, ejecute el comandocrontab -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
Exporte la configuración del clúster desde DeepSea ejecutando los comandos siguientes:
root@master #
salt-run upgrade.ceph_salt_config > ceph-salt-config.jsonroot@master #
salt-run upgrade.generate_service_specs > specs.yamlDesinstale DeepSea e instale
ceph-salt
en el master de Salt:root@master #
zypper remove 'deepsea*'root@master #
zypper install ceph-saltReinicie el master de Salt y sincronice los módulos de Salt:
root@master #
systemctl restart salt-master.serviceroot@master #
salt \* saltutil.sync_allImporte la configuración del clúster de DeepSea a
ceph-salt
:root@master #
ceph-salt import ceph-salt-config.jsonGenere las claves SSH para la comunicación del nodo de clúster:
root@master #
ceph-salt config /ssh generateSugerenciaVerifique que la configuración del clúster se ha importado desde DeepSea y especifique las opciones que pudieran faltar:
root@master #
ceph-salt config lsPara obtener una descripción completa de la configuración del clúster, consulte la Sección 7.2, “Configuración de las propiedades del clúster”.
Aplique la configuración y habilite cephadm:
root@master #
ceph-salt applySi necesita proporcionar la URL del registro del contenedor local y las credenciales de acceso, siga los pasos descritos en la Sección 7.2.10, “Uso del registro del contenedor”.
Si no está utilizando imágenes de contenedor de
registry.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_NAMEPor ejemplo:
root@master #
ceph config set global container_image 192.168.121.1:5000/my/ceph/imageDetenga 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-crashroot@master #
salt '*' service.disable ceph-crash
10.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).
Ponga en pausa el orquestador:
cephuser@adm >
ceph orch pauseEn 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)SugerenciaSi no está ejecutando el registro de imágenes de contenedor por defecto,
registry.suse.com
, debe especificar la imagen que desea utilizar en cada comando, por ejemplo:cephuser@adm >
cephadm --image 192.168.121.1:5000/ses/7.1/ceph/prometheus-server:2.32.1 \ adopt --style=legacy --name prometheus.$(hostname)cephuser@adm >
cephadm --image 192.168.121.1:5000/ses/7.1/ceph/prometheus-alertmanager:0.21.0 \ adopt --style=legacy --name alertmanager.$(hostname)cephuser@adm >
cephadm --image 192.168.121.1:5000/ses/7.1/ceph/grafana:7.5.12 \ adopt --style=legacy --name grafana.$(hostname)Las imágenes de contenedor necesarias y sus respectivas versiones se muestran en 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”.
Elimine Node-Exporter de todos los nodos. No es necesario migrarlo y se volverá a instalar como contenedor cuando se aplique el archivo
specs.yaml
.>
sudo
zypper rm golang-github-prometheus-node_exporterComo alternativa, puede eliminar Node-Exporter de todos los nodos simultáneamente mediante Salt en el nodo de administración:
root@master #
salt '*' pkg.remove golang-github-prometheus-node_exporterAplique las especificaciones de servicio que exportó anteriormente desde DeepSea:
cephuser@adm >
ceph orch apply -i specs.yamlSugerenciaSi no está ejecutando el registro de imagen de contenedor por defecto,
registry.suse.com
, sino un registro de contenedor local, configure cephadm para que utilice la imagen de contenedor del registro local para la distribución de Node-Exporter antes de distribuir Node-Exporter. De lo contrario, puede omitir este paso sin problemas e ignorar la siguiente advertencia.cephuser@adm >
ceph config set mgr mgr/cephadm/container_image_node_exporter QUALIFIED_IMAGE_PATHAsegúrese de que todas las imágenes de contenedor para los servicios de supervisión apuntan al registro local, no solo al de Node-Exporter. En este paso es necesario hacerlo solo para Node-Exporter, pero se recomienda que defina todas las imágenes del contenedor de supervisión en cephadm para que apunten al registro local en este punto.
Si no lo hace, las nuevas distribuciones de servicios de supervisión y las redistribuciones utilizarán la configuración por defecto de cephadm y es posible que no pueda distribuir los servicios (en el caso de distribuciones con espacios abiertos), o que acabe con servicios distribuidos con versiones mixtas.
La forma en que se debe configurar cephadm para utilizar imágenes de contenedor del registro local se describe en 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”.
Reanude el orquestador:
cephuser@adm >
ceph orch resume
10.7 Redistribución del servicio de pasarela #
10.7.1 Actualización de Object Gateway #
En SUSE Enterprise Storage 7.1, 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, de grupo de zonas y de zona.
Cree un dominio nuevo:
cephuser@adm >
radosgw-admin realm create --rgw-realm=REALM_NAME --defaultOpcionalmente, 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_NAMEcephuser@adm >
radosgw-admin zone rename \ --rgw-zone default \ --zone-new-name ZONE_NAME \ --rgw-zonegroup=ZONEGROUP_NAMEConfigure 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 --defaultConfigure 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 usuarioadmin
. Para obtener los valores de ACCESS_KEY y SECRET_KEY, ejecuteradosgw-admin user info --uid admin --rgw-zone=NOMBRE_ZONA
.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 --defaultAsigne 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 8.3.4, “Distribución de pasarelas Object Gateways” y aplíquelo.
cephuser@adm >
ceph orch apply -i RGW.yml
10.7.2 Actualización de NFS Ganesha #
NFS Ganesha admite la versión 4.1 y posteriores de NFS. No es compatible con NFS versión 3.
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.
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 intentar cualquier migración, se recomienda encarecidamente realizar una copia de los objetos de exportación y configuración del daemon ubicados en el repositorio RADOS. Para localizar el repositorio RADOS configurado, ejecute el siguiente comando:
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; donecephuser@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 cualquiera contenedor gestionado por cephadm.
Detenga e inhabilite el servicio de NFS Ganesha existente:
cephuser@adm >
systemctl stop nfs-ganeshacephuser@adm >
systemctl disable nfs-ganeshaDespué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 8.2, “Especificación del servicio y la colocación”.
Aplique la especificación de colocación:
cephuser@adm >
ceph orch apply -i FILENAME.yamlConfirme 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.1/ceph/ceph:latest 8b4be7c42abd c8b75d7c8f0dRepita 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.
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-')Realice una copia de los objetos RADOS por daemon:
cephuser@adm >
for obj in $DAEMON_OBJS; do rados $RADOS_ARGS get $obj $obj; donecephuser@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-node3Ordene y fusione en una sola lista de exportaciones:
cephuser@adm >
cat conf-* | sort -u > conf-nfs.SERVICE_IDcephuser@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"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_IDNotifíqueselo al daemon de NFS Ganesha:
cephuser@adm >
rados $RADOS_ARGS notify conf-nfs.SERVICE_ID conf-nfs.SERVICE_IDNotaEsta 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.
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.rpmsaveElimine la configuración del clúster heredada de Ceph Dashboard:
cephuser@adm >
ceph dashboard reset-ganesha-clusters-rados-pool-namespace
10.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.
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 ]Cree un nuevo archivo de especificación de servicio
mds.yml
tal como se describe en la Sección 8.3.3, “Distribución de servidores de metadatos” utilizando el nombre del sistema de archivos comoservice_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
Ejecute el comando
ceph orch apply -i mds.yml
para aplicar la especificación de servicio e iniciar los daemons de MDS.
10.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.
Detenga e inhabilite los daemons iSCSI existentes en cada nodo iSCSI Gateway:
>
sudo
systemctl stop rbd-target-gw>
sudo
systemctl disable rbd-target-gw>
sudo
systemctl stop rbd-target-api>
sudo
systemctl disable rbd-target-apiCree una especificación de servicio para iSCSI Gateway como se describe en la Sección 8.3.5, “Distribución de pasarelas iSCSI Gateway”. Para ello, necesita los ajustes
pool
,trusted_ip_list
yapi_*
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-----
NotaLos ajustes
pool
,trusted_ip_list
,api_port
,api_user
,api_password
yapi_secure
son idénticos a los del archivo/etc/ceph/iscsi-gateway.cfg
. Los ajustesssl_cert
yssl_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íneasssl_cert:
yssl_key:
(consulte el contenido del archivoiscsi.yml
más arriba).Ejecute el comando
ceph orch apply -i iscsi.yml
para aplicar la especificación del servicio e iniciar los daemons de iSCSI Gateway.Elimine el paquete ceph-iscsi antiguo de cada uno de los nodos de iSCSI Gateway existentes:
cephuser@adm >
zypper rm -u ceph-iscsi
10.8 Limpieza posterior a la actualización #
Después de la actualización, realice los siguientes pasos de limpieza:
Verifique que el clúster se haya actualizado correctamente comprobando la versión actual de Ceph:
cephuser@adm >
ceph versionsAsegúrese de que ningún OSD antiguo se va a unir al clúster:
cephuser@adm >
ceph osd require-osd-release pacificSi fuera necesario, defina
pg_autoscale_mode
para los repositorios existentes:ImportanteLos repositorios de SUSE Enterprise Storage 6 tenían el valor
pg_autoscale_mode
definido por defecto comowarn
. 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.1 es que la opciónpg_autoscale_mode
esté enon
para los nuevos repositorios y que los grupos de colocación se autoescalen. El proceso de actualización no cambia automáticamente el valor depg_autoscale_mode
de los repositorios existentes. Si desea cambiarlo aon
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”.
Impida los clientes anteriores a Luminous:
cephuser@adm >
ceph osd set-require-min-compat-client luminousHabilite el módulo de equilibrador:
cephuser@adm >
ceph balancer mode upmapcephuser@adm >
ceph balancer onMás detalles en el Book “Guía de administración y operaciones”, Chapter 29 “Módulos de Ceph Manager”, Section 29.1 “Equilibrador”.
También puede habilitar el módulo de telemetría:
cephuser@adm >
ceph mgr module enable telemetrycephuser@adm >
ceph telemetry onMá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”.
11 Actualización desde SUSE Enterprise Storage 7 a la versión 7.1 #
En este capítulo se presentan los pasos necesarios para actualizar SUSE Enterprise Storage 7 a la versión 7.1.
La actualización incluye las siguientes tareas:
Actualización de la instancia subyacente de SUSE Linux Enterprise Server 15 SP2 a la versión SUSE Linux Enterprise Server 15 SP3.
Actualización de Ceph Octopus a Pacific.
11.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 7.
11.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.
Lectura de 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.1 en línea en https://www.suse.com/releasenotes/.
Además, después de instalar el paquete release-notes-ses desde el repositorio de SES 7.1, 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 la Parte II, “Distribución del clúster de Ceph” para familiarizarse con
ceph-salt
y Ceph Orchestrator y, en particular, con la información sobre las especificaciones de servicio.
11.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. Para obtener instrucciones sobre cómo realizar copias de seguridad de todos los datos, consulte el Book “Guía de administración y operaciones”, Chapter 15 “Copia de seguridad y recuperación”.
11.1.3 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 SP3 y SUSE Enterprise Storage 7.1, así como al registro de imágenes de contenedor.
11.1.3.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-SP3/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-SP3
SLE-Module-Basesystem/15-SP3
SLE-Module-Server-Applications/15-SP3
SUSE-Enterprise-Storage-7.1
11.1.3.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.1/ceph/ceph
registry.suse.com/ses/7.1/ceph/grafana
registry.suse.com/ses/7.1/ceph/prometheus-server
registry.suse.com/ses/7.1/ceph/prometheus-node-exporter
registry.suse.com/ses/7.1/ceph/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 7.2.10, “Uso del registro del contenedor” para obtener más información sobre cómo configurar un registro de imagen de contenedor local.
11.2 Migración de SUSE Linux Enterprise Server en cada nodo del clúster a la versión SUSE Linux Enterprise Server 15 SP3 #
Si los nodos del clúster están configurados para utilizar el Centro de servicios al cliente de SUSE, puede utilizar el comando zypper migration
.
Si los nodos del clúster tienen repositorios de software configurados manualmente, deberá actualizar los nodos manualmente.
Para obtener información detallada sobre la actualización de SUSE Linux Enterprise Server mediante zypper
, consulte https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-upgrade-online.html#sec-upgrade-online-zypper.
11.3 Actualización de los paquetes relacionados con SUSE Enterprise Storage en cada nodo del clúster #
Para actualizar los paquetes de SUSE Enterprise Storage a la versión más reciente, utilice el comando ceph-salt update
. Para obtener más información, consulte el Book “Guía de administración y operaciones”, Chapter 13 “Tareas operativas”, Section 13.6 “Actualización de los nodos del clúster”.
11.4 Actualización de los servicios de clúster de Ceph existentes #
Lleve a cabo la actualización de todo el clúster de Ceph a la versión Pacific ejecutando el siguiente comando desde el nodo de administración:
cephuser@adm >
ceph orch upgrade start --image registry.suse.com/ses/7.1/ceph/ceph
A Actualizaciones de mantenimiento de Ceph basadas en versiones secundarias superiores de Pacific #
Varios paquetes clave de SUSE Enterprise Storage 7.1 se basan en las distintas versiones de Pacific de Ceph. Cuando el proyecto Ceph (https://github.com/ceph/ceph) publica nuevas versiones secundarias de la serie Pacific, SUSE Enterprise Storage 7.1 se actualiza para garantizar que el producto se beneficia de las últimas correcciones de 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.
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.