長かった…
基本的には、wikiを参照。こいつの不正確な情報のせいで苦労したけど
コンフィグ
テスト用のコンフィグはこんな感じ。ceph1-3全てでMon, MDS, OSDを起動する。RBDだとMDSはいらないかも。
[global]
debug ms = 0
[mon]
mon data = /data/mon$id
debug ms = 0
[mon0]
host = ceph1
mon addr = 192.168.101.41:6789
[mon1]
host = ceph2
mon addr = 192.168.101.42:6789
[mon2]
host = ceph3
mon addr = 192.168.101.43:6789
[mds]
debug mds = 0
[mds0]
host = ceph1
[mds1]
host = ceph2
[mds2]
host = ceph3
[osd]
sudo = true
osd data = /data/osd$id
osd journal = /data/osd$id/journal
osd journal size = 100
debug osd = 0
debug filestore = 0
osd class tmp = /var/lib/ceph/tmp
[osd0]
host = ceph1
btrfs devs = /dev/vdb
[osd1]
host = ceph2
btrfs devs = /dev/vdb
[osd2]
host = ceph3
btrfs devs = /dev/vdb
事前準備
gitでソースを持ってきてmakeした場合、/var/lib/ceph(/tmp)が存在しないので、予めceph1-3全てで作っておく。あるいは、osd class tmp = "..." で共通して存在するディレクトリを指定しても良い。
# mkdir -p /var/lib/ceph/tmp
RBDの準備作業
ここのコマンドは全てceph1(cephノード上)で実行。
まずはcephのコマンドを使ってOSDを初期化する。
# mkcephfs -c /usr/local/etc/ceph/ceph.conf --allhosts --mkbtrfs
んで起動。"--allhosts"を付けているので、勝手に全マシンで必要なデーモンが起動する。
# /etc/init.d/ceph -c /usr/local/etc/ceph/ceph.conf --allhosts start
次に、cephにrbdクラスをロードする。
# cclass -a Loading class: /usr/local/lib/rados-classes/libcls_rbd.so.1.0.0: rbd 1.2 x86-64 read 304122 bytes from /usr/local/lib/rados-classes/libcls_rbd.so.1.0.0 10.10.01_15:37:11.288453 mon <- [class,add,rbd,1.2,x86-64,changed] 10.10.01_15:37:12.567040 mon1 -> 'updated' (0)
んで有効化。
# ceph class activate rbd 1.2 10.10.01_15:37:19.698959 mon <- [class,activate,rbd,1.2] 10.10.01_15:37:20.780942 mon1 -> 'updated' (0)
radosのプールを表示してみる。
# rados lspools data metadata casdata rbd
rbdを使う側の作業
ここからはrados/rbdを利用する側のマシンで。事前にwikiを見てパッチ適用版のqemu-kvm環境を作っておく。
で、実際にqemuで使えるイメージを作る。
# /usr/local/bin/qemu-img create -f rbd rbd:data/kvmtest 8G Formatting 'rbd:data/kvmtest', fmt=rbd size=8589934592 cluster_size=0
あとはqemuへのオプションでこのrbdを指定して、いつも通りqemu-kvmを起動すればよい。
自分の環境では、次のようなオプションでFedora13のインストールに成功した。
#!/bin/bash QEMU="/usr/local/bin/qemu-system-x86_64" MEM=2048 $QEMU -boot d \ -drive format=rbd,file=rbd:data/kvmtest \ -cdrom "/root/vm/osimg/Fedora-13-x86_64-DVD.iso" \ -m $MEM \ -k ja \ -usb \ -usbdevice tablet \ -localtime
んで、ざっと性能テスト。といっても、cephノードがどれもVMで動いているからアテになりません。誰か実機で試してくれないかなぁ。id:syuu1228とか[twitter:@syuu1228]とか。
・書き込み # dd if=/dev/zero of=/out.dat bs=1M count=2048 2147483648 bytes (2.1 GB) copied, 464.509 s, 4.6MB/s ・読み出し # dd if=/out.dat of=/dev/null bs=1M count=1024 1073741824 bytes (1.1 GB) copied, 96.7442 s, 11.1 MB/s
…ですよねー('A`)