7 Actualización desde una versión anterior #
En este capítulo se presentan los pasos necesarios para actualizar SUSE Enterprise Storage 6 a la versión 7.
La actualización incluye las siguientes tareas:
Actualización de Ceph Nautilus a Octopus.
Cambio de la instalación y ejecución de Ceph a través de paquetes RPM a la ejecución en contenedores.
Eliminación completa de DeepSea y sustitución por
ceph-salt
y cephadm.
La información sobre actualización de este capítulo solo se aplica a las actualizaciones de DeepSea a cephadm. No intente seguir estas instrucciones si desea distribuir SUSE Enterprise Storage en la plataforma SUSE CaaS.
No se admite la actualización desde versiones de SUSE Enterprise Storage anteriores a la 6. En primer lugar, debe actualizar a la versión más reciente de SUSE Enterprise Storage 6 y, a continuación, siga los pasos de este capítulo.
7.1 Antes de actualizar #
Las siguientes tareas deben completarse antes de iniciar la actualización. Puede hacerlo en cualquier momento durante la vida útil de SUSE Enterprise Storage 6.
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. Encontrará más información sobre BlueStore y sobre cómo migrar desde FileStore en https://documentation.suse.com/ses/6/html/ses-all/cha-ceph-upgrade.html#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/html/ses-all/cha-ceph-upgrade.html#upgrade-osd-deployment.
7.1.1 Puntos que se deben tener en cuenta #
Antes de actualizar, lea atentamente las secciones siguientes para asegurarse de que comprende todas las tareas que deben ejecutarse.
Lea las notas de la versión. En ellas encontrará información adicional sobre los cambios realizados desde la versión previa de SUSE Enterprise Storage. Consulte las notas de versión para comprobar lo siguiente:
Si el hardware necesita consideraciones especiales.
Si los paquetes de software usados han cambiado de forma significativa.
Si es necesario tomar precauciones especiales para la instalación.
Las notas de la versión también proporcionan información que no pudo publicarse en el manual a tiempo y notas acerca de problemas conocidos.
Encontrará las notas de la versión de SES 7 en línea en https://www.suse.com/releasenotes/.
Asimismo, después de instalar el paquete release-notes-ses desde el repositorio de SES 7, encontrará las notas de la versión en el directorio
/usr/share/doc/release-notes
o en línea en https://www.suse.com/releasenotes/.Lea el Capítulo 5, Distribución con cephadm para familiarizarse con
ceph-salt
y Ceph Orchestrator y, en particular, con la información sobre las especificaciones de servicio.La actualización del clúster puede tardar mucho tiempo, aproximadamente el que se tarda en actualizar un equipo multiplicado por el número de nodos del clúster.
Primero debe actualizar el master de Salt, y después sustituir DeepSea con
ceph-salt
y cephadm. No podrá empezar a utilizar el módulo de orcephadm orchestrator al menos hasta que se hayan actualizado todos los de Ceph Manager.La actualización de usar RPM de Nautilus a contenedores de Octopus debe realizarse en un solo paso. Esto significa que se debe actualizar un nodo completo a la vez, no de daemon en daemon.
La actualización de los servicios principales (MON, MGR, OSD) se produce de forma ordenada. Cada servicio está disponible durante la actualización. Los servicios de pasarela (servidor de metadatos, Object Gateway, NFS Ganesha e iSCSI Gateway) deben redistribuirse después de actualizar los servicios principales. Para los siguientes servicios se produce un cierto tiempo de inactividad:
- Importante
Los servidores de metadatos y las pasarelas Object Gateway están inactivos desde el momento en que los nodos se actualizan de SUSE Linux Enterprise Server 15 SP1 a SUSE Linux Enterprise Server 15 SP2 hasta que los servicios se vuelven a distribuir al final del proceso de actualización. Es especialmente importante tener esto en cuenta si estos servicios se colocan junto a servicios MON, MGR u OSD, ya que en tal caso, pueden estar inactivos durante toda la actualización del clúster. Si se prevé que esto sea un problema, considere la posibilidad de distribuir estos servicios por separado en nodos adicionales antes de la actualización, de forma que permanezcan inactivos durante el menor tiempo posible; que será lo que tarden en actualizarse los nodos de pasarela, no lo que tarde todo el clúster en actualizarse.
NFS Ganesha y las pasarelas iSCSI Gateway solo están inactivos mientras los nodos se reinician durante la actualización de SUSE Linux Enterprise Server 15 SP1 a SUSE Linux Enterprise Server 15 SP2 y, de nuevo, brevemente, cuando cada servicio se vuelve a distribuir en modo de contenedores.
7.1.2 Copia de seguridad de la configuración y los datos del clúster #
Se recomienda encarecidamente realizar una copia de seguridad de toda la configuración y los datos del clúster antes de iniciar la actualización a SUSE Enterprise Storage 7. Para obtener instrucciones sobre cómo realizar copias de seguridad de todos los datos, consulte https://documentation.suse.com/ses/6/html/ses-all/cha-deployment-backup.html.
7.1.3 Verificación de los pasos de la actualización anterior #
En caso de que haya actualizado previamente desde la versión 5, compruebe que la actualización a la versión 6 se haya completado correctamente:
Compruebe si el archivo /srv/salt/ceph/configuration/files/ceph.conf.import
existe.
Este archivo se crea en el proceso de importación durante la actualización de SUSE Enterprise Storage 5 a la versión 6. La opción configuration_init: default-import
se define como /srv/pillar/ceph/proposals/config/stack/default/ceph/cluster.yml
.
Si configuration_init
todavía está definido como default-import
, el clúster está utilizando ceph.conf.import
como su archivo de configuración, y no el archivo ceph.conf
por defecto de DeepSea, que se compila a partir de los archivos de :/srv/salt/ceph/configuration/files/ceph.conf.d/
.
Por lo tanto, debe inspeccionar si hay alguna configuración personalizada en ceph.conf.import
y, posiblemente, trasladar la configuración a uno de los archivos de: /srv/salt/ceph/configuration/files/ceph.conf.d/
.
A continuación, elimine la línea configuration_init: default-import
de /srv/pillar/ceph/proposals/config/stack/default/ceph/cluster.yml
.
7.1.4 Actualización de los nodos de clúster y verificación del estado del clúster #
Verifique que todas las actualizaciones más recientes de SUSE Linux Enterprise Server 15 SP1 y SUSE Enterprise Storage 6 se han aplicado a todos los nodos de clúster:
root #
zypper refresh && zypper patch
Después de aplicar las actualizaciones, compruebe el estado del clúster:
cephuser@adm >
ceph -s
7.1.5 Verificación del acceso a repositorios de software e imágenes de contenedor #
Verifique que cada nodo del clúster tenga acceso a los repositorios de software de SUSE Linux Enterprise Server 15 SP2 y SUSE Enterprise Storage 7, así como al registro de imágenes de contenedor.
7.1.5.1 Repositorios de software #
Si todos los nodos están registrados con SCC, podrá utilizar el comando zypper migration
para actualizar. Consulte https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-upgrade-online.html#sec-upgrade-online-zypper para obtener más información.
Si los nodos no están registrados con SCC, inhabilite todos los repositorios de software existentes y añada los repositorios Repositorio
y Actualizaciones
para cada una de las extensiones siguientes:
SLE-Product-SLES/15-SP2
SLE-Module-Basesystem/15-SP2
SLE-Module-Server-Applications/15-SP2
SUSE-Enterprise-Storage-7
7.1.5.2 Imágenes de contenedor #
Todos los nodos de clúster necesitan acceso al registro de imágenes de contenedor. En la mayoría de los casos, utilizará el registro público de SUSE situado en registration.suse.com
. Necesitará las siguientes imágenes:
registry.suse.com/ses/7/ceph/ceph
registry.suse.com/ses/7/ceph/grafana
registry.suse.com/caasp/v4.5/prometheus-server
registry.suse.com/caasp/v4.5/prometheus-node-exporter
registry.suse.com/caasp/v4.5/prometheus-alertmanager
Como alternativa, por ejemplo para las distribuciones en entornos aislados, configure un registro local y verifique que tiene el conjunto correcto de imágenes de contenedor. Consulte la Sección 5.3.2.11, “Configuración del registro del contenedor” para obtener más información sobre cómo configurar un registro de imagen de contenedor local.
7.2 Actualización del master de Salt #
El procedimiento siguiente describe el proceso de actualización del master de Salt:
Actualice el sistema operativo subyacente a SUSE Linux Enterprise Server 15 SP2:
En el caso de un clúster que tenga todos los nodos registrados con SCC, ejecute
zypper migration
.Para un clúster cuyos nodos tienen repositorios de software asignados manualmente, ejecute
zypper dup
seguido 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
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 15.2.2-60-gf5864377ab (f5864377abb5549f843784c93577980aa264b9bc) octopus (stable) os: SUSE Linux Enterprise Server 15 SP2 Nodes running these software versions: admin.ceph (assigned roles: master, prometheus, grafana) Nodes running older software versions must be upgraded in the following order: 1: mon1.ceph (assigned roles: admin, mon, mgr) 2: mon2.ceph (assigned roles: admin, mon, mgr) 3: mon3.ceph (assigned roles: admin, mon, mgr) 4: data4.ceph (assigned roles: storage, mds) 5: data1.ceph (assigned roles: storage) 6: data2.ceph (assigned roles: storage) 7: data3.ceph (assigned roles: storage) 8: data5.ceph (assigned roles: storage, rgw)
7.3 Actualización de los nodos de MON, MGR y OSD #
Actualice los nodos de Ceph Monitor, Ceph Manager y OSD de uno en uno. Para cada servicio, siga estos pasos:
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 SP2:
Si todos los nodos de clúster están registrados con SCC, ejecute
zypper migration
.Si los nodos de clúster tienen repositorios de software asignados manualmente, ejecute
zypper dup
seguido 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
7.4 Actualización de nodos de pasarela #
A continuación, actualice los nodos de pasarela independientes (servidor de metadatos, Object Gateway, NFS Ganesha o iSCSI Gateway). Actualice el sistema operativo subyacente a SUSE Linux Enterprise Server 15 SP2 para cada nodo:
Si todos los nodos de clúster están registrados en el Centro de servicios al cliente de SUSE, ejecute el comando
zypper migration
.Si los nodos de clúster tienen repositorios de software asignados manualmente, ejecute
zypper dup
seguido 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
).
Una vez que se actualiza el sistema operativo en todos los nodos de clúster, el siguiente paso es instalar el paquete ceph-salt y aplicar la configuración del clúster. Los servicios de pasarela reales se redistribuyen en un modo de contenedores al final del proceso de actualización.
Los servicios de servidor de metadatos y Object Gateway no están disponibles desde el momento de la actualización a SUSE Linux Enterprise Server 15 SP2 hasta que se redistribuyen al final del proceso de actualización.
7.5 Instalación de ceph-salt
y aplicación de la configuración del clúster #
Antes de iniciar el proceso de instalación de ceph-salt
y aplicar la configuración del clúster, compruebe el estado del clúster y de la actualización ejecutando los comandos siguientes:
root@master #
ceph 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 5.3.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 5.3.2.11, “Configuración del registro del contenedor”.
Si no está utilizando imágenes de contenedor de
registration.suse.com
, sino el registro configurado localmente, informe a Ceph sobre qué imagen de contenedor debe utilizar ejecutando:root@master #
ceph config set global container_image IMAGE_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
7.6 Actualización y adopción de la pila de supervisión #
El siguiente procedimiento adopta todos los componentes de la pila de supervisión (consulte el Capítulo 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,
registration.suse.com
, debe especificar la imagen que desea utilizar, por ejemplo:cephuser@adm >
cephadm --image 192.168.121.1:5000/caasp/v4.5/prometheus-server:2.18.0 \ adopt --style=legacy --name prometheus.$(hostname)cephuser@adm >
cephadm --image 192.168.121.1:5000/caasp/v4.5/prometheus-alertmanager:0.16.2 \ adopt --style=legacy --name alertmanager.$(hostname)cephuser@adm >
cephadm --image 192.168.121.1:5000/ses/7/ceph/grafana:7.0.3 \ adopt --style=legacy --name grafana.$(hostname)Para obtener más información sobre el uso de imágenes de contenedor personalizadas o locales, consulte el Sección 16.1, “Configuración de imágenes personalizadas o locales”.
Elimine Node-Exporter. No es necesario migrarlo y se volverá a instalar como contenedor cuando se aplique el archivo
specs.yaml
.tux >
sudo
zypper rm golang-github-prometheus-node_exporterAplique las especificaciones de servicio que exportó anteriormente desde DeepSea:
cephuser@adm >
ceph orch apply -i specs.yamlReanude el orquestador:
cephuser@adm >
ceph orch resume
7.7 Redistribución del servicio de pasarela #
7.7.1 Actualización de Object Gateway #
En SUSE Enterprise Storage 7, las pasarelas Object Gateway siempre se configuran con un dominio, lo que permite utilizar varios sitios en el futuro (consulte el Sección 21.13, “Pasarelas Object Gateway de varios sitios” para obtener más información). Si ha utilizado una configuración de Object Gateway de un solo sitio en SUSE Enterprise Storage 6, siga estos pasos para añadir un dominio. Si no tiene previsto utilizar la funcionalidad de varios sitios, puede utilizar el valor por defecto
para los nombres de dominio, grupo de zonas y zona.
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
.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 5.4.3.4, “Distribución de pasarelas Object Gateways” y aplíquelo.
cephuser@adm >
ceph orch apply -i RGW.yml
7.7.2 Actualización de NFS Ganesha #
A continuación se muestra cómo migrar un servicio existente de NFS Ganesha con Ceph Nautilus a un contenedor de NFS Ganesha con Ceph Octopus.
Para los pasos siguientes es preciso que haya actualizado correctamente los servicios principales de Ceph.
NFS Ganesha almacena configuraciones adicionales por daemon y exporta la configuración en un repositorio RADOS. El repositorio RADOS configurado se puede encontrar en la línea watch_url
del bloque RADOS_URLS
en el archivo ganesha.conf
. Por defecto, este repositorio se llamará ganesha_config
.
Antes de iniciar cualquier migración, se recomienda encarecidamente realizar una copia de los objetos de exportación y de configuración del daemon ubicados en el repositorio RADOS. Para localizar el repositorio RADOS configurado, ejecute el comando siguiente:
cephuser@adm >
grep -A5 RADOS_URLS /etc/ganesha/ganesha.conf
Para mostrar el contenido del repositorio RADOS:
cephuser@adm >
rados --pool ganesha_config --namespace ganesha ls | sort
conf-node3
export-1
export-2
export-3
export-4
Para copiar los objetos RADOS:
cephuser@adm >
RADOS_ARGS="--pool ganesha_config --namespace ganesha"cephuser@adm >
OBJS=$(rados $RADOS_ARGS ls)cephuser@adm >
for obj in $OBJS; do rados $RADOS_ARGS get $obj $obj; 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 un 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 5.4.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/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
7.7.3 Actualización del servidor de metadatos #
A diferencia de los servicios MON, MGR y OSD, el servidor de metadatos no se puede adoptar in situ. En su lugar, debe volver a distribuirlo en contenedores mediante Ceph Orchestrator.
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 5.4.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.
7.7.4 Actualización de iSCSI Gateway #
Para actualizar iSCSI Gateway, debe volver a distribuirlo en contenedores mediante Ceph Orchestrator. Si dispone de varias pasarelas iSCSI Gateway, deberá volver a distribuirlas una a una para reducir el tiempo de inactividad del servicio.
Detenga e inhabilite los daemons iSCSI existentes en cada nodo iSCSI Gateway:
tux >
sudo
systemctl stop rbd-target-gwtux >
sudo
systemctl disable rbd-target-gwtux >
sudo
systemctl stop rbd-target-apitux >
sudo
systemctl disable rbd-target-apiCree una especificación de servicio para iSCSI Gateway como se describe en la Sección 5.4.3.5, “Distribución de pasarelas iSCSI Gateway”. Para ello, necesita los ajustes
pool
,trusted_ip_list
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 todos los nodos de iSCSI Gateway existentes:
cephuser@adm >
zypper rm -u ceph-iscsi
7.8 Limpieza posterior a la actualización #
Después de la actualización, realice los siguientes pasos de limpieza:
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 octopusHabilite el módulo de escalador automático:
cephuser@adm >
ceph mgr module enable pg_autoscalerImportanteLos 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 es que la opciónpg_autoscale_mode
está enon
para los nuevos repositorios, y los grupos de colocación se autoescalan. 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 Sección 17.4.12, “Habilitación del escalador automático de grupos de colocación”.Más detalles en el Sección 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 Sección 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 Sección 29.2, “Habilitación del módulo de telemetría”.