一种多用户的靶场环境中场景复用方法与装置

文档序号:195555 发布日期:2021-11-02 浏览:35次 >En<

阅读说明:本技术 一种多用户的靶场环境中场景复用方法与装置 (Multi-user scene multiplexing method and device in shooting range environment ) 是由 殷庆荣 卢成远 谢峥 高庆官 唐海均 王国伟 于 2021-07-16 设计创作,主要内容包括:本发明公开了一种多用户的靶场环境中场景复用方法与装置,该方法首先初始化部分空闲场景,在接到用户使用请求后,若有空闲场景则将用户随机分配到一个空闲场景,并启动新线程尝试继续初始化空闲场景;若没有空闲场景,则获取场景复用策略,如果支持多用户复用同一场景,则将该用户随机分配到一个尚未达到最大复用人数的使用中的场景,否则尝试将用户加入场景等待队列。在场景释放时,若有用户等待则将场景等待队列中的用户调度到释放的场景中,否则进行清理、回收。本发明能够在场景数未达到系统硬件资源瓶颈的情况下,做到即申请即用;在达到系统所能承受的最大场景数后,通过复用、队列等待技术控制用户的并发行为,保证系统运行平稳。(The invention discloses a scene multiplexing method and a device in a multi-user shooting range environment, the method firstly initializes partial idle scenes, randomly allocates a user to an idle scene if the idle scene is received after receiving a user use request, and starts a new thread to try to continue initializing the idle scene; if no idle scene exists, a scene multiplexing strategy is obtained, if multi-user multiplexing of the same scene is supported, the user is randomly distributed to a scene which is not used for the maximum number of multiplexing people, and otherwise, the user is tried to be added into a scene waiting queue. And when the scene is released, if a user waits, scheduling the user in the scene waiting queue to the released scene, otherwise, cleaning and recovering. The invention can be applied and used when the scene number does not reach the bottleneck of system hardware resources; after the maximum number of scenes which can be borne by the system is reached, the concurrent behaviors of the users are controlled through multiplexing and queue waiting technologies, and the stable operation of the system is ensured.)

一种多用户的靶场环境中场景复用方法与装置

技术领域

本发明涉及一种多用户的靶场环境中场景复用方法与装置,属于网络技术领域。

背景技术

在网络靶场中,场景拓扑定义为由虚拟机、路由器等一系列网络设备组成的点和边的图形集合,集合中每个点分别代表一种网络设备,边代表设备间的连接关系。通过OpenStack等虚拟化技术可对该拓扑中所有的节点设备进行实例化,实例化后的拓扑定义为场景。依托于场景,用户可以在靶场中完成各种网络实验以及科学验证。

典型的场景拓扑主要由网络、路由器、靶机、各式操作机等设备组成。用户实际使用过程中,需要等待该拓扑实例化完成才能进行后续操作。而实例化需要根据网络中设备的各项配置(对于操作机而言,如4核16G的win10版本操作机)向OpenStack等虚拟化平台逐个申请物理计算资源,每项物理资源执行串行实例化;只有在所有对应的物理资源全部实例化完成后,场景才处于可用状态。物理资源实例化是一个相当耗时的操作,用户往往需要经过分钟级的等待,用户使用体验不友好。并且在用户量过大的情况下,每个用户会竞争性的启动场景,并行申请物理资源;因为缺少管控机制导致底层物理资源耗尽,从而拖慢整个系统的响应,降低系统总体吞吐量。

发明内容

发明目的:针对上述现有技术存在的问题,本发明目的在于提供一种多用户的靶场环境中场景复用方法与装置,通过预启动技术,在场景数未达到系统硬件资源瓶颈的情况下,做到即申请即用;在达到系统所能承受的最大场景数后,通过复用、队列等待技术控制用户的并发行为,保证系统运行平稳。

技术方案:为实现上述发明目的,本发明提供的一种多用户的靶场环境中场景复用方法,包括如下步骤:

步骤1、根据预定义的最小空闲场景数,初始化空闲场景;

步骤2、监听用户申请场景使用的请求,接收到用户的场景使用请求后,判断是否有空闲场景;若有则转跳步骤3,否则转跳步骤5;

步骤3、将用户随机分配到一个空闲场景,并标记所分配场景的状态为使用中;如果该场景定义为共享场景,为当前用户分配至少一个操作机,场景中其余虚拟机加入空闲操作机列表;

步骤4、在当前空闲场景数低于预定义的最大空闲场景数时,异步启动一个新线程以执行初始化空闲场景工作;

步骤5、如果场景是共享场景,支持多用户复用,使用如下策略复用场景:遍历运行中的场景列表,获取一个尚未达到最大复用人数的场景,将用户分配到该使用中的场景,并标记该场景的复用人数加一;如果所有场景已经到达最大复用人数,则将用户加入场景等待队列,如果队列未满提示用户当前等待人数,如果队列已满提示用户当前无可用场景;如果场景不支持复用,尝试将用户加入场景等待队列,如果队列未满提示用户当前等待人数,如果队列已满提示用户当前无可用场景。

作为优选,支持复用的场景包括至少两个虚拟机和网络中介设备,场景中的虚拟机分为操作机和目标靶机;在初始化空闲场景时,若物理资源某一个指标不满足场景要求,则放弃申请空闲场景;其中物理资源指标包括内存、CPU、磁盘和网络。

作为优选,判断场景是否达到最大复用人数的方法是:场景实际启动后,将场景中未作为操作机存在的虚拟机加入空闲操作机列表;当用户申请场景复用时,判断当前空闲操作机列表长度是否大于N,如果列表长度大于N,从列表头部弹出或随机选出N个空闲操作机,作为分配给当前用户的操作机;否则认为当前场景已达到最大复用人数,不支持再次复用;其中N为每个用户需要的操作机数量。

作为优选,步骤4中新线程在进行实际初始化场景之前,向分布式一致性服务器获取初始化新场景的分布式锁,如果能成功获取锁,则进行实际的初始化空闲场景工作;否则该线程进入分布式锁等待状态,并监视锁的使用情况,在其他线程释放锁后继续尝试获取锁以及后续的初始化工作。

进一步地,所述方法还包括如下步骤:

步骤6、在用户主动释放场景或系统定期释放场景时,判断当前场景等待队列中是否有用户等待使用场景,如果有则转跳步骤7,否则转跳步骤8;

步骤7、清理当前用户的场景操作记录,通知场景等待队列,调度该等待队列中的第一个用户到当前用户需要释放的场景,场景释放流程结束;

步骤8、判断场景是否为共享场景,如果是共享场景则转跳步骤9,否则转跳步骤10;

步骤9、如果用户非场景中最后一个用户,将当前场景的共享用户数减一,将当前用户分配的操作机执行清理动作后加入空闲操作机列表,结束场景释放流程;否则进入步骤10;

步骤10、判断当前场景的物理资源是否需要被释放,如果需要则转跳步骤11,否则转跳步骤12;

步骤11、系统释放场景占用的物理资源,释放完成后结束场景释放流程;

步骤12、清理场景中的使用痕迹,恢复场景到初始化状态,标记场景为空闲状态。

作为优选,步骤10中在系统的空闲场景数大于最大空闲场景数时,则需要释放当前场景的物理资源。

基于相同的发明构思,本发明提供的一种多用户的靶场环境中场景复用装置,包括:

场景初始化单元,用于根据预定义的最小空闲场景数,初始化空闲场景,监听用户申请场景使用的请求;以及在当前空闲场景数低于预定义的最大空闲场景数时,异步启动一个新线程以执行初始化空闲场景工作;

场景申请分配单元,用于接收到用户的场景使用请求后,判断是否有空闲场景;若有则将用户随机分配到一个空闲场景,标记所分配场景的状态为使用中,如果该场景定义为共享场景,为当前用户分配至少一个操作机,场景中其余虚拟机加入空闲操作机列表;若没有空闲场景,则获取判断场景是否是共享场景,如果支持多用户复用同一场景,则使用如下策略复用场景:遍历运行中的场景列表,获取一个尚未达到最大复用人数的场景,将用户分配到该使用中的场景,并标记该场景的复用人数加一;如果所有场景已经到达最大复用人数,则将用户加入场景等待队列,如果队列未满提示用户当前等待人数,如果队列已满提示用户当前无可用场景;如果场景不支持复用,尝试将用户加入场景等待队列,如果队列未满提示用户当前等待人数,如果队列已满提示用户当前无可用场景。

进一步地,所述装置还包括:场景释放处理单元,用于在用户主动释放场景或系统定期释放场景时,判断当前场景等待队列中是否有用户等待使用场景,如果有则清理当前用户的场景操作记录并通知场景等待队列,调度该等待队列中的第一个用户到当前用户需要释放的场景,场景释放流程结束;否则判断场景是否为共享场景,如果是共享场景且用户不是场景中最后一个用户,则将当前场景的共享用户数减一,并将当前用户分配的操作机执行清理动作后加入空闲操作机列表,结束场景释放流程;如果是共享场景且用户是场景中最后一个用户,或者不是共享场景,则判断当前场景的物理资源是否需要被释放,如果需要释放则系统释放场景占用的物理资源,释放完成后结束场景释放流程;如果不需要释放则清理场景中的使用痕迹,恢复场景到初始化状态,标记场景为空闲状态。

基于相同的发明构思,本发明提供的一种多用户的靶场环境中场景复用装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的一种多用户的靶场环境中场景复用方法。

有益效果:与现有技术相比,本发明具有如下优点:

1、提升用户体验。系统根据当前所有用户的使用习惯,实现场景预启动,用户在使用场景时无需等待场景实际启动,做到即需即用。

2、可根据实际物理资源限制场景总数,提升系统健壮性,不会出现过多用户同时使用场景导致的物理资源耗尽。

3、使用公平的排队机制以及场景共享方案,适用于学校等人数较多但底层计算资源有限的情况。

附图说明

图1为本发明实施例中的场景申请流程图;

图2为本发明实施例中的场景的释放流程图。

具体实施方式

下面将结合附图和具体实施例,对本发明的技术方案进行清楚、完整的描述。

如图1所示,本发明实施例公开的一种多用户的靶场环境中场景复用方法,其中场景的申请流程,主要包括如下步骤:

(1)业务系统启动后,根据系统预定义的最小空闲场景数,初始化部分空闲场景,监听用户申请场景使用的请求;

(2)接收到用户的申请后,判断当前是否有空闲场景;有空闲场景则转跳步骤(3),否则转跳步骤(5);

(3)将用户随机分配到某个空闲场景,并标记当前场景状态为使用中;如果该场景定义为共享场景,为当前用户分配至少一个操作机,场景中其余虚拟机加入空闲操作机列表;

(4)根据系统预设的最大空闲场景数,判断如果当前空闲场景数低于预设值,异步启动新场景,启动流程如下:

异步启动一个新线程,在新线程中尝试初始化空闲场景,保证空闲场景数维持在某个稳定水平;该线程在进行实际初始化场景之前,会向分布式一致性服务器获取初始化新场景的分布式锁,该锁保证场景初始化的唯一性,可确保不会出现多个场景同时初始化带来的资源死锁问题;如果能成功获取锁,则进行实际的初始化空闲场景工作;否则该线程进入分布式锁等待状态,并监视锁的使用情况,在其他线程释放锁后继续尝试获取锁以及后续的初始化工作;初始化过程如下:

初始化空闲场景时,首先判断当前物理资源是否可支持申请更多的场景,如果可以则启动一个新的空闲场景,否则放弃本次申请。物理资源包括内存、CPU数、磁盘大小、网络等关键指标,只要物理资源某个指标的剩余量不满足当前申请要求,则判定为不支持申请更多场景;

(5)查询场景的复用策略,如果当前场景是共享场景,支持多用户复用同一场景(学校教学等使用环境中允许多个学生使用同一套环境一起完成网络实验),则使用如下策略复用场景:

遍历运行中的场景列表,获取一个尚未达到最大复用人数的场景,将用户分配到该使用中的场景,并标记该场景的复用人数加一;如果所有场景已经到达最大复用人数,则将用户加入场景等待队列,如果队列未满提示用户当前等待人数,如果队列已满提示用户当前无可用场景。

如果场景不支持复用,尝试将用户加入场景等待队列,如果队列未满提示用户当前等待人数,如果队列已满提示用户当前无可用场景。

场景由多个虚拟机以及必要的网络中介设备(如路由器)构成,支持复用的场景(共享场景)具有如下特征:

A)场景由至少两个虚拟机构成;

B)单个用户只会操作场景中部分虚拟机,该类机器称为操作机,其余机器作为目标靶机存在。用户需要从当前操作机出发,根据必要的指引,获取靶机的指定内容作为完成训练的必要依据。靶机作为指定内容的承载体,无实际 的计算任务,所以在该类型任务中,一个用户的靶机可作为另一个用户的操作机进行复用。

C)复用方案:假设场景中虚拟机总数为M(M>=2),每个用户需要的操作机数量为N(N>=1);场景实际启动后,将场景中未作为操作机存在的虚拟机加入空闲操作机列表;当用户申请场景复用时,判断当前空闲操作机列表长度是否大于N,如果列表长度大于N,从列表头部弹出或随机选出N个空闲操作机,作为分配给当前用户的操作机;否则认为当前场景已达到最大复用人数,不支持再次复用。

如图2所示,场景的释放流程主要包括如下步骤:

(6)用户在场景使用完毕后主动释放场景,或者某个场景达到最大使用时间后系统主动释放;在释放场景时,判断当前场景等待队列中是否有用户等待使用场景,如果有转跳步骤(7),否则转跳步骤(8);

(7)清理当前用户的场景操作记录,通知场景等待队列,调度该等待队列中的第一个用户到当前用户需要释放的场景,场景释放流程结束;

(8)判断场景是否为共享场景,共享场景转跳步骤(9),否则转跳步骤(10);

(9)如果用户非场景中最后一个用户,当前场景的共享用户数减一,将当前用户分配的操作机执行清理动作后加入空闲操作机列表,结束场景释放流程;否则进入步骤(10)

(10)判断当前场景的物理资源是否需要被释放。判断标准为:如果系统中空闲场景数大于预设的空闲场景数值则表明当前场景的物理资源需要被释放。如果需要释放物理资源,转跳步骤(11),否则转跳步骤(12)

(11)系统释放场景占用的物理资源,如CPU、磁盘、网络、内存等,释放完成后结束场景释放流程;

(12)清理场景中的使用痕迹,恢复场景到初始化状态,标记场景为空闲状态,以便下个用户使用。

基于相同的发明构思,本发明实施例提供的一种多用户的靶场环境中场景复用装置,包括:场景初始化单元,用于根据预定义的最小空闲场景数,初始化空闲场景,监听用户申请场景使用的请求;以及在当前空闲场景数低于预定义的最大空闲场景数时,异步启动一个新线程以执行初始化空闲场景工作;场景申请分配单元,用于接收到用户的场景使用请求后,判断是否有空闲场景;若有则将用户随机分配到一个空闲场景,标记所分配场景的状态为使用中,如果该场景定义为共享场景,为当前用户分配至少一个操作机,场景中其余虚拟机加入空闲操作机列表;若没有空闲场景,则获取判断场景是否是共享场景,如果支持多用户复用同一场景,则使用如下策略复用场景:遍历运行中的场景列表,获取一个尚未达到最大复用人数的场景,将用户分配到该使用中的场景,并标记该场景的复用人数加一;如果所有场景已经到达最大复用人数,则将用户加入场景等待队列,如果队列未满提示用户当前等待人数,如果队列已满提示用户当前无可用场景;如果场景不支持复用,尝试将用户加入场景等待队列,如果队列未满提示用户当前等待人数,如果队列已满提示用户当前无可用场景。

所述装置进一步还包括场景释放处理单元,用于在用户主动释放场景或系统定期释放场景时,判断当前场景等待队列中是否有用户等待使用场景,如果有则清理当前用户的场景操作记录并通知场景等待队列,调度该等待队列中的第一个用户到当前用户需要释放的场景,场景释放流程结束;否则判断场景是否为共享场景,如果是共享场景且用户不是场景中最后一个用户,则将当前场景的共享用户数减一,并将当前用户分配的操作机执行清理动作后加入空闲操作机列表,结束场景释放流程;如果是共享场景且用户是场景中最后一个用户,或者不是共享场景,则判断当前场景的物理资源是否需要被释放,如果需要释放则系统释放场景占用的物理资源,释放完成后结束场景释放流程;如果不需要释放则清理场景中的使用痕迹,恢复场景到初始化状态,标记场景为空闲状态。

基于相同的发明构思,本发明实施例提供的一种多用户的靶场环境中场景复用装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现根据所述的一种多用户的靶场环境中场景复用方法。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:信息处理方法、装置、电子设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!