我想为我的网站安装一个新的流媒体服务器,该网站通常用于存储视频和音频文件。但如果存储容量日益增加,我们如何维护流媒体服务器的备份。
通常在数据库服务器上,比如 Sql Server,可以轻松地进行备份和恢复,因为它们对于中型应用程序来说不会占用太多空间。
另一方面,我们如何备份流媒体服务器?如果服务器出现故障,应该有一个替代服务器/解决方案,以减少服务器的停机时间。
YouTube 的后端架构是如何构建来处理这个问题的?
答案1
我们的做法是拥有多个 FC SAN,每个 SAN 都跨不同的数据中心彼此同步,每个 SAN 都连接到充当“源”服务器的服务器组,将 FC 存储转换为 NFS 或 CIFS/SMB。然后,这些服务器被分成负载平衡的 VIP 块,这些 VIP 块又为类似 VIP 的 Web 服务器块提供数据,然后通过 FW/LB 呈现给外界。
实际内容会定期从一个或多个 FC SAN 盒快照到专用 SAN 盒,然后将其备份到另一个站点的磁盘上,磁带随后存储在 Iron Mountain 中。我从事流媒体业务 :)
内容没有捷径可走,它很大,你必须处理它。如果我是你,我会设置一台专用的备份机器,为其提供一大块磁盘空间,并使用 rsync 来确保你拥有主内容存储中每个文件的副本,即使这最终不可避免地会成为实时数据的超集。然后对该机器进行磁盘或磁带备份,并定期删除陈旧数据以使其易于管理。
哦,youtube 不会正确备份任何普通用户的内容,他们的设计确保他们在世界各地分发多个副本,但这更多是为了提高性能而不是恢复能力。他们确实备份了自己的内容或任何其他付费部署的内容,但与他们没有合同义务存储的所有内容相比,这只是沧海一粟。
答案2
现在,您会发现为什么拥有流媒体视频/音频服务并保持其可靠性并不容易。要获得完整的备份解决方案,您需要:
- 用于保存备份内容的附加服务器。
- 足够的可用带宽(在单独的后端网络上)来处理备份。
- 脚本及时复制内容或在将文件添加到服务器时自动备份。
如果您希望减少停机时间,则需要添加至少两倍于原始解决方案的服务器数量,以及管理该网络的方法。成本至少是原始解决方案的 2 倍。
正如 Chopper3 所指出的,您可以在基础设施中构建执行“备份”的需要,因为在添加内容时会自动镜像。
答案3
假设您的一个问题是“YouTube 的后端架构如何处理这个问题”,即使您在帖子中从未使用问号,答案也是 Google 非常庞大,在全球各地分布着大量服务器,您可以确保数据存储在多台机器上,因此如果其中一台机器出现故障,数据仍可继续传输。
通常的备份计划包括异地备份,但如果您需要高正常运行时间,则可能需要异地和本地备份,以便您可以从本地快速恢复,但如果 DC 中发生任何灾难,您将必须使用异地备份。
有人提到磁带备份,但我不建议这样做,因为您似乎实际上不需要存档数据,您可能只是希望能够将数据同步到另一台服务器进行备份。有一些有用的工具,如 rsync,可以保持数据同步,并且只会上传修改过的文件,这样您就不必进行完整备份。
有多种方法可以使它变得过于复杂,也有多种方法可以烧钱设置大量冗余,但有些东西告诉我你负担不起,而且你也不需要管理太多机器的麻烦。