Ceph 中的 Pool 配额与 RBD 在线调整大小
在 Ceph 中, 我们可以对一个 Pool 的 空间大小
和文件数
设置配额大小, 对 RBD
的 image/volume
也可心进行在线调整大小, 十分方便.
目录
Pool 配额设置
设置 Pool 的配额大小
- 设置
空间大小
配额
## usage
$ ceph osd pool set-quota {pool-name} max_bytes {bytes}
## e.g.
$ ceph osd pool set-quota test-pool max_bytes $((100 * 1024 * 1024 * 1024))
- 设置
文件数
配额
## usage
$ ceph osd pool set-quota {pool-name} max_objects {file_num}
## e.g.
$ ceph osd pool set-quota test-pool max_objects 10000
- 两个配额可以
同时设置
, 既设置空间限制, 又设置文件数限制.
查寻 Pool 配额设置
## usage
$ ceph osd pool get-quota {pool-name}
## e.g.
$ ceph osd pool get-quota test-pool
取消 Pool 的配额
要取消一个 Pool 的配额, 只需要将相应的限制设为 0
即可.
## usage
$ ceph osd pool set-quota {pool-name} max_bytes|max_objects 0
## e.g.
$ ceph osd pool set-quota test-pool max_bytes 0
$ ceph osd pol set-quota test-pool max_objects 0
RBD 镜像在线调整大小
RBD 镜像调整大小很简单. 若是离线状态, 可以直接对其调整大小, 若是已经将其挂载到系统中, 则需要将其卸载, 调整后再挂载. 对于挂载到虚拟机上的可以通过 virsh
命令在线调整.
利用 libvirt 调整 rbd 镜像
在物理机上调整大小
- 获取当前镜像大小
## usage
$ qemu-img info -f rbd "rbd:{pool-name}/{image-name}"
## e.g.
$ qemu-img info -f rbd "rbd:volume/test-imgage"
image: json:{"pool": "volumes", "image": "test-image", "driver": "rbd"}
file format: rbd
virtual size: 50G (53687091200 bytes)
disk size: unavailable
cluster_size: 4194304
- 将镜像大小调整到一个合适的大小, 一般只能调大, 否则很可能会损坏文件系统. 若要调小容量, 需要加上
--allow-shrink
选项.
## e.g.
$ qemu-img resize -f rbd "rbd:volumes/test-image" 30G --allow-shrink
Image resized.
- 列出所有挂载的 镜像.
## usage
$ virsh domblklist {domain-name}
## e.g.
$ virsh domblklist rbd-test
- 调整
libvirt
块设备
$ virsh blockresize --domain rbd-test --path vdb --size 60G
$ virsh info volumes/test-block
在虚拟机上调整大小
- 重新挂载 rbd, 假定挂载到
/mnt/rbd/data
:
$ sudo mount -o remount,rw /dev/vdb1
- 文件系统为
xfs
:
$ xfs_growfs /mnt/rbd/data
- 文件系统为
ext3/ext4
:
$ e2fsck -fy /dev/vdb1
$ resize2fs /dev/vdb1
## check rbd size
$ df -h
利用内核模块调整 RBD 大小
在 内核版本在 3.10+ 以上的系统上, 可以直接使用 rbd
的 resize
功能:
- 获取
RBD
镜像当前大小:
$ rbd info volumes/volume-a737fff5-6426-42ab-8873-4119bbecebbf
rbd image 'volume-a737fff5-6426-42ab-8873-4119bbecebbf':
size 60 GiB in 15360 objects
order 22 (4 MiB objects)
id: 2b4301cac20ca
block_name_prefix: rbd_data.2b4301cac20ca
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
op_features:
flags:
create_timestamp: Tue Sep 18 09:00:49 2018
parent: images/c18d8e1d-b4df-42ec-b06f-53bbe53187c1@snap
overlap: 1.1 GiB
- 物理机调整
RBD
大小:
$ rbd resize volumes/volume-a737fff5-6426-42ab-8873-4119bbecebbf --size 80G
- 虚拟机调整
RBD
大小:
### xfs
$ xfs_growfs /dev/vdb1
### ext4
$ e2fsck -fy /dev/vdb1
$ resize2fs /dev/vdb1


