Ceph——部署

Ceph简介

        Ceph是一款开源的 SDS 分布式存储,它具备极高的可用性、扩展性和易用性,可用于存
储海量数据
        
        Ceph的存储节点可部署在通用服务器上,这些服务器的 CPU 可以是 x86 架构的,也可以
ARM 架构的。 Ceph 存储节点之间相互通信,以便对存储的数据进行动态复制和重分配

 Ceph的技术优势

采用 RADOS 系统将所有数据作为对象,存储在存储池中
使用 CRUSH 算法计算出对象所对应的存储位置
去中心化,客户端可根据 CRUSH 算法自行计算出对象存储位置,然后进行数据读写
集群可自动进行扩展、数据再平衡、数据恢复等

Ceph的组件总览

• MON MGR MDS OSD 属于 ceph 的后端存储组件
• RADOSGW RBD CEPHFS LIBRADOS 属于 ceph 的访问方式

 


1、ceph的安装

192.168.186.100 ceph01.novalocal ceph01
192.168.186.101 ceph02.novalocal ceph02
192.168.186.102 ceph03.novalocal ceph03
192.168.186.103 Client

1.1 前期准备

1、更改主机名
[root@localhost ~]# hostnamectl hostname ceph01.novalocal
[root@localhost ~]# hostnamectl hostname ceph02.novalocal
[root@localhost ~]# hostnamectl hostname ceph03.novalocal
2、更改hosts文件
[root@ceph02 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.186.100 ceph01.novalocal ceph01
192.168.186.101 ceph02.novalocal ceph02
192.168.186.102 ceph03.novalocal ceph03
3、添加完成后,在 ceph01 上 ping 各个主机名,保证网络通信正常。

4、关闭防火墙和SElinux,配置时间同步
systemctl disable firewalld
yum install -y chrony
systemctl enable chronyd --now

1.2 下载安装cephadm

1、安装git
[root@ceph01 ~]#dnf install -y git
[root@ceph01 ~]# git --version
git version 2.33.0
2、下载cephadm
[root@ceph01 ~]#git clone https://gitee.com/yftyxa/openeuler-cephadm.git
3、下载完成后,将下载到的 cephadm 复制到/usr/sbin/下,并为其添加可执行权限,具体命令为:
[root@ceph01 ~]# cp openeuler-cephadm/cephadm /usr/sbin && chmod a+x /usr/sbin/cephadm

1.3 添加ceph所需要的yum源

[root@ceph01 ~]# vim /etc/yum.repos.d/ceph.repo 
[Ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-nautilus/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
 
[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1
 
[ceph-source]
name=Ceph source packages
baseurl=http://download.ceph.com/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1

1.4 安装官方推荐容器引擎

1、在所有主机上使用以下命令添加容器引擎所需 yum 源:
[root@ceph01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-8-reg.repo
2、使用以下命令安装对应容器引擎
[root@ceph01 ~]# yum install podman-3.3.1-9.module_el8.5.0+988+b1f0b741.x86_64 lvm2 -y
3、完成后,重启所有主机

2、 安装部署ceph集群

2.1 在ceph01上初始化ceph集群

2.2 为集群添加node节点 

2、为集群添加 node 节点,使用以下命令创建 ceph 的管理容器
[root@ceph02 ~]# cephadm shell
3、使用以下命令生成集群公钥,并将其拷贝到剩余主机:
[root@ceph01 ~]# ssh-keygen  -t rsa
[root@ceph01 ~]# ssh-copy-id ceph02.novalocal 
[root@ceph01 ~]# ssh-copy-id ceph03.novalocal 
 
4、使用以下命令将全部主机添加到集群内:
[ceph: root@ceph01 /]# ceph orch host add ceph02.novalocal
Added host 'ceph02.novalocal' with addr '192.168.186.101'
[ceph: root@ceph01 /]# ceph orch host add ceph03.novalocal

5、添加完成后,使用以下命令查看当前集群中主机状态:
[ceph: root@ceph01 /]# ceph orch host ls
HOST              ADDR             LABELS  STATUS  
ceph01.novalocal  192.168.186.100  _admin          
ceph02.novalocal  192.168.186.101                  
ceph03.novalocal  192.168.186.102                 
3 hosts in cluster

6、等待系统自动将服务部署到所有节点中(时间较长,请耐心等待),部署完成后状态如下:
[ceph: root@ceph01 /]# ceph orch ls
NAME           PORTS        RUNNING  REFRESHED  AGE  PLACEMENT  
alertmanager   ?:9093,9094      1/1  107s ago   4d   count:1    
crash                           3/3  109s ago   4d   *          
grafana        ?:3000           1/1  107s ago   4d   count:1    
mgr                             2/2  109s ago   4d   count:2    
mon                             3/5  109s ago   4d   count:5    
node-exporter  ?:9100           1/3  109s ago   4d   *          
prometheus     ?:9095           1/1  107s ago   4d   count:1    
[ceph: root@ceph01 /]# 
​
7、使用以下命令取消 mon 服务的自动扩展功能:
[ceph: root@ceph01 /]# ceph orch apply mon --unmanaged=true
Scheduled mon update...
8、取消以后,mon 对应的“PLACEMENT”值变为“unmanaged”,如下图所示:
[ceph: root@ceph01 /]# ceph orch ls
NAME           PORTS        RUNNING  REFRESHED  AGE  PLACEMENT    
alertmanager   ?:9093,9094      1/1  3m ago     4d   count:1      
crash                           3/3  5m ago     4d   *            
grafana        ?:3000           1/1  3m ago     4d   count:1      
mgr                             2/2  5m ago     4d   count:2      
mon                             3/5  5m ago     93s  <unmanaged>  
node-exporter  ?:9100           1/3  5m ago     4d   *            
prometheus     ?:9095           1/1  3m ago     4d   count:1  

9、使用以下命令为 ceph02 和 ceph03 添加标签“_admin”:
[ceph: root@ceph01 /]#  ceph orch host label add ceph02.novalocal _admin
Added label _admin to host ceph02.novalocal
[ceph: root@ceph01 /]#  ceph orch host label add ceph03.novalocal _admin
Added label _admin to host ceph03.novalocal
​
10、使用以下命令将 mon 和 mgr 组件部署到指定节点中:
[ceph: root@ceph01 /]#  ceph orch apply mon --placement="label:_admin"
Scheduled mon update...
[ceph: root@ceph01 /]# ceph orch apply mgr --placement="label:_admin"
Scheduled mgr update...
 

2.3 添加OSD

1、使用以下命令,将所有主机上的硬盘添加为 OSD:
[ceph: root@ceph01 /]# ceph orch apply osd --all-available-devices
Scheduled osd.all-available-devices update...

2、添加完成后,使用命令“ceph orch ps”查看所有主机上的组件:

3、 其他 ceph 常用操作

3.1 移除服务

1、首先将 ceph02 中的服务筛选出来,具体命令如下

2、首先删除命令“ceph orch apply <name> --unmanaged=true”关闭集群组件的自动扩展,
[ceph: root@ceph01 /]# ceph orch apply crash --unmanaged=true
Scheduled crash update...
[ceph: root@ceph01 /]# ceph orch apply mon --unmanaged=true
Scheduled mon update...
[ceph: root@ceph01 /]# ceph orch apply mgr --unmanaged=true
Scheduled mgr update...

3、使用对应命令删除指定服务:
[ceph: root@ceph01 /]# ceph orch daemon rm crash.ceph02
Removed crash.ceph02 from host 'ceph02.novalocal'
[ceph: root@ceph01 /]# ceph orch daemon rm mon.ceph02 --force
Removed mon.ceph02 from host 'ceph02.novalocal' 
[ceph: root@ceph01 /]# ceph orch daemon rm mgr.ceph02.bkrmmo
Removed mgr.ceph02.bkrmmo from host 'ceph02.novalocal'

 3.2 移除OSD

1、使用以下命令停止ceph02中的osd:
[ceph: root@ceph01 /]# ceph orch daemon stop osd.0
Scheduled to stop osd.0 on host 'ceph02.novalocal'
[ceph: root@ceph01 /]# ceph orch daemon stop osd.1
Scheduled to stop osd.1 on host 'ceph03.novalocal'
[ceph: root@ceph01 /]# ceph orch daemon stop osd.2
Scheduled to stop osd.2 on host 'ceph01.novalocal'

2、待所有osd停止后,使用以下命令移除osd:
[ceph: root@ceph01 /]# ceph osd rm 0
removed osd.0
[ceph: root@ceph01 /]# ceph osd rm 1
removed osd.1
[ceph: root@ceph01 /]# ceph osd rm 2
removed osd.2
[ceph: root@ceph01 /]# 

3、然后擦除对应磁盘的数据:
[ceph: root@ceph01 /]# ceph orch device zap ceph02.novalocal /dev/sdb --force
zap successful for /dev/sdb on ceph02.novalocal

4、最后删除CURSH的osd映射:
[ceph: root@ceph01 /]# ceph osd crush rm osd.0
removed item id 0 name 'osd.0' from crush map

5、等待CRUSH中的osd映射删除完成后,关闭自动osd部署功能,命令为:
[ceph: root@ceph01 /]# ceph orch apply osd --all-available-devices --unmanaged=true
Scheduled osd.all-available-devices update...
[ceph: root@ceph01 /]# ceph orch ls
NAME                       PORTS        RUNNING  REFRESHED  AGE  PLACEMENT    
alertmanager               ?:9093,9094      1/1  7m ago     5d   count:1      
crash                                       2/3  7m ago     35m  <unmanaged>  
grafana                    ?:3000           1/1  7m ago     5d   count:1      
mgr                                         2/2  7m ago     34m  <unmanaged>  
mon                                         2/5  7m ago     35m  <unmanaged>  
node-exporter              ?:9100           3/3  8m ago     5d   *            
osd.all-available-devices                     0  8m ago     12s  <unmanaged>  
prometheus                 ?:9095           1/1  7m ago     5d   count:1 

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

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

相关文章

深入探讨分布式ID生成方案

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

【Functional Affordances】如何确认可抓取的区域?(前传)

文章目录 1. 【Meta AI】Emerging Properties in Self-Supervised Vision Transformers2. 【Meta AI】DINOv2: Learning Robust Visual Features without Supervision3. 【NeurIPS 2023】Diffusion Hyperfeatures: Searching Through Time and Space for Semantic Corresponden…

网安学习笔记-day9,DNS服务器介绍

文章目录 DNS服务器部署域名介绍及分类DNS解析解析过程1.递归查询2.迭代查询 DNS服务器部署准备阶段安装DNS服务 部署过程在另一台虚拟机查看是否能解析到baidu.com的地址测试解析 转发器 扩展命令 DNS服务器部署 DNS(Domain Name System) 域名介绍及分类 常用的www.baidu.c…

【unity】如何汉化unity编译器

在【unity】如何汉化unity Hub这篇文章中&#xff0c;我们已经完成了unity Hub的汉化&#xff0c;现在让我们对unity Hub安装的编译器也进行下汉化处理。 第一步&#xff1a;在unity Hub软件左侧栏目中点击安装&#xff0c;选择需要汉化的编译器&#xff0c;再点击设置图片按钮…

stitcher类实现多图自动拼接

效果展示 第一组&#xff1a; 第二组&#xff1a; 第三组&#xff1a; 第四组&#xff1a; 运行代码 import os import sys import cv2 import numpy as npdef Stitch(imgs,savePath): stitcher cv2.Stitcher.create(cv2.Stitcher_PANORAMA)(result, pano) stitcher.st…

自动化面试常见算法题!

1、实现一个数字的反转&#xff0c;比如输入12345&#xff0c;输出54321 num 12345 num_str str(num) reversed_num_str num_str[::-1] reversed_num int(reversed_num_str) print(reversed_num) # 输出 54321代码解析&#xff1a;首先将输入的数字转换为字符串&#xff…

ARMday7作业

实现三个按键的中断&#xff0c;现象和代码 do_ipr.c #include "stm32mp1xx_gic.h" #include "stm32mp1xx_exti.h" extern void printf(const char *fmt, ...); unsigned int i 0; void do_irq(void) {//获取要处理的中断的中断号unsigned int irqnoGI…

离线数仓(八)【DWD 层开发】

前言 1、DWD 层开发 DWD层设计要点&#xff1a; &#xff08;1&#xff09;DWD层的设计依据是维度建模理论&#xff08;主体是事务型事实表&#xff08;选择业务过程 -> 声明粒度 -> 确定维度 -> 确定事实&#xff09;&#xff0c;另外两种周期型快照事实表和累积型…

信号处理--情绪分类数据集DEAP预处理(python版)

关于 DEAP数据集是一个常用的情绪分类公共数据&#xff0c;在日常研究中经常被使用到。如何合理地预处理DEAP数据集&#xff0c;对于后端任务的成功与否&#xff0c;非常重要。本文主要介绍DEAP数据集的预处理流程。 工具 图片来源&#xff1a;DEAP: A Dataset for Emotion A…

如何备考2025年AMC8竞赛?吃透2000-2024年600道真题(免费送题

最近有家长朋友问我&#xff0c;现在有哪些类似于奥数的比赛可以参加&#xff1f;我的建议可以关注下AMC8的竞赛&#xff0c;类似于国内的奥数&#xff0c;但是其难度要比国内的奥数低一些&#xff0c;而且比赛门槛更低&#xff0c;考试也更方便。比赛的题目尤其是应用题比较有…

肿瘤靶向肽 iRGD peptide环肽 1392278-76-0 c(CRGDKGPDC)

RGD环肽 c(CRGDKGPDC)&#xff0c;iRGD peptide 1392278-76-0 结 构 式&#xff1a; H2N-CRGDKGPDC-OH(Disulfide Bridge:C1-C9) H2N-Cys-Arg-Gly-Asp-Lys-Gly-Pro-Asp-Cys-COOH(Disulfide Bridge:Cys1-Cys9) 氨基酸个数&#xff1a; 9 C35H57N13O14S2 平均分子量:…

聊聊低代码产品的应用场景

随着数字化转型的不断深入&#xff0c;企业对于快速开发和迭代软件应用的需求也越来越迫切。而在这样的背景下&#xff0c;低代码产品应运而生&#xff0c;成为了一种热门的技术解决方案。本文将解读低代码产品的定义并探讨其应用场景。 一、低代码产品的定义 低代码产品是一种…

企业计算机服务器中了rmallox勒索病毒怎么办,rmallox勒索病毒解密流程步骤

在网络技术飞速发展的时代&#xff0c;越来越多的企业离不开网络办公&#xff0c;通过网络开展各项工作业务成为企业的常态&#xff0c;这也被国外众多黑客组织盯上的原因&#xff0c;近期&#xff0c;网络勒索病毒攻击的事件频发&#xff0c;越来越多的企业开始重视企业数据安…

Rust语言中Regex正则表达式,匹配和查找替换等

官方仓库&#xff1a;https://crates.io/crates/regex 文档地址&#xff1a;regex - Rust github仓库地址&#xff1a;GitHub - rust-lang/regex: An implementation of regular expressions for Rust. This implementation uses finite automata and guarantees linear tim…

leetcode:2138. 将字符串拆分为若干长度为 k 的组(python3解法)

难度&#xff1a;简单 字符串 s 可以按下述步骤划分为若干长度为 k 的组&#xff1a; 第一组由字符串中的前 k 个字符组成&#xff0c;第二组由接下来的 k 个字符串组成&#xff0c;依此类推。每个字符都能够成为 某一个 组的一部分。对于最后一组&#xff0c;如果字符串剩下的…

【SAP2000】在框架结构中应用分布式面板荷载Applying Distributed Panel Loads to Frame Structures

在框架结构中应用分布式面板荷载 Applying Distributed Panel Loads to Frame Structures 使用"Uniform to Frame"选项,可以简单地将荷载用于更多样化的情况。 With the “Uniform to Frame” option, loads can be easily used for a greater diversity of situat…

如何高效阅读嵌入式代码

大家好&#xff0c;今天给大家介绍如何高效阅读嵌入式代码&#xff0c;文章末尾附有分享大家一个资料包&#xff0c;差不多150多G。里面学习内容、面经、项目都比较新也比较全&#xff01;可进群免费领取。 高效阅读嵌入式代码需要一些技巧和实践经验。以下是一些建议&#xff…

Sublime 彻底解决中文乱码

1. 按ctrl&#xff0c;打开Console&#xff0c;输入如下代码&#xff1a; import urllib.request,os; pf Package Control.sublime-package; ipp sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHand…

excel统计分析——单向分组资料的协方差分析

参考资料&#xff1a;生物统计学 单向分组资料是具有一个协变量的单因素方差分析资料。 操作案例如下&#xff1a; 1、对x和y进行方差分析 由方差分析表可知&#xff1a;4种处理间&#xff0c;x存在显著差异&#xff0c;而y在处理间差异不显著。需要进行协方差分析&#xff0c…

【C语言】linux内核pci_iomap

一、pci_iomap /** pci_iomap 是一个用于映射 PCI 设备的 BAR&#xff08;Base Address Register&#xff0c;基地址寄存器&#xff09;的函数。* 此函数返回指向内存映射 IO 的指针&#xff0c;用于直接访问 PCI 设备的内存或 I/O 空间。* * 参数:* dev - 指向pci_dev结构的指…