CN114667506A - 多物理功能非易失性存储器设备的管理 - Google Patents

多物理功能非易失性存储器设备的管理 Download PDF

Info

Publication number
CN114667506A
CN114667506A CN202080075544.8A CN202080075544A CN114667506A CN 114667506 A CN114667506 A CN 114667506A CN 202080075544 A CN202080075544 A CN 202080075544A CN 114667506 A CN114667506 A CN 114667506A
Authority
CN
China
Prior art keywords
physical function
mfnd
request
child
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080075544.8A
Other languages
English (en)
Inventor
寇磊
S·C-C·李
邹浩源
杨亮
朴轸焕
Y·邓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN114667506A publication Critical patent/CN114667506A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

所公开的技术包括用于管理多物理功能NVMe设备(“MFND”)的功能和由MFND提供的物理功能(“PF”)。例如,主机设备可以发现MFND、查询MFND的能力,并且在用户模式和超级管理员模式之间改变MFND的操作模式。主机还可以利用所公开的技术来创建和删除MFND上的各个子PF。所公开的技术还包括用于管理与MFND的各个PF相关联的设置的功能。例如,主机可以查询和修改与MFND的各个子PF相关联的设置。所公开的技术还包括用于管理由MFND的各个PF提供的QoS的功能。例如,主机还可以查询和修改由MFND的各个子PF提供的QoS。

Description

多物理功能非易失性存储器设备的管理
背景技术
快速非易失性存储器(“NVMe”)是一种开放式主机控制器接口和存储协议规范,用于访问经由快速外围组件互连(“PCIe”)总线附接的非易失性存储设备。某些设备可以展示(expose)多个PCIe物理功能(“PF”),诸如独立的NVMe控制器。这些类型的设备在本文中可以被称为多物理功能NVMe设备(“MFND”)。
在MFND中,一个PF(在本文中可以被称为“父PF”)可以充当父控制器以接收和执行管理命令。MFND上的其他物理功能(在本文中可以被称为“子PF”或者“(多个)子PF”)可以充当子控制器,子控制器表现得类似于标准NVMe控制器。通过这种机制,MFND可以在虚拟机(“VM”)之间或者在裸金属实例之间使能输入/输出(“I/O”)资源的有效共享。例如,子PF可以通过各种直接硬件访问技术(诸如直接HYPER-V NVMe或者离散设备分配(“DDA”)被直接分配给不同的VM并且被它们利用。
通过上述机制,单个MFND所展示的子PF可以作为针对各个VM的多个单独的物理设备而出现。这允许各个VM直接利用由MFND提供的可用存储空间的部分,同时减少了中央处理单元(“CPU”)和管理程序开销。
然而,当现有MFND以上述方式与VM一起使用时,现有MFND具有限制其功能方面的局限性。作为一个具体的示例,服务质量(“QoS”)水平通常在当前MFND的生命周期内是固定的。作为另一示例,当前MFND不能向主机计算设备提供关于子PF状态的详细信息。当前MFND还可以受到其他技术限制,其中一些技术限制将在下面详细描述。
针对这些和其他技术挑战,本文提出了本公开。
发明内容
本文公开了用于管理多物理功能NVMe设备(“MFND”)的技术。通过所公开的技术的实现,MFND可以展示用于管理物理功能、管理与各个物理功能相关联的设置以及管理由各个物理功能提供的QoS的功能。通过该功能的使用,由MFND提供的PF可以被有效地配置为以最适合于特定主机和VM配置的方式操作,并且可以比先前的MFND实现更高效地操作。本文未具体提及的其他技术益处也可以通过所公开主题的实现来实现。
管理MFND的子物理功能
如上文简述和下文详述,所公开的技术包括管理MFND和MFND提供的物理功能的功能。例如,并且不限于,所公开的技术的实现可以使能主机计算设备发现MFND、查询MFND的能力,并且在用户模式和超级管理员模式之间改变MFND的操作模式。主机计算设备也可以利用所公开的技术创建和删除MFND上的各个子物理功能。
管理与MFND的子物理功能相关联的设置
所公开的技术还包括用于管理与MFND的各个物理功能相关联的设置的功能。例如,但不限于,所公开的技术的实现可以使能主机计算设备查询和修改与MFND的各个子物理功能相关联的设置。
管理由MFND的子物理功能所提供的QoS
所公开的技术还包括管理由MFND的各个物理功能所提供的QoS的功能。例如,并且不限于,所公开的技术的实现还可以使得主机计算设备能够查询和修改由MFND的各个子物理功能所提供的QoS。
应当认识到,上述主题可以被实现为计算机控制的装置、计算机实现的方法、计算设备或者诸如计算机可读介质的制造品。通过阅读下面的详细描述和查看相关联的附图,这些和各种其他特征将是明显的。
本发明内容被提供从而以简化形式介绍所公开的技术的一些方面的简要描述,这些方面将在下文的具体实施方式中被还描述。本发明内容不旨在标识所要求保护的主题的关键特征或者必要特征,本发明内容也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决本公开的任何部分中提到的任何或者所有缺点的实现。
附图说明
图1是示出了根据一个实施例的配置有本文所公开的用于管理物理功能的功能的MFND的配置和操作的方面的计算架构图;
图2是示出了根据本文所公开的一个实施例的例程200的流程图,该例程200说明了用于管理MFDN的子物理功能的方法的各方面;
图3是示出了根据本文所公开的一个实施例的参考图2描述的用于管理MFDN的子物理功能的过程的附加方面的状态图;
图4是示出了可以充当实现本文所提出的技术的各方面的MFDN的主机的计算设备的说明性计算机硬件和软件架构的计算机架构图;以及
图5是示出了其中对实现所公开的技术的MFDN进行托管的计算设备可以被利用的计算环境的说明性配置的计算网络架构图。
具体实施方式
以下详细说明针对管理多物理功能非易失性存储设备的技术。如上面简要讨论的,实现所公开的技术的MFND可以展示用于管理物理功能、管理与各个物理功能相关联的设置以及管理由各个物理功能提供的QoS的功能。通过使用该功能,由MFND提供的PF可以被有效地配置为以最适合于特定主机和VM配置的方式操作,并且可以比先前的MFND实现更高效地操作。本文未具体提及的其他技术益处也可以通过所公开主题的实现来实现。
虽然本文所描述的主题在NVMe多功能物理功能设备的一般背景下被提出,但是本领域技术人员将认识到,本文所描述的技术可以与其他类型的多功能物理功能设备一起使用,包括其他类型的多功能物理功能非易失性存储器设备。本领域的技术人员还将理解,本文所描述的主题可以用各种计算机系统配置被实践,包括分布式计算环境中的主机计算机、手持设备、多处理器系统、基于微处理器的或者可编程的消费电子产品、嵌入在设备(诸如可穿戴计算设备、汽车、家庭自动化等)中的计算系统或者处理系统、小型计算机、大型计算机等。
在下面的详细描述中,参考了构成其部分的、通过图解特定配置或者示例的方式而被示出的附图。现在参考附图,将描述用于管理多物理功能非易失性存储器设备的各种技术的方面,在这些附图中相同的附图标记代表相同的元件。
图1是示出了根据一个实施例的配置有本文所公开的用于管理物理功能的功能的MFND 102的配置和操作的方面的计算架构图。如上面简要讨论的,在一些实施例中,MFND102是符合NVMe规范的设备。MFND 102可以由主机计算设备100(在本文中可以被简称为“主机”)来托管,例如在分布式计算网络中操作的服务器计算机,例如下面参考图5所描述的。
如上所述,NVMe是一种开放式逻辑设备接口规范,用于访问经由PCIe总线而附接的非易失性存储介质。NVMe规范针对基于PCIe的固态存储设备(“SSD”)定义了寄存器接口、命令集和特征集合,具有是跨大范围的非易失性存储器子系统的高性能和互操作性的目标。NVMe规范没有规定最终的使用模式,诸如固态存储、主存储器、高速缓冲存储器或者备份存储器。
NVMe针对小型计算机系统接口(“SCSI”)标准和高级技术附件(“ATA”)标准提供了替代方案,用于在主机计算设备100和外围目标存储设备之间进行连接和传输数据。与串行ATA(“SATA”)SSD一起使用的ATA命令集和针对串行附接SCSI(“SAS”)SSD的SCSI命令集是在硬盘驱动器(“HDD”)和磁带曾是主要存储介质的时代被开发的。NVMe是为了用于更快的媒体而被设计的。
与基于SAS和基于SATA的SSD相比,基于NVMe的PCIe SSD的主要优势在于主机软件堆栈中的降低的延迟、更高的每秒输入/输出操作(“IOPS”)和潜在地更低的功耗,具体取决于形状参数和使用的PCIe通道数量。
NVMe可以支持使用不同类型的非易失性存储器的SSD,包括NAND闪存和由英特尔和美光科技开发的3D XPOINT技术。支持的形式包括附加(add-in)PCIe卡、M.2SSD和U.22.5英寸SSD。NVMe参考驱动程序可以用于各种操作系统,包括WINDOWS和LINUX操作系统。因此,应当认识到,本文所描述的MFND 102不限于特定类型的非易失性存储器、形式因素或者操作系统。
如上文简要所述,本文所描述的MFND 102包括向主机计算设备100展示多个PF112A至112N的能力。在一个实施例中,每个PF112A至112N是独立的NVMe控制器。在其他实施例中,PF 112A至112N是其他类型的控制器。在其他实施例中,至少多个PF 112A至112N是独立的NVMe控制器,并且至少一个不同的PF 112A至112N是非NVME控制器。MFND 102中的一个PF 112A充当父控制器,该PF 112A在本文中可以被称为“父PF 112A”或者“父控制器112A”。例如,在一个实施例中,父PF 112A是MFND 102的特许的PCIe函数零。在这点上,应当理解在其他实施例中,父控制器可以被配置为另一PCIe函数号。在一些实施例中,父PF 112A和子PF也可以是不同于NVMe设备的设备类型。
父PF 112A可以充当父控制器以接收和执行由根分区108生成的管理命令110。具体地,如下面更详细描述的,父PF 112A可以管理子PF 112B-112N,例如通过创建、删除、修改和查询子PF 112B-112N。
由MFND 102提供的其他物理功能112B-112N,其中至少一些在本文中可以被互换地称为“子PF 112B-112N”或者“子控制器112B-112N”,或者当不是父控制器的子控制器时在本文中被称为“其他PF 112B-112N”。子控制器是MFND设备102的常规PCIe物理功能。默认情况下,本公开将描述其中每个子控制器类似于常规并且独立的NVMe控制器而运转的实现。子控制器112B-112N可以支持由NVMe规范定义的管理命令和I/O命令。
通过使用由MFND 102展示的多个PF 112A至112N,MFND 102提供的I/O资源可以在VM 104A-104N之间被有效地共享。例如,子PF 112B-112N可以通过诸如直接HYPER-V NVMe或者DDA之类的各种直接硬件访问技术分别被直接分配给不同的VM 104A-104N。以这种方式,由单个MFND 102展示的子PF 112B-112N可以分别针对各个VM 104A-104N表现为多个单独的物理设备。这允许各个VM104A-104N直接利用由MFND 102提供的可用存储空间的相应部分,同时减少CPU和管理程序106的开销。
如上文简要讨论的,现有MFND以上述方式与VM 104一起使用时,现有MFND具有限制其功能方面的局限性。作为一个具体的示例,QoS水平通常在当前MFND的生命周期内是固定的。作为另一示例,当子PF 112被直接分配给VM时,当前MFND不能向主机100提供关于子PF 112的状态的详细信息。当前MFND还可能受到其他技术限制。
本文所提出的技术通过使能MFND 102的父控制器112A动态地创建和删除子PF112B-112N,解决了这些和潜在的其他技术考虑。父控制器112A还可以定义给定子PF 112B-112N可以支持的命令。此外,父控制器112A可以针对每个子控制器112B-112N设置QoS,这可以防止具有繁重工作负载的VM 104影响其他VM 104的设备102的性能。使用所公开的技术,父控制器112A还可以具有对每个子控制器112B-112N的操作状态的可见性,即使当子控制器被直接分配给VM时。下面将提供关于这些方面的附加细节。
在一些配置中,主机计算设备100在分布式计算网络(诸如以下关于图5所描述的网络)中操作。此外,主机计算设备100执行主机代理116和管理应用编程接口(“API”)118,以便使得能够访问本文所公开的功能的各方面。
主机代理116可以接收来自其他组件(诸如分布式计算网络(诸如下文关于图5所描述的分布式网络)中的其他组件)的命令,并且调用管理API 118来实施该命令。特别地,管理API 118可以向父PF112A发出管理命令,以执行本文描述的各种功能。下面描述关于由管理API 118向主机代理116展示的用于实现本文所公开的功能的各种方法的细节。
在一些实施例中,MFND 102具有两种操作模式:常规用户模式和超级管理员模式。在常规用户模式中,仅只读功能可以被执行,例如用于获得设备102的能力的方法(在本文中可以被称为“GetDeviceCapability”方法)和用于获得设备102上的物理功能112的列表的方法(在本文中可以被称为“GetPhysicalFunctionList”方法),这将在下面详细描述。
本文所描述的非只读管理功能(例如,创建/删除物理功能,设置针对物理功能的QoS等)必须在超级管理员模式下被执行。如果试图在常规用户模式下执行这些功能,错误将会被返回(在本文中可以被称为“ERROR_ACCESS_DENIED”错误)。在一些实施例中,API118展示了用于获得设备操作模式的方法(在本文中可以被称为“GetDeviceOperationMode”方法)和切换设备操作模式的方法(在本文中可以被称为“SwitchDeviceOperationMode”方法)。
管理MFND的子物理功能
如上文简述和下文详述,所公开的技术包括用于管理MFND 102的功能和由MFND102提供的子PF 112B-112N。例如,但不限于,所公开的技术的实现可以使得主机计算设备100能够发现MFND102,查询MFND 102的能力,在用户模式和超级管理员模式之间改变MFND102的操作模式,以及执行其他功能。
主机计算设备100还可以利用所公开的技术在MFND 102上创建和删除各个子物理功能112B-112N。一旦子物理功能已经被创建,主计算设备100可以通过父物理功能取回描述子物理功能112的状态的数据。此外,父物理功能可以从子物理功能接收事件通知,并且针对子物理功能执行操作。下面提供了关于这些方面的细节。
图2是示出了根据本文所公开的一个实施例的例程200的流程图,该例程200说明了用于管理MFDN的子物理功能的方法的各方面。应当理解,这里参考图2和其他附图描述的逻辑操作可以被实现为:(1)在计算设备上运行的计算机实现的动作或者程序模块的序列,和/或(2)计算设备内互连的机器逻辑电路或者电路模块。
本文所公开的技术的具体实现是取决于计算设备的性能和其他要求的选择问题。因此,这里描述的逻辑操作被不同地称为状态、操作、结构设备、动作或者模块。这些状态、操作、结构设备、动作和模块可以用硬件、软件、固件、专用数字逻辑及其任何组合来实现。应当理解,比图中所示和本文所描述的更多或者更少的操作可以被执行。这些操作也可以以不同于这里描述的顺序被执行。
例程200始于操作202,在操作202处主机代理116可以列举主机100中存在的MFND设备102中的部分或者全部。一种用于列举连接到主机100的MFND设备102的特定方法(在本文可以被称为“GetMFNDList”方法)返回连接到主机100的所有MFND设备102的设备路径。如果没有MFND设备102被连接,或者没有设备被列举,则GetMFNDList方法返回错误代码。
例程200从操作202进行至操作204,在操作204处主机代理116可以列举当前存在于在操作202处所标识的MFND设备102上的子PF 112B-112N。一种用于列举MFND设备102上的子PF 112A至112N的方法(在本文中可以被称为“GetChildPhysicalFunctionList”方法)将特定MFND设备102的标识符(例如,句柄)作为输入,并且返回在所标识的设备上的所有子PF 112B-112N的适配器序列号。
例程200从操作204进行至操作206,在操作206处主机代理116可以确定在操作202处所标识的MFND设备102的能力。例如,主机代理116可以确定被MFND设备102支持的子PF112B-112N的最大数量。
用于获得MFND设备102能力的一种方法(在本文中可以被称为“GetDeviceCapability”方法)将特定MFND设备102的标识符(例如,句柄)作为输入,并且返回指定所标识的设备的能力的设备能力结构。在一个实施例中,设备能力结构包括标识最大和可用子PF112B-112N、I/O队列对计数、中断计数、命名空间计数、存储大小、带宽和所标识设备的IOPS的数据。在其他实施例中,设备能力结构可以包括附加数据或者替代数据。
一旦确定了MFND设备102的能力,例程200可以从操作206进行至操作208,在操作208处在MFND设备102上子PF 112B-112N可以被创建或者被删除。默认情况下,MFND 102只有一个PF,即父PF 112A,父PF 112A被保留用于从根分区108接收管理命令110。
为了以下述方式将各个子PF 112B-112N分配给VM 104A-104N,子PF 112B-112N首先被创建。新创建的子PF 112B-112N将在重启后出现在主机100上。一种用于创建子PF112B-112N的方法(在本文中可以被称为“CreateChildPhysicalFunction”方法)将MFND102的标识符(例如句柄)和指向包含新的子PF 112的设置的数据结构的指针作为输入。该数据结构可以包括指定将被分配给新的子PF 112的资源(例如,新的PF 112可以使用的存储空间、名称空间和中断向量的数量)和QoS的数据。如果成功完成,CreateChildPhysicalFunction方法返回新的子PF 112的标识符(例如,序列号)作为输出。
子PF 112B-112N及其设置将在主机100重启期间持续存在,因此将要支持的子PF112B-112N的最大数量可以被初始地创建,以避免将来重启主机100。如果MFND 102已经具有子PF 112B-112N,作为制造配置或者先前用户配置的结果,附加子PF 112B-112N可以被创建或者被删除,以便为MFND 102配置将被支持的最大数量的子PF 112B-112N。
一种用于删除子PF 112B-112N的方法(在本文中可以被称为“DeleteChildPhysicalFunction”方法)将MFND 102的标识符(例如,句柄)和要被删除的子PF 112的序列号作为输入。如果所标识的子PF 112被成功删除,则DeleteChildPhysicalFunction返回成功消息,否则返回错误代码。
一旦主机100重启,例程200从操作210进行至操作212,在操作212处由MFND 102提供的子PF 112B-112N可以被分配给VM 108A至108N。如上面简要描述的,新创建的子PF112B-112N具有零存储大小、最小的灵活资源,并且没有QoS。因此,主机100需要在使用DDA、直接HYPER-V NVMe或者其他直接存储分配技术将资源分配给VM 104之前向子PF 112B-112N规定资源(NVM空间、I/O队列对计数等)。
子PF 112B-112N也可以在对VM 104进行分配之前被安全擦除。此工作流中不涉及主机重启。一种用于安全地擦除子PF 112B-112N的方法(在本文中可以被称为“SecureEraseChildPhysicalFunction”方法)将MFND 102的标识符(例如,句柄)和要被擦除的子PF112的序列号作为输入。如果所标识的子PF 112被成功擦除,则SecureEraseChildPhysicalFunction返回成功消息,否则返回错误代码。例程200从操作212前进到操作214,在操作214处结束。
图3是示出了根据本文所公开的一个实施例的参考图2描述的用于管理MFDN 102的子物理功能112B-112N的过程的附加方面的状态图。如图3所示以及上面简要描述的,当新的子PF 112B-112N被创建时,新的子PF 112B-112N具有零存储和QoS(状态302)。因此,在将新的子PF 112B-112N分配给VM 104之前,新的子PF112B-112N必须以上述方式规定其存储大小和QoS(状态304)。
一旦新的子PF 112B-112N的大小和QoS被规定,就可以将新的子PF 112B-112N分配给VM 104(状态306)。当VM 104使用新的子PF 112B-112N时,新的子PF 112B-112N的QoS可以被改变。下面提供了关于该过程的细节。
当主机代理116删除VM 104(即,状态306->状态304)时,它还应当安全擦除分配给该VM 104的所有子PF 112B-112N,从PF112B-112N解除资源分配,并且将其设置为空闲(状态304),以便子PF 112B-112N可以被分配给其他VM 104。此工作流中不涉及主机重启。
如上所述,一旦子物理功能被创建,主计算设备100可以通过父物理功能取回描述子物理功能的状态的数据。该状态数据可以包括描述子物理功能的健康状况和分配给其的资源的数据、提供关于性能的信息的运行时间状态以及其他类型的信息。此外,也如上面简要描述的,父物理功能可以从子物理功能接收事件的通知。这种能力允许主机知道子物理功能是否停止工作或者遇到了阻止其工作的问题。父物理功能也可以执行针对子物理功能的操作,诸如上述安全地擦除子物理功能的操作。
管理与MFND的子物理功能相关联的设置
如上所述,所公开的技术还包括用于管理与MFND 102的各个子PF 112相关联的设置的功能。例如,但不限于,所公开的技术的实现可以使得主机代理116能够查询和修改与MFND 102的各个子PF112B-112N相关联的设置。
一种用于查询子PF 112B-112N的设置的方法(在本文中可以被称为“QueryChildPhysicalFunctionSettings”方法)将MFND 102的标识符(例如,句柄)和子PF 112的标识符(例如,序列号)作为输入。QueryChildPhysicalFunctionSettings方法返回指向包含所标识的子PF 112的当前设置的数据结构的指针。如上所述,这种数据结构可以包括指定当前分被配给所标识的子PF 112的资源(例如,PF 112可以使用的存储空间、命名空间和中断向量的数量)和QoS的数据。
一种用于修改子PF 112B-112N的设置的方法(在本文中可以被称为“UpdateChildPhysicalFunctionSettings”方法)将MFND 102的标识符(例如,句柄)、子PF 112的标识符(例如,序列号)和包含子PF 112的设置的数据结构的指针作为输入。如在上面的示例中,数据结构可以包括指定要分配给所标识的子PF 112的资源(例如,所标识的PF 112要使用的存储空间、名称空间和中断向量的数量)和QoS的数据。如果所提供的设置被成功地应用于所标识的子PF112,则UpdateChildPhysicalFunctionSettings方法返回成功消息,否则返回错误代码。
所公开的技术还可以使能父PF 112A启用/禁用子PF 112B-112N可以发出的命令。例如,父PF 112A可以配置子PF 112B-112N,使得它们不能发布用于更新MFND 102的固件的命令或者用于执行特定于供应商的命令。
所公开的技术还包括暂停子PF 112B-112N的方法(在本文中可以被称为“PauseChildPhysicalFunction”方法)、恢复子PF 112B-112N的方法(在本文中可以被称为“ResumeChildPhysicalFunction”方法)、保存子PF 112B-112N的状态的方法(在本文中可以被称为“SaveChildPhysicalFunctionStates”方法)和恢复子PF 112B-112N的状态的方法(在本文中可以被称为“ResumeChildPhysicalFunctionStates”方法)。这些方法可以在更新MFND 102的固件的工作流程中被使用。
PauseChildPhysicalFunction方法被调用时,相应的被调用的子PF 112执行已从I/O提交队列中取回的所有I/O请求,将I/O请求的结果放入I/O完成队列,并且暂停自身。当暂停时,子PF 112将不会从I/O提交队列中取回进一步的I/O请求,直到使用ResumeChildPhysicalFunction方法将其取消暂停。
SaveChildPhysicalFunctionStates方法将子PF 112的状态保存在设备存储中并且RestoreChildPhysicalFunctionState将恢复先前存储的状态。如上所述,PauseChildPhysicalFunction方法、SaveChildPhysicalFunctionStates方法、RestoreChildPhysicalFunctionState方法和ResumeChildPhysicalFunction方法通常仅在对MFND102的固件进行更新时被使用。
管理由MFND的子物理功能所提供的QoS
如上所述,所公开的技术还包括用于管理MFND 102的各个PF112提供的QoS的功能。例如但不限于,所公开的技术的实现还可以使得主机代理116能够查询和修改由MFND102的各个子PF112B-112N提供的QoS。
在一些实施例中,MFND 102支持多个存储服务水平协议(“SLA”)。每个SLA定义要由PF 112A-112N提供的不同的QoS等级。可以被MFND 102上的子PF 112支持的QoS水平包括,但不限于:“保留模式”,其中子PF 112至少接收指定的最小量的带宽和IOPS;“限制模式”,其中子PF 112最多接收指定的最大量的带宽和IOPS;和“混合模式”,其中子PF 112至少接收指定的最小量的带宽和IOPS,但是至多接收指定的最大量的带宽和IOPS。其他QoS级别可以在其他实施例中被实现。
本文所公开的实施例允许父PF 112A为单个MFND 102中的每个子PF 112B-112N单独定义QoS。例如,父PF 112A可以定义要由每个子PF 112B-112N支持的最小和/或最大带宽和/或IOPS。上述UpdateChildPhysicalFunctionSettings可以被利用以设置或者修改子PF112B-112N的QoS。
诸如介质性能下降的某些异步事件可以导致主机代理116改变子PF 112B-112N的QoS。在这种场景下,主机代理116可以标识子PF112B-112N,其QoS需要被更新,并且调用管理API 118来改变针对该功能的QoS。此工作流中不涉及主机重启。
图4是示出了可以充当实现本文所提出的技术的各方面的MFDN102的主机100的计算设备的说明性计算机硬件和软件架构的计算机架构图。具体地,图4所示的架构可以被用来实现服务器计算机、移动电话、电子阅读器、智能电话、台式计算机、AR/VR设备、平板计算机、膝上型计算机或者充当针对MFDN 102的主机100的另一类型的计算设备。
图4所示的数据处理系统400包括中央处理单元402(“CPU”);系统存储器404,包括随机存取存储器406(“RAM”)和只读存储器(“ROM”)408;以及将存储器404耦合到CPU 402的系统总线410。基本输入/输出系统(“BIOS”或者“固件”)包含有助于诸如在启动时在数据处理系统400内的元件之间传输信息的基本例程,该系统可以被存储在ROM 408中。数据处理系统400还包括大容量存储设备412,用于存储操作系统422、应用程序和其他类型的程序。例如,大容量存储设备412可以存储主机代理116和管理API 118。大容量存储设备412也可以被配置为存储其他类型的程序和数据。
大容量存储设备412通过大容量存储控制器(未示出)连接到CPU 402,该大容量存储控制器被连接到总线410。大容量存储设备412及其相关联的计算机可读介质为数据处理系统400提供非易失性存储。尽管这里包含的计算机可读介质的描述指的是大容量存储设备,诸如硬盘、CD-ROM驱动器、DVD-ROM驱动器或者USB存储密钥,但是本领域技术人员应当认识到,计算机可读介质可以是可以由数据处理系统400访问的任何可用计算机存储介质或者通信介质。
通信介质包括计算机可读指令、数据结构、程序模块或者调制数据信号(诸如载波或者其他传输机制)中的其他数据,并且包括任何递送介质。术语“调制数据信号”指的是具有其特征中的一个或者多个特征以某种方式被改变或者被设置,以便对信号中的信息进行编码的信号。作为示例而不是限制,通信介质包括有线介质(诸如有线网络或者直接有线连接)和无线介质(诸如声学、射频、红外和其他无线介质)。上述任何项的组合还应当被包括在计算机可读介质的范围内。
作为示例而不是限制,计算机存储介质可以包括以任何方法或者技术被实现,用于存储信息(诸如计算机可读指令、数据结构、程序模块或者其他数据)的易失性介质和非易失性介质、可移除介质和不可移除介质。例如,计算机存储介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或者其他固态存储技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、BLU-RAY或者其他光学存储设备、磁带盒、磁带、磁盘存储设备或者其他磁存储设备、或者可以被用于存储所需要的信息和可以由数据处理系统400访问的任何其他介质。出于权利要求的目的,短语“计算机存储介质”和其变型不包括波或者信号本身或者通信介质。
根据各种配置,数据处理系统400可以通过网络(诸如网络420)使用到远程计算机的逻辑连接,在网络环境中操作。数据处理系统400可以通过网络接口单元416连接到网络420,该网络接口单元416连接到总线410。应当理解,网络接口单元416也可以被用于连接到任何类型的网络和远程计算机系统。数据处理系统400也可以包括输入/输出控制器418,用于接收和处理来自若干其他设备(包括键盘、鼠标、触摸输入、电子笔(图4中未示出)或者物理传感器(诸如摄像机))的输入。类似地,输入/输出控制器418可以将输出提供给显示屏或者其他类型的输出设备(图4中也未示出)。
应当认识到,本文中所描述的软件组件在被加载到CPU 402中并且被执行时,可以将CPU 402和整个数据处理系统400从通用计算设备转换为专用计算设备,该专用计算设备被定制为支持本文中所提出的功能。CPU 402由任何数目的晶体管或者其他离散电路元件构建,它们可以单独地或者共同地假设任何数目的状态。更具体地,CPU 402可以响应于本文中所公开的软件模块中所包含的可执行指令作为有限状态机操作。这些计算机可执行指令可以通过指定CPU 402如何在状态之间转变来转换CPU 402,从而转换构成CPU 402的晶体管或者其他离散硬件元件。
对本文中所提出的软件模块进行编码也可以转换本文中所提出的计算机可读介质的物理结构。在该描述的不同实现中,物理结构的具体转换取决于各种因子。这些因子的示例包括但不限于被用于实现计算机可读介质的技术、计算机可读介质的特征是主存储装置还是辅助存储装置等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文中所公开的软件可以通过对半导体存储器的物理状态进行转换在计算机可读介质上被编码。例如,软件可以转换构成半导体存储器的晶体管、电容器或者其他离散电路元件的状态。软件也可以对这种组件的物理状态进行转换,以将数据存储在其上。
作为另一示例,本文中所公开的计算机可读介质可以使用磁性或者光学技术来实现。在这种实现中,本文中所提出的软件在磁性或者光学介质中被编码时可以对其物理状态进行转换。这些转换可以包括更改给定磁性介质中特定位置的磁性特性。这些转换还可以包括更改给定光学介质中特定位置的物理特征或者特性,以改变这些位置的光学特性。在不偏离本说明书的范围和精神的情况下,物理介质的其他转换是可能的,其中前面的示例只是为了便于这种讨论而被提供的。
鉴于上述情况,应当理解,为了存储和执行本文中所提出的软件组件,在数据处理系统400中发生了许多类型的物理转换。还应当理解,图4中所示的数据处理系统400的架构或者类似的架构可以被用来实现其他类型的计算设备,包括手持式计算机、视频游戏设备、嵌入式计算机系统、移动设备(诸如智能电话、平板计算机和AR/VR设备)和本领域技术人员所知的其他类型的计算设备。还设想,数据处理系统400可能不包括图4中所示的所有组件,可以包括图4中未明确示出的其他组件或者可以利用与图4中所示的完全不同的架构。
图5是示出了其中对实现所公开的技术的MFDN 102进行托管的计算设备可以被利用的计算环境500的说明性配置的计算网络架构图。根据各种实现,分布式计算环境500包括在网络556上操作并且与之通信的计算环境502。一个或多个客户端设备506A至506N(以下统称和/或一般称为“客户端506”)可以经由网络504和/或其他连接(图5中未示出)与计算环境502通信。
在一个图示配置中,客户端506包括:计算设备506A(诸如笔记本计算机、台式计算机或者其他计算设备);平板计算设备(“平板计算设备”)506B;移动计算设备506C(诸如智能手机、车载计算机或者其他移动计算设备;或者服务器计算机506D)。应当认识到,任何数量的设备506可以与计算环境502通信。这里参考图5示出并且描述了设备506的示例计算架构。应当认识到,这里所示出和描述的所示出的设备506和计算结构仅是说明性的,不应被解释为以任何方式进行限制。
在所示配置中,计算环境502包括应用服务器508、数据存储装置510和一个或多个网络接口512。根据各种实现方式,应用服务器508的功能可以由作为网络504的部分执行或者与网络504通信的一个或者多个服务器计算机来提供。应用服务器508可以托管各种服务、虚拟机、门户和/或其他资源。应用服务器508也可以使用包括以这里描述的方式而被配置的MNFD 102的主机计算设备100被实现。
在所示配置中,应用服务器508托管一个或多个虚拟机514,用于托管应用、网络服务或者用于提供其他功能。应当认识到,这种配置仅仅是说明性的并且不应当被解释为以任何方式进行限制。应用服务器508还可以托管或者提供对一个或多个门户、链接页面、网站、网络服务和/或其他信息站点(例如,web门户516)的访问。
根据各种实现方式,应用服务器508还包括一个或多个邮箱服务518和一个或多个信息服务520。邮箱服务518可以包括电子邮件(“email”)服务。邮箱服务518还可以包括各种个人信息管理(“PIM”)服务,包括但不限于日历服务、联系人管理服务、协作服务和/或其他服务。消息服务520可以包括但不限于即时消息服务、聊天服务、论坛服务和/或其他通信服务。
应用服务器508还可以包括一个或多个社交网络服务522。社交网络服务522可以包括各种社交网络服务,包括但不限于用于共享或者发布状态更新、即时消息、链接、照片、视频和/或其他信息的服务;评论或者显示对文章、产品、博客或者其他资源的兴趣的服务;以及/或者其他服务。其他服务也是可能的,并且是可预期的。
社交网络服务522还可以包括评论、博客和/或微博服务。其他服务也是可能的,并且也在考虑之中。如图5所示,应用服务器508还可以托管其他网络服务、应用、门户和/或其他资源(“其他资源”)524。其他资源524可以包括但不限于文档共享、提出或者任何其他功能。
如上所述,计算环境502可以包括数据存储装置510。根据各种实现方式,数据存储装置510的功能由在网络504上操作或者与网络504通信的一个或多个数据库提供。数据存储装置510的功能也可以由被配置为托管计算环境502的数据的一个或多个服务器计算机来提供。数据存储装置510可以包括、托管或者提供一个或多个真实或者虚拟数据存储库526A至526N(以下统称和/或一般称为“数据存储库526”)。
数据存储库526被配置为托管由应用服务器508使用或者创建的数据和/或其他数据。尽管图5中未示出,但是数据存储库526也可以托管或者存储网页文档、文字处理文档、演示文档、数据结构和/或由任何应用程序或者另一模块使用的其他数据。数据存储库526的各方面可以与用于存储文件的服务相关联。
计算环境502可以与网络接口512通信或者被网络接口512访问。网络接口512可以包括各种类型的网络硬件和软件,用于支持两个或者更多个计算设备之间的通信,包括但不限于客户端506和应用服务器508。应当认识到,网络接口512也可以用于连接到其他类型的网络和/或计算机系统。
应当认识到,本文所描述的分布式计算环境500可以利用任何数量的虚拟计算资源和/或其它分布式计算功能实现本文所描述的至少一些软件元素的方面,所述虚拟计算资源和/或其它分布式计算功能可以被配置为执行本文所公开的软件组件的任何方面。
还应当认识到,本文所描述的公开内容还包括以下条款中阐述的主题:
条款1.一种计算机实现的方法,包括:在多物理功能非易失性存储器设备(MFND)的父物理功能处接收用以在所述MFND上创建子物理功能的请求;以及响应于所述请求,在所述MFND上创建所述子物理功能,并且响应于所述请求返回针对所述子物理功能的标识符。
条款2.根据条款1所述的计算机实现的方法,其中所述请求还指定要由所述子物理功能提供的资源,并且其中所述方法还包括:配置所述子物理功能以响应于所述请求提供所指定的所述资源。
条款3.根据条款1或者条款2中任一项所述的计算机实现的方法,其中所述请求还指定针对所述子物理功能的服务质量(QoS)级别,并且其中所述方法还包括:配置所述子物理功能以响应于所述请求提供所指定的所述QoS级别。
条款4.根据条款1至条款3中任一项所述的计算机实现的方法,其中所述MFND的所述父物理功能还被配置为:接收用以删除所述子物理功能的请求,并且响应于所述请求删除所述子物理功能。
条款5.根据条款1至条款4中任一项所述的计算机实现的方法,其中所述MFND的所述父物理功能还被配置为:接收用以列举当前在所述MFND上的子物理功能的请求,并且响应于所述请求返回标识当前在所述MFND上的所述子物理功能的数据。
条款6.根据条款1至条款5中任一项所述的计算机实现的方法,其中所述MFND的所述父物理功能还被配置为:接收针对所述子物理功能的设置的请求,并且响应于所述请求返回标识所述子物理功能的所述设置的数据。
条款7.根据条款1至条款6中任一项所述的计算机实现的方法,其中所述MFND的所述父物理功能还被配置为:接收用以修改所述子物理功能的所述设置的请求,并且响应于所述请求修改所述子物理功能的所述设置。
条款8.一种多物理功能非易失性存储器设备(MFND),包括:父物理功能,被配置为从主机计算设备接收在所述MFND上创建子物理功能的请求,并且响应于所述请求在所述MFND上创建所述子物理功能;以及所述子物理功能。
条款9.根据条款8所述的MFND,其中所述请求指定要由所述子物理功能提供的资源,并且其中所述父物理功能还用于:配置所述子物理功能以提供指定的所述资源。
条款10.根据条款8或者条款9中任一项的MFND,其中所述请求还指定所述子物理功能的服务质量(QoS)级别,并且其中所述父物理功能还操作以配置所述子物理功能以提供所指定的所述QoS级别。
条款11.根据条款8至条款10中任一项的MFND,其中所述父物理功能还被配置为:接收用以删除所述子物理功能的请求,并且响应于所述请求删除所述子物理功能。
条款12.根据条款8至条款11中任一项的MFND,其中所述父物理功能还被配置为:从所述子物理功能取回状态数据。
条款13.根据条款8至条款12中任一项的MFND,其中所述父物理功能还被配置为:从所述子物理功能接收事件通知。
条款14.根据条款8至条款13中任一项的MFND,其中父物理功能还被配置为:针对所述子物理功能执行操作。
条款15.一种非暂态计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令在由一个或者多个处理器执行时,使所述一个或者多个处理器:在多物理功能非易失性存储器设备(MFND)的父物理功能处接收在所述MFND上创建子物理功能的请求;以及响应于所述请求在所述MFND上创建所述子物理功能,并且响应于所述请求返回所述子物理功能的标识符。
条款16.根据条款15所述的非暂态计算机可读存储介质,其中所述请求还指定要由所述子物理功能提供的资源,并且其中所述计算机可读存储器具有存储在其上的进一步指令以配置所述子物理功能,用以响应于所述请求提供所指定的所述资源。
条款17.根据条款15或者条款16中任一项所述的非暂态计算机可读存储介质,其中所述请求还指定所述子物理功能的服务质量(QoS)级别,并且其中所述计算机可读存储器具有被存储在其上的进一步指令,所述进一步指令用以配置所述子物理功能,以响应于所述请求提供所指定的所述QoS级别。
条款18.根据条款15至条款17中任一项的非暂态计算机可读存储介质,其中所述MFND的所述父物理功能还被配置为:接收用以删除所述子物理功能的请求,并且响应于所述请求删除所述子物理功能。
条款19.根据条款15至条款18中任一项所述的非暂态计算机可读存储介质,其中所述MFND的所述父物理功能还被配置为:接收用以列举当前在所述MFND上的子物理功能的请求,并且响应于所述请求,返回标识当前在所述MFND上的所述子物理功能的数据。
条款20.根据条款15至条款19中任一项所述的非暂态计算机可读存储介质,其中所述MFND的所述父物理功能还被配置为:接收对所述子物理功能的设置的请求,并且响应于所述请求返回标识所述子物理功能的所述设置的数据。
虽然技术已经用特定于结构特征和/或方法动作的语言进行了描述,但是应当认识到,所附权利要求并不一定受限于所描述的特征或者动作。相反,特征和动作被描述为这种技术的示例实现。此外,上述主题可以被实现为计算机控制的设备、计算机进程、计算系统,或者诸如计算机可读存储介质之类的制品。
本文提出的示例方法的操作在单独的框中示出,并且参考这些框进行总结。这些方法被示为框的逻辑流程,其中每个框可以表示可以用硬件、软件或者其组合来实现的一个或者多个操作。在软件的背景中,操作代表被存储在一个或者多个计算机可读介质上的计算机可执行指令,这些指令在被一个或者多个处理器执行时使一个或者多个处理器能够执行所述的操作。
通常,计算机可执行指令包括例程、程序、对象、模块、组件、数据结构等,它们执行特定功能或实现特定抽象数据类型。操作被描述的顺序并不旨在被解释为限制,并且任何数目的所描述的操作可以按照任何顺序被执行,按照任何顺序被组合,被细分为多个子操作和/或被并行执行以实现所描述的进程。所描述的进程可以由资源执行,这些资源与一个或者多个设备(诸如一个或者多个内部或外部CPU或GPU)和/或一块或多块硬件逻辑(诸如FPGA、DSP或其他类型的加速器)相关联。
上述所有方法和进程都可以被体现在一个或者多个通用计算机或者处理器所执行的软件代码模块中,并且通过这些软件代码模块被完全自动化。代码模块可以被存储在任何类型的计算机可读存储介质或者其他计算机存储设备中。一些或全部的方法都可以被备选地体现在专门的计算机硬件中。
除非另有特别说明,否则条件语言,诸如除了别的之外的“可以”、“能够”、“可能”或“也许”,在上下文中被理解为表明某些示例包括某些特征、元件和/或步骤,而其他实施例不包括某些特征、元件和/或步骤。因此,这种条件语言通常并不旨在暗示,某些特征、元件和/或步骤是一个或者多个示例以任何方式所必需的或一个或者多个示例必须包括逻辑,用于决定某些特征、元件和/或步骤是被包括在任何特定示例中,还是要在任何特定示例中被执行,无论是否有用户输入或提示。除非另有特别说明,否则连接语言,诸如短语“X、Y或Z中的至少一个”被理解为表示项、术语等可以是X、Y或Z或其组合。
本文中所描述和/或附图中所描绘的流程图中的任何例程描述、元件或框应被理解为潜在地代表模块、段或代码的部分,它们包括一个或者多个可执行指令,用于实施例程中的特定逻辑功能或元件。备选实现被包括在本文中所描述的示例的范围内,其中元件或功能可以取决于就像本领域技术人员所理解的所涉及的功能而被删除或不按所示或所讨论的顺序被执行,包括基本上同步地或以相反的顺序。
应当强调的是,上述示例可能有许多变化和修改,其中的元件被理解为是其他可接受的示例。所有这些修改和变化都旨在被包括在本公开的范围内,并且由所附权利要求保护。

Claims (15)

1.一种计算机实现的方法,包括:
在多物理功能非易失性存储器设备(MFND)的父物理功能处接收用以在所述MFND上创建子物理功能的请求;以及
响应于所述请求,在所述MFND上创建所述子物理功能,并且响应于所述请求返回针对所述子物理功能的标识符。
2.根据权利要求1所述的计算机实现的方法,其中所述请求还指定要由所述子物理功能提供的资源,并且其中所述方法还包括:配置所述子物理功能以响应于所述请求提供所指定的所述资源。
3.根据权利要求1所述的计算机实现的方法,其中所述请求还指定针对所述子物理功能的服务质量(QoS)级别,并且其中所述方法还包括:配置所述子物理功能以响应于所述请求提供所指定的所述QoS级别。
4.根据权利要求1所述的计算机实现的方法,其中所述MFND的所述父物理功能还被配置为:接收用以删除所述子物理功能的请求,并且响应于所述请求删除所述子物理功能。
5.根据权利要求1所述的计算机实现的方法,其中所述MFND的所述父物理功能还被配置为:接收用以列举当前在所述MFND上的子物理功能的请求,并且响应于所述请求返回标识当前在所述MFND上的所述子物理功能的数据。
6.一种多物理功能非易失性存储器设备(MFND),包括:
父物理功能,被配置为从主机计算设备接收用以在所述MFND上创建子物理功能的请求,并且响应于所述请求在所述MFND上创建所述子物理功能;以及
所述子物理功能。
7.根据权利要求6所述的MFND,其中所述请求指定要由所述子物理功能提供的资源,并且其中所述父物理功能还操作以配置所述子物理功能以提供所指定的所述资源。
8.根据权利要求6所述的MFND,其中所述请求还指定针对所述子物理功能的服务质量(QoS)级别,并且其中所述父物理功能还操作以配置所述子物理功能以提供所指定的所述QoS级别。
9.根据权利要求6所述的MFND,其中所述父物理功能还被配置为:接收用以删除所述子物理功能的请求,并且响应于所述请求删除所述子物理功能。
10.根据权利要求6所述的MFND,其中所述父物理功能还被配置为:从所述子物理功能取回状态数据。
11.一种计算机可读存储介质,其上存储有计算机可执行指令,所述计算机可执行指令在由一个或者多个处理器执行时,使所述一个或者多个处理器:
在多物理功能非易失性存储器设备(MFND)的父物理功能处接收在所述MFND上创建子物理功能的请求;以及
响应于所述请求,在所述MFND上创建所述子物理功能,并且响应于所述请求返回针对所述子物理功能的标识符。
12.根据权利要求11所述的计算机可读存储介质,其中所述请求还指定要由所述子物理功能提供的资源,并且其中所述计算机可读存储具有被存储在其上的进一步指令,所述进一步指令用以配置所述子物理功能,以响应于所述请求提供所指定的所述资源。
13.根据权利要求11所述的计算机可读存储介质,其中所述请求还指定针对所述子物理功能的服务质量(QoS)级别,并且其中所述计算机可读存储具有被存储在其上的进一步指令,所述进一步指令用以配置所述子物理功能,以响应于所述请求提供所指定的所述QoS级别。
14.根据权利要求11所述的计算机可读存储介质,其中所述MFND的所述父物理功能还被配置为:接收用以删除所述子物理功能的请求,并且响应于所述请求删除所述子物理功能。
15.根据权利要求11所述的计算机可读存储介质,其中所述MFND的所述父物理功能还被配置为:接收用以列举当前在所述MFND上的子物理功能的请求,并且响应于所述请求返回标识当前在所述MFND上的所述子物理功能的数据。
CN202080075544.8A 2019-11-01 2020-10-21 多物理功能非易失性存储器设备的管理 Pending CN114667506A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962929739P 2019-11-01 2019-11-01
US62/929,739 2019-11-01
US16/797,713 2020-02-21
US16/797,713 US11237761B2 (en) 2019-11-01 2020-02-21 Management of multiple physical function nonvolatile memory devices
PCT/US2020/056549 WO2021086693A1 (en) 2019-11-01 2020-10-21 Management of multiple physical function non-volatile memory devices

Publications (1)

Publication Number Publication Date
CN114667506A true CN114667506A (zh) 2022-06-24

Family

ID=75688975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080075544.8A Pending CN114667506A (zh) 2019-11-01 2020-10-21 多物理功能非易失性存储器设备的管理

Country Status (4)

Country Link
US (1) US11237761B2 (zh)
EP (1) EP4052126A1 (zh)
CN (1) CN114667506A (zh)
WO (1) WO2021086693A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11561735B2 (en) * 2021-06-16 2023-01-24 Western Digital Technologies, Inc. Latency on indirect admin commands
US20230244390A1 (en) * 2022-01-28 2023-08-03 Microsoft Technology Licensing, Llc Collecting quality of service statistics for in-use child physical functions of multiple physical function non-volatile memory devices
US11977785B2 (en) * 2022-02-08 2024-05-07 Microsoft Technology Licensing, Llc Non-volatile memory device-assisted live migration of virtual machine data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130159572A1 (en) * 2011-12-16 2013-06-20 International Business Machines Corporation Managing configuration and system operations of a non-shared virtualized input/output adapter as virtual peripheral component interconnect root to multi-function hierarchies
US9594592B2 (en) 2015-01-12 2017-03-14 International Business Machines Corporation Dynamic sharing of unused bandwidth capacity of virtualized input/output adapters
AU2016414391B2 (en) 2016-11-09 2019-01-17 Huawei Technologies Co., Ltd. Packet processing method in cloud computing system, host, and system
US10509753B2 (en) * 2018-02-26 2019-12-17 Micron Technology, Inc. Dynamic allocation of resources of a storage system utilizing single root input/output virtualization

Also Published As

Publication number Publication date
WO2021086693A1 (en) 2021-05-06
EP4052126A1 (en) 2022-09-07
US11237761B2 (en) 2022-02-01
US20210132860A1 (en) 2021-05-06

Similar Documents

Publication Publication Date Title
US10324754B2 (en) Managing virtual machine patterns
US10528527B2 (en) File management in thin provisioning storage environments
US9607004B2 (en) Storage device data migration
CN114667506A (zh) 多物理功能非易失性存储器设备的管理
US9501313B2 (en) Resource management and allocation using history information stored in application's commit signature log
US9959281B2 (en) Concurrent file and object protocol access using space-efficient cloning
CN113424152A (zh) 多租户分布式系统中的基于工作流的调度和批处理
US9298487B2 (en) Managing virtual machine images in a distributed computing environment
CN110750221A (zh) 卷克隆方法、装置、电子设备及机器可读存储介质
US10705752B2 (en) Efficient data migration in hierarchical storage management system
EP3479256B1 (en) Fabric encapsulated resilient storage
CN115562871A (zh) 内存分配管理的方法和装置
CN113986833A (zh) 文件合并方法、系统、计算机系统及存储介质
US11340964B2 (en) Systems and methods for efficient management of advanced functions in software defined storage systems
US9619153B2 (en) Increase memory scalability using table-specific memory cleanup
US20230244390A1 (en) Collecting quality of service statistics for in-use child physical functions of multiple physical function non-volatile memory devices
US11126371B2 (en) Caching file data within a clustered computing system
CN108959517B (zh) 文件管理方法、装置及电子设备
US11977785B2 (en) Non-volatile memory device-assisted live migration of virtual machine data
WO2023024621A1 (en) Conditionally deploying a reusable group of containers for a job based on available system resources
US9251101B2 (en) Bitmap locking using a nodal lock
CN117873694A (zh) 堆空间分配方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination