CN119166322A - 用于仿真或准虚拟化资源的物理功能的装置和方法 - Google Patents
用于仿真或准虚拟化资源的物理功能的装置和方法 Download PDFInfo
- Publication number
- CN119166322A CN119166322A CN202311666159.2A CN202311666159A CN119166322A CN 119166322 A CN119166322 A CN 119166322A CN 202311666159 A CN202311666159 A CN 202311666159A CN 119166322 A CN119166322 A CN 119166322A
- Authority
- CN
- China
- Prior art keywords
- resource
- virtual
- virtual machine
- machine
- access
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
描述了用于仿真或准虚拟化资源的物理功能的装置和方法。本发明提供一种包括接口电路、机器可读指令和用于执行机器可读指令的处理电路的装置。机器可读指令包括用于下述操作的指令:接收虚拟机访问网络节点的资源的请求、确定与资源相关联的可用虚拟功能的数量是否低于预定义阈值、以及如果确定可用虚拟功能的数量低于预定义阈值,则对与资源相关联的物理功能进行仿真和/或准虚拟化。机器可读指令还包括用于通过用于虚拟机的仿真和/或准虚拟化的物理功能来提供对资源的访问的指令。
Description
背景技术
网络节点中资源的虚拟功能的数量通常是有限的。在所有的虚拟功能都被占用时,访问资源的新请求将不被服务并被拒绝。这在对服务质量敏感的环境中尤其重要。因此,存在改进资源控制的需求。
附图说明
以下将仅通过示例的方式并参考附图来描述装置和/或方法的一些示例,其中:
图1a和1b示出了用于仿真和/或准虚拟化资源的物理功能的装置的示例;
图2示出了常规IO(输入/输出)设备的示例;
图3示出了改进IO设备的示例;
图4示出了用于仿真和/或准虚拟化资源的物理功能的装置的架构的示例;
图5示出了用于仿真和/或准虚拟化资源的物理功能的方法的示例;
图6示出了用于仿真和/或准虚拟化资源的物理功能的方法的另一示例;
图7示出了网络节点的配置的示例;以及
图8示出了虚拟机之间的协商的示例。
具体实施方式
现在参照附图更详细地描述一些示例。然而,其他可能的示例不限于详细描述的这些实施例的特征。其他示例可以包括特征的修改以及特征的等价物和替代物。此外,本文用于描述特定示例的术语不应限制其他可能的示例。
在附图的整个描述中,相同或相似的附图标记指的是相同或相似的元件和/或特征,它们可以相同或以修改的形式实现,与此同时提供相同或相似的功能。为了阐明,图中的线、层和/或区域的厚度可能被夸大。
在使用“或”组合两个元素A和B时,这应理解为公开了所有可能的组合,即仅A、仅B以及A和B,除非在个别情况下另有明确定义。作为相同组合的替代措辞,可以使用“A和B中的至少一个”或“A和/或B”。这同样适用于两个以上元素的组合。
如果使用单数形式,例如“一(a/an)”和“该(the)”,并且仅使用单个元素没有被明确或隐含地定义为强制性的,则进一步的示例也可以使用多个元素来实现相同的功能。如果下文将功能描述为通过使用多个元素来实现,则进一步的示例可以使用单个元素或单个处理实体实现相同的功能。将进一步理解的是,术语“包含(include)”、“包含有(in-cluding)”、“包括(comprise)”和/或“包括有(comprising)”当在本说明书中使用时描述所陈述的指定特征、整数、步骤、操作、过程、元素、组件和/或其群组的存在,但并不排除一个或多个其他特征、整数、步骤、操作、过程、元素、组件和/或其群组的存在或添加。
在以下描述中,阐述了具体的细节,但是本文描述的技术的示例可以在没有这些具体细节的情况下实施。众所周知的电路、结构和技术没有被详细示出,以避免模糊对本描述的理解。“一个示例/示例”、“各种示例/示例”、“一些示例/示例”等可以包括特征、结构或特性,但不是每个示例都必须包括特定的特征、结构或特性。
一些示例可能具有其他示例中描述的一些特征、全部特征或不具有这些特征。“第一”、“第二”、“第三”等描述一个公共元素,并指示被引用的类似元素的不同实例。这种形容词并不意味着如此描述的元素项目必须在时间上或空间上以给定的顺序排列,或以任何其他方式排列。“连接”可以表示元件彼此直接物理或电接触,而“耦合”可以表示元件彼此合作或相互作用,但它们也可以或者不可以直接物理或电接触。
如本文所使用的,术语“操作”、“执行”或“运行”由于涉及与系统、设备、平台或资源相关的软件或固件,因而可以互换使用,并且可以指存储在系统、设备、平台或资源可访问的一个或多个计算机可读存储介质中的软件或固件,即使软件或固件中包含的指令没有被系统、设备、平台或资源主动执行。
描述可以使用短语“在一个示例/示例中”、“在示例/示例中”、“在一些示例/示例中”和/或“在各种示例/示例中”,每个短语可以指一个或多个相同或不同的示例。此外,关于本公开的示例使用的术语“包括(comprising)”、“包含(in-cluding)”、“具有(having)”等是同义的。
图1a示出通信耦合到计算机系统110的装置100或设备100的示例的框图。图1b示出包括装置100或设备100的计算机系统110的示例的框图。
装置100包括配置为提供装置100的功能的电路。例如,图1a和1b的装置100包括接口电路120、处理电路130和(可选的)存储电路140。例如,处理电路130可以与接口电路120和存储电路140耦合。
例如,处理电路130可以配置为联合接口电路120(用于交换信息,例如与计算机系统110内部或外部的其他组件交换信息)和存储电路140(用于存储信息,例如机器可读指令)来提供装置100的功能。
同样,设备100可以包括配置为提供设备100的功能的装置。
设备100的组件被定义为组件装置,其可以对应于设备100的相应结构组件,或者由设备100的相应结构组件实现。例如,图1a和1b的设备100包括用于处理的装置130,其可以对应于处理电路130或由处理电路130实现;用于通信的装置120,其可以对应于接口电路120或由接口电路120实现;以及(可选的)用于存储信息的装置140,其可以对应于存储电路140或由存储电路140实现。在下文中,相对于装置100示出了设备100的功能。因此,结合装置100描述的特征同样可以应用于相应的设备100。
通常,处理电路130或用于处理的装置130的功能可以由执行机器可读指令的处理电路130或用于处理130的装置来实现。因此,归属于处理电路130或用于处理的装置130的任何特征可以由多个机器可读指令中的一个或多个指令来定义。装置100或设备100可以包括例如存储电路140或用于存储信息的装置140内的机器可读指令。
例如,存储电路140或用于存储信息的装置140可以包括计算机可读存储介质的群组中的至少一个元件,诸如磁或光存储介质(例如,硬盘驱动器、闪存、软盘)、随机存取存储器(RAM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)或网络存储装置。
接口电路120或用于通信的装置120可以对应于用于在模块内、模模块之间或不同实体的模块之间接收和/或发送信息的一个或多个输入和/或输出,该信息可以是根据指定代码的数字(位)值。例如,接口电路120或用于通信的装置120可以包括配置为接收和/或发送信息的电路。
例如,处理电路130或用于处理的装置130可以使用一个或多个处理单元、一个或多个处理设备、任何用于处理的装置来实现,例如处理器、计算机或可与相应适配的软件一起操作的可编程硬件组件。换句话说,处理电路130或用于处理的装置130的所述功能也可以在软件中实现,然后在一个或多个可编程硬件组件上执行。这种硬件组件可以包括通用处理器、数字信号处理器(DSP)、微控制器等。
接口电路120配置为接收虚拟机(VM)访问例如在计算系统110上的网络节点150的资源的请求。接口电路120可以经由任何通信耦合(有线或无线)从计算系统110本身或外部设备(例如,用户设备)接收该请求。
网络节点150可以是物理设备和/或软件应用,它们配置为通过耦合到计算系统110的计算机网络发送、接收或转发数据。网络节点150可以包括诸如计算机、路由器、交换机、集线器、服务器和其他网络组件之类的设备。网络节点150可以将计算系统110的多个组件彼此连接,或者将计算系统110与外部计算系统连接。网络节点150可以提供例如诸如以太网电缆或光纤链路的有线连接,和/或诸如Wi-Fi(无线保真)或蜂窝网络的无线连接。在一些示例中,网络节点150包括或者是PCIe(Peripheral Component InterconnectExpress:外围组件互连快速)总线。
网络节点150的资源可以是网络节点150的设备或能力,其可供其他网络节点或网络节点150的用户(其中用户例如是虚拟机或操作系统)访问。资源可以具有用于定位和访问资源的唯一标识符。资源还可以具有附加属性,例如访问权限,该附加权限决定了资源可如何被使用。为了与其他网络节点或用户共享资源,可以例如通过资源共享使其在计算机网络上可用。这可以涉及配置网络节点150以允许其他网络节点或用户访问资源,并且可选地,设置访问权限和安全措施以确保以预期方式使用资源。在一些示例中,该资源是PCIe总线的带宽。
VM可以是能在隔离环境中运行应用和操作系统的计算系统的软件仿真。VM可以是由在主机计算机上运行的虚拟化层创建的物理计算机的软件抽象,该主机计算机可以是计算系统110或外部计算系统。例如,主机计算机可以已经安装了虚拟化层,例如管理程序或虚拟机监视器(VMM),在该虚拟化层中创建、操作和管理虚拟机。当运行应用时,VM可以与其他VM或与耦合到网络节点150的硬件组件交互。因此,VM可能最终需要访问网络节点150的资源。
处理电路130配置为确定与资源相关联的可用虚拟功能的数量是否低于预定义阈值。
例如,网络节点150可以使用基于硬件的虚拟化技术来创建虚拟功能(VF),该虚拟功能允许资源作为多个资源呈现给计算系统110的操作系统及VM。每个VF可以被分配给相应的VM。每个VF可以作为单独的物理资源呈现给VM,例如,具有自己的MAC(媒体访问控制)地址、设备驱动器等。基于硬件的虚拟化技术可以使VM能够直接访问VF,即,不需要由管理程序或网络节点150进行仿真或转译。
这种基于硬件的虚拟化技术的示例是SR-IOV(Single Root Input/OutputVirtualization:单根输入/输出虚拟化)。SR-IOV可以基于网络节点150的自虚拟化,即虚拟化逻辑主要由网络节点150而不是VMM提供。例如,网络节点150可以能够执行过滤或以太网桥接,以将传入流量解复用到多个队列或主机端点。例如,管理程序可以虚拟化网络节点150的配置空间,并对部分IO地址空间给予有限访问。SR-IOV可以提供对网络节点150的PCI配置空间的扩展,使得能够实现VF的枚举。它还可以建立在地址转译服务(AddressTranslation Services)上,来将DMA(Direct Memory Access:直接内存访问)地址转译为主机地址。网络节点150的物理设备可以具有一个或多个物理功能(PF),每个物理功能可以提供多个VF。
与其他虚拟化技术相比,SR-IOV可以提供若干优势,包括改进的性能、降低的开销和增加的灵活性。通过允许虚拟机直接访问物理NIC(network interface controller:网络接口控制器),SR-IOV可以减少与网络I/O虚拟化相关的开销,并提高网络吞吐量和等待时间。SR-IOV还可以在网络资源分配方面提供更大的灵活性,从而允许为虚拟机分配具有保证带宽和服务质量(QoS)级别的专用VF。因此,SR-IOV可能有利于在需要高性能网络的数据中心环境中使用,例如云计算、虚拟桌面基础设施(irtual desktop infrastructure,VDI)和高性能计算(high-performance computing,HPC)应用。
通常,VF的数量是有限的。例如,来自特定PCIe总线的PCIe端点设备和SR-IOV虚拟功能可以被分配到最多15个域。PCIe资源(例如每个PCIe总线的中断向量)可以在根域和I/O域之间划分。作为结果,可以分配给特定资源(例如,以I/O域的形式)的VM(或设备)的数量同样是有限的。
诸如数据中心服务器、IOT边缘计算平台、PC(个人电脑)和膝上型计算机行业之类的服务器硬件和边缘客户端设备可能对IO设备(诸如PCI接口)的硬件虚拟化支持具有越来越高的需求,这与可由硬件支持的最大虚拟PCI接口(虚拟功能)的限制相违背。SR-IOV可以提供具有虚拟机的I/0设备的高效本地共享,以增强I/O性能,但是在这种情况下,I/O设备的共享也受到由相应PCI硬件资源的物理功能暴露的虚拟功能的数量的限制。由于通过微体系结构和多核心处理器降低了VMM开销并提高了功率效率,因此每台服务器的VM数量也在增加。因此,可能存在对网络节点的资源的可扩展访问的需求。
此外,在存在大量请求访问资源的VM以及不断变化的虚拟机和相应的请求和需求的不断增加的动态环境中,VM对虚拟功能的常规分配可能过于不灵活或者提供过少的可管理性来应对这些动态环境。这可能会导致缺乏RDT(Resource Director Technology:资源调配技术)支持(例如,用于实现服务级别协议(SLA)的协商和保证),进而导致违反SLA并由此极大地限制了此类技术在公共云基础设施中的采用。由此,在公共云多租户实例部署中,SR-IOV VF可能通常没有可用的动态资源分区或管理。
相比之下,装置100可以通过以下方式克服这些障碍。处理电路130可以检查资源的虚拟功能的可用性。如果确定可用虚拟功能的数量低于上述预定义阈值,则处理电路130进一步配置为仿真和/或准虚拟化与资源相关联的物理功能。
物理功能可以是网络节点150的硬件组件(例如网络适配器),其提供硬件组件与主机计算机的操作系统之间的主接口。它可以是主机计算机的操作系统和应用可以直接访问的网络节点的功能。它可以是提供对网络节点150的硬件资源的访问的逻辑实体,例如,输入/输出端口、存储器缓冲器和中断请求线。该物理功能可以已经创建了包括与资源相关联的上述VF在内的多个VF。该物理功能可以负责管理VF的创建和分配,并负责实施QoS策略和安全控制。在一些示例中,物理功能可以是上述由SR-IOV设备提供的物理功能。
预定义阈值可以根据目标应用来选择,例如,使得虚拟功能的某个占用被容忍而无需进一步动作。例如,可以选择预定义阈值,使得可以以常规方式使用虚拟功能的最大数量的10%、30%、50%、80%、100%等。或者,可以选择预定义阈值,使得即使虚拟功能全部可用,物理功能的使用也要被触发。可以进行预定义阈值的选择使得:当可用VF的数量达到该阈值或低于该阈值时,无论是为了扩展可以访问资源的VM的数量,为了在存在访问资源的高优先级请求的情况下保持清除的VF,还是为了使VM之间能够就剩余的VF及仿真和/或准虚拟化的物理功能进行协商,此时该资源是有需求的,并且期望避免对该资源的额外访问。
与由虚拟功能提供的基于硬件的虚拟化不同,仿真和/或准虚拟化可以是基于软件的虚拟化。例如,仿真和/或准虚拟化可以是由管理程序执行的虚拟化。仿真可以是这样一种虚拟化技术:通过创建模拟物理功能的硬件和软件的软件环境,使VM(称为访客)能够通过物理功能(称为主机)运行为使用资源而设计的软件。准虚拟化可以是这样一种虚拟化技术:通过允许多个虚拟机共享对物理功能的访问,使它们能够在单个物理功能上运行。这可以通过修改访客操作系统以感知虚拟环境并直接与主机的硬件资源交互来实现。
处理电路130还配置为经由用于虚拟机的仿真和/或准虚拟化的物理功能提供对资源的访问。以这种方式,装置100可以通过VM扩展对资源的可能访问数量,为高优先级访问留出虚拟功能和/或实现上述协商性。此外,装置100可有助于遵守QoS策略、SLA等。在常规系统中,根据先来先服务原则给予VM对虚拟功能的访问,并且被发现完全占用的虚拟功能的任何VM均会被拒绝且不给予对资源的任何访问,而与该常规系统不同的是,装置100可以提供对资源访问的基于优先级的分配和资源可用性的扩展的基础。
图2示出了常规SR-IOV设备200的架构的示例。常规SR-10V设备200包括IO设备210,例如管理网络节点的NIC。在第一层220,SR-IOV设备200提供PHY(physical layer:物理层)221、作为将以太网帧转发到其相应输出端口的引擎的层2分类器222、物理功能223和从物理功能223导出的多个虚拟功能224。在虚拟化层230,例如在VMM或管理程序环境中,SR-IOV设备200提供软件交换机231,其给予主机或服务虚拟机240对网络节点的资源的访问。此外,存在多个访客OS或VM 250。一些VM 250通过VF 224直接访问资源。当所有的VF224均被占用,则其他的VM250被拒绝。SR-IOV设备200的IO虚拟化的现有架构可能导致限制,因为SR-IOV设备200由于有限的虚拟功能而不能协商/容纳新的入驻租户。相反,装置100可以使资源的最大允许访问的扩展成为可能。
回到图1,在一些示例中,接口电路120可以配置为接收虚拟机的SLA。接口电路120可以例如经由任何通信耦合从计算系统110、从VM或从外部设备接收SLA。在其他示例中,处理电路130可以根据接入请求的规范或通过与VM的协商来确定SLA。SLA可以是关于在两方或多方之间,例如服务提供商(在计算系统110上提供服务)和发送请求的用户(VM)之间由计算系统110提供的服务(例如,提供访问)的任何协议。
SLA可以是例如基于客户、基于服务或基于多级的SLA。在一些示例中,装置100可以进一步展示(例如,根据(云)服务提供商的需求)向例如用户暴露特定应用SLO(service-level objective:服务级目标)以协商SLA的能力。
处理电路130还可以配置为基于SLA来确定虚拟机的资源容差和优先级中的至少一个。例如,处理电路130可以配置为通过确定虚拟机的速率控制、分组优先级、接合选项、容错和迁移容差中的至少一个来确定资源容差。
例如,资源容差(应用容差)可以由VM指定。它可以是例如范围为0到1的因子。它可以表示关于对网络节点150的资源的访问的SLA中的潜在变化的容差。因子=0可以指示VM不能容忍资源的任何变化,而因子=1可以指示VM对其他资源的任何变化都是灵活的。资源容差的示例实现可以是函数App_Tolerance_QoS=FUNC_MAPPER(rate_control,packet_prioritization,fault_tolerance,bonding,scheduling,migration_tolerance,reserved)(应用_容差_QoS=功能_映射器(速率_控制,分组_优先化,容错,接合,调度,迁移_容差,预留)),其中migration_tolerance可以指示在资源约束的情况下迁移到不同网络节点的容差。这包括停止App/VM中的进程(通常以毫秒为单位),直到与不同网络节点的协商成功。
处理电路130还可以配置为基于资源容差和优先级中的至少一个来确定与资源相关联的虚拟功能或物理功能是否将被提供给虚拟机,并且如果确定将物理功能提供给虚拟机,则对物理功能进行仿真和/或准虚拟化。这可以允许处理电路130对资源的使用具有增加的可控性。例如,在提供虚拟功能时具有较高优先级的VM可能是优选的,而具有较低优先级的VM可能被分配仿真/准虚拟化的物理功能。以这种方式,在请求资源时,尤其是在请求的VM具有高优先级时,装置100可以避免服务被拒绝。然而可以通过仿真/准虚拟化的物理功能为低优先级VM提供访问服务。
在接收到SLA的情况下,在一些示例中,处理电路130可以配置为基于资源容差和优先级中的至少一个来调度虚拟机对资源的使用,并且基于所调度的资源的使用来为虚拟机提供对资源的访问。因此,请求VM的优先级和/或资源容差可以通过调度来反映。例如,每当遇到资源约束时,高资源容差可以获得调度的灵活性。高优先级同样可能获得资源调度中的特权位置。例如,处理电路130可以包括分配和配置资源的调度器。例如,调度器可以考虑优先级和资源容差来生成和动态调整调度(例如,资源的访问、使用和释放的时间线)和/或资源的配置,以实现最佳QoS。然后可以由计算系统110的资源控制来实施调度。为了调度对资源的访问,处理电路130可以执行任何调度技术,例如优先级、多级、轮询、抢先和/或协作调度。
对于资源的使用的调度,可以考虑其他或进一步的因素。例如,处理电路130可以配置为确定物理功能的仿真和/或准虚拟化的数量、仿真和/或准虚拟化的相应能力、资源使用的预期QoS和资源使用的风险中的至少一个。
装置100可以提供用于PCI设备中软件可配置VF的SR-10V虚拟功能的资源调配技术(Resource Director Technology)。装置100可以通过对由SR-IOV设备暴露的物理功能的准虚拟化或软件仿真实现来扩展由SR-IOV设备物理功能支持的虚拟功能的数量限制,从而提供混合软件仿真。一旦针对物理功能的准虚拟化或软件仿真由管理程序或服务0S完成,SR-IOV设备就可以在因虚拟功能不可用而无法访问虚拟功能的其他访客虚拟机之间共享。例如,根据SR-IOV支持的规范,SR-IOV设备的示例可以支持最多八个虚拟功能。管理程序(VMM)可以维护虚拟功能的资源表,并且例如根据生命周期和时间关键型工作负载实现状态机控制逻辑和分配给访客虚拟机的相应优先级。
出于安全原因,处理电路130可以配置为访问存储在区处理框链中的可信虚拟机列表,确定虚拟机是否在列表中,并且如果确定虚拟机不在列表中,则拒绝对资源的访问。使用基于区处理框链的系统来检查访客虚拟机的可信度这一方式可以提供包括分散信任的若干优点,即VM的验证将依赖于分散的节点网络来就访客VM的凭证的有效性达成共识,这意味着没有单个实体可以完全控制验证过程,从而使其不容易被篡改或操纵。其他优点可以是不可变的记录保存、高效的验证以及降低的运行不受信任或恶意访客VM的风险。
在多租户环境中,可能存在多个VM。接口电路120然后可以接收多个虚拟机访问资源的多个请求。在一些示例中,处理电路120可以配置为与多个虚拟机协商相应的SLA以访问资源,并基于协商好的SLA经由用于多个虚拟机的仿真和/或准虚拟化物理功能提供对资源的访问。可协商性可通过下述方式来实现,即:向多个VM提供接口,以用于通过例如经由智能合约的招标和投标来协商资源的使用。
为了实现资源访问的高度动态可管理性,装置100可以进一步检测热插拔或热拔。热插拔可以是这样的硬件特征:其能够在计算系统110运行时向其添加新的硬件组件,而不需要关闭或重新启动。热插拔设备可以被设计成在系统通电时从其连接器上物理插入或移除,并且该系统自动检测和配置新的硬组件。硬件组件可以在计算系统110中提供新的资源或形成新的网络节点。热拔可以是在系统运行时从系统中移除硬件组件的过程,而不需要关闭或重新启动系统。热拔设备可以被设计成在计算系统110通电时从其连接器上物理移除,并且计算系统110自动检测并从其配置中移除硬件组件。
在这些情况下,处理电路120可以配置为确定资源或另一资源的这种热插拔或热拔。这可能会改变可用接入信道的数量:热插拔可能会增加可用资源的数量,而热拔可能会减少可用资源的数量。因此,处理电路120可以重新评估对资源的访问,并且例如调整访问要求或调度。因此,处理电路120可以配置为基于所确定的热插拔或热拔来确定可用虚拟功能的数量。处理电路120还可以配置为基于所确定的可用虚拟功能的数量来协商SLA。
为了改进例如QoS方面的调度,装置100可以跟踪资源的使用,存储跟踪到的数据,并将其用于例如机器学习反馈。在一些示例中,处理电路120可以配置为监控仿真和/或准虚拟化的物理功能的度量,并存储所监控的度量。例如,处理电路120可以配置为经由仿真和/或准虚拟化的物理功能来确定资源使用的QoS,并且存储所确定的服务质量。
此外,可以为通过仿真和/或准虚拟化的物理功能的访问提供专用驱动器。例如,处理电路120可以配置为响应于接收虚拟机的请求,向虚拟机发送用于使用仿真和/或准虚拟化功能的驱动器。在准虚拟化的情况下,VM的访客操作系统可以由该驱动器修改,以了解虚拟环境并直接与主机的硬件资源交互,而不对它们进行仿真。为了实现访客操作系统和主机硬件资源之间的这种通信,可能需要特殊的软件组件,例如准虚拟化驱动器。准虚拟化驱动器可以提供访客操作系统和管理程序之间的接口。在仿真的情况下,访客操作系统可以通过安装特殊的软件组件,例如仿真设备驱动器,与仿真物理功能进行交互。仿真设备驱动器可以提供访客操作系统和虚拟机的仿真硬件设备之间的接口,用于将访客操作系统的硬件访问请求转译成用于虚拟机的仿真硬件设备的适当格式。
总之,通过物理功能的准虚拟化或软件仿真,所提出的装置100可以涉及虚拟功能的数量限制的扩展,例如由SR-IOV设备的物理功能来支持的虚拟功能。然后,SR-IOV设备可以在因不可用而没有分配虚拟功能的其他访客虚拟机之间共享。扩展的虚拟功能可以暴露给RDT管理器,该RDT管理器具有用于协商的双向接口,租户/访客操作系统可以使用该双向接口来协商SLA。在协商好的SLA的帮助下,协调器(orchestrator)可以提高节点/车队管理、以及例如用于在SLA协商中获得小额支付的租户/app的基于奖励的系统的效率。
例如,装置100可以改进数据中心的可缩放性,而不在SLA上妥协。它可以基于例如由请求VM或其应用规定的容差因子来动态地协商资源分配。这可能有助于在集群级别实现有效的主机代管和改进的车队级别的利用率,并为所有租户提供更好且有保证的性能,从而导致降低数据中心级别的总体拥有成本。此外,RDT可以有效地处理在运行时需要备用资源需求的租户(这在公共云环境中很普遍),从而获得更高的车队级别的利用率。此外,装置100可以具有下述能力,即:在没有服务拒绝、且具有适当的QoS来经由扩展管理承诺的SLA的情况下,在SR-IOV设备(例如,XPU,任意架构的处理单元)上超额订阅虚拟功能支持。
装置100可以对例如SR-IOV设备中的可扩展架构实施(例如以太网、数据中心服务器中的图形处理单元、IoT边缘计算和客户端设备环境)提供混合IO虚拟化。装置100可以增强SR-IOV设备虚拟化能力,以用较少数量的IO设备容纳更多的访客VM。支持大量核心的环境可以极大地受益于装置100,因为本文描述的软件扩展可以与硬件加速(虚拟功能)相结合。装置100对于诸如TSN(Time Stamp Network:时间戳网络)以太网卡之类的不具有硬等待时间需求的服务器和客户端工作负载可以具有益处。
图3示出了在SR-IOV环境中实现的装置100的示例。图3示出了SR-IOV设备300的架构的示例。SR-IOV设备300包括向网络节点提供接口的IO设备310。在第一层320中,SR-IOV设备300提供PHY 321、层2分类器322、物理功能323和从物理功能323导出的多个虚拟功能324。在虚拟化层330中,例如在主机操作系统或管理程序环境中,SR-IOV设备300提供耦合到物理功能323的物理驱动器331和软件交换机332。软件交换机332提供虚拟功能扩展映射、RDT虚拟功能扩展、混合IO配置实体、混合IO运行时实体和虚拟化IO后端驱动器。通过虚拟功能IO333,虚拟功能324仍然可以由VM350直接使用,但是在虚拟机管理器的控制下。当占用的虚拟功能的数量超过阈值时,SR-IOV设备300通过软件交换机332对物理功能323进行仿真/准虚拟化。VM 350可以例如安装虚拟化IO前端驱动器,其帮助VM 350实现与由管理程序提供的后端驱动器的兼容性。
SR-IOV设备300可以通过扩展由物理功能323支持的虚拟功能324的数量限制来提供用于SRIOV虚拟功能的资源调配技术。这是通过由SR-IOV设备300暴露的物理功能323的准虚拟化或软件仿真来完成的。虚拟功能扩展映射器可以由调度函数F定义,使得VF_EXTENSION_MAPPER=F((R,W),Tx,a,QoS,M)(VF_扩展_映射器=F((R,W),Tx,a,QoS,M)),其中,VF_EXTENSION_MAPPER()(VF_扩展_映射器())是基于有限的可用物理功能来确定对网络节点的资源的仿真和/或准虚拟化访问的数量和能力的函数,QoS表示预期的服务质量(例如,QoS可以具有参数化的成本,诸如像性能、交易结算成本等属性),M表示为了进行调度计算的下一次迭代而要并入的机器学习反馈,W表示符合已知可信的允许配置列表的应用程序集合A。例如,允许列表可以发布在公共区处理框链上,其中安全操作可以是证实检查、防病毒扫描、防火墙扫描等,R表示处于危险中的风险,例如,执行交易Tx产生的价值或机会成本。
管理程序或VMM或协调器可以为请求访问资源的VM 350(用户或系统应用)确定要承兑的SLA优先级,并将该优先级输入到VF工厂方法。基于SLA优先级和应用容差反馈,SR-IOV设备300可以决定向谁分配VF 324或PF 323,而对于操作系统、VMM和VM 350(访客),SLA接口可以是双向的,因此SLA和资源访问可以在运行时协商。
仿真或准虚拟化的物理功能(扩展虚拟功能)可以暴露给具有双向接口的RDT管理器,租户/访客OS可以使用该接口来动态地协商SLA,以实现高效的节点和车队管理。在主机或访客VM上运行的后台应用或非时间关键应用或工作负载可以是这种VF功能扩展方法的直接受益者。例如,RDT管理器可以使用RDT VF扩展,例如函数RDT_VF_Ext=func_factory(PF,VF_EXTENSION_MAPPER(R,W,Tx,A,QoS))(RDT_VF_Ext=功能_工厂(PF,VF_扩展_映射器(R,W,Tx,A,QoS)))。该功能实现可以通过共享PF接口(称为VF扩展)使用仿真方法。它可以基于VM 350或应用的SLA优先级和需求,使用状态机实现在它们之间共享PF接口。由于工厂方法实现,可以在运行时创建类似VF的接口并将其分配给应用和VM 350。
SR-IOV设备300可以提供包括混合(hybridge)IO配置的软件交换机332,以使用访客VM 350和主机操作系统的接口驱动器来设置软件仿真控制。驱动器可以提供用于将访客VM 350的工作负载提交给主机VM的接口。软件交换机332可以包括混合IO运行时实体,该混合1O运行时实体负责在时间共享基础上调度主机OS或虚拟机管理器上的访客VM工作负载。具有中等或低优先级的访客虚拟机350可以被分配由服务OS提供的软件仿真1O接口或句柄(handle),以执行它们的工作负载。使用SR-1OV设备300的混合软件仿真实现可以获得到对其他虚拟机的扩展,超出SR-IOV设备300的可用虚拟功能的限制。
图4示出了用于RDT的架构400的示例。架构400实现软件域420下层的硬件域410。硬件域配置有网络节点的资源的资源监控411和资源实施412。资源实施412基于QoS考虑和硬件策略。
软件域420包括RDT组件421和混合1O配置条目422。RDT组件421向应用级430的应用暴露资源。RDT组件421从资源监控411接收关于资源的信息,并向资源实施412发送QoS提示。协调器440使用暴露的SLA与新VM 450协商用于高效放置策略的资源。
图5示出了方法500的示例的流程图。方法500包括:接收510虚拟机访问网络节点的资源的请求,确定520与资源相关联的可用虚拟功能的数量是否低于预定义阈值,并且如果确定可用虚拟功能的数量低于预定义阈值,则对与资源相关联的物理功能进行仿真530和/或准虚拟化530。方法500还包括经由用于虚拟机的仿真和/或准虚拟化的物理功能提供540对资源的访问。
方法500还可以包括:接收虚拟机的SLA,基于SLA确定虚拟机的资源容差和优先级中的至少一个,以及
基于资源容差和优先级中的至少一个,确定与资源相关联的虚拟功能或物理功能是否将被提供给虚拟机。方法500还可以包括:如果确定将物理功能提供给虚拟机,则对物理功能进行仿真和/或准虚拟化。
在一些示例中,方法500可以包括:接收虚拟机的SLA,基于SLA确定虚拟机的资源容差和优先级中的至少一个,以及基于资源容差和优先级中的至少一个来调度虚拟机对资源的使用。方法500还可以包括:基于所调度的资源的使用为虚拟机提供对该资源的访问。
在其他示例中,方法500可以包括:通过确定物理功能的仿真和/或准虚拟化的数量、仿真和/或准虚拟化的相应能力、资源使用的预期服务质量和资源使用的风险中的至少一个来调度资源的使用,并基于所调度的资源的使用为虚拟机提供对该资源的访问。
在又一些示例中,方法500可以包括:接收多个虚拟机访问资源的多个请求,就对资源的访问与多个虚拟机协商相应SLA,并基于协商好的SLA经由用于多个虚拟机的仿真和/或准虚拟化的物理功能提供对资源的访问。
结合所提出的技术或上述一个或多个示例(例如,图1a和1b)说明方法500的更多细节和方面。方法500可包括与所提出的技术的一个或多个方面或上文所述的一个或多个示例相对应的一个或多个附加可选特征。
图6示出了用于提供对IO设备的资源的访问的方法600的示例的流程图。方法600包括由VM请求610与VM共享IO设备,即请求对资源的访问。方法600包括通过管理程序确定620虚拟功能的可用性,例如,确定与资源相关联的可用虚拟功能的数量是否超过预定义阈值。方法600还包括在管理程序处接收630 IO设备的物理和虚拟功能的表格。管理程序、VMM或主机操作系统可以维护该资源表格。如果确定给出了可用性,则方法600包括将虚拟功能分配640给VM并结束进程。如果没有足够的虚拟功能可用,则方法600包括例如按照下述的方法700来配置650 IO共享。
主机0S或管理程序可以从混合IO配置组件和RDT管理器获得输入,从而使用服务VM的后端驱动器和访客VM的前端驱动器来配置IO共享。因此,方法600继续通过对与资源相关联的物理功能进行仿真和/或准虚拟化来创建660 IO共享。在IO共享的创建失败的情况下,方法600包括取消670该过程。在IO共享的创建成功的情况下,方法600包括例如按照下述的方法800来提供680对IO设备的访问。例如,混合IO运行时可以促进主机0S或VMM对VM访问的调度。
图7示出了用于网络节点的配置的方法700的示例的流程图。方法700包括确定71ORDT支持是否由网络节点提供。如果是,则在处理框720中,新的更高优先级VM(应用或访客)被认为是由协调器调度的。使用可信VM列表执行验证。如果验证成功,则在处理框730中,将当前服务类别、资源管理标识符和网络节点(SR-IOV设备)的配置暴露给验证后的应用和访客VM。基于访客、应用、协调器指南和可用硬件,例如通过调用RDT_VF_Ext函数与VM协商RDT简档,如上所述。在处理框740中,实施新协商好的配置。
图8示出了用于请求访问资源的VM之间的协商的方法800的示例的流程图。在处理框810中,用户或访客0S实例或应用通过例如基于上述QoS功能提供QoS信息来触发协商。在处理框820,验证用户的请求,或者提示用户提供有效的协商请求。在处理框830,确认愿意协商的其他VM的可用性。如果没有可用的VM,则在处理框840,采取基于策略的动作。如果存在可用的VM,则在处理框850中,RDT管理器为请求方VM与另一VM之间的协商提供接口。在处理框860,基于扩展的虚拟功能(资源的仿真和/或准虚拟化的物理功能)来执行协商。RDT管理器可以使用RDT_VF_Ext和VF_EXTENSION_MAPPER来实现关于VF可用性和资源分配的协商。在处理框870,RDT管理器基于由实例或应用定义的迁移容差来检查现有实例或应用是否可以被迁移。如果是,则方法800继续到处理框830。如果不是,则在处理框880,通过更新实例或应用的服务类别来重新调度资源的使用。在处理框890中,使用经协商的RDT来启动(实施)所请求的实例。
本文描述的方法和装置可以通过物理功能的准虚拟化或软件仿真来扩展虚拟功能的数量限制,该虚拟功能例如由SR-IOV设备的物理功能支持。然后,SR-IOV设备可以在因其不可用而未分配虚拟功能的虚拟机之间共享。扩展后的虚拟功能可以暴露给RDT管理器,该RDT管理器具有用于协商的双向接口,租户/访客OS可以使用该接口来协商SLA。在协商好的SLA的帮助下,协调器可以提高节点/车队管理、以及例如用于在SLA协商中获得小额支付的租户/app的基于奖励的系统的效率。
在下文中,呈现了所提出的技术的一些示例:
一个示例(例如,示例1)涉及一种装置,该装置包括接口电路、机器可读指令和处理电路,该处理电路用于执行机器可读指令以:接收虚拟机访问网络节点的资源的请求,确定与资源相关联的可用虚拟功能的数量是否低于预定义阈值,如果确定可用虚拟功能的数量低于预定义阈值,则对与资源相关联的物理功能进行仿真和/或准虚拟化,以及经由用于虚拟机的仿真和/或准虚拟化的物理功能提供对资源的访问。
另一个示例(例如,示例2)涉及先前的示例(例如,示例1)或任何其他示例,还包括:机器可读指令包括用于下述操作的指令,即:接收虚拟机的服务水平协议SLA,基于SLA确定虚拟机的资源容差和优先级中的至少一个,基于资源容差和优先级中的至少一个确定与资源相关联的虚拟功能或物理功能是否被提供给虚拟机,以及如果确定将物理功能提供给虚拟机,则对物理功能进行仿真和/或准虚拟化。
另一个示例(例如,示例3)涉及先前的示例(例如,示例1或2中的一个)或任何其他示例,还包括:机器可读指令包括用于下述操作的指令:接收虚拟机的服务水平协议SLA、基于SLA确定虚拟机的资源容差和优先级中的至少一个、基于资源容差和优先级中的至少一个调度虚拟机对资源的使用、以及基于所调度的资源的使用为虚拟机提供对资源的访问。
另一个示例(例如,示例4)涉及先前的示例(例如,示例2或3中的一个)或任何其他示例,还包括:机器可读指令包括用于下述操作的指令:通过确定虚拟机的速率控制、分组优先级、接合选项、容错和迁移容差中的至少一个来确定资源容差。
另一个示例(例如,示例5)涉及先前的示例(例如,示例1至4中的一个)或任何其他示例,还包括:机器可读指令包括用于下述操作的指令:通过确定物理功能的仿真和/或准虚拟化的数量、仿真和/或准虚拟化的相应能力、资源的使用的预期服务质量和资源的使用的风险中的至少一个来调度资源的使用,以及基于所调度的资源的使用为虚拟机提供对资源的访问。
另一个示例(例如,示例6)涉及先前的示例(例如,示例1至5中的一个)或任何其他示例,还包括:机器可读指令包括用于下述操作的指令:访问存储在区块链中的可信虚拟机列表、确定虚拟机是否在列表中以及如果确定虚拟机不在列表中,则拒绝其对资源的访问。
另一个示例(例如,示例7)涉及先前的示例(例如,示例1至6中的一个)或任何其他示例,还包括:机器可读指令包括用于下述操作的指令:接收多个虚拟机访问资源的多个请求、关于对资源的访问与多个虚拟机协商相应服务水平协议SLA、以及基于协商好的SLA经由用于多个虚拟机的仿真和/或准虚拟化的物理功能提供对资源的访问。
另一个示例(例如,示例8)涉及先前的示例(例如,示例1至7中的一个)或任何其他示例,还包括:机器可读指令包括用于下述操作的指令:确定资源或另一资源的热插拔或热拔、以及基于所确定的热插拔或热拔来确定可用虚拟功能的数量。
另一个示例(例如,示例8)涉及先前的示例(例如,涉及示例7和8的组合)或任何其他示例,其中,机器可读指令包括用于基于所确定的可用虚拟功能的数量来协商SLA的指令。
另一个示例(例如,示例10)涉及先前的示例(例如,示例1至9中的一个)或任何其他示例,还包括:机器可读指令包括用于监控仿真和/或准虚拟化的物理功能的度量并存储监控到的度量的指令。
另一个示例(例如,示例11)涉及先前的示例(例如,示例1至10中的一个)或任何其他示例,还包括:机器可读指令包括用于经由仿真和/或准虚拟化的物理功能确定资源使用的服务质量以及存储所确定的服务质量的指令。
另一个示例(例如,示例12)涉及先前的示例(例如,示例1至11中的一个)或任何其他示例,还包括:与资源相关联的物理功能是由单个根输入/输出虚拟化设备提供的物理功能。
另一个示例(例如,示例13)涉及先前的示例(例如,示例1至12中的一个)或任何其他示例,进一步包括:资源是PCIe总线的带宽。
另一个示例(例如,示例14)涉及先前的示例(例如,示例1至13中的一个)或任何其他示例,还包括:机器可读指令包括用于响应于接收到虚拟机的请求,向虚拟机发送用于使用仿真和/或准虚拟化的物理功能的驱动器的指令。
一个示例(例如,示例15)涉及一种方法,包括:接收虚拟机访问网络节点的资源的请求,确定与资源相关联的可用虚拟功能的数量是否低于预定义阈值,如果确定可用虚拟功能的数量低于预定义阈值,则对与资源相关联的物理功能进行仿真和/或准虚拟化,以及经由用于虚拟机的仿真和/或准虚拟化的物理功能提供对资源的访问。
另一个示例(例如,示例16)涉及先前的示例(例如,示例15)或任何其他示例,还包括:接收虚拟机的服务水平协议SLA,基于SLA确定虚拟机的资源容差和优先级中的至少一个,基于资源容差和优先级中的至少一个确定与资源相关联的虚拟功能或物理功能是否被提供给虚拟机,以及如果确定将物理功能提供给虚拟机,则对物理功能进行仿真和/或虚拟化。
另一示例(例如,示例17)涉及先前的示例(例如,示例15或16中的一个)或任何其他示例,还包括:接收虚拟机的服务水平协议SLA,基于SLA确定虚拟机的资源容差和优先级中的至少一个,基于资源容差和优先级中的至少一个调度虚拟机对资源的使用,以及基于所调度的资源的使用为虚拟机提供对资源的访问。
另一个示例(例如,示例18)涉及先前的示例(例如,示例15至17中的一个)或任何其他示例,还包括:通过确定物理功能的仿真和/或准虚拟化的数量、仿真和/或准虚拟化的相应能力、资源的使用的预期服务质量和资源的使用的风险中的至少一个来调度资源的使用,并且基于所调度的资源的使用为虚拟机提供对资源的访问。
另一个示例(例如,示例19)涉及先前的示例(例如,示例15至18中的一个)或任何其他示例,还包括:接收多个虚拟机访问资源的多个请求、关于对资源的访问与多个虚拟机协商相应服务水平协议SLA、以及基于协商好的SLA经由多个虚拟机的仿真和/或准虚拟化的物理功能提供对资源的访问。
另一个示例(例如,示例20)涉及一种非暂态机器可读存储介质,该非暂态机器可读存储介质包括程序代码,该程序代码在被执行时,使机器执行前述示例(例如,示例15至19)中的任一个或任何其他示例的方法。
与前述示例中的一个特定示例相关地描述的方面和特征可与其他示例中的一个或多个相组合,以代替该其他示例的相同或类似特征或者将这些特征附加地引入到其他示例中。
示例可进一步是或涉及(计算机)程序,包括用于在该程序在计算机、处理器或其他可编程硬件组件上执行时执行以上方法中的一个或多个方法的程序代码。由此,上文所描述的方法中的不同方法的步骤、操作或过程也可以由经编程的计算机、处理器或其他可编程硬件组件执行。示例还可涵盖程序存储设备,诸如数字数据存储介质,其为机器可读、处理器可读或计算机可读的并且编码和/或包含机器可执行、处理器可执行或计算机可执行的程序和指令。例如,程序存储设备可包括或可以是数字存储设备、磁存储介质(诸如磁盘和磁带)、硬盘驱动器或光学可读数字数据存储介质。其他示例还可包括被编程为用于执行上文所描述的方法的步骤的计算机、处理器、控制单元、(现场)可编程逻辑阵列((field)programmable logic array,(F)PLA)、(现场)可编程门阵列((field)programmable gatearray,(F)PGA)、图形处理器单元(graphics processor unit,GPU)、专用集成电路(application-specific integrated circuit,ASIC)、集成电路(integrated circuit,IC)、或片上系统(system-on-a-chip,SoC)系统。
还将理解,在说明书或权利要求书中公开的若干步骤、过程、操作或功能的公开不应被解释为暗指这些操作必须根据所描述的次序,除非在单独的用例中明确陈述或出于技术原因而必要。因此,先前的描述并非将若干步骤或功能的执行限于某个次序。此外,在其他示例中,单个步骤、功能、过程或操作可包括和/或被分解为子步骤、子功能、子过程或子操作。
如果一些方面已结合设备或系统进行了描述,但这些方面也应当被理解为对相对应方法的描述。例如,块、设备、或者设备或系统的功能性方面可与相对应方法的特征(诸如方法步骤)相对应。相应地,结合方法描述的方面也应当被理解为对相对应块、相对应元件、相对应设备或相对应系统的属性或功能性特征的描述。
如本文所使用,术语“模块”是指可采用硬件组件或设备、在处理单元上运行的软件或固件、或其组合来实现的用于执行符合本公开的一个或多个操作的逻辑。软件和固件可以被具体化为存储在非瞬态计算机可读存储介质上的指令和/或数据。如本文所使用,术语“电路系统”可以单独地或以任何组合包括非可编程(硬连线)电路系统、可编程电路系统(诸如处理单元)、状态机电路系统和/或存储可由可编程电路系统执行的指令的固件。本文中所描述的模块可共同地或单独地被具体化为形成计算系统的部分的电路。由此,模块中的任一者可以被实现为电路系统。被称为被编程为用于执行方法的计算系统可以被编程为经由软件、硬件、固件或其组合来执行该方法。
任何所公开的方法(或其部分)均可以被实现为计算机可执行指令或计算机程序产品。此类指令可以使得能够执行计算机可执行指令的计算系统或一个或多个处理单元来执行所公开的方法中的任一者。如本文所使用,术语“计算机”是指本文所描述或提及的任何计算系统或设备。由此,术语“计算机可执行指令”是指可由本文中所描述或提及的任何计算系统或设备执行的指令。
计算机可执行指令可以是例如计算系统的操作系统、存储在计算系统本地的应用、或对于计算系统可访问的远程应用(例如,经由网页浏览器)的部分。本文所述的方法中的任何方法均可以通过计算机可执行指令来执行,这些指令由单个计算系统或由在网络环境中操作的一个或多个联网的计算系统执行。计算机可执行指令和对计算机可执行指令的更新可以从远程服务器下载到计算系统。
此外,应理解,所公开的技术的实现不限于任何特定的计算机语言或程序。例如,所公开的技术可以由以C++、C#、Java、Perl、Python、JavaScript、Adobe Flash、C#、汇编语言、或任何其他编程语言编写的软件来实现。同样,所公开的技术不限于任何特定的计算机系统或任何特定类型的硬件。
此外,任何基于软件的示例(包括例如用于使计算机执行所公开的方法中的任一者的计算机可执行指令)可以通过合适的通信手段被上传、下载或远程访问。此类合适的通信手段包括例如,因特网、万维网、内联网、电缆(包括光纤电缆)、磁通信、电磁通信(包括RF、微波、超声波和红外通信)、电子通信或其他此类通信手段。
不应将所公开的方法、装置和系统解释为以任何方式进行限制。替代地,本公开内容单独地以及以与彼此的各种组合和子组合针对各个公开的示例的所有新颖的且非显而易见的特征和方面。所公开的方法、设备和系统既不限于任何特定方面或特征或其组合,所公开的示例也不要求存在任何一个或多个特定优点或解决任何一个或多个特定的问题。
参考本公开的装置或方法在此提出的操作理论、科学原理或其他理论描述是出于更好地理解的目的而提供的,并且不旨在限制范围。所附权利要求中的装置和方法不限于以由此类操作理论描述的方式起作用的那些装置和方法。
所附的权利要求由此被包括在具体实施方式中,其中,每一项权利要求本身可作为单独的示例。应当注意,虽然在权利要求书中从属权利要求指代与一项或多项其他权利要求的特定组合,但是其他示例也可包括该从属权利要求与任何其他从属或独立权利要求的主题的组合。在此明确提出此类组合,除非在个别情况下声明特定组合并非预期的。此外,即使权利要求并未直接被限定为引用任何另一独立权利要求,但该权利要求的特征也应针对该任何另一独立权利要求而被包括。
Claims (25)
1.一种装置,所述装置包括接口电路、机器可读指令和处理电路,所述处理电路用于执行所述机器可读指令以:
接收虚拟机访问网络节点的资源的请求;
确定与所述资源相关联的可用虚拟功能的数量是否低于预定义阈值;
如果确定所述可用虚拟功能的数量低于所述预定义阈值,则对与所述资源相关联的物理功能进行仿真和/或准虚拟化;以及
经由用于所述虚拟机的仿真和/或准虚拟化的所述物理功能提供对所述资源的访问。
2.如权利要求1所述的装置,其中,所述机器可读指令包括用于下述操作的指令:
接收所述虚拟机的服务水平协议SLA;
基于所述SLA确定所述虚拟机的资源容差和优先级中的至少一个;
基于所述资源容差和所述优先级中的至少一个确定与所述资源相关联的虚拟功能或所述物理功能是否被提供给所述虚拟机;以及
如果确定将所述物理功能提供给所述虚拟机,则对所述物理功能进行仿真和/或准虚拟化。
3.如权利要求1或2所述的装置,其中,所述机器可读指令包括用于下述操作的指令:
接收所述虚拟机的服务水平协议SLA;
基于所述SLA确定所述虚拟机的资源容差和优先级中的至少一个;
基于所述资源容差和所述优先级中的至少一个调度所述虚拟机对所述资源的使用;以及
基于所调度的所述资源的使用为所述虚拟机提供对所述资源的访问。
4.如权利要求3所述的装置,其中,所述机器可读指令包括用于下述操作的指令:通过确定所述虚拟机的速率控制、分组优先级、接合选项、容错和迁移容差中的至少一个来确定所述资源容差。
5.如权利要求1所述的装置,其中,所述机器可读指令包括用于下述操作的指令:
通过确定所述物理功能的仿真和/或准虚拟化的数量、仿真和/或准虚拟化的相应能力、所述资源的使用的预期服务质量和所述资源的使用的风险中的至少一个来调度所述资源的使用;以及
基于所调度的所述资源的使用为所述虚拟机提供对所述资源的访问。
6.如权利要求1所述的装置,其中,所述机器可读指令包括用于下述操作的指令:
访问存储在区块链中的可信虚拟机列表;
确定所述虚拟机是否在列表中;以及
如果确定所述虚拟机不在列表中,则拒绝其对所述资源的访问。
7.如权利要求1所述的装置,其中,所述机器可读指令包括用于下述操作的指令:
接收多个虚拟机访问资源的多个请求;
关于对所述资源的访问与所述多个虚拟机协商相应服务水平协议SLA;以及
基于协商好的SLA经由用于所述多个虚拟机的所述仿真和/或准虚拟化的物理功能提供对所述资源的访问。
8.如权利要求1所述的装置,其中,所述机器可读指令包括用于下述操作的指令:
确定所述资源或另一资源的热插拔或热拔;以及
基于所确定的热插拔或热拔来确定可用虚拟功能的数量。
9.如权利要求8所述的装置,其中,所述机器可读指令包括用于基于所确定的可用虚拟功能的数量来协商SLA的指令。
10.如权利要求1所述的装置,其中,所述机器可读指令包括用于监控所述仿真和/或准虚拟化的物理功能的度量以及存储监控到的度量的指令。
11.如权利要求1所述的装置,其中,所述机器可读指令包括用于经由所述仿真和/或准虚拟化的物理功能确定所述资源的使用的服务质量以及用于存储所确定的服务质量的指令。
12.如权利要求1所述的装置,其中,与所述资源相关联的所述物理功能是由单根输入/输出虚拟化设备提供的物理功能。
13.如权利要求1所述的装置,其中,所述资源是PCIe总线的带宽。
14.如权利要求1所述的装置,其中,所述机器可读指令包括用于响应于接收到所述虚拟机的请求,向所述虚拟机发送用于所述仿真和/或准虚拟化的物理功能的使用的驱动器的指令。
15.一种方法,包括:
接收虚拟机访问网络节点的资源的请求;
确定与所述资源相关联的可用虚拟功能的数量是否低于预定义阈值;
如果确定所述可用虚拟功能的数量低于所述预定义阈值,则对与所述资源相关联的物理功能进行仿真和/或准虚拟化;以及
经由用于所述虚拟机的仿真和/或准虚拟化的物理功能提供对所述资源的访问。
16.如权利要求15所述的方法,进一步包括:
接收所述虚拟机的服务水平协议SLA;
基于所述SLA确定所述虚拟机的资源容差和优先级中的至少一个;
基于所述资源容差和所述优先级中的至少一个确定与所述资源相关联的虚拟功能或所述物理功能是否被提供给所述虚拟机;以及
如果确定将所述物理功能提供给所述虚拟机,则对所述物理功能进行仿真和/或准虚拟化。
17.如权利要求15或16中任一项所述的方法,进一步包括:
接收所述虚拟机的服务水平协议SLA;
基于所述SLA确定所述虚拟机的资源容差和优先级中的至少一个;
基于所述资源容差和所述优先级中的至少一个调度所述虚拟机对所述资源的使用;以及
基于所调度的所述资源的使用为所述虚拟机提供对所述资源的访问。
18.如权利要求15所述的方法,进一步包括:
通过确定所述物理功能的仿真和/或准虚拟化的数量、仿真和/或准虚拟化的相应能力、所述资源的使用的预期服务质量和所述资源的使用的风险中的至少一个来调度所述资源的使用;以及
基于所调度的所述资源的使用为所述虚拟机提供对所述资源的访问。
19.如权利要求15所述的方法,进一步包括:
接收多个虚拟机访问所述资源的多个请求;
关于对所述资源的访问与所述多个虚拟机协商相应服务水平协议SLA;以及
基于协商好的SLA经由用于所述多个虚拟机的所述仿真和/或准虚拟化的物理功能提供对所述资源的访问。
20.如权利要求15所述的方法,进一步包括:
确定所述资源或另一资源的热插拔或热拔;以及
基于所确定的热插拔或热拔来确定可用虚拟功能的数量。
21.如权利要求20所述的方法,进一步包括:基于所确定的可用虚拟功能的数量来协商SLA。
22.如权利要求15所述的方法,进一步包括:监控所述仿真和/或准虚拟化的物理功能的度量以及存储监控到的度量。
23.如权利要求15所述的方法,进一步包括:经由所述仿真和/或准虚拟化的物理功能确定所述资源的使用的服务质量以及存储所确定的服务质量。
24.一种非暂态机器可读存储介质,包括程序代码,所述程序代码在被执行时,使机器执行如权利要求15所述的方法。
25.一种计算机系统,包括处理器、耦合到所述处理器的用于存储指令的存储器,所述指令在由所述处理器执行时,用于执行如权利要求15所述的方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/337,089 | 2023-06-19 | ||
| US18/337,089 US20240143376A1 (en) | 2023-06-19 | 2023-06-19 | Apparatus and method for emulating or para virtualizing a physical function of a resource |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN119166322A true CN119166322A (zh) | 2024-12-20 |
Family
ID=89430070
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202311666159.2A Pending CN119166322A (zh) | 2023-06-19 | 2023-12-05 | 用于仿真或准虚拟化资源的物理功能的装置和方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20240143376A1 (zh) |
| EP (1) | EP4481565A1 (zh) |
| KR (1) | KR20240177312A (zh) |
| CN (1) | CN119166322A (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12554658B2 (en) * | 2023-08-01 | 2026-02-17 | SanDisk Technologies, Inc. | Multi-host bandwidth management considering external and internal traffic |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10423437B2 (en) * | 2016-08-17 | 2019-09-24 | Red Hat Israel, Ltd. | Hot-plugging of virtual functions in a virtualized environment |
| US11513924B2 (en) * | 2018-08-22 | 2022-11-29 | Intel Corporation | Flexible memory mapped input/output (I/O) space definition for a virtual device in a scalable I/O virtualization (S-IOV) architecture |
-
2023
- 2023-06-19 US US18/337,089 patent/US20240143376A1/en active Pending
- 2023-12-05 CN CN202311666159.2A patent/CN119166322A/zh active Pending
- 2023-12-19 EP EP23217915.0A patent/EP4481565A1/en active Pending
- 2023-12-27 KR KR1020230192287A patent/KR20240177312A/ko active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| EP4481565A1 (en) | 2024-12-25 |
| KR20240177312A (ko) | 2024-12-27 |
| US20240143376A1 (en) | 2024-05-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11061712B2 (en) | Hot-plugging of virtual functions in a virtualized environment | |
| US11113046B1 (en) | Integration and remote control of a pre-assembled computer system into a server for a virtualization service | |
| US11379265B2 (en) | Resource management method, host, and endpoint based on performance specification | |
| JP6055310B2 (ja) | 仮想記憶ターゲットオフロード技術 | |
| US9176767B2 (en) | Network interface card device pass-through with multiple nested hypervisors | |
| CN101842784B (zh) | 共享多功能装置和在共享多功能装置内分派和隔离功能的方法 | |
| US8151265B2 (en) | Apparatus for and method for real-time optimization of virtual machine input/output performance | |
| TWI526931B (zh) | 用於虛擬機器之繼承產品啟動 | |
| US20100287262A1 (en) | Method and system for guaranteed end-to-end data flows in a local networking domain | |
| US11243589B1 (en) | Remote power button actuation device for a pre-assembled computer system integrated into a server for a virtualization service | |
| CN114281444B (zh) | 一种实施云桌面客户端的布置方法 | |
| CN114691286A (zh) | 服务器系统、虚拟机创建方法及装置 | |
| WO2022068753A1 (zh) | 服务器系统、容器设置方法及装置 | |
| CN119166322A (zh) | 用于仿真或准虚拟化资源的物理功能的装置和方法 | |
| US11853771B1 (en) | Offload card based virtualization of a pre-assembled computer system integrated into a server for a virtualization service | |
| CN116069584A (zh) | 将监控服务扩展到可信云运营商域中 | |
| CN114281442B (zh) | 一种云桌面客户端及其方法 | |
| CN114500564B (zh) | 一种云桌面系统的客户端硬件适配方法 | |
| CN114465765B (zh) | 一种云桌面系统的客户端安全管理系统及方法 | |
| CN114281443B (zh) | 一种云桌面系统及方法 | |
| CN114462008B (zh) | 一种云桌面系统的安全验证方法 | |
| CN114490031B (zh) | 一种云桌面系统服务器云资源管理方法 | |
| Kumarasan | Continuous and Concurrent Network Connection for Hardware Virtualization |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication |