考试系统双机热备:主机宕机后备机怎么接管
本文目录
考试系统双机热备,做法是平时让备机持续同步主机的数据,主机出故障时,由人确认原主机已停机,再在备机上接管、改 IP,考试在原来的地址上继续。它只对付一台服务器坏掉这一种情况,没有自动切换,也代替不了备份。超考从 v1.0.41 起带这个功能,下面先讲通用做法和判断标准,再讲超考控制台里怎么配、出事当天怎么切,边界也一并写清。
双机热备是什么,主备和双主差在哪
双机热备用两台服务器撑起同一份服务。一台对外,叫主机。另一台平时不接活,只把主机的数据同步过来,叫备机。主机坏了,备机顶上去,对外仍是同一个地址。这是通用做法,各家实现不同,骨架大体如此。
“热”指备机的数据一直跟得很近。冷备则是定期拷一份放着,出事后再恢复,恢复慢,丢的是上次拷贝之后的全部数据。
常见的运行模式有主备、双主和互备三种说法。互备是两台各跑一部分服务、互为对方的备机,考试系统一般用不上。主备和双主的区别在于备机平时干不干活。
| 模式 | 平时怎么跑 | 好处 | 代价 |
|---|---|---|---|
| 主备 | 主机服务,备机只同步待命 | 同一时刻只有一个写入方,数据不会冲突,排障简单 | 备机平时闲置 |
| 双主 | 两台都服务,互相同步 | 两台的资源都用得上,坏一台另一台继续 | 两边同时写要处理冲突,网络一断容易各写各的,数据分叉 |
考试系统一般选主备,因为一场考试的答卷只能有一份说了算(通用判断)。
自动切换和人工切换,考试场景怎么取舍
主机出故障时,谁来决定“现在切”,也有两种做法。自动切换靠心跳检测判断主机已死,备机自己升为主机。人工切换则由人确认之后,在备机上点按钮。
| 对比项 | 自动切换 | 人工切换 |
|---|---|---|
| 速度 | 快,无人值守也能完成 | 取决于人到场和判断的时间 |
| 主要风险 | 误判。网络抖动被当成主机宕机,两台都以为自己是主机(脑裂),数据分叉 | 夜里或节假日没人在场,就没人去切 |
| 前提 | 要有仲裁和防脑裂机制 | 要有明确的流程和责任人 |
| 更合适的场景 | 全天无人值守的服务 | 有人值守、故障影响可控的服务 |
考试时通常有监考老师和机房老师在场,真出了事能很快有人知道。人工切换要有人在场这个代价,在考试场景里可以接受,换来的是一次网络抖动不会误切出两台主机。具体怎么取舍,看你们的值守安排,这属于通用判断,非产品承诺。超考选的是人工切换,理由正是上面说的防误切。
评估任何一套双机热备方案,可以问四件事。
- 谁来决定切换,自动还是人工。
- 备机的数据比主机落后多少,怎么知道落后了。
- 原来的主机修好之后怎么处理,会不会出现两台主机。
- 同步链路有没有鉴权,是否加密,能不能暴露在公网上。
热备护得住的故障,和护不住的故障
热备对付的是一台服务器出问题。下表是常见故障的对照,属于这类方案的通用特性。
| 故障 | 热备能否应对 | 原因 |
|---|---|---|
| 主机死机、断电或硬件损坏 | 能 | 备机有已同步的数据,人工接管后继续服务 |
| 主机的系统或服务起不来 | 能 | 同上,换备机顶上 |
| 两台同时损坏,如同一机房断电、进水 | 不能 | 两台放在一起,一起出事就没有后手 |
| 误删试题、误改成绩 | 不能 | 同步会把误操作一起带到备机 |
| 交换机、网线故障 | 不能 | 两台服务器都好好的,考生机照样连不上 |
| 想靠备机多扛考生 | 不能 | 备机平时待命、不对外服务,不分担负载 |
热备代替不了备份。两台同时出事和人为误操作,只有备份兜得住。
超考怎么同步:首次全量,之后每 5 秒内一次增量
超考从 v1.0.41 起在控制台里提供双机热备,用的就是上面说的主备模式。主机对外服务,备机只同步待命。同步分两段,首次做一次全量,之后每 5 秒以内同步一次增量。超过 15 秒没有同步成功,控制台会标红提醒你。所有版本功能相同,免费版也能配。
这几个数字别读过头。5 秒是增量调度间隔的上限,不保证大文件或慢网络下 5 秒内传完。一次实机演练里,首次全量同步约 12 分钟,那次的数据规模这里没有给出,换成你们的数据量,耗时会不同,要自己试一遍。
怎么配:先让备机待命,再到主机上检测、启用
配置在控制台的「双机热备」区完成,顺序是先备机、后主机。
- 两台服务器装完全相同的版本,挑一个没有进行中考试的维护窗口。设为备用、启用和停用这三步,都要在这样的窗口里做。
- 在备机上点「设为备用服务器」,会开一个 30 分钟的配对窗口,接着去主机操作,别让窗口过期。点下去时控制台会二次确认:本机现有数据将被主机数据覆盖,本机服务端停止、不再对外服务。备机上若有要留的数据,先拷走。
- 在主机上点「配置备用服务器」,填备机的 IPv4,点「检测」。检测共五项,下表列出没通过时先看什么。
- 五项全部通过,再点「启用」,之后主机开始首次全量同步。
- 平时看一眼主机控制台,上面常驻显示上次热备时间、数据库延迟和待同步文件数,超过 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 名考生以内免费。