mirror of
https://github.com/deepseek-ai/3FS.git
synced 2026-11-05 00:47:47 +00:00
[GH-ISSUE #335] 替换磁盘之后,对应 targets 一直 OFFLINE #205
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
deepseek-ai/3FS#205
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @wangzhuzhen on GitHub (Sep 1, 2025).
Original GitHub issue: https://github.com/deepseek-ai/3FS/issues/335
搭建了一个16 存储个节点的 3FS ,每个存储节点使用一个 SSD 磁盘,已经使用了一段时间。
目前有一个节点 SSD 磁盘物理故障,无法恢复。因此换了个磁盘,但是 storage service 重启之后,对应节点的 storage targets 一直 OFFLINE,没有出现自动恢复的情况。请问接下来该怎么处理?
节点状态都正常
有OFFLINE 的 Chains(全部是同一个节点上):
对应节点上的 storage target 状态 OFFLINE
正常节点上,SSD 存储目录下 /storage/data1/3fs/ 包含 targetID 目录和 engine 目录
而替换了磁盘的节点上,SSD 存储目录下 /storage/data1/3fs/ 只有 engine 目录
下一步需要如何操作,才能恢复这个节点上的 storage target 状态为正常的 SERVING /UPTODATE ? 是要 unregister-node 然后 register-node ? 或者是要 remove-target 然后 create-target ?
@wangzhuzhen commented on GitHub (Sep 1, 2025):
目前通过如下方式解决了替换磁盘之后对应磁盘 targets 都 OFFLINE 的问题,但是是否是官方推荐的解决方案个人无法判断。简单来说就是在新磁盘上构建对应的 targets 配置文件。具体过程如下:
首先查看正常的节点,发现 SSD 磁盘上 实际上是两类目录: targetIds 和 engine,如下所示:
对于异常节点,发现 SSD 磁盘上实际只有 engine目录:
分析正常节点的 /storage/data1/3fs/ 目录中 其中每个 targetId (如 101002400101)目录下面实际只有一个 名称为 target.toml 的文件
target.toml 的文件的内容如下:
再对比了多个节点之后,可以看到实际上 target.toml 描述 target 关联的元数据信息(只需要 块设备ID、targetID、ChainID就可以构建 target.toml 文件),如:
因此只需要知道 块设备ID、targetID、ChainID 就可以构建 target.toml 文件。
根据前面的分析,分别获取对应信息
根据以上信息,构建故障节点上构建对应的 targets 目录,
然后在每个目录 target 目录(如 101002300101)中创建 target.toml 文件:
如 target_id 为 101002300101 的 storage 对对应的 target.toml 文件配置如下,
其他 101002300102 ~ 101002300109 几个 target 同样处理,但是操作过程务必确保 各种 id 对应关联关系。
最后重启 storage service
再次查看节点信息,所有 targets 恢复正常,所有 chains 恢复正常。
@kaede11 commented on GitHub (Sep 30, 2025):
换盘后,执行create-target/update-chain操作了吗?