概述
根据硬件摩尔定律,硬件成本随时间越来越低,性能较之前越来越高,尤其是随着pcie全闪灯普及,理论上作为云服务的基础设施,存储应该越来越便宜。然而,购置商用sds产品的成本却一直居高不下,越来越多的初创项目、创新企业考虑自研自用存储集群,大大降低成本。
ceph自诞生至今,经过多个版本更新维护,无数爱好者的贡献和实际生产项目的优化,目前已经相对稳定成熟,甚至是某些对接场景下分布式存储系统的最优解。
依据笔者多年实际toB、toC、toG累积近百P规模级别项目的实际经验,本文尽可能详细描述如何零开始完成自建自己的大规模存储集群,以及各个阶段的注意事项,偏向方案规划类,部分技术细节不做详细展开,项目技术合作可以私聊。
确认需求
在开始之前,首先需要确认以下几点
- 容量需求(预估要存多少数据量)
- 安全级别需求(副本还是纠删、rack还是host容灾)
- 性能需求(读密集型还是io型还是冷热备)
- 业务需求(使用块、文件、对象,大文件还是小文件)
- 功能需求 (需要用到的ceph版本,docker cephadm还是rook ceph)
- 项目周期(预计一步搭建部署完还是精简配置,后期扩容)
- 成本(预算)
硬件规划阶段
硬件选型时需要格外注意,因为后期不好调整。存储服务器需要注意以下几点:
- 支持多网卡配置(做bond和网段分离)
- 支持较多 sata(一般3u16或者4u24均可,单节点osd数量不建议超过20)
- 支持多个pcie槽位(根据wal、db配比,按建议比例分配预留)
- 支持双电源冗余(按需)
- 支持pmi/ibmc(按需)
- 支持较大内存(一般单个osd需要预留6到10G内存空间)
- 支持系统盘ssd raid
- 支持硬盘点灯定位
根据实际需求,配比,规模准备硬件和上架
网络拓扑
- 多级网络
- 网段分离(按需,一般需要万兆cluster内网和对外public网)
上架
- 网络测试
- 单盘测试
- 稳定性测试
系统部分
- 系统安装
- 关闭防火墙与swap部分
- 免密配置
- 主机名与ip规划
- 内核参数配置
- 硬盘jbod与raid加载(按需)
- 常用监控运维工具(smartctl,nettools,nnmo,tmux等)
ceph部分
- 节点角色规划
- ceph软件安装部署
- mon、osd、mds、rgw等组件创建
- 定制crush(按需)
- pool规划(tier cache、index pool、pgnum等)
- 监控相关(ssd寿命,Prometheus,dashboard,snmp告警等)
- nginx与ha配置
- 访问测试
- 可靠性测试
- 稳定性测试
- io压力测试
- 参数调优
业务部分
- 对象(policy、acl、cors、lifecycle、version等)
- 块(卷特性,clone等)
- 文件 (多活、热备、绑目录等)
后续运维
- 日常运维培训
- 常见问题FAQ
- 定期巡检报告