Saltar a contenidoSaltar a navegación de páginas: página anterior [tecla acceso p]/página siguiente [tecla acceso n]
Se aplica a SUSE Enterprise Storage 5

4 Determinación del estado del clúster

Si dispone de un clúster en ejecución, puede utilizar la herramienta ceph para supervisarlo. Normalmente, determinar el estado del clúster implica comprobar su estado de OSD, monitor, grupo de colocación y servidor de metadatos.

Sugerencia
Sugerencia: modo interactivo

Para ejecutar la herramienta ceph en el modo interactivo, escriba ceph en la línea de comandos sin ningún argumento. El modo interactivo es más cómodo si se van a introducir más comandos ceph en una fila. Por ejemplo:

cephadm > ceph
ceph> health
ceph> status
ceph> quorum_status
ceph> mon_status

4.1 Comprobación del estado del clúster

Una vez iniciado el clúster y antes de empezar a leer o escribir datos, compruebe su estado:

root # ceph health
HEALTH_WARN 10 pgs degraded; 100 pgs stuck unclean; 1 mons down, quorum 0,2 \
node-1,node-2,node-3

El clúster de Ceph devolverá uno de los siguientes códigos de estado:

OSD_DOWN

Uno o varios OSD están señalados como inactivos. Se ha detenido el daemon OSD o los pares OSD no pueden acceder al OSD a través de la red. Algunas de las causas pueden ser un daemon detenido o bloqueado, un host caído o una interrupción de la red.

Compruebe que el host está en buen estado, el daemon se inicia y la red está funcionando. Si el daemon se ha bloqueado, el archivo de registro de daemon (/var/log/ceph/ceph-osd.*) puede contener información de depuración.

OSD_tipo de bloqueo_DOWN; por ejemplo: OSD_HOST_DOWN

Todos los OSD con un determinado subárbol CRUSH se marcan como inactivos, por ejemplo, todos los OSD de un host.

OSD_ORPHAN

Se hace referencia a un OSD en la jerarquía de asignaciones CRUSH, pero no existe. El OSD se puede quitar de la jerarquía CRUSH con:

root # ceph osd crush rm osd.ID
OSD_OUT_OF_ORDER_FULL

Los umbrales de uso para backfillfull, nearfull, full o failsafe_full no son ascendentes. En concreto, esperamos backfillfull < nearfull, nearfull < full y full < failsafe_full. Los umbrales se pueden ajustar con:

root # ceph osd set-backfillfull-ratio ratio
root # ceph osd set-nearfull-ratio ratio
root # ceph osd set-full-ratio ratio
OSD_FULL

Uno o varios OSD han excedido el umbral full, lo que impide que el clúster de servicio a las operaciones de escritura. El uso del repositorio se puede comprobar con:

root # ceph df

La proporción de full definida actualmente se puede consultar con:

root # ceph osd dump | grep full_ratio

Una solución a corto plazo para restaurar la disponibilidad de las operaciones de escritura es aumentar el umbral "full" en una pequeña cantidad:

root # ceph osd set-full-ratio ratio

Añada nuevo espacio de almacenamiento al clúster mediante la implantación de más OSD o suprima datos existentes para liberar espacio.

OSD_BACKFILLFULL

Uno o varios OSD han excedido el umbral backfillfull, lo que impide que los datos se puedan reequilibrar en este dispositivo. Se trata de una advertencia previa de que podría resultar imposible completar el reequilibrio y de que el clúster está casi lleno. El uso del repositorio se puede comprobar con:

root # ceph df
OSD_NEARFULL

Uno o varios OSD han excedido el umbral nearfull. Se trata de una advertencia previa de que el clúster está casi lleno. El uso del repositorio se puede comprobar con:

root # ceph df
OSDMAP_FLAGS

Se han definido uno o varios indicadores de interés en el clúster. Con la excepción de full, estos indicadores se pueden establecer o borrar con:

root # ceph osd set flag
root # ceph osd unset flag

Los indicadores son los siguientes:

full

El clúster se marca como lleno y no permite realizar operaciones de escritura.

pauserd, pausewr

Operaciones de lectura o de escritura en pausa.

noup

No se pueden iniciar los OSD.

nodown

Se omiten los informes de fallo de los OSD, de modo que los monitores no marquen los OSD como caídos (down).

noin

Los OSD que se hayan marcado como out (fuera) no se volverán a marcar como in (dentro) cuando se inicien.

noout

Los OSD caídos (down) no se marcarán automáticamente como out (fuera) después del intervalo configurado.

nobackfill, norecover, norebalance

Las operaciones de recuperación o de reequilibrio de datos están suspendidas.

noscrub, nodeep_scrub

Las operaciones de borrado seguro (consulte la Sección 6.5, “Borrado seguro”) están inhabilitadas.

notieragent

Las actividades de niveles de caché están suspendidas.

OSD_FLAGS

Uno o varios OSD tienen establecido un indicador de interés por OSD. Los indicadores son los siguientes:

noup

El OSD no se puede iniciar.

nodown

Se omitirán los informes de errores para este OSD.

noin

Si este OSD se ha marcado anteriormente como out (fuera) tras un fallo, no se marcará como in (dentro) cuando se inicie.

noout

Si este OSD está apagado, no se marcará automáticamente como out (fuera) después del intervalo configurado.

Los indicadores por OSD se pueden definir y desactivar con:

root # ceph osd add-flag osd-ID
root # ceph osd rm-flag osd-ID
OLD_CRUSH_TUNABLES

La asignación CRUSH utiliza una configuración muy antigua y se debe actualizar. Los tunables más antiguos que se pueden utilizar (es decir, es la versión más antigua del cliente que se puede conectar al clúster) sin que se active esta advertencia de estado está determinada por la opción de configuración mon_crush_min_required_version.

OLD_CRUSH_STRAW_CALC_VERSION

La asignación CRUSH utiliza un método más antiguo y no óptimo para calcular los valores de peso intermedio para el ordenamiento por casilleros. La asignación CRUSH debe actualizarse para utilizar el método más reciente (straw_calc_version=1).

CACHE_POOL_NO_HIT_SET

Uno o varios repositorios de caché no están configurados con un conjunto de resultados para realizar el seguimiento del uso, lo que impide que el agente de niveles de caché identifique los objetos fríos que debe limpiar y expulsar del caché. Los conjuntos de resultados se pueden configurar en el repositorio de caché con:

root # ceph osd pool set poolname hit_set_type type
root # ceph osd pool set poolname hit_set_period period-in-seconds
root # ceph osd pool set poolname hit_set_count number-of-hitsets
root # ceph osd pool set poolname hit_set_fpp target-false-positive-rate
OSD_NO_SORTBITWISE

No hay ningún OSD anterior a luminous v12 en ejecución, pero no se ha definido el indicador sortbitwise. Debe establecer el indicador sortbitwise para que se puedan iniciar los OSD luminous v12 o versiones más recientes:

root # ceph osd set sortbitwise
POOL_FULL

Uno o varios repositorios han alcanzado su cuota y ya no permiten más operaciones de escritura. Es posible definir cuotas de repositorio y límites de uso con:

root # ceph df detail

Puede aumentar la cuota de repositorio con

root # ceph osd pool set-quota poolname max_objects num-objects
root # ceph osd pool set-quota poolname max_bytes num-bytes

o suprimir algunos datos para reducir el uso.

PG_AVAILABILITY

Hay una disponibilidad reducida de los datos, lo que significa que el clúster no puede responder a posibles peticiones de lectura o escritura de algunos de los datos del clúster. En particular, uno o varios grupos de colocación se encuentran en un estado que no permite atender las peticiones de E/S. Los estados de los grupos de colocación afectados son peering (emparejando), stale (detenido), incomplete (incompleto) y la ausencia de active (activo) (si dichos estados no desaparecen rápidamente). Encontrará información detallada sobre los grupos de colocación afectados en:

root # ceph health detail

En la mayoría de los casos, la causa raíz es que uno o varios OSD están caídos. Se puede consultar el estado de los grupos de colocación afectados específicos con:

root # ceph tell pgid query
PG_DEGRADED

Se reduce la redundancia de algunos datos, lo que significa que el clúster no tiene el número deseado de réplicas de todos los datos (para los repositorios replicados) o fragmentos de código de borrado (para los repositorios codificados de borrado). En concreto, uno o varios grupos de colocación tienen establecido el indicador degraded (degradado) o undersized (tamaño insuficiente) (no hay suficientes instancias de ese grupo de colocación en el clúster), o bien hace tiempo que no cuenta con el indicador clean (limpio). Encontrará información detallada sobre los grupos de colocación afectados en:

root # ceph health detail

En la mayoría de los casos, la causa raíz es que uno o varios OSD están caídos. Se puede consultar el estado de los grupos de colocación afectados específicos con:

root # ceph tell pgid query
PG_DEGRADED_FULL

La redundancia de datos se puede reducir o estar en peligro para algunos datos debido a la falta de espacio disponible en el clúster. En concreto, uno o varios grupos de colocación tienen establecidos los indicadores backfill_toofull o recovery_toofull, lo que significa que el clúster no puede migrar o recuperar datos debido a que uno o varios OSD superan el umbral backfillfull.

PG_DAMAGED

El proceso de borrado seguro de datos (consulte la Sección 6.5, “Borrado seguro”) ha detectado problemas con la coherencia de los datos en el clúster. Específicamente, hay uno o varios grupos de colocación con el indicador inconsistent o snaptrim_error, que indican que una operación anterior de borrado seguro ha detectado un problema, o bien se ha establecido el indicador repair, lo que significa que hay una reparación de dicha incoherencia en curso.

OSD_SCRUB_ERRORS

Los procesos de borrado seguro de OSD recientes han revelado incoherencias.

CACHE_POOL_NEAR_FULL

Un repositorio de nivel de caché está casi lleno. La capacidad en este contexto está determinada por las propiedades target_max_bytes y target_max_objects que aparecen en el repositorio de caché. Cuando el repositorio alcanza el umbral objetivo, las peticiones de escritura para el repositorio podrían bloquearse hasta que los datos se limpien y se expulsen del caché, un estado que suele producir latencias muy altas y un rendimiento deficiente. El objetivo de tamaño del repositorio de caché se puede ajustar con:

root # ceph osd pool set cache-pool-name target_max_bytes bytes
root # ceph osd pool set cache-pool-name target_max_objects objects

Las actividades normales de limpieza y expulsión del caché también se pueden atascar por una reducción de la disponibilidad o el rendimiento del nivel base o por la carga global del clúster.

TOO_FEW_PGS

El número de grupos de colocación en uso está por debajo del umbral configurable de grupos de colocación por OSD (mon_pg_warn_min_per_osd). Esto puede producir una distribución y reequilibrio de datos subóptimo entre los OSD del clúster y reducir el rendimiento general.

TOO_MANY_PGS

El número de grupos de colocación en uso está por encima del umbral configurable de grupos de colocación por OSD (mon_pg_warn_max_per_osd). Esto puede dar lugar a un uso más elevado de memoria para los daemons de OSD, un emparejamiento más lento después de cambios de estado del clúster (por ejemplo, reinicios, incorporaciones o eliminaciones de OSD) y una mayor carga mayor en los gestores y monitores de Ceph.

No es posible reducir el valor pg_num para los repositorios existentes. Sin embargo, sí se puede reducir el valor pgp_num. A efectos prácticos, esto coloca algunos grupos de colocación en los mismos conjuntos de OSD, mitigando algunos de los impactos negativos descritos anteriormente. El valor pgp_num se puede ajustar con:

root # ceph osd pool set pool pgp_num value
SMALLER_PGP_NUM

Uno o varios repositorios tienen un valor pgp_num inferior a pg_num. Por lo general, esto suele indicar que se ha aumentado el número de grupos de colocación sin aumentar al mismo tiempo el comportamiento de colocación. Normalmente, el problema se resuelve definiendo pgp_num para que coincida con pg_num, lo que activa la migración de datos:

ceph osd pool set pool pgp_num pg_num_value
MANY_OBJECTS_PER_PG

Uno o varios repositorios tienen un número medio de objetos por grupo de colocación significativamente superior al promedio general del clúster. El umbral específico se controla mediante el valor de configuración mon_pg_warn_max_object_skew. Esto suele indicar que los repositorios que contienen la mayoría de los datos del clúster disponen de muy pocos grupos de colocación o que los demás repositorios, que no contienen tantos datos, tienen demasiados grupos de colocación. Se puede elevar el umbral para silenciar la advertencia de estado; para ello, ajuste la opción de configuración mon_pg_warn_max_object_skew en los monitores.

POOL_APP_NOT_ENABLED

Existe un repositorio que contiene uno o varios objetos, pero no se ha etiquetado para su uso por parte de una aplicación determinada. Para resolver esta advertencia, etiquete el repositorio para su uso por parte de una aplicación. Por ejemplo, si el repositorio lo utiliza RBD:

root # rbd pool init pool_name

Si el repositorio está siendo utilizado por una aplicación personalizada "foo", también se puede etiquetar mediante el comando de bajo nivel:

root # ceph osd pool application enable foo
POOL_FULL

Uno o varios repositorios han alcanzado su cuota (o van a alcanzarla muy pronto). El umbral para que se active esta situación de error depende de la opción de configuración mon_pool_quota_crit_threshold. Las cuotas del repositorio se pueden aumentar, reducir o eliminar con:

root # ceph osd pool set-quota pool max_bytes bytes
root # ceph osd pool set-quota pool max_objects objects

Si define el valor de la cuota como 0, la cuota se inhabilitará.

POOL_NEAR_FULL

Uno o varios repositorios se están aproximando a su cuota. El umbral para que se active esta situación de advertencia depende de la opción de configuración mon_pool_quota_warn_threshold. Las cuotas del repositorio se pueden aumentar, reducir o eliminar con:

root # ceph osd osd pool set-quota pool max_bytes bytes
root # ceph osd osd pool set-quota pool max_objects objects

Si define el valor de la cuota como 0, la cuota se inhabilitará.

OBJECT_MISPLACED

Uno o varios objetos en el clúster no se almacenan en el nodo en el que clúster pretende almacenarlos. Esto indica que una migración de datos debida a algunos cambios recientes del clúster aún no se ha completado. El almacenamiento de datos en el lugar equivocado no es una situación peligrosa por sí misma. La coherencia de los datos nunca corre peligro y las copias antiguas de los objetos no se eliminan hasta que se alcanza el número de copias nuevas deseadas (en las ubicaciones correctas).

OBJECT_UNFOUND

No es posible encontrar uno o más objetos en el clúster. En concreto, los OSD saben que debe existir una copia nueva o actualizada de un objeto, pero no se ha encontrado ninguna copia de esa versión del objeto en los OSD que están actualmente en línea. Las peticiones de lectura o escritura a los objetos "unfound" (no encontrados) se bloquean. En condiciones idóneas, se podrá volver a conectar un OSD caído que contenga la copia más reciente del objeto no encontrado. Los OSD candidatos se pueden identificar a partir del estado de emparejamiento de los grupos de colocación responsables del objeto no encontrado:

root # ceph tell pgid query
REQUEST_SLOW

Una o varias peticiones de OSD tardan mucho tiempo en procesarse. Esto puede indicar un nivel de carga extremo, un dispositivo de almacenamiento lento o un fallo de software. Puede consultar la cola de peticiones de los OSD en cuestión ejecutando el siguiente comando desde el host OSD:

root # ceph daemon osd.id ops

Puede consultar un resumen de las peticiones más lentas realizadas recientemente:

root # ceph daemon osd.id dump_historic_ops

Puede consultar la ubicación de un OSD con:

root # ceph osd find osd.id
REQUEST_STUCK

Una o varias peticiones de OSD llevan bloqueadas demasiado tiempo. Esto indica que el clúster lleva un periodo prolongado de tiempo en un estado incorrecto (por ejemplo, no hay suficientes OSD en ejecución) o que hay algún problema interno con el OSD.

PG_NOT_SCRUBBED

A uno o varios de los grupos de colocación no se les ha aplicado el borrado seguro (consulte la Sección 6.5, “Borrado seguro”) recientemente. Normalmente, a los grupos de colocación se les aplica el borrado seguro cuando transcurre el número de segundos indicado en mon_scrub_interval; esta advertencia se activa cuando transcurren los intervalos indicados en mon_warn_not_scrubbed sin que se realice un borrado seguro. A los grupos de colocación no se les aplicará el borrado seguro si no están marcados como limpios; esto puede ocurrir si se extravían o se degradan (consulte PG_AVAILABILITY y PG_DEGRADED más arriba). Puede iniciar manualmente el borrado seguro de un grupo de colocación limpio con:

root # ceph pg scrub pgid
PG_NOT_DEEP_SCRUBBED

Uno o varios grupos de colocación no se han sometido a un borrado seguro profundo (consulte la Sección 6.5, “Borrado seguro”) recientemente. Normalmente, a los grupos de colocación se les aplica un borrado seguro profundo cuando transcurre el número de segundos indicado en osd_deep_mon_scrub_interval; esta advertencia se activa cuando transcurren los intervalos indicados en mon_warn_not_deep_scrubbed sin que se realice un borrado seguro profundo. A los grupos de colocación no se les aplicará el borrado seguro profundo si no están marcados como limpios; esto puede ocurrir si se extravían o se degradan (consulte PG_AVAILABILITY y PG_DEGRADED más arriba). Puede iniciar manualmente el borrado seguro de un grupo de colocación limpio con:

root # ceph pg deep-scrub pgid
Sugerencia
Sugerencia

Si ha especificado ubicaciones distintas de las establecidas por defecto para la configuración o el anillo de claves, puede indicarlas:

root # ceph -c /path/to/conf -k /path/to/keyring health

4.2 Visualización de un clúster

Puede averiguar el estado inmediato de un clúster mediante ceph -s. Por ejemplo, un pequeño clúster de Ceph que conste de un monitor y dos OSD puede mostrar lo siguiente cuando se esté ejecutando una carga de trabajo:

cluster:
  id:     6586341d-4565-3755-a4fd-b50f51bee248
  health: HEALTH_OK

services:
  mon: 3 daemons, quorum blueshark1,blueshark2,blueshark3
  mgr: blueshark3(active), standbys: blueshark2, blueshark1
  osd: 15 osds: 15 up, 15 in

data:
  pools:   8 pools, 340 pgs
  objects: 537 objects, 1985 MB
  usage:   23881 MB used, 5571 GB / 5595 GB avail
  pgs:     340 active+clean

io:
  client:   100 MB/s rd, 26256 op/s rd, 0 op/s wr

La salida proporciona la siguiente información:

  • ID del clúster

  • Estado del clúster

  • Valor epoch de la asignación de monitores y estado del quórum de monitores

  • Valor epoch de asignación de OSD y estado de los OSD

  • La versión de asignación del grupo de colocación

  • El número de grupos de colocación y de repositorios

  • La cantidad teórica de datos almacenados y el número de objetos almacenados

  • La cantidad total de datos almacenados

Sugerencia
Sugerencia: cómo calcula Ceph el uso de datos

El valor used (utilizado) refleja la cantidad real de almacenamiento en bruto utilizado. El número menor del valor xxx GB / xxx GB indica la cantidad disponible de la capacidad de almacenamiento global del clúster. El número teórico refleja el tamaño de los datos almacenados antes de que se repliquen, se clonen o se capturen en una instantánea. Por lo tanto, la cantidad de datos que se almacena realmente suele superar el almacenamiento teórico, dado que Ceph crea réplicas de los datos y también puede utilizar la capacidad de almacenamiento para tareas de clonación y de captura de instantáneas.

Otros comandos que muestran la información de estado inmediato son los siguientes:

  • ceph pg stat

  • ceph osd pool stats

  • ceph df

  • ceph df detail

Para obtener la información actualizada en tiempo real, añada cualquiera de estos comandos (incluidos ceph -s) a un bucle de espera, por ejemplo:

rootwhile true ; do ceph -s ; sleep 10 ; done

Pulse ControlC cuando quiera detener la visualización.

4.3 Comprobación de las estadísticas de uso de un clúster

Para comprobar el uso de datos de un clúster y la distribución de datos entre los repositorios, puede utilizar la opción df. Es similar al parámetro df de Linux. Realice lo siguiente:

root # ceph df
GLOBAL:
    SIZE       AVAIL      RAW USED     %RAW USED
    55886G     55826G       61731M          0.11
POOLS:
    NAME         ID     USED      %USED     MAX AVAIL     OBJECTS
    testpool     1          0         0        17676G           0
    ecpool       2      4077M      0.01        35352G        2102
    test1        3          0         0        17676G           0
    rbd          4         16         0        17676G           3
    rbd1         5         16         0        17676G           3
    ecpool1      6      5708M      0.02        35352G        2871

La sección GLOBAL de la salida proporciona una descripción general de la cantidad de almacenamiento que utiliza el clúster para los datos.

  • SIZE: capacidad de almacenamiento global del clúster.

  • AVAIL: cantidad de espacio disponible en el clúster.

  • RAW USED: cantidad de almacenamiento en bruto utilizado.

  • % RAW USED: porcentaje de almacenamiento en bruto utilizado. Utilice este número junto con full ratio (lleno) y near full ratio (casi lleno) para asegurarse de que no se alcanza la capacidad de su clúster. Consulte Storage Capacity (Capacidad de almacenamiento) para obtener información adicional.

    Nota
    Nota: nivel de llenado de clúster

    Un nivel de llenado en bruto del almacenamiento de un 70 % a un 80 % indica que es necesario añadir espacio de almacenamiento al clúster. Un nivel de uso más elevado puede provocar que algunos OSD se llenen y se produzcan problemas de estado del clúster.

    Utilice el comando ceph osd df tree para que se muestre el nivel de llenado de todos los OSD.

La sección POOLS de la salida proporciona una lista de los repositorios y el uso teórico de cada uno de ellos. La salida de esta sección no refleja las réplicas, las clonaciones ni las instantáneas. Por ejemplo, si almacena un objeto con 1 MB de datos, el uso teórico es de 1 MB, pero el uso real puede ser de 2 MB o más, según el número de réplicas, clonaciones e instantáneas.

  • NAME: nombre del repositorio.

  • ID: ID del repositorio.

  • USED: la cantidad teórica de los datos almacenados expresada en kilobytes, a menos que se añada M (megabytes) o G (gigabytes) a la cifra.

  • %USED: el porcentaje teórico del almacenamiento utilizado por repositorio.

  • MAX AVAIL: el espacio máximo disponible en el repositorio especificado.

  • OBJECTS: el número teórico de objetos almacenados por repositorio.

Nota
Nota

Las cifras de la sección POOLS son teóricas. No incluyen el número de réplicas, clonaciones o instantáneas. Por lo tanto, la suma de las cantidades de USED y %USED no será equivalente a las cantidades de RAW USED y %RAW USED de la sección %GLOBAL de la salida.

4.4 Comprobación del estado de un clúster

Para comprobar el estado de un clúster, ejecute lo siguiente:

root # ceph status

O bien

root # ceph -s

En el modo interactivo, escriba status (estado) y pulse Intro.

ceph> status

Ceph mostrará el estado del clúster. Por ejemplo, un pequeño clúster de Ceph que conste de un monitor y dos OSD puede mostrar lo siguiente:

cluster b370a29d-9287-4ca3-ab57-3d824f65e339
 health HEALTH_OK
 monmap e1: 1 mons at {ceph1=10.0.0.8:6789/0}, election epoch 2, quorum 0 ceph1
 osdmap e63: 2 osds: 2 up, 2 in
  pgmap v41332: 952 pgs, 20 pools, 17130 MB data, 2199 objects
        115 GB used, 167 GB / 297 GB avail
               1 active+clean+scrubbing+deep
             951 active+clean

4.5 Comprobación del estado de los OSD

Para comprobar los OSD y asegurarse de que estén activos y conectados, ejecute:

root # ceph osd stat

O bien

root # ceph osd dump

También puede ver los OSD según su posición en la asignación de CRUSH.

root # ceph osd tree

Ceph imprimirá un árbol CRUSH con un host, sus OSD, su estado de funcionamiento y su peso.

# id    weight  type name       up/down reweight
-1      3       pool default
-3      3               rack mainrack
-2      3                       host osd-host
0       1                               osd.0   up      1
1       1                               osd.1   up      1
2       1                               osd.2   up      1

4.6 Comprobación de OSD llenos

Ceph impide escribir en un OSD lleno para que no se pierden datos. En un clúster en funcionamiento, debería aparecer una advertencia cuando el clúster se esté aproximando al máximo de su capacidad. El valor por defecto de mon osd full ratio es de 0,95 o un 95 % de capacidad para impedir la escritura de datos a los clientes. El valor por defecto de mon osd nearfull ratio es de 0,85 o 85 % de capacidad para generar una advertencia de estado.

El comando ceph health informa de los nodos OSD llenos:

ceph health
  HEALTH_WARN 1 nearfull osds
  osd.2 is near full at 85%

O bien

ceph health
  HEALTH_ERR 1 nearfull osds, 1 full osds
  osd.2 is near full at 85%
  osd.3 is full at 97%

La mejor forma de ocuparse de un clúster lleno es añadir nodos OSD para que el clúster redistribuya los datos en el nuevo espacio de almacenamiento disponible.

Si no es posible iniciar un OSD porque está lleno, puede eliminar algunos datos suprimiendo directorios de grupo de colocación en el OSD lleno.

Sugerencia
Sugerencia: cómo evitar que los OSD se llenen

Si un OSD se llena (usa el 100 % de su espacio de disco), normalmente se bloqueará de inmediato y sin previo aviso. A continuación indicamos algunos consejos que conviene recordar al administrar nodos OSD.

  • El espacio de disco de cada OSD (normalmente montado en /var/lib/ceph/osd/osd-{1,2..}) debe colocarse en un disco o en una partición de uso dedicado.

  • Compruebe los archivos de configuración de Ceph y asegúrese de que Ceph no almacena el archivo de registro en las particiones o los discos cuyo uso esté dedicado a los OSD.

  • Asegúrese de que ningún otro proceso escribe en los discos o en las particiones de uso dedicado de los OSD.

4.7 Comprobación del estado de los monitores

Si el clúster tiene varios monitores (una situación muy probable), es recomendable comprobar el estado de quórum de monitores después de iniciar el clúster y antes de que se produzcan operaciones de lectura o escritura de datos. Debe haber un quórum si se ejecutan varios monitores. También debe consultar el estado de los monitores periódicamente para asegurarse de que se están ejecutando.

Para ver la asignación de monitores, ejecute lo siguiente:

root # ceph mon stat

O bien

root # ceph mon dump

Para comprobar el estado de quórum del clúster de monitores, ejecute lo siguiente:

root # ceph quorum_status

Ceph devolverá el estado de quórum. Por ejemplo, un clúster de Ceph que consta de tres monitores podría devolver lo siguiente:

{ "election_epoch": 10,
  "quorum": [
        0,
        1,
        2],
  "monmap": { "epoch": 1,
      "fsid": "444b489c-4f16-4b75-83f0-cb8097468898",
      "modified": "2011-12-12 13:28:27.505520",
      "created": "2011-12-12 13:28:27.505520",
      "mons": [
            { "rank": 0,
              "name": "a",
              "addr": "127.0.0.1:6789\/0"},
            { "rank": 1,
              "name": "b",
              "addr": "127.0.0.1:6790\/0"},
            { "rank": 2,
              "name": "c",
              "addr": "127.0.0.1:6791\/0"}
           ]
    }
}

4.8 Comprobación del estado de los grupos de colocación

Los grupos de colocación asignan objetos a los OSD. Al supervisar los grupos de colocación, es conveniente que tengan los estados active (activo) y clean (limpio). Para obtener información detallada, consulte el artículo Monitoring OSDs and Placement Groups (Supervisión de OSD y grupos de colocación).

4.9 Uso del zócalo de administración

El zócalo de administración de Ceph permite consultar a un daemon a través de una interfaz de zócalo. Los zócalos de Ceph se encuentran por defecto en /var/run/ceph. Para acceder a un daemon a través del zócalo de administración, entrar a la sesión en el host en el que se ejecuta el daemon y utilice el siguiente comando:

root # ceph --admin-daemon /var/run/ceph/socket-name

Para ver los comandos disponibles del zócalo de administrador, ejecute el siguiente comando:

root # ceph --admin-daemon /var/run/ceph/socket-name help

El comando del zócalo de administración permite mostrar y definir la configuración en tiempo de ejecución. Consulte Viewing a Configuration at Runtime (Visualización de la configuración en tiempo de ejecución) para obtener más información.

Además, puede definir directamente los valores de configuración en tiempo de ejecución (el zócalo de administración omite el monitor, a diferencia del comando injectargs ceph tell tipo de daemon.id, que se basa en el monitor, pero no requiere entrar a la sesión directamente en el host en cuestión).

Imprimir esta página