一种自动调度云桌面和计算子节点硬件资源的方法技术

技术编号:38709240 阅读:16 留言:0更新日期:2023-09-08 14:49
本发明专利技术提供一种自动调度云桌面和计算子节点硬件资源的方法,包括以下步骤:S1:创建数据库表;S2:录入实际课程时间到计算机课课程表中;S3:录入资源告警阈值到资源告警阈值表中;S4:给所有云桌面虚拟机添加系统操作监控脚本;S5:在计算主节点虚拟机中添加课程监控脚本;S6:在计算主节点虚拟机中添加资源监控脚本;S7:在计算主节点虚拟机中添加计算子节点自启脚本;本发明专利技术提供的资源调度方法实现了云桌面虚拟机和计算子节点虚拟机之间硬件资源的自动调度,替代了手动操作,降低了人力和时间的投入,提高了效率。提高了效率。提高了效率。

【技术实现步骤摘要】
一种自动调度云桌面和计算子节点硬件资源的方法


[0001]本专利技术涉及计算机科学领域,尤其涉及一种自动调度云桌面和计算子节点硬件资源的方法。

技术介绍

[0002]随着云技术的日益成熟和普及,越来越多的高校开始运用云技术构建计算机相关课程的教学环境,具体的构建方法为:计算机教室内供师生教学使用的电脑采用普通低配电脑,机房内配备高性能服务器,在服务器内创建云桌面虚拟机并发布,师生上课时用普通低配电脑连接云桌面,在云桌面内进行教学。
[0003]高校中,一般会在一台虚拟机中部署一套计算集群任务管理系统,这台虚拟机为计算主节点,用于接收计算任务、分配任务给空闲的计算子节点、监控计算子节点的任务执行状态;计算子节点是指多台安装了计算求解器的虚拟机,用于接收、执行、反馈主节点分配的任务。
[0004]只有部署了教务系统的虚拟机、计算主节点虚拟机以及一些提供底层服务的虚拟机(如虚拟机管理中心vcenter)是需要常年开机的,云桌面虚拟机只有师生上课时才需要开机,计算子节点虚拟机只有存在计算任务要执行时才需要开机,绝大多数情况下,机房服务器的总配置是小于教务系统虚拟机总配置+云桌面虚拟机总配置+计算主、子节点虚拟机总配置的,否则服务器大量资源大多数时间会处于闲置状态,造成无意义的浪费。
[0005]然而现有的这种配置方法存在以下弊端:1、服务器的总硬件资源就不够所有的虚拟机同时开机,需要在快上课时开启云桌面虚拟机、关闭计算子节点虚拟机,在下课后关闭云桌面虚拟机、开启计算子节点虚拟机,以确保硬件资源的正常调度,需要固定的运维人员手动进行这些操作,工作量大的同时效率低下;2、需要定期检查监听服务器的cpu和内存使用率,因资源调度不当导致服务器的cpu和内存使用率超过阈值时,会导致服务器卡顿、崩溃,进而导致教学、教务工作无法正常进行,即便运维人员处理及时,也挽回不了浪费的时间。

技术实现思路

[0006]本专利技术的目的是为了解决现有技术中存在的缺点,而提出的一种自动调度云桌面和计算子节点硬件资源的方法。
[0007]为实现上述目的,本专利技术采用了如下技术方案:一种自动调度云桌面和计算子节点硬件资源的方法,包括以下步骤:S1:创建数据库表;工程师在任意一台部署了教务系统数据库的虚拟机内创建两张数据表,一张是计算机课课程表、一张是资源告警阈值表;所述计算机课课程表用于存放一学期内将在计算机教室进行的所有课程,包括课
程序号、课程时间;所述资源告警阈值表用于存放资源告警阈值,包括资源告警阈值;所述资源告警阈值为一个百分数,指允许所有虚拟机实际使用的cpu占服务器总cpu的比值、允许所有虚拟机实际使用的内存占服务器总内存的比值;S2:录入实际课程时间到计算机课课程表中;工程师根据学校实际的课程安排整理接下来一学期将在计算机教室进行的所有课程,将整理好的数据保存到excel表格中;所述excel表格包括课程序号、课程时间;所述课程序号是指课程的排序序号;所述课程时间为课程的开始时间,具体格式为“年



日 时:分:秒”;整理完成后,通过数据库管理工具将整理好的excel表格中的数据导入到计算机课课程表中;所述数据库管理工具包括Navicat等;S3:录入资源告警阈值到资源告警阈值表中;工程师通过数据库管理工具在资源告警阈值表中输入资源告警阈值;所述数据库管理工具包括Navicat等;S4:给所有云桌面虚拟机添加系统操作监控脚本;工程师给每一台云桌面虚拟机上传系统操作监控脚本,并在windows计划任务中创建一个开机自启任务,开机后启动系统操作监控脚本;工程师设置一个具体的时间值,记为a;所述a为毫秒数;系统操作监控脚本具体的实现方法为:工程师通过setInteral函数设置一个定时器,并设置一个定时时间,开启定时器,每当间隔一个定时时间就执行一次定时器,每一次执行时调用GetLastInputInfo函数以及调用GetTickCount函数;通过GetLastInputInfo函数获得云桌面系统最近一次的鼠标或键盘操作的时间点距离云桌面系统开机的时间点之间的毫秒数;通过GetTickCount函数获得当前时间点距离云桌面系统开机的时间点之间的毫秒数;将GetTickCount函数获得的毫秒数减去GetLastInputInfo函数获得的毫秒数得到当前时间点距离最近一次的鼠标或键盘操作时间点之间的毫秒数;对比得到的毫秒数和工程师设置的具体的时间值的毫秒数,如果得到的毫秒数大于a的毫秒数,则表示当前云桌面在设置的具体的时间值内无任何鼠标、键盘操作,执行os.system组件向系统发送关机指令,关闭当前云桌面虚拟机;如果得到的毫秒数小于a的毫秒数,则不进行任何操作;S5:在计算主节点虚拟机中添加课程监控脚本;工程师将课程监控脚本上传到计算主节点虚拟机中,并在windows计划任务中创建一个开机自启任务,开机后自动启动课程监控脚本;课程监控脚本具体的实现方法包括如下子步骤:
S51:设置具体的时间值,获取当前时间戳加上具体时间值之后的时间戳;工程师设置一个具体的时间值,记为b;所述b为毫秒数;开启定时器,每当间隔一个定时时间就执行一次定时器,每一次执行时调用time函数以及调用datatime函数;通过time函数获取系统当前的时间戳,将获取到的时间戳加上b的毫秒数,得到在当前时间点加上b时间之后的时间戳;S52:获取时间戳对应的时间点A,查询数据库中的数据;将当前时间点加上b时间之后的时间戳作为参数传入到datatime函数中,获取当前时间点加上b时间之后的“年



日 时:分:秒”格式,记为时间点A;以时间小于时间点A为查询条件,查询教务系统数据库中的计算机课课程表,如果没有查询到满足条件的数据,则此次定时器执行结束,等待定时时间后的下一次执行;如果查询到满足条件的数据,则说明在b时间后计算机教室将会有学生上课,则根据查询到的数据的课程序号,删除计算机课课程表中此课程序号对应的数据,防止后续操作被重复执行,并进行如下步骤:S521:获取所有计算子节点的虚拟机名称,保存到列表A中;调用subprocess库的run函数执行shell命令,获取所有计算机子节点的虚拟机信息,所述虚拟机信息包括虚拟机名称等,将获取的所有计算子节点的虚拟机名称存入一个列表中,记为列表A;所述列表A中包括所有计算子节点的虚拟机名称;S522:获取所有计算子节点的任务执行状态,保存到列表B中;调用subprocess库的run函数执行shell命令,获取所有计算机子节点的任务执行状态,将获得的有任务在执行且任务执行状态不是已完成的计算子节点的虚拟机名称存入一个列表,记为列表B;所述列表B中包括所有正在执行任务的计算子节点的虚拟机名称;S523:得到所有空闲状态的计算子节点的虚拟机名称,保存到列表C中;将所有存在于列表A却不存在于列表B中的计算子节点的虚拟机名称存入到一个列表中,记为列表C;所述存在于列表A却不存在于列表B中的计算子节点的虚拟机名称即为无任务在执行或刚执行完任务本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自动调度云桌面和计算子节点硬件资源的方法,其特征在于:包括以下步骤:S1:创建数据库表;工程师在任意一台部署了教务系统数据库的虚拟机内创建两张数据表,一张是计算机课课程表、一张是资源告警阈值表;所述计算机课课程表用于存放一学期内将在计算机教室进行的所有课程,包括课程序号、课程时间;所述资源告警阈值表用于存放资源告警阈值,包括资源告警阈值;所述资源告警阈值为一个百分数,指允许所有虚拟机实际使用的cpu占服务器总cpu的比值、允许所有虚拟机实际使用的内存占服务器总内存的比值;S2:录入实际课程时间到计算机课课程表中;工程师根据学校实际的课程安排整理接下来一学期将在计算机教室进行的所有课程,将整理好的数据保存到excel表格中;所述excel表格包括课程序号、课程时间;所述课程序号是指课程的排序序号;所述课程时间为课程的开始时间,具体格式为“年



日 时:分:秒”;整理完成后,通过数据库管理工具Navicat将整理好的excel表格中的数据导入到计算机课课程表中;S3:录入资源告警阈值到资源告警阈值表中;工程师通过数据库管理工具Navicat在资源告警阈值表中输入资源告警阈值;S4:给所有云桌面虚拟机添加系统操作监控脚本;工程师给每一台云桌面虚拟机上传系统操作监控脚本,并在windows计划任务中创建一个开机自启任务,开机后启动系统操作监控脚本;工程师设置一个具体的时间值,记为a;所述a为毫秒数;系统操作监控脚本具体的实现方法为:工程师通过setInteral函数设置一个定时器,并设置一个定时时间,开启定时器,每当间隔一个定时时间就执行一次定时器,每一次执行时调用GetLastInputInfo函数以及调用GetTickCount函数;通过GetLastInputInfo函数获得云桌面系统最近一次的鼠标或键盘操作的时间点距离云桌面系统开机的时间点之间的毫秒数;通过GetTickCount函数获得当前时间点距离云桌面系统开机的时间点之间的毫秒数;将GetTickCount函数获得的毫秒数减去GetLastInputInfo函数获得的毫秒数得到当前时间点距离最近一次的鼠标或键盘操作时间点之间的毫秒数;对比得到的毫秒数和工程师设置的具体的时间值的毫秒数,如果得到的毫秒数大于a的毫秒数,则表示当前云桌面在设置的具体的时间值内无任何鼠标、键盘操作,执行os.system组件向系统发送关机指令,关闭当前云桌面虚拟机;如果得到的毫秒数小于a的毫秒数,则不进行任何操作;S5:在计算主节点虚拟机中添加课程监控脚本;工程师将课程监控脚本上传到计算主节点虚拟机中,并在windows计划任务中创建一
个开机自启任务,开机后自动启动课程监控脚本;课程监控脚本具体的实现方法包括如下子步骤:S51:设置具体的时间值,获取当前时间戳加上具体时间值之后的时间戳;工程师设置一个具体的时间值,记为b;所述b为毫秒数;开启定时器,每当间隔一个定时时间就执行一次定时器,每一次执行时调用time函数以及调用datatime函数;通过time函数获取系统当前的时间戳,将获取到的时间戳加上b的毫秒数,得到在当前时间点加上b时间之后的时间戳;S52:获取时间戳对应的时间点A,查询数据库中的数据;将当前时间点加上b时间之后的时间戳作为参数传入到datatime函数中,获取当前时间点加上b时间之后的“年



日 时:分:秒”格式,记为时间点A;以时间小于时间点A为查询条件,查询教务系统数据库中的计算机课课程表,如果没有查询到满足条件的数据,则此次定时器执行结束,等待定时时间后的下一次执行;如果查询到满足条件的数据,则说明在b时间后计算机教室将会有学生上课,则根据查询到的数据的课程序号,删除计算机课课程表中此课程序号对应的数据;关闭所有处于空闲状态的计算子节点的虚拟机,并开启云桌面虚拟机;S6:在计算主节点虚拟机中添加资源监控脚本;工程师在计算主节点虚拟机中上传资源监控脚本,并在windows计划任务中创建一个开机自启任务,开机后自动启动资源监控脚本;资源监控脚本具体的实现方法如下:计算当前所有虚拟机已使用的cpu占服务器总cpu的比例、虚拟机已使用的内存占服务器总内存的比例;开启定时器,每当间隔一个定时时间就执行一次定时器,每一次执行时首先在资源告警阈值表中查询资源告警阈值,计算当前所有虚拟机已使用的cpu占服务器总cpu的比例、虚拟机已使用的内存占服务器总内存的比例;S7:在计算主节点虚拟机中添加计算子节点自启脚本;工程师在计算主节点虚拟机中上传计算子节点自启脚本,并在windows计划任务中创建一个开机自启任务,开机后自动启动计算子节点自启脚本;计算子节点自启脚本具体的实现方法包括如下子步骤:S71:筛选出所有符合指定命名格式的云桌面虚拟机名称,保存存到列表A1中;开启定时器,每当间隔一个定时时间就执行一次定时器,每一次执行时,通过RetrieveContent函数获取服务器中所有虚拟机信息,所述虚拟机信息包括虚拟机名称,并指定云桌面虚拟机命名格式,对比每个虚拟机信息中的虚拟机名称,筛选出符合指定命名格式的云桌面虚拟机;将筛选出的所有符合指定命名格式的云桌面虚拟机名称存到一个列表中,记为列表A2;所述列表A2中包括所有符合指定命名格式的云桌面虚拟机名称;S72:将计算子节点虚拟机开机;通过powerstate函数获取列表A1中每一个云桌面虚拟机的电源状态,如果存在任一云
桌面虚拟机的电源状态不是poweredoff,则表示云桌面还在使用中,此次定时器执行结束,等待下一次执行;如果所有的云桌面虚拟机的电源状态都是poweredoff,则所有云桌面虚拟机此时都处于关机状态,此时资源足够,将计算子节点虚拟机开机。2.如权利要求1所述的一种自动调度云桌面和计算子节点硬件资源的方法,其特征在于:步骤S52中,包括如下子步骤:S521:获取所有计算子节点...

【专利技术属性】
技术研发人员:杨松贵曹传斌
申请(专利权)人:南京维拓科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1