注意

本文档适用于 Ceph 开发版本。

常见设置

The 硬件推荐本节提供了一些硬件指南,用于配置 Ceph 存储集群。一个 Ceph 节点可以运行多个守护进程。例如,一个具有多个驱动器的单个节点通常会为每个驱动器运行一个Ceph 节点可以运行多个守护进程。例如,一个具有多个驱动器的单个节点通常会为每个驱动器运行一个ceph-osd守护进程。理想情况下,每个节点将被分配给特定类型的进程。例如,一些节点可能运行ceph-osd守护进程,其他节点可能运行ceph-mds守护进程,还有其他节点可能运行ceph-mon daemons.

每个节点都有一个名称。节点的名称可以在其host设置中找到。监视器还指定了一个网络地址和端口(即,域名或 IP 地址),可以在addr设置中找到。基本的配置文件通常只为每个监视器守护进程实例指定最小的设置。例如:

[global]
mon_initial_members = ceph1
mon_host = 10.0.0.1

重要

The host设置的值是节点的简称。它不是一个 FQDN。它是一个不好的主意。IP 地址。要在命令行上获取节点的名称,请输入hostname -s。除非您手动部署 Ceph,否则请不要使用host设置进行任何初始监视器设置。不要在使用部署工具(如host设置。这些工具旨在为您在集群映射中输入适当的值。chefcephadm)时,请在各个守护进程下指定

网络

有关配置 Ceph 网络的更多信息,请参阅网络配置参考 .

临时目录

某些操作将导致守护进程写入临时文件。这些文件根据tmp_dir配置控制。

tmp_dir

“tmp”目录的路径

type:

str

default:

/tmp

参见:

admin_socket

The $TMPDIR环境变量用于初始化配置,如果存在,但可以在命令行上被覆盖。还可以使用通常的ceph configAPI 为集群设置默认值。

守护进程创建的临时文件的模板由tmp_file_template配置控制。

tmp_file_template

临时文件的模板文件名前缀。例如,临时文件可能通过使用ceph tell命令和

type:

str

守护进程创建临时文件的一个示例是使用--daemon-output-file=:tmp:参数调用ceph tell command.

Monitors

Ceph 监视器守护进程,以确保在监视器实例崩溃时保持可用性。至少三个Ceph监控器守护进程确保 Paxos 算法能够确定Ceph 集群映射是最新的版本。它通过咨询多数 Ceph 监视器在仲裁中做出此决定。

Note

您可以使用单个监视器部署 Ceph,但如果实例失败,其他监视器的缺失可能会中断数据服务的可用性。

Ceph 监视器通常监听端口3300用于新的 v2 协议,并监听端口6789用于旧的 v1 协议。

默认情况下,Ceph 期望将监视器数据存储在以下路径:

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

您或部署工具(例如,cephadm)必须创建相应的目录。使用完全表达的变量名,并假设集群名称为“ceph”,则上述示例中指定的路径计算为:

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

更多详细信息,请参阅监视器配置参考.

身份验证

新版本 Bobtail:0.56

身份验证在 Ceph 配置文件的[global]部分明确启用或禁用,如下所示:

auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

此外,您应该启用消息签名。详细信息,请参阅Cephx 配置参考.

OSDs

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

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

您或部署工具(例如,cephadm)必须创建相应的目录。使用完全表达的变量名,并假设集群名称为“ceph”,则上述示例中指定的路径计算为:

/var/lib/ceph/osd/ceph-0

您可以使用osd_data设置覆盖此路径。我们建议您不要更改默认位置。要在您的 OSD 主机上创建默认目录,请运行以下命令:

ssh {osd-host}
sudo mkdir /var/lib/ceph/osd/ceph-{osd-number}

The osd_data路径必须指向一个与操作系统共享的设备。要使用除包含操作系统和守护进程的设备之外的设备,请使用 Ceph 准备好它,并通过运行以下形式的命令将其挂载到您刚刚创建的目录:

ssh {new-osd-host}
sudo mkfs -t {fstype} /dev/{disk}
sudo mount -o user_xattr /dev/{disk} /var/lib/ceph/osd/ceph-{osd-number}

我们建议在运行xfs文件系统。(不推荐使用mkfs时使用btrfsext4文件系统,并且不再进行测试。)

更多配置详细信息,请参阅OSD 配置参考.

心跳

在运行时操作中,Ceph OSD 守护进程会检查其他 Ceph OSD 守护进程,并将它们的发现报告给 Ceph 监视器。此过程不需要您提供任何设置。但是,如果您有网络延迟问题,您可能希望修改默认设置。

更多详细信息,请参阅配置监控器/OSD交互.

日志 / 调试

您有时可能会遇到需要使用 Ceph 的日志记录和调试功能的问题。有关日志轮转的详细信息,请参阅调试和日志记录.

ceph.conf 示例

[global]
fsid = {cluster-id}
mon_initial_members = {hostname}[, {hostname}]
mon_host = {ip-address}[, {ip-address}]

#All clusters have a front-side public network.
#If you have two network interfaces, you can configure a private / cluster 
#network for RADOS object replication, heartbeats, backfill,
#recovery, etc.
public_network = {network}[, {network}]
#cluster_network = {network}[, {network}] 

#Clusters require authentication by default.
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

#Choose reasonable number of replicas and placement groups.
osd_journal_size = {n}
osd_pool_default_size = {n}  # Write an object n times.
osd_pool_default_min_size = {n} # Allow writing n copies in a degraded state.
osd_pool_default_pg_autoscale_mode = {mode} # on, off, or warn
# Only used if autoscaling is off or warn:
osd_pool_default_pg_num = {n}

#Choose a reasonable crush leaf type.
#0 for a 1-node cluster.
#1 for a multi node cluster in a single rack
#2 for a multi node, multi chassis cluster with multiple hosts in a chassis
#3 for a multi node cluster with hosts across racks, etc.
osd_crush_chooseleaf_type = {n}

命名集群(已弃用)

每个 Ceph 集群都有一个内部名称。此内部名称用作配置的一部分,也用作“日志文件”名称的一部分,以及用作目录名称的一部分,还用作挂载点名称的一部分。此名称默认为“ceph”。Ceph 的先前版本允许您指定自定义名称,例如“ceph2”。此选项旨在促进在同一物理硬件上运行多个逻辑集群,但在实践中很少被利用。不应再尝试使用自定义集群名称。旧文档可能会让读者错误地认为需要唯一的集群名称才能使用rbd-mirror。实际上并非如此。

自定义集群名称现在被视为已弃用,并且一些工具已经从其中移除了部署它们的能力,尽管现有的自定义名称部署仍然在运行。未来 Ceph 版本可能会逐步移除运行和管理具有自定义名称的集群的能力,因此强烈建议所有新集群都使用默认名称“ceph”.

一些 Ceph CLI 命令接受一个--cluster(集群名称)选项。此选项仅出于向后兼容的目的而存在。新工具和部署不能依赖于此选项来适应。

如果您需要允许多个集群存在于同一主机上,请使用Cephadm,它使用容器来完全隔离每个集群。

由 Ceph 基金会带给您

Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.