不卸载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相关的知识,包括疑难问题解决,运维常用知识等。

不卸载ceph重新获取一个干净的集群环境的更多相关文章

  1. wsl2 ubuntu20.04 上使用 kubeadm 创建一个单主集群

    wsl2 ubuntu20.04 上使用 kubeadm 创建一个单主集群 官方文档使用 kubeadm 创建一个单主集群 环境初始化 建议尽可能初始化环境,命令wsl --unregister Ub ...

  2. 分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法

    在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. ...

  3. 安装ceph (快速) 步骤二:存储集群

    用 ceph-deploy 从管理节点建立一个 Ceph 存储集群,该集群包含三个节点,以此探索 Ceph 的功能. 创建一个 Ceph 存储集群,它有一个 Monitor 和两个 OSD 守护进程. ...

  4. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十一)定制一个arvo格式文件发送到kafka的topic,通过Structured Streaming读取kafka的数据

    将arvo格式数据发送到kafka的topic 第一步:定制avro schema: { "type": "record", "name": ...

  5. 用 LVS 搭建一个负载均衡集群(转)

    http://blog.jobbole.com/87503/ 第一篇:<如何生成每秒百万级别的 HTTP 请求?> 第二篇:<为最佳性能调优 Nginx> 第三篇:<用 ...

  6. SpringCloud升级之路2020.0.x版-20. 启动一个 Eureka Server 集群

    本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 我们的业务集群结构 ...

  7. 如何获得一个干净的 gnome 开发环境?

    下载 stage3-amd64-systemd-xxxxxxxx.tar.bz2 eselect profile set default/linux/amd64/17.0/desktop/gnome/ ...

  8. (一个)kafka-jstorm集群实时日志分析 它 ---------kafka实时日志处理

    package com.doctor.logbackextend; import java.util.HashMap; import java.util.List; import java.util. ...

  9. 如何搭建一个 MySQL 分布式集群

    1.准备集群搭建环境 使用6台虚拟机来搭建 MySQL分布式集群 ,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示: 管理节点(MGM):这类节点的作用是管理MySQLCluster内的 ...

随机推荐

  1. 修改maven的war包生成路径

    因为要配合jenkins,所以控制了war包的生成目录: <plugins> <!--打war包到指定的目录下 --> <plugin> <groupId&g ...

  2. 【题解】国家集训队礼物(Lucas定理)

    [国家集训队]礼物(扩展Lucas定理) 传送门可以直接戳标题 172.40.23.20 24 .1 答案就是一个式子: \[ {n\choose \Sigma_{i=1}^m w}\times\pr ...

  3. t-sql判断数据库对象是否存在

    1 系统表sys.sysobjects 在数据库中创建的每个对象(例如约束.默认值.日志.规则以及存储过程)都对应一行,详细介绍参考MSDN 2 OBJECTPROPERTY 返回当前数据库中架构范围 ...

  4. Advanced GET 9.1 修正汉化版(免注册、页面加载、保存都正常)

    http://www.55188.com/viewthread.php?tid=2846679 Advanced GET 9.1 修正汉化版(免注册.页面加载.保存都正常) 网上流传的很多GET9.1 ...

  5. VHDL学习笔记——数字系统设计

    数字系统是指有若干数字电路和逻辑不见构成的能够处理或传输数字信息的设备.数字系统可分为三部分:输入输出接口.数据处理器和控制器. [传统的系统硬件设计]方法是(1)采用自底向上的设计方法(2)采用通用 ...

  6. hdoj1001--Sum Problem

    Problem Description Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge).In this problem, y ...

  7. 纯CSS3跳动焦点广告轮播特效

    1. [代码] 纯CSS3跳动焦点广告轮播特效 <!--  Author: Developed by Caleb Jacob Author Website: http://iamceege.co ...

  8. JQuery 常用代码

    1.选择器 1.根据标签名: $('p')  选择文档中的所有段落    2. 根据ID: $("#some-id")    3.类: $('.some-class') $('.t ...

  9. python-杂烩

    如何从其它目录导入py文件 import sys sys.path.append("文件目录地址") from xxx import xxx

  10. PL/SQL学习笔记_02_游标

    在 PL/SQL 程序中,对于处理多行记录的事务经常使用游标来实现. 为了处理 SQL 语句, ORACLE 必须分配一片叫上下文( context area )的区域来处理所必需的信息,其中包括要处 ...