2024广东省职业技能大赛云计算赛项实战——Ceph集群部署

Ceph部署

前言

今年的比赛也是考了Ceph,题目是这道,往年国赛里翻到的:
使用提供的 ceph.tar.gz 软件包,安装 ceph 服务并完成初始化操作。使用提供的 ceph-14.2.22.tar.gz 软件包,在 OpenStack 平台上创建三台CentOS7.9 系统的云主机,使用这三个节点安装 ceph 服务并完成初始化操作,第一个节点为 mon/osd 节点,第二、三个节点为 osd 节点,部署完 ceph 后,创建 vms、images、volumes 三个 pool。

Ceph 是一个开源的分布式存储系统,提供高度可扩展、高性能和高可靠性的存储解决方案。它可以支持对象存储、块存储和文件系统等多种存储模式,因此广泛应用于云计算、虚拟化、大数据分析等领域。

虚拟机使用的是自行创建的CentOS7,如果你不会,那虚拟机创建的流程可以参考我这篇文章:职业技能大赛云计算赛项实战——OpenStack搭建-CSDN博客
使用镜像为CentOS-7-x86_64-DVD-2009.iso,可从阿里镜像站下载:https://mirrors.aliyun.com/centos/7/isos/x86_64/
需要用到的Ceph软件仓库:https://pan.baidu.com/s/1nIHFl4prft5clHxPRo2umw?pwd=ao80
提取码:ao80
这道题有不少坑,题目说的是使用ceph-14.2.22.tar.gz 软件包,但这个包里面没有ceph-common依赖需要的python-prettytable,CentOS7.9的系统源里也没有,所以是死胡同。但在比赛的http源里,我找到了一个CentOS7.5的系统源,它里面有python-prettytable,我靠指定这个源做出来了这道题。而在本地环境中,我选择了在源里找到的另一个ceph.tar.gz软件包来做这个实验,它里面直接就包含了python-prettytable的包。

节点规划如下
因为配置ceph osd节点需要空白磁盘,所以每台机子都需要有空白磁盘才行

主机名IP/24磁盘节点
ceph1192.168.100.11额外一块20G空白磁盘mon/osd节点
ceph2192.168.100.12额外一块20G空白磁盘osd节点
ceph3192.168.100.13额外一块20G空白磁盘osd节点

操作过程

准备工作

更改主机名
[root@localhost ~]# hostnamectl set-hostname ceph1
[root@localhost ~]# bash
[root@ceph1 ~]# [root@localhost ~]# hostnamectl set-hostname ceph2
[root@localhost ~]# bash
[root@ceph2 ~]# [root@localhost ~]# hostnamectl set-hostname ceph3
[root@localhost ~]# bash
[root@ceph3 ~]# 
关闭防火墙和Selinux
#三个节点均关闭防火墙和Selinux
[root@ceph1/2/3 ~]# systemctl stop firewalld && systemctl disable firewalld
[root@ceph1 ~]# setenforce 0
配置YUM源仓库
#ceph1:
#先通过远程连接软件(SecureFX、XShell均可)把我提供的Ceph软件仓库上传至ceph1节点
[root@ceph1 ~]# ls
anaconda-ks.cfg  ceph.tar.gz
#将压缩包解压至opt目录
[root@ceph1 ~]# tar -zxf ceph.tar.gz -C /opt
#创建挂载Centos镜像的目录
[root@ceph1 ~]# mkdir /opt/centos
#挂载Centos系统镜像,这里省时间直接临时挂载了,麻烦在后续每次重启都要挂载一遍。我在这篇文章有讲到各个挂载方式的区别,有兴趣可以看一下:https://blog.csdn.net/kuuuugua/article/details/139547626
[root@ceph1 ~]# mount -o loop /dev/sr0 /opt/centos
#删除系统默认源
[root@ceph1 ~]# rm -rf /etc/yum.repos.d/*
#创建新的仓库文件
[root@ceph1 ~]# vi /etc/yum.repos.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
enabled=1
gpgcheck=0
[ceph]
name=ceph
baseurl=file:///opt/ceph
enabled=1
gpgcheck=0
#检查可用性
[root@ceph1 ~]# yum clean all && yum repolist
...
源标识                               源名称                                状态
centos                               centos                                4,070
ceph                                 ceph                                    129
repolist: 4,199
#另外两台机子也配置本地源的话未免过于费时,我们在cpeh1安装ftp服务,让它们通过ftp服务使用ceph1的软件仓库
[root@ceph1 ~]# yum -y install vsftpd
...
Complete!
#修改ftp服务的配置文件,共享/opt目录
[root@ceph1 ~]# echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf 
##启动ftp服务并设置开机自启
[root@ceph1 ~]# systemctl start vsftpd && systemctl enable vsftpd
...#ceph2/ceph3:
#删除系统默认源
[root@ceph2/3 ~]# rm -rf /etc/yum.repos.d/*
#创建新的仓库文件
[root@ceph2/3 ~]# vi /etc/yum.repos.d/local.repo 
[ceph]
name=redis
baseurl=ftp://192.168.100.11/ceph
enabled=1
gpgcheck=0
#检查可用性
[root@ceph2 ~]# yum clean all && yum repolist
...
源标识                                源名称                                状态
ceph                                  ceph                                 129
repolist: 129
配置主机映射
#ceph1:
#现在ceph1配置好主机映射
[root@ceph1 ~]# cat >> /etc/hosts << EOF
> 192.168.100.11 ceph1
> 192.168.100.12 ceph2
> 192.168.100.13 ceph3
> EOF
#然后通过scp命令将其发给另外两台机子
[root@ceph1 ~]# scp /etc/hosts root@ceph2:/etc/hosts
...
Are you sure you want to continue connecting (yes/no)? yes
...
root@ceph2's password: #输入对应主机的密码
[root@ceph1 ~]# scp /etc/hosts root@ceph3:/etc/hosts
#操作同理
配置免密登录
#因为后续我们需要用ceph-deploy管理工具频繁连接其他节点,所以需要配置免密登录
#ceph1:
#生成SSH密钥对
[root@ceph1 ~]# ssh-keygen
#一直回车就行
#复制公钥给其他主机
[root@ceph1 ~]# ssh-copy-id root@ceph1
...
Are you sure you want to continue connecting (yes/no)? yes
...
root@ceph1's password: #输入对应主机密码
[root@ceph1 ~]# ssh-copy-id root@ceph2
[root@ceph1 ~]# ssh-copy-id root@ceph3
#操作同理

安装配置Ceph

#在此之前,我们先删掉主目录下的ceph.tar.gz压缩包,否则后面我们输入yum -y install ceph-*命令时,系统会默认从当前目录下寻找可用的安装包安装,而ceph.tar.gz(不是rpm后缀)显然不是可用的安装包,就会报错
[root@ceph1 ~]# rm -rf ceph.tar.gz
#在ceph1节点安装ceph的所有组件(其中包括部署工具ceph-deploy)
[root@ceph1 ~]# yum -y install ceph-*
...
#切换至ceph目录,保证后续生成的文件在该目录下
[root@ceph1 ~]# cd /etc/ceph/
#创建部署配置文件
[root@ceph1 ceph]# ceph-deploy new ceph1
...
#给所有节点安装ceph软件包
[root@ceph1 ceph]# ceph-deploy install ceph1 ceph2 ceph3 --no-adjust-repos
#--no-adjust-repos 表示不调整软件包源
...
#创建监视器(Monitor)节点
[root@ceph1 ceph]# ceph-deploy mon create-initial
#使用ceph -s命令查看集群状态
[root@ceph1 ceph]# ceph -s
...health: HEALTH_WARNmon is allowing insecure global_id reclaim
#可以看到集群健康状态中显示mon节点允许回收不安全的全局唯一标识(global_id),我们把它禁用掉
[root@ceph1 ceph]# ceph config set mon auth_allow_insecure_global_id_reclaim false
[root@ceph1 ceph]# ceph -s
...health: HEALTH_OK
#给三个节点创建osd(对象存储设备)并添加进集群中
[root@ceph1 ceph]# ceph-deploy osd create --data /dev/sdb ceph1
[root@ceph1 ceph]# ceph-deploy osd create --data /dev/sdb ceph2
[root@ceph1 ceph]# ceph-deploy osd create --data /dev/sdb ceph3
#给三个节点创建mgr(管理器),让我们可以获取集群的管理信息和服务
[root@ceph1 ceph]# ceph-deploy mgr create ceph1 ceph2 ceph3
#分发admin密钥,免得后续使用ceph命令需要指定mon节点地址、admin密钥等
[root@ceph1 ceph]# ceph-deploy admin ceph1 ceph2 ceph3
...
#根据题目要求,创建创建vms、images、volumes三个pool
[root@ceph1 ceph]# ceph osd pool create vms 8
pool 'vms' created
[root@ceph1 ceph]# ceph osd pool create images 8
pool 'images' created
[root@ceph1 ceph]# ceph osd pool create volumes 8
pool 'volumes' created
#最后查看集群状态信息,确认无误
[root@ceph1 ceph]# ceph -scluster:id:     23195c78-be62-4ad9-9269-b9c889c7ce99health: HEALTH_OK
#id和健康状况,HEALTH_OK表示集群运行正常,没有发现任何问题services:mon: 1 daemons, quorum ceph1 (age 7m)mgr: ceph1(active, since 4m), standbys: ceph2, ceph3osd: 3 osds: 3 up (since 2m), 3 in (since 2m)
#各个节点的信息,mon一行说明了ceph1为mon监视器节点
#三个节点都是mgr管理器节点,其中ceph1正在活跃中,ceph2和ceph3在待命中,会在ceph1出问题时接替ceph1
#有三个osd对象存储设备,都在线并活跃中data:pools:   3 pools, 24 pgsobjects: 0 objects, 0 Busage:   3.0 GiB used, 57 GiB / 60 GiB availpgs:     24 active+clean
#这是集群的数据信息,pools一行展示说明了这个集群有3个存储池和24个PG(Placement Group,是Ceph中数据分布和复制的基本单元)
#object一行则展示说明了当前集群中没有存储任何对象。
#usage一行则展示说明了当前集群的存储使用情况,用了3G,总共60G,还有57G能用
#pgs一行展示说明了PG的状态信息,当前有24个PG处于活跃(active)且干净(clean)的状态。(活跃表示PG正在处理数据,干净表示数据一致性检查没有发现问题,数据很完整)

后语

比赛涉及Ceph的题目还有好几道,不过我当时比赛就只考了这道。另外几道题后续我再看要不要发吧

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

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

相关文章

【Proteus仿真】【51单片机】基于物联网新能源电动车检测系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使用LCD1602液晶显示模块、WIFI模块、蜂鸣器、LED按键、ADC PCF8591、DS18B20温度传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显…

视频集市新增支持多格式流媒体拉流预览

流媒体除了常用实时流外还有大部分是以文件的形式存在&#xff0c;做融合预览必须要考虑多种兼容性能力&#xff0c;借用现有的ffmpeg生态可以迅速实现多种格式的支持&#xff0c;现在我们将按需拉流预览功能进行了拓展&#xff0c;正式支持了ffmpeg的功能&#xff0c;可快捷方…

数据标注概念

数据标注的步骤 数据清洗&#xff1a;处理数据中的噪声、缺失值和异常值&#xff0c;确保数据的质量和完整性。 数据转换&#xff1a;将数据从原始格式转换为适合机器学习模型处理的格式。 数据标注&#xff1a;根据应用需求&#xff0c;为数据添加标签或注释&#xff0c;标识…

初学51单片机之PWM实例呼吸灯以及遇到的问题(已解答)

PWM全名Pulse Width Modulation中文称呼脉冲宽度调制 如图 这是一个周期10ms、频率是100HZ的波形&#xff0c;但是每个周期内&#xff0c;高低电平宽度各不相同&#xff0c;这就是PWM的本质。 占空比是指高电平占整个周期的比列,上图第一个波形的占空比是40%&#xff0c;第二个…

Linux:多线程中的互斥与同步

多线程 线程互斥互斥锁互斥锁实现的原理封装原生线程库封装互斥锁 死锁避免死锁的四种方法 线程同步条件变量 线程互斥 在多线程中&#xff0c;如果存在有一个全局变量&#xff0c;那么这个全局变量会被所有执行流所共享。但是&#xff0c;资源共享就会存在一种问题&#xff1…

QT中常用控件的样式美化,已上传相应的qss样式和图片资源

1、QComboBox /*仅仅输入框*/ QComboBox {background-color: transparent;border-image: url(:/images/systemSetImage/common/comboBoxBk.png);border: 1px solid #7285CA

天才简史——Diederik P. Kingma与他的Adam优化器

一、了解Diederik P. Kingma 发生日期&#xff1a;2024年6月18日 前几日&#xff0c;与实验室同门一同前往七食堂吃饭。饭间&#xff0c;一位做随机优化的同门说他看过一篇被引18w的文章。随后&#xff0c;我表示不信&#xff0c;说你不会数错了吧&#xff0c;能有1.8w次被引都…

如何编译和运行您的第一个Java程序

​ 如何编译和运行您的第一个Java程序 让我们从一个简单的java程序开始。 简单的Java程序 这是一个非常基本的java程序&#xff0c;它会打印一条消息“这是我在java中的第一个程序”。 ​ public class FirstJavaProgram {public static void main(String[] args){System.…

【人机交互 复习】第7章 可视化设计

一、窗口界面类型 1.多文档界面 &#xff08;1&#xff09;优点 a.节省系统资源 b.最小的可视集 c.协同工作区 d.多文档同时可视化 &#xff08;2&#xff09;缺点 a.菜单随活动文档窗口状态变化&#xff0c;导致不一致性 b.文档窗口必须在主窗口内部&#xff0c;减弱多文档显…

台积电(TSMC)正在探索采用新型先进芯片封装技术

台积电&#xff08;TSMC&#xff09;正在探索采用新型先进芯片封装技术&#xff0c;使用类似面板的矩形基板&#xff0c;以应对日益增长的先进多芯片组处理器需求。据日经亚洲报道&#xff0c;这项开发仍处于早期阶段&#xff0c;可能需要数年时间才能商业化&#xff0c;但如果…

Minecraft服务端配置教程

一、下载服务端核心文件 下载 | FastMirror 无极镜像 | 我的世界核心下载 Downloads for Minecraft Forge for MinecraftForge服务端下载 MCVersions.net - Minecraft Versions Download List原版 注意&#xff0c;这个网站可以下载Forge水桶等插件和模组端&#xff0c;如果…

STM32HAL库--定时器篇

STM32F429 有14个定时器&#xff0c;其中包括 2 个基本定时器&#xff08;TIM6 和 TIM7&#xff09;、 10 个通用定时器&#xff08;TIM2~TIM5&#xff0c;TIM9~TIM14&#xff09;、 2 个高级控制定时器&#xff08;TIM1 和 TIM8&#xff09;。 由上表知道&#xff1a;除了 TIM…

视频服务网关的特点

一、视频服务网关的介绍 视频服务网关采用Linux操作系统&#xff0c;可支持国内外不同品牌、不同协议、不同设备类型监控产品的统一接入管理&#xff0c;同时提供标准的H5播放接口供其他应用平台快速对接&#xff0c;让您快速拥有视频集成能力。不受开发环境、跨系统跨平台等条…

数据分析思考

数据分析工作流程 在我的数据分析职业发展过程中&#xff0c;我从基础的数据提取工作开始&#xff0c;逐步深入到更为复杂和具有战略意义的领域。这包括构建和完善指标体系、设计风险预警模型&#xff0c;以及与多部门协作完成公司整体经营分析等工作。 在这个过程中&#xf…

Rust中的数据抓取:代理和scraper的协同工作

一、数据抓取的基本概念 数据抓取&#xff0c;又称网络爬虫或网页爬虫&#xff0c;是一种自动从互联网上提取信息的程序。这些信息可以是文本、图片、音频、视频等&#xff0c;用于数据分析、市场研究或内容聚合。 为什么选择Rust进行数据抓取&#xff1f; 性能&#xff1a;…

第22篇 Intel FPGA Monitor Program的使用<五>

Q&#xff1a;如何用Intel FPGA Monitor Program创建C语言工程并运行呢&#xff1f; A&#xff1a;总体过程与创建汇编语言工程类似&#xff0c;不同的是在指定程序类型时选择C Program。 后续用到DE2-115开发板的硬件如LED、SW和HEX等外设时&#xff0c;还需要将描述定义这些…

【机器学习】机器的登神长阶——AIGC

目录 什么是AIGC 普通用户接触AIGC网站推荐 通义千问 白马 普通用户如何用好AIGC 关键提示词的作用 AIGC的影响 就业市场&#xff1a; 教育领域&#xff1a; 创意产业&#xff1a; 经济活动&#xff1a; 社交媒体与信息传播&#xff1a; AIGC面临的挑战 什么是AIGC…

Vue68-路由简介

一、路由的应用&#xff1a;&#xff08;单页面应用&#xff09; 单页面应用&#xff1a;页面不刷新&#xff0c;但是路径会改变。 二、路由的原理&#xff1a; 2-1、多页面应用&#xff1a; 2-2、路由的相关概念 2-3、前端路由、后端路由 前端路由&#xff1a;你是什么路径…

数据仓库之主题域

数据仓库的主题域&#xff08;Subject Area&#xff09;是按照特定业务领域或主题对数据进行分类和组织的方式。每个主题域集中反映一个特定的业务方面&#xff0c;使得数据分析和查询更加清晰和高效。主题域通常与企业的关键业务过程相关&#xff0c;能够帮助用户在数据仓库中…

transformers Model

☆ 问题描述 在 transformers 框架中&#xff0c;Model 模块是核心组件之一&#xff0c;提供了多种预训练模型及其相关功能&#xff0c;广泛应用于自然语言处理&#xff08;NLP&#xff09;任务。 ★ 解决方案 # 导入相关文件 from transformers import AutoConfig, AutoM…