(我修复我自己) HP Gen8 raid1 掉盘分区损坏修复记
面板底部状态灯闪红色,查看 iLO 系统诊断,提示raid1其中一个盘 FAILD
, 阵列状态为 Degraded
。
按提示关机替换问题的硬盘,并使阵列进入修复模式。再度发现挂载 /dev/sdb1/的 /home/目录下部分目录权限和用户描述变为 ????。
等待阵列自动修复完成后对上述问题进行修复,重启后问题处理完毕。
以下是详细备忘:
面板底部状态灯闪红色,查看 iLO 系统诊断,提示raid1其中一个盘 FAILD
, 阵列状态为 Degraded
。
按提示关机替换问题的硬盘,并使阵列进入修复模式。再度发现挂载 /dev/sdb1/的 /home/目录下部分目录权限和用户描述变为 ????。
等待阵列自动修复完成后对上述问题进行修复,重启后问题处理完毕。
以下是详细备忘:
在ssh时不小心 cat 或 tail 过 二进制文件,界面显示变成乱码。
输入什么和在什么路径都不鞥正常显示。解决办法如下
Ctrl
+V
然后 Ctrl
+O
, 回车
参考来源:
https://blog.csdn.net/chengxuyuanyonghu/article/details/39478447
上文core node 遭遇分叉(fork)的问题无法启动正在修复中,出块时间又逼近。决定冒险执行 core 的迁移。
原本升级迁移的也在计划中,只是这次遇到情况提前了。万幸手边设备是就绪的,除了故障的core以外内网还有3个可用的relay在正常备选。
选之前众筹拿到的 r86s,配置16G RAM 和 128 eMMC+ 500G SSD 较高,应付将来 cardano-node 升级要求提高还有充分的冗余。
至少需要2台节点设备,建议3台。
建议有1 core 2 relay 3台,因为 迁移 relay至少得停掉其中2台,重启后如果没有relay保持在线,外部检测会认为你的pool完全脱机。
前文再续,书接上回 听从了大佬建议。以为自己只是遇上了意外重启,草率地在 db 目录下加了 clean
标记。
之后又过了两天,发现节点又卡在 starting 状态
检查日志,看到持续报在 slot 57200220 上对 tx MEMPOOL一直报错无法处理。提示与其他节点断开重置。 (Connection reset by peer)) "(recv errored)
没空究其原因,也许遭遇了其他分叉节点的数据污染,当务之急是修正数据启动节点,因为还有不到12个小时就到 leadlog 预告的出块时间。
而该死地这个问题发生在 core node 上
遭遇节点自动重启后长期处于 starting 状态(1个小时以上)
检查日志
cd $CNODE_HOME/logs
tail -f node0.json
发现正在验证区块
{"host":"cnoder86","pid":"3127081","loc":null,"at":"2022-04-04T03:43:18.66Z","ns":["cardano.node.ChainDB"],"sev":"Info","env":"1.34.1:73f9a","data":{"kind":"TraceImmutableDBEvent.ValidatedChunk","chunkNo":"2171"},"msg":"","thread":"5","app":[]}
在社区资讯过大佬们,答曰是一些 dirty data 造成的。或许是异常的重启或者来自分叉的节点的干扰数据。
无他,是节点的自纠和保护机制
如果赶时间又自信数据没有问题,可以用逃课的办法跳过这个自检:
cd $CNODE_HOME/db
touch clean
systemctl restart cnode
简单的说, 就是在 db 路径下新建一个名为clean
的空文件。节点启动的时候检查到有这个文件就会跳过自检。
但以上方法慎用,当你无法保证数据正确完整的时候跳过自检可能导致自己的chain db 进入错误的分叉,下文详述。
-待续-