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 Block Device Guide』の「Block Device Commands」セクションを参照してください。
Ceph ブロックデバイスの作成
rbdカーネルモジュールをロードしていない場合はrootとしてロードします。# modprobe rbdrootとしてtestbenchプールに 1 GB のrbdイメージファイルを作成します。# rbd create image01 --size 1024 --pool testbench注記ブロックデバイスイメージの作成時には、
layering、object-map、deep-flatten、journaling、exclusive-lock、およびfast-diff機能はデフォルトで有効になります。Red Hat Enterprise 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-maprbd createコマンドで--image-feature layeringオプションを使用すると 、新規に作成されるブロックデバイスイメージのlayeringのみが有効になります。詳細は Red Hat Ceph Storage 3.3『Release Notes』を参照してください。
これらの機能はすべて、ユーザー空間 RBD クライアントを使用してブロックデバイスイメージにアクセスするユーザーに対して機能します。
rootとして、イメージファイルをデバイスファイルにマッピングします。# rbd map image01 --pool testbench --name client.adminrootとして、ブロックデバイスにext4ファイルシステムを作成します。# mkfs.ext4 /dev/rbd/testbench/image01rootとして、新しいディレクトリーを作成します。# mkdir /mnt/ceph-block-devicerootとして、ブロックデバイスを/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
..