Ceph集群-2·创建摆设

计算机软件开发 2024-9-9 07:55:21 100 0 来自 中国
一、情况预备

拓扑图


  • 1台客户端假造机:Client
  • 3台存储集群假造机:node1~3
  • 存储集群假造机IP所在分别为:192.168.88.11~13
  • 每台存储集群假造机至少要有2g的内存
  • 每台存储集群假造机必要含有2块空闲硬盘
  • 每台存储集群假造机搭建好yum等服务
二、Ceph:分布式存储集群摆设流程思绪


  • 情况预备
  • 设置NTP服务
  • 安装软件包
  • 创建集群
  • 创建OSD存储空间

  • 全部节点:添加2块额外的硬盘
  • 全部节点:设置yum服务端和客户端
  • 选出一台存储集群假造机作为控制节点,设置到全部节点的免密登录
  • 在全部的节点主机上设置名称剖析(hosts)
  • 在全部节点上安装软件包(ceph-mon ceph-osd ceph-mds ceph-radosgw)
  • 设置NTP使得全部节点时间是同步的
  • 在主节点(node1)上安装ceph-deploy工具
  • 新建ceph集群,安装mon组件
  • 初始化ceph disk
  • 设置osd分区
三、开始举行操纵流程:

第一步、情况预备

上传ceph10.iso镜像,设置yum源
# 将提前下载好的ceph10.iso文件传到自己的yum服务器(pubserver )上,举行挂载。# 创建/iso目次将ceph10.iso上传到/iso目次[root@pubserver ~] mkdir /iso# 再创建 /var/ftp/ceph目次,方便后续挂载到这个目次[root@pubserver ~] mkdir /var/ftp/ceph#设置开机自动挂载ceph10.iso[root@pubserver ~] vim /etc/fstab   # 追加一行如下/iso/ceph10.iso /var/ftp/ceph   iso9660 defaults   0 0# 挂载[root@pubserver ~] mount -a#检察并确认挂载已经乐成[root@pubserver ~]# df -h /var/ftp/ceph/文件体系        容量  已用  可用 已用% 挂载点/dev/loop3      284M  284M     0  100% /var/ftp/ceph[root@pubserver ~] ls /var/ftp/ceph/EULA  MON  README                      ToolsGPL   OSD  RPM-GPG-KEY-redhat-release  TRANS.TBL在全部节点设置yum堆栈(7系列镜像、ceph-osd、ceph-mon、ceph-tools)
# 在node1~3节点上设置yum堆栈[root@node1 ~]# cat /etc/yum.repos.d/local.repo[rhel7_repo]name=CentOS-$releasever - Basebaseurl=ftp://192.168.88.240/dvdenabled=1gpgcheck=0# 在node1~3节点上设置ceph10.iso镜像堆栈[root@node1 ~]# vim /etc/yum.repos.d/ceph.repo[osd]name=ceph osdbaseurl=ftp://192.168.88.240/ceph/OSDenabled=1gpgcheck=0[mon]name=ceph monbaseurl=ftp://192.168.88.240/ceph/MONenabled=1gpgcheck=0[tools]name=ceph toolsbaseurl=ftp://192.168.88.240/ceph/Toolsenabled=1gpgcheck=0[root@node1 ~]# yum repolist... ...repolist: 10,174#设置完一个后scp到其他节点[root@node1 ~]# scp /etc/yum.repos.d/ceph.repo 192.168.88.12:/etc/yum.repos.d/[root@node1 ~]# ^12^13[root@node1 ~]# ^13^10PS:各节点务必关闭selinux和防火墙

选出一台主机作为控制节点( 我这边是将node1节点作为控制机),设置到全部节点的免密登录
[root@node1 ~]# ssh-keygen    # 天生密钥对[root@node1 ~]# for i in {10..13}> do> ssh-copy-id 192.168.88.$i> done在全部的节点主机上设置名称剖析(hosts)留意,剖析的名字必须是该呆板的主机名(必须要保持同步)
[root@node1 ~]# vim /etc/hosts   # 增长4行... ...192.168.88.10    client1192.168.88.11    node1192.168.88.12    node2192.168.88.13    node3#同步hosts文件到其他几个节点[root@node1 ~]# for i in 10 12 13> do> scp /etc/hosts 192.168.88.$i:/etc/> done第二步:设置NTP服务

使得全部节点时间是同步的(将yum服务器‘pubserver ’同时作为时间服务器NTP)
#安装并设置chrony服务[root@pubserver ~]# yum install -y chrony[root@pubserver ~]# vim /etc/chrony.conf  20 #minsources 2 21  22 # Allow NTP client access from local network.   # 留意这里肯定要修改授权的网段 23 allow 192.168.88.0/24  # 授权192.168.88.0/24可以时钟同步 24  25 # Serve time even if not synchronized to a time source. 26 local stratum 10    # 纵然没有从一个源同步时钟,也为其他主机提供时间# 确认时区为:Asia/Shanghai (CST, +0800)# 确认当前时间也是准确[root@pubserver ~]# timedatectl                Local time: 三 2022-12-07 14:14:46 CST           Universal time: 三 2022-12-07 06:14:46 UTC                 RTC time: 三 2022-12-07 06:14:47                Time zone: Asia/Shanghai (CST, +0800)System clock synchronized: no              NTP service: active          RTC in local TZ: no#启动chrony服务[root@client1 ~]# systemctl restart chronyd设置node1-3成为pubserver的NTP客户端
# node1~3安装chrony[root@node1 ~]# for i in node{1..3}> do> ssh $i yum install -y chrony> done# 设置node1-3成为pubserver的NTP客户端[root@node1 ~]# vim /etc/chrony.conf  # 将server开头的全解释,添加下面一行# ntp服务器的ipserver 192.168.88.240 iburst[root@node1 ~]# for i in node{2..3}> do> scp /etc/chrony.conf $i:/etc/> done# 启动服务[root@node1 ~]# for i in node{1..3}> do> ssh $i systemctl restart chronyd> done# 验证时间是否同步  client1前面有^*表示同步乐成[root@node1 ~]# chronyc sources -v... ...^* pubserver  10   6    17    40 -4385ns[-1241us] +/-  162us第三步:安装软件包

在全部节点上安装软件包(ceph-mon ceph-osd ceph-mds ceph-radosgw)
# 在3个节点上安装软件包[root@node1 ~]# for i in node{1..3}> do> ssh $i yum install -y ceph-mon ceph-osd ceph-mds ceph-radosgw> done在主节点(node1)上安装ceph-deploy工具,将node1作为摆设主机,如许就可以操控其他节点
[root@node1 ~]# yum install -y ceph-deploy# 检察使用资助[root@node1 ~]# ceph-deploy --help[root@node1 ~]# ceph-deploy mon --help   # 检察mon子下令的资助# 创建ceph-deploy工作目次[root@node1 ~]# mkdir ceph-cluster# 进入工作目次(实行后续操纵必须在工作目次中举行)[root@node1 ~]# cd ceph-cluster第四步:创建集群

创建Ceph集群设置
# 创建集群(node{1..3})的设置文件[root@node1 ceph-cluster]# ceph-deploy new node{1..3}[root@node1 ceph-cluster]# lsceph.conf  ceph-deploy-ceph.log  ceph.mon.keyring# 设置文件说明[root@node1 ceph-cluster]# tree ..├── ceph.conf               # 集群设置文件├── ceph-deploy-ceph.log    # 日志文件└── ceph.mon.keyring        # 共享密钥# 开启ceph的缺省特性,如果不写将来创建镜像会存在挂载不上的标题[root@node1 ceph-cluster]# vim ceph.conf   # 尾部追加一行如下rbd_default_features = 1根据当前工作目次中的设置举行安装集群mon组件(mon必须奇数摆设)
# ceph-deploy moncreate-initial 安装集群mon组件[root@node1 ceph-cluster]# ceph-deploy mon create-initial# ### 如果安装过程中出现keyring...这种报错,可以试着实行以下下令:[root@node1 ceph-cluster]# ceph-deploy gatherkeys node{1..3}# 如果安装错误,可以整理数据后,重新安装。整理数据下令:[root@node1 ceph-cluster]# ceph-deploy purge node1[root@node1 ceph-cluster]# ceph-deploy purge node2[root@node1 ceph-cluster]# ceph-deploy purge node3[root@node1 ceph-cluster]# systemctl status ceph-mon*● ceph-mon@node1.service .. ..[root@node2 ~]# systemctl status ceph-mon*● ceph-mon@node2.service ... ...[root@node3 ~]# systemctl status ceph-mon*● ceph-mon@node3.service ... ...# 留意:这些服务在30分钟之内只能启动3次,凌驾报错。检察集群状态
[root@node1 ceph-cluster]# ceph -s.......health HEALTH_ERR   # 由于还没有硬盘,以是状态是HEALTH_ERR....第五步:创建OSD存储空间

使用zap举行初始化ceph disk
# 检察disk资助[root@node1 ceph-cluster]# ceph-deploy disk --help# 初始化:各主机的硬盘。vmware应该是sdb和sdc(相当于格式化)初始化格式为GPT格式[root@node1 ceph-cluster]# ceph-deploy disk zap node1:vdb node1:vdc [root@node1 ceph-cluster]# ceph-deploy disk zap node2:vdb node2:vdc [root@node1 ceph-cluster]# ceph-deploy disk zap node3:vdb node3:vdc # 初始化还可以这么写[root@node1 ceph-cluster]# ceph-deploy disk zap node{1..3}:vd{b,c} 创建OSD设置osd分区
# 创建存储空间。# ceph会硬盘分为两个分区# 一个分区巨细为5GB,用于保存ceph的内部资源;# 另一个分区是剩余全部空间[root@node1 ceph-cluster]# ceph-deploy osd --help[root@node1 ceph-cluster]# ceph-deploy osd create node1:vd{b,c}[root@node1 ceph-cluster]# lsblk NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda    253:0    0  30G  0 disk └─vda1 253:1    0  30G  0 part /vdb    253:16   0  20G  0 disk ├─vdb1 253:17   0  15G  0 part /var/lib/ceph/osd/ceph-0└─vdb2 253:18   0   5G  0 part vdc    253:32   0  20G  0 disk ├─vdc1 253:33   0  15G  0 part /var/lib/ceph/osd/ceph-1└─vdc2 253:34   0   5G  0 part # 将其他节点的硬盘空间也交给osd举行管理[root@node1 ceph-cluster]# ceph-deploy osd create node2:vd{b,c}[root@node1 ceph-cluster]# ceph-deploy osd create node3:vd{b,c}# 也可以这么写[root@node1 ceph-cluster]# ceph-deploy osd create node{1..3}:vd{b,c}# 查抄各个节点是否出现2个osd进程(由于有两块硬盘用于ceph)[root@node1 ceph-cluster]# systemctl status ceph-osd* # 检察集群状态,如果HEALTH_OK 则视为集群创建完成[root@node1 ceph-cluster]# ceph -s .......health HEALTH_OK     # 状态是HEALTH_OK表示齐备正常...重点关注:health是否为ok,mon、osd是否与自己创建的数目划一

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

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-19 04:22, Processed in 0.146494 second(s), 32 queries.© 2003-2025 cbk Team.

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