网盘容量背后的技术秘密

想要为每个用户提供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的。

工程师的这个点子,使得我在建立网盘初期能用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原始空间的数据,你会发现所付出的成本近乎是微乎其微的。

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

我隐约想到了无限容量的某虎邮箱~

至于dropbox,人家才是真正的网盘,国内的云诺好像也是这样子的。

其实我只想说一句,上传速度15KB/S我们都感动的哭了

网盘的兴起产生了一系列的网盘搜索引擎,他们就是抓取如:http://pan.baidu.com/s/1hsO5XQk的资源公开分享链接。想想也在情理之中,像这样子的搜索引擎有:

去转盘网(http://www.quzhuanpan.com);号称3000万资源,也是略叼!

西林街(http://www.xilinjie.com/);采用google自定义搜素,基本30分钟搞定。

找文件(http://www.zhaofile.com/);找文件资源很方便,其他一般。

等等~~~

码字码了半天,不知道友友们看懂了没?网盘存储的兴起是物联网的必然趋势,网盘搜索引擎也是其附属产物。科技就是方便人们的生活,让大佬们去挖掘创造来方便广大群众吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容