使用欧拉安装ceph分布式存储,ceph的集群安装、添加主机集群和删除主机、添加osd硬盘和手动添加硬盘为osd和移除osd。

news2024/10/8 21:16:01

1.ceph安装

1.1 首先准备3台机子,配置ip,给每台机子添加3块硬盘,设置主机名为ceph01、ceph02、ceph03。

192.168.10.20ceph01
192.168.10.21ceph02
192.168.10.22ceph03

 1.2  三台机子关闭防火墙,setenforce 0,添加hosts解析、配置时间同步。

#关闭防火墙 setenforce 0
systemctl stop firewalld
setenforce 0


#添加解析文件
192.168.10.20 ceph01
192.168.10.21 ceph02
192.168.10.22 ceph03


#下载时间同步
yum install -y chrony

#启动并设置开机自启
systectl restart chronyc
systemctl enable chronyd --now

chronyc sources

1.3  安装cephadm 在ceph01主机上安装就可以

#安装cephadm
git clone https://gitee.com/yftyxa/openeuler-cephadm.git

如果没有git ,自己下载一个
yum -y install git

#下载完成后,将下载到的cephadm复制到/usr/sbin/下,并为其添加可执行权限
cp openeuler-cephadm/cephadm /usr/sbin && chmod a+x /usr/sbin/cephadm

测试安装成功没有:
cephadm --help

 1.4 添加ceph所需要的源  在所有主机上添加

cat >> /etc/yum.repos.d/ceph.repo <<EOF
[ceph]
name=ceph x86_64
baseurl=https://repo.huaweicloud.com/ceph/rpm-pacific/el8/x86_64
enabled=1
gpgcheck=0

[ceph-noarch]
name=ceph noarch
baseurl=https://repo.huaweicloud.com/ceph/rpm-pacific/el8/noarch
enabled=1
gpgcheck=0

[ceph-source]
name=ceph SRPMS
baseurl=https://repo.huaweicloud.com/ceph/rpm-pacific/el8/SRPMS
enabled=1
gpgcheck=0
EOF

1.5  然后安装官方容器源  在所有主机上执行

#配置所需要的源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-8-reg.repo


#安装容器引擎
yum install podman-3.3.1-9.module_el8.5.0+988+b1f0b741.x86_64 lvm2 -y

 2. 安装ceph,初始化集群 (在ceph01上执行)

#使用命令先安装镜像
podman create swr.cn-east-3.myhuaweicloud.com/hcie_openeuler/ceph:v16.2.13


#初始化集群
cephadm bootstrap --mon-ip 192.168.10.20 --allow-fqdn-hostname --initial-dashboard-user admin --initial-dashboard-password Huawei@123 --dashboard-password-noupdate

在浏览器访问:192.168.10.20:8443

 2.1 为集群添加node节点 、进入容器管理、生成集群公钥并拷贝到另外两个主机(ceph02和ceph03),将主机添加到集群、添加完成后查看主机状态。(在ceph01上执行)

#进入容器管理
cephadm shell

#生成集群公钥,并将其拷贝到剩余主机
ceph cephadm get-pub-key > ~/ceph.pub
ssh-copy-id -f -i ~/ceph.pub root@ceph02
ssh-copy-id -f -i ~/ceph.pub root@ceph03


#将全部主机添加到集群内
ceph orch host add ceph02
ceph orch host add ceph03

#查看当前集群中主机状态
ceph orch host ls

2.2 ceph集群初始化,取消mon服务的自动扩展功能,给ceph02和ceph03添加标签,将mon和mgr组件部署到指定节点中。(在ceph01上执行)

#取消mon服务的自动扩展功能
ceph orch apply mon --unmanaged=true

#为ceph02和ceph03添加标签
 ceph orch host label add ceph02 _admin
 ceph orch host label add ceph03 _admin

#将mon和mgr组件部署到指定节点中
ceph orch apply mon --placement="label:_admin"
ceph orch apply m --placement="label:_admin"

 

2.3  将主机上的硬盘添加为osd (在ceph01上执行)

#将所有主机上的硬盘添加为OSD
ceph orch apply osd --all-available-devices

在所有主机上查看lsblk

查看 ceph orsh ls

 3. 其他ceph常用操作

3.1 移除服务、将移除ceph02中除OSD外的全部服务,首先将ceph02中的服务筛选出来

#首先将ceph02中的服务筛选出来
ceph orch ps | grep ceph02

#关闭集群组件的自动扩展
ceph orch apply crash --unmanaged=true
ceph orch apply mon --unmanaged=true
ceph orch apply mgr --unmanaged=true
ceph orch apply node-exporter --unmanaged=true
ceph orch apply prometheus --unmanaged=true

#把ceph02中的服务筛选出来的东西全部删除
ceph orch daemon rm crash.ceph02
ceph orch daemon rm mgr.ceph02.bmmlba
ceph orch daemon rm mon.ceph02 --force
全部删除 我这里只删除了一几个

3.2  移除osd,先停止osd,在移除(在ceph01上执行),

ceph osd terr 看看ceph的id

#停止osd
ceph orch daemon stop osd.0
ceph orch daemon stop osd.3
ceph orch daemon stop osd.6

#移除osd
ceph osd rm 0
ceph osd rm 3
ceph osd rm 6

关闭 osd部署功能,擦除对应磁盘的数据

#关闭自动osd部署功能
ceph orch apply osd --all-available-devices --unmanaged=true


#擦除数据
ceph orch device zap ceph02 /dev/sdb --force
ceph orch device zap ceph02 /dev/sdc --force
ceph orch device zap ceph02 /dev/sdd --force

最后删除cursh的osd映射

#删除CURSH的osd映射
ceph osd crush rm osd.0
ceph osd crush rm osd.3
ceph osd crush rm osd.6

现在已经看到已经删除了osd盘。

 3.3 移除节点ceph02,然后开启全部服务

#移除ceph02节点
ceph orch host rm ceph02

#将所有服务都开启自动部署
ceph orch apply mon --unmanaged=false
ceph orch apply mgr --unmanaged=false
ceph orch apply node-exporter --unmanaged=false
ceph orch apply crash --unmanaged=false
ceph orch apply prometheus --unmanaged=false

现在已经看到ceph02的集群已经删除了

 3.4 手动部署服务,将ceph02添加回集群,为新增加的节点添加“_admin”的标签,将管理相关的组件部署在标签为“_admin”的主机中手动将ceph02的硬盘添加为osd。

#将ceph02添加回集群
ceph orch host add ceph02

#为ceph02节点添加“_admin”的标签
ceph orch  host  label add ceph02 _admin

#将管理相关的组件部署在标签为“_admin”的主机中
ceph orch apply mgr --placement="label:_admin"
ceph orch apply mon --placement="label:_admin"


#手动将ceph02的硬盘添加为osd
ceph orch daemon add osd ceph02:/dev/sdb
ceph orch daemon add osd ceph02:/dev/sdc
ceph orch daemon add osd ceph02:/dev/sdd

最后在ceph02上查看 : lsblk  (现在我们已经将硬盘手动设置为osd了)

 4. 总结

以上就是ceph的安装和添加节点和移除节点、为节点添加标签、手动添加osd硬盘、停止osd、删除osd和删除osd映射,删除指定的服务、部署ceph集群、生成集群公钥,并将其拷贝到剩余主机,安装容器引擎等。

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

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

相关文章

【数据结构 | PTA】表

文章目录 7-1 重排链表7-2 链表去重7-3 两个有序链表序列的合并7-4 两个有序链表序列的交集 7-1 重排链表 输入格式&#xff1a; 每个输入包含1个测试用例。每个测试用例第1行给出第1个结点的地址和结点总个数&#xff0c;即正整数N (≤105)。结点的地址是5位非负整数&#xff…

OgreNext高级材质中增加线宽,点大小,虚线模式绘制支持

修改Ogre高级材质系统,增加线宽,点大小,虚线模式,虚线参数的支持,效果如下: 需要修改的代码文件如下: 修改如下 代码文本: //范围[0.2 - 51] 0.2 * [0,255];Ogre::uint8 mLineWidth;//范围[0.5 - 127.5] 0.5 * [0, 255];Ogre::uint8 mPointSize;//虚线标记Ogre::ui…

【Redis】Redis线程模型

目录 1. Redis 是单线程的&#xff0c;还是多线程的&#xff1f;2. Redis单线程模式是怎么样的&#xff1f;Redis 单线程模式的优势Redis 单线程的局限性Redis 单线程的优化策略 3. Redis采用单线程为什么还这么快4. Redis 6.0 之前为什么使用单线程&#xff1f;5. Redis 6.0 之…

每日学习一个数据结构-图

文章目录 图基础一、图的定义二、图的相关概念三、图的分类四、图的使用场景 和图相关的算法一、图的遍历算法二、最短路径算法三、最小生成树算法四、图匹配算法五、网络流算法 图基础 一、图的定义 在数学中&#xff0c;图是描述于一组对象的结构&#xff0c;其中某些对象对…

数据结构单向链表

单向链表的转置 转置的思想&#xff1a; (1) 将头节点与当前链表断开&#xff0c;断开前保存下头节点的下一个节点&#xff0c;保证后面链表能找得到&#xff0c;定义一个q保存头节点的下一个节点&#xff0c;断开后前面相当于一个空的链表&#xff0c;后面是一个无头的单向链表…

动态内存管理练习题的反汇编代码分析(底层)

1.C语言代码 #include <stdio.h> char* GetMemory(void) {char p[] "hello world";return p; }void Test(void) {char* str NULL;str GetMemory();printf(str); }int main() {Test();return 0; } 2.反汇编代码 VS2022x64debug #include <stdio.h>…

给普通的div或者view等元素添加onblur事件的方式

一般只有input元素有blur事件&#xff0c;但是如果想给普通的元素设置了blur事件之后&#xff0c;它是不会正常直行的。还需要再给元素添加tabindex属性&#xff0c;设置了tabindex属性之后&#xff0c;元素会带有一个下划线&#xff0c;还要去掉下划线&#xff0c;而且聚焦的时…

PostgreSQL学习笔记二:PostgreSQL的系统架构

PostgreSQL 是一种功能强大的开源关系型数据库管理系统&#xff0c;其架构具有以下特点&#xff1a; 一、客户端/服务器架构 客户端 客户端可以是各种应用程序&#xff0c;如 Web 应用、桌面应用等&#xff0c;它们通过网络连接与 PostgreSQL 服务器进行通信。客户端使用标准的…

力扣之603.连续空余座位

文章目录 1. 603.连续空余座位1.1 题干1.2 准备数据1.3 思路分析1.4 解法1.5 结果截图 1. 603.连续空余座位 1.1 题干 表: Cinema ----------------- | Column Name | Type | ----------------- | seat_id | int | | free | bool | ----------------- Seat_id 是该表的自动递…

2024-你自学网络安全的顺序可能一直是反的!

作为一名在网络安全领域工作了八年的技术人员&#xff0c;我想分享一些经验给2024年学习黑客技术的朋友们。 千万不要毫无基础就开始学黑客!一定要先了解相关的信息和知识! 对于刚入行的朋友&#xff0c;我建议先从网络安全或Web安全/渗透测试入手&#xff0c;这些方向市场需求…

【可答疑】基于51单片机的光照强度检测(含仿真、代码、报告、演示视频等)

✨哈喽大家好&#xff0c;这里是每天一杯冰美式oh&#xff0c;985电子本硕&#xff0c;大厂嵌入式在职0.3年&#xff0c;业余时间做做单片机小项目&#xff0c;有需要也可以提供就业指导&#xff08;免费&#xff09;~ &#x1f431;‍&#x1f409;这是51单片机毕业设计100篇…

基于STM32的智能仓库温湿度监控系统设计

引言 本项目设计了一个基于STM32的智能仓库温湿度监控系统&#xff0c;能够实时监测仓库内的温度和湿度&#xff0c;并根据设定的阈值触发报警或启动风扇调节环境。该系统通过DHT11温湿度传感器获取环境数据&#xff0c;结合OLED显示屏、风扇和蜂鸣器&#xff0c;实现对仓库环…

python中的数组模块numpy(一)(适用物联网数据可视化及数据分析)

一、创建数组对象array&#xff0c;认识数组的格式 array函数的格式:np.array(object,dtype,ndmin) 以下是示例代码&#xff1a; # coding:utf-8 import numpy as np d1[1.1,2.1,3.1] d2(1,2,3,4) d3[[a,b],[c,d],[e,f]] print(d1) print(d2) print(d3) print("以上是数…

无法编辑PDF文件?试试这3个解决方法!

PDF文件格式广泛应用于工作中&#xff0c;但有时候我们可能遇到无法编辑PDF文件的情况。这可能导致工作效率降低&#xff0c;特别是在需要修改文件内容时显得尤为棘手。遇到PDF不能编辑时&#xff0c;可以看看是否以下3个原因导致的。 原因一&#xff1a;PDF文件设置了编辑权限…

八大排序--06基数排序(桶排序)

【本质--先排序个位&#xff0c;再排序十位&#xff0c;排百位...依次类推的过程】 获取待排序数组中的最高位数 //取计算最大值的位数int maxarr[0];for(int j0;j<arr.length;j) {if(arr[j]>max) {maxarr[j];}} 存储数据&#xff08;桶排序中除了游标遍历外&#xff…

【数据结构 | PTA】栈

文章目录 7-1 汉诺塔的非递归实现7-2 出栈序列的合法性**7-3 简单计算器**7-4 盲盒包装流水线 7-1 汉诺塔的非递归实现 借助堆栈以非递归&#xff08;循环&#xff09;方式求解汉诺塔的问题&#xff08;n, a, b, c&#xff09;&#xff0c;即将N个盘子从起始柱&#xff08;标记…

分析和解决js运算精度问题,出现多位小数

加减乘除都会出现小数精度错误的问题 (见图) 原因&#xff1a;js进行运算时会将数字先转为二进制再进行运算。 错误思路&#xff1a;之前在做数字运算时都是将数字转化为整数再进行运算&#xff0c;某次突然发现在变整数的时候也会出现精度问题&#xff0c;比如上图中的数据。…

LINUX——内核移植、内核编译教程

Linux内核编译是一个将内核源代码转换成可在特定硬件架构上运行的二进制文件的过程。以下是编译Linux内核的一般步骤&#xff1a; 1、准备工作&#xff1a; 确保安装了必要的编译工具&#xff0c;如gcc、make、ncurses库&#xff08;用于make menuconfig&#xff09;等。 2、…

【读书笔记-《30天自制操作系统》-26】Day27

本篇内容不多&#xff0c;主要是一些优化的工作。首先优化了应用程序&#xff0c;然后引入对应用程序的保护功能&#xff0c;最后引入库的概念。 1. 应用程序优化 首先来解决上一篇中遗留的一个bug:使用ncst命令运行的应用程序&#xff0c;按下ShiftF1或者点击x按钮都无法关…

Hierarchical Cross-Modal Agent for Robotics Vision-and-Language Navigation

题目&#xff1a;用于视觉语言导航的层次化跨模态智能体 摘要 1. 问题背景和现有方法 VLN任务&#xff1a;这是一种复杂的任务&#xff0c;要求智能体基于视觉输入和自然语言指令进行导航。 现有方法的局限性&#xff1a;之前的工作大多将这个问题表示为离散的导航图&#x…