`
lgwt9829
  • 浏览: 18074 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

(转)百度是如何给每个人免费提供2TB存储空间的?

    博客分类:
阅读更多

http://news.mydrivers.com/1/302/302371.htm

前段时间在使用百度网盘时,突然发现百度网盘可以免费领取 2TB 空间啦!
网络硬盘大家可能都或多或少的接触过,不得不说在万物皆云的时代里,这是一种非常好的网络工具,而对我们这种穷到掉渣的免费用户来说,硬盘空间简直就是硬伤,刚开始使用的时候真是为了空间,各种折腾(做他那里所谓的任务),到头来也才扩充了5G左右。现在好了,随随便便、轻轻松松就有了2T的空间。
而这突如其来的2T空间是如何实现的呢?
事实是这样滴!
假如我想要为每个用户提供 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 原始空间的数据,你会发现所付出的成本近乎是微乎其微的。
辛勤的攻城狮还在为如何更有效率的利用服务器提供的磁盘空间在不屑努力和挖掘着……
百度是如何给每个人免费提供2TB存储空间的?
分享到:
评论

相关推荐

    115网盘怎么免费扩容.docx

    在这个教程中,我们将详细介绍如何免费扩容115网盘的存储空间。这个教程分为四个步骤,每个步骤都有其特定的操作和注意事项。 步骤一:登陆115网盘并获取8TB免费空间 首先,我们需要登陆到我们的115网盘账户,登陆...

    百度云和百度云管家和百度云盘三者有什么关系?.docx

    初次注册即可享受高达2TB的免费存储空间。百度云覆盖了包括Web版、Windows版、Mac版、Android版、iPhone版和Windows Phone版在内的主流操作系统,让用户能够在多种设备之间轻松上传、查看和分享自己的文件。 #### ...

    linux下2TB以上磁盘分区挂载操作

    在Linux环境下进行2TB以上大容量磁盘的分区与挂载操作是一项常见的系统管理任务,...通过上述步骤,我们可以在Linux系统中有效地管理和使用超过2TB的大容量磁盘,这对于处理大量数据和提供高性能存储解决方案至关重要。

    Raid 5后大于2TB盘阵安装windows 2008系统

    Windows Server 2008 R2 在 Raid 5 后大于 2TB 盘阵的安装方法 Raid 5 后大于 2TB 盘阵的系统安装限制 由于微软操作系统的限制,操作系统默认采用 MBR 分区表来初始化硬盘,但是 MBR 最多只能管理 2TB 的分区或...

    关于百度网盘应用分析报告.pdf

    到2013年,用户量已达到1亿,同时推出了2TB的永久免费存储空间和无限制离线下载服务。2014年,百度云的用户总数超过2亿,移动端的使用率显著提升。 【目标群体与市场占有率分析】 百度网盘的目标群体广泛,包括...

    SQLite 免费的,但是只能存很少的数据

    SQLite并非提供不同版本以区分用户群体,它对所有人都是免费且开源的,无论是学生还是企业,都可以无限制地使用。购买或不购买通常是指商业支持服务,而非产品本身。如果你需要官方的支持服务,例如定制开发、培训...

    存储容量计算案例

    计算每个功能点的总存储需求后,我们将所有需求加起来得到总容量需求。在这个案例中,总需求是1941.4GB,也就是接近2TB。考虑到实际存储系统的冗余和备份需求,通常会采用RAID技术来提高数据安全性。例如,RAID10...

    百度云教程

    - **海量存储空间**:首次注册时,用户有可能获得高达2TB的免费存储空间。 - **多设备同步**:用户可以从多个设备访问自己的文件,包括PC、手机和平板电脑等。 - **智能分类**:上传到百度云的文件会被自动分类为...

    企业管理空间不够用的解决办法

    尤其是百度云,其免费空间高达2TB,并且具有稳定的链接分享功能。通过将大附件上传至网盘并生成链接,用户可以直接在网站上分享或销售这些资源。这种方法不仅可以节省网站空间,还可以提升下载速度。 其次,企业...

    来自百度数据库设计

    - **自治性**:每个节点都能够独立地进行管理和操作。 - **可扩展性**:可以根据需求轻松地增加新的节点来扩展系统容量。 - **应用场景**:适用于大型互联网企业,尤其是像百度这样的公司,需要处理海量数据和提供...

    3TB 硬盘使用方法

    标题中的“3TB硬盘使用方法”以及描述中提到的问题,主要涉及到大容量硬盘在不同操作系统、分区格式和主板...在具体操作时,根据系统和应用场景选择合适的分区格式,并确保硬件支持,以充分利用大容量硬盘的存储空间。

    超大容量云服务算法分析.pdf

    目前,国内许多知名云服务提供商已经能够提供高达2TB(2T)的免费存储空间。这种超大容量的空间需要通过特殊的算法和技术手段来实现,以保证资源利用的最大化。 2. 资源节约与合并技术 云服务提供商使用各种算法来...

    希捷与西数2TB以上硬盘资料

    在2TB以上的容量区间,它们提供了高密度存储解决方案,如希捷的BarraCuda、IronWolf和Exos系列,以及西部数据的Green、Blue、Red、Purple和Gold系列。 二、NVR硬盘选择要点 1. 工作负载:NVR系统通常需要24/7全天候...

    配置服务器存储.doc

    - 每个磁盘最多可以有4个主分区或3个主分区加1个扩展分区。 - **GPT(GUID Partition Table)分区表**: - 新一代分区表标准,支持超过2TB的磁盘容量。 - 每个磁盘可以有最多128个分区。 - 支持UEFI启动模式,更...

    B27A_Fortis_Flash_512Gb_1Tb_2Tb_4Tb_Async_Sync_NAND_Datasheet.pdf

    每个块包含5184个页面,随着容量的不同(512Gb, 1Tb, 2Tb, 4Tb),设备由不同数量的块组成。 在性能方面,B27A FortisFlash支持NV-DDR3和NV-DDR2两种接口模式。在NV-DDR3模式下,时钟速率可达到2.5ns,每个引脚的...

    存储方案与存储产品之DAS篇

    DAS在历史上已有近四十年的应用,尤其适合需要高性能传输和存储空间扩展的场景。随着硬盘技术的发展,单台DAS存储系统的容量已从不足1TB提升至2TB以上,未来还有可能随着更大容量硬盘的推出而进一步增加。 DAS的...

    ssm基于微信小程序的校园导航系统2tb1v演示录像2022.zip

    综上所述,"ssm基于微信小程序的校园导航系统2tb1v演示录像2022.zip"是一个使用Java Web技术栈(Spring、SpringMVC、MyBatis)开发的校园导航系统,该系统与微信小程序结合,为用户提供便捷的校园导航服务。...

    免费jsp空间免费jsp空间

    - **免费空间**:指免费提供的网络存储空间,用于托管网站或应用程序。 - ASP空间:支持ASP.NET等技术栈的免费空间。 - JSP空间:支持JSP技术栈的免费空间。 - **注意事项**: - 在接受免费空间前需详细了解服务...

Global site tag (gtag.js) - Google Analytics