Ceph 基础认知(第 1 章)
核心定义:Ceph 是开源、分布式、软件定义存储,支持对象、块、文件系统三种存储模式,具备高可用、高扩展、去中心化特性,基于 RADOS(可靠自主分布式对象存储)核心架构。
核心组件:
MON(监控器):维护集群状态映射,需奇数个节点保障仲裁,端口 6789/3300。
OSD(对象存储设备):存储数据,处理复制、恢复、重平衡,每个 OSD 对应一块存储设备,端口 6800-7300。
MGR(管理器):集群监控、统计,提供 Dashboard(端口 8443),建议部署 2 个保障高可用。
MDS(元数据服务器):仅用于 CephFS,管理文件元数据,支持 POSIX 接口。
版本与生态:
社区版(LTS 版本):Reef(18.2)、Squid(19.2)等,支持 2 年生命周期;企业版(红帽 RHCS)提供 36 个月支持。
兼容生态:OpenStack、Kubernetes、Linux 内核、SUSE 等。
集群部署(第 2 章)
部署方式:
推荐:Cephadm(容器化部署,支持 Octopus+ 版本)、Rook(K8s 部署,支持 Nautilus+ 版本)。
其他:ceph-ansible(Ansible 部署)、手动部署(不推荐 ceph-deploy,已停止维护)。
最小硬件规格:
OSD:1 核 CPU、4GB 内存、整块硬盘 + 1 个 SSD 分区、10G 网络。
MON:2 核 CPU、2-4GB 内存、60GB 磁盘、1G+ 网络。
MDS:2 核 CPU、2GB 内存、1GB 磁盘、1G+ 网络。
部署流程(Cephadm 为例):
准备 CentOS Stream 8 虚拟机,配置静态 IP、关闭 SELinux / 防火墙、时间同步。
安装 Cephadm,引导集群(cephadm bootstrap --mon-ip [IP])。
添加节点(免密 SSH 授权 + ceph orch host add)。
部署 OSD(ceph orch apply osd --all-available-devices)、MON、MGR 组件。
集群配置(第 3 章)
配置优先级:命令行参数 > 环境变量 > 本地配置文件 > 集中配置数据库 > 编译默认值。
核心配置操作:
配置文件:默认 /etc/ceph/ceph.conf,支持 [global]「mon」「osd」等分区。
集中配置数据库:由 MON 管理,通过 ceph config set/get/dump 命令操作,支持运行时修改。
网络配置:public 网络(客户端与集群通信)、cluster 网络(OSD 数据同步),支持 IPv4/IPv6,建议配置独立集群网络分流流量。
池管理(第 4 章)
池与 PG 核心概念:
池(Pool):集群逻辑分区,分复本池(replicated)和纠删码池(erasure),复本池侧重性能,纠删码池侧重存储效率(如 4+2 模式仅需 1.5 倍存储空间)。
PG(放置组):对象与 OSD 之间的抽象层,通过 CRUSH 算法映射,数量需按 OSD 数量配置(OSD<5 设 128,5-10 设 512,10-50 设 4096)。
核心操作命令:
创建池:ceph osd pool create [池名] [PG数] [PGP数] [类型]。
池配置:ceph osd pool set [池名] [参数] [值](如修改复本数 size 3)。
对象管理:rados put/get/rm(上传 / 下载 / 删除对象)、快照(ceph osd pool mksnap)。
删除池:需先开启 mon_allow_pool_delete=true,命令 ceph osd pool rm [池名] [池名] --yes-i-really-really-mean-it。
认证与授权(第 5 章)
认证机制:基于 Cephx 协议,通过共享密钥加密通信,支持守护进程间、客户端与集群间认证。
用户与权限:
用户类型:守护进程用户(如 osd.0、mon.ceph1)、客户端用户(前缀 client.,如 client.admin)。
权限(Caps):按组件授权(mon/osd/mgr/mds),支持 allow r(读)、allow w(写)、allow *(全权限)。
核心命令:ceph auth add/get/rm(创建 / 查询 / 删除用户)、ceph auth caps(配置权限)。
块存储管理(第 6 章)
RBD(RADOS 块设备):提供虚拟块设备,支持快照、克隆、镜像同步,适用于虚拟机(KVM/QEMU)、OpenStack 云实例。
核心操作:
创建镜像:rbd create [池名]/[镜像名] --size [大小]。
映射与挂载:rbd map [池名]/[镜像名] → 格式化(mkfs.xfs)→ 挂载(mount)。
快照与克隆:rbd snap create(创建快照)→ rbd snap protect(保护快照)→ rbd clone(克隆镜像)。
多站点同步(RBD Mirror):支持单向 / 双向镜像,基于日志或快照复制,保障灾难恢复。
对象存储管理(第 7 章)
RADOS Gateway(RGW):提供 S3/Swift 兼容 API,支持对象存储,适用于海量非结构化数据(视频、日志、备份)。
核心配置:
部署 RGW:ceph orch apply rgw [服务名] --placement [节点] --port [端口]。
用户管理:radosgw-admin user create(创建 S3/Swift 用户)、配额配置(radosgw-admin quota set)。
桶操作(S3 示例):aws s3 mb(创建桶)、aws s3 cp(上传 / 下载对象)、aws s3 rb(删除桶)。
多站点同步:基于 Realm(域)、Zone Group(区域组)、Zone(区域)架构,支持跨集群数据复制。
文件系统存储管理(第 8 章)
CephFS:兼容 POSIX 的分布式文件系统,需 MDS 组件,适用于共享存储、容器持久化等场景。
核心操作:
创建文件系统:ceph fs new [名称] [元数据池] [数据池] → 部署 MDS(ceph orch apply mds [名称] --placement [节点])。
挂载方式:Kernel 挂载(mount.ceph [MON IP]😕 [挂载点] -o name=[用户])、FUSE 挂载(ceph-fuse -n [用户] [挂载点])。
快照与镜像:mkdir [挂载点]/.snap/[快照名](创建快照)、CephFS Mirror(跨集群文件系统同步)。
核心总结
Ceph 核心优势
统一存储:支持对象、块、文件系统三种模式,适配多场景需求。
高可用:去中心化架构,无单点故障,OSD 故障自动恢复,MON 集群仲裁保障。
高扩展:横向扩展 OSD 节点,支持 EB 级存储容量。
兼容性强:适配云平台(OpenStack/K8s)、虚拟化、传统应用,支持 S3/Swift/POSIX 接口。
适用场景
块存储:虚拟机磁盘、数据库存储(MySQL/PostgreSQL)。
对象存储:海量数据备份、视频 / 图片存储、大数据分析数据源。
文件系统:共享存储(NFS 替代)、容器持久化存储、HPC 集群存储。
关键运维要点
集群健康检查:ceph -s(查看状态)、ceph health(健康状态)。
组件管理:ceph orch ls/ps/restart(服务部署 / 状态 / 重启)。
性能优化:OSD 日志用 SSD、配置独立 cluster 网络、调整 PG 数量。
数据安全:启用 Cephx 认证、配置快照策略、多站点同步备份。