Ceph的设置

Ceph的设置

一个Ceph集群至少运行两类进程:

  • Ceph Monitor(ceph-mon)
  • Ceph OSD Daemon(ceph-osd)

如果需要支持Ceph Filesystem则至少要运行一个Ceph Metadata Server(ceph-mds). 支持Ceph对象存储的集群需要运行Ceph Gateway进程(radosgw)

所有的守护进程都有一系列的默认值, 这部分是在ceph/src/common/config_opts.h中定义的, 可以通过配置文件来覆盖这些设置值

每个进程启动时, 默认从ceph.conf获取集群配置的设置. 以下是ceph.conf中涉及的配置:

    Cluster Identity
    Authentication settings
    Cluster membership
    Host names
    Host addresses
    Paths to keyrings
    Paths to journals
    Paths to data
    Other runtime options

1. 读取顺序

Ceph相关进程在读取配置时, 遵循以下的查找顺序

  1. $CEPH_CONF环境变量所指定的配置
  2. -c path/path 参数所指定的配置
  3. /etc/ceph/ceph.conf
  4. ~/.ceph/config (HOME目录下.ceph目录的config文件)
  5. ./ceph.conf (当前目录下的ceph.conf)

2. 语法格式

Ceph配置文件使用INI语法, 使用#或;来注释, 例如

# 这是注释.
; 这也是注释
# 注释以#或;开始
# 注释所在每行的结尾也是注释的结束
# 建议在配置文件中加入相关的注释

3. 配置段

[global]
说明: 全局配置, 影响集群中的所有Ceph进程
样例: auth supported = cephx

[osd]
说明: osd相关配置, 对所有OSD生效, 会覆盖global相关的配置
样例: osd journal size = 1000

[mon]
说明: mon相关配置, 对所有MON生效, 会覆盖global相关的配置
样例: mon addr = 10.0.0.101:6789

[mds]
说明: mds相关配置, 对所有mds生效, 会覆盖global相关的配置
样例: host = myserver01

[client]
说明: ceph client相关配置 (例如, 挂载 Ceph Filesystems, 挂载 Ceph Block Devices, 等等.).
样例: log file = /var/log/ceph/radosgw.log

3.1 global设置

Global设置会影响集群中的所有Ceph实例. 全局化的配置建议放在Global配置段中, 对所有daemon生效, 同时你还可以在[osd],[mon],[mds]等配置段中覆盖对应的设置, 或在特定daemon的配置段如[osd.1]中来覆盖对应的配置. 在[osd],[mon],[mds]中覆盖对应的global设置, 将影响相关类型的所有Ceph daemon, 如果你只需要对某个daemon生效, 需要在特定daemon的配置段中设置

一个典型的全局设置如打开身份验证:

[global]
#在集群中的host之前打开认证
#v 0.54 或更早的版本
auth supported = cephx

#v 0.55 和 0.55之后的版本
auth cluster required = cephx
auth service required = cephx
auth client required = cephx

3.2 各类型daemon的设置

[osd]
# 针对所有osd的设置

[mon]
#针对所有mon的设置

[mds]
#针对所有mds的设置

3.3 指定daemon的设置

[osd.1]
# 针对osd.1实例的设置

[mon.a]
# 针对mon.a实例的设置

[mds.b]
# 针对mds.b实例的设置

如果你需要对Ceph Gateway某个client进行设置, 需要指定daemon类型和实例名, 使用.号分隔, 如下:

[client.radosgw.instance-name]
# 针对 radosgw某个实例的配置

元变量

使用元变量可以简化Ceph集群配置文件, Ceph会对应替换对应的变量值, Ceph元变量有点类似bash的变量, 以下是Ceph支持的变量名

变量名说明用法例子默认值
$cluster Ceph集群名,在同个硬件集群中运行多个Ceph集群时比较有用 /etc/ceph/$cluster.keyring ceph
$type 实例的类型(如mon,mds,osd) /var/lib/ceph/$type  
$id 实例的标记符, 如osd.0则为0, mds.a则为a /var/lib/ceph/$type/$cluster-$id  
$host 实例所在的host的hostname    
$name 等于type.id /var/run/ceph/$cluster-$name.asok  
posted @ 2018-11-02 10:23  李尚衍  阅读(835)  评论(0编辑  收藏  举报