自建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

相关文章

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

MySQL MHA集群详解(数据库高可用)

《MySQLMHA集群详解(数据库高可用)》MHA(MasterHighAvailability)是开源MySQL高可用管理工具,用于自动故障检测与转移,支持异步或半同步复制的MySQL主从架构,本... 目录mysql 高可用方案:MHA 详解与实战1. MHA 简介2. MHA 的组件组成(1)MHA

SpringSecurity中的跨域问题处理方案

《SpringSecurity中的跨域问题处理方案》本文介绍了跨域资源共享(CORS)技术在JavaEE开发中的应用,详细讲解了CORS的工作原理,包括简单请求和非简单请求的处理方式,本文结合实例代码... 目录1.什么是CORS2.简单请求3.非简单请求4.Spring跨域解决方案4.1.@CrossOr

使用MyBatis TypeHandler实现数据加密与解密的具体方案

《使用MyBatisTypeHandler实现数据加密与解密的具体方案》在我们日常的开发工作中,经常会遇到一些敏感数据需要存储,比如用户的手机号、身份证号、银行卡号等,为了保障数据安全,我们通常会对... 目录1. 核心概念:什么是 TypeHandler?2. 实战场景3. 代码实现步骤步骤 1:定义 E

Python实现繁体转简体功能的三种方案

《Python实现繁体转简体功能的三种方案》在中文信息处理中,繁体字与简体字的转换是一个常见需求,无论是处理港澳台地区的文本数据,还是开发面向不同中文用户群体的应用,繁简转换都是不可或缺的功能,本文将... 目录前言为什么需要繁简转换?python实现方案方案一:使用opencc库方案二:使用zhconv库

golang实现nacos获取配置和服务注册-支持集群详解

《golang实现nacos获取配置和服务注册-支持集群详解》文章介绍了如何在Go语言中使用Nacos获取配置和服务注册,支持集群初始化,客户端结构体中的IpAddresses可以配置多个地址,新客户... 目录golang nacos获取配置和服务注册-支持集群初始化客户端可选参数配置new一个客户端 支

MySQL集群高可用架构的两种使用小结

《MySQL集群高可用架构的两种使用小结》本文介绍了MySQL的两种高可用解决方案:组复制(MGR)和MasterHighAvailability(MHA),文中通过示例代码介绍的非常详细,对大家的学... 目录一、mysql高可用之组复制(MGR)1.1 组复制核心特性与优势1.2 组复制架构原理1.3

Docker + Redis 部署集群的实现步骤

《Docker+Redis部署集群的实现步骤》本文详细介绍了在三台服务器上部署高可用Redis集群的完整流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、环境准备1. 服务器规划(3 台服务器)2. 防火墙配置(三台服务器均执行)3. 安装 docke

MySQL中存储过程(procedure)的使用及说明

《MySQL中存储过程(procedure)的使用及说明》存储过程是预先定义的SQL语句集合,可在数据库中重复调用,它们提供事务性、高效性和安全性,MySQL和Java中均可创建和调用存储过程,示例展... 目录概念示例1示例2总结概念存储过程:在数据库中预先定义好一组SQL语句,可以被程序反复调用。