why Object Storage

0. What is Object Storage

kv存储,但value 是非结构化数据(文件)

键值存储(KV Storage)。用于存储非结构化数据的键值存储,有一个特殊的名字,叫对象存储(Object Storage)。
它和结构化数据的键值存储,实现机制上往往有极大的差异。对象存储的 Key,看起来也像一个文件系统的路径(Path),但仅仅是像而已。
对于对象存储来说,Key 中出现的 “/” 字符,只是一个普通字符。在对象存储中,并不存在目录(Directory)这样的概念。
既然对象存储是一个键值存储,就意味着我们可以通过对 Key 做 Hash,或者对 Key 按 Key Range 做分区,都能够让请求快速定位到特定某一台存储机器上,从而转化为单机问题。
这也是为什么在数据库之后,会冒出来那么多 NoSQL 数据库。因为数据库和文件系统一样,最早都是单机的,在伸缩性、性能瓶颈(在单机数据量太大时)、可靠性、可用性上遇到了相同的麻烦。
NoSQL 数据库的名字其实并不恰当,它们更多的不是去 SQL,而是去关系(我们知道数据库更完整的称呼是关系型数据库)。有关系意味着有多个索引,也就是有多个 Key,而这对数据库转为分布式存储系统来说非常不利。
七牛云存储的设计目标是针对海量小文件的存储,所以它对文件系统的第一个改变也是去关系,也就是去目录结构(有目录意味着有父子关系)。所以七牛云存储不是文件系统(File System),而是对象存储(Object Storage)。
蛮多七牛云的新手会问,为什么我在七牛的 API 中找不到创建目录这样的 API,根本原因还是受文件系统这个经典存储系统的影响。

1. 为什么不把文件存在 web 服务器上

系统设计时,经常遇到需要上传文件的场景。为啥不直接把文件上传到web服务器上,为啥要存在对象存储里?
为了Scale。包括:

  • 磁盘空间scale
    比如一天几T的上传,放web服务器没法扩展,因此要单独提一个存储service出来;
  • 针对海量数据的存储优化:sharding解metadata爆炸;使用Erasure code提高存储利用率
    单独提一个存储service出来后可以针对海量数据做优化。例如传统基于小块的文件系统不适合存大量数据、会metadata爆炸,而Object Storage在file systems之上加了一层分治sharding;


    image.png

    传统存储没有冗余容错,而类似HDFS用三副本又太浪费了,Object Storage可以针对性的做空间利用率优化,例如换了一种冗余方案(Erasure code)达到更大的磁盘利用率。


    image.png
  • 服务器运行时资源scale
    上传、下载文件都占用服务器资源,包括:

2. 结论

  1. 如果做个小系统,不需要考虑上传的scale,完全可以上传到web服务器
  2. 为什么把前端静态文件发布到对象存储云服务?空间上没有瓶颈,个人理解这么做的好处是:
  • 方便分压:帮web服务器节约运行时资源(主要是磁盘IO、网络带宽)

  • 方便缓存。“此外,独立的域名也方便我们在代理服务层做动静分离,以便提升静态请求的处理速度。”

  • infra复用,例如对象存储支持CDN加速,省了自己给自己的网站域名搞cdn加速了

  • 针对客户端(浏览器)优化
    不传cookie;浏览器对域名有并发连接数限制
    https://blog.csdn.net/scorpio3k/article/details/53020270

3. 对比其他存储,供选型参考

对象存储vs分布式文件系统(如hdfs)

38 | 文件系统与对象存储
对象存储=用于存储非结构化数据的KV存储
对象存储这个名字仅仅是名字,不要太想对象两个字代表什么。对比hdfs:

  1. 本质是kv存储不是文件系统,没有目录的概念,不需要做这种全局数据的同步,因此易于sharding。


    image.png
  2. hdfs是面向大文件做的设计(用增大文件大小解决元数据爆炸问题),这套架构存小文件还是会元数据爆炸

详见原文:

但关于 Hadoop 的 HDFS 实际上业界有不少误区。GFS 的设计有很强的业务背景特征,本身是用来做搜索引擎的。HDFS 更适合做日志存储和日志分析(数据挖掘),而不是存储海量的富媒体文件。因为:
第一,HDFS 的 block 大小为 64M,如果文件不足 64M 也会占用 64M。而富媒体文件大部分仍然很小,比如图片常规尺寸在几百 K 左右。有人可能会说我可以调小 block 的尺寸来适应。但这是不正确的做法,HDFS 的架构为大文件而设计的,不可能简单通过调整 block 大小就可以满足海量小文件存储的需求。第二,HDFS 是单 Master 结构,这决定了它能够存储的元数据条目数有限,伸缩性存在问题。当然作为大文件日志型存储(一般单个日志文件大小在 1GB 级别),这个瓶颈会非常晚才遇到;但是如果作为海量小文件的存储,这个瓶颈很快就会碰上。
第三,HDFS 仍然沿用文件系统的 API 形式,比如它有目录这样的概念。在分布式系统中维护文件系统的目录树结构,会遭遇诸多难题。所以 HDFS 想把 Master 扩展为分布式的元数据集群并不容易。
对象存储
非结构化数据的存储方式,最理想的绝对不是分布式文件系统。
文件系统只是桌面操作系统为了方便用户手工管理数据而设计的产物。服务端操作系统发展的初期,人们简单沿用了桌面操作系统的整套体系框架。
但从非结构化数据的存储开始,出现了分叉路口。对服务端体系架构来说,文件系统其实是一个过时的东西。
非结构化数据最佳的存储方式,还是键值存储(KV Storage)。用于存储非结构化数据的键值存储,有一个特殊的名字,叫对象存储(Object Storage)。它和结构化数据的键值存储,实现机制上往往有极大的差异。
对象存储的 Key,看起来也像一个文件系统的路径(Path),但仅仅是像而已。对于对象存储来说,Key 中出现的 “/” 字符,只是一个普通字符。
在对象存储中,并不存在目录(Directory)这样的概念。
既然对象存储是一个键值存储,就意味着我们可以通过对 Key 做 Hash,或者对 Key 按 Key Range 做分区,都能够让请求快速定位到特定某一台存储机器上,从而转化为单机问题。
这也是为什么在数据库之后,会冒出来那么多 NoSQL 数据库。因为数据库和文件系统一样,最早都是单机的,在伸缩性、性能瓶颈(在单机数据量太大时

对象存储vs结构化数据的kv存储

image.png

如何选用NAS(文件存储)、OSS和EBS(Elastic Block Store,块存储)

https://help.aliyun.com/document_detail/140812.html?spm=a2c4g.11186623.6.543.1bfc2f30UgVbT0

4. 参考资料

why-object-storage/
38 | 文件系统与对象存储

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

推荐阅读更多精彩内容