近日,视频网站YouTube宣布,其全球视频日播放量已经超过10亿小时的里程碑,每分钟新上传视频400小时,相当于1天有65年时长的节目内容更新。这无疑是一个非常庞大的数据,穷我们一生不吃不喝,也不过能看完其一天的视频上传量。
这还仅仅是YouTube一家视频网站,全球范围内所有的视频网站加起来,其数据量已经大到我们无法想象,那么问题来了,这么多的视频,是如何存储的,那得多少硬盘来装啊?
海量硬盘加压缩去重来解决大量数据存储
首先说明一个问题,来普及一下数据量级的问题。1MB=1024KB,1GB=1024MB,1TB=1024GB,1PB=1024TB,1EB=1024PB,1ZB=1024EB,1YB=1024ZB,1BB=1024YB,1NB=1024BB,1DB=1024NB。其中我们手机拍摄一张照片约3M,一个高清电影约2G,1TB的硬盘,可以存储500部高清电影。
很多大型网站其实是有自己的专属机房,也就是现在动辄占地几千亩的大型数据中心。如百度已经在山西阳泉建了云计算中心了,占地2000多亩,基本都是存储。我们日常用的百度网盘,里面的数据都存储在了百度的机房里。
大型的企业网站如爱奇艺、腾讯等公司,都有专有机房,这些机房内具有大量硬盘。毕竟相对来说,硬盘的价钱真实是太低了。想想我们只需求四百块钱就能购置1T的硬盘资源,对于大型公司来说,完整有准备大量硬盘的实力。
在用户上传文件或者视频之后,一般会有专门的转码紧缩效劳器。用来把上传的文件进行压缩,所以有时可以看到,本人上传的高清视频,在停止查看时,明晰度并不是很高,这是由于停止压缩的效果。
而在真正保管到硬盘之前,需求对上传的文件去重。检测硬盘中是会否曾经有相关的文件了。假如有的话就直接指定过去了。这也就是为什么很多网盘上面,会有秒传的功用,好几G的文件,几面就能上传完成就是这个原理。
缓存热点数据来保证数据高效分发
对于视频网站来说,绝大部分视频都是冷门资源,用户观看带有非常强的选择性。如当前正在热播的《人民的名义》,在一定的时间段类,可能用户都去看这部电视剧,对于这种热点数据,存储上主要运用散布式存储加散布式文件系统,保证高并发高带宽,存储底层会选用分层技术。
很多视频点击量爆高,此时系统会判别此类数据,并存储到大容量缓存中,外加外置UPS维护,那么当视频没人看的时分,就自动迁移到廉价的7200转或5400转的HDD存储层中。如今的硬盘最大做到60TB了,企业级大容量氦气盘曾经有10TB、12TB了。特别老的视频文件且为普通用户上传的会被后台剖析平台挑选出来删除来释放空间。
可能热点数据在视频网站庞大的存储资源库中,只占据了不到1%的比重,这个时候,网站只需要将高质量带宽分配给这些热点数据即可,并不会明显影响到用户的实际使用。如《人民的名义》现在是绝对热点,可能有1000万人同时观看;而BBC纪录片《地球脉动》在刚推出时是绝对热点,现在随着大家都看过了,每天只有很小一部分人观看。网站根据数据请求量,来酌情分配带宽,并会将热点数据缓存起来,甚至分发到离你家很近很近的机房,这样速度会很快,保证优良的用户使用体验。
可以理解为,有很多货物需要运输,但网民经常购买的物品带有一定的规律性,比如冬天北京雾霾天的时候,买空气净化器的人非常多,这个时候,网站会在仓库里放很多空气净化器,一旦有人购买就可以直接运输出去;而到了春天空气非常好,买空气净化器的人锐减,仓库就会只放很少的库存。通过对于热点的把控,可以高效地提升整个系统的运行效率和用户体验。
总结起来就是,网站会持续购买大量硬盘来存储源源不断的数据,但数据毕竟是有限的,通过压缩、去重等手段,可以有效减轻存储压力;再通过对于热点内容的缓存,来提升用户的实际使用体验。大数据时代,大家都知道数据就是金钱,和未来可以赚到的钱相比,眼前几百块钱一个的硬盘,网站还是舍得花钱买的。