搭建开源版Ceph分布式存储

系统:Rocky8.6

三台2H4G 三块10G的硬盘的虚拟机

node1 192.168.2.101

node2 192.168.2.102

node3 192.168.2.103

三台虚拟机环境准备

1、配置主机名和IP的映射关系
2、关闭selinux和firewalld防火墙
3、配置时间同步且所有节点chronyd服务开机自启

1、配置主机名和IP的映射关系

1、修改主机名,三台都需要修改,此处举例node1
hostnamectl set-hostname node1

2、vi /etc/hosts    修改hosts文件,配置主机名和IP映射关系,添加这三条
192.168.2.101 node1
192.168.2.102 node2
192.168.2.103 node3

3、远程拷贝已经修改的节点文件到另外两台,也可直接过去修改
scp /etc/hosts root@node2:/etc/
scp /etc/hosts root@node3:/etc/
   

2、关闭selinux和firewalld防火墙

三台都需关闭
systemctl disable --now firewalld 
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config 

3、配置时间同步且所有节点chronyd服务开机自启

三台都需执行
echo 'server time.windows.com iburst'  >> /etc/chrony.conf 

重启chrony服务并设置开机自启
systemctl restart chronyd 
systemctl enable chronyd 

chronyc sources 可查看是否同步成功

获取指定版本的cephadm,一台执行就行,这里选择node1

wget https://github.com/ceph/ceph/raw/pacific/src/cephadm/cephadm  获取 cephadm
chmod +x cephadm  添加执行权限
./cephadm add-repo --release pacific  添加指定版本的ceph源
./cephadm install  安装cephadm工具

方框里的pacific为指定版本,也可替换为需求版本

在引导节点上部署单节点集群

cephadm bootstrap --mon-ip 192.168.2.101 --allow-fqdn-hostname --initial
dashboard-user admin --initial-dashboard-password admin --dashboard
password-noupdate

bootstrap 引导集群
 --mon-ip 192.168.2.101 指定mon节点地址
 --allow-fqdn-hostname 使用主机名作为dashboard地址
 --initial-dashboard-user admin 指定dashboard用户名为admin
 --initial-dashboard-password admin  指定dashboard用户密码为admin
 --dashboard-password-noupdate 首次登陆dashboard无需更改密码

部署完成即可浏览器访问web界面,端口8443

        https://192.168.2.101:8443

        User: admin

        Password: admin

此时Hosts为1  图中因为已经添加了两台进去,所以显示3台

给集群添加其他节点及OSD磁盘
cephadm shell 进入到ceph操作环境
ceph cephadm get-pub-key > ~/ceph.pub 获取集群公钥并保存到当前路径下ceph.pub
ssh-copy-id -f -i ~/ceph.pub root@node2 拷贝公钥到node2,做免密
ssh-copy-id -f -i ~/ceph.pub root@node3 拷贝公钥到node3,做免密
ceph orch host add node2 需要写完整的主机名
ceph orch host add node3 需要写完整的主机名
这两个节点完全扩容到集群需要大概15分钟,并且时间同步

ceph orch daemon add osd node1:/dev/sdb 添加指定主机的单块磁盘为osd
ceph orch apply osd --all-available-devices 也可以在所有主机上将未使用的磁盘部署为osd

此时集群状态还是异常,因为OSD都是同一台设备的磁盘,PG存在单点故障问题,等其他两个节点加入集群,加入其他剩余磁盘即可恢复,下图为又加了一个节点进去

拓展:
关闭集群组件自扩展
ceph orch apply mon --unmanaged=true 关闭mon自动扩展
添加mgr节点
ceph orch daemon add mgr --placement=node2
添加mon节点
ceph orch daemon add mon --placement=node2
移除节点上的指定服务
ceph orch ps 查询各个节点上所运行的服务
ceph orch daemon rm mgr.node2.ifomqg 移除node2节点上的mgr服务
移除OSD
ceph orch daemon stop osd.6
ceph orch daemon rm osd.6 --force
ceph osd rm 6   这里6为osd序号
ceph orch device zap node2 /dev/sdd --force 擦除磁盘数据
ceph osd crush rm osd.6 删除cursh的osd映射
移除主机
ceph orch host rm node2 移除主机
标记ceph管理节点以执行cephadm
ceph orch host label add node2 mgr   给node2节点打上mgr标签
ceph orch host label add node3 mgr   给node3节点打上mgr标签
标记ceph组件节点以批量部署
ceph orch apply prometheus --placement="label:mgr"  给打上mgr标签节点部署prometheus

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GPIO、RCC库函数

void GPIO_DeInit(GPIO_TypeDef* GPIOx); void GPIO_AFIODeInit(void); void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct); //输出 读 uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx,…

使用JMeter玩转tidb压测

作者: du拉松 原文来源: https://tidb.net/blog/3f1ada39 一、前言 tidb是mysql协议的,所以在使用过程中使用tidb的相关工具连接即可。因为jmeter是java开发的相关工具,直接使用mysql的jdbc驱动包即可。 二、linux下安装jmet…

Launcher3主页面加载显示流程分析

布局结构 抓取布局后,可以看到每个图标是一个DoubleShadowBubbleTextView,父布局是CellLayout、workspace。 我们可以在CellLayout添加子view打印出调用堆栈信息,可以整体上看页面加载显示流程。 主要类 Launcher.java:主界面&…

开发培训:慧集通(DataLinkX)iPaaS集成平台-基于接口的连接器开发(不需要认证机制)

一、开发一个简单的应用0源,本实例中对接的应用不需要接口认证 1、【连接管理-自建】新建应用源,保存并发布 代码示例 return {$$ - >//日志打印$$.$Log.info(日志打印) } 二、使用应用,建立应用连接 1、实例创建,【连接管理…

pikachu靶场--目录遍历和敏感信息泄露

pikachu靶场—目录遍历和敏感信息泄露 目录遍历 概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再…

机器学习详解(13):CNN图像数据增强(解决过拟合问题)

在之前的文章卷积神经网络CNN之手语识别代码详解中,我们发现最后的训练和验证损失的曲线的波动非常大,而且验证集的准确率仍然落后于训练集的准确率,这表明模型出现了过拟合现象:在验证数据集测试时,模型对未见过的数据…

Word2Vec解读

Word2Vec: 一种词向量的训练方法 简单地讲,Word2Vec是建模了一个单词预测的任务,通过这个任务来学习词向量。假设有这样一句话Pineapples are spiked and yellow,现在假设spiked这个单词被删掉了,现在要预测这个位置原本的单词是…

#渗透测试#漏洞挖掘#WAF分类及绕过思路

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

电子应用设计方案85:智能 AI门前柜系统设计

智能 AI 门前柜系统设计 一、引言 智能 AI 门前柜系统旨在提供便捷、安全和智能的物品存储与管理解决方案,适用于家庭、公寓或办公场所的入口区域。 二、系统概述 1. 系统目标 - 实现无接触式物品存取,减少交叉感染风险。 - 具备智能识别和分类功能&am…

如何在不丢失数据的情况下从 IOS 14 回滚到 IOS 13

您是否后悔在 iPhone、iPad 或 iPod touch 上安装 iOS 14?如果你这样做,你并不孤单。许多升级到 iOS 14 beta 的 iPhone、iPad 和 iPod touch 用户不再适应它。 如果您在正式发布日期之前升级到 iOS 14 以享受其功能,但您不再适应 iOS 14&am…

线性代数考研笔记

行列式 背景 分子行列式:求哪个未知数,就把b1,b2放在对应的位置 分母行列式:系数对应写即可 全排列与逆序数 1 3 2:逆序数为1 奇排列 1 2 3:逆序数为0 偶排列 将 1 3 2 只需将3 2交换1次就可以还原原…

设计心得——流程图和数据流图绘制

一、流程图和数据流图 在软件开发中,画流程图和数据流图可以说是几乎每个人都会遇到。 1、数据流(程)图 Data Flow Diagram,DFG。它可以称为数据流图或数据流程图。其主要用来描述系统中数据流程的一种图形工具,可以将…

SpringBoot框架开发中常用的注解

文章目录 接收HTTP请求。RestController全局异常处理器Component依赖注入LombokDataBuildersneakyThrowsRequiredArgsConstructor 读取yml文件配置类注解 接收HTTP请求。 RequestMapping 接收HTTP请求。具体一点是 GetMapping PostMapping PutMapping DeleteMapping 一共…

ELK日志平台搭建 (最新版)

一、安装 JDK 1. 下载 JDK 21 RPM 包 wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.rpm2. 安装 JDK 21,使用 rpm 命令安装下载的 RPM 包: sudo rpm -ivh jdk-21_linux-x64_bin.rpm3. 配置环境变量 编辑 /etc/profile 文件以配置 JAVA_HO…

使用 Jupyter Notebook:安装与应用指南

文章目录 安装 Jupyter Notebook1. 准备环境2. 安装 Jupyter Notebook3. 启动 Jupyter Notebook4. 选择安装方式(可选) 二、Jupyter Notebook 的基本功能1. 单元格的类型与运行2. 可视化支持3. 内置魔法命令 三、Jupyter Notebook 的实际应用场景1. 数据…

AcWing-164.可达性统计(拓扑排序 + 位运算)

原题链接:164. 可达性统计 - AcWing题库 题目描述: 题目 输入格式 输出格式 数据范围 输入样例: 输出样例: 思路 AC代码: 题目描述: 题目 给定一张 𝑁 个点 𝑀 条边的有向无…

Windows安装了pnpm后无法在Vscode中使用

Windows安装了pnpm后无法在Vscode中使用 解决方法: 以管理员身份打开 PowerShell 并执行以下命令后输入Y回车即可。 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser之后就可以正常使用了

python学opencv|读取图像(二十五)使用cv2.putText()绘制文字进阶-垂直镜像文字

【1】引言 前序学习进程找那个,已经掌握了使用pythonopencv绘制常规文字和倾斜文字的基本技巧。相关链接如下: python学opencv|读取图像(二十三)使用cv2.putText()绘制文字-CSDN博客 python学opencv|读取图像(二十四…

6.充放电相关实验(过压、欠压、过流、短路、过温、低温)演示

1.充放电演示 (1)一定要按照操作步骤来,先将电池板上的充放电开关一定要处于断开状态(字母O一边按下是断开,字母I一边按下是接通),然后夹上充电器的电源夹子到BMS控制板的PACK-、PACK+两端,然后给充电器插上电源(如果使用自己的充电器一定要注意不要大于21V),然后拨动…

解决HBuilderX报错:未安装内置终端插件,是否下载?或使用外部命令行打开。

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 错误描述 在HBuilderX中执行npm run build总是提醒下载插件;图示如下: 但是,下载总是失败。运行项目时候依然弹出上述提醒。 解决方案 …