APP下载

一种经济开源大数据实验教学平台设计研究

2020-07-20曹天泽

黑龙江科学 2020年13期
关键词:服务端开源虚拟化

曹天泽

(杭州师范大学,杭州 311121)

0 引言

机房供学生教学的电脑都安装了windows操作系统,在windows系统中体验Linux系统时共有两种方案,一种是在windows内安装虚拟管理软件VMware Workstation,该方案要求教学电脑内存需8G以上,在运行2G内存Linux虚拟机时才不会对其他软件的运行有明显的影响,且VMware Workstation是一款商业收费软件,每个安装使用VMware Workstation的教学电脑都要向VMvare公司购买授权许可证。另一种是在远端服务器的电脑上安装Linux,教学电脑通过SSH客户端连接Linux。该方案要求学生熟悉基本的Shell操作命令,但对教学电脑的硬件要求不高,运算负载集中在服务器端。现有许多公司提供此问题的解决方案,但需付费购买昂贵的服务器和工作站,且高度封装,不利于学生了解底层技术。本研究提出的实训方案是基于远端服务器安装Linux,硬件可以利用淘汰的老PC机,软件采用开源平台,无需投入过多成本。

1 相关技术概述

1.1 SSH

SSH(Secure Shell)是一种基于非对称加密的网络协议,在安装了Linux系统的电脑中安装SSH协议的服务端软件后,处于同一网络的其他电脑可以通过SSH客户端登录电脑,通过Shell命令操作该Linux电脑,也可以通过支持SFTP的软件对该Linux电脑上传和下载文件。本研究采用的基于Windows的开源SSH客户端软件为PuTTY和WinSCP,基于Linux的开源SSH服务端软件为openssh-server。

1.2 QEMU-KVM

KVM[1](Kernel-based Virtual Machine)是Linux系统自带的内核模块,此模块能实现CPU的虚拟化和内存虚拟化。QEMU(quick emulator)是一款免费开源的可执行硬件虚拟的软件。QEMU-KVM是KVM的开发者对二者封装后生成的软件,由KVM负责CPU和内存的虚拟化,QEMU负责其他IO设备的虚拟化。

1.3 Libvirt和virt-manager

Libvirt[2]是一套基于C语言的开源虚拟机管理API,它支持KVM、QEMU、Xen等虚拟机化计算, API可以通过编程方式管理虚拟机。virt-manager[3]是红帽公司推出的一套开源图形学虚拟机管理软件,它功能强大,操作简便。

2 实验教学平台的设计方案

2.1 总体架构

硬件资源分为三部分:第一部分是顶端的“学生机”,安装系统为window 7或windows 10操作系统。第二部分为底部“VM服务端”,根据教学人数和本机电脑配置所需台数。第三部分为右方的“VM管理端”,用来管理VM服务端虚拟机的创建、启动和关闭。第二部分和第三部分的机器全部安装Linux系统,推荐使用Ubuntu 16.04以上操作系统。机器需在一个网络内,相互之间可以连通。

图1 总体架构图Fig.1 General structure diagram

2.2 软件设计方案

整体软件设计分为以下几个步骤:(1)在“学生机”中安装PuTTY和WinSCP;(2)在“VM服务端”安装KVM-QEMU和附属软件,Ubuntu系统在命令行输入“sudo apt install qemu qemu-kvm libvirt-bin bridge-utils ssh-askpass”后,系统会自动安装;(3)在“VM服务端”安装ssh服务端软件,Ubuntu系统在命令行输入“sudo apt intall openssh-server”后,由系统自动安装;(4)在“VM管理端”中安装virt-manager软件,Ubuntu系统在命令行输入“sudo apt install virt-manager”后,由系统自动安装;(5)在“VM管理端”中配置各个“VM服务端”ssh免密码登录功能。首先在命令行输入命令“ssh-keygen -t rsa”,在VM管理端的home主目录下的“.ssh”目录中生成名称为“id_rsa.pub”的密钥,然后执行“ssh-copy-id -i ~/.ssh/id_rsa.pub username@ipaddress”命令,其中“ipaddress”需替换为VM服务端的IP地址,“username”需替换为VM服务端Linux系统的账户名;(6)在“VM管理端”中启动virt-manager,通过该软件菜单栏的“File”->“Add Connection”,在弹出的选项框中分别输入各“VM服务端”的账户名及IP,将各个VM服务端纳入VM管理端的管理范围;(7)在virt-manager中连接任意一个VM服务端,并借助事先下载的LinuxISO镜像创建VM,内存建议不小于2G,网络连接选择“桥接网络”(bridged networking)。完成VM创建后,通过virt-manager登录到VM,为VM配置同一网络的IP信息,并在VM中安装ssh服务端软件,Ubuntu系统在命令行输入“sudo apt intall openssh-server”,由系统自动安装;按照教学需求虚拟机的数量克隆上一步骤,创建VM,并为克隆的每个VM配置同一网络的IP信息。

2.3 实训流程

在实训相关课程时先启动全部电脑,在VM管理端启动virt-manager,通过界面操作,启动每个VM。学生在教学电脑上使用PuTTY或WinSCP软件,通过输入对应VM的IP和账户名登录到虚拟机进行实训操作。

3 结语

软件开发课程教学必须理论结合实训,只有通过动手操作,才能举一反三的验证理论。有别于以往计算机课程在windows系统中就可完成从开发到运行以及验证的全部步骤,大数据软件开发课程必须基于Linux类系统进行运行验证。本方案在无需投资的情况下充分利用旧有硬件资源和免费开源软件,具有易上手,低投入的特点。但部署过程中还有更多优化空间,如通过编写Linux脚本简化运维,定制化镜像的开发,都有待进一步的研究和改进。

猜你喜欢

服务端开源虚拟化
五毛钱能买多少头牛
2019开源杰出贡献奖
基于OpenStack虚拟化网络管理平台的设计与实现
对基于Docker的虚拟化技术的几点探讨
新时期《移动Web服务端开发》课程教学改革的研究
浅析虚拟化技术的安全保障
H3C CAS 云计算管理平台上虚拟化安全防护的实现
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
摸清黑客套路防范木马侵入