2024广东省职业技能大赛云盘算——Ceph集群摆设

立聪堂德州十三局店  金牌会员 | 2024-9-26 19:15:49 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 850|帖子 850|积分 2550

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节点 操作过程

准备工作

更改主机名

  1. [root@localhost ~]# hostnamectl set-hostname ceph1
  2. [root@localhost ~]# bash
  3. [root@ceph1 ~]#
  4. [root@localhost ~]# hostnamectl set-hostname ceph2
  5. [root@localhost ~]# bash
  6. [root@ceph2 ~]#
  7. [root@localhost ~]# hostnamectl set-hostname ceph3
  8. [root@localhost ~]# bash
  9. [root@ceph3 ~]#
复制代码
关闭防火墙和Selinux

  1. #三个节点均关闭防火墙和Selinux
  2. [root@ceph1/2/3 ~]# systemctl stop firewalld && systemctl disable firewalld
  3. [root@ceph1 ~]# setenforce 0
复制代码
设置YUM源仓库

  1. #ceph1:
  2. #先通过远程连接软件(SecureFX、XShell均可)把我提供的Ceph软件仓库上传至ceph1节点
  3. [root@ceph1 ~]# ls
  4. anaconda-ks.cfg  ceph.tar.gz
  5. #将压缩包解压至opt目录
  6. [root@ceph1 ~]# tar -zxf ceph.tar.gz -C /opt
  7. #创建挂载Centos镜像的目录
  8. [root@ceph1 ~]# mkdir /opt/centos
  9. #挂载Centos系统镜像,这里省时间直接临时挂载了,麻烦在后续每次重启都要挂载一遍。我在这篇文章有讲到各个挂载方式的区别,有兴趣可以看一下:https://blog.csdn.net/kuuuugua/article/details/139547626
  10. [root@ceph1 ~]# mount -o loop /dev/sr0 /opt/centos
  11. #删除系统默认源
  12. [root@ceph1 ~]# rm -rf /etc/yum.repos.d/*
  13. #创建新的仓库文件
  14. [root@ceph1 ~]# vi /etc/yum.repos.d/local.repo
  15. [centos]
  16. name=centos
  17. baseurl=file:///opt/centos
  18. enabled=1
  19. gpgcheck=0
  20. [ceph]
  21. name=ceph
  22. baseurl=file:///opt/ceph
  23. enabled=1
  24. gpgcheck=0
  25. #检查可用性
  26. [root@ceph1 ~]# yum clean all && yum repolist
  27. ...
  28. 源标识                               源名称                                状态
  29. centos                               centos                                4,070
  30. ceph                                 ceph                                    129
  31. repolist: 4,199
  32. #另外两台机子也配置本地源的话未免过于费时,我们在cpeh1安装ftp服务,让它们通过ftp服务使用ceph1的软件仓库
  33. [root@ceph1 ~]# yum -y install vsftpd
  34. ...
  35. Complete!
  36. #修改ftp服务的配置文件,共享/opt目录
  37. [root@ceph1 ~]# echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf
  38. ##启动ftp服务并设置开机自启
  39. [root@ceph1 ~]# systemctl start vsftpd && systemctl enable vsftpd
  40. ...
  41. #ceph2/ceph3:
  42. #删除系统默认源
  43. [root@ceph2/3 ~]# rm -rf /etc/yum.repos.d/*
  44. #创建新的仓库文件
  45. [root@ceph2/3 ~]# vi /etc/yum.repos.d/local.repo
  46. [ceph]
  47. name=redis
  48. baseurl=ftp://192.168.100.11/ceph
  49. enabled=1
  50. gpgcheck=0
  51. #检查可用性
  52. [root@ceph2 ~]# yum clean all && yum repolist
  53. ...
  54. 源标识                                源名称                                状态
  55. ceph                                  ceph                                 129
  56. repolist: 129
复制代码
设置主机映射

  1. #ceph1:
  2. #现在ceph1配置好主机映射
  3. [root@ceph1 ~]# cat >> /etc/hosts << EOF
  4. > 192.168.100.11 ceph1
  5. > 192.168.100.12 ceph2
  6. > 192.168.100.13 ceph3
  7. > EOF
  8. #然后通过scp命令将其发给另外两台机子
  9. [root@ceph1 ~]# scp /etc/hosts root@ceph2:/etc/hosts
  10. ...
  11. Are you sure you want to continue connecting (yes/no)? yes
  12. ...
  13. root@ceph2's password: #输入对应主机的密码
  14. [root@ceph1 ~]# scp /etc/hosts root@ceph3:/etc/hosts
  15. #操作同理
复制代码
设置免密登录

  1. #因为后续我们需要用ceph-deploy管理工具频繁连接其他节点,所以需要配置免密登录
  2. #ceph1:
  3. #生成SSH密钥对
  4. [root@ceph1 ~]# ssh-keygen
  5. #一直回车就行
  6. #复制公钥给其他主机
  7. [root@ceph1 ~]# ssh-copy-id root@ceph1
  8. ...
  9. Are you sure you want to continue connecting (yes/no)? yes
  10. ...
  11. root@ceph1's password: #输入对应主机密码
  12. [root@ceph1 ~]# ssh-copy-id root@ceph2
  13. [root@ceph1 ~]# ssh-copy-id root@ceph3
  14. #操作同理
复制代码
安装设置Ceph

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

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立聪堂德州十三局店

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表