存储帮助Facebook 150万用户顺畅交友

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

Facebook的用户现在每个月都上传超过800万张数码照片,截至去年夏天,Facebook是全球排名第一的网络照片存储网站,共存储了6.5亿张图片,同时,Facebook还拥有500多万部影片,以及其他内容,其中包括约20万件网络新闻、博客文章以及报告和评论,总计存储的数据量达到数个PB,所有这些数据都需要安全的存储,而且需要马上就进行检索。而这,是一个极为艰巨的任务。

事实上,Facebook就像是一个传奇,很难相信,前哈佛大学二年级学生Mark Zuckerberg创建的Facebook到目前为止仅仅只有5岁,在如此短的时间内积累下如此庞大的数据简直让人不可思议,但是,这的确是事实。

其实,Facebook的增长一直这么快且乐观,在2007年12月,该公司在美国加州的数据中心达到了满载的容量,幸运的是,Facebook的存储管理团队已经看到了存储的未来,并且在数据增长的过程中在美国东海岸的弗吉尼亚州建立了一个数据中心,并在几周前正式上线。不过,能够积极地管理PB级别的数据是很不容易的事情,因此,Facebook的团队一直在寻找可行之道。

“对于存储容量来说,我每天早餐的时候都会看到一个图表,那上面显示着我们正在做的。”Facebook公司存储工程经理Anoop Nagwani表示,他已经在Facebook工作了一年半,“我们每个月都会评价整个我们的组织机构,然后每周都会有一个小组讨论。”

MySQL越来越庞大

Facebook的用户数据存储在MySQL数据库上,Facebook拥有一个全球最大的MySQL数据库系统,骑在超过1800台服务器上运行着MySQL数据库。Facebook选择了MySQL的开放性,因为其代码的可修改性是必要的。Facebook同时还是用了大量的内存缓存服务器(Memcached Server),其速度大幅度超过了MySQL服务器,从而能够更好的跟上存储数据副本的要求。此外,每个晚上,Facebook都会进行数据复制,将Facebook在西海岸数据中心的数据复制到东海岸的数据中心中,并进行一次数据转储,这些数据通过重复数据删除技术专业厂商Data Domain的技术进行重复数据删除后进行长期存储。
Facebook处理图片和视频略有不同,其使用NetApp的NFS系统以及SATA硬盘来进行存储,因为NetApp能够在一个很大的容器中存储很大的对象。但是,随着Facebook上存储的照片数量的增长,NetApp的系统因由元数据已经不堪重负,造成了带宽的瓶颈。

因此,今年晚些时候,Facebook计划推出自己的对象存储系统“Haystack”,该系统被其描述为“一个标示数据所在的用户级别的抽象对象都存储在一个单一的文件中(类似于LUN)”。

Facebook也使用NFS来存储视频,“因为我们有许多设备要存储相同的数据在一线系统,这事最具成本效益和高性能的方式做到这一点。”Nagwani谈到。Facebook的系统正在像Isilon的集群存储系统一样良好工作着。但是Nagwani和他的团队仍然在积极寻找其他平台,比如Sun的Storage 7410统一存储系统,其能够扩展到576TB。

能耗和性能取得均衡

另一个备受Nagwani和他的团队关注的话题是能耗问题。

“我们一直都在关注电力问题。”他表示,“我们担心我们数据中心机架的能耗。话虽如此,我们正在制定一个解决方案,例如,当我们转移到NetApp,特别是当我们的照片都转移到运行着SATA硬盘的NetApp系统时,我们很看重电力消耗。我们期待系统能够做到的I/O指数,他们提供的容量和性能。而且我们还希望从根本上创建一个cookie刀片设计,我们要知道该系统有多少能力能够支持多少的用户使用。”

正如他的MySQL的数据,Facebook的照片和视频从西海岸数据中心利用快照复制到东海岸的数据中心,这样一来,“如果有人和类型的应用程序或是管理错误,我们可以随时通过快照来返回,或者,在最坏的情况下,出现系统故障,我们能够转移到东海岸,并将数据复制到西海岸那边。”Nagwani表示。

另一个大的问题是,Facebook的团队关注扩展性,因为,大约每周用户上传到Facebook的数据达到25TB,“这是我们的第一要务,是我们的规模、和扩展水平能够领先市场需求的原因。”

“闪存将是我们今年巨大的进步。”——Anoop Nagwani

作为其始终创建最佳的数据存储平台的长期战略,Facebook目前正在研究闪存技术,特别是以PCI为基础的高容量闪存设备,加入到固态存储(SSD)的用户大军中去。

“我们正在寻求将高容量的闪存设备到我们的MySQL数据库中去,因为我们的数据库内容需要非常快的I/O操作,这样做就能更快的进行ETL处理、数据仓库并且可以更快的获得数据。”Nagwani表示,“我们也在寻求将Sun的ZFS平台作为我们的一个新的系统,就像我们使用NetApp一样。我们喜欢他们,因为他们有一系列的闪存,因此,我们可以缓存大量的数据,所以基本上我们今年在闪存存储上的进步将是巨大的。”      
 
 

来源:51CTO
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
体育赛事直播系统源码搭建平台四种用户获利方式
通过“东莞梦幻网络科技”体育直播源码搭建的赛事直播平台,有哪些功能帮助打造出完整的社群环境来吸引许多优质创作者,不仅让创作者能够获利,也让自家平台的素材内容多元且丰富,吸引更多用户和创作者,形成一个良好的正循环。
游戏直播软件源码开发搭建,平台获利方法有哪些?
在互联网新时代,随着直播技术成熟,泛娱乐产业备受市场追捧,当中娱乐游戏直播平台在这一行业中处于核心关注热点。即使由于短视频的兴起,其增长速度显著下降,但是其吸金实力始终不可小嘘。
陪玩平台源码开发,如何提升用户的约单体验?
陪玩平台源码开发,如何提升用户的约单体验?
|
运维 监控 安全
陪玩平台源码构建支付系统,不容小觑的系统模块
一般来说,陪玩平台源码开发的支付系统架构会包含三个层次的内容,分别是支撑层、核心层和产品层。支撑层主要是指支持各个支付功能的基础设施,核心层是支付系统的核心,又被分成了支付核心模块和支付服务模块,产品层主要是那些对不同用户角色提供的不同产品服务。
|
搜索推荐 供应链 物联网
带你读《场景方法论:如何让你的产品畅销,又给用户超爽体验》之一:时代、场景与社交货币
场景在哪里,营销的镜头就应该追踪到哪里。人的生活,其实就是不同的场景切换,消费发生在特定场景中。在不同的场景中,即使同一个人,消费需求也是变化的。变化的不是人,不是产品的核心功能,而是体现情绪、欲望的产品形态。营销角度的场景研究,不是研究产品的核心功能,而是研究产品的表现形式,以及产品如何与消费者发生联系,形成体验,表现情绪,获得满足。场景体验,就是产品与消费者的连接方式。很多时候,人们喜欢的不是产品本身,而是产品所处的场景,以及场景中自己浸润的情绪。本书的问世,必将进一步推动场景师成为产品研发团队的重要成员,这一天很快就会来到!
|
存储 关系型数据库 应用服务中间件
部署社交网站
项目案例:部署社交网站 前言:本次项目是搭建一套动态网站服务器平台,在上面运行社交网站(例如:人人网,开心网,天涯论坛)。相关知识点在前面的课程中都有所涉及,今天的实验就是一个综合运用,体现了真实的项目实施流程和思路。
767 0