cephx
Ceph almacena los datos en repositorios. Los repositorios son grupos lógicos en los que se almacenan objetos. Al distribuir un clúster por primera vez sin crear un repositorio, Ceph utiliza los repositorios por defecto para almacenar los datos. Los siguientes aspectos importantes están relacionados con los repositorios de Ceph:
Capacidad de recuperación: puede establecer cuántos OSD, depósitos u hojas del árbol pueden fallar sin que se pierda ningún dato. En el caso de los repositorios replicados, es el número de copias o réplicas deseadas de un objeto. Los repositorios nuevos se crean con un número predeterminado por defecto de réplicas establecido en 3. En los repositorios codificados de borrado, se trata del número de fragmentos de codificación (es decir m = 2 en el perfil de código de borrado).
Grupos de colocación: estructuras de datos internas para almacenar datos en un repositorio entre los OSD. La forma en que ceph almacena datos en los grupos de colocación se define en una asignación CRUSH. Es posible definir el número de grupos de colocación para un repositorio durante su creación. En una configuración típica, se utilizan aproximadamente 100 grupos de colocación por OSD para proporcionar el equilibrio óptimo sin necesidad de utilizar demasiados recursos informáticos. Al configurar varios repositorios, asegúrese de que ha definido un número razonable de grupos de colocación para el conjunto de repositorio y clúster.
Reglas de CRUSH: cuando se almacenan datos en un repositorio, los objetos y sus réplicas (o los fragmentos en caso de los repositorios codificados de borrado) se colocan según el conjunto de reglas de CRUSH asignado al repositorio. Puede crear una regla de CRUSH personalizada para el repositorio.
Instantáneas: al crear instantáneas con ceph osd pool mksnap
, se realiza una instantánea de un repositorio concreto.
Para organizar los datos en repositorios, puede enumerar, crear y eliminar repositorios. También puede ver las estadísticas de uso para cada repositorio.
Para utilizar los grupos, debe asociarlos a una aplicación. Los repositorios que se utilizarán con CephFS y los creados automáticamente por Object Gateway se asocian de forma automática.
En otros casos, se puede asociar manualmente un nombre de aplicación de formato libre al repositorio:
cephadm@adm >
ceph osd pool application enable pool_name application_name
CephFS utiliza el nombre de aplicación cephfs
, el dispositivo de bloques RADOS utiliza rbd
y Object Gateway utiliza rgw
.
Un repositorio se puede asociar a varias aplicaciones y cada aplicación puede tener sus propios metadatos. Para mostrar los metadatos de la aplicación para un determinado repositorio, emplee el siguiente comando:
cephadm@adm >
ceph osd pool application get pool_name
En esta sección encontrará información práctica para realizar tareas básicas relacionadas con los repositorios. Descubrirá cómo enumerar, crear y eliminar repositorios, así como visualizar las estadísticas de los repositorios o gestionar sus instantáneas.
Para enumerar los repositorios de su clúster, ejecute:
cephadm@adm >
ceph osd pool ls
Los repositorios se pueden crear de tipo "replicated" (replicado) para recuperar los OSD perdidos manteniendo varias copias de los objetos o "erasure" (de borrado) para obtener un tipo de capacidad RAID5/6 generalizada. Los repositorios replicados requieren más almacenamiento en bruto, mientras que los repositorios codificados de borrado requieren menos. El valor por defecto es "replicated" (replicado).
Para crear un repositorio replicado, ejecute:
cephadm@adm >
ceph osd pool create pool_name pg_num pgp_num replicated crush_ruleset_name \
expected_num_objects
Para crear un repositorio codificado de borrado, ejecute:
cephadm@adm >
ceph osd pool create pool_name pg_num pgp_num erasure erasure_code_profile \
crush_ruleset_name expected_num_objects
El comando ceph osd pool create
puede fallar si supera el límite de grupos de colocación por OSD. El límite se establece con la opción mon_max_pg_per_osd
.
Nombre del repositorio. Debe ser único. Esta opción es obligatoria.
El número total de grupos de colocación para el repositorio. Esta opción es obligatoria. El valor por defecto es 8.
El número total de grupos de colocación para fines de colocación. Debe ser idéntico al número total de grupos de colocación, salvo en situaciones en las que se dividan los grupos de colocación. Esta opción es obligatoria. El valor por defecto es 8.
El nombre de conjunto de reglas de CRUSH para el repositorio. Si el conjunto de reglas especificado no existe, se producirá un error -ENOENT al crear los repositorios replicados. Para los repositorios replicados es el conjunto de reglas especificado por la variable de configuración osd pool default crush replicated ruleset
. Este conjunto de reglas debe existir. Para los repositorios de borrado, es "erasure-code" si se utiliza el perfil de código de borrado por defecto o POOL_NAME de lo contrario. Este conjunto de reglas de creará de forma implícita si aún no existe.
Solo para los repositorios codificados de borrado. Utiliza el perfil de código de borrado. Debe ser un perfil existente, según se haya definido mediante osd erasure-code-profile set
.
Cuando cree un repositorio, defina un valor razonable de número de grupos de colocación. Tenga en cuenta también el número total de grupos de colocación por OSD. Los grupos de colocación consumen muchos recursos, por lo que el rendimiento se degradará si tiene repositorios con muchos repositorios (por ejemplo, 50 repositorios con 100 grupos de colocación cada uno).
Consulte Sección 9.4, “Grupos de colocación” (Grupos de colocación) para obtener información sobre cómo calcular el número adecuado de grupos de colocación para su repositorio.
El número previsto de objetos para este repositorio. Al definir este valor (junto con un valor negativo en filestore merge threshold
), la división de carpetas del grupo de colocación se produce en el momento de la creación del repositorio. Esto evita el impacto de latencia cuando se divide una carpeta en tiempo de ejecución.
Puede definir cuotas de repositorio para el número máximo de bytes o el número máximo de objetos por repositorio.
cephadm@adm >
ceph osd pool set-quota pool-name max_objects obj-count max_bytes bytes
Por ejemplo:
cephadm@adm >
ceph osd pool set-quota data max_objects 10000
Para eliminar una cuota, establezca su valor en 0.
Los repositorios pueden contener datos importantes. Si suprime un repositorio, desaparecerán todos sus datos y no habrá forma de recuperarlo.
Dado que la supresión accidental de un repositorio es un peligro real, Ceph implementa dos mecanismos que impiden suprimir los repositorios. Para suprimir un repositorio, primero es necesario inhabilitar ambos mecanismos.
El primero es el indicador NODELETE
. Todos los repositorios lo tienen y el valor por defecto es "false". Para averiguar el valor de este indicador en un repositorio, ejecute el siguiente comando:
cephadm@adm >
ceph osd pool get pool_name nodelete
Si la salida es nodelete: true
, no podrá suprimir el repositorio hasta que cambie el indicador mediante el siguiente comando:
cephadm@adm >
ceph osd pool set pool_name nodelete false
El segundo mecanismo es el parámetro de configuración para todo el clúster mon allow pool delete
, que es "false" por defecto. Esto significa que, por defecto, no es posible suprimir un repositorio. El mensaje de error que se muestra es:
Error EPERM: pool deletion is disabled; you must first set the mon_allow_pool_delete config option to true before you can destroy a pool
Para suprimir el repositorio a pesar de la configuración de seguridad, puede definir temporalmente mon allow pool delete
como "true", suprimir el repositorio y, a continuación, volver a definir el parámetro como "false":
cephadm@adm >
ceph tell mon.* injectargs --mon-allow-pool-delete=truecephadm@adm >
ceph osd pool delete pool_name pool_name --yes-i-really-really-mean-itcephadm@adm >
ceph tell mon.* injectargs --mon-allow-pool-delete=false
El comando injectargs
muestra el siguiente mensaje:
injectargs:mon_allow_pool_delete = 'true' (not observed, change may require restart)
Es una simple confirmación de que el comando se ha ejecutado correctamente. No es un error.
Si ha creado sus propios conjuntos de reglas y reglas para un repositorio que ha creado, plantéese la posibilidad de eliminar estos elementos cuando ya no necesite el repositorio.
Para renombrar un repositorio, ejecute:
cephadm@adm >
ceph osd pool rename current-pool-name new-pool-name
Si ha renombrado de un repositorio y existen permisos por repositorio para los usuarios autenticados, debe actualizar los permisos con el nuevo nombre de repositorio.
Para mostrar las estadísticas de uso de un repositorio, ejecute:
cephadm@adm >
rados df
POOL_NAME USED OBJECTS CLONES COPIES MISSING_ON_PRIMARY UNFOUND DEGRADED RD_OPS RD WR_OPS WR USED COMPR UNDER COMPR
.rgw.root 768 KiB 4 0 12 0 0 0 44 44 KiB 4 4 KiB 0 B 0 B
cephfs_data 960 KiB 5 0 15 0 0 0 5502 2.1 MiB 14 11 KiB 0 B 0 B
cephfs_metadata 1.5 MiB 22 0 66 0 0 0 26 78 KiB 176 147 KiB 0 B 0 B
default.rgw.buckets.index 0 B 1 0 3 0 0 0 4 4 KiB 1 0 B 0 B 0 B
default.rgw.control 0 B 8 0 24 0 0 0 0 0 B 0 0 B 0 B 0 B
default.rgw.log 0 B 207 0 621 0 0 0 5372132 5.1 GiB 3579618 0 B 0 B 0 B
default.rgw.meta 961 KiB 6 0 18 0 0 0 155 140 KiB 14 7 KiB 0 B 0 B
example_rbd_pool 2.1 MiB 18 0 54 0 0 0 3350841 2.7 GiB 118 98 KiB 0 B 0 B
iscsi-images 769 KiB 8 0 24 0 0 0 1559261 1.3 GiB 61 42 KiB 0 B 0 B
mirrored-pool 1.1 MiB 10 0 30 0 0 0 475724 395 MiB 54 48 KiB 0 B 0 B
pool2 0 B 0 0 0 0 0 0 0 0 B 0 0 B 0 B 0 B
pool3 333 MiB 37 0 111 0 0 0 3169308 2.5 GiB 14847 118 MiB 0 B 0 B
pool4 1.1 MiB 13 0 39 0 0 0 1379568 1.1 GiB 16840 16 MiB 0 B 0 B
A continuación se ofrece una descripción de cada columna:
El número de bytes utilizados por el repositorio.
El número de objetos almacenados en el repositorio.
El número de clones almacenados en el repositorio. Cuando se crea una instantánea y se escribe en un objeto, en lugar de modificar el objeto original, se crea su clon para que no se modifique el contenido del objeto original del que se ha hecho la instantánea.
El número de réplicas del objeto. Por ejemplo, si un repositorio replicado con el factor de réplica 3 tiene x objetos, normalmente tendrá 3 * x copias.
El número de objetos en estado degradado (no existen todas las copias) mientras falta la copia en el OSD primario.
El número de objetos no encontrados.
El número de objetos degradados.
El número total de operaciones de lectura pedidas para este repositorio.
El número total de bytes leídos de este repositorio.
El número total de operaciones de escritura pedidas para este repositorio.
El número total de bytes escritos en el repositorio. Tenga en cuenta que no es lo mismo que el uso del repositorio, ya que es posible escribir en el mismo objeto muchas veces. El resultado es que el uso del repositorio seguirá siendo el mismo, pero el número de bytes escritos en el repositorio aumentará.
El número de bytes asignados para datos comprimidos.
El número de bytes que ocupan los datos comprimidos cuando no están comprimidos
Para obtener un valor de un repositorio, ejecute:
cephadm@adm >
ceph osd pool get pool-name key
Puede obtener los valores de las claves indicadas en la Sección 11.2.8, “Definición de los valores de repositorio”, además de las siguientes:
El número de grupos de colocación del repositorio.
El número efectivo de grupos de colocación que se deben utilizar para calcular la colocación de los datos. El intervalo válido es igual o menor que pg_num
.
Para mostrar todos los valores relacionados con un repositorio específico, ejecute:
cephadm@adm >
ceph osd pool get POOL_NAME all
Para definir un valor para un repositorio, ejecute:
cephadm@adm >
ceph osd pool set pool-name key value
Puede definir valores para las siguientes claves:
Define el número de réplicas para los objetos del repositorio. Consulte la Sección 11.2.9, “Definición del número de réplicas de objetos” para obtener más información. Solo para repositorios replicados.
Define el número mínimo de réplicas obligatorias para E/S. Consulte la Sección 11.2.9, “Definición del número de réplicas de objetos” para obtener más información. Solo para repositorios replicados.
El número de segundos que se debe permitir a los clientes que reproduzcan peticiones reconocidas, pero no confirmadas.
El número de grupos de colocación del repositorio. Si añade nuevos OSD al clúster, verifique el valor de los grupos de colocación en todos los repositorios de destino para los nuevos OSD.
El número efectivo de grupos de colocación que se deben utilizar para calcular la colocación de los datos.
El conjunto de reglas que se debe utilizar para asignar la colocación en el clúster.
Establece (1) o anula (0) el indicador HASHPSPOOL en un repositorio. Cuando se habilita este indicador, el algoritmo cambia para mejorar la distribución de los grupos de colocación a los OSD. Después de habilitar el indicador en un repositorio cuyo indicador HASHPSPOOL se ha definido con el valor por defecto, 0, el clúster inicia la reposición para que todos los grupos vuelvan a la colocación correcta. Tenga en cuenta que esto puede crear una carga de E/S bastante sustancial en un clúster; por lo tanto, no habilite el indicador de 0 a 1 en clústeres de producción con mucha carga.
Impide la eliminación del repositorio.
Impide que se modifiquen los valores pg_num
y pgp_num
del repositorio.
Impide que se modifique el tamaño del repositorio.
Establece o anula el indicador WRITE_FADVISE_DONTNEED
en un repositorio.
Se inhabilita el borrado seguro (profundo) de los datos para el repositorio específico, a fin de resolver un pico temporal de carga de E/S.
Habilita el seguimiento de conjuntos de resultados para repositorios de caché. Consulte este artículo sobre los filtros de Bloom para obtener más información. Esta opción puede tener los valores siguientes: bloom
, explicit_hash
o explicit_object
. El valor por defecto es bloom
, los demás solo se emplean para realizar pruebas.
El número de conjuntos de resultados que se deben almacenar en los repositorios de caché. Cuanto mayor sea el número, más RAM consumirá el daemon ceph-osd
. El valor por defecto es 0
.
La duración en segundos de un periodo de conjunto de resultados para los repositorios de caché. Cuanto mayor sea el número, más RAM consumirá el daemon ceph-osd
.
La probabilidad de falsos positivos para el tipo de conjunto de resultados del filtro de Bloom. Consulte este artículo sobre los filtros de Bloom para obtener más información. El intervalo válido es de 0.0 a 1.0; el valor predeterminado es 0.05
Forzar a los OSD para que utilicen marcas horarias GMT (hora del meridiano de Greenwich) al crear un conjunto de resultados para los niveles de caché. Esto garantiza que los nodos de distintas zonas horarias devuelvan el mismo resultado. El valor por defecto es 1
. Este valor no debe cambiarse.
El porcentaje del repositorio de caché que debe contener objetos modificados (sucios) para que el agente de niveles de caché los vacíe en el repositorio de almacenamiento. El valor por defecto es 0.4
.
El porcentaje del repositorio de caché que debe contener objetos modificados (sucios) para que el agente de niveles de caché los vacíe en el repositorio de almacenamiento a mayor velocidad. El valor por defecto es 0.6
.
El porcentaje del repositorio de caché que debe contener objetos no modificados (limpios) para que el agente de niveles de caché los expulse del repositorio de caché. El valor por defecto es 0.8
.
Ceph comenzará a expulsar o limpiar objetos cuando se active el umbral establecido en max_bytes
.
Ceph comenzará a expulsar o limpiar objetos cuando se active el umbral establecido en max_objects
.
Velocidad de caída de temperatura entre dos hit_set
s sucesivos. El valor por defecto es 20
.
Deben contarse como máximo N
apariciones en hit_set
s para calcular la temperatura. El valor por defecto es 1
.
El tiempo (en segundos) que debe transcurrir para que el agente de niveles de caché mueva un objeto del repositorio de caché al de almacenamiento.
El tiempo (en segundos) que debe transcurrir para que el agente de niveles de caché expulse un objeto del repositorio de caché.
Si este indicador está habilitado en los repositorios codificados de borrado, las peticiones de lectura emite sublecturas a todos los shards y espera a recibir suficientes shards que descodificar para ofrecer servicio al cliente. En el caso de los complementos de borrado jerasure e isa, cuando vuelve la respuesta K
, la petición del cliente se atiende de inmediato con los datos descodificados a partir de estas respuestas. Este enfoque provoca más carga de CPU y menos carga de disco/red. Actualmente, este indicador solo se admite para los repositorios codificados de borrado. El valor por defecto es 0
.
El intervalo mínimo en segundos para el borrado seguro de datos del repositorio cuando la carga del clúster es reducida. El valor 0
por defecto significa que se utiliza el valor osd_scrub_min_interval
del archivo de configuración de Ceph.
El intervalo máximo en segundos para el borrado seguro de datos del repositorio, independientemente de la carga del clúster. El valor 0
por defecto significa que se utiliza el valor osd_scrub_max_interval
del archivo de configuración de Ceph.
El intervalo en segundos para el borrado seguro profundo del repositorio. El valor 0
por defecto significa que se utiliza el valor osd_deep_scrub
del archivo de configuración de Ceph.
Para establecer el número de réplicas de objetos en un repositorio replicado, ejecute lo siguiente:
cephadm@adm >
ceph osd pool set poolname size num-replicas
El valor num-replicas incluye el objeto en sí. Por ejemplo, si quiere que existan el objeto y dos copias (tres instancias en total), especifique 3.
Si establece un valor de 2 en num-replicas, solo habrá una copia de los datos. Si pierde una instancia de un objeto, para recuperarlo debe poder confiar en que la otra copia no haya sufrido daños, por ejemplo, desde el último borrado seguro (consulte la Sección 9.6, “Borrado seguro” para obtener más detalles).
Si establece solo una réplica en el repositorio, significa que habrá exactamente una única instancia del objeto de datos. Si el OSD falla, se perderán los datos. Un posible uso de un repositorio con una réplica es el almacenamiento temporal de datos durante poco tiempo.
Si se definen 4 réplicas para un repositorio, la fiabilidad aumenta en un 25%.
En el caso de dos centros de datos, debe definir al menos 4 réplicas para que un repositorio tenga dos copias en cada centro de datos. De este modo, si se pierde un centro de datos, aún existen dos copias y se puede perder un disco más sin que se pierdan datos.
Un objeto puede aceptar operaciones de E/S en modo degradado con menos réplicas de las indicadas en pool size
. Para configurar un número mínimo de réplicas necesarias para las operaciones de E/S, debe utilizar el valor min_size
. Por ejemplo:
cephadm@adm >
ceph osd pool set data min_size 2
Esto garantiza que ningún objeto del repositorio de datos recibirá operaciones de E/S con menos réplicas de las indicadas en min_size
.
Para obtener el número de réplicas de objetos, ejecute lo siguiente:
cephadm@adm >
ceph osd dump | grep 'replicated size'
Ceph enumerará los grupos con el atributo replicated size
destacado. Ceph crea por defecto dos réplicas de cada objeto (un total de tres copias o un tamaño de 3).
Al crear un repositorio (consulte la Sección 11.2.2, “Creación de repositorios”) debe especificar sus parámetros iniciales, como el tipo de repositorio o el número de grupos de colocación. Si más adelante decide cambiar cualquiera de estos parámetros (por ejemplo, al convertir un repositorio replicado en uno codificado de borrado o al disminuir el número de grupos de colocación), debe migrar los datos del repositorio a otro cuyos parámetros se adapten a la distribución.
Existen varios métodos para migrar repositorios. Se recomienda utilizar los niveles de caché, ya que es un método transparente, reduce el tiempo de inactividad del clúster y evita la duplicación de todos los datos del repositorio.
Puede usar el método de niveles de caché para migrar desde un repositorio replicado a un repositorio codificado de borrado o a otro repositorio replicado. No se admite la migración desde un repositorio codificado de borrado.
El principio básico es simple: incluir el repositorio que quiere migrar en un nivel de caché en orden inverso. Encontrará más información sobre los niveles de caché en el Capítulo 14, Niveles de caché. En el ejemplo siguiente se migra un repositorio replicado denominado "testpool" a un repositorio codificado de borrado:
Cree un nuevo repositorio codificado de borrado y llámelo "newpool". Consulte la Sección 11.2.2, “Creación de repositorios” para obtener una explicación detallada de los parámetros de creación de repositorios.
cephadm@adm >
ceph osd pool create newpool PG_NUM PGP_NUM erasure default
Verifique que el anillo de claves de cliente utilizado proporcione al menos las mismas capacidades para "newpool" que para "testpool".
Ahora tiene dos repositorios: el original replicado y lleno de datos ("testpool") y el nuevo repositorio codificado de borrado vacío ("newpool"):
Configure los niveles de caché y establezca el repositorio replicado "testpool" como repositorio de caché. La opción -force-nonempty
permite añadir un nivel de caché incluso si el repositorio ya tiene datos:
cephadm@adm >
ceph tell mon.* injectargs \ '--mon_debug_unsafe_allow_tier_with_nonempty_snaps=1'cephadm@adm >
ceph osd tier add newpool testpool --force-nonemptycephadm@adm >
ceph osd tier cache-mode testpool proxy
Ejecute un traslado forzoso de todos los objetos del repositorio de caché al nuevo repositorio:
cephadm@adm >
rados -p testpool cache-flush-evict-all
Hasta que todos los datos se hayan movido al nuevo repositorio codificado de borrado, es preciso especificar una superposición para que los objetos se busquen en el repositorio antiguo:
cephadm@adm >
ceph osd tier set-overlay newpool testpool
Con la superposición, todas las operaciones se reenvían al repositorio replicado antiguo ("testpool"):
Ahora puede configurar todos los clientes para que accedan a los objetos en el nuevo repositorio.
Una vez migrados todos los datos al repositorio codificado de borrado "newpool", elimine la superposición y el repositorio de caché antiguo ("testpool"):
cephadm@adm >
ceph osd tier remove-overlay newpoolcephadm@adm >
ceph osd tier remove newpool testpool
Ejecute:
cephadm@adm >
ceph tell mon.* injectargs \
'--mon_debug_unsafe_allow_tier_with_nonempty_snaps=0'
No se pueden migrar imágenes RBD ni exportaciones de CephFS de un repositorio replicado a un repositorio codificado de borrado. Los repositorios codificados de borrado pueden almacenar datos, pero no metadatos. El objeto de encabezado del RBD no se vaciará. Lo mismo ocurre con CephFS.
A continuación se muestra la forma recomendada de migrar imágenes RBD de un repositorio replicado a otro repositorio replicado.
Detenga el acceso de los clientes (como una máquina virtual) a la imagen RBD.
Cree una nueva imagen en el repositorio de destino, con la imagen de origen como elemento padre:
cephadm@adm >
rbd migration prepare SRC_POOL/IMAGE TARGET_POOL/IMAGE
Si necesita migrar solo los datos de imagen a un nuevo repositorio codificado de borrado y dejar los metadatos en el repositorio replicado original, ejecute el siguiente comando:
cephadm@adm >
rbd migration prepare SRC_POOL/IMAGE \
--data-pool TARGET_POOL/IMAGE
El método rbd migration
permite migrar imágenes con el mínimo tiempo de inactividad del cliente. Solo es necesario detener el cliente antes del paso de "preparación" e iniciarlo después. Tenga en cuenta que solo un cliente librbd
que admita esta característica (Ceph Nautilus o posterior) podrá abrir la imagen justo después del paso de "preparación", mientras que los clientes librbd
más antiguos o los clientes krbd
no podrán abrir la imagen hasta que se ejecute el paso de "confirmación".
Permita que los clientes accedan a la imagen en el repositorio de destino.
Migre los datos al repositorio de destino:
cephadm@adm >
rbd migration execute SRC_POOL/IMAGE
Elimine la imagen antigua:
cephadm@adm >
rbd migration commit SRC_POOL/IMAGE
Las instantáneas de repositorios son instantáneas del estado del repositorio Ceph completo. Con las instantáneas de repositorios, es posible conservar el historial de estado del repositorio. Crear instantáneas de repositorio consume un espacio de almacenamiento proporcional al tamaño del repositorio. Compruebe siempre que hay espacio de almacenamiento suficiente antes de crear la instantánea de un repositorio.
Para crear una instantánea de un repositorio, ejecute:
cephadm@adm >
ceph osd pool mksnap POOL-NAME SNAP-NAME
Por ejemplo:
cephadm@adm >
ceph osd pool mksnap pool1 snap1
created pool pool1 snap snap1
Para mostrar las instantáneas existentes de un repositorio, ejecute:
cephadm@adm >
rados lssnap -p POOL_NAME
Por ejemplo:
cephadm@adm >
rados lssnap -p pool1
1 snap1 2018.12.13 09:36:20
2 snap2 2018.12.13 09:46:03
2 snaps
Para eliminar una instantánea de un repositorio, ejecute:
cephadm@adm >
ceph osd pool rmsnap POOL-NAME SNAP-NAME
BlueStore (encontrará más información en Sección 1.4, “BlueStore”) proporciona compresión de datos sobre la marcha para ahorrar espacio en disco. La relación de compresión depende de los datos almacenados en el sistema. Tenga en cuenta que la compresión/descompresión requiere potencia de CPU adicional.
Puede configurar la compresión de datos a nivel global (consulte la Sección 11.5.3, “Opciones de compresión global”) y, a continuación, sustituir la configuración específica para cada repositorio individual.
Es posible habilitar o inhabilitar la compresión de datos del repositorio o cambiar el algoritmo y el modo de compresión en cualquier momento, independientemente de si el repositorio contiene datos o no.
No se aplicará ninguna compresión a los datos existentes después de habilitar la compresión del repositorio.
Después de inhabilitar la compresión de un repositorio, todos sus datos se descomprimirán.
Para habilitar la compresión de datos para un repositorio denominado POOL_NAME, ejecute el siguiente comando:
cephadm@adm >
ceph
osd pool set POOL_NAME compression_algorithm COMPRESSION_ALGORITHMcephadm@adm >
ceph
osd pool set POOL_NAME compression_mode COMPRESSION_MODE
Para inhabilitar la compresión de datos para un repositorio, utilice "none" como algoritmo de compresión:
cephadm@adm >
ceph
osd pool set POOL_NAME compression_algorithm none
Este es un listado completo de las opciones de compresión:
Los valores posibles son none
, zstd
y snappy
. El valor por defecto es snappy
.
El algoritmo de compresión utilizado depende del caso de uso específico. A continuación s ofrecen varias recomendaciones:
Utilice el valor por defecto, snappy
, si no tiene una buena razón para cambiarlo.
zstd
ofrece una buena relación de compresión, pero causa una alta sobrecarga de CPU cuando comprime pequeñas cantidades de datos.
Ejecute una comparativa de estos algoritmos en una muestra de sus datos reales y observe el uso de CPU y memoria en su clúster.
Los valores posibles son none
, aggressive
, passive
y force
. El valor por defecto es none
.
none
: no comprimir nunca
passive
: comprimir si se sugiere COMPRESSIBLE
aggressive
: comprimir a menos que se sugiera INCOMPRESSIBLE
force
: comprimir siempre
Valor: doble, proporción = SIZE_COMPRESSED / SIZE_ORIGINAL. El valor por defecto es 0.875
, lo que significa que si la compresión no reduce el espacio ocupado en al menos un 12,5 %, el objeto no se comprimirá.
Los objetos por encima de esta proporción no se almacenarán comprimidos, ya que el beneficio neto es bajo.
Valor: entero sin firmar, tamaño en bytes. Por defecto: 0
El tamaño máximo de los objetos comprimidos.
Valor: entero sin firmar, tamaño en bytes. Por defecto: 0
El tamaño mínimo de los objetos comprimidos.
Las siguientes opciones de configuración se pueden definir en la configuración de Ceph y se aplican a todos los OSD y no a un solo repositorio. La configuración específica del repositorio indicada en la Sección 11.5.2, “Opciones de compresión de repositorio” tendrá prioridad.
Consulte compression_algorithm
Consulte compression_mode
Consulte compression_required_ratio
Valor: entero sin firmar, tamaño en bytes. Por defecto: 0
El tamaño mínimo de los objetos comprimidos. La configuración se omite por defecto si se usa bluestore_compression_min_blob_size_hdd
y bluestore_compression_min_blob_size_ssd
. Tiene prioridad cuando se define un valor distinto a cero.
Valor: entero sin firmar, tamaño en bytes. Por defecto: 0
El tamaño máximo de los objetos que se comprimen antes de dividirse en fragmentos más pequeños. La configuración se omite por defecto si se usa bluestore_compression_max_blob_size_hdd
y bluestore_compression_max_blob_size_ssd
. Tiene prioridad cuando se define un valor distinto a cero.
Valor: entero sin firmar, tamaño en bytes. Por defecto: 8K
Tamaño mínimo de los objetos comprimidos y almacenados en la unidad de estado sólido.
Valor: entero sin firmar, tamaño en bytes. Por defecto: 64K
El tamaño máximo de los objetos que se comprimen y se almacenan en unidades de estado sólido antes de dividirse en fragmentos más pequeños.
Valor: entero sin firmar, tamaño en bytes. Por defecto: 128K
Tamaño mínimo de los objetos comprimidos y almacenados en los discos duros.
Valor: entero sin firmar, tamaño en bytes. Por defecto: 512K
El tamaño máximo de los objetos que se comprimen y se almacenan en discos duros antes de dividirse en fragmentos más pequeños.