首页> 中国专利> 在基于NAND的读取源存储中提高大数据分析吞吐量的方法和系统

在基于NAND的读取源存储中提高大数据分析吞吐量的方法和系统

摘要

一个实施例促进了存储设备中的数据访问。在操作期间,系统通过存储设备从与该存储设备分离的原始物理介质中获得文件,其中该文件包括先前已经基于纠错码(ECC)进行了编码的压缩数据。所述系统将所获得的文件作为只读副本存储在存储设备的物理介质上。响应于接收到读取文件的请求,系统通过存储设备基于ECC将副本解码以获得ECC解码的数据,其中ECC解码的数据随后由与存储设备关联的计算设备解压缩,并作为请求的文件返回。

著录项

  • 公开/公告号CN112286714A

    专利类型发明专利

  • 公开/公告日2021-01-29

    原文格式PDF

  • 申请/专利权人 阿里巴巴集团控股有限公司;

    申请/专利号CN202010704686.8

  • 发明设计人 李舒;

    申请日2020-07-21

  • 分类号G06F11/10(20060101);G06F12/1036(20160101);

  • 代理机构11644 北京清源汇知识产权代理事务所(特殊普通合伙);

  • 代理人冯德魁;张艳梅

  • 地址 英属开曼群岛大开曼资本大厦一座四层847号邮箱

  • 入库时间 2023-06-19 09:41:38

说明书

技术领域

本公开总体上涉及数据存储领域。更具体地,本公开涉及用于提高基于NAND的读取源存储中的大数据分析的吞吐量的方法和系统。

背景技术

互联网和电子商务的激增继续创建大量的数字内容。已经创建了各种分布式存储系统来访问和存储这些数字内容。在一些读取密集型场景中,存储系统可能会存储数据的原始版本,在存储系统其中已存储的原始数据经常被读取或访问,但不一定进行更新。读取密集型方案的一个示例是“大数据”分析,其中涉及检查大量不同的数据集(即大数据),以识别相关信息,例如隐藏模式、市场趋势、未知相关性以及可能与用户相关的任何信息。大数据分析需要经常读取大量数据,而源数据则保持不变。为了加速由多个数据分析服务器执行的数据分析处理,通常将中间结果存储在存储样式的介质中。但是,这可能会导致通过以太网长距离传输大量数据的相当大的开销。为了避免这种开销,通常会复制读取源以在每个站点上形成本地副本,因此,低成本和高吞吐量都是存储源数据副本的实际和基本要求。

在当前的大数据分析中,常规的分布式存储系统可用于为原始数据源的多个存储副本提供所需的存储。但是,使用常规的分布式存储系统可能会导致一些挑战和效率低下,其中包括:昂贵地部署由数十个计算服务器和存储服务器(包括网络)组成的整个分布式存储系统;数据中心中昂贵的机架空间;电力成本高;并且访问存储在存储服务器中的副本的延迟高。

随着大数据分析的继续增长,常规分布式存储系统的低效率和挑战也将继续增长。

发明内容

一个实施例促进了存储设备中的数据访问。在操作期间,系统通过存储设备从与该存储设备分离的原始物理介质中获取文件,其中,该文件包括压缩的无错误数据,该数据先前已基于纠错码(ECC)进行了编码。所述系统将所获得的文件作为只读副本存储在存储设备的物理介质上。响应于接收到读取文件的请求,系统由存储设备基于ECC对副本进行解码以获得ECC解码的数据,其中,ECC解码的数据随后由与存储设备关联的计算设备解压缩,并作为请求的文件返回。

在一些实施例中,基于第一协议从请求实体接收读取文件的请求。在所述计算设备解压缩所述ECC解码的数据之后,系统将解压缩的数据作为请求的文件返回至请求实体,而不执行任何ECC编码。

在一些实施例中,由计算设备的并行解压缩引擎执行对所述ECC解码的数据进行解压缩。

在一些实施例中,读取文件的请求由计算设备接收,并由所述通过一系统发送到存储设备,该系统包括以下至少一个:第一以太网交换机和第二以太网交换机;第一智能网络接口卡(NIC)和第二智能网络接口卡(NIC);多个外围高速互PCIe交换机;其中,第一智能网卡和第二智能网卡均包括一个简单的存储节点,包括:到第一以太网交换机和第二以太网交换机的上行链路;经由多个PCIe通道的多个PCIe交换机的下行链路,所述多个PCIe通道用于连接到所述存储设备和多个其他存储设备。

在一些实施例中,读取文件的请求进一步由第二计算设备接收,并且还被第二计算设备经由该系统传输至存储设备;该第二计算设备是该计算设备的备用服务器或高可用性服务器。

在一些实施例中,所述系统通过计算设备存储由文件名到与所述存储设备相关联的当前物理块地址的映射。

在一些实施例中,响应于检测到将文件从所述当前物理块地址移动到与存储设备相关联的新物理块地址的条件,系统更新文件名到新物理文件的映射块地址。

在一些实施例中,存储在所述存储设备中的文件的格式包括一个或多个:表示与文件相关联的起始位置的前同步码(pre-amble);文件的唯一文件标识符;文件的内容;后同步码(post-amble),表示与文件相关联的结束位置;用于验证文件内容的一致性的循环冗余校验(CRC)签名。

在一些实施例中,第一存储设备不包括:执行ECC编码的模块或单元;动态随机存取存储器(DRAM)接口和通过该DRAM接口访问的DRAM模块;执行闪存转换层(FTL)功能的处理器,所述功能包括将逻辑块地址映射到物理块地址。

另一实施例提供了一种分布式存储系统,用于通过一个或多个客户端便于一个或多个大数据分析应用。该分布式存储系统包括;

前端头服务器、交换机以及连接到该交换机的多个NAND卡;前端头服务器被配置为接收读取文件的请求;所述NAND卡被配置为:通过所述交换机接收读取存储在所述NAND卡上的文件的请求;以及并由NAND卡基于纠错码(ECC)将文件解码以获取ECC解码的数据;前端头服务器配置为对ECC解码的数据进行解压缩,并将解压缩后的数据作为请求的文件返回。

在一些实施例中,NAND卡还被配置为从与该NAND卡分离的原始物理介质获得文件,其中文件包括先前基于纠错码(ECC)编码的压缩数据。NAND卡还被配置为在不执行任何ECC编码的情况下将ECC解码的数据返回到前端头服务器。NAND卡不包括:执行ECC编码的模块或单元动态随机存取存储器(DRAM)接口和通过DRAM接口访问的DRAM模块;执行闪存转换层(FTL)功能的处理器,所述功能包括将逻辑块地址映射到物理块地址;从而通过减少ECC编码的数量来便于大数据分析应用有效地分析数据。

附图说明

图1示出了根据现有技术的用于便于在存储设备中的数据访问的示例性环境。

图2示出了根据本申请的实施例的用于便于在存储设备中的数据访问的示例性环境。

图3示出了根据本申请的实施例的用于原始数据源中的数据放置以及复制到读取源副本中的数据放置、包括数据I/O路径的示例性环境。

图4示出了根据本申请的实施例的包括具有简化架构的NAND卡的存储设备的示例图。

图5示出了根据本申请的实施例的文件到物理块地址的示例性映射。

图6示出了根据本申请的实施例的文件格式和NAND块布局的示例图。

图7A呈现了示出根据本申请的实施例的用于便于在存储设备中数据访问的方法的流程图。

图7B呈现了示出根据本申请的实施例的用于便于在存储设备中的数据访问的方法的流程图。

图8示出了根据本申请的实施例的便于在存储设备中的数据访问的示例性计算机系统和存储系统。

图9示出了根据本申请的实施例的便于在存储设备中进行数据访问的示例性装置。

在附图中,相同的附图标记指代相同的附图元素。

具体实施方式

提供以下描述以使本领域的任何技术人员能够制造和使用实施例,并且在特定应用及其要求的上下文中提供以下描述。对于所公开的实施例的各种修改对于本领域技术人员将是显而易见的,并且在不脱离本公开的精神和范围的情况下,本文中定义的一般原理可以应用于其他实施例和应用中。因此,本文描述的实施例不限于所示的实施例,而是应被赋予与本文公开的原理和特征一致的最宽范围。

概述

本文所述的实施例通过提供一种具有简化的“NAND卡”新颖的分布式存储系统作为存储设备来解决当前分布式存储系统中大数据分析的效率低下。这些存储设备将ECC编码卸载到原始存储设备,消除了存储设备中的DRAM控制器和模块,并将FTL功能转移到了系统前端的计算设备上。

如上所述,大数据分析是读取密集型场景的示例,该方案要求频繁读取非常大量的数据,但源数据保持不变。为了加速由多个数据分析服务器执行的数据分析处理,通常将中间结果存储在存储样式的介质中。但是,这可能会导致通过以太网长距离传输大量数据的大量开销。为了避免这种开销,通常会复制读取源以在每个站点上形成本地副本。因此,低成本和高吞吐量都是存储源数据副本的实际和基本要求。

在当前的大数据分析中,常规的分布式存储系统可以用于例如根据需要并由多个数据分析服务器访问的原始数据源的多个存储副本来提供所需的存储。但是,使用传统的分布式存储系统可能会导致一些挑战和效率低下,其中包括:昂贵地部署由数十个计算服务器和存储服务器(包括网络)组成的整个分布式存储系统;数据中心中昂贵的机架空间;电力成本高;以及访问存储在存储服务器中的副本的高延迟(如下文有关图1所述)。随着大数据分析的不断增长,传统分布式存储系统的低效率和挑战也将继续增长。

本文描述的实施例通过提供具有高容量存储和高吞吐量的分布式存储系统来解决这些挑战和低效率。该系统允许多个数据分析服务器以低延迟和低成本访问数据。该系统包括连接到以太网交换机的前端头服务器,该以太网交换机连接到智能网络接口卡(NIC)片上系统(SOC)。智能NIC SOC(通过多个PCIe通道)连接到多个外围高速互连(PCIe)交换机,其中每个PCIe交换机连接到多个“NAND卡”。每个NAND卡可以是简化的存储设备,包括ECC解码器,但不包括某些模块,例如:ECC编码器、通过处理器进行的FTL操作或功能、以及DRAM接口/存储。

相反,可以以各种方式卸载这些模块执行的功能。例如,可以由原始数据源存储设备执行ECC编码,并且可以从出站数据I/O路径上的原始数据源存储设备上检索ECC编码数据(由于先前已进行ECC解码,因此还包含无错误数据),或将所述编码数据提供到NAND卡,如图3所述。此外,例如,通过处理来自数据分析服务器的请求(例如访问存储为读取源数据或副本的文件的请求),可以将与FTL相关的LBA到PBA的映射的操作和维护所述映射的操作卸载到充当分布式存储系统前端头的计算设备。此外,NAND卡可以使用简单的缓存或高速缓存进行任何必要的ECC解码,从而可以从存储设备中删除DRAM接口和DRAM。

因此,通过以此处描述的方式简化NAND卡,本系统的实施例可以产生成本和功率的节省,并且还可以为大数据分析和其他需要频繁访问只读数据的类似应用程序更加高效的分布式存储系统,该分布式存储服务器可以提供满足来自多个数据分析服务器的数据访问请求所需的低成本和高吞吐量。

“存储驱动器”是指具有可以提供数据持久存储的非易失性存储器的设备或驱动器,例如固态驱动器(SSD)或硬盘驱动器(HDD)。

“存储服务器”是指可以包括多个存储驱动器的计算设备。分布式存储系统可以包括多个存储服务器。

NAND闪存可在每个单元中存储一定数量的位。例如:“单级单元”或“SLC”存储元件可以在每个单元中存储一位信息;“多级单元”或“MLC”存储元件可以在每个单元中存储两位信息;“三级单元”或“TLC”存储元件可以在每个单元中存储三位信息;“四级单元”或“QLC”存储元件可以在每个单元中存储四位信息。

“NAND卡”指的是具有简化架构的存储设备,例如,不具有用于FTL功能的处理器、ECC编码器模块或DRAM接口/DRAM,如以下关于图2和图4所讨论的。

现有技术中的数据访问的示例性环境

图1示出了根据现有技术的用于便于存储设备中的数据访问的示例性环境。在该常规环境100中,可以通过NAS协议服务器来实现网络附属存储(NAS)协议,并且可以将数据存储在分布式存储集群中。例如:客户端110可以包括数据分析服务器112、114和116;计算服务器130可以包括网络附属存储(NAS)协议服务器132、134和136;存储服务器150可以包括分布式存储集群151,并且可以包括存储服务器152、154和156。在环境100中,数据可以通过负载平衡模块120从数据分析服务器112-116传递到NAS协议服务器132-136。然后,数据可以通过数据中心以太网140,以存储到或存储在存储服务器152-156上。

环境100的常规分布式存储系统的一个优点是其提供足够容量以容纳数据分析服务器需要访问的不断增长的大量数据(即作为数据源副本的站点)的能力。然而,该常规系统存在若干劣势或缺点。首先,整个分布式存储系统需要大量的计算服务器和存储服务器(例如数十个数量级)以及必要的网络连接,这对于维护和扩展而言可能很麻烦。与各种边界网关协议(BGP)相关联的网络成本可能会很大。其次,数据中心中的机架空间可能很昂贵,并且为了扩展这种常规的分布式存储系统机架空间成本必然会增加。第三,在多个位置存储、访问和维护此副本数据所需的电力成本会很高,并且在维护或扩展时电力成本也可能增加。第四,从这样的副本站点读取或访问数据所涉及的延迟可能会很高或很长。因此,鉴于数据中心机架空间和电源预算的高昂成本,以及提高副本数据源吞吐量的需求,以及依赖常规分布式存储系统以这种方式频繁访问只读数据的高昂成本,这些缺点可能导致系统在成本、性能和可扩展性方面效率更低。使用简化的“NAND卡”存储设备便于数据访问的示例性环境

图2示出了根据本申请的实施例的用于便于在存储设备中数据访问的示例性环境200。环境200可以描述一个分布式存储系统,并且可以包括几个实体,包括一对前端头、一对以太网交换机、一对智能NIC片上系统(SOC)、多个PCIe交换机以及多个“NAND卡”。如上所述,术语“NAND卡”是指具有简化架构的存储设备,例如,不具有处理器、ECC编码器模块、或DRAM接口/DRAM,如下面图4所讨论的。在一对实体中,一个实体可以是主要实体(或主动)实体,而另一个实体可以是备用(或非主动实体),当主要实体发生故障或以其他方式不响应时,该备用实体可提供高可用性。

例如,环境200可以包括:具有并行解压缩引擎(ASIC)224的前端头A 222;以及带有并行解压缩引擎(ASIC)228的前端头B 226。每个前端头可以配置为处理特定协议,例如,网络附加存储(NAS)协议以处理来自多个大数据分析服务器传入的请求。每个前端头都可以看作是没有存储驱动器或容量非常有限的简化客户端节点。因此,每个前端头负责处理通过某种协议输入的请求,并负责基于其各自的并行解压缩引擎对数据进行解压缩。

每个前端头可以连接到一以太网交换机A 232和一以太网交换机B 234。每个以太网交换机可以连接到智能NIC SOC 242和智能NIC SOC 244。每个智能NIC SOC可以(通过多个PCIe通道)连接到多个PCIe交换机,每个智能NIC SOC可以进一步确定要使用哪个PCIe通道。每个智能NIC SOC都可以充当简单的存储节点,并且可以具有简化的微处理器,例如无内部互锁流水线级(MIPS)的微处理器或高级RISC计算机(ARM)处理器。智能NIC SOC 242可以连接到PCIe交换机251、252和253,而智能NIC SOC 244可以连接到PCIe交换机254、255和256。也就是说,每个智能NIC SOC都有一个上行链路,该上行链路通过以太网连接到至少一个以太网交换机,以及每个智能NIC SOC还具有一个下行链路,该下行链路包括用于连接至PCIe NAND卡的PCIe通道。

每个PCIe交换机可以连接到多个NAND卡,并且这些NAND卡可以提供频繁数据访问(例如,通过数据分析服务器212、214和110进行大数据分析)所需的存储容量和高吞吐量。以下在附图4中的描述了示例性NAND卡(例如NAND卡261)。为了增加环境200中描述的系统的容量,系统可以在任何所描述的级别添加更多实体,包括更多以太网交换机、更多智能NIC SOC、更多PCIe交换机和更多NAND卡。

因此,在本文所述的实施例中,系统通过在例如环境200的环境中使用多个NAND卡,提供了具有高容量存储和高吞吐量的分布式存储系统。通过仅在前端头放置协议处理和压缩功能,分布式存储系统允许NAND卡仅用作数据池,这允许整个分布式存储系统可轻松的移动和构建,例如在小型数据中心中,占用或使用较少的总体机架空间,从而降低总体运营成本(TCO)。

数据访问的示例性数据I/O路径

图3示出了根据本申请的实施例的用于原始数据源中的数据放置以及复制到只读源副本中的数据放置、包括数据I/O路径的示例性环境。可以经由数据I/O路径将原始数据存储在原始数据源310,该数据I/O路径包括:(经由通信352)接收要存储的数据;通过压缩模块312接收并压缩接收到的数据;(通过通信354)将压缩的数据发送到ECC编码器模块314;通过ECC编码器模块314接收并压缩压缩后的数据;(经由通信356)发送要存储在NAND316中的ECC编码的数据(“原始存储的数据”或“原始版本”)。在接收到读取数据的请求之后,可以经由数据I/O路径来访问或读取该原始存储在NAND 316中的数据,该数据I/O路径包括:由ECC解码器模块318接收经ECC编码的数据(经由通信358);通过ECC解码器模块318解码ECC编码的数据;发送ECC解码后的数据至解压缩模块320;通过解压缩模块320接收并解压缩ECC解码后的数据;并返回解压缩的数据(通过通信362)。

在访问数据的数据I/O路径期间,在数据被ECC解码器318解码之后,原始存储的数据已被成功地ECC解码为“无错误数据”,并且ECC解码器318也拥有从NAND 316获得的包括ECC奇偶校验位的整个ECC码字。在这一点上,读取源副本330可以从ECC解码器模块318获得或检索(或者原始源310可以传送或发送)全部ECC码字(包括ECC奇偶校验位)的无错误数据(通过通信370)。读取源副本330可以将获得的ECC码字存储在NAND 332中(作为读取源或只读副本)。

当请求访问数据时(例如,如图2所示,由数据分析服务器访问),从NAND 332中检索存储的只读副本(即ECC码字)并将其发送到ECC解码器334(通过通信372)。ECC解码器334可以接收和解码ECC码字,并且将ECC解码的数据发送到诸如多路复用器336之类的模块(通过通信374)。多路复用器336可以确定数据是否必须刷新、是否需要移动或最近已经移动到新的物理位置。如果需要刷新或移动数据,则系统可以将数据发送回NAND 332(通过通信378)。如果不需要刷新或移动系统,则系统可以将数据向前发送到奇偶校验模块338(通过通信376)。奇偶校验模块338可以丢弃ECC奇偶校验位以获得压缩数据。奇偶校验模块338可以将压缩后的数据发送到前端头解压缩(通过通信380)。解压缩模块340可以对压缩数据进行接收和解压缩(作为前端操作342),以获得被请求访问或读取的数据,并且可以发送回所请求的数据(通过通信382)。

因此,在本文所述的实施例中,该系统为来自多个数据分析服务器的高强度、频繁的读取访问提供了高密度、大容量的数据源。通过使用这些“简化的”NAND卡,该系统可以降低总运营成本(TCO),并且可以消除对传统分布式存储系统中数十台或数百台服务器的需求。用于数据访问的示例性存储设备(NAND卡)

图4示出了根据本申请的实施例的包括具有简化架构的NAND卡400的存储设备的示例图。NAND卡400可以对应于如图2中所述的NAND卡261-272中的任何一个,诸如NAND卡261。NAND卡400可包括:用于NAND卡400与PCIe交换机之间的通信(通过通信442)的PCIe接口412;用于基于CRC签名提供数据一致性的验证的CRC模块418;用于保存数据的缓存/高速缓存420;用于执行ECC解码的ECC解码器422;以及用于在NAND卡和与NAND卡400相关联的物理存储介质之间进行通信的NAND闪存接口430。例如,NAND卡400可以包括多个通道,数据可以通过这些通道通过NAND闪存接口430传输或通信,包括:NAND裸片432(经由通道431访问);NAND裸片434(经由通道433访问);NAND裸片436(经由通道435访问);NAND裸片438(经由通道437访问)。

NAND卡400不包括先前包括在常规SSD或常规存储设备中的一些模块或组件。这些模块或组件由右斜杠指示。NAND卡400不包括:处理器(FTL)414;ECC编码器416;和具有与DRAM 426和428关联的DRAM接口424。

应当注意,由于与其他类型的非易失性存储器相比,NAND闪存可以在读取/写入操作中提供更高的可靠性和性能,因此在本公开中将NAND闪存描述为示例性非易失性存储器。但是,在一些实施例中,可以使用任何类型的存储器,包括但不限于硬盘驱动器、相变存储器和其他非易失性存储器。

将文件到物理块地址的示例性映射:示例文件格式

在分布式存储系统的常规文件系统中,通常在逻辑块地址(LBA)和物理块地址(PBA)之间维护映射。在这样的常规系统中,LBA用于执行随机写入或更新。相反,在本文描述的实施例中,在由前端头(例如,图2的前端头A 222)协调的文件系统中,前端头接收以文件粒度读取数据的请求,而不是以块或页面粒度,因此无需维护更精细的LBA到PBA映射。在本文描述的实施例中,尽管可能没有传入的写入要求,但是可能需要定期刷新或移动一些数据。但是因为数据是基于文件的更粗粒度的,所以系统可以将文件名映射到PBA,并且还可以通过在块的末尾附加新数据来在单个块中使用日志结构。

图5示出了根据本申请的实施例的文件到物理块地址的示例性映射。被映射的文件510可以对应于逻辑块地址520和物理块地址540。逻辑大小可以与物理块大小相同。在本文所述的实施例中,系统可以将传统的FTL功能(将LBA映射到PBA)从存储设备控制器(例如SSD控制器)内部的处理器卸载到与该存储设备关联的计算设备(例如前端头计算设备)。前端头计算设备(或除存储设备控制器之外的其他计算设备或实体)可以存储文件名560到PBA 540的映射。

例如,数据文件A 512可以对应于多个LBA,每个LBA对应于一个PBA。前端头计算设备可以存储数据文件A 512的文件名(例如,“A”)到与对应于数据文件A 512的LBA关联的一个或多个PBA的映射。例如,数据文件A 512(文件名“A”)可以与分别对应于PBA k 542、PBAh 544和PBA i546的LBA 1 522、LBA 2 524和LBA 3 526相关联。前端头(或与存储设备控制器分离的其他计算设备)可以存储文件名“A”562到PBA k 542、PBA h 544和PBA i 546的映射。应当注意,文件名可以映射到多个PBA,正如可以将单个PBA映射到多个文件名一样(例如,将文件名“A”562和文件名“B”564都映射到PBA i 546)。该系统可以确定某个PBA内的确切位置,从该位置可以读取请求的文件,如下面图6所述。

图6示出了根据本申请的实施例一致的文件格式和NAND块布局的示例图600。图600可以包括与写入例如NAND的非易失性存储器的文件相对应的文件格式。该文件格式可以包括:前同步码612,其表示给定文件的开始;以及唯一文件标识符614,其标识给定文件并且不与任何其他文件标识符冲突;与给定文件相对应的文件内容616;后同步码618,表示给定文件的结尾;以及循环冗余校验(CRC)签名620,其提供给定文件内容一致性的验证。块630描述了如何将格式化的文件存储在块630中。

在操作期间,当文件名到PBA的映射表明所请求的文件存储在某个PBA时,系统可以读出在某PBA处的页面以确定所请求文件的起点(例如,由前同步码612指示)。一旦确定了起点,系统就可以检查唯一文件标识符614是否对应于所请求的文件。如果是这样,系统可以一次读取一个物理块,直到系统确定所请求文件的终点(例如,后同步码618)。在块630中,示例性请求文件包括仅存储在块630中的文件内容616。所请求文件的文件内容也可以跨多个块存储。在确定所请求文件的终点时,系统可以基于检查CRC签名620来验证数据的一致性。

便于数据访问的示例性方法

图7A提供了示出根据本申请的实施例的用于便于存储设备中的数据访问的方法的流程图700。在操作期间,系统通过存储设备从与存储设备分离的原始物理介质中获取文件,其中该文件包括压缩的无错误数据,该数据先前已基于纠错码(ECC)(操作702)进行了编码。系统将所获得的文件作为只读副本存储在存储设备的物理介质上(操作704)。系统接收读取文件的请求(操作706)。响应于接收到读取文件的请求,系统由存储设备基于ECC对所述副本进行解码以获得ECC解码的数据,其中,随后由与存储相关联的计算设备对ECC解码的数据进行解压缩,作为请求的文件返回(操作708),并且该操作返回。

图7B示出了与本申请的实施例一致的便于在存储设备中数据访问的方法的流程图720,在操作期间,系统通过与存储设备相关联的计算设备接收读取文件的请求,其中该文件包括压缩的无错误数据,该数据先前已基于纠错码(ECC)进行了编码(操作722)。先前的ECC编码可以由诸如上面图3的ECC编码器314所述的单独的存储设备来执行。系统通过计算设备经由至少包括如下之一的系统将请求发送到存储设备:第一和第二以太网交换机;第一和第二智能网络接口卡(NIC);多个外围高速互连(PCIe)交换机(操作724)。该系统通过计算设备存储文件名到与存储设备相关联的当前物理块地址(PBA)的映射(操作726)。如果系统检测到将文件从当前PBA移到新PBA的条件(决策728),则系统更新文件名到新物理块地址的映射(操作730)。如果系统未检测到将文件从当前PBA移至新PBA的条件(决策728),则操作返回。

示例性计算机系统和设备

图8示出了根据本申请的实施例的示例性计算机系统800和便于存储设备中的数据访问的存储系统820。计算机系统800包括处理器802、易失性存储器804和存储设备806。计算机系统800可以对应于图2的前端头222。处理器802可以包括并行解压缩引擎(例如,在ASIC中)。易失性存储器806可以包括例如随机存取存储器(RAM),其用作管理存储器,并且可以用于存储一个或多个存储器池。存储设备806可以包括持久性存储。此外,计算机系统800可以连接到外围输入/输出(I/O)用户设备850,例如显示设备852、键盘854和指点设备856。存储设备806可以存储操作系统810、内容处理系统812和数据(未示出)。

内容处理系统812可以包括指令,该指令在由计算机系统800执行时可以使计算机系统800执行本公开中描述的方法和/或过程。具体地,内容处理系统812可以包括用于接收和发送数据包的指令,该数据包包括要读取或写入的数据、输入/输出(I/O)请求(例如,读取请求或写入请求)以及与读取请求、写入请求或I/O请求(通信模块814)相关联的数据。内容处理系统812还可以包括用于将文件名和/或LBA映射、维护和管理到PBA的指令(FTL管理模块816),诸如存储文件名到与储存设备相关联的当前PBA的映射。

计算机系统800可以经由分布式存储系统与存储系统820通信,该存储系统820可以包括:处理器/控制器822、易失性存储器824、和存储设备826。存储系统820可以对应于存储服务器,并且存储设备826可以对应于图2的NAND卡261。处理器/控制器822或存储设备826可以包括用于从与存储系统820分离的原始物理介质中获取文件的指令(通信模块830)。处理器/控制器822或存储设备826可以包括用于将所获得的文件作为只读副本存储在存储设备的物理介质上的指令(数据写入模块832)。处理器/控制器822或存储设备826可以包括用于由存储设备基于ECC对副本进行解码以获得ECC解码数据的指令(ECC解码模块838)。处理器/控制器822或存储设备826可以包括指令,用于响应于检测到移动文件的条件(数据刷新模块836),以及更新文件名到新的物理块地址的映射(数据刷新模块836)。

数据840可以包括由本公开中描述的方法和/或过程中作为输入所需或作为输出生成的任何数据。具体地,数据840可以至少存储:请求;读取请求;写入请求;输入/输出(I/O)请求;与读取请求、写入请求或I/O请求关联的数据;纠错码(ECC);码字;奇偶校验位;ECC奇偶校验位;编码数据;ECC编码/解码数据;压缩数据;解压缩的数据;无错误数据;只读数据;副本;文件;文件格式;以太网交换机、NIC、PCIe交换机或通道、上行链路或下行链路的指示符;文件名;前同步码;文件标识符;文件内容;后同步码;CRC签名;验证信息;LBA;PBA;原始数据源的指示符;以及移动或刷新数据条件的指示符。

图9示出了根据本申请的实施例的便于存储设备中的数据访问的示例性装置900。装置900可以包括可以经由有线、无线、量子光或电通信信道彼此通信的多个单元或设备。装置900可以使用一个或多个集成电路来实现,并且可以包括比图9中示出的装置更少或更多的单元或装置。此外,装置900可以被集成在计算机系统中,或者被实现为能够与其他计算机系统和/或设备通信的单独的设备。具体地,设备900可以包括单元902-912,其执行类似于图8的存储系统800的模块830-836的功能或操作,包括:通信单元902;数据写入单元904;数据读取单元906;数据刷新单元908;ECC解码单元910;存储管理单元912(可以处理检测条件以刷新数据并将文件从当前PBA移动到新的PBA)。

在该详细描述中描述的数据结构和代码通常存储在计算机可读存储介质上,该计算机可读存储介质可以是可以存储代码和/或数据以供计算机系统使用的任何设备或介质。所述计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储设备(例如磁盘驱动器,磁带,CD(压缩光盘),DVD(数字多功能光盘或数字视频光盘)或其他现在已知的或以后发展的能够存储计算机可读介质的介质)。

在详细描述部分中描述的方法和过程可以被体现为代码和/或数据,其可以被存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行体现为数据结构和代码并存储在计算机可读存储介质内的方法和过程。

此外,上述方法和过程可以包括在硬件模块中。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片,现场可编程门阵列(FPGA)以及现在已知或以后开发的其他可编程逻辑设备。激活硬件模块后,硬件模块将执行硬件中包含在硬件模块中的方法和过程。

仅出于说明和描述的目的给出了本文描述的前述实施例。它们并不旨在穷举或将本文描述的实施例限制为所公开的形式。因此,许多修改和变化对于本领域技术人员将是显而易见的。另外,以上公开内容并非旨在限制本文描述的实施例。本文描述的实施例的范围由所附权利要求书限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号