微信号:infoqchina

介绍:有内容的技术社区媒体

Facebook如何实现PB级别数据库自动化备份

2013-02-28 17:10 InfoQ

Facebook的MySQL数据库是世界上最庞大的MySQL数据库之一,在不同地区有数千个数据库服务器。因此,备份对他们来说是个巨大的挑战。为了解决这个问题,他们构建了一个高度自动化、非常有效的备份系统,每周移动多个PB的数据。


他们没有采用大量前载测试,而是强调快速检测失败,并且进行快速、自动化纠正。部署几百个数据库服务器,只需很少人力干预。使用下面的三个措施,他们做到了有节奏的增长,同时具备支持上十亿用户的灵活性。


措施1:二进制日志和mysqldump

第一道防线称为“措施1”,或“机架”备份,简称RBU。在每个数据库机架上,不论其类型为何,都有两个RBU存储服务器。以RBU作为数据库服务器放在同一个机架中,这可以保证最大的带宽和最小的延迟,它们同时可以作为缓存,在备份的下个措施使用。


这些服务器的工作之一是收集二进制日志,第二个工作是执行传统备份。Facebook的团队可以在几个小时内完成对所有数据的备份。如果RBU失败,自动化软件会将其职责分配给同一集群中其他系统。


措施2:Hadoop DFS

在每个备份和二进制日志收集完成后,他们会马上将其复制到他们的大型定制化Hadoop集群中。这些集群是非常稳定的复制数据集,并有固定的保留时间。


措施3:长期存储

每周,他们会从Hadoop备份移动到另一个地区的分散存储中。

除常用的系统监控外,他们还会捕捉很多特定的统计数据,比如binlog集合延迟、系统容量等等。鉴于“如果你没有测试过你的备份,就等于没有备份”,Facebook团队还构建了一个测试系统,会持续地从措施2开始,将数据恢复到测试服务器上。  


点击“阅读原文”查看更多内容并吐槽吧。

 
InfoQ 更多文章 成都下周全城整治清理“烈性犬” 小学生该不该带手机到学校? 好消息!“扫地娃”钟杰明日成都上学! 给我一个理由,送你一本好书 年前挖的坑都填了吗?技术债务偿还计划
猜您喜欢 六大步骤助你设计出优秀应用 Docker On Gaia——腾讯Docker管理解决方案 有米iOS恶意SDK分析 Never Stop Hacking! 关于Android配色(2)