
1) 【一句话结论】:采用本地高可用存储与云对象存储双冗余架构,结合全量+增量+日志备份策略,通过自动化监控与快速恢复流程,确保课程录制数据在服务器故障时无丢失,并支持秒级回放。
2) 【原理/概念讲解】:课程录制数据属于关键业务数据,容灾核心是数据冗余与快速恢复。
3) 【对比与适用场景】:
| 方案类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 本地存储(SAN/NAS) | 服务器本地磁盘 | 读写快、成本较低 | 小规模、低容灾需求 | 单点故障风险高 |
| 云对象存储(OSS/S3) | 分布式对象存储 | 弹性、高冗余、跨区域复制 | 大规模、高可用 | 传输延迟,需网络 |
| 分布式文件系统(Ceph) | 自治存储集群 | 自治、高可用、多副本 | 需要高可靠(如教育平台) | 管理复杂 |
| 备份策略 | 定义 | 特性 | 使用场景 | 注意点 |
| 全量备份 | 每次备份完整数据 | 体积大、恢复快 | 基础备份 | 占用空间大 |
| 增量备份 | 仅备份变化数据 | 体积小、效率高 | 每日增量 | 需全量恢复时合并 |
| 差异备份 | 备份自上次全量以来变化 | 介于全量与增量 | 周期性备份 | 恢复时间比增量长 |
4) 【示例】:假设使用阿里云OSS作为云存储,本地服务器(ECS)存储原始视频流,通过OSS的复制服务(Cross-Region Replication,CRR)实现跨区域备份。伪代码(伪代码):
# 本地录制存储
def record_video(video_data, local_path):
with open(local_path, 'wb') as f:
f.write(video_data)
oss_client.put_object(Bucket='video-bucket', Key=video_data['key'], Body=video_data['data'])
# 备份流程
def backup_video(video_key, local_path, oss_bucket):
if is_daily_backup(): # 全量备份(每日0点)
oss_client.put_object(Bucket=oss_bucket, Key=video_key, Body=local_path)
else: # 增量备份(每小时)
oss_client.put_object(Bucket=oss_bucket, Key=video_key, Body=local_path, Metadata={'x-oss-copy-source': f'{oss_bucket}/{video_key}'})
5) 【面试口播版答案】:面试官好,针对课程录制与回放的容灾方案,核心思路是构建多级冗余存储和自动化备份恢复流程。首先,数据存储层面,采用本地高可用存储(如分布式文件系统)与云对象存储(如阿里云OSS)双备份,本地存储保证低延迟回放,云存储提供跨区域冗余。备份策略分全量(每日0点)、增量(每小时)和日志(视频流分片日志),确保数据不丢失。恢复流程通过心跳监控检测服务器故障,自动触发数据同步(从云存储拉取最新数据),验证后快速回放。这样即使服务器故障,课程内容仍能从云备份恢复,保证用户回放体验。
6) 【追问清单】:
7) 【常见坑/雷区】: