---
title: 使能RGW压缩
description: "创建完RGW账户后就可以使用该账户访问RGW。如果想要使能RGW数据压缩功能，还需要创建压缩数据用的存储池，新增放置策略并指明压缩算法。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephobject_DG_04_0032.html
sourcePath: /source/zh/kunpengsdss/ecosystemEnable/Ceph/kunpengcephobject_DG_04_0032.html
indexId: 57d5dcac169422c92545fafb95af66a6ff613efab23f44b18bc9ee5b0898b61677
---
# 使能RGW压缩

创建完RGW账户后就可以使用该账户访问RGW。如果想要使能RGW数据压缩功能，还需要创建压缩数据用的存储池，新增放置策略并指明压缩算法。

仅需在主节点ceph1上执行。


#### 创建压缩存储池

执行以下命令创建压缩存储池。

```
ceph osd pool create default.rgw.buckets.data-compress 4096 4096
ceph osd pool create default.rgw.buckets.index-compress 256 256
ceph osd pool create default.rgw.buckets.non-ec-compress 64 64
ceph osd pool application enable default.rgw.buckets.data-compress rgw
ceph osd pool application enable default.rgw.buckets.index-compress rgw
ceph osd pool application enable default.rgw.buckets.non-ec-compress rgw
```

区别于普通的非压缩存储池，此处创建用于RGW使能压缩的存储池，分别作为接下来新建放置策略中的data_pool、index_pool与data_extra_pool。

与非压缩存储池类似，default.rgw.buckets.data-compress也可创建EC模式的压缩数据存储池，创建方法请参见创建EC存储池。


#### 新增放置策略

Ceph对象存储集群有一个默认的放置策略default-placement，此处需要创建一个新的放置策略compress-placement，应用于RGW压缩。

1. 创建新的放置策略compress-placement。
  1 radosgw-admin zonegroup placement add --rgw-zonegroup=default --placement-id=compress-placement

2. 填入compress-placement相关信息，包括该放置策略的存储池及压缩算法。
  1 radosgw-admin zone placement add --rgw-zone=default --placement-id=compress-placement --index_pool=default.rgw.buckets.index-compress --data_pool=default.rgw.buckets.data-compress --data_extra_pool=default.rgw.buckets.non-ec-compress --compression=zlib

  --compression=zlib代表使用的压缩算法是zlib。可选的压缩算法还有snappy、LZ4等算法。


#### 使能放置策略

1. 导出用户元数据，此处以存入user.json文件为例。
  1 radosgw-admin metadata get user:admin > user.json

2. 修改元数据user.json，将“default_placement”的值改为新增的放置策略“compress-placement”。
  1 vi user.json

  按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。

3. 在ceph1执行如下命令将修改后的用户元数据导入。
  1 radosgw-admin metadata put user:admin < user.json

4. 在所有服务端节点上执行如下命令重启radosgw进程。
  1 systemctl restart ceph-radosgw.target

5. 在ceph1执行以下命令检查用户的放置策略是否生效。若default_placement的值为“compress-placement”则表示放置策略生效。
  1 radosgw-admin user info --uid="admin"


关于更多关于Ceph对象存储的命令操作，可以查阅Ceph开源社区(https://docs.ceph.com/en/reef/radosgw/)中关于Ceph对象存储操作命令的说明。
