与存储相关数据的节点一致性的制作方法

文档序号:30418461发布日期:2022-06-15 12:17阅读:60来源:国知局
与存储相关数据的节点一致性的制作方法

1.本公开的实施例总体上涉及存储器子系统,且更具体地说,涉及与存储相关数据(storage related data)的节点一致性。


背景技术:

2.存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可例如为非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据以及从存储器装置检索数据。


技术实现要素:

3.本公开的一方面涉及一种系统,其包括:多个节点;第一存储器装置,其包括多个卷,每个卷在可见性配置内对所述多个节点中的至少一个节点可见,所述多个卷中的每个卷包括持久性存储器区(pmr)和名字空间;以及处理装置,其以操作方式与所述第一存储器装置耦合以执行包括以下各项的操作:标识影响所述第一存储器装置的所述多个卷中的至少一个卷对于所述多个节点中的至少一个节点的可见性的系统故障;以及修改所述可见性配置以解决所述系统故障。
4.本公开的另一方面涉及一种方法,其包括:由处理装置标识影响第一存储器装置的多个卷中的至少一个卷的可见性的系统故障,其中所述多个卷中的每个卷在可见性配置内对多个节点中的至少一个节点可见且包括持久性存储器区(pmr)和名字空间;以及修改所述可见性配置以解决所述系统故障。
5.本公开的又一方面涉及一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:初始化可见性配置以实现第一存储器装置的多个卷中的每个卷对于多个节点中的至少一个节点的可见性,其中所述多个卷包括各自包括持久性存储器区(pmr)和名字空间的第一卷和第二卷,且其中所述多个节点包括第一节点和第二节点;以及通过修改所述可见性配置以获得修改后的可见性配置来解决影响所述第一存储器装置的所述多个卷中的至少一个卷的所述可见性的系统故障。
附图说明
6.根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,各图不应视为将本公开限于特定实施例,而是仅用于解释和理解。
7.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
8.图2是根据本公开的一些实施例的实施与存储相关数据的节点一致性的实例方法的流程图。
9.图3是根据本公开的一些实施例的可实施与存储相关数据的节点一致性的实例系统的高层级概览的框图。
10.图4是根据本公开的一些实施例的可实施与存储相关数据的节点一致性的系统的实例可见性配置的框图。
11.图5是根据本公开的一些实施例的实施与存储相关数据的节点一致性的图4的系统的框图。
12.图6是根据本公开的一些实施例的实施与存储相关数据的节点一致性的图4的系统的框图。
13.图7是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
14.本公开的各方面涉及与存储相关数据的节点一致性。存储器子系统可以是存储装置、存储器模块,或存储装置与存储器模块的组合。下文结合图1描述存储装置和存储器模块的实例。通常,主机系统可利用存储器子系统,所述存储器子系统包含一或多个组件,例如,存储数据的存储器装置。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
15.存储器子系统可包含高密度非易失性存储器装置,其中期望数据在没有电力供应到存储器装置时得以保留。非易失性存储器装置的一个实例是与非(nand)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。每个裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,nand装置),每个平面由一组物理块组成。每个块由一组页组成。每个页由一组存储器单元(“单元”)组成。单元是存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,且具有与存储的位数目相关的各种逻辑状态。逻辑状态可表示为二进制值,例如“0”和“1”,或此类值的组合。
16.存储器子系统中的存储器装置(例如,固态驱动器(ssd))可通过经由通信总线附接的逻辑装置接口存取。用于存取存储器装置的此类逻辑装置接口的一个实例是非易失性存储器高速(nvme)。节点(例如,主机系统)可经由例如外围组件互连高速(pcie)总线存取存储器子系统,且对存储器子系统的存储器装置的存取在本文中可称为pcie nvme。存储器子系统(例如,ssd)可包含对应于可读持久性存储器的区域(称作持久性存储器区(pmr))的存储器资源。更具体地说,pmr可以是通过基址寄存器(bar)可存取的字节可寻址存储器区,且可实施为电源保护的易失性存储器装置(例如,动态随机存取存储器(dram))。举例来说,nvme连接的存储器装置可包含pmr,且此类装置被称作nvme pmr装置。
17.与存储相关数据,例如存储元数据、日志、检查数据等,可能具有较小大小(例如,几个字节),可能极频繁地(例如,每次数据写入或每几次数据写入)写入,且极为重要(即,支持其它数据所需)。此类与存储相关数据通常不存储在存储装置中,至少因为遍历整个存储栈需要很长的时间,且装入块中可能不实用(例如,在4kb块中装入几个字节是对空间和效率的浪费)。实际上,此类与存储相关数据通常存储在易失性存储器(例如,dram)中。因此,如果节点消亡,则与所述节点相关联的存储器子系统上的与存储相关数据可变得无法被任何其它节点存取,且因此造成潜在数据丢失或一致性漏洞。
18.上述问题通过引入高可用性/故障接管系统(high availability/failover system)得以解决,在所述系统中,存储器子系统同时连接到多个主机系统(例如,双端口方
法),使得一个节点的故障可通过至少一个其它节点(例如,经由故障接管过程)拾取失效节点当时在用的数据而克服。举例来说,在双端口方法中,第二节点可拾取第一节点当时在操作的数据。然而,随着快速存储(例如,ssd存储)的出现,此类方法虽然有作用,但对于上述与存储相关数据来说变得不实用。
19.这种不实用问题的一个解决方案是使用非易失性双列直插式存储器模块(nvdimm)。更具体地说,nvdimm可经镜像化以使得nvdimm在本地节点与远程(镜像)节点之间拆分。举例来说,可拆分32gb nvdimm,其中16gb分配给本地节点且16gb分配给远程节点。为了提高性能,每个节点可使用支持远程直接存储器存取(rdma)的网络接口卡(nic)写入自己的部分。举例来说,数据可存储在ssd上且可从端口存取,且元数据可通过nic镜像复制在nvdimm上。出现故障时,系统可使用nvdimm中的元数据仅通过同样拾取远程节点部分来从存储装置中拾取数据。
20.然而,nvdimm故障接管模型有一些局限性。举例来说,nvdimm使用动态随机存取存储器(dram)槽位,而槽位属于昂贵资产。如果dram槽位用于nvdimm,则所述槽位无法用于常规dram。此外,虽然跨节点镜像化可很好地用于两节点故障接管,但较大的系统可能无法高效地使用镜像(例如,四节点集群将在3个额外节点上需要交叉副本,这是不切实际的)。此外,使用支持rdma的nic可能成本高昂,且可能需要耗用多个接口槽位(例如pcie槽位)的专用网络。举例来说,1机架单位(1u)服务器只能有一个接口槽位。
21.本公开的各方面通过提供实现与存储相关数据(例如,存储元数据、日志和/或检查数据)的节点一致性的存储器子系统来解决以上和其它不足。更具体地说,本公开的各方面提供在系统故障接管情况下暴露pmr的机制。节点一致性可提供一种可替换其它故障接管模型(例如,nvdimm镜像化)的故障接管模型。本文所描述的存储器装置(例如,ssd的存储器装置)可包含数个卷,每个卷包含名字空间和用于存储与存储相关数据的pmr。在初始配置中且响应于系统故障(例如,节点故障和/或交换机域故障),每个卷对于主机系统的至少一个节点可以是可见的。每个卷的可见性可在无需进行复制的情况下通过修改初始可见性配置提供到任何数目的节点。
22.本文描述的节点一致性可以是与pmr相关联的接口标准无关的接口标准。举例来说,pmr可与第一接口标准或第二接口标准相关联。第二接口标准可以是实施由第一接口标准支持的一或多个替代协议的接口标准。一般来说,处理器端口可用于协商(例如,自动协商)到第一接口标准的协议或一或多个替代协议。在一个实施例中,第一接口标准是pcie(例如,pcie nvme),且第二接口标准是计算高速链路(cxl)。通常,cxl是一种可支持包含cxl.io协议、cxl.mem协议和cxl.cache协议在内的数个协议的接口标准。pcie业务可通过cxl.io协议运行,且cxl.mem和cxl.cache协议可共享公共链路层和事务层,使得cxl协议可经由pcie物理层进行复用和传输。使用pcie接口标准的一个优势是,pcie以清晰规则和实施细节著称。然而,pcie实施例的缺点包含不可缓存性。举例来说,可扩展固件接口(efi)或基本输入/输出系统(bios)和操作系统(os)并未经设计以在不可缓存存储器上映射大量内容。作为另一实例,由于不可缓存,数据结构更难以处置,且文件系统可能无法有效地映射存储器(且仍可能需要特殊代码)。使用更可缓存的接口标准(如cxl)的优势在于映射和大小设计不是问题。
23.本公开的优点包含但不限于:由于不需要用于交叉业务的专用nic而降低了成本;
由于存储器不属于某个节点,所以节点故障将不包含所述存储器,因此不需要镜像副本;以及由于不需要镜像化pmr存储器而减小了rdma所需的大小(例如,如果当前rdma可使用32gb,则将只需要16gb)。另外,本文中所描述的实施例可线性扩展超出镜像化的2节点限制,几乎没有额外成本。相比之下,对于更大的节点群集(例如,16个节点),nic镜像化可能极为受限或不可能。
24.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或此类装置的组合。
25.存储器子系统110可以是存储装置、存储器模块,或存储装置与存储器模块的组合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡以及硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)以及各种类型的非易失性双列直插式存储器模块(nvdimm)。
26.计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(iot)功能的装置、嵌入式计算机(例如,包含在载具、工业设备或联网商用装置中的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
27.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的多个存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与...耦合”通常是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如不具有居间组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。
28.主机系统120可包含处理器芯片组和由所述处理器芯片组执行的软件栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110,以例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
29.主机系统120可通过物理节点接口耦合到存储器子系统110。物理节点接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)、双数据速率(ddr)存储器总线、小型计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)等。物理节点接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理节点接口(例如,pcie总线)与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取组件(例如,存储器装置130)。物理节点接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据以及其它信号的接口。图1说明存储器子系统110以作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
30.存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
31.非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(nand)型快闪存储器和就地写入存储器,如三维交叉点(“3d交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包含例如二维nand(2dnand)和三维nand(3d nand)。
32.存储器装置130中的每一者可包含一或多个存储器单元阵列。一个类型的存储器单元,例如单层级单元(slc),可每单元存储一个位。其它类型的存储器单元,例如,多层级单元(mlc)、三层级单元(tlc)、四层级单元(qlc)和五层级单元(plc)可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc、plc或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分,以及mlc部分、tlc部分、qlc部分或plc部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,nand),页可经分组以形成块。
33.尽管描述了例如非易失性存储器单元的3d交叉点阵列和nand型快闪存储器(例如,2d nand、3d nand)等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器,或电可擦除可编程只读存储器(eeprom)。
34.存储器子系统控制器115(或简单起见,控制器115)可与存储器装置130通信以执行操作,例如,在存储器装置130处读取数据、写入数据或擦除数据,以及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。硬件可包含具有执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。
35.存储器子系统控制器115可包含处理装置,所述处理装置包含经配置以执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明的实例中,存储器子系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行各种过程、操作、逻辑流以及例程以控制存储器子系统110的操作,包含处理存储器子系统110与主机系统120之间的通信。
36.在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。尽管将图1中的实例存储器子系统110说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,且可能改为依靠(例如由外部节点或由与存储器子系统分开的处理器或控制器提供的)外部控制。
37.一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所
述命令或操作转换成指令或合适的命令,以实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、无用单元收集操作、误差检测和纠错码(ecc)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba)、名字空间)和物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115还可包含节点接口电路系统以经由物理节点接口与主机系统120通信。节点接口电路系统可将从主机系统接收的命令转换成命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
38.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且解码所述地址以对存储器装置130进行存取。
39.在一些实施例中,存储器装置130包含结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作的本地媒体控制器135。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是受管理存储器装置,其为具有在裸片上的控制逻辑(例如,本地控制器135)和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例是受管理nand(mnand)装置。
40.节点一致性(nc)组件113可通过提供在故障接管情况下暴露pmr的机制而实现与存储相关数据(例如,存储元数据、日志和/或检查数据)的节点一致性。更具体地说,nc组件113可初始化可见性配置以实现第一存储器装置的数个卷中的每个卷对于数个节点(例如,主机系统)中的至少一个节点的可见性,标识影响第一存储器装置的数个卷中的至少一个卷的可见性的系统故障,且修改可见性配置以解决所述系统故障。举例来说,标识系统故障可包含标识所述数个节点中的节点的故障。作为另一实例,标识系统故障可包含标识交换机域的故障。由nc组件113执行的操作可在接口标准不可知的情况下执行。举例来说,所述接口标准可以是第一接口标准或第二接口标准。第二接口标准可以是实施由第一接口标准支持的一或多个替代协议的接口标准。在一个实施例中,第一接口标准是pcie(例如,pcie nvme),且第二接口标准是cxl。举例来说,可经由pcie或cxl.io存取卷的名字空间,且可经由例如cxl.mem存取卷的pmr。此外,两个端口可各自连接到不同的交换机域,其中每个端口依据初始可见性配置来运行pcie和/或cxl。在一些实施例中,存储器子系统控制器115包含nc组件113的至少一部分。在一些实施例中,nc组件113是主机系统120、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包含nc组件113的至少一部分,且经配置以执行本文所描述的功能。下文描述关于nc组件113的操作的其它细节。
41.图2是根据本公开的一些实施例的实施与存储相关数据的节点一致性的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法200由图1的nc组件113执行。尽管以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例仅应理解为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实
施例中可省去一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流也是可能的。
42.在操作210处,处理逻辑初始化可见性配置以实现系统的第一存储器装置的数个卷中的每个卷对于数个节点中的至少一个节点的可见性,其中第一存储器装置的数个卷中的每个卷包含名字空间和pmr。举例来说,所述节点可包含主机系统。即,可见性配置是一种将卷暴露于对应节点的分配。可通过配置命令初始化可见性配置。举例来说,在一个可见性配置中,第一存储器装置的某些卷暴露于某些节点(即,出于编程和/或读取数据的目的,对那些节点可见和可存取),而在另一可见性配置中,不同卷可暴露于相同或不同节点,或相同卷可暴露于不同节点。pmr可经配置以存储与存储相关数据(例如,存储元数据、日志和/或检查数据)。给定卷的pmr和名字空间被处理为原子式,意味着给定卷的pmr和名字空间不被个别地重新分配给另一节点。因此,管理故障接管过程的逻辑可在同一命令中移动或切换名字空间和pmr。在一个实施例中,第一存储器装置是ssd装置(例如,nvme pmr装置)。pmr可与任何合适的接口标准相关联。举例来说,pmr可与第一接口标准或第二接口标准相关联。第二接口标准可以是实施由第一接口标准支持的一或多个替代协议的接口标准。在一个实施例中,第一接口标准是pcie(例如,pcie nvme),且第二接口标准是cxl。
43.在操作220处,处理逻辑标识影响第一存储器装置的数个卷中的至少一个卷的可见性的系统故障。如下文将进一步详细描述,系统故障的一个实例是故障交换机域,且系统故障的另一实例是故障节点。系统故障可使用任何用于系统故障检测的适合方法来标识。举例来说,如果来自系统组件(例如,交换机域、节点)的通信停止接收,则系统可接收到系统组件发生故障的信号(例如,使用心跳监测技术)。
44.在操作230处,处理逻辑修改可见性配置以解决系统故障。更具体地说,处理逻辑可通过系统内的其它端口修改第一存储器装置的数个卷中的所述至少一个卷的可见性。举例来说,修改可见性配置可包含:响应于标识出可见性被分配到所述至少一个卷的节点故障,确定另一节点应接管,以及使用管理员配置命令来告知第一存储器装置将所述至少一个卷的名字空间和pmr暴露于另一节点(例如,两个命令)。接着,所述另一节点可检测到热添加的存储以运行热插拔堆栈,且可在完成后恢复事务和i/o。
45.在一个实施例中,所述数个节点包含第一节点和第二节点,第一存储器装置的数个卷包含第一卷和第二卷,且可见性配置包含第一卷对于第一节点的可见性和第二卷对于第二节点的可见性。在操作222处,标识系统故障可包含标识第一节点的故障。在操作230处修改可见性配置以解决系统故障可包含使第一卷对第二节点可见。
46.在一个实施例中,所述系统还包含交换机域,所述数个节点包含第一节点和第二节点,且所述可见性配置包含第一存储器装置的所述数个卷中的至少一给定卷通过所述交换机域对于第一节点的可见性。在操作222处,标识系统故障可包含标识第一节点的故障。在操作230处修改可见性配置以解决系统故障可包含使给定卷经由交换机域对第二节点可见。
47.在一个实施例中,所述系统还包含第一交换机域和第二交换机域。所述数个节点包含具有第一端口和第二端口的节点,且第一存储器装置的所述数个卷包含第一卷和第二卷。可见性配置包含第一卷经由第一交换机域通过节点的第一端口对于所述节点的可见性以及第二卷经由第二交换机域通过节点的第二端口对于所述节点的可见性。在操作224处,
标识系统故障可包含标识第一交换机域的故障。在操作230处修改可见性配置以解决系统故障可包含使第一卷经由第二交换机域通过节点的第二端口对所述节点可见。
48.在一些实施例中,所述系统还包含第一交换机域和第二交换机域以及第二存储器装置,所述第二存储器装置包含各自具有pmr和名字空间的数个卷。数个节点包含各自具有第一端口和第二端口的第一节点、第二节点和第三节点,第一存储器装置的数个卷包含第一卷和第二卷,第二存储器装置的数个卷包含第三卷和第四卷。可见性配置包含第一卷和第二卷经由第一和第二交换机域中的相应交换机域通过第一节点的第一和第二端口中的相应端口对于所述第一节点的可见性、第三卷经由第一交换机域通过第二节点的第一端口对于所述第二节点的可见性以及第四卷经由第二交换机域通过第三节点的第二端口对于所述第三节点的可见性。
49.在一个实施例中,标识系统故障接着可包含在操作222处标识第一节点的故障。在操作230处修改可见性配置以解决系统故障包含使第一卷经由第二交换机域通过第二节点的第二端口对所述第二节点可见,以及使第二卷经由第一交换机域通过第三节点的第一端口对所述第三节点可见。
50.在另一实施例中,标识系统故障接着可包含在操作224处标识第一交换机域的故障。在操作230处修改可见性配置以解决系统故障包含使第一卷经由第二交换机域通过第一节点的第二端口对所述第一节点可见,以及使第三卷经由第二交换机域通过第二节点的第二端口对所述第二节点可见。
51.图3是根据本公开的一些实施例的可实施与存储相关数据的节点一致性的系统300的高层级概览的框图。
52.系统300可包含数个节点(例如,主机系统),包含节点310-1和节点310-2,以及存储器装置320。举例来说,存储器装置320可为ssd。节点310-1和节点310-2在相应端口(未展示)处附接到存储器装置320。存储器装置320包含数个卷,包含卷322-1和卷322-2。每个卷包含对应的pmr和名字空间。举例来说,卷322-1包含pmr 324-1和名字空间326-1,且卷322-2包含pmr 324-2和名字空间326-2。给定卷的pmr和名字空间被处理为原子式,意味着给定卷的pmr和名字空间不被个别地重新分配给另一节点。因此,管理故障接管过程的逻辑可在同一命令中移动或切换名字空间和pmr。
53.图3中说明性地展示的“每名字空间1个pmr”布置提供了优于常规“每节点1个nvdimm”布置的各种优点。举例来说,pmr 324-1和324-2中的每一者表达为由存储器装置320拥有且与每个对应的名字空间326-1和326-2相关联的实体。这样做避免了nvdimm方法中的以下情形:节点拥有存储器,这迫使镜像去往每个拥有者节点。由于存储器并非由节点310-1或310-2中的任一者拥有,因此节点故障不会损害存储器(即,无需镜像化副本)。由于每个名字空间仅存在一个pmr,因此可在不复制的情况下实现暴露于任何数目的节点。这与跨多个节点且向外扩展到许多节点的nvdimm镜像化的问题形成对比。另外,不必镜像化pmr存储器可将所需大小减半(例如,如果rdma使用32gb,则现在只需要16gb)。如果针对额外关注需要对整个pmr进行数据保护,则pmr数据保护可采用与存储数据保护类似的模型。
54.简单起见,假设不存在共享(例如,卷322-1和322-2不可见)且仅存在节点310-1和310-2。在非共享情况下,节点310-1将仅看到pmr 324-1和名字空间326-1,且节点310-2将仅看到pmr 324-2和326-2。节点310-1和节点310-2中的每一者可在可见卷上操作,而不必
分别在节点310-2和节点310-1中的另一者上协调或镜像化副本。
55.假设节点310-1发生故障。节点310-2将必须拾取名字空间326-1和326-2以及pmr324-1的内容。在nvdimm实施方案中,这意味着引用节点310-2的内部nvdimm镜像副本。根据本文中所描述的实施例,如上文所提及,将允许通过双端口进行名字空间故障接管的相同过程接着可通过第二端口暴露相同pmr 324-1。无需镜像,且存在与参考数据相同的数据完整性。
56.扩展到共享卷情况,由于所有卷通过所有端口可见,因此在存储层级不存在故障接管。接着,节点可响应于检测到例如另一节点的“心跳缺乏”而拾取节点故障。
57.假设存在通过n个端口暴露的n个节点或系统,所述端口(例如,通过pcie或组构上nvme(nvme over fabrics,nvme-of)交换机)连接到具有各自包含pmr和名字空间的n个卷的存储器装置(例如,ssd)。在最优情况下,第i节点(节点i)可使用以上任何机制连接到对应的第i pmr和第i名字空间组件。如果节点i发生故障,则任一其它第m节点(节点m,其中m≠i)可按以上描述通过现有故障接管第i名字空间以及第i pmr而拾取第i pmr和第i名字空间。
58.现将在下文参考图4-6描述关于可实施节点一致性的系统的其它细节。
59.图4是根据本公开的一些实施例的可实施与存储相关数据的节点一致性的系统400的可见性配置的框图。
60.如所展示,系统400包含数个节点(例如,主机系统),包含节点410-1、410-2和410-3。尽管在图4中展示三个节点,但根据本文中所描述的实施例,系统可包含任何合适数目的节点。
61.每个节点包含一对端口。举例来说,节点410-1包含端口412-1和端口413-1,节点410-2包含端口412-2和端口413-2,且节点410-3包含端口412-3和端口414-3。更具体地说,每个端口可对应于接口标准。在一个实施例中,接口标准是pcie。在另一实施例中,接口标准是cxl。然而,此类实施例不应被视为具限制性。
62.系统400还包含数个存储器装置(“装置”),包含装置420-1和装置420-2。在一个实施例中,存储器装置可包含ssd。举例来说,存储器装置可包含nvme ssd装置。尽管在图4中展示两个存储器装置,但根据本文中所描述的实施例,系统可包含任何合适数目的存储器装置。
63.存储器装置中的每一者包含数个卷,其中每个卷包含以操作方式耦合到pmr和名字空间(ns)的端口。举例来说,装置420-1包含:卷421-1,其包含以操作方式耦合到pmr 423-1和ns 424-1的端口422-1;以及卷425-1,其包含以操作方式耦合到pmr 427-1和ns 428-1的端口426-1。装置420-2包含:卷421-2,其包含以操作方式耦合到pmr423-2和ns 424-2的端口422-2;以及卷425-2,其包含以操作方式耦合到pmr 427-2和ns 428-2的端口426-2。更具体地说,每个端口可对应于接口标准(例如,pcie或cxl)。然而,此类实施例不应被视为具限制性。
64.系统400还包含与接口标准相关联的数个交换机域,包含交换机域430-1和430-2。更具体地说,交换机域可包含pcie交换机域和/或cxl交换机域。然而,此类实施例不应被视为具限制性。如在图4中进一步展示,端口412-1到412-3、422-1和422-2以操作方式耦合到交换机域430-2,且端口413-1到413-3、426-1和426-2以操作方式耦合到交换机域430-1。
65.图5是根据本公开的一些实施例的实施与存储相关数据的节点一致性的系统500的框图。更具体地说,在此说明性实例中,假设来自图4的交换机域430-1发生故障,从而产生故障交换机域510。从端口413-1到414-3、423-1和423-2到故障交换机域510的路径相应地发生故障,如粗线520所指出。因此,卷421-1、421-2、424-1和424-2通过交换机域430-2的其余路径415可见。更具体地说,卷424-2已重新分配到端口412-2,使得端口412-2现具有两个卷分配(即,卷424-2和先前分配的卷421-2,如上文参考图4所描述)。
66.图6是根据本公开的一些实施例的实施与存储相关数据的节点一致性的系统600的框图。更具体地说,在此说明性实例中,假设来自图4的节点410-2发生故障,从而产生故障节点610。通过粗线620标注起于故障节点610的端口412-2和413-2的路径。如上文参考图4所提及,卷421-2和424-2在节点410-2正确运作时对节点可见。现在节点410-2发生故障而成为故障节点610,发生重新配置以使得卷421-2和424-2对替代节点可见。举例来说,卷421-2可被重新分配给端口412-1以对节点410-1可见,且卷424-2可被重新分配给端口413-3以对节点410-3可见。然而,此类重新配置纯属示例性,且不应被视为具限制性。
67.图7说明计算机系统700的实例机器,在所述计算机系统内可执行指令集,以用于使所述机器执行本文中所论述的任何一或多个方法。在一些实施例中,计算机系统700可对应于主机系统(例如图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如图1的存储器子系统110),或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的nc组件113的操作)。在替代实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的能力进行操作。
68.所述机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由所述机器采取的动作的指令集的任何机器。此外,尽管说明了单个机器,但还应认为术语“机器”包含个别地或共同地执行一组(或多组)指令以执行本文所论述的任何一或多个方法的任何机器集合。
69.实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rdram等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(sram)等)以及数据存储系统718,它们经由总线730彼此通信。
70.处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702还可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置702经配置以执行用于执行本文所论述的操作和步骤的指令726。计算机系统700还可包含网络接口装置708以通过网络720通信。
71.数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),其上存储有体现本文所描述的任何一或多个方法或功能的一或多组指令726或软件。指令726还可
在其由计算机系统700执行的期间完全或至少部分地驻存在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可对应于图1的存储器子系统110。
72.在一个实施例中,指令726包含用以实施对应于节点一致性组件(例如图1的nc组件113)的功能的指令。尽管在实例实施例中将机器可读存储媒体724展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行且使机器执行本公开的任何一或多个方法的一组指令的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
73.已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域中的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在此处以及通常被认为是产生所要结果的操作的自洽序列。所述操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。已证明主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字等有时是方便的。
74.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可指计算机系统或类似电子计算装置的动作和过程,其操控且将计算机系统的寄存器和存储器内表示为物理(电子)量的数据变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
75.本公开还涉及用于执行本文中的操作的设备。此设备可出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、cd-rom和磁性光盘)、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或适合存储电子指令的任何类型的媒体,各个媒体耦合到计算机系统总线。
76.本文中呈现的算法和显示在本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构建更专用设备以执行所述方法是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
77.本公开可提供为计算机程序产品或软件,其可包含机器可读媒体,所述机器可读媒体上存储有指令,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
78.在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和附图。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1