CN105279010B - 基于虚拟机的设备热替换方法及装置 - Google Patents

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

Info

Publication number
CN105279010B
CN105279010B CN201510681571.0A CN201510681571A CN105279010B CN 105279010 B CN105279010 B CN 105279010B CN 201510681571 A CN201510681571 A CN 201510681571A CN 105279010 B CN105279010 B CN 105279010B
Authority
CN
China
Prior art keywords
mark
virtual disk
logical device
equipment
analog logic
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
CN201510681571.0A
Other languages
English (en)
Other versions
CN105279010A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510681571.0A priority Critical patent/CN105279010B/zh
Publication of CN105279010A publication Critical patent/CN105279010A/zh
Priority to PCT/CN2016/087920 priority patent/WO2017067213A1/zh
Application granted granted Critical
Publication of CN105279010B publication Critical patent/CN105279010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

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

基于虚拟机的设备热替换方法及装置
技术领域
本发明涉及虚拟机技术领域,尤其涉及一种基于虚拟机的设备热替换方法及装置。
背景技术
虚拟机(Virtual Machine,VM),指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟机通过生成现有操作系统的全新虚拟镜像,它具有真实操作系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据等等。
热插拔(hot-plugging或Hot Swap)即带电插拔,还可以称为热替换(Hotreplacement)。热插拔功能就是允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的硬盘、电源或板卡等部件,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性等。
虚拟机设备热插拔,由于从VM外的角度来看,VM看到的所有“硬件”均是由VMM(virtual machine monitor,虚拟机监视器)提供的软件模拟,故针对VM的“硬件”热插拔,实际上是针对的VMM层的软件模拟体。
现有技术中VMM通过命令行界面接收待热插拔的虚拟磁盘对应的热插拔操作请求,触发热插拔操作,VMM将热插拔操作请求发送给对应的虚拟机操作系统;虚拟机操作系统通过热插拔事件驱动找到对应的虚拟设备驱动,通过虚拟设备驱动回收分配给待热插拔虚拟磁盘的资源,实现对待热插拔虚拟磁盘的热拔出操作。
通过这种方式,能够有效的进行热插拔操作,但是,当物理磁盘故障(例如磁头损坏导致VMM不能正常访问)等原因,进一步导致设备驱动异常,致使该逻辑设备实现热插拔操作的设备驱动也出现异常,导致在VM运行的情况下,不能够对该设备进行热拔出操作。所以如果设备出现故障导致设备驱动异常,那么只能关闭VM;从VM的定义(Definition)中删除已经故障的“设备”;然后再修复VM故障“设备”在VMM层对应的逻辑设备或文件。但是,一般情况下,VM是相对庞大的,重新启动VM需要很长的时间,损失较大;若是处于服务器端的VM,关闭VM可能会影响与该服务器关联的客户端,从而极大影响用户的体验(例如,关闭网络游戏服务的VM,可能会影响登录该服务器的所有用户的游戏体验)。所以如何实现对虚拟机中已故障的“设备”进行热插拔操作成为本领域技术人员迫切需要解决的技术问题。
发明内容
本发明实施例提供了一种基于虚拟机的设备热替换方法及装置,可以实现在逻辑设备出现故障时,通过模拟逻辑设备来代理逻辑设备,已响应相应的控制指令,进而,虚拟机能够正常的对设备进行控制操作。
第一方面,本发明实施例提供了一种基于虚拟机的设备热替换方法,该方法包括,接收热替换命令,该热替换命令携带有虚拟磁盘标识,其中,该虚拟磁盘标识对应一个需要被替换的逻辑设备(如已发生故障的逻辑设备)。生成模拟逻辑设备,该模拟逻辑设备具有标识(如描述符、或者句柄等等)。将热替换命令对应的待替换逻辑设备的控制信息发送给模拟逻辑设备,以使模拟逻辑设备能够代理代替换的逻辑设备响应控制指令。根据热替换命令,将对应的虚拟磁盘的标识与待替换的逻辑设备的标识之间的映射关系删除,并建立对应的虚拟磁盘与模拟逻辑设备之间的映射关系,此时,通过模拟逻辑设备来响应对于虚拟磁盘的控制指令(例如热拔出指令,关闭电源指令)。
通过上述方法可以实现即使由于物理磁盘出现故障导致了逻辑设备不能够响应指令,在将不能够响应指令的逻辑设备与模拟逻辑设备替换后,此时,在虚拟机层面,并不能发现逻辑设备已经故障,依然能够对该逻辑设备对应的虚拟磁盘进行拔出操作。
在第一方面的一种可能实现方式中,该方法还可以包括,在建立虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系之后,可以根据前述接收到的热替换命令,或者新接收到的拔出命令(包括需要拔出的虚拟磁盘的标识),回收分配给虚拟磁盘的资源。删除虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系。通过该方法可以实现对已故障的逻辑设备对应的虚拟磁盘进行删除。
在第一方面的一些可能实现方式中,当需要插入已修复好的逻辑设备或者另一个新的逻辑设备时,在还未删除虚拟逻辑磁盘的标识与模拟逻辑设备的标识之间的映射关系的前提下,该方法还可以包括,接收热插入命令,该热插入命令包括虚拟磁盘(前述被替换的逻辑设备对应的虚拟磁盘)的标识以及待插入逻辑设备的标识。删除虚拟磁盘的标识与模拟逻辑磁盘之间的映射关系,并建立虚拟磁盘与待插入的逻辑设备的标识之间的映射关系。通过该方法可以实现在通过模拟逻辑设备代理逻辑设备后,在虚拟机层面不用对设备进行删除,便可以直接对逻辑设备进行修复,然后将修复后的逻辑设备重新插入,或者新换一个逻辑设备来替换已故障的逻辑设备,换句话说,在虚拟机层面并不知道已经将已故障的逻辑设备修复或者替换了逻辑设备,从而在不影响虚拟机正常运行的情况下,完成了对设备的热插拔以及修复。
第二方面,本发明实施例提供了一种基于虚拟机的设备热替换装置用于实现第一方面提供的方法,具体的装置包括:接收单元,用于接收热替换命令。生成单元,用于生成模拟逻辑设备,该模拟逻辑设备具有标识。发送单元,用于将待替换的逻辑设备的控制信息发送给模拟逻辑设备。删除单元,用于删除虚拟磁盘的标识与逻辑设备的标识之间的映射关系。建立单元,用于建立虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系。通过本发明实施例可以实现对于已故障设备,对于虚拟机透明的替换,进而,不影响虚拟机的正常工作。
在第二方面的一个可能的实现方式中,该装置还可以包括回收单元,当需要删除虚拟磁盘时,通过回收单元回收分配给虚拟磁盘的资源。
在第二方面的另一个可能的实现方式中,在需要重新插入逻辑设备时,接收单元还用于接收第一热插入命令,该第一热插入命令包括虚拟磁盘的标识。上述装置还包括创建单元,用于根据第一热插入命令创建一个对应的虚拟磁盘,此时,再通过建立单元建立新创建的虚拟磁盘的标识与新插入的逻辑设备的标识之间的映射关系。通过该装置能够实现删除虚拟磁盘后,从新插入该虚拟磁盘对应的逻辑设备。
在第二方面的一些实现方式中,当需要插入已修复好的逻辑设备或者另一个新的逻辑设备时,在还未删除虚拟逻辑磁盘的标识与模拟逻辑设备的标识之间的映射关系的前提下,接收单元还用于接收第二热插入命令,该第二热插入命令包括第一虚拟磁盘的标识以及待插入逻辑设备的标识。删除单元还用于删除第一虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系。建立单元还用于建立第一虚拟磁盘的标识与逻辑设备的标识之间的映射关系。通过该装置可以实现一些在第一方面中的实施方式。
通过本发明实施例,在VMM中引入虚拟逻辑设备,当需要进行热插拔操作时,通过虚拟逻辑设备与虚拟磁盘之间的映射,替换需要进行热插拔的逻辑设备与虚拟磁盘的映射,用虚拟逻辑设备响应VM对逻辑设备的操作请求,所以,即使逻辑设备出现故障,那么对该故障设备进行热插拔,不影响VM的正常工作,从而使虚拟机的热插拔技术更完善。
附图说明
图1为本发明实施例提供的运行系统的结构示意图;
图2为本发明一个实施例提供的基于虚拟机的设备热替换装置的示意图;
图3为本发明一个实施例提供的一种基于虚拟机的设备热替换方法的流程图;
图4为VM到物理硬件层的映射关系示意图;
图5为已删除模拟逻辑设备与虚拟磁盘的映射关系示意图;
图6为本发明实施例提供的替换操作流程图;
图7为本发明实施例提供的拔出操作流程图;
图8为本发明另一个实施例提供的一种基于虚拟机的设备热替换方法的流程图;
图9为已修复逻辑设备与虚拟磁盘的映射关系示意图;
图10为本发明实施例提供的插入已修复逻辑设备的操作流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的运行系统的结构示意图。图1示出了本发明实施例能够被应用到能够运行虚拟机的计算机/计算机群100中,例如服务器终端设备,客户终端设备,个人计算机等等。该类计算机/计算机群100中一般可以包括一个或多个处理器101,一个或多个存储器102,以及一个或多个物理磁盘103/104。其中,各个模块通过系统总线连接。
在计算机/计算机群100可能运行着虚拟机监视器200,以及一个或多个虚拟机300/400。其中,通过虚拟机监视器200来管理和调度虚拟机300/400。其中虚拟机300/400可以为LINUX系统、UNIX系统、WINDOWS系统、ANDROID系统、IOS系统等等系统的虚拟机,且虚拟机300与虚拟机400可以为不同系统类型的虚拟机。另外,虚拟机300/400以及虚拟机监视器200,还可以运行在LINUX系统、UNIX系统、WINDOWS系统、ANDROID系统、IOS系统等等系统上。
在本发明实施例中,通过在VMM(例如,图2中虚拟机监视器200)预先创建公共代理设备对象,用公共代理设备对象与虚拟磁盘间的映射,来代替真实设备与虚拟磁盘之间的映射,当需要执行热插拔操作时,通过公共代理设备来响应来自VM(例如,图2中虚拟机300/400)的热插拔命令,进而实现,即使真实设备出现故障,那么VMM依然能够处理VM的热插拔命令,以实现VM的热插拔操作。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
图3为本发明一个实施例提供的一种基于虚拟机的设备热替换方法的流程图。如图3所示,具体需要执行如下步骤:
S310,接收热替换命令。
需要说明的是,图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)。另外,根据虚拟机的设置不同,一个虚拟磁盘也可以对应一个或多个逻辑设备。应该知道的是,这里说的物理磁盘仅为描述简便的举例,该物理磁盘可以是操作系统中的各个磁盘分区,也可以是不同的存储设备,还可以是块设备,例如,键盘等。
基于虚拟的设备热替换,在VMM中,是解除虚拟磁盘与逻辑设备之间的映射关系,回收相关资源,关闭真实设备的电源;在物理硬件层,是插入和拔出物理磁盘。
在本发明实施例具体实施过程中,当需要对设备进行热插拔操作时,在VMM通常可以先通过CLI或GUI(Graphical User Interface,图形用户接口)等人机操作入口接收设备替换请求,该请求一般携带有目标虚拟磁盘的标识,该目标虚拟磁盘对应有需要被替换的逻辑设备。
应该知道的是,通过设备的标识,便可以确定具体的设备,显然通过目标虚拟磁盘的标识也能够确定具体的目标虚拟磁盘。
S320,生成模拟逻辑设备。
需要说明的是,所谓的模拟逻辑设备可以是指令的集合,能够响应VM对设备的处理操作请求,但拒绝正常的I/O读写请求;还可以是一个VMM层的文件,该文件的功能等同于通过文件系统生成的文件。可以预先在VMM层设置模拟逻辑模块生成程序,可以当接收到热替换命令后,触发改程序,生成模拟逻辑模块。其中此处对代理设备对象的描述举例,具体的实现形式还有多种,这里不再一一赘述。
本发明实施例在具体实施过程中,模拟逻辑设备具有标识,该标识可以是文件描述符(VM是基于UNIX系统的,通过文件描述符访问文件),还可以是文件句柄(VM是基于Windows系统的,通过文件句柄识别文件)。
S330,向模拟逻辑设备发送逻辑设备的控制信息。
需要说明的是,可以用模拟逻辑设备的标识继承需要替换的逻辑设备的控制信息,该控制信息一般包括:盘扇区数量、盘扇区大小、设备ID、盘类型等等。此时模拟逻辑设备具备了逻辑设备的特征。
S340,删除虚拟磁盘的标识与待替换的逻辑设备的标识之间的映射关系。
需要说明的是,如图4所示,若确定热替换命令中携带的虚拟磁盘的标识对应虚拟磁盘401,则在建立模拟逻辑设备403之后,删除虚拟磁盘401与逻辑设备402之间的映射关系。
S350,建立虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系
在此说明,如图4所示,模拟逻辑设备能够响应虚拟磁盘对于逻辑设备的控制信息,所以,建立模拟逻辑设备403与虚拟磁盘401之间的映射关系,当然,设备之间通过设备标识进行映射。经过步骤S340、S350实现了用模拟逻辑设备403替换了已故障的逻辑设备402。此时,在VM层面看见的设备对应的虚拟磁盘401是正常的,VM并不知道在VMM层发生了替换过程。由于逻辑设备与虚拟磁盘之间的映射已经断开,所以此时VM与逻辑设备的交互,实际为VM与模拟逻辑设备之间的交互。
S360,接收热拔出命令。
需要说明的是,如图4所示,在步骤S350之后,由于VM与逻辑设备的交互,实际为VM与模拟逻辑设备之间的交互。但是模拟逻辑设备可能仅能够响应控制指令,并不能够对其进行读写操作,也就是说虚拟磁盘401是没有什么实际的作用的,所以,可以将其删除。将虚拟磁盘401删除的触发条件可以是执行完S350后便触发此动作,也可以是在接收到特定的热拔出命令后,该热拔出命令携带有需要拔出的虚拟磁盘的标识。其中,触发删除虚拟磁盘的操作还有多种,此处仅为举例,并不做限定。
另外,可以通过CLI或GUI接收热拔出命令。
S370,回收分配给虚拟磁盘的资源。
需要说明的是,由于虚拟磁盘占用VMM一定的资源,如图5所示,所以,对虚拟磁盘的删除,VMM需要将分配给虚拟磁盘的资源回收。
S380,删除虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系。
需要说明的是,图5为已删除模拟逻辑设备与虚拟磁盘的映射关系示意图。如图5所示,由于虚拟磁盘已被删除,还可以被删除模拟逻辑设备。当有新的需求时,重新再建立模拟逻辑设备。
此外,如图4所示,当执行完S350后,便可以对逻辑设备402进行拔出操作,也就是对物理硬件层的物理磁盘410进行拔出操作。此步骤为可选步骤,拔出物理磁盘410是为了对已故障的物理磁盘410进行修复,或者用好的物理磁盘替换,或者仅是删除不再使用。
需要说明的是,当物理磁盘410已经被修复,需要重新插入时,在物理磁盘410对应的逻辑设备的标识没有变的情况下,还可以重新建立映射。具体可以做如下步骤。
接收热插入命令,该第一热插入命令包括需要映射的虚拟磁盘的标识。创建这个需要映射的虚拟磁盘。建立新创建的虚拟磁盘的标识与新插入的逻辑设备的标识之间的映射关系。由于已修复的逻辑设备的标识并未发生变换,所以该新插入的逻辑设备的标识即为原被替换的逻辑设备的标识。
另外,通过在本发明实施例中的方法拔出的设备,可以仅是针对已故障设备,也可以是对正常的设备。
在一个例子中,如图4所示,假设,物理磁盘410出现故障(传统机械硬盘中的磁头故障导致物理磁盘410不能正常访问);由于在VMM的逻辑设备402,即为通过设备驱动连接的物理磁盘410,故逻辑设备402也故障;进一步虚拟磁盘401故障;虚拟磁盘401故障最终VM用于驱动虚拟磁盘401的设备驱动故障;进而导致VM中需要访问该设备的应用程序无法正常工作。
图6为本发明实施例提供的替换操作流程图。如图6所示,若需要在不关闭VM的情况下,对逻辑设备402进行热替换,使得VM能够对虚拟磁盘401进行访问,那么可以执行如下步骤:
S501,用户态在CLI中触发设备替换操作,用户输入如下参数:<VM:Id,虚拟磁盘:Id,操作类型:replace(替换)>。
S502,CLI直接将设备替换请求转发给HAL(Hard Adapter Layer,硬件模拟层)。
S503,HAL建立模拟逻辑设备403,该设备具有标识:proxy_dev_fd。
S504,模拟逻辑设备403的标识proxy_dev_fd继承与逻辑设备402关联的虚拟磁盘401的控制信息与状态:盘扇区数量、盘扇区大小、设备ID、盘类型。
S505,HAL断开逻辑设备402的标识与虚拟磁盘401的标识之间的映射关系。
S506,HAL建立模拟逻辑设备403的标识与虚拟磁盘401的标识的映射关系。
S507、返回执行结果。
通过以上操作,让模拟逻辑设备403承接来自虚拟磁盘401的控制操作命令,且当对逻辑设备402进行热插拔时,并不影响VM的工作。
图7为本发明实施例提供的拔出操作流程图。如图7所示,当需要对虚拟磁盘401拔出时,还可以进行如下步骤操作。
S701,用户通过CLI触发热拔出操作,用户输入如下参数:<VM:Id,虚拟磁盘401:Id,操作类型:hot-unplug(拔出)>。
S702,CLI将热拔出请求转发给HAL。
S703,HAL在此将请求提交给EH(Event Handler,事件处理模块)。
S704,EH根据VM Id,找到对应的VM,然后将请求<虚拟磁盘401:Id,操作类型:hot-unplug>通过共享页面方式发送给VM中的HP(hp driver,热插拔驱动)。
S705,HP根据虚拟磁盘401的Id,找到其对应的设备驱动,然后将请求<虚拟磁盘401,操作类型:hot-unplug>转发给设备驱动。
S706,VM的设备驱动处理热拔出操作请求:1)解除虚拟磁盘401与VM中看到的设备的映射关系;2)释放和回收已分配给虚拟磁盘401的资源。
S707,VM的设备驱动向VMM请求关闭虚拟磁盘401电源。
S708,VMM中的HAL解除虚拟磁盘401的标识与模拟逻辑设备403的标识的映射关系。
S709,HAL关闭模拟逻辑设备403,并回收相关资源后。
S710,HAL向CLI返回执行结果。
总之,通过本发明实施例,在VMM中引入代理设备对象,当需要进行热插拔操作时,通过代理设备对象与虚拟磁盘的映射,替换需要进行热插拔的真实设备与虚拟磁盘的映射,用代理设备对象响应VM对真实设备的操作请求,所以,即使真实设备出现故障,那么对该故障设备进行热插拔,不影响VM的正常工作,从而使虚拟机的热插拔技术。
图8为本发明另一个实施例提供的一种基于虚拟机的设备热替换方法的流程图。如图6所示,在另一个实施例中,在前述实施例中执行完步骤S350后,可以不删除虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系,以及分配给虚拟磁盘的资源,在前述实施例的基础上,本实施例还需执行如下步骤:
S860,接收热插入命令。
需要说明的是,逻辑设备由于被修复等原因需要重新插入该被修复的逻辑设备的标识已经发生变化,或者插入新的逻辑设备替换原被拔出的逻辑设备时,VMM可以通过CLI或GUI接收一个热插入请求,该请求中携带有虚拟磁盘的标识,以及需要新插入逻辑设备的标识。
S870,删除虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系。
由于执行完步骤S350后,在VM中的通过设备驱动依然能够看到虚拟磁盘,且在VMM中与模拟逻辑设备之间的映射关系是依然存在的,且模拟逻辑设备代替前述待替换的逻辑设备。所以,可以通过热插入请求中携带的虚拟磁盘的标识,以及新插入逻辑设备的标识,确定对应的虚拟设备以及逻辑设备;并用新插入逻辑设备替换模拟逻辑设备。首先需要删除虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系。
S880,建立虚拟磁盘的标识与逻辑设备的标识之间的映射关系。
需要说明的是,在此过程中,模拟逻辑设备是一个过渡的设备,为修复已故障的逻辑设备或者替换新的逻辑设备提供了,时间以及技术上支持。并且这个过程对于VM来说是相对透明的,也就是说,并不影响VM的正常工作。
在另一个例子中,图9为已修复逻辑设备与虚拟磁盘的映射关系示意图。在前述例子的基础上,替换逻辑设备后,VMM中还保存有虚拟磁盘与模拟逻辑设备之间的映射关系,以及分配给虚拟磁盘的资源,在不关闭VM、VMM的情况下,图10为本发明实施例提供的插入已修复逻辑设备的操作流程图。如图10所示,将已修复的逻辑设备插入的过程需要执行如下步骤:
S901、用户通过CLI触发热插入操作,用户输入如下参数:<VM:Id,虚拟磁盘:Id,逻辑设备:盘符,操作类型:hot-plug(热插入)>。
S902、CLI将请求转发给HAL。
S903、HAL删除模拟逻辑设备与虚拟磁盘之间的映射关系。
S904、HAL建立已修复的逻辑设备与虚拟磁盘之间的映射关系。
S905、HAL回收分配给模拟逻辑设备的相关资源,删除模拟逻辑设备。
S906、HAL返回执行结果。
通过上述步骤,实现了对已故障逻辑设备的热插拔,且对于VM是透明的。
总之,本发明实施例通过在VMM中模拟逻辑设备与虚拟磁盘的映射以及逻辑设备与虚拟磁盘的映射之间的切换,实现了逻辑设备的热插拔操作相对于VM是透明的,从而,当逻辑设备出现故障时,可以不用关闭VM,且不影响VM的正常操作的情况下,对已故障的设备进行拔出、维修、插入,从而使得对于基于虚拟机的热插拔技术更完善。
综上,本发明实施例提供的方法,在VMM中引入模拟逻辑设备,当需要进行热插拔操作时,通过模拟逻辑设备与虚拟磁盘的映射,替换需要进行热插拔的逻辑设备与虚拟磁盘的映射,用模拟逻辑设备响应VM对逻辑设备的操作命令,所以,即使逻辑设备出现故障,那么对该故障设备进行热插拔(热替换),不影响VM的正常工作,从而使虚拟机的热插拔技术更实用。
本发明实施例在具体实施过程中,还可以实现逻辑设备的热插拔(热替换)操作相对于VM是透明的,从而,当逻辑设备出现故障时,可以不用关闭VM,且不影响VM的正常操作的情况下,对已故障的设备进行拔出、维修、插入;即使逻辑设备出现故障,那么也可以在VM中,将虚拟设备热插拔,并将VM、VMM分配给该设备的资源进行释放,从而使得虚拟机的热插拔技术更完善,能够应对更多的需要。
图2为本发明一个实施例提供的基于虚拟机的设备热替换装置的示意图。其中该装置主要用于实现前述基于虚拟机的热替换方法,如图2所示,该装置可以包括虚拟机监视器200,该虚拟机监视器200具体可以包括:
接收单元201,用于接收热替换命令,该热替换命令包括虚拟磁盘的标识,该虚拟磁盘对应一个待替换的逻辑设备;
生成单元202,用于生成模拟逻辑设备,所述模拟逻辑设备具有标识;
发送单元203,用于将待替换的逻辑设备的控制信息发送给模拟逻辑设备;
删除单元204,用于删除第一虚拟磁盘的标识与待替换的逻辑设备的标识之间的映射关系;
建立单元205,用于建立第一虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系,使得模拟逻辑设备根据控制信息响应针对第一虚拟磁盘的控制指令。
在另一种实现方式下,本发明实施例还可以包括:
回收单元206,用于在建立虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系之后,回收分配给虚拟磁盘的资源;
其中,删除单元204,还用于删除虚拟磁盘的标识与模拟逻辑设备的标识之间的映射关系。
进一步的,为了实现重新插入虚拟磁盘,本发明实施例在具体实施过程中:
接收单元201,还可以用于接收热插入命令,该热插入命令包括新插入的虚拟磁盘的标识;
还可以包括创建单元207,用于创建新插入的虚拟磁盘;
其中,建立单元205,还可以用于建立新插入的虚拟磁盘的标识与代替换逻辑设备的标识之间的映射关系。
具体的,生成单元202、发送单元203、删除单元204、建立单元205,可以通过硬件模拟层HAL来实现,另外硬件模拟层还可以包括回收单元206和/或创建单元207。接收单元201可以通过用户接口来实现(CLI或GUI)。进一步的,虚拟机监视器200还可以包括事件处理模块220,用于触发热插拔事件。另外,还可以包括共享页面,用于与虚拟机进行交互。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于虚拟机的设备热替换方法,其特征在于,所述方法包括:
接收热替换命令,所述热替换命令包括第一虚拟磁盘的标识,所述第一虚拟磁盘对应一个待替换的逻辑设备;
生成模拟逻辑设备,所述模拟逻辑设备具有标识;
将所述待替换的逻辑设备的控制信息发送给所述模拟逻辑设备;
删除所述第一虚拟磁盘的标识与所述待替换的逻辑设备的标识之间的映射关系;
建立所述第一虚拟磁盘的标识与所述模拟逻辑设备的标识之间的映射关系,使得所述模拟逻辑设备根据所述控制信息响应针对所述第一虚拟磁盘的控制指令。
2.根据权利要求1所述的设备热替换方法,其特征在于,还包括:
在所述建立所述第一虚拟磁盘的标识与所述模拟逻辑设备的标识之间的映射关系之后,回收分配给所述虚拟磁盘的资源;
删除所述第一虚拟磁盘的标识与所述模拟逻辑设备的标识之间的映射关系。
3.根据权利要求2所述的设备热替换方法,其特征在于,在所述回收分配给所述虚拟磁盘的资源之前,还包括:
接收热拔出命令,所述热拔出命令包括所述第一虚拟磁盘的标识。
4.根据权利要求2所述的设备热替换方法,其特征在于,还包括:
接收第一热插入命令,所述第一热插入命令包括第二虚拟磁盘的标识;
创建所述第二虚拟磁盘;
建立所述第二虚拟磁盘的标识与所述待替换逻辑设备的标识之间的映射关系。
5.根据权利要求1-4任意一项所述的设备热替换方法,其特征在于,所述待替换的逻辑设备为已故障逻辑设备。
6.根据权利要求5所述的设备热替换方法,其特征在于,当待插入逻辑设备需要插入时,所述待插入逻辑设备为区别于所述待替换的逻辑设备的新逻辑设备或者已修复的待替换的逻辑设备,所述方法还包括:
接收第二热插入命令,所述第二热插入命令包括所述第一虚拟磁盘的标识以及所述待插入逻辑设备的标识;
删除所述第一虚拟磁盘的标识与所述模拟逻辑设备的标识之间的映射关系;
建立所述第一虚拟磁盘的标识与所述待插入逻辑设备的标识之间的映射关系。
7.一种基于虚拟机的设备热替换装置,其特征在于,所述装置包括:
接收单元,用于接收热替换命令,所述热替换命令包括第一虚拟磁盘的标识,所述第一虚拟磁盘对应一个待替换的逻辑设备;
生成单元,用于生成模拟逻辑设备,所述模拟逻辑设备具有标识;
发送单元,用于将所述待替换的逻辑设备的控制信息发送给所述模拟逻辑设备;
删除单元,用于删除所述第一虚拟磁盘的标识与所述待替换的逻辑设备的标识之间的映射关系;
建立单元,用于建立所述第一虚拟磁盘的标识与所述模拟逻辑设备的标识之间的映射关系,使得所述模拟逻辑设备根据所述控制信息响应针对所述第一虚拟磁盘的控制指令。
8.根据权利要求7所述的设备热替换装置,其特征在于,还包括:
回收单元,用于在所述建立所述第一虚拟磁盘的标识与所述模拟逻辑设备的标识之间的映射关系之后,回收分配给所述虚拟磁盘的资源;
所述删除单元,还用于删除所述第一虚拟磁盘的标识与所述模拟逻辑设备的标识之间的映射关系。
9.根据权利要求8所述的设备热替换装置,其特征在于,还包括:
所述接收单元,还用于接收第一热插入命令,所述第一热插入命令包括第二虚拟磁盘的标识;
创建单元,用于创建所述第二虚拟磁盘;
所述建立单元,还用于建立所述第二虚拟磁盘的标识与所述待替换逻辑设备的标识之间的映射关系。
10.根据权利要求7或8所述的设备热替换装置,其特征在于,当待插入逻辑设备需要插入时,所述待插入逻辑设备为区别于所述待替换的逻辑设备的新逻辑设备或者已修复的待替换的逻辑设备,
所述接收单元,还用于接收第二热插入命令,所述第二热插入命令包括所述第一虚拟磁盘的标识以及所述待插入逻辑设备的标识;
所述删除单元,还用于删除所述第一虚拟磁盘的标识与所述模拟逻辑设备的标识之间的映射关系;
所述建立单元,还用于建立所述第一虚拟磁盘的标识与所述待插入逻辑设备的标识之间的映射关系。
CN201510681571.0A 2015-10-20 2015-10-20 基于虚拟机的设备热替换方法及装置 Active CN105279010B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510681571.0A CN105279010B (zh) 2015-10-20 2015-10-20 基于虚拟机的设备热替换方法及装置
PCT/CN2016/087920 WO2017067213A1 (zh) 2015-10-20 2016-06-30 基于虚拟机的设备热替换方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510681571.0A CN105279010B (zh) 2015-10-20 2015-10-20 基于虚拟机的设备热替换方法及装置

Publications (2)

Publication Number Publication Date
CN105279010A CN105279010A (zh) 2016-01-27
CN105279010B true CN105279010B (zh) 2018-09-21

Family

ID=55148065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510681571.0A Active CN105279010B (zh) 2015-10-20 2015-10-20 基于虚拟机的设备热替换方法及装置

Country Status (2)

Country Link
CN (1) CN105279010B (zh)
WO (1) WO2017067213A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279010B (zh) * 2015-10-20 2018-09-21 华为技术有限公司 基于虚拟机的设备热替换方法及装置
CN107515774B (zh) * 2016-06-15 2021-02-05 阿里巴巴集团控股有限公司 一种在线替换虚拟操作系统底层块设备驱动的方法和装置
CN107643897B (zh) * 2016-07-20 2021-04-16 阿里巴巴集团控股有限公司 后端驱动程序的更新方法及装置
CN112052128A (zh) * 2019-06-06 2020-12-08 北京字节跳动网络技术有限公司 容灾方法、装置和电子设备
CN110764949A (zh) * 2019-09-29 2020-02-07 北京浪潮数据技术有限公司 硬盘更换方法、硬盘更换装置、硬盘更换设备及存储介质
CN113448676A (zh) * 2020-03-24 2021-09-28 阿里巴巴集团控股有限公司 虚拟机的控制方法、装置及设备
EP3961323A1 (en) * 2020-08-25 2022-03-02 ABB Schweiz AG Replacement of industrial field device
CN114168498B (zh) * 2021-11-09 2024-02-06 百富计算机技术(深圳)有限公司 一种断线保持方法、装置、设备及计算机存储介质
CN115858222B (zh) * 2022-12-19 2024-01-02 安超云软件有限公司 一种虚拟机故障处理方法、系统及电子设备
CN116775353A (zh) * 2023-05-19 2023-09-19 北京百度网讯科技有限公司 故障磁盘的维修方法、装置、电子设备与可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1633131A (zh) * 2005-01-14 2005-06-29 清华大学 一种iSCSI存储系统的实现方法
CN101008911A (zh) * 2007-02-06 2007-08-01 杭州华为三康技术有限公司 实现虚拟热插拔的方法及实现虚拟热插拔的主机设备
CN101430670A (zh) * 2008-12-16 2009-05-13 中国科学院计算技术研究所 一种在虚拟化环境中i/o设备重构的方法及系统
CN104317759A (zh) * 2014-10-15 2015-01-28 国云科技股份有限公司 一种支持虚拟机usb存储设备热插拔的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010005158A1 (ko) * 2008-07-11 2010-01-14 Jung Jin Heon 조리용기용 탈착식 손잡이
US8499297B2 (en) * 2008-10-28 2013-07-30 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
WO2011008215A1 (en) * 2009-07-17 2011-01-20 Hewlett-Packard Development Company, L.P. Virtual hot inserting functions in a shared i/o environment
US9116737B2 (en) * 2013-04-30 2015-08-25 Vmware, Inc. Conversion of virtual disk snapshots between redo and copy-on-write technologies
CN105279010B (zh) * 2015-10-20 2018-09-21 华为技术有限公司 基于虚拟机的设备热替换方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1633131A (zh) * 2005-01-14 2005-06-29 清华大学 一种iSCSI存储系统的实现方法
CN101008911A (zh) * 2007-02-06 2007-08-01 杭州华为三康技术有限公司 实现虚拟热插拔的方法及实现虚拟热插拔的主机设备
CN101430670A (zh) * 2008-12-16 2009-05-13 中国科学院计算技术研究所 一种在虚拟化环境中i/o设备重构的方法及系统
CN104317759A (zh) * 2014-10-15 2015-01-28 国云科技股份有限公司 一种支持虚拟机usb存储设备热插拔的方法

Also Published As

Publication number Publication date
CN105279010A (zh) 2016-01-27
WO2017067213A1 (zh) 2017-04-27

Similar Documents

Publication Publication Date Title
CN105279010B (zh) 基于虚拟机的设备热替换方法及装置
US10394547B2 (en) Applying update to snapshots of virtual machine
US11436091B2 (en) Method and apparatus for generating virtual machine snapshot
US20120054396A1 (en) Method for selective replication of physical devices on a virtual self-configuring zoning expander
CN107632937B (zh) 一种对虚拟机集群进行测试的方法、装置、可读存储介质
CN105991651B (zh) 具有远程存储控制的网络接口设备
KR20200070085A (ko) 정보를 처리하기 위한 방법 및 장치
US11880610B2 (en) Storage location assignment at a cluster compute server
CN105052111A (zh) 跨群集边界的服务迁移
CN108469986A (zh) 一种数据迁移方法及装置
CN107395710B (zh) 一种云平台网元的配置和高可用ha实现方法和装置
CN107368353B (zh) 一种实现虚拟机内存热添加的方法和装置
CN111104201A (zh) 系统迁移方法和装置、电子设备、存储介质
US10795579B2 (en) Methods, apparatuses, system and computer program products for reclaiming storage units
CN105095103A (zh) 用于云环境下的存储设备管理方法和装置
CN112328365A (zh) 一种虚拟机迁移方法、装置、设备及存储介质
CN103019847B (zh) 对虚拟机数据进行迁移的方法及系统
JP5966466B2 (ja) バックアップ制御方法、および情報処理装置
CN116560803B (zh) 基于sr-iov的资源管理方法及相关装置
US11570153B2 (en) Virtual machine perfect forward secrecy
CN105162833A (zh) 应用于无盘工作站的客户机管理系统及方法
CN109032762B (zh) 虚拟机回溯方法及相关设备
JP6075882B2 (ja) 分散処理システム、および、分散処理方法
CN116615715A (zh) 用于使用资源集组合系统的方法和系统
JP2021022287A (ja) バックアップ処理装置、バックアップ処理方法、及び、バックアップ処理プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant