CN106844008A - 一种数据操作的方法、设备及系统 - Google Patents

一种数据操作的方法、设备及系统 Download PDF

Info

Publication number
CN106844008A
CN106844008A CN201710002352.4A CN201710002352A CN106844008A CN 106844008 A CN106844008 A CN 106844008A CN 201710002352 A CN201710002352 A CN 201710002352A CN 106844008 A CN106844008 A CN 106844008A
Authority
CN
China
Prior art keywords
virtual machine
memory
shared drive
qemu
machine
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.)
Pending
Application number
CN201710002352.4A
Other languages
English (en)
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 CN201710002352.4A priority Critical patent/CN106844008A/zh
Publication of CN106844008A publication Critical patent/CN106844008A/zh
Pending legal-status Critical Current

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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Abstract

本申请公开了一种数据操作的方法、设备及系统。在本申请中,虚拟机启动时在物理机上为所述虚拟机分配的内存空间中的共享内存被虚拟操作系统模拟器QEMU模拟为接入所述虚拟机的PCI设备;所述虚拟机加载所述PCI设备的驱动程序;所述虚拟机通过所述驱动程序调用所述PCI设备,以对所述共享内存进行数据操作。本申请通过将分配给虚拟机内存空间的共享内存部分模拟成PCI设备,实现数据在虚拟机和物理机之间的传递,以提高用户体验。

Description

一种数据操作的方法、设备及系统
技术领域
本申请涉及IT技术领域,尤其涉及一种数据操作的方法、设备及系统。
背景技术
虚拟化技术是当前热门IT技术之一的云计算领域的关键技术,其可将物理机的物理资源虚拟成多个虚拟机(Virtual Machine,VM),物理资源被虚拟化平台以虚拟资源池的形式提供给各个虚拟机,不同的虚拟机可以分配给不同的用户,虚拟机之间可以共享物理资源。
虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。以CPU为例,虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,且多个不同的应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。相对而言,虚拟机可以视为通过软件模拟的、具有完整硬件系统功能的、并运行在一个完全隔离环境中的完整计算机系统。
目前的虚拟化技术有Xen虚拟化技术、KVM(Kernel-based Virtual Machine)虚拟化技术、OpenVZ虚拟化技术、及VirtualBox虚拟化技术等。Xen是一个开放源代码虚拟机监视器。操作系统必须进行显式地修改以在Xen上运行。这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。在Xen虚拟机平台中,系统将所有的I/O操作都放到Linux guest中,即其中的Domain-0里。因重用Linux实现I/O操作,Xen的维护者无需重写整个I/O协议栈。而KVM虚拟化技术是Linux下x86硬件平台上的全功能虚拟化解决方案,包含一个可加载的内核模块kvm.ko。
以Xen虚拟化技术为例,Hypervisor是Xen虚拟化平台中一种运行在物理机和操作系统之间的中间软件层。通过Hypervisor可允许多个操作系统和应用程序共享一套基础物理硬件,因此Hypervisor也可以视为虚拟环境中的“元”操作系统,它可以协调访问物理机上的所有物理设备和虚拟机,也叫虚拟机监视器(Virtual Machine Monitor,VMM)。Hypervisor是所有虚拟化技术的核心。非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。当启动并执行Hypervisor时,Hypervisor会给每一台虚拟机分配适量的内存Memory、处理器CPU、网络资源和磁盘,并加载所有虚拟机的客户操作系统(Guest OS)。
Xen平台上运行的虚拟机被称为“域”(Domain)。Xen平台上有一域名为dom0的特殊域Domain0,用于负责控制管理程序和启动其他虚拟机的Guest OS。物理机上的内存空间被划分为Xen内存空间,Dom0内存空间,Dom1内存空间,Dom2内存空间等。Xen内存空间是Xen平台下VMM即Hypervisor使用的内存空间;Dom0内存空间是Domain0使用的内存空间;Dom1内存空间、Dom2内存空间等则是为各虚拟机在物理机上实际分配的内存空间。以附图1中的Dom1内存空间为例,其是虚拟机1在物理机上分配的内存空间;而虚拟机1上的虚拟机内存空间则是虚拟机1的Guest OS呈现给运行在Guest OS上层的应用程序的虚拟内存空间,其实际对应到Xen平台为虚拟机1在物理机上分配的Dom1内存空间。
现有技术通过在Xen内存空间预留一部分内存的方式来实现物理机和虚拟机之间的数据传递。如图1所示,Xen平台启动时在Xen内存空间预留一部分内存作为预留内存,以便物理机和虚拟机之间的数据传递时使用。这样Doman0可以将通过Xen接口将数据写入上述预留内存中,而虚拟机可以通过Guest OS读取该预留内存中的数据,即实现了数据从物理机传递到虚拟机;反之,虚拟机也可以通过Guest OS将数据写入该预留内存,而Domain0通过Xen接口读取该预留内存上的数据,从而实现了数据从虚拟机传递到物理机。
现有技术方案中,Xen内存空间中预留内存的大小是固定的,如果需要调整该预留内存的大小,则需要重新启动物理机,这将导致该物理机及运行在该物理机上的所有虚拟机都重启。因此现有技术方案不够灵活,用户体验不好。
发明内容
本申请实施例提供一种数据操作的方法、设备及系统,能够解决现有机制中在物理机和虚拟机之间传递数据的操作不灵活的问题,提高了用户体验。
一方面,本申请提供了一种数据操作的方法,物理机上为虚拟机分配内存空间包括共享内存,所述共享内存被虚拟操作系统模拟器QEMU模拟为接入所述虚拟机的PCI设备,所述方法包括:
所述虚拟机加载所述PCI设备的驱动程序;
所述虚拟机通过所述驱动程序调用所述PCI设备,对所述共享内存进行数据操作。
在一种可能的方式中,所述方法还包括:所述虚拟机的客户操作系统Guest OS接收所述QEMU上报的所述虚拟机的内存资源,所述虚拟机的内存资源为所述内存空间除所述共享内存的部分。
在又一种可能的方式中,所述QEMU向所述虚拟机的Guest OS上报资源的策略被修改。
另一方面,本申请提供了一种数据操作的方法,所述方法包括:
虚拟操作系统模拟器QEMU获取物理机上为虚拟机分配的内存空间,所述内存空间包括共享内存;
所述QEMU将所述共享内存模拟为接入所述虚拟机的PCI设备,所述PCI设备被所述虚拟机调用以实现所述虚拟机对所述共享内存的数据操作。
在一种可能的方式中,所述方法还包括:所述QEMU将所述内存空间除所述共享内存的部分作为所述虚拟机的内存资源上报给所述虚拟机的客户操作系统Guest OS。
在又一种可能的方式中,所述方法还包括:所述QEMU修改向所述虚拟机的GuestOS上报资源的策略。
另一方面,本申请提供了一种计算机设备,所述计算机设备上运行有虚拟机,物理机上所分配的内存空间中包括共享内存,所述共享内存被虚拟操作系统模拟器QEMU模拟为接入所述虚拟机的PCI设备,所述虚拟机用于加载所述PCI设备的驱动程序;
所述虚拟机还用于通过所述驱动程序调用所述PCI设备,对所述共享内存进行数据操作。
在一种可能的方式中,所述虚拟机还用于接收所述QEMU上报的所述虚拟机的内存资源,所述虚拟机的内存资源为所述内存空间除所述共享内存的部分。
在又一种可能的方式中,所述QEMU向所述虚拟机的Guest OS上报资源的策略被修改。
又一方面,本申请提供了一种计算机设备,所述计算机设备上运行有虚拟操作系统模拟器QEMU,所述QEMU用于获取物理机上为虚拟机分配的内存空间,所述内存空间包括共享内存;
所述QEMU还用于将所述共享内存模拟为接入所述虚拟机的PCI设备,所述PCI设备被所述虚拟机调用以实现所述虚拟机对所述共享内存的数据操作。
在一种可能的方式中,所述QEMU还用于将所述内存空间除所述共享内存的部分作为所述虚拟机的内存资源上报给所述虚拟机的客户操作系统Guest OS。
在又一种可能的方式中,所述QEMU还用于修改向所述虚拟机的Guest OS上报资源的策略。
再一方面,本申请提供了一种计算机系统,所述计算机系统上运行有虚拟操作系统模拟器QEMU和包括第一虚拟机的至少一个虚拟机,其中:
所述QEMU用于获取物理机上为所述第一虚拟机分配的内存空间,所述内存空间包括共享内存;所述QEMU还用于将所述共享内存模拟为接入所述第一虚拟机的PCI设备;
所述第一虚拟机用于加载所述PCI设备的驱动程序,并通过所述驱动程序调用所述PCI设备,对所述共享内存进行数据操作。
在一种可能的方式中,所述QEMU还用于将所述内存空间除所述共享内存的部分作为所述第一虚拟机的内存资源上报给所述第一虚拟机。
在又一种可能的方式中,所述QEMU还用于修改向所述第一虚拟机上报资源的策略。
再一方面,本申请提供了一种计算机设备,其特征在于,包括处理器和存储器,其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行本申请中QEMU所执行的操作。
又一方面,本申请提供了一种计算机设备,其特征在于,包括处理器和存储器,其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行本申请中虚拟机所执行的操作。
相较于现有技术,本申请实施例所提供的技术方案,通过在物理机为虚拟机分配的内存空间中预留共享内存,从而可以根据用户的需求灵活设置共享内存的大小,且无需重新启动物理机,从而提高了用户体验。
附图说明
为说明本申请实施例或现有技术中的技术方案,下面将对本申请的实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面附图中反映的仅仅是本申请的一部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得本申请的其他实施方式。
图1为现有技术中实现物理机和虚拟机之间数据传递的示意图;
图2为本申请提供的一种云服务系统的架构示意图;
图3为本申请实施例提供的计算机设备示意图;
图4为本申请实施例实现物理机和虚拟机之间数据传递的示意图;
图5为本申请实施例提供的数据操作方法的流程示意图;
图6为本申请实施例的计算机系统的结构示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例描述的网络架构以及业务场景是为了说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请实施例描述的网络架构以及业务场景是为了说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
如图2所示,本申请提供了一种云服务系统的系统架构示意图,用户操作客户端206通过网络204接入云服务,登录虚拟机。该云服务系统包括主机202。
客户端206:用户通过该客户端206连接到云服务系统。该客户端206可以基于各种类型的平台,包括但不限于Web Portal、IOS、安卓、Linux以及Windows平台等。该客户端206可以安装在用户设备上,本申请所涉及到的用户设备可以包括各种具有通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到各类网络的处理设备,以及各种形式移动台(Mobile station,简称MS),终端(terminal),终端设备(Terminal Equipment)等。为方便描述,本申请中,上面提到的设备统称为用户设备。
主机202:可以为各种类型的物理服务器,用于提供物理资源。主机202上运行有虚拟机监视器(Virtual Machine Monitor,VMM)2020。VMM 2020是位于操作系统和硬件2022之间的代码。使用虚拟机技术后,硬件2022被分割成多个虚拟机(Virtual Machine,VM),如图2中的VM1、VM2、VM3……VMn。虚拟机是模拟出来的一台虚拟的计算机,也即逻辑上的一台计算机。VMM 2020可以隔离并且管理这些虚拟机,仲裁它们对硬件2022的访问,并为每个虚拟机提供一套独立于实际硬件的虚拟硬件环境,如处理器、内存、I/O设备等。
图3所示为本申请实施例提供的计算机设备示意图。计算机设备300包括至少一个处理器301,通信总线302,至少一个存储器303以及至少一个通信接口304。
处理器301可以是一个通用中央处理器(CPU)、微处理器、特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线302可包括一通路,在上述组件之间传输信息。所述通信接口304,可以是使用任何收发器一类的装置,用于与其他设备或通信网络之间的通信。这里的通信网络可以是以太网,无线接入网(Radio Access Network,RAN),无线局域网(Wireless LocalArea Networks,WLAN)等。
存储器303可以是只读存储器(read-only memory,ROM)、可存储静态信息和指令的静态存储设备、随机存取存储器(random access memory,RAM)、或者可存储信息和指令的动态存储设备,也可以是电可擦可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器303可以是独立存在,通过通信总线302与处理器301相连接;存储器303也可以和处理器301集成在一起。
上述存储器303可用于存储执行本申请方案的应用程序代码;处理器301可用于执行存储器303中存储的应用程序代码。
作为具体实现的一种实施例,计算机设备300可以包括多个处理器,例如图3中的处理器301和处理器308。这些处理器中的每一个都可以是单核(single-CPU)处理器,也可以是多核(multi-CPU)处理器。每个处理器本身,如处理器301可以包括一个或多个CPU,例如CPU0和CPU1。
计算机设备300还可以包括输出设备305和输入设备306。输出设备305和处理器301通信,可以以多种方式来显示信息。输出设备305可以是液晶显示器(liquid crystaldisplay,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathoderay tube,CRT)显示设备、或投影仪(projector)等。输入设备306和处理器301通信,可以以多种方式接收用户的输入。输入设备306可以是鼠标、键盘、触摸屏设备或传感设备等。
计算机设备300可以是通用计算机设备、或者专用计算机设备。在具体实现中,计算机设备300可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal DigitalAssistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、或嵌入式设备等。本申请实施例不限定计算机设备300的类型。
需要说明的是,图3所示的计算机设备300仅仅是给出了云服务系统中各部分的可能的硬件实现方式,根据系统各部分功能的不同或者变化,可以对计算机设备的硬件组件进行增删,以使得与系统各部分的功能进行匹配。
以Xen虚拟化平台实现为例,为实现物理机和虚拟机之间的数据传递,本申请通过在物理机为虚拟机分配的内存空间中预留一部分内存的方式来实现,如图4所示。
物理机上的内存空间被划分为Xen平台下VMM使用的Xen内存空间,Domain0使用的Dom0内存空间,为各虚拟机分配的相应的存储空间Dom1内存空间、Dom2内存空间等。以虚拟机1为例,虚拟机1上的虚拟机内存空间则是虚拟机1的Guest OS呈现给运行在该虚拟机上的应用程序的虚拟内存空间,其实际对应到Xen平台为虚拟机1在物理机上分配的Dom1内存空间。
在图4所示的本申请实施例中,在物理机上为虚拟机1分配的Dom1内存空间中预留一部分内存用于物理机和虚拟机之间的数据传递,该部分预留的内存称为共享内存。作为一种可能的实现方式,该共享内存可以设置为对虚拟机1的Guest OS不可见,即虚拟机1上的虚拟机内存空间不能对应到该共享内存空间,运行在虚拟机1上的应用程序不能通过Guest OS访问该共享内存。本申请实施例的具体实现如下:
1)在虚拟机1启动时,负责管理所有虚拟机的Domain0上的QEMU不向虚拟机1的Guest OS上报该共享内存资源;且QEMU将该共享内存模拟成接入该虚拟机1的PCI设备,以供虚拟机1的Guest OS使用。
2)在虚拟机1上设置有该共享内存对应的PCI设备的驱动程序,虚拟机1的GuestOS可以通过该PCI设备驱动程序调用该PCI设备,即访问该共享内存。
比如虚拟机1启动时,在物理机上为该虚拟机1分配的Dom1内存空间为4G,其中0.2G被设置为共享内存,其余的3.8G设置为虚拟机的Guest OS使用的内存空间。本例中0.2G的共享内存被QEMU模拟成虚拟机1上的PCI设备,该虚拟机1通过对应于该共享内存的PCI设备驱动程序可以直接调用该共享内存,与其他的I/O设备类似;而其余的3.8G内存空间,则由QEMU上报给虚拟机1的Guest OS,作为虚拟机1的虚拟机内存空间在物理机上的实际存储位置,可由虚拟机1的Guest OS直接访问。
在本申请的上述方案中,虚拟机1可以通过PCI设备驱动程序直接调用共享内存对应的PCI设备,从而实现对共享内存的访问,即对该共享内存的写入或读取操作;Xen平台的操作系统或Domain0,本来就可以直接对物理机上的物理资源进行访问,即包括对共享内存的写入或读取操作。因此使用本申请的上述方案可以实现数据在虚拟机和物理机之间的传递。
在本申请上述方案中,由于共享内存的大小可以由用户在虚拟机启动时设置的、或者在其他可能的时机或场合由用户设置,即共享内存的大小可以根据用户的需求灵活设置。如需要调整该共享内存的大小,只需重新部署虚拟机或修改虚拟机的配置即可,而不必重新启动物理机。即使虚拟机迁移到其他物理机上,也无需重启该虚拟机所驻留的新物理机上。因此使用本申请提供的上述技术方案,可以提高用户体验。
另外,由于共享内存是从各自虚拟机在物理机上分配的内存空间预留的,不会额外占用其他虚拟机的内存资源,因此不会对其他虚拟机的正常业务产生干扰,也提高了系统的资源利用率。
如图5所示,为本申请实施例提供的一种数据操作的流程示意图。
步骤502:启动虚拟机1的Guest OS,在物理机上为虚拟机1分配的Dom1内存空间中包括共享内存。
物理机上的内存空间被划分为Xen内存空间,Domain0使用的Dom0内存空间,为各虚拟机分配的相应的存储空间Dom1内存空间、Dom2内存空间等。本申请在物理机上为虚拟机1分配的Dom1内存空间中预留共享内存,用于物理机和虚拟机1之间后续的数据传递操作。
步骤504:Domain0上的QEMU向虚拟机1的Guest OS上报分配给虚拟机1的资源,其中所上报的I/O资源包括该共享内存对应的PCI设备,且所上报的内存资源为Dom1内存空间除共享内存的部分。
为虚拟机分配的资源可以包括CPU资源,内存资源,I/O资源,这些资源都是通过QEMU上报给虚拟机的Guest OS。因此在本申请中,可以修改QMEU向虚拟机上报资源的策略,即QEMU不上报共享内存、仅将Dom1内存空间除共享内存的部分作为内存资源上报给虚拟机1的Guest OS。这样共享内存将不对虚拟机1的Guest OS呈现,即虚拟机1的Guest OS下无法看到该共享内存,即无法通过内存访问的方式访问该共享内存。同时共享内存被QEMU模拟成虚拟机1上的PCI设备,作为分配给虚拟机1的I/O资源上报给虚拟机1的Guest OS。
步骤506:虚拟机1的Guest OS上加载该共享内存对应PCI设备的驱动程序。
步骤508:对共享内存上的数据进行操作。比如运行在虚拟机1上的应用程序通过步骤506加载的驱动程序调用上述共享内存对应的PCI设备,实现对上述共享内存中的数据的读取或写入操作;而Xen平台的操作系统或Domain0则可以通过内存访问方式对上述共享内存进行写入或读取操作。因虚拟机1和物理机均可以对该共享内存进行操作,从而实现在虚拟机1和物理机之间实现数据传递。
需要说明的是,本申请的上述实施例仅以Xen虚拟化平台为例,本申请的技术方案还可以应用到如KVM、OpenVZ、或VirtualBox等其他虚拟化平台。比如在KVM虚拟化平台下,没有像Xen虚拟化平台中提供虚拟环境中的元操作系统即虚拟机监视器VMM和负责管理各虚拟机的功能模块即Domain0,而是将两者的功能统一集成在KVM模块中。关于KVM虚拟化平台介绍如下:
KVM模块:运行在内核空间,用于提供处理器CPU和内存Memory的虚拟化;KVM模块可以将一台Linux主机配置成虚拟机监视器(VMM)。
客户机系统Guest:可以包括CPU、内存、设备驱动;Guest被KVM置于一种受限制的CPU模式下运行。
虚拟操作系统模拟器QEMU:QEMU运行在用户空间,提供I/O设备的虚拟化,可以通过IOCTL/dev/kvm设备和KVM模块交互。
本申请的技术方案可以应用在不同的虚拟化平台,在物理机上为虚拟机分配的内存空间中预留一块共享内存,由QEMU将该共享内存模拟成该虚拟机的PCI设备,并在虚拟机上加载该PCI设备的驱动程序。从而可以实现数据在虚拟机和物理机之间的传递。由于本申请方案中共享内存的大小可由用户在虚拟机启动时或其他时机根据用户的需求灵活设置,无论是需调整共享内存的大小,还是虚拟机迁移到其他物理机上的场景下,都无需重启物理机;且共享内存不额外占用其他虚拟机的内存资源,不会对其他虚拟机的正常业务产生干扰,提高了资源利用率。
以上对本申请的数据操作方法进行描述,以下对实现上述方法的计算机设备进行描述。
本申请提供了一运行有虚拟操作系统模拟器QEMU的计算机设备和一运行有虚拟机的计算机设备,用于实现本申请的上述数据操作方法。如图6所示的计算机系统,该计算机系统中包括一运行有QEMU 6022的计算机设备602和一运行有至少一个虚拟机6042的计算机设备604。
本申请的计算机设备602包括处理器和存储器,其中的存储器用于存储程序代码,处理器用于调用存储器中的程序代码来执行本申请中虚拟操作系统模拟器QEMU在本申请技术方案提供的数据操作方法的动作;而本申请的计算机设备604包括处理器和存储器,其中的存储器用于存储程序代码,处理器用于调用存储器中的程序代码来执行本申请中虚拟机在本申请技术方案提供的数据操作方法的动作。具体的实现描述如下:
计算机设备602中的QEMU 6022可获取物理机上为虚拟机6042分配的内存空间,该内存空间包括共享内存。该QEMU 6022可用于将上述共享内存模拟为接入虚拟机6042的PCI设备,该PCI设备可以被虚拟机6042调用以实现虚拟机6042对该共享内存的数据操作。
计算机设备604中的虚拟机6042可以在加载上述PCI设备的驱动程序,用于通过该驱动程序调用上述PCI设备,实现对共享内存的数据操作。
本申请中,QEMU 6022可以通过修改向虚拟机6042的Guest OS上报资源的策略,将物理机上为虚拟机6042分配的内存空间除上述共享内存的部分作为虚拟机的内存资源上报给虚拟机6042的客户操作系统Guest OS,并将上述PCI设备作为分配给虚拟机6042的I/O资源上报给虚拟机6042的Guest OS。
图6所示的计算机系统可以运行Xen虚拟化平台,还可以应用到如KVM、OpenVZ、或VirtualBox等其他虚拟化平台。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元,本文中所出现的单元的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个单元可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元之间的间接耦合或通信连接可以是电性或其他类似的形式,本文中均不作限定。并且,作为分离部件说明的单元或子单元可以是也可以不是物理上的分离,可以是也可以不是物理单元,或者可以分不到多个电路单元中,可以根据实际的需要选择其中的部分或全部单元来实现本发明实施例方案的目的。
本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (17)

1.一种数据操作的方法,其特征在于,物理机上为虚拟机分配内存空间包括共享内存,所述共享内存被虚拟操作系统模拟器QEMU模拟为接入所述虚拟机的PCI设备,所述方法包括:
所述虚拟机加载所述PCI设备的驱动程序;
所述虚拟机通过所述驱动程序调用所述PCI设备,对所述共享内存进行数据操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述虚拟机的客户操作系统Guest OS接收所述QEMU上报的所述虚拟机的内存资源,所述虚拟机的内存资源为所述内存空间除所述共享内存的部分。
3.根据权利要求1或2所述的方法,其特征在于,所述QEMU向所述虚拟机的Guest OS上报资源的策略被修改。
4.一种数据操作的方法,其特征在于,所述方法包括:
虚拟操作系统模拟器QEMU获取物理机上为虚拟机分配的内存空间,所述内存空间包括共享内存;
所述QEMU将所述共享内存模拟为接入所述虚拟机的PCI设备,所述PCI设备被所述虚拟机调用以实现所述虚拟机对所述共享内存的数据操作。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述QEMU将所述内存空间除所述共享内存的部分作为所述虚拟机的内存资源上报给所述虚拟机的客户操作系统Guest OS。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
所述QEMU修改向所述虚拟机的Guest OS上报资源的策略。
7.一种计算机设备,其特征在于,所述计算机设备上运行有虚拟机,物理机上所分配的内存空间包括共享内存,所述共享内存被虚拟操作系统模拟器QEMU模拟为接入所述虚拟机的PCI设备,所述虚拟机用于加载所述PCI设备的驱动程序;
所述虚拟机还用于通过所述驱动程序调用所述PCI设备,对所述共享内存进行数据操作。
8.根据权利要求7所述的计算机设备,其特征在于,所述虚拟机还用于接收所述QEMU上报的所述虚拟机的内存资源,所述虚拟机的内存资源为所述内存空间除所述共享内存的部分。
9.根据权利要求7或8所述的计算机设备,其特征在于,所述QEMU向所述虚拟机的GuestOS上报资源的策略被修改。
10.一种计算机设备,其特征在于,所述计算机设备上运行有虚拟操作系统模拟器QEMU,所述QEMU用于获取物理机上为虚拟机分配的内存空间,所述内存空间包括共享内存;
所述QEMU还用于将所述共享内存模拟为接入所述虚拟机的PCI设备,所述PCI设备被所述虚拟机调用以实现所述虚拟机对所述共享内存的数据操作。
11.根据权利要求10所述的计算机设备,其特征在于,所述QEMU还用于将所述内存空间除所述共享内存的部分作为所述虚拟机的内存资源上报给所述虚拟机的客户操作系统Guest OS。
12.根据权利要求10或11所述的计算机设备,其特征在于,所述QEMU还用于修改向所述虚拟机的Guest OS上报资源的策略。
13.一种计算机系统,其特征在于,所述计算机系统上运行有虚拟操作系统模拟器QEMU和包括第一虚拟机的至少一个虚拟机,其中:
所述QEMU用于获取物理机上为所述第一虚拟机分配的内存空间,所述内存空间包括共享内存;所述QEMU还用于将所述共享内存模拟为接入所述第一虚拟机的PCI设备;
所述第一虚拟机用于加载所述PCI设备的驱动程序,并通过所述驱动程序调用所述PCI设备,对所述共享内存进行数据操作。
14.根据权利要求13所述的系统,其特征在于,所述QEMU还用于将所述内存空间除所述共享内存的部分作为所述第一虚拟机的内存资源上报给所述第一虚拟机。
15.根据权利要求13或14所述的系统,其特征在于,所述QEMU还用于修改向所述第一虚拟机上报资源的策略。
16.一种计算机设备,其特征在于,包括处理器和存储器,其中所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行所述方法1至3任一项所述的操作。
17.一种计算机设备,其特征在于,包括处理器和存储器,其中所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行所述方法4至6任一项所述的操作。
CN201710002352.4A 2017-01-03 2017-01-03 一种数据操作的方法、设备及系统 Pending CN106844008A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710002352.4A CN106844008A (zh) 2017-01-03 2017-01-03 一种数据操作的方法、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710002352.4A CN106844008A (zh) 2017-01-03 2017-01-03 一种数据操作的方法、设备及系统

Publications (1)

Publication Number Publication Date
CN106844008A true CN106844008A (zh) 2017-06-13

Family

ID=59117487

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710002352.4A Pending CN106844008A (zh) 2017-01-03 2017-01-03 一种数据操作的方法、设备及系统

Country Status (1)

Country Link
CN (1) CN106844008A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832117A (zh) * 2017-11-15 2018-03-23 北京东土科技股份有限公司 一种虚拟机状态信息同步方法及电子设备
CN109901909A (zh) * 2019-01-04 2019-06-18 中国科学院计算技术研究所 用于虚拟化系统的方法及虚拟化系统
CN111240898A (zh) * 2020-01-09 2020-06-05 中瓴智行(成都)科技有限公司 一种基于Hypervisor的黑匣子实现方法及系统
CN111813584A (zh) * 2020-08-05 2020-10-23 Oppo广东移动通信有限公司 内存共享方法、装置、电子设备及存储介质
CN114327944A (zh) * 2021-12-24 2022-04-12 科东(广州)软件科技有限公司 一种多系统共享内存的方法、装置、设备及存储介质
CN114374535A (zh) * 2021-12-09 2022-04-19 北京和利时系统工程有限公司 一种基于虚拟化技术的控制器网络攻击防御方法与系统
CN116149820A (zh) * 2023-02-20 2023-05-23 亿咖通(湖北)技术有限公司 基于Xen的域间通信方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101847105A (zh) * 2009-03-26 2010-09-29 联想(北京)有限公司 一种计算机及多操作系统共享内存的方法
US7840790B1 (en) * 2007-02-16 2010-11-23 Vmware, Inc. Method and system for providing device drivers in a virtualization system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840790B1 (en) * 2007-02-16 2010-11-23 Vmware, Inc. Method and system for providing device drivers in a virtualization system
CN101847105A (zh) * 2009-03-26 2010-09-29 联想(北京)有限公司 一种计算机及多操作系统共享内存的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DAVID_BECKDONG: "KVM+QEMU世界中的pci总线与virtio总线", 《HTTPS://BLOG.CSDN.NET/BECKDON/ARTICLE/DETAILS/50598780》 *
YUANRUIZJU: "QEMU中的内存管理介绍", 《HTTPS://BLOG.CSDN.NET/U011364612/ARTICLE/DETAILS/51345110》 *
爱海TAOTAO: "Ivshmem实现分析与性能测试", 《HTTPS://BLOG.CSDN.NET/HAITAOLIANG/ARTICLE/DETAILS/22753423》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832117A (zh) * 2017-11-15 2018-03-23 北京东土科技股份有限公司 一种虚拟机状态信息同步方法及电子设备
CN109901909A (zh) * 2019-01-04 2019-06-18 中国科学院计算技术研究所 用于虚拟化系统的方法及虚拟化系统
CN109901909B (zh) * 2019-01-04 2020-12-29 中国科学院计算技术研究所 用于虚拟化系统的方法及虚拟化系统
CN111240898A (zh) * 2020-01-09 2020-06-05 中瓴智行(成都)科技有限公司 一种基于Hypervisor的黑匣子实现方法及系统
CN111240898B (zh) * 2020-01-09 2023-08-15 中瓴智行(成都)科技有限公司 一种基于Hypervisor的黑匣子实现方法及系统
CN111813584A (zh) * 2020-08-05 2020-10-23 Oppo广东移动通信有限公司 内存共享方法、装置、电子设备及存储介质
CN114374535A (zh) * 2021-12-09 2022-04-19 北京和利时系统工程有限公司 一种基于虚拟化技术的控制器网络攻击防御方法与系统
CN114374535B (zh) * 2021-12-09 2024-01-23 北京和利时系统工程有限公司 一种基于虚拟化技术的控制器网络攻击防御方法与系统
CN114327944A (zh) * 2021-12-24 2022-04-12 科东(广州)软件科技有限公司 一种多系统共享内存的方法、装置、设备及存储介质
CN116149820A (zh) * 2023-02-20 2023-05-23 亿咖通(湖北)技术有限公司 基于Xen的域间通信方法、装置、设备及存储介质
CN116149820B (zh) * 2023-02-20 2024-02-06 亿咖通(湖北)技术有限公司 基于Xen的域间通信方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN106844008A (zh) 一种数据操作的方法、设备及系统
US20160378554A1 (en) Parallel and Distributed Computing Using Multiple Virtual Machines
CN109522087B (zh) 基于国产申威处理器的虚拟机构建方法和系统
US9720712B2 (en) Physical/virtual device failover with a shared backend
US8484639B2 (en) Fine-grained cloud management control using nested virtualization
US11010859B2 (en) Display resource scheduling method and device for embedded system
CN106844007A (zh) 一种基于空间复用的虚拟化方法与系统
CN109951545A (zh) 自适应的容器和云桌面的融合系统及其获取云资源的方法
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
CN102779074A (zh) 基于内存空洞机制的虚拟机内存资源分配方法
CN112104723A (zh) 一种多集群的数据处理系统及方法
CN107479943A (zh) 基于工业互联网操作系统的多操作系统运行方法及装置
CN103064724A (zh) 虚拟机构建方法及装置
Bozman et al. Cloud computing: The need for portability and interoperability
CN103064796A (zh) 虚拟机内存的共享方法与计算机系统
CN105117274B (zh) 虚拟机迁移方法和装置
CN112256430A (zh) 容器的部署方法、装置、设备及存储介质
CN103034526A (zh) 一种虚拟化服务的实现方法和装置
CN108304248A (zh) 一种多系统虚拟化的移动设备
CN113568734A (zh) 基于多核处理器的虚拟化方法、系统、多核处理器和电子设备
KR20240036693A (ko) 화면 디스플레이 방법, 장치, 전자 기기, 컴퓨터 판독 가능한 저장 매체 및 컴퓨터 프로그램 제품
US10394585B2 (en) Managing guest partition access to physical devices
CN108762891A (zh) 一种云平台资源调度方法和装置
CN108196945A (zh) 一种核间通信方法、装置和虚拟化设备
CN108196936A (zh) 一种资源调度方法、设备及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170613

RJ01 Rejection of invention patent application after publication