APP下载

新工科背景下云计算技术课程教学设计

2022-08-12王志晓

电脑与电信 2022年5期
关键词:计算技术特权工科

张 博 王志晓

(中国矿业大学计算机科学与技术学院,江苏 徐州 221116)

1 引言

2016年,“新工科”概念的提出为工程人才的培养与工程教育理论的探索提供了新视角和新思路,也是为了应对新一轮科技革命和产业革命的浪潮[1]。与老工科相比,新工科更加重视学科的实用性以及各个学科之间的交叉性与综合性,致力于提供一流的工程教育,培养多元化、创新型、复合型的卓越工程人才,促进产业转型,提高国家的核心竞争力[2]。

云计算技术作为“新工科”建设的重点,国内多所高校已积极开设云计算技术相关课程,主要介绍云计算基本理论,分析其关键技术,阐述其基础架构及各种典型的云解决方案。该课程的突出特点是内容丰富、综合性强、学习量大、抽象性强、实践性高,是一门较难学的课程。同时,由于该课程的开设和建设还处于初期,且云计算行业的技术更新较快,目前尚无较成熟的课程建设先例供各大高校借鉴。因此,对云计算技术课程建设展开深入研究,整改教学内容,优化教学方法,加强课程与企业以及行业之间的联系,提高课程的实践性和应用性,具有较强的实际意义和研究价值。

基于此,本文在总结本科计算机科学与技术专业教学实践的基础上,针对虚拟化技术中的计算虚拟化设计了新颖的教学方案,通过提炼教学重点、创新教学方式、发展新的教学思路。本文对新工科建设背景下,工科院校云计算技术课堂教学改革有一定的借鉴意义。

2 学情分析

本课程的授课对象为计算机科学与技术专业的大三学生。先期已学习了计算机组成原理、操作系统、数据库原理、计算机网络等先导课程,学生基本掌握了计算机科学相关的理论知识。同时,在这门课程的第一章『什么是云计算?』中已学习了有关云计算的基础知识,初步了解了云计算的特点、定义和服务模式等。但虚拟化的知识点多,涉及操作系统、编译原理、计算机网络等多门课程,这增加了学生从整体上掌握计算虚拟化的难度。因此,本章节的讲学设计将运用多种教学手段,围绕这些重难点开展系统教学活动。

3 教学目标

基于云计算技术课程教学目标点,围绕计算虚拟化技术相关知识点,提出本章节内容的教学目标,分为5点:

(1)能够理解什么是虚拟化,掌握裸金属虚拟化(I型)和宿主型虚拟化(II型)的概念及各自的特点。

(2)理解并熟练掌握CPU 虚拟化、内存虚拟化和I/O 虚拟化。

(3)熟练掌握开源和闭源的计算虚拟化解决方案,包括KVM和华为的FusionSphere。

(4)通过学习和掌握计算虚拟化技术,进一步为学习网络虚拟化、存储虚拟化以及OpenStack 开源云计算技术打下坚实的基础。

4 教学重点和难点

4.1 教学重点

本章节内容众多,是进入云计算技术的开篇内容。如何结合课程内容以及专业需求来提炼授课重点决定了最终的教学效果,也是教学目标达成的重要保证。对于计算虚拟化技术,以CPU虚拟化、内存虚拟化和I/O虚拟化为教学重点,重点讲授计算虚拟化分类、CPU虚拟化方法、特权解除(Privilege deprivileging)和陷入模拟(Trap-and-Emulation)等关键知识点,并引导学生运用计算虚拟化理论理解KVM、Xen以及华为的FusionSphere的运行机制。

4.2 教学难点

理解什么是虚拟化,掌握虚拟化的分类。掌握大型机的经典CPU虚拟化和x86架构CPU虚拟化的三种解决方案,尤其是x86架构CPU虚拟化的关键问题,即如何识别特权或敏感指令。

5 教学内容和过程设计

5.1 什么是虚拟化

首先是设计课程导入环节。借鉴基于问题的学习策略(PBL)[3,4]。由于虚拟化最大的特点就是把物理机转换为虚拟机,所以从虚拟机是如何被创建出来的问题出发,以基于内核的虚拟机(Kernel-based Virtual Machine,KVM)配置文件为例(如图1所示),引导学生讨论什么是虚拟化。

图1 KVM虚拟机配置文件

通过讨论,使学生理解虚拟化的本质,即将物理服务器逻辑化,转变成一个文件夹或文件,其中一部分用来记录虚拟机的配置信息,如虚拟机的名称、CPU和内存配置,硬盘配置以及网络配置等信息,另一部分用来保存用户数据的磁盘文件,实现软硬件的解耦。接着,进一步引导学生讨论虚拟化带来的特性,比如每台物理机上同时运行多个虚拟机可以提高硬件资源利用率,降低运行成本;软硬件的解耦使虚拟机可以不受当前物理服务器的限制,在集群范围内实现虚拟机的在线动态迁移,进而实现高可用性、动态资源调度、容错容灾等特性。

随后,进入对虚拟化的理论阐释环节。课程主体内容的设计分为以下步骤:

(1)计算虚拟化的重要概念:如图2所示,通过对比物理服务器架构和虚拟机架构,介绍物理机(Host Machine)、物理机操作系统(Host OS)、虚拟机监控器(Virtual Machine Monitor,VMM)、虚拟机(Guest Machine)和虚拟机操作系统(Guest OS)等概念。

图2 物理架构和虚拟化架构

(2)计算虚拟化的分类:裸金属虚拟化(I型)和宿主型虚拟化(II 型)。重点讲解两种类型虚拟化中虚拟机监控器(VMM)的作用:I 型虚拟化中VMM 专门负责将物理硬件转换为虚拟资源提供给虚拟机操作系统使用,所以称为裸金属。II型虚拟化中VMM只是物理机操作系统的一个应用程序,通过调用物理机操作系统的服务获得资源,实现CPU、内存和I/O 设备的虚拟化,所以称为宿主型。采用该结构的虚拟化产品包括VMWare Workstation、Virtual PC等(图3)。

图3 计算虚拟化的分类

(3)介绍主流的I 型虚拟化产品(VMWare ESX Server、Citrix Xen Server和华为的FusionComputer)和II型虚拟化产品(VMWare Workstation、Virtual PC)架构,引导学生讨论不同虚拟化产品所属的虚拟化类型。

(4)总结I 型和II 型虚拟化的特点:分区、隔离、封装和独立。

5.2 CPU虚拟化

(1)CPU 虚拟化的发展史:由于CPU 虚拟化是本章的教学难点,所以本节从CPU 虚拟化的发展史入手。通过介绍IBM大型机采用的CPU虚拟化技术,引导学生回顾操作系统课程中介绍的分时操作系统原理,即将CPU切分为多个极短的时间片,通过时间片轮询的方式,将一个CPU伪装成多个虚拟CPU,并且让每一个虚拟CPU看起来都在同时运行,这就是CPU虚拟化的雏形。

(2)大型机的经典CPU虚拟化方法:首先设置有关CPU虚拟化的关键问题,即:什么是CPU的分级保护域?什么是特权指令、普通指令和敏感指令?如果虚拟机操作系统(Guest OS)发出特权指令怎么执行?引导学生进入对CPU虚拟化的思考中,激发其学习兴趣和探索精神。

随后,进入对CPU 虚拟化的理论阐释环节,结合此前提出的问题——虚拟机操作系统(Guest OS)发出特权指令的执行过程?介绍IBM 大型机采用的经典CPU 虚拟化方法,即特权解除(Privilege deprivileging)和陷入模拟(Trap-and-Emulation)。由于经典CPU 虚拟化方法需要结合操作系统的中断机制,所以在讲解过程中设置了与中断机制相关的提问环节,如为什么需要中断机制?中断机制在CPU虚拟化中作用?等等。

(3)x86架构的CPU虚拟化问题:首先设置问题,引导学生思考大型机上使用的经典CPU 虚拟化技术能否移植到x86架构服务器上?接着,通过分析x86架构CPU采用CISC指令集与大型机CPU 采用的RISC 指令集之间的区别,分析经典CPU 虚拟化技术无法直接用于x86 架构CPU 虚拟化的原因——虚拟化漏洞问题,即CISC 指令集中19 条不属于特权指令范围的敏感指令无法被特权解除和陷入模拟捕获。

随后,通过引导学生思考如何解决虚拟化漏洞问题,引出x86架构CPU虚拟化的三种解决方案——VMWare提出的全虚拟化、Xen提出的半虚拟化和硬件厂商提出的硬件辅助虚拟化。

1)全虚拟化:虚拟机监控器(VMM)通过二进制翻译和模拟执行特权或敏感指令,解决虚拟化漏洞问题。优点:不修改虚拟机操作系统(Guest OS),虚拟机的可以执行性和兼容性强。缺点:翻译虚拟机操作系统(Guest OS)二进制代码,性能损耗大。

2)半虚拟化:修改虚拟机操作系统(Guest OS),使其意识到自己是被虚拟的,运行时使用超级调用(Hypercall)代替特权或敏感指令。优点:与原始系统性能相近。缺点:对于未开源的Windows系统无法实现半虚拟化。

3)硬件辅助虚拟化:全虚拟化和半虚拟化都有一个默认的前提,即物理CPU不具备虚拟化功能,无法识别敏感指令,必须通过虚拟机监控器(VMM)进行模拟。硬件辅助虚拟化解决了上述问题,实现了CPU虚拟化的革命性变革。目前主流的x86架构的CPU都支持了硬件虚拟化技术。

(4)总结:点出x86架构CPU虚拟化的关键问题,即如何识别特权或敏感指令。

6 教学互动和启发引导

6.1 启发式讨论

讨论1:结合1型和2型虚拟化的特点——分区、隔离、封装和独立,请2~3 位同学分别结合自己所学、所见举一些实际的例子来讨论。

讨论2:从介绍开源的虚拟化技术基于内核的虚拟机(Kernel-based Virtual Machine,KVM)和Xen 入手,讨论KVM如何实现CPU全虚拟化?为什么Xen可以同时支持全虚拟化和半虚拟化?引导学生从实际案例入手,逐步探讨具体虚拟化解决方案背后所蕴含的虚拟化思想。

6.2 适时提问、温故知新

提问1:结合前述云计算的内容,提问1~2位同学有关什么是云计算的特点,以及虚拟化和云计算的区别与联系。

提问2:针对操作系统相关知识,提问1~2 位同学。如,什么是分时操作系统?什么是CISC 指令集?什么是RISC指令集?

7 课程内容建设

7.1 产教融合协同育人

新工科背景下,为了解决教学内容与行业需求以及前沿技术脱节的问题。我院与华为技术有限公司合作,联合建设“智能基座”产教融合协同育人基地。将华为云计算技术引入到课程教学中,基于华为云计算基础设施开展教学:以FusionCompute 讲解计算虚拟化、以FusionStorage 讲解存储虚拟化、以FusionNetwork 讲解网络虚拟化、以FusionAccess 讲解桌面云架构。通过校企合作,加快新工科建设,以产业和技术发展的最新需求推动高校人才培养改革、教学资源建设。

为了提高师资水平,我院安排课程负责人和骨干教师参加“全国高校计算机系统能力提升高级研修班”,学习华为云计算课程,并获得全国高等学校计算机教育研究会联合华为公司共同颁发的结业证书。

7.2 建设线上教学资源

在学习通泛雅云平台建课。根据课程的培养目标,实现课程教学资源的上传下载、教学任务的布置、师生在线讨论答疑、学生作业提交、老师在线考核、开源项目的共享等功能(图4)。

图4 学习通泛雅云平台

8 教学反思

虚拟化技术是进入云计算技术的开篇内容,是授课教师普遍认为的教学重点和难点。面对众多知识点无所适从,学生在学习时普遍具有畏惧心理,进而对虚拟化这一部分的内容产生厌学的情绪。为了使学生能在较为轻松的学习氛围中不断主动汲取新知识,必须采用恰当的教学方法和丰富的授课方式。通过运用启发式教学,以问题为导向,引导学生主动思考,逐步引出所要讲授的关键内容和难点内容,激发学生的学习兴趣,全面提升学习效果。

猜你喜欢

计算技术特权工科
“新工科”和OBE模式下的车辆工程实践课改革
无聊是一种特权
新工科背景下计算机专业创新创业人才培养探究
不允许任何人有超越法律的特权:《毛泽东给雷经天的信》
新工科背景下项目推动式教学模式的探索
新时期计算机网络云计算技术研究
天津大学:成立全球首个新工科教育中心
计算机技术在通信中的应用研究
云计算及其在地理信息工程中的应用
粒子群算法在电力系统中的应用研究