Ceph分布式存储

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 认证、配置快照策略、多站点同步备份。

相关推荐
wniuniu_10 小时前
ceph运维
运维·javascript·ceph
zwxu_3 天前
Ceph基础原理分享
ceph·分布式存储
wniuniu_4 天前
ceph中修改镜像大小
网络·ceph
金海境科技4 天前
【服务器数据恢复】H3C华三Ceph分布式存储文件丢失数据恢复案例
服务器·经验分享·分布式·ceph
menggb074 天前
通过 S3 接口删除 Ceph RGW 对象后,ceph df 使用率不立即减少的原因详解
ceph
wniuniu_4 天前
ceph中的crush map
java·运维·ceph
wniuniu_4 天前
ceph的ceph df detail中的max avail
ceph
金海境科技5 天前
【服务器数据恢复】数据中心私有云Ceph分布式集群文件丢失数据恢复案例
服务器·经验分享·分布式·ceph
wniuniu_6 天前
ceph中librbd模式下的qemu+librbd
ceph