首页> 中国专利> 用于管理NVMe OVER FABRIC设备中的虚拟NVMe实体的GUI的系统及方法

用于管理NVMe OVER FABRIC设备中的虚拟NVMe实体的GUI的系统及方法

摘要

一种方法包含通过处理器使用户能创建虚拟子系统的配置指示。所述处理器使所述用户能在所述虚拟子系统的所述配置指示中创建与一个存储装置相关联的命名空间的指示、控制器的指示、主机的指示、及控制器与命名空间之间或主机与命名空间之间的连接性的指示。所述处理器使所述用户能选择所述经指示控制器及所述经指示命名空间、选择所述经指示主机及所述经指示控制器、及在虚拟子系统的所述配置指示中创建所述控制器与所述命名空间之间的连接性的指示及所述主机与所述控制器之间的连接性的指示。所述处理器在设备中实施所述虚拟子系统的所述配置以致使所述设备向所述主机提供经由所述控制器对所述命名空间的存储存取。

著录项

  • 公开/公告号CN112823342A

    专利类型发明专利

  • 公开/公告日2021-05-18

    原文格式PDF

  • 申请/专利权人 铠侠股份有限公司;

    申请/专利号CN201980066401.8

  • 发明设计人 亚伦·克林;吉尔·布查格洛;

    申请日2019-09-04

  • 分类号G06F13/10(20060101);G06F13/14(20060101);

  • 代理机构11287 北京律盟知识产权代理有限责任公司;

  • 代理人杨林勳

  • 地址 日本东京

  • 入库时间 2023-06-19 11:00:24

说明书

技术领域

本发明大体上涉及用于使用图形用户接口(GUI)在物理磁盘集区上创建抽象或虚拟子系统的系统及方法。

背景技术

NVM Express(NVMe)是允许主机软件与非易失性存储器子系统(即,NVMe子系统)通信的接口。不同于旧型单数小计算机系统接口(SCSI)实体,NVMe子系统可包含多个控制器、多个命名空间及其连接性。NVMe over Fabric(NVMeoF)是一种传送机制,其用于经由架构结构将远程装置公开给本地主机,从而向外扩展大量NVMe装置且延伸数据中心内的可在其上存取NVMe装置及NVMe子系统的距离。需要创建一种从经由NVMoF连接性公开的物理装置集区开拓的抽象或虚拟NVMe子系统。

发明内容

根据特定方面,本文中描述的一或多个实施例涉及用于使用户能使用图形用户接口(GUI)在物理磁盘集区上创建抽象或虚拟子系统的系统及方法。虚拟子系统配置GUI或执行所述GUI的计算系统(“虚拟子系统配置系统”)可提供使用简单且直观的GUI API创建此类子系统的方法。这些方法利用常见GUI实践,例如复制、移动、连接、右击、拖放、及更多。使用虚拟子系统配置GUI,用户可容易且直观地创建NVMe实体(例如控制器、命名空间、端口、或主机)或定义其间的连接性以提供虚拟子系统的配置。另外,虚拟子系统配置系统可提供用于使每一实体及连接性的参数选择自动化的提示及协助。

在根据第一方面的一或多个实施例中,一种用于提供可提供多个主机与多个存储装置之间的连接性的虚拟子系统的配置的系统包含处理器及存储器。所述处理器经配置以生成虚拟子系统图形用户接口(GUI),其呈现配置一或多个所述多个主机与所述多个存储装置中的一或多者之间的连接性的第一虚拟子系统的配置指示。所述处理器进一步经配置以响应于用户对命名空间创建GUI的选择在所述虚拟子系统GUI中生成所述命名空间创建GUI,其呈现与所述多个存储装置中的一者相关联的第一命名空间的指示。所述处理器进一步经配置以:响应于用户对控制器创建GUI的选择在所述虚拟子系统GUI中生成所述控制器创建GUI,其呈现第一控制器的指示;及响应于用户对主机创建GUI的选择生成所述主机创建GUI,其呈现第一主机的指示。所述处理器进一步经配置以在所述虚拟子系统GUI中生成连接性GUI,其呈现控制器与命名空间之间或主机与命名空间之间的连接性的指示。所述处理器进一步经配置以响应于用户对所述经指示第一控制器及所述经指示第一命名空间的选择,通过所述虚拟子系统GUI中的所述连接性GUI呈现所述第一控制器与所述第一命名空间之间的连接性的指示。所述处理器进一步经配置以响应于用户对所述经指示第一主机及所述经指示第一控制器的选择,通过所述虚拟子系统GUI中的所述连接性GUI呈现所述第一主机与所述第一控制器之间的连接性的指示。所述处理器进一步经配置以通过编译在所述虚拟子系统GUI中所呈现的所述第一虚拟子系统的所述配置的所述指示来创建设备配置,使得当在所述设备中实施所述设备配置时,所述设备可向所述第一主机提供经由所述第一控制器对所述第一命名空间的存储存取。

在根据另一方面的一或多个实施例中,一种用于提供可提供多个主机与多个存储装置之间的连接性的虚拟子系统的配置的方法包含:通过计算机系统的处理器使所述计算机系统的用户能创建配置一或多个所述多个主机与所述多个存储装置中的一或多者之间的连接性的第一虚拟子系统的配置指示。所述方法进一步包含通过所述处理器使所述用户能在所述第一虚拟子系统的所述配置指示中创建与所述多个存储装置中的一者相关联的第一命名空间的指示。所述方法进一步包含通过所述处理器使所述用户能在所述第一虚拟子系统的所述配置指示中创建第一控制器的指示。所述方法进一步包含通过所述处理器使所述用户能在所述第一虚拟子系统的所述配置指示中创建第一主机的指示。所述方法进一步包含通过所述处理器使所述用户能在所述第一虚拟子系统的所述配置指示中创建控制器与命名空间之间或主机与命名空间之间的连接性的指示。所述方法进一步包含:通过所述处理器使所述用户能选择所述经指示第一控制器及所述经指示第一命名空间,及在所述第一虚拟子系统的所述配置指示中创建所述第一控制器与所述第一命名空间之间的连接性的指示;及通过所述处理器使所述用户能选择所述经指示第一主机及所述经指示第一控制器,及在所述第一虚拟子系统的所述配置指示中创建所述第一主机与所述第一控制器之间的连接性的指示。所述方法进一步包含通过所述处理器在设备中实施所述第一虚拟子系统的所述配置以致使所述设备向所述第一主机提供经由所述第一控制器对所述第一命名空间的存储存取。

在根据另一方面的一或多个实施例中,一种用于提供可提供多个主机与多个存储装置之间的连接性的虚拟子系统的配置的计算机程序产品包含其中体现有执行以执行操作的计算机可读程序代码的非暂时性计算机可读存储媒体。所述操作包含生成虚拟子系统图形用户接口(GUI),其呈现配置一或多个所述多个主机与所述多个存储装置中的一或多者之间的连接性的第一虚拟子系统的配置指示。所述操作进一步包含响应于用户对命名空间创建GUI的选择在所述虚拟子系统GUI中生成所述命名空间创建GUI,其呈现与所述多个存储装置中的一者相关联的第一命名空间的指示。所述操作进一步包响应于用户对控制器创建GUI的选择在所述虚拟子系统GUI中生成所述控制器创建GUI,其呈现第一控制器的指示。所述操作进一步包含响应于用户对主机创建GUI的选择生成所述主机创建GUI,其呈现第一主机的指示。所述操作进一步包含在所述虚拟子系统GUI中生成连接性GUI,其呈现控制器与命名空间之间或主机与命名空间之间的连接性的指示。所述操作进一步包含响应于用户对所述经指示第一控制器及所述经指示第一命名空间的选择,通过所述虚拟子系统GUI中的所述连接性GUI呈现所述第一控制器与所述第一命名空间之间的连接性的指示。所述操作进一步包含响应于用户对所述经指示第一主机及所述经指示第一控制器的选择,通过所述虚拟子系统GUI中的所述连接性GUI呈现所述第一主机与所述第一控制器之间的连接性的指示。所述操作进一步包含在设备中实施在所述虚拟子系统GUI中所呈现的所述第一虚拟子系统的所述配置以致使所述设备向所述第一主机提供经由所述第一控制器对所述第一命名空间的存储存取。

附图说明

图1A展示根据本发明的一或多个实施例的NVMe子系统的框图。

图1B展示根据本发明的一或多个实施例的虚拟NVMe子系统的框图。

图2展示根据本发明的一或多个实施例的对NVMe子系统的存取控制的框图。

图3展示根据本发明的一或多个实施例的计算系统的框图。

图4A到4F展示根据本发明的一或多个实施例的用于创建虚拟NVMe实体的GUI的实例操作。

图5A到5B展示根据本发明的一或多个实施例的用于创建虚拟NVMe实体之间的连接性的GUI的实例操作。

图6展示根据本发明的一或多个实施例的用于基于经创建虚拟NVMe实体创建设备配置的GUI。

图7展示根据本发明的一或多个实施例的用于创建虚拟NVMe实体的方法。

图8展示根据本发明的一或多个实施例的用于创建虚拟NVMe实体之间的连接性的方法。

图9展示根据本发明的一或多个实施例的用于基于经创建虚拟NVMe实体创建设备配置的方法。

具体实施方式

本文中描述的实施例提供特定改进,包含简单且直观的图形用户接口(GUI)API及提供用于使NVMe实体及其间的连接性的参数选择自动化的提示及协助的方法。本文中描述的实施例中的一或多者提供虚拟子系统配置GUI,其设计此类NVMe实体(例如控制器、命名空间、端口、或主机)及其间的连接性(例如控制器与命名空间之间的连接)以定义抽象或虚拟子系统。本文中描述的实施例中的一或多者提供供用户用来使用虚拟子系统配置GUI在物理存储装置集区上开拓抽象或虚拟子系统的直观方法。

图1展示根据本发明的一或多个实施例的NVMe子系统的框图。参考图1A,NVMe子系统1300可包含一或多个命名空间1(1330-1)到N(1330-N)、一或多个控制器1(1320-1)到M(1320-M)、及一或多个子系统端口1(1310-1)到L(1310-L)。一或多个主机1(1350-1)到K(1350-K)可与子系统1300通信。

主机中的每一者可具有类似于图3中所展示的计算系统的配置。在一些实施方案中,主机支持NVMe使得主机中的软件可经由PCI Express与非易失性存储器子系统通信。在一些实施方案中,主机支持NVMe over Fabrics(NVMeoF)使得主机中的软件可经由除了PCIExpress之外的互连与非易失性存储器子系统通信。NVMeoF是一种传送协议,其使主机能经由网络架构或除了PCI Express之外的互连远程存取NVMe装置。控制器中的每一者可具有类似于图3中所展示的计算系统的配置。

命名空间是可被格式化成逻辑块的一定量的非易失性存储器。NVMe控制器可支持使用命名空间ID来引用的多个命名空间,使得控制器可与一或多个命名空间相关联。举例来说,参考图1A,控制器2(1320-2)与命名空间2(1330-2)及命名空间3(1330-3)两者相关联。命名空间可与一或多个控制器相关联。举例来说,参考图1A,命名空间3(1330-3)与控制器2(1320-2)及控制器M(1320-M)两者相关联。换句话来说,控制器与命名空间之间的关系可为一对一或一对多或多对多。

子系统端口1310-1到1310-L中的每一者可为外围组件互连(PCI)Express端口或非PCI Express端口(除了PCI Express端口之外的架构端口-例如,远程直接存储器存取(RDMA)、光纤通道(FC)、无线带宽(IB))。子系统端口可与相应控制器相关联。举例来说,控制器可映射到对应子系统端口的PCI功能0。子系统端口可与多个控制器相关联。举例来说,分别地,一控制器可映射到对应子系统端口的PCI功能0,且另外三个控制器可映射到同一子系统端口的三个虚拟功能。

图1A还展示从命名空间到主机的路由拓扑。举例来说,命名空间1(1330-1)经由控制器1(1320-1)公开给主机1(1350-1)。在本文中描述的一或多个实施例中,主机可经由NVMe over Fabric(NVMeoF)连接到NVMe装置。举例来说,NVMeoF实现主机与远程磁盘之间的连接性,远程磁盘为支持NVMeoF的物理NVMe磁盘。换句话来说,物理磁盘以其拓扑作为子系统“按原样”向主机公开。

图1B展示根据本发明的一或多个实施例的虚拟NVMe子系统的框图。参考图1B,虚拟子系统可经创建或配置于填充有固态驱动器(SSD)132的集区且具有架构端口120的存储设备130中。在本文中描述的一或多个实施例中,存储设备130可公开使用NVMe抽象层(或虚拟化层)131从存储集区132开拓的虚拟子系统。在本文中描述的一或多个实施例中,抽象层131支持NVMe协议转换。存储集区可为NVMe装置或甚至是非NVMe装置,例如串行附接SCSI(SAS)及串行高级技术附接(SATA)。举例来说,抽象层131可通过使用抽象层131的协议转换将SCSI命令映射到NVMe命令将非NVMe装置(例如SAS)作为虚拟子系统公开给主机(101或102),使得主机可经由存储设备130的架构交换机110及架构端口120通过NVMeoF传送经连接到非NVMe装置。在本文中描述的一或多个实施例中,主机101或102可具有类似于图3中所展示的计算系统的配置。在本文中描述的一或多个实施例中,存储设备130可具有类似于图3中所展示的计算系统的配置。在本文中描述的一或多个实施例中,存储设备130可包含配置数据库133,其存储虚拟子系统的配置使得所述配置如果被存储设备130执行那么将存储设备130作为由配置指定的虚拟子系统公开。

图2展示根据本发明的一或多个实施例的对NVMe子系统的存取控制的框图。在本文中描述的一或多个实施例中,对NVMe子系统的存取控制可使用主机及子系统的唯一全球标识符(例如NVMe限定名(NQN))来实施。举例来说,参考图2,当主机210(或主机的用户)登录到子系统1300(参见图1A)中时,主机210可发送用以获得对子系统1300的存取的NVMeoF连接命令220。主机210可为图1A所展示的主机1301-1到主机1350-K中的任一者。在本文中描述的一或多个实施例中,连接命令220可包含识别主机210的主机NQN 211、识别子系统1300的子系统NQN 241、及特定控制器ID 242(标示为NVMeoF标准中的静态控制器模式)或指示主机可接受到特定控制器或任何可用控制器的连接的“FFFF”(标示为NVMeoF标准中的动态控制器模式)。在本文中描述的一或多个实施例中,子系统1300包含登录模块,其在接收连接命令220之后执行认证且授权主机210对特定控制器的存取或将任何可用控制器ID传回到主机(如果控制器ID 242被设置到“FFFF”)。

图3展示根据本发明的一或多个实施例的计算系统的框图。参考图3,说明的实例计算系统3200包含经由通信系统3240(例如总线)与存储器3260、具有用于连接到网络(未展示)的网络接口端口的至少一个网络接口控制器3230及其它组件通信的一或多个处理器3210,所述其它组件例如连接到显示器3400及输入装置3600的输入/输出(“I/O”)组件接口3250。通常,处理器3210将执行从存储器接收的指令(或计算机程序)。说明的处理器3210并入或直接连接到高速缓存存储器3220。在一些例子中,指令是从存储器3260读取到高速缓存存储器3220中且由处理器3210从高速缓存存储器3220执行。

更详细地,处理器3210可为处理指令(例如从存储器3260或高速缓存3220提取的指令)的任何逻辑电路系统。在许多实施方案中,处理器3210是微处理器单元或专用处理器。计算装置3200可基于能够如本文中描述那样操作的任何处理器、或处理器集。处理器3210可为单核或多核处理器。处理器3210可为多个相异处理器。

存储器3260可为适用于存储计算机可读数据的任何装置。存储器3260可为具有固定存储装置的装置或用于读取可装卸存储媒体的装置。实例包含所有形式的非易失性存储器、媒体及存储器装置、半导体存储器装置(例如EPROM、EEPROM、SDRAM、及快闪存储器装置)、磁盘、磁光盘、及光碟(例如CD ROM、DVD-ROM、或

高速缓存存储器3220通常是紧靠处理器3210放置以实现快速读取时间的一种形式的计算机存储器。在一些实施方案中,高速缓存存储器3220是处理器3210的部分、或处于与处理器3210相同的芯片上。在一些实施方案中,存在多个高速缓存3220层级,例如L2及L3高速缓存层。

网络接口控制器3230管理经由网络接口(有时称为网络接口端口)的数据交换。网络接口控制器3230处置用于网络通信的OSI模型的物理及数据链路层。在一些实施方案中,一些网络接口控制器的任务由一或多个处理器3210处置。在一些实施方案中,网络接口控制器3230是处理器3210的部分。在一些实施方案中,计算系统3200具有由单个控制器3230控制的多个网络接口。在一些实施方案中,计算系统3200具有多个网络接口控制器3230。在一些实施方案中,每一网络接口是用于物理网络链路(例如,cat-5以太网链路)的连接点。在一些实施方案中,网络接口控制器3230支持无线网络连接,且接口端口是无线(例如无线电)接收器/发射器(例如,针对IEEE 802.11协议、近场通信“NFC”、蓝牙、ANT、或任何其它无线协议中的任一者)。在一些实施方案中,网络接口控制器3230实施一或多个网络协议,例如以太网。通常,计算装置3200通过网络接口经由物理或无线链路与其它计算装置交换数据。网络接口可直接链接到另一装置或经由中间装置链接到另一装置,所述中间装置例如将计算装置3200链接到数据网络(例如因特网)的网络装置,例如集线器、网桥、交换机、或路由器。

计算系统3200可包含、或提供用于一或多个输入或输出(“I/O”)装置的接口。输入装置包含(无限制)键盘、麦克风、触摸屏、脚踏板、传感器、MIDI装置、及例如鼠标或跟踪球的指向装置。输出装置包含(无限制)视频显示器、扬声器、可刷新盲人点字终端、灯、MIDI装置、及2-D或3-D打印机。

其它组件可包含I/O接口、外部串行装置端口、及任何额外协处理器。举例来说,计算系统3200可包含用于连接输入装置、输出装置、或额外存储器装置(例如便携式快闪驱动或外部媒体驱动)的接口(例如,通用串行总线(USB)接口)。在一些实施方案中,计算装置3200包含例如协处理器的额外装置,例如,数学协处理器可协助处理器3210进行高精度或复杂计算。

在本文中描述的一或多个实施例中,为了在存储集区上创建或定义虚拟子系统,用户可指定或提供以下各者的至少一者:(1)命名空间的数目;(2)命名空间的容量;(3)控制器的数目;(4)控制器与命名空间之间的连接性;(5)主机与子系统之间的存取控制;(6)命名空间的故障域(例如,命名空间横跨磁盘的数目);(7)子系统的故障域(例如,命名空间横跨磁盘的数目);(8)命名空间的服务质量(QoS)及服务水平协议(SLA);或(9)子系统的QoS及SLA。用于根据本发明的一或多个实施例在存储集区上创建虚拟子系统的系统及方法将参考图4A到6在下文更详细描述。

图4A到4F展示根据本发明的一或多个实施例的用于创建虚拟NVMe实体的GUI的实例操作。在本文中描述的一或多个实施例中,虚拟子系统配置系统可创建或定义虚拟子系统的配置,其可提供多个主机(例如,图1A中的主机1到N)与多个存储装置(例如,图1B中的SSD 132的集区)之间的连接性。在本文中描述的一或多个实施例中,虚拟子系统配置系统可为图3中所展示的计算系统3200。在本文中描述的一或多个实施例中,虚拟子系统配置系统可为图1B中所展示的NVMe主机101或102。在本文中描述的一或多个实施例中,计算机程序产品可创建或定义虚拟子系统的配置,其可提供多个主机与多个存储装置之间的连接性。举例来说,计算机程序产品可包含GUI API,其可创建或定义虚拟子系统的配置,所述配置可提供多个主机与多个存储装置之间的连接性。在一些实施方案中,计算机程序产品可包含其中体现有执行以执行操作来创建或定义虚拟子系统的配置的计算机可读程序代码的非暂时性计算机可读存储媒体。

参考图4A,虚拟子系统配置系统生成(或创建或定义)虚拟子系统图形用户接口(GUI)430。在本文中描述的一或多个实施例中,虚拟子系统配置系统(例如,图3中的计算系统3200)可在显示器(例如,图3中的显示器3400)中显示“创建子系统”按钮410及存储装置GUI 441到449。在本文中描述的一或多个实施例中,存储装置GUI包含多个存储装置(例如SSD1(441)到8(448))的指示、及多个装置的总容量的指示(例如,总容量449的指示)。

参考图4A,如果用户点击“创建子系统”按钮410,那么系统可创建新的虚拟子系统(例如命名为“SB1”、“SB2”、“SB3”或“SB4”的虚拟子系统)且显示对应(虚拟)子系统按钮(例如,“SB1”按钮421、“SB2”按钮422、“SB3”按钮423、“SB4”按钮424中的一者)及对应虚拟子系统GUI 430。在本文中描述的一或多个实施例中,如果用户点击一个子系统按钮,那么系统可显示或生成对应虚拟子系统GUI 430、及多个实体创建GUI,其包含主机创建GUI(例如,“添加主机”按钮450)、端口创建GUI(例如,“添加端口”按钮460)、控制器创建GUI(例如,“添加控制器”按钮470)、及命名空间创建GUI(例如,“添加命名空间”按钮480)。系统还可显示“OK”按钮490及“取消”按钮491。举例来说,如图4A中展示,如果用户点击子系统按钮421(“SB1”),那么系统显示对应于虚拟子系统“SB1”的虚拟子系统GUI 430、多个添加按钮450到480、OK按钮490、及取消按钮491。在本文中描述的一或多个实施例中,系统可显示分别指示当前正显示的虚拟子系统的名称及NQN的文本431及文本432。

在本文中描述的一或多个实施例中,参考图4A,虚拟子系统配置系统可显示存储装置GUI 441到449,其可呈现多个存储装置的总可用存储空间的指示。在本文中描述的一或多个实施例中,存储装置GUI包含多个存储装置(例如,SSD 1(441)到8(448))的指示、及多个装置的总容量的指示(例如,总容量449的指示)。多个存储装置441到448的指示可包含每一SSD的图形指示(例如,作为圆柱体)以及其当前存储使用率的图形指示(例如,作为圆柱体的阴影体积)及当前可用存储空间的图形指示(作为圆柱体的空体积)。举例来说,如图4A中展示,存储装置443的当前存储使用率指示为小于存储装置444的当前存储使用率。在本文中描述的一或多个实施例中,多个装置的总容量的指示是条状物449,其展示总分配(例如,条状物449的总面积)及可用的自由空间(例如,条状物449的无阴影区)。在本文中描述的一或多个实施例中,系统可为NVMe主机(例如,图1B中的101或102)且使用由NVMe抽象层131(参见图1B)进行的协议映射获得每一存储装置的当前磁盘使用率。举例来说,系统可向SCSI SSD(例如,图1B中的SSD 132)发出映射到SCSI协议中的“读取容量”命令的NVMe命令且通过将从SCSI存储装置传回的结果转换成NVMe格式来获得每一存储装置的当前磁盘使用率。系统可以类似方式获得多个装置的总容量。

在本文中描述的一或多个实施例中,如果用户双击现存子系统按钮421到424中的一者,那么系统展示编辑GUI(未展示),其包含用于键入所选择的虚拟子系统的名称及NQN的输入接口使得用户可编辑所选择的虚拟子系统的名称及NQN。

参考图4B,响应于用户对控制器创建GUI(例如,“添加控制器”按钮470)的选择,控制器创建GUI可在虚拟子系统GUI 430中呈现第一控制器的指示。举例来说,如果用户点击“添加控制器”按钮470,那么系统可在虚拟子系统GUI 430中呈现与第一控制器的参数相关的输入菜单,包含指示“数目”的文本标签471-1、输入接口471-2、“OK”按钮472、及“取消”按钮473。输入接口可为文本字段、或其它输入接口,例如下拉列表、复选框、单选按钮等。举例来说,如图4B中展示,用户可在输入接口471-2中指定控制器的数目以将其添加到虚拟子系统“SB1”的配置(默认值是1)。当按下“OK”按钮472时,所选择的控制器的数目被添加到虚拟子系统“SB1”的配置,且在虚拟子系统GUI 430中呈现经添加控制器的图形指示(例如,图4C中指示“控制器1”的按钮433)。当按下“取消”按钮473时,取消所选择数目个控制器的添加。在本文中描述的一或多个实施例中,可指定更多进展参数(例如第一控制器的带宽或每秒输入/输出(IOPS)),使得用户可指定要添加的控制器的潜在或最大性能。在本文中描述的一或多个实施例中,系统可提供用于使第一控制器的参数(例如,可用控制器的数目或带宽或IOPS)选择自动化的提示及协助。举例来说,系统可发出获得存储设备(例如图1B中的存储设备130)中的可用控制器的数目或带宽或IOPS的NVMe识别命令,且使用所述信息提供提示及协助(例如,显示基于从目标存储设备获得的实体信息的提示或设置默认值)以自动选择第一控制器的有效参数。

在本文中描述的一或多个实施例中,响应于用户对控制器创建GUI的选择,控制器创建GUI可在虚拟子系统GUI中呈现除了第一控制器之外的另一控制器的指示。举例来说,参考图4B,在按下“OK”按钮472且(因此)添加了第一控制器之后,用户可再次点击“添加控制器”按钮470以将第二控制器添加到虚拟子系统“SB1”的配置。随后,系统可显示与第二控制器的参数相关的相同输入菜单,包含指示“数目”的文本标签471-1、输入接口471-2、“OK”按钮472、及“取消”按钮473。

在本文中描述的一或多个实施例中,参考图4B,系统可生成或显示端口创建GUI(例如,“添加端口”按钮460)。响应于用户对端口创建GUI的选择,端口创建GUI可在虚拟子系统GUI 430中呈现第一虚拟子系统(未展示)的第一端口的指示。举例来说,如果用户点击“添加端口”按钮460,那么系统可在虚拟子系统GUI 430中呈现与第一端口的参数相关的输入菜单,包含类似于文本标签471-1的文本标签、类似于输入接口471-2的输入接口、类似于“OK”按钮472的“OK”按钮、及类似于“取消”按钮473的“取消”按钮。在本文中描述的一或多个实施例中,按下“添加端口”按钮450可允许用户设置多个物理端口(如果可用)。举例来说,系统可将默认端口设置为以太网端口。响应于用户对端口创建GUI的选择,端口创建GUI可在虚拟子系统GUI中创建除了第一端口外的另一端口的指示。

参考图4C,系统生成或显示命名空间创建GUI(例如,“添加命名空间”按钮480)。响应于用户对命名空间创建GUI的选择,命名空间创建GUI可在虚拟子系统GUI 430中呈现与多个存储装置中的一者相关联的第一命名空间的指示。举例来说,如果用户点击“添加命名空间”按钮480,那么系统可在虚拟子系统GUI 430中呈现与第一命名空间的参数相关的输入菜单,包含(1)指示“数目”的文本标签481-1及对应输入接口481-2、(2)指示“容量”的文本标签482-1及对应输入接口482-2、(3)指示“优先级”的文本标签483-1及对应输入接口483-2、(4)指示“DWPD”的文本标签484-1及对应输入接口484-2、(5)指示“磁盘扫描”的文本标签485-1及对应输入接口485-2、“OK”按钮486、及“取消”按钮487。如图4C中展示,为了将第一命名空间添加到虚拟子系统“SB1”的配置,用户可(1)在输入接口481-2中指定将添加的命名空间的数目(默认值是1)、(2)在输入接口482-2中指定命名空间的容量(例如,以字节为单位)、(3)在输入接口483-2中指定命名空间的优先级(默认值是“正常”)、(4)在输入接口484-2中指定命名空间的工作负载(例如,以DWPD(每天的驱动写入)为单位,默认值是1DWPD)、及在输入接口485-2中指定作为命名空间的故障域的磁盘跨度(默认值是1个磁盘)。当按下“OK”按钮486时,具有指定参数的所选择数目个命名空间被添加到虚拟子系统“SB1”的配置,且在虚拟子系统GUI 430中呈现经添加命名空间的图形指示(例如,图4D中的指示“命名空间1”的按钮434)。当按下“取消”按钮487时,取消所选择数目个命名空间的添加。

在本文中描述的一或多个实施例中,可指定第一命名空间的额外参数(例如服务质量(QoS)、服务水平协议(SLA)、带宽或每秒输入/输出(IOPS))使得用户可指定将添加的命名空间的潜在或最大性能。在本文中描述的一或多个实施例中,系统可提供用于使第一命名空间的参数(例如可用命名空间的数目、容量、优先级、工作负载、磁盘跨度、QoS、SLA、带宽或IOPS)参数自动化的提示及协助。举例来说,系统可发出获得存储设备(例如,图1B中的存储设备130)中的可用命名空间的数目、容量、优先级、工作负载、磁盘跨度、QoS、SLA、带宽或IOPS的NVMe识别命名,且使用所述信息提供提示及协助(例如,显示基于从目标存储设备获得的实体信息的提示或设置默认值)以自动选择第一命名空间的有效参数。

响应于用户对命名空间创建GUI的选择,命名空间创建GUI可在虚拟子系统GUI中呈现与多个存储装置中的一者相关联的第二命名空间的指示。举例来说,参考图4C,在按下“OK”按钮486且(因此)添加了第一命名空间之后,用户可再次点击“添加命名空间”按钮480以将第二命名空间添加到虚拟子系统“SB1”的配置。随后,系统可显示与第二命名空间的参数相关的相同输入菜单,包含文本标签481-1到485-1、输入接口481-2到485-2、“OK”按钮486、及“取消”按钮487。

参考图4D,系统可生成或显示主机创建GUI(例如,“添加主机”按钮450)。响应于用户对主机创建GUI的选择,主机创建GUI可在虚拟子系统GUI 430中呈现第一主机的指示。在本文中描述的一或多个实施例中,按下“添加主机”按钮450使用户能定义经允许主机或用于连接主机与控制器的存取控制列表(ACL)。举例来说,如果用户点击“添加主机”按钮450,那么系统可在虚拟子系统GUI 430中呈现与第一主机的参数相关的输入菜单,包含指示“NQN”的文本标签451-1、输入接口451-2、“OK”按钮452、及“取消”按钮453。如图4D中展示,用户可在输入接口451-2中指定第一主机的NQN(或任何全球唯一标识符)以将第一主机添加到虚拟子系统“SB1”的配置。当按下“OK”按钮452时,第一主机被添加到虚拟子系统“SB1”的配置,且在虚拟子系统GUI 430中呈现经添加主机的图形指示(例如,图4E中的指示“主机1”的按钮455)。当按下“取消”按钮453时,取消第一主机的添加。

响应于用户对主机创建GUI的选择,主机创建GUI可在虚拟子系统GUI 430中呈现除了第一主机外的另一主机的指示。举例来说,参考图4D,在按下“OK”按钮452且(因此)添加了第一主机之后,用户可再次点击“添加主机”按钮450以将第二主机添加到虚拟子系统“SB1”的配置。随后,系统可显示与第二主机的参数相关的相同输入菜单,包含指示“NQN”的文本标签451-1、输入接口451-2、“OK”按钮452、及“取消”按钮453。

参考图4E,在本文中描述的一或多个实施例中,在虚拟子系统GUI 430中,用户可右击实体以进行各种操作。举例来说,举例来说,在右击指示“控制器1”的控制器按钮433之后,系统可呈现或生成或打开包含删除按钮433-1的菜单。用户可按下删除按钮433-1以从虚拟子系统“SB1”的配置(且还从虚拟子系统GUI 430)删除“控制器1”。

参考图4F,在本文中描述的一或多个实施例中,在右击指示“命名空间1”的命名空间按钮434之后,系统可呈现或生成或打开包含(1)删除按钮434-1、(2)复制按钮434-2、(3)剪切按钮434-3、(4)复制按钮434-4、(5)编辑按钮434-5及(6)属性按钮434-6的菜单。用户可按下这些按钮来(1)从虚拟子系统“SB1”的配置(且还从虚拟子系统GUI 430)删除“命名空间1”、(2)复制或(3)剪切“命名空间1”、(4)复制经复制或经剪切“命名空间1”、(5)编辑“命名空间1”的参数,例如图4C中的参数481-1到485-1、及(6)“命名空间1”的额外属性,例如QoS、SLA、带宽或IOPS。

图5A到5B展示根据本发明的一或多个实施例的用于创建虚拟NVMe实体之间的连接性的GUI的实例操作。在本文中描述的一或多个实施例中,虚拟子系统配置系统可生成连接性GUI(例如,在两个所选择的按钮之间绘制的简单的线),其可在虚拟子系统GUI 430中呈现控制器与命名空间之间的连接性的指示(例如,图5A中的连接“控制器1”按钮433及“命名空间1”按钮434的线435)或主机与命名空间之间的连接性的指示(例如,图5B中的连接“控制器1”按钮433及“主机1”按钮455的线436)。

参考图5A,响应于用户对经指示第一控制器及经指示第一命名空间的选择,连接性GUI(例如,在两个所选择的按钮之间绘制的简单的线)可在虚拟子系统GUI 430中呈现第一控制器与第一命名空间之间的连接性的指示。举例来说,用户可点击“控制器1”按钮433或“命名空间1”按钮434中的一者,及使用“拖放”绘制从其到“控制器1”按钮433或“命名空间1”按钮434中的另一者的线435。用户可在任何控制器到任何命名空间之间进行连接,只要其在虚拟子系统GUI 430中呈现。在本文中描述的一或多个实施例中,系统可提供GUI以指定添加于控制器与命名空间之间的连接的参数(例如,带宽或每秒输入/输出(IOPS)的最小值/最大值)。举例来说,在右击经添加连接线之后,系统可打开指定带宽或IOPS的最小值/最大值的输入菜单(未展示)。在本文中描述的一或多个实施例中,指示具有第一带宽或每秒输入/输出(IOPS)的连接性的第一呈现线的粗细可大于指示具有小于第一带宽或IOPS的第二带宽或IOPS的连接性的第二呈现线的粗细。举例来说,如果连接于第一对控制器与命名空间之间的第一线比连接于第二对控制器与命名空间之间的第二线粗,且第一对控制器与命名空间之间的连接的带宽或IOPS大于第二对控制器与命名空间之间的连接的带宽或IOPS。在本文中描述的一或多个实施例中,多个线可用于指示连接的不同带宽或IOPS量。举例来说,细线及粗线可用于指示相应连接的(相对)少量及大量带宽或IOPS。在本文中描述的一或多个实施例中,系统可提供用于使控制器与命名空间之间的连接的参数(例如,带宽或每秒输入/输出(IOPS)的最小值/最大值)选择自动化的提示及协助。举例来说,系统可发出获得存储设备(例如,图1B中的存储设备130)中控制器与命名空间之间的可用连接的带宽或IOPS的NVMe识别命令,及使用所述信息提供提示及协助(例如,显示基于从目标存储设备获得的实体信息的提示或设置默认值)以自动选择连接(例如,图5A中的连接435)的有效参数。

参考图5B,响应于用户对经指示第一主机及经指示第一控制器的选择,连接性GUI(例如,在两个所选择的按钮之间绘制的简单的线)可在虚拟子系统GUI 430中呈现第一主机与第一控制器之间的连接性的指示。举例来说,用户可点击“主机1”按钮455或“控制器1”按钮433中的一者,及使用“拖放”绘制从其到“主机1”按钮455或“控制器1”按钮433中的另一者的线436。用户可在任何主机到任何控制器之间进行连接,只要其在虚拟子系统GUI430中呈现。在本文中描述的一或多个实施例中,系统可提供GUI以指定添加于主机与控制器之间的连接的参数(例如,带宽或每秒输入/输出(IOPS)的最小值/最大值)。举例来说,在右击经添加连接线之后,系统可打开指定带宽或IOPS的最小值/最大值的输入菜单(未展示)。在本文中描述的一或多个实施例中,指示具有第一带宽或每秒输入/输出(IOPS)的连接性的第一呈现线的粗细可大于指示具有小于第一带宽或IOPS的第二带宽或IOPS的连接性的第二呈现线的粗细。举例来说,如果连接于第一对主机与控制器之间的第一线比连接于第二对主机与控制器之间的第二线粗,且第一对主机与控制器之间的连接的带宽或IOPS大于第二对主机与控制器之间的连接的带宽或IOPS。在本文中描述的一或多个实施例中,用户可将主机连接到控制器,借此生成允许主机存取控制器的配置。

图6展示根据本发明的一或多个实施例的用于基于经创建虚拟NVMe实体创建设备配置的GUI。在本文中描述的一或多个实施例中,在NVMe实体及其间的连接性被添加到虚拟子系统的配置之后,虚拟子系统配置系统可通过编译在虚拟子系统GUI 430中所呈现的第一虚拟子系统的配置的指示来创建或生成设备配置。举例来说,在主机1、控制器1及命名空间1、及其间的连接性(例如,控制器1与命名空间1之间的连接性、及主机1与控制器1之间的连接性)被添加到图6中所展示的虚拟子系统的配置之后,用户可点击“OK”按钮490来创建或生成设备配置。在按下“OK”按钮490之后,系统可编译在虚拟子系统GUI 430中所呈现的第一虚拟子系统的配置的指示。

在本文中描述的一或多个实施例中,在编译在虚拟子系统GUI 430中所呈现的第一虚拟子系统的配置的指示时,系统可验证第一虚拟子系统的经指示配置。举例来说,参考图6,系统可通过检查满足控制器1的参数的任何控制器是否可用于存储设备(例如,图1B中的存储设备130)中来验证控制器1。在本文中描述的一或多个实施例中,系统是NVMe主机(例如,图1B中的主机101或102),其可将检查存储设备中的控制器1的可用性的NVMe识别命令发出到存储设备(例如设备130)。系统还可通过检查满足命名空间1的参数(例如,图4C中所展示的数目、容量、优先级、工作负载、磁盘跨度)的任何命名空间是否可用于存储设备(例如,图1B中的存储设备130)中来验证命名空间1。在本文中描述的一或多个实施例中,系统可将检查存储设备中的命名空间1的可用性(例如,检查此命名空间是否存在及其是否未被分配到任何控制器)的NVMe识别命令发出到存储设备(例如设备130)。系统还可通过检查主机1的参数(例如,图4D中所展示的NQN)是否有效来验证主机1。如果配置包含端口,那么系统可将检查存储设备中的端口的可用性的NVMe识别命令发出到存储设备(例如设备130)。系统还可通过检查满足连接435的参数(例如带宽或IOPS)的任何连接是否可用于存储设备(例如,图1B中的存储设备130)中及命名空间1是否已经被附接到控制器1来验证控制器1与命名空间1之间的连接(由线435指示)。系统可将检查存储设备中的此连接的可用性的NVMe识别命令发出到存储设备(例如设备130)。系统可将检查命名空间1是否已经被附接到控制器1的NVMe命名空间附接命令发出到存储设备。系统还可通过检查主机1是否已经被连接到控制器1来验证主机1与控制器1之间的连接(由线436指示)。系统可将检查主机1是否已经被连接到控制器1的NVMe识别命令发出到存储设备。

在本文中描述的一或多个实施例中,当图6中所展示的设备配置经实施于存储设备中时,设备可向主机1提供经由控制器1对命名空间1的存储存取。在按下“OK”按钮490之后,如果系统检测到任何配置/设计错误,那么系统就可提示适当警告并等待进行校正。在按下“取消”按钮491之后,可取消当前虚拟子系统(例如虚拟子系统“SB1”)的配置,或可删除当前虚拟子系统。在按下“OK”按钮490之后,如果系统成功地验证了虚拟子系统的配置GUI中的所有实体及其间的连接性(即,确认不存在配置/设计错误),那么系统可生成目标存储设备(例如设备130)的设备配置。在本文中描述的一或多个实施例中,设备配置可包含实施在虚拟子系统GUI 430中所呈现的第一虚拟子系统的配置的NVMe或NVMeoF命令。在本文中描述的一或多个实施例中,设备配置可经存储于存储设备中的数据库(例如,图1B中的设备130中的配置数据库133)中。举例来说,在创建或编辑子系统的配置之后,按下OK按钮“编译”且格式化目标存储设备的子系统的配置、生成设备配置、且将设备配置存储于目标存储设备的配置数据库中。存储于配置数据库中的设备配置如果被存储设备130执行,那么可公开存储设备130作为由配置指定的虚拟子系统。

在本文中描述的一或多个实施例中,设备配置可为文本或二进制的配置脚本或文件,其可由目标存储设备执行且包含实施在虚拟子系统GUI 430中所呈现的第一虚拟子系统的配置的NVMe或NVMeoF命令。配置脚本如果被存储设备130执行,那么可公开存储设备130作为由配置指定的虚拟子系统。举例来说,在按下“OK”按钮490之后,如果系统成功地确认了不存在配置/设计错误且成功地生成了配置脚本,那么系统可显示指示“生成配置脚本…点击此处下载”的消息492。用户可通过点击嵌入于消息492中的下载链接493将经生成配置脚本下载为文件。

图7展示根据本发明的一或多个实施例的用于创建虚拟NVMe实体的方法。所述方法可在包含处理器及存储器的虚拟子系统配置系统(例如,图1B中的主机101或102或图3中的计算系统3200)中提供虚拟子系统的配置,其可提供多个主机(例如,图1A中的主机1到K)与多个存储装置(例如,图1B中的SSD 132)之间的连接性。简要地进行概述,方法包含个步骤702到712。在步骤702,系统使计算机系统的用户能创建第一虚拟子系统的配置指示。在步骤704,系统使用户能创建第一控制器的指示。在步骤706,系统使用户能创建第一命名空间的指示。在步骤708,系统使用户能创建第一主机的指示。在步骤710,系统使用户能创建控制器与命名空间之间或主机与命名空间之间的连接性的指示。在步骤712,系统在设备中实施第一虚拟子系统的配置。其它实施例含有额外步骤或比图7中所展示更少的步骤。

更详细地,在步骤702,系统可使计算机系统(例如,图1B中的主机101或102或图3中的计算系统3200)的用户能创建第一虚拟子系统(例如,图4A中的虚拟系统“SB1”)的配置(例如,图4A中的虚拟子系统GUI 430)指示,其配置一或多个所述多个主机与多个存储器装置中的一或多者之间的连接性。系统可使用户能在第一虚拟子系统的配置指示中创建多个存储器装置(例如,图4A中的SSD 441到448)的指示。每一存储装置的指示可包含每一存储装置的可用存储空间的指示(例如,图4A中的SSD 441的空体积)。多个存储装置的指示可包含多个存储装置的总可用存储空间的指示(例如,图4A中的条状物449中的总容量)。

在步骤704,系统可使用户能在第一虚拟子系统的配置指示中创建第一控制器(例如,图4C中的控制器1(433))的指示。系统可使用户能创建第二控制器的指示。

在步骤706,系统可使用户能在第一虚拟子系统的配置指示中创建与多个存储装置中的一者相关联的第一命名空间(例如,图4D中的命名空间1(434))的指示。系统可使用户能创建与多个存储装置中的一者相关联的第二命名空间的指示。

在步骤708,系统可使用户能在第一虚拟子系统的配置指示中创建第一主机(例如,图4E中的主机1(455))的指示。系统可使用户能创建第二主机的指示。

在步骤710,系统可使用户能在第一虚拟子系统的配置指示中创建控制器(例如,图5A中的控制器1(433))与命名空间(例如,图5A中的命名空间1(434))之间的连接性(例如,图5A中的连接线435)指示或主机(例如,图5B中的主机1(455))与控制器(例如,图5B中的控制器1(433))之间的连接性(例如,图5B中的连接线436)指示。

在步骤712,系统可在设备(例如,图1B中的存储设备130)中实施第一虚拟子系统的配置以致使设备向第一主机(例如,图6中的主机1(455))提供经由第一控制器(例如,图6中的控制器1(433))对第一命名空间(例如,图6中的命名空间1(434))的存储存取。

图8展示根据本发明的一或多个实施例的用于创建虚拟NVMe实体之间的连接性(例如,图5A中的连接线435或图5B中的连接线436)的方法。简要地进行概述,方法包含步骤802到804。在步骤802,系统使用户能选择经指示第一控制器及经指示第一命名空间、及创建第一控制器与第一命名空间之间的连接性的指示。在步骤804,系统使用户能选择经指示第一主机及经指示第一控制器、及创建第一主机与第一控制器之间的连接性的指示。其它实施例含有额外步骤或比图8中所展示更少的步骤。

更详细地,在步骤802,系统可使用户能选择经指示第一控制器(例如,图5A中的控制器1(433))及经指示第一命名空间(例如,图5A中的命名空间1(434))、及在第一虚拟子系统的配置指示中创建第一控制器与第一命名空间之间的连接性(例如,图5A中的连接线435)指示。第一控制器与第一命名空间之间的连接性的指示可包含第一控制器的指示与第一命名空间的指示之间的线。指示具有第一带宽或每秒输入/输出(IOPS)的连接性的第一线的粗细可大于指示具有小于第一带宽或IOPS的第二带宽或IOPS的连接性的第二线的粗细。

在步骤804,系统可使用户能选择经指示第一主机(例如,图5B中的主机1(435))及经指示第一控制器(例如,图5B中的控制器1(433))、及在第一虚拟子系统的配置指示中创建第一主机与第一控制器之间的连接性(例如,图5B中的连接线436)指示。第一主机与第一控制器之间的连接性的指示可包含第一主机的指示与第一控制器的指示之间的线。指示具有第一带宽或每秒输入/输出(IOPS)的连接性的第一线的粗细可大于指示具有小于第一带宽或IOPS的第二带宽或IOPS的连接性的第二线的粗细。

图9展示根据本发明的一或多个实施例的用于基于经创建虚拟NVMe实体(例如,图6中的控制器1(433)、命名空间1(434)及主机1(455))创建设备配置的方法。简要地进行概述,方法包含步骤902到904。在步骤902,系统创建设备配置。在步骤904,系统在设备中实施经创建设备配置。其它实施例含有额外步骤或比图9中所展示更少的步骤。

更详细地,在步骤902,系统可在设备(例如,图1B中的存储设备130)中实施第一虚拟子系统(例如,图6中的虚拟子系统“SB1”)的配置以致使设备向第一主机(例如,图6中的主机1(455))提供经由第一控制器(例如,图6中的控制器1(433))对第一命名空间(例如,图6中的命名空间1(434))的存储存取。在实施第一虚拟子系统的配置时,系统可通过编译第一虚拟子系统的配置的指示来创建设备配置。

在步骤904,系统可在设备(例如,图1B中的存储设备130)中实施经创建设备配置以致使设备向第一主机提供经由第一控制器对第一命名空间的存储存取。

虽然参考本发明的特定实施例描述且说明了本发明,但这些描述及说明不具限制性。所属领域的技术人员应理解,可作出各种改变且可替代等效物,而不会背离由所附权利要求书所界定的本发明的真正精神及范围。说明可能不一定按比例绘制。在本发明的艺术表现形式与实际设备之间由于制造工艺及公差可能存在差异。可存在未明确说明的本发明的其它实施例。应将说明书及图式视为说明性而非限制性的。可作出修改来使特定情况、材料、组成物质、方法、或过程适应本发明的目的、精神及范围。所有此类修改都希望在随附到其的权利要求书的范围内。虽然参考按特定顺序执行的特定操作描述了本文中揭示的方法,但应理解,这些操作可经组合、细分、或重新排序以在不背离本发明的教示的情况下形成等效物。因此,除非本文中明确指示,否则操作的顺序及分组不受限制。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号