CN107734019B - 勘探开发容器在线迁移的系统和方法 - Google Patents
勘探开发容器在线迁移的系统和方法 Download PDFInfo
- Publication number
- CN107734019B CN107734019B CN201710916079.6A CN201710916079A CN107734019B CN 107734019 B CN107734019 B CN 107734019B CN 201710916079 A CN201710916079 A CN 201710916079A CN 107734019 B CN107734019 B CN 107734019B
- Authority
- CN
- China
- Prior art keywords
- container
- migration
- exploration
- server
- instruction
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了勘探开发容器在线迁移的系统和方法,属于软件开发技术领域;所述系统包括勘探容器迁移服务端、勘探容器迁移客户端、若干勘探容器迁移代理端;所述方法包括:用户向勘探容器迁移客户端发出容器迁移指令;勘探容器迁移客户端将容器迁移指令发送到勘探容器迁移服务端;勘探容器迁移服务端解析容器迁移指令并和控制迁移源容器的服务器上的勘探容器迁移代理端、迁移目标容器服务器上的勘探容器迁移代理端工作并交互信息。本发明能够将勘探软件开发容器从一台计算节点的服务器上快速的在线迁移到另一台计算节点服务器上,实现对容器高可用的支持。
Description
技术领域
本发明涉及勘探软件开发的系统和方法,特别是涉及勘探开发容器在线迁移的系统和方法。
背景技术
容器技术,是在一台物理服务器上安装Linux操作系统,通过容器技术创建多个虚拟服务器,这些虚拟服务器和物理服务器共用Linux内核;每个虚拟服务器的文件系统使用物理服务器的文件系统,但做了隔离,看上去每个虚拟服务器都有自己独立的文件系统;在物理服务器上建立了虚拟网桥设备,每个虚拟服务器通过虚拟网桥设备连接网络;虚拟服务器直接使用物理服务器的CPU、内存、硬盘。
传统虚拟机的迁移方式可以大致分为物理机到虚拟机P2V(Physical-to-Virtual)、虚拟机到虚拟机V2V(Virtual-to-Virtual)以及虚拟机到物理机V2P(Virtual-to-Physical),迁移操作是虚拟机平台之间操作,包括移动操作系统和文件系统,由平台处理宿主机之间的差异以及处理不同的客户系统所需要的不同的虚拟化硬件,可以通过多种不同的方式完成。
容器技术作为虚拟化技术的,因其较低的资源消耗而被认为是云计算实现的新方向。利用容器技术可以在较低系统开销的基础上在物理机上虚拟出大量的容器。基于虚拟化和容器技术设计开发的勘探开发云,能够根据制作的勘探软件开发容器镜像创建多个勘探软件开发容器实例,容器实例运行于不同的计算节点服务器。
在勘探软件开发过程中,常涉及到运用虚拟化和容器技术设计开发的勘探软件开发云平台创建的勘探软件开发容器实例,需要将一台计算节点的服务器上的勘探软件开发容器迁移到另一台计算节点服务器上。如勘探开发软件CGG服务集群是由一台服务器节点、一台数据库节点、一台或多台计算节点组成;不同类型的节点安装不同的软件;不同类型的节点之间需要配置勘探开发软件运行环境,容器的数量、种类、运行环境的不同导致容器迁移难度大,现有技术中尚没有有效的实现系统和方法。
发明内容
本发明的目的在于,针对现有技术的不足,提供勘探软件开发容器在线迁移的系统和方法。
本发明采用的技术方案如下。
勘探开发容器在线迁移的系统,所述系统包括勘探容器迁移服务端、勘探容器迁移客户端、若干勘探容器迁移代理端;
所述系统部署在勘探软件开发云平台上;所述勘探软件开发云平台上设有一台控制节点服务器、一台网络节点服务器、一台或多台计算节点服务器;计算节点服务器上运行着用户创建的勘探开发容器实例,勘探开发容器实例可以从一台计算节点服务器在线迁移到另一台计算节点服务器上;
所述勘探容器迁移客户端的程序安装部署在勘探软件开发云平台的控制节点的服务器上,勘探容器迁移客户端负责接收处理用户的容器迁移指令、解析容器迁移指令并将解析后的容器迁移指令发送到勘探容器迁移服务端;
所述勘探容器迁移服务端的程序安装部署在勘探软件开发云平台的控制节点的服务器上;勘探容器迁移服务端负责接收勘探容器迁移客户端发来的迁移指令、解析容器迁移指令、和迁移源容器服务器上的勘探容器迁移代理端交互并获取迁移源容器的信息、和迁移目标容器服务器上的勘探容器迁移代理端交互并获得迁移结果信息;
所述勘探容器迁移代理端的程序安装部署在勘探软件开发云平台的计算节点的服务器上且所有提供容器服务的计算节点的服务器上都要安装一勘探容器迁移代理端,勘探容器迁移代理端负责接收勘探容器迁移服务端发来的迁移指令,获取源容器的信息,恢复目标容器的运行。
作为优选技术方案,所述勘探软件开发云平台的控制节点服务器上运行着勘探开发云的相关模块服务,包括门户网站服务、块设备服务、镜像服务、监控服务、身份认证服务;网络节点服务器上运行着勘探开发云的相关网络服务,包括网络控制服务、DHCP服务;计算节点服务器上运行着勘探开发云的相关计算服务,包括虚拟机服务、容器引擎服务。
作为优选技术方案,所述勘探软件开发云平台为基于虚拟化和容器技术设计开发的勘探软件开发云平台,所述基于虚拟化和容器技术是指在一台物理服务器上安装Linux操作系统,通过容器技术创建多个虚拟服务器,这些虚拟服务器和物理服务器共用Linux内核;每个虚拟服务器的文件系统使用物理服务器的文件系统,但做了隔离,看上去每个虚拟服务器都有自己独立的文件系统;在物理服务器上建立了虚拟网桥设备,每个虚拟服务器通过虚拟网桥设备连接网络;虚拟服务器直接使用物理服务器的CPU、内存、硬盘。
作为优选技术方案,勘探软件开发云平台上设有容器迁移网页,用户通过登录容器迁移网页向勘探容器迁移客户端发出迁移指令,勘探容器迁移客户端向容器迁移网页反馈迁移结果。
作为优选技术方案,勘探容器迁移服务端上设有容器迁移命令输入界面,用户通命令输入界面输入迁移命令从而实现向勘探容器迁移客户端发出迁移指令。
作为优选技术方案,勘探容器迁移客户端的程序负责接收处理用户命令行的迁移指令或网页的迁移操作,解析容器迁移,并将容器迁移指令以JSON格式字符串发送到勘探容器迁移服务端。
作为优选技术方案,勘探容器迁移客户端的程序上设有容器引擎。
作为优选技术方案,所述方法使用上述的任意一系统,包括如下步骤:
步骤1:用户向勘探容器迁移客户端发出容器迁移指令;
步骤2:勘探容器迁移客户端接收处到容器迁移指令后解析容器迁移指令并将解析后的容器迁移指令发送到勘探容器迁移服务端;
步骤3:勘探容器迁移服务端解析容器迁移指令;和迁移源容器的计算节点服务器上的勘探容器迁移代理端交互信息,获取迁移源容器的信息;向迁移目标容器的计算节点服务器上的勘探容器迁移代理端发出迁移指令、源容器的信息;
步骤4:勘探容器迁移代理端接收到勘探容器迁移服务端发来的迁移指令后,根据获取的源容器的信息,恢复目标容器的运行并将迁移结果发送到勘探容器迁移服务端,勘探容器迁移服务端将迁移结果发送到勘探容器迁移客户端。
作为优选技术方案,步骤1中,用户通过勘探容器迁移客户端输入迁移命令行发起容器迁移指令,通过迁移指令指定迁移源容器的名称、迁移源容器的计算节点IP、迁移目标容器的名称、迁移目标容器的计算节点IP。
作为优选技术方案,步骤1中,用户通过设置在勘探软件开发云平台上的勘探开发云网页发起容器迁移指令,指定迁移源容器、迁移源容器的计算节点、迁移目标容器的名称、迁移目标容器的计算节点。
作为优选技术方案,步骤2中,勘探容器迁移客户端发送到勘探容器迁移服务端的容器迁移指令以JSON格式字符串格式表达,包括迁移源容器的名称、迁移目标容器的名称、迁移源容器的计算节点IP、迁移目标容器的计算节点IP。
作为优选技术方案,步骤2中,勘探容器迁移客户端在向勘探容器迁移服务端发送容器迁移指令前,还包括对用户发出的指令进行参数解析、判断用户发出的指令的参数是否正确的步骤,如果参数正确,勘探容器迁移客户端向勘探容器迁移服务端发送容器迁移指令,否则,将参数错误信息反馈给用户。
作为优选技术方案,步骤3中,勘探容器迁移服务端接收解析勘探容器迁移客户端发来的JSON格式字符串,和勘探容器迁移代理端交互,其主要流程步骤:
1)勘探容器迁移服务端对勘探容器迁移客户端发来的容器迁移指令进行解析,勘探容器迁移服务端根据解析的迁移源容器计算节点IP,向迁移源容器计算节点上的勘探容器迁移代理端发送获取源容器信息的查询指令,查询指令是以JSON格式字符串格式表达的;
2)迁移源容器计算节点上的勘探容器迁移代理端根据勘探容器迁移服务端的查询指令,返回JSON格式字符串格式表达的迁移源容器信息,包括源容器的IP地址、容器内运行的程序、容器参数;
3)勘探容器迁移服务端根据解析的目标容器计算节点IP,向目标容器计算节上的勘探容器迁移代理端发送恢复容器信息指令、迁移源容器信息,所述恢复容器信息指令以JSON格式字符串格式表达;
4)目标容器计算节上的勘探容器迁移代理端根据恢复容器信息指令进行恢复操作并以JSON格式字符串格式形式反馈迁移结果信息。
作为优选技术方案,迁移源容器计算节点服务器上的勘探容器迁移代理端通过容器引擎获取迁移源容器的IP地址、运行程序、运行参数信息,运行程序以列表的形式列出所有运行程序,运行参数以字典形式保存各种参数,包括nfs网络文件系统挂载信息,lustre网络文件系统挂载信息;获取容器信息后以JSON格式字符串将信息发送到勘探容器迁移服务端。
作为优选技术方案,目标容器计算节点服务器上的勘探容器迁移代理端对勘探容器迁移客户端发出的恢复容器信息指令、迁移源容器信息进行解析,通过容器引擎运行一个新容器,根据解析的运行程序启动运行程序,根据解析的参数挂载网络文件系统,设置参数、根据解析的容器IP地址设置新容器的IP地址;容器恢复运行成功后以JSON格式字符串将迁移结果信息发送到勘探容器迁移服务端。
作为优选技术方案,勘探容器迁移服务端向迁移目标容器的服务器上的勘探容器迁移代理端发出迁移指令前,还包括向目标容器计算节上的勘探容器迁移代理端发送镜像查询命令的步骤,目标容器计算节上的勘探容器迁移代理端接收到勘探容器迁移服务端的送镜像查询命令后,向勘探容器迁移服务端发送目标容器的容器镜像信息。
作为优选技术方案,当目标容器计算节上的勘探容器迁移代理端向勘探容器迁移服务端反馈的迁移成果的信息时,勘探容器迁移服务端向迁移源容器计算节点上的勘探容器迁移代理端发送容器销毁命令,迁移源容器计算节点上的勘探容器迁移代理端将销毁结果信息反馈给勘探容器迁移服务端,勘探容器迁移服务端将迁移后容器的ip信息发送到目录容器上并将上述销毁结果信息、迁移后容器的ip信息反馈给勘探容器迁移客户端,勘探容器迁移客户端将上述销毁结果信息、迁移后容器的ip信息反馈给用户。
本发明的有益效果是:本发明能够将勘探软件开发容器从一台计算节点的服务器上快速的在线迁移到另一台计算节点服务器上,解决了勘探软件开发容器在线迁移的问题,使之能够在迁移完成之后在新的环境中继续运行,本发明结合容器的相关特性,设计开发了新的勘探软件开发容器在线迁移方案,实现对容器高可用的支持,避免了容器重复开发和资源浪费。
附图说明
图1是本发明勘探软件开发容器在线迁移的系统的架构图。
图2是本发明勘探软件开发容器在线迁移的方法的流程图。
具体实施方式
实施例1。勘探开发容器在线迁移的系统,其特征在于:所述系统部署在勘探软件开发云平台上;所述勘探软件开发云平台上设有一台服务器节点、一台数据库节点、一台或多台计算节点,各节点上设置有不同的服务器且各服务器分别安装不同的软件并配置不同的勘探开发软件运行环境;一些计算节点的服务器上运行有用户创建的勘探开发容器实例;
所述系统包括勘探容器迁移服务端、勘探容器迁移客户端、若干勘探容器迁移代理端;
所述勘探容器迁移客户端的程序安装部署在勘探软件开发云平台的控制节点的服务器上,勘探容器迁移客户端负责接收处理用户的容器迁移指令、解析容器迁移指令并将解析后的容器迁移指令发送到勘探容器迁移服务端;负责向户界面模块反馈迁移结果;
所述勘探容器迁移服务端的程序安装部署在勘探软件开发云平台的控制节点的服务器上;勘探容器迁移服务端负责接收勘探容器迁移客户端发来的迁移指令、解析容器迁移指令、和迁移源容器服务器上的勘探容器迁移代理端交互并获取迁移源容器的信息、和迁移目标容器服务器上的勘探容器迁移代理端交互并获得迁移结果信息;
所述勘探容器迁移代理端的程序安装部署在勘探软件开发云平台的计算节点的服务器上且所有提供容器服务的计算节点的服务器上都要安装一勘探容器迁移代理端,勘探容器迁移代理端负责接收勘探容器迁移服务端发来的迁移指令,获取源容器的信息,恢复目标容器的运行。
所述勘探软件开发云平台的控制节点设置在.....。
所述勘探软件开发云平台为基于虚拟化和容器技术设计开发的勘探软件开发云平台,所述基于虚拟化和容器技术是指在一台物理服务器上安装Linux操作系统,通过容器技术创建多个虚拟服务器,这些虚拟服务器和物理服务器共用Linux内核;每个虚拟服务器的文件系统使用物理服务器的文件系统,但做了隔离,看上去每个虚拟服务器都有自己独立的文件系统;在物理服务器上建立了虚拟网桥设备,每个虚拟服务器通过虚拟网桥设备连接网络;虚拟服务器直接使用物理服务器的CPU、内存、硬盘。
勘探软件开发云平台上设有容器迁移网页,用户通过登录容器迁移网页向勘探容器迁移客户端发出迁移指令,勘探容器迁移客户端向容器迁移网页反馈迁移结果。
勘探容器迁移服务端上设有容器迁移命令输入界面,用户通命令输入界面输入迁移命令从而实现向勘探容器迁移客户端发出迁移指令。
探容器迁移客户端的程序负责接收处理用户命令行的迁移指令或网页的迁移操作,解析容器迁移,并将容器迁移指令以JSON格式字符串发送到勘探容器迁移服务端。
探容器迁移客户端的程序上设有容器引擎。
实施例2。勘探开发容器在线迁移的方法,其特征在于,所述方法使用实施例1所述系统,包括如下步骤:
步骤1:用户向勘探容器迁移客户端发出容器迁移指令;
步骤2:勘探容器迁移客户端接收处到容器迁移指令后解析容器迁移指令并将解析后的容器迁移指令发送到勘探容器迁移服务端;
步骤3:勘探容器迁移服务端解析容器迁移指令;和迁移源容器的服务器上的勘探容器迁移代理端交互信息,获取迁移源容器的信息;向迁移目标容器的服务器上的勘探容器迁移代理端发出迁移指令、源容器的信息;
步骤4:勘探容器迁移代理端接收到勘探容器迁移服务端发来的迁移指令后,根据获取的源容器的信息,恢复目标容器的运行并将迁移结果发送到勘探容器迁移服务端,勘探容器迁移服务端将迁移结果发送到勘探容器迁移客户端。
步骤1中,用户通过勘探容器迁移客户端输入迁移命令行发起容器迁移指令,通过迁移指令指定迁移源容器的名称、迁移源容器的计算节点IP、迁移目标容器的名称、迁移目标容器的计算节点IP。
步骤1中,用户通过设置在勘探软件开发云平台上的勘探开发云网页发起容器迁移指令,指定迁移源容器、迁移源容器的计算节点、迁移目标容器的名称、迁移目标容器的计算节点。
步骤2中,勘探容器迁移客户端发送到勘探容器迁移服务端的容器迁移指令以JSON格式字符串格式表达,包括迁移源容器的名称、迁移目标容器的名称、迁移源容器的计算节点IP、迁移目标容器的计算节点IP。
步骤2中,勘探容器迁移客户端在向勘探容器迁移服务端发送容器迁移指令前,还包括对用户发出的指令进行参数解析、判断用户发出的指令的参数是否正确的步骤,如果参数正确,勘探容器迁移客户端向勘探容器迁移服务端发送容器迁移指令,否则,将参数错误信息反馈给用户。
步骤3中,勘探容器迁移服务端接收解析勘探容器迁移客户端发来的JSON格式字符串,和勘探容器迁移代理端交互,其主要流程步骤:
1)勘探容器迁移服务端对勘探容器迁移客户端发来的容器迁移指令进行解析,勘探容器迁移服务端根据解析的迁移源容器计算节点IP,向迁移源容器计算节点上的勘探容器迁移代理端发送获取源容器信息的查询指令,查询指令是以JSON格式字符串格式表达的;
2)迁移源容器计算节点上的勘探容器迁移代理端根据勘探容器迁移服务端的查询指令,返回JSON格式字符串格式表达的迁移源容器信息,包括源容器的IP地址、容器内运行的程序、容器参数;
3)勘探容器迁移服务端根据解析的目标容器计算节点IP,向目标容器计算节上的勘探容器迁移代理端发送恢复容器信息指令、迁移源容器信息,所述恢复容器信息指令以JSON格式字符串格式表达;
4)目标容器计算节上的勘探容器迁移代理端根据恢复容器信息指令进行恢复操作并以JSON格式字符串格式形式反馈迁移结果信息。
迁移源容器计算节点上的勘探容器迁移代理端通过容器引擎获取迁移源容器的IP地址、运行程序、运行参数信息,运行程序以列表的形式列出所有运行程序,运行参数以字典形式保存各种参数,包括nfs网络文件系统挂载信息,lustre网络文件系统挂载信息;获取容器信息后以JSON格式字符串将信息发送到勘探容器迁移服务端。
目标容器计算节上的勘探容器迁移代理端对勘探容器迁移客户端发出的恢复容器信息指令、迁移源容器信息进行解析,通过容器引擎运行一个新容器,根据解析的运行程序启动运行程序,根据解析的参数挂载网络文件系统,设置参数、根据解析的容器IP地址设置新容器的IP地址;容器恢复运行成功后以JSON格式字符串将迁移结果信息发送到勘探容器迁移服务端。容器引擎是设置在每个勘探容器迁移代理端上。
勘探容器迁移服务端向迁移目标容器的服务器上的勘探容器迁移代理端发出迁移指令前,还包括向目标容器计算节上的勘探容器迁移代理端发送镜像查询命令的步骤,目标容器计算节上的勘探容器迁移代理端接收到勘探容器迁移服务端的送镜像查询命令后,向勘探容器迁移服务端发送目标容器的镜像信息。
当目标容器计算节上的勘探容器迁移代理端向勘探容器迁移服务端反馈的迁移成果的信息时,勘探容器迁移服务端向迁移源容器计算节点上的勘探容器迁移代理端发送容器销毁命令,迁移源容器计算节点上的勘探容器迁移代理端将销毁结果信息反馈给勘探容器迁移服务端,勘探容器迁移服务端将迁移后容器的ip信息发送到目录容器上并将上述销毁结果信息、迁移后容器的ip信息反馈给勘探容器迁移客户端,勘探容器迁移客户端将上述销毁结果信息、迁移后容器的ip信息反馈给用户。
实施例3。勘探开发容器在线迁移的系统和方法,所述的勘探开发云容器在线迁移系统由三部分组成:勘探容器迁移服务端201、勘探容器迁移客户端101、勘探容器迁移代理端301;其系统架构如图1所示:
1、勘探容器迁移服务端201(kantandocker-server)程序安装部署在勘探开发云控制节点上,勘探容器迁移客户端101(kantandocker-client)程序安装部署在勘探开发云控制节点201上,勘探容器迁移代理端301(kantandocker-agent)程序安装部署在勘探开发云计算节点上,提供容器服务的计算节点都要安装勘探容器迁移代理端301(kantandocker-agent)程序;
2、用户可以通过勘探容器迁移命令行111发起容器迁移指令,也可以通过勘探开发云网页121发起容器迁移操作;
3、勘探容器迁移客户端101(kantandocker-client)服务程序负责接收处理用户命令行的迁移指令或网页的迁移操作,解析容器迁移,并将容器迁移指令以JSON格式字符串发送到勘探容器迁移服务端(kantandocker-server);
4、勘探容器迁移服务端201(kantandocker-server)服务程序负责接收勘探容器迁移客户端101(kantandocker-client)程序发来的迁移指令;解析容器迁移指令,和迁移源容器服务器上的勘探容器迁移代理端301(kantandocker-agent)交互,获取迁移源容器的信息;和迁移目标容器服务器上的勘探容器迁移代理端301(kantandocker-agent)交互,发送获取的迁移源容器信息;
5、勘探容器迁移代理端301(kantandocker-agent)服务程序负责接收勘探容器迁移服务端201(kantandocker-server)发来的迁移指令,获取源容器的信息,恢复目标容器的运行。
如图2所示,勘探容器迁移客户端101(kantandocker-client)迁移容器,其主要流程步骤:
(1)迁移容器命令行111:输入迁移指令112kantandocker-client migrationcontainer_image_name container_name container_src_hostip container_dest_hostip
迁移容器要指定容器的镜像名称113、运行容器的名称114、迁移源容器的计算节点IP115、迁移目标容器的计算节点IP116;
(2)迁移容器网页121操作,在网页上查看容器122,选择需要迁移的容器,点击迁移按钮123,查看迁移容器的源计算节点124,指定迁移目标容器的计算节点125;
(3)勘探容器迁移客户端101接收用户操作命令102,解析参数103,如果参数有误,返回错误信息105给用户端;如果参数正确发送到勘探容器迁移服务端201继续处理。
勘探容器迁移客户端101(kantandocker-client)和勘探容器迁移服务端201(kantandocker-server)交互,其主要流程步骤:
(1)勘探容器迁移客户端101(kantandocker-client)发送到勘探容器迁移服务端201(kantandocker-server)的迁移容器JSON格式字符串:{"command":"migrationrequest","container_image_name":"rhel6.5-desktop-cgg","container_name":"cc2001","container_src_hostip":"168.175.9.48","container_dest_hostip":"168.175.9.64"}
包括容器的镜像名称、运行容器的名称、迁移源容器的计算节点IP、迁移目标容器的计算节点IP;
(2)勘探容器迁移服务端201(kantandocker-server)接收客户端命令202,解析命令203,解析参数204;
(3)向源容器的计算节点服务器勘探容器迁移代理端301发送查询容器信息205命令并获取结果206;
(4)向目的容器的计算节点服务器勘探容器迁移代理端301发送查询容器镜像207命令并获取结果208;
(5)向目的容器的计算节点服务器勘探容器迁移代理端301发送迁移容器209命令并获取结果210;
(6)向源容器的计算节点服务器勘探容器迁移代理端301发送销毁容器211命令并获取结果212;
(7)向目的容器的计算节点服务器勘探容器迁移代理端301发送分配容器IP213命令并获取结果214;
(8)勘探容器迁移服务端201向勘探容器迁移客户端101发送容器迁移结果,格式是Json格式:{"command":"migrationresponse","container_name":"cc2001","ret_string":"success","ret_code":"0"}迁移结果是成功success或失败failure。
勘探容器迁移服务端201(kantandocker-server)接收解析勘探容器迁移客户端101(kantandocker-client)发来的JSON格式字符串,和勘探容器迁移代理端301(kantandocker-agent)交互,其主要流程步骤:
(1)根据解析的源容器计算节点IP,向其勘探容器迁移代理端(kantandocker-agent)发送获取源容器信息指令,其JSON格式字符串:{"command":"migrationcontainerinforequest","container_image_name":"rhel6.5-desktop-cgg","container_name":"cc2001","container_src_hostip":"168.175.9.48"}
(2)勘探容器迁移代理端103(kantandocker-agent)根据请求返回的JSON格式字符串:{"command":"migrationcontainerinforesponse","container_image_name":"rhel6.5-desktop-cgg","container_name":"cc2001","container_src_hostip":"168.175.9.48","container_ip":"168.172.2.11","runapp:['mysql','httpd','cgg'],"runparam":{'user':'slsyk','lustre_mount':['/scr01','/scr02'],'nfs_mount':['user','soft','proj']}},包括运行容器的IP地址、容器内运行的程序、容器参数等;
(3)根据解析的目标容器计算节点IP,向其勘探容器迁移代理端(kantandocker-agent)发送恢复容器信息指令,其JSON格式字符串:{"command":"migrationcontainerrestorerequest","container_image_name":"rhel6.5-desktop-cgg","container_name":"cc2001","container_src_hostip":"168.175.9.48","container_ip":"168.172.2.11","runapp:['mysql','httpd','cgg'],"runparam":{'user':'slsyk','lustre_mount':['/scr01','/scr02'],'nfs_mount':['user','soft','proj']}}
(4)勘探容器迁移代理端103(kantandocker-agent)根据请求返回的JSON格式字符串:
{"command":"migrationcontainerrestoreresponse","container_name":"cc2001","ret_string":"success","ret_code":"0"}。
勘探容器迁移代理端301(kantandocker-agent)接收勘探容器迁移服务端201(kantandocker-server)指令并解析,其主要流程步骤:
(1)接收服务端命令302;
(2)解析命令303;
(3)解析参数304;
(4)查询容器305,通过容器引擎获取容器的IP地址、运行程序、运行参数等信息,运行程序以列表的形式列出所有运行程序,运行参数以字典形式保存各种参数,包括nfs网络文件系统挂载信息,lustre网络文件系统挂载信息等;获取容器信息后以JSON格式字符串将信息发送到勘探容器迁移服务端(kantandocker-server);
(5)操作容器306,操作容器包括创建容器、销毁容器、分配IP地址等,还包括根据解析的运行程序启动运行程序,根据解析的参数挂载网络文件系统,设置参数、根据解析的容器IP地址设置新容器的IP地址;容器恢复运行成功后以JSON格式字符串将信息发送到勘探容器迁移服务端(kantandocker-server)。
Claims (13)
1.勘探开发容器在线迁移的系统,其特征在于:所述系统包括勘探容器迁移服务端、勘探容器迁移客户端、若干勘探容器迁移代理端;
所述系统部署在勘探软件开发云平台上;所述勘探软件开发云平台上设有一台控制节点服务器、一台网络节点服务器、一台或多台计算节点服务器;计算节点服务器上运行着用户创建的勘探开发容器实例,勘探开发容器实例可以从一台计算节点服务器在线迁移到另一台计算节点服务器上;
所述勘探容器迁移客户端的程序安装部署在勘探软件开发云平台的控制节点的服务器上,勘探容器迁移客户端负责接收处理用户的容器迁移指令、解析容器迁移指令并将解析后的容器迁移指令发送到勘探容器迁移服务端;
所述勘探容器迁移服务端的程序安装部署在勘探软件开发云平台的控制节点的服务器上;勘探容器迁移服务端负责接收勘探容器迁移客户端发来的迁移指令、解析容器迁移指令、和迁移源容器服务器上的勘探容器迁移代理端交互并获取迁移源容器的信息、和迁移目标容器服务器上的勘探容器迁移代理端交互并获得迁移结果信息;
所述勘探容器迁移代理端的程序安装部署在勘探软件开发云平台的计算节点的服务器上且所有提供容器服务的计算节点的服务器上都要安装一勘探容器迁移代理端,勘探容器迁移代理端负责接收勘探容器迁移服务端发来的迁移指令,获取源容器的信息,恢复目标容器的运行;
所述勘探软件开发云平台的控制节点服务器上运行着勘探开发云的相关模块服务,包括门户网站服务、块设备服务、镜像服务、监控服务、身份认证服务;网络节点服务器上运行着勘探开发云的相关网络服务,包括网络控制服务、DHCP服务;计算节点服务器上运行着勘探开发云的相关计算服务,包括虚拟机服务、容器引擎服务;
所述勘探软件开发云平台为基于虚拟化和容器技术设计开发的勘探软件开发云平台,所述基于虚拟化和容器技术是指在一台物理服务器上安装Linux操作系统,通过容器技术创建多个虚拟服务器,这些虚拟服务器和物理服务器共用Linux内核;每个虚拟服务器的文件系统使用物理服务器的文件系统,但做了隔离,看上去每个虚拟服务器都有自己独立的文件系统;在物理服务器上建立了虚拟网桥设备,每个虚拟服务器通过虚拟网桥设备连接网络;虚拟服务器直接使用物理服务器的CPU、内存、硬盘;
勘探软件开发云平台上设有容器迁移网页,用户通过登录容器迁移网页向勘探容器迁移客户端发出迁移指令,勘探容器迁移客户端向容器迁移网页反馈迁移结果;
勘探容器迁移服务端上设有容器迁移命令输入界面,用户通命令输入界面输入迁移命令从而实现向勘探容器迁移客户端发出迁移指令。
2.如权利要求1所述的勘探开发容器在线迁移的系统,其特征在于:勘探容器迁移客户端的程序负责接收处理用户命令行的迁移指令或网页的迁移操作,解析容器迁移,并将容器迁移指令以JSON格式字符串发送到勘探容器迁移服务端。
3.如权利要求1所述的勘探开发容器在线迁移的系统,其特征在于:勘探容器迁移客户端的程序上设有容器引擎。
4.勘探开发容器在线迁移的方法,其特征在于,所述方法使用权利要求1-3 任意一权利要求所述的系统,包括如下步骤:
步骤1:用户向勘探容器迁移客户端发出容器迁移指令;
步骤2:勘探容器迁移客户端接收处到容器迁移指令后解析容器迁移指令并将解析后的容器迁移指令发送到勘探容器迁移服务端;
步骤3:勘探容器迁移服务端解析容器迁移指令;和迁移源容器的计算节点服务器上的勘探容器迁移代理端交互信息,获取迁移源容器的信息;向迁移目标容器的计算节点服务器上的勘探容器迁移代理端发出迁移指令、源容器的信息;
步骤4:勘探容器迁移代理端接收到勘探容器迁移服务端发来的迁移指令后,根据获取的源容器的信息,恢复目标容器的运行并将迁移结果发送到勘探容器迁移服务端,勘探容器迁移服务端将迁移结果发送到勘探容器迁移客户端。
5.如权利要求4所述的勘探开发容器在线迁移的方法,其特征在于:步骤1中,用户通过勘探容器迁移客户端输入迁移命令行发起容器迁移指令,通过迁移指令指定迁移源容器的名称、迁移源容器的计算节点IP、迁移目标容器的名称、迁移目标容器的计算节点IP。
6.如权利要求4所述的勘探开发容器在线迁移的方法,其特征在于:步骤1中,用户通过设置在勘探软件开发云平台上的勘探开发云网页发起容器迁移指令,指定迁移源容器、迁移源容器的计算节点、迁移目标容器的名称、迁移目标容器的计算节点。
7.如权利要求4所述的勘探开发容器在线迁移的方法,其特征在于:步骤2中,勘探容器迁移客户端发送到勘探容器迁移服务端的容器迁移指令以JSON格式字符串格式表达,包括迁移源容器的名称、迁移目标容器的名称、迁移源容器的计算节点IP、迁移目标容器的计算节点IP。
8.如权利要求7所述的勘探开发容器在线迁移的方法,其特征在于:步骤2中,勘探容器迁移客户端在向勘探容器迁移服务端发送容器迁移指令前,还包括对用户发出的指令进行参数解析、判断用户发出的指令的参数是否正确的步骤,如果参数正确,勘探容器迁移客户端向勘探容器迁移服务端发送容器迁移指令,否则,将参数错误信息反馈给用户。
9.如权利要求7所述的勘探开发容器在线迁移的方法,其特征在于:步骤3中,勘探容器迁移服务端接收解析勘探容器迁移客户端发来的JSON格式字符串,和勘探容器迁移代理端交互,其主要流程步骤:
1)勘探容器迁移服务端对勘探容器迁移客户端发来的容器迁移指令进行解析,勘探容器迁移服务端根据解析的迁移源容器计算节点IP,向迁移源容器计算节点上的勘探容器迁移代理端发送获取源容器信息的查询指令,查询指令是以JSON格式字符串格式表达的;
2)迁移源容器计算节点上的勘探容器迁移代理端根据勘探容器迁移服务端的查询指令,返回JSON格式字符串格式表达的迁移源容器信息,包括源容器的IP地址、容器内运行的程序、容器参数;
3)勘探容器迁移服务端根据解析的目标容器计算节点IP,向目标容器计算节上的勘探容器迁移代理端发送恢复容器信息指令、迁移源容器信息,所述恢复容器信息指令以JSON格式字符串格式表达;
4)目标容器计算节上的勘探容器迁移代理端根据恢复容器信息指令进行恢复操作并以JSON格式字符串格式形式反馈迁移结果信息。
10.如权利要求9所述的勘探开发容器在线迁移的方法,其特征在于:迁移源容器计算节点服务器上的勘探容器迁移代理端通过容器引擎获取迁移源容器的IP地址、运行程序、运行参数信息,运行程序以列表的形式列出所有运行程序,运行参数以字典形式保存各种参数,包括nfs网络文件系统挂载信息,lustre网络文件系统挂载信息;获取容器信息后以JSON格式字符串将信息发送到勘探容器迁移服务端。
11.如权利要求9所述的勘探开发容器在线迁移的方法,其特征在于:目标容器计算节点服务器上的勘探容器迁移代理端对勘探容器迁移客户端发出的恢复容器信息指令、迁移源容器信息进行解析,通过容器引擎运行一个新容器,根据解析的运行程序启动运行程序,根据解析的参数挂载网络文件系统,设置参数、根据解析的容器IP地址设置新容器的IP地址;容器恢复运行成功后以JSON格式字符串将迁移结果信息发送到勘探容器迁移服务端。
12.如权利要求9所述的勘探开发容器在线迁移的方法,其特征在于:勘探容器迁移服务端向迁移目标容器的服务器上的勘探容器迁移代理端发出迁移指令前,还包括向目标容器计算节上的勘探容器迁移代理端发送镜像查询命令的步骤,目标容器计算节上的勘探容器迁移代理端接收到勘探容器迁移服务端的送镜像查询命令后,向勘探容器迁移服务端发送目标容器的容器镜像信息。
13.如权利要求9所述的勘探开发容器在线迁移的方法,其特征在于:当目标容器计算节上的勘探容器迁移代理端向勘探容器迁移服务端反馈的迁移成果的信息时,勘探容器迁移服务端向迁移源容器计算节点上的勘探容器迁移代理端发送容器销毁命令,迁移源容器计算节点上的勘探容器迁移代理端将销毁结果信息反馈给勘探容器迁移服务端,勘探容器迁移服务端将迁移后容器的ip信息发送到目录容器上并将上述销毁结果信息、迁移后容器的ip信息反馈给勘探容器迁移客户端,勘探容器迁移客户端将上述销毁结果信息、迁移后容器的ip信息反馈给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710916079.6A CN107734019B (zh) | 2017-09-29 | 2017-09-29 | 勘探开发容器在线迁移的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710916079.6A CN107734019B (zh) | 2017-09-29 | 2017-09-29 | 勘探开发容器在线迁移的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107734019A CN107734019A (zh) | 2018-02-23 |
CN107734019B true CN107734019B (zh) | 2020-12-25 |
Family
ID=61208920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710916079.6A Active CN107734019B (zh) | 2017-09-29 | 2017-09-29 | 勘探开发容器在线迁移的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107734019B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737645B (zh) * | 2019-10-15 | 2022-09-27 | 深圳金蝶账无忧网络科技有限公司 | 一种不同系统间数据迁移方法、数据迁移系统及相关设备 |
CN111679887A (zh) * | 2020-06-04 | 2020-09-18 | 深圳前海微众银行股份有限公司 | 一种代理容器的配置方法及装置 |
CN113672337B (zh) * | 2021-07-16 | 2024-02-13 | 广东浪潮智慧计算技术有限公司 | 一种应用迁移方法、装置、设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893133A (zh) * | 2016-03-31 | 2016-08-24 | 乐视控股(北京)有限公司 | 基于容器技术的应用服务无缝迁移方法和系统 |
CN106603592A (zh) * | 2015-10-15 | 2017-04-26 | 中国电信股份有限公司 | 一种用于基于服务模型的应用集群迁移的方法和迁移装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10241674B2 (en) * | 2015-12-11 | 2019-03-26 | Vmware, Inc. | Workload aware NUMA scheduling |
-
2017
- 2017-09-29 CN CN201710916079.6A patent/CN107734019B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603592A (zh) * | 2015-10-15 | 2017-04-26 | 中国电信股份有限公司 | 一种用于基于服务模型的应用集群迁移的方法和迁移装置 |
CN105893133A (zh) * | 2016-03-31 | 2016-08-24 | 乐视控股(北京)有限公司 | 基于容器技术的应用服务无缝迁移方法和系统 |
Non-Patent Citations (2)
Title |
---|
"一种基于Docker的数据中心云平台实现系统";彭勇;《技术广角》;20170302;正文第二章-第三章 * |
"基于Docker Swarm集群的容器迁移策略的实现";毛祺;《信息技术》;20160930;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107734019A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11368407B2 (en) | Failover management using availability groups | |
CN103703729B (zh) | 最小化虚拟网络中的分组丢失的虚拟机迁移 | |
CN103441867B (zh) | 一种更新虚拟机内部网络资源配置的方法 | |
US11422797B1 (en) | Using graph partitioning for software decomposition during modernization processes | |
US9588794B2 (en) | Method, system and device for managing software on virtual machine in cloud environment | |
WO2019184164A1 (zh) | 自动部署Kubernetes从节点的方法、装置、终端设备及可读存储介质 | |
CN110083455B (zh) | 图计算处理方法、装置、介质及电子设备 | |
CN107734019B (zh) | 勘探开发容器在线迁移的系统和方法 | |
CN113196237A (zh) | 计算系统中的容器迁移 | |
CN108667859A (zh) | 一种实现资源调度的方法及装置 | |
US8825750B2 (en) | Application server management system, application server management method, management apparatus, application server and computer program | |
US10673694B2 (en) | Private network mirroring | |
EP4095678A1 (en) | Method and apparatus of deploying a cluster, device and storage medium | |
CN112771518B (zh) | 托管机器学习模型 | |
CN106713042B (zh) | 一种确定网络拓扑方法及装置 | |
CN104679651B (zh) | 一种自动化测试方法及执行节点 | |
EP3442201B1 (en) | Cloud platform construction method and cloud platform | |
JP2007183747A (ja) | 物理サーバ間のシステム移動方法およびシステム移動システム | |
JP2019502186A (ja) | グローバル情報を取得、処理および更新するためのシステムおよび方法 | |
US11853753B1 (en) | Detection, presentation, and resolution of bottlenecks in monolith decomposition | |
KR20210013723A (ko) | 부착된 가속기 기반 추론 서비스 | |
JP6778862B1 (ja) | Linux仮想マシンのSocketリスニングの検出方法及びそのシステム | |
CN114691290A (zh) | 一种跨云平台的应用迁移系统、方法和容灾方法 | |
US11750475B1 (en) | Monitoring customer application status in a provider network | |
US11704408B1 (en) | Threat scanning transplanted containers |
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 |