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 rbd
Copy 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 testbench
Copy 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-map
Copy 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.admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作为
root
,在块设备中创建ext4
文件系统:mkfs.ext4 /dev/rbd/testbench/image01
# mkfs.ext4 /dev/rbd/testbench/image01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作为
root
,创建新目录:mkdir /mnt/ceph-block-device
# mkdir /mnt/ceph-block-device
Copy 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-device
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
针对块设备执行写入性能测试
rbd bench-write image01 --pool=testbench
# rbd bench-write image01 --pool=testbench
示例