在 Ceph 中,我们可以对一个 Pool 的空间大小
和文件数
设置配额大小, 对 RBD
的 image/volume
也可心进行在线调整大小, 十分方便.
Table of Contents
- Pool 配额设置
- 设置 Pool 的配额大小
- 查寻 Pool 配额设置
- 取消 Pool 的配额
- RBD 镜像在线调整大小
- 利用 libvirt 调整 rbd 镜像
- 在物理机上调整大小
- 在虚拟机上调整大小
- 利用内核模块调整 RBD 大小
Pool 配额设置
设置 Pool 的配额大小
- 设置
空间大小
配额
1 2 3 4
| $ ceph osd pool set-quota {pool-name} max_bytes {bytes}
$ ceph osd pool set-quota test-pool max_bytes $((100 * 1024 * 1024 * 1024))
|
- 设置
文件数
配额
1 2 3 4
| $ ceph osd pool set-quota {pool-name} max_objects {file_num}
$ ceph osd pool set-quota test-pool max_objects 10000
|
- 两个配额可以
同时设置
, 既设置空间限制, 又设置文件数限制.
查寻 Pool 配额设置
1 2 3 4
| $ ceph osd pool get-quota {pool-name}
$ ceph osd pool get-quota test-pool
|
取消 Pool 的配额
要取消一个 Pool 的配额, 只需要将相应的限制设为 0
即可.
1 2 3 4 5
| $ ceph osd pool set-quota {pool-name} max_bytes|max_objects 0
$ 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 镜像
在物理机上调整大小
- 获取当前镜像大小
1 2 3 4 5 6 7 8 9
| $ qemu-img info -f rbd "rbd:{pool-name}/{image-name}"
$ 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
选项.
1 2 3
| $ qemu-img resize -f rbd "rbd:volumes/test-image" 30G --allow-shrink Image resized.
|
- 列出所有挂载的 镜像.
1 2 3 4
| $ virsh domblklist {domain-name}
$ virsh domblklist rbd-test
|
- 调整
libvirt
块设备
1 2
| $ virsh blockresize --domain rbd-test --path vdb --size 60G $ virsh info volumes/test-block
|
在虚拟机上调整大小
- 重新挂载 rbd, 假定挂载到
/mnt/rbd/data
:
1
| $ sudo mount -o remount,rw /dev/vdb1
|
- 文件系统为
xfs
:
1
| $ xfs_growfs /mnt/rbd/data
|
- 文件系统为
ext3/ext4
:
1 2 3 4
| $ e2fsck -fy /dev/vdb1 $ resize2fs /dev/vdb1
$ df -h
|
利用内核模块调整 RBD 大小
在 内核版本在3.10+ 以上的系统上, 可以直接使用 rbd
的 resize
功能:
- 获取
RBD
镜像当前大小:
1 2 3 4 5 6 7 8 9 10 11 12 13
| $ 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
大小:
1
| $ rbd resize volumes/volume-a737fff5-6426-42ab-8873-4119bbecebbf --size 80G
|
- 虚拟机调整
RBD
大小:
1 2 3 4 5
| $ xfs_growfs /dev/vdb1
$ e2fsck -fy /dev/vdb1 $ resize2fs /dev/vdb1
|