Ceph 简介
Ceph 是一个开源的分布式存储系统,旨在提供高性能、高可用性和高可扩展性的存储解决方案。Ceph 可以在统一的平台上同时支持对象存储、块存储和文件系统存储。
Ceph 的核心概念
Ceph 存储集群
Ceph 存储集群由多个存储节点组成,这些节点通过网络连接,形成一个高可用和可扩展的存储系统。集群中的数据通过分布式算法进行存储和管理。
OSD (Object Storage Daemon)
OSD 是 Ceph 存储节点的核心组件,每个 OSD 守护进程管理一个存储设备。OSD 负责存储数据、处理数据复制、恢复、回填和重平衡等操作。
MON (Monitor)
Monitor 节点负责集群的状态管理,包括维护集群的拓扑结构、节点状态、数据的主副本位置等。MON 提供一致性和高可用的元数据服务。
MDS (Metadata Server)
MDS 负责管理 Ceph 文件系统的元数据,包括目录结构、文件权限等。MDS 使得 Ceph 文件系统能够高效地处理文件操作请求。
CRUSH (Controlled Replication Under Scalable Hashing)
CRUSH 是 Ceph 的数据分布算法,用于决定数据在集群中的存储位置。CRUSH 算法根据配置规则和集群拓扑,确保数据 的高可用性和负载均衡。
Ceph 的特点
- 高可用性: 通过多副本和自我修复机制,Ceph 确保数据的高可用性和可靠性。
- 高性能: 采用分布式架构和 CRUSH 算法,提供高效的数据读写性能。
- 高扩展性: 支持从几台节点到数千台节点的线性扩展,满足不同规模的存储需求。
- 统一存储: 在同一个集群中支持对象存储、块存储和文件系统存储,提供多样化的存储服务。
Ceph 的使用场景
- 云存储: 提供高可用、高性能和可扩展的存储服务,支持云计算平台的存储需求。
- 大数据分析: 通过高吞吐量和低延迟的存储能力,支持大数据分析和处理。
- 备份和恢复: 提供可靠的数据存储和快速的恢复能力,适用于企业数据备份和灾难恢复。
- 容器存储: 与容器编排平台(如 Kubernetes)集成,提供持久存储解决方案。
常用 Ceph 命令
集群管理
# 查看集群状态
ceph status
# 查看集群健康状态
ceph health
# 列出所有 OSD
ceph osd ls
存储池管理
# 创建存储池
ceph osd pool create pool_name 128
# 删除存储池
ceph osd pool delete pool_name pool_name --yes-i-really-really-mean-it
# 列出存储池
ceph osd pool ls
用户和权限管理
# 创建用户
ceph auth get-or-create client.user mon 'allow r' osd 'allow rw pool=pool_name'
# 列出所有用户
ceph auth list