CN112363795B - 一种网络安全实训平台虚拟机快速启动方法与*** - Google Patents

一种网络安全实训平台虚拟机快速启动方法与*** Download PDF

Info

Publication number
CN112363795B
CN112363795B CN202011089006.2A CN202011089006A CN112363795B CN 112363795 B CN112363795 B CN 112363795B CN 202011089006 A CN202011089006 A CN 202011089006A CN 112363795 B CN112363795 B CN 112363795B
Authority
CN
China
Prior art keywords
virtual machine
file
image
image file
mirror image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011089006.2A
Other languages
English (en)
Other versions
CN112363795A (zh
Inventor
高丽彪
谢峥
高庆官
唐海均
王国伟
王鹏
程能杰
于靖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Cyber Peace Technology Co Ltd
Original Assignee
Nanjing Cyber Peace Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Cyber Peace Technology Co Ltd filed Critical Nanjing Cyber Peace Technology Co Ltd
Priority to CN202011089006.2A priority Critical patent/CN112363795B/zh
Publication of CN112363795A publication Critical patent/CN112363795A/zh
Application granted granted Critical
Publication of CN112363795B publication Critical patent/CN112363795B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Educational Administration (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Educational Technology (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Primary Health Care (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种网络安全实训平台虚拟机快速启动方法与***,该方法在控制节点上部署远程文件***服务端,将镜像服务的镜像仓库共享给所有计算节点;通过镜像缓存代理程序监视原始镜像目录,将原始镜像文件以软链接的形式添加到缓存镜像目录;根据实训平台虚拟机创建队列创建虚拟机时,代理程序周期性扫描启动的虚拟机,检查虚拟机所使用的镜像文件是否已缓存,对于未缓存的镜像文件则复制到本机缓存镜像目录,并在复制完毕后将缓存镜像目录中镜像文件的软链接替换成真实文件,并将本机所有用到该镜像文件的虚拟机的虚拟磁盘的基础文件进行替换。本发明通过对现有***进行改造,缩短了虚拟机镜像冷启动所需时间,同时保留了本地存储的高性能。

Description

一种网络安全实训平台虚拟机快速启动方法与***
技术领域
本发明涉及一种网络安全实训平台虚拟机快速启动方法与***,属于网络技术领域。
背景技术
网络安全实训平台(简称实训平台)是汇集安全基础、安全实战、CTF解题、安全前沿等多类课程内容的教学与训练平台,提供贴近现实的演练场景,让用户在***中“学、练、测、评”,让用户能力全面提高提升。
实训平台基础设施层采用私有云虚拟化技术,将物理层资源进行虚拟化,提供存储、计算、网络能力资源池。实训平台利用这些资源,根据课程设计构造出一个个仿真网络拓扑,为教员和学员提供实验环境。实训平台的私有云规模通常很小,一般由3~5台物理服务器组成。如图1所示,其存储模型采用本地存储模型,位于控制节点上的镜像服务与位于计算节点上的计算服务分别使用各自本机的磁盘。当需要启动一个新虚拟机时,计算服务检查所需镜像文件是否已经缓存;如果没有,就先从镜像服务下载镜像文件并保存到本机的缓存镜像目录中。随后,计算服务以缓存镜像文件为“基础文件”创建虚拟磁盘,后者包含完整的镜像文件内容,可以用于启动虚拟机。
在实训平台中,包含网络安全各个方向的若干课程。每个课程由若干课时组成。其中每个课时关联一个实验环境,也就是网络拓扑。这些网络拓扑中主要是由若干虚拟机和少数网络设备组成,每个虚拟机都对应一个镜像文件。在整个实训平台中,镜像文件的数量是非常多的。
教员负责一个班级的教学任务;班级一般由几十名学员组成。所有学员在一起上课,每个人用到的实验环境是一样的,而且隔离的。为了保证课堂的顺利进行,教员通常需要在上课前提前一段时间把所有学员的实验环境启动好。
当教员尝试为所有学员启动实验环境时,由于实验环境中的虚拟机镜像在绝大多数计算节点上都不存在(未被缓存),会出现所有计算节点几乎同时从控制节点下载并缓存同一个镜像的情况,即图1中的第1步和第2步。每个镜像的字节数平均在3G左右。受限于控制节点镜像服务的并发能力、控制节点磁盘性能等多种因素,缓存镜像的过程非常缓存,成为整个实验环境启动过程的瓶颈。
为解决这一问题,业内提出了多种方案,可分为三类: 1、共享存储方案:将镜像和虚拟磁盘存储在固定的、单一的存储服务器上,计算服务通过网络对虚拟磁盘进行读写。2、分布式存储方案:将镜像和虚拟磁盘存储在多个存储服务器上,采用一定的算法保证数据冗余,支持高并发访问。在可靠性和性能方面比共享存储高。3、分布式镜像缓存:在原有控制节点和计算节点硬件的基础上,将原本由控制节点到单个计算节点的镜像缓存过程,修改成计算节点之间的镜像缓存过程,以减轻控制节点的压力。
但现有方案存在着如下问题:1、原始方案(本地存储)虚拟机镜像冷启动性能差,需要等待很长时间才能启动完成;2、共享存储方案单个存储服务器的性能容易成为整个平台的瓶颈;3、分布式存储方案硬件成本高,不适用于实训平台这种规模的私有云;4、分布式镜像缓存方案设计复杂,实现难度较高。5、所有非本地存储的方案,计算服务都需要通过网络才能访问虚拟磁盘,失去了本地存储低延迟的优势。
发明内容
发明目的:针对上述现有技术存在的问题,本发明的目的在于提供一种网络安全实训平台虚拟机快速启动方法与***,通过对现有***进行改造,缩短虚拟机镜像冷启动所需时间,同时保留本地存储的高性能。
技术方案:为实现上述发明目的,本发明提供的一种网络安全实训平台虚拟机快速启动方法,包括如下步骤:
(1)在网络安全实训平台控制节点上部署远程文件***服务端,将镜像服务的镜像仓库共享给网络安全实训平台的所有计算节点;
(2)计算节点上的镜像缓存代理程序监视原始镜像目录中的原始镜像文件列表,将原始镜像文件以软链接的形式添加到缓存镜像目录;其中原始镜像目录为控制节点上共享的镜像仓库挂载到计算节点上的镜像目录;
(3)网络安全实训平台在接收到教员对实验环境的批量启动任务时,生成虚拟机创建队列,以设定的速率和批量,将虚拟机创建请求发送给控制节点;控制节点采用轮询调度算法,将虚拟机创建请求发给所有计算节点;
(4)各计算节点根据其收到的虚拟机创建请求,在本机缓存镜像目录中查找对应的镜像文件的软链接,以此软链接作为基础文件创建若干虚拟磁盘;
(5)各计算节点启动虚拟机,虚拟磁盘驱动先向操作***内核中的查询当前正在读取的数据块是否已经存在于文件***读取缓存区,若存在,则直接从文件***读取缓存区读取数据块并返回;若不存在,则通过远程文件***的底层网络协议读取控制节点上的数据块,将数据块保存在文件***读取缓存区 ;
(6)计算节点上的镜像缓存代理程序周期性扫描本机计算服务启动的虚拟机, 检查虚拟机所使用的镜像文件是否已缓存,对于未缓存的镜像文件则复制到本机缓存镜像目录,并在镜像文件复制完毕后,将缓存镜像目录中镜像文件的软链接替换成真实文件,并扫描本机所有用到该镜像文件的虚拟机,将其虚拟磁盘的基础文件替换成真实的缓存镜像文件。
作为优选,所述步骤(6)中将原始镜像文件复制到缓存镜像目录时,先保存为临时文件,待复制完成后重命名。
作为优选,所述步骤(6)中在镜像文件缓存完成后不立即替换用到该镜像文件的虚拟机的虚拟磁盘的基础文件,在扫描虚拟机时若发现某虚拟机的虚拟机磁盘是基于原始镜像文件且存在缓存镜像文件,则暂停该虚拟机运行,修改虚拟磁盘的基础文件后再恢复虚拟机运行。
基于相同的发明构思,本发明提供的一种网络安全实训平台虚拟机快速启动***,包括部署在网络安全实训平台应用服务器上虚拟机创建队列管理模块,部署在网络安全实训平台控制节点上的远程文件***服务端和虚拟机创建调度模块,以及部署在网络安全实训平台计算节点上的远程文件***客户端、虚拟机管理模块和镜像缓存代理程序模块;
所述虚拟机创建队列管理模块,用于在实验环境批量启动时,生成虚拟机创建队列,以设定的速率和批量,将虚拟机创建请求发送给控制节点;
所述虚拟机创建调度模块,用于采用轮询调度算法将虚拟机创建请求发给所有计算节点;
所述远程文件***服务端,用于将镜像服务的镜像仓库共享给网络安全实训平台的所有计算节点;所述远程文件***客户端,用于提供计算节点上的文件访问服务;
所述虚拟机管理模块,用于根据虚拟机创建请求,在本机缓存镜像目录中查找对应的镜像文件的软链接,以此软链接作为基础文件创建若干虚拟磁盘并启动虚拟机,其中虚拟机启动时虚拟磁盘驱动先向操作***内核中的查询当前正在读取的数据块是否已经存在于文件***读取缓存区,若存在,则直接从文件***读取缓存区读取数据块并返回;若不存在,则通过远程文件***的底层网络协议读取控制节点上的数据块,将数据块保存在文件***读取缓存区;
所述镜像缓存代理程序模块,用于监视原始镜像目录中的原始镜像文件列表,将原始镜像文件以软链接的形式添加到缓存镜像目录;其中原始镜像目录为控制节点上共享的镜像仓库挂载到计算节点上的镜像目录;以及用于周期性扫描本机计算服务启动的虚拟机, 检查虚拟机所使用的镜像文件是否已缓存,对于未缓存的镜像文件则复制到本机缓存镜像目录,并在镜像文件复制完毕后,将缓存镜像目录中镜像文件的软链接替换成真实文件,并扫描本机所有用到该镜像文件的虚拟机,将其虚拟磁盘的基础文件替换成真实的缓存镜像文件。
有益效果:本发明通过计算节点上镜像缓存代理程序监视镜像列表,将镜像以软链接的形式添加计算服务的缓存镜像目录;在虚拟机启动过程中通过操作***内核的文件***读取缓存区优化读取性能;并在虚拟机开始运行后检查本机所有虚拟机所使用的镜像文件是否已缓存,对于未缓存的镜像复制到缓存镜像目录;复制完毕后将镜像的软链接替换成真实文件,并将相应虚拟机的虚拟磁盘的基础文件替换成真实的缓存镜像文件。与现有的技术方案相比,本发明通过对原有***的改造,极大缩短了虚拟机镜像冷启动所需时间,同时保留了本地存储的高性能;并且本发明利用原有硬件,硬件成本保持不变,采用的非侵入性设计,对原有***的影响较小,且复杂度低,易于实现。
附图说明
图1为现有实训平台虚拟机启动流程示意图。
图2为本发明实施例的原理示意图。
图3为本发明实施例中虚拟机批量创建的结构示意图。
图4为本发明实施例中虚拟机利用缓存镜像快速启动的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅只是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的其他所有实施例,都属于本发明保护的范围。
如图2所示,本发明实施例公开的一种网络安全实训平台虚拟机快速启动方法,首先在实训平台控制节点上部署远程文件***服务端,将镜像服务的镜像仓库共享给实训平台的所有计算节点;然后通过计算节点上的镜像缓存代理程序监视原始镜像目录中的原始镜像文件列表,将原始镜像文件以软链接的形式添加到缓存镜像目录;在计算节点收到的虚拟机创建请求时,在本机缓存镜像目录中查找对应的镜像文件的软链接,以此软链接作为基础文件创建若干虚拟磁盘,启动虚拟机,并通过镜像缓存代理程序周期性扫描本机计算服务启动的虚拟机, 检查虚拟机所使用的镜像文件是否已缓存,对于未缓存的镜像文件则复制到本机缓存镜像目录,并在镜像文件复制完毕后,将缓存镜像目录中镜像文件的软链接替换成真实文件,并扫描本机所有用到该镜像文件的虚拟机,将其虚拟磁盘的基础文件替换成真实的缓存镜像文件。具体实施过程如下:
一、在网络安全实训平台应用服务器上增加虚拟机创建队列管理模块,用于在实验环境批量启动时,生成虚拟机创建队列,以设定的速率和批量,将虚拟机创建请求发送给控制节点(见图3)。通过对速率和批量的控制,使同一个计算节点不会在极短的时间(十毫秒级)内收到相同镜像的虚拟机创建请求。例如在5个计算节点的环境中,每1秒发出一批虚拟机创建请求,每一批包含5个虚拟机。虚拟机创建队列的目的是,使在同一个计算节点上由相同镜像批量启动的虚拟机,在启动过程中读取镜像文件的同一个数据块的时机存在前后时间差。这样对于一个数据块,只有第一个读取操作是从远程文件***读取的,其它读取操作是从文件***读取缓存区读取的。
二、在控制节点上部署一个远程文件***服务端,将镜像服务的镜像仓库共享给本集群内的所有计算节点。远程文件***服务端的特点是,其客户端可以将其共享的目录通过mount指令挂载为本地目录,以便向上层应用提供透明的文件访问服务。服务端应当提供一定的安全措施,保证共享目录不被第三方访问;此安全措施包括认证、主机访问控制和主机防火墙。远程文件***通常使用NFS,也可由其它文件共享服务(如SMB、WEBDAV)替代。远程文件***需要满足两个条件:1、其客户端可以将远程文件***挂载在本地文件胸痛上;2、客户端挂载目录由操作***内核提供文件***读取缓存区支持。
三、控制节点上设有调度程序,轮询调度算法,将虚拟机创建请求发给所有计算节点。计算节点上的虚拟机管理器根据其接收到的虚拟机创建请求,在本机缓存镜像目录中查找对应的镜像文件的软链接,以此软链接作为基础文件创建若干虚拟磁盘。虚拟机管理器通过虚拟磁盘驱动读取虚拟磁盘的数据块以引导虚拟机操作***。虚拟磁盘驱动首先尝试读取此虚拟磁盘本身的数据块,因内容不存在,进而尝试读取其基础文件的数据块。因其基础文件为指向远程文件***挂载目录的原始镜像文件,虚拟磁盘驱动先向操作***内核中的查询当前正在读取的数据块是否已经存在于文件***读取缓存区,若存在,则直接从文件***读取缓存区读取数据块并返回;若不存在,则通过远程文件***的底层网络协议读取控制节点上的数据块,将数据块保存在文件***读取缓存区。同一计算节点上由相同镜像批量启动的虚拟机,大概率只有第一个虚拟机的虚拟磁盘通过远程文件***读取,其它虚拟机的虚拟磁盘从文件***读取缓存区读取。
四、设计一个镜像缓存代理程序(Image Cache Agent,下文简称代理程序),运行于每个计算节点上。代理程序独立于云平台的其它服务进程,以外挂的方式运行。虚拟机的启动和运行过程不依赖于缓存镜像文件,与代理程序缓存镜像的过程异步执行;部署代理程序对计算服务原有流程无影响。
此代理程序实现以下功能:
1、将控制节点上共享的镜像仓库挂载到本地文件***上的镜像目录。此目录称为原始镜像目录,此目录中的文件称为原始镜像文件。
2、周期性(比如每3秒)扫描镜像原始镜像目录中的原始镜像文件列表,检查本机计算服务的缓存镜像目录(此目录中的文件称为缓存镜像文件),根据缓存镜像目录中镜像文件的命名规则,在缓存镜像目录中创建若干软链接,分别指向对应的原始镜像文件。此时,在本机用任意镜像创建虚拟机,都可以通过远程文件***读取到镜像内容,不需要预先缓存。建立软链接的指令,如果使用Shell脚本编写,其指令为ln -s。
3、周期性(比如每5秒)扫描本机计算服务启动的虚拟机,调用本机的libvirt虚拟化接口读取并解析每个虚拟机所使用的虚拟磁盘。如果发现某个虚拟机所使用的虚拟磁盘是基于原始镜像文件而非缓存镜像文件,那么开始建立缓存镜像文件。单个镜像的缓存步骤包括:
(1)将原始镜像文件复制到缓存镜像目录。由于复制过程耗时较长,为保证复制过程中不完整的数据不被使用,复制时先保存为临时文件,待复制完成后重命名。
(2)在复制完成之后,删除缓存镜像文件中本镜像的软链接,用此临时文件重命名后代替它。此时本镜像缓存完毕,后续用本镜像启动虚拟机将自动使用缓存镜像文件而非原始镜像文件。
(3)修改本机所有使用本镜像的虚拟机的虚拟磁盘,将其基础文件由原始镜像文件修改为缓存镜像文件。由于需要扫描所有虚拟机,所以在实现上,为了复用上述周期性扫描虚拟机的过程,可以将这个步骤不用在缓存完成之后立即执行,而是放在下一轮扫描虚拟机的过程中完成。其流程见图4。修改虚拟磁盘的基础文件的指令为qemu-img rebase。执行此指令前需要将虚拟机暂停,执行结束再将虚拟机恢复运行。
本实施例中的镜像缓存代理程序开发语言可用Shell脚本,也可用Python等其它语言替代,可通过调用操作***和libvirt的命令或API接口来实现相同的功能。
本发明实施例公开的一种网络安全实训平台虚拟机快速启动***,包括部署在网络安全实训平台应用服务器上虚拟机创建队列管理模块,部署在网络安全实训平台控制节点上的远程文件***服务端和虚拟机创建调度模块,以及部署在网络安全实训平台计算节点上的远程文件***客户端、虚拟机管理模块和镜像缓存代理程序模块。其中虚拟机创建队列管理模块,用于在实验环境批量启动时,生成虚拟机创建队列,以设定的速率和批量,将虚拟机创建请求发送给控制节点;虚拟机创建调度模块用于采用轮询调度算法将虚拟机创建请求发给所有计算节点;远程文件***服务端用于将镜像服务的镜像仓库共享给网络安全实训平台的所有计算节点;远程文件***客户端用于提供计算节点上的文件访问服务。虚拟机管理模块,用于根据虚拟机创建请求,在本机缓存镜像目录中查找对应的镜像文件的软链接,以此软链接作为基础文件创建若干虚拟磁盘并启动虚拟机。镜像缓存代理程序模块,用于监视原始镜像目录中的原始镜像文件列表,将原始镜像文件以软链接的形式添加到缓存镜像目录;以及用于周期性扫描本机计算服务启动的虚拟机,检查虚拟机所使用的镜像文件是否已缓存,对于未缓存的镜像文件则复制到本机缓存镜像目录,并在镜像文件复制完毕后,将缓存镜像目录中镜像文件的软链接替换成真实文件,并扫描本机所有用到该镜像文件的虚拟机,将其虚拟磁盘的基础文件替换成真实的缓存镜像文件。该***实施例与上述方法实施例基于相同的发明构思,具体实施细节可参考方法实施例,不再赘述。

Claims (7)

1.一种网络安全实训平台虚拟机快速启动方法,其特征在于,包括如下步骤:
(1)在网络安全实训平台控制节点上部署远程文件***服务端,将镜像服务的镜像仓库共享给网络安全实训平台的所有计算节点;
(2)计算节点上的镜像缓存代理程序监视原始镜像目录中的原始镜像文件列表,将原始镜像文件以软链接的形式添加到缓存镜像目录;其中原始镜像目录为控制节点上共享的镜像仓库挂载到计算节点上的镜像目录;
(3)网络安全实训平台在接收到教员对实验环境的批量启动任务时,生成虚拟机创建队列,以设定的速率和批量,将虚拟机创建请求发送给控制节点;控制节点采用轮询调度算法,将虚拟机创建请求发给所有计算节点;
(4)各计算节点根据其收到的虚拟机创建请求,在本机缓存镜像目录中查找对应的镜像文件的软链接,以此软链接作为基础文件创建若干虚拟磁盘;
(5)各计算节点启动虚拟机,虚拟磁盘驱动先向操作***内核中查询当前正在读取的数据块是否已经存在于文件***读取缓存区,若存在,则直接从文件***读取缓存区读取数据块并返回;若不存在,则通过远程文件***的底层网络协议读取控制节点上的数据块,将数据块保存在文件***读取缓存区;
(6)计算节点上的镜像缓存代理程序周期性扫描本机计算服务启动的虚拟机,检查虚拟机所使用的镜像文件是否已缓存,对于未缓存的镜像文件则复制到本机缓存镜像目录,并在镜像文件复制完毕后,将缓存镜像目录中镜像文件的软链接替换成真实文件,并扫描本机所有用到该镜像文件的虚拟机,将其虚拟磁盘的基础文件替换成真实的缓存镜像文件。
2.根据权利要求1所述的网络安全实训平台虚拟机快速启动方法,其特征在于,所述步骤(6)中将原始镜像文件复制到缓存镜像目录时,先保存为临时文件,待复制完成后重命名。
3.根据权利要求1所述的网络安全实训平台虚拟机快速启动方法,其特征在于,所述步骤(6)中在镜像文件缓存完成后不立即替换用到该镜像文件的虚拟机的虚拟磁盘的基础文件,在扫描虚拟机时若发现某虚拟机的虚拟机磁盘是基于原始镜像文件且存在缓存镜像文件,则暂停该虚拟机运行,修改虚拟磁盘的基础文件后再恢复虚拟机运行。
4.一种网络安全实训平台虚拟机快速启动***,其特征在于,包括部署在网络安全实训平台应用服务器上的 虚拟机创建队列管理模块,部署在网络安全实训平台控制节点上的远程文件***服务端和虚拟机创建调度模块,以及部署在网络安全实训平台计算节点上的远程文件***客户端、虚拟机管理模块和镜像缓存代理程序模块;
所述虚拟机创建队列管理模块,用于在实验环境批量启动时,生成虚拟机创建队列,以设定的速率和批量,将虚拟机创建请求发送给控制节点;
所述虚拟机创建调度模块,用于采用轮询调度算法将虚拟机创建请求发给所有计算节点;
所述远程文件***服务端,用于将镜像服务的镜像仓库共享给网络安全实训平台的所有计算节点;所述远程文件***客户端,用于提供计算节点上的文件访问服务;
所述虚拟机管理模块,用于根据虚拟机创建请求,在本机缓存镜像目录中查找对应的镜像文件的软链接,以此软链接作为基础文件创建若干虚拟磁盘并启动虚拟机,其中虚拟机启动时虚拟磁盘驱动先向操作***内核中查询当前正在读取的数据块是否已经存在于文件***读取缓存区,若存在,则直接从文件***读取缓存区读取数据块并返回;若不存在,则通过远程文件***的底层网络协议读取控制节点上的数据块,将数据块保存在文件***读取缓存区;
所述镜像缓存代理程序模块,用于监视原始镜像目录中的原始镜像文件列表,将原始镜像文件以软链接的形式添加到缓存镜像目录;其中原始镜像目录为控制节点上共享的镜像仓库挂载到计算节点上的镜像目录;以及用于周期性扫描本机计算服务启动的虚拟机,检查虚拟机所使用的镜像文件是否已缓存,对于未缓存的镜像文件则复制到本机缓存镜像目录,并在镜像文件复制完毕后,将缓存镜像目录中镜像文件的软链接替换成真实文件,并扫描本机所有用到该镜像文件的虚拟机,将其虚拟磁盘的基础文件替换成真实的缓存镜像文件。
5.根据权利要求4所述的网络安全实训平台虚拟机快速启动***,其特征在于,所述镜像缓存代理程序模块将原始镜像文件复制到缓存镜像目录时,先保存为临时文件,待复制完成后重命名。
6.根据权利要求4所述的网络安全实训平台虚拟机快速启动***,其特征在于,所述镜像缓存代理程序在镜像文件缓存完成后不立即替换用到该镜像文件的虚拟机的虚拟磁盘的基础文件,在扫描虚拟机时若发现某虚拟机的虚拟机磁盘是基于原始镜像文件且存在缓存镜像文件,则暂停该虚拟机运行,修改虚拟磁盘的基础文件后再恢复虚拟机运行。
7.根据权利要求4所述的网络安全实训平台虚拟机快速启动***,其特征在于,所述虚拟机创建队列管理模块通过对速率和批量的控制,使同一个计算节点不会在十毫秒级的时间内收到相同镜像的虚拟机创建请求。
CN202011089006.2A 2020-10-13 2020-10-13 一种网络安全实训平台虚拟机快速启动方法与*** Active CN112363795B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011089006.2A CN112363795B (zh) 2020-10-13 2020-10-13 一种网络安全实训平台虚拟机快速启动方法与***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011089006.2A CN112363795B (zh) 2020-10-13 2020-10-13 一种网络安全实训平台虚拟机快速启动方法与***

Publications (2)

Publication Number Publication Date
CN112363795A CN112363795A (zh) 2021-02-12
CN112363795B true CN112363795B (zh) 2021-11-26

Family

ID=74507167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011089006.2A Active CN112363795B (zh) 2020-10-13 2020-10-13 一种网络安全实训平台虚拟机快速启动方法与***

Country Status (1)

Country Link
CN (1) CN112363795B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113568702A (zh) * 2021-06-12 2021-10-29 济南浪潮数据技术有限公司 一种镜像文件访问方法、***、存储介质及设备
CN114237830B (zh) * 2022-02-24 2022-05-20 南京赛宁信息技术有限公司 靶场中虚拟机快速启动的调度与物理机扩容方法及***
CN115700465B (zh) * 2022-11-09 2023-05-09 安超云软件有限公司 一种可移动电子设备及其应用方法
CN116112562A (zh) * 2023-02-15 2023-05-12 厦门大学 一种基于p2p网络的协同块预取方法
CN117472296B (zh) * 2023-12-27 2024-03-15 苏州元脑智能科技有限公司 数据处理方法、装置、电子设备以及存储介质

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102307206A (zh) * 2010-09-25 2012-01-04 广东电子工业研究院有限公司 基于云存储的快速访问虚拟机镜像的缓存***及其方法
CN102999369A (zh) * 2012-12-25 2013-03-27 杭州华三通信技术有限公司 虚拟机升级的方法及装置
CN103116618A (zh) * 2013-01-28 2013-05-22 南开大学 基于客户端持久缓存的远程文件***镜像方法及***
CN104468734A (zh) * 2014-11-18 2015-03-25 国云科技股份有限公司 一种基于克隆的虚拟集群扩展方法
CN105045663A (zh) * 2015-08-24 2015-11-11 湖南昇云科技有限公司 快速部署虚拟机的方法与***
CN105677256A (zh) * 2016-01-08 2016-06-15 中电科华云信息技术有限公司 基于本地缓存的虚拟磁盘***及调度方法
CN105872016A (zh) * 2016-03-17 2016-08-17 广东微云科技股份有限公司 一种桌面云中虚拟机的运行方法
US9547562B1 (en) * 2010-08-11 2017-01-17 Dell Software Inc. Boot restore system for rapidly restoring virtual machine backups
CN106446061A (zh) * 2016-09-06 2017-02-22 上海云轴信息科技有限公司 用于存储虚拟机镜像的方法及设备
CN109814980A (zh) * 2019-01-25 2019-05-28 新华三云计算技术有限公司 镜像文件获取方法及装置
CN110427342A (zh) * 2019-07-09 2019-11-08 苏州浪潮智能科技有限公司 一种创建镜像库的方法、设备及可读介质
CN111158851A (zh) * 2019-12-10 2020-05-15 航天物联网技术有限公司 一种虚拟机快速部署方法
CN111414239A (zh) * 2020-04-08 2020-07-14 中国人民解放军国防科技大学 基于麒麟云计算平台的虚拟机镜像管理方法、***及介质
CN111596930A (zh) * 2020-05-22 2020-08-28 深圳创新奇智科技有限公司 根文件***镜像制作方法、装置、存储介质及嵌入式设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9055080B2 (en) * 2009-12-14 2015-06-09 Citrix Systems, Inc. Systems and methods for service isolation

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9547562B1 (en) * 2010-08-11 2017-01-17 Dell Software Inc. Boot restore system for rapidly restoring virtual machine backups
CN102307206A (zh) * 2010-09-25 2012-01-04 广东电子工业研究院有限公司 基于云存储的快速访问虚拟机镜像的缓存***及其方法
CN102999369A (zh) * 2012-12-25 2013-03-27 杭州华三通信技术有限公司 虚拟机升级的方法及装置
CN103116618A (zh) * 2013-01-28 2013-05-22 南开大学 基于客户端持久缓存的远程文件***镜像方法及***
CN104468734A (zh) * 2014-11-18 2015-03-25 国云科技股份有限公司 一种基于克隆的虚拟集群扩展方法
CN105045663A (zh) * 2015-08-24 2015-11-11 湖南昇云科技有限公司 快速部署虚拟机的方法与***
CN105677256A (zh) * 2016-01-08 2016-06-15 中电科华云信息技术有限公司 基于本地缓存的虚拟磁盘***及调度方法
CN105872016A (zh) * 2016-03-17 2016-08-17 广东微云科技股份有限公司 一种桌面云中虚拟机的运行方法
CN106446061A (zh) * 2016-09-06 2017-02-22 上海云轴信息科技有限公司 用于存储虚拟机镜像的方法及设备
CN109814980A (zh) * 2019-01-25 2019-05-28 新华三云计算技术有限公司 镜像文件获取方法及装置
CN110427342A (zh) * 2019-07-09 2019-11-08 苏州浪潮智能科技有限公司 一种创建镜像库的方法、设备及可读介质
CN111158851A (zh) * 2019-12-10 2020-05-15 航天物联网技术有限公司 一种虚拟机快速部署方法
CN111414239A (zh) * 2020-04-08 2020-07-14 中国人民解放军国防科技大学 基于麒麟云计算平台的虚拟机镜像管理方法、***及介质
CN111596930A (zh) * 2020-05-22 2020-08-28 深圳创新奇智科技有限公司 根文件***镜像制作方法、装置、存储介质及嵌入式设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于虚拟机监控技术的可信虚拟域;邢彬等;《信息安全学报》;20160115(第01期);全文 *

Also Published As

Publication number Publication date
CN112363795A (zh) 2021-02-12

Similar Documents

Publication Publication Date Title
CN112363795B (zh) 一种网络安全实训平台虚拟机快速启动方法与***
US10609112B2 (en) Method, server and system for converging desktop application and web application
KR102197247B1 (ko) 파라미터 서버 및 그것에 의해 수행되는 분산 딥러닝 파라미터 공유 방법
US11044591B2 (en) Cloud based phone services accessible in the cloud by a remote device
CN105872016B (zh) 一种桌面云中虚拟机的运行方法
US5802297A (en) Client-server computer system and method utilizing a local client disk drive as a data cache
US20200084274A1 (en) Systems and methods for efficient distribution of stored data objects
CN111901294A (zh) 一种构建在线机器学习项目的方法及机器学习***
US10885052B2 (en) Database process with virtual nodes
KR101008554B1 (ko) 클라우드 방식의 파일 복사 및 광역 통신망을 통한 디스크 복제 시스템 및 그 방법
CN111158851B (zh) 一种虚拟机快速部署方法
CN112395264B (zh) 分布式存储***中逻辑目标与卷之间映射的处理方法
CN111538590A (zh) 一种基于cs架构的分布式数据采集方法及***
CN110413595A (zh) 一种应用于分布式数据库的数据迁移方法和相关装置
CN112882726B (zh) 基于Hadoop和Docker的环境***的部署方法
CN111966283A (zh) 一种基于企业级超算场景的客户端多级缓存方法及***
CN114465877A (zh) 一种适合无线自组织网络环境的边缘云迁移方法和***
CN110119388B (zh) 文件读写方法、装置、***、设备及计算机可读存储介质
WO2023125875A1 (en) Correlation-based streaming method for game data
CN115408103A (zh) 虚拟机热迁移方法、***、设备及存储介质
CN115238006A (zh) 检索数据同步方法、装置、设备及计算机存储介质
CN114925078A (zh) 数据更新方法、***、电子设备及存储介质
CN114461334A (zh) 一种适合无线自组网中的边缘云迁移数据处理方法
CN108762957B (zh) 一种云平台演示***的生成方法和装置
CN109710183A (zh) 一种数据同步方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant