CN104951694A - 一种管理虚拟机的隔离方法及装置 - Google Patents

一种管理虚拟机的隔离方法及装置 Download PDF

Info

Publication number
CN104951694A
CN104951694A CN201410110050.5A CN201410110050A CN104951694A CN 104951694 A CN104951694 A CN 104951694A CN 201410110050 A CN201410110050 A CN 201410110050A CN 104951694 A CN104951694 A CN 104951694A
Authority
CN
China
Prior art keywords
virtual machine
serviced component
kernel
customer
virtual machines
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.)
Granted
Application number
CN201410110050.5A
Other languages
English (en)
Other versions
CN104951694B (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 CN201410110050.5A priority Critical patent/CN104951694B/zh
Priority to EP14870659.1A priority patent/EP2940615B1/en
Priority to PCT/CN2014/078095 priority patent/WO2015143766A1/zh
Priority to US14/795,225 priority patent/US9971623B2/en
Publication of CN104951694A publication Critical patent/CN104951694A/zh
Application granted granted Critical
Publication of CN104951694B publication Critical patent/CN104951694B/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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/45587Isolation or security of virtual machine instances

Abstract

本发明提供一种管理虚拟机的隔离方法及装置,涉及计算机技术领域,解决了服务组件之间的通信性能下降,增加了虚拟机运行所需的资源,以及服务组件的安全性较低的问题。该方法包括:获取客户标识;根据客户标识,在管理虚拟机中查找与客户标识对应的内核虚拟机;若在管理虚拟机中未查找到内核虚拟机,则在管理虚拟机中创建内核虚拟机;将内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,客户虚拟机为与客户标识对应的虚拟机;将多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,内核虚拟机包括多个执行环境,多个执行环境分别具有不同的权限。

Description

一种管理虚拟机的隔离方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种管理虚拟机的隔离方法及装置。
背景技术
近年来,随着云计算的发展,作为其基础支撑技术之一的虚拟化技术也得到了广泛应用。利用虚拟化技术可以实现在一台物理主机上同时运行多个虚拟机,这样,可以提高资源的利用率和分配灵活性,但是同时也带来了安全隐患。如若一个虚拟机由于漏洞而影响到底层的虚拟机监控器(VMM,Virtual Machine Monitor),则同一物理主机上的其他虚拟机均会受到影响。
目前常用的Xen虚拟化系统中的物理主机都包含两个关键组件:Hypervisor(虚拟机管理器)和domain-0(Xen平台的管理虚拟机),其中,由于大量的漏洞一般会出现在domain-0的代码中,因此,为了避免一个虚拟机的漏洞影响该虚拟机所处的物理主机上的其他虚拟机,对domain-0进行隔离并保证domain-0的安全已成为一个亟待解决的问题。
现有技术中,可通过将domain-0中的某些服务组件从domain-0中分离出来,并将该某些服务组件分别放入其他不同的独立虚拟机中运行,以实现domain-0中该某些服务组件之间的隔离,从而保证domain-0的安全。
然而,上述通过不同虚拟机保证domain-0安全的方法中,一方面,由于domain-0中的某些服务组件之间的通信方式由原来的进程间通信变为虚拟机间通信,从而导致该某些服务组件之间的通信性能下降,且增加了虚拟机运行所需的资源;另一方面,由于未涉及到服务组件的级别,因此,导致domain-0中服务组件的安全性较低。
发明内容
本发明的实施例提供一种管理虚拟机的隔离方法及装置,解决了服务组件之间的通信性能较差,虚拟机运行所需的资源较多,以及服务组件的安全性较低的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明提供一种管理虚拟机的隔离方法,包括:
获取客户标识;
根据所述客户标识,在所述管理虚拟机中查找与所述客户标识对应的内核虚拟机;
若在所述管理虚拟机中未查找到所述内核虚拟机,则在所述管理虚拟机中创建所述内核虚拟机;
将所述内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,所述客户虚拟机为与所述客户标识对应的虚拟机;
将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,所述内核虚拟机包括多个执行环境,所述多个执行环境分别具有不同的权限。
在第一方面的第一种可能的实现方式中,若在所述管理虚拟机中查找到所述内核虚拟机,则所述方法还包括:
由所述内核虚拟机获取虚拟机管理器发送的指示消息,所述指示消息为所述客户虚拟机发送至所述虚拟机管理器,并由所述虚拟机管理器根据所述指示消息中携带的所述客户标识,确定出与所述客户标识对应的所述内核虚拟机后向所述内核虚拟机所发送的,所述指示消息用于指示所述客户虚拟机所需的服务;
由所述内核虚拟机根据所述指示消息中携带的服务请求信息响应所述客户虚拟机所需的服务。
在第一方面的第二种可能的实现方式中,所述获取客户标识,包括:
获取请求消息,所述请求消息中携带所述客户标识,所述请求消息用于请求创建所述客户虚拟机;
从所述请求消息中获取所述客户标识;
所述方法还包括:
根据所述请求消息创建与所述客户标识对应的所述客户虚拟机。
结合前述的第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,所述将所述内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,包括:
根据所述内核虚拟机的功能,将所述服务的代码分解为多个功能代码块;
将所述多个功能代码块分别运行于多个服务进程中,以形成多个服务组件,其中,所述多个功能代码块与所述多个服务进程一一对应。
结合前述的第一方面或第一方面的第一种可能的实现方式至第三种可能的实现方式中的任一种实现方式,在第四种可能的实现方式中,所述将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,包括:
根据所述多个服务组件的权限,对所述多个服务组件进行分组,以使得不同分组的服务组件具有不同的权限;
将所述多个服务组件中的不同分组的服务组件分别运行在与该组服务组件所具有的权限对应的执行环境中。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述多个服务组件的权限是通过如下方法来确定的:
获取所述多个服务组件的系统参数;
根据所述多个服务组件的系统参数,分别确定与所述多个服务组件的系统参数对应的所述多个服务组件的权限。
结合前述的第一方面或第一方面的第一种可能的实现方式至第五种可能的实现方式中的任一种实现方式,在第六种可能的实现方式中,所述将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,所述方法还包括:
根据预设策略,对所述多个服务组件的权限进行限制,其中,所述预设策略包括访问操作和控制操作中的至少一个。
结合前述的第一方面或第一方面的第一种可能的实现方式至第六种可能的实现方式中的任一种实现方式,在第七种可能的实现方式中,所述将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,所述方法还包括:
监控所述多个服务组件的运行状态;
当所述多个服务组件中的一个服务组件的运行状态发生错误时,重启所述一个服务组件。
结合前述的第一方面或第一方面的第一种可能的实现方式至第七种可能的实现方式中的任一种实现方式,在第八种可能的实现方式中,所述将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,所述方法还包括:
根据预设时间,分别对应周期性地重启所述多个服务组件中的每个服务组件,所述预设时间为与所述每个服务组件分别对应的预设时间。
结合前述的第一方面或第一方面的第一种可能的实现方式至第八种可能的实现方式中的任一种实现方式,在第九种可能的实现方式中,所述在所述管理虚拟机中创建所述内核虚拟机包括:
根据内核虚拟化技术,在所述管理虚拟机中创建与所述客户标识对应的内核虚拟化容器;
将所述管理虚拟机为所述客户虚拟机提供的服务设置于所述内核虚拟化容器中,以创建所述内核虚拟机。
结合前述的第一方面或第一方面的第一种可能的实现方式至第九种可能的实现方式中的任一种实现方式,在第十种可能的实现方式中,
所述多个服务组件之间的通信方式为进程间通信。
结合前述的第一方面或第一方面的第一种可能的实现方式至第十种可能的实现方式中的任一种实现方式,在第十一种可能的实现方式中,
所述多个服务组件包括:虚拟机启动服务组件、虚拟机管理工具集组件、虚拟机设备模拟组件、虚拟机创建工具组件、虚拟机后端驱动组件及Xen存储组件中的至少一个。
第二方面,本发明提供一种管理虚拟机,包括:隔离模块和至少一个内核虚拟机,其中,所述隔离模块用于:
获取客户标识;
根据所述客户标识,在所述管理虚拟机中的所述至少一个内核虚拟机中查找与所述客户标识对应的内核虚拟机;
若在所述至少一个内核虚拟机中未查找到所述内核虚拟机,则在所述管理虚拟机中创建所述内核虚拟机;
将所述内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,所述客户虚拟机为与所述客户标识对应的虚拟机;
将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,所述内核虚拟机包括多个执行环境,所述多个执行环境分别具有不同的权限。
在第二方面的第一种可能的实现方式中,
所述内核虚拟机,还用于若所述隔离模块在所述管理虚拟机中查找到所述内核虚拟机,则获取虚拟机管理器发送的指示消息,并根据所述指示消息中携带的服务请求信息响应所述客户虚拟机所需的服务,所述指示消息为所述客户虚拟机发送至所述虚拟机管理器,并由所述虚拟机管理器根据所述指示消息中携带的所述客户标识,确定出与所述客户标识对应的所述内核虚拟机后向所述内核虚拟机所发送的,所述指示消息用于指示所述客户虚拟机所需的服务。
在第二方面的第二种可能的实现方式中,
所述隔离模块,具体用于获取请求消息,并从所述请求消息中获取所述客户标识,以及根据所述请求消息创建与所述客户标识对应的所述客户虚拟机,所述请求消息中携带所述客户标识,所述请求消息用于请求创建所述客户虚拟机。
结合前述的第二方面或第二方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第三种可能的实现方式中,
所述隔离模块,具体用于根据所述内核虚拟机的功能,将所述服务的代码分解为多个功能代码块,并将所述多个功能代码块分别运行于多个服务进程中,以形成多个服务组件,其中,所述多个功能代码块与所述多个服务进程一一对应。
结合前述的第二方面或第二方面的第一种可能的实现方式至第三种可能的实现方式中的任一种实现方式,在第四种可能的实现方式中,
所述隔离模块,具体用于根据所述多个服务组件的权限,对所述多个服务组件进行分组,以使得不同分组的服务组件具有不同的权限,并将所述多个服务组件中的不同分组的服务组件分别运行在与该组服务组件所具有的权限对应的执行环境中。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,
所述隔离模块,还用于获取所述多个服务组件的系统参数,并根据所述多个服务组件的系统参数,分别确定与所述多个服务组件的系统参数对应的所述多个服务组件的权限。
结合前述的第二方面或第二方面的第一种可能的实现方式至第五种可能的实现方式中的任一种实现方式,在第六种可能的实现方式中,
所述隔离模块,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,根据预设策略,对所述多个服务组件的权限进行限制,其中,所述预设策略包括访问操作和控制操作中的至少一个。
结合前述的第二方面或第二方面的第一种可能的实现方式至第六种可能的实现方式中的任一种实现方式,在第七种可能的实现方式中,
所述隔离模块,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,监控所述多个服务组件的运行状态,并当所述多个服务组件中的一个服务组件的运行状态发生错误时,重启所述一个服务组件。
结合前述的第二方面或第二方面的第一种可能的实现方式至第七种可能的实现方式中的任一种实现方式,在第八种可能的实现方式中,
所述隔离模块,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,根据预设时间,分别对应周期性地重启所述多个服务组件中的每个服务组件,所述预设时间为与所述每个服务组件分别对应的预设时间。
结合前述的第二方面或第二方面的第一种可能的实现方式至第八种可能的实现方式中的任一种实现方式,在第九种可能的实现方式中,
所述隔离模块,具体用于根据内核虚拟化技术,在所述管理虚拟机中创建与所述客户标识对应的内核虚拟化容器,并将所述管理虚拟机为所述客户虚拟机提供的服务设置于所述内核虚拟化容器中,以创建所述内核虚拟机。
结合前述的第二方面或第二方面的第一种可能的实现方式至第九种可能的实现方式中的任一种实现方式,在第十种可能的实现方式中,
所述多个服务组件之间的通信方式为进程间通信。
结合前述的第二方面或第二方面的第一种可能的实现方式至第十种可能的实现方式中的任一种实现方式,在第十一种可能的实现方式中,
所述多个服务组件包括:虚拟机启动服务组件、虚拟机管理工具集组件、虚拟机设备模拟组件、虚拟机创建工具组件、虚拟机后端驱动组件及Xen存储组件中的至少一个。
第三方面,本发明提供一种服务器,所述服务器上运行有如第二方面所述的管理虚拟机和与每个客户标识分别对应的至少一个客户虚拟机,所述管理虚拟机中包括与所述每个客户标识一一对应的内核虚拟机,其中,一个内核虚拟机为与一个客户标识对应的至少一个客户虚拟机提供服务。
本发明提供的管理虚拟机的隔离方法及装置,通过获取客户标识,并根据该客户标识,在管理虚拟机中查找与该客户标识对应的内核虚拟机,若在该管理虚拟机中未查找到该内核虚拟机,则在该管理虚拟机中创建该内核虚拟机,且将该内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,该客户虚拟机为与该客户标识对应的虚拟机,以及将多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,该内核虚拟机包括多个执行环境,该多个执行环境分别具有不同的权限。通过该方案,由于可通过在管理虚拟机中分别创建与各个客户标识对应的内核虚拟机,并将内核虚拟机为客户虚拟机提供的多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,以实现对管理虚拟机进行纵向内核虚拟化层隔离和横向服务层隔离,因此,可以使得与所有客户标识对应,且具有不同权限的服务组件仍然能够运行在同一个管理虚拟机中,从而提升服务组件之间的通信性能,降低虚拟机运行所需的资源,以及增强服务组件的安全性。
附图说明
图1为本发明实施例提供的一种管理虚拟机的隔离方法的流程图一;
图2为现有技术提供的服务器的结构示意图;
图3为本发明实施例提供的服务器的结构示意图一;
图4为本发明实施例提供的一种管理虚拟机的隔离方法的流程图二;
图5为本发明实施例提供的一种管理虚拟机的隔离方法的流程图三;
图6为本发明实施例提供的一种管理虚拟机的隔离方法的流程图四;
图7为本发明实施例提供的管理虚拟机的结构示意图;
图8为本发明实施例提供的服务器的结构示意图二;
图9为本发明实施例提供的Xen虚拟化系统的结构示意图;
图10为本发明实施例中内核虚拟机提供的服务模块的示意图。
具体实施方式
下面结合附图对本发明实施例提供的一种管理虚拟机的隔离方法及装置进行详细地描述。
本发明实施例提供的管理虚拟机的隔离方法,通过对管理虚拟机分别进行纵向内核虚拟化层隔离和横向服务层隔离,而使得在保证管理虚拟机安全的基础上,提升服务组件之间的通信性能,降低虚拟机运行所需的资源,以及增强服务组件的安全性。
进一步地,由于本发明实施例提供的管理虚拟机的隔离方法是基于服务器在管理虚拟机上实现的,因此,本发明实施例提供的管理虚拟机的隔离方法的执行主体可以为服务器,以下实施例均以Xen虚拟化系统为例,以服务器为执行主体对本发明实施例提供的管理虚拟机的隔离方法进行详细地说明。
实施例一
本发明实施例提供一种管理虚拟机的隔离方法,如图1所示,该方法可以包括:
S101、服务器获取客户标识。
现有技术中,一台服务器能够实现一个Xen虚拟化系统,其中,如图2所示,该服务器上运行有一个虚拟机管理器和与每个客户标识分别对应的至少一个客户虚拟机,该虚拟机管理器可用于管理该多个客户虚拟机。为了减轻虚拟机管理器的负担,可再创建一个新的虚拟机以用于协助该虚拟机管理器对该多个客户虚拟机的管理,而该新的虚拟机则被称为管理虚拟机,即domain-0。其中,domain-0是一个完整的Linux系统,主要负责创建客户虚拟机、删除客户虚拟机、修改客户虚拟机、管理客户虚拟机,以及运行服务器上的外接设备的驱动,domain-0中运行有针对所有客户虚拟机的服务,该服务可用于为这些客户虚拟机提供基础性服务,如虚拟机启动服务、虚拟机管理服务、虚拟机设备模拟服务、虚拟机创建工具服务、虚拟机后端驱动服务及Xen存储服务等。
其中,服务是由一个接口定义的一组操作,且此接口可供其他模块调用。
示例性的,当某个客户需要在某台服务器上新创建一个客户虚拟机时,该客户可发送创建虚拟机请求消息至该服务器,从而该服务器在接收到该创建虚拟机请求消息之后,该服务器可根据该创建虚拟机请求消息在该服务器上新创建一个客户虚拟机,其中,该创建虚拟机请求消息中携带该客户的客户标识。
特别的,本发明实施例中,客户可以理解为拥有某个客户标识的一个用户或租户,即一个客户对应一个客户标识。
本发明实施例中,服务器在接收到该创建虚拟机请求消息之后,服务器可从该创建虚拟机请求消息中获取到该客户标识,其中,该客户标识可以为该客户ID(IDentity,序列号),具体的,该客户标识可以为该客户拥有的一个账号。例如,该客户标识可以为该客户登陆到云计算平台的一个登陆账号。
S102、服务器根据客户标识,在管理虚拟机中查找与客户标识对应的内核虚拟机。
服务器获取到客户标识之后,服务器可根据该客户标识,在管理虚拟机,即domain-0中查找是否存在与该客户标识对应的内核虚拟机。
S103、若服务器在管理虚拟机中未查找到该内核虚拟机,服务器则在管理虚拟机中创建该内核虚拟机。
服务器在domain-0中查找与该客户标识对应的内核虚拟机之后,若服务器在domain-0中未查找到该内核虚拟机,服务器则可在domain-0中创建该内核虚拟机。
需要说明的是,对于不同的客户标识(也可理解为客户),服务器可通过重复执行上述步骤,即服务器可利用内核虚拟化技术,通过在domain-0中创建对应于不同客户标识的内核虚拟机,以将该domain-0中为与不同客户标识对应的客户虚拟机提供的服务进行隔离。
进一步地,服务器创建该内核虚拟机之后,该内核虚拟机则可为该客户请求创建的该客户虚拟机提供基础性服务。可以理解的是,当服务器在domain-0中分别创建了对应于不同客户标识的不同内核虚拟机之后,其中每个内核虚拟机可只为与其对应的客户标识对应的客户虚拟机提供基础性服务,这样,当domain-0中某个内核虚拟机出现漏洞时,只会影响到由该内核虚拟机提供基础性服务的客户虚拟机,而不会影响domain-0中由其他内核虚拟机提供基础性服务的其他客户虚拟机。
进一步地,由于domain-0中创建的内核虚拟机可为客户虚拟机提供基础性服务,因此,当某个客户请求在服务器上创建多个与该客户的客户标识对应的客户虚拟机时,服务器可只在该客户请求创建第一个与该客户标识对应的客户虚拟机时,在domain-0中创建与该客户标识对应的内核虚拟机,而在该客户请求创建其他的与该客户标识对应的客户虚拟机时,服务器则无需再在domain-0中创建与该客户标识对应的内核虚拟机,而只需使用已创建的与该客户标识对应的内核虚拟机为与该客户标识对应的其他客户虚拟机提供基础性服务即可。即一个内核虚拟机可为与一个客户标识对应的所有客户虚拟机提供基础性服务,也就是说,一个内核虚拟机可为一个客户的所有客户虚拟机提供基础性服务。
可以理解的是,本发明实施例中,一个客户标识对应一个内核虚拟机,该一个客户标识对应至少一个客户虚拟机,该一个内核虚拟机可为该至少一个客户虚拟机提供服务。
至此,服务器对domain-0中为与不同客户标识对应的客户虚拟机提供的基础性服务进行了纵向内核虚拟化层隔离。
S104、服务器将该内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,该客户虚拟机为与该客户标识对应的虚拟机。
服务器在domain-0中创建内核虚拟机之后,服务器可将该内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,其中,该客户虚拟机为与该客户标识对应的虚拟机。
进一步地,服务器可根据内核虚拟机为该客户虚拟机提供的服务的功能,将该服务分解为多个不同的服务组件。
S105、服务器将该多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,该内核虚拟机包括多个执行环境,该多个执行环境分别具有不同的权限。
服务器将该内核虚拟机为该客户虚拟机提供的服务分解为多个服务组件之后,服务器可将该多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,即服务器将具有不同权限的服务组件分别运行在不同的执行环境中,其中,该内核虚拟机包括多个执行环境,该多个执行环境中的每个执行环境具有不同的权限。
需要说明的是,如图3所示,本发明实施例提供的管理虚拟机的隔离方法,是通过在服务器上创建两层虚拟机,并将domain-0中为与不同客户标识对应的客户虚拟机提供基础性服务的多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中而实现的,即首先在服务器上创建domain-0,然后再在domain-0中创建针对不同客户标识的内核虚拟机,并将这些内核虚拟机提供基础性服务的多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,从而使得不同的客户标识对应不同的内核虚拟机,进而将为与不同客户标识对应的客户虚拟机提供的基础性服务进行纵向内核虚拟化层隔离,以形成与不同客户标识分别对应的逻辑域,并将提供基础性服务的该多个服务组件进行横向服务层隔离,以形成不同的服务组。
示例性的,如图3所示,假设本发明实施例提供的实现Xen虚拟化系统的服务器上运行有三个客户虚拟机,分别为客户虚拟机A、客户虚拟机B和客户虚拟机C;通过本发明实施例提供的管理虚拟机的隔离方法,可将domain-0中为与客户标识A对应的所有客户虚拟机、与客户标识B对应的所有客户虚拟机和与客户标识C对应的所有客户虚拟机提供的基础性服务分别通过纵向内核虚拟化层隔离,以形成与客户标识A对应的逻辑域A、与客户标识B对应的逻辑域B、以及与客户标识C对应的逻辑域C,并将提供基础性服务的该多个服务组件通过横向服务层隔离,即将该多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,以形成不同的服务组,如普通服务组和特权服务组。
可选的,本发明实施例提供的管理虚拟机的隔离方法中,具有最高权限的管理员可随时指示服务器根据实际需求对该多个服务组件中的任意一个服务组件运行的执行环境进行调整,即对该多个服务组件所具有的权限进行调整,以重新隔离该多个服务组件,本发明不作限制。
本发明实施例提供一种管理虚拟机的隔离方法,通过获取客户标识,并根据该客户标识,在管理虚拟机中查找与该客户标识对应的内核虚拟机,若在该管理虚拟机中未查找到该内核虚拟机,则在该管理虚拟机中创建该内核虚拟机,且将该内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,该客户虚拟机为与该客户标识对应的虚拟机,以及将多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,该内核虚拟机包括多个执行环境,该多个执行环境分别具有不同的权限。通过该方案,由于可通过在管理虚拟机中分别创建与各个客户标识对应的内核虚拟机,并将内核虚拟机为客户虚拟机提供的多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,以实现对管理虚拟机进行纵向内核虚拟化层隔离和横向服务层隔离,因此,可以使得与所有客户标识对应,且具有不同权限的服务组件仍然能够运行在同一个管理虚拟机中,从而提升服务组件之间的通信性能,降低虚拟机运行所需的资源,以及增强服务组件的安全性。
实施例二
本发明实施例提供一种管理虚拟机的隔离方法,如图4所示,该方法可以包括:
S201、服务器获取请求消息,该请求消息中携带客户标识,该请求消息用于请求服务器创建与该客户标识对应的客户虚拟机。
现有技术中,一台服务器能够实现一个Xen虚拟化系统,其中,如图2所示,该服务器上运行有一个虚拟机管理器和与每个客户标识分别对应的至少一个客户虚拟机,该虚拟机管理器可用于管理该多个客户虚拟机。为了减轻虚拟机管理器的负担,可再创建一个新的虚拟机以用于协助该虚拟机管理器对该多个客户虚拟机的管理,而该新的虚拟机则被称为管理虚拟机,即domain-0。其中,domain-0是一个完整的Linux系统,主要负责创建客户虚拟机、删除客户虚拟机、修改客户虚拟机、管理客户虚拟机,以及运行服务器上的外接设备的驱动,domain-0中运行有针对所有客户虚拟机的服务,该服务可用于为这些客户虚拟机提供基础性服务,如虚拟机启动服务、虚拟机管理服务、虚拟机设备模拟服务、虚拟机创建工具服务、虚拟机后端驱动服务及Xen存储服务等。
其中,服务是由一个接口定义的一组操作,且此接口可供其他模块调用。
示例性的,当某个客户需要在某台服务器上新创建一个客户虚拟机时,该客户可发送请求消息,即创建虚拟机请求消息至该服务器,其中,该创建虚拟机请求消息中携带客户标识,该创建虚拟机请求消息可用于请求服务器创建与该客户标识对应的客户虚拟机。
特别的,本发明实施例中,客户可以理解为拥有某个客户标识的一个用户或租户,即一个客户对应一个客户标识。
S202、服务器从该请求消息中获取客户标识。
服务器在接收到该请求消息之后,服务器可从该请求消息中获取该客户标识,其中,该客户标识可以为该客户ID,具体的,该客户标识可以为该客户拥有的一个账号。例如,该客户标识可以为该客户登陆到云计算平台的一个登陆账号。
S203、服务器根据该请求消息,创建客户虚拟机。
服务器在接收到该请求消息之后,服务器可根据该请求消息在该服务器上新创建一个客户虚拟机,该客户虚拟机为与该客户标识对应的虚拟机,即为拥有该客户标识的客户请求创建的虚拟机。
需要说明的是,本发明可以不限制S202和S203的执行顺序,即本发明可以先执行S202,后执行S203;也可以先执行S203,后执行S202;还可以同时执行S202和S203。
S204、服务器根据该客户标识,在管理虚拟机中查找与该客户标识对应的内核虚拟机。
服务器获取到客户标识之后,服务器可根据该客户标识,在管理虚拟机,即domain-0中查找是否存在与该客户标识对应的内核虚拟机。
S205、若服务器在管理虚拟机中未查找到该内核虚拟机,服务器则在管理虚拟机中创建该内核虚拟机。
服务器在domain-0中查找与该客户标识对应的内核虚拟机之后,若服务器在domain-0中未查找到该内核虚拟机,服务器则可在domain-0中创建该内核虚拟机。
需要说明的是,对于不同的客户标识(也可理解为客户),服务器可通过重复执行上述步骤,即服务器可利用内核虚拟化技术,通过在domain-0中创建对应于不同客户标识的内核虚拟机,以将该domain-0中为与不同客户标识对应的客户虚拟机提供的服务进行隔离。
进一步地,服务器创建该内核虚拟机之后,该内核虚拟机则可为该客户请求创建的该客户虚拟机提供基础性服务。可以理解的是,当服务器在domain-0中分别创建了对应于不同客户标识的不同内核虚拟机之后,其中每个内核虚拟机可只为与其对应的客户标识对应的客户虚拟机提供基础性服务,这样,当domain-0中某个内核虚拟机出现漏洞时,只会影响到由该内核虚拟机提供基础性服务的客户虚拟机,而不会影响domain-0中由其他内核虚拟机提供基础性服务的其他客户虚拟机。
进一步地,由于domain-0中创建的内核虚拟机可为客户虚拟机提供基础性服务,因此,当某个客户请求在服务器上创建多个与该客户的客户标识对应的客户虚拟机时,服务器可只在该客户请求创建第一个与该客户标识对应的客户虚拟机时,在domain-0中创建与该客户标识对应的内核虚拟机,而在该客户请求创建其他的与该客户标识对应的客户虚拟机时,服务器则无需再在domain-0中创建与该客户标识对应的内核虚拟机,而只需使用已创建的与该客户标识对应的内核虚拟机为与该客户标识对应的其他客户虚拟机提供基础性服务即可。即一个内核虚拟机可为与一个客户标识对应的所有客户虚拟机提供基础性服务,也就是说,一个内核虚拟机可为一个客户的所有客户虚拟机提供基础性服务。
可以理解的是,本发明实施例中,一个客户标识对应一个内核虚拟机,该一个客户标识对应至少一个客户虚拟机,该一个内核虚拟机可为该至少一个客户虚拟机提供服务。
具体的,服务器创建该内核虚拟机的方法可以包括:
(1)服务器根据内核虚拟化技术,在domain-0中创建与该客户标识对应的内核虚拟化容器。
(2)服务器将domain-0为与该客户标识对应的客户虚拟机提供的服务设置于该内核虚拟化容器中,以创建该内核虚拟机。
本发明实施例提供的管理虚拟机的隔离方法中,服务器具体可以利用LXC(Linux Container,一种内核虚拟化技术),通过在domain-0中创建对应于不同客户标识的内核虚拟机,以将该domain-0中为与不同客户标识对应的客户虚拟机提供的服务进行隔离。其中,LXC为一种轻量级的内核虚拟化技术,其基于Linux系统内核的cgroups(ControlGroups,控制群组)机制实现。本发明实施例中,服务器可采用LXC,对domain-0中为与不同客户标识对应的客户虚拟机提供的服务进行逻辑上的划分和隔离,并进行资源的分配和管理,从而以形成对应于不同客户标识的逻辑域,其中,每个逻辑域对应一个内核虚拟机、一个客户标识和与该一个客户标识对应的至少一个客户虚拟机。
进一步地,本发明实施例中,服务器可利用LXC,在domain-0中创建对应于不同客户标识的LXC容器,并将domain-0中为与不同客户标识对应的客户虚拟机提供的基础性服务分别放入对应的LXC容器中进行隔离,从而分别形成对应于不同客户标识的内核虚拟机。这样,由于domain-0中与每个客户标识对应的客户虚拟机所需要服务都被约束到一个对应的LXC容器中,因此,可以通过LXC容器和Xen虚拟化系统的协同合作,将domain-0中为与不同客户标识对应的客户虚拟机提供的基础性服务进行有效的隔离。
至此,服务器对domain-0中为与不同客户标识对应的客户虚拟机提供的基础性服务进行了纵向内核虚拟化层隔离。
S206、服务器根据该内核虚拟机的功能,将该内核虚拟机为该客户虚拟机提供的服务的代码分解为多个功能代码块。
服务器创建该内核虚拟机之后,服务器可根据该内核虚拟机的功能,将该内核虚拟机为该客户虚拟机提供的服务的代码分解为多个功能代码块。
S207、服务器将该多个功能代码块分别运行于多个服务进程中,以形成多个服务组件,其中,多个功能代码块与多个服务进程一一对应。
服务器将该服务的代码分解为多个功能代码块之后,服务器可将该多个功能代码块分别运行于多个服务进程中,以形成多个服务组件,其中,该多个功能代码块与该多个服务进程一一对应。
特别的,本发明实施例中,该多个服务组件之间的通信方式可以为进程间通信。与现有技术中为了保证domain-0的安全性而使得服务组件之间的通信方式为虚拟机间通信相比,本发明实施例能够在保证domain-0的安全性的基础上,通过该多个服务组件之间进行进程间通信而提升服务组件之间的通信性能。
进一步地,本发明实施例提供的该多个服务组件可以包括:虚拟机启动服务组件、虚拟机管理工具集组件、虚拟机设备模拟组件、虚拟机创建工具组件、虚拟机后端驱动组件及Xen存储组件中的至少一个。
S208、服务器根据该多个服务组件的权限,对该多个服务组件进行分组,以使得不同分组的服务组件具有不同的权限。
服务器将该内核虚拟机为该客户虚拟机提供的服务形成多个服务组件之后,服务器可根据该多个服务组件所具有的权限,对该多个服务组件进行分组,以使得不同分组,即处于不同组的服务组件具有不同的权限,从而实现该多个服务组件之间的隔离。
可选的,上述该多个服务组件的权限还可以为该多个服务组件的级别等其他任意满足分组需求的属性,本发明不作限制。
进一步地,该多个服务组件的权限可以包括Root权限和普通权限。具体的,本发明不限制该多个服务组件的权限种类,对于能够实现对该多个服务组件进行分类的权限种类,都在本发明的保护范围之内。
需要说明的是,服务器在根据该多个服务组件的权限对该多个服务组件进行分组之前,服务器需先确定该多个服务组件的权限。其中,该多个服务组件的权限是通过如下方法来确定的:
(1)服务器获取该多个服务组件的系统参数。
(2)服务器可根据该多个服务组件的系统参数,分别确定与该多个服务组件的系统参数对应的该多个服务组件的权限。
可选的,该多个服务组件的系统参数可以包括:该多个服务组件的功能、该多个服务组件使用的系统资源或该多个服务组件所需的最高权限等。
S209、服务器将该多个服务组件中的不同分组的服务组件分别运行在与该组服务组件所具有的权限对应的执行环境中,其中,该内核虚拟机包括多个执行环境,该多个执行环境分别具有不同的权限。
服务器对该多个服务组件进行分组之后,服务器可将该多个服务组件中的不同分组的服务组件分别运行在与该组服务组件所具有的权限对应的执行环境中,即服务器将具有不同权限的每组服务组件分别运行在不同的执行环境中,其中,该内核虚拟机包括多个执行环境,该多个执行环境分别具有不同的权限,具体的,该多个执行环境中的每个执行环境均具有不同的权限。
示例性的,若服务器确定某些服务组件的权限为普通权限,另外一些服务组件的权限为特权权限,则服务器可根据这些服务组件的权限对这些服务组件进行分组,并将具有普通权限,即属于普通服务组的某些服务组件运行在普通的执行环境中,将具有特权权限,即属于特权服务组的另外一些服务组件运行在特权的执行环境中,从而使得具有不同权限的服务组件可以运行在不同的执行环境中。这样,可以使得大部分服务组件运行在普通的执行环境中,而只有很小一部分服务组件运行在特权的执行环境中,从而缩减了TCB(Trusted ComputingBase,计算机内保护装置的总体)的大小,使得服务组件的权限泄露的可能性大大降低。
需要说明的是,如图3所示,本发明实施例提供的管理虚拟机的隔离方法,是通过在服务器上创建两层虚拟机,并将domain-0中为与不同客户标识对应的客户虚拟机提供基础性服务的多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中而实现的,即首先在服务器上创建domain-0,然后再在domain-0中创建针对不同客户标识的内核虚拟机,并将这些内核虚拟机提供基础性服务的多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,从而使得不同的客户标识对应不同的内核虚拟机,进而将为与不同客户标识对应的客户虚拟机提供的基础性服务进行纵向内核虚拟化层隔离,以形成与不同客户标识分别对应的逻辑域,并将提供基础性服务的该多个服务组件进行横向服务层隔离,以形成不同的服务组。
示例性的,如图3所示,假设本发明实施例提供的实现Xen虚拟化系统的服务器上运行有三个客户虚拟机,分别为客户虚拟机A、客户虚拟机B和客户虚拟机C;通过本发明实施例提供的管理虚拟机的隔离方法,可将domain-0中为与客户标识A对应的所有客户虚拟机、与客户标识B对应的所有客户虚拟机和与客户标识C对应的所有客户虚拟机提供的基础性服务分别通过纵向内核虚拟化层隔离,以形成与客户标识A对应的逻辑域A、与客户标识B对应的逻辑域B、以及与客户标识C对应的逻辑域C,并将提供基础性服务的该多个服务组件通过横向服务层隔离,即将该多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,以形成不同的服务组,如普通服务组和特权服务组。
可选的,本发明实施例提供的管理虚拟机的隔离方法中,具有最高权限的管理员可随时指示服务器根据实际需求对该多个服务组件中的任意一个服务组件运行的执行环境进行调整,即对该多个服务组件所具有的权限进行调整,以重新隔离该多个服务组件,本发明不作限制。
可选的,如图5所示,本发明实施例提供的管理虚拟机的隔离方法,在S209,即服务器将该多个服务组件中的不同分组的服务组件分别运行在与该组服务组件所具有的权限对应的执行环境中之后,该方法还可以包括:
S210、服务器根据预设策略,对该多个服务组件的权限进行限制,其中,该预设策略包括访问操作和控制操作中的至少一个。
服务器将该多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,服务器还可对该多个服务组件的权限进行进一步的限制,即服务器可根据预设策略,对该多个服务组件的权限进行进一步的限制。
其中,预设策略可以为一种策略控制方法,该策略控制方法具体可以包括访问操作和控制操作中的至少一个,且该策略控制方法可以根据实际使用需求通过软件的方式实现,本发明不作限制。
具体的,访问操作可以为读操作、写操作、插入操作、删除操作及修改操作等中的至少一个;控制操作可以为关闭操作和打开操作等中的至少一个。例如,可以为某个服务组件设置上述的访问操作,以进一步限制该某个服务组件的访问权限;也可以为该某个服务组件设置上述的控制操作,以进一步限制该某个服务组件的控制权限。
示例性的,服务器可通过本发明实施例提供的策略控制方法对该多个服务组件的权限进行进一步的限制,如可进一步通过软件的方式限制该多个服务组件中某些服务组件的访问操作等。
S211、服务器监控该多个服务组件的运行状态。
服务器将该多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,服务器可监控该多个服务组件的运行状态。
S212、当该多个服务组件中的一个服务组件的运行状态发生错误时,服务器重启该一个服务组件。
在服务器监控该多个服务组件的过程中,当该多个服务组件中的一个服务组件的运行状态发生错误时,服务器可重启该一个服务组件。
需要说明的是,本发明不限制S210和S211-S212的执行顺序,即本发明可以先执行S210,后执行S211-S212;也可以先执行S211-S212,后执行S210;还可以同时执行S210和S211-S212。
S213、服务器根据预设时间,分别对应周期性地重启该多个服务组件中的每个服务组件,该预设时间为与该每个服务组件分别对应的预设时间。
服务器运行该多个服务组件的过程中,服务器可根据预设时间,分别对应周期性地重启该多个服务组件中的每个服务组件,其中,该预设时间为与该每个服务组件分别对应的预设时间。
具体的,可以为该多个服务组件设定一个重启周期,即上述的预设时间;也可以为该多个服务组件中的部分服务组件设定一个预设时间,为该多个服务组件中除该部分服务组件之外的其他服务组件设定一个预设时间;还可以为该多个服务组件中的每个服务组件分别设定一个预设时间,从而服务器可根据这些预设时间,分别对应周期性地重启该多个服务组件中的每个服务组件。
可以理解的是,可以为该多个服务组件设定至少一个预设时间,从而服务器可根据该至少一个预设时间对应周期性地重启该多个服务组件中的每个服务组件。
示例性的,假设为某个服务组件设定的重启周期为一个月,则服务器可以以一个月为周期,定期重启该某个服务组件。
需要说明的是,服务器将该多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,服务器可在该多个服务组件运行过程中重复执行S213。
本发明实施例提供的管理虚拟机的隔离方法中,当domain-0中某些服务组件不需要长期运行时,可在这些服务组件不被使用时,将这些服务组件关闭,从而能够进一步限制domain-0对外的服务接口,进而减小攻击面,增加攻击难度。
进一步地,如图6所示,服务器在管理虚拟机中查找该内核虚拟机,即S204之后,本发明实施例提供的管理虚拟机的隔离方法还可以包括:
S214、若服务器在管理虚拟机中查找到该内核虚拟机,则由该内核虚拟机为客户虚拟机提供服务。
服务器在管理虚拟机中查找该内核虚拟机之后,若服务器在管理虚拟机中查找到该内核虚拟机,则可由该内核虚拟机为客户虚拟机提供服务。
可以理解的是,若服务器在管理虚拟机中查找到该内核虚拟机,服务器则可认为该管理虚拟机中已经创建了对应于该客户标识的内核虚拟机,即服务器可无需再在该管理虚拟机中创建对应于该客户标识的内核虚拟机,而是可以直接由该内核虚拟机中的具有不同权限的各个服务组件为该客户虚拟机提供服务。
具体的,当服务器在管理虚拟机中查找到与该客户标识对应的该内核虚拟机之后,由该内核虚拟机为该客户虚拟机提供服务的方法可以包括:
(1)由该内核虚拟机获取管理虚拟机发送的指示消息,该指示消息为该客户虚拟机发送至虚拟机管理器,并由虚拟机管理器根据该指示消息中携带的该客户标识,确定出与该客户标识对应的该内核虚拟机后向该内核虚拟机所发送的,该指示消息可用于指示该客户虚拟机所需的服务。
(2)由该内核虚拟机根据该指示消息中携带的服务请求信息响应该客户虚拟机所需的服务。
特别的,本发明实施例提供的管理虚拟机的隔离方法,在服务器内部实现上,由于虚拟机管理器为管理服务器中运行的所有虚拟机的部件,因此,虚拟机管理器具有调度的功能。当服务器根据某个客户的请求创建了一台新的客户虚拟机后,该客户虚拟机可请求对应的内核虚拟机为其提供其所需的服务,即该客户虚拟机可发送用于指示其所需的服务的指示消息至虚拟机管理器,在虚拟机管理器接收到该客户虚拟机发送的指示消息后,虚拟机管理器可从该指示消息中获取与该客户虚拟机对应的客户标识,并根据该客户标识在管理虚拟机中找到与该客户标识对应的内核虚拟机,以及将该指示消息发送给该内核虚拟机,从而,由该内核虚拟机根据该指示消息中携带的服务请求信息响应该客户虚拟机所需的服务,即由该内核虚拟机根据该指示消息中携带的服务请求信息,为该客户虚拟机提供该客户虚拟机所需的服务。
例如,若客户虚拟机需访问磁盘,客户虚拟机则可发送指示访问磁盘的指示消息至虚拟机管理器,由虚拟机管理器将该指示消息发送至对应的内核虚拟机,该内核虚拟机可根据该指示消息访问磁盘,并将访问磁盘的结果返回给客户虚拟机,以响应该客户虚拟机所需的访问磁盘的服务。其中,内核虚拟机具体可通过上述多个服务组件中相应的服务组件响应该客户虚拟机所需的访问磁盘的服务。
进一步地,服务器在管理虚拟机中查找到该内核虚拟机之后,服务器还可根据管理员的指示,对该内核虚拟机中的该多个服务组件中的任意一个服务组件运行的执行环境重新进行调整,即对该多个服务组件所具有的权限重新进行调整,并通过该内核虚拟机中的重新调整权限后的该多个服务组件为该客户虚拟机提供服务。
需要说明的是,在Xen虚拟化系统中,目前在CVE(CommonVulnerabilities&Exposures,公共漏洞和披露)上出现的漏洞主要有:CVE-2007-4993、CVE-2007-5497、CVE-2008-0923、CVE-2008-1943、CVE-2008-2100、CVE-2011-3262、CVE-2012-4544等。
示例性的,下面分别以以下三种漏洞为例对本发明实施例提供的管理虚拟机的隔离方法进行进一步地说明。
(1)CVE-2011-3262指出在Xen3.2、3.3、4.0和4.1虚拟机启动服务代码中发现漏洞。该漏洞在解压客户虚拟机内核压缩文件时没有进行合理的循环边界检查,而使得本地客户有机会利用该漏洞使得虚拟机启动服务陷入死循环,实现DoS(Deny of Service,拒绝服务攻击)。
(2)CVE-2012-4544指出,由于半虚拟化的虚拟机生成器并没有检测内核和Ramdisk(虚拟内存盘)的大小,因此在启动恶意客户虚拟机镜像时,domain-0由于内存消耗过大而导致DoS。
(3)CVE-2007-4993指出,由于Xen3.0.3中的grub启动程序存在漏洞,导致恶意客户虚拟机可以在domain-0中执行任意指令。
对于上述(1)、(2)和(3)中指出的漏洞,通过本发明实施例提供的管理虚拟机的隔离方法,可将domain-0中为与不同客户标识对应的客户虚拟机提供的基础性服务(包括虚拟机启动服务)设置到不同的虚拟化容器中,从而当与某个客户标识对应的客户虚拟机启动服务出现上述漏洞时,只会影响到该客户虚拟机,而不会影响其他的客户虚拟机,进而能够保证domain-0的安全性。
进一步地,本发明实施例提供的管理虚拟机的隔离方法中,服务器可以实时监控上述的基础性服务的运行状态,若服务器检测到基础性服务中的某个服务组件发生错误,如上述(1)中虚拟机启动服务陷入死循环等,服务器则可停止该某个服务组件,或者对该某个服务组件进行重启,从而保证整个Xen虚拟化系统的正常运行。
本发明实施例提供一种管理虚拟机的隔离方法,通过获取客户标识,并根据该客户标识,在管理虚拟机中查找与该客户标识对应的内核虚拟机,若在该管理虚拟机中未查找到该内核虚拟机,则在该管理虚拟机中创建该内核虚拟机,且将该内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,该客户虚拟机为与该客户标识对应的虚拟机,以及将多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,该内核虚拟机包括多个执行环境,该多个执行环境分别具有不同的权限。通过该方案,由于可通过在管理虚拟机中分别创建与各个客户标识对应的内核虚拟机,并将内核虚拟机为客户虚拟机提供的多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,以实现对管理虚拟机进行纵向内核虚拟化层隔离和横向服务层隔离,因此,可以使得与所有客户标识对应,且具有不同权限的服务组件仍然能够运行在同一个管理虚拟机中,从而提升服务组件之间的通信性能,降低虚拟机运行所需的资源,以及增强服务组件的安全性。
实施例三
如图7所示,本发明实施例提供一种管理虚拟机1,该管理虚拟机1可以包括:隔离模块10和至少一个内核虚拟机11,其中,所述隔离模块10用于:
获取客户标识;并根据所述客户标识,在所述管理虚拟机1中的所述至少一个内核虚拟机11中查找与所述客户标识对应的内核虚拟机11;若在所述至少一个内核虚拟机11中未查找到所述内核虚拟机11,则在所述管理虚拟机1中创建所述内核虚拟机11;且将所述内核虚拟机11为客户虚拟机提供的服务分解为多个服务组件,所述客户虚拟机为与所述客户标识对应的虚拟机;以及将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,所述内核虚拟机11包括多个执行环境,所述多个执行环境分别具有不同的权限。
进一步地,所述内核虚拟机11,还用于若所述隔离模块10在所述管理虚拟机1中查找到所述内核虚拟机11,则获取虚拟机管理器发送的指示消息,并根据所述指示消息中携带的服务请求信息响应所述客户虚拟机所需的服务,所述指示消息为所述客户虚拟机发送至所述虚拟机管理器,并由所述虚拟机管理器根据所述指示消息中携带的所述客户标识,确定出与所述客户标识对应的所述内核虚拟机11后向所述内核虚拟机11所发送的,所述指示消息用于指示所述客户虚拟机所需的服务。
可选的,所述隔离模块10,具体用于获取请求消息,并从所述请求消息中获取所述客户标识,以及根据所述请求消息创建与所述客户标识对应的所述客户虚拟机,所述请求消息中携带所述客户标识,所述请求消息用于请求创建所述客户虚拟机。
可选的,所述隔离模块10,具体用于根据所述内核虚拟机11的功能,将所述服务的代码分解为多个功能代码块,并将所述多个功能代码块分别运行于多个服务进程中,以形成多个服务组件,其中,所述多个功能代码块与所述多个服务进程一一对应。
可选的,所述隔离模块10,具体用于根据所述多个服务组件的权限,对所述多个服务组件进行分组,以使得不同分组的服务组件具有不同的权限,并将所述多个服务组件中的不同分组的服务组件分别运行在与该组服务组件所具有的权限对应的执行环境中。
进一步地,所述隔离模块10,还用于获取所述多个服务组件的系统参数,并根据所述多个服务组件的系统参数,分别确定与所述多个服务组件的系统参数对应的所述多个服务组件的权限。
进一步地,所述隔离模块10,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,根据预设策略,对所述多个服务组件的权限进行限制,其中,所述预设策略包括访问操作和控制操作中的至少一个。
进一步地,所述隔离模块10,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,监控所述多个服务组件的运行状态,并当所述多个服务组件中的一个服务组件的运行状态发生错误时,重启所述一个服务组件。
进一步地,所述隔离模块10,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,根据预设时间,分别对应周期性地重启所述多个服务组件中的每个服务组件,所述预设时间为与所述每个服务组件分别对应的预设时间。
可选的,所述隔离模块10,具体用于根据内核虚拟化技术,在所述管理虚拟机1中创建与所述客户标识对应的内核虚拟化容器,并将所述管理虚拟机1为所述客户虚拟机提供的服务设置于所述内核虚拟化容器中,以创建所述内核虚拟机11。
可选的,所述多个服务组件之间的通信方式可以为进程间通信。
可选的,所述多个服务组件可以包括:虚拟机启动服务组件、虚拟机管理工具集组件、虚拟机设备模拟组件、虚拟机创建工具组件、虚拟机后端驱动组件及Xen存储组件中的至少一个。
本发明实施例提供的管理虚拟机可以运行在服务器上,服务器上还运行有一个虚拟机管理器,以及与每个客户标识分别对应的至少一个客户虚拟机,该管理虚拟机中包括与每个客户标识一一对应的内核虚拟机,一个内核虚拟机为与一个客户标识对应的至少一个客户虚拟机提供服务。
本发明实施例提供一种管理虚拟机,该管理虚拟机获取客户标识,并根据该客户标识,在该管理虚拟机中的至少一个内核虚拟机中查找与该客户标识对应的内核虚拟机,若该管理虚拟机在该至少一个内核虚拟机中未查找到该内核虚拟机,则在该管理虚拟机中创建该内核虚拟机,且该管理虚拟机将该内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,该客户虚拟机为与该客户标识对应的虚拟机,以及该管理虚拟机将多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,该内核虚拟机包括多个执行环境,该多个执行环境分别具有不同的权限。通过该方案,由于可通过在管理虚拟机中分别创建与各个客户标识对应的内核虚拟机,并将内核虚拟机为客户虚拟机提供的多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,以实现对管理虚拟机进行纵向内核虚拟化层隔离和横向服务层隔离,因此,可以使得与所有客户标识对应,且具有不同权限的服务组件仍然能够运行在同一个管理虚拟机中,从而提升服务组件之间的通信性能,降低虚拟机运行所需的资源,以及增强服务组件的安全性。
实施例四
如图8所示,本发明实施例提供一种服务器,该服务器可以包括处理器20、存储器21、系统总线22和通信接口23。处理器20、存储器21和通信接口23之间通过系统总线22连接并完成相互间的通信。其中,所述服务器中的所述处理器20运行有一个虚拟机管理器、一个上述实施例所述的管理虚拟机,以及与每个客户标识分别对应的至少一个客户虚拟机,该虚拟机管理器用于管理该管理虚拟机和这些客户虚拟机,该管理虚拟机中包括与每个客户标识一一对应的内核虚拟机,一个内核虚拟机为与一个客户标识对应的至少一个客户虚拟机提供服务。
处理器20可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。
存储器21可以为高速RAM存储器,也可以为非易失性存储器,例如至少一个磁盘存储器。
存储器21用于存储如下元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集,以及计算机执行指令:
操作系统210,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
应用模块211,包含各种应用程序,用于实现各种应用业务。
应用模块211中包括但不限于虚拟机操作系统。
当服务器运行时,处理器20运行计算机执行指令,可以执行图1或图4至图6任意之一所述的方法流程,具体包括:
所述处理器20,用于通过所述系统总线22从所述通信接口23获取客户标识;并根据所述客户标识,通过所述系统总线22在所述管理虚拟机中的至少一个内核虚拟机中查找与所述客户标识对应的内核虚拟机;且若在所述至少一个内核虚拟机中未查找到所述内核虚拟机,则在所述管理虚拟机中创建所述内核虚拟机;以及将创建的所述内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,所述客户虚拟机为与所述客户标识对应的虚拟机,并将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,所述内核虚拟机包括多个执行环境,所述多个执行环境分别具有不同的权限;所述存储器21,用于存储所述客户标识、所述多个服务组件的软件代码及控制所述处理器20完成上述过程的软件程序,从而所述处理器20通过执行所述软件程序并调用所述软件代码完成上述过程。
进一步地,所述处理器20,还用于若在所述管理虚拟机中查找到所述内核虚拟机,则获取虚拟机管理器发送的指示消息,并根据所述指示消息中携带的服务请求信息响应所述客户虚拟机所需的服务,所述指示消息为所述客户虚拟机发送至所述虚拟机管理器,并由所述虚拟机管理器根据所述指示消息中携带的所述客户标识,确定出与所述客户标识对应的所述内核虚拟机后向所述处理器20所发送的,所述指示消息用于指示所述客户虚拟机所需的服务。
可选的,所述处理器20,具体用于通过所述系统总线22从所述通信接口23获取请求消息,并从所述请求消息中获取所述客户标识,以及根据所述请求消息创建与所述客户标识对应的所述客户虚拟机,所述请求消息中携带所述客户标识,所述请求消息用于请求创建所述客户虚拟机。
可选的,所述处理器20,具体用于根据所述内核虚拟机的功能,将所述服务的代码分解为多个功能代码块,并将所述多个功能代码块分别运行于多个服务进程中,以形成多个服务组件,其中,所述多个功能代码块与所述多个服务进程一一对应。
可选的,所述处理器20,具体用于根据所述多个服务组件的权限,对所述多个服务组件进行分组,以使得不同分组的服务组件具有不同的权限,并将所述多个服务组件中的不同分组的服务组件分别运行在与该组服务组件所具有的权限对应的执行环境中。
进一步地,所述处理器20,还用于通过所述系统总线22获取所述多个服务组件的系统参数,并根据所述多个服务组件的系统参数,分别确定与所述多个服务组件的系统参数对应的所述多个服务组件的权限。
进一步地,所述处理器20,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,根据预设策略,对所述多个服务组件的权限进行限制,其中,所述预设策略包括访问操作和控制操作中的至少一个。
进一步地,所述处理器20,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,通过所述系统总线22监控所述多个服务组件的运行状态,并当所述多个服务组件中的一个服务组件的运行状态发生错误时,重启所述一个服务组件。
进一步地,所述处理器20,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,根据预设时间,分别对应周期性地重启所述多个服务组件中的每个服务组件,所述预设时间为与所述每个服务组件分别对应的预设时间。
可选的,所述处理器20,具体用于根据内核虚拟化技术,通过所述系统总线22在所述管理虚拟机中创建与所述客户标识对应的内核虚拟化容器,并将所述管理虚拟机为所述客户虚拟机提供的服务设置于所述内核虚拟化容器中,以创建所述内核虚拟机。
可选的,所述多个服务组件之间的通信方式可以为进程间通信。
可选的,所述多个服务组件可以包括:虚拟机启动服务组件、虚拟机管理工具集组件、虚拟机设备模拟组件、虚拟机创建工具组件、虚拟机后端驱动组件及Xen存储组件中的至少一个。
本发明实施例提供一种服务器,该服务器获取客户标识,并根据该客户标识,在管理虚拟机中的至少一个内核虚拟机中查找与该客户标识对应的内核虚拟机,若该服务器在该至少一个内核虚拟机中未查找到该内核虚拟机,则在该管理虚拟机中创建该内核虚拟机,且该服务器将该内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,该客户虚拟机为与该客户标识对应的虚拟机,以及该服务器将多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,该内核虚拟机包括多个执行环境,该多个执行环境分别具有不同的权限。通过该方案,由于可通过在管理虚拟机中分别创建与各个客户标识对应的内核虚拟机,并将内核虚拟机为客户虚拟机提供的多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,以实现对管理虚拟机进行纵向内核虚拟化层隔离和横向服务层隔离,因此,可以使得与所有客户标识对应,且具有不同权限的服务组件仍然能够运行在同一个管理虚拟机中,从而提升服务组件之间的通信性能,降低虚拟机运行所需的资源,以及增强服务组件的安全性。
实施例五
本发明实施例提供一种虚拟化系统,如图9所示,该虚拟化系统可以为Xen虚拟化系统,该Xen虚拟化系统包括一台如上述实施例所述的服务器,该一台服务器上运行有一个虚拟机管理器、一个上述实施例所述的管理虚拟机,以及与每个客户标识分别对应的至少一个客户虚拟机,该虚拟机管理器用于管理该管理虚拟机和这些客户虚拟机,该管理虚拟机中包括与每个客户标识一一对应的内核虚拟机,一个内核虚拟机为与一个客户标识对应的至少一个客户虚拟机提供服务。
本发明实施例提供的Xen虚拟化系统中的服务器可通过执行上述实施例所述的管理虚拟机的隔离方法,将domain-0中为与不同客户标识对应的客户虚拟机提供的基础性服务分别通过纵向内核虚拟化层隔离,以形成与不同客户标识分别对应的逻辑域,并将提供该基础性服务的多个服务组件通过横向服务层隔离,即进行分组,以形成不同的服务组。本发明实施例通过对domain-0进行上述两层隔离,能够在保证domain-0的安全性的基础上,提升服务组件之间的通信性能,降低虚拟机运行所需的资源。
示例性的,如图3所示,假设本发明实施例提供的实现Xen虚拟化系统的服务器上运行有三个客户虚拟机,分别为客户虚拟机A、客户虚拟机B和客户虚拟机C;通过本发明实施例提供的管理虚拟机的隔离方法,可将domain-0中为与客户标识A对应的所有客户虚拟机、与客户标识B对应的所有客户虚拟机和与客户标识C对应的所有客户虚拟机提供的基础性服务分别通过纵向内核虚拟化层隔离,以形成与客户标识A对应的逻辑域A、与客户标识B对应的逻辑域B、以及与客户标识C对应的逻辑域C,并将提供基础性服务的该多个服务组件通过横向服务层隔离,即将该多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,以形成不同的服务组,如普通服务组和特权服务组。
本发明实施例提供的管理虚拟机的隔离方法,除了需要服务器硬件结构的支持外,还需软件的支撑,如图10所示,在软件的实现中,服务器创建的内核虚拟机为客户虚拟机提供基础性服务的多个服务组件可以分别由不同的服务模块实现。具体的,对应于本发明实施例提供的该多个服务组件,实现这些服务组件的服务模块分别为:与虚拟机启动服务组件对应的虚拟机启动服务模块、与虚拟机管理工具集组件对应的虚拟机管理服务模块、与虚拟机设备模拟组件对应的虚拟机设备模拟模块、与虚拟机创建工具组件对应的虚拟机创建服务模块、与虚拟机后端驱动组件对应的虚拟机后端驱动服务模块,以及与Xen存储组件对应的Xen存储模块。
本发明实施例提供一种虚拟化系统,该虚拟化系统包括上述实施例所述的服务器,该服务器可通过获取客户标识,并根据该客户标识,在管理虚拟机中的至少一个内核虚拟机中查找与该客户标识对应的内核虚拟机,若该服务器在该至少一个内核虚拟机中未查找到该内核虚拟机,则在该管理虚拟机中创建该内核虚拟机,且该服务器将该内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,该客户虚拟机为与该客户标识对应的虚拟机,以及该服务器将多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,该内核虚拟机包括多个执行环境,该多个执行环境分别具有不同的权限。通过该方案,由于可通过在管理虚拟机中分别创建与各个客户标识对应的内核虚拟机,并将内核虚拟机为客户虚拟机提供的多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,以实现对管理虚拟机进行纵向内核虚拟化层隔离和横向服务层隔离,因此,可以使得与所有客户标识对应,且具有不同权限的服务组件仍然能够运行在同一个管理虚拟机中,从而提升服务组件之间的通信性能,降低虚拟机运行所需的资源,以及增强服务组件的安全性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (25)

1.一种管理虚拟机的隔离方法,其特征在于,包括:
获取客户标识;
根据所述客户标识,在所述管理虚拟机中查找与所述客户标识对应的内核虚拟机;
若在所述管理虚拟机中未查找到所述内核虚拟机,则在所述管理虚拟机中创建所述内核虚拟机;
将所述内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,所述客户虚拟机为与所述客户标识对应的虚拟机;
将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,所述内核虚拟机包括多个执行环境,所述多个执行环境分别具有不同的权限。
2.根据权利要求1所述的管理虚拟机的隔离方法,其特征在于,若在所述管理虚拟机中查找到所述内核虚拟机,则所述方法还包括:
由所述内核虚拟机获取虚拟机管理器发送的指示消息,所述指示消息为所述客户虚拟机发送至所述虚拟机管理器,并由所述虚拟机管理器根据所述指示消息中携带的所述客户标识,确定出与所述客户标识对应的所述内核虚拟机后向所述内核虚拟机所发送的,所述指示消息用于指示所述客户虚拟机所需的服务;
由所述内核虚拟机根据所述指示消息中携带的服务请求信息响应所述客户虚拟机所需的服务。
3.根据权利要求1所述的管理虚拟机的隔离方法,其特征在于,所述获取客户标识,包括:
获取请求消息,所述请求消息中携带所述客户标识,所述请求消息用于请求创建所述客户虚拟机;
从所述请求消息中获取所述客户标识;
所述方法还包括:
根据所述请求消息创建与所述客户标识对应的所述客户虚拟机。
4.根据权利要求1-3任一项所述的管理虚拟机的隔离方法,其特征在于,所述将所述内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,包括:
根据所述内核虚拟机的功能,将所述服务的代码分解为多个功能代码块;
将所述多个功能代码块分别运行于多个服务进程中,以形成多个服务组件,其中,所述多个功能代码块与所述多个服务进程一一对应。
5.根据权利要求1-4任一项所述的管理虚拟机的隔离方法,其特征在于,所述将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,包括:
根据所述多个服务组件的权限,对所述多个服务组件进行分组,以使得不同分组的服务组件具有不同的权限;
将所述多个服务组件中的不同分组的服务组件分别运行在与该组服务组件所具有的权限对应的执行环境中。
6.根据权利要求5所述的管理虚拟机的隔离方法,其特征在于,所述多个服务组件的权限是通过如下方法来确定的:
获取所述多个服务组件的系统参数;
根据所述多个服务组件的系统参数,分别确定与所述多个服务组件的系统参数对应的所述多个服务组件的权限。
7.根据权利要求1-6任一项所述的管理虚拟机的隔离方法,其特征在于,所述将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,所述方法还包括:
根据预设策略,对所述多个服务组件的权限进行限制,其中,所述预设策略包括访问操作和控制操作中的至少一个。
8.根据权利要求1-7任一项所述的管理虚拟机的隔离方法,其特征在于,所述将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,所述方法还包括:
监控所述多个服务组件的运行状态;
当所述多个服务组件中的一个服务组件的运行状态发生错误时,重启所述一个服务组件。
9.根据权利要求1-8任一项所述的管理虚拟机的隔离方法,其特征在于,所述将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,所述方法还包括:
根据预设时间,分别对应周期性地重启所述多个服务组件中的每个服务组件,所述预设时间为与所述每个服务组件分别对应的预设时间。
10.根据权利要求1-9任一项所述的管理虚拟机的隔离方法,其特征在于,所述在所述管理虚拟机中创建所述内核虚拟机包括:
根据内核虚拟化技术,在所述管理虚拟机中创建与所述客户标识对应的内核虚拟化容器;
将所述管理虚拟机为所述客户虚拟机提供的服务设置于所述内核虚拟化容器中,以创建所述内核虚拟机。
11.根据权利要求1-10任一项所述的管理虚拟机的隔离方法,其特征在于,
所述多个服务组件之间的通信方式为进程间通信。
12.根据权利要求1-11任一项所述的管理虚拟机的隔离方法,其特征在于,
所述多个服务组件包括:虚拟机启动服务组件、虚拟机管理工具集组件、虚拟机设备模拟组件、虚拟机创建工具组件、虚拟机后端驱动组件及Xen存储组件中的至少一个。
13.一种管理虚拟机,其特征在于,包括:隔离模块和至少一个内核虚拟机,其中,所述隔离模块用于:
获取客户标识;
根据所述客户标识,在所述管理虚拟机中的所述至少一个内核虚拟机中查找与所述客户标识对应的内核虚拟机;
若在所述至少一个内核虚拟机中未查找到所述内核虚拟机,则在所述管理虚拟机中创建所述内核虚拟机;
将所述内核虚拟机为客户虚拟机提供的服务分解为多个服务组件,所述客户虚拟机为与所述客户标识对应的虚拟机;
将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中,其中,所述内核虚拟机包括多个执行环境,所述多个执行环境分别具有不同的权限。
14.根据权利要求13所述的管理虚拟机,其特征在于,
所述内核虚拟机,还用于若所述隔离模块在所述管理虚拟机中查找到所述内核虚拟机,则获取虚拟机管理器发送的指示消息,并根据所述指示消息中携带的服务请求信息响应所述客户虚拟机所需的服务,所述指示消息为所述客户虚拟机发送至所述虚拟机管理器,并由所述虚拟机管理器根据所述指示消息中携带的所述客户标识,确定出与所述客户标识对应的所述内核虚拟机后向所述内核虚拟机所发送的,所述指示消息用于指示所述客户虚拟机所需的服务。
15.根据权利要求13所述的管理虚拟机,其特征在于,
所述隔离模块,具体用于获取请求消息,并从所述请求消息中获取所述客户标识,以及根据所述请求消息创建与所述客户标识对应的所述客户虚拟机,所述请求消息中携带所述客户标识,所述请求消息用于请求创建所述客户虚拟机。
16.根据权利要求13-15任一项所述的管理虚拟机,其特征在于,
所述隔离模块,具体用于根据所述内核虚拟机的功能,将所述服务的代码分解为多个功能代码块,并将所述多个功能代码块分别运行于多个服务进程中,以形成多个服务组件,其中,所述多个功能代码块与所述多个服务进程一一对应。
17.根据权利要求13-16任一项所述的管理虚拟机,其特征在于,
所述隔离模块,具体用于根据所述多个服务组件的权限,对所述多个服务组件进行分组,以使得不同分组的服务组件具有不同的权限,并将所述多个服务组件中的不同分组的服务组件分别运行在与该组服务组件所具有的权限对应的执行环境中。
18.根据权利要求17所述的管理虚拟机,其特征在于,
所述隔离模块,还用于获取所述多个服务组件的系统参数,并根据所述多个服务组件的系统参数,分别确定与所述多个服务组件的系统参数对应的所述多个服务组件的权限。
19.根据权利要求13-18任一项所述的管理虚拟机,其特征在于,
所述隔离模块,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,根据预设策略,对所述多个服务组件的权限进行限制,其中,所述预设策略包括访问操作和控制操作中的至少一个。
20.根据权利要求13-19任一项所述的管理虚拟机,其特征在于,
所述隔离模块,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,监控所述多个服务组件的运行状态,并当所述多个服务组件中的一个服务组件的运行状态发生错误时,重启所述一个服务组件。
21.根据权利要求13-20任一项所述的管理虚拟机,其特征在于,
所述隔离模块,还用于在将所述多个服务组件分别运行在与该服务组件所具有的权限对应的执行环境中之后,根据预设时间,分别对应周期性地重启所述多个服务组件中的每个服务组件,所述预设时间为与所述每个服务组件分别对应的预设时间。
22.根据权利要求13-21任一项所述的管理虚拟机,其特征在于,
所述隔离模块,具体用于根据内核虚拟化技术,在所述管理虚拟机中创建与所述客户标识对应的内核虚拟化容器,并将所述管理虚拟机为所述客户虚拟机提供的服务设置于所述内核虚拟化容器中,以创建所述内核虚拟机。
23.根据权利要求13-22任一项所述的管理虚拟机,其特征在于,
所述多个服务组件之间的通信方式为进程间通信。
24.根据权利要求13-23任一项所述的管理虚拟机,其特征在于,
所述多个服务组件包括:虚拟机启动服务组件、虚拟机管理工具集组件、虚拟机设备模拟组件、虚拟机创建工具组件、虚拟机后端驱动组件及Xen存储组件中的至少一个。
25.一种服务器,其特征在于,所述服务器上运行有如权利要求13-24任一项所述的管理虚拟机和与每个客户标识分别对应的至少一个客户虚拟机,所述管理虚拟机中包括与所述每个客户标识一一对应的内核虚拟机,其中,一个内核虚拟机为与一个客户标识对应的至少一个客户虚拟机提供服务。
CN201410110050.5A 2014-03-24 2014-03-24 一种管理虚拟机的隔离方法及装置 Active CN104951694B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201410110050.5A CN104951694B (zh) 2014-03-24 2014-03-24 一种管理虚拟机的隔离方法及装置
EP14870659.1A EP2940615B1 (en) 2014-03-24 2014-05-22 Method and apparatus for isolating management virtual machine
PCT/CN2014/078095 WO2015143766A1 (zh) 2014-03-24 2014-05-22 一种管理虚拟机的隔离方法及装置
US14/795,225 US9971623B2 (en) 2014-03-24 2015-07-09 Isolation method for management virtual machine and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410110050.5A CN104951694B (zh) 2014-03-24 2014-03-24 一种管理虚拟机的隔离方法及装置

Publications (2)

Publication Number Publication Date
CN104951694A true CN104951694A (zh) 2015-09-30
CN104951694B CN104951694B (zh) 2018-04-10

Family

ID=54140196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410110050.5A Active CN104951694B (zh) 2014-03-24 2014-03-24 一种管理虚拟机的隔离方法及装置

Country Status (4)

Country Link
US (1) US9971623B2 (zh)
EP (1) EP2940615B1 (zh)
CN (1) CN104951694B (zh)
WO (1) WO2015143766A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530293A (zh) * 2015-12-02 2016-04-27 深圳市深信服电子科技有限公司 应用发布方法和装置
CN108259192A (zh) * 2016-12-28 2018-07-06 中国移动通信集团江西有限公司 通过业务服务组件化处理服务异常的方法及装置
CN109858288A (zh) * 2018-12-26 2019-06-07 中国科学院信息工程研究所 实现虚拟机安全隔离的方法与装置
CN110032413A (zh) * 2019-03-05 2019-07-19 华为技术有限公司 一种桌面虚拟化方法、相关设备及计算机存储介质
CN110162344A (zh) * 2019-04-15 2019-08-23 深圳壹账通智能科技有限公司 一种隔离限流的方法、装置、计算机设备及可读存储介质
CN110347521A (zh) * 2019-07-01 2019-10-18 电子科技大学 一种基于mils的域间通信方法
CN110442425A (zh) * 2019-07-19 2019-11-12 南京芯驰半导体科技有限公司 一种虚拟化地址空间隔离系统及方法
CN110785757A (zh) * 2017-06-19 2020-02-11 西门子股份公司 边缘设备和用于运行边缘设备的方法
CN111736960A (zh) * 2020-08-10 2020-10-02 北京信安世纪科技股份有限公司 基于软件隔离的服务提供方法、设备及存储介质
CN116627596A (zh) * 2023-07-25 2023-08-22 北京翼辉信息技术有限公司 虚拟机加固系统及方法
CN116702180A (zh) * 2023-08-02 2023-09-05 北京智芯微电子科技有限公司 微内核操作系统及其访问控制方法、芯片、设备和介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10136284B2 (en) * 2014-07-07 2018-11-20 Convida Wireless, Llc Coordinated grouping for machine type communications group based services
CN105681087B (zh) * 2016-01-22 2019-06-11 中国人民解放军国防科学技术大学 基于轻量级虚拟机的虚拟控制平面资源管理方法
CN107306196A (zh) * 2016-04-20 2017-10-31 中兴通讯股份有限公司 虚拟化服务监控方法和装置
US10757082B2 (en) * 2018-02-22 2020-08-25 International Business Machines Corporation Transforming a wrapped key into a protected key
CN112667999A (zh) * 2020-12-31 2021-04-16 中电长城网际安全技术研究院(北京)有限公司 虚拟机的执行时间调整方法和装置
CN115987566A (zh) * 2022-12-01 2023-04-18 贵州电网有限责任公司 一种基于新能源电力系统服务器隔离架构

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236127A1 (en) * 2005-04-01 2006-10-19 Kurien Thekkthalackal V Local secure service partitions for operating system security
CN101599022A (zh) * 2009-07-07 2009-12-09 武汉大学 用于虚拟机系统的可信计算基裁剪方法
CN101661381A (zh) * 2009-09-08 2010-03-03 华南理工大学 一种基于Xen的数据共享与访问控制方法
US20100192152A1 (en) * 2009-01-29 2010-07-29 Fujitsu Limited Information processing device, information processing method, and recording medium
US20110173251A1 (en) * 2009-12-14 2011-07-14 Citrix Systems, Inc. Systems and methods for service isolation
CN102129531A (zh) * 2011-03-22 2011-07-20 北京工业大学 一种基于Xen的主动防御方法
CN102707985A (zh) * 2011-03-28 2012-10-03 中兴通讯股份有限公司 一种虚拟机系统的访问控制方法和系统
US20130074064A1 (en) * 2011-09-15 2013-03-21 Microsoft Corporation Automated infrastructure provisioning
US20130117823A1 (en) * 2009-08-21 2013-05-09 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
US8539137B1 (en) * 2006-06-09 2013-09-17 Parallels IP Holdings GmbH System and method for management of virtual execution environment disk storage
US20130347131A1 (en) * 2012-06-26 2013-12-26 Lynuxworks, Inc. Systems and Methods Involving Features of Hardware Virtualization Such as Separation Kernel Hypervisors, Hypervisors, Hypervisor Guest Context, Hypervisor Contest, Rootkit Detection/Prevention, and/or Other Features

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7401230B2 (en) 2004-03-31 2008-07-15 Intel Corporation Secure virtual machine monitor to tear down a secure execution environment
US8327353B2 (en) 2005-08-30 2012-12-04 Microsoft Corporation Hierarchical virtualization with a multi-level virtualization mechanism
CN101071387B (zh) * 2006-09-08 2010-05-12 华南理工大学 一种基于虚拟机的驱动程序加固方法
US8595487B2 (en) 2006-11-01 2013-11-26 Vmware, Inc. Virtualization hardware for device driver isolation
US8751656B2 (en) * 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
CN102930213A (zh) 2012-10-25 2013-02-13 中国航天科工集团第二研究院七〇六所 基于虚拟机的安全监控系统和安全监控方法
CN102938035B (zh) * 2012-11-08 2015-05-27 西安交通大学 一种在虚拟机内部的驱动隔离系统与方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236127A1 (en) * 2005-04-01 2006-10-19 Kurien Thekkthalackal V Local secure service partitions for operating system security
US8539137B1 (en) * 2006-06-09 2013-09-17 Parallels IP Holdings GmbH System and method for management of virtual execution environment disk storage
US20100192152A1 (en) * 2009-01-29 2010-07-29 Fujitsu Limited Information processing device, information processing method, and recording medium
CN101599022A (zh) * 2009-07-07 2009-12-09 武汉大学 用于虚拟机系统的可信计算基裁剪方法
US20130117823A1 (en) * 2009-08-21 2013-05-09 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
CN101661381A (zh) * 2009-09-08 2010-03-03 华南理工大学 一种基于Xen的数据共享与访问控制方法
US20110173251A1 (en) * 2009-12-14 2011-07-14 Citrix Systems, Inc. Systems and methods for service isolation
CN102129531A (zh) * 2011-03-22 2011-07-20 北京工业大学 一种基于Xen的主动防御方法
CN102707985A (zh) * 2011-03-28 2012-10-03 中兴通讯股份有限公司 一种虚拟机系统的访问控制方法和系统
US20130074064A1 (en) * 2011-09-15 2013-03-21 Microsoft Corporation Automated infrastructure provisioning
US20130347131A1 (en) * 2012-06-26 2013-12-26 Lynuxworks, Inc. Systems and Methods Involving Features of Hardware Virtualization Such as Separation Kernel Hypervisors, Hypervisors, Hypervisor Guest Context, Hypervisor Contest, Rootkit Detection/Prevention, and/or Other Features

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BRIAN WITTEN: ""Engineering Sufficiently Secure Computing"", 《PROCEEDINGS OF THE 22ND ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE(ACSAC"06)》 *
WWW.CSE.PSU.EDU/~TRJ1/CSE443-S12/DOCS/CH11.PDF: ""Secure Virtual Machine Systems"", 《SECURE VIRTUAL MACHINE SYSTEMS》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530293B (zh) * 2015-12-02 2019-07-02 深信服科技股份有限公司 应用发布方法和装置
CN105530293A (zh) * 2015-12-02 2016-04-27 深圳市深信服电子科技有限公司 应用发布方法和装置
CN108259192A (zh) * 2016-12-28 2018-07-06 中国移动通信集团江西有限公司 通过业务服务组件化处理服务异常的方法及装置
CN110785757A (zh) * 2017-06-19 2020-02-11 西门子股份公司 边缘设备和用于运行边缘设备的方法
CN110785757B (zh) * 2017-06-19 2023-09-26 西门子股份公司 边缘设备和用于运行边缘设备的方法
CN109858288A (zh) * 2018-12-26 2019-06-07 中国科学院信息工程研究所 实现虚拟机安全隔离的方法与装置
CN109858288B (zh) * 2018-12-26 2021-04-13 中国科学院信息工程研究所 实现虚拟机安全隔离的方法与装置
CN110032413A (zh) * 2019-03-05 2019-07-19 华为技术有限公司 一种桌面虚拟化方法、相关设备及计算机存储介质
WO2020177482A1 (zh) * 2019-03-05 2020-09-10 华为技术有限公司 一种桌面虚拟化方法、相关设备及计算机存储介质
CN110032413B (zh) * 2019-03-05 2021-08-31 华为技术有限公司 一种桌面虚拟化方法、相关设备及计算机存储介质
CN110162344B (zh) * 2019-04-15 2023-03-31 深圳壹账通智能科技有限公司 一种隔离限流的方法、装置、计算机设备及可读存储介质
CN110162344A (zh) * 2019-04-15 2019-08-23 深圳壹账通智能科技有限公司 一种隔离限流的方法、装置、计算机设备及可读存储介质
CN110347521A (zh) * 2019-07-01 2019-10-18 电子科技大学 一种基于mils的域间通信方法
CN110442425A (zh) * 2019-07-19 2019-11-12 南京芯驰半导体科技有限公司 一种虚拟化地址空间隔离系统及方法
CN111736960A (zh) * 2020-08-10 2020-10-02 北京信安世纪科技股份有限公司 基于软件隔离的服务提供方法、设备及存储介质
CN116627596A (zh) * 2023-07-25 2023-08-22 北京翼辉信息技术有限公司 虚拟机加固系统及方法
CN116627596B (zh) * 2023-07-25 2023-12-12 北京翼辉信息技术有限公司 虚拟机加固系统及方法
CN116702180A (zh) * 2023-08-02 2023-09-05 北京智芯微电子科技有限公司 微内核操作系统及其访问控制方法、芯片、设备和介质
CN116702180B (zh) * 2023-08-02 2024-04-05 北京智芯微电子科技有限公司 微内核操作系统及其访问控制方法、芯片、设备和介质

Also Published As

Publication number Publication date
US9971623B2 (en) 2018-05-15
EP2940615A1 (en) 2015-11-04
EP2940615A4 (en) 2016-02-24
EP2940615B1 (en) 2018-01-03
WO2015143766A1 (zh) 2015-10-01
US20150309832A1 (en) 2015-10-29
CN104951694B (zh) 2018-04-10

Similar Documents

Publication Publication Date Title
CN104951694A (zh) 一种管理虚拟机的隔离方法及装置
EP3284213B1 (en) Managing virtual network functions
US10061619B2 (en) Thread pool management
US10922123B2 (en) Container migration in computing systems
US10353739B2 (en) Virtual resource scheduling for containers without migration
US11210132B2 (en) Virtual machine migration in virtualization environment having different virtualization systems
CN102681899A (zh) 云计算服务平台的虚拟计算资源动态管理系统
US10185548B2 (en) Configuring dependent services associated with a software package on a host system
CN103810015A (zh) 虚拟机创建方法和设备
US20150347166A1 (en) Paravirtualized migration counter for migrating a virtual cpu to a different physical cpu
CN104536805A (zh) 一种虚拟化平台的资源提供系统及方法
US20210026672A1 (en) Avoiding power-on failures in virtualized gpus
CN109309581B (zh) 跨硬件架构的容器管理系统
CN112948102B (zh) 虚拟机事件处理方法、装置和系统
CN112286633A (zh) 基于CloudStack平台的虚拟机创建方法、装置、设备及存储介质
CN104484221A (zh) CloudStack接管vCenter已有集群的方法
CN104461757A (zh) 一种恢复虚拟机的方法及装置
US9378057B2 (en) Paravirtualized migration counter
CN106557354B (zh) 设置私有镜像的属性参数的方法及计算机设备
CN104182271A (zh) 一种基于申威处理器的虚拟化实现方法
CN115277398A (zh) 一种集群的网络配置方法和装置
US11080079B2 (en) Autonomously reproducing and destructing virtual machines
US10877771B2 (en) Virtual machine booting using disk metadata
CN114579250A (zh) 一种构建虚拟集群的方法、装置及存储介质
US10776148B1 (en) System and method for utilizing computational power of a server farm

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