前言
这是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 Data Platform
VAST声称VAST Data Platform是世界上第一个深度学习数据平台,是实施数据密集型计算的突破性方法,可作为通过实时深度数据分析和深度学习捕获、编目、提炼、丰富和保存数据所需的综合软件基础设施。VAST Data Platform提供从边缘到云端的无缝、通用的数据访问和计算,它采用一种新的方法,通过声明性功能将非结构化数据与结构化数据结合起来,也可作为全球数据定义的计算平台用来存储、访问和分发数据。此外,VAST Data Platform还采用了一种从第一原理出发的方法来简化数据体验,引入了几种新架构约定,打破了数据密集型计算中长期存在的折中:
- 高性能和高容量:深度数据分析和深度学习都是应用统计学的形式,统计模型随着获取更多信息而改进。通过重新构想闪存的经济性,使全闪存基础设施的成本与归档存储相当,该平台解锁了对EB级数据的访问,并消除了在存储和数据库领域流行了30多年的复杂存储层次结
- 事务性和分析性:VAST Data Platform引入了一种全新的分布式系统架构(称为 DASE),消除了运行系统逻辑的机器之间的任何通信或相互依赖。没有了东西流量,数据操作不再在集群节点之间串行执行,从而使系统能够在任何规模上扩展并行读写操作。通过深度写缓冲区的附加优势,数据可以以任何形式写入,然后在低成本闪存上转换为长期数据格式,系统可以轻松地在流中交易数据,然后以更适用于深度数据分析和深度学习的方式读取和查询数据。实质上,VAST架构正在打破事件驱动架构(并行数据摄入、事务)和数据驱动(并行深度数据分析和深度学习)数据处理之间存在几十年的障碍,通过持续将实时数据与长期数据进行关联,实现了洞察力,将其作为一个统一的数据语料库
- 全局一致和本地性能:VAST Data Platform在数据架构中引入了一种新的去中心的全局交易管理形式,通过在计算和存储数据的每个位置扩展深度缓冲区和数据同步,从而使得在任何位置都可以以一致性和高性能进行交易。应用程序只需看到一个严格一致的全局命名空间和动态功能执行环境,该环境从边缘延伸到云端和本地数据中心。
- 简单和弹性:VAST DASE架构旨在在可扩展到EB级别的系统上,为数据中心提供99.99999999%的持续运行时间。该系统实现了标准的数据访问接口,可以轻松集成到企业应用程序中,从而现代化了遗留应用程序的基础设施,实现了无需中断的整合,同时也使得将AI引入企业数据成为可能,而不是将数据传输到异构的AI数据基础设施
VAST Data Platform提供的核心产品能力如下:
- 结构化和非结构化数据的智能存储:数据采集到平台时自动添加上下文,给数据赋予结构和含义。这种实时(数据)丰富与平台传输结构化和半结构数据的能力相结合,有助于跨所有数据的即时数据分析
- 高性能的结构化数据采集和分析:每秒能够摄取数百万基于行的事物数据,然后使用列粒度格式运行查询。企业可以整合流媒体和分析负载来分析实时和归档数据,使数据驱动的决策更快,更有效
- 访问所有数据:一个全局命名空间包含从本地到云端的所有数据,消除了数据孤岛并简化了数据管理。数据写入后,在任何位置立即可用,并具有灵活的同步策略来解决各种用例。独特的细粒度分布式锁-在文件、对象、表级-确保每个写严格一致,提供准确、最新的数据
- AI加速:所有数据,从本地到云端均可以采用标准的NFS,SMB,S3,K8S CSI,GDS以及RDMA协议读写,使得所有的负载按设计的方式访问数据,同时也支持AI计划
如何工作
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 DataStore:是平台的存储基座,负责数据持久化,并使数据对于应用程序可能用于读写数据的所有协议可用,可以扩展为EB级。DataStore的主要作用是捕获并(对外)提供海量原始的、非结构化数据和流数据
- VAST DataBase:是系统的数据库管理服务,负责将表格写入系统,支持对VAST保存的的表数据和编目元数据的实时、细粒度查询。与数据库管理系统的传统方法不同,VAST DataBase与于基于行的OLTP数据库类似具有事务性,采用列式数据结构,像基于闪存的数据仓库一样处理分析查询,并且具有数据湖的规模和可承受性。DataBase的主要作用是组织DataStore中的语料知识库,并编目非结构数据的语义理解
- VAST DataEngine:是系统的声明式函数执行环境,支持将类似ASW Lambda无服务函数和事件通知部署在标准linux容器中。通过内置的调度器和成本优化器,DataEngine可以部署在CPU、GPU和DPU架构中,使用可扩展的通用计算给数据赋予生命。DataEngine弥合了基于事件和数据驱动的架构间的鸿沟,使你能进入洞察系统并通过分析、推断和训练所有数据获得实时洞察。DataEngine的主要作用是通过推断和分析底层数据的特征将原始、非结构数据转化为信息
- VAST DataSpace:获取各层提供的概念并它们扩展到多数据中心,构建一个统一的计算网络和存储命名空间,尝试打破传统跨地域计算的各种折中。DataSpace通过同步元数据和通过远程数据缓冲来呈现数据,实现全球数据访问,但是,允许每个站点在命名空间级别(文件、对象、表)承担一致性管理的临时责任。采用集中式的、细粒度的一致性管理方法,VAST Data Platform成为一个全局数据存储,可确保严格的应用一致性,同时提供高性能的远程功能。通过消除信息孤岛,DataSpace使数据访问变得容易,同时通过智能的预取和管道传输数据来保持管道满载和远端的CPU和GPU繁忙。DataEngine在DataSpace之上创建了灵活的计算层,可以将函数路由给数据(当数据的权重更大时),也可以将数据路由给函数(当数据附近的处理资源稀缺时),采用这种方式,DataSpace可以帮助组织在构建全球AI环境时克服计算和数据引力。DataSpace的主要作用是充当平台对外的接口,将数据访问扩展到全局,实现联合AI训练和推理
架构
参照上文的功能划分,可以将VAST Data Platform划分为底层的基座和上面的执行层,如下:
- The VAST DataStore:负责跨全局命名空间的数据存储和保护,使VAST DataBase和VAST DataEngine通过传统的存储协议和互联网协议都能访问数据。它包含三个子层:- 物理层:为VAST Element Store中作为原子单元的小数据块提供基本的数据保存服务,包括:EC、数据分发、数据缩减、离线加密以及设备管理等服务- 逻辑层:也称为Element Store层,使用元数据将物理数据块组装成用户或者应用使用的数据元素,如:文件、对象、表和卷,然后再将这些数据元素组织在集群的全局命名空间中,使用VAST DataSpace还能跨越多个集群。逻辑层在元素和路径层面提供各种服务,包括:访问控制、加密、快照、克隆和复制- 协议层:提供多种协议用于访问数据元素,所有协议模块都是对等的,提供对适合其数据类型的元素的完整多协议访问
- 执行层:提供并编排计算逻辑,通过数据驱动的处理将数据转化为洞察力,它包含两个主要服务:- VAST DataBase:负责管理结构化数据,旨在提供OLTP,数据组织和OLAP所需的复杂查询处理时所需要的事物一致性,满足当今AI应用程序需要的规模。逻辑层存储表格,协议层为他们提供基本的SQL访问,DataBase服务将这些表转化为全功能的数据库管理系统,提供从键排序、外键到连接的高级数据库功能- VAST DataEngine:提供处理、转化,推断洞察原始数据所需的智能。DataEngine执行各种功能,如:面部识别、数据丢失预防扫描或者基于事件触发器(如满足某些过滤器或者匿名函数的对象到达)的元素转码。DataEngine充当全局任务调度程序,将要执行的功能分配到计算资源、数据可访问性和成本的组合最能满足用户需求的地方(执行)
上面的分层没有什么特别之处,其革新在于DASE架构,与现有的Shared-Noting架构相比,有两个显著不同的地方:
- 集群的计算资源与数据和系统状态解耦:在DASE集群中,所有的计算由运行在无状态容器中的计算节点执行(VAST Server,也称为CNode)。这很大程度上包含用于维护持久存储所需的所有计算,这些计算传统上由存储控制器上的CPU提供。这使得集群的计算资源能够独立于整个数据中心网络的存储容量进行扩展。
- Shared-Everything模型:允许任何CNode直接访问所有的数据、元数据和系统状态。在DASE集群中,系统状态存储在有很高可用性的JBOF的 NVME SSD上。JBOF也称为存储柜(或者DBox),它们通过NVMe网络连接SSD。
集群中的每个CNode在启动时挂载集群中所有的SSD,因此可以直接访问共享的系统状态。系统状态提供了系统内一切状态(从全局数据缩减到数据库事务)唯一的、真实来源。
CNode
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机箱和双控阵列很像,但存在几点根本性的区别:
- DNode不执行任何存储逻辑,因此它的CPU永远不会成为瓶颈
- DNode不会将SSD聚合为LUN,也不提供存储服务,只负责将SSD呈现在网络中以及路由请求到SSD或者从SSD路由请求
- 两个DNode以AA模式运行,正常情况下,每个DNode负责将一半的SSD呈现给NVMe网络。如果一个DNode离线,存活的DNode会重新映射故障节点上的SSD,并保存原子写入一致性
持久内存
VAST DataStore将SCM SSD作为高性能的写缓存和全局元数据存储,选择使用SCM SSD是因为其低延迟和耐用性,可以使DASE集群延长其上超大规模SSD的耐用性并提供亚毫秒延迟而没有内存缓存的复杂性,每个VAST集群包含数十到数百TB的SCM容量,给DASE架构带来如下的好处:
- 优化写延迟:CNode将数据镜像到超低延迟的SCM缓冲后,再给客户端返回写入应答。这个缓冲区将应用程序的写入延迟与执行全局闪存转换和数据缩减等数据服务所需的时间隔离开来,同时保护应用程序免受超大规模SSD的高写入延迟影响
- 保护闪存寿命免受临时写的影响:数据可以一直驻留在SCM的缓存里,因为缓存相对较大,可以缓解中间更新对超大规模SSD的磨损
- 提升数据保护效率:SCM写缓冲区具备同时组装许多宽且深的条带的能力,并以接近完美的形式将其写入超大规模 SSD,以从这些低成本SSD获得比传统企业存储写入模式长20倍的寿命
- 保护闪存寿命免受激进数据缩减的影响:SCM允许VAST集群在给应用程序返回写入应答后但在数据迁移到超大规模SSD前,进行数据缩减计算,因此,可以避免后置数据缩减方法带来的写放大
- 提升数据缩减字典效率:SCM充当元数据共享池,除其他类型的元数据外,还存储可供所有VAST服务器(CNode)使用的全局压缩字典。这使得系统能够使用比传统存储更多的数据缩减元数据来丰富数据,同时避免将数据缩减索引拷贝到每个CNode的内存中
超大规模闪存
这里的超规模闪存是与企业级双端口SSD相对而言,主要是指每个单元包含4个bit的QLC,存储密度更大,但耐用性更低。VAST系统通过2个方面来减少闪存磨损,
- 首先通过使用创新的、以前未使用过的、与低成本超大规模SSD的内部几何结构保持一致的新数据结构
- 第二点是,使用大型SCM来缓存写,提供时间和空间,以最大限度地减少闪存磨损
不对称扩展
传统的分布式架构将计算能力和存储容量聚合到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用户可以构建一个具有IB卡的CNode池,HPC集群通过IB访问VAST集群,而基础设施中的其他部分通过以太网与第二个池中的以太网连接
- 提供网络隔离:VAST运营商可以通过IP地址池限制对租户和视图(多协议共享/导出/存储桶)的访问,从而限制数据的访问范围,包括位置和服务器池的访问
- 提供专用性能:VAST用户可以通过构建不同应用程序、用户或服务池的CNode池来提供专用性能,作为一种积极的服务质量形式
如上图,VAST集群配置了三个服务器池:一个服务器池用于支持批处理,一个池用于为交互式用户提供专用性能,以及一个用于备份应用程序的池。这些池确保交互式用户获得足够的性能,以保持他们的满意度,并且批处理和备份过程不会相互干扰。
服务器(CNode)池化通过为每个池分配的服务器数量提供了一种积极的服务质量(QoS)机制。此外,VAST DataStore还提供了一种声明性的QoS方法。
每个服务器池都有一组分配的 VIP(虚拟 IP 地址),这些 VIP 地址分布在池中的 CNode 上。当 CNode 离线时,它所服务的 VIP 将在池中的其余成员之间重新分配。 VAST建议用户为每个池配置 2-4 倍于CNode数量的 VIP,以便离线的CNode的负载可以分配给池中的多个其他 CNode上。
每个CNode可以是多个服务器池的成员,因此CNode可以服务用户请求,同时在DASE集群之间复制数据。
DASE网络
一个DASE集群包括4张逻辑网络:
- NVMe网络,也称为后端网络,用于连接CNode和DNode。VAST集群默认使用100Gbps以太网或者IB(RoCE),为CNode和DNode提供NVMe over RDMA通信
- 主机网络,也称为前端网络,用于承载客户端到CNode的文件、对象、数据库请求
- 管理网络,用于承载集群的管理流量,如:DNS和认证
- IPMI网络,用于集群中硬件的监控
VAST客户可以根据其网络设计和安全考虑,选择使用专用端口和/或 VLAN 来实施这些逻辑网络。最重要的是决定DASE集群如何连接到的数据中心网络以提供主机访问,提供了三种方式:
通过交换机连接
这种方式中,前端的主机网络和后端的NVMe网络作为两个VLAN子网运行在DASE集群的NVMe Fabric交换机上。如下图的绿色图标,客户的主机网络通过光纤交换机到客户核心交换机的MLAG连接,连接到集群。
(默认)每个CNode有一个100Gbps的网卡。分路器电缆将其转换为一对50Gbps的连接,两个光纤交换机各一个,每个50Gbps连接在一个VLAN上承载NVMe流量,在另一个VLAN中承载主机数据流量。这种连接方式,有如下的好处:
- 每个CNode只需要一张网卡
- 通过MLAG,网络流量聚合到少量的100Gbps连接上,只需要最少的主机网络交换机端口 不好的地方是:
- 主机网络连接必须和后端网络一样:IB网络只支持IB主机,40、25、10 Gbps以太网连接在100 Gbps光纤端口中成本高昂
- 只有一个物理主机网络
通过CNode连接
通过NVMe Fabric交换机将DASE集群连接到客户网络很简单,只需要最少的网络端口。但正如在“服务器池”中提到的那样,客户对于租户或者客户端如何连接到DASE集群,可能需要更多灵活性和控制。当用户需要使用不同的网络技术或者安全考虑从多个网络连接到客户端时,他们可以通过使用CNode的第二张网卡,将这些网络连接到CNodes来解决这个问题。这种连接方式,有如下好处:
- 支持通过不同的网络技术连接DASE集群:IB客户端通过IB网卡连接,以太网客户端通过以太网卡连接或者以太网客户端通过光纤连接
- 支持新的客户端连接技术,如:200Gbps以太网
- 连接多个安全区而无需路由
不好的地方是:
- 需要更多的交换机端口,网卡和IP地址
叶脊网络
随着DASE集群规模的扩展需要更多的NVMe Fabric连接,这可能会超过一对64端口交换机能提供的数量。在叶脊网络中,这对交换机出现在DASE集群的中心,如下图,CBox(包含多台CNode服务器的设备)和DBox仍然连接到一对交换机,但现在它们是一对叶交换机,然后通过冗余链接连接到一对脊交换机。叶脊网络允许DASE集群扩展到超过100台设备,特别是当在脊中使用大端口数的控制器类交换机时。
超越Shared-Nothing的扩展性
过去十年或更长时间以来,存储行业一直认为Shared-Nothing存储架构是实现存储规模和成本节约的最佳方法。自从2003年Google文件系统架构白皮书发布以来,几乎任何类型的存储架构都基于Shared-Nothing模型构建,从超融合存储到分布式文件存储、对象存储和数据仓库系统等。然而,十年后,共享无系统的基本原则因以下原因而不再适用:
- Shared-Nothing存储系统最初是为了将磁盘与CPU放置在一起设计的,当时网络速度比本地存储慢。随着NVMe-oF的出现,现在可以将 CPU(计算)与存储设备分离,访问远程SSD和SCM设备也不会影响性能
- Shared-Nothing存储系统强制要求客户同时扩展计算能力和存储容量,从而创建了一种不灵活的基础架构模型,而无法根据数据集需要更快的访问性能来扩展CPU
- Shared-Nothing存储系统限制了存储效率。由于Shared-Nothing集群中的每个节点都拥有一组介质,因此Shared-Nothing集群必须通过在节点之间进行纠删码、限制条带宽度和分片,或者复制数据缩减元数据来适应节点故障,从而限制了数据缩减效率。而Shared-Everything系统可以在没有任何一台机器专门拥有SSD的情况下构建更宽、更高效的RAID条带并构建更高效的全局数据缩减元数据结构
- 随着容器越来越成为部署应用程序的热门选择,这种微服务方法在部署应用程序时受益于容器所带来的无状态方法,使得在不再关心数据局部性的情况下,可以轻松地在可组合的基础架构上提供和扩展数据服务
无状态设计的优势
当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服务器在运行。
版权归原作者 lizhongwen1987 所有, 如有侵权,请联系我们删除。