CN106844007B - 一种基于空间复用的虚拟化方法与系统 - Google Patents
一种基于空间复用的虚拟化方法与系统 Download PDFInfo
- Publication number
- CN106844007B CN106844007B CN201611246992.1A CN201611246992A CN106844007B CN 106844007 B CN106844007 B CN 106844007B CN 201611246992 A CN201611246992 A CN 201611246992A CN 106844007 B CN106844007 B CN 106844007B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- memory
- privileged
- privileged virtual
- idle
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种基于空间复用的虚拟化系统,包括一个系统平台,包括多个逻辑分区和I/O设备资源,每个该逻辑分区均包含CPU资源、内存资源和特殊硬件资源,且每个该逻辑分区均对应运行一个虚拟机;一个虚拟机监视器,用于根据整体该虚拟化系统的应用程序运行情况,对该逻辑分区中的内存资源做动态调整;多个虚拟机,用于运行应用程序,且其一虚拟机为特权虚拟机,其余虚拟机为非特权虚拟机,该特权虚拟机运行的应用程序为控制程序并参与控制全部该非特权虚拟机,为全部该非特权虚拟机分配共享内存,虚拟机间通过复用共享内存内容实现相互通信。本发明通过对硬件资源的空间复用和在不同虚拟机之间动态平衡内存资源,提高了虚拟机的效率和稳定性。
Description
技术领域
本发明涉及高性能虚拟化领域,特别是涉及一种基于空间复用的虚拟化方法与系统。
背景技术
作为云计算的核心技术之一,虚拟化为系统软件的发展提供了新的契机。虚拟化实现了资源抽象与隔离共享,引入了弹性按需、在线迁移等的特性,广泛应用于数据中心。但是与传统操作系统相比,虚拟化的性能开销是一个不可回避的问题,尤其对于高性能科学计算、高通量数据分析等的计算与数据密集型应用而言,虚拟化造成的性能降低、资源共享竞争导致的性能不稳定使得此类应用难以在云中获得理想。造成虚拟化性能开销的主要原因是:虚拟化要求严格的权限分离以及客户虚拟机(VM,Virtual Machine)之间的隔离,所有特权级操作都需要陷入虚拟机监视器(VMM,Virtual Machine Monitor)进行降级处理;严格的隔离机制为多个虚拟机共享服务器资源提供了安全保证。
在私有环境下,对安全性的要求相对较低,而高性能计算与大数据分析等的应用对性能比较敏感。此类场景更加需要虚拟化的弹性按需、灵活部署的特性来简化管理并提高生产力,并不需要在线公有云的严格隔离;另外,降低虚拟化开销、提高性能不仅可以满足高负载应用的需求,也有助于提高效率、降低成本。
减少虚拟机监视器的介入并降低虚拟机监视器的处理开销是优化虚拟化性能的主要手段。半虚拟化(Paravirtualization)技术通过超级调用(Hypercall)简化了特权指令的降级处理,但此种方式需要修改客户操作系统,且由软件进行虚拟机与虚拟机监视器之间的上下文切换开销较大。硬件完全虚拟化不需修改系统,得益于硬件的支持,客户机与宿主机之间执行环境的切换开销大幅降低,但无法避免消除,且虚拟机监视器仍旧需要进行大量的特权操作授权与模拟;实际上,主流商品硬件平台新产品虚拟化性能的优化大都以减少客户虚拟机退出(VMExit)为主。
随着多核处理器的快速发展与日益普及,单个服务器节点的处理器核心资源越来越丰富,处理器核心的成本也逐步降低,因而没有必要再以牺牲性能为代价去追求时间维度上的资源共享。而空间维度上的资源复用,既能保证隔离性需求,又能有效减少虚拟化的性能开销。
发明内容
为了解决上述技术问题,本发明目的在于通过空间复用取代时分复用以降低虚拟化的开销,提高虚拟机性能并改善性能稳定性,满足高性能计算与大数据分析类应用的需求,拓展云计算的适用领域。
具体来说本发明提出了一种基于空间复用的虚拟化系统,其中该虚拟化系统包括虚拟机监视器、系统平台和多个虚拟机,其中:
系统平台,包括多个逻辑分区和I/O设备资源,每个该逻辑分区均包含CPU资源、内存资源和特殊硬件资源,且每个该逻辑分区均对应运行一个虚拟机;
虚拟机监视器,用于根据整体该虚拟化系统的应用程序运行情况,对该逻辑分区中的内存资源做动态调整,并处理I/O虚拟化;
虚拟机,用于运行应用程序,且其一虚拟机为特权虚拟机,其余虚拟机为非特权虚拟机,该特权虚拟机运行的应用程序为控制程序,用于参与控制全部该非特权虚拟机,并为全部该非特权虚拟机分配共享内存,虚拟机间通过复用共享内存内容实现相互通信。
该虚拟化系统,其中该I/O设备资源由该特权虚拟机中的控制程序和该虚拟机监视器共同管理,该非特权虚拟机通过虚拟机监视器向特权虚拟机发起I/O请求,并由特权虚拟机代理完成I/O操作。
该虚拟化系统,其中每个该虚拟机都有页表、内存管理数据结构,该内存管理数据结构,用于监控该虚拟机中的页表情况,以产生缺页中断和更新该页表。
该虚拟化系统,其中该虚拟化系统还包括内存分配模块、第一判断模块、内存申请模块和第二判断模块,其中:
内存分配模块,用于在系统启动时,为每个该虚拟机分配固定数量的内存,特权虚拟机管理剩余所有内存资源;
第一判断模块,用于在该非特权虚拟机发生缺页中断时,判断当前内存资源是否存在空闲,若存在,则调用第二判断模块,若不存在,则调用内存申请模块,并尝试于本地分配空闲内存页面或于缓存内存池中寻找尚未归还的空闲内存页面;
内存申请模块,该非特权虚拟机向特权虚拟机申请一定数量的内存,该特权虚拟机根据当前内存空闲情况,决定是否满足该虚拟机的请求;
内存建立模块,该非特权虚拟机得到空闲内存,动态地在本地建立管理结构,独占使用该段内存;
第二判断模块,该非特权虚拟机判断空闲内存是否为本地空闲内存,若是,则直接释放,若不是,则调用内存归还模块;
内存归还模块,用于判断该非特权虚拟机当前空闲内存是否已经大于等于用户设定阈值,若是,则立即主动归还该空闲内存至特权虚拟机,若不是,则于本地内存池中缓冲该段内存,延迟归还,直到该非特权虚拟机空闲内存已经大于等于该用户设定阈值。
该虚拟化系统,其中该虚拟化系统还包括特权虚拟机启动模块、拷贝模块和代码执行模块,其中:
特权虚拟机启动模块,用于启动特权虚拟机,使该特权虚拟机根据配置文件或参数确定非特权虚拟机物理内存地址区间并为之划分共享内存;
拷贝模块,用于将非特权虚拟机的启动参数和跳板代码拷贝至专用内存页面中,并将该非特权虚拟机的操作系统映像拷贝至该非特权虚拟机所属物理内存分区的起始位置;
代码执行模块,用于通过CPU的高级可编程中断控制器通知非特权虚拟机的CPU执行该跳板代码,非特权虚拟机从特权虚拟机获得自己的CPU标识及物理内存地址区间,然后进行CPU的初始化,并配置临时页面以访问分配的物理内存区间,该跳板代码跳转到非特权虚拟机的操作系统映像位置执行,由用户操作系统继续初始化虚拟机并完成启动。
本发明还提出了一种基于空间复用的虚拟化方法,其中该虚拟化方法包括:
分配运行步骤,将一个系统平台,分配为包括多个逻辑分区和I/O设备资源,每个该逻辑分区均包含CPU资源、内存资源和特殊硬件资源,且每个该逻辑分区均对应运行一个虚拟机;
调整处理步骤,将一个虚拟机监视器,根据整体该虚拟化系统的应用程序运行情况,对该逻辑分区中的内存资源做动态调整,并处理I/O虚拟化;
复用通信步骤,将多个虚拟机,运行应用程序,且其一虚拟机为特权虚拟机,其余虚拟机为非特权虚拟机,该特权虚拟机运行的应用程序为控制程序,用于参与控制全部该非特权虚拟机,并为全部该非特权虚拟机分配共享内存,虚拟机间通过复用共享内存内容实现相互通信。
该虚拟化方法,其中该I/O设备资源由该特权虚拟机中的控制程序和该虚拟机监视器共同管理,该非特权虚拟机通过虚拟机监视器向特权虚拟机发起I/O请求,并由特权虚拟机代理完成I/O操作。
该虚拟化方法,其中每个该虚拟机都有页表、内存管理数据结构,该内存管理数据结构,用于监控该虚拟机中的页表情况,以产生缺页中断和更新该页表。
该虚拟化方法,其中该虚拟化方法还包括:
步骤S410,系统启动时,为每个该虚拟机分配固定数量的内存,该特权虚拟机管理剩余所有内存资源;
步骤S420,在该非特权虚拟机发生缺页中断时,判断当前内存资源是否存在空闲,若存在,则执行步骤S450,若不存在,则执行步骤S430,并尝试于本地分配空闲内存页面或于缓存内存池中寻找尚未归还的空闲内存页面;
步骤S430,该非特权虚拟机向该特权虚拟机申请一定数量的内存,该特权虚拟机根据当前内存空闲情况,决定是否满足该虚拟机的请求;
步骤S440,该非特权虚拟机得到空闲内存,动态地在本地建立管理结构,独占使用该段内存;
步骤S450,该非特权虚拟机判断空闲内存是否为本地空闲内存,若是,则直接释放,若不是,则执行步骤S460;
步骤S460,判断该非特权虚拟机当前空闲内存是否已经大于等于用户设定阈值,若是,则立即主动归还该空闲内存至特权虚拟机,若不是,则于本地内存池中缓冲该段内存,延迟归还,直到该非特权虚拟机空闲内存已经大于等于该用户设定阈值。
该虚拟化方法,其中该虚拟化方法还包括:
步骤S510,启动该特权虚拟机,完成对物理系统资源的初始化,该系统资源包括:该CPU资源、该内存资源和该特殊硬件资源;
步骤S520,特权虚拟机根据配置文件或参数确定该非特权虚拟机的虚拟处理器数目以及内存大小,并进一步确定该非特权虚拟机物理内存地址区间并为之划分共享内存;
步骤S530,将该非特权虚拟机的启动参数和跳板代码拷贝至专用内存页面中,并将该非特权虚拟机的操作系统映像拷贝至该虚拟机所属物理内存分区的起始位置;
步骤S540,通过CPU的高级可编程中断控制器通知该非特权虚拟机的CPU执行跳板代码;
步骤S550,该非特权虚拟机从该特权虚拟机获得自己的CPU标识及物理内存地址区间,然后进行CPU的初始化,并配置临时页面以访问分配的物理内存区间;
步骤S560,该跳板代码跳转到非特权虚拟机的操作系统映像位置执行,由用户操作系统继续初始化虚拟机并完成启动。
本发明有益效果在于:
1.通过对硬件资源的空间复用取代时分复用,避免了对CPU和内存管理特权指令的虚拟化,提高了虚拟机的性能并改善了性能稳定性;
2.通过一种基于租赁的内存共享协议在不同虚拟机之间动态平衡内存资源,提高硬件资源的使用效率;
3.本发明不需要特殊硬件支持,适用面广,同时轻量级的设计也降低了虚拟机监视器的开发调试难度。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
附图说明
图1为本发明的虚拟化系统结构的示意图;
图2为本发明的内存虚拟化的示意图;
图3为本发明的单一物理节点中网络虚拟化的示意图;
图4为本发明的基于租赁的内存共享协议的流程图;
图5为本发明的虚拟机启动的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的一种基于空间复用的轻量级虚拟化方法进行进一步的详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
本发明的一种基于空间复用的轻量级虚拟化方法,面向数据中心环境,通过尽可能的绕过虚拟机监视器,使虚拟机监视器只处理I/O虚拟化,其它所有特权指令均无需由虚拟机监视器处理,直接以最高特权级运行,避免了对CPU和内存管理特权指令的“陷入-降级-返回”的处理开销,提高了虚拟化系统的性能。此外,通过对资源分配的一次性绑定,减少虚拟资源与物理资源之间映射的变动,满足对性能有严苛要求的应用的需求。
随着多核、多处理器技术的发展与成熟,处理器与内存已不再是稀缺资源,且不同于I/O设备,处理器与内存可通过空间复用,由多个操作系统实例访问;此外,处理器与内存的性能远高于I/O设备,受虚拟化性能开销的影响更为明显,而I/O设备属于慢速部件,受虚拟化性能影响较小。为了获得更好的性能,通过空间复用代替传统的时分复用,并只对I/O进行虚拟化处理,是本发明的核心思想。
本发明所述系统主要包括多个虚拟机、一个系统平台和一个虚拟机监视器,其中系统平台包括多个逻辑分区和I/O设备资源,每个逻辑分区均包含CPU资源、内存资源和特殊硬件资源,每个逻辑分区均对应运行一个虚拟机,且该虚拟机独立管理与其对应的逻辑分区中的系统资源,该系统资源包括:CPU资源、内存资源和特殊硬件资源;虚拟机监视器,用于根据整个系统的应用运行情况,对逻辑分区中的内存资源做动态调整,并处理I/O虚拟化;虚拟机,用于通过客户操作系统,运行应用程序,若该虚拟机中客户操作系统运行控制程序,则该虚拟机为特权虚拟机,负责参与系统资源的管理,其余虚拟机为非特权虚拟机,即本发明中的虚拟机包括非特权虚拟机和特权虚拟机。其中该I/O设备资源由该特权虚拟机中的控制软件和该虚拟机监视器共同管理,非特权虚拟机需要通过虚拟机监视器向特权虚拟机发起I/O请求,并由特权虚拟机代理完成I/O操作。其中每个虚拟机管理与其对应逻辑分区中的内存资源,包括对内存资源分配一部分共享内存,即公共通信缓冲区,用于虚拟机之间的高效通信。
具体来说,系统平台,包括多个逻辑分区和I/O设备资源,每个该逻辑分区均包含CPU资源、内存资源和特殊硬件资源,且每个该逻辑分区均对应运行一个虚拟机;虚拟机监视器,用于根据整体该虚拟化系统的应用程序运行情况,对该逻辑分区中的内存资源做动态调整,并处理I/O虚拟化;虚拟机,用于运行应用程序,且其一虚拟机为特权虚拟机,其余虚拟机为非特权虚拟机,该特权虚拟机运行的应用程序为控制程序,用于参与控制全部该非特权虚拟机,并为全部该非特权虚拟机分配共享内存,虚拟机间通过复用共享内存内容实现相互通信。如图1所示,本发明的实现主要涉及具有多CPU处理器、内存、I/O设备等的系统平台110。系统平台110分成多个逻辑分区111,每个逻辑分区111包括若干CPU资源112、足够的物理内存资源113以及可通过本地访问的特殊硬件资源114,如内存管理单元等。每个逻辑分区111对应运行一个虚拟机130,虚拟机130于自己的资源分区内独立管理物理CPU资源112、内存资源113以及特殊硬件资源114,从而实现性能的隔离与稳定。各个逻辑分区111的内存资源113可由虚拟机监视器120动态调整,可根据整个系统的应用运行情况进行负载均衡调度。逻辑分区111并不要求特殊硬件(比如硬件虚拟化)的支持,而只需以CPU 112为中心,分配出运行客户操作系统131所需的必要资源即可。若虚拟机130的客户操作系统131中运行控制软件132,则该虚拟机130被称为特权虚拟机,整个系统只有一个特权虚拟机存在,负责参与系统资源的管理;其他的虚拟机130’的客户操作系统131中运行应用程序133。系统的I/O资源由特权虚拟机130中的控制软件132和虚拟机监视器120共同管理,非特权虚拟机130’需要通过虚拟机监视器120向特权虚拟机130发起I/O请求,并由特权虚拟机130代理完成I/O操作。
本发明直接在各个逻辑分区111中以最高CPU特权级运行虚拟机130,当虚拟机130的数目小于等于逻辑分区111的数目时,每个虚拟机130独占分区内部的本地CPU资源112,不需要进行虚拟机调度。每个客户操作系统131都运行在最高特权级,除I/O操作之外的所有特权指令和异常处理,都由本地CPU 112处理。当虚拟机130数目大于逻辑分区111数目时,需要进行虚拟机调度,即暂停正在运行的虚拟机130并调度至后备存储,并从后备存储选择合适的虚拟机130加载至CPU执行。本发明面向私有环境下的注意性能的应用场景,不以牺牲性能为代价来换取虚拟机的动态切换,故只在虚拟机结束或崩溃时才启动新的虚拟机。
如图2所示,每个虚拟机,包括特权虚拟机220和非特权虚拟机220’,都有自己的页表221和内存管理数据结构222,该内存管理数据结构,用于监控虚拟机220/220’中的页表221情况,以产生缺页中断和更新该页表,这样虚拟机220/220’的缺页中断和页表221的更新都直接在本地处理,并不需要虚拟机监视器的参与。虚拟机监视器只需要管理虚拟地址空间和物理地址空间,并不需要像传统系统虚拟机那样,维护三个地址空间——即客户虚拟地址-客户物理地址-宿主物理地址——之间的映射,极大地降低了复杂度,提高了内存管理的性能与效率。虚拟机220/220’除了映射自己的内存分区之外,还需要映射一块公共通信缓冲区210-II,用于实现虚拟机220/220’之间的高效通信。由于x86体系结构的限制,特权虚拟机220还需映射物理内存0~1MB的区域210-I,负责平台中所有非特权虚拟机220’的启动管理。
对于同一物理节点中的虚拟机之间的网络通信虚拟化,本发明将共享内存操作封装为符合消息传递语义的通信原语,进而实现虚拟机之间的消息传递功能,并支持各种网络协议。基于共享内存的通信性能远远高于通过I/O设备的通信性能;同一物理节点中的虚拟机之间的通信,均是通过共享内存之间的直接拷贝完成,并不像传统虚拟化方案,经过软件网桥、链路层防火墙和授权页面拷贝的漫长执行路径,有效降低了网络虚拟化的开销。如图3所示,基于共享内存的网络虚拟化包括共享内存管理模块31、端口地址映射模块32、消息传递模块33、消息探寻模块34。其中,共享内存管理模块31用于负责于系统启动时初始化缓冲区、计算并注册内存段等,并在系统运行过程中对共享内存(缓冲区)进行控制与更新;端口地址映射模块32负责目标虚拟机与相应目标共享内存的地址映射;消息传递模块33负责封装内存拷贝,并根据目标地址完成数据传递;消息探寻模块34负责探询是否有新消息到达。
如图4所示,为了整个系统的平衡,本发明提供的系统还包括如下模块,用于使内存资源在各个分区动态流动,
内存分配模块,用于在系统启动时,为每个虚拟机分配固定数量的内存,特权虚拟机管理剩余所有内存资源;
第一判断模块,用于在非特权虚拟机发生缺页中断时,判断当前内存资源是否存在空闲,若存在,则调用第二判断模块,若不存在,则调用内存申请模块,并尝试于本地分配空闲内存页面或于缓存内存池中寻找尚未归还的空闲内存页面;
内存申请模块,如果内存不足,非特权虚拟机向特权虚拟机申请一定数量的内存,特权虚拟机根据当前内存空闲情况,决定是否满足该虚拟机的请求;
内存建立模块,非特权虚拟机得到空闲内存,动态地在本地建立管理结构,独占使用该段内存;
第二判断模块,非特权虚拟机判断空闲内存是否为本地空闲内存,若是,则直接释放,若不是,则调用内存归还模块;
内存归还模块,用于判断非特权虚拟机当前空闲内存是否已经大于等于用户设定阈值,若是,则立即主动归还该空闲内存至特权虚拟机,若不是,则于本地内存池中缓冲该段内存,延迟归还,直到该非特权虚拟机空闲内存已经大于等于用户设定阈值。
特权虚拟机只维护内存是否存在空闲的位置,而由非特权虚拟机独立建立该段内存的管理结构,保证了系统的安全性和隔离性;最后,特权虚拟机规定了每个虚拟机所能占用的最大内存数量,避免了恶意程序对其它虚拟机的性能干扰。这种由特权虚拟机决定内存资源分配的集中式内存共享协议,避免了分布式内存共享协议所带来的内存抖动、内存借用等复杂问题,简化了系统设计。
本发明提供的系统还包括如下模块,用于在系统开始运行时启动虚拟机,
特权虚拟机启动模块,用于启动特权虚拟机,完成对系统资源的初始化,该特权虚拟机根据配置文件或参数确定非特权虚拟机的vCPU(虚拟处理器)数目以及内存大小,并进一步确定非特权虚拟机物理内存地址区间并为之划分共享内存(通信缓冲区);
拷贝模块,用于将非特权虚拟机的启动参数和跳板代码拷贝至0~1MB内存段的专用内存页面中,并将该非特权虚拟机的操作系统映像拷贝至该非特权虚拟机所属物理内存分区的起始位置;
代码执行模块,用于通过CPU的高级可编程中断控制器(Advanced ProgrammableInterrupt Controller,APIC)通知非特权虚拟机的CPU执行该跳板代码,非特权虚拟机从特权虚拟机获得自己的CPU标识及物理内存地址区间,然后进行CPU的初始化,并配置临时页面以访问分配的物理内存区间,该跳板代码跳转到非特权虚拟机的操作系统映像位置执行,由客户(用户)操作系统继续初始化虚拟机并完成启动。
以下为与上述系统实施例对应的方法实施例,本实施方式可与上述实施方式互相配合实施。上述施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
如图4所示,为了整个系统的平衡,本发明还提供了一种基于租赁的内存共享协议,使内存资源在各个分区动态流动。协议工作过程如下:
步骤S410,系统启动时,为每个虚拟机分配固定数量的内存,特权虚拟机管理剩余所有内存资源;
步骤S420,在非特权虚拟机发生缺页中断时,判断当前内存资源是否存在空闲,若存在,则执行步骤S450,若不存在,则执行步骤S430,并尝试于本地分配空闲内存页面或于缓存内存池中寻找尚未归还的空闲内存页面;
步骤S430,如果内存不足,非特权虚拟机向特权虚拟机申请一定数量的内存,特权虚拟机根据当前内存空闲情况,决定是否满足该虚拟机的请求;
步骤S440,非特权虚拟机得到空闲内存,动态地在本地建立管理结构,独占使用该段内存;
步骤S450,非特权虚拟机判断空闲内存是否为本地空闲内存,若是,则直接释放,若不是,则执行步骤S460;
步骤S460,判断非特权虚拟机当前空闲内存是否已经大于等于用户设定阈值,若是,则立即主动归还该空闲内存至特权虚拟机,若不是,则于本地内存池中缓冲该段内存,延迟归还,直到该非特权虚拟机空闲内存已经大于等于用户设定阈值。
特权虚拟机只维护内存是否空闲的位置,而由使用者即非特权虚拟机独立建立该段内存的管理结构,保证了系统的安全性和隔离性;最后,特权虚拟机规定了每个虚拟机所能占用的最大内存数量,避免了恶意程序对其它虚拟机的性能干扰。这种由特权虚拟机决定内存资源分配的集中式内存共享协议,避免了分布式内存共享协议所带来的内存抖动、内存借用等复杂问题,简化了系统设计。
如图5所示,虚拟机的启动管理包含如下步骤:
步骤S510,启动特权虚拟机,完成对物理系统资源的初始化;
步骤S520,特权虚拟机根据配置文件或参数确定非特权虚拟机的vCPU数目以及内存大小,并进一步确定非特权虚拟机物理内存地址区间并为之划分通信缓冲区;
步骤S530,将非特权虚拟机的启动参数和跳板代码拷贝至0~1MB内存段的专用内存页面中,并将非特权虚拟机的操作系统映像拷贝至该虚拟机所属物理内存分区的起始位置;
步骤S540,通过CPU的高级可编程中断控制器(Advanced ProgrammableInterrupt Controller,APIC)通知非特权虚拟机的CPU执行跳板代码;
步骤S550,非特权虚拟机从特权虚拟机获得自己的CPU标识及物理内存地址区间,然后进行CPU的初始化,并配置临时页面以访问分配的物理内存区间;
步骤S560,跳板代码跳转到非特权虚拟机的操作系统映像位置执行,由客户操作系统继续初始化虚拟机并完成启动。
通过结合附图对本发明具体实施例的描述与说明,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。应当注意,这些实施例应被认为只是示例性的,并不用于对本发明进行限制。在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种基于空间复用的虚拟化系统,其特征在于,该虚拟化系统包括虚拟机监视器、系统平台和多个虚拟机,其中:
系统平台,包括多个逻辑分区和I/O设备资源,每个该逻辑分区均包含CPU资源、内存资源和特殊硬件资源,且每个该逻辑分区均对应运行一个虚拟机;
虚拟机监视器,用于根据整体该虚拟化系统的应用程序运行情况,对该逻辑分区中的内存资源做动态调整,并处理I/O虚拟化;
虚拟机,用于运行应用程序,且其一虚拟机为特权虚拟机,其余虚拟机为非特权虚拟机,该特权虚拟机运行的应用程序为控制程序,用于参与控制全部该非特权虚拟机,并为全部该非特权虚拟机分配共享内存,虚拟机间通过复用共享内存内容实现相互通信;
该虚拟化系统还包括特权虚拟机启动模块、拷贝模块和代码执行模块,其中:
特权虚拟机启动模块,用于启动特权虚拟机,使该特权虚拟机根据配置文件或参数确定非特权虚拟机物理内存地址区间并为之划分共享内存;
拷贝模块,用于将非特权虚拟机的启动参数和跳板代码拷贝至专用内存页面中,并将该非特权虚拟机的操作系统映像拷贝至该非特权虚拟机所属物理内存分区的起始位置;
代码执行模块,用于通过CPU的高级可编程中断控制器通知非特权虚拟机的CPU执行该跳板代码,非特权虚拟机从特权虚拟机获得自己的CPU标识及物理内存地址区间,然后进行CPU的初始化,并配置临时页面以访问分配的物理内存区间,该跳板代码跳转到非特权虚拟机的操作系统映像位置执行,由用户操作系统继续初始化虚拟机并完成启动。
2.如权利要求1所述的基于空间复用的虚拟化系统,其特征在于,该I/O设备资源由该特权虚拟机中的控制程序和该虚拟机监视器共同管理,该非特权虚拟机通过虚拟机监视器向特权虚拟机发起I/O请求,并由特权虚拟机代理完成I/O操作。
3.如权利要求1所述的基于空间复用的虚拟化系统,其特征在于,每个该虚拟机都有页表、内存管理数据结构,该内存管理数据结构,用于监控该虚拟机中的页表情况,以产生缺页中断和更新该页表。
4.如权利要求1所述的基于空间复用的虚拟化系统,其特征在于,该虚拟化系统还包括内存分配模块、第一判断模块、内存申请模块和第二判断模块,其中:
内存分配模块,用于在系统启动时,为每个该虚拟机分配固定数量的内存,特权虚拟机管理剩余所有内存资源;
第一判断模块,用于在该非特权虚拟机发生缺页中断时,判断当前内存资源是否存在空闲,若存在,则调用第二判断模块,若不存在,则调用内存申请模块,并尝试于本地分配空闲内存页面或于缓存内存池中寻找尚未归还的空闲内存页面;
内存申请模块,该非特权虚拟机向特权虚拟机申请一定数量的内存,该特权虚拟机根据当前内存空闲情况,决定是否满足该虚拟机的请求;
内存建立模块,该非特权虚拟机得到空闲内存,动态地在本地建立管理结构,独占使用该空闲内存;
第二判断模块,该非特权虚拟机判断空闲内存是否为本地空闲内存,若是,则直接释放,若不是,则调用内存归还模块;
内存归还模块,用于判断该非特权虚拟机当前空闲内存是否已经大于等于用户设定阈值,若是,则立即主动归还该空闲内存至特权虚拟机,若不是,则于本地内存池中缓冲该空闲内存,延迟归还,直到该非特权虚拟机空闲内存已经大于等于该用户设定阈值。
5.一种基于空间复用的虚拟化方法,其特征在于,该虚拟化方法包括:
分配运行步骤,将一个系统平台,分配为包括多个逻辑分区和I/O设备资源,每个该逻辑分区均包含CPU资源、内存资源和特殊硬件资源,且每个该逻辑分区均对应运行一个虚拟机;
调整处理步骤,将一个虚拟机监视器,根据整体该虚拟化系统的应用程序运行情况,对该逻辑分区中的内存资源做动态调整,并处理I/O虚拟化;
复用通信步骤,将多个虚拟机,运行应用程序,且其一虚拟机为特权虚拟机,其余虚拟机为非特权虚拟机,该特权虚拟机运行的应用程序为控制程序,用于参与控制全部该非特权虚拟机,并为全部该非特权虚拟机分配共享内存,虚拟机间通过复用共享内存内容实现相互通信;
该虚拟化方法还包括:
步骤S510,启动该特权虚拟机,完成对物理系统资源的初始化,该系统资源包括:该CPU资源、该内存资源和该特殊硬件资源;
步骤S520,特权虚拟机根据配置文件或参数确定该非特权虚拟机的虚拟处理器数目以及内存大小,并进一步确定该非特权虚拟机物理内存地址区间并为之划分共享内存;
步骤S530,将该非特权虚拟机的启动参数和跳板代码拷贝至专用内存页面中,并将该非特权虚拟机的操作系统映像拷贝至该虚拟机所属物理内存分区的起始位置;
步骤S540,通过CPU的高级可编程中断控制器通知该非特权虚拟机的CPU执行跳板代码;
步骤S550,该非特权虚拟机从该特权虚拟机获得自己的CPU标识及物理内存地址区间,然后进行CPU的初始化,并配置临时页面以访问分配的物理内存区间;
步骤S560,该跳板代码跳转到非特权虚拟机的操作系统映像位置执行,由用户操作系统继续初始化虚拟机并完成启动。
6.如权利要求5所述的基于空间复用的虚拟化方法,其特征在于,该I/O设备资源由该特权虚拟机中的控制程序和该虚拟机监视器共同管理,该非特权虚拟机通过虚拟机监视器向特权虚拟机发起I/O请求,并由特权虚拟机代理完成I/O操作。
7.如权利要求5所述的基于空间复用的虚拟化方法,其特征在于,每个该虚拟机都有页表、内存管理数据结构,该内存管理数据结构,用于监控该虚拟机中的页表情况,以产生缺页中断和更新该页表。
8.如权利要求5所述的基于空间复用的虚拟化方法,其特征在于,该虚拟化方法还包括:
步骤S410,系统启动时,为每个该虚拟机分配固定数量的内存,该特权虚拟机管理剩余所有内存资源;
步骤S420,在该非特权虚拟机发生缺页中断时,判断当前内存资源是否存在空闲,若存在,则执行步骤S450,若不存在,则执行步骤S430,并尝试于本地分配空闲内存页面或于缓存内存池中寻找尚未归还的空闲内存页面;
步骤S430,该非特权虚拟机向该特权虚拟机申请一定数量的内存,该特权虚拟机根据当前内存空闲情况,决定是否满足该虚拟机的请求;
步骤S440,该非特权虚拟机得到空闲内存,动态地在本地建立管理结构,独占使用该空闲内存;
步骤S450,该非特权虚拟机判断空闲内存是否为本地空闲内存,若是,则直接释放,若不是,则执行步骤S460;
步骤S460,判断该非特权虚拟机当前空闲内存是否已经大于等于用户设定阈值,若是,则立即主动归还该空闲内存至特权虚拟机,若不是,则于本地内存池中缓冲该空闲内存,延迟归还,直到该非特权虚拟机空闲内存已经大于等于该用户设定阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611246992.1A CN106844007B (zh) | 2016-12-29 | 2016-12-29 | 一种基于空间复用的虚拟化方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611246992.1A CN106844007B (zh) | 2016-12-29 | 2016-12-29 | 一种基于空间复用的虚拟化方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106844007A CN106844007A (zh) | 2017-06-13 |
CN106844007B true CN106844007B (zh) | 2020-01-07 |
Family
ID=59113832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611246992.1A Active CN106844007B (zh) | 2016-12-29 | 2016-12-29 | 一种基于空间复用的虚拟化方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106844007B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019475B (zh) * | 2017-12-21 | 2021-07-20 | 华为技术有限公司 | 数据持久化处理方法、装置及系统 |
CN110874468B (zh) * | 2018-08-31 | 2024-02-09 | 华为技术有限公司 | 应用程序安全保护方法以及相关设备 |
CN112015669A (zh) * | 2019-05-31 | 2020-12-01 | 华为技术有限公司 | 一种混合内存管理方法及设备 |
CN110442425B (zh) * | 2019-07-19 | 2022-04-08 | 南京芯驰半导体科技有限公司 | 一种虚拟化地址空间隔离系统及方法 |
CN110471734B (zh) * | 2019-08-19 | 2023-01-13 | 东软集团股份有限公司 | 一种显示控制方法及装置 |
CN110968361B (zh) * | 2019-11-04 | 2021-11-23 | 上海交通大学 | 隔离沙箱加载方法 |
CN111212141A (zh) * | 2020-01-02 | 2020-05-29 | 中国科学院计算技术研究所 | 一种共享存储系统 |
CN113448677B (zh) * | 2020-03-24 | 2024-01-23 | 阿里巴巴集团控股有限公司 | 虚拟机的数据处理方法和系统 |
CN112153116B (zh) * | 2020-08-27 | 2023-03-24 | 上海赫千电子科技有限公司 | 一种基于车载以太网的中央计算平台多虚拟机的数据共享方法 |
CN112235210B (zh) * | 2020-08-27 | 2023-01-10 | 上海赫千电子科技有限公司 | 一种基于车载以太网的多域控制器虚拟机数据通信方法及装置 |
CN113342465B (zh) * | 2021-06-18 | 2022-06-21 | 上海交通大学 | 一种基于释放一致性内存同步的巨型虚拟机 |
CN114064200A (zh) * | 2021-10-11 | 2022-02-18 | 北京智芯微电子科技有限公司 | 两级嵌入式虚拟机管理程序架构及嵌入式系统 |
CN114880658A (zh) * | 2022-04-21 | 2022-08-09 | 华为技术有限公司 | 一种车辆中数据的处理方法以及相关设备 |
CN115269188A (zh) * | 2022-07-28 | 2022-11-01 | 江苏安超云软件有限公司 | 虚拟机智能内存回收方法和装置、电子设备和存储介质 |
CN115988217B (zh) * | 2023-03-14 | 2023-06-06 | 摩尔线程智能科技(北京)有限责任公司 | 一种虚拟化视频编解码系统、电子设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1882913A (zh) * | 2003-12-10 | 2006-12-20 | 英特尔公司 | 使用活动信息的虚拟机管理 |
CN101075198A (zh) * | 2006-05-17 | 2007-11-21 | 国际商业机器公司 | 提供两级服务器虚拟化的方法和系统 |
US7657659B1 (en) * | 2006-11-30 | 2010-02-02 | Vmware, Inc. | Partial copying of data to transmit buffer for virtual network device |
CN101667144A (zh) * | 2009-09-29 | 2010-03-10 | 北京航空航天大学 | 一种基于共享内存的虚拟机通信方法 |
CN102073535A (zh) * | 2011-01-11 | 2011-05-25 | 华中科技大学 | 基于硬件计数器虚拟化的多虚拟机性能分析方法 |
CN102754076A (zh) * | 2009-12-24 | 2012-10-24 | 英特尔公司 | 用于在虚拟化环境中处理i/o操作的方法和设备 |
CN104714849A (zh) * | 2013-12-12 | 2015-06-17 | 国际商业机器公司 | 用于在综合工作负载环境中实现最佳性能的系统和方法 |
-
2016
- 2016-12-29 CN CN201611246992.1A patent/CN106844007B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1882913A (zh) * | 2003-12-10 | 2006-12-20 | 英特尔公司 | 使用活动信息的虚拟机管理 |
CN101075198A (zh) * | 2006-05-17 | 2007-11-21 | 国际商业机器公司 | 提供两级服务器虚拟化的方法和系统 |
US7657659B1 (en) * | 2006-11-30 | 2010-02-02 | Vmware, Inc. | Partial copying of data to transmit buffer for virtual network device |
CN101667144A (zh) * | 2009-09-29 | 2010-03-10 | 北京航空航天大学 | 一种基于共享内存的虚拟机通信方法 |
CN102754076A (zh) * | 2009-12-24 | 2012-10-24 | 英特尔公司 | 用于在虚拟化环境中处理i/o操作的方法和设备 |
CN102073535A (zh) * | 2011-01-11 | 2011-05-25 | 华中科技大学 | 基于硬件计数器虚拟化的多虚拟机性能分析方法 |
CN104714849A (zh) * | 2013-12-12 | 2015-06-17 | 国际商业机器公司 | 用于在综合工作负载环境中实现最佳性能的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106844007A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106844007B (zh) | 一种基于空间复用的虚拟化方法与系统 | |
US10430226B2 (en) | Dynamic virtual machine sizing | |
US10162658B2 (en) | Virtual processor allocation techniques | |
US20200409732A1 (en) | Sharing multimedia physical functions in a virtualized environment on a processing unit | |
US10185514B2 (en) | Virtual machine trigger | |
US8776090B2 (en) | Method and system for network abstraction and virtualization for a single operating system (OS) | |
US11113782B2 (en) | Dynamic kernel slicing for VGPU sharing in serverless computing systems | |
CN108037994B (zh) | 一种支持异构环境下多核并行处理的调度机制 | |
US10409633B2 (en) | Hypervisor-visible guest thread management | |
CN107479943B (zh) | 基于工业互联网操作系统的多操作系统运行方法及装置 | |
US8051281B2 (en) | Operating system startup control method and information processing apparatus | |
US11579908B2 (en) | Containerized workload scheduling | |
WO2023050819A1 (zh) | 片上系统、虚拟机任务处理方法及设备、存储介质 | |
US20170024231A1 (en) | Configuration of a computer system for real-time response from a virtual machine | |
US20220156103A1 (en) | Securing virtual machines in computer systems | |
WO2018040845A1 (zh) | 一种计算资源调度方法及装置 | |
CN115280285A (zh) | 由独立操作的多个调度器在公共资源集上调度工作负载 | |
US11720388B2 (en) | Management of dynamic sharing of central processing units | |
US20170315835A1 (en) | Configuring host devices | |
US11182183B2 (en) | Workload placement using conflict cost | |
Dey et al. | Vagabond: Dynamic network endpoint reconfiguration in virtualized environments | |
US20230229476A1 (en) | Flexible infrastructure for provisioning virtual computing instances | |
US20200319940A1 (en) | Management of dynamic sharing of central processing units | |
US11614973B2 (en) | Assigning devices to virtual machines in view of power state information | |
CN116263691A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |