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作为
root,在testbench池中创建一个 1 GBrbd镜像文件:# rbd create image01 --size 1024 --pool testbench注意在创建块设备镜像时,这些功能会被默认启用:
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 image1 journaling deep-flatten exclusive-lock fast-diff object-map在
rbd create命令中使用--image-feature layering选项只会在新创建的块设备镜像中启用layering。这是一个已知问题,请参阅 Red Hat Ceph Storage 3.3 发行注记. 以了解更多详细信息。
所有这些功能适用于利用用户空间 RBD 客户端访问块设备镜像的用户。
作为
root,将镜像文件映射到设备文件:# rbd map image01 --pool testbench --name client.admin作为
root,在块设备中创建ext4文件系统:# mkfs.ext4 /dev/rbd/testbench/image01作为
root,创建新目录:# mkdir /mnt/ceph-block-device作为
root,将块设备挂载到/mnt/ceph-block-device/下:# mount /dev/rbd/testbench/image01 /mnt/ceph-block-device
针对块设备执行写入性能测试
# rbd bench-write image01 --pool=testbench
示例
bench-write io_size 4096 io_threads 16 bytes 1073741824 pattern seq
SEC OPS OPS/SEC BYTES/SEC
2 11127 5479.59 22444382.79
3 11692 3901.91 15982220.33
4 12372 2953.34 12096895.42
5 12580 2300.05 9421008.60
6 13141 2101.80 8608975.15
7 13195 356.07 1458459.94
8 13820 390.35 1598876.60
9 14124 325.46 1333066.62
..