05 桌面实验环境 - coursegrading/CourseGrading GitHub Wiki
实验模块是用来做什么的?
- 有关实验的详细介绍和演示请参考:http://educg.net/exp.html 。如图1,学生可以直接在浏览器上访问远程的虚拟桌面,左侧为实验教程(包含详细实验步骤),右侧为已经配置好开发环境的虚拟机。这种实验形态充分利用了当今流行的云计算相关技术,学生无需配置环境随时随地直接动手练习,极佳的使用体验,是与CG系统的作业、考试平行的一个模块,承载项目开发与实训相关的需求。支持任何虚拟化技术,可以充分利用学校现有的计算中心(云计算中心)物理设备,为学校打造计算机实验在线机房。
- 实验需要有服务器(集群)和虚拟化平台支撑,具体部署方式参阅1.7 系统管理→虚拟机管理 。
- 学生根据实验教程在虚拟桌面上开展实验,实验过程中,还能在线撰写报告,抓屏实验桌面,如图2。
- 教师可以选择部分实验以类似作业的形式布置给学生,如图3所示,在后台可以进入学生的桌面、浏览学生详细的在线活动数据、查看实验报告,并综合以上信息为学生的实验打分。
CG在线实验环境是如何解决资源耗费问题的?
CG系统支持两类在线实验环境:虚拟桌面实验环境和Jupyter实验环境。
- 虚拟桌面实验环境用的远程桌面来实现的,即将操作系统桌面通过VNC协议呈现在浏览器内。常规做法是一人一台虚拟机,一人一台虚拟机的优点是隔离性好,技术实现简单,而且OpenStack等开源软件都已经直接集成了远程桌面,大家见到的类似实验环境都是这么实现的。但缺点是资源耗费巨大,可以简单测算,现在的64位桌面版操作系统要求至少4GB内存与2个物理核,如果再安装开发环境,至少6GB内存,如果遇到大数据环境,那么至少8GB内存和4个物理核。推算一下,如果一门课有100人,至少需要800GB内存400个CPU核心。现在比较的高档服务器一般30个物理核128GB内存,也就是一门大数据课程需要至少13台高档服务器。这样的资源消耗对于教学是不可接受的。
- CG的虚拟桌面实验环境通过多用户共享和集群计算资源的分时动态调度技术,来解决资源耗费问题。不是每个用户独占虚拟机,而是多个用户共享一台虚拟机,虚拟机内只部署开发环境,每人的内存资源消耗可以降至1GB,100人的课程,1台服务器就绰绰有余!对于大数据,特别是人工智能这类需要耗费巨大计算资源的课程实验,只需要部署一台或者几台服务器作为计算集群,学生在实验桌面开发的实验代码通过CG的调度系统发送到集群上执行即可,这也是目前工业界的工作模式。
- CG的Jupyter实验环境,是基于Docker实现的,相比操作系统桌面,Jupyter只是个Web服务,资源消耗很小,一般一台服务器可以支撑300人同时在线做Jupyter实验。
在线实验环境,一门课(假设每届200人)应该部署多少台虚拟机?
- 由于是B/S架构,学生可以在“任何地点、任何时间”开展实验,不是局限在某个实验室内,所以很难精确计算并发数。简单的计算方法,就是按照最大人数来规划资源,例如某一门课不可能超过学院一届的招生人数。创建的实例用户数等于每届人数即可,一般情况下,一门课只需要一台桌面服务器。如果是Jupyter实验环境,一台服务器可以支撑400~500人。
- 具体请参考在线文档 ,教师登录之后,点击右上角的“用户指南”→“在线实验环境帮助”。
实验栏目和作业栏目有什么区别?
CG系统的在线实验特指依赖远程桌面或者Jupyter环境的实验。类似编程题、SQL评测、组成原理等都作为一种题型出现,放到作业或者考试栏目内。
虚拟桌面实验能否给学生分配多台虚拟机?
技术上可行,但是并没有放开让学生拥有多台虚拟机,一人多台虚拟机对本地存储和内存资源的消耗是极大的,如此大的资源要求,会严重影响使用体验,最终导致不可用。 推荐的技术路线:如果需要一个学生多个节点的实验,建议在现有的实验桌面内,创建多个docker,资源消耗量将会大幅降低,例如:希冀系统的大数据安装实验,就是采用一个用户多个docker机的方式。
虚拟桌面实验如何使用? 在线实验的操作风格与作业、考试等栏目基本一致,您可以观看此视频详细了解。