基于虚拟机的设备热替换方法及装置的制造方法_2

文档序号:9524046阅读:来源:国知局
提供的插入已修复逻辑设备的操作流程图。
【具体实施方式】
[0027]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028]图1为本发明实施例提供的运行系统的结构示意图。图1示出了本发明实施例能够被应用到能够运行虚拟机的计算机/计算机群100中,例如服务器终端设备,客户终端设备,个人计算机等等。该类计算机/计算机群100中一般可以包括一个或多个处理器101,一个或多个存储器102,以及一个或多个物理磁盘103/104。其中,各个模块通过系统总线连接。
[0029]在计算机/计算机群100可能运行着虚拟机监视器200,以及一个或多个虚拟机300/400ο其中,通过虚拟机监视器200来管理和调度虚拟机300/400。其中虚拟机300/400可以为LINUX系统、UNIX系统、WINDOWS系统、ANDROID系统、10S系统等等系统的虚拟机,且虚拟机300与虚拟机400可以为不同系统类型的虚拟机。另外,虚拟机300/400以及虚拟机监视器200,还可以运行在LINUX系统、UNIX系统、WINDOWS系统、ANDROID系统、10S系统等等系统上。
[0030]在本发明实施例中,通过在VMM (例如,图2中虚拟机监视器200)预先创建公共代理设备对象,用公共代理设备对象与虚拟磁盘间的映射,来代替真实设备与虚拟磁盘之间的映射,当需要执行热插拔操作时,通过公共代理设备来响应来自W例如,图2中虚拟机300/400)的热插拔命令,进而实现,即使真实设备出现故障,那么VMM依然能够处理VM的热插拔命令,以实现VM的热插拔操作。
[0031]为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
[0032]图3为本发明一个实施例提供的一种基于虚拟机的设备热替换方法的流程图。如图3所示,具体需要执行如下步骤:
[0033]S310,接收热替换命令。
[0034]需要说明的是,图4为VM到物理硬件层的映射关系示意图。如图4所示,VM中看到的各个设备(VM2中的设备1或者,VMn中的设备2、设备3),分别是VMM模拟的虚拟磁盘(虚拟磁盘1、虚拟磁盘2、虚拟磁盘3)。VMM中的各个虚拟磁盘都对应有VMM中的一个逻辑设备(虚拟磁盘1对应逻辑设备1 ;虚拟磁盘2对应逻辑设备2,虚拟磁盘3对应逻辑设备
2),而VMM中的看到的各个逻辑设备分别是对应的物理磁盘(逻辑设备1为物理磁盘1 ;逻辑设备2为物理磁盘2),。另外,根据虚拟机的设置不同,一个虚拟磁盘也可以对应一个或多个逻辑设备。应该知道的是,这里说的物理磁盘仅为描述简便的举例,该物理磁盘可以是操作系统中的各个磁盘分区,也可以是不同的存储设备,还可以是块设备,例如,键盘等。
[0035]基于虚拟的设备热替换,在VMM中,是解除虚拟磁盘与逻辑设备之间的映射关系,回收相关资源,关闭真实设备的电源;在物理硬件层,是插入和拔出物理磁盘。
[0036]在本发明实施例具体实施过程中,当需要对设备进行热插拔操作时,在VMM通常可以先通过CLI或⑶I (Graphical User Interface,图形用户接口)等人机操作入口接收设备替换请求,该请求一般携带有目标虚拟磁盘的标识,该目标虚拟磁盘对应有需要被替换的逻辑设备。
[0037]应该知道的是,通过设备的标识,便可以确定具体的设备,显然通过目标虚拟磁盘的标识也能够确定具体的目标虚拟磁盘。
[0038]S320,生成模拟逻辑设备。
[0039]需要说明的是,所谓的模拟逻辑设备可以是指令的集合,能够响应VM对设备的处理操作请求,但拒绝正常的I/O读写请求;还可以是一个VMM层的文件,该文件的功能等同于通过文件系统生成的文件。可以预先在VMM层设置模拟逻辑模块生成程序,可以当接收到热替换命令后,触发改程序,生成模拟逻辑模块。其中此处对代理设备对象的描述举例,具体的实现形式还有多种,这里不再一一赘述。
[0040]本发明实施例在具体实施过程中,模拟逻辑设备具有标识,该标识可以是文件描述符(VM是基于UNIX系统的,通过文件描述符访问文件),还可以是文件句柄(VM是基于Windows系统的,通过文件句柄识别文件)。
[0041]S330,向模拟逻辑设备发送逻辑设备的控制信息。
[0042]需要说明的是,可以用模拟逻辑设备的标识继承需要替换的逻辑设备的控制信息,该控制信息一般包括:盘扇区数量、盘扇区大小、设备ID、盘类型等等。此时模拟逻辑设备具备了逻辑设备的特征。
[0043]S340,删除虚拟磁盘的标识与待替换的逻辑设备的标识之间的映射关系。
[0044]需要说明的是,如图4所示,若确定热替换命令中携带的虚拟磁盘的标识对应虚拟磁盘401,则在建立模拟逻辑设备403之后,删除虚拟磁盘401与逻辑设备402之间的映射关系。
[0045]S350,建立虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系
[0046]在此说明,如图4所示,模拟逻辑设备能够响应虚拟磁盘对于逻辑设备的控制信息,所以,建立模拟逻辑设备403与虚拟磁盘401之间的映射关系,当然,设备之间通过设备标识进行映射。经过步骤S340、S350实现了用模拟逻辑设备403替换了已故障的逻辑设备402。此时,在VM层面看见的设备对应的虚拟磁盘401是正常的,VM并不知道在VMM层发生了替换过程。由于逻辑设备与虚拟磁盘之间的映射已经断开,所以此时VM与逻辑设备的交互,实际为VM与模拟逻辑设备之间的交互。
[0047]S360,接收热拔出命令。
[0048]需要说明的是,如图4所示,在步骤S350之后,由于VM与逻辑设备的交互,实际为VM与模拟逻辑设备之间的交互。但是模拟逻辑设备可能仅能够响应控制指令,并不能够对其进行读写操作,也就是说虚拟磁盘401是没有什么实际的作用的,所以,可以将其删除。将虚拟磁盘401删除的触发条件可以是执行完S350后便触发此动作,也可以是在接收到特定的热拔出命令后,该热拔出命令携带有需要拔出的虚拟磁盘的标识。其中,触发删除虚拟磁盘的操作还有多种,此处仅为举例,并不做限定。
[0049]另外,可以通过CLI或⑶I接收热拔出命令。
[0050]S370,回收分配给虚拟磁盘的资源。
[0051]需要说明的是,由于虚拟磁盘占用VMM—定的资源,如图5所示,所以,对虚拟磁盘的删除,VMM需要将分配给虚拟磁盘的资源回收。
[0052]S380,删除虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系。
[0053]需要说明的是,图5为已删除模拟逻辑设备与虚拟磁盘的映射关系示意图。如图5所示,由于虚拟磁盘已被删除,还可以被删除模拟逻辑设备。当有新的需求时,重新再建立模拟逻辑设备。
[0054]此外,如图4所示,当执行完S350后,便可以对逻辑设备402进行拔出操作,也就是对物理硬件层的物理磁盘410进行拔出操作。此步骤为可选步骤,拔出物理磁盘410是为了对已故障的物理磁盘410进行修复,或者用好的物理磁盘替换,或者仅是删除不再使用。
[0055]需要说明的是,当物理磁盘410已经被修复,需要重新插入时,在物理磁盘410对应的逻辑设备的标识没有变的情况下,还可以重新建立映射。具体可以做如下步骤。
[0056]接收热插入命令,该第一热插入命令包括需要映射的虚拟磁盘的标识。创建这个需要映射的虚拟磁盘。建立新创建的虚拟磁盘的标识与新插入的逻辑设备的标识之间的映射关系。由于已修复的逻辑设备的标识并未发生变换,所以该新插入的逻辑设备的标识即为原被替换的逻辑设备的标识。
[0057]另外,通过在本发明实施例中的方法拔出的设备
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1