Ceph.config是比较重要的,mon要通过他来连接各个osd所以一定要配置正确,很多功能也需要在这里设置。由于先在测试安装,所以就选择了最简单的配置。fetch_config:在这个文件里面,我们使用scp的方法,除此还可以使用nfs把ceph.conf文件共享,总之目的就是将在整个集群里面使用同一份ceph.conf。安装完了之后,会在/etc/local/etc/下产生ceph文件夹,把这两个配置文件放在这里。
4.3 /etc/init.d/ceph 脚本
该脚本在编译ceph的时候,会在src/里生成一个init-ceph文件,由init-ceph.in模板来生成
如果需要开机自动启动ceph集群的话,将该脚本复制到/etc/init.d/目录下,并使用chkconfig命令来添加该服务.
这个服务应该只需要在monitor端上安装即可.
4.4创建文件系统,在monitor端执行
$ mkcephfs -c /etc/local/etc/ceph/ceph.conf --allhosts --mkbtrfs -k keyring.bin
它会根据ceph.conf里面的配置自动的去各个节点上进行相应的配置. 这里要说一下的是keyring.bin文件,他一开始不存在,其实默认配置下并不需要,可以在src目录下运行./vstart.sh -n -x会自动产生。
4.5 启动ceph文件系统
在mon执行
$/etc/init.d/ceph –a start
5.客户端,挂在系统
$ mkdir /mnt/ceph
$ mount –t ceph 192.168.178.160:/ /mnt/ceph
$df –h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_client-lv_root
18G 9.0G 8.3G 53% /
/dev/sda1 485M 51M 409M 12% /boot
192.168.178.160:/ 9.3G 5.0M 9.3G 1% /mnt/ceph
很多问题会导致出在mount时,无法挂载成功。
1) mount error 5 = Input/output error,这个问题很可能是因为在虚拟机上安装时host OS的防火墙导致的。
2) can’t read superblock,出现这个问题原因很多,可能是osd和mon的防火墙没关,也可能端口配置文档里修改。还有就是一旦配置文档发生改变的话,最好mkcephfs重新执行一遍,因为这个命令会生成一些文件还是对应着原先的配置文件。
3) 有问题实在解决不了,还是去ceph的mail-list问,只要你把问题描述清楚。作者还是很热心的。