Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

跨多个NVMe over Fabric存储设备的擦除代码数据保护 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:三星电子株式会社

摘要:一种用于为固态驱动器阵列提供擦除代码数据保护的系统和方法。固态驱动器连接到以太网交换机以处理可以从远程主机接收的读取或写入命令,该以太网交换机包括RAID控制电路或状态机。如果存在RAID控制电路,则该RAID控制电路使用低延时高速缓存来执行写入命令,如果存在状态机,则该状态机使用又使用存储器作为低延时高速缓存的本地中央处理单元以达到类似的效果。

主权项:1.一种用于提供受保护数据存储的系统,所述系统包括:以太网交换机;多个以太网存储设备,所述以太网存储设备中的一个或多个连接到所述以太网交换机;和本地中央处理单元,连接到所述以太网交换机,其中所述以太网交换机包括:介质访问控制电路;虚拟局域网电路;层2处理电路;层3处理电路;和RAID控制电路,所述RAID控制电路被配置为控制所述以太网存储设备作为独立磁盘冗余阵列,其中所述RAID控制电路连接到:所述介质访问控制电路;所述虚拟局域网电路;所述层2处理电路;和所述层3处理电路,所述系统还包括连接到所述RAID控制电路的高速缓存设备。

全文数据:跨多个NVMeoverFabric存储设备的擦除代码数据保护相关应用的交叉引用本申请要求2018年1月24日提交的美国临时申请第62621,435号的优先权和权益,该临时申请题为“DISTRIBUTEDDATAPLANEMETHODANDAPPARATUSFORPROVIDINGERASURECODEDATAPROTECTIONACROSSMULTIPLENVMEOVERFABRICSSTORAGEDEVICESESSDS”,其全部内容通过引用并入本文。技术领域根据本发明的实施例的一个或多个方面涉及数据存储,以及更具体地,涉及用于为固态驱动器阵列提供擦除代码数据保护的系统和方法。背景技术附接以太网的非易失性存储器快速nonvolatilememoryexpress,NVMe固态驱动器solidstatedrive,SSD例如,NVMeoverFabricNVMeoF存储设备可以用于各种应用中以存储数据。使用NVMeoverFabric配置,优化以太网和SSD的成本效益可能很有挑战性。例如,随着50G100G技术的出现,以太网速度显著提高,而SSD性能可能取决于外围组件互连快速peripheralcomponentinterconnectexpress,PCIe接口和NAND闪存技术。附接Fabric的SSD为支持擦除代码数据保护带来了额外的独特设计挑战,因为每个设备都可以提供点对点连接性。存储设备外部具有专用集成电路applicationspecificintegratedcircuit,ASIC诸如用于独立磁盘冗余阵列redundantarrayofindependentdisks,RAID的控制器,例如,片上RAIDRAIDonchip,ROC可以增加延时lantency并降低性能。一些NVMeSSD和NVMeoverFabricSSD支持单路径IOInputOutput,输入输出。为了更高的系统可用性和改进的系统故障保护,一些SSD确实支持多个双路径IO。然而,这种SSD可能成本更高,且性能稍差。因此,需要一种改进的系统和方法以用于在诸如以太网的数据平面上为SSD阵列提供擦除代码数据保护。发明内容本公开的实施例的各方面针对一种用于为固态驱动器阵列提供擦除代码数据保护的系统和方法。固态驱动器连接到以太网交换机以处理可以从远程主机接收的读取或写入命令,该以太网交换机包括RAID控制器或片上RAIDROC、或者状态机。如果存在RAID控制器或“RAID控制电路”,则该RAID控制器或“RAID控制电路”使用低延时高速缓存来执行写入命令,而如果存在状态机,则该状态机使用又使用存储器作为低延时高速缓存的本地中央处理单元centralprocessingunit,CPU作为ROC以达到类似的效果。根据本发明的实施例,提供了一种用于提供受保护数据存储的系统,该系统包括:以太网交换机;多个以太网存储设备,以太网存储设备中的一个或多个连接到以太网交换机;本地中央处理单元,连接到以太网交换机,其中以太网交换机包括:介质访问控制电路;虚拟局域网电路;层2处理电路;层3处理电路;和RAID控制电路,该RAID控制电路被配置为控制以太网存储设备作为独立磁盘冗余阵列,其中该RAID控制电路连接到:介质访问控制电路;虚拟局域网电路;层2处理电路;和层3处理电路。在一个实施例中,该系统包括连接到RAID控制电路的高速缓存设备。在一个实施例中,RAID控制电路被配置为在接收到包括写入地址的写入命令时:确定与写入地址相对应的数据是否存储在高速缓存设备中;以及当与写入地址相对应的数据存储在高速缓存设备中时,根据写入命令修改存储在高速缓存设备中的数据,以及当与写入地址相对应的数据没有存储在高速缓存设备中时:分配高速缓存设备中的空间,将数据从多个以太网存储设备中的一个或多个以太网存储设备读取到该空间中,并且根据写入命令修改该空间中的数据。在一个实施例中,高速缓存设备的延时比多个以太网存储设备中的以太网存储设备的延时低至少5倍。在一个实施例中,以太网交换机包括高速缓存设备。在一个实施例中,高速缓存设备的延时比多个以太网存储设备中的以太网存储设备的延时低至少5倍。在一个实施例中,以太网交换机位于单个半导体裸芯上。在一个实施例中,本地中央处理单元在系统初始化时被配置为配置以太网交换机。在一个实施例中,以太网交换机被配置为将在系统的主机端口处接收的以太网分组转发到RAID控制电路,该系统的主机端口被寻址到该系统的存储以太网地址。在一个实施例中,以太网交换机被配置为忽略在系统的主机端口处接收的以太网分组,该系统的主机端口被寻址到多个以太网存储设备中的以太网存储设备的以太网地址。在一个实施例中,该系统包括外围组件互连快速PCIe交换机,其连接到多个以太网存储设备中的一个或多个以及连接到中央处理单元。在一个实施例中,该系统包括连接到PCIe交换机的基板管理控制器。根据本发明的实施例,提供了一种用于提供受保护数据存储的系统,该系统包括:以太网交换机;多个以太网存储设备,该以太网存储设备中的一个或多个连接到以太网交换机;本地中央处理单元,连接到以太网交换机,其中以太网交换机包括:介质访问控制电路;虚拟局域网电路;层2处理电路;层3处理电路;和状态机,其中状态机连接到:介质访问控制电路;虚拟局域网电路;层2处理电路;和层3处理电路,其中状态机和本地中央处理单元被配置为控制以太网存储设备控制作为独立磁盘冗余阵列。在一个实施例中,该系统包括连接到本地中央处理单元的存储器。在一个实施例中,状态机和本地中央处理单元被配置为在接收到包括写入地址的写入命令时:确定与写入地址相对应的数据是否存储在存储器中;以及当与写入地址相对应的数据存储在存储器中时,根据写入命令修改存储在存储器中的数据,以及当与写入地址相对应的数据没有存储在存储器中时:在存储器中分配空间,将数据从多个以太网存储设备中的一个或多个以太网存储设备读取到该空间中,并且根据写入命令修改该空间中的数据。在一个实施例中,存储器的延时比多个以太网存储设备中的以太网存储设备的延时低至少5倍。在一个实施例中,以太网交换机位于单个半导体裸芯上。在一个实施例中,该系统包括外围组件互连快速PCIe交换机,其连接到多个以太网存储设备中的一个或多个以及连接到本地中央处理单元。在一个实施例中,该系统包括连接到PCIe交换机的基板管理控制器。在一个实施例中,状态机包括少于200000个门gate。根据本发明的实施例,提供了一种用于操作存储系统的方法,该存储系统包括:以太网交换机;多个以太网存储设备,以太网存储设备中的一个或多个连接到以太网交换机;本地中央处理单元,连接到以太网交换机,其中以太网交换机包括:介质访问控制电路;虚拟局域网电路;层2处理电路;层3处理电路;和RAID控制电路,RAID控制电路被配置为控制以太网存储设备作为独立磁盘冗余阵列,其中RAID控制电路连接到:介质访问控制电路;虚拟局域网电路;层2处理电路;和层3处理电路,存储系统还包括连接到RAID控制电路的高速缓存设备,该方法包括:在接收到包括写入地址的写入命令时,确定与写入地址相对应的数据是否存储在高速缓存设备中;以及当与写入地址相对应的数据存储在高速缓存设备中时,根据写入命令修改存储在高速缓存设备中的数据,并且当与写入地址相对应的数据没有存储在高速缓存设备中时:在高速缓存设备中分配空间,将数据从多个以太网存储设备中的一个或多个以太网存储设备读取到该空间中,并且根据写入命令修改该空间中的数据。附图说明参考说明书、权利要求书和附图,将领会和理解本发明的这些和其他特征以及优点,其中:图1A是根据本发明的实施例的存储系统的框图;图1B是根据本发明的实施例的存储系统的框图;图2是根据本发明的实施例的以太网交换机的框图;图3是根据本发明的实施例的存储系统的框图;图4是根据本发明的实施例的用于配置存储系统的方法的流程图;图5是根据本发明的实施例的用于生成奇偶校验数据的方法的流程图;图6是根据本发明的实施例的用于响应命令的方法的流程图;图7是根据本发明的实施例的用于延迟回写delayedwriteback的方法的流程图;以及图8是根据本发明的实施例的存储系统的一部分的框图。具体实施方式下面结合附图阐述的详细描述意图描述一种用于为根据本发明提供的固态驱动器阵列提供擦除代码数据保护的系统和方法的示例性实施例,并不意图表示可以构建或利用本发明的唯一形式。该描述结合所示实施例阐述了本发明的特征。然而,应当理解,相同或等效的功能和结构可以通过不同的实施例来实现,这些实施例也意图被包括在本发明的范围内。如本文别处所述,相同的元素编号意图指示相同的元素或特征。参考图1A,在一个实施例中,用于提供受保护数据存储的存储系统包括以太网交换机105,其连接到诸如以太网固态驱动器Ethernetsolidstatedrive,eSSD110的多个以太网存储设备或者具有以太网接口的其他永久存储设备。当该系统被配置为作为独立磁盘冗余阵列RAID操作时,由于以太网交换机包含嵌入式RAID控制电路例如,片上RAID控制器或片上RAIDROC如下面进一步详细讨论的,该RAID控制器被配置为控制独立磁盘冗余阵列。RAID控制器可以是与以太网交换机105的其他电路相同的半导体裸芯的一部分例如,相同的硅互补金属氧化物半导体complementarymetaloxidesemiconductor,CMOS裸芯的一部分,或者它可以是在与以太网交换机105的其他电路相同的集成电路封装中包括的单独的裸芯的一部分。存储系统还包括连接到多个以太网固态驱动器110的PCIe交换机115、连接到以太网交换机105和PCIe交换机115的本地中央处理单元CPU120、连接到PCIe交换机115的基板管理控制器baseboardmanagementcontroller,BMC125以及连接到以太网交换机105的高速缓存设备130。除了以太网固态驱动器110之外的元件可以安装在交换机主板135上,该交换机主板135可以通过中间平面140连接到以太网固态驱动器110。如图1B所示,在一些实施例中,两个或更多个交换机主板135可以共享中间平面140和多个以太网固态驱动器110。高速缓存设备130例如,eZSSD可以是采用诸如Z-NANDTM闪存的低延时闪存的闪存存储单元,其具有比以太网固态驱动器110中的闪存低至少5倍例如,低10倍的延时。这种高速缓存设备130可以被称为eZSSD。如2017年3月27日提交的、其全部内容通过引用并入本文的、序列号为15470,774的美国专利申请所述,在以太网固态驱动器110中的一个出现故障或移除的情况中,擦除代码可以用于存储系统以保护所存储的数据。对于数据块的擦除代码可以包括冗余附加信息例如,由冗余附加信息组成,如果数据的一部分丢失,则该冗余附加信息可以用于重建数据块中的数据。擦除代码通常可以存储在与它们所保护的数据分离的以太网固态驱动器110上,使得任何一个以太网固态驱动器110的故障或移除不会导致数据的丢失;如果存储擦除代码的磁盘出现故障或被移除,则数据不受影响,并且如果存储数据的磁盘出现故障或被移除,可以根据擦除代码恢复数据。图2示出了根据一些实施例的以太网交换机105例如,修改的以太网交换机,具有与本发明的实施例相关的特殊能力的内部框图。如上所述,以太网交换机105包括连接到一个或多个介质访问控制mediaaccesscontrol,MAC电路410的多个以太网端口405,以及RAID控制器415例如,片上RAID电路。在一些实施例中,也存在于以太网交换机105中并连接到RAID控制器415的是:缓冲和通信量管理电路420、多级内容感知引擎422、分组缓冲器425、虚拟机430、高速缓存设备130例如,作为嵌入式eZSSD、PCIe接口电路432、虚拟局域网virtuallocalareanetwork,VLAN电路435、层2处理电路440、层3处理电路445和虚拟机交换电路450。在一些实施例中,高速缓存设备130可以是外部的而不是内部的例如,可以存在外部eZSSD而不是嵌入式eZSSD。参考图3,在操作中,命令例如,读取或写入命令可以由以太网交换机105接收,并由以太网交换机105中继到本地中央处理单元120。本地中央处理单元120然后可以使用对高速缓存设备130的适当操作来执行命令,并且随后,以太网固态驱动器110可以根据高速缓存设备130的内容来进行更新。这一系列操作由图3中包含数字1到5的方形指示,下面将进一步详细讨论。在存在RAID控制器415的实施例中,不需要本地中央处理单元120,并且可以缺少本地中央处理单元120。例如,在操作中,在由图3中包含数字1的方形标识的步骤中,远程主机通过以太网交换机105向以太网SSD发送命令例如,读取命令或写入命令。如果RAID控制器415和高速缓存设备130作为以太网交换机105的一部分存在,则不要求步骤3。读取命令将确定由读取命令请求的数据是否存在于高速缓存设备130中。如果发生高速缓存命中cachehit,则高速缓存设备130将所请求的数据直接返回给请求主机。如果发生高速缓存未命中cachemiss,则读取命令将被转发到存储所请求的数据的以太网固态驱动器110中的一个。在这种情况下,RAID控制器415确切地知道哪个以太网固态驱动器110具有数据。如果不存在RAID控制器415或高速缓存设备130,则使用步骤3来确定所请求的数据位于何处。在这种情况下,运行在本地中央处理单元120上的条带管理器stripemanager将确定哪个以太网固态驱动器110具有所请求的数据。在这种情况下,本地中央处理单元120将生成针对适当的以太网固态驱动器110的读取写入命令。在没有高速缓存的情况下,由于附加的RAID相关处理,来自主机的任何请求的延时都会被延长。在一些实施例中,RAID控制器415和高速缓存设备130都是以太网交换机105的一部分以最小化总延时。如果命令是写入命令,以太网交换机105将分组在图3中由包含数字3的方形标识的步骤中转发到本地中央处理单元120,以及在图3中由包含数字4的方形标识的步骤中转发到高速缓存设备130以检查高速缓存命中。如果没有高速缓存命中,则本地中央处理单元120和RAID控制器415从所有相关条带在图3中由包含数字5的方形标识的步骤中执行读取-修改-写入。传入的写入被发发布在本地中央处理单元120的写入缓冲器内。写入确认被发送回主机。下面在图6和图7的上下文中进一步详细讨论读取和写入命令的执行。基板管理控制器125具有到所有以太网固态驱动器110的通信链路,其可用于检测任何以太网固态驱动器110的移除或安装。该链路可以是例如通过PCIe交换机的PCIe链路并且可以使用PCIe边带,例如,PRNST#和If_Det#引脚pin。另一种方法是通过复杂的可编程逻辑器件complexprogrammablelogicdevice,CPLD,其中CPLD正在从所有插槽slot收集所有状态引脚,并且每当驱动器被热添加或热移除时生成中断通知。在这种情况下,本地中央处理单元120和基板管理控制器125被通知并适当地做出反应。基板管理控制器125可以从所有连接的以太网固态驱动器110感测存在引脚信号。因此,基板管理控制器125知道哪些以太网固态驱动器110存在或被移除,并且它使用NVMe管理接口NVMemanagementinterface,NVMe-MI协议知道每个以太网固态驱动器110的状态。基板管理控制器125通过提供被添加或移除的设备的设备ID和存储容量,来向本地中央处理单元120和RAID控制器415通知任何最近添加或移除的以太网固态驱动器110。当通过基板管理控制器125向本地中央处理单元120和RAID控制器415通知已经添加了以太网固态驱动器110时,本地中央处理单元120和RAID控制器415取决于当前的RAID等级是什么以及支持当前RAID等级所需的以太网固态驱动器110的最小数量和各个驱动器容量来确定什么动作是适当的。当以太网固态驱动器110中的一个被移除时,基板管理控制器125向本地中央处理单元120和RAID控制器415通知缺失的驱动器。然后,由本地中央处理单元120和RAID控制器415处理任何后续的主机写入命令,然后执行从存储条带的部分的所有以太网固态驱动器110的读取。本地中央处理单元120然后执行RAID条带的读取-修改-写入,并生成新的奇偶校验码。当以太网固态驱动器110中的一个故障时,通知本地中央处理单元120,并依次通知RAID控制器415和基板管理控制器125。在正常操作中,本地中央处理单元120和RAID控制器415后面的所有以太网固态驱动器110从主机设备数据路径隐藏。本地中央处理单元120可以在系统初始化时配置以太网交换机105,以从远程主机隐藏以太网固态驱动器110。例如,本地中央处理单元120可以配置以太网交换机105,使得在寻址到以太网固态驱动器110中的一个的以太网地址的远程主机连接到的“主机端口”或“上行链路以太网端口”处接收的以太网分组被忽略,并且使得在寻址到被定义为存储系统的存储地址的以太网地址的主机端口处接收的以太网分组被转发到RAID控制器415或状态机805,在图8的实施例中,将在下面进一步详细讨论。以这种方式,存储系统将对于本地主机显示为位于该存储地址处的一个或多个以太网存储设备,并且以太网固态驱动器110对于本地主机是不可见的即,不可由远程主机直接访问。在一些实施例中,存储系统还可以支持其他以太网地址,例如,配置地址,使得在寻址到这些其他以太网地址中的一个的主机端口处接收的以太网分组将由存储系统处理例如,如果支持配置地址,则该配置地址可以使得远程主机能够查询或设置配置系数,或者将软件或固件上载到存储系统。图4示出了初始化过程的流程图。在411处,本地中央处理单元120根据要使用的RAID配置初始化自身并预先调节所有数据以太网固态驱动器110。在412处,本地中央处理单元120指定数据和奇偶校验驱动器以满足RAID要求。在413处,如果所有数据磁盘和奇偶校验磁盘具有不同的容量,则本地中央处理单元120将该所有数据磁盘和奇偶校验磁盘标准化normalize。在414处,在选择奇偶校验磁盘之后,本地中央处理单元120将数据磁盘和奇偶校验磁盘标记为对任何主机都不可见。当RAID控制器415存在时,图4中由CPU执行的操作中的一些或全部可以替代地由RAID控制器415执行。图5是示出根据一个实施例的奇偶校验生成的方法的流程图。在505处,每个以太网固态驱动器110具有唯一的阵列成员识别装置,诸如来自基板管理控制器125的插槽号或分配号。在515处,如果被指定为数据磁盘,则以太网固态驱动器110继续与主机启动器进行正常的NVMeoF事务transaction。在520处,执行正常的发现服务,并且事务开始。在525处,主机将数据写入数据存储磁盘,并且不生成奇偶校验值。在530处,以太网固态驱动器110接收数据,并具有识别用于生成奇偶校验的系数的装置。在535处,以太网固态驱动器110执行目标逻辑块地址logicalblockaddress,LBA的读取,将读取的数据和新数据进行XOR,乘以相应的系数或多个系数,将新数据写入LBA,以及将增量乘积与LBA信息一起传送到奇偶校验磁盘。如本文所使用的,增量乘积是在与写入数据合并组合之前部分乘积的XOR运算的结果。例如,对于写入命令,如果总共有4个数据驱动器和一个奇偶校验驱动器,则RAID控制器415可以具有从每个驱动器独立返回的数据。在这种情况下,RAID控制器415可以从1个但少于4个的数据驱动器执行部分XOR。只有当来自所有数据驱动器的所有数据与传入的写入数据进行XOR,并且已经生成和更新了新的奇偶校验乘积时,写入才会完成。在540处,奇偶校验磁盘接收增量乘积信息,读取LBA数据,将增量与读取信息进行XOR,写入更新的信息,并将提交commit发送到相对应的数据磁盘。在545处,如果奇偶校验数据的计算没有完成,则该过程循环返回,直到它完成即,该过程等待,直到在540处的并行过程完成。在一些实施例中,软件可以如下操作。如本文所使用的,“擦除编码集”是在其上执行擦除编码的磁盘的集合,以便提供对磁盘故障的容错擦除。擦除编码集中的磁盘总数为N=K+M,其中K是保持用户数据的磁盘数,M是编码磁盘数。如本文所使用的,“预先写入日志设备”或“WALwrite-aheadlogging,预先写入日志设备”是由系统管理以及用于在条带被与系统交互的主机修改和读取时控制条带的状态的设备。如本文所使用的,“条带”是用于输入和输出IO的主机可用的可寻址空间的定义范围的数据和擦除编码块的布局。条带可以包含K个数据段和M个编码段,其中该段是与擦除编码集中磁盘上的固定区域相对应的条带内的固定大小边界。如本文所使用的,“条带状态报头”是存在于WAL设备上的相对较小的数据结构,并且指示条带在被修改或访问时的该条带的状态。它可以具有位图,该位图具有对于当前擦除编码集中的每个磁盘的比特,上至定义的最大磁盘数。此外,它可以有对于条带内的每个编码段的比特,其中0指示该段不包含有效编码字节,1指示该段具有有效编码字节。如本文所使用的,“条带管理器”是执行这里描述的操作或方法的集合的模块;它可以在FPGA、ASIC或软件系统内核模式或应用用户模式或替代物理实施例中实施。表1示出示例性条带布局。它示出有总共6个磁盘的擦除编码集的布局,其中4个磁盘用于数据,2个用于编码。编码段的位置被分布成如在RAID-5中避免数据磁盘和编码磁盘之间的磨损均衡差异。表1条带0代码段0代码段1数据段0数据段1数据段2数据段3条带1数据段0代码段0代码段1数据段1数据段2数据段3条带2数据段0数据段1代码段0代码段1数据段2数据段3条带3数据段0数据段1数据段2代码段0代码段1数据段3如下所示,可以由条带管理器执行使用编码数据的延迟计算的写入方法。当从主机或启动器接收到写入命令时,根据写入命令中指定的偏移量字节或LBA计算条带号。受影响的数据段号和编码段号是根据擦除编码集中的条带号和磁盘数计算的。从配置设置中读取作为用户可配置数字的初始写入冗余等级writeredundancylevel,WRL,以获得在向启动器确认写入之前必须写入的编码段数。这表示在确认任何写入之前必须建立的最小容错等级。对于最快设置,该数字设置为0。该数字的最高可能值是M,其中M是编码磁盘的数量——最高设置要求在给定的当前擦除编码配置的情况下尽可能实施最大容错,即,在确认写入之前,必须在编码磁盘上更新与给定写入相对应的所有编码块。接下来,从自由条带的列表中获得自由条带,并获得相对应的条带状态报头。然后RAID控制器415准备发出例如,其生成在作为当前条带的一部分的多个磁盘上的IO,其中该磁盘的数量等于K+WRL。如果WRL设置为0,则仅需要更新数据磁盘即编码数据将在稍后阶段写入。接下来,条带状态报头中的字段被设置为指示条带正在被修改以及没有编码段被更新。接下来,发出上述输入和输出命令,并且系统等待它们完成。当上述集合中的最后的输入或输出命令已经完成时,条带状态报头被更新以显示条带是脏的dirty,而条带中的一些编码段没有被更新:这种段的数量等于M-WRL。条带报头可以被更新以显示哪些段包含有效数据。当对那些以太网固态驱动器110执行延迟更新时使用该信息。接下来,向写入更新器updater过程通知新的脏条带条目是可用的。该过程从这种报头的队列中获得条带状态报头,获得需要更新的编码段的列表;执行擦除编码计算以获得针对这些编码段的数据块;将这些块写入与编码段相对应的磁盘;等待这些写入完成;以及根据条带状态报头来清洁脏比特。如下,当系统试图修复由于可能在系统中断之前部分更新条带时发生的条带中的内部不一致导致的错误时,条带一致性检查过程或“写入更新过程”可以在启动或初始化时执行。在此方法中执行以下步骤。获取脏条带状态报头的列表。对于列表中的每个条目,执行若干步骤以确保条带内的数据段和编码段一致。读取数据段以获得条带的用户数据。如果在对使用编码数据的延迟计算的写入方法的描述中在从包括设置条带状态报头中的字段到更新条带状态报头的步骤中存在如上所述的延迟的或正在处理的编码段,则计算这些段的编码数据并更新这些段。当条带报头中的所有编码段被更新时,条带报头被标记为干净即,脏比特被清洁。在一些实施例中,分布式冗余预先写入日志WAL与以太网固态驱动器110一起使用。这种方式可以利用以太网固态驱动器110内的一些低延时非易失性存储器NVM作为低延时、分布式、镜像、预先写入日志WAL。这具有优化写入延时的好处,因为只要写入数据存储在镜像WAL中,就可以向客户端确认NVMeoF写入请求,并且不需要等待以太网交换机105从以太网固态驱动器110读取数据以用于擦除编码计算。跨所有以太网固态驱动器110分布的这种WAL的可伸缩性质在写入吞吐量方面也有好处,因为它减轻了以太网交换机105内局部WAL的写入瓶颈。在一些实施例中,对于每个用户写入请求,以太网交换机105为传入的写入请求执行LBA和NVMe名称空间的查找或散列,以得到提供镜像WAL的一对以太网固态驱动器110的ID或地址。对于大块写入,查找或散列可以为擦除编码条带中的每个段返回一对不同的以太网固态驱动器110。WAL功能可以根据跨所有LBA和NVMe名称空间的某公平映射或散列算法,跨所有以太网固态驱动器110进行负载平衡。以太网交换机105然后将写入请求复制到一对特定的以太网固态驱动器110对于大块写入的每个段的潜在的一对不同的以太网固态驱动器110上的低延时非易失性存储器。对以太网固态驱动器110的低延时非易失性存储器的这种写入可以经由多种协议中的任何一种诸如NVMeoF或TCPIP来完成,其中目标地址是以太网固态驱动器110上的低延时非易失性存储器,而不是闪存。一旦两个以太网固态驱动器110确认对低延时非易失性存储器的写入,那么以太网交换机就可以确认对客户端的NVMeoF写入。以太网交换机105然后继续执行擦除编码算法,以对存储在闪存上的数据提供数据保护。对于全条带写入,这需要跨数据的全条带执行擦除编码计算,然后使用NVMeoF写入命令将每个数据和代码段写入到相对应的以太网固态驱动器110。一旦每个以太网固态驱动器110已经确认写入,然后以太网交换机请求用于WAL镜像每段的一对以太网固态驱动器110,以从WAL刷新相对应的数据。对于部分条带写入,这需要在跨数据的全条带执行擦除编码计算之前,首先从相应的以太网固态驱动器110读取条带的旧数据段,其中该数据的全条带由新写入的段和旧段的混合组成,即整个条带的读取-修改-写入。以太网交换机105然后继续写入数据和代码段,如在全条带写入情况下一样,然后一旦所有以太网固态驱动器110已经将它们的数据写入闪存,就刷新WAL镜像。只有条带中已改变的数据段需要写入闪存。在分布式镜像WAL中存储新的传入的写入时和将写入存储到闪存时之间的时间段期间,对同一地址的任何传入的NVMeoF读取请求都需要被引导到WAL中存储的新数据,而不是闪存中的陈旧数据。这可以以多种方式实现,该多种方式包括以下两种方式。在第一种方式中,以太网交换机105维持已知在WAL中存储有新数据的LBA表或内容可寻址存储器content-addressablememory,CAM。对于每个传入的NVMeoF读取请求,以太网交换机首先在表CAM中查找LBA。如果存在匹配,则读取请求被改变为从具有新数据的两个以太网固态驱动器110中的一个上的WAL读取。这种查找是针对读取请求的每个段的LBA进行的,并且结果可以是一些段是从WAL读取的,而其他段是从闪存读取的。在第二种方式中,将LBA映射到WAL镜像的一对以太网固态驱动器110的查找散列函数以如下方式来设计:使得镜像中的两个以太网固态驱动器110中的一个是最终在闪存中存储相同LBA的数据的相同以太网固态驱动器110。传入的给定LBA的NVMeoF读取请求然后可以被直接转发到该LBA的以太网固态驱动器110,并且该以太网固态驱动器110有责任确定有效数据是在WAL中还是闪存中。这可以通过维持如针对第一种方式描述的以太网交换机105中的表CAM来实现。如果使用第二种方式,则可以进一步优化写入情况,因为刚刚存储在WAL中的数据的写入闪存可以通过将数据从WAL复制到以太网固态驱动器110上的闪存来实现,而不是将数据从以太网交换机重新传送到以太网固态驱动器110。因此,当以太网交换机向以太网固态驱动器110发送NVMeoF写入命令时,它可以指定数据的源地址作为该以太网固态驱动器110上的WAL。图6是在一些实施例中由图1A和图2的实施例执行读取和写入命令的流程图。使用以下假设和术语。如本文所使用的,“eZSSD”是低延时高速缓存存储器本文也称为高速缓存设备130的通用名称。它可以是非易失性存储器,或者诸如DDR4DRAM、SRAM等的易失性存储器。eZSSD可以用作IO高速缓存缓冲器,以最小化来自RAID或擦除代码操作的延时影响。eZSSD可以采用延迟回写或直写writethrough高速缓存策略。针对任何写入命令,由RAID控制器415检查通过上行链路100G端口连接到主机启动器的端口的所有传入以太网的通信量。图6示出了执行的步骤:i在读取命令的情况下,当命令导致高速缓存命中时步骤610,即前进到步骤630,和当命令导致高速缓存未命中时步骤620,以及ii在写入命令的情况下,当命令导致高速缓存命中时步骤630,和当命令导致高速缓存未命中时步骤640。图7是用于延迟回写的方法的流程图。当已经超过预设的时间限制时,在710处,立即将数据回写到相关联的以太网固态驱动器110,直到整个高速缓存线已经被写入。当还未超过预设时间限制时,在720处,在eZSSD不忙时,将数据回写到相关联的以太网固态驱动器110。参考图8,在一些实施例中,以太网交换机105包括状态机805而不是如图2中的RAID控制器415。PCIe交换机115中的NVMeoF桥状态机805在上行链路以太网端口上从远程启动器接收NVMeoF命令。这些命令使用远程直接存储器访问remotedirectmemoryaccess,RDMA协议来携载。RDMA传输的一些示例是聚合以太网上的RDMARDMAoverconvergedEthernet,RoCE基于IB、RoCEv2基于UDPIP和互联网广域RDMA协议internetwide-areaRDMAProtocol,iWARP基于TCPIP。由NVMeoF状态机解析接收到的命令,以识别接收到什么命令。对于诸如读取和写入的IO命令,状态机将它们转发到本地处理器。状态机可以相对较小例如,占据相对少量的芯片区域;在一些实施例中,状态机包括少于一百万个门例如,少于200000个门。由远程主机或启动器发送的读取或写入命令由状态机805解析。由状态机805将读取命令直接转发到目的地以太网固态驱动器110,以及由状态机805将写入命令转发到本地中央处理单元120,该本地中央处理单元120使用动态随机存取存储器dynamicrandomaccessmemory,DRAM作为高速缓存设备130,以及取决于写入命令是导致高速缓存命中还是高速缓存未命中来采取适当的动作。动态随机存取存储器可以像图1A和图2的实施例的高速缓存设备130一样,具有比以太网固态驱动器110中的闪速存储器低至少5倍例如,低10倍的延时,并且因此可以在缺少低延时高速缓存的其他类似系统上做出可能的性能改进。在本文描述的任何实施例中,当RAID控制器415存在时,另外可由本地中央处理单元120执行的一些或全部操作可由RAID控制器415代替执行,并且在这样的实施例中,可以缺少本地中央处理单元120。应当理解,尽管术语“第一”、“第二”、“第三”等可以在本文用于描述各种元素、组件、区域、层和或部分,但是这些元素、组件、区域、层和或部分不应该受到这些术语的限制。这些术语仅用于区分一个元素、组件、区域、层或部分与另一元素、组件、区域、层或部分。因此,在不脱离本发明构思的精神和范围的情况下,本文讨论的第一元素、部件、区域、层或部分可以被称为第二元素、部件、区域、层或部分。可以在本文使用空间上相对的术语,诸如“之下”、“下面”、“较低”、“下方”、“上方”、“较上”等,以便于描述如图所示的一个元素或特征与另一多个元素或多个特征的关系。应当理解,除了图中描绘的方位之外,这种空间相对的术语意图包括设备在使用或操作中的不同方位。例如,如果图中的设备被翻转,则被描述为“下面”或“之下”或“下方”的元素将被定向在其他元素或特征的“上方”。因此,示例性术语“下面”和“下方”可以都包括上方和下方的方位。设备可以以其他方式定向例如,旋转90度或以其他方位,并且本文使用的空间相对的描述符应当相应地解释。此外,还将理解,当一层被称为在两层“之间”时,它可以是两层之间的唯一层,或者也可以存在一个或多个插入其间的层。本文使用的术语仅仅是为了描述特定的实施例,而不意图限制本发明构思。如本文所使用的,术语“基本上”、“大约”和类似的术语被用作近似术语,而不是程度术语,并且意图解释本领域普通技术人员将会认识到的测量值或计算值中的固有偏差如本文所使用的,单数形式“一”和“一个”也包括复数形式,除非上下文另外清楚地指出。还应当理解,当在本说明书中使用时,术语“包括”和或“包含”指定了所述特征、整数、步骤、操作、元素和或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元素、组件和或其组合的存在或添加。如本文所使用的,术语“和或”包括相关联的列出项目中的一个或多个的任何和所有组合。诸如“……中的至少一个”的表达在元素的列表前面时,修饰整个元素列表,而不修饰列表中单独的元素。此外,“可”的使用在描述本发明构思的实施例时,指的是“本发明的一个或多个实施例”。此外,术语“示例性”意图指代示例或图示。如本文所使用的,术语“使用”、“用于”和“用来”可以被认为分别与术语“利用”、“利用于”和“利用来”同义。应当理解,当元素或层被称为“在另一元素或层上”、“连接到另一元素或层”、“耦合到另一元素或层”或“与另一元素或层相邻”时,它可以直接在另一元素或层上、直接连接到另一元素或层、直接耦合到另一元素或层或与另一元素或层直接相邻,或者可以存在一个或多个插入其间的元素或层。相反,当元素或层被称为“直接在另一元素或层上”、“直接连接到另一元素或层”、“直接耦合到另一元素或层”或“与另一元素或层直接相邻”时,不存在插入其间的元素或层。本文所述的任何数值范围意图包括包含在所述范围内的相同数值精度的所有子范围。例如,“1.0至10.0”的范围意图包括所述最小值1.0和所述最大值10.0之间包括这两个值的所有子范围,也就是说,具有等于或大于1.0的最小值和等于或小于10.0的最大值,例如2.4至7.6。本文所述的任何最大数值限制意图包括其中包含的所有较低数值限制,并且本说明书所述的任何最小数值限制意图包括其中包含的所有较高数值限制。尽管本文已经具体描述和示出了用于为固态驱动器阵列提供擦除代码数据保护的系统和方法的示例性实施例,但是对于本领域技术人员来说,许多修改和变化将是显而易见的。因此,将理解,根据本发明的原理构造的用于为固态驱动器阵列提供擦除代码数据保护的系统和方法可以体现得不同于本文具体描述的。本发明还在所附权利要求及其等同物中限定。

权利要求:1.一种用于提供受保护数据存储的系统,所述系统包括:以太网交换机;多个以太网存储设备,所述以太网存储设备中的一个或多个连接到所述以太网交换机;和本地中央处理单元,连接到所述以太网交换机,其中所述以太网交换机包括:介质访问控制电路;虚拟局域网电路;层2处理电路;层3处理电路;和RAID控制电路,所述RAID控制电路被配置为控制所述以太网存储设备作为独立磁盘冗余阵列,其中所述RAID控制电路连接到:所述介质访问控制电路;所述虚拟局域网电路;所述层2处理电路;和所述层3处理电路。2.根据权利要求1所述的系统,还包括连接到所述RAID控制电路的高速缓存设备。3.根据权利要求2所述的系统,其中,所述RAID控制电路被配置为在接收到包括写入地址的写入命令时:确定与所述写入地址相对应的数据是否存储在所述高速缓存设备中;当与所述写入地址相对应的数据存储在所述高速缓存设备中时,根据所述写入命令修改存储在所述高速缓存设备中的数据,以及当与所述写入地址相对应的数据没有存储在所述高速缓存设备中时:在所述高速缓存设备中分配空间,以及将数据从所述多个以太网存储设备中的一个或多个以太网存储设备读取到所述空间中,并根据所述写入命令修改所述空间中的数据。4.根据权利要求2所述的系统,其中,所述高速缓存设备的延时比所述多个以太网存储设备中的以太网存储设备的延时低至少5倍。5.根据权利要求2所述的系统,其中,所述以太网交换机包括所述高速缓存设备。6.根据权利要求1所述的系统,其中,所述本地中央处理单元在系统初始化时被配置为配置所述以太网交换机。7.根据权利要求1所述的系统,其中,所述以太网交换机被配置为将在所述系统的主机端口处接收的以太网分组转发到所述RAID控制电路,所述主机端口被寻址到所述系统的存储以太网地址。8.根据权利要求1所述的系统,其中,所述以太网交换机被配置为忽略在所述系统的主机端口处接收的以太网分组,所述主机端口被寻址到所述多个以太网存储设备中的以太网存储设备的以太网地址。9.一种用于提供受保护数据存储的系统,所述系统包括:以太网交换机;多个以太网存储设备,所述以太网存储设备中的一个或多个连接到所述以太网交换机;本地中央处理单元,连接到所述以太网交换机,其中所述以太网交换机包括:介质访问控制电路;虚拟局域网电路;层2处理电路;层3处理电路;和状态机,其中所述状态机连接到:所述介质访问控制电路;所述虚拟局域网电路;所述层2处理电路;和所述层3处理电路,以及其中,所述状态机和所述本地中央处理单元被配置为控制所述以太网存储设备作为独立磁盘冗余阵列。10.一种用于操作存储系统的方法,所述存储系统包括:以太网交换机;多个以太网存储设备,所述以太网存储设备中的一个或多个连接到所述以太网交换机;本地中央处理单元,连接到所述以太网交换机,其中所述以太网交换机包括:介质访问控制电路;虚拟局域网电路;层2处理电路;层3处理电路;和RAID控制电路,所述RAID控制电路被配置为控制所述以太网存储设备作为独立磁盘冗余阵列,其中所述RAID控制电路连接到:所述介质访问控制电路;所述虚拟局域网电路;所述层2处理电路;和所述层3处理电路,所述存储系统还包括连接到所述RAID控制电路的高速缓存设备,所述方法包括在接收到包括写入地址的写入命令时:确定与所述写入地址相对应的数据是否存储在所述高速缓存设备中;以及当与所述写入地址相对应的数据存储在所述高速缓存设备中时,根据所述写入命令修改存储在所述高速缓存设备中的数据,以及当与所述写入地址相对应的数据没有存储在所述高速缓存设备中时:在所述高速缓存设备中分配空间,将数据从所述多个以太网存储设备中的一个或多个以太网存储设备读取到所述空间中,并根据所述写入命令修改所述空间中的数据。

百度查询: 三星电子株式会社 跨多个NVMe over Fabric存储设备的擦除代码数据保护

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。