当前位置: 首页 > 专利查询>河海大学专利>正文

一种基于Docker的虚拟仿真实验系统及方法技术方案

技术编号:27839402 阅读:40 留言:0更新日期:2021-03-30 12:18
本发明专利技术提供了一种基于Docker的虚拟仿真实验系统及方法,包括虚拟实验环境、统一用户登录管理平台。虚拟实验环境实现了对兼容Windows、Linux及其分支操作系统的实验内容和环境管理;统一用户登录管理平台采用B/S架构,终端用户通过浏览器访问实验环境,系统鉴权后授予相应资源权限。本发明专利技术主要利用Docker实现仿真实验环境虚拟化,满足仿真实验、科研或课题组的计算环境要求,并将配置好的实验环境、实验工具、科研或课题计算模型等以镜像的方式固化在仿真环境仓库中以充分利用学校现有软硬件资源、仿真实验或科研模型。本发明专利技术可以解决传统虚拟化操作系统支持不够、多语言环境支持不足、实验环境动态创建与跟踪实践难的现象。象。象。

【技术实现步骤摘要】
一种基于Docker的虚拟仿真实验系统及方法


[0001]本专利技术涉及计算机领域,尤其是工程计算模拟领域,尤其是一种虚拟仿真实验系统。

技术介绍

[0002]虚拟仿真是用一个计算机系统来模仿另一个真实系统的技术,又称为仿真技术或模拟技术,是一种可创建和体验虚拟世界的计算机系统。
[0003]Docker是GO语言写、开源的应用容器引擎、轻量级的操作系统虚拟化解决方案,装载Linux、OSX、Windows操作系统环境的应用,实现了对应用的编译、封装、部署、运行等生命周期管理。Docker提供了一种可移植的标准化部署过程,支持规模化、自动化、异构化的部署。
[0004]Kubernetes是Google开发的开源的容器编排工具,是一个完备的分布式系统支撑平台,具有集群管理能力,多扩多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。同时Kubernetes提供完善的管理工具,涵盖了包括开发、部署测试、运维监控在内的各个环节。
[0005]虚拟仿真实验系统管理功能基于J2EE环境开发,J2EE是由Sun公司定义的开发分布式企业级应用的规范。数据库采用Mysql,存储虚拟实验的过程数据、结果数据以及整体系统的用户、配置、日志等数据。
[0006]虚拟实验环境是为学生、科研人员提供实验教学、项目实验模拟的基础,搭建实验环境有三个难点问题:<br/>[0007]1、虚拟环境的操作系统支持:实践中实验环境依赖的操作系统存在多样性,如:Windows操作系统、Unix/Linux操作及其分支、嵌入式操作系统等,虚拟环境的基础是操作系统虚拟化,在此基础上构建特定的实验内容。当前,云计算技术已经比较成熟,虚拟操作系统比较方便,市面上较为普及的解决方案是公有云、私有云,公有云成本较高,不太适合学校教学使用;私有云如采用商用云系统,如:微软云解决方案Azure、阿里云ECS以及其他厂家的云服务方案,方案本身成本昂贵,实验环境的定制化较为困难;
[0008]2、多语言环境支持:科研及教学过程中,不同的科研组、院系使用的开发语言多种多样,如:水利水电学院各系,实验模型多用Fortran;计算机与信息学院开发语言教学多采用Java、C#;另外,实验教学中的软件开发工具、教学用数据库软件,也存在着多样性。因此,虚拟仿真实验多语言支持是实践中较难解决的问题;
[0009]3、实验环境的动态创建与跟踪:实验环境的创建存在时间、空间的不确定性,虚拟仿真实验系统根据实验要求生成对应的环境,同时,识别用户、跟踪实验过程,采集实验产生的数据,形成实验结果。异构操作系统、异构实验环境,用户识别、实验数据收集是实践中必须解决的问题;
[0010]如何解决基础环境的一致性问题,如何提高基础IT资源使用率和复用率,如何实
现快速弹性部署与资源回收,如何提供多语种、多学科、多班级、全天候仿真实验,是当下面临的刚性需求。因此,设计一套方案,解决以上问题,虚拟仿真实验系统才有建设的可能。

技术实现思路

[0011]作为校级虚拟仿真实验系统,既要满足各个院系、科研组的实验环境需求,又要满足学校的管理需求和物力资源的分配问题,主要包括:
[0012]实验环境的配置:任课教师、科研组教师可以配置所需要的实验环境,包括:操作系统、自愿要求、实验工具、实验基础数据导入、认证方式、实验数据采集方式等;
[0013]资源总体管理:有两层需求,一层:实验环境部署、调度、认证、生命周期及健康状况;另一层:资源的主动发现、随时扩展或收缩容器规模,按照具体实验划分管理域,域内负载均衡等;
[0014]资源授权:系统根据用户角色授予功能权限及资源域权限,终端用户登陆后,根据用户属性分配实验入口及实验资源;
[0015]数据采集:虚拟仿真实验需要采集两个层面的数据,一层是实验结果数据,如:学生完成实验的情况,以实验评分体现学生实验的成绩;另一层是实验产生的个性化数据,如:科研组实验的个性化数据,系统提供数据的导出及基本的按数据项统计分析功能;
[0016]系统还应体用按照院系、课题组的分权分域、学生管理、教师管理、成绩管理、实验管理、校级视图、院系视图、课题组视图、教师视图等功能。
[0017]本专利技术主要利用Docker实现仿真实验环境的虚拟化,满足各个仿真实验、科研或课题组的计算环境要求,并将配置好的实验环境、实验工具、科研或课题计算模型等以镜像的方式固化在仿真环境仓库中,仿真环境的使用不受使用者的基数水平、时间、空间的限制,最大程度利用学校已有的硬件、软件、仿真实验/科研模型,在此基础上实现校级学术、科研、仿真环境研究成果的积累。
[0018]为了实现上述目的,实验环境采用Docker进行环境虚拟化及环境的部署、装载,资源总体管理采用Kubernetes。通过Kubernetes对Docker进行编排,实现实验环境的动态配置、部署、创建、监控、回收等功能。
[0019]本专利技术采用的具体技术方案如下:
[0020]一种基于Docker的虚拟仿真实验系统及方法,其特征在于,本专利技术包括虚拟实验环境部分、统一用户登录管理平台部分,所述虚拟实验环境部分兼容Windows、Linux及其分支操作系统的实验内容,同时实现对虚拟实验环境管理;所述统一用户登录管理平台部分采用B/S架构,最终使用者通过浏览器登录远程实验环境主机,系统根据用户登录账户授予系统功能权限及虚拟环境资源权限。
[0021]作为优选,所述虚拟仿真实验系统包括Docker基础环境模块、Kubernetes与Docker集成模块、仿真实验环境配置模块;所述Docker基础环境模块在操作系统层提供了统一标准的容器运行环境,处在最底层,负责实际镜像拉取,容器启停操作;所述Kubernetes与Docker集成模块则提供了跨节点容器调度编排能力,负责实际运行pod网络、存储对接,通过调用Docker基础环境模块提供的API实现;所述仿真实验环境配置模块,是对实际仿真实验环境的应用层的管理抽象,包含应用管理、镜像管理、认证管理、资源管理其静态表现为实验运行环境的Docker镜像,其动态表现为实际运行pod。
[0022]作为优选,所述Kubernetes与Docker整合用于仿真实验平台的网络架构如下:
[0023]控制口Apiserver:作为整个系统的控制入口,以REST API服务提供接口。
[0024]复制控制器ReplicationController(RC):RC用来管理Pod,一个RC可以由一个或多个Pod组成,在RC被创建后,系统会根据定义好的副本数来创建Pod数量。
[0025]服务器Service:定义了一个Pod逻辑集合的抽象资源,Pod集合中的容器提供相同的功能。集合根据定义的Label和selector完成,当创建一个本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Docker的虚拟仿真实验系统及方法,其特征在于,本发明包括虚拟实验环境部分、统一用户登录管理平台部分,所述虚拟实验环境部分兼容Windows、Linux及其分支操作系统的实验内容,同时实现对虚拟实验环境管理;所述统一用户登录管理平台部分采用B/S架构,最终使用者通过浏览器登录远程实验环境主机,系统根据用户登录账户授予系统功能权限及虚拟环境资源权限。2.根据权利要求1所述的一种基于Docker的虚拟仿真实验系统及方法,其特征在于,所述虚拟仿真实验系统包括Docker基础环境模块、Kubernetes与Docker集成模块、仿真实验环境配置模块;所述Docker基础环境模块在操作系统层提供了统一标准的容器运行环境,处在最底层,负责实际镜像拉取,容器启停操作;所述Kubernetes与Docker集成模块则提供了跨节点容器调度编排能力,负责实际运行pod网络、存储对接,通过调用Docker基础环境模块提供的API实现;所述仿真实验环境配置模块,是对实际仿真实验环境的应用层的管理抽象,包含应用管理、镜像管理、认证管理、资源管理其静态表现为实验运行环境的Docker镜像,其动态表现为实际运行pod。3.根据权利要求1所述的一种基于Docker的虚拟仿真实验系统及方法,其特征在于,Kubernetes与Docker整合用于仿真实验平台的网络架构如下:控制口Apiserver:作为整个系统的控制入口,以REST API服务提供接口。复制控制器ReplicationController(RC):RC用来管理Pod,一个RC可以由一个或多个Pod组成,在RC被创建后,系统会根据定义好的副本数来创建Pod数量。服务器Service:定义了一个Pod逻辑集合的抽象资源,Pod集合中的容器提供相同的功能。集合根据定义的Label和selector完成,当创建一个Service后,会分配一个Cluster IP,这个IP与定义的端口提供这个集合一个统一的访问接口,并且实现负载均衡。其他Etcd:负责节点间的服务发现和配置共享。资源分配器Scheduler:负责节点资源管理,接受来自Apiserver创建Pods任务,并分配到某个节点。控制器Master:是中央控制点,它提供了一个统一的集群视图。有一个主节点,控制多个下属Slave。运行器Minion:是一个由主节点委托运行任务的worker。它能运行一个或多个Pods。它在容器环境中提供了一个特定于应用程序的"虚拟主机"。库贝代理Kube

proxy:运行在每个计算节点上,负责Pod网络代理。定时从etcd获取到service信息来做相应的策略。部署单元Pod:在Kubernetes系统中,调度的最小颗粒不是单纯的容器,而是抽象成一个Pod,Pod是一个可以被创建、销毁、调度、管理的最小的部署单元。4.根据权利要求1所述的一种基于Docker的虚拟仿真实验系统及方法,其特征在于,仿真实验实际运行过程基本如下:第一步,依据不同的仿真实验实际,选取对应的基础Docker镜像,如ubuntu14.04,再安装依赖库,如QT,最后集成仿真实验程序和配置文件封装出一个通用的Docker镜像;第二步,将做好的Docker镜像上传至仿真PaaS系统镜像仓库;第三步,创建不同的账号和租户;第四步,使用对应的账号登录后,通过仿真实验镜像创建出实际的应用(Pod),
Kubernetes的Scheduler组件负责挑选运行该应用最合适的节点;第五步,进入仿真实验环境开始仿真实验;第六步,实验完成,实验结果数据收集。5.根据权利要求1

4中任意一项所述的一种基于Docker的虚拟仿真实验系统及方法,其特征在于,在仿真实验实际运行过程中,Docker组件负责镜像构建和上传,账号认证和应用运行由仿真PaaS平台完成,仿真实验则为实际运行的Pod;仿真实验入口格式为“Master节点IP:NodePort”,实际流量由Kubernetes根据Etcd注册信息,将流量通过Kube

proxy引流至ClusterIP,ClusterIP会自动将流量负载至实际运行的pod(仿真实验);从终端用户的角度看,一个仿真实验环境就是一个URL。6.根据权利要求1所述的一种基于Docker的虚拟仿真实验系统及方法,其特征在于,用户登录仿真实验环境系统及仿真实验资源换件的流程包括如下步骤:步骤1:终端用户使用浏览器登陆实验平台,进行账户身份的校检,实验平台返回给与用户身份相对应的功能及资源权限;步骤2:用户在权限范围内选择仿真实验,并向实验平台请求开启仿真实验环境,实验品平台接受请求后,通过API请求Kubernetes;步骤3:Kubernetes接收请求后,会校验请求是否正确...

【专利技术属性】
技术研发人员:张云飞
申请(专利权)人:河海大学
类型:发明
国别省市:

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

1