CN103533061B - 一种操作系统云实验平台构建方法 - Google Patents
一种操作系统云实验平台构建方法 Download PDFInfo
- Publication number
- CN103533061B CN103533061B CN201310490123.3A CN201310490123A CN103533061B CN 103533061 B CN103533061 B CN 103533061B CN 201310490123 A CN201310490123 A CN 201310490123A CN 103533061 B CN103533061 B CN 103533061B
- Authority
- CN
- China
- Prior art keywords
- module
- virtual machine
- operating system
- virtual
- management end
- 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
Abstract
本发明公开了一种操作系统云实验平台及其构建方法,该操作系统云实验平台包括客户端模块、管理端模块、数据库模块、虚拟化平台、虚拟机资源池和虚拟机,各模块间采用TCP连接进行通信,虚拟化平台将计算资源虚拟为虚拟机,以虚拟机资源池作为虚拟机容器,客户端模块通过所述管理端模块向虚拟机转发操作系统实验代码,虚拟机生成Linux内核源码,并编译、安装和启动Linux新内核。本发明操作系统云实验平容错能力更强,能缩短实验周期,缩小实验的附加工作量,能直接触及操作系统内核,而不是仅停留在操作系统用户态空间,能够创建一个操作系统课程的实验教学平台。
Description
技术领域
本发明属于计算机领域,特别是涉及一种计算机专业操作系统课程教学实验平台及其构建方法。
背景技术
操作系统原理是国内外计算机专业重要的必修课程,也是教学与实践紧密结合的课程,不仅要完成常规的理论知识学习,还必须接受一定数量的实验训练,甚至包括课程设计。许多教育机构设计开发操作系统课程教学实验产品,用于改善教学效果,提高教学质量。
Minix是一个微型的类Unix操作系统,荷兰的Andrew S. Tanenbaum教授为了教学之用而开发,最新版本是Minix 3。将Minix用于操作系统教学,首先需要在物理机或者虚拟机上安装Minix,在阅读Minix开源代码的基础上,根据实验要求修改Minix源码树,然后重新编译整个Minix源码树,得到操作系统内核,最后运行操作系统内核并检验实验结果。这种技术方案的缺陷很明显:
1、实验平台极其脆弱,细微的错误足以致实验平台崩溃,而且恢复实验平台的代价很大,在物理机上需要重新安装Minix,在虚拟机上需要还原实验平台的备份文件;
2、实验的周期很长,由于实验平台的脆弱性,完成一个实验,可能需要多次恢复实验平台,以至于恢复实验平台占据大部分实验时间,而且实验平台恢复与实验过程本身是串行进行,不能并行进行,拉长实验周期;
3、实验的附加工作量很大,至少需要阅读Minix大部分的源代码,不仅要编写内核实验代码,还必须掌握Minix内核的编译方法与安装步骤,而这些与操作系统原理本身并没有直接关系。
部分国内普通高校建立了操作系统精品课程,在实验平台设计上有存在两种技术方案。第一种技术方案是以Linux或者Windows为实验平台,编写用户态实验代码验证实验结果。这种方案的缺陷是实验代码完全位于操作系统的用户态,根本没有深入到操作系统内核,接触不到操作系统内核。第二种技术方案是以Linux为实验平台,采用编写用户态实验代码和修改Linux内核代码相结合的方式。这种方案存在与Minix类似的问题。
发明内容
本发明的目的在于针对上述操作系统课程实验平台技术方案存在的缺陷,提供一种基于云计算的操作系统实验平台构建方法,按照该方法构建的操作系统实验平台容错能力更强,能缩短实验周期,缩小实验的附加工作量,能直接触及操作系统内核,而不是仅仅停留在操作系统用户态空间。
本发明提供的技术方案是:一种操作系统云实验平台构建方法,包括构建客户端模块、管理端模块、数据库模块、虚拟化平台、虚拟机资源池和虚拟机,各模块间采用TCP连接进行通信,虚拟化平台将计算资源虚拟为虚拟机,以虚拟机资源池作为虚拟机容器,客户端模块通过管理端模块向虚拟机转发操作系统实验代码,虚拟机生成Linux内核源码,并编译、安装和启动Linux新内核,管理端模块接收所述客户端模块提交的操作系统实验代码。
进一步地,所述客户端模块位于用户(学生或者教师)使用的计算机终端,至少包括登录模块、提交实验模块、显示模块和注销模块,登录模块向管理端模块提出分配虚拟机的请求;提交实验模块向管理端模块提交操作系统实验代码;显示模块接收管理端模块的实验数据并给予显示输出;注销模块请求管理端模块回收并释放虚拟机资源。
进一步地,所述管理端模块位于操作系统云实验平台的服务器,至少包括分配模块、释放模块、修复模块、健康检测模块、提交模块和存储模块,分配模块接收客户端模块的登录请求,向虚拟化平台转发虚拟机分配请求;释放模块接收客户端模块的注销请求,向虚拟化平台转发虚拟机回收请求;健康检测模块监测所有虚拟机的运转状态;修复模块向虚拟化平台请求修复出现故障的虚拟机;提交模块接受客户端模块提交的实验代码,并转发到指定的虚拟机;存储模块接受来自客户端模块的数据,并存储到数据库模块。
进一步地,所述数据库模块位于操作系统云实验平台的服务器,是操作系统实验的数据存储场所,存储来自客户端模块的数据。
进一步地,所述虚拟机是进行操作系统实验的软件环境,运行于虚拟化平台上,虚拟机采用Linux作为操作系统,并安装有必要的工具,包括编译器、链接器和Linux内核源码树等,用户在虚拟机上进行操作系统实验,虚拟机至少包括心跳模块、补丁模块、编译模块、采集模块、安装模块和启动模块,心跳模块在启动虚拟机时自动运行,定期向管理端模块的健康检测模块发送信号,如果健康检测模块在一段时间内未收到该信号,便可诊断该虚拟机故障(例如虚拟机已经死机或者崩溃);补丁模块接受管理端模块的提交模块提交的实验代码,将实验代码同步到Linux内核源码树,生成实验数据的采集模块;编译模块重新编译已更新的Linux内核源码树;安装模块在虚拟机上安装已编译过的Linux内核;启动模块使用最新的Linux内核重新启动虚拟机;采集模块在重新启动虚拟机之后采集实验数据,并将实验数据发送到管理端模块的存储模块。
进一步地,所述虚拟化平台位于操作系统云实验平台的服务器,是虚拟机的管理平台,至少包括调度模块、回收模块和虚拟机模板,调度模块接收管理端模块的虚拟机分配请求,从虚拟机资源池中选择并启动一个虚拟机;回收模块接收管理端模块的虚拟机释放或者修复请求,关闭并删除虚拟机,用虚拟机模板新建一个虚拟机并加入到虚拟机资源池中;虚拟机模板的表现形式是若干个文件,能够在虚拟化平台上运行,为操作系统实验提供一个最基本的软件环境。
进一步地,所述虚拟机资源池是虚拟机的容器,将物理上的服务器计算资源虚拟化为若干个虚拟机资源,保持虚拟机之间的相对独立性。
同时,本发明还提供所述操作系统云实验平台构建方法构建的操作系统云实验平台。
本发明的有益效果是:本发明提供了一种基于云计算的操作系统实验平台构建方法,按照该方法构建的操作系统云实验平台,所有的操作系统实验都是在虚拟机上进行,而不是在物理机上进行,即使存在错误的实验代码,仅导致虚拟机的崩溃,一个虚拟机的崩溃不会影响到其他的虚拟机,不会导致整个实验平台的崩溃。与Minix相比,该实验平台的容错能力更强;虚拟机崩溃时,虚拟机的心跳模块停止发送信号,管理端模块的健康检测模块能够检测到虚拟机的异常情况,因此虚拟机崩溃后,虚拟化平台的修复模块立即用虚拟机模板修复虚拟机,管理端的分配模块立即向虚拟化平台申请新的虚拟机,这两个过程并发进行。与Minix相比,该实验平台缩短了实验周期;用户仅需要提交Linux实验代码,Linux内核的编译、安装、实验数据采集等工作由虚拟机自动完成,与Minix相比,该实验平台缩小了实验的附加工作量;虚拟机采用Linux开源内核代码,不仅可以做操作系统内核态实验,也可以做操作系统用户态实验。与国内高校的操作系统精品课程实验平台相比,该实验平台直接触及操作系统内核,而不是仅仅停留在操作系统用户态空间。
附图说明
图1是操作系统云实验平台的构架结构图;
图2是客户端模块、管理端模块的内部结构及其两者的通信图;
图3是管理端模块、虚拟化平台的内部结构及其两者的通信图;
图4是管理端模块、虚拟机的内部结构及其两者的通信图;
图5是管理端模块与数据库模块的通信图;
图6是心跳模块、健康检测模块、修复模块、回收模块的工作流程;
图7是虚拟机分配流程。
其中,1-客户端模块,2-管理端模块,3-数据库模块,4-虚拟化平台,5-虚拟机资源池,6-虚拟机,7-登录模块,8-提交实验模块,9-显示模块,10-注销模块,11-分配模块,12-提交模块,13-存储模块,14-释放模块,15-修复模块,16-健康检测模块,17-调度模块,18-回收模块,19-虚拟机模板,20-补丁模块,21-编译模块,22-安装模块,23-启动模块,24-采集模块,25-心跳模块。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述:
参见图1,操作系统云实验平台构建方法包括构建客户端模块1、管理端模块2、数据库模块3、虚拟化平台4、虚拟机资源池5和虚拟机6,操作系统云实验平台各模块之间采用TCP/IP协议族实现通信,采用TCP连接交换数据。操作系统云实验平台各模块部署在同一个局域网络内,也可以部署在不同局域网之间,只要保证局域网之间能够相互通信。
客户端模块1在单独的物理机上实施,可以部署在桌面计算机或者便携计算机上。管理端模块2和数据库模块3在单独的服务器上实施,也可以在同一台服务器上实施,数据库模块3采用MySQL、Microsoft SQL Server、Oracle或者其他数据库工具作为数据库服务平台。虚拟化平台4、虚拟机资源池5和虚拟机6在同一台服务器或者服务器集群上实施,虚拟化平台4采用Oracle VM VirtualBox、VMware Workstation、Microsoft Virtual PC或者其他虚拟化工具作为虚拟化服务平台,虚拟机6采用Linux内核的操作系统进行实施,不需要X11等Linux视窗系统,虚拟机6的Linux内核版本视实验需要选择。
客户端模块1与管理端模块2的内部结构及其两者通信见图2所示。客户端模块1采用Browser/Server或者Client/Server架构实施,与客户端模块1进行通信的管理端模块2,即分配模块11、提交模块12、存储模块13和释放模块14,采用Browser/Server或者Client/Server架构实施,两者的架构必须相同。登录模块7成功登录之后,激发分配模块11请求调度模块17(如图3所示)分配并启动一个虚拟机6;提交实验模块8向提交模块12传递实验代码;显示模块9接收存储模块13的数据并给予显示输出;注销模块10向释放模块14请求释放、回收虚拟机6。
管理端模块2与虚拟化平台4的内部结构及通信见图3所示,两者通信部分采用Client/Server架构实施,虚拟化平台4扮演Server角色,管理端模块2扮演Client角色。在进行操作系统实验之前,事先制作一个虚拟机模板19,作为所有虚拟机6的母版。分配模块11请求调度模块17分配并启动一个虚拟机6,调度模块17调度一个虚拟机之后将该虚拟机的IP地址及端口反馈给分配模块11;释放模块14请求回收模块18回收一个正常转动的虚拟机6;修复模块15请求回收模块18回收一个报废的虚拟机6,用虚拟机模板19新建一个虚拟机6,并加入到虚拟机资源池5中。
管理端模块2与虚拟机6的内部结构及通信见图4所示,两者通信部分采用Client/Server架构实施,虚拟机6扮演Server角色,管理端模块2扮演Client角色。分配模块11接收到调度模块17反馈的虚拟机IP地址和端口之后,建立与虚拟机6的TCP连接;虚拟机6的心跳模块25定期向健康检测模块16发送信号,表示虚拟机6正常运转;提交模块12将操作系统实验代码转发到补丁模块20,生成最新的Linux内核源码,启动编译模块21编译Linux内核,安装模块22安装Linux内核和采集模块24;启动模块用最新的Linux内核启动虚拟机6之后,采集模块24采集实验数据,发送到存储模块13。心跳模块25随虚拟机6一并启动,启动成功之后在后台运行,直到虚拟机6被回收或者崩溃。提交模块12提交一次实验代码,补丁模块20、编译模块21、安装模块22、启动模块23和采集模块24依次执行一次,除非中间环节出现故障导致虚拟机6崩溃。
管理端模块2与数据库模块3的通信见图5所示,两者通信部分采用Client/Server架构实施,数据库模块3扮演Server角色,管理端模块2扮演Client角色。不限定数据库模块3存储的数据类型和数量,依据操作系统实验的需求确定需要存储的数据。
心跳模块25、健康检测模块16、修复模块15和回收模块18的工作流程见图6所示。心跳模块25以一个独立的进程实施,依实验平台的需要设定进程睡眠的时间;健康检测模块16以一个独立的进程实施,包含两个同步的线程,分别执行信号接收和健康检测工作,依实验平台的需要设定进程睡眠的时间。不限定虚拟机异常的检测条件,实施时可根据实际情况确定虚拟机异常的检测条件,例如连续若干个周期未收到心跳模块的健康信号等等。
虚拟机分配流程见图7所示。分配模块11提出虚拟机分配请求,调度模块17检测虚拟机资源池5是否资源充足,如果虚拟机资源池5的资源充足,调度一个空闲虚拟机,返回该虚拟机的IP地址和端口。不限定资源充足的检测条件,实施时依实际情况确定资源充足的检测条件,例如空闲虚拟机数量不低于虚拟机资源池5的虚拟机总数的15%视为资源充足。不限定虚拟机调度方法,实施时依实际情况确定从虚拟机资源池中调度空闲虚拟机的方法。
以上所述仅为本发明的较佳实施例,并不用于限制本发明,只要操作系统云实验平台由客户端模块、管理端模块、数据库模块、虚拟化平台、虚拟机资源池和虚拟机构成,各模块符合上述基本特征,不论采用何种虚拟化工具、何种数据库工具、何种网络拓扑结构等,均落在本发明的保护范围之中。
Claims (3)
1.一种操作系统云实验平台构建方法,其特征在于:构建客户端模块、管理端模块、数据库模块、虚拟化平台、虚拟机资源池和虚拟机,各模块间采用TCP连接进行通信,虚拟化平台将计算资源虚拟为虚拟机,以虚拟机资源池作为虚拟机容器,客户端模块通过管理端模块向虚拟机转发操作系统实验代码,虚拟机生成Linux内核源码,并编译、安装和启动Linux新内核,管理端模块接收所述客户端模块提交的操作系统实验代码;
所述客户端模块至少包括登录模块、提交实验模块、显示模块和注销模块;
所述管理端模块至少包括分配模块、提交模块、存储模块、释放模块、修复模块和健康检测模块,接收所述客户端模块提交的操作系统实验代码;
所述客户端模块和管理端模块的架构相同,采用Browser/Server或者Client/Server架构实施;
所述虚拟机至少包括补丁模块、编译模块、安装模块、启动模块、采集模块和心跳模块,接收所述管理端模块提交的操作系统实验代码,更新Linux内核源码,编译、安装和启动Linux新内核,向所述管理端模块发送虚拟机健康信号;
所述虚拟化平台至少包括调度模块、回收模块和虚拟机模板,接收所述管理端模块提交的请求,调度、回收和修复所述的虚拟机。
2.根据权利要求1所述的操作系统云实验平台构建方法,其特征在于:所述虚拟机模板,至少包括所述虚拟机的各个模块,用于新建和修复所述的虚拟机,所述虚拟机采用Linux作为操作系统。
3.一种根据权利要求1或2所述的操作系统云实验平台构建方法构建的操作系统云实验平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310490123.3A CN103533061B (zh) | 2013-10-18 | 2013-10-18 | 一种操作系统云实验平台构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310490123.3A CN103533061B (zh) | 2013-10-18 | 2013-10-18 | 一种操作系统云实验平台构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103533061A CN103533061A (zh) | 2014-01-22 |
CN103533061B true CN103533061B (zh) | 2016-11-09 |
Family
ID=49934726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310490123.3A Active CN103533061B (zh) | 2013-10-18 | 2013-10-18 | 一种操作系统云实验平台构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103533061B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103970590A (zh) * | 2014-05-15 | 2014-08-06 | 南京云思维软件科技有限公司 | 一种基于虚拟化平台的动态虚拟机交付方法及交付系统 |
US20190087220A1 (en) * | 2016-05-23 | 2019-03-21 | William Jason Turner | Hyperconverged system equipped with an orchestrator for installing and coordinating container pods on a cluster of container hosts |
CN107783813A (zh) * | 2016-08-24 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 虚拟机监控和分配方法及装置 |
CN107967837A (zh) * | 2017-05-31 | 2018-04-27 | 常州信息职业技术学院 | 一种基于容器的实训平台及其实施方法 |
CN108920685B (zh) * | 2018-07-12 | 2021-11-26 | 郑州云海信息技术有限公司 | 云数据系统中数据库的管理方法和装置 |
CN108961873A (zh) * | 2018-07-19 | 2018-12-07 | 无锡科技职业学院 | 基于虚拟化平台的在线实验室 |
CN111831520A (zh) * | 2019-04-17 | 2020-10-27 | 烽火通信科技股份有限公司 | 用于Linux操作系统的故障诊断方法及系统 |
CN111163176A (zh) * | 2020-01-02 | 2020-05-15 | 山东超越数控电子股份有限公司 | 一种基于VirtualBox的集群管理系统 |
CN112905185B (zh) * | 2021-01-25 | 2023-10-31 | 浙江大学 | 一种基于QEMU的嵌入式Linux内核动态分析平台 |
US20220398113A1 (en) * | 2021-06-09 | 2022-12-15 | Capital One Services, Llc | Systems and methods for implementing rehydration automation of virtual machine instances |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063818A (zh) * | 2010-08-12 | 2011-05-18 | 华东交通大学 | 一种服务于高校计算机与软件教学的实验云平台系统 |
CN102882932A (zh) * | 2012-09-04 | 2013-01-16 | 健雄职业技术学院 | 基于云服务器的信息安全虚拟实验系统 |
CN103220364A (zh) * | 2013-04-27 | 2013-07-24 | 清华大学 | 一种基于云的系统管理训练平台架构 |
-
2013
- 2013-10-18 CN CN201310490123.3A patent/CN103533061B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063818A (zh) * | 2010-08-12 | 2011-05-18 | 华东交通大学 | 一种服务于高校计算机与软件教学的实验云平台系统 |
CN102882932A (zh) * | 2012-09-04 | 2013-01-16 | 健雄职业技术学院 | 基于云服务器的信息安全虚拟实验系统 |
CN103220364A (zh) * | 2013-04-27 | 2013-07-24 | 清华大学 | 一种基于云的系统管理训练平台架构 |
Non-Patent Citations (1)
Title |
---|
"基于插桩技术的可视化操作系统虚拟实验室研究与实现";李勇,;《中国优秀硕士学位论文全文数据库—信息科技辑》;20110215;第3.2-3.3、3.6小节以及图3-1 * |
Also Published As
Publication number | Publication date |
---|---|
CN103533061A (zh) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103533061B (zh) | 一种操作系统云实验平台构建方法 | |
US20080010496A1 (en) | System and Method to Create and Manage Multiple Virtualized Remote Mirroring Session Consistency Groups | |
US20070168481A1 (en) | Upgradeable persistent virtual storage | |
US20070168498A1 (en) | Out-of-band characterization of server utilization via remote access card virtual media for auto-enterprise scaling | |
CN103336705A (zh) | 脚本处理和工作流系统间的自动转码和语义自适应 | |
CN107665154A (zh) | 基于rdma与消息传递的可靠数据分析方法 | |
CN104299466A (zh) | 一种基于云计算平台的远程硬件实验方法及系统 | |
CN102591778B (zh) | 一种基于服务的可扩展程序竞赛评测系统 | |
CN102937932A (zh) | 集成异构测试工具的自动化测试装置及方法 | |
CN109002310A (zh) | 固件升级方法 | |
CN102779056B (zh) | 远程硬件程序更新方法及系统 | |
CN106100880A (zh) | 一种云数据资源部署及可视化管理方法 | |
CN101063979A (zh) | 一种支持随机指令测试的微处理器fpga验证装置 | |
CN112527647B (zh) | 基于NS-3的Raft共识算法测试系统 | |
CN102063368B (zh) | 基于命名变量的全景数据在线实时调试方法 | |
CN103019732A (zh) | 一种基于省市县一体化软件的安装部署方法及系统 | |
CN111538573A (zh) | 异步任务处理方法、装置及计算机可读存储介质 | |
CN111427602B (zh) | 一种vpx机箱的智能平台管理控制器在线升级固件的方法 | |
CN111859832A (zh) | 一种芯片仿真验证方法、装置及相关设备 | |
CN103678007B (zh) | 一种软件的批量部署方法及系统 | |
CN111679889B (zh) | 一种虚拟机的转换迁移方法和系统 | |
CN108063787A (zh) | 基于分布式一致性状态机实现双活架构的方法 | |
CN106020898A (zh) | 一种多处理器设备的软件升级方法及系统 | |
US7228364B2 (en) | System and method of SCSI and SAS hardware validation | |
CN103970663A (zh) | 一种模拟物理设备的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |