ceph集群的扩容缩容

文章目录


实验所用虚拟机均为Centos 7.6系统,8G内存,16核CPU:

Ceph-admin: 用作ntp server和ceph本地源

Ceph-1: ceph-deploy、mon1、osd3

Ceph-2: mon1、osd3

Ceph-3: mon1、osd3

集群扩容

添加osd

使用ceph-deploy工具

文章中的"添加磁盘"

手动添加

参考文章:https://cloud.tencent.com/developer/article/1664651

在新osd主机上创建osd,并创建数据目录

命令格式:ceph osd create [{uuid} [{id}]]

如果未指定 UUID, OSD 启动时会自动生成一个。

一般来说,不建议指定 {id} 。因为 ID 是按照数组分配的,跳过一些依然会浪费内存;尤其是跳过太多、或者集群很大时,会更明显。若未指定 {id} ,将用最小可用数字。
格式化磁盘,并将其挂载到刚才创建的数据目录下

将新的osd添加到crushmap中:

为新osd创建bucket。

再将对应的host移到root下,然后把OSD移到对应的host下面,注意添加OSD时的weight是该OSD的实际大小

c 复制代码
[root@ceph-1 ~]# ceph osd crush add-bucket root-240G root
added bucket root-240G type root to crush map
[root@ceph-1 ~]# ceph osd crush add-bucket ceph-2-240G host
added bucket ceph-2-240G type host to crush map
[root@ceph-1 ~]# ceph osd crush move ceph-2-240G root=root-240G
moved item id -11 name 'ceph-2-240G' to location {root=root-240G} in crush map
[root@ceph-1 ~]#
[root@ceph-1 ~]# ceph osd crush add osd.12 0.24 host=ceph-2-240G
add item id 12 name 'osd.12' weight 0.24 at location {host=ceph-2-240G} to crush map
[root@ceph-1 ~]#

然后开启osd.12服务

状态出错

然后上网搜索,将osd服务的启动间隔设置为1分钟
重新加载服务配置

root@ceph-2 \~\]# systemctl daemon-reload 还是不能正常启动 查看日志: ```c [root@ceph-2 ~]# cd /var/log/ceph [root@ceph-2 ceph]# cat ceph-osd.12.log ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/e9acaf2bf5244ae3a6a18d9e2cea3daf.png) 应该是目录 /var/lib/ceph/osd/ceph-12 权限有问题 修改目录权限: ```c [root@ceph-2 ceph]# chown -R ceph:ceph /var/lib/ceph/osd/ceph-12 ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/4f19bb8a2ba544b3a3f66798d97e3aaf.png) 启动成功。 ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/62803cfb711745d8af7867ba40e22ec1.png) ## 添加节点 在此实验中,将ceph-admin节点作为新节点加入ceph集群 由于在之前的实验中,ceph-admin节点作为ntp时间同步服务器,ceph-1节点、ceph-2节点和ceph-3节点作为ntp客户端向ceph-admin节点同步时间。因此,这里就不用再设置时间同步了、 在ceph-admin节点首先安装ceph ### 新节点前期准备 前期准备包括关闭火墙、添加域名解析、安装ceph、配置时间同步。具体可以参考[文章](https://blog.csdn.net/qq_43604376/article/details/131939933?spm=1001.2014.3001.5502)。 #### 新节点安装ceph,出现版本冲突 在节点执行 yum install ceph ceph-radosgw -y 报错如下: 提示已经安装了10.2.5版本 目前再安装10.2.2版本,造成了冲突 ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/97c4e47f76bc4029830e7f57e0e6e579.png) ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/156f1bc47a8248a4864f9d7924e39560.png) ```c 先卸载已经安装的 10.2.5版本 yum remove ceph-common-10.2.5-4.el7.x86_64 -y yum remove librados2-10.2.5-4.el7.x86_64 -y yum remove librbd1-10.2.5-4.el7.x86_64 -y ``` 阿里云镜像:`http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/`, 先将10.2.11版本的所有相关包都下载,然后直接安装下载好的rpm包. ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/af13107456274a47a33878711c39c50f.png)直接 `yum install *`,即可安装完成 或者 vim /etc/yum.repos.d/ceph.repo ```c [root@ceph-admin yum.repos.d]# cat ceph.repo [ceph] name=ceph baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/ gpgcheck=0 priority =1 [ceph-noarch] name=cephnoarch baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/ gpgcheck=0 priority =1 [ceph-source] name=Ceph source packages baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS gpgcheck=0 priority=1 #然后安装ceph [root@ceph-admin yum.repos.d]# yum -y install ceph ceph-radosgw ``` 安装完成 ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/312fb519c4aa49af8996afeeca4b95e7.png) ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/71a5887ce6c14517869261cc6917d242.png) ### ceph-deploy增加节点 列出ceph-admin节点上的磁盘 ```c [root@ceph-1 cluster]# ceph-deploy disk list ceph-admin ``` ```c [root@ceph-1 cluster]# ceph-deploy osd prepare ceph-admin:/dev/vdb ``` ```c [root@ceph-1 cluster]# ceph-deploy osd activate ceph-admin:/dev/vdb1 ``` 此时看ceph-admin节点 ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/cfcf91a317964febb4789a13f629f87e.png) 查看此时的 osd tree ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/6dce223cac2647808e8ae94552b8456a.png) 可以新创建一个host,名为ceph-admin-240G ,将其移入root-240G。然后讲新增的osd.14加入host ceph-admin-240G中。 ```c [root@ceph-1 cluster]# ceph osd crush add-bucket ceph-admin-240G host added bucket ceph-admin-240G type host to crush map [root@ceph-1 cluster]# ceph osd crush move ceph-admin-240G root=root-240G moved item id -13 name 'ceph-admin-240G' to location {root=root-240G} in crush map [root@ceph-1 cluster]# ceph osd crush add osd.14 0.24 host=ceph-admin-240G add item id 14 name 'osd.14' weight 0.24 at location {host=ceph-admin-240G} to crush map ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/1b2c76f5bac946be9ccc17530ca8217b.png) # 集群缩容 ## 删除osd 参考[文章](https://blog.csdn.net/qq_43604376/article/details/131983267?spm=1001.2014.3001.5502)中的"删除磁盘" **需要注意的是,在删除osd磁盘之前,需要先将osd的权重设置为0.待集群恢复平衡之后,再继续操作**。删除osd的完整步骤为: ```c ceph osd crush reweight osd.x 0.0 ... 等待平衡结束.... ceph osd out osd.x systemctl stop [email protected] #在待删除的osd所在节点上执行 ceph osd crush remove osd.x ceph auth del osd.x ceph osd rm osd.X ``` ## 删除节点 参考文章:https://blog.csdn.net/nasooo/article/details/117947537 使用以下命令,在ceph-1(monitor)节点上,添加ceph-admin节点的新磁盘 ```c ceph-deploy disk list ceph-admin ceph-deploy disk zap ceph-admin:/dev/vdc ceph-deploy disk prepare ceph-admin:/dev/vdc ceph-deploy disk activate ceph-admin:/dev/vdc1 ceph osd crush move ceph-admin-800G root=root-800G ceph osd crush add osd.15 0.8 host=ceph-admin-800G ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/a102d7df77e14e51aee1bbb0c09b2e9f.png)此时 ceph-admin 节点上有2块 osd 分别为osd.14 和 osd.15 。 下面演示如何删除节点ceph-admin: ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/237696bc76da4261ac46f4f1e22f64d2.png) ceph-admin节点停止ceph-osd服务 ```c [root@ceph-admin ~]# systemctl stop ceph-osd.target ``` 此时,ceph-admin节点上的osd状态均为down ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/996d35e700884241aa7caf13a6a4bcf6.png) 在monitor节点删除ceph-admin节点上的所有osd ```c [root@ceph-1 cluster]# ceph osd rm 14 removed osd.14 [root@ceph-1 cluster]# ceph osd rm 15 removed osd.15 ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/d0545488a28446b9a875b01bfdde3d48.png) 从 crush map 中删除ceph-admin节点上的所有osd ```c [root@ceph-1 cluster]# ceph osd crush remove osd.14 removed item id 14 name 'osd.14' from crush map [root@ceph-1 cluster]# ceph osd crush remove osd.15 removed item id 15 name 'osd.15' from crush map [root@ceph-1 cluster]# ``` 删除ceph-admin节点上的所有osd 的认证信息 ```c [root@ceph-1 cluster]# ceph auth del osd.14 updated [root@ceph-1 cluster]# ceph auth del osd.15 updated [root@ceph-1 cluster]# ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/fb109c7039b049929954039d8f64346b.png) 从 crush map 中删除节点 ceph-admin ```c [root@ceph-1 cluster]# ceph osd crush remove ceph-admin-240G removed item id -13 name 'ceph-admin-240G' from crush map [root@ceph-1 cluster]# ceph osd crush remove ceph-admin-800G removed item id -14 name 'ceph-admin-800G' from crush map ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/7cd41fe345604ee48dad832d0f17307d.png)取消ceph-admin节点上的所有osd的挂载 ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/bb8a764fd5b24939a882cdca4e96185f.png) # 添加monitor节点 下面添加一个新的monitor节点,所有monitor节点的ceph版本需要一致。 待添加的monitor节点为 ceph-admin ceph-admin节点已经安装了ceph 10.2.2版本,且已经关闭火墙,域名解析、免密认证、时间同步服务已经配置好。 目前集群中有三个monitor节点,分别为ceph-1 、ceph-2 、ceph-3 ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/5f5b019a14a044b1a1110d171c7f7f26.png)在配置文件ceph.conf 中,添加ceph-admin ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/538f8ff1177f493cb8077e080ded092e.png) 添加ceph-admin 节点 ```c [root@ceph-1 cluster]# ceph-deploy mon create ceph-admin 应该也可以使用命令:ceph-deploy mon add ceph-admin ``` 向ceph-admin 分发密钥 ```c [root@ceph-1 cluster]# ceph-deploy admin ceph-admin ``` 推送配置 ```c [root@ceph-1 cluster]# ceph-deploy --overwrite-conf config push ceph-1 ceph-2 ceph-3 ceph-admin ``` 添加完成 ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/cf00b4e81cd34600a5fa27beecfb2f8e.png)![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/b4b322ec8fea44e69a520b01c007557b.png) 可以在该monitor上添加osd ```c [root@ceph-1 cluster]# ceph-deploy disk list ceph-admin [root@ceph-1 cluster]# ceph-deploy zap ceph-admin:/dev/vdc [root@ceph-1 cluster]# ceph-deploy disk zap ceph-admin:/dev/vdc [root@ceph-1 cluster]# ceph-deploy disk prepare ceph-admin:/dev/vdc [root@ceph-1 cluster]# ceph-deploy disk activate ceph-admin:/dev/vdc1 ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/b66f1e1c585e4b0c9bcbbd1db4f632ae.png) # 删除monitor节点 删除monitor节点 ceph-admin 先删除节点上的osd ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/b23cc26af4be4151aeaa80b95a98ff5c.png) ```c [root@ceph-admin ~]# systemctl stop [email protected] [root@ceph-admin ~]# systemctl disable [email protected] Removed symlink /etc/systemd/system/ceph-osd.target.wants/[email protected]. [root@ceph-admin ~]# [root@ceph-admin ~]# ceph osd crush remove osd.14 device 'osd.14' does not appear in the crush map [root@ceph-admin ~]# ceph auth del osd.14 updated [root@ceph-admin ~]# ceph osd rm osd.14 removed osd.14 [root@ceph-admin ~]# ``` 删除ceph-admin节点: ```c ceph mon remove ceph-admin ``` ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/6ba3d6ca57914e66859ddf64765f9411.png) 修改配置文件 删除 ceph-admin的主机名和IP地址 ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/b46ae67f2e1b4ba0a193c5934453ce73.png)将更改后的配置文件推送到monitor节点 ```c [root@ceph-1 cluster]# ceph-deploy --overwrite-conf admin ceph-1 ceph-2 ceph-3 ``` 完成 ![在这里插入图片描述](https://file.jishuzhan.net/article/1694989779520720897/41353dbdbff7425bb0fe094afe671a4e.png) # 使用ceph-deploy卸载集群 参考文章:https://blog.csdn.net/a13568hki/article/details/119459832 首先安装ceph-deploy工具 ```c yum -y install ceph-deploy ``` ```c hostname=`hostname` ceph-deploy purge $hostname ceph-deploy purgedata $hostname ceph-deploy forgetkeys # osd 卸载命令 dmsetup status #查询所有ceph osd 或者vgscan + vgremove 加查询出来的id dmsetup remove_all #删除所有查询的内容 ```

相关推荐
小马爱打代码3 小时前
Kubernetes 中部署 Ceph,构建高可用分布式存储服务
分布式·ceph·kubernetes
斯普信专业组3 天前
Ceph与Bacula运维实战:数据迁移与备份配置优化指南
运维·ceph·github
野猪佩挤11 天前
Ceph集群2025(Squid版)导出高可用NFS集群(上集)
java·服务器·ceph
不死鸟.亚历山大.狼崽子21 天前
Ceph(1):分布式存储技术简介
ceph
不死鸟.亚历山大.狼崽子21 天前
Ceph(2):Ceph简介
ceph
深度Linux1 个月前
深入探讨Ceph:分布式存储架构的未来
分布式·ceph·架构·c/c++
斯普信专业组1 个月前
基于Rook的Ceph云原生存储部署与实践指南(下)
ceph
斯普信专业组1 个月前
基于Rook的Ceph云原生存储部署与实践指南(上)
ceph
大新新大浩浩2 个月前
k8s环境中的rook-ceph的osd报Permission denied无法正常运行问题的处理方式
java·ceph·kubernetes
大新新大浩浩2 个月前
ceph部署-14版本(nautilus)-使用ceph-ansible部署实验记录
ceph·ansible