基于云技术的计算机实训课存储平台设计与实现

2022-06-23 06:09姚莉娟
无线互联科技 2022年8期
关键词:服务器端脚本服务器

姚莉娟,陈 玮

(成都纺织高等专科学校信息中心,四川 成都 611731)

0 引言

随着计算机技术的发展,高校采用计算机进行实训的课程越来越多,对计算机练习的要求越来越平常,课程工程文件越来越复杂。 最近几年,计算机实训课程的机房多采用桌面云技术[1],云技术的使用极大降低了计算机实训室硬件维护、应用软件冲突配置方面的繁重工作,极大程度提升了实训课程的效率,优化了学生体验。 但现在的云计算系统中的存储系统并未设计独立云盘化[2],各个同学的项目文件保存于共享存储结构中。 因此,在同学交叉使用电脑的情况下,个人项目文件易被覆盖、误删、甚至丢失。 加之在实训室和个人电脑间进行拷贝操作也极不方便,为同学们课前、课后练习带来了诸多不便。

为解决以上学生课前课后计算机实训中工程文件保存、移动不便的问题,结合公共计算机课实训中网络存储的需求特点,本文设计并实现了基于 Samba[3]和Web Service[4-5]的共享网盘,实现了工程文件在不同环境的无缝使用。

1 系统需求及关键技术

1.1 需求分析

计算机实训课程存储平台,主要用于学生云桌面系统在进行实训课时,实训工程文件的存放,服务器共享存储空间。

(1)用户独立管理自身存储,不互相干扰。 (2)工程文件一般对存储空间要求不大,但由于人数众多,需要存储空间能够进行动态拓展。 (3)由于学生上机位置、时间不限,同时要求课前、课后进行实训,因此需要能够在校内进行网络访问,校外则通过WEB 服务进行访问。 (4)另外,由于使用同学大多是一年级的新生,对电脑的操作使用还不够熟练,系统需要支撑在Windows 操作系统下的简单快速的挂载。

1.2 SAMBA 服务

Samba 是基于 NetBIOS 的 Linux 和 Windows 系统在网络中进行文件共享的协议,Linux 中运行Samba 服务器,Windows 作为客户端对网络上的文件进行访问。

该协议用于客户服务器模式的开发。 Windows 用户通过类似于IP 地址或主机名、共享目录名的方式将共享目录映射到本地,这样就可以像访问本地目录一样操作网络上共享的目录和文件,对初学者来说尤为方便。

1.3 Web Service

在Web2.0 时代,Web 已经成为因特网上的主要内容。 而Web Service 是一种分布式的计算模式,是指在因特网上通过定义好的,能被其他软件或者服务调用的功能组件。 Web 服务能够实现跨平台应用,利用HTTP,SOAP,RESTful,XML 等规范协议,提供高效、重复利用率高以及技术耦合度低等特点的服务,因此在网络上应用非常广泛。

Windows 系统一直以来依靠 NetBIOS 来发现其他机器。 由于SMBv1 出现了安全问题,因而Windows 系统中默认禁用了SMBv1,但是可以采用Web Service Discovery 来发现 Samba 服务。

本项目一方面用Web Service 来对用户管理界面进行设计,一方面利用其来发现Samba 服务。

2 系统实现及功能模块

2.1 系统构架

基于SAMBA 和Web 服务的共享网盘系统构架,如图1 所示。

图1 中可见实训课存储平台由以下2 个模块构成:Samba 后台服务和云服务器端。 云服务器端包括中间件、Samba 接口、提供给用户的Web 服务。

图1 基于SAMBA 和WEB 服务的共享网盘系统构架

整个平台部署在CentOS 系统中,文件系统整体采用逻辑卷管理(LVM),其构架在物理卷之上,通过物理磁盘的增加任意调整逻辑卷的存储空间大小。 通过部署定期检测策略,可以在存储空间达到门限时提前发出提醒。

系统部署SAMBA 后台服务程序,提供共享存储服务。

2.2 云服务器端

云服务器端采用 Node.js 承载,Node.js 采用JavaScript 开发,语法非常简单,模块众多,是利用快速逻辑的一种简单应用。 由于采用高效的V8 解释引擎,能够很好保证其作为服务器的运行效率。

JavaScript 开发的中间件帮助对Samba 访问的集中实现,该中间件面向用户主要提供用户目录管理,包括对管理员提供主要用户创建、目录建立的日常管理功能。

Node.js 部署了Web 服务对外向网络,向用户提供文件管理、Web 文件查看、删除等功能服务。 学生的计算机可以通过浏览器浏览文件,下载文件进行操作实训。 更通常的做法是通过下载自动配置脚本,将远程目录映射到本地进行操作实训。

出于安全考虑,Node.js 针对管理工作提供了本地服务端口,管理界面只能在本地登录,工作只能在服务器本地执行。 完成对用户数量的增减进行批量操作、目录的建立等,该功能通过直接调用实现的Samba 接口来完成管理功能。

2.3 Samba 接口

由于Samba 的Web 管理工具已经与新版差距比较大,因此利用Samba 的管理工具命令集开发了Samba接口。 该接口是由Shell 脚本实现的一系列调用Samba的Shell 管理工具来完成特定功能的函数集组成。

Samba 接口功能划分,如图2 所示。

图2 基于脚本的Samba 接口功能模块

基于Shell 脚本的管理函数集合,被部署在管理工具集中,通过对Node.js 的执行权限的提升,以及引入Node.js 的Shell 脚本执行模块完成执行操作。

2.4 Windows 端自动配置脚本

进行Samba 客户端的访问需要用到大量的Windows 管理员命令,才能在控制终端完成操作。 即使是熟练的使用者都难以流畅地使用,更何况该系统面向的主要是一年级的新生。 为了简化初学者使用,文章设计了Windows 端自动配置脚本。

Windows 脚本是系统提供了一种脚本环境,在这个环境中,预定义了一些对象,包括管理员命令。 通过这些对象可以访问其范围内的方法和属性,通常也通过使用一种解释执行的语言来操作。

服务器端配置有自动配置脚本模板,当用户登录到Web 界面时,在下载配置脚本时,服务器就会自动生成,访问必须有的目录等内容。 用户下载该文件后,在本地以管理员运行的方式执行该脚本,快速进行共享目录的挂载和移除。

3 系统部署及测试

在学校环境中对该计算机实训课存储平台进行了初步部署和试运行,采用的服务器是Intel 至强E5-1603 ,主频2.8 GHz,内存16 GB,SATA 磁盘空间1T,没有采用SSD 缓存,Intel 网卡通过千兆电口连接到48口千兆交换机。 系统采用CentOS 8 x86_64。 系统在初始化时,预置了120 个用户。

首先进行了远程目录的读写性能测试,通过将文件拷贝到共享目录和将拷贝文件到本地进行测试。 为了计算速度方便记录,采用了约1G 的大文件,测试得到平均读写速度为20 MB/s 左右,可以看出读写主要受限于磁盘缓存等,满足实训工程中的一般要求。

另外文章对并发情况下的远程目录读写进行了测试,同时启动50 个用户进行读写测试,采用64 MB 左右的文件进行,测得用户端平均速度约为1.8 MB/s。满足一般实训要求。

由于日常的实训课程包含的文件都不大,例如计算机基础、C 语言程序设计、工程制图、网页制作等,但是这些实训课程内文件数目非常多。 针对并发、文件数目多的情况下对远程目录读写进行了测试,同样同时启动50 个用户进行读写测试,采用64 MB 左右的文件夹包含100 个左右的文件。 进行测试,测得用户端平均速度约为2.0 MB/s,差别不大,可满足一般实训要求。

需要注意的是用户端平均运行速度在校园网环境下性能有所下降,并发数减少,基本能够满足校内宿舍和教室访问的需求,如果采用高缓存或者是SSD 的服务器部署能一定程度提高性能。

4 结语

本文研究公共计算机课实训中工程文件网络存储的需求特点,设计并实现了基于Samba 的共享网盘系统,实现了实训工程文件在不同环境的方便无缝使用。

实验系统测试表明,该方案可以实现学生对实训文件的存储需求,速度能够满足日常需要,简单易用,达到了预期设计目标。 下一步还将继续优化设计,通过“云”、分布式等方式探索高并发能力的方案。

猜你喜欢
服务器端脚本服务器
酒驾
Linux环境下基于Socket的数据传输软件设计
通信控制服务器(CCS)维护终端的设计与实现
数据库系统shell脚本应用
浅析异步通信层的架构在ASP.NET 程序中的应用
快乐假期
中国服务器市场份额出炉
基于Qt的安全即时通讯软件服务器端设计
得形忘意的服务器标准
计算机网络安全服务器入侵与防御