简介:本文提供从环境准备到集群验证的Ceph部署全流程,涵盖硬件选型、软件安装、配置调优等关键环节,助力开发者快速构建高可用存储集群。
Ceph作为分布式存储系统,硬件选型直接影响集群性能。建议采用均衡配置:
推荐使用CentOS 8/Ubuntu 20.04 LTS等稳定发行版。部署前需完成:
# CentOS 8示例sudo dnf install -y epel-releasesudo dnf install -y ceph-deploy ntp chrony python3-pipsudo systemctl enable --now chronyd
/etc/hosts中配置所有节点主机名与IP映射,避免依赖DNS。
# 创建部署目录mkdir ~/ceph-cluster && cd ~/ceph-cluster# 初始化第一个MON节点ceph-deploy new ceph-mon01 ceph-mon02 ceph-mon03# 安装公共组件ceph-deploy install --release octopus ceph-mon01 ceph-mon02 ceph-mon03 ceph-osd01 ceph-osd02 ceph-osd03# 创建初始monitor集群ceph-deploy mon create-initial
--release参数指定。/etc/ceph/ceph.client.admin.keyring文件。
# 查看可用磁盘lsblk# 使用ceph-volume准备磁盘(推荐LVM方式)ceph-volume lvm create --data /dev/sdb --no-systemd
--dmcrypt参数。
# 创建批量部署脚本for osd in {01..10}; dossh ceph-osd${osd} "ceph-volume lvm create --data /dev/sd${osd}b"done# 在主节点注册OSDceph-deploy osd create --data ceph-osd01:/dev/sdb ceph-osd02:/dev/sdb ceph-osd03:/dev/sdb
# 计算示例(Python脚本)total_osd = 30pool_replication = 3pg_per_osd = 100total_pg = (total_osd * pg_per_osd) // pool_replicationprint(f"建议PG总数: {total_pg}")
# /etc/ceph/ceph.conf 关键配置[global]osd pool default size = 3osd pool default min size = 2osd crush chooseleaf type = 1osd recovery op priority = 2
size=3,min_size=2确保高可用。chooseleaf参数,减少数据跨机箱复制。
# 检查集群状态ceph -s# 验证OSD状态ceph osd tree# 检查MON同步状态ceph mon stat
HEALTH_OK状态需满足mon_clock_skew<0.05s,pg_availability=100%。
# 写入测试rados bench -p data 60 write --no-cleanup# 随机读取测试rados bench -p data 60 seq
# fio测试配置示例[global]ioengine=libaiodirect=1runtime=300time_based[write_test]rw=writebs=4knumjobs=16filename=/mnt/cephfs/testfile
journalctl -u ceph-osd@<id>查看详细错误ceph-volume lvm list确认磁盘状态/var/lib/ceph/osd目录权限为ceph:cephHEALTH_WARN状态显示clock skew detected
# 强制同步时间chronyc -a makestep# 重启MON服务systemctl restart ceph-mon@ceph-mon01
# 重新平衡PGceph osd pool set data pg_num 1024ceph osd pool set data pgp_num 1024# 检查网络负载sar -n DEV 1
/etc/ceph目录和MON数据库本教程覆盖了Ceph部署的核心环节,实际实施时需根据具体硬件环境和业务需求调整参数。建议首次部署在测试环境验证配置,生产环境部署前制定完整的回滚方案。