CN109691028B - 用于容器的设备虚拟化 - Google Patents
用于容器的设备虚拟化 Download PDFInfo
- Publication number
- CN109691028B CN109691028B CN201780055065.8A CN201780055065A CN109691028B CN 109691028 B CN109691028 B CN 109691028B CN 201780055065 A CN201780055065 A CN 201780055065A CN 109691028 B CN109691028 B CN 109691028B
- Authority
- CN
- China
- Prior art keywords
- virtual
- container
- containers
- namespace
- real
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本公开提供用于建立网络的系统、方法和计算机可读介质。创建多个虚拟设备。所述虚拟设备的每一个与对应的虚容器相关联。然后,将所述虚拟设备连接到与主机容器相关联的真实设备,以便能够在所述网络的名字空间上实现所述虚拟设备和所述真实设备之间的通信。
Description
交叉申请
本申请要求于2016年9月9日提交的、发明名称为“用于容器的设备虚拟化(DeviceVirtualization for Containers)”的美国专利申请第15/261,128号的优先权,其全部内容以引用的方式并入本文中。
技术领域
本发明大体上涉及虚拟机,且更具体地说,涉及用于向虚容器提供资源的技术。
背景技术
虚拟化是一种允许在主机计算系统上运行被称为虚容器的一个或多个隔离的用户空间实例的技术。特定的主机计算系统可以运行多个虚容器,并且虚容器由主机容器管理。每个容器提供对共享计算资源的访问,包括处理器周期和存储器等,从而模仿运行特定操作系统(operating system,OS)并用于执行特定软件集合的特定硬件集合。为了分离虚容器,每个虚容器都配备有相应的名字空间。
在使用期间,主机容器对于虚容器的用户是透明的,并且虚容器可以用于运行任何适当数量的应用程序。在某些实例中,和虚容器一起运行的一个或多个应用程序通过虚容器的OS请求访问一个或多个基于设备的资源。例如,由WiFi或以太网设备提供的访问因特网连接的基于网页的的应用程序请求。尽管独立计算机的(即,非虚拟化的)OS可以例如通过内核中的驱动器直接与各种硬件组件交互,但是虚容器通常设有接口,例如超管理器,通过该接口,虚容器的OS可以访问某些硬件元件。
然而,如果该设备对于操作系统是可见的,则虚容器的OS只能访问基于设备的资源。一些基于设备的资源,例如无线适配器,没有配置成跨越多个名字空间可见。因此,在典型的虚拟化场景中,只有活动虚容器可以访问此类基于设备的资源。另外,主机计算设备通常仅具有每个设备中的单个设备。如果特定的主机计算系统运行两个虚容器,则只有活动虚容器可以访问基于设备的资源,并且阻止非活动虚容器访问基于设备的资源,直到其成为活动虚容器。因此,只有活动虚容器的OS可以访问WiFi适配器或其它联网设备,并且防止在非活动虚容器中运行的任何应用程序访问由WiFi适配器提供的网络资源。
因此,需要向在主机计算系统上运行的所有虚容器提供对基于设备的资源的访问。
发明内容
本公开提供用于建立网络的系统、方法和计算机可读介质。创建多个虚拟设备。所述虚拟设备中的每一个与对应的虚容器相关联。将所述虚拟设备连接到与主机容器相关联的真实设备,以便能够在所述网络的名字空间上实现所述虚拟设备和所述真实设备之间的通信。
根据一个广义方面,提供一种用于建立网络的方法,包括:创建多个虚拟设备;将所述虚拟设备中的每一个与对应的虚容器相关联;以及将所述虚拟设备连接到与主机容器相关联的真实设备,以便能够在所述网络的名字空间上实现所述虚拟设备和所述真实设备之间的通信。
可选地,在前述实施例中的任一实施例中,所述真实设备和所述虚拟设备是无线设备。
可选地,在前述实施例中的任一实施例中,所述虚拟设备是所述真实设备的虚拟复本。
可选地,在前述实施例中的任一实施例中,所述虚拟设备中的每个包括物理WiFi设备接口和无线LAN设备接口。
可选地,在前述实施例中的任一实施例中,创建多个虚拟设备包括:使虚拟驱动器创建所述虚拟设备的多个实例。
可选地,在前述实施例中的任一实施例中,所述虚拟驱动器是FullMAC驱动器和SoftMAC驱动器中的一个。
可选地,在前述实施例中的任一实施例中,所述方法还包括使所述主机容器实例化所述多个虚容器,其中每个虚容器具有相关联的名字空间。
可选地,在前述实施例中的任一实施例中,所述多个虚容器属于第一组容器和第二组虚容器中的一组,其中所述第一组虚容器和所述第二组虚容器运行不同的操作系统。
可选地,在前述实施例中的任一实施例中,所述方法还包括经由所述虚拟设备的虚拟驱动器管理所述虚容器之间的冲突。
可选地,在前述实施例中的任一实施例中,所述方法还包括经由所述主机容器中的仲裁器管理所述虚容器之间的冲突,所述主机容器管理所述虚容器。
根据另一个广义方面,提供了一种用于建立网络的系统。所述系统包括处理单元和非瞬时性存储器,所述非瞬时性存储器通信耦合到处理单元并包括计算机可读程序指令。所述程序指令可由所述处理单元执行,用于创建多个虚拟设备;将所述虚拟设备中的每一个与对应的虚容器相关联;以及将所述虚拟设备连接到与主机容器相关联的真实设备,以便能够在所述网络的名字空间上实现所述虚拟设备和所述真实设备之间的通信。
可选地,在前述实施例中的任一实施例中,所述真实设备和所述虚拟设备是无线设备。
可选地,在前述实施例中的任一实施例中,所述虚拟设备是所述真实设备的虚拟复本。
可选地,在前述实施例中的任一实施例中,所述虚拟设备中的每个包括物理WiFi设备接口和无线LAN设备接口。
可选地,在前述实施例中的任一实施例中,创建多个虚拟设备包括:使虚拟驱动器创建所述虚拟设备的多个实例。
可选地,在前述实施例中的任一实施例中,所述程序指令还可执行以用于使所述主机容器实例化所述多个虚容器,其中每个虚容器具有相关联的名字空间。
可选地,在前述实施例中的任一实施例中,所述多个虚容器属于第一组容器和第二组虚容器中的一组,其中所述第一虚容器和所述第二组虚容器运行不同的操作系统。
可选地,在前述实施例中的任一实施例中,所述程序指令还可执行以用于经由所述虚拟设备的虚拟驱动器管理所述虚容器之间的冲突。
可选地,在前述实施例中的任一实施例中,所述程序指令还可执行以用于经由所述主机容器中的仲裁器管理所述虚容器之间的冲突,所述主机容器管理所述虚容器。
根据再一个广义方面,提供了一种计算机网络,其包括:至少一个主机容器,其容纳至少两个虚容器并可访问至少一个真实设备;至少一个真实设备,其可由所述至少一个主机容器访问;以及虚拟设备,其与所述至少两个虚容器中的每一个相关联,并且连接到所述至少一个真实设备,以便能够在所述网络的名字空间上实现所述虚拟设备和所述真实设备之间的通信。
本文中所描述的系统、设备和方法的特征可以各种组合使用,还可以各种组合用于所述系统和计算机可读存储介质。
附图说明
本文所述实施例的其它特征和优势可以通过以下结合附图的详细描述变得显而易见,其中:
图1是示例虚拟化系统的框图;
图2是根据实施例的用于管理虚容器的GPU分配的方法的流程图;
图3是示例栈的框图;
图4是用于实施虚拟化系统的示例计算机系统的框图;且
图5A至图5E是执行图2的方法的实施例的示例虚拟化系统的框图。
应注意,在整个附图中,相同的特征通过相同的附图标记来标识。
具体实施方式
计算机配备有各种真实设备以允许访问不同的资源。例如,计算机可以具有以太网适配器、一个或多个无线网络适配器(WiFi、蓝牙TM等)、一个或多个通用串行总线(universal serial bus,USB)适配器等。本公开提供了用于在计算机在对应虚容器中运行多个操作系统时提供对真实设备的访问的方法和系统。创建真实设备的虚拟化复本并将其与虚容器中的每个相关联。然后将虚拟化复本连接到真实设备,以允许真实设备和虚拟化复本之间的通信。
参考图1,示出示例容器管理系统100。容器管理系统100可以由任何合适的计算设备实施,包括台式或笔记本电脑、大型机、服务器、智能电话或其它移动设备等。容器管理系统100实施主机容器110,并提供对一个或多个真实设备132、134和136(总称为设备130)的访问。设备130可以位于主机容器110的名字空间中或位于独立的名字空间中,并且主机容器110可以提供对设备130的访问。容器管理系统100,更具体地说是主机容器110,用于容纳一个或多个虚容器122和124。应当注意,尽管图1示出三个(3)真实设备132、134和136和两个(2)虚容器122和124,但是容器管理系统100可以提供对任何合适数量的设备的访问,并且可以容纳任何合适数量的虚容器。
主机容器110和虚容器122和124可以是任何合适类型的容器,并且可以运行任何合适类型的操作系统(operating system,OS)。在一些实施例中,主机容器110是用于运行管理向虚容器122和124的资源分配的主进程的根容器。在一些其它实施例中,主进程还用于实例化虚容器122和124。虚容器122和124可以在任何适当的时间使用任何适当的方式来实例化。主机容器110的OS运行于主机内核(未示出),其中主机内核可以是任何合适的内核。在其它实施例中,主机容器110是基础虚容器,虚容器122和124容纳在基础虚容器中,并且该基础虚容器容纳于单独的根容器中。真实设备132、134和136中的每个可以位于根容器或基础虚容器的名字空间中。
虚容器122和124配备有各种计算资源,包括处理器循环、存储器等,且这些计算资源由主机容器110管理。虚容器122和124可以运行公共OS,或者可以运行共享公共内核的不同OS。例如,虚容器122运行Android版本7.0(Noguar),虚容器124运行Android版本6.0(Marshmallow)。作为另一示例,虚容器122运行Windows 10,而虚容器124运行Windows 7。虚容器122和124可以由主机容器110管理,并且可以经由任何合适的超管理器或其它容器管理技术访问计算资源。虚容器122和124用于运行任何数量的应用程序,这些应用程序使用主机容器110提供的计算资源。
主机容器110和虚拟装置122和124各自位于各自的名字空间中。名字空间是保存唯一标识符或符号的逻辑分组的抽象环境。换言之,名字空间基于计算机资源、应用程序、文件等所属的容器来分组计算机资源、应用程序、文件等。因此,包括设备130的主机容器110可用的资源位于主机容器110的名字空间中,并且可用于虚拟设备122和124的资源位于它们各自的名字空间中。在任何给定时间,虚容器122和124中只有一个是活动虚容器,并且所有其它虚容器都是不活动的。活动虚容器是例如由容器管理系统100的用户当前使用的虚容器122或124。
真实设备130可以包括提供计算资源的任何合适类型的设备。计算资源可由在虚容器122和124中运行的应用程序或在主机容器110中运行的应用程序使用。例如,真实设备132是联网设备,例如WiFi设备、以太网设备、蓝牙TM设备等。作为另一示例,真实设备134是定位设备,例如,全球定位系统(global positioning system,GPS)设备、扩展GPS设备、无线辅助GPS设备等。作为另一示例,真实设备136是数据传送设备,例如通用串行总线(universal serial bus,USB)端口、串行AT附件(serial AT attachment,SATA)端口、照明端口等。还可视为是其它设备。
参考图2,提供了用于建立网络的方法200,该网络将多个虚容器,例如虚容器122和124,连接到设备130中的一个,例如真实设备132。在步骤202,创建多个虚拟设备。在一些实施例中,为虚容器122和124中的每个创建一个虚拟设备。在一些实施例中,虚拟设备是真实设备132的复本。或者,虚拟设备是以任何适当方式修改的真实设备132的版本。例如,虚拟设备经修改为包括仲裁协议,如下所述。在与主机容器110相同的名字空间中创建虚拟设备。在一些实施例中,虚拟设备由虚拟驱动器创建。虚拟驱动器可以是真实驱动器的另一实例。该虚拟驱动器可以是真实驱动器的复本,或者可以是真实驱动器的修改版本。可以以任何适当的方式修改真实驱动器,例如为虚拟驱动器提供与单独的真实驱动器通信和/或调用单独的模块或命令所需的信息来跨越名字空间边界进行通信。
在一些实施例中,方法200的执行开始于没有实例化的虚容器。因此,在步骤204,可选地,使主机容器110实例化多个虚容器122和124。虚容器122和124可由主机容器110直接实例化,或可由其主进程实例化。虚容器122和124中的每个在与主机容器110的名字空间分开的相应名字空间中得到实例化。在其它实施例中,在执行方法200时已经实例化虚容器122和124,且不执行步骤204。
在步骤206,虚拟设备中的每个与虚容器122和124中对应的一个相关联。通过将虚拟设备中的每个的名字空间改变为虚容器122和124中对应的一个的名字空间,虚拟设备与对应的虚容器相关联。通过改变虚拟设备的名字空间,该虚拟设备可以访问虚容器122和124。
在步骤208,虚拟设备被连接到真实设备132。连接虚拟设备和真实设备132使得能够在网络的名字空间,特别是主机容器110的名字空间上实现虚拟设备和真实设备132之间的通信。在一些实施例中,通过向虚拟设备的虚拟驱动器提供指向真实设备132的指针来执行该连接。在一些实施例中,虚拟设备和真实设备132经由主机内核连接。因此,通过为虚容器122和124中的每个创建虚拟设备,虚容器甚至在不活动时也可以通过其各自的虚拟设备访问真实设备132。
在步骤210,可选地,管理虚容器122和124之间的冲突。冲突的管理可以由虚拟设备、真实设备132、主机容器100或主机内核来执行。例如,真实设备132用于向虚拟设备指示真实设备132过载和/或不能处理访问真实设备132的附加请求。例如,真实设备132和虚拟设备之间的通信可以由例如虚拟驱动器来执行。在另一示例中,主机容器110用于拦截虚拟设备和真实设备132之间的通信,并且可以延迟和/或暂停将使真实设备132过载的通信。还考虑了用于仲裁的其它方法。
一旦连接到真实设备132,虚容器122和124的名字空间中的虚拟设备作为虚容器122和124的OS的真实设备出现。即使在虚容器122或124不是活动容器的情况下,这允许虚容器122和124的OS访问由真实设备132提供的计算资源。此外,因为虚拟设备被放置在虚容器122和124的名字空间的内核空间中,所以无需对虚容器122和124的用户空间做出改变。因此,即使OS被升级或修改,方法200也可用于使用特定内核的任何OS。
在一些实施例中,针对虚容器122和124的虚拟化的真实设备132是提供无线网络访问的WiFi设备。例如,真实设备132是提供互联网访问的WiFi适配器。参考图3,示出示例WiFi栈300。WiFi栈300的不同配置在主机容器110和虚容器122和124中的每个中得到实施。
WiFi保护访问(WiFi protected access,WPA)请求者310在主机容器110和虚容器122和124中的每个的用户空间中得到实现。WPA请求者310是配置和控制实现WPA请求者310的容器的WiFi设备的实体。另外,NETLINK协议320在主机容器110和虚容器122和124中的每个的内核空间中得到实现。该NETLINK协议320用作WPA请求者310和内核空间WiFi配置之间的协调器,如下所述。
根据WiFi设备的性质,FullMAC配置330和SoftMAC配置340中的一个实施为WiFi栈300的一部分。FullMAC配置330在实施例中得到实施,在这些实施例中,真实设备132在硬件或固件中实施了媒体访问控制(media access control,MAC)子层管理实体(managemententity,MLME)。当MLME在软件中得到实施时,在真实设备132中或在实施WiFi栈300的容器的OS或内核中,实施SoftMAC配置340。
WiFi栈300还包括设备接口,其可以是FullMAC或SoftMAC设备接口。另外,设备接口可以是物理或虚拟设备接口。例如,主机容器110使用实施了FullMAC配置330的真实设备132,从而实施物理FullMAC设备接口332。由主机容器110主存的虚容器122和124实施虚拟FullMAC设备接口334。在另一示例中,主机容器110使用实现SoftMAC配置330的真实设备134,从而实施物理SoftMAC设备接口342。由主机容器110所存的虚容器122和124实施虚拟FullMAC设备接口344。
在其它实施例中,被虚拟化用于虚容器122和124的真实设备是另一无线设备,例如蓝牙TM设备、ZigBeeTM设备或任何其它合适的无线设备,并且主机容器110和虚容器122和124中的每个实施适当的栈。在其它实施例中,针对虚容器虚拟化的真实设备是定位设备,或数据传输设备,或任何其它合适的设备。主机容器110和虚容器122和124用于实施适当的栈、接口、驱动器等,用于使用物理设备和虚拟化设备。
参考图4,方法200可以通过计算设备410实施,该计算设备410包括处理单元412和其中存储有计算机可执行指令416的存储器414。处理单元412可以包括用于使得执行一系列步骤以便实施方法200的任何合适的设备,使得指令416在由计算设备410或其它可编程装置执行时可以使得在本文所描述的方法中指定的功能/动作/步骤得到执行。处理单元412可以包括,例如,任何类型的通用微处理器或微控制器、数字信号处理(digital signalprocessing,DSP)处理器、中央处理单元(central processing unit,CPU)、集成电路、现场可编程门阵列(field programmable gate array,FPGA)、可重配置处理器、其它适当编程或可编程逻辑电路,或其任何组合。
存储器414可以包括任何合适的已知或其它机器可读存储介质。存储器414可以包括非瞬时性计算机可读存储介质,例如但不限于电子、磁性、光学、电磁、红外或半导体系统、装置或设备,或前述的任何适当组合。存储器414可以包括位于设备内部或外部的任何类型的计算机存储器的适当组合,例如随机存取存储器(random-access memory,RAM)、只读存储器(read-only memory,ROM)、光盘只读存储器(compact disc read-only memory,CDROM)、光电存储器、磁光存储器、可擦除可编程只读存储器(erasable programmableread-only memory,EPROM)和电可擦除可编程只读存储器(electrically-erasableprogrammable read-only memory,EEPROM)、铁电RAM(ferroelectric RAM,FRAM)等。存储器414可以包括适于可检索地存储可由处理单元412执行的机器可读指令416的任何存储构件(例如,设备)。
在一些实施例中,计算设备410可以以各种方式与其它计算设备通信,包括通过一个或多个网络直接和间接耦合。网络能够承载数据。网络可以涉及有线连接、无线连接或其组合。网络可以涉及不同的网络通信技术、标准和协议,例如全球移动通信系统(globalsystem for mobile communication,GSM)、码分多址(code division multiple access,CDMA)、无线本地环路、WiMAX、Wi-Fi、蓝牙、长期演进(long term evolution,LTE)等。网络可以涉及不同的物理介质,例如同轴电缆、光纤、收发信台等。示例性网络类型包括因特网、以太网、普通老式电话业务(plain old telephone service,POTS)线路、公共交换电话网络(public switched telephone network,PSTN)、综合业务数字网(integrated servicesdigital network,ISDN)、数字用户线路(digital subscriber line,DSL)以及包括这些的任何组合的其它类型。该些网络可以包括局域网和/或广域网。
参考图5A,示出包括位于主机容器名字空间中的主机容器510的示例计算网络500。计算网络500还包括WiFi设备530。根据方法200,建立计算网络500以将多个虚容器连接到真实设备,例如WiFi设备530。
WiFi设备530具有两个主要组件:物理WiFi设备接口(physical,PHY)532和无线局域网设备接口(wireless local area network,WLAN)534。PHY 532和WLAN 534一起提供WiFi设备530的硬件和主机容器510的OS之间的接口。因此,主机容器510可以向WiFi设备530直接请求WiFi资源,以例如访问因特网。
参考图5B,在计算网络500中,根据步骤202创建多个虚拟设备540和550。虚拟设备540和550可以使用任何合适的方式来创建,并且在主机容器名字空间中创建。在一些实施例中,虚拟装置540和550由主机容器510创建。在一些实施例中,虚拟设备540和550是WiFi设备530的复本,其具有各自的PHY 542和552和WLAN 544和554。PHY 542和552和WLAN 544和554是WiFi设备530的PHY 532和WLAN 534的虚拟复本。在其它实施例中,虚拟装置540和550是WiFi设备530的修改版本。
参考图5C,可选地,根据步骤204,主机容器510实例化多个虚容器522和524。虚容器522和524可以以任何适当的方式得到实例化,并且在各自的虚容器名字空间中得到实例化。在一些实施例中,如果主容器510是根容器,则虚容器522和524被主容器510实例化,或者被主容器510的主进程实例化。在一些实施例中,虚容器522和524运行公共OS。在其它实施例中,虚容器522和524运行使用公共内核的不同OS。主机容器510可实例化任意数量的虚容器。在一些实施例中,当方法200开始时,虚容器522和524已经被实例化。
参考图5D,按照步骤206,虚拟设备540和550中的每一个分别与对应的虚容器522和524相关联。虚拟设备540和550通过改变虚拟设备的名字空间而与其各自的虚容器522和524相关联,如箭头570所示。更具体地,虚拟设备540的名字空间变更为虚容器522的名字空间,并且虚拟设备550的名字空间变更为虚容器524的名字空间。
参考图5E,按照步骤208,虚拟设备540和550连接到WiFi设备530。WiFi设备530通过在主机容器510的名字空间中而与主机容器510相关联。例如,WiFi设备530经由主机容器510的内核空间与虚拟设备540和550连接。将虚拟设备540和550连接到WiFi设备530使得能够在网络的名字空间上实现虚拟设备540和550和WiFi设备530之间的通信。这还允许虚容器522和524使用由WiFi设备530经由虚拟设备540和550提供的计算资源。
本文所描述的用于建立网络的系统和/或方法200可以实施于高级程序或面向对象的程序设计或脚本语言,或其组合中,与例如计算设备410的计算机系统进行通信或帮助其操作。用于建立网络的系统和/或方法200可以实施于汇编语言或机器语言中。语言可为编译型语言或解释型语言。用于实现用于建立网络的系统和/或方法200的程序代码可以存储在存储介质或设备上,例如ROM、磁盘、光盘、闪存驱动器或任何其它合适的存储介质或设备。当计算机读取存储介质或设备来执行本文中所描述的程序时,通用或专用可编程计算机可读取程序代码用于配置和运行该计算机。用于建立网络的系统和/或方法200的实施例还可以被认为是通过其上存储有计算机程序的非瞬时性计算机可读存储介质来实施的。计算机程序可以包括计算机可读指令,该计算机可读指令使得计算机,或更具体地说,使得计算机的至少一个处理单元以特定和预定义方式运行,来执行本文中所描述的功能。
计算机可执行指令可以采用多种形式,包含由一个或多个计算机或其它设备执行的程序模块。一般而言,程序模块包括例程、程序、对象、组件以及数据结构等,其执行特定任务或实施特定抽象数据类型。通常,在各种实施例中,可以按需要组合或分布程序模块的功能性。
在此公开的用于建立网络的系统的各个方面可以单独使用、组合使用,或以在前述的实施例中没有具体讨论的各种布置使用,因此在其应用中不限于在前面描述中阐述的或在附图中示出的组件的细节和布置。例如,在一个实施例中描述的方面可以以任何方式与在其它实施例中描述的方面组合。虽然已经展示和描述具体实施例,但所属领域的技术人员显而易见,在更广义方面不脱离本发明可以作出变化与修改。所附权利要求书的范围不应受实例中所阐述的优选实施例的限制,而应该给出与说明书整体一致的最广泛合理的解释。
Claims (20)
1.一种用于建立网络的方法,其特征在于,包括:
在主机容器的名字空间中创建多个虚拟设备;
通过将所述多个虚拟设备中的每个虚拟设备的名字空间改变为所述每个虚拟设备对应的虚容器的名字空间,以将所述每个虚拟设备和所述每个虚拟设备对应的虚容器相关联;
通过所述主机容器的内核空间,将所述每个虚拟设备连接到所述主机容器的名字空间中的真实设备,以便在所述主机容器的名字空间上实现所述虚拟设备和所述真实设备之间的通信。
2.根据权利要求1所述的方法,其特征在于,所述真实设备和所述虚拟设备是无线设备。
3.根据权利要求1所述的方法,其特征在于,所述虚拟设备是所述真实设备的虚拟复本。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述虚拟设备中的每个包括物理WiFi设备接口和无线LAN设备接口。
5.根据权利要求1至3中任一项所述的方法,其特征在于,创建多个虚拟设备包括:使虚拟驱动器创建所述虚拟设备的多个实例。
6.根据权利要求5所述的方法,其特征在于,所述虚拟驱动器是FullMAC驱动器和SoftMAC驱动器中的一个。
7.根据权利要求1至3中任一项所述的方法,其特征在于,还包括使所述主机容器实例化所述每个虚拟设备对应的虚容器,其中所述每个虚拟设备对应的虚容器具有相关联的名字空间。
8.根据权利要求1至3中任一项所述的方法,其特征在于,所述多个虚容器属于第一组虚容器和第二组虚容器中的一组,其中所述第一组虚容器和所述第二组虚容器运行不同的操作系统。
9.根据权利要求1至3中任一项所述的方法,其特征在于,还包括经由所述虚拟设备的虚拟驱动器管理所述虚容器之间的冲突。
10.根据权利要求1至3中任一项所述的方法,其特征在于,还包括经由所述主机容器中的仲裁器管理所述虚容器之间的冲突,所述主机容器管理所述虚容器。
11.一种用于建立网络的系统,其特征在于,包括:
处理单元;以及
非瞬时性存储器,其通信耦合到所述处理单元并包括可由所述处理单元执行的计算机可读程序指令,以用于:
创建多个虚拟设备;
将所述虚拟设备中的每一个与对应的虚容器相关联;以及
将所述虚拟设备连接到与主机容器相关联的真实设备,以便能够在所述网络的名字空间上实现所述虚拟设备和所述真实设备之间的通信。
12.根据权利要求11所述的系统,其特征在于,所述真实设备和所述虚拟设备是无线设备。
13.根据权利要求11所述的系统,其特征在于,所述虚拟设备是所述真实设备的虚拟复本。
14.根据权利要求11至13中任一项所述的系统,其特征在于,所述虚拟设备中的每个包括物理WiFi设备接口和无线LAN设备接口。
15.根据权利要求11至13中任一项所述的系统,其特征在于,创建多个虚拟设备包括:使虚拟驱动器创建所述虚拟设备的多个实例。
16.根据权利要求11至13中任一项所述的系统,其特征在于,所述程序指令还可执行以用于使所述主机容器实例化所述多个虚容器,其中每个虚容器具有相关联的名字空间。
17.根据权利要求11至13中任一项所述的系统,其特征在于,所述多个虚容器属于第一组虚容器和第二组虚容器中的一组,其中所述第一组虚容器和所述第二组虚容器运行不同的操作系统。
18.根据权利要求11至13中任一项所述的系统,其特征在于,所述程序指令还可执行以用于经由所述虚拟设备的虚拟驱动器管理所述虚容器之间的冲突。
19.根据权利要求11至13中任一项所述的系统,其特征在于,所述程序指令还可执行以用于经由所述主机容器中的仲裁器管理所述虚容器之间的冲突,所述主机容器管理所述虚容器。
20.一种计算网络,其特征在于,包括:
至少一个主机容器,其容纳至少两个虚容器并且可访问至少一个真实设备;
至少一个真实设备,其可由所述至少一个主机容器访问;以及
至少两个虚拟设备,其与所述至少两个虚容器中的每一个相关联,并且连接到所述至少一个真实设备,以便能够在所述网络的名字空间上实现所述虚拟设备和所述真实设备之间的通信。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/261,128 | 2016-09-09 | ||
US15/261,128 US10452419B2 (en) | 2016-09-09 | 2016-09-09 | Device virtualization for containers |
PCT/CN2017/100284 WO2018045921A1 (en) | 2016-09-09 | 2017-09-01 | Device virtualization for containers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109691028A CN109691028A (zh) | 2019-04-26 |
CN109691028B true CN109691028B (zh) | 2021-02-09 |
Family
ID=61559952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780055065.8A Active CN109691028B (zh) | 2016-09-09 | 2017-09-01 | 用于容器的设备虚拟化 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10452419B2 (zh) |
EP (1) | EP3497889B1 (zh) |
CN (1) | CN109691028B (zh) |
WO (1) | WO2018045921A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324908B (zh) * | 2017-07-31 | 2021-09-07 | 华为技术有限公司 | Netlink资源的容器隔离方法及装置 |
TWI708144B (zh) * | 2018-06-22 | 2020-10-21 | 慧榮科技股份有限公司 | 快閃記憶體的命名空間操作裝置及電腦程式產品 |
US11656924B2 (en) * | 2018-08-03 | 2023-05-23 | Samsung Electronics Co., Ltd. | System and method for dynamic volume management |
US10671286B2 (en) * | 2018-09-04 | 2020-06-02 | Toshiba Memory Corporation | System and method for managing GUI of virtual NVMe entities in NVMe over fabric appliance |
US11301279B2 (en) * | 2019-02-26 | 2022-04-12 | International Business Machines Corporation | Associating virtual IP address of virtual server with appropriate operating system in server cluster |
CN112565047B (zh) * | 2020-11-19 | 2022-03-04 | 浪潮思科网络科技有限公司 | 一种在docker中使用VPP构建网络的方法、装置、设备及介质 |
CN114666806B (zh) * | 2020-12-22 | 2024-08-27 | 中国移动通信集团终端有限公司 | 无线网络虚拟化的方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105190545A (zh) * | 2014-01-27 | 2015-12-23 | 华为技术有限公司 | 虚拟化方法和装置及计算机设备 |
CN105808320A (zh) * | 2016-03-11 | 2016-07-27 | 四川安嵌科技有限公司 | 基于Linux容器的设备虚拟化系统及方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7626931B2 (en) * | 2005-03-23 | 2009-12-01 | Microsoft Corporation | Systems and methods for coordinating wireless traffic for heterogeneous wireless devices |
US20070067769A1 (en) | 2005-08-30 | 2007-03-22 | Geisinger Nile J | Method and apparatus for providing cross-platform hardware support for computer platforms |
US7733795B2 (en) | 2006-11-28 | 2010-06-08 | Oracle America, Inc. | Virtual network testing and deployment using network stack instances and containers |
US8447880B2 (en) | 2006-12-20 | 2013-05-21 | Oracle America, Inc. | Network stack instance architecture with selection of transport layers |
US7738457B2 (en) | 2006-12-20 | 2010-06-15 | Oracle America, Inc. | Method and system for virtual routing using containers |
US8656412B2 (en) | 2009-12-25 | 2014-02-18 | International Business Machines Corporation | Pipeline across isolated computing environments |
US8392625B2 (en) | 2010-06-25 | 2013-03-05 | Intel Corporation | Methods and systems to implement a physical device to differentiate amongst multiple virtual machines of a host computer system |
EP2799973B1 (en) * | 2013-04-30 | 2017-11-22 | iNuron NV | A method for layered storage of enterprise data |
CN104506404B (zh) | 2014-12-17 | 2018-03-16 | 新华三技术有限公司 | 建立虚拟局域网转发通道的方法和装置 |
US10579403B2 (en) * | 2015-06-29 | 2020-03-03 | Vmware, Inc. | Policy based provisioning of containers |
US10405182B2 (en) * | 2016-06-30 | 2019-09-03 | Huawei Technologies Co., Ltd. | Systems devices and processes to support mobile device management of multiple containers in virtualization environment |
US10891547B2 (en) * | 2016-08-23 | 2021-01-12 | International Business Machines Corporation | Virtual resource t-shirt size generation and recommendation based on crowd sourcing |
-
2016
- 2016-09-09 US US15/261,128 patent/US10452419B2/en active Active
-
2017
- 2017-09-01 WO PCT/CN2017/100284 patent/WO2018045921A1/en unknown
- 2017-09-01 CN CN201780055065.8A patent/CN109691028B/zh active Active
- 2017-09-01 EP EP17848094.3A patent/EP3497889B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105190545A (zh) * | 2014-01-27 | 2015-12-23 | 华为技术有限公司 | 虚拟化方法和装置及计算机设备 |
CN105808320A (zh) * | 2016-03-11 | 2016-07-27 | 四川安嵌科技有限公司 | 基于Linux容器的设备虚拟化系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180074839A1 (en) | 2018-03-15 |
WO2018045921A1 (en) | 2018-03-15 |
CN109691028A (zh) | 2019-04-26 |
EP3497889A1 (en) | 2019-06-19 |
US10452419B2 (en) | 2019-10-22 |
EP3497889B1 (en) | 2022-11-09 |
EP3497889A4 (en) | 2019-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109691028B (zh) | 用于容器的设备虚拟化 | |
US10778521B2 (en) | Reconfiguring a server including a reconfigurable adapter device | |
US10768862B2 (en) | Extending existing storage devices in virtualized environments | |
CN107894913B (zh) | 一种计算机系统和存储访问装置 | |
US8832688B2 (en) | Kernel bus system with a hyberbus and method therefor | |
US20200201624A1 (en) | State-preserving upgrade of an intelligent server adapter | |
US9460040B2 (en) | Method, device and system for aggregation of shared address devices | |
US10411957B2 (en) | Method and device for integrating multiple virtual desktop architectures | |
EP3063622A1 (en) | Platform non-volatile store management and platform configuration | |
CN108737131B (zh) | 网络设备虚拟化的实现方法和装置 | |
CN108737499A (zh) | 服务器配置方法和装置 | |
US11321109B2 (en) | Container engine for selecting driver based on container metadata | |
US20180011807A1 (en) | Low latency efficient sharing of resources in multi-server ecosystems | |
US10785120B2 (en) | Systems and methods for extending link layer discovery over virtual Ethernet bridges | |
US11003618B1 (en) | Out-of-band interconnect control and isolation | |
CN105893112B (zh) | 一种虚拟化环境下的数据包处理方法及装置 | |
US11005726B2 (en) | Systems and methods for configuring network interface affinity to system management features supported by a management controller | |
WO2024072578A1 (en) | Direct assignment of physical devices to confidential virtual machines |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |