一开始我采用的方法如下:
### Stop osd
$ service ceph stop osd.0
### Flush Journal
$ ceph-osd --flush-journal -i 0
### Create symlink to partition
$
rm
/var/lib/ceph/osd/ceph-0/journal
$
ln
-s
/dev/sda2
/var/lib/ceph/osd/ceph-0/journal
### Create new journal
$ ceph-osd --mkjournal -i 0
$ service ceph start osd.0
然后将/dev/sda2写到/etc/fstab中:
/dev/sda2
/journal
xfs rw,noexec,nodev,noatime,nodiratime,barrier=0 0 0
不重启机器是没事的,重启后报错,查看/var/log/ceph/ceph-osd.0.log:
ERROR: error creating fresh journal
/var/lib/ceph/osd/ceph-0/journal
for
object store
/var/lib/ceph/osd/ceph-0
: (2) No such
file
or directory
意思是找不到journal了。df -h后发现/dev/sda2没有被挂载。
经过测试才发现/dev/sda2在被执行ceph-osd --mkjournal -i 0后已经变成一个非块设备了,此时执行blkid是看不到/dev/sda2的。所以这种方法不行。
所以只能利用第二种方法,在ceph.conf中加入:
[osd]
osd journal =
/dev/sda2
osd journal size = 0
执行执行ceph-osd --mkjournal -i 0后一切正常。
两个多月断断续续的学习和实验了ceph,只能说刚刚入门。后面会投入更多经历研究ceph和openstack,长路漫漫。