8.11. 编配数据的速率限值
作为存储管理员,您可以使用 Ceph 对象网关配置在 Red Hat Ceph Storage 集群中保存对象时,根据操作和带宽设置用户和存储桶速率限值。
8.11.1. 存储集群中的速率限制目的 复制链接链接已复制到粘贴板!
您可以在 Ceph 对象网关配置中对用户和存储桶设置速率限值。速率限制包括读取操作的最大数量、每分钟的写操作数,每分钟可写入或读取每个存储桶的字节数。
在 REST 中使用 GET 或 HEAD 方法的请求是"读取请求",否则它们为"写入请求"。
Ceph 对象网关单独跟踪用户和 bucket 请求,不与其他网关共享,这意味着配置所需的限制应按照活跃对象网关的数量来划分。
例如,如果用户 A 应每分钟限制为十个 ops,并且集群中有两个 Ceph 对象网关,则用户 A 的限制应该为五,即对于两个 Ceph 对象网关每分钟为十个 opss。如果 Ceph 对象网关之间没有平衡请求,则速率限制可能会利用率不足。例如,如果 ops 的限制是五,并且有两个 Ceph 对象网关,但负载平衡器仅向其中一个 Ceph 对象网关发送负载,则有效限制将是五个 ops,因为这个限制针对一个 Ceph 对象网关实施。
如果存储桶达到了限制,但不适用于用户,或反之,请求也会被取消。
带宽数在请求被接受后发生。因此,即使存储桶或用户已在请求中间达到其带宽限制,此请求也会继续进行。
Ceph 对象网关保留使用字节数的 "debt" 超过配置的值,并防止该用户或 bucket 发送更多请求,直到其 "debt" 支付。"debt"最大大小为每分钟 max-read/write-bytes 两倍。如果用户 A 每分钟有 1 字节读取限制,并且此用户尝试 GET 1 GB 对象,用户可以这样做。
用户 A 完成此 1 GB 操作后,Ceph 对象网关会阻止用户请求最多两分钟,直到用户 A 能够再次发送 GET 请求。
限制率的不同选项:
-
Bucket:
--bucket
选项允许您为存储桶指定速率限制。 -
用户:
--uid
选项允许您为用户指定速率限制。 -
最大读取 ops :
--max-read-ops
设置允许您为每个 Ceph 对象网关指定每分钟读取 ops 的最大数量。0
代表禁用此设置,这意味着无限访问。 -
最大读取字节数:
--max-read-bytes
设置允许您为每个 Ceph 对象网关指定每分钟的最大读取字节数。0
代表禁用此设置,这意味着无限访问。 -
最大写入 ops :
--max-write-ops
设置允许您为每个 Ceph 对象网关指定每分钟写入 ops 的最大写入数。0
代表禁用此设置,这意味着无限访问。 -
最大写入字节:
--max-write-bytes
设置允许您为每个 Ceph 对象网关指定每分钟的最大写入字节数。0
代表禁用此设置,这意味着无限访问。 -
速率限制范围:
--rate-limit-scope
选项设置速率限制的范围。选项包括bucket
、用户
和匿名
。bucket 速率限制适用于存储桶,用户速率限制适用于用户,匿名适用于未经身份验证的用户。匿名范围仅适用于全局速率限制。
8.11.2. 启用用户速率限制 复制链接链接已复制到粘贴板!
您可以在 Ceph 对象网关配置中为用户设置速率限值。用户的速率限制包括读取操作的最大数量、每分钟写入操作数以及每分钟可写入或读取的字节数。
当使用带有将 ratelimit-scope
设置为 user
的 radosgw-admin ratelimit set
命令,在设置速率限制值后您可以对用户启用速率限制。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装了 Ceph 对象网关。
流程
为用户设置速率限制:
语法
radosgw-admin ratelimit set --ratelimit-scope=user --uid=USER_ID [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin ratelimit set --ratelimit-scope=user --uid=USER_ID [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=user --uid=testing --max-read-ops=1024 --max-write-bytes=10240
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=user --uid=testing --max-read-ops=1024 --max-write-bytes=10240
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 NUMBER_OF_OPERATIONS 或 NUMBER_OF_BYTES 的值为
0
,代表禁用特定的速率限制属性检查。获取用户速率限制:
语法
radosgw-admin ratelimit get --ratelimit-scope=user --uid=USER_ID
radosgw-admin ratelimit get --ratelimit-scope=user --uid=USER_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用用户速率限制:
语法
radosgw-admin ratelimit enable --ratelimit-scope=user --uid=USER_ID
radosgw-admin ratelimit enable --ratelimit-scope=user --uid=USER_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:禁用用户速率限制:
语法
radosgw-admin ratelimit disable --ratelimit-scope=user --uid=USER_ID
radosgw-admin ratelimit disable --ratelimit-scope=user --uid=USER_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=user --uid=testing
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=user --uid=testing
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.11.3. 启用存储桶速率限制 复制链接链接已复制到粘贴板!
您可以在 Ceph 对象网关配置中对存储桶设置速率限值。bucket 的速率限制包括读取操作的最大数量、每分钟写入操作数以及每分钟可写入或读取的字节数。
您可以通过在设置速率限制值后,通过使用 radosgw-admin ratelimit set
命令并将 ratelimit-scope
设置为 bucket
后,启用存储桶的速率限制。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装了 Ceph 对象网关。
流程
为存储桶设置速率限制:
语法
radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket= BUCKET_NAME [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket= BUCKET_NAME [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket=mybucket --max-read-ops=1024 --max-write-bytes=10240
[ceph: root@host01 /]# radosgw-admin ratelimit set --ratelimit-scope=bucket --bucket=mybucket --max-read-ops=1024 --max-write-bytes=10240
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 NUMBER_OF_OPERATIONS 或 NUMBER_OF_BYTES 的值为
0
,代表禁用特定的速率限制属性检查。获取存储桶速率限制:
语法
radosgw-admin ratelimit get --ratelimit-scope=bucket --bucket=BUCKET_NAME
radosgw-admin ratelimit get --ratelimit-scope=bucket --bucket=BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用存储桶速率限制:
语法
radosgw-admin ratelimit enable --ratelimit-scope=bucket --bucket=BUCKET_NAME
radosgw-admin ratelimit enable --ratelimit-scope=bucket --bucket=BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:禁用存储桶速率限制:
语法
radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=BUCKET_NAME
radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=BUCKET_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=mybucket
[ceph: root@host01 /]# radosgw-admin ratelimit disable --ratelimit-scope=bucket --bucket=mybucket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.11.4. 配置全局速率限制 复制链接链接已复制到粘贴板!
您可以在期间配置内读取或写入全局速率限制设置。您可以通过带有 global ratelimit
参数的全局速率限制设置来覆盖用户或存储桶的速率限制配置,这与 ratelimit set
, ratelimit enable
, 和 ratelimit disable
命令相对应。
在存在 realm 和 period 的多站点配置中,必须使用 period update --commit
命令提交对全局速率限制的更改。如果没有 period,则必须重启 Ceph 对象网关,才能使更改生效。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 安装了 Ceph 对象网关。
流程
查看全局速率限制设置:
语法
radosgw-admin global ratelimit get
radosgw-admin global ratelimit get
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为存储桶配置并启用速率限制:
为存储桶设置全局速率限值:
语法
radosgw-admin global ratelimit set --ratelimit-scope=bucket [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin global ratelimit set --ratelimit-scope=bucket [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope bucket --max-read-ops=1024
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope bucket --max-read-ops=1024
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用存储桶速率限制:
语法
radosgw-admin global ratelimit enable --ratelimit-scope=bucket
radosgw-admin global ratelimit enable --ratelimit-scope=bucket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope bucket
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope bucket
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为经过身份验证的用户配置和启用速率限制:
为用户设置全局速率限值:
语法
radosgw-admin global ratelimit set --ratelimit-scope=user [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin global ratelimit set --ratelimit-scope=user [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=user --max-read-ops=1024
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=user --max-read-ops=1024
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用用户速率限制:
语法
radosgw-admin global ratelimit enable --ratelimit-scope=user
radosgw-admin global ratelimit enable --ratelimit-scope=user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=user
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=user
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为未经身份验证的用户配置和启用速率限制:
为未经身份验证的用户设置全局速率限值:
语法
radosgw-admin global ratelimit set --ratelimit-scope=anonymous [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
radosgw-admin global ratelimit set --ratelimit-scope=anonymous [--max-read-ops=NUMBER_OF_OPERATIONS] [--max-read-bytes=NUMBER_OF_BYTES] [--max-write-ops=NUMBER_OF_OPERATIONS] [--max-write-bytes=NUMBER_OF_BYTES]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=anonymous --max-read-ops=1024
[ceph: root@host01 /]# radosgw-admin global ratelimit set --ratelimit-scope=anonymous --max-read-ops=1024
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用用户速率限制:
语法
radosgw-admin global ratelimit enable --ratelimit-scope=anonymous
radosgw-admin global ratelimit enable --ratelimit-scope=anonymous
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=anonymous
[ceph: root@host01 /]# radosgw-admin global ratelimit enable --ratelimit-scope=anonymous
Copy to Clipboard Copied! Toggle word wrap Toggle overflow