Habilitación de la compresión

La Ceph Object Gateway da soporte a la compresión del lado del servidor de los objetos cargados utilizando cualquiera de los plugins de compresión de Ceph.

Los plugins de compresión soportados son los siguientes:
  • zlib
  • snappy
  • zstd

Configuración de la compresión

Para habilitar la compresión en el destino de ubicación de una zona, proporcione la opción --compression=TYPE al mandato radosgw-admin zone placement modify . La compresión TYPE hace referencia al nombre del plugin de compresión que se debe utilizar al escribir nuevos datos de objeto.

Cada objeto comprimido almacena el tipo de compresión. El cambio del valor no impide la capacidad de descomprimir los objetos comprimidos existentes, ni obliga a Ceph Object Gateway a volver a comprimir los objetos existentes.

Este valor de compresión se aplica a todos los objetos nuevos cargados en grupos utilizando este destino de colocación.

Para inhabilitar la compresión en el destino de ubicación de una zona, proporcione la opción --compression=TYPE al mandato radosgw-admin zone placement modify y especifique una serie vacía o none.

Ejemplo
[ root@host01 ~] radosgw-admin zone placement modify --rgw-zone =default --placement-id =default-placement --compression =zlib
{
...
    «placement_pools»: [
        {
            "llave": "default-placement",
            "val": {
                "index_pool": " default.rgw.buckets.index ",
                "data_pool": " default.rgw.buckets.data ",
                "data_extra_pool": " default.rgw.buckets.non-ec ",
                "tipo_índice": 0,
                "compresión": "zlib"
            }
        }
    ],
...
}

Después de habilitar o inhabilitar la compresión, reinicie la instancia de Ceph Object Gateway para que el cambio entre en vigor.

Nota: Ceph Object Gateway crea una zona default y un conjunto de agrupaciones. Para implantaciones de producción, consulte Creación de un dominio.

Estadísticas de compresión

Aunque todos los mandatos y las API existentes continúan notificando los tamaños de objeto y grupo basándose en sus datos no comprimidos, el mandato radosgw-admin bucket stats incluye estadísticas de compresión para todos los grupos.

Los tipos de uso para el mandato radosgw-admin bucket stats son los siguientes:
  • rgw.main, para entradas u objetos regulares.
  • rgw.multimeta, para los metadatos de cargas de varias partes incompletas.
  • rgw.cloudtiered, para los objetos que una política de ciclo de vida ha pasado a un nivel de nube. Cuando se configura con retain_head_object=true, un objeto de cabecera que ya no contiene datos permanece pero todavía puede servir los metadatos del objeto con solicitudes HeadObject . Estos objetos de cabecera de apéndice utilizan la categoría rgw.cloudtiered . Para obtener más información, consulte Transición de datos al servicio en la nube Amazon S3.
Sintaxis
radosgw-admin bucket stats --bucket =NOMBRE_BUCKET
{
...
    «uso»: {
        "rgw.main": {
            "tamaño": 1075028,
            «size_actual»: 1331200,
            "tamaño_utilizado": 592035,
            «size_kb»: 1050,
            «size_kb_actual»: 1300,
            «size_kb_utilized»: 579,
            «num_objects»: 104
        }
    },
...
}

size es el tamaño acumulado de los objetos en el grupo, sin comprimir y sin cifrar. size_kb es el tamaño acumulado en kilobytes y se calcula como size/1024. En este ejemplo, es 1075028/1024 = 1050.

size_actual es el tamaño real de todos los objetos después de que cada objeto se redondee hacia arriba con la función de techo a los 4096 bytes más próximos, puesto que el objeto se almacena en fragmentos de tamaño 4096. Si un grupo tiene dos objetos, uno de tamaño de 4100 bytes y el otro de 8500 bytes, el primer objeto se redondea a 8192 bytes, y el segundo redondea 12288 bytes, y su total para el grupo es de 20480 bytes. size_kb_actual es el tamaño real en kilobytes y se calcula como size_actual/1024. En este ejemplo, es 1331200/1024 = 1300.

size_utilized es el tamaño total de los datos comprimidos en bytes. Esto tiene en cuenta tanto la compresión como el cifrado. El cifrado podría aumentar el tamaño del objeto, mientras que la compresión podría reducirlo. size_kb_utilized es el tamaño total en kilobytes y se calcula como size_utilized/1024. En este ejemplo, es 592035/1024= 579.

Aquí, todos los tamaños en kilobytes se redondea hacia arriba con la función de techo.