云存储的几十年发展历程,其计算架构模型,也从Scale Up走向Scale Out。但是展望未来数字世界的海量需求,目前流行的模型还能够持续满足吗?本文通过对云存储历史的回顾,及对Scale Up和Scale Out两种扩展模型的诠释,来揭开云存储的未来模式。
 
1. 云存储及其历史
 
简而言之,云存储(cloud storage)就是将数字内容安全的存储在服务器上,从而任何连接互联网的设备可以方便的获取。首先让我们简单回顾一下云存储的历史。
云存储的早期雏形要回溯到上个世纪的90年代,也就是互联网泡沫时期(dot-com boom),当时有许多家公司,例如EVault, NetMass, Arkeia和CommVault等等[1]均提供在线数据备份服务,当然它们绝大部分也随着互联网泡沫的破碎而烟消云散了。少数幸存下来的有一家叫Veritas NetBackup最后也被Symantec收购,现在依旧提供Symantec NetBackup的在线存储服务。
 
而真正让大家耳熟能详的云存储是2006年由Amazon提供的AWS S3云存储服务,其最具有革命意义的变革是,提出了即买即用(pay-per-use)的价格模型,使得云存储的使用像水电一样可计算衡量。从此云存储以S3为标准一路绝尘,我们所熟悉的大厂,比如Netflix, Pinterest, Dropbox也是S3的顾客。尾随的Microsoft和Google也于2010年分别发布了类似的Azure Blob Storage和Google Storage的存储服务。
 
云存储真正发展的十几年中,见证了移动互联网的崛起,大数据的生机勃发,人工智能的再次复兴,并能够展望到未来物联网,无人驾驶及各类机器人自动化的世界。海量数据的产生,存储,分析,预测及应用,快速以正反馈循环方式,推进着人类社会向数字世界大步迈进。所以,为了适应数据存储新的需求,各家云存储产品的应用场景及价格模型,已从单一向多元发展,比如AWS S3就有Standard,Intelligent-Tiering, Standard-IA,One Zone-IA,Glacier和Glacier Deep Archive六类存储产品来满足各类使用场景,我会在未来的文章里针对性的细讲一下。而本文重点所探讨的是,目前云存储的基础架构体系是否能够适应未来数据存储的要求和挑战?为了回答这个问题,让我们先简单回顾一下计算机体系架构里的Scale Up和Scale Out扩展模型。
 
2. Scale Up和Scale Out?
 
Scale Up又称为垂直扩展(scale vertically)[2],意为在单节点上添加资源,如CPU,内存和存储,在纵向上扩展从而获得更多计算或存储能力;Scale Up初期能够快速达到升级目的,操作起来相对比较简单,但随着计算或存储的要求越来越高,硬件资源的添加可能已经达到极限,不仅单节点的造价非常昂贵,维护成本很高,而且更容易留下单点故障的隐患。传统的RAID(Redundant Array of Inexpensive Disks)存储就是此种模式。
 
Scale Out又称为水平扩展(scale horizontally)[2],意为在分布式环境下,通过添加节点计算或存储资源,在横向上满足更多的计算存储需求;随着计算和存储单位价格的降低和效率的提升,使用低端的商用(commodity)系统,利用分布式技术可以搭建起“超级计算”中心,以及后来衍生出来的私有或公有云平台解决方案。虽然分布式系统会带来一定程度上的软件复杂度和管理困难,但由软件定义的计算和存储解决方案,能够以较低的价格和较高的鲁棒性,优雅的解决了海量增长的计算存储需求,也是目前云平台的主流技术。但它就一定能够承载未来的更加海量的需求吗?云存储的未来是什么?方向是向左还是向右?
 
3. 未来向左还是向右?
 
话说天下大势, 分久必合, 合久必分,事物发展的规律似乎从来就没有什么绝对。当下,云平台内部似乎已完全是Scale Out模式了,但当我们把镜头再拉远一点,从云平台在全球部署的每一个可用区来看,整体上它又是一个Scale Up模型,不是吗?单点投入巨大,耗费能源,使用成本高昂。而相反,随着强大的计算,存储和带宽能力能够进入寻常家庭、工作和生活等边缘节点,资源闲置或者不均衡使用也变得越来越明显。那么, - 是否能够将这些边缘节点的计算存储能力结合起来,组成一个真正意义上的Scale Out平台,提供人们日益增长的计算存储需求? - 可否将浪费或者不对等的资源重新组合,提供一个更加节能环保的绿色Scale Out平台? - 可否摒弃中心化的单点故障和数据安全隐患,真正做到廉价高效,零数据泄露的Scale Out平台?
 
答案是应该可以而且必须可以!
 
纵观云存储平台的发展历史,从单节点的Scale Up模式走向可用区内部的Scale Out模式,又从内部的Scale Out模式走向整体上相对的Scale Up模式。而未来数字世界的海量计算和存储需求的满足,一定需要真正意义上的全球Scale Out模型,那就是把边缘节点和半中心化节点高效且系统的组织起来,减少浪费,提高效率,节省成本,去除中心。将天空中几块为数不多的白云,变成漫天遍布的朵朵白云,让人们自由定价、自由选择、自由组合。
挑战虽然巨大,但未来很美好,让我们一起努力迎接云存储的明天!
 
文章作者:Bruce Lee(PP.IO总架构师)
转载请注明出处
如果有关于PPIO的交流,可以通过下面的方式联系我:
加我微信,注意备注来源
wechat:omnigeeker

云存储的未来:Scale Up还是Scale Out?的更多相关文章

  1. 自建存储与使用微软Azure、七牛等第三方云存储综合考察分析

    http://www.cnblogs.com/sennly/p/4136734.html 各种云服务这两年炒的火热,加之可以降低成本,公司想先在部分业务上尝试使用下,刚好最近有个项目有大量小文件需要存 ...

  2. 什么是Scale Up和Scale Out?

    导读:Scale Out(也就是Scale horizontally)横向扩展,向外扩展 Scale Up(也就是Scale vertically)纵向扩展,向上扩展 无论是Scale Out,Sca ...

  3. 国内云存储对比: 阿里云、腾讯云、Ucloud、首都在线

    阿里云的数据存储<http://www.aliyun.com/product/rds/> RDS — 关系型数据库服务(Relational Database Service,简称RDS) ...

  4. uploadify控制 上传图片到百度云存储

    最近使用uploadify 控制图片上传到百度网盘....总的想法是 招待会uploadify获取文件传入后台,调用百度云存储api上传到百度网盘,返回url 联系.送存储在数据库中的链接.因此,我们 ...

  5. JDFS:一款分布式文件管理系统,第四篇(流式云存储续篇)

    一 前言 本篇博客是JDFS系列博客的第四篇,从最初简单的上传.下载,到后来加入分布式功能,背后经历了大量的调试,尤其当实验的虚拟计算结点数目增加后,一些潜在的隐藏很深的bug就陆续爆发.在此之前笔者 ...

  6. 腾讯云VS AWS :云存储网关性能谁更优?

    p { text-indent: 2em }    随着企业规模的扩大及业务的扩展,现有IT基础设施特别是存储设备无法满足爆炸性的数据增长,企业 IT 部门为了解决该问题,往往面临市场上多种存储产品及 ...

  7. 什么是scale up和scale out

    Scale Out(也就是Scale horizontally)横向扩展,向外扩展Scale Up(也就是Scale vertically)纵向扩展,向上扩展无论是Scale Out,Scale Up ...

  8. YottaChain主网全面上线预示商业应用的落地区块链云存储不一样的云

    Yottachain存储网12月24日平安夜全面启动,意味着全球首个可商用的区块链存储公链全面落地.对于数据存储来说,小到我们个人的照片文档,大到政企机构数据库资料,都是互联网生活中如影随形的标配. ...

  9. 泛圈科技Yottachain区块链云存储打破传统云迎来价值数据存储

    随着物联网时代的发展,更多的数据随之产生.从智能设备到电脑再到视频游戏机,各种各样的信息从不同的电子产品源源不断地涌入.通常,人们将数据存储在本地驱动器中.但是,由于产生的数据量是无限的,超过了本地存 ...

随机推荐

  1. 记一下JavaScript的几种排序算法

    零.写在最前 排序的方法有很多种,这篇文章只是记录我熟悉的算法: 我发现了一个关于排序算法很有趣的网站,把相关的算法演示做成了动画,有兴趣的同学可以看看! 附上SortAnimate网站链接:http ...

  2. django学习之——Model

    打开 settings.py 找到 DATABASE  配置我们的数据库,(MySQL) # Database # https://docs.djangoproject.com/en/1.7/ref/ ...

  3. 【转】.Net Core中的Api版本控制

    原文链接:API Versioning in .Net Core 作者:Neel Bhatt 简介 Api的版本控制是Api开发中经常遇到的问题, 在大部分中大型项目都需要使用到Api的版本控制 在本 ...

  4. JDBC数据库连接工具

    什么是JDBC? JDBC是一种可以执行sql语句的Java API,提供对数据库的访问方法. 什么是JDBC驱动? JDBC连接数据库需要驱动,驱动是两个设备要进行通信,满足一定的数据驱动格式.一般 ...

  5. Nginx的使用(一)Nginx+IIS实现一个网站绑定多个https域名

    使用nginx最初的目的是为了解决iis7下无法配置多个443端口的问题,iis7下不同的域名无法同时绑定443端口,据说iis8是可以的,但是iis8的话需要安装windows server2012 ...

  6. 简单易懂的 Vue.js 基础知识 !

    根 vue 实例 let viewModel = new Vue({ // 包含数据.模板.挂载元素.方法.生命周期钩子等选项 }) Hello Wrold  <!-- 这是我们的 View - ...

  7. Java基础-方法

    方法 Java方法是语句的集合,它们在一起执行一个功能. 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 注意: 在一些其它语言中方法指过程和函数.一个 ...

  8. centos 安装桌面系统

    yum -y groupinstall "Desktop" "Desktop Platform" "X Window System" &qu ...

  9. 《JavaScript Dom 编程艺术》读书笔记-第5章

    上一篇随笔中记录了用JavaScript建一个基础图片库,但实际上还有很多地方可以改进.第五章将逐步进行改进,这一章里需要明白的道理是达到目标的过程和达到目标同样重要~ 第五章:最佳实践 5.1 过去 ...

  10. iframe子页面控制父页面滚动高度,直接蹦到父页面开头

    zepto调用父页面窗口元素的scrollTop()方法会报错,貌似是scrollTop函数中有个scrollTo()方法用到this,指向错误. 经检查, 原生js控制父页面滚动,只能写数字,不能带 ...