Skip to content

影子模式与无盘母镜像 ​

影子模式用于多台矿机共享同一套系统镜像的场景,例如 PXE 无盘矿场、只读基础镜像和批量克隆的模板机。 它让镜像保存“如何接入矿场”,而不是复制某一台矿机的身份、凭据和运行状态。

本文还介绍“影子镜像跟随”:你可以在制作母镜像时捕获 MINER 正在运行或保持停止的行为, 新实例在云端没有明确目标或暂时无法连接 Server 时,按矿场授权安全采用这份行为。

先区分两个概念 ​

功能解决的问题是否自动启动 MINER
影子注册多台实例共用镜像时,避免复制同一设备身份和凭据否
影子镜像跟随把母镜像制作时的 MINER 运行或停止行为作为低优先级兜底取决于捕获的行为和矿场授权

影子注册通过安装命令中的 --shadow 启用。影子镜像跟随需要额外执行 rigectl miner follow on;两者相互独立,不会因为使用影子注册就自动复制飞行表。

适用场景 ​

  • 多台无盘主机从同一套母镜像启动。
  • 云主机或容器从只读模板批量创建。
  • 希望 Server 暂时不可达时,新实例仍可按母镜像的已知配置启动挖矿。
  • 希望母镜像保持停止状态,避免新实例在未经云端配置时自动挖矿。

普通有盘矿机若不复制系统镜像,通常不需要影子注册;它会在本机持久保存自己的设备身份和最后状态。

安装影子注册 Client ​

请优先在矿场的“添加矿机”页面生成安装命令。勾选“影子模式”后,页面会同时启用“首次按模板命名”,并生成包含影子注册信息的简短 --enroll 命令,例如:

bash
sudo ./scripts/install.sh --enroll '安装短码'

如确实不需要模板命名,可以在阅读页面警告后取消勾选;此时每个实例仍必须具有可区分且稳定的逻辑名称。影子模式、模板和矿场信息都由短码对应的安装策略携带,不需要手工把矿场 UUID 或完整令牌拼进命令。

不要把页面中的安装令牌或完整安装命令写入公开文档、聊天记录或脚本仓库。

影子模式只把矿场接入配置保留在镜像中。每台实例启动后会在易失运行区建立独立身份、设备凭据和状态库; 这些内容不应被回写进母镜像。

制作会跟随飞行表行为的母镜像 ​

建议在模板机上按以下顺序操作:

  1. 使用 --shadow 安装并确认 Client 正常接入目标矿场。

  2. 给模板机下发并验证飞行表;如果母镜像应该保持停止,则先在 Web 或本机停止 MINER。

  3. 捕获此刻的运行或停止行为:

    bash
    sudo rigectl miner follow on
  4. 检查写入母镜像的配置:

    bash
    rigectl miner follow status
  5. 正常关闭模板机,再制作或发布母镜像。

follow on 只复制可移植的飞行表配置和“运行/停止”行为,不复制设备身份、设备凭据、状态库、 PID、日志或模板机的 Worker 名称。新实例仍会使用各自的矿机名称。

捕获前先确认真实状态

如果模板机当前正在挖矿,母镜像行为会是“跟随当前飞行表启动”;如果当前已停止,母镜像行为会是“保持停止”。 该命令不会替你启动或停止 MINER。

云端与镜像配置的优先级 ​

系统遵循以下优先级:

text
安全回收或持续本机停止
  > Server 明确下发的运行或停止目标
  > 矿场授权的影子镜像配置
  > 保持停止

因此,母镜像不会覆盖云端决定:

  • Web 已明确下发运行目标时,以云端飞行表为准。
  • Web 已明确停止 MINER 时,主机重启后仍保持停止。
  • 云端从未给该矿机配置过运行或停止目标时,才可能采用母镜像行为。
  • 维护状态、安全接管和本机持续停止始终优先。

Client 启动后会先等待一小段时间获取 Server 权威状态,避免网络刚建立时过早采用镜像配置。 一旦收到合法的新云端目标,会立即按云端目标对账。

矿场中的两个授权开关 ​

在“矿场管理 → 设置”中可以配置:

影子镜像跟随 ​

当云端从未给这台矿机配置运行或停止目标时,允许已启用镜像配置的主机采用母镜像行为。 关闭后,即使本机存在镜像配置,也不会在“云端未配置”场景中使用。

离线启动跟随 ​

当 Server 暂时不可达时,允许主机采用已缓存授权的镜像配置。关闭后,无法确认 Server 状态的实例 不会仅凭母镜像启动 MINER。

两个开关默认开启,但只有母镜像已经执行 follow on 并保存有效配置时才会产生行为;仅开启矿场开关 不会凭空创建飞行表,也不会改变普通矿机当前状态。

连接与云端状态影子镜像跟随离线启动跟随结果
Server 可达,存在明确目标任意任意执行 Server 目标
Server 可达,从未配置目标开启任意采用母镜像行为
Server 可达,从未配置目标关闭任意保持停止
Server 不可达任意开启在通过本地安全校验后采用母镜像行为
Server 不可达任意关闭保持停止或保留更高优先级的本机状态

管理母镜像配置 ​

bash
# 捕获当前运行/停止行为并启用跟随
sudo rigectl miner follow on

# 查看配置,不修改任何状态
rigectl miner follow status

# 关闭后续跟随,不停止当前 MINER,也不修改云端目标
sudo rigectl miner follow off

# 删除母镜像配置
sudo rigectl miner follow clear

兼容写法为 rigectl miner --follow=on|off。建议新脚本使用结构更清晰的 rigectl miner follow ...。

配置默认保存在:

text
/etc/rigeos/image-miner-profile.json

该文件由 Client 原子写入并限制为 root 读取。请通过 rigectl 管理,不要手工编辑,也不要把它与 单机身份、凭据或 /run/rigeos 运行态一起打包。

查看状态和日志 ​

bash
rigectl status
rigectl miner status
rigectl miner follow status
rigectl logs --warn --lines 200
rigectl miner logs --lines 200 --follow

本机欢迎会话也支持查看 MINER 日志:

bash
screen -r RigeOS
tmux attach -t RigeOS

在欢迎页按 L 切换到当前 MINER 日志,再按 L 或 Esc 返回。日志视图只读取有界尾部, 不会创建第二份日志文件;screen 和 tmux 的终端历史也有上限。

常见问题 ​

新实例没有按母镜像启动 ​

依次检查:

  1. rigectl miner follow status 是否显示“已开启”,且镜像行为为“跟随当前飞行表启动”。
  2. 矿场的“影子镜像跟随”是否开启。
  3. Server 不可达时,“离线启动跟随”是否开启且 Client 已取得过该授权。
  4. 云端是否已经给该矿机下发过停止目标;明确停止会覆盖镜像配置。
  5. Client 日志是否报告飞行表校验、MINER 依赖或运行环境错误。

网页停止后,重启为什么没有继续挖矿 ​

这是预期行为。网页停止属于明确的 Server 目标,优先级高于母镜像;只有再次从 Web 下发运行目标, 或在符合权限边界的场景重新制作母镜像配置,MINER 才会启动。

follow off 会停止正在运行的 MINER 吗 ​

不会。它只关闭后续的镜像跟随。要停止当前 MINER,请从 Web 停止,或使用受控本机命令 sudo rigectl miner stop。

可以把普通注册后的系统盘直接克隆吗 ​

不建议。普通注册会持久保存单机身份和凭据,直接克隆可能造成多台机器竞争同一身份。批量镜像应使用 影子注册,并在制作镜像前确认易失运行态没有被固化。