Ceph: 恢复 OSD 在 SSD 日志失败后的操作

一个常见的建议是将 OSD 日志存储在 SSD 驱动器上,这意味着如果此日志失败,您将丢失 OSD。 本文假定您的 OSD 最初使用 ceph-disk 部署。 您也会意识到,更换有故障的 SSD 后,让您的 OSD 恢复运行非常简单。
即使 OSD 已经发生段错误,数据目录仍然挂载,因此您可以轻松获取日志 FSID
bash $ journal_uuid=$(sudo cat /var/lib/ceph/osd/ceph-0/journal_uuid) $ sudo sgdisk --new=1:0:+20480M --change-name=1:'ceph journal' --partition-guid=1:$journal_uuid --typecode=1:$journal_uuid --mbrtogpt -- /dev/sdk
日志符号链接不应该断开,并且可以在 /var/lib/ceph/osd/ceph-0/journal 处找到。 现在,我们在新的分区上重新创建日志并启动我们的 OSD。
bash $ sudo ceph-osd --mkjournal -i 20 $ sudo service ceph start osd.20
奖励脚本
```bash
#!/bin/bash
osds="1 2 3" journal_disk=/dev/sdk
for osd_id in osds; do partition=1 journal_uuid=$(sudo cat /var/lib/ceph/osd/ceph-$osd_id/journal_uuid) sudo sgdisk --new=$partition:0:+20480M --change-name=$partition:'ceph journal' --partition-guid=$partition:$journal_uuid --typecode=$partition:$journal_uuid --mbrtogpt -- $journal_disk sudo ceph-osd --mkjournal -i $osd_id sudo service ceph start osd.$osd_id $((partition++)) done ```
很简单,对吧? 要创建更多分区,只需将 sgdisk 命令中的 1 更改为代表分区号的另一个数字即可。