微博、微信、直播等互联网应用的风靡,带来了海量的图片、音频和视频文件,这些非结构化数据的容量、文件的数量已经超越了传统NAS存储的处理能力,因此各大互联网厂商根据自身特点发展出了适合业务需求的分布式存储架构,如:Google的GFS,亚马逊的AWS S3,以及FaceBook的Cassandra等等。特别是亚马逊2006年推出的AWS S3对象存储,其定义的S3接口已经逐渐成为非结构化数据存储的事实标准。
知名分析机构IDC的报告预测,到2020年非结构化存储数据量将达到410EB,相比2015年增长4倍,而对象存储占文件存储总容量的70%以上。报告显示,2015-2020年对象存储市场营收的年均复合增长率将达到8.7%。非结构化数据量的暴增及对象存储时代的到来,让企业用户越来越意识到对象存储技术的重要性,基于对象存储领域多年的实践经验,今天有幸和大家分享我的一些积累和见解。
传统NAS存储制约业务的发展
“互联网+”趋势的推进以及各类智能终端的普及,非结构化数据呈现出爆发性增长,如:金融业务办理的开户视频、互联网金融行业的申请资料、保险行业的理赔资料、快递行业的电子快递单、安防行业的视频监控录像等。同时,为了满足政策合规性,部分行业监管要求长时间保存以供查询取证。
如今,这些传统企业的IT部门正在经历着互联网公司曾经遭遇的NAS无法解决的存储难题,主要体现在如下方面:NAS存储采用古老的文件系统技术,单个文件系统容量受限,超过容量后对IT运维将带来巨大挑战;NAS存储的目录文件系统采用B+树进行文件索引,当文件数量过多时,会严重影响访问性能;NAS设备过维保后,由于非结构化数据规模较大,在更换时需要花费大量时间,且数据迁移存在风险等等。
那么,相对于传统NAS文件存储而言,对象存储到底可以带来哪些颠覆性的技术优势,接下来和大家做一些简单分享。
对象存储将成为企业存储的新标准
分布式去中心架构,容量和性能扩展方便
对象存储普遍采用的是基于通用x86服务器+分布式对象存储软件的技术架构,对象存储软件将多台服务器通过以太网连接,构建成一个统一的存储资源池,可动态增加或删除服务器实现容量的调整,数据能够自动均衡,并且利用副本和纠删机制(类似于RAID5/6)实现数据的高可靠和高可用性。
传统NAS过维保后,需要将过保设备上的数据人工迁移到新购置的NAS上,文件数量较多的用户需要花1到2个月时间,运维人力消耗非常大。而采用如下图所示的分布式架构,可以动态移除旧设备,无需人工干预,业务也不受影响。
创新的索引技术,真正解决海量小文件问题
海量小文件的存储是工业界和学术界公认的难题,解决问题较为关键的技术点就是优化元数据管理,由于传统NAS采用B+树进行文件检索,当文件数量比较少的时候,B+树基本可以被缓存,性能还是不错的。但随着文件数量的增多,B+树占用空间非常大无法被缓存时,就会涉及到机械盘操作导致性能明显下降,如果层级较深,仅仅索引访问就会产生多次磁盘随机访问操作,严重影响文件的访问性能。
而对象存储普遍采用了分布式哈希查找算法(DHT),技术原理如下图所示:在建立集群时,对象存储将整个存储空间划分成一个哈希环,每个磁盘负责哈希环中部分哈希分区的存储。当需要访问一个文件时,系统通过“目录/桶名+文件名”的哈希计算后,查询DHT表即可定位到具体磁盘进行文件访问。由于哈希环并不随文件数量的增加而增多,所以查找性能不会受到文件数量的影响。
超大容量单目录,满足业务生命周期存储需求
传统NAS存储采用文件系统技术,单个文件系统容量普遍在几十TB级。由于IT管理人员在业务上线前无法对规范容量和目录需求做出精准评估,对于某些产生数据量较大的业务系统来说,就如下图所示需要挂载多个文件系统目录,这会带来很多非增值的运维工作。
而对象存储采用扁平化的文件名唯一定位方式,单个目录或者存储空间能达到数十PB甚至数百PB级,可以满足业务系统整个生命周期的存储容量需求,无需挂载目录和调整业务系统,让IT人员更加关注业务价值本身。
更加适用于多数据中心容灾场景
高效的业务系统容灾方案是企业IT部门最为关注的焦点之一。对象存储在接口方面的技术改良,使其在多数据中心容灾方面支持得更加完善,大部分对象存储厂商都支持两个及以上的多数据中心容灾。传统NAS往往是主备模式的容灾,而对象存储普遍支持Active-Active模式的容灾,可实现本地数据中心应用的就近访问。这对于采用负载均衡模式数据中心的企业来说,是非常有价值的,可以提升每个数据中心业务系统的访问性能。
实现私有云和公有云间的数据流通
随着企业互联网业务的发展,越来越多的应用运行在智能终端和公有云平台上,而考虑到安全性和保密性,数据依然保存在企业内部。传统NAS的CIFS/NFS协议只能被企业内网访问,无法直接提供给外部网络。对象存储最早被应用在互联网和公有云场景,所以对象存储的访问协议(S3、SWIFT)都是基于HTTP标准协议,可支持内网和外网应用系统对存储的自由访问。
在安全性方面,数据采用AES进行加密传输,支持HTTPS保证传输链路安全。S3协议还定义了完整的多租户访问、文件粒度的授权访问等多种安全技术,保证了数据开放给外网访问的安全性。
关于应用对象存储技术的一些建议
匹配对象存储典型的应用场景
传统文件存储主要有两种使用场景:一种是在线编辑场景,如媒资行业的现编系统存储,另一种是非在线编辑场景,主要是满足归档和查询需求,不需要对文件内容进行修改。在实际应用中,非在线编辑场景占数据总容量的80%以上。对象存储接口能够完全满足非在线编辑场景的需求,因此在此类场景中用户可以完全替换掉传统NAS。为了让用户更好地匹配对象存储的关键应用场景,我们做了如下总结:
- 文件数量特别多,访问性能受到影响的场景。例如:银行的影像资料、保险的电子保单、快递的电子快递单等等,对象存储可以保证在这种场景下的访问性能。
- 数据存储量特别大,需要长期保存的场景。例如:金融行业的双录、医疗行业的影像资料、提供客服中心服务的语音资料等等,利用对象存储的弹性扩展能力以及超大容量目录,保证业务系统整个生命周期不需要做任何变更。
- 互联网业务的使用场景,例如:互联网金融相关业务,对象存储可以实现互联网应用对企业内部文件的安全访问,让数据在企业内部和互联网间高效流动。
- 多数据中心共享场景,例如:跨地域的文件共享、总部与分支机构文件的共享与归集等应用场景。
重视厂商的技术服务能力
虽然AWS S3协议已成为对象存储的事实标准,其数据访问接口相对传统文件系统访问接口更加简单。但由于S3接口相比NAS提供更加丰富的功能,包括:权限管理、租户管理、标签、外链、配额、多版本、生命周期、多数据中心策略等上百个API接口,如何充分利用好这些接口,帮助业务系统提高数据安全性、优化业务性能、优化存储管理、优化多数据中心访问方式和存储策略等方面,可能需要有对象存储部署经验的厂商来协助。
因此,我们建议在引入对象存储技术的同时,用户应该更多地关注厂商对于应用开发技术的服务能力,实现对象存储部署价值的***化。