压缩

New in version Kraken.

Ceph 对象网关支持在服务器端压缩上传的对象,可以用任何已有的压缩插件实现。

配置

压缩功能可在 zone 的归置目标内的存储类上启用,执行 radosgw-admin zone placement modify 命令时加 --compression=<type> 选项即可。

压缩类型 type 应该换成写入新对象数据时要用的压缩插件名。每个压缩的对象都记录了使用的压缩插件,所以更改此配置不影响已有对象的解压缩,更不会强制再次压缩已有对象。

这个压缩选项对所有新上传到桶(桶使用了这个归置目标)内的对象起作用。 type 设置为空字符串或 none 时禁用压缩。

例如:

$ radosgw-admin zone placement modify \
      --rgw-zone default \
      --placement-id default-placement \
      --storage-class STANDARD \
      --compression zlib
{
...
    "placement_pools": [
        {
            "key": "default-placement",
            "val": {
                "index_pool": "default.rgw.buckets.index",
                "storage_classes": {
                    "STANDARD": {
                        "data_pool": "default.rgw.buckets.data",
                        "compression_type": "zlib"
                    }
                },
                "data_extra_pool": "default.rgw.buckets.non-ec",
                "index_type": 0,
            }
        }
    ],
...
}

Note

如果你没做过多站配置,那么此命令会创建默认域 default

统计信息

当前,所有命令和 API 都是基于未压缩数据上报对象和桶的大小,某个桶的压缩统计信息可通过 bucket stats 命令查看:

$ radosgw-admin bucket stats --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_utilizedsize_kb_utilized 字段表示已压缩数据的总尺寸,单位分别是字节和千字节。