Ceph 分布式存储:集群配置与存储池管理

Ceph 分布式存储:集群配置与存储池管理

引言

在 Ceph 分布式存储的运维中,集群配置的精准度决定了系统的性能上限与稳定性,而存储池(Pool)的合理规划则是保障数据安全与容量利用率的基石。很多初学者在部署完 Ceph 后,往往停留在使用默认配置的阶段。但在实际生产环境中,理解配置的生效优先级、Monitor 的 Paxos 仲裁机制、PG(放置组)的映射原理以及池的底层参数调优,是每个云原生存储工程师的必修课。

本文将深入拆解 Ceph 的配置管理机制,并全面梳理存储池从创建、调优、快照到最终销毁的完整流程。


### 文章目录

  • [Ceph 分布式存储:集群配置与存储池管理](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [引言](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [@toc](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [一、Ceph 集群配置底层机制解析](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [1.1 配置来源与生效优先级](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [1.2 配置文件解析与元变量](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [1.3 集中配置数据库管理 (`ceph config` 详解)](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [1.4 运行时临时覆盖 (`ceph tell` vs `ceph daemon`)](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [二、Monitor 核心原理与安全认证](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [2.1 MON 与 Paxos 仲裁机制](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [2.2 集中配置数据库的维护与告警](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [2.3 Cephx 认证机制](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [三、网络配置与安全隔离](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [3.1 Public 网络与 Cluster 网络分离](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [3.2 IPv6 与巨型帧](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [3.3 防火墙策略](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [四、数据组织结构与底层映射算法](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [4.1 从 Object 到 OSD 的完整映射流程](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [4.2 OSD 日志与二次确认机制](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [4.3 PG 数量的规划原则](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [五、存储池的创建与状态分析](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [5.1 创建池的两种类型](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [5.2 查看池状态](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [六、存储池的高级运维与生命周期管理](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [6.1 应用类型与配额管理](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [6.2 调整副本数与 PG 数](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [6.3 池中对象与快照管理](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [6.4 命名空间 (Namespace) 隔离](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)
  • [6.5 重命名与安全删除池](#文章目录 Ceph 分布式存储:集群配置与存储池管理 引言 @[toc] 一、Ceph 集群配置底层机制解析 1.1 配置来源与生效优先级 1.2 配置文件解析与元变量 1.3 集中配置数据库管理 (ceph config 详解) 1.4 运行时临时覆盖 (ceph tell vs ceph daemon) 二、Monitor 核心原理与安全认证 2.1 MON 与 Paxos 仲裁机制 2.2 集中配置数据库的维护与告警 2.3 Cephx 认证机制 三、网络配置与安全隔离 3.1 Public 网络与 Cluster 网络分离 3.2 IPv6 与巨型帧 3.3 防火墙策略 四、数据组织结构与底层映射算法 4.1 从 Object 到 OSD 的完整映射流程 4.2 OSD 日志与二次确认机制 4.3 PG 数量的规划原则 五、存储池的创建与状态分析 5.1 创建池的两种类型 5.2 查看池状态 六、存储池的高级运维与生命周期管理 6.1 应用类型与配额管理 6.2 调整副本数与 PG 数 6.3 池中对象与快照管理 6.4 命名空间 (Namespace) 隔离 6.5 重命名与安全删除池)

一、Ceph 集群配置底层机制解析

Ceph 的配置系统非常灵活但也较为复杂,它支持从多个来源读取配置。了解配置的生效顺序,是排错与调优的第一步。

1.1 配置来源与生效优先级

Ceph 守护进程会从以下某个来源访问其配置(越新设置将覆盖较早设置):

  1. 编译中的默认值:Ceph 代码内置的默认参数。
  2. 集中配置数据库:由 MON 节点集中管理,优先级高于本地配置文件(官方推荐方式)。
  3. 本地配置文件 :即 /etc/ceph/ceph.conf,在启动时加载。
  4. 环境变量。
  5. 命令行参数。
  6. 运行时覆盖 :使用 ceph tell 或 ceph daemon 临时修改的内存配置。

⚠️ 核心原则 :Ceph 存储优先使用集中配置数据库中的配置,正在逐步弃用 ceph.conf 集群配置文件。

1.2 配置文件解析与元变量

配置文件采用 INI 格式,通过 [name] 标头定义名称,并包含多个键值对。

  • [global]:所有守护进程(包括客户端)共有的一般配置。
  • [mon]、[osd]、[mgr]、[mds]、[client]:特定类型的守护进程配置。
  • 实例设置 :格式为 [daemon-type.instance-ID]。例如 [osd.0] 仅针对 0 号 OSD 生效。

Ceph 还支持元变量来简化路径配置:

  • $cluster:集群名称(默认 ceph)。
  • $type:守护进程类型(mon, osd 等)。
  • $id:实例 ID(如 osd.0 中的 0)。
  • $name:$type.$id 的简写。
  • $host:运行守护进程的主机名。

1.3 集中配置数据库管理 (ceph config 详解)

现代 Ceph 运维几乎全部依赖 ceph config 命令来管理 MON 维护的集中配置库。

命令 作用与底层逻辑
ceph config ls 列出所有可配置项(上百个参数)。
ceph config help <key> 查看特定配置的帮助信息(默认值、是否可运行时更新等)。
ceph config dump 显示集群中被显式设置过 的配置。不显示纯默认值。
ceph config show <id> 仅显示特定守护进程被显式修改过的配置项。
ceph config show-with-defaults <id> 显示所有配置项 + 当前值(含默认值),用于深度排错或审计。
ceph config get <id> <key> 获取特定实例的特定配置值。
ceph config set <id> <key> <val> 设置配置(持久化)。修改 MON 的 KV 存储,自动推送到相关 daemon。
ceph config rm <id> <key> 清除配置,还原为默认值。
ceph config log [num] 查看配置历史记录,默认显示 10 条,类似 Git log。
ceph config reset <num> 配置回滚 。例如 ceph config reset 20,将配置回滚到历史版本 20。

1.4 运行时临时覆盖 (ceph tell vs ceph daemon)

在生产排错时,我们有时需要临时调大日志级别,但不想重启服务,这时可以使用临时覆盖。

  • ceph tell $type.$id config set <key> <val> :
    • 原理:通过网络向运行中的 daemon 发送消息。
    • 特点 :临时修改内存配置,重启后失效 。支持通配符(如 mon.*)。
  • ceph daemon $type.$id config set <key> <val> :
    • 原理 :直接通过本地 Socket (/var/run/ceph/*.asok) 与本地 daemon 通信,不需要经过 MON。
    • 特点:即使 MON 挂了也能用,临时生效,重启即丢。

💡 对比总结 :ceph config set 持久化、批量生效;ceph tell 和 ceph daemon 临时生效、仅内存级、紧急排错专用。


二、Monitor 核心原理与安全认证

2.1 MON 与 Paxos 仲裁机制

MON 负责维护集群映射(Cluster Map)。为了保证分布式一致性,MON 使用 Paxos 变体算法来选举 Leader。

  • 角色划分 :
    • Leader:第一个获得最新集群映射的 MON。
    • Provider:拥有最新映射但不是 Leader 的 MON。
    • Requester:版本落后,必须先与 Provider 同步,才能重新加入仲裁。
  • 奇偶原则 :集群必须部署奇数个 MON(确保投票能建立法定人数)。要使集群正常运行,必须有超过半数的 MON 运行。例如 3 个需活 2 个,5 个需活 3 个。

验证命令:

bash 复制代码
ceph status | grep mon              # 快速查看仲裁
ceph mon stat                       # 查看简短状态
ceph quorum_status -f json-pretty   # 查看详细 JSON 格式仲裁状态
ceph mon dump                       # 分析当前的 MON 映射(fsid, 端口, 状态)

2.2 集中配置数据库的维护与告警

MON 的数据库文件默认存放在 /var/lib/ceph/$fsid/mon.$host/store.db。随着时间推移,数据库会不断增大,影响性能。

  • 在线压缩 :ceph tell mon.<id> compact
  • 开机自压 :ceph config set mon mon_compact_on_start true
  • 容量告警 :
    • mon_data_size_warn(默认 15GB):超过此值集群转为 HEALTH_WARN。
    • mon_data_avail_warn(默认 30%):剩余容量低于此值告警。
    • mon_data_avail_crit(默认 5%):剩余容量低于此值转为 HEALTH_ERR。

2.3 Cephx 认证机制

Ceph 默认使用 cephx 协议进行身份验证,基于共享密钥加密。核心参数:

  • auth_service_required:客户端与 Ceph 服务之间(默认 cephx)。
  • auth_cluster_required:Ceph 守护进程之间(默认 cephx)。
  • auth_client_required:客户端与集群之间(默认 cephx)。

所有认证密钥(Keyring)都以纯文本形式存储(如 /etc/ceph/ceph.client.admin.keyring),必须严格限制 Linux 文件权限(建议 600)。


三、网络配置与安全隔离

3.1 Public 网络与 Cluster 网络分离

  • Public 网络:客户端读写数据、MON 与 OSD 通信的默认网络。

  • Cluster 网络:专用于 OSD 之间的复制、恢复流量。

  • 配置方法 :配置独立的 Cluster 网络可以极大减轻 Public 网络负载,提升性能。需在每个节点配置额外网卡,并在 ceph.conf 中指定:

    ini 复制代码
    [global]
    public_network = 192.168.108.0/24
    cluster_network = 192.168.109.0/24

    (注意:如果配置多个子网,子网间必须能互通路由)。

  • 绑定 IP :MON 必须绑定特定 IP,而 MGR、OSD 等可通过 ceph config set mon public_network <CIDR> 限制可部署的子网。

3.2 IPv6 与巨型帧

  • IPv6 :默认 ms_bind_ipv4=true,ms_bind_ipv6=false。若需使用 IPv6,需将 ms_bind_ipv6 设为 true,ms_bind_ipv4 设为 false。
  • 巨型帧 :在 Cluster 网络接口上配置 MTU 9000 可显著提升吞吐量。要求通信路径上的所有网络设备 MTU 必须完全一致。

3.3 防火墙策略

Ceph 的 OSD 和 MDS 默认使用 6800-7300 TCP 端口。MON 使用 6789 和 3300 端口。

bash 复制代码
# 放行 MON
firewall-cmd --zone=Public --add-port=6789/tcp --add-port=3300/tcp --permanent
# 放行 OSD
firewall-cmd --zone=<public-or-cluster> --add-port=6800-7300/tcp --permanent

四、数据组织结构与底层映射算法

4.1 从 Object 到 OSD 的完整映射流程

Ceph 是去中心化的,客户端如何知道数据存在哪?这归功于 CRUSH 算法。

  1. Pool(池):逻辑分区。
  2. PG(Placement Group):对象的集合。一个 PG 仅属于一个 Pool。
  3. Object(对象):数据的基本单位。

映射过程:

  1. Hash 计算 :客户端提供 Pool Name 和 Object ID,Ceph 对 Object ID 做 Hash,对池的 PG 总数取模:PG ID = hash(Object ID) % PG Number。
  2. CRUSH 映射:利用 CRUSH 算法根据故障域(主机、机架等)计算出该 PG 负责的 OSD 集合(Acting Set 和 Up Set)。
  3. 读写 :客户端直接联系主 OSD 进行读写。主 OSD 负责将数据同步给次要 OSD。次要 OSD 确保数据的弹性可靠。

4.2 OSD 日志与二次确认机制

  • 每个 OSD 都有独立的 OSD 日志(建议放在 SSD 上)。
  • 写流程:客户端写请求先顺序写入 OSD 日志,然后主机文件系统再合并写入后端磁盘。
  • 两次确认:数据写入所有 OSD 的缓存后,主 OSD 向客户端确认一次;数据从缓存彻底刷入磁盘后,再确认一次。这平衡了强一致性与延迟。

4.3 PG 数量的规划原则

PG 数量直接影响性能:

  • 过多:每个 PG 数据少,CPU 和内存计算开销大。
  • 过少:单 PG 数据多,故障恢复时占用巨大带宽。
  • 计算公式 :Ceph 集群 PG 总数 = (OSD 数 * 100) / 最大副本数。结果必须向上取整到 2 的 N 次幂。
  • 经验值:OSD < 5 设为 128;5-10 设为 512;10-50 设为 4096。

五、存储池的创建与状态分析

5.1 创建池的两种类型

复本池 (Replicated):通过将对象复制多份实现冗余。

bash 复制代码
# 语法:ceph osd pool create <name> <pg_num> <pgp_num> replicated
ceph osd pool create pool_web 32 32 replicated

纠删码池 (Erasure Code):通过数学计算实现冗余,节省空间。

  • 工作方式:数据分为 k 个数据块,计算 m 个校验块,共 k+m 块存入不同 OSD。有效容量百分比:k / (k+m)。
bash 复制代码
# 自定义纠删码配置 (4个数据块,2个校验块)
ceph osd erasure-code-profile set myprofile k=4 m=2 crush-failure-domain=host
ceph osd pool create pool_era 32 32 erasure myprofile

5.2 查看池状态

bash 复制代码
ceph osd pool ls             # 列出池
ceph osd pool ls detail      # 查看详细配置(副本数、PG数、应用类型)
ceph osd pool stats          # 查看读写状态和客户端
ceph df                      # 查看集群容量和池使用率

六、存储池的高级运维与生命周期管理

6.1 应用类型与配额管理

池必须绑定应用类型才能被访问:ceph osd pool application enable pool_web rbd。

可以限制池的容量和对象数(达到上限后整个池无法使用):

bash 复制代码
ceph osd pool set-quota pool_web max_bytes 10G
ceph osd pool set-quota pool_web max_objects 100000
ceph osd pool get-quota pool_web

6.2 调整副本数与 PG 数

bash 复制代码
ceph osd pool get pool_web all        # 查看所有配置
ceph osd pool set pool_web size 2     # 修改副本数为 2
ceph osd pool set pool_web pg_num 64  # 修改 PG 数量

Ceph 默认开启 PG 自动扩展 (pg_autoscale_mode)。启用 pg_autoscaler 模块后,可通过 ceph osd pool autoscale-status 查看集群推荐的 PG 数。

6.3 池中对象与快照管理

使用 rados 命令直接管理底层对象:

bash 复制代码
rados -p pool_web put hosts hosts_file   # 上传
rados -p pool_web stat hosts             # 查看对象状态
rados -p pool_web ls                     # 列出对象

# 核心排错命令:查看对象映射到了哪个 PG 和 OSD
ceph osd map pool_web hosts
# 输出解析: object 'hosts' -> pg 2.e -> up ([8,2], p8)
# 表示对象映射到 PG 2.14,主 OSD 为 8,从 OSD 为 2。

池快照机制 :

基于 COW(写时复制)技术,快照为只读,无法修改:

bash 复制代码
ceph osd pool mksnap pool_web snap1     # 创建快照
rados -p pool_web lssnap                # 查看快照
rados -p pool_web -s snap1 get hosts new_hosts # 获取快照中的对象
rados -p pool_web rollback hosts snap1  # 回滚对象到快照时刻

6.4 命名空间 (Namespace) 隔离

当集群应用过多,创建大量池会导致 PG 总数剧增(PG 是有限的),严重影响性能。命名空间允许对象在同一个池内进行逻辑分组。

bash 复制代码
rados put -p pool_web -N myns1 hostname1 /etc/hostname
rados ls -p pool_web -N myns1
rados ls -p pool_web --all             # 查看所有命名空间的对象

6.5 重命名与安全删除池

bash 复制代码
# 重命名池(不会影响数据)
ceph osd pool rename pool_web pool_apache

删除池的严格保护机制:

  1. 修改集群配置允许删除:ceph config set mon mon_allow_pool_delete true
  2. 输入两次池名并附带强确认参数:
    ceph osd pool rm pool_apache pool_apache --yes-i-really-really-mean-it
  3. 终极防呆 :生产环境强烈建议对重要池设置 nodelete 属性,防止手滑误删:
    ceph osd pool set pool_apache nodelete true
相关推荐
爬也要爬着前进2 小时前
Prometheus通过Nginx-vts-exporter模块监控nginx服务
运维·nginx·prometheus
无足鸟ICT2 小时前
【RHCA+】_etc_yum.repos.d_文件名.repo
linux·运维·centos
萧瑟余晖3 小时前
Spring Cloud分布式事务与链路追踪详解
分布式·spring·spring cloud
红姐跨境书3 小时前
Facebook账号频繁被要求验证怎么办?从登录异常到浏览器环境排查
运维·服务器
汤姆宝库3 小时前
预训练工程深拆:Scaling_Law、数据管线与分布式并行
分布式
月落汀兰4 小时前
服务器出问题没人告警?Zabbix6.0 LNMP 部署,MySQL 监控 + 邮件告警保姆级实战
运维·服务器·zabbix
运维踩坑日记4 小时前
【无标题】
linux·运维·windows
xiaoyunxuexibiji4 小时前
供应商绩效评价体系如何建立?从评价指标到自动化考核
运维·人工智能·自动化
Z21-X4 小时前
云原生运维学习笔记:从云计算概念到服务器硬件的入门之旅
运维·笔记·学习·云原生