注意

本文档适用于 Ceph 的开发版本。

压缩

从 Kraken 版本开始新增。

Ceph 对象网关支持上传对象的服务器端压缩。

注意

Reef 版本新增了 compress-encrypted 区域组功能,以启用 服务器端加密 时的压缩。

支持的压缩插件包括:

  • lz4

  • snappy

  • zlib

  • zstd

注意

Ceph 对象网关压缩仅由 RGW 守护进程对 RGW 对象执行,它不同于 BlueStore 压缩(由 OSD 在存储池粒度执行)。通常只启用其中一种。同时启用这两个级别不会导致问题,但应该根据用例做出决定。如果您的集群只提供对象存储,并且运行 RGW 的节点比 OSD 节点有更多的可用 CPU,那么 RGW 级别的压缩可能更具吸引力。在 OSD 级别进行压缩确实意味着在复制后对相同的用户数据进行多次压缩,但在 OSD 数量远多于 RGW 的集群中,这种策略可能会带来更好的性能。

配置

可以通过在区域的放置目标中向命令 radosgw-admin zone placement modify 提供 --compression=<type> 选项,在存储类上启用压缩。

压缩 type 是指写入新对象数据时将使用的压缩插件的名称。每个压缩对象都会记住使用了哪个插件,因此对此设置的任何更改都不会影响 Ceph 解压现有对象的能力,也不需要重新压缩现有对象。

压缩设置适用于使用此放置目标上传到存储桶的所有新对象。通过将 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,
            }
        }
    ],
...
}

注意

如果您之前没有进行任何 多站点配置,则会为您创建一个 default 区域。

统计信息

运行 radosgw-admin 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
        }
    },
...
}

其他命令和 API 将根据其未压缩数据报告对象和存储桶大小。

size_utilizedsize_kb_utilized 字段分别表示压缩数据的总大小(以字节和千字节为单位)。

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入