7.3. 块设备
Ceph 包含 rbd bench-write 命令,用于测试后续写入到块设备的吞吐量和延迟。默认字节大小为 4096,默认 I/O 线程数为 16,写入的默认字节总数为 1 GB。这些默认值可分别通过 --io-size、--io-threads 和 --io-total 选项进行修改。有关 rbd 命令的更多信息,请参阅 Red Hat Ceph Storage 3 Ceph 块设备指南中的块设备 命令 部分。
创建 Ceph 块设备
作为
root,加载rbd内核模块(如果还没有载入):modprobe rbd
# modprobe rbdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为
root,在testbench池中创建一个 1 GBrbd镜像文件:rbd create image01 --size 1024 --pool testbench
# rbd create image01 --size 1024 --pool testbenchCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在创建块设备镜像时,这些功能会被默认启用:
layering、object-map、deep-flatten、journaling、exclusive-lock和fast-diff。在红帽企业 Linux 7.2 和 Ubuntu 16.04 上,利用内核 RBD 客户端的用户将无法映射块设备映像。您必须首先禁用所有这些功能,但
layering除外。语法
rbd feature disable <image_name> <feature_name>
# rbd feature disable <image_name> <feature_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
rbd feature disable image1 journaling deep-flatten exclusive-lock fast-diff object-map
# rbd feature disable image1 journaling deep-flatten exclusive-lock fast-diff object-mapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
rbd create命令中使用--image-feature layering选项只会在新创建的块设备镜像中启用layering。这是一个已知问题,请参阅 Red Hat Ceph Storage 3.3 发行注记. 以了解更多详细信息。
所有这些功能适用于利用用户空间 RBD 客户端访问块设备镜像的用户。
作为
root,将镜像文件映射到设备文件:rbd map image01 --pool testbench --name client.admin
# rbd map image01 --pool testbench --name client.adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为
root,在块设备中创建ext4文件系统:mkfs.ext4 /dev/rbd/testbench/image01
# mkfs.ext4 /dev/rbd/testbench/image01Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作为
root,创建新目录:mkdir /mnt/ceph-block-device
# mkdir /mnt/ceph-block-deviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为
root,将块设备挂载到/mnt/ceph-block-device/下:mount /dev/rbd/testbench/image01 /mnt/ceph-block-device
# mount /dev/rbd/testbench/image01 /mnt/ceph-block-deviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
针对块设备执行写入性能测试
rbd bench-write image01 --pool=testbench
# rbd bench-write image01 --pool=testbench
示例