Ceph集群配置-----2.ceph配置

1.介绍

当您启动Ceph的服务,初始化过程启动了一系列在后台运行的守护进程。 Ceph的存储集群运行两种类型的守护进程:

Ceph的监视器(CEPH-MON)
Ceph的OSD守护(CEPH-OSD)
Ceph的存储集群,支持Ceph的文件系统,它至少运行一个的Ceph元数据服务器(CEPH-MDS)。支持Ceph的对象存储的集群,运行Ceph的网关守护(radosgw)。为了您的方便,每个守护进程有一系列的默认值(即,许多是由ceph/ src/common/config_opts.hshe设置的)。您可以用CEPH配置文件重写。

2.配置文件

当您启动CEPH存储集群,每个守护进程寻找一个Ceph的配置文件(即默认情况下ceph.conf),它能给集群提供配置设置。手动部署,你需要创建一个Ceph的配置文件。有一些为您创建配置文件的工具(如ceph-deploy,Chef,etc),你可以使用此处包含的信息作为参考。 Ceph的配置文件定义:

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

 

3.配置部分

 

THE CONFIGURATION FILE

配置文件可以配置在Ceph的存储集群,所有Ceph的守护程序或特定类型的所有Ceph的守护进程。为了配置一系列的守护进程,必须包含的以下的进程设置,配置如下:

[global]

说明:在 [global] 下的设置,影响在Ceph的存储集群所有进程实例。
例如:auth supported=cephx


[ OSD ]

说明:在 [OSD] 下的设置,影响在Ceph的存储集群所有OSD的进程实例,并且重写在 [global]里面的相同配置。
例如: osd journal size = 1000

[mon]

说明:在 [mon] 下的设置,影响在Ceph的存储集群所有mon的进程实例,并且重写在 [mon]里面的相同配置。
例如:mon addr= 10.0.0.101:6789

[MDS ]

说明:在 [mds] 下的设置,影响在Ceph的存储集群所有mon的进程实例,并且重写在 [mds]里面的相同配置。
例如:host= myserver01

[client]

说明:在[Client]下的设置,影响Ceph的所有Client(例如,挂载的文件系统,挂载的块设备等) 。
例如:log file=/var/log/ceph/ radosgw.log

CONFIG SECTIONS


全局设置会影响所有守护进程在Ceph的存储集群的所有实例。在[global]设定的值是常见为Ceph的存储集群所有守护进程。您可以覆盖每个[global]设置:

在一个特定的进程类型中更改设置(例如,[ OSD] ,[MON] [ MDS] )。
在一个特定的过程更改设置(例如, [ osd.1 ] ) 。
重写全局设置会影响所有子进程,除了那些专门覆盖在一个特定的守护进程。

一个典型的全局环境设置应涉及到激活验证。例如:

[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​​,显示器或元数据守护。


一个典型的守护范围的设置,包括设置日志大小,文件存储设置,例如:

[osd]
        osd journal size = 1000
        filestore xattr use omap = true

您可以指定一个守护进程的特定实例设置。您可以通过句点(.)和实例ID分隔这种类型指定一个实例。Ceph的OSD守护进程的实例ID始终是数字,但它对于Ceph的MON和Ceph的元数据服务器(MDS)来说,可能是字母数字。

[osd.1]
        # settings affect osd.1 only.

[mon.a]
        # settings affect mon.a only.

[mds.b]
        # settings affect mds.b only.

METAVARIABLES


元变量简化Ceph的存储集群配置大幅提升。当一个metavariable被设置在一个配置值, Ceph的的metavariable扩展到一个具体的值。在您的配置文件[global ] , [ OSD ] ,[MON]或[ MDS]部分范围内,使用metavariable是非常强大的。Ceph元变量类似bash shell的扩展。


Ceph的支持元变量如下:

$cluster
说明:扩展Ceph的存储集群名。在同一硬件上运行多个Ceph的存储集群时非常有用。
例如: /etc/ceph/$cluster.keyring
默认:ceph

$type
说明:扩展到MDS ,OSD ,或MON,取决于实例、守护进程的类型。
例如:/var/lib/ceph/$type


$ ID
说明:扩展守护进程标识符。对于osd.0 ,这将是0;为mds.a ,这将是a。
例如:/var/lib/ceph/$type/$cluster-$id


$host
说明:扩展即时守护进程的主机名。

$name
说明:扩展$type.$id。
例如:/var/run/ceph/$cluster-$name.asok


COMMON SETTINGS


硬件建议部分提供一些硬件配置Ceph的存储集群指引。这是可能为一个单一的Ceph节点运行多个守护进程。例如,一个有多个驱动器或RAID的单节点可以为每个驱动器或RAID运行一个ceph-osd节点。理想情况下,你将有运行一个特定类型的实例的节点。例如,一些节点可能运行Ceph-OSD守护进程,一些节点可能运行Ceph-MDS守护,还有一些其他节点可能运行Ceph-Mon守护进程。


每个节点确定都有一个由主机设置的名称。MON还可以指定一个网络地址和端口(即域名或IP地址)确定地址设置。一个基本的配置文件,通常会指定一个守护进程的每个实例只有很少的设置。例如:

[mon.a]
        host = hostName
        mon addr = 150.140.130.120:6789

[osd.0]
        host = hostName

注意:主机设置为节点(即不是FQDN)的短名称。它不是一个IP地址。在命令行中输入hostname -s,检索的节点名称。另外,这个设置是只mkcephfs和手动部署。它不能被用来ceph-deploy或chef,这些工具你只需要输入相应的值即可。


MONITORS


Ceph的生产集群通常最低3 Ceph-MON守护部署,以确保高可用性,防止MON实例崩溃。 至少有三个MON确保Paxos算法可以决定哪个版本的CEPH集群映射是最近从大部分MON中来的,在合法的数量下。


注意:您可能部署Ceph用一个Ceph-MON,但如果这个实例失败,又没有其他的MONS,可能会中断数据服务的可用性。
Ceph的显示器通常监听端口6789上。例如:

[mon.a]
        host = hostName
        mon addr = 150.140.130.120:6789

默认情况下, Ceph的期望,你存储的MON数据存储在以下路径:
/var/lib/ceph/mon/$cluster-$id

AUTHENTICATION


对于CEPH(V 0.56 )和或以上版本,你应该明确地启用或禁用身份验证,在Ceph的配置文件中的[global]段。
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
注意:重要升级时,我们明确建议先禁用身份验证,然后进行升级。一旦升级完成后,重新启用身份验证。

OSDS¶

Ceph的生产集群通常部署:长期:Ceph的OSD守护一个节点都有一个OSD守护进程,它在一个存储驱动器运行文件。一个典型的部署指定日志大小和文件存储的扩展属性(XATTRs)是否使用对象映射(当在ext4文件系统上运行时)。例如:

[osd]
        osd journal size = 10000
        filestore xattr use omap = true #enables the object map. Only if running ext4.

[osd.0]
        host = {hostname}

默认情况下, Ceph的期望,你将一个Ceph的OSD守护进程的数据存储在以下路径:

/var/lib/ceph/osd/$cluster-$id
您或者使用部署工具(如,ceph-deploy),先建立相应的目录。然后使用元变量,命名一个“ceph”集群,如下:
/var/lib/ceph/osd/ceph-0

使用OSD数据设置,你可以重写此路径。我们不建议更改默认的位置。创建您的OSD主机上的默认目录。
ssh {osd-host}
sudo mkdir /var/lib/ceph/osd/ceph-{osd-number}
OSD数据路径的理想挂载点是一块独立的硬盘,该硬盘和存储和运行操作系统和守护进程的硬盘是分开的。如果OSD磁盘不是操作系统磁盘,准备把它为Ceph的使用,将其安装到刚才创建的目录:
ssh {new-osd-host}
sudo mkfs -t {fstype} /dev/{disk}
sudo mount -o user_xattr /dev/{hdd} /var/lib/ceph/osd/ceph-{osd-number}

我们推荐使用XFS文件系统btrfs文件系统时,运行命令: mkfs。



EXAMPLE CEPH.CONF

[global]
	# For version 0.54 and earlier, you may enable
	# authentication with the following setting.
	# Specifying `cephx` enables authentication;
	# and specifying `none` disables authentication.

	#auth supported = cephx
	
	# For version 0.55 and beyond, you must explicitly enable 
	# or disable authentication with "auth" entries in [global].
	
	auth cluster required = cephx
	auth service required = cephx
	auth client required = cephx	


[osd]
	osd journal size = 1000
	# uncomment the following line if you are mounting with ext4
	# filestore xattr use omap = true


	# For Bobtail (v 0.56) and subsequent versions, you may 
	# add settings for mkcephfs so that it will create and mount
	# the file system for you. Remove the comment `#` character for 
	# the following settings and replace the values in parenthesis 
	# with appropriate values, or leave the following settings commented 
	# out to accept the default values. You must specify the --mkfs 
	# option with mkcephfs in order for the deployment script to 
	# utilize the following settings, and you must define the 'devs'
	# option for each osd instance; see below.

	#osd mkfs type = {fs-type}
	#osd mkfs options {fs-type} = {mkfs options}   # default for xfs is "-f"
	#osd mount options {fs-type} = {mount options} # default mount option is "rw, noatime"

[mon.a]
	host = myserver01
	mon addr = 10.0.0.101:6789

[mon.b]
	host = myserver02
	mon addr = 10.0.0.102:6789

[mon.c]
	host = myserver03
	mon addr = 10.0.0.103:6789

[osd.0]
	host = myserver01
	#devs = {path-to-device}

[osd.1]
	host = myserver02
	#devs = {path-to-device}

[osd.2]
	host = myserver03
	#devs = {path-to-device}

[mds.a]
	host = myserver01
	#devs = {path-to-device}

RUNTIME CHANGES

Ceph可以在运行是修改CEPH-OSD,CEPH-MON,或CEPH-MDS守护进程。此功能增加/减少日志输出,启用/禁用调试设置是非常有用的,甚至是运行优化。下面反映使用运行时配置:

ceph {daemon-type} tell {id or *} injectargs '--{name} {value} [--{name} {value}]'
替换 {deamon-type} 为 OSD,MON或MDS。可以申请*特定类型的所有守护进程运行时设置,或指定一个特定的守护进程的ID(即,它的数字或字母)。例如,增加一个CEPH-OSD名为osd.0的守护进程的调试日志记录,请执行以下命令:
ceph osd tell 0 injectargs '--debug-osd 20 --debug-ms 1'

在您的ceph.conf文件,你可以使用空格时指定设置名称。在命令行上指定设置的名称时,请确保您使用下划线或连字符(_或 - )连接(例如,debug OSD变得debug+OSD)。


VIEWING A CONFIGURATION AT RUNTIME

如果您的Ceph的存储集群正在运行,你希望看到一个正在运行的守护进程的配置设置,执行以下命令:
ceph --admin-daemon {/path/to/admin/socket} config show | less
admin socket,每个守护进程的默认路径是:
/var/run/ceph/$cluster-$name.asok

在实际中,元变量将被联系到一个实际的群集名称和守护程序的名称。例如,如果群集名称为ceph(这是默认设置),你要检索的配置osd.0,使用以下命令:

ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok config show | less


用CEPH,你可以在同一硬件上运行多个Ceph的存储集群。运行多个集群,与用不同CRUSH规则集的同一个群集上使用不同的存储池相比,提供了更高级别的隔离。一个单独的集群,将有独立的MON,OSD和元数据服务器进程。当运行Ceph时使用默认设置,默认群集名称是ceph,这意味着你将保存您的Ceph的配置文件在/ etc /ceph默认目录中的文件名ceph.conf 。

当你运行多个集群,你必须说出你的集群,并用集群的名称保存Ceph的配置文件。例如,一个名为OpenStack的集群将有一个Ceph的配置文件在/ etc /ceph默认目录的文件名openstack.conf 。

Important

 

Cluster names must consist of letters a-z and digits 0-9 only.

独立的集群意味着独立数据磁盘和日志之间不能共享集群。元变量, $集群metavariable的计算群集名称(即在上述的例子中, OpenStack的) 。各种设置使用自个的集群metavariable ,包括:

  • keyring
  • admin socket
  • log file
  • pid file
  • mon data
  • mon cluster log file
  • osd data
  • osd journal
  • mds data
  • rgw data

创建默认的目录或文件时,你应该使用群集名称路径中的适当位置。例如:

sudo mkdir /var/lib/ceph/osd/openstack-0
sudo mkdir /var/lib/ceph/mon/openstack-a
注意:当运行在同一主机上的MON,你应该使用不同的端口。默认情况下,MON使用端口6789 。如果您已经有使用端口6789的MON,请使用不同的端口为您的其他集群。
要调用一个集群,而不是默认的ceph集群,使用了 -c   {filename}.conf  这个为ceph命令。

ceph -c {cluster-name}.conf health
ceph -c openstack.conf health





你可能感兴趣的:(分布式文件系统Ceph)