7.5. 启用压缩

Ceph 对象网关支持利用任何 Ceph 的压缩插件对上传对象进行服务器端压缩。它们是:

  • zlib :支持。
  • snappy :支持.
  • ZST D:支持.

配置

要在区域的放置目标上启用压缩,请将 --compression=TYPE 选项提供给 comma -admin zone placement modify 命令。压缩 TYPE 指的是在编写新对象数据时要使用的压缩插件的名称。

每个压缩对象存储压缩类型。更改设置不会影响解压缩现有压缩对象的能力,也不会强制 Ceph 对象网关重新压缩现有的对象。

此压缩设置适用于使用此放置目标上传到存储桶的所有新对象。

要在区的放置目标上禁用压缩,请将 --compression=TYPE 选项提供给 comma -admin zone placement modify 命令,并指定空字符串或 none

示例

[root@host01 ~] radosgw-admin zone placement modify --rgw-zone=default --placement-id=default-placement --compression=zlib
{
...
    "placement_pools": [
        {
            "key": "default-placement",
            "val": {
                "index_pool": "default.rgw.buckets.index",
                "data_pool": "default.rgw.buckets.data",
                "data_extra_pool": "default.rgw.buckets.non-ec",
                "index_type": 0,
                "compression": "zlib"
            }
        }
    ],
...
}

在启用或禁用压缩后,重新启动 Ceph 对象网关实例,以便更改生效。

注意

Ceph 对象网关创建 default 区域和一组池。对于生产环境部署,请参阅创建 Realm 部分。

Statistics

虽然所有现有命令和 API 都继续根据其未压缩数据报告对象和 bucket 大小,但 radosgw-admin bucket stats 命令包含所有存储桶的压缩统计信息。

语法

radosgw-admin bucket stats --bucket=BUCKET_NAME
{
...
    "usage": {
        "rgw.main": {
            "size": 1075028,
            "size_actual": 1331200,
            "size_utilized": 592035,
            "size_kb": 1050,
            "size_kb_actual": 1300,
            "size_kb_utilized": 579,
            "num_objects": 104
        }
    },
...
}

其大小 是存储桶中对象的积累大小,未压缩和未加密。size_kb 是以 KB 为单位的总大小,它计算为 ceiling (size/1024)。在本例中,它是 ceiling (1075028/1024)= 1050

size_actual 是每个对象在一组 4096 字节块中分发后所有对象的累计大小。如果 bucket 有两个对象,大小为 4100 字节,另一个大小为 8500 字节,则第一个对象将向上舍入为 8192 字节,第二个对象舍入为 12288 字节,其存储桶的总数为 20480 字节。size_kb_actual 是实际大小(以 KB 为单位),计算为 size_actual/1024。在本例中,它是 1331200/1024 = 1300

size_utilized 是压缩和/或加密后数据的总大小(以字节为单位)。加密可能会增加对象的大小,而压缩可能会减少它。size_kb_utilized 是以 KB 为单位的总大小,它计算为 ceiling (size_utilized/1024)。在本例中,它是 ceiling (592035/1024)= 579