赞
踩
这是AI数据管理产品系列文章的第二篇, 本篇我给大家介绍VAST Data,与第一篇中老牌数据管理厂商Denodo不同,VAST Data成立时间稍短些,它将自己定位为AI时代的数据引擎, 它的产品是VAST Data Platform。
VAST Data在其技术白皮书中详细介绍了其产品架构,核心组件的主要原理。与当前主流的Shared-Nothing存储架构不同,VAST Data提出了一种新的分离式、Shared-Everything架构称为DASE,它将计算逻辑与系统状态和存储解耦,然后通过超低延迟的NVMe网络将两者连接起来,系统所有状态对所有计算共享,计算可以直接访问后端持久化的元数据(在SCM上)和数据(在超大规模SSD上),计算规模与存储容量可以按需独立扩展。VAST Data Platform是VAST Data的产品,它的核心是一套基于DASE架构的分布式文件系统,提供统一命名空间(甚至是跨集群的全局命名空间),作为基座负责数据的存储和保护,然后在其上构建了语义数据库负责数据的分类和编目,以及函数执行引擎负责数据分析和挖掘,通过一套系统提供了数据存储,数据分类,数据分析等功能。
下文是对VAST Data官网和白皮书内容的摘录和翻译,希望大家通过阅读本文对VAST数据平台的功能和架构有个基本的认识。想了解更多的产品、技术细节和解决方案内容可以点击上面的链接,阅读原文。
VAST声称VAST Data Platform是世界上第一个深度学习数据平台,是实施数据密集型计算的突破性方法,可作为通过实时深度数据分析和深度学习捕获、编目、提炼、丰富和保存数据所需的综合软件基础设施。VAST Data Platform提供从边缘到云端的无缝、通用的数据访问和计算,它采用一种新的方法,通过声明性功能将非结构化数据与结构化数据结合起来,也可作为全球数据定义的计算平台用来存储、访问和分发数据。此外,VAST Data Platform还采用了一种从第一原理出发的方法来简化数据体验,引入了几种新架构约定,打破了数据密集型计算中长期存在的折中:
VAST Data Platform提供的核心产品能力如下:
VAST Data Platform是一个统一的容器化软件环境,可以为不同的应用程序消费者提供不同方面的功能。VAST Data Platform是第一个汇聚了表格数据、Kafka数据流和通知以及非结构化数据(来自NFS、SMB、S3)的数据平台。通过添加一个无服务计算引擎(支持Python编写的函数),VAST Data Platform通过给递归AI计算创建环境为数据赋予了生命。数据事件成为应用程序的触发器,为系统编目数据创造了机会,这些数据事件可能会触发其他的功能,如AI推理、元数据丰富以及后续的AI模型重训练。将数据和代码结合,系统能在新数据和长期数据上进行递归计算,因此,通过将新的交互和过去的实现相结合,实现实时智能的不断提升。
与批处理计算架构不同,在数据进入系统时,VAST架构利用实时缓冲区实时的捕获和管理数据。这个缓冲区能截获随机写小操作(如事件流和数据库条目),也能截获大规模并行写操作(如创建checkpoint文件),(然后)全部写入持久内存空间,该空间可立即用于检索及与系统语料库的其余部分进行相关分析,系统语料库主要存储在低成本的超大规模归档存储中。VAST Data平台专注于深度学习,致力于从非结构化数据中导出和编目结构,利用从自然界捕获的数据作为自动化和发现的基础。
VAST Data Platform按功能可分为如下几个部分:
参照上文的功能划分,可以将VAST Data Platform划分为底层的基座和上面的执行层,如下:
The VAST DataStore:负责跨全局命名空间的数据存储和保护,使VAST DataBase和VAST DataEngine通过传统的存储协议和互联网协议都能访问数据。它包含三个子层:
执行层:提供并编排计算逻辑,通过数据驱动的处理将数据转化为洞察力,它包含两个主要服务:
上面的分层没有什么特别之处,其革新在于DASE架构,与现有的Shared-Noting架构相比,有两个显著不同的地方:
集群中的每个CNode在启动时挂载集群中所有的SSD,因此可以直接访问共享的系统状态。系统状态提供了系统内一切状态(从全局数据缩减到数据库事务)唯一的、真实来源。
VAST Server(CNode)提供了管理平台的智能,包括:保护VAST Element Store中的数据,处理数据库查询、确定最佳的转码位置等。 VAST Data Platform以一组无状态容器在一个1台到多台x86节点的集群上运行。CNode通常指运行在集群上的VAST Server容器,有时也指运行CNode的服务器。集群中的所有CNode在启动时,使用NVMe-OF协议挂载集群中所有的SCM和SSD,因此每个CNode可以直接访问集群中的所有数据和元数据。DASE架构中的一切 - 每个存储设备,每个元数据,每个事物的状态,都由系统中的所有CNode共享。
在DASE架构中,CNode不拥有任何设备和卷元数据。当CNode读取一个文件时,它先从SCM中访问文件的元数据,找到文件在SSD中的位置,然后直接从SSD中读取数据。处理类似读写数据的简单存储请求时,CNode不需要与其他CNode交互,但更复杂的,如:数据库查询和DataEngine函数,则需要跨多个CNode节点并行处理。
运行VAST集群的CNode容器是无状态的,因此那些会改变系统状态的任何用户请求或者后台任务,如:GC,故障重建,都会写入到JOBF的多个SSD后再响应用户或者确认提交。CNode不会在内存或者带电保护的非易失性内存(NVRAM)中缓存数据和元数据更新。NVRAM看起来很安全,NVRAM上的内容仅能在掉电时得到保护。即使如此,如果错误的两个节点发生故障,数据仍然可能丢失,系统必须运行特殊且容易出错的恢复例程,以在断电时恢复保存在 NVRAM 中的数据。
CNode和DBox中SSD间的NVMe-oF直连的延迟极低,也不需要CNode在内存中维护读缓存和元数据缓存。当CNode需要知道某个元素(如:文件,对象,表)的某字节在集群的存储位置,只要几毫秒就能得到关于这个位置的元数据。CNode没有缓存,因此避免了所有的复杂性,以及需要用来保持集群内缓存一致的东西向、节点间流量。
容器使得将VAST Data Platform部署为软件定义的微服务变得简单,同时为更具弹性的体系结构打下基础,其中容器故障不会影响系统运行。传统的系统必须重启节点以实例化新的软件版本,这通常需要几分钟,因为系统BIOS要对内存进行开机自检。VAST OS在升级过程会实例化一个新的VAST OS容器,但无需重启底层操作系统,从而将VAST服务器(CNode)的离线时间缩短到几秒钟。
VAST系统的无状态性和快速容器更新的结合使其能够在不中断系统操作的情况下执行从BIOS和SSD固件刷新到简单补丁的所有系统更新,即使对于像 SMB 这样的有状态协议也是如此。
VAST的机箱(也称为DBox)都是NVMe-oF存储柜,它们通过以太网或IB将SCM和超大规模闪存SSD连接到超低延迟的NVMe网络。所有HA机箱都具有高度冗余性,没有单一故障点 - DNode负责在NVMe网络和SSD间路由NVMe-oF请求,DNode、NIC、风扇以及电源都是冗余的,使得VAST集群无论是只有一个盘柜还是1,000个 HA盘柜,都具有高可用性。
如下图,每个HA机箱有两个DNode,负责将NVMe-oF请求从网络端口路由到机箱的SSD。从表面上看,VAST机箱和双控阵列很像,但存在几点根本性的区别:
VAST DataStore将SCM SSD作为高性能的写缓存和全局元数据存储,选择使用SCM SSD是因为其低延迟和耐用性,可以使DASE集群延长其上超大规模SSD的耐用性并提供亚毫秒延迟而没有内存缓存的复杂性,每个VAST集群包含数十到数百TB的SCM容量,给DASE架构带来如下的好处:
这里的超规模闪存是与企业级双端口SSD相对而言,主要是指每个单元包含4个bit的QLC,存储密度更大,但耐用性更低。VAST系统通过2个方面来减少闪存磨损,
传统的分布式架构将计算能力和存储容量聚合到Shared-Nothing节点(每个节点一个“控制器”)或Shared-Media节点(每个节点配备一对控制器和其驱动器)中。 无论哪种方式,用户都被迫在有限的节点模型范围内同时购买计算能力和容量,同时平衡少量大节点与大量小容量节点所需的成本、性能和数据中心资源之间的关系。
VAST系统通过简单的解耦 - 将CNode中的计算能力与提供容量的DBox独立开来,消除了上面提到的限制。VAST的客户在训练 AI 模型(一种访问大量小文件的工作负载)或处理复杂查询时,每个Dbox上运行的VAST DataBase CNode数量可能高达十几个。 另一方面,将 VAST 集群用于存储备份存储库、归档和其他不太活跃的数据集的客户通常每个DBox运行的CNode数量少于一个。当VAST客户需要更多的容量,添加更多的DBox扩展容量就行,而不需要为添加更多计算花钱。当客户发现需要更多算力,可以通过增加更多CNode来增加集群的计算能力。当CNode添加到池里时,系统会自动在它们间平衡VIP和处理。
DASE是一种非对称架构,客户不仅可以通过调整每个DBox上运行的CNode数量或者每个DBox的容量来改变系统中每PB具有的计算能力,运行CNode的服务器、DBox、甚至DBox内的SSD也是不对称的。
DASE系统通过将集群中的CNode视为计算能力池,容纳有不同数量或不同速度核心的CNode,就像操作系统在CPU核心之间调度线程一样,在CNode间调度任务。 当系统分配后台任务(例如在 SSD 失效后重建数据或将数据从 SCM 写缓冲区迁移到超大规模存储时),闪存任务将分配给利用率最低的服务器。速度更快的CNode将能够执行更多的工作,因此将被分配更多的工作。
类似地,DASE系统将集群中的SSD视为可用的SCM和超大规模闪存容量池。每个CNode都可以直接访问集群中的每个SSD,而DNode则为这些SSD提供了冗余路径,因此系统可以将SSD视为独立的资源和故障域。
当CNode需要分配SCM写缓冲区时,它会选择两个具有最大可用写缓冲区、并且尽可能远离彼此的SCM SSD,始终通过不同的DNode连接到网络,如果系统有多个DBox,则连接到不同的DBox。类似地,当系统在超大规模闪存SSD上分配纠删码条带时,它会为每个条带选择集群中具有最大空闲容量和耐久性的SSD。
由于是根据SSD剩余空间和耐久性来选择SSD,因此在集群中的任何新SSD或更大的SSD都将比旧的或较小的SSD更多的选中用于纠删码条带,直到集群中的SSD的磨损和容量利用率达到平衡。
在VAST DASE架构中,VAST服务器(CNode)提供计算能力,用于运行VAST Data Platform的各种服务以及从集群到网络的其他部分的链接。基于如下多种原因,VAST用户可以将其集群中的VAST服务器细分为多个池:
如上图,VAST集群配置了三个服务器池:一个服务器池用于支持批处理,一个池用于为交互式用户提供专用性能,以及一个用于备份应用程序的池。这些池确保交互式用户获得足够的性能,以保持他们的满意度,并且批处理和备份过程不会相互干扰。
服务器(CNode)池化通过为每个池分配的服务器数量提供了一种积极的**服务质量(QoS)**机制。此外,VAST DataStore还提供了一种声明性的QoS方法。
每个服务器池都有一组分配的 VIP(虚拟 IP 地址),这些 VIP 地址分布在池中的 CNode 上。当 CNode 离线时,它所服务的 VIP 将在池中的其余成员之间重新分配。 VAST建议用户为每个池配置 2-4 倍于CNode数量的 VIP,以便离线的CNode的负载可以分配给池中的多个其他 CNode上。
每个CNode可以是多个服务器池的成员,因此CNode可以服务用户请求,同时在DASE集群之间复制数据。
一个DASE集群包括4张逻辑网络:
VAST客户可以根据其网络设计和安全考虑,选择使用专用端口和/或 VLAN 来实施这些逻辑网络。最重要的是决定DASE集群如何连接到的数据中心网络以提供主机访问,提供了三种方式:
这种方式中,前端的主机网络和后端的NVMe网络作为两个VLAN子网运行在DASE集群的NVMe Fabric交换机上。如下图的绿色图标,客户的主机网络通过光纤交换机到客户核心交换机的MLAG连接,连接到集群。
(默认)每个CNode有一个100Gbps的网卡。分路器电缆将其转换为一对50Gbps的连接,两个光纤交换机各一个,每个50Gbps连接在一个VLAN上承载NVMe流量,在另一个VLAN中承载主机数据流量。这种连接方式,有如下的好处:
通过NVMe Fabric交换机将DASE集群连接到客户网络很简单,只需要最少的网络端口。但正如在“服务器池”中提到的那样,客户对于租户或者客户端如何连接到DASE集群,可能需要更多灵活性和控制。当用户需要使用不同的网络技术或者安全考虑从多个网络连接到客户端时,他们可以通过使用CNode的第二张网卡,将这些网络连接到CNodes来解决这个问题。这种连接方式,有如下好处:
不好的地方是:
随着DASE集群规模的扩展需要更多的NVMe Fabric连接,这可能会超过一对64端口交换机能提供的数量。在叶脊网络中,这对交换机出现在DASE集群的中心,如下图,CBox(包含多台CNode服务器的设备)和DBox仍然连接到一对交换机,但现在它们是一对叶交换机,然后通过冗余链接连接到一对脊交换机。叶脊网络允许DASE集群扩展到超过100台设备,特别是当在脊中使用大端口数的控制器类交换机时。
过去十年或更长时间以来,存储行业一直认为Shared-Nothing存储架构是实现存储规模和成本节约的最佳方法。自从2003年Google文件系统架构白皮书发布以来,几乎任何类型的存储架构都基于Shared-Nothing模型构建,从超融合存储到分布式文件存储、对象存储和数据仓库系统等。然而,十年后,共享无系统的基本原则因以下原因而不再适用:
当VAST服务器(CNode)收到读取请求时,该CNode从共享的存储级内存(SCM)中访问VAST DataStore的持久性元数据,以查找实际请求的数据位于何处。然后,它直接从超大规模SSD(或者如果数据尚未从写缓冲区迁移,则从SCM)中读取该数据,并将数据转发给请求的客户端。对于写入请求,VAST服务器(CNode)直接将数据和元数据写入多个 SSD,并确认写入操作。
这种直接访问共享设备的超低延迟架构消除了VAST服务器(CNode)之间进行IO请求服务时的通信需求——在同步写入或读取路径中,没有机器与其他机器交流。Shared-Everything使性能线性扩展变得容易,只需添加CPU即可,从而克服了Shared-Nothing存储架构在扩展时常常出现的收益递减法则。可以构建由数千台VAST服务器(CNode)组成的集群,以提供极高的聚合性能。VAST集群规模的主要限制因素是客户配置的网络架构的大小。
将系统的所有元数据存储在共享的持久性SSD上,通过超低延迟的网络访问,消除了CNode缓存元数据的需求,也不需要在服务器/CNode 之间维护缓存一致性。由于所有数据在向用户确认之前都写入持久性SCM SSD中,而不是缓存在DRAM中,因此不需要通常用于易失性和昂贵的DRAM写回缓存的断电保护硬件。VAST的DASE架构将100%的非易失性介质与事务性存储语义配对,以确保对Element Store的更新始终保持一致和持久。
VAST的DASE架构消除了存储设备必须由一个或一对节点控制器拥有的需求。由于所有SCM和超大规模闪存SSD都由所有CNode共享,每个CNode都可以访问系统的所有数据和元数据,以处理从开始到结束的请求。这意味着VAST集群将继续运行并提供所有数据服务,即使只有一个VAST服务器在运行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。