什么是对象存储?
对象存储对存储介质进行了封装,提供数据的服务化(尤其是非结构化数据,如文件)。
用于解决 数据安全,数据共享,存储扩展,存储成本 等问题。
应用层:提供API访问文件的能力,如,权限管控,加解密,流媒体操作等
底层:通过分布式和数据备份机制等机制提供数据的高持久性
(对象存储几乎都用在文件的存管场景)
什么情况下应该使用对象存储取代NAS磁盘?
当存在如下需求或痛点时,都应该采用对象存储取代NAS磁盘。
- 数据不可丢失(硬件故障,人为误操作)
- 数据的权限管控
- 数据需要共享到多地
- 音频数据的立刻播放
---------------------------------我是技术细节的分割线----------------------------------------
对象存储的细节
研究对象:
公有云都有对象存储服务,这里仅研究XX云的对象存储。
私有云采用目前最流行的Minio
Minio资料
XX云的对象存储介绍:
对象存储IOBS(Internet Object Based Storage)是基于大规模分布式、高并发存储框架的云存储服务,是平安云的核心存储服务之一,适用于存储大量任意大小、任意格式的非结构化数据,如视频、音频、文档、图像、网页内容等。可以广泛应用于内容存储与分发、大数据分析、数据归档与容灾备份等场景。
XX云对象存储架构图
为什么要用对象存储?
这里重点和团队在用的NAS磁盘进行对比陈述。为简单起见,这里仅使用XX云作为代表,其他云类似。
1. 数据安全
数据可靠性
对象存储比NAS具有更高的数据持久性,不低于99.9999999999%。
数据会分布在不同磁盘,即使多块磁盘损坏,数据也不会丢失。
具备异地同城多中心备份,机房或城市级故障不影响数据的丢失。
(下图是用户上传资料的过程,在主服务器写完后,会同步到副本中。)
数据的权限管理
NAS盘一旦挂载,全部资料可以使用。
对象存储可以按桶划分,并对桶的用户权限进行精细的控制。
访问更安全
NAS盘需要挂载到服务器上,通过DMZ的服务器,通过nginx等技术对外提供文件访问,不安全,XX会扫描并要求整改。
私有桶的对象存储访问,需要带token访问。(目前XX云的对象存储满足金融级的安全要求)
数据防误删
NAS盘,如果不小心执行了rm /*,则全部资料会丢失。
对象存储的资料是平行层次,不存在全部删除的指令,必须一条条独立删除。
对象存储支持开启版本管理,对于删除的文件,可以恢复。
2. 数据共享
外网访问更快
NAS盘需要挂载到服务器上,通过DMZ的服务器,对外提供文件访问,受限于服务器本身的带宽,访问速度是一个瓶颈。
对象存储内的资料,不仅可以内网访问,也可以外网访问(外网还具备CDN加速,不同区域访问可以访问当地CDN,速度快)
DMZ服务器最大带宽25MB(200Mb),性能型的对象存储的单桶可以达到150MB(文件分布在不同桶,可以让整体更快)
同时,对象存储支持高并发(单桶1000并发),这都是服务器挂载NAS磁盘无法做到的。
内外网互通
NAS盘资料,如果需要对外,需要从内网拷贝到DMZ的外网,非常繁琐且很慢。
对象存储可以在内网进行上传,在外网进行下载。
数据不受限区域
NAS盘只能挂载在同一区域的服务器下(例如,标注平台的服务器和asr的服务器不在一个区域,则标注的语音文件无法被asr的服务器直接使用)
对象存储,只要有网络且可以通达,即可访问。
3. 存储成本
节省成本
NAS盘一般都购买很大的空间,价格按总容量进行计算。
对象存储根据使用量进行收费(让共享做到更细粒度)
对象存储支持自动将低频访问的(每月小于1次)资料,迁移到更便宜的归档型对象存储中。当需要使用时,仍然可以在原来的标准型对象存储中读取到。
可以根据文件类型进行压缩存储(对文本类型文件可以缩小体积)(minio)
4. 更佳的文件体验
加载音视频更快
NAS盘必须传输完文件后,才能打开音视频,文件越大,等待时间越长。
对象存储支持流媒体,可以直接打开进行播放。
搜索文件更方便
NAS盘存储的文件,需要额外开发软件将文件元信息存储在第三方数据库进行查找,需要开发工作量。
对象存储(如minio)仅需要配置,即可将文件元信息存储在ES,数据库中,无开发工作量。
小文件更快
会将小文件合并到一个大文件进行处理(通过指针划分文件),从而提高IO速度。
分布式锁
对象存储具有分布式锁,可以解决文件的读写问题。
NAS盘存储需要自己实现这个机制。