Ceph配置:

在ceph服务启动的时候,初始化进程就会激活一系列运行在后端的服务进程,ceph存储集群运行两个类型的进程:

  • Ceph monitor(ceph-mon)
  • Ceph osd Deamon(ceph-osd)

支持ceph filesystem的ceph集群必须要有一个ceph metadata(ceph-mds)服务进程,支持ceph object的cluster需要运行一个ceph gateway deamon进程(radosgw)。为了方便,每个进程都有一系列的默认设置值(在文件ceph/src/common/config_opts.h中),对于默认值,你可以使用ceph的配置文件来覆盖默认值。
在启动ceph cluster的时候每个进程都会去查找配置文件(ceph.conf),如果是手动安装的话,配置文件就需要自己来创建,如果是使用安装工具(ceph-deploy),则安装工具会自动创建ceph.conf文件。Ceph.conf中主要包含以下几项:

  • 集群标识
  • 认证设置
  • 集群关系
  • 主机名
  • 主机地址
  • 钥匙环路径
  • 日志路径
  • 数据路径
  • 其他的运行时选项

Ceph 的配置文件使用的是ini格式的文法,所以可以使用“#”添加注释。
配置文件可以配置ceph集群中的所有进程,为了配置一系列的进程,设置需要包含以下选项:
[global]
在该选项下的配置会影响整个集群的所有进程。
如:auth supported = cephx
[osd]
在该选项下的配置会影响集群中ceph-osd的所有进程,而且也会覆盖[global]下的相同的选项:
如:osd journal size = 1000
[mon]
在该选项下的配置会影响集群中ceph-mon的所有进程,而且也会覆盖[global]下相同的选项
如:mon addr = 10.0.0.101:6789
[mds]
在该选项下的配置会影响集群中ceph-mds的所有进程,而且也会覆盖[global]下相同的选项
如:host = myserver01
[client]
在该选项下的配置会影响集群中的所有ceph client进程。
如: log file = /var/log/ceph/radosgw.log
[global]下的设置对集群中的所有进程都是有效的,如果有特殊要求可以使用[osd],[mon],[mds]或者[osd.1]将相同的选项进行覆盖。
典型的global配置包含激活身份认证 如下:
[global]

#Enable authentication between hosts within the cluster.
v 0.54 and earlier
auth supported = cephx

#v 0.55 and after
auth cluster required = cephx
auth service required = cephx
auth client required = cephx

可以使用[osd],[mon],[mds]或者[osd.1]对特定的进程设置指定特定的配置:如下

[osd]
osd journal size = 1000

这个设置会对osd的所有守护进程有效
[osd.1]
只影响特定实例osd.1
[mon.a]
只影响特定实例mon.a
[mds.b]
只影响特定实例mds.b
如果你指定的是ceph gateway client,你要指定进程和实例,用“.”将其隔开:
[client.radosgw.instance-name]
只影响特定实例client.radosgw.intance-name
每个节点都有一个host选项设置,用于身份标识。Monitor也通过addr指定网络地址和端口号,经典的配置文件只为monitor实例指定最小的配置:

[global]
Mon_initial_members = ceph1
Mon_host = 10.0.0.1

注:host是节点的短名,也不是ip地址,除了初始化monitors,其他节点配置host选项,除非你是手动配置。如果是使用ceph-deploy部署,它会帮你做好这些。
Monitors
Monitors可以单点部署,但是这样是比较危险的,当monitors中断后没有其他的monitors来继续服务。通常情况下,是部署3各monitor节点,来保证高可用。
Ceph monitors 监听的端口是6789:

[mon.a]
Host = hostname
Mon addr = 192.168.2.123:6789

默认情况下monitors的数据会保存在下面这个目录下:

/var/lib/ceph/mon/$cluster-$id

手动或者是ceph-deploy必须要创建相应的路径,这个目录会被评估:

/var/lib/ceph/mon/cluster-a

Osds
Ceph集群典型的部署是一个节点运行一个osd 守护进程一个存储驱动。典型的默认日志大小如下:

[osd]
osd journal size = 1000
[osd.0]
Host = {hostname}#尽用于手动部署

默认情况下osd的数据会保存在下面这个路径下:

/var/lib/ceph/osd/$cluster-$id