影子模式与无盘母镜像
影子模式用于多台矿机共享同一套系统镜像的场景,例如 PXE 无盘矿场、只读基础镜像和批量克隆的模板机。 它让镜像保存“如何接入矿场”,而不是复制某一台矿机的身份、凭据和运行状态。
本文还介绍“影子镜像跟随”:你可以在制作母镜像时捕获 MINER 正在运行或保持停止的行为, 新实例在云端没有明确目标或暂时无法连接 Server 时,按矿场授权安全采用这份行为。
先区分两个概念
| 功能 | 解决的问题 | 是否自动启动 MINER |
|---|---|---|
| 影子注册 | 多台实例共用镜像时,避免复制同一设备身份和凭据 | 否 |
| 影子镜像跟随 | 把母镜像制作时的 MINER 运行或停止行为作为低优先级兜底 | 取决于捕获的行为和矿场授权 |
影子注册通过安装命令中的 --shadow 启用。影子镜像跟随需要额外执行 rigectl miner follow on;两者相互独立,不会因为使用影子注册就自动复制飞行表。
适用场景
- 多台无盘主机从同一套母镜像启动。
- 云主机或容器从只读模板批量创建。
- 希望 Server 暂时不可达时,新实例仍可按母镜像的已知配置启动挖矿。
- 希望母镜像保持停止状态,避免新实例在未经云端配置时自动挖矿。
普通有盘矿机若不复制系统镜像,通常不需要影子注册;它会在本机持久保存自己的设备身份和最后状态。
安装影子注册 Client
请优先在矿场的“添加矿机”页面生成安装命令。勾选“影子模式”后,页面会同时启用“首次按模板命名”,并生成包含影子注册信息的简短 --enroll 命令,例如:
sudo ./scripts/install.sh --enroll '安装短码'如确实不需要模板命名,可以在阅读页面警告后取消勾选;此时每个实例仍必须具有可区分且稳定的逻辑名称。影子模式、模板和矿场信息都由短码对应的安装策略携带,不需要手工把矿场 UUID 或完整令牌拼进命令。
不要把页面中的安装令牌或完整安装命令写入公开文档、聊天记录或脚本仓库。
影子模式只把矿场接入配置保留在镜像中。每台实例启动后会在易失运行区建立独立身份、设备凭据和状态库; 这些内容不应被回写进母镜像。
制作会跟随飞行表行为的母镜像
建议在模板机上按以下顺序操作:
使用
--shadow安装并确认 Client 正常接入目标矿场。给模板机下发并验证飞行表;如果母镜像应该保持停止,则先在 Web 或本机停止 MINER。
捕获此刻的运行或停止行为:
bashsudo rigectl miner follow on检查写入母镜像的配置:
bashrigectl miner follow status正常关闭模板机,再制作或发布母镜像。
follow on 只复制可移植的飞行表配置和“运行/停止”行为,不复制设备身份、设备凭据、状态库、 PID、日志或模板机的 Worker 名称。新实例仍会使用各自的矿机名称。
捕获前先确认真实状态
如果模板机当前正在挖矿,母镜像行为会是“跟随当前飞行表启动”;如果当前已停止,母镜像行为会是“保持停止”。 该命令不会替你启动或停止 MINER。
云端与镜像配置的优先级
系统遵循以下优先级:
安全回收或持续本机停止
> Server 明确下发的运行或停止目标
> 矿场授权的影子镜像配置
> 保持停止因此,母镜像不会覆盖云端决定:
- Web 已明确下发运行目标时,以云端飞行表为准。
- Web 已明确停止 MINER 时,主机重启后仍保持停止。
- 云端从未给该矿机配置过运行或停止目标时,才可能采用母镜像行为。
- 维护状态、安全接管和本机持续停止始终优先。
Client 启动后会先等待一小段时间获取 Server 权威状态,避免网络刚建立时过早采用镜像配置。 一旦收到合法的新云端目标,会立即按云端目标对账。
矿场中的两个授权开关
在“矿场管理 → 设置”中可以配置:
影子镜像跟随
当云端从未给这台矿机配置运行或停止目标时,允许已启用镜像配置的主机采用母镜像行为。 关闭后,即使本机存在镜像配置,也不会在“云端未配置”场景中使用。
离线启动跟随
当 Server 暂时不可达时,允许主机采用已缓存授权的镜像配置。关闭后,无法确认 Server 状态的实例 不会仅凭母镜像启动 MINER。
两个开关默认开启,但只有母镜像已经执行 follow on 并保存有效配置时才会产生行为;仅开启矿场开关 不会凭空创建飞行表,也不会改变普通矿机当前状态。
| 连接与云端状态 | 影子镜像跟随 | 离线启动跟随 | 结果 |
|---|---|---|---|
| Server 可达,存在明确目标 | 任意 | 任意 | 执行 Server 目标 |
| Server 可达,从未配置目标 | 开启 | 任意 | 采用母镜像行为 |
| Server 可达,从未配置目标 | 关闭 | 任意 | 保持停止 |
| Server 不可达 | 任意 | 开启 | 在通过本地安全校验后采用母镜像行为 |
| Server 不可达 | 任意 | 关闭 | 保持停止或保留更高优先级的本机状态 |
管理母镜像配置
# 捕获当前运行/停止行为并启用跟随
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 ...。
配置默认保存在:
/etc/rigeos/image-miner-profile.json该文件由 Client 原子写入并限制为 root 读取。请通过 rigectl 管理,不要手工编辑,也不要把它与 单机身份、凭据或 /run/rigeos 运行态一起打包。
查看状态和日志
rigectl status
rigectl miner status
rigectl miner follow status
rigectl logs --warn --lines 200
rigectl miner logs --lines 200 --follow本机欢迎会话也支持查看 MINER 日志:
screen -r RigeOS
tmux attach -t RigeOS在欢迎页按 L 切换到当前 MINER 日志,再按 L 或 Esc 返回。日志视图只读取有界尾部, 不会创建第二份日志文件;screen 和 tmux 的终端历史也有上限。
常见问题
新实例没有按母镜像启动
依次检查:
rigectl miner follow status是否显示“已开启”,且镜像行为为“跟随当前飞行表启动”。- 矿场的“影子镜像跟随”是否开启。
- Server 不可达时,“离线启动跟随”是否开启且 Client 已取得过该授权。
- 云端是否已经给该矿机下发过停止目标;明确停止会覆盖镜像配置。
- Client 日志是否报告飞行表校验、MINER 依赖或运行环境错误。
网页停止后,重启为什么没有继续挖矿
这是预期行为。网页停止属于明确的 Server 目标,优先级高于母镜像;只有再次从 Web 下发运行目标, 或在符合权限边界的场景重新制作母镜像配置,MINER 才会启动。
follow off 会停止正在运行的 MINER 吗
不会。它只关闭后续的镜像跟随。要停止当前 MINER,请从 Web 停止,或使用受控本机命令 sudo rigectl miner stop。
可以把普通注册后的系统盘直接克隆吗
不建议。普通注册会持久保存单机身份和凭据,直接克隆可能造成多台机器竞争同一身份。批量镜像应使用 影子注册,并在制作镜像前确认易失运行态没有被固化。
