考试系统双机热备:主机宕机后备机怎么接管

本文目录
  1. 双机热备是什么,主备和双主差在哪
  2. 自动切换和人工切换,考试场景怎么取舍
  3. 热备护得住的故障,和护不住的故障
  4. 超考怎么同步:首次全量,之后每 5 秒内一次增量
  5. 怎么配:先让备机待命,再到主机上检测、启用
  6. 主机宕机那天:接管五步
  7. 配热备容易踩的几个坑
  8. 哪些场景不适合用,或者要先加条件
  9. 大考前,先拿一台备机把切换演练一遍

考试系统双机热备,做法是平时让备机持续同步主机的数据,主机出故障时,由人确认原主机已停机,再在备机上接管、改 IP,考试在原来的地址上继续。它只对付一台服务器坏掉这一种情况,没有自动切换,也代替不了备份。超考从 v1.0.41 起带这个功能,下面先讲通用做法和判断标准,再讲超考控制台里怎么配、出事当天怎么切,边界也一并写清。

双机热备是什么,主备和双主差在哪

双机热备用两台服务器撑起同一份服务。一台对外,叫主机。另一台平时不接活,只把主机的数据同步过来,叫备机。主机坏了,备机顶上去,对外仍是同一个地址。这是通用做法,各家实现不同,骨架大体如此。

“热”指备机的数据一直跟得很近。冷备则是定期拷一份放着,出事后再恢复,恢复慢,丢的是上次拷贝之后的全部数据。

常见的运行模式有主备、双主和互备三种说法。互备是两台各跑一部分服务、互为对方的备机,考试系统一般用不上。主备和双主的区别在于备机平时干不干活。

模式 平时怎么跑 好处 代价
主备 主机服务,备机只同步待命 同一时刻只有一个写入方,数据不会冲突,排障简单 备机平时闲置
双主 两台都服务,互相同步 两台的资源都用得上,坏一台另一台继续 两边同时写要处理冲突,网络一断容易各写各的,数据分叉

考试系统一般选主备,因为一场考试的答卷只能有一份说了算(通用判断)。

自动切换和人工切换,考试场景怎么取舍

主机出故障时,谁来决定“现在切”,也有两种做法。自动切换靠心跳检测判断主机已死,备机自己升为主机。人工切换则由人确认之后,在备机上点按钮。

对比项 自动切换 人工切换
速度 快,无人值守也能完成 取决于人到场和判断的时间
主要风险 误判。网络抖动被当成主机宕机,两台都以为自己是主机(脑裂),数据分叉 夜里或节假日没人在场,就没人去切
前提 要有仲裁和防脑裂机制 要有明确的流程和责任人
更合适的场景 全天无人值守的服务 有人值守、故障影响可控的服务

考试时通常有监考老师和机房老师在场,真出了事能很快有人知道。人工切换要有人在场这个代价,在考试场景里可以接受,换来的是一次网络抖动不会误切出两台主机。具体怎么取舍,看你们的值守安排,这属于通用判断,非产品承诺。超考选的是人工切换,理由正是上面说的防误切。

评估任何一套双机热备方案,可以问四件事。

  1. 谁来决定切换,自动还是人工。
  2. 备机的数据比主机落后多少,怎么知道落后了。
  3. 原来的主机修好之后怎么处理,会不会出现两台主机。
  4. 同步链路有没有鉴权,是否加密,能不能暴露在公网上。

热备护得住的故障,和护不住的故障

热备对付的是一台服务器出问题。下表是常见故障的对照,属于这类方案的通用特性。

故障 热备能否应对 原因
主机死机、断电或硬件损坏 能 备机有已同步的数据,人工接管后继续服务
主机的系统或服务起不来 能 同上,换备机顶上
两台同时损坏,如同一机房断电、进水 不能 两台放在一起,一起出事就没有后手
误删试题、误改成绩 不能 同步会把误操作一起带到备机
交换机、网线故障 不能 两台服务器都好好的,考生机照样连不上
想靠备机多扛考生 不能 备机平时待命、不对外服务,不分担负载

热备代替不了备份。两台同时出事和人为误操作,只有备份兜得住。

超考怎么同步:首次全量,之后每 5 秒内一次增量

超考从 v1.0.41 起在控制台里提供双机热备,用的就是上面说的主备模式。主机对外服务,备机只同步待命。同步分两段,首次做一次全量,之后每 5 秒以内同步一次增量。超过 15 秒没有同步成功,控制台会标红提醒你。所有版本功能相同,免费版也能配。

这几个数字别读过头。5 秒是增量调度间隔的上限,不保证大文件或慢网络下 5 秒内传完。一次实机演练里,首次全量同步约 12 分钟,那次的数据规模这里没有给出,换成你们的数据量,耗时会不同,要自己试一遍。

产品界面截图:控制台,热备当前为未启用状态

怎么配:先让备机待命,再到主机上检测、启用

配置在控制台的「双机热备」区完成,顺序是先备机、后主机。

  1. 两台服务器装完全相同的版本,挑一个没有进行中考试的维护窗口。设为备用、启用和停用这三步,都要在这样的窗口里做。
  2. 在备机上点「设为备用服务器」,会开一个 30 分钟的配对窗口,接着去主机操作,别让窗口过期。点下去时控制台会二次确认:本机现有数据将被主机数据覆盖,本机服务端停止、不再对外服务。备机上若有要留的数据,先拷走。
  3. 在主机上点「配置备用服务器」,填备机的 IPv4,点「检测」。检测共五项,下表列出没通过时先看什么。
  4. 五项全部通过,再点「启用」,之后主机开始首次全量同步。
  5. 平时看一眼主机控制台,上面常驻显示上次热备时间、数据库延迟和待同步文件数,超过 15 秒没有成功或出错会标红,出现标红就去查网络和备机。
检测项 没通过时先看
TCP 3399 连通 备机 IP 有没有填对,两台之间的网线和交换机是否正常
两端版本完全一致 两台安装的版本号是否相同
备用状态与配对 备机是否已点「设为备用服务器」,30 分钟配对窗口是否已过
1MB 试写回读 备机磁盘能否正常写入,剩余空间够不够
备机到主机反向连通 备机能否反过来连上主机,网络是不是只通了一个方向

以上是排查思路,属通用建议,非产品承诺。

产品界面截图:双机热备区,热备当前为未启用状态

控制台上原有的「备份导出数据」照常要做,热备不替代它。同步链路有鉴权,但不加密,所以两台服务器要放在受信任的隔离局域网里,禁止把 3399 端口和数据库端口暴露到公网。

主机宕机那天:接管五步

出事当天的流程很短,每一步之前的确认花的时间最多。下表可以打印出来,贴在机房。

步骤 做什么 做之前确认
① 确认 确认原主机已停机或断网 避免出现两台主机,原主机还在对外服务就不要接管
② 接管 在备机控制台点「接管为主服务器」 首次全量同步已经完成
③ 改地址 把备机 IP 改成原主机 IP(或改 DNS) 改完后考生端和管理端不用改地址
④ 补传 考生端离线缓存的数据,连上新主机后补传 最后 5 秒以内未同步的数据靠它兜底
⑤ 授权 接管后自动申请一次 24 小时的临时授权 以主机有付费授权为前提,申请失败不会阻断接管

接管本身不受“没有进行中考试”的限制,考试进行中也可以接管,前提是首次全量已完成、原主机确已停机或断网。这一点决定了热备在考试当天能不能派上用场,维护窗口的限制只管设为备用、启用和停用。

临时授权是不限人数的,每台机器只申请一次,到期回落免费版单场 50 人。备机也可以在后台粘贴自己的授权码恢复。

原主机修好之后别直接开机用。它启动时会核对备机的状态,发现备机已经接管就拒绝启动,必须重新设为备机,这样不会出现两台主机。

配热备容易踩的几个坑

坑大多出在以为它已经护住了的地方。

  • 把热备当备份。 同步类热备会把误删、误改一起带到备机,两台同时坏了更没有后手。控制台上的「备份导出数据」照常要做,考后的整场导出也别省。
  • 接管前没确认原主机已停机或断网。 原主机要是还在正常对外服务,备机一接管就是两台主机。先确认,再点按钮。
  • 以为 5 秒内的数据一定在。 宕机瞬间未同步的最后 5 秒以内数据,依赖考生端离线缓存,连上新主机后补传。这是机制说明,没有“不丢一道题”的承诺。考生端断网后怎样续答、补传,见断网考试提交不了怎么办。
  • 两台版本不一致。 检测第二项要求两端版本完全一致,装机或升级后两台版本对不上,检测就过不了。
  • 在考试期间设为备用、启用或停用。 这三步必须在没有进行中考试的维护窗口里做,别拖到考试当天才头一回配。接管则不受这条限制。
  • 把同步口开到公网。 同步链路有鉴权但不加密,3399 端口和数据库端口只能在受信任的隔离局域网里用。
  • 拿单机的压测结果套热备。 热备模式没有做过压测,承载能力不能沿用单机压测的数据,要承载多少人,得自己演练。
  • 没留意临时授权会到期。 接管后的临时授权只有 24 小时,到期回落免费版单场 50 人,备机也可以在后台粘贴自己的授权码恢复,别等到期才处理。

哪些场景不适合用,或者要先加条件

热备解决的问题很窄,下面几种情况,先看看它能不能满足需求。

情况 为什么不合适 可以怎么办
要求主机一坏就自动恢复、无人值守 超考的切换是人工操作,要有人在场 排好考试期间的值守表,写明谁判断、谁操作
网络不是受信任的隔离局域网 同步链路不加密,传输的内容没有加密保护 先把两台放进隔离网络,或在网络层另做加密隧道
只有一台服务器,也没有第二台 热备要两台装相同版本的机器 先把备份和考前演练做扎实,再考虑加机器
需要备机分担考试负载 备机平时只同步、不对外服务 先用一键压测看单机承载,再决定怎么扩容
想靠热备承载更大规模的考试 热备模式未做压测,没有可套用的数据 在自己的环境里演练一遍,以演练结果为准
担心整个机房出事,如断电 两台放在一起会一起出事 备份拷到别处保管,留好恢复流程

服务器配置本身怎么定,见机考服务器配置怎么定。

大考前,先拿一台备机把切换演练一遍

需要热备的话,别等大考当天才头一回配。挑一个没有考试的维护窗口,把备机设为备用,在主机上检测、启用,等首次全量同步跑完,再停掉主机,在备机上接管、改 IP,让一台考生机连上去看能不能进考试。演练完,原主机要重新设为备机。那次演练首次全量同步约 12 分钟,你们的数据量不同,耗时以自己演练时记下的为准。

所有版本功能相同,免费版单场 50 人以内就能把双机热备配起来演练一遍。单场超过 50 人时在授权商店在线购买,价格见价格页。

FAQ

常见问题

考试系统双机热备是什么意思?

两台服务器,一台对外服务,另一台持续同步数据待命。主机故障时由人在备机上接管并改 IP,考试在原地址继续,不会自动切换。

超考的双机热备会丢数据吗?

宕机瞬间未同步的最后 5 秒以内数据,靠考生端离线缓存在连上新主机后补传。没有“一道题都不丢”的承诺,大考前请自己演练。

双机热备能代替备份吗?

不能。同步会把误操作一起带到备机,两台同时损坏也没有后手,「备份导出数据」照常要做。同步链路不加密,只能在隔离局域网用。

先下载免费版试一场免费版功能完整,单场 50 名考生以内免费。

产品界面 · 示例数据 · 手机可左右滑动查看

电话