自建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
  • 定期巡检报告

项目验收

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/799639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在unbuntu服务器上使用nginx+uwsgi部署django项目

一、配置nginx 1. 安装nginx apt-get install nginx2. 编写nginx配置文件 进入nginx.conf文件路径:/etc/nginx/nginx.conf 编写以下内容: events {worker_connections 1024; # 工作进程的最大连接数量 }http{include mime.types;# 日志格式及保存路径…

(译) 理解 Elixir 中的宏 Macro, 第五部分:组装 AST

Elixir Macros 系列文章译文 [1] (译) Understanding Elixir Macros, Part 1 Basics[2] (译) Understanding Elixir Macros, Part 2 - Macro Theory[3] (译) Understanding Elixir Macros, Part 3 - Getting into the AST[4] (译) Understanding Elixir Macros, Part 4 - Divin…

【Labview】虚拟仪器技术

一、背景知识 1.1 虚拟仪器的定义、组成和应用 虚拟仪器的特点 虚拟仪器的突出特征为“硬件功能软件化”,虚拟仪器是在计算机上显示仪器面板,将硬件电路完成信号调理和处理功能由计算机程序完成。 虚拟仪器的组成 硬件软件 硬件是基础,负责将…

数字化转型回归底层逻辑

2024年第一季度已然过去,对于我们每个人而言,这都是一次严峻的挑战。2015年,蚓链数字化营销系统踏上研发之路。让我们回顾数字技术对企业的影响阶段:2012-2015 年,互联网在消费端产生巨大影响,引发了虚拟经…

清空nginx缓存并强制刷新

当对nginx的文件进行修改或更新时,可能会出现旧文件被缓存而无法立即生效的问题,此时需要清空nginx的文件缓存并强制刷新。可以通过以下步骤实现: 登录nginx服务器执行命令:sudo nginx -s reload (重新加载nginx配置&…

YOLOv5改进--轻量化YOLOv5s模型

文章目录 1、前言2、轻量化模型结构:3、模型对比4、训练结果图5、目标检测文章 1、前言 在边缘设备的场景下,目前的YOLOv5s,虽然能够快速实现目标检测,但是运行速度依旧稍慢点,本文在牺牲一点精度前提下,提…

Web漏洞-文件上传常见验证

后缀名:类型,文件头等 后缀名:黑白名单 文件类型:MIME信息 文件头:内容头信息 常见黑名单(明确不允许上传的格式后缀):asp、php、jsp、aspx、cgi、war (如果没有完整…

vscode:插件开发

文档&#xff1a; 连接 终端执行 sudo pnpm install -g yo generator-codeyo code// 这里建议选择 JavaScript 很少出错 # ? What type of extension do you want to create? New Extension (JavaScript) # ? Whats the name of your extension? HelloWorld ### Press <…

nacos derby.log无法的读取+derby数据库启动失败分析解决

排查思路分析 日志报错&#xff1a; derby.log文件权限不够&#xff08;root权限&#xff09;&#xff0c;无法读取&#xff0c;我用普通用户启动。 使用命令chown xx:xx derby.log修改属主和属组为普通用户后&#xff0c;又报出其他错误。 数据库启动不了&#xff0c;无…

Composer Windows 安装

Composer 的下载地址为&#xff1a;Composer 1 运行安装程序 当启动安装程序后单击下一步继续。 选择 PHP 路径 如果你的计算机上没有安装 PHP 的话&#xff0c;Composer 的安装无法继续。 你需要选择你本地安装的 PHP 路径。 配置代理地址 默认的情况下&#xff0c;可以不…

【LeetCode刷题记录】15. 三数之和

15 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [ n u m s [ i ] , n u m s [ j ] , n u m s [ k ] ] [nums[i], nums[j], nums[k]] [nums[i],nums[j],nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 n u m s [ i ] n u m s [ j ] n u …

java基础语法(11)| 内部类

1. 内部类 1.1 什么是内部类 将一个类A定义在另一个类B里面&#xff0c;里面的那个类A就称为内部类&#xff0c;B则称为外部类。 1.2 内部类的分类 成员内部类 局部内部类 匿名内部类 1.3 成员内部类 在描述事物时&#xff0c;若一个事物内部还包含其他事物&#xff0c;就…

基于starganvc2的变声器论文原理解读

数据与代码见文末 论文地址&#xff1a;https://arxiv.org/pdf/1907.12279.pdf 1.概述 什么是变声器&#xff0c;变声器就是将语音特征进行转换&#xff0c;而语音内容不改变 那么我们如何构建一个变声器呢&#xff1f; 首先&#xff0c;我们肯定不能为转换的每一种风格的声…

JavaEE初阶——多线程(一)

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 小比特 大梦想 此篇文章与大家分享多线程的第一部分:引入线程以及创建多线程的几种方式 此文章是建立在前一篇文章进程的基础上的 如果有不足的或者错误的请您指出! 1.认识线程 我们知道现代的cpu大多都是多核心…

【Figma】安装指南及基础操作

先前做UI设计一直都是用PS等绘图软件设计&#xff0c;但发现在纠结像素和排版问题上会花很多时间&#xff0c;再加上AI没来得及上手&#xff0c;就需要迅速出成图&#xff0c;此时通过论坛发现了figma&#xff0c;基本上可以满足足够的需求&#xff0c;并且可以在windows系统上…

【云开发笔记NO.27】分布式数据库

在云原生开发中&#xff0c;分布式数据库是一种特殊类型的数据库管理系统&#xff0c;其数据不是存储在单个集中的服务器上&#xff0c;而是分散在网络中的多个节点或服务器上。这种分散存储的方式使得分布式数据库具有很高的可扩展性、容错性和性能优势。云原生环境下的分布式…

SVG图标显示

SVG图标显示 1.安装SharpVectors.Wpf包 2.添加引用 xmlns:svgc"http://sharpvectors.codeplex.com/svgc/"3.加载svg文件&#xff0c;生成操作选择资源(Resource) 4.UI界面显示SVG图像 <Button Click"OnSaveFileClick" ToolTip"Save Svg File…

武汉星起航:跨境电商领域崭露头角,以实战经验引领行业新潮流

随着全球经济的演进&#xff0c;跨境电商正成为国际贸易的引擎&#xff0c;而武汉星起航电子商务有限公司凭借其丰富实战经验和专业团队&#xff0c;在这一领域取得了引人瞩目的成绩。公司成立于2020年&#xff0c;自2017年起紧紧围绕亚马逊自营店铺&#xff0c;致力于为合作伙…

基于Spring Boot+Vue的在线拍卖系统

随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单管理、…

初学python记录:力扣1600. 王位继承顺序

题目&#xff1a; 一个王国里住着国王、他的孩子们、他的孙子们等等。每一个时间点&#xff0c;这个家庭里有人出生也有人死亡。 这个王国有一个明确规定的王位继承顺序&#xff0c;第一继承人总是国王自己。我们定义递归函数 Successor(x, curOrder) &#xff0c;给定一个人…