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_WARN
- mon 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 -s
- cluster:
- id: 23195c78-be62-4ad9-9269-b9c889c7ce99
- health: HEALTH_OK
- #id和健康状况,HEALTH_OK表示集群运行正常,没有发现任何问题
- services:
- mon: 1 daemons, quorum ceph1 (age 7m)
- mgr: ceph1(active, since 4m), standbys: ceph2, ceph3
- osd: 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 pgs
- objects: 0 objects, 0 B
- usage: 3.0 GiB used, 57 GiB / 60 GiB avail
- pgs: 24 active+clean
- #这是集群的数据信息,pools一行展示说明了这个集群有3个存储池和24个PG(Placement Group,是Ceph中数据分布和复制的基本单元)
- #object一行则展示说明了当前集群中没有存储任何对象。
- #usage一行则展示说明了当前集群的存储使用情况,用了3G,总共60G,还有57G能用
- #pgs一行展示说明了PG的状态信息,当前有24个PG处于活跃(active)且干净(clean)的状态。(活跃表示PG正在处理数据,干净表示数据一致性检查没有发现问题,数据很完整)
复制代码 后语
比赛涉及Ceph的标题还有好几道,不外我当时比赛就只考了这道。别的几道题后续我再看要不要发吧
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |