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 rbd
root
として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-map
rbd create
コマンドで--image-feature layering
オプションを使用すると 、新規に作成されるブロックデバイスイメージのlayering
のみが有効になります。詳細は Red Hat Ceph Storage 3.3『Release Notes』を参照してください。
これらの機能はすべて、ユーザー空間 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 ..