Skip to content

Latest commit

 

History

History
100 lines (82 loc) · 3.72 KB

16.扇区重建的支持.md

File metadata and controls

100 lines (82 loc) · 3.72 KB

扇区重建的支持

当扇区数据所在的磁盘发生损坏或者其他原因导致扇区数据丢失时,可以通过扇区重建功能恢复扇区数据。

基本原理

venus-sector-manager 中保存了扇区的 piece 文件信息和申请的随机数等信息。 扇区重建时 venus-sector-manager 会下发这些信息给 venus-worker, 再由 venus-worker 执行封装流程。

大致流程参考:重建(rebuild)任务的状态流转

准备工作

1. 准备需要重建的扇区号和矿工号

2. 更改 venus-worker 配置

有两种更改配置的方法:

第一种:更改 venus-worker 主配置文件,增加一个 plan 为 rebuild 的 sealing_thread, 或将原有的一个 sealing_thread 的 plan 更改为 rebuild。这种方式需要重启 venus-worker。示例如下:

# /path/to/your-venus-worker-config.toml

# ...
[[sealing_thread]]
location = "/path/to/your_sealing_thread_location/"
plan = "rebuild"
# ...

第二种:创建 sealing_thread 热更新配置文件。在 sealing_thread 的 location 目录下创建名为 config.toml 的文件。文件内容如下:

# /path/to/your_sealing_thread_location/config.toml

plan = "rebuild"

venus-worker 会在扇区任务开始前加载热更新配置文件。具体参考: sealing_thread 配置热更新

3. 检查 sealing_thread 状态

执行:

venus-worker worker -c your-config.toml list

output:

#0: "/path/to/your_sealing_thread_location"; plan=rebuild, sector_id=None, paused=false, paused_elapsed=None, state=Empty, last_err=None
// ...

或者执行:

venus-sector-manager util worker info  <worker instance name or address>

output:

Index  Loc                                    Plan     SectorID       Paused  PausedElapsed  State      LastErr
0      /path/to/your_sealing_thread_location  rebuild  NULL           false   NULL           Empty      NULL
// ...

如果显示 plan 为 rebuild 则说明配置改更成功。(注意: 热更新配置文件可能不会立刻生效,需要等待扇区任务重新开始才会加载它)

开始重建

1. 创建扇区重建任务

命令:

venus-sector-manager util sealer sectors rebuild <miner actor> <sector number>

其中 <miner actor> 为矿工号, <sector number> 为需要重建的扇区号。

我们以矿工号 1001, 需要重建的扇区号 123 为例。执行:

venus-sector-manager util sealer sectors rebuild 1001 123

2. 观察 rebuild 的 sealing_thread 封装状态, 等待重建完成

执行:

venus-worker worker -c your-config.toml list

或者:

venus-sector-manager util worker info  <worker instance name or address>

观察 state 和 last_err 字段信息。 state 字段对应 重建(rebuild)任务的状态流转 中的 state。

或者直接查看扇区状态信息:

// 查询未完成的扇区
venus-sector-manager util sealer sectors state 1001 123

// 查询完成的扇区
venus-sector-manager util sealer sectors state --offline 1001 123

其他相关命令

查询所有进行中的重建扇区的信息

venus-sector-manager util sealer sectors list --rebuild --sealing=false

查询所有已完成的重建扇区的信息

venus-sector-manager util sealer sectors list --offline --rebuild --sealing=false