CN101267334B - 一种动态分配设备的方法及装置 - Google Patents

一种动态分配设备的方法及装置 Download PDF

Info

Publication number
CN101267334B
CN101267334B CN2007100643735A CN200710064373A CN101267334B CN 101267334 B CN101267334 B CN 101267334B CN 2007100643735 A CN2007100643735 A CN 2007100643735A CN 200710064373 A CN200710064373 A CN 200710064373A CN 101267334 B CN101267334 B CN 101267334B
Authority
CN
China
Prior art keywords
virtual machine
physical equipment
access
module
user virtual
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
Application number
CN2007100643735A
Other languages
English (en)
Other versions
CN101267334A (zh
Inventor
王碧波
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN2007100643735A priority Critical patent/CN101267334B/zh
Publication of CN101267334A publication Critical patent/CN101267334A/zh
Application granted granted Critical
Publication of CN101267334B publication Critical patent/CN101267334B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种动态分配设备的方法,该方法中的设备访问监控单元对用户虚拟机访问物理设备进行监控,设备访问模式控制单元根据监控获得的信息确定用户虚拟机访问物理设备的访问模式,然后将访问模式自动转换确定后的访问模式。同时还公开了一种动态分配设备的装置,包括用户虚拟机、输入输出管理虚拟机、虚拟机管理器、系统硬件、虚拟机管理器,进一步包括设备访问监控模块和设备访问模式控制模块。本发明根据用户虚拟机向设备发出的访问请求和当前物理设备的使用情况,兼顾性能和共享两个方面的考虑,自动地为用户虚拟机动态地分配设备,使得有限的物理设备可以供多个虚拟机使用并保证设备在虚拟机中可以达到很好的性能。

Description

一种动态分配设备的方法及装置 
技术领域
本发明涉及计算机设备分配方法,特别是指一种基于虚拟化技术的动态分配设备的方法及装置。 
背景技术
现有的虚拟机系统一般分为两种类型,一类为包括输入输出管理虚拟机的虚拟机系统,另一类为不包括输入输出管理虚拟机的虚拟机系统。 
图1给出了不包括输入输出管理虚拟机的虚拟机系统结构图。图中包括第一用户虚拟机101、第二用户虚拟机102、第三用户虚拟机103、虚拟机管理器104、系统硬件105,其中第一用户虚拟机101包括第一设备驱动模块1011,第二用户虚拟机102包括第二设备驱动模块1021,第三用户虚拟机103包括第三设备驱动模块1031,虚拟机管理器104包括设备模拟模块1041,系统硬件105包括物理设备1051。该系统结构下,用户虚拟机访问物理设备1051的模式有以下两种: 
模式1:直接访问物理设备 
参见图2所示,该模式下,第一用户虚拟机101通过其内部的第一设备驱动模块1011与系统硬件105中的物理设备1051建立连接,直接对物理设备1051的进行访问。 
模式2:多个用户虚拟机通过虚拟机管理器104访问物理设备 
参见图3所示,该模式下,每个用户虚拟机的设备驱动模块与虚拟机管理器104中的设备模拟模块1041建立连接后,发送需要使用物理设备1051的命令给虚拟机管理器中的设备模拟模块1041,设备模拟模块1041接收到命令后,以共享的模式将物理设备1051提供给每个用户虚拟机,实现用户虚拟机对物理设备1051的访问。 
图4给出了包括输入输出管理虚拟机的虚拟机系统结构图。图中包括第一用户虚拟机101、第二用户虚拟机102、输入输出管理虚拟机201、虚拟机管 理器104、系统硬件105。其中,第一用户虚拟机101包括第一设备驱动模块1011,第二用户虚拟机102包括第二设备驱动模块1021,输入输出管理虚拟机201包括设备模拟模块2012,系统硬件105包括物理设备1051。该系统结构下,用户虚拟机访问物理设备1051的模式有以下两种: 
模式1:直接访问物理设备 
参见图5所示,该模式下,第一用户虚拟机101通过其内部的第一设备驱动模块1011与系统硬件105中的物理设备1051建立连接,直接对物理设备1051的进行访问。 
模式2:多个用户虚拟机通过输入输出管理虚拟机201访问物理设备 
参见图6所示,该模式下,第一用户虚拟机101通过其内部的第一设备驱动模块1011,第二用户虚拟机102通过其内部的第二设备驱动模块1021与输入输出管理虚拟机201中的设备模拟模块2012建立连接后,发送需要使用物理设备1051的命令给输入输出管理虚拟机201中的设备模拟模块2012,设备模拟模块2012接收到命令后,以共享的方式将物理设备1051提供给第一用户虚拟机101和第二用户虚拟机102,实现对物理设备1051的访问。 
现有虚拟化技术下的设备分配方法,虽然也是根据具体情况选择相应的访问物理设备的模式,但是直接访问物理设备模式下,用户虚拟机没有通过虚拟机管理器的管理,就直接对物理设备进行访问。另外,现有虚拟化技术下的设备分配方法都是针对单个用户虚拟机访问物理设备的情况,物理设备的使用权始终被单个用户虚拟机掌控。当多个用户虚拟机通过虚拟机管理器或输入输出管理虚拟机间接对物理设备访问时,用户虚拟机需要主动向虚拟机管理器或输入输出管理虚拟机发出请求来进行访问模式切换,虚拟机管理器或输入输出管理虚拟机并不会自动根据用户虚拟机的请求和物理设备的使用情况自动地为用户虚拟机动态地分配物理设备。 
发明内容
有鉴于此,本发明的目的在于提供一种动态分配设备的方法及装置,根据用户虚拟机对物理设备的访问请求和当前物理设备的使用情况,自动地为用户虚拟机动态地分配物理设备。 
基于上述目的,本发明提供了一种动态分配设备的方法,包括以下步骤::
a)监控用户虚拟机向物理设备发出的访问请求; 
b)根据监控获得的信息确定该用户虚拟机访问该物理设备的访问模式;其中, 
所述监控获得的信息包括当前其它用户虚拟机访问该物理设备的访问模式,所述访问模式包括直接访问物理设备模式、共享访问物理设备模式; 
c)将访问该物理设备的访问模式转换为步骤b)确定的该用户虚拟机访问该物理设备的访问模式。 
该方法步骤b)所述监控获得的信息还包括访问该物理设备的用户虚拟机数目以及该物理设备被使用的情况。 
该方法步骤b)所述访问模式还包括由直接访问物理设备模式和共享访问物理设备模式构成的组合访问物理设备模式。 
该方法步骤b)所述确定该用户虚拟机访问该物理设备的访问模式包括: 
对于单个用户虚拟机访问单个物理设备,或多个用户虚拟机访问多个物理设备、并且用户虚拟机要访问的设备数小于或等于物理设备数,确定访问模式为直接访问物理设备模式;对于多个用户虚拟机访问单个物理设备,或单个用户虚拟机要访问的设备数大于物理设备数,确定访问模式为共享访问物理设备模式;对于多个用户虚拟机访问多个物理设备,且用户虚拟机要访问的设备数大于物理设备数,确定访问模式为共享访问物理设备模式或由直接访问物理设备模式和共享访问物理设备模式的组合模式。 
该方法步骤c)所述将访问该物理设备的访问模式转换为步骤b)确定的该用户虚拟机访问该物理设备的访问模式包括: 
将直接访问物理设备模式转换为共享访问物理设备模式:停止当前用户虚拟机对物理设备的直接访问,将物理设备的资源和对应于用户虚拟机的虚拟设备资源进行同步,发出访问请求的用户虚拟机通过资源映射单元映射的虚拟设备资源间接对物理设备进行访问; 
将共享访问物理设备模式转换为直接访问物理设备模式:停止当前用户虚拟机对物理设备的共享访问,发出访问请求的用户虚拟机通过资源映射单元直接对物理设备进行访问。 
该方法步骤c)后进一步包括在虚拟机管理器中设置中断路由模块,该模块将物理设备发出的中断信号转发给访问该物理设备的用户虚拟机;在直接访问 物理设备模式下,中断路由模块将中断信号直接转发给用户虚拟机,在共享访问物理设备模式下,中断路由模块将中断信号转发给输入输出管理虚拟机的设备驱动模块,该中断信号依次经过设备资源模块、资源映射模块,到达用户虚拟机的设备驱动模块。 
本发明还提供了一种动态分配设备的装置,包括用户虚拟机、虚拟机管理器、输入输出管理虚拟机和物理设备;其特征在于,该装置进一步包括设备访问监控模块和设备访问模式控制模块; 
设备访问监控模块,用于监控虚拟机对设备的访问,为设备访问模式控制模块提供当前所有用户虚拟机要访问的设备个数和当前物理设备的使用情况; 
设备访问模式控制模块,用于根据当前所有用户虚拟机要访问设备个数和当前物理设备的使用情况,确定采用共享访问物理设备模式或直接访问物理设备模式;其中, 
所述虚拟机管理器进一步包括: 
资源映射模块,该模块用于根据设备访问模式控制模块提供的访问模式进行资源映射,如果是共享访问物理设备模式则映射到虚拟设备资源模块;如果是直接访问物理设备模式则映射到物理设备。 
该装置所述设备访问监控模块设置于虚拟机管理器中;所述设备访问模式控制模块设置于虚拟机管理器或输入输出管理虚拟机中。 
该装置所述虚拟机管理器进一步包括中断路由模块,该模块用于根据设备访问模式控制模块确定的访问模式对物理设备发出的中断信号进行转发,如果是共享访问物理设备模式则将中断信号转发给输入输出管理虚拟机,通过输入输出管理虚拟机进一步转发给对应的用户虚拟机;如果是直接访问物理设备模式则将中断信号转发给对应的用户虚拟机。 
从上面所述可以看出,本发明提供的一种动态分配设备的方法及装置,通过虚拟机管理器和输入输出管理虚拟机,兼顾性能和共享两个方面的考虑,动态地为多个用户虚拟机分配设备。对于单个虚拟机访问单个物理设备的情况,采取直接访问物理设备模式,从而尽可能的提高设备的使用性能,对于多个用户虚拟机对多个物理设备进行访问的情况,采取共享访问物理设备模式或者有针对性地结合直接访问物理设备模式与共享访问物理设备模式两种模式,来保证每个用户虚拟机都能成功访问其所要访问的物理设备。 
附图说明
图1为现有技术一中不包括输入输出管理虚拟机的虚拟机系统结构图; 
图2为现有技术一中直接访问物理设备模式下的系统内部模块连接示意图; 
图3为现有技术一中多个用户虚拟机通过虚拟机管理器访问物理设备的系统内部模块连接示意图; 
图4为现有技术二中包括输入输出管理虚拟机的虚拟机系统结构图; 
图5为现有技术二中直接访问物理设备的模式下的系统内部模块连接示意图; 
图6为现有技术二中多个用户虚拟机通过虚拟机管理器访问物理设备的系统内部模块连接示意图; 
图7为本发明基于虚拟化技术的动态分配设备的系统结构图; 
图8A和图8B为本发明中直接访问物理设备模式下的系统内部模块连接示意图; 
图9A和图9B为本发明中共享访问物理设备模式下的系统内部模块连接示意图; 
图10为本发明中动态分配设备的流程图; 
图11为本发明实施例中多个用户虚拟机共享访问物理设备模式转换为单个用户虚拟机直接访问物理设备模式的动态分配设备的流程图; 
图12为本发明实施例中单个用户虚拟机直接访问物理设备模式转换为多个用户虚拟机共享访问物理设备模式动态分配设备的流程图; 
图13为本发明实施例中两个用户虚拟机访问两个物理设备情况下的设备动态分配结构示意图; 
图14为本发明实施例中第一种三个用户虚拟机访问两个物理设备情况下的设备动态分配结构示意图; 
图15为本发明实施例中第二种三个用户虚拟机访问两个物理设备情况下的设备动态分配结构示意图; 
图16为本发明实施例中第三种三个用户虚拟机访问两个物理设备情况下的设备动态分配结构示意图。 
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。 
图7为本发明基于虚拟化技术的动态分配设备的系统结构图,包括第一用户虚拟机101、第二用户虚拟机102、输入输出管理虚拟机701、虚拟机管理器702、系统硬件105。其中,第一用户虚拟机101包括第一设备驱动模块1011,第二用户虚拟机102包括第二设备驱动模块1021,输入输出管理虚拟机7011包括第一虚拟设备资源模块7011、第二虚拟设备资源模块7012和输入输出管理虚拟机驱动模块7013,虚拟机管理器包括设备访问监控模块7021、资源映射模块7022、中断路由模块7023和设备访问模式控制模块7024,系统硬件105包括物理设备1051。 
设备访问监控模块7021用于监控用户虚拟机对物理设备的访问,为设备访问模式控制模块7024提供当前所有用户虚拟机要访问的设备个数和当前物理设备的使用情况等信息。 
设备访问模式控制模块7024用于根据当前所有用户虚拟机要访问的设备个数和当前物理设备的使用情况,确定是采用共享访问物理设备模式还是采用访问物理设备模式。 
资源映射模块7022用于根据设备访问模式控制模块7024确定的访问模式进行资源映射,如果是共享访问物理设备模式则映射到虚拟设备资源模块7011、7012;如果是直接访问物理设备模式则映射到物理设备1051。 
中断路由模块7023用于根据设备访问模式控制模块7024确定的访问模式对物理设备发出的中断信号进行转发,如果是共享访问物理设备模式则将中断信号转发给输入输出管理虚拟机201,通过输入输出管理虚拟机201进一步转发给对应的用户虚拟机;如果是直接访问物理设备模式则将中断信号直接给对应的用户虚拟机。 
图8A和图8B为本发明中直接访问物理设备模式下的系统内部模块连接示意图。图8A中,第一用户虚拟机101通过第一设备驱动模块1011发送访问物理设备1051的请求给资源映射模块7022,资源映射模块7022接到第一用户虚拟机101的访问请求后,直接映射到物理设备1051。图8B中物理设备1051通过中断路由模块7023将中断信号发给第一用户虚拟机101的第一设备驱动模块。最终,实现第一虚拟机单元101对物理设备1051的直接使用。
图9A和图9B为本发明中共享访问物理设备模式下的系统内部模块连接示意图。图9A中,第一用户虚拟机101通过第一设备驱动模块1011发送使用物理设备1051的请求给资源映射模块7022,第二用户虚拟机102通过第二设备驱动模块1021发送访问物理设备1051的请求给资源映射模块7022,资源映射模块7022接到第一用户虚拟机101的访问请求后,映射到输入输出管理虚拟机701中的第一虚拟设备资源模块7011;资源映射模块7022接到第二用户虚拟机102的访问请求后,映射到输入输出管理虚拟机701中的第二虚拟设备资源模块7012,然后第一虚拟设备资源模块7011和第二虚拟设备资源模块7012通过输入输出管理虚拟机驱动模块7013与物理设备1051建立连接。图9B中,物理设备1051通过中断路由模块7023将中断信号给输入输出管理虚拟机驱动模块7013,由输入输出管理虚拟机驱动模块7013进一步转发给第一用户虚拟机101的第一设备驱动模块1011和第二用户虚拟机102的第二设备驱动模块1021。最终,实现第一虚拟机单元101和第二虚拟机单元102对物理设备1051的共享访问。 
图10给出了本发明中动态分配设备的流程图,具体实施步骤如下: 
步骤1001:设备访问监控模块接收到用户虚拟机发出的访问物理设备的请求。 
步骤1002:设备访问模式控制模块判断当前物理设备是否被其他用户虚拟机以直接访问模式访问,如果是,则执行步骤1003;否则,执行步骤1004。 
步骤1003:将直接访问物理设备模式转换为共享访问物理设备模式,进入步骤1005。 
步骤1004:设备访问模式控制模块进一步判断当前物理设备是否可以以直接访问模式被用户虚拟机访问,如果是,则执行步骤1006;否则,执行步骤1005。 
步骤1005:资源映射模块将访问请求转发给输入输出管理虚拟机,进入步骤1007。 
步骤1006:将共享访问物理设备模式转换为直接访问物理设备模式,进入步骤1007。 
步骤1007:物理设备执行用户虚拟机的访问请求。
在执行过程中,如果用户虚拟机需要其访问的物理设备发送反馈信号或数据,则由物理设备发出中断信号给虚拟机管理器中的中断路由模块,再由中断路由模块转发该中断信号给用户虚拟机。根据访问物理设备的方式,中断路由转发中断信号分为两种情况: 
情况1:如果物理设备处在直接访问物理设备模式下,中断路由模块直接转发该中断信号给用户虚拟机中的设备驱动模块。 
情况2:如果物理设备处在共享访问物理设备模式下,中断路由模块接收物理设备发出的中断信号后,转发给输入输出管理虚拟机的设备驱动模块,该中断信号依次经过设备资源模块、资源映射模块,到达用户虚拟机的设备驱动模块。 
图11给出了本发明中多个用户虚拟机共享访问物理设备模式转换为单个用户虚拟机直接访问物理设备模式的动态分配设备的流程图,具体实施步骤如下: 
步骤1101:输入输出管理虚拟机的设备驱动模块停止对物理设备的操作。 
步骤1102:设备访问模式控制模块保存输入输出管理虚拟机中物理设备的状态。 
步骤1103:设备访问模式控制模块保存第一虚拟设备资源模块的状态。 
步骤1104:设备访问模式控制模块将第二虚拟设备资源模块的状态加载到物理设备。 
步骤1105:设备访问模式控制模块将物理设备的状态和第二虚拟设备资源模块的状态进行同步。 
该步骤中,由于在共享访问物理设备模式下,输入输出管理虚拟机为第一用户虚拟机配置相应的第一虚拟设备资源模块,为第二用户虚拟机配置相应的第二虚拟设备资源模块,第一用户虚拟机和第二用户虚拟机通过访问输入输出管理虚拟机中的第一虚拟设备资源模块和第二虚拟设备资源模块实现对物理设备的访问。因此,在从共享访问物理设备模式转换为直接访问物理设备模式的动态分配设备过程中,设备访问模式控制模块对共享访问物理设备模式下第二虚拟设备资源模块的状态信息进行复制,并加载给物理设备,作为当前物理设备的状态信息。
步骤1106:设备访问模式控制模块根据物理设备的当前状态配置资源映射模块,第二用户虚拟机的第二设备驱动模块通过资源映射模块直接访问物理设备。所述物理设备的当前状态包括当前正在访问物理设备的用户虚拟机和当前物理设备的使用情况。 
步骤1107:设备访问模式控制模块配置中断路由模块,中断路由模块将物理设备发出的中断响应转发给第二用户虚拟机的第二设备驱动模块,从而使第二用户虚拟机能够直接接收到所访问的物理设备以中断方式发出的反馈信号或数据。 
图12给出了本发明中单个用户虚拟机直接访问物理设备模式转换为多个用户虚拟机共享访问物理设备模式动态分配设备的流程图,具体实施步骤如下: 
步骤1201:设备访问模式控制模块停止第二用户虚拟机对物理设备的直接访问操作。 
步骤1202:设备访问模式控制模块保存第二用户虚拟机中物理设备的状态。 
步骤1203:设备访问模式控制模块将物理设备的资源和第二虚拟设备资源模块的资源进行同步。 
该步骤中,由于在直接访问物理设备模式下,第二用户虚拟机直接通过资源映射模块实现对物理设备的直接访问。因此,在访问模式转换为共享访问物理设备模式后,设备访问模式控制模块对直接访问物理设备模式下物理设备的状态信息进行复制,并加载给输入输出管理虚拟机中的第二虚拟设备资源模块,作为当前第二虚拟设备资源模块的状态信息。 
步骤1204:设备访问模式控制模块加载输入输出管理虚拟机中物理设备的状态信息。 
步骤1205:设备访问模式控制模块加载第一虚拟设备资源模块的状态信息。 
步骤1206:设备访问模式控制模块配置资源映射模块,使输入输出管理虚拟机能够通过其内部的第三设备驱动模块访问物理设备。 
步骤1207:设备访问模式控制模块根据第一虚拟设备资源模块的状态信 息和第二虚拟设备资源模块的状态信息配置资源映射模块。 
第一用户虚拟机通过资源映射模块访问第一虚拟设备资源模块实现对物理设备的间接访问,第二用户虚拟机通过资源映射模块访问第二虚拟设备资源模块实现对物理设备的间接访问。 
步骤1208:设备访问模式控制模块配置中断路由模块。 
中断路由模块接收物理设备发出的中断信号后,转发给输入输出管理虚拟机的设备驱动模块,该中断信号依次经过第一虚拟设备资源模块和第二设备资源模块、资源映射模块,分别到达第一用户虚拟机的第一设备驱动模块和第二用户虚拟机的第二设备驱动模块,从而使第一用户虚拟机和第二用户虚拟机能够间接接收到所访问的物理设备以中断方式发出的反馈信号或数据。 
下面是不同情况下实现本发明的具体实施例: 
下述实施例中,将设备访问监控模块、资源映射模块、中断路由模块和设备访问模式控制模块设置在设备模拟模块中。 
具体实施例1 
图13给出了两个用户虚拟机访问两个物理设备情况下的设备动态分配结构示意图,图中包括输入输出管理虚拟机1301、第一用户虚拟机101、第二用户虚拟机102、虚拟机管理器1302、系统硬件1303。输入输出管理虚拟机1301包括设备模拟模块13011,第一用户虚拟机101包括第一设备驱动模块1011,第二用户虚拟机102包括第二设备驱动模块1021,系统硬件1303包括第一物理设备13031和第二物理设备13032。 
在该情况下,由于系统硬件1303包括第一物理设备13031和第二物理设备13032,并且只有第一用户虚拟机101和第二用户虚拟机102需要访问系统硬件,因此,第一用户虚拟机101和第二用户虚拟机102均可以以直接访问物理设备模式访问系统硬件1303。具体为,第一用户虚拟机101通过其内部的第一设备驱动模块1011直接访问第一物理设备13031,第二用户虚拟机102通过其内部的第一设备驱动模块1021直接访问第一物理设备13032。 
具体实施例2 
图14给出了第一种三个用户虚拟机访问两个物理设备情况下的设备动态分配结构示意图,图中包括输入输出管理虚拟机1401、第一用户虚拟机101、 第二用户虚拟机102、第三用户虚拟机1402、虚拟机管理器1403、系统硬件1404。输入输出管理虚拟机1401包括设备模拟模块14011,第一用户虚拟机101包括第一设备驱动模块1011,第二用户虚拟机102包括第二设备驱动模块1021,第三用户虚拟机1402包括第三设备驱动模块14021,系统硬件1404包括第一物理设备14041和第二物理设备14042。 
在该情况下,系统硬件1404包括第一物理设备14041和第二物理设备14042,并且有三个用户虚拟机需要访问系统硬件1404,其中,第一用户虚拟机101和第二用户虚拟机102同时需要访问第一物理设备14041,第三用户虚拟机103需要访问第二物理设备14042。为此,采用直接访问物理设备模式和共享访问物理设备模式相结合的访问模式。 
第一用户虚拟机101和第二用户虚拟机102以共享访问物理设备模式访问第一物理设备14041,具体为,第一用户虚拟机101通过其内部的第一设备驱动模块1011与输入输出管理虚拟机1401中的设备模拟模块14011连接,第二用户虚拟机102通过其内部的第一设备驱动模块1021与输入输出管理虚拟机1401中的设备模拟模块14011连接,设备模拟模块14011与系统硬件的第一物理设备14041连接,第一用户虚拟机101和第二用户虚拟机102通过设备模拟模块14011以共享访问物理设备模式访问第一物理设备14041。 
第三用户虚拟机1402以直接访问物理设备模式访问第二物理设备14042,具体为,第三用户虚拟机1402通过其内部的第三设备驱动模块14021直接访问第一物理设备14042。 
具体实施例3 
图15给出了第二种三个用户虚拟机访问两个物理设备情况下的设备动态分配结构示意图,图中包括输入输出管理虚拟机1401、第一用户虚拟机101、第二用户虚拟机102、第三用户虚拟机1402、虚拟机管理器1403、系统硬件1404。输入输出管理虚拟机1401包括设备模拟模块14011,第一用户虚拟机101包括第一设备驱动模块1011,第二用户虚拟机102包括第二设备驱动模块1021,第三用户虚拟机1402包括第三设备驱动模块14021,系统硬件1404包括第一物理设备14041和第二物理设备14042。 
在该情况下,系统硬件1404包括第一物理设备14041和第二物理设备 14042,并且有三个用户虚拟机需要访问系统硬件1404,其中,第一用户虚拟机101、第二用户虚拟机102和第三用户虚拟机103同时需要访问第一物理设备14041和第二物理设备14042。为此,采用共享访问物理设备模式的访问模式。 
第一用户虚拟机101、第二用户虚拟机102和第三用户虚拟机1402以共享访问物理设备模式访问第一物理设备14041和第二物理设备14042。具体为,第一用户虚拟机101通过其内部的第一设备驱动模块1011与输入输出管理虚拟机1401中的设备模拟模块14011连接,第二用户虚拟机102通过其内部的第一设备驱动模块1021与输入输出管理虚拟机1401中的设备模拟模块14011连接,第三用户虚拟机1402通过其内部的第一设备驱动模块14021与输入输出管理虚拟机1401中的设备模拟模块14011连接,设备模拟模块14011分别与系统硬件的第一物理设备14041和第二物理设备14042连接,第一用户虚拟机101、第二用户虚拟机102和第三用户虚拟机1402通过设备模拟模块14011以共享访问物理设备模式访问第一物理设备14041和第二物理设备14042。 
具体实施例4 
图16给出了第三种三个用户虚拟机访问两个物理设备情况下的设备动态分配结构示意图,图中包括输入输出管理虚拟机1401、第一用户虚拟机101、第二用户虚拟机102、第三用户虚拟机1601、虚拟机管理器1403、系统硬件1404。输入输出管理虚拟机1401包括设备模拟模块14011,第一用户虚拟机101包括第一设备驱动模块1011,第二用户虚拟机102包括第二设备驱动模块1021,第三用户虚拟机1601包括第三设备驱动模块16011和第四设备驱动模块16012,系统硬件1403包括第一物理设备14031和第二物理设备14032。 
在该情况下,系统硬件1404包括第一物理设备14041和第二物理设备14042,并且有三个用户虚拟机需要访问系统硬件1404,其中第三用户虚拟机的第三设备驱动模块和第四设备驱动模块需要分别访问系统硬件1403中的第一物理设备14031和第二物理设备14032。为此,采用直接访问物理设备模式和共享访问物理设备模式相结合的访问模式。 
第一用户虚拟机101、第二用户虚拟机102和第三用户虚拟机1601以共享访问物理设备模式访问第一物理设备14041和第二物理设备14042。具体为, 第一用户虚拟机101通过其内部的第一设备驱动模块1011与输入输出管理虚拟机1401中的设备模拟模块14011连接;第二用户虚拟机102通过其内部的第一设备驱动模块1021与输入输出管理虚拟机1401中的设备模拟模块14011连接;第三用户虚拟机1601通过其内部的第一设备驱动模块16011与输入输出管理虚拟机1401中的设备模拟模块14011连接;设备模拟模块14011与系统硬件的第一物理设备14041连接,第一用户虚拟机101、第二用户虚拟机102和第三用户虚拟机1601通过设备模拟模块14011以共享访问物理设备模式访问第一物理设备14041和第二物理设备14042。 
第三用户虚拟机1601采用直接访问物理设备模式访问第二物理设备14042。具体为,第三用户虚拟机1601通过其内部的第三设备驱动模块16012直接访问第一物理设备14042。 
上述实施例仅对存在三个用户虚拟机和包括两个物理设备的系统硬件的情况如何进行物理设备动态分配进行了分析,对于三个以上用户虚拟机和包括两个以上物理设备的系统硬件的情况,可以很容易地根据上述实施例中的方法进行物理设备的动态分配。 
另外,上述实施例中详细描述了针对不同用户虚拟机的需求以及物理设备的当前状态,将直接访问物理设备模式和共享访问物理设备模式有机的结合,形成由直接访问物理设备模式和共享访问物理设备模式构成的组合访问物理设备模式。 
本发明中的设备访问模式控制模块不仅可以设置在虚拟机管理器中,也可以设置在输入输出管理虚拟机中,还可以将前两种模式相结合,在输入输出管理虚拟机中设置设备访问控制调用模块,在虚拟机管理器中设置设备访问控制执行模块,通过输入输出管理虚拟机中的设备访问控制调用模块调用虚拟机管理器中的设备访问控制执行模块来控制用户虚拟机对物理设备的访问模式。 
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种动态分配设备的方法,其特征在于,包括以下步骤:
a)监控用户虚拟机向物理设备发出的访问请求;
b)根据监控获得的信息确定该用户虚拟机访问该物理设备的访问模式;其中,
所述监控获得的信息包括当前其它用户虚拟机访问该物理设备的访问模式,所述访问模式包括直接访问物理设备模式、共享访问物理设备模式;
c)将访问该物理设备的访问模式转换为步骤b)确定的该用户虚拟机访问该物理设备的访问模式。
2.根据权利要求1所述的方法,其特征在于,步骤b)所述监控获得的信息还包括访问该物理设备的用户虚拟机数目以及该物理设备被使用的情况。
3.根据权利要求1所述的方法,其特征在于,步骤b)所述访问模式还包括由直接访问物理设备模式和共享访问物理设备模式构成的组合访问物理设备模式。
4.根据权利要求2或3所述的方法,其特征在于,步骤b)所述确定该用户虚拟机访问该物理设备的访问模式包括:
对于单个用户虚拟机访问单个物理设备,或多个用户虚拟机访问多个物理设备、并且用户虚拟机要访问的设备数小于或等于物理设备数,确定访问模式为直接访问物理设备模式;对于多个用户虚拟机访问单个物理设备,或单个用户虚拟机要访问的设备数大于物理设备数,确定访问模式为共享访问物理设备模式;对于多个用户虚拟机访问多个物理设备,且用户虚拟机要访问的设备数大于物理设备数,确定访问模式为共享访问物理设备模式或由直接访问物理设备模式和共享访问物理设备模式的组合模式。
5.根据权利要求3所述的方法,其特征在于,步骤c)所述将访问该物理设备的访问模式转换为步骤b)确定的该用户虚拟机访问该物理设备的访问模式包括:
将直接访问物理设备模式转换为共享访问物理设备模式:停止当前用户虚拟机对物理设备的直接访问,将物理设备的资源和对应于用户虚拟机的虚拟设备资源进行同步,发出访问请求的用户虚拟机通过资源映射单元映射的虚拟设备资源间接对物理设备进行访问;
将共享访问物理设备模式转换为直接访问物理设备模式:停止当前用户虚拟机对物理设备的共享访问,发出访问请求的用户虚拟机通过资源映射单元直接对物理设备进行访问。
6.根据权利要求1或5所述的方法,其特征在于,步骤c)后进一步包括在虚拟机管理器中设置中断路由模块,该模块将物理设备发出的中断信号转发给访问该物理设备的用户虚拟机;在直接访问物理设备模式下,中断路由模块将中断信号直接转发给用户虚拟机,在共享访问物理设备模式下,中断路由模块将中断信号转发给输入输出管理虚拟机的设备驱动模块,该中断信号依次经过设备资源模块、资源映射模块,到达用户虚拟机的设备驱动模块。
7.一种动态分配设备的装置,包括用户虚拟机、虚拟机管理器、输入输出管理虚拟机和物理设备;其特征在于,该装置进一步包括设备访问监控模块和设备访问模式控制模块;
设备访问监控模块,用于监控虚拟机对设备的访问,为设备访问模式控制模块提供当前所有用户虚拟机要访问的设备个数和当前物理设备的使用情况;
设备访问模式控制模块,用于根据当前所有用户虚拟机要访问设备个数和当前物理设备的使用情况,确定采用共享访问物理设备模式或直接访问物理设备模式;其中,
所述虚拟机管理器进一步包括:
资源映射模块,该模块用于根据设备访问模式控制模块提供的访问模式进行资源映射,如果是共享访问物理设备模式则映射到虚拟设备资源模块;如果是直接访问物理设备模式则映射到该物理设备。
8.根据权利要求7所述的装置,其特征在于,所述设备访问监控模块设置于虚拟机管理器中;所述设备访问模式控制模块设置于虚拟机管理器或输入输出管理虚拟机中。
9.根据权利要求7所述的装置,其特征在于,所述虚拟机管理器进一步包括中断路由模块,该模块用于根据设备访问模式控制模块确定的访问模式对物理设备发出的中断信号进行转发,如果是共享访问物理设备模式则将中断信号转发给输入输出管理虚拟机,通过输入输出管理虚拟机进一步转发给对应的用户虚拟机;如果是直接访问物理设备模式则将中断信号转发给对应的用户虚拟机。
CN2007100643735A 2007-03-13 2007-03-13 一种动态分配设备的方法及装置 Active CN101267334B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007100643735A CN101267334B (zh) 2007-03-13 2007-03-13 一种动态分配设备的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007100643735A CN101267334B (zh) 2007-03-13 2007-03-13 一种动态分配设备的方法及装置

Publications (2)

Publication Number Publication Date
CN101267334A CN101267334A (zh) 2008-09-17
CN101267334B true CN101267334B (zh) 2011-01-26

Family

ID=39989484

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007100643735A Active CN101267334B (zh) 2007-03-13 2007-03-13 一种动态分配设备的方法及装置

Country Status (1)

Country Link
CN (1) CN101267334B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546283A (zh) * 2010-12-31 2012-07-04 北京安码科技有限公司 系统无人职守的自动监护的方法及其装置
WO2015058377A1 (zh) 2013-10-23 2015-04-30 华为技术有限公司 一种创建虚拟机的方法和装置
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
WO2018005829A1 (en) * 2016-06-30 2018-01-04 Amazon Technologies, Inc. On-demand code execution using cross-account aliases
CN108369526B (zh) * 2017-08-07 2022-03-11 深圳前海达闼云端智能科技有限公司 一种虚拟机的启动方法、装置和智能终端
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
CN111290837B (zh) * 2020-05-07 2020-08-14 翱捷科技(上海)有限公司 一种构建轻量级虚拟化系统的方法
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
CN113900775B (zh) * 2021-12-08 2022-08-02 北京交研智慧科技有限公司 一种边端云计算跨节点虚拟机处理方法及装置
CN116841691A (zh) * 2023-06-15 2023-10-03 海光信息技术股份有限公司 加密硬件的配置方法、数据机密计算方法及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1726470A (zh) * 2002-12-19 2006-01-25 英特尔公司 在虚拟机操作中用于管理机器状态的方法和系统
US7069413B1 (en) * 2003-01-29 2006-06-27 Vmware, Inc. Method and system for performing virtual to physical address translations in a virtual machine monitor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1726470A (zh) * 2002-12-19 2006-01-25 英特尔公司 在虚拟机操作中用于管理机器状态的方法和系统
US7069413B1 (en) * 2003-01-29 2006-06-27 Vmware, Inc. Method and system for performing virtual to physical address translations in a virtual machine monitor

Also Published As

Publication number Publication date
CN101267334A (zh) 2008-09-17

Similar Documents

Publication Publication Date Title
CN101267334B (zh) 一种动态分配设备的方法及装置
CN106489251B (zh) 应用拓扑关系发现的方法、装置和系统
CN105830394B (zh) 虚拟网络策略的配置方法、系统及其虚拟网元和网管系统
CN102187315B (zh) 在虚拟环境中获取用于服务器负载均衡的反馈信息的方法和装置
US8863138B2 (en) Application service performance in cloud computing
US11206193B2 (en) Method and system for provisioning resources in cloud computing
KR101286181B1 (ko) 다중 서브시스템들을 갖는 엘리베이터 제어 시스템의 원격 접근
CN107278359A (zh) 云计算系统中报文处理的方法、主机和系统
EP2040176B1 (en) Dynamic Resource Allocation
US20110004687A1 (en) Information processing apparatus, information processing system, setting program transmission method and server setting program
CN102158386A (zh) 系统管理程序级的分布式负载平衡
JP2001331333A (ja) 計算機システム及び計算機システムの制御方法
KR20130088512A (ko) 클러스터 컴퓨팅 환경에서의 자원 관리 장치 및 방법
KR100715962B1 (ko) 서버 장치
CN105335229A (zh) 一种业务资源的调度方法和装置
CN102281254A (zh) 服务器串口设计系统及方法
CN102486741A (zh) 串口共用系统及方法
US10425293B2 (en) Network resource allocation proposals
US10007625B2 (en) Resource allocation by virtual channel management and bus multiplexing
CN103634225A (zh) 云计算网络虚拟化中的业务带宽扩展方法
CN111597024B (zh) 跨域集群处理方法、装置、电子设备及存储介质
CN108600344A (zh) 一种网络访问请求调度方法、装置和存储介质
KR20190007635A (ko) 네트워크 시스템에서의 리소스 할당 방법 및 이를 구현하는 네트워크 시스템
CN106059940A (zh) 一种流量控制方法及装置
CN113595926B (zh) 基于数据中台的api数据传输方法、装置、设备和介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant