背景:今日, NVIDIA宣布要收购对象存储SwiftStack。
正文:
每当看到人工智能(也即AI),我们通常会想到机器人、自动化、图像语音或视频识别、算法等高大上的黑科技。而对象存储则给人一种低调、海量的感觉。是什么原因,让这两者相遇,并擦出了火花?
什么是对象存储?
对象存储是自包含、自愈合的智能存储设备,具有容量大、速度快、扩展灵活的特点。每一个对象除了存放数据本身之外,还存放了唯一标识符和数据的元信息,例如创建的日期和时间,属主,大小,索引,保留周期,QoS等。对象本身使得数据的组织得到了简化,避免了传统存储文件目录树形结构的复杂。对象的存放是扁平化地方式保存在bucket(桶)中的,变得更简单。而且对象的元信息,也方便了检索。
拿生活中常见的例子来比喻,当图书馆购进新的纸质书籍需要存放时,需要按照图书分类法(按照图书的内容、形式、体裁和读者用途等进行分类),清楚地知道大类、子类和更详细的分类,才能找到合适的位置上架。文件存储的数据存放就类似图书分门别类地存放,如下图。
类比:文件存储的数据存放方式就像图书分类
当我们逛超市需要存包的时候,尽管有那么多储物柜,但是大家都觉得存取包很简单。存的时候,按一下存包按键,啪的一声,一个柜子打开,同时你会得到包含二维码的纸条,你把包放到柜子里,但是不用记住柜子的位置和编号,潇洒的离开。当你取包的时候,你刷一下二维码,也是啪的一声,放包的柜子自动打开,所存物品唾手可得。对象存储的数据存放方式就和超市存取包很类似,存储对象的唯一标识符就相当于那个二维码。
类比:对象存储的数据存放方式就像超市存包
下图是对象存储的一些特点。
对象存储特点
不过,我们需要注意的是,文件存储和对象存储有着各自适用的场景。下图列出了分布式文件存储和分布式对象存储的区别:
分布式文件存储与分布式对象存储的区别
当文件数量级过亿的时候,文件目录树形结构会对数据的读写造成巨大的挑战,例如在linux中如果用ls查看文件,可能都要等待几十分钟以上。但是,量级没有如此之大时,因为过去的使用习惯,以及相对成熟的生态,使用文件存储还是不错的选择。
如何避免错误理解对象存储
当我们谈对象存储时,需要注意讨论的是存储接口,还是内部数据组织形式。
1)实际上,讨论对象存储大多数是指存储接口,是否支持RestFul或S3,也即对象接口的形式来访问存储空间。
2)少数情况下,对象存储指存储设备的内部数据组织形式。在数据猛增的背景下,越来越多的存储设备内部采用对象存储的这种内部数据组织形式。例如VMware vSAN,其实是是一种基于服务器端存储的共享分布式对象存储系统,只不过存储接口主要采用的是SCSI方式;或者具备高可靠、高性能、高安全和易管理的浪潮AS13000,如下图。
浪潮AS13000G5的对象存储功能
AI与对象存储
在许多人的印象中,AI需要大量的算力,是计算密集型的典型应用。而对象存储大多时候用于海量非结构化数据的存放,备份归档,云存储、企业云盘、文档影像或视频的存储等。从存储特征来看,对象存储的延迟可能较难满足AI的性能需求;从使用习惯来看,大多数AI用户都是采用文件接口。
实际上,有计算,就会有存储,只是或多或少,或快或慢,或过渡或长期保存的区别。
在微信公众号浪潮存储《2020:下一个十年,存储发展的趋势是什么》上篇也即鉴往事篇 一文中,曾提到:
AI所需存储,可以分为准备、训练、推理和归档等阶段,每个阶段的IO特征不一样,对于存储的要求也不一样。例如,在推理阶段,IO的特征是读写混合,并且要求存储的延时低,能快速响应。
下图列出了AI各个阶段的IO特征,及其对存储的要求。
AI各个阶段的IO特征及存储需求
综合考虑用户使用习惯、性价比、性能和容量,如果能够取得一个平衡的话,对象存储能够用在AI的多个不同阶段中,如提取、准备、训练、归档等。
NVIDIA收购SwiftStack用来做什么呢?
首先,我们来看一下做为事实上的标准的AWS S3,从骨子里说,它代表的对象存储,是一种在线的海量数据较低成本的存储方式,适合跨地域读写;因此,虽然备份归档是对象存储的使用场景之一,但只是做备份归档,其实是委屈了对象存储。
其次,对象存储的高并发,特别适合前端呈现分布式负载的场景。AI场景的使用,包括AI训练、AI推理,是由许许多多个任务并发进行的,任务与任务之间几乎没有数据的交互,因此很少考虑存储通常要顾及的写一致性。
因此,在我们看来,NVIDIA收购SwiftStack或许有如下几个原因:
1)NVIDIA欲整合AI基础架构
NVIDIA是一个非常注重生态的公司,它的版图里应该不仅仅是计算以及衍生出来的各个组件,从近两年的动作来看,NVIDIA想整合整个AI基础架构。2019年3月11日NVIDIA以69亿美元收购 Mellanox;2020年3月6日宣布收购SwiftStack。
2)SwiftStack具备数据跨云管理和高并发的优势
据报道:"Manuvir Das表示,NVIDIA尤其喜欢SwiftStack的1space技术,该技术可以为忙于处理缓存和分层等任务的GPU助一臂之力。
SwiftStack V7于2019年发布,提供数PB的规模,可处理数千个worker节点同时访问数据的任务。它提供了超过100GB /秒的吞吐速度,性能和容量都能实现线性扩展。
1space是NVIDIA收购Swiftstack的主要原因,这是一种文件连接件,使云原生应用程序可以通过S3或Swift对象API访问本地数据或AWS数据,并可以确保不断向数据提供计算资源”
我个人认为,AI训练有个特点,它一次性将原始训练集的数据加载到计算节点的内存或者SSD后,需要经过一段较长的时间(也即计算或说训练),才会再次读取存储上的数据。因此,对象存储的延迟可能不会构成障碍,这一点可以通过高并发来弥补。
3)还可将SwiftStack用于数据提取,或者数据归档阶段。海量的数据,采用对象存储是一个不错的选择。
4)维护原有使用习惯
NVIDIA内部大量使用SwiftStack来存储数据,几年下来,习惯已经养成,而且猜测数据量也非常庞大。通过收购SwiftStack,以免未来受人制肘,也是有可能的。
无论如何,对象存储在云计算和AI迅猛普及的情况下,一定会迎来它的春天。IDC中国SDS市场数据显示,2019年对象存储增长率55.3%,是中国软件定义存储市场里增速最快的细分领域。
在中国的对象存储市场中,浪潮的AS13000做出了贡献。2019年,AS13000对象存储成功地在某银行(国内排名前15)总行的影像系统中部署,并实现了同城容灾功能。如下图所示:
浪潮AS13000对象存储的实际案例
浪潮分布式存储在不断迭代的过程中,除了前面提到的同城容灾之外,还开发了大量的其他高级特性。一是小对象聚合。浪潮对象存储针对海量小文件场景,通过小对象聚合,节约HDD的磁盘IO,提升存储效率。二是读Cache加速。在卡口图片、AI计算场景,通过读Cache加速提升数据读取效率。三是元数据检索。在存储系统内集成索引引擎,实现根据对象元数据多条件模糊检索对象的技术,有效地提升了海量非结构化数据中“大海捞针”的效率。四是企业级WORM,满足企业客户数据的法规性要求,结合应用特点,灵活设置宽限期和保护期。此外,还有存储OS加固、桶策略配置等等。
展望未来
受“新冠疫情”影响,在线化、数字化、分散化、自动化等新形态新模式,也对AI、大数据中心(含计算、存储、网络和安全)等的发展提出了迫切的需求。
疫情趋势预测、风险预警、医疗资源和物质的预测和调配,要做到快速、准确、科学的判断,需要和AI结合。
另外,非接触的服务和工作、自动化、快速分析决策和响应的需求等,将会爆发。例如,人脸识别(包括免摘口罩的人脸识别)、AI辅助诊断、应急管理、安防监控、知识图谱、基因研究、医药研发、金融服务、智能配送、各行各业的无人值守(例如零售)、物流运输、个人画像、轨迹追踪、舆情分析等等。
我们相信,作为新基建的一部分,包含AI和存储在内的信息基础设施将迎来更好更快的发展。