不卸载ceph重新获取一个干净的集群环境
不卸载ceph重新获取一个干净的集群环境
标签(空格分隔): ceph ceph环境搭建 运维
部署了一个ceph集群环境,由于种种原因需要回到最开始完全clean的状态,而又不想卸载ceph客户端或者重新搭建虚拟机,此篇博客的目的就是为了解决这一问题。
我的环境:node1的角色为osd,mon,node2和node3的角色都为osd。每个host的系统为centos7,每个host上部署两个osd。ceph版本为luminous (12.4.1 )。之外有一个host作为专门部署ceph的admin节点,系统同样是centos7。
1. ceph环境清理!
在每个ceph节点上执行如下指令,即可将环境清理至刚安装完ceph客户端时的状态!强烈建议在旧集群上搭建之前清理干净环境,否则会发生各种异常情况。
ps aux|grep ceph |awk '{print $2}'|xargs kill -9 ps -ef|grep ceph
确保此时所有ceph进程都已经关闭!!!如果没有关闭,多执行几次
umount /var/lib/ceph/osd/* rm -rf /var/lib/ceph/osd/* rm -rf /var/lib/ceph/mon/* rm -rf /var/lib/ceph/mds/* rm -rf /var/lib/ceph/bootstrap-mds/* rm -rf /var/lib/ceph/bootstrap-osd/* rm -rf /var/lib/ceph/bootstrap-rgw/* rm -rf /var/lib/ceph/bootstrap-mgr/* rm -rf /var/lib/ceph/tmp/* rm -rf /etc/ceph/* rm -rf /var/run/ceph/*
同时情况admin节点中my-cluster目录下的所有内容:
cd /root/my-cluster/ rm *
虽然这个时候环境已经清理干净,但是ceph却还不能运行,需要执行下面的操作。
2. 重新启动ceph:
2.1 在admin节点上执行下面的命令:
创建my-cluster目录之后,进入该目录下创建集群:
ceph-deploy new node1
2.2 在每个ceph节点上执行下面的命令:
如果想要随便更新ceph,并且网速不好,需要从https://download.ceph.com/rpm-luminous/el7/x86_64/下载最新安装包放到/var/cache/yum/x86_64/7/Ceph/packages/文件夹下
执行下面的命令重新安装ceph:
sudo yum install ceph epel-release ceph-radosgw
安装完成后,查看ceph版本确定安装成功:
ceph --version
添加防火墙规则:
firewall-cmd --zone=public --add-service=ceph-mon --permanent(仅mon节点执行,如不添加就不能在其他节点执行ceph命令) firewall-cmd --zone=public --add-service=ceph --permanent firewall-cmd --reload
3. 在admin节点执行:
ceph-deploy install --release luminous node1 node2 node3
4. 在admin节点初始化mon:
ceph-deploy mon create-initial
5. 赋予各个节点使用命令免用户名权限:
ceph-deploy admin node1 node2 node3
6. 安装ceph-mgr (仅luminous版本,为使用dashboard做准备):
ceph-deploy mgr create node1
7. 添加osd:
ceph-deploy osd createnode1:sdb1 node2:sdb1 node3:sdb1 node1:/dev/sdc1 node2:/dev/sdc1 node3:/dev/sdc1
需要说明的是该sdb是在各个节点上为osd准备的空闲磁盘(无需分区格式化,如果有分区需要指定具体分区),通过如下命令查看:
ssh node1 lsblk -f
最后通过如下命令查看集群状态:
ssh node1 sudo ceph -s
如果显示health_ok,6个osd up就成功了。
但在环境创建完成后,该命令执行后,虽然集群状态为health_ok,但是却显示0个osd。在ceph节点使用ceph osd tree命令后竟然啥都没有,最后需要在admin部署节点,执行如下命令:
ceph-deploy osd activate node1:/dev/sdb1 node2:/dev/sdb1 node3:/dev/sdb1 node1:/dev/sdc1 node2:/dev/sdc1 node3:/dev/sdc1
至此就得到一个干净的ceph环境,这种方法可以彻底清除原来滞留的数据
结束语
第一次使用markdown写博客,参考了 高亮显示linux命令, MarkDown写作技巧 简单完成此篇博客书写语法方面的问题。特别感谢徐小胖的 快速部署ceph ,从该作者的一系列的博客学习很多ceph相关的知识,包括疑难问题解决,运维常用知识等。
- 利用11g自身工具deinstall卸载grid(rac集群环境下)
- 在java环境中有一个专门的获取ttf文件的头信息的Font类
- kaa系统安装------在一个单一的Linux节点或集群环境中安装和配置kaa平台。
- 卸载或重新安装Redis集群
- 使用ps命令获取Linux环境下全部RAC集群进程信息
- 只允许winform打开一个实例,并且让这实例重新获取焦点
- Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)
- 同一个Docker swarm集群中部署多版本的测试环境
- linux : 做一个干净的debian7.5.0的开发环境
- tomcat卸载不干净重新安装失败(check your settings and permissions)
- JAVA 程序中如何拷贝一个目录下的文件及子目录到另一个目录,如何获取系统环境变量等...
- 解决获取的手机序列号卸载应用重新安装时序列号变动的问题
- 取消Oracle后台job,做一个干净的测试环境
- Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)
- 如何在Kubernetes中部署一个高可用的PostgreSQL集群环境
- ZH奶酪:LAMP环境中如何重新部署一个Yii2.0 web项目
- ios中的开发一些小工具(就是一个写UIView的自定义组件的脱离环境,可以重新使用)解耦
- 求助:android studio想卸载了重新安装,如何能卸载干净?
- MQ集群测试环境搭建(多节点负载均衡,共享一个kahaDB文件(nas方式))