ceph节点迁移

前置知识

  1. ceph组件

    mon、mgr、osd、rgw

    其中非常重要且有数据存储的为mon和osd组件

    对于mon和osd来说,迁移比较麻烦,但是对于其他组件来说因为是无状态的,因此迁移比较容易

mon节点的迁移

更换mon ip

  1. 获取mon map
  • 如果集群的ip还没有进行更换,那么可以将ceph mon map打印出来,记得ceph.conf需要修改

    ceph mon getmap -o monmap

    monmaptool --print monmap 查看对应的mon map信息

    monmaptool: monmap file map
    epoch 2
    fsid 35c74e3c-3dfd-4e55-b585-3409fc490112
    last_changed 2021-12-22T15:57:47.417657+0800
    created 2021-12-22T15:52:15.227984+0800
    min_mon_release 15 (octopus)
    0: v1:10.20.20.43:6789/0 mon.server166
    1: v1:10.20.20.45:6789/0 mon.server168
    2: v1:10.20.20.47:6789/0 mon.server171
    
    • 删除mon节点

      monmaptool --rm server166 --rm server168 --rm server171 monmap

    • 添加新的mon节点

      monmaptool --add server43 10.20.20.44:6789 --add server46 10.20.20.45:6789 --add server47 10.20.20.48:6789 /etc/ceph/monmap

  • 或者通过修改ceph.conf配置文件进行获取ceph mon map

    monmaptool --create --generate -c /etc/ceph/ceph.conf monmap

    monmaptool: monmap file monmap
    epoch 0
    fsid 35c74e3c-3dfd-4e55-b585-3409fc490112
    last_changed 2022-04-06T22:24:58.825188+0800
    created 2022-04-06T22:24:58.825188+0800
    min_mon_release 0 (unknown)
    0: [v2:10.20.20.43:3300/0,v1:10.20.20.43:6789/0] mon.noname-a
    1: [v2:10.20.20.45:3300/0,v1:10.20.20.45:6789/0] mon.noname-b
    2: [v2:10.20.20.47:3300/0,v1:10.20.20.47:6789/0] mon.noname-c
    

    这样的有一个缺陷:

    即看到mon的名字不是我们想要的,那么这时候可以进行修改

    • 删除自动生成的mon节点

      monmaptool --rm noname-a --rm noname-b --rm noname-c monmap

    • 添加新的mon节点

      monmaptool --add server43 10.20.20.44:6789 --add server45 10.20.20.46:6789 --add server47 10.20.20.48:6789 /etc/ceph/monmap

  1. 将mon map推送到各个节点上

  2. 暂停各个mon的服务

    systemctl stop ceph-mon@*.service

  3. 各个节点注入mon map

    ceph-mon -i {node name} --inject-monmap monmap

  4. 重启各个节点的mon服务

更换mon节点名称

这种情况比较特殊,需要对mon的节点名称修改,比如说之前是server166,现在我想改成server43,但是ip不变

首先我们需要明确一个前提,即mon节点里面存储了什么?

cd /var/lib/ceph/mon/ceph-server166

可以看到组成为

  • 一个秘钥

  • kv存储引擎名称 (rocksdb)

  • mon支持的版本 (o版)

  • rocksdb存储的文件

​ 这个文件夹相当重要,里面包含了分发给mon、mgr、osd等等组件的keyring

  1. mon map进行修改,参照前一步更换mon节点名称

  2. 复制mon文件,并且将复制的文件夹名称改为自己想要的文件名

    cp -r ceph-server166/ ceph-server43/

    因为是使用root权限对文件夹进行复制的,因此ceph-server43/文件夹的权限为root,但是需要进行调整

​ 可以看到运行的用户是ceph,因此我们需要将ceph-server43/的权限改为ceph

chown +R ceph:ceph ceph-server43

​ 注意文件夹里面的文件都需要将权限赋给ceph用户

  1. 将原来的mon进程停掉

    systemctl stop ceph-mon@server166

  2. 启动新的mon进程

    systemctl restart ceph-mon@server34

注意:如果进程一直拉不起来,可以利用journalctl -b -u "ceph-mon@*.service",查看进程的日志

mgr节点的迁移

  1. 暂停mgr进程

    sudo systemctl stop ceph-mgr@{mgr-name}

    sudo systemctl disable ceph-mgr@{mgr-name}

  2. 删除对应的文件

    sudo rm -rf /var/lib/ceph/mgr/ceph-{mgr-name}

  3. 重新安装mgr

    因为mgr是无状态的,因此不需要担心数据丢失问题

超详细的ceph节点迁移(mon和mgr)相关推荐

  1. Oracle单实例通过DG迁移至RAC集群(Oracle 11g 超详细文档)

    实验:Oracle单实例通过DG迁移至RAC集群(Oracle 11g 超详细文档) 步骤1:Oracle单实例搭建 1. 系统环境检查 2. 创建用户.组,配置环境变量.安装目录 3. 安装Orac ...

  2. (超详细笔记整理)动力节点_老杜 | JavaSE零基础 :P329(方法) - P479

    JAVA基础学习 第二篇文章的连接: (超详细笔记整理)动力节点_老杜 | JavaSE进阶 [P486之后]. 文章目录 JAVA基础学习 方法 Java的主要内存空间 栈数据结构 **栈数据结构: ...

  3. k8s1.18多master节点高可用集群安装-超详细中文官方文档

    kubernetes安装系列文章 kubernetes1.17.3安装-超详细的安装步骤 安装kubernetes1.17.3多master节点的高可用集群 k8s1.18单master节点高可用集群 ...

  4. 在容器上构建持续部署,这份超详细实践指南不要错过!

    作者 | 倚天码农 责编 | 刘静 出品 | CSDN 博客 要想理解持续集成和持续部署,先要了解它的部分组成,以及各个组成部分之间的关系.下面这张图是我见过的最简洁.清晰的持续部署和集成的关系图. ...

  5. 卷积神经网络超详细介绍

    文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8.LeNet-5结构分析 ...

  6. 卷积神经网络(CNN)超详细介绍

    文章转自:https://blog.csdn.net/jiaoyangwm/article/details/80011656 文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图 ...

  7. 卷积神经网络超详细介绍1

    1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8.LeNet-5结构分析 9.Al ...

  8. 步步为营——局域网调试NAS软路由“PVE+爱快+lede+黑群晖硬盘直通”并移植到宽带网(超详细,上篇)

    步步为营--局域网调试NAS软路由"PVE+爱快+lede+黑群晖硬盘直通"并移植到宽带网[超详细,上篇] 一.软硬件准备 硬件 软件 二.PVE.爱快.lede(opwrt).黑 ...

  9. 卷积神经网络超详细介绍(转载)

    卷积神经网络超详细介绍 文章目录 1.卷积神经网络的概念 2. 发展过程 3.如何利用CNN实现图像识别的任务 4.CNN的特征 5.CNN的求解 6.卷积神经网络注意事项 7.CNN发展综合介绍 8 ...

最新文章

  1. Docker学习笔记_安装ActiveMQ
  2. 消息队列系列(三):.Rabbitmq Trace的使用
  3. Sql insert into 后获得自动插入的id
  4. Java数组实现循环队列的两种方法
  5. Android开发笔记之:Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
  6. Retrofit 2使用要点梳理:小白进阶回忆录
  7. 【行业】点餐App未来必须面对的三大难题
  8. redis简单了解 二 (集群)
  9. C++shell排序(附完整源码)
  10. 你可能被网帖骗了:中国粗离婚率的15连涨已在2018年被终结了
  11. UI标签库专题十:JEECG智能开发平台 Form(form标签)
  12. Java内存溢出的情况
  13. 持续集成(CI)- 几种测试的区别(摘录)
  14. 在extjs 中使用FCKeditor
  15. android内存泄露问题分析,内存泄露实例分析 -- Android内存优化第四弹
  16. C语言用什么 IDE 好 - 除了 Visual Studio、VSCode、CLion 还有什么其他选择?
  17. 神经元结构示意图讲解图,神经元的结构示意图
  18. LeetCode 714. 买卖股票的最佳时机含手续费 | Python
  19. 【C语言】输出国际象棋棋盘
  20. AD/DA转换(XPT2046)

热门文章

  1. speedoffice(Word)怎么修改字体颜色呢
  2. 如何使用python下载B站视频
  3. 异常全家桶来咯,异常捕获,异常抛出,自定义异常
  4. AEJoy —— 彻底搞懂 AE 各种 loop* 表达式【二】
  5. 股票自动委托下单html,股票怎么设置自动挂单?股票交易挂单规则
  6. 视频搜索关键技术浅析
  7. 迁移学习 transfer learning
  8. 年底了,清空自己,让心归零!
  9. Beam Search集束搜索
  10. 记录一下nginx代理引起的ip失真问题