注意
本文档适用于 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
设置。这些工具旨在为您在集群映射中输入适当的值。chef
或cephadm
)时,请在各个守护进程下指定
网络
有关配置 Ceph 网络的更多信息,请参阅网络配置参考 .
临时目录
某些操作将导致守护进程写入临时文件。这些文件根据tmp_dir
配置控制。
- tmp_dir
“tmp”目录的路径
- type:
str
- default:
/tmp
- 参见:
The $TMPDIR
环境变量用于初始化配置,如果存在,但可以在命令行上被覆盖。还可以使用通常的ceph config
API 为集群设置默认值。
守护进程创建的临时文件的模板由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时使用btrfs
和ext4
文件系统,并且不再进行测试。)
更多配置详细信息,请参阅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. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.