当前位置: 首页 > news >正文

分布式存储Ceph与OpenStack、RAID的关系

分布式技术有个大家庭,具体见下图。本篇文章主要讲分布式架构里的存储系统--ceph。

一. Ceph的优势

Ceph 是一款开源的分布式存储系统,能统一提供对象存储、块存储和文件存储三种服务,广泛用于云环境和企业级存储场景。

1. Ceph的核心特性

  • 分布式架构:数据分散存储在多个节点上,无单一故障点,支持横向扩展,可轻松应对 PB 级甚至 EB 级数据。
  • 统一存储接口:一套系统同时支持对象存储(兼容 S3、Swift)、块存储(类似硬盘,供虚拟机使用)和文件存储(兼容 POSIX),减少架构复杂度。
  • 高可靠性:通过数据副本(默认 3 副本)和自动故障检测、自愈机制,确保数据不丢失,服务不中断。

2.Ceph的应用场景

  • 云平台存储:作为 OpenStack、Kubernetes 等云平台的后端存储,为虚拟机、容器提供持久化存储服务。
  • 大数据存储:为 Hadoop、Spark 等大数据框架提供高容量、高吞吐的存储支持。
  • 企业级存储:替代传统 SAN、NAS 设备,为企业提供低成本、可扩展的统一存储解决方案。

3.Ceph的架构

Monitor(监视器)

  • Ceph 集群的 “大脑”,负责维护集群的全局状态和一致性
  • 存储集群中所有组件的位置、状态、网络拓扑等关键信息,是客户端与集群交互的 “导航图”。
  • 协调集群一致性:通过 Paxos 算法实现多个 Monitor 之间的状态同步,确保集群配置(如副本数、存储池策略)在分布式环境下的一致性。
  • 管理集群元数据:如存储池(Pool)的创建 / 删除、认证授权(通过 Cephx 协议)、集群版本控制等。

OSD(对象存储守护进程)

  • Ceph 集群的 “存储节点”,直接负责数据的存储、读写、复制和故障恢复。
  • 将数据以 “对象(Object)” 形式存储在本地硬盘(每个 OSD 通常对应一块物理硬盘),处理客户端的读写请求
  • 根据存储池配置的副本策略,在不同 OSD 间同步数据,确保数据冗余
  • 故障检测与自愈:OSD 之间通过 “心跳检测” 感知彼此状态,若某 OSD 故障,存活 OSD 会自动触发数据重平衡

MDS(元数据服务器)

  • 仅用于 Ceph 文件系统(CephFS),负责管理文件系统的元数据(非实际数据)
  • 元数据管理:存储文件的目录结构、文件名、权限、修改时间等元数据(类似传统文件系统的 inode),避免客户端直接操作元数据导致的性能瓶颈。
  • 元数据缓存:将热点元数据缓存到内存,加速客户端的目录查询、文件创建等操作。

RGW(对象网关)

  • 提供兼容主流对象存储协议的接口,让应用能通过标准 API 访问 Ceph 的对象存储
  • 客户端通过 RGW 的 HTTP/HTTPS 接口发送请求,RGW 解析请求后,将对象数据转发给 OSD 存储
  • 横向扩展多个 RGW 节点,通过负载均衡器分发请求,提升并发能力

通过这些组件的协同,Ceph 实现了 “无中心架构”“强一致性”“高可扩展” 的特性,支持从 TB 级到 EB 级的存储需求。


二、Ceph与OpenStack关系

OpenStack 作为最主流的私有云方案之一,它集成了很多开源组件。比如存储组件后端就用到了ceph系统。而Ceph也因为OpenStack而“走红”。

1. Cinder 与 Ceph:块存储的 “接口与后端”

Cinder 是 OpenStack 中管理虚拟机块设备的服务,核心功能是提供块设备的创建、挂载、快照等接口,但数据的实际存储依赖后端存储系统

Ceph 与 Cinder 的直接关联体现在:

  • Ceph 通过其 RBD(RADOS Block Device 模块,作为 Cinder 的后端存储方案
  • 当用户通过 Cinder API 请求创建块设备时,Cinder 会调用 “RBD 驱动”,在 Ceph 集群中生成对应的 RBD 镜像(块设备),数据由 Ceph 以分布式副本(或纠删码)方式存储。
  • 虚拟机(Nova 实例)挂载该块设备时,实际通过 RBD 协议直接与 Ceph 交互读写数据,Cinder 仅负责权限、生命周期等逻辑管理。

2. Swift 与 Ceph:对象存储的 “替代或兼容”

Swift 是 OpenStack 原生的对象存储服务,用于存储非结构化数据(如图片、日志),提供基于 HTTP 的 REST API。

Ceph 与 Swift 的直接关联体现在:

  • Ceph 通过其 RGW(RADOS Gateway) 模块,兼容 Swift API(同时兼容 S3 API)。因此,在 OpenStack 中,Ceph RGW 可直接替代 Swift 作为对象存储后端
  • 当用户通过 OpenStack 的对象存储接口(如openstack object 命令)操作数据时,请求会被转发到 Ceph RGW,数据最终以对象形式存储在 Ceph 集群中,RGW 负责协议转换和对象管理。

总结:

Ceph RGW 可作为 Swift 的 “替代实现”,两者功能重叠(均提供对象存储),但 Ceph 凭借分布式架构更易扩展。


三. Ceph 与RAID 关系

RAID 是单节点内的本地磁盘冗余技术(如 RAID1/5/6),通过同一服务器内的多块磁盘冗余实现数据保护,解决单盘故障问题。

Ceph 是分布式冗余系统,通过跨节点的数据副本(默认 3 副本)或纠删码(EC)实现冗余,解决单节点(甚至多节点)故障问题。

两者的冗余逻辑层级不同:RAID 保护 “单节点内的磁盘”,Ceph 保护 “跨节点的集群数据”

云方案中 Ceph 不会与 RAID 搭配搭配使用

  • Ceph 的 OSD 直接使用裸盘(每块物理磁盘对应一个 OSD 进程),不做本地 RAID。
  • 数据冗余完全依赖 Ceph 自身的副本策略。如 3 副本分布在 3 个不同节点,或纠删码(如 4+2 模式,跨 6 个节点容错 2 个)。
  • 避免 “双重冗余” 浪费空间(例如 RAID5 本身消耗 1 块盘冗余,Ceph 再做 3 副本,总冗余率过高)

http://www.dtcms.com/a/519569.html

相关文章:

  • “五金件自动化上下料”革新:人形机器人如何重塑柔性制造
  • 多线程六脉神剑第二剑:监视器锁 (Monitor)
  • 飞书多维表格自动化做音视频文案提取,打造素材库工作流,1分钟学会
  • 基于主题聚类的聊天数据压缩与智能检索系统
  • 结构健康自动化监测在云端看数据变化,比人工更及时精准,优缺点分析?
  • 做夹具需要知道的几个网站服装页面设计的网站
  • 分享影视资源的网站怎么做网站字头优化
  • 照明回路配线-批量测量超实用
  • Python 条件判断机制本质
  • 关于spiderdemo第二题的奇思妙想
  • Python处理指定目录下文件分析操作体系化总结
  • k8s部署自动化工具jenkins
  • YOLOv5 目标检测算法详解(一)
  • No040:陪伴的艺术——当DeepSeek学会在时光中温柔在场
  • 6-1〔O҉S҉C҉P҉ ◈ 研记〕❘ 客户端攻击▸侦查客户端指纹
  • 苏州企业网站设计企业phpstudy如何建设网站
  • 仿站网站域名网站建设数据库实验心得
  • 怎么看电脑的主板BIOS型号
  • 广东省高校质量工程建设网站管理登陆网站开发软件
  • 压缩与缓存调优实战指南:从0到1根治性能瓶颈(一)
  • LeetCode 381: O(1) 时间插入、删除和获取随机元素 - 允许重复
  • 一次RedisOOM 排查
  • MongoDB迁移到KES实战全纪录(下):性能优化与实践总结
  • 【Java 开发日记】我们来讲一讲阻塞队列及其应用
  • 免费网站统计代码农业电商平台有哪些
  • 在长沙做网站需要多少钱手机网页禁止访问解除
  • IEEE754是什么?
  • [lc-rs] 树|建桥贪心
  • 状压DP:从入门到精通
  • Open-webui