CEPH 系统盘挂了,如何使用数据盘恢复

硬盘损坏是早晚的时,CEHP数据盘坏了,使用CEPH的基本都轻车熟路了,如果系统盘坏了呢?不知道的可能会采取整个系统盘全做的方式

前提条件:使用cephadm搭建集群
如果换服务器,请确保CEPH数据盘放到其它服务器上后还能看到LVM分区

如果IP/主机名变了请先设置

ceph config set global osd_crush_update_on_start false

禁止自动更新视图
不禁止osd会跑到新主机上,触发迁移

前面都可有可无
最终情况是:
系统盘数据被清除,
ceph相关的数据也没了,
但ceph数据盘仍在
目标:将仍在的数据盘恢复到集群中,避免出现大量回填/迁移情况

方法:重新生成对应的系统文件即可

启蒙方法(看看就好)
文件都在/var/lib/ceph/{fsid}/osd.x目录
里面的东西大都差不多
可以随便考一个出来
在这里插入图片描述
注意那些时间不会更新的文件基本,剩下的会自动刷出来
文件虽然都一样,但里面的osdid及对应的osduuid不一样

sed -i "s/osdid/${osdid}/g" unit.*
sed -i "s/osduuid/${osduuid}/g" unit.*

systemctl start ceph-${fsid}@osd.${osdid}.service
systemctl enable ceph-${fsid}@osd.${osdid}.service

自己会改的话 就能启动成功了
看看就行

优雅的操作:(主要看这个
上面的文件也是基于一套模块生成出来的

cephadm deploy --name osd.x --config /etc/ceph/ceph.conf --fsid {fsid} --osd-fsid {osdfsid}

必要参数说明
osd.x:要恢复的osd
文件/etc/ceph/ceph.conf从其它服务器上拿就行了[keying也要,如果不幸挂的是admin服务器见CEPH client.admin key获取]
fsid:ceph -s 中的fasid
osdfsid:通过ceph-volume lvm list osd.id 命令获取,注意osd fsid这行

旧版不支持指定osdid获取,只能指定硬盘或全部获取,那只有全部获取后再找出来

即使系统盘没挂,也可以用此方法将osd迁移到其它服务器上
视图问题要注意

相关推荐

  1. ceph扩容

    2024-07-09 17:12:09       26 阅读
  2. node.js 全部进程如何使用pm2恢复

    2024-07-09 17:12:09       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-09 17:12:09       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-09 17:12:09       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-09 17:12:09       4 阅读
  4. Python语言-面向对象

    2024-07-09 17:12:09       4 阅读

热门阅读

  1. Docker

    Docker

    2024-07-09 17:12:09      9 阅读
  2. C++多线程学习笔记

    2024-07-09 17:12:09       11 阅读
  3. 实现基于Spring Cloud的事件驱动微服务

    2024-07-09 17:12:09       9 阅读
  4. js使用websocket,vue使用websocket,copy即用

    2024-07-09 17:12:09       8 阅读
  5. PostgreSQL的扩展(extensions)-常用的扩展-pg_profile

    2024-07-09 17:12:09       8 阅读
  6. Spring Boot整合MongoDB实现事务管理

    2024-07-09 17:12:09       10 阅读
  7. Solana RPC 的工作原理

    2024-07-09 17:12:09       9 阅读