在两天前,自己家里搭的Ceph集群突然炸了。nfs和rbd全都没法访问,博客和数据库的后端都在ceph的rbd上面。导致博客系统也同时炸了,目前数据全部丢失中....

炸机现象

  • ceph -s命令挂起,等待10几分钟无输出
  • rbd无法操作,无法挂载,也无法卸载
  • nfs文件系统读写挂起无响应

原因排除

找了一圈,发现唯一mon节点的mon.admin服务down掉了,而且始终无法重启。
检查podman容器,mon.admin容器down掉了好几天。

tianliang@admin:~> sudo cephadm ls
[
......
  {
  "style": "cephadm:v1",
  "name": "mon.admin",
  "fsid": "ea5eb6cc-86ec-11eb-803d-089e0156c705",
  "systemd_unit": "ceph-ea5eb6cc-86ec-11eb-803d-089e0156c705@mon.admin",
  "enabled": true,
  "state": "error",
  "container_id": null,
  "container_image_name": "registry.suse.com/ses/7/ceph/ceph:latest",
  "container_image_id": null,
  "version": null,
  "started": null,
  "created": "2021-03-17T06:50:34.622416Z",
  "deployed": "2021-03-17T06:50:33.482375Z",
  "configured": "2021-03-17T06:54:50.863729Z"
  },
......

尝试恢复

1.使用ceph-objectstore-toolosd中恢复mon数据

admin:~ # ceph-objectstore-tool --data-path /var/lib/ceph/ea5eb6cc-86ec-11eb-803d-089e0156c705/osd.0 --op update-mon-db --mon-store-path /home/tianliang/monstore --fsid ea5eb6cc-86ec-11eb-803d-089e0156c705 --no-mon-config
osd.0   : 0 osdmaps trimmed, 559 osdmaps added.
admin:~ # ceph-objectstore-tool --data-path /var/lib/ceph/ea5eb6cc-86ec-11eb-803d-089e0156c705/osd.1 --op update-mon-db --mon-store-path /home/tianliang/monstore --fsid ea5eb6cc-86ec-11eb-803d-089e0156c705 --no-mon-config
osd.1   : 1179 osdmaps trimmed, 0 osdmaps added.
admin:~ # ceph-objectstore-tool --data-path /var/lib/ceph/ea5eb6cc-86ec-11eb-803d-089e0156c705/osd.2 --op update-mon-db --mon-store-path /home/tianliang/monstore --fsid ea5eb6cc-86ec-11eb-803d-089e0156c705 --no-mon-config
osd.2   : 0 osdmaps trimmed, 0 osdmaps added.
admin:~ # ceph-objectstore-tool --data-path /var/lib/ceph/ea5eb6cc-86ec-11eb-803d-089e0156c705/osd.3 --op update-mon-db --mon-store-path /home/tianliang/monstore --fsid ea5eb6cc-86ec-11eb-803d-089e0156c705 --no-mon-config
osd.3   : 0 osdmaps trimmed, 0 osdmaps added.

但是恢复出来的mon数据与原数据的大小相差甚远

admin:~ # du -sh /home/tianliang/monstore
4.6M    /home/tianliang/monstore
admin:~ # du -sh /opt/mon.admin/store.db
173M    /opt/mon.admin/store.db

结果恢复出来的mon数据重新导入服务也无法重启成功。

最后

目前还没有找到恢复的方法...
唉....自己积攒了几年的数据全在上面