文章目录
今晚批量下发 HiveOS 配置,最该防的是半数矿机带错参数继续跑
凌晨 1 点 42 分,值班手机连续震了三次。第一条是 HiveOS 的离线告警,第二条是矿池算力下降,第三条是现场电工发来的照片:A 区第三排机架灯还亮着,风扇声也正常,屏幕上看不到大面积掉线。
这类情况最容易误判。机器没全掉,算力没归零,告警也没有炸成一片,很多人第一反应是“网络抖一下”或者“矿池统计延迟”。但我后来复盘发现,真正的问题不在掉线,而在前一晚的一次批量配置下发:一部分矿机拿到了新 Flight Sheet,一部分没拿到;更麻烦的是,还有一批机器拿到了错误的钱包标签和备用矿池顺序。
从运维角度看,最危险的事故不是全场停摆。全场停摆反而明显,大家都会冲上去处理。最怕的是“半成功”:面板看起来还在跑,矿池还有收益,告警不够刺耳,但实际收益路径、矿池策略、超频参数已经乱了。HiveOS 很适合矿场批量管理,可一旦流程没收紧,它也会把人的误操作放大到几百台、几千台机器上。
这篇不是讲功能介绍,而是我作为矿场运维负责人,对一次 HiveOS 批量变更事故的复盘。重点只有一个:今天矿场最该补的,不是再多装几个脚本,而是让批量操作有边界、有告警、有权限、有回滚。
夜班只看到少量离线:判断不能按普通网络故障处理
那天晚上,HiveOS 面板上最先冒出来的是 17 台离线。放在一个几百台规模的场子里,17 台不算夸张。夜班按老习惯先看交换机、PDU、矿池延迟,再让现场巡一遍机架。
问题就出在这里。
如果只是断网,离线机器通常集中在某个交换机、某条网线、某个机柜。但那 17 台分布很散,A 区有,C 区也有,甚至同一排里隔几台出现一台。与此同时,另有几十台没有离线,却出现算力轻微下降、拒绝率抬高、矿池切换记录异常。
这种组合基本可以排除单纯网络故障。它更像是批量命令执行到一半时,有的矿机重启了,有的卡在应用配置,有的继续沿用旧参数。HiveOS 里如果没有把“变更事件”和“告警事件”放在一起看,值班员很容易只处理表面最吵的离线告警,忽略那些还在线但状态已经变坏的机器。
后来我们改了一条规则:凡是批量下发后 30 分钟内出现离线、算力下降、矿池切换、拒绝率升高,不允许单独按网络故障派单,必须先查最近一次批量操作记录。谁下发的、下发给哪个 Farm、哪些 Worker 返回成功、哪些没有返回,都要在工单里写出来。
这条规则看着简单,但它能把排查方向从“现场找线”拉回到“先看变更”。
一键应用到整组机器:判断风险不在按钮,而在分组太粗
HiveOS 的批量管理很方便。你可以给一组矿机统一换 Flight Sheet,统一调超频,统一升级 miner,统一重启。对于矿场来说,这确实省人。问题是,很多场子的分组是按摆放位置来的:A 区、B 区、C 区,或者一号仓、二号仓。
这种分组适合现场巡检,不一定适合批量变更。
同一个区域里,可能混着不同批次显卡、不同电源、不同散热条件,也可能有部分机器之前做过单独参数调整。把它们放在一个批量操作对象里,下发时看着整齐,出事时就会变成一锅粥。那次事故中,真正被影响最大的是一批临时从另一场调来的机器,它们在 HiveOS 里被归进了 A 区,但矿池、钱包标签、超频模板和原 A 区机器并不一致。
我们复盘后把分组拆成两套:
一套是现场分组,用来巡检、清灰、换网线、查电表。比如 A-03-12,表示 A 区第三排第十二台。
另一套是变更分组,只给 HiveOS 批量操作使用。它按机型、显卡批次、系统版本、矿池策略、超频模板来分。比如同样在 A 区的机器,只要矿池策略不同,就不能放进同一个批量变更组。
这会增加前期整理工作,但能避免一个问题:现场位置相邻,不代表它们应该吃同一套配置。
现在我们的要求是,任何批量下发前,运维人员必须先确认这次操作使用的是“变更分组”,不是“现场分组”。如果临时要跨组操作,必须说明原因,并把 Worker 列表导出留底。HiveOS 的批量能力本身没有错,错的是用一个粗分组去承接太多含义。
告警只推到群里:判断责任没有真正落到人
事故发生前,我们的 HiveOS 告警主要推到群里。离线、温度异常、算力下降、重启失败,都会进一个运维群。刚开始大家觉得热闹,信息多,响应快。后来才发现,群告警有个致命问题:所有人都看见,等于没人真正负责。
尤其是夜间,告警一多,值班员会下意识筛选“最严重”的看。离线多看,温度高看,算力小幅下降先放一放。可在批量配置事故里,最早的信号恰恰不是最吵的那个,而是几台机器的矿池切换记录和拒绝率变化。
我们后来把告警分成三层,不再一股脑推群。
第一层是立即处理类,比如离线超过指定数量、温度超过阈值、重启后长时间不上线。这类告警必须打到值班负责人手机,并要求确认。
第二层是变更关联类,比如批量下发后出现配置不一致、矿池切换异常、Flight Sheet 与分组模板不匹配。这类告警不一定最急,但必须推给执行变更的人和审批人,因为他们最清楚刚才动了什么。
第三层是观察类,比如单台算力轻微波动、短时间拒绝率变化。它不要求马上叫人起床,但要进入第二天早会复盘清单。
告警不是越多越安全。对矿场来说,更重要的是告警能不能指向一个明确动作:谁确认、谁处理、多久反馈、什么条件升级。HiveOS 能提供状态和通知,但责任分配不能交给系统自动猜,必须由矿场自己定。
维修账号也能改全场配置:判断权限设计已经失控
这次事故里还有一个细节,后来让我们很后怕:执行批量下发的人不是主管,也不是当晚排班的主值,而是一名临时协助调机的技术员。他本来只该处理几台返修机器,却拥有了整个 Farm 的修改权限。
很多矿场在 HiveOS 上开账号时图省事,给现场技术员、外包维修、夜班人员都开差不多的权限。理由也很现实:现场情况复杂,权限太少会耽误处理。但权限过大带来的问题,是一次误点、一次看错分组、一次复制错模板,就能影响全场。
我们后来把权限按工作内容重新拆开。
现场维修账号可以查看机器状态、重启单台机器、备注故障,但不能改 Flight Sheet,不能批量应用超频模板,不能修改钱包和矿池。
夜班值守账号可以处理指定分组内的重启、停挖、恢复挖矿,但涉及钱包、矿池、系统升级、批量脚本执行,必须经过二次确认。
运维主管账号才能进行跨分组批量变更,但也不能单人完成关键操作。涉及收益地址、矿池切换、系统版本升级的动作,必须有另一个负责人确认。
外部人员账号只给临时有效期,到点自动回收。维修结束后,不允许账号继续挂在系统里。
这里要强调一点:权限不是为了防谁“作恶”,更多是为了防好心办坏事。矿场里很多事故不是恶意攻击,而是人在疲劳、赶时间、信息不全的情况下做了超出自己职责范围的操作。HiveOS 的权限如果不收紧,流程再写得漂亮也没用。
回滚只靠记忆和截图:判断恢复速度一定会输给混乱
事故当天,最耽误时间的不是发现问题,而是回滚。
有人记得旧矿池地址,有人记得旧钱包标签,还有人手机里存着上周的截图。但这些信息散在不同人手里。更麻烦的是,有些机器之前做过单独调整,不能简单套回统一模板。结果我们一边查聊天记录,一边翻 HiveOS 里的历史操作,一边让矿池侧对账,恢复过程拖了很久。
从那次之后,我们把回滚当成批量变更的一部分,而不是出事后的临时补救。
现在每次批量下发前,必须先做四件事。
第一,导出本次涉及 Worker 的当前配置,包括 Flight Sheet、钱包标签、矿池地址、超频模板、系统版本和 miner 版本。
第二,保存一份可直接恢复的旧模板,不只保存截图,而是能在 HiveOS 里重新应用。
第三,选一小组机器做试点,至少跑过一个完整统计周期,再扩大范围。这个统计周期不是看面板亮不亮,而是看矿池侧算力、拒绝率、收益地址是否一致。
第四,写清楚回滚触发条件。比如下发后 15 分钟内离线超过多少台、拒绝率超过多少、矿池侧算力下降多少,就停止继续推进并回滚。不能等到群里吵起来才决定。
回滚最怕含糊。什么叫“情况不对”?每个人理解不同。只有把触发条件数字化,夜班才敢在没有主管盯着的情况下执行。
事故复盘只问谁点错:判断下一次还会在别处发生
事故刚发生时,大家最自然的反应是找责任人:是谁点的?为什么点?有没有看清?该不该处罚?
这些问题要问,但如果复盘只停在“谁点错”,下一次还会发生,只是换一个人、换一个按钮、换一个时间。作为运维负责人,我更关心的是:为什么一个人能点到不该点的范围?为什么点之前没有试点?为什么告警没有关联到刚才的变更?为什么回滚资料不完整?为什么夜班不知道该停在哪里?
后来我们把复盘模板改了,不再只写故障现象和责任人,而是固定追五个问题:
这次变更的影响范围是否提前列出?
执行账号的权限是否超过岗位需要?
HiveOS 里的分组是否适合这类批量操作?
告警有没有直接指向执行人和审批人?
回滚资料是否能让另一个不熟悉现场的人照着恢复?
只要其中一个问题答不上来,就不能算复盘完成。因为真正能减少事故的,不是让某个人下次更小心,而是让系统和流程不给人留下太大的犯错空间。
今天就能改的三件事:判断别等大事故后再补流程
如果矿场已经在用 HiveOS,我建议今天先做三件小事,不需要等采购、不需要换系统,也不需要开很长的会。
第一,把账号权限过一遍。凡是不需要改钱包、矿池、Flight Sheet、批量脚本的人,先收掉相关权限。临时账号设有效期,外包人员离场当天必须回收。不要等出事后才发现一个维修账号能动全场配置。
第二,挑最近一次批量操作做反查。看当时有没有导出旧配置,有没有试点机器,有没有明确回滚条件。如果没有,就把这次操作当成演练素材,补一份标准流程。流程不要写成十几页,写成值班员能照着执行的清单。
第三,调整告警接收方式。离线告警继续保留,但要新增“变更后异常”的检查口径。批量下发后半小时内,矿池切换、拒绝率、算力下降、配置不一致,都要和那次变更绑定起来看,并推给执行人和审批人。
HiveOS 能让矿场少跑很多路,也能让一条错误命令跑得很远。今天最该防的风险,不是系统不会批量管理,而是我们太相信批量管理会自动安全。
今晚如果要下发配置,先别急着点全选。看一眼分组,确认账号,导出旧配置,选几台试跑,把回滚条件写在工单里。多花这十分钟,可能就是少丢一整晚收益的区别。
