去年我们项目组被硬件故障坑惨了,三台存储服务器接连暴毙,文件丢得七零八落。领导直接拍板让我搞分布式存储,搜遍全网发现塞赫这玩意儿口碑不错,果断开整。
一、头铁踩坑初安装
第一次装塞赫差点翻车。照着官网教程咔咔猛敲命令,装完monitor管理节点就急着加服务器。结果tm系统卡成狗,查日志才发现内存吃满报警——原来默认配置把缓存全塞内存里,我们12台服务器直接撑爆128G内存。
补救姿势:
- 连夜改crushmap配置,揪着命令行敲:
ceph osd crush tunables legacy - 手动压缓存水位线:
ceph osd set-full-ratio 0.85
ceph osd set-nearfull-ratio 0.75
机器呼吸总算顺畅了,这教训告诉我:塞赫默认配置就是个火药桶,上手先调资源阀值。
二、故障域配置的血泪史
想着机房两边机柜对称,美滋滋把服务器平均分到A/B列。结果有天王工拔错电源,整列机柜断电,数据直接裂开——副本全灭!
赶紧重做故障域拓扑:
- 先画机房地图标注机柜编号
- 按电源+网络划分独立故障域
- 塞赫命令行开整:
ceph osd crush add-bucket rackA rack
ceph osd crush move server1 rack=rackA
现在就算炸半个机房,副本也能从另排机柜找回来。这玩意儿不提前规划故障就是连环车祸现场。
三、调参玄学实战
最玄学的是性能调优。刚开始小文件传得贼慢,40MB/s的速度被同事骂成狗。翻遍论坛试了五套方案:
- 改过pg_num分区数从128调到512
- 换过bluestore存储引擎的压缩算法
- 折腾三天发现关键在filestore队列深度:
ceph daemon osd.0 config set filestore_queue_max_bytes 268435456
参数拍上去那刻速度直飚200MB/s,组里小伙直接喊出卧槽。塞赫就像手动挡老卡车,油门离合配合好才能飙起来。
现在这套系统跑了半年,经历过三次断电五块硬盘报废,数据愣是没丢过。前两天领导还问要不要加预算,我反手就把塞赫监控面板怼屏幕上——满屏绿色健康指标就是最好的汇报。
还没有评论,来说两句吧...