一、镜像下载

https://hub.docker.com/r/ceph/daemon/ 当前时间(2019.11)最新版本是n(nautilus)。但是由于docker版本的ceph-disk往ceph-volumn的迁移还没有做完,最新版本对磁盘和文件存储的设置一直报错,所以使用的上一个本版 m(mimic)。

1
docker pull ceph/daemon:latest-mimic

二、安装

1. 集群规划

三个节点如下,只在 bigdata03 机器上安装对象存储网关 bigdata01  192.168.1.101 bigdata02  192.168.1.101 bigdata03  192.168.1.103

2. 系统配置

系统配置的所有步骤,如果没有特殊说明,每台机器上都要操作

(1) 关闭 selinux

1
2
3
4
5
6
# 即时生效
setenforce 0
# 更改配置使永久生效
vim /etc/selinux/config
# 设置
SELINUX=disable

(2) 创建存储文件夹

Ceph容器挂在该文件夹存储数据,如果使用整块硬盘,可以不需要这一步。

1
mkdir -p /data/ceph/{etc,lib,osd}

(3) 配置时间同步服务

ntp或者chrony,不是文章的重点,大家可自行搜索。

3. mon节点

monitor类似zookeeper,多个节点组成高可用集群 (1) 在bigdata01上新建mon容器:

1
2
3
4
5
6
7
docker run -d --net=host --name ceph-mon \
-v /data/ceph/etc:/etc/ceph \
-v /data/ceph/lib/:/var/lib/ceph/ \
-e MON_IP=192.168.1.101 \
-e CEPH_PUBLIC_NETWORK=192.168.1.0/16 \
--restart=always \
ceph/daemon:latest-mimic mon

(2) 修改宿主机 /data/ceph/etc/ceph.conf

只需要在一台机器上操作,后面会同步到其他机器

1
2
3
# 修改下面两行,添加另外一两台主机
mon initial members = bigdata01,bigdata02,bigdata03
mon host = 192.168.1.101,192.168.1.102,192.168.1.103

如果文件系统是ext4的,需要加下面两个配置,否则osd起不来,

1
2
3
# 否则osd角色报错:ERROR: osd init failed: (36) File name too long
osd max object name len = 256
osd max object namespace len = 64

(3) 导出mon的登陆信息到 keyring 文件

1
docker exec ceph-mon ceph auth get client.bootstrap-osd -o /etc/ceph/ceph.keyring

(4) 将配置文件复制到其他两台机器,有etc和lib文件夹下的对应配置

1
2
scp /data/ceph/etc/* bigdata01:/data/ceph/etc/
scp -r /data/ceph/lib/bootstrap-* bigdata01:/data/ceph/lib/

(5) 修改配置文件所属用户

每台机器都执行

1
2
# 167是docker容器内的账号,可以查看docker生成的文件的所属用户,然后将自己新建的文件也改成这个用户
chown -R 167:167 /data/ceph/*

(6) 在另外两个节点上新建mon容器,命令和(1) 是一样的,但是要注意修改 MON_IP 为对应主机的IP

3. mgr节点

类似zookeeper,有多个节点时,只有一个是工作的,其他的处于standby状态 在三个节点上都建立mgr容器

1
2
3
4
5
docker run -d --net=host --name ceph-mgr \
-v /data/ceph/etc:/etc/ceph \
-v /data/ceph/lib/:/var/lib/ceph/ \
--restart=always \
ceph/daemon:latest-mimic mgr

4. osd节点

osd节点是真正存储数据的功能节点,在三个节点上都新建一个容器: (1) 方式一 使用本地的一个文件夹,但是性能会稍差

1
2
3
4
5
6
7
docker run -d --net=host \
--name ceph-osd --pid=host \
-v /data/ceph/etc:/etc/ceph \
-v /data/ceph/osd:/var/lib/ceph/osd \
-v /data/ceph/lib/:/var/lib/ceph/ \
--restart=always \
ceph/daemon:latest-mimic osd

(2) 方式二 使用一整块硬盘

1
2
3
4
5
6
7
8
docker run -d --net=host --name osd \
--privileged=true --pid=host \
-v /data/ceph/etc:/etc/ceph \
-v /data/ceph/lib/:/var/lib/ceph/ \
-v /dev/:/dev/ \
-e OSD_DEVICE=/dev/sdb \
-e OSD_TYPE=disk \
ceph/daemon:latest-mimic osd

到这里,集群已经可以用了,后面根据需求添加更多的组件

5. 安装失败清除

安装失败的时候用到

1
2
3
4
5
docker rm -f ceph-mon
docker rm -f ceph-mgr
docker rm -f ceph-osd
rm -rf /data/ceph
mkdir -p /data/ceph/{etc,lib,osd}

三、验证

完成上面的步骤后,最基本的集群已经搭建起来了。使用下面的命令测试

1
2
3
4
# 查看集群健康状态,没有error就行,可能会出现时钟不同步的警告
docker exec -it ceph-mon ceph health detail
# 查看集群储存容量
docker exec -it ceph-mon ceph df

四、功能角色安装

1. 对象存储网关

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 添加授权,如果文件已存在,可忽略
docker exec ceph-mon ceph auth get client.bootstrap-rgw -o /var/lib/ceph/bootstrap-rgw/ceph.keyring

# 多台机器上都安装rgw角色,只需要将第一次生成的 ceph.keyring 复制到其他机器的指定相同目录就行

# 启动实例
docker run -d --net=host --name ceph-rgw \
-v /data/ceph/lib/:/var/lib/ceph/ \
-v /data/ceph/etc:/etc/ceph \
--restart=always \
ceph/daemon:latest-mimic rgw

单节点的时候是启动不了的,因为rgw会创建几个系统的pool,但是默认min_size 不是1 ,所以访问不了

1
2
3
4
.rgw.root
default.rgw.control
default.rgw.meta
default.rgw.log

解决方法就是手动将 min_size 设置成1:

1
2
3
4
ceph osd pool set .rgw.root min_size 1
ceph osd pool set default.rgw.control min_size 1
ceph osd pool set default.rgw.meta min_size 1
ceph osd pool set default.rgw.log min_size 1

然后重启rgw的容器

添加一个对象存储用户

1
2
3
4
5
6
7
radosgw-admin user create --uid=admin --display-name=admin --email=admin@blueskea.top
# 保存返回值中下面信息,后面用到
{
    "user": "admin",
    "access_key": "9WXLSCT8NZO6S88OAHK8",
    "secret_key": "HPuyRWMTwSW6xgAIqnddClLW8upTw3S65xO64tv3"
}

为对象存储功能分配创建、分配一个名为oss的pool

1
2
3
4
# 创建pool, 后面的两个数字是 pg_num和pgp_num, 参考后面的说明
ceph osd pool create oss 128 128
# 分配
ceph osd pool application enable oss rgw

如果只创建,不分配,创建的pool没有被任何服务用到, 的时候,有可能报下面的警告

1
2
3
4
HEALTH_WARN application not enabled on 1 pool(s)
POOL_APP_NOT_ENABLED application not enabled on 1 pool(s)
    application not enabled on pool 'test1'
    use 'ceph osd pool application enable <pool-name> <app-name>', where <app-name> is 'cephfs', 'rbd', 'rgw', or freeform for custom applications.

s3cmd 工具类配置

在rgw的docker中已经默认安装好了s3cmd ,s3cmd是一个用于管理s3文件系统的工具类 (1) 初始化工具类 

1
2
3
4
s3cmd --configure
# 输入accesss key 、 secretkey:上面创建用户的时候返回的
# S3 Endpoint:当前节点:7480,如 bigdata01:7480
# 最后生成配置文件 ~/.s3cfg ,可以修改改文件做进一步配置

(2) 测试常用命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# 查看目录结构
s3cmd ls

# 创建bucket
s3cmd mb s3://Test   # Test是Bucket名,首字母必须大写
# 查看bucket下的文件
s3cmd ls s3://Test   # Test是Bucket名

# 上传文件
s3cmd put anaconda-ks.cfg s3://Test/

# 下载文件
s3cmd get s3://Test/anaconda-ks.cfg from.txt

2. DashBoard

Ceph自带的网页控制台

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 进入容器
docker exec -it ceph-mgr bash

# 停用 dashboard 模块
ceph mgr module disable dashboard

# 配置 dashboard 地址与端口
ceph config set mgr mgr/dashboard/server_addr 0.0.0.0
ceph config set mgr mgr/dashboard/server_port 9000

# 配置 dashboard 禁用 ssl
ceph config set mgr mgr/dashboard/ssl false

# 使用 dashboard 模块
ceph mgr module enable dashboard

# 配置 dashboard 账户与密码
ceph dashboard set-login-credentials lanmingle lanmingle

# 使用 dashboard 创建自签署的证书
ceph dashboard create-self-signed-cert

# 上面的设置完成后,查看 mgr 服务
ceph mgr services
# 输出:
{
    "dashboard": "https://0.0.0.0:9000/"
}
# 浏览器访问即可

五、关于权限

1
2
3
# 设置bucket和所有下级文件为公开访问
# 访问地址:http://ip:7480/bucketname/filename
s3cmd setacl s3://Test --acl-public --recursive

Ceph存储集群的认证和授权默认是启用的。无论是独立的个体用户,还是系统中的一个应用(如RGW),他们都使用ceph的客户端与ceph存储集群交互。当ceph启用认证和授权时,你必须要指定用户名和包含秘钥的钥匙环才可以使用客户端与集群进行交互。如果不指定如:ceph heath,它会使用默认用户client.admin并自动通过keyring查找对用的key。

手动指定用户和秘钥的方式:

1
ceph –n client.admin –keyring=/etc/ceph/ceph.client.admin.keyring health

和上面的指令的效果是相同的。

不管什么类型的客户端(块,对象,文件系统,还是本地api)ceph把所有的数据都统一存储在池中。用户必须要有对池的访问权限,而且ceph用户还要有执行权限,以便使用ceph的管理指令。

1. User

用户可以是一个独立的个体,或者系统的一个角色如一个应用。创建了用户,才允许你访问存储集群,它的池,和池中的数据。

Ceph中有userType概念,用户的管理通常是client。Ceph对用户的辨别是通过点分割的形式,它包含类型和用户名如:TYPE.ID格式client.admin,client.user1。使用用户类型的原因是因为ceph monitors osds 和metadata 服务也都使用了cephx协议,但是他们不是客户端,类型就是用于区分的。区分用户类型有助于在客户端用户和其他用户的访问控制,用户监控和跟踪的辨别。

注:ceph存储集群用户和ceph对象存储用户或者ceph文件系统用户是不一样的,ceph object gateway使用存储集群用户来进行gateway守护进程和存储集群之间交互。但是gateway有他自己的终端用户管理功能。Ceph文件系统使用的是posix,与ceph文件系统相关的用户跟ceph存储集群用户也是不同的。

Ceph使用“capability”来标识赋予已认证用户执行monitors ,osd,和metadata 服务功能的能力。Capability严格控制对池中数据的访问或者池中命名空间的访问。当创建用户的时候由管理员用户来赋予用户capability。 Capability的语法如下:

2. Pool

Pool是对存储的逻辑划分,用户把数据都放到pool里,默认情况下,ceph storage cluster中有data pool,rbd pool,metadata pool。在ceph的部署中为相似的数据创建一个pool来存放数据是很普遍的。例如当把ceph作为opentack的后端时,典型的部署有volumes ,image,backups,和virtual machine pool,和用户如:client.glance,client.cinder,etc

3. Namespace

池中对象的一个逻辑组织,池中的对象可以关联到该命名空间中。户访问的pool可以关联到一个池中,这样用户所做的读写尽在该命名空间中有效。Pool中写在命名空间中的数据只有对该命名空间有访问权限的用户才可以访问。

命名空间对与使用librados写数据的应用是很有用的,但是像block device client,object storage client和filesystem 暂时还不支持该特性。

4. 用户管理

4.1 获取所有用户

1
ceph auth list

4.2 查看指定用户详情

1
2
3
4
5
ceph auth get {TYPE.ID}
# 例子 ceph auth get client.admin

# 打印用户key
ceph auth print-key {TYPE}.{ID}

4.3 创建用户

创建用户会添加一个用户名,key和capability,用户的key使用户能通过ceph storage cluster认证,用户的capabilities使用户具有一定的monitors,osds,或者metadata server的功能。

创建用户的三种方式:

(1) ceph auth add

这个命令可以创建用户,产生秘钥和添加一些指定的capabilities

1
2
# ceph auth add {TYPE.ID} 组件1 '权限1' 组件2 '权限2'...
ceph auth add client.john mon 'allow r' osd 'allow rw pool=liverpool'

(2) ceph auth get-or-create:这个命令会返回一个包含用户名和秘钥的keyfile

格式。如果用户已经存在,它就会以keyfile 格式返回用户名和key。

1
2
3
4
ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool'

# 将结果输出到文件
ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring

(3) ceph auth

get-or-create-key:这个命令创建用户但是只返回用户的key,如果想知道已存在用的key,这个命令是很有用的。可以使用-o {filename}选项把输出打印到指定文件。

如果只创建用户,没有赋予用户capabilities,那么用户基本是无用的,但是可以使用命令ceph auth caps 给其添加capabilities。

1
ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=liverpool' -o ringo.key

(4) 其他

如果赋予用户osd的capability,但是没有指定特定的pool,则该用户对集群中所有的pool有访问权限。

4.4 修改用户capability

(1) 修改

1
2
3
4
5
6
ceph auth caps {TYPE.ID} {daemon} 'allow [r|w|x|*|...] [pool={pool-name}] [namespace={namespace-name}']

# 例子
ceph auth caps client.john mon 'allow r' osd 'allow rw pool=liverpool'
ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=liverpool'
ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'

(2) 删除

1
2
# 删除用户的capabilities, 将权限指向空字符串。
ceph auth caps client.rngo mon '' osd ''

4.5 删除用户

1
ceph auth del {TYPE}.{ID}

4.6 导入

ceph集群会添加新的用户、对应的keys和capabilities,同时也会更新已经存在用户的keys和capabilities。

1
ceph auth import –I /path/to/keyring

5. Keyring管理

用户使用ceph client访问ceph时,ceph client会寻找本地的本地的keyring文件(/etc/ceph/xxx.keyring),ceph默认情况下预先对keyring做了下面四个文件的设置,所以你不必再设置它们,除非你想覆盖默认设置。

1
2
3
4
/etc/ceph/$cluster.$name.keyring 
/etc/ceph/$cluster.keyring 
/etc/ceph/keyring 
/etc/ceph/keyring.bin

变量cluster是集群的名字,由ceph.conf配置文件名所定义(例如:ceph.conf意思是集群的名字是ceph,变量name是用户类型和用户id(如client.admin,则文件名为:ceph.client.admin.keyring)

5.1 创建一个keyring

当你在用户管理中创建一个用户,然后需要创建一个钥匙环,你需要给ceph client提供一个用户keys,这样ceph client才能检索到指定用户的key,然后通过ceph storage cluster的认证。Ceph client 通过查询keyring来寻找用户名和用户的key。

ceph-authtool程序可以帮助你创建keyring,创建一个空的keyring,使用—create-keyring或ceph-authtool –create-keyring /path/to/keyring当你创建一个钥匙环供多个用户使用时,最好使用集群的名字作为钥匙环的名字,并保存在/etc/ceph/目录下,因为keyring的默认设置会检索这个配置文件而不需要你在单独指定本地配置文件的副本。例如ceph.keyring。

1
sudo ceph-authtool –C /etc/ceph/ceph.keyring

当创建的钥匙环为单个用户使用,最好使用集群的名字,用户的类型和用户的名字,并保存在/etc/ceph目录下。例如client.admin用户的钥匙环ceph.client.admin.keyring。 在/etc/ceph目录下创建钥匙环,必须使用root用户。这意味着只有root用户才有钥匙环rw权限,当钥匙环包含的是管理源的keys,这样就比较合理了。如果你打算为某个特定的用户,或者用户组使用一个特定的钥匙环,要确保使用chown或者chmod来建立适当的keyring所有权和访问权。

5.2 添加用户到钥匙环

如果想为每个用户都建立一个钥匙环 (keyring) 的话,可以使用下面这个命令,添加一个 -o 选项,把输出保存到keyring文件格式中。如:为用户 client.admin 创建钥匙环。

1
sudo ceph auth get client.admin –o /etc/ceph/ceph.client.admin.keyring

当想把已经存在的用户导入到keyring中时,可以使用ceph-authtool工具来完成,要指定目的钥匙环和源钥匙环。如:

1
sudo ceph-authtool /etc/ceph/ceph.keyring  --import-keyring /etc/ceph/ceph.client.admin.keyring

5.3 创建用户

ceph提供了添加用户功能来直接在集群中创建用户,然而你也可以直接在ceph client中创建用户,key和capabilities。然后在把用户导入到ceph集群中。

1
sudo ceph-authtool –n client.ringo –cap osd ‘allow rwx’ –cap mon ‘allow rwx’ /etc/ceph/ceph.keyring

也可以把创建钥匙环和添加新用户同时进行。如:

1
sudo ceph-authtool –C /etc/ceph/ceph.keyring –n client.ringo –cap osd ‘allow rwx’ –cap mon ‘allow rwx’ –gen-key

在上述场景中新用户client.ringo仅仅存在于keyring中,要把新用户添加到ceph storage cluster中,你必须添加新的用户到ceph storage cluster中。

1
sudo ceph auth add client.ringo –I /eetc/ceph/ceph.keyring

5.4 修改用户

更改记录在keyring中的用户的capabilities,通过capabilities指定keyring和用户名:

1
sudo ceph-authtool /etc/ceph/ceph.keyring –n client.ringo –cap osd ‘allow rwx’ –cap mon 'allow rxx'

这里表时更新用户到ceph storage cluster中,在ceph storage cluster 中你必须要更新keyring中的用户实体。

1
sudo ceph auth import –I /etc/ceph/ceph.keyring

你也可以在集群中直接更新用户的capabilities,把结果存储在keyring文件中,然后把keyring导入到你的主要ceph.keyring中。

6. OSS网关用户管理

RestfulAPI方式:https://docs.ceph.com/docs/master/radosgw/adminops/

命令方式:https://docs.ceph.com/docs/master/radosgw/admin/

Ceph RGW(即RADOS Gateway)是Ceph对象存储网关服务,是基于LIBRADOS接口封装实现的、对外提供存储和管理对象数据的Restful API服务。 对象存储适用于图片、视频等各类文件的上传下载,可以设置相应的访问权限。目前Ceph RGW兼容常见的对象存储API,例如兼容绝大部分Amazon S3 API,兼容OpenStack Swift API。

RADOS 的用户是对象存储的用户,和Ceph存储集群的用户没有直接的关联关系。

{% asset_img ceph-rgw.png %}

6.1 获取所有用户

1
radosgw-admin user list

6.2 查看指定用户详情

1
radosgw-admin user info --uid=admin

6.3 修改指定用户

一般会修改:keys and secrets, email addresses, display names and access levels

1
radosgw-admin user modify --uid=johndoe --display-name="John E. Doe"

修改子用户(Swift可用):

1
radosgw-admin subuser modify --subuser=johndoe:swift --access=full

6.4 启用/禁用指定用户

创建用户后,默认是启用的

禁用账号,会将其子用户也一同禁用

1
2
3
4
# 禁用账号
radosgw-admin user suspend --uid=johndoe
# 启动账号
radosgw-admin user enable --uid=johndoe

6.5 添加用户

1
2
3
4
5
6
7
# email是可选
radosgw-admin user create --uid=foo --display-name=foo --email=foo@foo.com

# 返回, 输出中的access_key和secret_key 是后面登陆用到的验证信息
"user": "foo",
"access_key": "W0FE3UJ375EAHMT0660A",
"secret_key": "HeHbboOIfpc6N1lAxlCmW0S69owWBCBRQnL4BI6m"

添加子用户(Swift中可用)

1
2
3
radosgw-admin subuser create --uid={uid} --subuser={uid} --access=[ read | write | readwrite | full ]
# 例子
radosgw-admin subuser create --uid=johndoe --subuser=johndoe:swift --access=full

6.6 删除用户

可选参数:

Purge Data: The –purge-data option purges all data associated to the UID.

Purge Keys: The –purge-keys option purges all keys associated to the UID.

1
2
3
4
5
# 删除普通用户
radosgw-admin  user rm --uid=foo

# 删除子账号
radosgw-admin subuser rm --subuser=johndoe:swift

6.7 添加/删除KEY

普通用户和子用户都需要key才能访问S3和Swift接口服务;

一个普通用户创建多个key,一个子用户只能有一个key

使用S3,用户需要一个由访问密钥和密钥组成的密钥对。使用Swift,用户通常需要密钥(密码),并将其与关联的用户ID一起使用。您可以创建密钥,并指定或生成访问密钥和/或密钥。您也可以删除密钥。选项包括:

1
2
3
4
5
--key-type=<type>    指定密钥类型。选项是:s3,swift
--access-key=<key>   手动指定S3访问密钥。
--secret-key=<key>   手动指定S3密钥或Swift密钥。
--gen-access-key     自动生成随机S3访问密钥。
--gen-secret         自动生成随机S3密钥或随机Swift密钥。

例子:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 添加 S3 key
radosgw-admin key create --uid=foo --key-type=s3 --access-key fooAccessKey --secret-key fooSecretKey

# 删除 S3 key
radosgw-admin key rm --uid=foo --key-type=s3 --access-key=fooAccessKey

# 添加 Swift key
radosgw-admin key create --subuser=foo:bar --key-type=swift --secret-key barSecret

# 删除 Swift Key
radosgw-admin key rm -subuser=foo:bar --key-type=swift

6.8 管理员配置

Ceph存储集群提供了一个管理API,使用户能够通过REST API执行管理功能。默认情况下,用户无权访问此API。要使用户能够执行管理功能,请为用户提供管理功能。

要向用户添加管理功能,请执行以下操作:

1
radosgw-admin caps add --uid={uid} --caps={caps}

您可以向用户,存储桶,元数据和使用(利用率)添加读取,写入或所有功能。例如:

1
--caps="[users|buckets|metadata|usage|zone]=[*|read|write|read, write]"

例如:

1
2
3
4
5
# 添加管理功能
radosgw-admin caps add --uid=johndoe --caps="users=*;buckets=*"

# 删除管理功能
radosgw-admin caps rm --uid=johndoe --caps={caps}

6.9 用户权限修改

1
2
3
4
5
# 允许admin读写users信息:
radosgw-admin caps add --uid=admin --caps="users=*"

# 允许admin读写所有的usage信息:
radosgw-admin caps add --uid=admin --caps="usage=read,write"

6.10 配额管理

Ceph对象网关使您可以为用户拥有的用户和存储桶设置配额。配额包括存储桶中的最大对象数以及存储桶可容纳的最大存储大小。

1
2
3
4
5
6
7
存储桶:该--bucket选项允许您为用户拥有的存储桶指定配额。

最大对象:该--max-objects设置允许您指定最大对象数。负值会禁用此设置。

最大大小:该--max-size选项允许您以B/K/M/G/T, 指定配额大小,其中B是默认值。负值会禁用此设置。

配额范围:该--quota-scope选项设置配额的范围。选项是bucket和user。存储桶配额适用于用户拥有的存储桶。用户配额适用于用户。

设置用户配额 在启用配额之前,必须先设置配额参数。

1
2
3
4
5
# 命令格式
radosgw-admin quota set --quota-scope=user --uid=<uid> [--max-objects=<num objects>] [--max-size=<max size>]

# 例子
radosgw-admin quota set --quota-scope=user --uid=johndoe --max-objects=1024 --max-size=1024B

(1) 启用/禁用用户配额

1
2
radosgw-admin quota enable --quota-scope=user --uid=<uid>
radosgw-admin quota disable --quota-scope=user --uid=<uid>

(2) 设置存储桶配额

存储桶配额适用于指定的存储桶uid。它们独立于用户。num对象和/或max size的负值表示禁用特定配额属性检查。

1
radosgw-admin quota set --uid=<uid> --quota-scope=bucket [--max-objects=<num objects>] [--max-size=<max size]

(3) 启用/禁用存储桶配额 设置存储区配额后,您可以启用它。例如:

1
2
radosgw-admin quota enable --quota-scope=bucket --uid=<uid>
radosgw-admin quota disable --quota-scope=bucket --uid=<uid>

(4) 获取配额设置

1
radosgw-admin user info --uid=<uid>

(5) 更新配额统计

1
radosgw-admin user stats --uid=<uid> --sync-stats

六、参考

权限:

https://blog.csdn.net/litianze99/article/details/44624451

http://int32bit.me/2016/05/19/Ceph-Pool%E6%93%8D%E4%BD%9C%E6%80%BB%E7%BB%93/)

https://blog.csdn.net/zzq900503/article/details/80328428

https://www.infoq.cn/article/4N2whf1y1lH_Hd5QYOkW

https://www.jianguoyun.com/p/DUxy9I4QxJ2LBxiTwN8B

使用radosgw-admin管理rgw

https://blog.frognew.com/2017/02/ceph-rgw.html#%E4%BD%BF%E7%94%A8radosgw-admin%E7%AE%A1%E7%90%86rgw