Ceph 介绍

This article was written by baixiaozhou on 1742281227000.

简介

Ceph 是一个开源的分布式存储系统,提供 统一的存储 接口和高可用性。它是为现代数据中心设计的,能够支持多种存储需求,包括 块存储文件存储对象存储

核心特性

  1. 统一存储平台: Ceph 能够提供 块存储(类似于传统的磁盘)、对象存储(适用于云存储)、以及 文件系统存储(通过 CephFS 提供)等多种存储接口。它支持在同一平台上同时管理多种存储形式。

  2. 去中心化架构: Ceph 不依赖任何单一的管理节点,而是通过分布式方式自动平衡数据,支持横向扩展。所有节点都可以动态加入到集群中,且系统会自动进行 数据均衡故障恢复

  3. 高可用性和容错:Ceph 的设计支持高可用性和 自动故障恢复。数据被复制到多个副本,并通过 CRUSH(Controlled Replication Under Scalable Hashing)算法 实现动态的负载均衡与数据分布。

  4. 分布式和可扩展性:Ceph 的设计允许 横向扩展,可以轻松地通过增加节点来扩展存储容量和性能。它的扩展性几乎没有上限,适合用于大规模数据中心和云平台。

  5. 高性能:Ceph 通过使用 自我修复机制数据分布算法,能够在硬件失败或节点增加的情况下提供 高性能存储

  6. 强大的管理和监控功能:Ceph 提供了 监控和管理工具,如 Ceph DashboardCeph CLI,用于集群状态检查、性能监控、日志查看和管理操作

主要组件

  1. MON(Monitor): 负责 存储集群的元数据管理, 维护集群状态的映射,包括监控器映射、管理器映射、OSD 映射、MDS 映射和 CRUSH 映射。这些映射是 Ceph 守护进程相互协调所需的关键集群状态。监视器还负责管理守护进程和客户端之间的身份验证。通常至少需要三个监视器来实现冗余和高可用性。
  2. MGR(Manager): 负责跟踪运行时指标和 Ceph 集群的当前状态,包括存储利用率、当前性能指标和系统负载。Ceph Manager 守护进程还托管基于 python 的模块,用于管理和公开 Ceph 集群信息,包括基于 Web 的 Ceph 控制面板REST API 的 API 中。高可用性通常需要至少两个 Manager。
  3. OSD(Object Storage Daemon): OSD 是存储数据的核心组件。每个 OSD 守护进程负责管理一个存储设备(磁盘)和其上存储的数据副本。OSD 是 Ceph 系统中进行数据存储和恢复的主要工作单元,处理数据复制、恢复、再平衡,并通过检查其他 Ceph OSD 守护进程的心跳信号,向 Ceph 监控器和管理器提供一些监控信息。通常需要至少三个 Ceph OSD 来实现冗余和高可用性。
  4. MDS(Metadata Server): 对于 CephFS(Ceph 文件系统),MDS 负责管理文件系统的元数据,如文件和目录的结构、权限等。它确保 CephFS 文件系统能正常运行。
  5. RGW(Ceph Object Gateway): 在应用程序和 Ceph 存储集群之间提供 RESTful 网关。 与 S3 兼容的 API 是最常用的,但 Swift 也可用。
  6. RADOS(Reliable Autonomic Distributed Object Store): Ceph 的存储后端,是一个 分布式对象存储系统。所有的存储数据都被划分为对象,分布在不同的 OSD 节点上,RADOS 确保数据的可靠性、可用性和性能。

应用场景

  1. 云存储:Ceph 被广泛应用于构建云存储平台,支持 对象存储(例如 AWS S3 API)、块存储(例如虚拟机磁盘)和 文件系统存储(例如 CephFS)。

  2. 大数据存储:Ceph 的高可扩展性和容错性使其成为处理大规模数据存储需求的理想选择,尤其适用于 大数据分析机器学习 领域。

  3. 虚拟化环境:Ceph 可以用作 虚拟机存储(如 OpenStack、KVM 或 VMware),提供高性能和高可用的块存储。

  4. 容器化和微服务:Ceph 与容器平台(如 Kubernetes)集成,提供持久化存储服务,支持容器应用的数据存储需求。

部署

Ceph 存储集群需要以下内容:至少一个 Ceph Monitor 和至少一个 Ceph Manager,以及至少与 Ceph 集群中存储的给定对象的副本一样多的OSD,(例如,如果给定对象的三个副本存储在 Ceph 集群中, 则该 Ceph 集群中必须至少存在三个 OSD)。

至于对操作系统,机器配置等要求,大家可以自行在官网上进行查阅: https://docs.ceph.com/en/reef/start/hardware-recommendations/

Ceph 提供了多种部署方式,我这里采用手动部署来完成整个部署流程。

环境准备

准备三台集群,

主机名 角色
node1 MON, MGR, OSD
node2 MON, OSD
node3 MON, OSD

系统准备:

  1. 时间同步: 确保三个节点时间一致,可以使用 ntp/chronyd
  2. ssh 免密: 管理节点 node1 需要配置免密到所有节点
  3. 关闭防火墙(也可以单独放开规则)和 selinux

安装ceph

1
yum install -y ceph ceph-common ceph-mon ceph-osd ceph-mgr ceph-mds

本站总访问量:
本站访客数: