设置存储池配额

池配额是应用于 Ceph 存储池级别的逻辑数据大小限制。
它控制池可以写入的逻辑数据量,实际物理空间为 配额 * 池副本数

前提条件

  • 已安装 Ceph 集群
  • 已创建 Ceph 存储池

为文件存储池设置池配额

在集群的控制节点上执行命令。

Command
Example
SIZE="<size>"
POOL_NAME="<fs-pool-name>"

kubectl patch cephfilesystem $POOL_NAME -n rook-ceph --type=json \
	-p "[{\"op\":\"add\",\"path\":\"/spec/dataPools/0/quotas/maxSize\",\"value\":\"$SIZE\"}]"

参数说明

参数描述
size以带单位后缀的字符串表示的配额大小(例如 "10Gi")
fs-pool-name文件存储池的名称

为块存储池设置池配额

在集群的控制节点上执行命令。

Command
Example
SIZE="<size>"
POOL_NAME="<block-pool-name>"

kubectl patch cephblockpool $POOL_NAME -n rook-ceph --type=json \
	-p "[{\"op\":\"add\",\"path\":\"/spec/quotas/maxSize\",\"value\":\"$SIZE\"}]"

参数说明

参数描述
size以带单位后缀的字符串表示的配额大小(例如 "10Gi")
block-pool-name块存储池的名称

为对象存储池设置池配额

在集群的控制节点上执行命令。

Command
Example
SIZE="<size>"
POOL_NAME="<object-pool-name>"

kubectl patch cephobjectstore $POOL_NAME -n rook-ceph --type=json \
	-p "[{\"op\":\"add\",\"path\":\"/spec/dataPool/quotas/maxSize\",\"value\":\"$SIZE\"}]"

参数说明

参数描述
size以带单位后缀的字符串表示的配额大小(例如 "10Gi")
object-pool-name对象存储池的名称

通过 Ceph 终端验证池配额

ceph osd pool ls detail | grep max_bytes

pool 3 'cephfs-data0' replicated size 3 min_size 2 crush_rule 4 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode on last_change 100 lfor 0/0/56 flags hashpspool max_bytes 107374182400 stripe_width 0 application cephfs read_balance_score 1.31
pool 4 'rbd' replicated size 3 min_size 2 crush_rule 5 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode on last_change 117 lfor 0/0/111 flags hashpspool,selfmanaged_snaps max_bytes 107374182400 stripe_width 0 application rbd read_balance_score 1.31
pool 12 'object.rgw.buckets.data' replicated size 3 min_size 2 crush_rule 13 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode on last_change 304 lfor 0/0/168 flags hashpspool max_bytes 107374182400 stripe_width 0 compression_mode none application rgw read_balance_score 1.59