自建ceph存储集群方案之从零到一

2024-04-08 12:52

本文主要是介绍自建ceph存储集群方案之从零到一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

根据硬件摩尔定律,硬件成本随时间越来越低,性能较之前越来越高,尤其是随着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
  • 定期巡检报告

项目验收

这篇关于自建ceph存储集群方案之从零到一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/885641

相关文章

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

SpringBoot3.X 整合 MinIO 存储原生方案

《SpringBoot3.X整合MinIO存储原生方案》本文详细介绍了SpringBoot3.X整合MinIO的原生方案,从环境搭建到核心功能实现,涵盖了文件上传、下载、删除等常用操作,并补充了... 目录SpringBoot3.X整合MinIO存储原生方案:从环境搭建到实战开发一、前言:为什么选择MinI

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模