用于访问SSD的至少一个存储器区域的方法和设备与流程

文档序号:30442540发布日期:2022-06-17 22:58阅读:84来源:国知局
用于访问SSD的至少一个存储器区域的方法和设备与流程
specific command),以访问来自与第二主机系统相关联的所述多个ssd控制器的所述至少一个ssd控制器的所述至少一个存储器区域。
10.一个或多个实施例的另一方面在于:将所述至少一个供应商特定命令发送到来自与第一主机系统相关联的多个ssd控制器的至少一个ssd控制器,以修改ssd控制器的位映射,位映射包括来自与第二主机系统相关联的所述多个ssd控制器的所述至少一个ssd控制器的控制器的基址寄存器与唯一控制器标识符之间的映射。
11.一个或多个实施例的另一方面在于:基于更新的位映射将从第二主机系统接收的读取包或写入包中的至少一个重定向为访问来自与第二主机系统相关联的所述多个ssd控制器的所述至少一个ssd控制器的所述至少一个存储器区域。
12.一个或多个实施例的另一方面在于:从第二主机系统接收消息,其中,消息指示停止访问来自与第二主机系统相关联的所述多个ssd控制器的所述至少一个ssd控制器的所述至少一个存储器区域。
13.一个或多个实施例的另一方面在于:创建至少一个供应商特定命令,以停止经由更新的位映射访问来自与第二主机系统相关联的所述多个ssd控制器的所述至少一个ssd控制器的所述至少一个存储器区域,其中,更新的位映射还包含ssd控制器的唯一标识符。
14.一个或多个实施例的另一方面在于:将所述至少一个供应商特定命令发送到来自连接到第一主机系统的所述多个ssd控制器的ssd控制器。
15.一个或多个实施例的另一方面在于:修改ssd控制器的位映射,位映射包括来自与第一主机系统相关联的所述多个ssd控制器的控制器的基址寄存器与唯一控制器标识符之间的映射。
16.根据示例实施例的一个方面,提供一种用于访问包括多个固态驱动器(ssd)控制器的至少一个ssd的至少一个存储器区域的方法,其中,所述多个ssd控制器包括与多路径存储系统中的第一主机系统相关联的第一ssd控制器和多路径存储系统中的第二ssd控制器,第二ssd控制器与第二主机系统相关联,并且所述至少一个存储器区域与第二ssd控制器相关联,所述方法包括:在访问故障期间,通过第一主机系统从第二主机系统接收消息;通过第一主机系统将至少一个供应商特定命令发送到第一ssd控制器,以修改第一ssd控制器的位映射;通过第一ssd控制器修改位映射;以及通过第一主机系统基于修改的位映射将从第二主机系统接收的读取包或写入包中的至少一个重定向为访问所述至少一个存储器区域。
17.根据示例实施例的一个方面,提供一种用于访问具有多个固态驱动器(ssd)控制器的至少一个ssd的至少一个存储器区域的设备,所述设备执行上述方法。
18.根据示例实施例的一个方面,提供一种多路径存储系统中的第一主机系统,第一主机系统用于访问包括多个固态驱动器(ssd)控制器的至少一个ssd的至少一个存储器区域,其中,所述多个ssd控制器包括与多路径存储系统中的第一主机系统相关联的第一ssd控制器和多路径存储系统中的第二ssd控制器,并且第二ssd控制器与第二主机系统相关联,第一主机系统包括:处理器;以及存储器,其中,处理器被配置为通过以下操作来执行存储在存储器中的指令以提供主机-控制器接口:在访问故障期间,通过第一主机系统从第二主机系统接收消息,通过第一主机系统将至少一个供应商特定命令发送到第一ssd控制器,以修改第一ssd控制器的位映射,以及通过第一主机系统基于修改的位映射将从第二主机
系统接收的读取包或写入包中的至少一个重定向为访问第二ssd控制器的所述至少一个存储器区域。
19.当结合下面的描述和附图考虑时,将更好地领会和理解在此的实施例的以上和其他方面。然而,应当理解,下面的描述虽然指示示例实施例及其许多具体细节,但是下面的描述通过说明性的方式被给出而不进行限制。在不脱离在此的实施例的精神的情况下,可在在此描述的实施例的范围内作出各种改变和修改,并且在此的实施例包括所有这样的修改。
附图说明
20.从下面结合附图的简要描述,将更清楚地理解示例实施例,其中:
21.图1示出根据相关技术的现有架构,在现有架构中,第一主机系统在多路径存储系统中访问其自己的永久性存储器区域(pmr)/控制器存储器缓冲器(cmb)区域;
22.图2是示出根据现有技术的用于在多路径存储系统中访问命名空间的方法的流程图;
23.图3a、图3b和图3c示出根据实施例的提出的架构,在提出的架构中,当第二主机系统无法在多路径存储系统中访问其自己的pmr/cmb区域时,第一主机系统访问第二主机系统的pmr/cmb区域;以及
24.图4a和图4b是示出根据实施例的用于在多路径存储系统中启用或禁用跨pmr/cmb区域访问的方法的流程图。
具体实施方式
25.参照在附图中示出并在下面的描述中详述的非限制性实施例,更全面地解释在此的实施例及其各种特征和有利细节。省略了对公知的组件和处理技术的描述,以免不必要地模糊在此的实施例。此外,因为一些实施例可与一个或多个其他实施例组合以形成新的实施例,所以在此描述的各种实施例不一定是相互排斥的。除非另外指示,否则如在此使用的术语“或”表示非排他性的或。在此使用的示例仅意在促进理解在此的实施例可被实践的方式,并且进一步使本领域技术人员能够实践在此的实施例。因此,示例不应被解释为限制在此的实施例的范围。
26.如本领域中传统的那样,可根据执行描述的一个或多个系统的块来描述和示出实施例。这些块(在此可被称为单元或模块等)由模拟电路或数字电路(诸如,逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬连线电路等)物理地实现,并且可以可选地通过固件和软件驱动。例如,电路可实现在一个或多个半导体芯片中,或者实现在基底支撑件(诸如,印刷电路板等)上。构成块的电路可通过专用硬件实现,或者通过处理器(例如,一个或多个编程的微处理器和相关联的电路)实现,或者通过执行块的一些功能的专用硬件和执行块的其他功能的处理器的组合实现。在不脱离申请公开的范围的情况下,实施例的每个块可被物理地分成两个或更多个交互并分离的块。同样地,在不脱离申请公开的范围的情况下,实施例的块可物理地组合成更复杂的块。
27.附图用于帮助容易地理解各种技术特征,并且应当理解,在此呈现的实施例不受附图限制。因此,本公开应当被解释为延伸到除了在附图中具体阐述的那些之外的任何改
变、等同物和替代物。尽管在此可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语限制。这些术语通常仅用于将一个元件与另外的元件区分开。
28.因此,在此的实施例公开了用于在多路径系统中的故障转移(failover)情况期间访问固态驱动器(ssd)的至少一个存储器区域的方法和设备。方法包括在多路径存储系统中通过第一主机系统从第二主机系统接收消息,其中,消息指示开始访问来自与第二主机系统相关联的多个ssd控制器的至少一个ssd控制器的至少一个存储器区域。此外,方法包括通过第一主机系统创建至少一个供应商特定命令(vendor specific command),至少一个供应商特定命令用于访问来自与第二主机系统相关联的多个ssd控制器的至少一个ssd控制器的至少一个存储器区域。此外,方法包括通过第一主机系统向来自与第一主机系统相关联的多个ssd控制器的至少一个ssd控制器发送至少一个供应商特定命令,以修改ssd控制器的位映射(bitmap)(或者,位映射表),位映射包括来自与第二主机系统相关联的多个ssd控制器的至少一个ssd控制器的基址寄存器与唯一控制器标识符之间的映射。此外,方法包括通过ssd控制器基于更新的位映射,将从第二主机系统接收的读取包和写入包中的至少一个重定向为访问来自与第二主机系统相关联的多个ssd控制器的至少一个ssd控制器的至少一个存储器区域。在一个示例中,方法还包括通过第二主机系统检测访问故障。
29.现在将参照图3a至图4b描述示例实施例。
30.图3a、图3b和图3c示出根据示例实施例的架构,在架构中,当第二主机系统200在多路径存储系统1000中无法访问其自己的pmr/cmb区域时,第一主机系统100访问第二主机系统200的pmr/cmb区域。在一个示例实施例中,多路径存储系统1000包括第一主机系统100和第二主机系统200。多路径存储系统1000还可具有用于在第一主机系统100与第二主机系统200之间提出的相同功能的多于一个的主机组。第一主机系统100和第二主机系统200是非易失性存储器快速(nvme)主机的示例。
31.在图3a中,第二主机系统200在多路径存储系统1000中无法访问其自己的pmr/cmb区域。
32.在图3b中,第一主机系统100被配置为在多路径存储系统1000中从第二主机系统200接收消息,其中,消息指示开始访问来自与第二主机系统相关联的多个ssd控制器中的至少一个ssd控制器的至少一个存储器区域(参考符号
“①”
)。在一个示例中,至少一个存储器区域包括基址寄存器(bar)存储器。此外,第一主机系统100被配置为创建至少一个供应商特定命令,至少一个供应商特定命令用于访问来自与第二主机系统200相关联的多个ssd控制器的至少一个ssd控制器的至少一个存储器区域。在一个实施例中,至少一个供应商特定命令包括与来自与第二主机系统200相关联的多个ssd控制器的至少一个ssd控制器所关联的唯一标识符。此外,第一主机系统100被配置为将至少一个供应商特定命令发送到来自与第一主机系统100相关联的多个ssd控制器的至少一个ssd控制器,以修改ssd控制器的位映射,位映射包括来自与第二主机系统200相关联的多个ssd控制器的至少一个ssd控制器的基址寄存器与唯一控制器标识符之间的映射(参考符号
“②”

“③”
)。在一个示例中,与第一主机系统100相关联的多个ssd控制器的至少一个ssd控制器可修改位映射,以在来自与第二主机系统200相关联的多个ssd控制器的至少一个ssd控制器的基址寄存器与唯一控制器标识符之间进行映射。此外,ssd控制器被配置为基于更新的位映射将从第二主机系统200接收的读取包和写入包中的至少一个自动重定向为访问来自与第二主机系统200相关
联的多个ssd控制器的至少一个ssd控制器的至少一个存储器区域(参考符号
“④”
)。
33.在图3c中,第一主机系统100被配置为从第二主机系统200接收消息,其中,消息指示停止访问来自与第二主机系统200相关联的多个ssd控制器的至少一个ssd控制器的至少一个存储器区域(参考符号
“①”
)。此外,第一主机系统100被配置为创建至少一个供应商特定命令,至少一个供应商特定命令用于停止经由更新的位映射(更新的位映射还包括ssd控制器的唯一标识符)访问来自与第二主机系统200相关联的多个ssd控制器的至少一个ssd控制器的至少一个存储器区域。在一个实施例中,至少一个供应商特定命令包括与来自与第一主机系统100相关联的多个ssd控制器的至少一个ssd控制器所关联的唯一标识符。此外,第一主机系统100被配置为向来自连接到第一主机系统100的多个ssd控制器的ssd控制器发送至少一个供应商特定命令(参考符号
“②”

“③”
)。此外,第一主机系统100被配置为修改ssd控制器的位映射,位映射包括来自与第一主机系统100相关联的多个ssd控制器的控制器的基址寄存器与唯一控制器标识符之间的映射(参考符号
“④”
)。
34.图4a和图4b是示出根据示例实施例的用于在多路径存储系统1000中启用或禁用跨pmr/cmb区域访问的方法的流程图。
35.在图4a中,操作402a至操作408a的符号“a”指示用于启用跨pmr/cmb区域访问的方法。在操作402a,第二主机系统200使用其自己的适当的方法通知第一主机系统100关于其对ssd的物理访问故障。在操作404a,第一主机系统100准备具有第二主机系统200的控制器编号的供应商唯一命令,并且进一步将供应商唯一命令发送到与第一主机系统对应的ssd控制器。在操作406a,与第一主机系统100对应的ssd控制器接收供应商唯一命令,并且将包含第二主机系统200的控制器编号及其对应的pmr/cmb基址寄存器(bar)区域位置的信息更新在位映射中。在408a,针对第一主机系统100的pmr/cmb bar区域的任何进一步的存储器读取或写入,ssd控制器参考位映射并将其访问重新路由到该区域。
36.在图4b中,操作402b至操作408b的符号“b”指示用于禁用跨pmr/cmb区域访问的方法。在402b,方法包括:第二主机系统200通知第一主机系统100停止访问其pmr/cmb区域。在404b,方法包括:第一主机系统100准备具有其自己的控制器编号的供应商唯一命令,并且进一步将供应商唯一命令发送到其控制器。在406b,方法包括:与第一主机系统100对应的ssd控制器接收供应商唯一命令,并且将包含第一主机系统100的控制器编号及其对应的pmr/cmb bar区域位置的信息更新在位映射中。在408b,方法包括:针对第一主机系统的pmr/cmb bar区域的任何进一步的存储器读取或写入,与第一主机系统100对应的ssd控制器参考位映射并将其访问重新路由到该区域。
37.在此公开的实施例可使用存储在非暂时性计算机可读记录介质上并由至少一个硬件处理器装置执行的至少一个软件程序来实现,以执行用于控制元件的网络管理功能。
38.示例实施例的前述描述将非常充分地揭示在此的实施例的总体性质,使得在不脱离总体构思的情况下,其他人可通过应用当前知识容易地修改和/或调整这样的具体实施例以用于各种应用,并且因此,这样的调整和修改应当并且意在被理解为在公开的实施例的等同物的含义和范围内。应当理解,在此采用的措辞或术语是出于描述的目的而非限制的目的。因此,虽然已经根据示例实施例描述了在此的实施例,但是本领域技术人员将认识到,在此的实施例可利用如在此描述的实施例的精神和范围内的修改被实践。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1