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

文档序号:9524046阅读:358来源:国知局
基于虚拟机的设备热替换方法及装置的制造方法
【技术领域】
[0001]本发明涉及虚拟机技术领域,尤其涉及一种基于虚拟机的设备热替换方法及装置。
【背景技术】
[0002]虚拟机(Virtual Machine,VM),指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟机通过生成现有操作系统的全新虚拟镜像,它具有真实操作系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据等等。
[0003]热插拔(hot-plugging或Hot Swap)即带电插拔,还可以称为热替换(Hotreplacement)。热插拔功能就是允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的硬盘、电源或板卡等部件,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性等。
[0004]虚拟机设备热插拔,由于从VM外的角度来看,VM看到的所有“硬件”均是由VMM (virtual machine monitor,虚拟机监视器)提供的软件模拟,故针对VM的“硬件”热插拔,实际上是针对的VMM层的软件模拟体。
[0005]现有技术中VMM通过命令行界面接收待热插拔的虚拟磁盘对应的热插拔操作请求,触发热插拔操作,VMM将热插拔操作请求发送给对应的虚拟机操作系统;虚拟机操作系统通过热插拔事件驱动找到对应的虚拟设备驱动,通过虚拟设备驱动回收分配给待热插拔虚拟磁盘的资源,实现对待热插拔虚拟磁盘的热拔出操作。
[0006]通过这种方式,能够有效的进行热插拔操作,但是,当物理磁盘故障(例如磁头损坏导致VMM不能正常访问)等原因,进一步导致设备驱动异常,致使该逻辑设备实现热插拔操作的设备驱动也出现异常,导致在VM运行的情况下,不能够对该设备进行热拔出操作。所以如果设备出现故障导致设备驱动异常,那么只能关闭VM ;从VM的定义(Definit1n)中删除已经故障的“设备”;然后再修复VM故障“设备”在VMM层对应的逻辑设备或文件。但是,一般情况下,VM是相对庞大的,重新启动VM需要很长的时间,损失较大;若是处于服务器端的VM,关闭VM可能会影响与该服务器关联的客户端,从而极大影响用户的体验(例如,关闭网络游戏服务的VM,可能会影响登录该服务器的所有用户的游戏体验)。所以如何实现对虚拟机中已故障的“设备”进行热插拔操作成为本领域技术人员迫切需要解决的技术问题。

【发明内容】

[0007]本发明实施例提供了一种基于虚拟机的设备热替换方法及装置,可以实现在逻辑设备出现故障时,通过模拟逻辑设备来代理逻辑设备,已响应相应的控制指令,进而,虚拟机能够正常的对设备进行控制操作。
[0008]第一方面,本发明实施例提供了一种基于虚拟机的设备热替换方法,该方法包括,接收热替换命令,该热替换命令携带有虚拟磁盘标识,其中,该虚拟磁盘标识对应一个需要被替换的逻辑设备(如已发生故障的逻辑设备)。生成模拟逻辑设备,该模拟逻辑设备具有标识(如描述符、或者句柄等等)。将热替换命令对应的待替换逻辑设备的控制信息发送给模拟逻辑设备,以使模拟逻辑设备能够代理代替换的逻辑设备响应控制指令。根据热替换命令,将对应的虚拟磁盘的标识与待替换的逻辑设备的标识之间的映射关系删除,并建立对应的虚拟磁盘与模拟逻辑设备之间的映射关系,此时,通过模拟逻辑设备来响应对于虚拟磁盘的控制指令(例如热拔出指令,关闭电源指令)。
[0009]通过上述方法可以实现即使由于物理磁盘出现故障导致了逻辑设备不能够响应指令,在将不能够响应指令的逻辑设备与模拟逻辑设备替换后,此时,在虚拟机层面,并不能发现逻辑设备已经故障,依然能够对该逻辑设备对应的虚拟磁盘进行拔出操作。
[0010]在第一方面的一种可能实现方式中,该方法还可以包括,在建立虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系之后,可以根据前述接收到的热替换命令,或者新接收到的拔出命令(包括需要拔出的虚拟磁盘的标识),回收分配给虚拟磁盘的资源。删除虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系。通过该方法可以实现对已故障的逻辑设备对应的虚拟磁盘进行删除。
[0011]在第一方面的一些可能实现方式中,当需要插入已修复好的逻辑设备或者另一个新的逻辑设备时,在还未删除虚拟逻辑磁盘的标识与模拟逻辑设备的标识之间的映射关系的前提下,该方法还可以包括,接收热插入命令,该热插入命令包括虚拟磁盘(前述被替换的逻辑设备对应的虚拟磁盘)的标识以及待插入逻辑设备的标识。删除虚拟磁盘的标识与模拟逻辑磁盘之间的映射关系,并建立虚拟磁盘与待插入的逻辑设备的标识之间的映射关系。通过该方法可以实现在通过模拟逻辑设备代理逻辑设备后,在虚拟机层面不用对设备进行删除,便可以直接对逻辑设备进行修复,然后将修复后的逻辑设备重新插入,或者新换一个逻辑设备来替换已故障的逻辑设备,换句话说,在虚拟机层面并不知道已经将已故障的逻辑设备修复或者替换了逻辑设备,从而在不影响虚拟机正常运行的情况下,完成了对设备的热插拔以及修复。
[0012]第二方面,本发明实施例提供了一种基于虚拟机的设备热替换装置用于实现第一方面提供的方法,具体的装置包括:接收单元,用于接收热替换命令。生成单元,用于生成模拟逻辑设备,该模拟逻辑设备具有标识。发送单元,用于将待替换的逻辑设备的控制信息发送给模拟逻辑设备。删除单元,用于删除虚拟磁盘的标识与逻辑设备的标识之间的映射关系。建立单元,用于建立虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系。通过本发明实施例可以实现对于已故障设备,对于虚拟机透明的替换,进而,不影响虚拟机的正常工作。
[0013]在第二方面的一个可能的实现方式中,该装置还可以包括回收单元,当需要删除虚拟磁盘时,通过回收单元回收分配给虚拟磁盘的资源。
[0014]在第二方面的另一个可能的实现方式中,在需要重新插入逻辑设备时,接收单元还用于接收第一热插入命令,该第一热插入命令包括虚拟磁盘的标识。上述装置还包括创建单元,用于根据第一热插入命令创建一个对应的虚拟磁盘,此时,再通过建立单元建立新创建的虚拟磁盘的标识与新插入的逻辑设备的标识之间的映射关系。通过该装置能够实现删除虚拟磁盘后,从新插入该虚拟磁盘对应的逻辑设备。
[0015]在第二方面的一些实现方式中,当需要插入已修复好的逻辑设备或者另一个新的逻辑设备时,在还未删除虚拟逻辑磁盘的标识与模拟逻辑设备的标识之间的映射关系的前提下,接收单元还用于接收第二热插入命令,该第二热插入命令包括第一虚拟磁盘的标识以及待插入逻辑设备的标识。删除单元还用于删除第一虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系。建立单元还用于建立第一虚拟磁盘的标识与逻辑设备的标识之间的映射关系。通过该装置可以实现一些在第一方面中的实施方式。
[0016]通过本发明实施例,在VMM中引入虚拟逻辑设备,当需要进行热插拔操作时,通过虚拟逻辑设备与虚拟磁盘之间的映射,替换需要进行热插拔的逻辑设备与虚拟磁盘的映射,用虚拟逻辑设备响应VM对逻辑设备的操作请求,所以,即使逻辑设备出现故障,那么对该故障设备进行热插拔,不影响VM的正常工作,从而使虚拟机的热插拔技术更完善。
【附图说明】
[0017]图1为本发明实施例提供的运行系统的结构示意图;
[0018]图2为本发明一个实施例提供的基于虚拟机的设备热替换装置的示意图;
[0019]图3为本发明一个实施例提供的一种基于虚拟机的设备热替换方法的流程图;
[0020]图4为VM到物理硬件层的映射关系示意图;
[0021]图5为已删除模拟逻辑设备与虚拟磁盘的映射关系示意图;
[0022]图6为本发明实施例提供的替换操作流程图;
[0023]图7为本发明实施例提供的拔出操作流程图;
[0024]图8为本发明另一个实施例提供的一种基于虚拟机的设备热替换方法的流程图;
[0025]图9为已修复逻辑设备与虚拟磁盘的映射关系示意图;
[0026]图10为本发明实施例
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1