CN107329799A - 一种融合Docker容器与KVM虚拟化技术的*** - Google Patents

一种融合Docker容器与KVM虚拟化技术的*** Download PDF

Info

Publication number
CN107329799A
CN107329799A CN201710364522.3A CN201710364522A CN107329799A CN 107329799 A CN107329799 A CN 107329799A CN 201710364522 A CN201710364522 A CN 201710364522A CN 107329799 A CN107329799 A CN 107329799A
Authority
CN
China
Prior art keywords
docker
kvm
virtual machine
management
resource
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
CN201710364522.3A
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.)
SICHUAN ZHONGDIAN VENUS INFORMATION TECHNOLOGY Co Ltd
Information and Telecommunication Branch of State Grid Anhui Electric Power Co Ltd
Original Assignee
SICHUAN ZHONGDIAN VENUS INFORMATION TECHNOLOGY Co Ltd
Information and Telecommunication Branch of State Grid Anhui Electric Power 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 SICHUAN ZHONGDIAN VENUS INFORMATION TECHNOLOGY Co Ltd, Information and Telecommunication Branch of State Grid Anhui Electric Power Co Ltd filed Critical SICHUAN ZHONGDIAN VENUS INFORMATION TECHNOLOGY Co Ltd
Priority to CN201710364522.3A priority Critical patent/CN107329799A/zh
Publication of CN107329799A publication Critical patent/CN107329799A/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/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • G06F13/107Terminal emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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/45562Creating, deleting, cloning 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/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种融合Docker容器与KVM虚拟化技术的***,包括***管理层、资源抽象层、web管理界面和开发者API;所述的开发者API主要用于向开发者提供的***编程接口,将***的功能作为服务向开发者提供;所述的***管理层主要用于对***中的物理资源和虚拟资源进行管理;所述的资源抽象层包括KVM、Docker和适配器;所述的web管理界面是开发的一个用户界面程序,用于在线提交、编辑、删除相关栏目的内容后台管理程序。本发明的有益效果是:本发明能够对***中的物理资源和虚拟资源进行管理,针对用户的不同需要响应用户请求,完成虚拟机的创建、运行、停止、删除等整个生命周期的管理工作,其功能多样,实用性强、适用范围广。

Description

一种融合Docker容器与KVM虚拟化技术的***
技术领域
本发明涉及虚拟化技术领域,具体的说,是一种融合Docker容器与KVM虚拟化技术的***。
背景技术
虚拟化是一种综合利用软硬件分区、时间片轮转、机器仿真等技术将一台物理主机虚拟化为多个应用执行环境的框架或者方法。利用虚拟化技术可以创建某种资源的虚拟版本,这些资源包括硬件平台、操作***、存储设备、计算机网络等。
为了满足用户的不同需求,数据中心采用不同的虚拟化实现技术。这样导致了采用虚拟化技术的数据中心存在异构资源的可能。所以,异构资源之间的互操作性缺乏,遵循的标准也各不相同,这就提高了资源申请及管理的复杂性。
近年来云计算发展迅速,已经在很多领域进行了广泛的运用。云计算的关键技术是虚拟化技术,这是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。在实际的生产环境中,虚拟化在节约硬件及管理成本、提高资源利用率等方面都起到了非常重要的作用。
对虚拟化的研究可以追溯到二十世纪六十年代的大型机时期。二十世纪六十年代之前,大型机***每次只能运行一个应用程序。而人们对分时***的迫切需求导致了对虚拟化技术的探索。IBM的7044是最早采用虚拟化技术的大型机之一,解决了早期操作***只能够单任务处理而不能分时多任务处理的问题。之后,各种机型都开始使用虚拟化技术,虚拟化技术得到了一定程度的发展。
1.全虚拟化(Full Virtualization)也称为原始虚拟化技术,该模型使用虚拟机协调guest操作***和原始硬件,VMM在guest操作***和硬件之间用于工作协调,一些受保护指令必须由Hypervisor(虚拟机管理程序)来捕获处理。全虚拟化的运行速度要快于硬件模拟,但是性能方面稍差一些,因为Hypervisor需要占用一些资源。
2.半虚拟化(Para Virtualization)半虚拟化是另一种类似于全虚拟化的技术,它使用Hypervisor分享存取底层的硬件,但是它的guest操作***集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作***自身能够与虚拟进程进行很好的协作。半虚拟化需要guest操作***做一些修改,使guest操作***意识到自己是处于虚拟化环境的,但是半虚拟化提供了与原操作***相近的性能。
以下是KVM和Docker类型的对虚拟机技术进行简单介绍,对这两种不同虚拟化实现技术的基本原理进行研究。
1、KVM(Kernel-based Virtual Machine)
KVM的意思是基于内核的虚拟机。KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。
KVM是一个独特的管理程序,通过将KVM作为一个内核模块实现,在虚拟环境下Linux内核集成管理程序将其作为一个可加载的模块可以简化管理和提升性能。在这种模式下,每个虚拟机都是一个常规的Linux进程,通过Linux调度程序进行调度。
2、Docker容器
Docker容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括***。
全虚拟化技术并不需要对客户机操作***进行任何修改,在全虚拟化环境下的虚拟机并不知道自己不是运行在真实的物理硬件之上,这种方式的虚拟化实现较为简舉,由于不对操作***进行任何修改所以操作***可以很方便在真实和虚拟环境下进行迁移,并且可以提供很好的隔离性,安全性也比较高,但是由于全虚拟化是完全由软件实现,所以它的运行效率较低。
而半虚拟化模式则同全虚拟化不同,它需要修改客户机操作***,经过修改之后的客户机操作***知道己并不是运行在真实的物理硬件环境之下而是运行于虚拟环境中。相对于全虚拟化,由于半虚拟化的客户操作***是专门为虚拟化而进行改造的,所以它的性能表现更为出色。但是半虚拟化操作***的可迁移性有所降低,而且因为需要对进行较为深入的修改,因此它需要持续不断的支持和维护。
随着硬件技术的发展,出现了一种新的虚拟化技术:硬件辅助虚拟化。它是借助于特殊的处理器来完成虚拟化工作的。一种新的执行模式(root模式)被添加到了处理器中。硬件辅助虚拟化的产品有KVM等。
除了以上的分类方法以外,虚拟化还可以分为程序级虚拟化和***级虚拟化。程序级虚拟化的目的是为了运行应用程序,它在应用层创建了种虚拟机,应用程序退出时,该虚拟机也会自动结束。
而***级虚拟化则包括一个虚拟化层--Hypervisor,Hypervisor使得原本独占物理机资源的操作***可以被安装在多个虚拟机之中,从而实现同时在一台物理主机之上运行多个客户机操作***实例,这些虚拟机之间共享物理主机资源的硬件,Hypervisor负责各种资源的分配。
相对于其他虚拟化技术,KVM具有很多优势:
1.可以直接与内核交互。
2.各大linux的发行版本中都釆用了KVM作为缺省的虚拟化实现技术。
3.linux社区中的相关开发工作较为活跃。
4.具有很好的性能,通过对v2v、p2v等技术的实现以及管理虚拟机的各种
5.开源工具,KVM已经成为VMware产品的有力竞争者。
6.很多开源云平台将KVM作为其缺省Hypervisor。
Docker相对于虚拟机技术的最大优势就是它的轻量级特性。这种轻量级虚拟化的特点是由LXC(linux container)技术来实现的。在多虚拟机技术中,一台物理主机之上的每一个虚拟机内都运行着一个完整的操作***,这样很多操作都是操作***重量级的,比如虚拟机发生宕机等故障时,需要迁移或者重建整个虚拟机到其他正常的物理主机之上。而同一台物理主机之上的多个之间却是共享操作***内核的,每一个容器都是由多个进程组成的进程组,这样对容器的调度、迁移、启动、停止等都是进程级别,可以明显减少***的资源消耗,提高运行效率,进而同样的一台物理主机之上便可以运行更多的应用。
发明内容
本发明的目的在于提供一种融合Docker容器与KVM虚拟化技术的***。
本发明通过下述技术方案实现:一种融合Docker容器与KVM虚拟化技术的***,包括***管理层、资源抽象层、web管理界面和开发者API;
所述的开发者API主要用于向开发者提供的***编程接口,将***的功能作为服务向开发者提供,使开发者使用这些服务来实现自己的应用开发;
所述的***管理层主要用于对***中的物理资源和虚拟资源进行管理,针对用户的不同需要响应用户请求,完成虚拟机的创建、运行、停止、删除等整个生命周期的管理工作,另外针对Docker集群中的应用提供了对高可用性的支持;
所述的资源抽象层包括KVM、Docker、针对KVM和Docker虚拟化技术提供的相应适配器,所述的资源抽象层向上层的***管理层提供统一的接口,屏蔽底层实现的差异;
所述的web管理界面是开发的一个用户界面程序,用于在线提交、编辑、删除相关栏目的内容后台管理程序。
所述的***管理层包括物理机管理模块、虚拟机管理模块、镜像模板管理模块和高可用性模块;
所述的物理机管理模块负责对***中的物理主机资源进行管理,包括查看***物理主机清单、增加物理主机和删除物理主机操作;
所述的虚拟机管理模块负责对***中的虚拟机资源进行管理,主要包括显示/获取***所有虚拟机清单、根据用户请求创建不同类型的虚拟机、对已存在的虚拟机进行删除、启动、停止和重启的管理操作;
所述的镜像模板管理模块通过采用共享存储或者单独的服务器支持镜像和模板资源在整个集群环境下共享,在KVM中,所述的镜像是创建虚拟机时虚拟机所对应的操作***,模板则指明了虚拟机的处理器、内存、硬盘等硬件配置信息,所述的Docker创建虚拟机时的硬件配置信息通过在创建时直接指定相应参数来实现;
所述的高可用性模块采用高可用性方案减少***的停机时间以提高***和应用的可用性。
所述的物理机管理模块对物理主机资源的管理包括:
针对单台物理主机的管理,在要添加到***中的物理主机之上安装Hypervisor;
针对物理机集群的管理,让物理层之上的***了解整个平台物理主机的运行状况。
所述的镜像模板管理模块针对KVM和Docker分别釆用不同的方案支持镜像和模板资源在整个集群环境下共享:
针对KVM:使用网络文件***NFS,所述的NFS允许网络中的计算机之间通过TCP/IP网络共享资源,NFS包括服务器端和客户端,所述的服务器端用于安装rpcbind和nfs服务、修改配置文件、添加共享目录和启动服务;所述的客户端用于创建挂载点和挂载NFS共享目录;
针对Docker,采用搭建本地私有镜像库来实现,其具体是指采用Registry,Registry是Docker提供的在本地环境下运行的提供镜像托管的服务,Registry的搭建包括安装Registry所需软件、修改配置文件、新建存储目录和启动服务等步骤。
所述的资源抽象层还包括KVM适配层、KVM集群、Docker适配层和Docker集群。
所述的KVM适配层用于对***管理层实现获取虚拟机清单、创建虚拟机、删除虚拟机以及启动、停止和重启虚拟机等操作的接口提供相应的适配功能;***管理层针对KVM调用KVM适配器,KVM适配器接收到请求之后向KVM Master结点建立连接,并向KVM Master请求数据,KVM适配器在接收到KVM Master结点返回的数据后,KVM适配器对数据进行解析,针对***管理层的接口封装成***管理层所需要的数据格式并返回。
所述的Docker适配层用于对***管理层实现获取虚拟机清单、创建虚拟机、删除虚拟机以及启动、停止和重启虚拟机等操作的接口提供相应的适配功能;所述的***管理层针对Docker调用Docker适配器,Docker适配器接收到请求之后与Docker Daemon建立连接,并将请求转发给Docker Daemon,Docker适配器在接收到Docker Daemon返回的数据后,Docker适配器对数据进行解析,针对***管理层的接口封装成***管理层所需要的数据格式并返回。
所述的Docker集群由若干台主机构成,所述的高可用性方案选择集群工作方式进行工作,***启动时,Docker集群中的监控程序monitor先收集***信息:从数据库中读取主机信息,分别与各个主机之上的Docker容器进行交互,获得其上的容器信息并保存在内存数据结构之中;之后***进入监控状态:monitor每隔一定的时间,会读取每个主机之上容器的运行状态,当发现容器处于非运行状态时,便会启动迁移操作,将出现问题的Docker容器在另一台主机之上重新建立起来。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明利用Docker容器,能够在一个单一的容器内捆绑了关键的应用程序组件,这也就让Docker容器能够以在不同平台和云计算之间实现便携性,有利于防止因日常维护操作所导致的有计划的停机或者是因突发的***崩淸所导致的非计划的停机导致工作效率降低;
(2)本发明通过使***管理层与适配层之间采用统一接口,这样当需要向***中添加新的虚拟化技术实现时,只需要提供相应的适配层即可,增强了***的可扩展性;
(3)本发明能够对***中的物理资源和虚拟资源进行管理,针对用户的不同需要响应用户请求,完成虚拟机的创建、运行、停止、删除等整个生命周期的管理工作,其功能多样,实用性强、适用范围广;
(4)本发明使用的Docker还能够让使用微服务的应用程序得益,所谓微服务就是把应用程序分解成为专门开发的更小服务,这些服务使用通用的RESTAPI来进行交互,使用完全封装Docker容器的开发人员可以针对采用微服务的应用程序开发出一个更为高效的分发模式。
附图说明
图1为本发明的***框架图;
图2为web管理界面的示意图;
图3为虚拟机管理模块显示虚拟机清单的流程图;
图4为虚拟机管理模块创建虚拟机的流程图;
图5为虚拟机管理模块删除虚拟机的流程图;
图6为Docker集群的结构示意图;
图7为KVM适配器的工作流程图;
图8为Docker适配器的工作流程图;
图9为物理机管理模块添加主机时序图;
图10为开发者API获取虚拟机清单的核心代码A;
图11为开发者API获取虚拟机清单的核心代码B;
图12为KVM适配层核心代码A;
图13为KVM适配层核心代码B;
图14为KVM适配层核心代码C;
图15为Docker适配层核心代码。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例:
如图1所示,本实施例中,一种融合Docker容器与KVM虚拟化技术的***,包括***管理层、资源抽象层、web管理界面和开发者API。
本实施例中,所述的开发者API主要用于向开发者提供的***编程接口,将***的功能作为服务向开发者提供,使开发者使用这些服务来实现自己的应用开发。开发者API主要针对KVM虚拟机类型,采用REST方式,结来以XML的形式反馈给开发者。
***实现的开发者API包括以下内容:
1、针对物理主机的获取物理主机清单以及添加、删除物理主机功能;
2、针对虚拟机的获取虚拟机清单以及创建、删除、启动、停止和重启虚拟机功能;
3、针对镜像的获取镜像清单以及添加、删除、修改镜像功能;
4、针对模版的获取模版清单以及添加、删除、修改模版功能;
5、针对网络的获取网络清单以及添加、删除、修改网络功能。
以获取虚拟机清单为例,核心代码如图10、图11所示:
实现其他诸如获取物理主机清单、添加、删除物理主机功能;创建、删除、启动、停止、重启虚拟机功能;获取镜像清单以及添加、删除、修改镜像功能;获取模版清单以及添加、删除、修改模版功能;获取网络清单以及添加、删除、修改网络功能等功能的核心代码通过对上述核心代码利用本领域工作人员的公知常识进行常规更改即可实现,故不赘述。
本实施例中,所述的***管理层主要用于对***中的物理资源和虚拟资源进行管理,针对用户的不同需要响应用户请求,完成虚拟机的创建、运行、停止、删除等整个生命周期的管理工作,另外针对Docker集群中的应用提供了对高可用性的支持。本实施例中,所述的***管理层包括物理机管理模块、虚拟机管理模块、镜像模板管理模块和高可用性模块。
本实施例中,所述的物理机管理模块负责对***中的物理主机资源进行管理,包括查看***物理主机清单、增加物理主机和删除物理主机操作。所述的物理机管理模块对物理主机资源的管理包括两个部分:
第一部分:针对单台物理主机的管理,主要指在要添加到***中的物理主机之上安装Hypervisor;
第二部分:针对物理机集群的管理,让物理层之上的***了解整个平台物理主机的运行状况。
物理机集群信息是通过数据库来存储的,通过记录主机网络地址、服务端口、Hypervisor类型以及用户名和密码等信息来向***反馈主机状况。当向***添加主机时,***会根据Hypervisor类型对主机进行验证,保证主机的可用性。
物理主机数据库表设计如下表1:
表1
物理机管理模块主要是对数据库的增删改查操作,在向***中添加物理主机时还需要对物理主机的可用性进行验证,例如添加Hypervisor类型为Docker的主机,需要验证Docker Daemon服务是否可用,默认端口为2375。
添加主机时序图如图9所示。其中:
HostAction:HostAction对象负责接收用户的请求,对用户提交的一些参数信息进行校验,校验通过后调用add()方法添加主机。
HostService:HostService对象具体处理添加主机的业务逻辑。当添加主机的Hypervisor类型为Docker时,首先调用check()方法对主机的可用性进行检查,检查Docker Daemon服务是否可用,检查通过后调用add()方法将数据保存到数据库中。
HostDao:负责将主机信息持久化到数据库中。
本实施例中,所述的虚拟机管理模块负责对***中的虚拟机资源进行管理,主要包括以下内容:
1.显示***所有虚拟机清单,虚拟机清单主要包括ID、状态、类型和网络地址等,具体流程如图3所示;
2.根据用户请求创建不同类型的虚拟机,具体流程如图4所示;
3.对已存在的虚拟机进行删除、启动、停止和重启的管理操作,具体流程如图5所示。
对已存在的启动、停止和重启等管理操作本领域的技术人员根据所知的公知常识及专业知识参考本方案
由于***中存在异构类型的资源,所以首先需要对异构资源进行抽象,向***管理层提供一个统的资源表示方式。虚拟机的资源抽象需要包含***管理所必须的基本信息以及用户所需要的必要信息,如图2所示,主要为以下内容:
1.虚拟机ID;
2.名称;
3.所在物理机网络地址;
4.虚拟机网络地址,对于Docker以及主机IP加端口号的形式表示;
5.虚拟机运行状态;
6.创建时间;
7.虚拟机类型,例如KVM或Docker。
本实施例中,所述的镜像模板管理模块通过采用共享存储或者单独的服务器支持镜像和模板资源在整个集群环境下共享。在KVM中,所述的镜像是创建虚拟机时虚拟机所对应的操作***,模板则指明了虚拟机的处理器、内存、硬盘等硬件配置信息。所述的Docker创建虚拟机时的硬件配置信息通过在创建时直接指定相应参数来实现。
所述的镜像模板管理模块针对KVM和Docker分别釆用不同的方案支持镜像和模板资源在整个集群环境下共享:
针对KVM:使用网络文件***NFS,所述的NFS允许网络中的计算机之间通过TCP/IP网络共享资源,NFS包括服务器端和客户端,所述的服务器端用于安装rpcbind和nfs服务、修改配置文件、添加共享目录和启动服务;所述的客户端用于创建挂载点和挂载NFS共享目录;
针对Docker,采用搭建本地私有镜像库来实现,其具体是指采用Registry,Registry是Docker提供的在本地环境下运行的提供镜像托管的服务,Registry的搭建包括安装Registry所需软件、修改配置文件、新建存储目录和启动服务等步骤。
所述的高可用性模块采用高可用性方案减少***的停机时间以提高***和应用的可用性。这些停机时间包括因日常维护操作所导致的有计划的停机或者是因突发的***崩淸所导致的非计划的停机。很多企业的核心计算机***都会釆用高可用性***来防止故障停机的发生。
如图6所示,所述的Docker集群由若干台主机构成,所述的高可用性方案选择集群工作方式进行工作,***启动时,Docker集群中的监控程序monitor先收集***信息:从数据库中读取主机信息,分别与各个主机之上的Docker容器进行交互,获得其上的容器信息并保存在内存数据结构之中;之后***进入监控状态:monitor每隔一定的时间,会读取每个主机之上容器的运行状态,当发现容器处于非运行状态时,便会启动迁移操作,将出现问题的Docker容器在另一台主机之上重新建立起来。
所述的资源抽象层包括KVM、Docker、针对KVM和Docker虚拟化技术提供的相应适配器,所述的适配器包括KVM适配层和Docker适配层,所述的资源抽象层向上层的***管理层提供统一的接口,屏蔽底层实现的差异。
如图7所示,所述的KVM适配层用于对***管理层实现获取虚拟机清单、创建虚拟机、删除虚拟机以及启动、停止和重启虚拟机等操作的接口提供相应的适配功能;***管理层针对KVM调用KVM适配器,KVM适配器接收到请求之后向KVM Master结点建立连接,并向KVM Master请求数据,KVM适配器在接收到KVM Master结点返回的数据后,KVM适配器对数据进行解析,针对***管理层的接口封装成***管理层所需要的数据格式并返回。
KVM适配层核心代码如图12、图13、图14所示。
allInfo函数负责处理KVM虚拟机清单请求,首先构造VMResource的列表作为响应数据的存储结构,然后通过调用vmService的allInfo函数向Master求数据,请求成功后对所获得的结果进行解析,将其封装成VMResource的形式,然后返回。
如图8所示,所述的Docker适配层用于对***管理层实现获取虚拟机清单、创建虚拟机、删除虚拟机以及启动、停止和重启虚拟机等操作的接口提供相应的适配功能;所述的***管理层针对Docker调用Docker适配器,Docker适配器接收到请求之后与DockerDaemon建立连接,并将请求转发给Docker Daemon,Docker适配器在接收到Docker Daemon返回的数据后,Docker适配器对数据进行解析,针对***管理层的接口封装成***管理层所需要的数据格式并返回。
Docker适配层核心代码如图15所示。
所述的web管理界面是开发的一个用户界面程序,用于在线提交、编辑、删除相关栏目的内容后台管理程序。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

Claims (8)

1.一种融合Docker容器与KVM虚拟化技术的***,其特征在于:包括***管理层、资源抽象层、web管理界面和开发者API;
所述的开发者API主要用于向开发者提供的***编程接口,将***的功能作为服务向开发者提供,使开发者使用这些服务来实现自己的应用开发;
所述的***管理层主要用于对***中的物理资源和虚拟资源进行管理,针对用户的不同需要响应用户请求,完成虚拟机的创建、运行、停止、删除等整个生命周期的管理工作,另外针对Docker集群中的应用提供了对高可用性的支持;所述的资源抽象层包括KVM、Docker、针对KVM和Docker虚拟化技术提供的相应适配器,所述的资源抽象层向上层的***管理层提供统一的接口,屏蔽底层实现的差异;
所述的web管理界面是开发的一个用户界面程序,用于在线提交、编辑、删除相关栏目的内容后台管理程序。
2.根据权利要求1所述的一种融合Docker容器与KVM虚拟化技术的***,其特征在于:所述的***管理层包括物理机管理模块、虚拟机管理模块、镜像模板管理模块和高可用性模块;
所述的物理机管理模块负责对***中的物理主机资源进行管理,包括查看***物理主机清单、增加物理主机和删除物理主机操作;
所述的虚拟机管理模块负责对***中的虚拟机资源进行管理,主要包括显示/获取***所有虚拟机清单、根据用户请求创建不同类型的虚拟机、对已存在的虚拟机进行删除、启动、停止和重启的管理操作;
所述的镜像模板管理模块通过采用共享存储或者单独的服务器支持镜像和模板资源在整个集群环境下共享,在KVM中,所述的镜像是创建虚拟机时虚拟机所对应的操作***,模板则指明了虚拟机的处理器、内存、硬盘等硬件配置信息,所述的Docker创建虚拟机时的硬件配置信息通过在创建时直接指定相应参数来实现;
所述的高可用性模块采用高可用性方案减少***的停机时间以提高***和应用的可用性。
3.根据权利要求2所述的一种融合Docker容器与KVM虚拟化技术的***,其特征在于:所述的物理机管理模块对物理主机资源的管理包括:
针对单台物理主机的管理,在要添加到***中的物理主机之上安装Hypervisor;
针对物理机集群的管理,让物理层之上的***了解整个平台物理主机的运行状况。
4.根据权利要求2所述的一种融合Docker容器与KVM虚拟化技术的***,其特征在于:所述的镜像模板管理模块针对KVM和Docker分别釆用不同的方案支持镜像和模板资源在整个集群环境下共享:
针对KVM:使用网络文件***NFS,所述的NFS允许网络中的计算机之间通过TCP/IP网络共享资源,NFS包括服务器端和客户端,所述的服务器端用于安装rpcbind和nfs服务、修改配置文件、添加共享目录和启动服务;所述的客户端用于创建挂载点和挂载NFS共享目录;
针对Docker,采用搭建本地私有镜像库来实现,其具体是指采用Registry,Registry是Docker提供的在本地环境下运行的提供镜像托管的服务,Registry的搭建包括安装Registry所需软件、修改配置文件、新建存储目录和启动服务等步骤。
5.根据权利要求2、3、4中任一项所述的一种融合Docker容器与KVM虚拟化技术的***,其特征在于:所述的资源抽象层还包括KVM适配层、KVM集群、Docker适配层和Docker集群。
6.根据权利要求5所述的一种融合Docker容器与KVM虚拟化技术的***,其特征在于:所述的KVM适配层用于对***管理层实现获取虚拟机清单、创建虚拟机、删除虚拟机以及启动、停止和重启虚拟机等操作的接口提供相应的适配功能;***管理层针对KVM调用KVM适配器,KVM适配器接收到请求之后向KVM Master结点建立连接,并向KVM Master请求数据,KVM适配器在接收到KVM Master结点返回的数据后,KVM适配器对数据进行解析,针对***管理层的接口封装成***管理层所需要的数据格式并返回。
7.根据权利要求5所述的一种融合Docker容器与KVM虚拟化技术的***,其特征在于:所述的Docker适配层用于对***管理层实现获取虚拟机清单、创建虚拟机、删除虚拟机以及启动、停止和重启虚拟机等操作的接口提供相应的适配功能;所述的***管理层针对Docker调用Docker适配器,Docker适配器接收到请求之后与Docker Daemon建立连接,并将请求转发给Docker Daemon,Docker适配器在接收到Docker Daemon返回的数据后,Docker适配器对数据进行解析,针对***管理层的接口封装成***管理层所需要的数据格式并返回。
8.根据权利要求6或7所述的一种融合Docker容器与KVM虚拟化技术的***,其特征在于:所述的Docker集群由若干台主机构成,所述的高可用性方案选择集群工作方式进行工作,***启动时,Docker集群中的监控程序monitor先收集***信息:从数据库中读取主机信息,分别与各个主机之上的Docker容器进行交互,获得其上的容器信息并保存在内存数据结构之中;之后***进入监控状态:monitor每隔一定的时间,会读取每个主机之上容器的运行状态,当发现容器处于非运行状态时,便会启动迁移操作,将出现问题的Docker容器在另一台主机之上重新建立起来。
CN201710364522.3A 2017-05-22 2017-05-22 一种融合Docker容器与KVM虚拟化技术的*** Pending CN107329799A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710364522.3A CN107329799A (zh) 2017-05-22 2017-05-22 一种融合Docker容器与KVM虚拟化技术的***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710364522.3A CN107329799A (zh) 2017-05-22 2017-05-22 一种融合Docker容器与KVM虚拟化技术的***

Publications (1)

Publication Number Publication Date
CN107329799A true CN107329799A (zh) 2017-11-07

Family

ID=60193603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710364522.3A Pending CN107329799A (zh) 2017-05-22 2017-05-22 一种融合Docker容器与KVM虚拟化技术的***

Country Status (1)

Country Link
CN (1) CN107329799A (zh)

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108052371A (zh) * 2017-11-20 2018-05-18 卡斯柯信号有限公司 基于虚拟化技术的铁路tdcs/ctc***及其应用
CN108089912A (zh) * 2017-12-19 2018-05-29 深信服科技股份有限公司 一种虚拟机与容器超融合***构建方法及装置
CN108733452A (zh) * 2018-04-16 2018-11-02 南京维拓科技股份有限公司 基于web的云计算资源管理***
CN109274722A (zh) * 2018-08-24 2019-01-25 北京北信源信息安全技术有限公司 数据共享方法、装置以及电子设备
CN109388476A (zh) * 2018-10-12 2019-02-26 西安交通大学 基于多目标生物地理学优化算法的Docker与虚拟机聚合放置方法
CN109408199A (zh) * 2018-10-22 2019-03-01 北京瑞德云网科技有限公司 一种实验课程的实现方法
CN109471621A (zh) * 2018-09-26 2019-03-15 西安电子科技大学工程技术研究院有限公司 一种基于大数据的Linux***下的工具构建方法
CN109634546A (zh) * 2018-12-07 2019-04-16 艾体威尔电子技术(北京)有限公司 一种基于容器的多屏支付装置
CN110569101A (zh) * 2018-06-05 2019-12-13 华为技术有限公司 管理容器服务的方法和装置
CN110764877A (zh) * 2019-11-07 2020-02-07 成都国腾实业集团有限公司 一种基于云计算的虚拟实验室***及方法
CN111061540A (zh) * 2019-11-27 2020-04-24 北京计算机技术及应用研究所 一种基于容器技术的应用虚拟化方法及***
CN111143054A (zh) * 2019-12-10 2020-05-12 北京计算机技术及应用研究所 一种异构国产cpu资源融合管理方法
CN111274111A (zh) * 2020-01-20 2020-06-12 西安交通大学 一种用于微服务老化的预测与抗衰方法
CN111506383A (zh) * 2019-01-30 2020-08-07 广州泰迪智能科技有限公司 一种基于固态硬盘的大数据与人工智能教学实训环境和资源集成方法
CN111656320A (zh) * 2018-01-26 2020-09-11 智新科技通信技术株式会社 机器人应用管理装置、***、方法及程序
CN111857656A (zh) * 2020-06-12 2020-10-30 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质
CN111988367A (zh) * 2020-07-30 2020-11-24 苏州浪潮智能科技有限公司 一种服务器集群中单服务器的管理方法及***
CN112506621A (zh) * 2020-12-29 2021-03-16 浪潮云信息技术股份公司 一种容器化管理虚机生命周期的实现方法及***
CN113326098A (zh) * 2021-06-11 2021-08-31 成都精灵云科技有限公司 支持kvm虚拟化与容器虚拟化的云管平台
CN113612688A (zh) * 2021-07-14 2021-11-05 曙光信息产业(北京)有限公司 分布式软件定义网络控制***及其构建方法
CN113900773A (zh) * 2021-10-25 2022-01-07 北京计算机技术及应用研究所 一种基于国产平台虚拟机和容器的超融合调度方法
CN114546667A (zh) * 2022-04-25 2022-05-27 杭州筋斗腾云科技有限公司 即时办公空间的管理方法、***及计算机设备
CN115546008A (zh) * 2022-11-25 2022-12-30 武汉兴和云网科技股份有限公司 一种gpu虚拟化管理***和方法
CN116820686A (zh) * 2023-08-29 2023-09-29 苏州浪潮智能科技有限公司 物理机的部署方法、虚拟机和容器统一监控的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049773A (zh) * 2012-12-14 2013-04-17 华南理工大学 一种rfid设备与传感设备集成及数据融合方法
CN103699430A (zh) * 2014-01-06 2014-04-02 山东大学 基于j2ee架构的远程kvm虚拟机管理***的工作方法
CN105577807A (zh) * 2015-12-31 2016-05-11 天津申洋科技有限公司 云计算数据资源调度web管理平台
US20160259665A1 (en) * 2015-03-05 2016-09-08 Vmware, Inc. Methods and apparatus to select virtualization environments for migration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049773A (zh) * 2012-12-14 2013-04-17 华南理工大学 一种rfid设备与传感设备集成及数据融合方法
CN103699430A (zh) * 2014-01-06 2014-04-02 山东大学 基于j2ee架构的远程kvm虚拟机管理***的工作方法
US20160259665A1 (en) * 2015-03-05 2016-09-08 Vmware, Inc. Methods and apparatus to select virtualization environments for migration
CN105577807A (zh) * 2015-12-31 2016-05-11 天津申洋科技有限公司 云计算数据资源调度web管理平台

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
尹文开: "云平台中虚拟机生命周期管理的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108052371B (zh) * 2017-11-20 2022-11-01 卡斯柯信号有限公司 基于虚拟化技术的铁路tdcs/ctc***及其应用
CN108052371A (zh) * 2017-11-20 2018-05-18 卡斯柯信号有限公司 基于虚拟化技术的铁路tdcs/ctc***及其应用
CN108089912A (zh) * 2017-12-19 2018-05-29 深信服科技股份有限公司 一种虚拟机与容器超融合***构建方法及装置
CN111656320A (zh) * 2018-01-26 2020-09-11 智新科技通信技术株式会社 机器人应用管理装置、***、方法及程序
CN108733452A (zh) * 2018-04-16 2018-11-02 南京维拓科技股份有限公司 基于web的云计算资源管理***
CN108733452B (zh) * 2018-04-16 2021-05-14 南京维拓科技股份有限公司 基于web的云计算资源管理***
CN110569101B (zh) * 2018-06-05 2022-05-31 华为技术有限公司 管理容器服务的方法和装置
CN110569101A (zh) * 2018-06-05 2019-12-13 华为技术有限公司 管理容器服务的方法和装置
US11354167B2 (en) 2018-06-05 2022-06-07 Huawei Technologies Co., Ltd. Container service management method and apparatus
CN109274722A (zh) * 2018-08-24 2019-01-25 北京北信源信息安全技术有限公司 数据共享方法、装置以及电子设备
CN109274722B (zh) * 2018-08-24 2021-11-30 北京北信源信息安全技术有限公司 数据共享方法、装置以及电子设备
CN109471621A (zh) * 2018-09-26 2019-03-15 西安电子科技大学工程技术研究院有限公司 一种基于大数据的Linux***下的工具构建方法
CN109471621B (zh) * 2018-09-26 2021-11-30 西安电子科技大学工程技术研究院有限公司 一种基于大数据的Linux***下的工具构建方法
CN109388476A (zh) * 2018-10-12 2019-02-26 西安交通大学 基于多目标生物地理学优化算法的Docker与虚拟机聚合放置方法
CN109408199A (zh) * 2018-10-22 2019-03-01 北京瑞德云网科技有限公司 一种实验课程的实现方法
CN109634546A (zh) * 2018-12-07 2019-04-16 艾体威尔电子技术(北京)有限公司 一种基于容器的多屏支付装置
CN111506383A (zh) * 2019-01-30 2020-08-07 广州泰迪智能科技有限公司 一种基于固态硬盘的大数据与人工智能教学实训环境和资源集成方法
CN110764877B (zh) * 2019-11-07 2023-11-17 成都国腾实业集团有限公司 一种基于云计算的虚拟实验室***及方法
CN110764877A (zh) * 2019-11-07 2020-02-07 成都国腾实业集团有限公司 一种基于云计算的虚拟实验室***及方法
CN111061540B (zh) * 2019-11-27 2023-05-23 北京计算机技术及应用研究所 一种基于容器技术的应用虚拟化方法及***
CN111061540A (zh) * 2019-11-27 2020-04-24 北京计算机技术及应用研究所 一种基于容器技术的应用虚拟化方法及***
CN111143054B (zh) * 2019-12-10 2024-01-30 北京计算机技术及应用研究所 一种异构国产cpu资源融合管理方法
CN111143054A (zh) * 2019-12-10 2020-05-12 北京计算机技术及应用研究所 一种异构国产cpu资源融合管理方法
CN111274111B (zh) * 2020-01-20 2021-11-19 西安交通大学 一种用于微服务老化的预测与抗衰方法
CN111274111A (zh) * 2020-01-20 2020-06-12 西安交通大学 一种用于微服务老化的预测与抗衰方法
CN111857656A (zh) * 2020-06-12 2020-10-30 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质
CN111857656B (zh) * 2020-06-12 2023-08-18 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质
CN111988367B (zh) * 2020-07-30 2022-05-10 苏州浪潮智能科技有限公司 一种服务器集群中单服务器的管理方法及***
CN111988367A (zh) * 2020-07-30 2020-11-24 苏州浪潮智能科技有限公司 一种服务器集群中单服务器的管理方法及***
CN112506621A (zh) * 2020-12-29 2021-03-16 浪潮云信息技术股份公司 一种容器化管理虚机生命周期的实现方法及***
CN113326098A (zh) * 2021-06-11 2021-08-31 成都精灵云科技有限公司 支持kvm虚拟化与容器虚拟化的云管平台
CN113326098B (zh) * 2021-06-11 2023-11-14 成都精灵云科技有限公司 支持kvm虚拟化与容器虚拟化的云管平台
CN113612688A (zh) * 2021-07-14 2021-11-05 曙光信息产业(北京)有限公司 分布式软件定义网络控制***及其构建方法
CN113900773A (zh) * 2021-10-25 2022-01-07 北京计算机技术及应用研究所 一种基于国产平台虚拟机和容器的超融合调度方法
CN113900773B (zh) * 2021-10-25 2024-04-09 北京计算机技术及应用研究所 一种基于国产平台虚拟机和容器的超融合调度方法
CN114546667A (zh) * 2022-04-25 2022-05-27 杭州筋斗腾云科技有限公司 即时办公空间的管理方法、***及计算机设备
CN115546008B (zh) * 2022-11-25 2023-03-31 武汉兴和云网科技股份有限公司 一种gpu虚拟化管理***和方法
CN115546008A (zh) * 2022-11-25 2022-12-30 武汉兴和云网科技股份有限公司 一种gpu虚拟化管理***和方法
CN116820686A (zh) * 2023-08-29 2023-09-29 苏州浪潮智能科技有限公司 物理机的部署方法、虚拟机和容器统一监控的方法及装置
CN116820686B (zh) * 2023-08-29 2024-01-09 苏州浪潮智能科技有限公司 物理机的部署方法、虚拟机和容器统一监控的方法及装置

Similar Documents

Publication Publication Date Title
CN107329799A (zh) 一种融合Docker容器与KVM虚拟化技术的***
US11853748B2 (en) Methods and systems that share resources among multiple, interdependent release pipelines
US20210297476A1 (en) Multi-tenant-cloud-aggregation and application-support system
Zheng et al. Integrating containers into workflows: A case study using makeflow, work queue, and docker
US20200356403A1 (en) Methods and systems that verify endpoints and external tasks in release-pipeline prior to execution
US11210745B2 (en) Method and system for providing inter-cloud services
US20200329091A1 (en) Methods and systems that use feedback to distribute and manage alerts
US11303508B2 (en) Deployment state based configuration generation
US9703890B2 (en) Method and system that determine whether or not two graph-like representations of two systems describe equivalent systems
US10942790B2 (en) Automated-application-release-management subsystem that incorporates script tasks within application-release-management pipelines
CN102103518B (zh) 一种在虚拟化环境中管理资源的***及其实现方法
US9672071B2 (en) Method and system for distributed processing of HTTP requests
CN109062655A (zh) 一种容器化云平台及服务器
US10157044B2 (en) Automated application-release-management subsystem
US10057377B2 (en) Dynamic resolution of servers in a distributed environment
US20190340048A1 (en) Methods and systems to manage alerts in a distributed computing system
CN107220100A (zh) 一种开发运维方法、装置及云计算PaaS平台
US20190227781A1 (en) Methods and systems that carry out live migration of multi-node applications
US20170163518A1 (en) Model-based artifact management
US20170161057A1 (en) Plug-in-based artifact-management subsystem
US20170163732A1 (en) Inter-task communication within application-release-management pipelines
US11032145B2 (en) Methods and systems that provision applications across multiple computer systems
US20190340057A1 (en) Methods and systems to compound alerts in a distributed computing system
US10891148B2 (en) Methods and systems for identifying application components in distributed computing facilities
US11184244B2 (en) Method and system that determines application topology using network metrics

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20171107