
1.Ceph简介
Ceph 是一个分布式存储系统,旨在提供高可用、高可靠和高扩展性的数据存储解决方案。它最初是由 Inktank 开发的,后被 Red Hat 收购。Ceph 具有以下几个关键特性:统一存储:Ceph 提供对象存储、块存储和文件系统存储等多种存储接口,能够满足不同类型的存储需求。对象存储(RADOS):适合海量数据存储,支持RESTful API。文件系统(CephFS):为虚拟化和云平台提供块设备支持。文件系统(CephFS):基于对象存储的分布式文件系统,提供POSIX兼容的文件系统接口。高可用性:Ceph通过数据复制和纠删码等技术,确保数据的可靠性和高可用性,自动在多个节点间复制数据,并在节点失效时自动恢复。弹性扩展:Ceph 可以通过增加新的节点来横向扩展,适应数据量的增长,无需停机或重新配置。自我修复:Ceph 在出现硬件故障或节点失效时,能够自动修复并重新平衡数据,确保存储池的一致性和完整性。分布式架构:Ceph 使用 CRUSH 算法来实现数据的分布和映射,避免了传统存储系统中的集中式元数据管理瓶颈。开源和社区支持:Ceph 是一个完全开源的项目,得到了全球社区的广泛支持。
2.Ceph 的架构可以分为以下几个主要组件:
Ceph OSD (Object Storage Daemon):负责存储数据并提供数据的读写操作。每个 OSD 进程管理一组磁盘。
Ceph Monitor (MON):维护集群的状态,包括集群配置、成员信息以及映射信息。每个 Ceph 集群通常有 3 个或更多 MON 节点来确保高可用性。Ceph Manager (MGR):提供集群的管理、监控和接口功能。MGR 通常是集群的管理节点,负责集群的健康监控和性能调优。Ceph MDS (Metadata Server):为 CephFS 提供文件系统的元数据管理。每个 CephFS 都需要至少一个 MDS。Ceph Client:访问 Ceph 存储的应用程序或系统,如虚拟化、备份系统、Web 服务等。3.Ceph 安装步骤
下面是安装 Ceph 的基本步骤。假设我们使用的是 CentOS 7 操作系统,步骤包括集群的配置和 Ceph 服务的安装。
确保你有至少 3 个节点来部署 Ceph 集群,通常包括:Ceph Manager 和 Ceph MDS 节点sudo yum install -y centos-release-ceph
sudo yum install -y epel-release
sudo yum install -y ceph-deploy
选择一个节点作为 Ceph Monitor 节点,安装并配置 Ceph Monitor。# 在 Monitor 节点上
sudo yum install -y ceph ceph-deploy
# 初始化 Ceph 集群
ceph-deploy new <mon-node>
# 创建并配置 Ceph Monitor
ceph-deploy install <mon-node>
ceph-deploy mon create-initial
接下来,需要在至少一个 OSD 节点上配置 OSD。OSD 是 Ceph 集群的存储组件。# 安装 OSD
ceph-deploy osd create --data dev/sdb <osd-node>
# 验证 OSD 是否正常启动
ceph osd tree
5. 配置 Ceph Manager 和 Ceph MDS安装 Ceph Manager 和 Ceph MDS(如果使用 CephFS 文件系统):# 安装 Ceph Manager
ceph-deploy mgr create <mgr-node>
# 如果使用 CephFS,还需要安装 MDS
ceph-deploy mds create <mds-node>
6. 部署 Ceph 文件系统(CephFS) (如果需要)如果需要使用 CephFS 文件系统,可以创建并部署 CephFS。# 创建文件系统
ceph fs volume create cephfs
# 检查文件系统状态
ceph fs status
使用以下命令检查集群状态,确保所有组件都正常运行:# 查看 Ceph 集群状态
ceph -s
# 查看集群的健康状态
ceph health
在需要访问 Ceph 存储的客户端上,配置 Ceph 客户端并安装必要的软件包:# 安装 Ceph 客户端
sudo yum install -y ceph ceph-common
# 配置 Ceph 客户端
ceph -s
如果需要扩展集群,可以通过添加更多的 OSD 或 Monitor 节点来增加集群的容量和可靠性。ceph-deploy osd create --data dev/sdc
数据不平衡:如果在 Ceph 集群中发现数据分布不均,可能需要手动触发数据重平衡:ceph osd reweight-by-utilization
Ceph 集群健康检查:定期检查 Ceph 集群的健康状态,确保没有出现不正常的状态。OSD 下线:如果某个 OSD 节点失效,Ceph 会自动进行数据迁移和修复。