首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对象存储的关键特性系列之1-可扩展性

对象存储系统比较适合用来存储文件、照片、视频之类的非结构化数据,有时候这些数据的是海量的,比如手机里的照片视频,每个用户10G空间,1000万个用户就需要 1000万 * 10G = 10万T = 100P的数据量,而这些数据又不是一来就这么海量,而是慢慢增加的,那么这种场景对存储系统的有个基本的要求就是具有高可扩展性,比如至少的能Hold住PB级的数据量,能支持通过添加设备扩展容量。

这就涉及到 对象存储系统的 高可扩展性问题。首先对象存储系统是做不到无限可扩展性的,可扩展性不仅仅是容量大的问题,还需要考虑以下多方面的因素:

1、可靠性问题

规模越大,机柜、机架、主机、磁盘等物理设备就越多,这样出故障的概率就越高,而企业级存储的可靠性要求是至少5个9,规模虽然扩大了,但是可靠性指标不达标这是不允许的。

2、小文件处理问题

对象存储系统很适合与处理存储文件、照片、视频这类非结构化数据,一个对象存储系统的Object大小可以从几个字节到几兆字节,一个PDF文件大小在 1MB~2MB,医院里X光拍的胸片每张大小大概是20MB,而一个能播放一小时的4K高清视频,大小在

27GB-45GB,对于对象存储系统来说越小的对象越难处理,元数据多、性能差,一般的解决方案是在在内存中合并组成大的块再下盘,这就增加了存储系统的复杂度。

而大的对象处理很方便,直接切片分散到不同的存储节点即可,所以有些厂商为了避免麻烦,就小文件一个存储系统,大的文件一个存储系统。对象存储系统的规模越大,文件就越多,对小文件的处理就越难。

3、性能与成本问题

对象存储系统进行扩展的时候,需要考虑的因素有:

1)存储空间如何扩?只是添加磁盘呢还是需要添加额外的CPU、内存?需要添 加额外的CPU和内存就带来新的成本引入;

2)性能如何提升? 需要添加额外的节点获得更大的吞吐量吗?添加新的节点也带来新的成本增加问题;

3)资源是否受限?一般情况下服务器的使用会有一些常用的资源限制指标,比如 1GB内存对应一个进程,而一个进程管理1TB的磁盘空间,一个64G内存的服务器,最大只能管理64TB的数据,很明显单个节点可以支持的物理容量是有限的;

4)性能和负载均衡如何考虑?对象存储系统常用的分区分配算法是DHT算法,而对于DHT算法当有新的节点加入时,会引起系统集群视图变更,产生大量的数据迁移影响主业务的性能;

5)负载均衡的影响如何考虑?节点负载不一样,有些节点负载较大,有些节点负载较小,这是不合理的,负载均衡也会引发数据迁移,影响主业务的性能。

4、冷热数据问题

分层和缓存,缓存是以Block为单位的,可以视为是一份慢速数据的快速备份,缓存有利于降低时延提升性能,适合于跑数据库和虚拟机的场景。

而分层一般是以大块的数据为单位的,比如512MB、1GB这样大小的数据,数据的迁移会引起存储系统内部的大量IO,进而影响到主业务的时延以及性能。

对象存储适合用于备份以及归档一些不活跃的或者冷的数据的场景,出于成本考虑,对象存储应该需要支持数据分层处理的行为,比如常用的热数据放在SSD盘上,次热的数据放SAS盘上,冷数据放SATA盘上,从而节约成本。

5、元数据管理问题

元数据管理着数据的大小、位置、时间、校验码等,对于一个非常大的对象存储系统,其元数据的量也是很庞大的,而且都是小文件,当需要数据检索的时候就会访问到这些元数据,

如何高效的管理元数据也是一个需要关注的问题,比如将元数据放在高性能介质上,进行读取优化,专门针对元数据设计一个小文件存储系统等。

小结

对象存储的可扩展性,不只是单单能扩展到多大的问题,还需要考虑到系统可靠性问题,小文件的处理问题,成本问题,性能问题,元数据的管理问题等。

参考文献:

【1】 https://blog.architecting.it/object-storage-capabilities-1-scalability/

接下来是:

对象存储的关键特性系列之2 - 数据保护

对象存储的关键特性系列之3 - 检索、索引与元数据

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180119G09IUB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券