本发明涉及虚拟机管理技术,具体涉及一种应用于电子设备中的信息处理方法及一种电子设备。
背景技术:
目前,在虚拟化环境中,当系统管理员需要对宿主机的hypervisor进行升级时,为了避免中断在虚拟机上正在运行的业务程序,可以采取将虚拟机从原(低版本)hypervisor1通过动态迁移来热升级到目标(高版本)hypervisor2的方式。而当所要热升级的hypervisor1所虚拟的虚拟机带有透传硬件设备时,虚拟机的物理透传设备在热升级时无法由当前hypervisor1到目标hypervisor2的动态迁移中完成平滑迁移。
技术实现要素:
本发明的主要目的在于提出一种信息处理方法及电子设备,旨在解决现有技术中存在的上述问题。
为实现上述目的,本发明提供一种信息处理方法,应用于电子设备,包括:
获取第一虚拟机所对应的目标设备的相关信息;
从所述第一虚拟机所对应的物理存储单元中选取第一存储区域;其中,所述第一存储区域中至少用于存储所述目标设备的相关信息;
转换所述第一存储区域的存储地址得到第二存储地址,建立所述第二存储地址与第二控制层的映射关系;
基于所述映射关系,建立所述第二虚拟机与目标设备的相关信息,并控制所述第二虚拟机基于所述目标设备的相关信息,与所述目标设备进行数据交互
本发明提供一种电子设备,所述电子设备包括:
虚拟机管理单元,用于获取第一虚拟机所对应的目标设备的相关信息;基于所述映射关系,建立所述第二虚拟机与目标设备的相关信息,并控制所述第二虚拟机基于所述目标设备的相关信息,与所述目标设备进行数据交互;
地址转换单元,用于从所述第一虚拟机所对应的物理存储单元中选取第一存储区域;其中,所述第一存储区域中至少用于存储所述目标设备的相关信息;转换所述第一存储区域的存储地址得到第二存储地址,建立所述第二存储地址与第二控制层的映射关系。
本实施例提供的信息处理方法及电子设备,能够获取第一虚拟机所对应的目标设备的相关信息,将所述第一虚拟机所对应的物理存储单元中选取的第一存储区域,转换为第二虚拟机对应的第二存储地址,建立所述第二存储地址与第二控制层的映射关系,基于所述映射关系建立所述第二虚拟机与目标设备的相关信息,并控制所述第二虚拟机与所述目标设备进行数据交互。如此,在进行目标设备在虚拟机之间迁移的时候,不需要进行复杂的替换流程,仅需要直接转换该设备所属虚拟机的所有权即可实现,从而保证透传硬件设备的迁移更加平滑无缝,并有效缩短迁移时间。
附图说明
图1为本发明实施例中信息处理方法的实现流程示意图1;
图2为本发明实施例中处理示意图1;
图3为本发明实施例中处理示意图2;
图4为本发明实施例中信息处理方法的实现流程示意图2;
图5为本发明实施例中电子设备组成结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
实施例一、
本发明实施例提供一种信息处理方法,应用于电子设备,所述电子设备能够管理至少一个虚拟机,如图1所示,包括:
步骤101:获取第一虚拟机所对应的目标设备的相关信息;
步骤102:从所述第一虚拟机所对应的物理存储单元中选取第一存储区域;其中,所述第一存储区域中至少用于存储所述目标设备的相关信息;
步骤103:转换所述第一存储区域的存储地址得到第二存储地址,建立所述第二存储地址与第二控制层的映射关系;
步骤104:基于所述映射关系,建立所述第二虚拟机与目标设备的相关信息,并控制所述第二虚拟机基于所述目标设备的相关信息,与所述目标设备进行数据交互。
具体来说,前述步骤101,获取第一虚拟机所对应的目标设备的相关信息,也就是获取到物理设备的相关信息,其中可以包括有硬件设备上下文等信息。
所述获取第一虚拟机所对应的目标设备的相关信息时,所述方法还包括:
向所述目标设备发送停止处理的指令,以使得所述目标设备基于所述停止处理的指令暂停数据处理;至少获取所述第一虚拟机对应的目标设备的上下文信息,将所述上下文信息作为所述相关信息。
其中,所述目标设备可以为图2所示的物理设备,比如,在物理设备中保存所有虚拟机所对应的上下文信息以及接口信息等内容。
向目标设备发送暂停数据处理的指令,能够避免虚拟机迁移过程中出现处理进度不符合的问题,使得目标设备在最终迁移至第二虚拟机之后能将处理进度无缝切换。
进一步地,所述从所述第一虚拟机的物理存储中选取第一存储区域,还包括:从所述第一虚拟机的物理存储中,选取包含有所述目标设备的相关信息、以及直接内存访问接口的存储区域作为第一存储区域。比如,参见图3,第一虚拟机通过虚拟地址与物理地址的映射,查找到对应的物理存储区域;在物理存储区域中可以存储多种信息,本实施例中关键获取的内容为目标设备的上下文信息,以及内存访问接口对应的存储区域;这两个内存对应的存储区域可以为连续的也可以为不连续的。
前述步骤103中,转换所述第一存储区域的存储地址得到第二存储地址,可以为将所述第一存储区域对应的物理地址,转换至所述第二虚拟机的第二存储区域所对应的第二物理地址。
其中,第二虚拟机的第二存储区域可以为在第二虚拟机建立时为第二虚拟机分配的存储区域,包含有第二虚拟机的全部物理地址。
将所述第一存储区域对应的物理地址,转换至所述第二虚拟机的第二存储区域所对应的第二物理地址的具体处理,可以为将第一存储区域对应的包含有目标设备的上下文信息,以及内存访问接口对应的这些存储区域;进行转换的方式,可以为从第二虚拟机的第二存储区域中,选取一定大小的子存储区域,这个子存储区域大小为能够保存目标设备的上下文信息,以及内存访问接口这些内容的大小。
进一步地,转换存储区域的方式可以为之间将这第一存储区域迁移到第二存储区域内的子区域中。
本发明实施例,为了支持虚拟机带有透传硬件设备的本地hypervisor热升级,在虚拟化中实现一个可以转换透传硬件设备所有权的半虚拟化翻转模块,可以在热升级过程中直接将透传硬件设备的所有权交给迁移后的虚拟机。具体来说,主要包括以下三个方面:在动态迁移过程中保存透传硬件设备上下文;获取vm中相关内存地址映射,并翻转相关内存区域;恢复透传设备上下文。
可见,通过采用上述方案,就能够获取第一虚拟机所对应的目标设备的相关信息,将所述第一虚拟机所对应的物理存储单元中选取的第一存储区域,转换为第二虚拟机对应的第二存储地址,建立所述第二存储地址与第二控制层的映射关系,基于所述映射关系建立所述第二虚拟机与目标设备的相关信息,并控制所述第二虚拟机与所述目标设备进行数据交互。如此,在进行目标设备在虚拟机之间迁移的时候,不需要进行复杂的替换流程,仅需要直接转换该设备所属虚拟机的所有权即可实现,从而保证透传硬件设备的迁移更加平滑无缝,并有效缩短迁移时间。另外,还能够在迁移开始之前将目标设备的处理状态控制为暂停状态,从而避免在迁移过程中该透传硬件设备被其它虚拟机占用。
实施例二、
本发明实施例提供一种信息处理方法,应用于电子设备,所述电子设备能够管理至少一个虚拟机,如图1所示,包括:
步骤101:获取第一虚拟机所对应的目标设备的相关信息;
步骤102:从所述第一虚拟机所对应的物理存储单元中选取第一存储区域;其中,所述第一存储区域中至少用于存储所述目标设备的相关信息;
步骤103:转换所述第一存储区域的存储地址得到第二存储地址,建立所述第二存储地址与第二控制层的映射关系;
步骤104:基于所述映射关系,建立所述第二虚拟机与目标设备的相关信息,并控制所述第二虚拟机基于所述目标设备的相关信息,与所述目标设备进行数据交互。
具体来说,前述步骤101,获取第一虚拟机所对应的目标设备的相关信息,也就是获取到物理设备的相关信息,其中可以包括有硬件设备上下文等信息。
所述获取第一虚拟机所对应的目标设备的相关信息时,所述方法还包括:
向所述目标设备发送停止处理的指令,以使得所述目标设备基于所述停止处理的指令暂停数据处理;至少获取所述第一虚拟机对应的目标设备的上下文信息,将所述上下文信息作为所述相关信息。
其中,所述目标设备可以为图2所示的物理设备,比如,在物理设备中保存所有虚拟机所对应的上下文信息以及接口信息等内容。
向目标设备发送暂停数据处理的指令,能够避免虚拟机迁移过程中出现处理进度不符合的问题,使得目标设备在最终迁移至第二虚拟机之后能将处理进度无缝切换。
进一步地,所述从所述第一虚拟机的物理存储中选取第一存储区域,还包括:从所述第一虚拟机的物理存储中,选取包含有所述目标设备的相关信息、以及直接内存访问接口的存储区域作为第一存储区域。比如,参见图3,第一虚拟机通过虚拟地址与物理地址的映射,查找到对应的物理存储区域;在物理存储区域中可以存储多种信息,本实施例中关键获取的内容为目标设备的上下文信息,以及内存访问接口对应的存储区域;这两个内存对应的存储区域可以为连续的也可以为不连续的。
前述步骤103中,转换所述第一存储区域的存储地址得到第二存储地址,可以为将所述第一存储区域对应的物理地址,转换至所述第二虚拟机的第二存储区域所对应的第二物理地址。
其中,第二虚拟机的第二存储区域可以为在第二虚拟机建立时为第二虚拟机分配的存储区域,包含有第二虚拟机的全部物理地址。
将所述第一存储区域对应的物理地址,转换至所述第二虚拟机的第二存储区域所对应的第二物理地址的具体处理,可以为将第一存储区域对应的包含有目标设备的上下文信息,以及内存访问接口对应的这些存储区域;进行转换的方式,可以为从第二虚拟机的第二存储区域中,选取一定大小的子存储区域,这个子存储区域大小为能够保存目标设备的上下文信息,以及内存访问接口这些内容的大小。
进一步地,转换存储区域的方式可以为之间将这第一存储区域迁移到第二存储区域内的子区域中。
前述步骤104所述映射关系,建立所述第二虚拟机与目标设备的相关信息之后,所述方法还包括:基于所述映射关系,对直接内存存取进行重映射得到更新后的地址翻译表,以使得所述目标设备基于所述地址翻译表建立所述第二虚拟机与目标设备的相关信息。
其中,地址翻译表可以为第二虚拟机的虚拟地址与第二虚拟机的第二存储区域之间的映射关系;所述更新,也就是将目标设备中原保存的第一虚拟机的虚拟地址与物理地址的映射关系,更新为新的地址翻译表。
控制所述第二虚拟机基于所述目标设备的相关信息,也就是基于更新后的地址翻译表,控制所述第二虚拟机从所述第二物理地址中获取所述目标设备的相关信息;
所述控制所述第二虚拟机基于所述目标设备的相关信息,与所述目标设备进行数据交互,包括:通过所述第二虚拟机向所述目标设备发送运行指令,使得所述目标设备基于第二虚拟机的控制重新开始进行数据处理。
本发明实施例提供的整体处理流程,可以结合图2、3,以及流程图4进行如下说明:
在动态迁移的设备状态传输阶段开始时,由hypervisor向vm1发送通知,使其通过相应设备驱动暂停透传设备并保存设备状态;
由hypervior1获取vm1的物理地址(gpa)中用于dmaio及存放devicestate的内存区域:0001f~000ff;
将该内存区域通过页面翻转转换给hypervisor2;具体的可以将hypervior1获取vm1的物理地址(gpa)中用于dmaio及存放devicestate的内存区域:0001f~000ff转换至hypervisor2宿主机物理地址:0ee1f~0eeff;
将以上用于设备重定向内存区域新的gpa->hpa的映射关系更新到dmare-mapping硬件里的地址翻译表;
当动态迁移完成后,hypervisor2通知vm2设备驱动到翻转后的内存地址读取之前保存的设备状态,并恢复该透传设备。
本发明实施例,为了支持虚拟机带有透传硬件设备的本地hypervisor热升级,在虚拟化中实现一个可以转换透传硬件设备所有权的半虚拟化翻转模块,可以在热升级过程中直接将透传硬件设备的所有权交给迁移后的虚拟机。具体来说,主要包括以下三个方面:在动态迁移过程中保存透传硬件设备上下文;获取vm中相关内存地址映射,并翻转相关内存区域;恢复透传设备上下文。
可见,通过采用上述方案,就能够获取第一虚拟机所对应的目标设备的相关信息,将所述第一虚拟机所对应的物理存储单元中选取的第一存储区域,转换为第二虚拟机对应的第二存储地址,建立所述第二存储地址与第二控制层的映射关系,基于所述映射关系建立所述第二虚拟机与目标设备的相关信息,并控制所述第二虚拟机与所述目标设备进行数据交互。如此,在进行目标设备在虚拟机之间迁移的时候,不需要进行复杂的替换流程,仅需要直接转换该设备所属虚拟机的所有权即可实现,从而保证透传硬件设备的迁移更加平滑无缝,并有效缩短迁移时间。另外,还能够在迁移开始之前将目标设备的处理状态控制为暂停状态,从而避免在迁移过程中该透传硬件设备被其它虚拟机占用。
实施例三、
本发明实施例提供一种电子设备,所述电子设备能够管理至少一个虚拟机,如图5所示,包括:
虚拟机管理单元51,用于获取第一虚拟机所对应的目标设备的相关信息;基于所述映射关系,建立所述第二虚拟机与目标设备的相关信息,并控制所述第二虚拟机基于所述目标设备的相关信息,与所述目标设备进行数据交互;
地址转换单元52,用于从所述第一虚拟机所对应的物理存储单元中选取第一存储区域;其中,所述第一存储区域中至少用于存储所述目标设备的相关信息;转换所述第一存储区域的存储地址得到第二存储地址,建立所述第二存储地址与第二控制层的映射关系。
具体来说,虚拟机管理单元51,用于获取第一虚拟机所对应的目标设备的相关信息,也就是获取到物理设备的相关信息,其中可以包括有硬件设备上下文等信息。
所述虚拟机管理单元51,用于向所述目标设备发送停止处理的指令,以使得所述目标设备基于所述停止处理的指令暂停数据处理;至少获取所述第一虚拟机对应的目标设备的上下文信息,将所述上下文信息作为所述相关信息。
其中,所述目标设备可以为图2所示的物理设备,比如,在物理设备中保存所有虚拟机所对应的上下文信息以及接口信息等内容。
向目标设备发送暂停数据处理的指令,能够避免虚拟机迁移过程中出现处理进度不符合的问题,使得目标设备在最终迁移至第二虚拟机之后能将处理进度无缝切换。
进一步地,所述从所述第一虚拟机的物理存储中选取第一存储区域,还包括:从所述第一虚拟机的物理存储中,选取包含有所述目标设备的相关信息、以及直接内存访问接口的存储区域作为第一存储区域。比如,参见图3,第一虚拟机通过虚拟地址与物理地址的映射,查找到对应的物理存储区域;在物理存储区域中可以存储多种信息,本实施例中关键获取的内容为目标设备的上下文信息,以及内存访问接口对应的存储区域;这两个内存对应的存储区域可以为连续的也可以为不连续的。
前述地址转换单元52,用于转换所述第一存储区域的存储地址得到第二存储地址,可以为将所述第一存储区域对应的物理地址,转换至所述第二虚拟机的第二存储区域所对应的第二物理地址。
其中,第二虚拟机的第二存储区域可以为在第二虚拟机建立时为第二虚拟机分配的存储区域,包含有第二虚拟机的全部物理地址。
将所述第一存储区域对应的物理地址,转换至所述第二虚拟机的第二存储区域所对应的第二物理地址的具体处理,可以为将第一存储区域对应的包含有目标设备的上下文信息,以及内存访问接口对应的这些存储区域;进行转换的方式,可以为从第二虚拟机的第二存储区域中,选取一定大小的子存储区域,这个子存储区域大小为能够保存目标设备的上下文信息,以及内存访问接口这些内容的大小。
进一步地,地址转换单元52,用于将这第一存储区域迁移到第二存储区域内的子区域中。
本发明实施例,为了支持虚拟机带有透传硬件设备的本地hypervisor热升级,在虚拟化中实现一个可以转换透传硬件设备所有权的半虚拟化翻转模块,可以在热升级过程中直接将透传硬件设备的所有权交给迁移后的虚拟机。具体来说,主要包括以下三个方面:在动态迁移过程中保存透传硬件设备上下文;获取vm中相关内存地址映射,并翻转相关内存区域;恢复透传设备上下文。
可见,通过采用上述方案,就能够获取第一虚拟机所对应的目标设备的相关信息,将所述第一虚拟机所对应的物理存储单元中选取的第一存储区域,转换为第二虚拟机对应的第二存储地址,建立所述第二存储地址与第二控制层的映射关系,基于所述映射关系建立所述第二虚拟机与目标设备的相关信息,并控制所述第二虚拟机与所述目标设备进行数据交互。如此,在进行目标设备在虚拟机之间迁移的时候,不需要进行复杂的替换流程,仅需要直接转换该设备所属虚拟机的所有权即可实现,从而保证透传硬件设备的迁移更加平滑无缝,并有效缩短迁移时间。另外,还能够在迁移开始之前将目标设备的处理状态控制为暂停状态,从而避免在迁移过程中该透传硬件设备被其它虚拟机占用。
实施例四、
本发明实施例提供一种电子设备,与实施例三提供的电子设备结构相同,具体来说,虚拟机管理单元,用于获取第一虚拟机所对应的目标设备的相关信息,也就是获取到物理设备的相关信息,其中可以包括有硬件设备上下文等信息。
虚拟机管理单元,用于向所述目标设备发送停止处理的指令,以使得所述目标设备基于所述停止处理的指令暂停数据处理;至少获取所述第一虚拟机对应的目标设备的上下文信息,将所述上下文信息作为所述相关信息。
其中,所述目标设备可以为图2所示的物理设备,比如,在物理设备中保存所有虚拟机所对应的上下文信息以及接口信息等内容。
向目标设备发送暂停数据处理的指令,能够避免虚拟机迁移过程中出现处理进度不符合的问题,使得目标设备在最终迁移至第二虚拟机之后能将处理进度无缝切换。
进一步地,所述从所述第一虚拟机的物理存储中选取第一存储区域,还包括:从所述第一虚拟机的物理存储中,选取包含有所述目标设备的相关信息、以及直接内存访问接口的存储区域作为第一存储区域。比如,参见图3,第一虚拟机通过虚拟地址与物理地址的映射,查找到对应的物理存储区域;在物理存储区域中可以存储多种信息,本实施例中关键获取的内容为目标设备的上下文信息,以及内存访问接口对应的存储区域;这两个内存对应的存储区域可以为连续的也可以为不连续的。
前述地址转换单元,用于转换所述第一存储区域的存储地址得到第二存储地址,可以为将所述第一存储区域对应的物理地址,转换至所述第二虚拟机的第二存储区域所对应的第二物理地址。
其中,第二虚拟机的第二存储区域可以为在第二虚拟机建立时为第二虚拟机分配的存储区域,包含有第二虚拟机的全部物理地址。
将所述第一存储区域对应的物理地址,转换至所述第二虚拟机的第二存储区域所对应的第二物理地址的具体处理,可以为将第一存储区域对应的包含有目标设备的上下文信息,以及内存访问接口对应的这些存储区域;进行转换的方式,可以为从第二虚拟机的第二存储区域中,选取一定大小的子存储区域,这个子存储区域大小为能够保存目标设备的上下文信息,以及内存访问接口这些内容的大小。
进一步地,转换存储区域的方式可以为之间将这第一存储区域迁移到第二存储区域内的子区域中。
前述虚拟机管理单元,用于基于所述映射关系,对直接内存存取进行重映射得到更新后的地址翻译表,以使得所述目标设备基于所述地址翻译表建立所述第二虚拟机与目标设备的相关信息。
其中,地址翻译表可以为第二虚拟机的虚拟地址与第二虚拟机的第二存储区域之间的映射关系;所述更新,也就是将目标设备中原保存的第一虚拟机的虚拟地址与物理地址的映射关系,更新为新的地址翻译表。
控制所述第二虚拟机基于所述目标设备的相关信息,也就是基于更新后的地址翻译表,控制所述第二虚拟机从所述第二物理地址中获取所述目标设备的相关信息;
所述控制所述第二虚拟机基于所述目标设备的相关信息,与所述目标设备进行数据交互,包括:通过所述第二虚拟机向所述目标设备发送运行指令,使得所述目标设备基于第二虚拟机的控制重新开始进行数据处理。
本发明实施例提供的整体处理流程,可以结合图2、3,以及流程图4进行如下说明:
在动态迁移的设备状态传输阶段开始时,由hypervisor向vm1发送通知,使其通过相应设备驱动暂停透传设备并保存设备状态;
由hypervior1获取vm1的物理地址(gpa)中用于dmaio及存放devicestate的内存区域:0001f~000ff;
将该内存区域通过页面翻转转换给hypervisor2;具体的可以将hypervior1获取vm1的物理地址(gpa)中用于dmaio及存放devicestate的内存区域:0001f~000ff转换至hypervisor2宿主机物理地址:0ee1f~0eeff;
将以上用于设备重定向内存区域新的gpa->hpa的映射关系更新到dmare-mapping硬件里的地址翻译表;
当动态迁移完成后,hypervisor2通知vm2设备驱动到翻转后的内存地址读取之前保存的设备状态,并恢复该透传设备。
本发明实施例,为了支持虚拟机带有透传硬件设备的本地hypervisor热升级,在虚拟化中实现一个可以转换透传硬件设备所有权的半虚拟化翻转模块,可以在热升级过程中直接将透传硬件设备的所有权交给迁移后的虚拟机。具体来说,主要包括以下三个方面:在动态迁移过程中保存透传硬件设备上下文;获取vm中相关内存地址映射,并翻转相关内存区域;恢复透传设备上下文。
可见,通过采用上述方案,就能够获取第一虚拟机所对应的目标设备的相关信息,将所述第一虚拟机所对应的物理存储单元中选取的第一存储区域,转换为第二虚拟机对应的第二存储地址,建立所述第二存储地址与第二控制层的映射关系,基于所述映射关系建立所述第二虚拟机与目标设备的相关信息,并控制所述第二虚拟机与所述目标设备进行数据交互。如此,在进行目标设备在虚拟机之间迁移的时候,不需要进行复杂的替换流程,仅需要直接转换该设备所属虚拟机的所有权即可实现,从而保证透传硬件设备的迁移更加平滑无缝,并有效缩短迁移时间。另外,还能够在迁移开始之前将目标设备的处理状态控制为暂停状态,从而避免在迁移过程中该透传硬件设备被其它虚拟机占用。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。