openEuler 22.03 使用cephadm安装部署ceph集群

目录

  • 目的
  • 步骤
    • 规格
    • 步骤
      • ceph部署前准备工作
      • 安装部署ceph集群
      • ceph集群添加node与osd
      • ceph集群一些操作
        • 组件服务操作
        • 集群进程操作

目的

使用ceph官网的cephadm无法正常安装,会报错ERROR: Distro openeuler version 22.03 not supported

在openEuler上实现以cephadm安装部署ceph集群。

步骤

规格

所有主机均为openEuler22.03 LTS SP3

虚拟机名配置IP 地址主机名角色磁盘配置
node12C4G192.168.100.81node1.example.comMon、mgr、osd(引导节点)系统盘 20GB, OSD盘 10GB x 3
node22C4G192.168.100.82node2.example.comMon、mgr、osd系统盘 20GB, OSD盘 10GB x 3
node32C4G192.168.100.83node3.example.comMon、osd(复用客户端)系统盘 20GB, OSD盘 10GB x 3
node42C4G192.168.100.84node4.example.comosd 扩容备用节点系统盘 20GB, OSD盘 10GB x 3

PS1: 以上虚拟机均需要配置三块硬盘,每块硬盘分别为系统盘(20GB)和三块OSD盘(10GB每块),每个节点共四块硬盘。
PS2: 该实验仅需node1~3 三台主机即可。

步骤

ceph部署前准备工作

  1. 设置主机名
# 所有主机分别设置
hostnamectl set-hostname node1.example.com
hostnamectl set-hostname node2.example.com
hostnamectl set-hostname node3.example.com
  1. 设置ip
#node1:
 nmcli con de ens33
 nmcli con add type ethernet ifname ens33 con-name ens33 ipv4.addresses 192.168.100.81/24 ipv4.gateway 192.168.100.2 ipv4.dns 192.168.100.2 ipv4.method manual autoconnect yes

#node2:
 nmcli con de ens33
 nmcli con add type ethernet ifname ens33 con-name ens33 ipv4.addresses 192.168.100.82/24 ipv4.gateway 192.168.100.2 ipv4.dns 192.168.100.2 ipv4.method manual autoconnect yes

#node1:
 nmcli con de ens33
 nmcli con add type ethernet ifname ens33 con-name ens33 ipv4.addresses 192.168.100.83/24 ipv4.gateway 192.168.100.2 ipv4.dns 192.168.100.2 ipv4.method manual autoconnect yes
  1. 设置hosts文件
# node1:
# 设置hosts文件,将三台主机的ip和主机名加入
cat << EOF >> /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.81 node1.example.com
192.168.100.82 node2.example.com
192.168.100.83 node3.example.com
EOF

# scp传输到另外两台主机
 scp /etc/hosts node2.example.com:/etc/
 scp /etc/hosts node3.example.com:/etc/
  1. 关闭防火墙和selinux
# 所有主机
systemctl disable --now firewalld
sed -i 's|enforcing|disabled|g' /etc/sysconfig/selinux
  1. 设置时间同步
# 所有主机
echo 'server ntp.aliyun.com iburst' >> /etc/chrony.conf
systemctl restart chronyd.service
systemctl enable chronyd --now
  1. 安装podman
# 所有主机
yum install -y podman
  1. 重启

安装部署ceph集群

  1. 安装openeuler专用cephadm
# 引导节点node1
yum install git -y
git clone https://gitee.com/yftyxa/openeuler-cephadm.git
cp openeuler-cephadm/cephadm /usr/sbin && chmod a+x /usr/sbin/cephadm
  1. 添加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. 初始化ceph集群
# 引导节点node1
# mon-ip即web页面访问IP,user和password就是访问的账户和密码
cephadm bootstrap --mon-ip 192.168.100.81 --allow-fqdn-hostname --initial-dashboard-user admin --initial-dashboard-password Huawei@123 --dashboard-password-noupdate

看到下图的url,证明安装成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ceph集群添加node与osd

  1. 创建ceph shell(ceph集群的管理容器)
# node1
 cephadm shell

# 也可以安装ceph-common  (不用每次cephadm shell)
 yum install ceph-common

查看状态

[ceph: root@node1 /]# ceph -s
  cluster:
    id:     b4982244-b181-11ef-9973-000c295bb5dc
    health: HEALTH_WARN
            OSD count 0 < osd_pool_default_size 3

  services:
    mon: 1 daemons, quorum node1.example.com (age 6m)
    mgr: node1.example.com.ehhbco(active, since 2m)
    osd: 0 osds: 0 up, 0 in

  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 B
    usage:   0 B used, 0 B / 0 B avail
    pgs:

  progress:
    Updating grafana deployment (+1 -> 1) (0s)
      [............................]
  1. 生成ceph公钥,并给到其他节点
# node1
ceph cephadm get-pub-key > ~/ceph.pub
ssh-copy-id -f -i ~/ceph.pub root@node2.example.com
ssh-copy-id -f -i ~/ceph.pub root@node3.example.com
  1. 添加节点进入集群
[ceph: root@node1 /]# ceph orch host add node2.example.com
Added host 'node2.example.com' with addr '192.168.100.82'
[ceph: root@node1 /]# ceph orch host add node3.example.com
Added host 'node3.example.com' with addr '192.168.100.83'

在这里插入图片描述
4. 查看状态

# 查看主机信息
[ceph: root@node1 /]# ceph orch host ls
HOST               ADDR            LABELS  STATUS
主机名              地址             标签      状态(不正常才会有显示)
node1.example.com  192.168.100.81  _admin
node2.example.com  192.168.100.82
node3.example.com  192.168.100.83
3 hosts in cluster
  1. 给主机打标签
# ceph shell
[ceph: root@node1 /]# ceph orch host label add node2.example.com mgr_test
Added label mgr_test to host node2.example.com
[ceph: root@node1 /]# ceph orch host label add node2.example.com _admin
Added label _admin to host node2.example.com
[ceph: root@node1 /]# ceph orch host label add node3.example.com _admin
Added label _admin to host node3.example.com

# 查看状态
[ceph: root@node1 /]# ceph orch host ls
HOST               ADDR            LABELS           STATUS
node1.example.com  192.168.100.81  _admin
node2.example.com  192.168.100.82  mgr_test _admin
node3.example.com  192.168.100.83  _admin
3 hosts in cluster

  1. 添加osd

ceph orch daemon add osd <主机名>:/path

# 手动添加某一块硬盘为osd
ceph orch  daemon add osd  node1.example.com:/dev/sdb
# 添加所有空闲硬盘为osd
ceph orch apply osd --all-available-devices

在这里插入图片描述
查看osd

[ceph: root@node1 /]# ceph osd ls
0
1
2
3
4
5
6
7
8

ceph集群一些操作

组件服务操作
  1. 查询组件服务状态
[ceph: root@node1 /]# ceph orch ls
NAME           PORTS        RUNNING  REFRESHED  AGE  PLACEMENT
服务名         IP加端口     运行状态/数量   刷新  运行  部署方式  
alertmanager   ?:9093,9094      1/1  23s ago    17m  count:1
crash                           3/3  26s ago    17m  *
grafana        ?:3000           1/1  23s ago    17m  count:1
mgr                             2/2  26s ago    17m  count:2
mon                             3/5  26s ago    17m  count:5
node-exporter  ?:9100           3/3  26s ago    17m  *
prometheus     ?:9095           1/1  23s ago    17m  count:1

count:1 该服务组件只在某一个节点上进行部署
‘*’ : 表示该服务在所有节点上部署
主机名: 表示仅在特定主机上部署
标签名: 表示仅在指定标签主机上部署

  1. 关闭组件自扩展

为什么加入主机到集群后,ceph的组件会自动部署到主机上???
CEPH集群有节点自扩展能力,会自动部署集群所需要的组件数量

ceph orch apply <组件名> --unmanaged=true

# ceph shell
ceph orch apply mon --unmanaged=true

在这里插入图片描述

  1. 部署组件(编排)

ceph orch apply <组件名> xxxxx

# 指定部署3个mgr节点
ceph orch apply  mgr --placement=3
# 可以指定标签
[ceph: root@node1 /]# ceph orch apply mon --placement="label:_admin"
Scheduled mon update...

  1. 部署组件(手动)

ceph orch daemon add <组件名> <主机名>

ceph orch daemon add mgr  node3.example.com
集群进程操作
  1. 查看进程
ceph orch ps
  1. 启动进程
ceph orch   start alertmanager #将所有节点上的服务启动起来
ceph orch  daemon start node-exporter.node1  #启动指定节点上的服务进程

  1. 停止进程
ceph orch   stop alertmanager  #将所有节点上的进程停止
ceph orch  daemon  stop  node-exporter.node1 #停止指定节点的指定进程

  1. 重启进程
ceph orch   restart   alertmanager #重启一组服务
ceph orch   daemon  restart  alertmanager #重启单个进程(服务)

  1. 删除进程
ceph orch   daemon rm node-exporter.node3 #删除指定节点的指定进程
ceph orch  rm node-exporter  #删除一组服务,在所有节点上删除该服务
# 需要添加回来,请参考上一步的部署服务

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

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

相关文章

MySQL-DDL之数据库操作

文章目录 一. 创建数据库1. 直接创建数据库&#xff0c;如果存在则报错2. 如果数据库不存在则创建3. 创建数据库时设置字符集4. 栗子 二. 查看数据库1. 查看数据库 三. 删除数据库1. 删除数据库 四. 使用数据库1. 使用数据库2. 查看正在使用的数据库 数据定义语言&#xff1a;简…

java 操作 redis

文章目录 一. java 操作 redis1. 引入依赖2. 配置端口转发3. 连接redis服务器 二. 基础命令get/setexists/delKEYSEXPIRE/TTLTYPE 之前介绍的是各种redis的基本操作/命令, 都是在redis命令行客户端, 手动执行的 但是在日常开发中, 更多的是使用redis的api, 来实现定制化的redis…

WGAN生成对抗网络数据生成

数据生成 | WGAN生成对抗网络数据生成 目录 数据生成 | WGAN生成对抗网络数据生成生成效果基本描述程序设计参考资料 生成效果 基本描述 1.WGAN生成对抗网络&#xff0c;数据生成&#xff0c;样本生成程序&#xff0c;MATLAB程序&#xff1b; 2.适用于MATLAB 2020版及以上版本&…

飞凌嵌入式受邀亮相瑞萨2024工业技术研讨会

11月30日&#xff0c;一年一度的2024瑞萨电子MCU/MPU工业技术研讨会在深圳举行了首秀&#xff0c;为大湾区及全国嵌入式工程师献上一场全新工业技术的大秀。 飞凌嵌入式作为瑞萨电子的生态合作伙伴&#xff0c;给现场观众带去了基于RZ/G2L高性能多核异构处理器设计开发的FET-G2…

C++STL容器vector容器大小相关函数

目录 前言 主要参考 vector::size vector::max_size vector::resize vector::capacity vector::empty vector::reserve vector::shrink_to_fit 共勉 前言 本文将讨论STL容器vector中与迭代器相关的函数&#xff0c;模板参数T为int类型。 主要参考 cpluscplus.com 侯…

JavaWeb学习(3)(Servlet详细、Servlet的三种实现方式(面试)、Servlet的生命周期、传统web.xml配置Servlet(了解))

目录 一、Servlet详细。 &#xff08;1&#xff09;基本介绍。 &#xff08;2&#xff09;基本作用。 1、接收客户端请求数据。 2、处理请求。 3、完成响应结果。 二、Servlet的三种实现方式。 &#xff08;1&#xff09;实现javax.servlet.Servlet接口。 1、基本介绍。 2、代码…

Spring Boot读取配置文件的六种方案

从配置文件中获取属性应该是SpringBoot开发中最为常用的功能之一&#xff0c;但就是这么常用的功能&#xff0c;仍然有很多开发者在这个方面踩坑&#xff0c;以下是我整理的几种获取配置属性的方式。 一、Environment 使用 Environment 方式来获取配置属性值非常简单&#xf…

在google cloud虚拟机上配置anaconda虚拟环境简单教程

下载anaconda安装包 wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh 安装 bash Anaconda3-2022.10-Linux-x86_64.sh 进入base环境 eval "$(/home/xmxhuihui/anaconda3/bin/conda shell.bash hook)" source ~/.bashrc 安装虚拟环境…

【5G】5G目标和标准化 5G targets and standardization

5G标准是在第三代合作伙伴关系项目&#xff08;3GPP&#xff0c;3rd Generation Partnership Project&#xff09;中定义的&#xff0c;实际的标准制定工作由参与3GPP活动的区域标准机构成员共同推进。目前&#xff0c;超过600家公司通过各自的地区标准组织成为3GPP的成员。然而…

神经网络的梯度反向传播计算过程,举例说明

目录 神经网络的梯度反向传播计算过程 网络结构 权重和偏置 激活函数 前向传播 损失函数 反向传播 参数更新 举例 神经网络的梯度反向传播计算过程 为了说明神经网络的梯度反向传播计算过程,我们考虑一个简单的全连接网络,该网络有一个输入层、一个隐藏层和一个输出…

网络分层模型( OSI、TCP/IP、五层协议)

1、网络分层模型 计算机网络是一个极其复杂的系统。想象一下最简单的情况&#xff1a;两台连接在网络上的计算机需要相互传输文件。不仅需要确保存在一条传输数据的通路&#xff0c;还需要完成以下几项工作&#xff1a; 发起通信的计算机必须激活数据通路&#xff0c;这包括发…

Unity中使用Sqlite存储本地数据

sqlite-net sqlite下载页 我的环境&#xff1a;win11、unity团结1.3.4 1.下载sqlite-net&#xff0c;将SQLite.cs脚本导入Unity 2.下载各平台依赖项&#xff0c;如dll、aar等。导入Unity并设置 3.简单列子&#xff0c;打包测试 using System; using System.IO; using SQLi…

详解LeetCode地下城游戏(动态规划)——区分两种状态表示形式

地下城游戏 题目链接&#xff1a;174. 地下城游戏 状态表示&#xff1a; 按照以往题的表示&#xff0c;dp[i][j]表示&#xff1a;从起点&#xff08;0&#xff0c;0&#xff09;位置到达&#xff08;i&#xff0c;j&#xff09;位置时&#xff0c;所需的最小初始健康值。但是…

【JAVA】Java第十三节:String类(String相关方法,以及StrinBuftrer , StringBulder相关方法)

本文详细介绍了String类以及常用的String相关方法&#xff0c;以及StrinBuftrer , StringBulder相关方法的使用&#xff0c;建议有印象即可&#xff0c;不需要都记住&#xff0c;使用时去查取即可 一、创建一个String类型的变量 我们平时创建String类型的变量一般是第一种形式…

JavaWeb文件上传

文件上传总览 文件上传主要是指将本地文件&#xff08;包括但不限于图片、视频、音频等&#xff09;上传到服务器&#xff0c;提供其他用户浏览或下载的过程。在日常生活中&#xff0c;我们在很多情况下都需要使用文件上传功能&#xff0c;比如&#xff1a;发微博、发朋友圈等…

Doris的基础架构

Doris的基础架构 Frontend&#xff08;FE&#xff09;&#xff1a;主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。Backend&#xff08;BE&#xff09;&#xff1a;主要负责数据存储、查询计划的执行。 我的Github地址&#xff0c;欢迎大家加入我的开…

Shell test 命令

Shell test 命令 Shell中的 test 命令用于检查某个条件是否成立&#xff0c;它可以进行数值、字符和文件三个方面的测试。 数值测试 参数说明-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则为真-le小于等于则为真 实例 num1100 num2100 if test $[n…

Kafka的消费消息是如何传递的?

大家好&#xff0c;我是锋哥。今天分享关于【Kafka的消费消息是如何传递的&#xff1f;】面试题。希望对大家有帮助&#xff1b; Kafka的消费消息是如何传递的&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Kafka 的消息传递是通过 消费者&#xff08…

Linux-ADC驱动实验

上一章我们讲解了如何给 ICM20608 编写 IIO 驱动&#xff0c;ICM20608 本质就是 ADC&#xff0c;因此纯粹的 ADC 驱动也是 IIO 驱动框架的。本章我们就来学习一下如何使用 I.MX6ULL 内部的 ADC&#xff0c;并且在学习巩固一下 IIO 驱动。 ADC 驱动源码简析 设备树下的 ADC 节点…

如何制作“优美”PPT

目录 1.免费PPT模板网站&#xff1a; 2.免费有较好质量的图片网站&#xff1a; 免费图片资源 免费透明PNG图片资源&#xff1a; 免费icon图片资源&#xff1a; 3.选择好的图片&#xff1a; 图片底色 4.要与不要 千万不要&#xff1a; 一定要&#xff1a; 6.一些建议…