当前位置: 首页 > 专利查询>英特尔公司专利>正文

在虚拟机上运行一个或多个容器的技术制造技术

技术编号:17102342 阅读:48 留言:0更新日期:2018-01-21 12:36
示例可以包括用于在虚拟机(VM)上运行一个或多个容器的技术。示例包括克隆第一VM以生成第二VM。克隆的第一VM可以运行能够单独执行一个或多个应用的至少一组容器。在一些示例中,一些克隆的容器在第一或第二VM处停止,以允许至少一些资源被提供以支持第一VM或第二VM在托管节点处被重用或回收。在其他示例中,第二VM从托管节点迁移到目的地主机节点,以进一步使资源能够在托管节点处被重用或回收。

The technique of running one or more containers on a virtual machine

Examples can include techniques for running one or more containers on a virtual machine (VM). The example includes the cloning of the first VM to produce second VM. The first VM of the clone can run at least one set of containers that can perform one or more applications individually. In some examples, some clones are stopped at the first or second VM, allowing at least some resources to be provided to support the first VM or second VM to be reused or recovered at the managed nodes. In other examples, second VM migrated from the managed node to the destination host node to further enable the resource to be reused or recycled at the managed node.

【技术实现步骤摘要】
【国外来华专利技术】在虚拟机上运行一个或多个容器的技术
本文描述的示例通常与能够运行一个或多个容器的虚拟机(VM)有关。
技术介绍
用于数据中心的系统虚拟化可能包括被配置为托管虚拟机(VM)的数据中心的节点或服务器。彼此相关的VM可以针对执行与提供网络服务相关联的应用来提供强大的、独立的执行环境。每个VM可以运行针对可能与其他VM安全隔离的不同的客户端的操作系统(OS)。此外,除了应用执行环境之外,每个VM可能具有自己的OS内核。通常称为“容器”的OS虚拟化实现(如Linux容器(LXC)或Docker)可能针对与VM执行环境相比具有稍微弱化的隔离的应用提供多个执行环境。容器可以经由用于进程标识符(PID)、进程间通信(IPC)、存储等的单独的命名空间来维护一些隔离。此外,通过使用多个容器,与单独的VM执行环境相比,可以减少用于新的执行环境的存储器占用空间,因为OS内核可以重用于多个容器。附图说明图1示出了示例第一系统。图2示出了示例写时复制方案。图3示出了示例第一进程。图4示出了示例第二系统。图5示出了示例第二进程。图6示出了装置的示例框图。图7示出了逻辑流程的示例。图8示出了存储介质的示例。图9示出了示例计算平台。具体实施方式如在本公开中所想到的,使用容器可以针对与VM执行环境相比具有稍微弱化的隔离的应用提供多个执行环境。但是容器可以允许在数据中心中更高密度的部署(例如,使用更少的主机资源的更多的执行环境),并且当容器被初始化用于执行应用时,与虚拟机相比可能具有相对较快的提供速度。当今数据中心的典型使用可以是出于灵活性重用VM和容器技术二者,来在VM上共同托管至少一组容器。例如,诸如的大型数据中心运营商可以使用基于Linux+容器+内核的VM(KVM)来在一个节点或服务器中同时托管VM和容器,以供不同的使用。不同的使用可以包括在VM内运行一组容器。在包括在VM内运行一组容器的共同托管操作环境中,可以请求可以加强和/或放宽安全/隔离的新的操作要求或特性。例如,客户端的业务方向和/或时间业务案例需求的变化可以要求更多或更强的隔离。针对更多或更强的隔离的要求可以引起在单独的VM中运行共同托管的容器。当操作特性使两个容器在单独的VM中运行时,可以发生相反的情况。对于这种相反的情况,可以做出用于放松高隔离度的操作特性的请求,使得两个容器可以由相同的VM共同托管,从而具有较低隔离/更高密度的操作特性。作为更高密度操作特性的结果,可以使用较少的节点/服务器资源。用于改变在高隔离度和高密度之间的操作特性的典型解决方案是使用容器迁移技术以及VM复制。作为此解决方案的一部分,将两个共同托管的容器分为两个独立的VM,以提高隔离/安全性,以首先创建第二VM,引导第二VM,准备要拆分的容器和/或其管理器/管理程序,并最终迁移要从共同托管环境中的源容器拆分的容器中的至少一个的操作状态到在第二VM处运行的目标容器。与典型的实时VM迁移不同,容器迁移可以使用预存储器复制阶段以将其整个状态从源迁移到目标容器,并且因此可以在运行在第二VM的目标容器上直接恢复。但是,此容器迁移过程通常需要引导第二VM来启动目标容器的管理器/管理程序,并且此引导可能需要相对长或不可接受的时间(例如,通常为10-30秒)。正是关于这些挑战,需要本文描述的示例。图1示出了示例系统100。在一些示例中,如图1所示,系统100包括主机节点101。主机节点101可以是能够托管诸如VM120的多个虚拟机(VM)的节点或服务器。托管可以包括提供组合的物理资源(未示出),诸如处理器、存储器、存储装置或在主机节点101处维护或可访问的网络资源。另外,在一些示例中,主机节点101可以是具有多个互连节点/服务器的数据中心中的节点/服务器,其可以被布置为针对这些类型的基于云的服务的一个或多个客户或消费者提供基础设施即服务(IaaS)、平台即服务(PaaS)或软件即服务(SaaS)的服务。在一些示例中,如图1所示,主机节点101可以具有主机操作系统(OS)内核110。主机OS内核110可以被布置为实现虚拟机管理器(VMM112)。VMM112可以被配置为作为KVM或管理程序(所谓的类型2模型)来操作以管理由主机节点101托管的用于VM的各种操作和/或配置。或者在另一个实施例中,VMM112可以在主机OS内核110(所谓的类型1模型)下实现,其在该图中未示出,但是该整个概念仍然可以应用并且可以适用于本公开。另外,如图1所示,访客OS内核121可以支持针对单个VM120的执行环境。对于这些示例,VM120可以被布置为运行包括容器122和容器124的至少一组容器。容器122能够执行一个或多个应用(App)123,并且容器124能够执行一个或多个App125。根据一些示例,主机节点101还可以提供资源(例如,诸如网络输入/输出设备、存储器,网络端口等的网络资源)以支持能够将输入/输出分组路由到单独的VM和/或容器的虚拟交换机150。对于这些示例,虚拟交换机150可以在VM120处通过虚拟交换机126路由网络连接,以使得容器122和124能够接收或发送与执行相应应用123和125相关联的分组。VM120还可以包括容器管理器128以促进容器122或124的管理或控制。在一些示例中,如下面更详细描述的,主机节点101的逻辑和/或特征可以(例如,VMM112)接收用于改变容器122或124中的至少一个的操作特性的请求,以使这些容器变得彼此隔离(例如,为了增加安全性)。这些容器的隔离可以通过克隆VM120的主机节点101的逻辑和/或特征来实现,以得到图1所示的第二VM作为VM120-C。VM120-C可以是VM120的单独实例。克隆之后,VM120-C可以被布置为至少在时间上与运行容器122和124的VM120并行地运行容器122和124。对于这些示例,如图1所示,VM120-C还可以包括访客OS内核121-C、虚拟交换机126-C和容器管理器128-C,以支持用于容器122和124的执行环境。根据一些示例,容器的隔离可以包括切换用于容器124的网络连接的主机节点101(例如,虚拟交换机150)的逻辑和/或特征。用于容器124的网络连接的切换可以使得与执行App125的容器124相关联的输入/输出分组从VM120处的虚拟交换机126被重路由到现在经历VM120-C处的虚拟交换机126-C以到达执行App125并且在VM120-C处运行的容器124。然而,没有网络连接被路由到执行App123并且在VM120-C处运行的容器122。此外,为了完成在VM120处容器124与容器122的隔离,诸如虚拟交换机126之类的主机节点101的逻辑和/或特征可以丢弃在切换用于容器124的网络连接之后由容器124执行的App125所生成的输出分组。此外,为了完成在VM120-D处容器122与容器124的隔离,虚拟交换机126-C可以丢弃由容器122执行的App123所生成的输出分组。由于没有分组被路由到在VM120处运行的容器124和在VM120-C运行的容器122,并且所有输出分组都从这些容器中被丢弃,因此它们可以被称为“僵尸”容器。此外,在一些示例中,容器管理器128和128-C可以彼此通信,以指示由哪些VM托管本文档来自技高网...
在虚拟机上运行一个或多个容器的技术

【技术保护点】
包括多个指令的至少一个机器可读介质,所述多个指令响应于由系统在节点处执行而使得所述系统用于:克隆被布置为运行至少一组容器的第一虚拟机(VM),所述至少一组容器包括能够单独地执行相应的第一应用和第二应用的第一容器和第二容器,所述克隆得到第二VM,所述第二VM被布置为至少暂时地与被布置为在所述第一VM处运行的所述第一容器和所述第二容器并行地运行所述第一容器和所述第二容器;切换用于被布置为在所述第一VM处运行的所述第二容器的网络连接,以使得与能够执行所述第二应用的所述第二容器相关联的输入/输出分组从所述第一VM被重路由到所述第二VM;丢弃在所述网络连接的切换之后由被布置为在所述第一VM处运行的所述第二容器执行的所述第二应用所生成的输出分组;以及丢弃由被布置为在所述第二VM处运行的所述第一容器执行的所述第一应用所生成的输出分组。

【技术特征摘要】
【国外来华专利技术】1.包括多个指令的至少一个机器可读介质,所述多个指令响应于由系统在节点处执行而使得所述系统用于:克隆被布置为运行至少一组容器的第一虚拟机(VM),所述至少一组容器包括能够单独地执行相应的第一应用和第二应用的第一容器和第二容器,所述克隆得到第二VM,所述第二VM被布置为至少暂时地与被布置为在所述第一VM处运行的所述第一容器和所述第二容器并行地运行所述第一容器和所述第二容器;切换用于被布置为在所述第一VM处运行的所述第二容器的网络连接,以使得与能够执行所述第二应用的所述第二容器相关联的输入/输出分组从所述第一VM被重路由到所述第二VM;丢弃在所述网络连接的切换之后由被布置为在所述第一VM处运行的所述第二容器执行的所述第二应用所生成的输出分组;以及丢弃由被布置为在所述第二VM处运行的所述第一容器执行的所述第一应用所生成的输出分组。2.根据权利要求1所述的至少一个机器可读介质,所述指令进一步使得所述系统用于:实现写时复制(COW)机制,其用于使所述第二VM响应于由所述第二容器执行的第二应用写入到一个或多个克隆的存储器页面而使用不同的已分配的存储器来用于运行所述第二容器。3.根据权利要求2所述的至少一个机器可读介质,所述指令进一步使所述系统用于:响应于针对所述第一容器或所述第二容器中的至少一个的操作特性的变化来克隆所述第一VM,以使所述第一容器与所述第二容器隔离。4.根据权利要求3所述的至少一个机器可读介质,所述操作特性的变化基于接收到针对隔离的请求,所述针对隔离的请求引起使得所述第一应用和所述第二应用由被布置为在单独的VM上运行的容器执行的要求。5.根据权利要求1所述的至少一个机器可读介质,所述指令进一步使所述系统用于:停止所述第一容器在所述第二VM处运行;停止所述第二容器在所述第一VM处运行;以及回收或移除被分配用于分别在所述第二VM和所述第一VM处运行所述第一容器和所述第二容器的已分配的存储器。6.根据权利要求5所述的至少一个机器可读介质,所述指令进一步使所述系统用于:使所述第二VM迁移到目的地节点;以及回收或移除在所述第二VM迁移到所述目的地节点后被分配用于在所述第二VM处运行所述第二容器的已分配的存储器。7.根据权利要求6所述的至少一个机器可读介质,所述指令进一步使所述系统用于:使得所述第二VM响应于用于平衡所述节点和所述目的地节点之间的工作负载的工作负载平衡请求而被迁移到所述目的地节点。8.根据权利要求5所述的至少一个机器可读介质,所述指令进一步使所述系统用于:切换用于被布置为在第二VM处运行的所述第二容器的网络连接,以使得与能够执行所述第二应用的所述第二容器相关联的输入/输出分组从所述第二VM被重路由到所述第一VM;使得如下的输出分组被丢弃:在所述网络连接从所述第二VM切换到第一VM之后当所述第一容器和所述第二容器在所述第二VM处运行时由所述第一容器和所述第二容器执行的所述第一应用和所述第二应用生成的输出分组;以及停止所述第一容器和所述第二容器在所述第二VM处运行。9.根据权利要求8所述的至少一个机器可读介质,所述指令使所述系统用于响应于针对节点的操作特性的变化而将所述网络连接从所述第二VM切换到所述第一VM,所述针对节点的操作特性的变化使所述第一容器和所述第二容器通过系统被布置为仅由所述第一VM运行。10.根据权利要求9所述的至少一个机器可读介质,所述操作特性的变化基于如下指令:所述指令使所述系统响应于在所述节点处接收到针对密度增加的请求而增加被布置为在所述节点处每VM上运行的容器的密度。11.一种装置,包括:节点处的电路,其被配置为托管第一虚拟机(VM),所述第一虚拟机(VM)被布置为运行至少一组容器,所述至少一组容器包括能够单独地执行相应的第一应用和第二应用的第一容器和第二容器;克隆部件,其由所述电路执行以用于克隆所述第一VM以得到第二VM,所述第二VM被布置为至少暂时地与被布置为在所述第一VM处运行的所述第一容器和所述第二容器并行地运行所述第一容器和所述第二容器;重路由部件,其由所述电路执行以用于切换用于被布置为在所述第一VM处运行的所述第二容器的网络连接,以使与能够执行所述第二应用的所述第二容器相关联的输入/输出分组从所述第一VM被重路由到所述第二VM;第一丢弃部件,其由所述电路执行以用于丢弃在所述网络连接的切换后由被布置为在所述第一VM处运行的所述第二容器执行的所述第二应用所生成的输出分组;以及第二丢弃部件,其由电路执行以...

【专利技术属性】
技术研发人员:董耀祖田坤
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1