为什么国内的网盘公司都在 TB 的级别上竞争,成本会不会太高?(还有好多其它回复)

作者:杜鑫
链接:http://www.zhihu.com/question/21591490/answer/18762821
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

@Jerry 已经说明可其中非常关键的一步,我来补充一些并说得通俗易懂一些。

我想要为每个用户提供 1G 的网络存储空间。

如果服务器上有一颗 1000G 的硬盘可以全部为用户提供数据储存,如果每个用户分配 1G 的最大储存空间,那么能分配给多少个用户使用呢?

你一定说是 1000/1=1000 个用户。

但事实上你这么分配了,你会发现每个用户平时根本不会上传 1G 的东西将容量占的满满的,有多有少,但平均用户平时只上传 50M 的文件,也就是说,你将 1000G 的硬盘分给 1000个人使用,但只有效利用了其中的 50M*1000=50G 的空间,剩余 950G 的空间基本都浪费了。

那么怎么解决呢?

你可以变通一下,将这 1000G 的空间分配给 20000个 用户使用,每个人的上传上限容量还是 1G,但每人平时还是平均上传 50M 的数据,那么 20000*50M=1000G,这下子就把宝贵的服务器上的存储空间充分利用了。但你又怕这样分配给 20000个 人后,万一某一刻人们突然多上传点数据,那么用户不是就觉察出来你分给人家的 1G 空间是假的了吗?所以可以不分配那么多人,只分配给 19000 人,剩下一些空间做应急之用。

突然发现一下子将可分配的用户数量翻了 19倍啊,了不起。那还有买有办法更加有效的利用一下呢?

如果我有 1000个 以上的服务器,一个服务器上有 1000G 空间,那么我们个服务器上都要留下 50G 的空白空间以备用户突然上传大数据时导致数据塞满的情况,那么我这 1000个服务器上就空出了 1000台*50G=50000G 的空间被浪费了,所么可惜。所以我们发明了计存储集群,使得一个用户的数据可以被分配在多个服务器上存储,但在用户那看起来只是一个 1G 的连续空间,那么就没必要在每个服务器上预留出应急的空间了,甚至可以充分的将前一个服务器塞满后,在将数据往下一个服务器中塞。这样保证了服务器空间的最大利用,如果某一刻管理员发现用户都在疯狂上传数据(在一个大规模用户群下,这样的概率少之又少)导致我现有提供的空间不够了,没关系,只需要随手加几块硬盘或者加几台服务器就解决了。

好吧,这下子我们的服务器空间利用率高多了,可以将一定量的空间分配给最多的用户使用了。但有没有更好的改进方案呢?

管理员有一天发现,即使每个用户均下来只存储 50M 的东西,但这 50M 也不是一蹴而就的,是随着1-2年时间的使用慢慢的达到这个数量的,也就是说,一个新的用户刚刚注册我的网络空间时,不会上传东西,或者只上传一点非常小的东西。那么我为每一个用户都初始分配了 50M 的空间,即使将来2年后他们会填满这 50M ,但这期间的这些空间就很浪费啊。所以聪明的工程师说:既然我们可以分布式、集群式存储,一个用户的数据可以分布在多个服务器上,那么我们就假设一开始就给一个新注册的用户提供 0M 的空间,将来他用多少,我就给他提供多少存储空间,这样就彻底的保证硬盘的利用了。当然用户的前端还是要显示 1G 的,只不过这1G的“空间”只是个数字而已。

工程师的这个点子,使得我在建立网盘初期能用 1台 1000G 的服务器提供了大约 1000000 人来注册和使用,随着注册的人多了,我也有钱了,也可以不断增加服务器以提供他们后期的存贮了。同时因为一部分服务器晚了一年多购买,我的购买成本也下来了。

那么...这结束了吗?若是邮箱提供商的话,这样的利用率够高了。但网盘就不一样了。

聪明的工程师发现:不同于邮箱,邮箱服务器中大家上传的内容和附件绝大多数都是自创的和不相似的。但网盘上大家上传的东西很多都是重复的。

比如:张三 今天下载了一部《TOKYO HOT》上传上传到了自己的网盘上,李四在三天后也下载了一模一样的《TOKYO HOT》上传到了网络硬盘上,随着用户的增多,你会发现总计有 1000个人 上传了 1000份 一模一样的文件到你宝贵的服务器空间上,所以工程师想出一个办法,既然是一样的文件,我就只存一份不久好啦,然后在用户的前端显示是每人都有一份不就行啦。当某些用户要删除这个文件的时候,我并不真的删除,只需要在前端显示似乎删除了,但后端一直保留着以供其他拥有此文件的用户下载。直到所有拥有此文件的用户都删除了这个文件我再真的将其删除吧。

这样子随着存储的数据越来越多,注册的用户越来越多,其上传的重复数据越来越多。你发现这样的检测重复文件存储的效率越来越大。这样算下来似乎每个人上传的不重复的文件只能平均 1M/用户。这下子你可以提供超过 50倍 的用户使用您这有限的空间了。

但伴随着使用,你又发现一个规律:

张三上传的《TOKYO HOT N0124》和李四上传的《TH n124》是同一个文件,只不过文件名不一样,难道我就不能识别出他们是一个文件,然后只将其分别给不同的用户保存成不同的文件名不久行啦?确实可行,但这要利用一些识别文件相同性的算法,例如 MD5 值等。只要两个文件的 MD5 值一样,文件大小一样,我就认为它们是相同的文件,只需要保存一份文件并给不同的用户记作不同的文件名就好了。

有一天你发现,因为每一个文件都需要计算 MD5 值,导致 CPU 负荷很大,而且本来一样的文件非要浪费带宽上传回来才可以检测一致性,能改进一下吗?

聪明的工程师写了个小软件/小插件,美其名曰“上传控件”,将计算 MD5 值的工作利用这个软件交给了上传用户的电脑来完成,一旦计算出用户要上传的数据和服务器上已经存储的某个数据是一样的,就干脆不用上传了,直接在用户那里标记上这个文件已经按照 XX 文件名上传成功了。这个过程几乎是瞬间搞定了,并给其起了个高富帅的名字“秒传”!

通过以上这么多步骤,你发现本来你只能给 1000用户 提供网络空间的,这么多改进办法后,在用户端显示 1G 空间不变的情况下,近乎可以为 1000000个用户 提供网络空间了。

这样若是您哪天心情好,对外宣传说:我要将每个用户的存储空间上限提升到 1TB。那么每个用户平均还是只上传 50M 数据,只有极个别极个别的用户上传了突破 1G 原始空间的数据,你会发现所付出的成本近乎是微乎其微的。

辛勤的工程师还在为如何更有效率的利用服务器提供的磁盘空间在不懈努力和挖掘着......

时间: 2024-10-11 00:10:08

为什么国内的网盘公司都在 TB 的级别上竞争,成本会不会太高?(还有好多其它回复)的相关文章

百度网盘搜索源码,新加分词功能,内容相关度聚合更高

百度网盘搜索源码说明: 最佳适用环境:linux(如果不是linux系统,win系统也可以,但是php天生就是跑在linux上的,linux上跑php性能不是win系统可以比拟的) 源码说明:php+mysql 关于前端:前端是基于bootstrap框架. 关于广告位:本程序是采用伪静态地址访问,可以一键增加广告位. 关于采集源:采集源是直接采集百度网盘的,这样可以避免有些失效资源问题等等. 关于程序内核:程序全部为自己开发,非套用市面上开源内核,自主开发的程序专门适用于存储云盘亿级数据,个人看

网盘的倒掉是不可避免的,因为做网盘的成本是非常巨大的(国内几大网盘就剩百度云、天翼云、和彩云),中国的独服太贵

作者:冯硕链接:http://www.zhihu.com/question/51803053/answer/127549782来源:知乎著作权归作者所有,转载请联系作者获得授权. 很正常的情况.目前全国所有的网盘商均处于巨亏的状态,撤退是非常正确的选择.我在这个回答下新浪微盘为什么要停止个人免费服务?有什么影响? - 冯硕的回答 就说过这个问题了.网盘的倒掉是不可避免的,因为做网盘的成本是非常巨大的.现在活着的网盘,大家且用且珍惜.当时新浪微盘倒掉的时候,我的确准考虑做网盘方面的业务.当时我不仅

国内不限速网盘有那个?

对网盘进行限速好像是一个基本的共性了.有很多的网盘都对用户进行了限速处理,在这个快节奏的时代被限制速度就感觉整个的世界也都变得缓慢了,对于一个急性子的我来说,要等一个文档慢慢的下载上传好真的是要命的等待.那么有什么网盘是不限速的吗? 今天我要说的是一个速度快,保密性强,方便快捷的网盘,并且非常的实用.因为我们日常生活中,传送文件一般是微信or网盘分享,但是微信会占用不少手机内存,速度也不快,而普通网盘的话,如果你不是会员,那么你会被龟速给气哭. 什么网盘不限速? 坚果云网盘就做到了不限速功能.坚

[IT业界] 网盘纷纷停止服务,下一个是谁?

今天新浪微盘发公告称即日起调整服务功能,停止普通用户的存储服务,也就是将关闭新浪微盘的搜索.分享功能.2016年以来,已经有115网盘.UC网盘等多家网络数据在线存储产品宣布关闭文件存储.分享功能,这对这些产品本身而言是致命的.表面上这些网盘的式微是受到国家网络涉黄内容清理整治行动的影响,事实上,在中国互联网整体环境下,中国网盘服务独具特色的运营模式本身就是一个“不能长久的存在”.政策一变,死掉一片,着实令人感叹. 早在2014年快播服务器被关停之后不久,同样提供视频分享功能的各个网盘也受到波及

产品:网盘比较,非常全面

作者:王达达链接:http://www.zhihu.com/question/20579359/answer/18672672来源:知乎著作权归作者所有,转载请联系作者获得授权. 最近因为要准备考试压力比较大,加上最近云存储打的火热,我深度试用了一下各家的网盘,加上之前一直在用的Dropbox和http://box.net,我想基本上市面上比较流行的存储都用了吧,趁这个机会奉上我在知乎的第一个长答案吧. 先说结论吧,这次参与讨论的网盘品牌及个人的一句话点评: 百度网盘:毫无争议的王者.体验极佳,

打造百度网盘备份利器:自动备份Linux VPS文件和多线程下载百度网盘资源

前一段时间国内的各大网盘百度云盘,金山快盘,360云盘,华为网盘为争夺用户上演空间容量博弈,网盘商们还固执地以为中国的网民都不懂网络技术,可以像某公司那样用一些数字的手段来忽悠用户,参与到网盘商的数字游戏中的公司都心知肚明. 在不需要增加任何网盘上传下载带宽和硬件设备投入的情况下,又可以用TB级别网盘这样的字眼来夺人眼球,在网络上大肆炒作一番,这比用钱买广告来推广网盘有效得多了.在这场网盘炒作中,率先“挑起事非”的两家百度网盘和360网盘获利最多. 尤其是百度网盘,应该算正式成长为国内网盘界中老

协作为王,企业网盘VS个人网盘

跟100个企业管理者提到企业网盘,其中99个都会产生这样的疑问:企业网盘和个人网盘有哪些区别? 我们看到大量案例正在发生,很多正在使用个人网盘的团队已经过渡至企业网盘产品,个人网盘已无法满足日常的办公需求. 企业网盘和个人网盘的基本功能都是存储.共享,差异在于协作功能实现的细节上.下面,本文将重点介绍企业网盘.个人网盘两者的不同,此外,还会列出在日常办公中企业网盘实现的业务场景,大家可以从场景去体会两者的差异. 个人网盘 个人网盘的功能设计仅仅考虑到单人存储.分享的场景,基本上所有个人网盘都是公

【转】可在广域网部署运行的QQ高仿版 -- GG叽叽V2.0,增加网盘和远程磁盘功能(源码)

尽力2~3周发布一个版本,我这次也没有失言.这段时间内,我仿照QQ的微云功能,在GG中增加了网盘的功能,而且,我还自创了一个QQ没有的新的功能:远程磁盘.正如远程桌面一样,远程磁盘允许我们像访问本地磁盘一样来访问在线的其它用户的磁盘. 一.GG V2.0 新增功能展现 (1)网盘:在服务端为每个用户分配一个网盘,用户通过客户端可以访问自己的网盘.就像QQ的微云一样. (2)远程磁盘:任何一个在线用户,都可以访问其它在线用户的磁盘(先要经过对方的同意). (3)无论是网盘.还是远程磁盘,都支持:上

百度网盘,前几天刚从百度云改名过来,百度云这个名字给之前的百度开放云(同步盘用户比较小众)good

作者:黑郁金香链接:http://www.zhihu.com/question/51803053/answer/127562835来源:知乎著作权归作者所有,转载请联系作者获得授权. 在8月网盘大面积关闭的时候我回答过类似的问题目前(2016 年 8 月),市面上哪个云同步盘最好用? - 知乎用户的回答现在还能用的免费大容量网盘:百度网盘(刚从百度云改名过来).微云.天翼云.115等先放观点:对非主营业务的大容量免费网盘我都不看好.理由: 同步盘用户比较小众,并且从几个还存活的网盘关闭同步功能来