CN107493204A - 一种镜像检测的方法以及装置 - Google Patents
一种镜像检测的方法以及装置 Download PDFInfo
- Publication number
- CN107493204A CN107493204A CN201610410943.0A CN201610410943A CN107493204A CN 107493204 A CN107493204 A CN 107493204A CN 201610410943 A CN201610410943 A CN 201610410943A CN 107493204 A CN107493204 A CN 107493204A
- Authority
- CN
- China
- Prior art keywords
- image file
- unit
- virtual machine
- subelement
- key
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
Landscapes
- Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Facsimiles In General (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种镜像检测的方法以及一种镜像检测的装置。其中,所述镜像检测的方法,包括:将镜像文件作为虚拟块设备挂载到物理主机;将所述镜像文件的登录方式修改为密钥登录;以所述镜像文件启动虚拟机,并根据修改后的密钥登录方式进行登录;对所述镜像文件进行内部检测。所述技术方案通过在独立的物理主机中进行检测镜像,通过配置DHCP网络并获取Linux的SSH端口和注入公钥来进行登录虚拟机进行镜像的内部检测,能够在虚拟机无法启动时通过物理挂载分析和定位原因,能够在网络不通的时候分析网络配置情况,此外在镜像传入虚拟机时,检测镜像的操作系统和发行版本提高镜像检测的成功率,减少因为镜像内部修改导致的无法登录从而无法检测的问题。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种镜像检测的方法以及一种镜像检测的装置。
背景技术
目前使用云计算的企业和用户越来越多,各类企业和用户在云计算平台上使用的镜像各不相同,大部分被使用的镜像都是其所有者个性化定制的。但是,现在大部分云计算的厂家都未对云平台上的镜像进行检查,从而使得大量的虚拟机由于一些人为修改镜像导致启动失败或者配置出错的情况。
目前,对镜像的检测方案为:直接使用镜像传入云平台中并采用启动虚拟机的方式来检测镜像。但是由于镜像内部的不确定性,例如:Linux镜像中的SSH端口未知、镜像的登录账号和密码未知时,都无法进行登录并认为镜像不可识别,或者虚拟机启动不成功或者虚拟机网络不通时,就会认为是配置问题或镜像问题。
由此可见,在现有的镜像检测方案下,存在如下缺陷:依赖于云平台,无法在单独的物理主机进行检测镜像,导致检测复杂度大;当镜像传入虚拟机中无法启动时,由于对无法启动原因的定位不明确不能判断出无法启动原因;在网络不连通情况下,无法检测出网络不通的原因;在Linux系统下,由于SSH未开启或修改SSH端口后,导致镜像传入虚拟机后无法登录,使镜像不能被检测。
发明内容
本申请提供一种镜像检测的方法以及一种镜像检测的装置,以解决现有技术中的上述问题。
本申请提供了一种镜像检测的方法,所述镜像检测的方法,包括:
将镜像文件作为虚拟块设备挂载到物理主机;
将所述镜像文件的登录方式修改为密钥登录;
以所述镜像文件启动虚拟机,并根据修改后的密钥登录方式进行登录;
对所述镜像文件进行内部检测。
可选的,所述将镜像文件作为虚拟块设备挂载到物理主机,包括:
根据所述镜像文件生成虚拟块设备;
识别所述虚拟块设备中的分区信息,建立分区设备;
将所述分区设备挂载到所述物理主机的挂载路径中。
可选的,所述识别所述虚拟块设备中的分区信息,建立分区设备,包括:
从所述虚拟块设备中获取分区目录;
根据所述分区目录,为所述虚拟块设备建立分区设备。
可选的,在所述将所述分区设备挂载到所述物理主机的挂载路径中的步骤之后,包括:
遍历已挂载的所述分区设备;
从已挂载的所述分区设备中获取核心分区的地址。
可选的,在所述将所述镜像文件的登录方式修改为密钥登录的步骤之前,包括:
解析所述核心分区,从所述核心分区中获取发行版本信息。
可选的,所述将所述镜像文件的登录方式修改为密钥登录,包括:
将安全协议的登录方式修改为密钥登录;
注入修改后的登录方式使用的密钥。
可选的,所述密钥包括:公钥以及与所述公钥相对应的私钥。
可选的,在所述将安全协议的登录方式修改为密钥登录的步骤之前,包括:
根据所述发行版本信息,获取所述安全协议的配置信息;以及
获取所述安全协议侦听的端口信息。
可选的,在所述注入修改后的登录方式使用的密钥的步骤之后,包括:
将网络配置文件修改为动态主机配置协议。
可选的,在所述将网络配置修改为动态主机配置协议的步骤之后,包括:
在所述物理主机中将挂载路径卸载、取消所述虚拟块设备中的分区设备以及断开所述镜像文件与所述物理主机的连接。
可选的,在所述以所述镜像文件启动虚拟机的步骤之后,包括:
判断已获取的安全协议侦听的端口信息是否被占用;
若否,则通过所述端口访问以所述镜像文件启动的虚拟机。
可选的,所述根据修改后的密钥登录方式进行登录,包括:
从注入的所述密钥中获取与公钥相对应的私钥;
使用所述私钥登录以所述镜像文件启动的虚拟机。
可选的,在所述根据所述镜像文件生成虚拟块设备的步骤之后,包括:
判断所述虚拟块设备是否成功生成;
若是,则执行所述识别所述虚拟块设备中的分区信息,建立分区设备的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,在所述建立分区设备的步骤之后,包括:
判断所述分区设备是否成功建立;
若是,则执行所述将所述分区设备挂载到所述物理主机的挂载路径中的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,在所述以所述镜像文件启动虚拟机的步骤之后,包括:
判断所述虚拟机是否启动成功;
若是,则执行所述根据修改后的密钥登录方式进行登录的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,在所述判断已获取的安全协议侦听的端口信息是否被占用时,还包括:
判断虚拟机的网络连接状态;
若连接状态为已连接,则执行所述通过所述端口访问以所述镜像文件启动的虚拟机的步骤;
若连接状态为未连接,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,在所述使用所述私钥登录以所述镜像文件启动的虚拟机的步骤之后,包括:
判断登录所述虚拟机是否成功;
若是,则执行所述对所述镜像文件进行内部检测的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,所述对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息,包括:
将镜像文件作为虚拟块设备挂载到物理主机;
判断以所述镜像文件启动的虚拟机是否启动失败;
若启动失败,则判断所述镜像文件的配置是否正确;
若不正确,则记录所述镜像文件的配置的错误项;
若启动成功,则判断所述虚拟机的网络连接状态;
若连接状态为未连接,则检测所述虚拟机的网络配置信息;
记录所述虚拟机的网络配置信息的错误项。
相应的,本申请还提供了一种镜像检测的装置,所述镜像检测的装置,包括:
挂载单元,用于将镜像文件作为虚拟块设备挂载到物理主机;
登录方式修改单元,用于将所述镜像文件的登录方式修改为密钥登录;
登录单元,用于以所述镜像文件启动虚拟机,并根据修改后的密钥登录方式进行登录;
镜像检测单元,用于对所述镜像文件进行内部检测。
可选的,所述挂载单元,包括:
块设备生成子单元,用于根据所述镜像文件生成虚拟块设备;
分区建立子单元,用于识别所述虚拟块设备中的分区信息,建立分区设备;
路径挂载子单元,用于将所述分区设备挂载到所述物理主机的挂载路径中。
可选的,所述分区建立子单元,包括:
目录获取子单元,用于从所述虚拟块设备中获取分区目录;
分区设备建立子单元,用于根据所述分区目录,为所述虚拟块设备建立分区设备。
可选的,所述挂载单元,还包括:
遍历子单元,用于在所述将所述分区设备挂载到所述物理主机的挂载路径中之后,遍历已挂载的所述分区设备;
地址获取子单元,用于从已挂载的所述分区设备中获取核心分区的地址。
可选的,所述挂载单元,还包括:
发行版本获取单元,用于在所述将所述镜像文件的登录方式修改为密钥登录之前,解析所述核心分区,从所述核心分区中获取发行版本信息。
可选的,所述登录方式修改单元,包括:
登录修改子单元,用于将安全协议的登录方式修改为密钥登录;
密钥注入子单元,用于注入修改后的登录方式使用的密钥。
可选的,所述登录方式修改单元,还包括:
协议配置获取子单元,用于在所述将安全协议的登录方式修改为密钥登录之前,根据所述发行版本信息,获取所述安全协议的配置信息;
端口获取子单元,用于获取所述安全协议侦听的端口信息。
可选的,所述登录方式修改单元,还包括:
网络配置修改子单元,用于在所述注入修改后的登录方式使用的密钥之后,将网络配置文件修改为动态主机配置协议。
可选的,所述登录方式修改单元,还包括:
卸载子单元,用于在所述将网络配置修改为动态主机配置协议之后,在所述物理主机中将挂载路径卸载、取消所述虚拟块设备中的分区设备以及断开所述镜像文件与所述物理主机的连接。
可选的,所述登录单元,包括:
端口判断子单元,用于在所述以所述镜像文件启动虚拟机之后,判断已获取的安全协议侦听的端口信息是否被占用;
虚拟机访问子单元,用于接收所述端口判断子单元的判断结果,若否,则通过所述端口访问以所述镜像文件启动的虚拟机。
可选的,所述登录单元,还包括:
私钥获取子单元,用于从注入的所述密钥中获取与公钥相对应的私钥;
虚拟机登录子单元,用于使用所述私钥登录以所述镜像文件启动的虚拟机。
可选的,所述挂载单元,还包括:
块设备判断子单元,用于在所述根据所述镜像文件生成虚拟块设备之后,判断所述虚拟块设备是否成功生成;
分区建立触发子单元,用于接收所述块设备判断子单元的判断结果,若是,则触发所述分区建立子单元;
镜像分析单元,用于接收所述块设备判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,所述挂载单元,还包括:
分区判断子单元,用于在所述建立分区设备之后,判断所述分区设备是否成功建立;
路径挂载触发子单元,用于接收所述分区判断子单元的判断结果,若是,则触发所述路径挂载子单元;
镜像分析单元,用于接收所述分区判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,所述登录单元,还包括:
启动判断子单元,用于在所述以所述镜像文件启动虚拟机之后,判断所述虚拟机是否启动成功;
虚拟机登录触发子单元,用于接收所述启动判断子单元的判断结果,若是,则触发所述虚拟机登录子单元;
镜像分析单元,用于接收所述启动判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,所述登录单元,还包括:
网络连接判断子单元,用于在所述判断已获取的安全协议侦听的端口信息是否被占用时,判断虚拟机的网络连接状态
虚拟机访问触发子单元,用于接收所述网络连接判断子单元的判断结果,若连接状态为已连接,则触发所述虚拟机访问触发子单元;
镜像分析单元,用于接收所述网络连接判断子单元的判断结果,若连接状态为未连接,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,所述登录单元,还包括:
登录判断子单元,用于在所述使用所述私钥登录以所述镜像文件启动的虚拟机之后,判断登录所述虚拟机是否成功;
镜像检测触发子单元,用于接收所述登录判断子单元的判断结果,若是,则触发所述镜像检测单元;
镜像分析单元,用于接收所述登录判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,所述镜像分析单元,包括:
挂载触发子单元,用于触发所述挂载单元;
启动判断子单元,用于判断以所述镜像文件启动的虚拟机是否启动失败;
镜像配置子单元,用于接收所述启动判断子单元的判断结果,若启动失败,则判断所述镜像文件的配置是否正确;
配置记录子单元,用于接收所述镜像配置子单元的判断结果,若不正确,则记录所述镜像文件的配置的错误项;
连接状态判断子单元,用于接收所述启动判断子单元的判断结果,若启动成功,则判断所述虚拟机的网络连接状态;
网络配置检测子单元,用于接收所述连接状态判断子单元的判断结果,若连接状态为未连接,则检测所述虚拟机的网络配置信息;
网络配置记录子单元,用于记录所述虚拟机的网络配置信息的错误项。
与现有技术相比,本申请具有以下优点:
本申请提供的一种镜像检测的方法以及一种镜像检测的装置,通过将镜像文件作为虚拟块设备挂载到物理主机;将所述镜像文件的登录方式修改为密钥登录;以所述镜像文件启动虚拟机,并根据修改后的密钥登录方式进行登录;对所述镜像文件进行内部检测。所述技术方案通过在独立的物理主机中进行检测镜像,通过配置DHCP网络并获取Linux的SSH端口和注入公钥来进行登录虚拟机进行镜像的内部检测,能够在虚拟机无法启动时通过物理挂载分析和定位原因,能够在网络不通的时候分析网络配置情况,此外在镜像传入虚拟机时,检测镜像的操作系统和发行版本提高镜像检测的成功率,减少因为镜像内部修改导致的无法登录从而无法检测的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1示出了根据本申请的实施例提供的镜像检测的方法的流程图;
图2示出了根据本申请的实施例提供的将镜像文件作为虚拟块设备挂载到物理主机的流程图;
图3示出了根据本申请的实施例提供的识别所述虚拟块设备中的分区信息建立分区设备的流程图;
图4示出了根据本申请的实施例提供的获取核心分区的流程图;
图5示出了根据本申请的实施例提供的将所述镜像文件的登录方式修改为密钥登录的流程图;
图6示出了根据本申请的实施例提供的根据修改后的密钥登录方式进行登录的流程图;
图7示出了根据本申请的实施例提供的所述对所述镜像文件进行分析处理操作获取所述镜像文件的检测失败的信息的流程图;
图8示出了根据本申请的实施例提供的镜像检测的装置的示意图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施方式对本申请进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。
本申请的实施例提供了一种镜像检测的方法以及一种镜像检测的装置。在下面的实施例中逐一进行详细说明。
目前,对镜像的检测方案为:直接使用镜像传入云平台中并采用启动虚拟机的方式来检测镜像。但是由于镜像内部的不确定性,例如:Linux镜像中的SSH端口未知、镜像的登录账号和密码未知时,都无法进行登录并认为镜像不可识别,或者虚拟机启动不成功或者虚拟机网络不通时,就会认为是配置问题或镜像问题。由此可见,在现有的镜像检测方案下,存在如下缺陷:依赖于云平台,无法在单独的物理主机进行检测镜像,导致检测复杂度大;当镜像传入虚拟机中无法启动时,由于对无法启动原因的定位不明确不能判断出无法启动原因;在网络不连通情况下,无法检测出网络不通的原因;在Linux系统下,由于SSH未开启或修改SSH端口后,导致镜像传入虚拟机后无法登录,使镜像不能被检测。针对这一问题,本申请的技术方案通过将镜像文件作为虚拟块设备挂载到物理主机在独立的物理主机中进行检测镜像,通过配置DHCP网络并获取Linux的SSH端口和注入公钥来进行登录虚拟机进行镜像的内部检测,能够在虚拟机无法启动时通过物理挂载分析和定位原因,能够在网络不通的时候分析网络配置情况,此外在镜像传入虚拟机时,检测镜像的操作系统和发行版本提高镜像检测的成功率,从而解决了镜像无法检测的问题。
在详细描述本实施例的具体步骤之前,为了方便对本技术方案的理解,先对现有的镜像检测作简要说明。
镜像(Image):又称映像,一种虚拟化中虚拟机启动的操作系统模板。通过镜像可以快速地启动一台模板化好的虚拟机。目前主流的镜像格式有vhd、raw、qcow2等。镜像检测是指:检查镜像是否能够在虚拟化平台正常工作。
KVM(Kernel-based Virtual Machine)的简称,是一种虚拟化技术,一个开源的系统虚拟化模块,集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。KVM的虚拟化需要硬件支持,是基于硬件的完全虚拟化。
Linux是一套类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
本申请的实施例提供了一种镜像检测的方法。所述镜像检测的方法实施例如下:
请参考图1,其示出了根据本申请的实施例提供的镜像检测的方法的流程图。
所述镜像检测的方法包括:
步骤S101,将镜像文件作为虚拟块设备挂载到物理主机。
在本实施例中,所述将镜像文件作为虚拟块设备挂载到物理主机,可以采用如下方式实现:将所述镜像文件作为虚拟块设备挂载到目标物理主机的操作系统的挂载路径中。
需要说明的是,所述虚拟块设备是:nbd(Network Block Device)可以将一个远程主机的磁盘空间,当作一个块设备来使用。像硬盘一样,使用虚拟块设备可以将另一台服务器的硬盘空间,增加到本地服务器上。nbd与NFS有所不同。NFS只是提供一个挂载点供客户端使用,客户端无法改变这个挂载点的分区格式。而nbd提供的是一个虚拟块设备,客户端可以把这个虚拟块设备格式化成各种类型的分区.便于使用。虚拟块设备是一个内核模块,大部分Linux发行版都已包含它。
在linux操作系统中,挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。在访问存储设备中的文件时,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。
在具体实施时,所述将镜像文件作为虚拟块设备挂载到物理主机,具体包括步骤S101-1至S101-3,下面结合附图2作进一步说明。
请参考图2,其示出了根据本申请的实施例提供的将镜像文件作为虚拟块设备挂载到物理主机的流程图。
所述将镜像文件作为虚拟块设备挂载到物理主机,包括:
步骤S101-1,根据所述镜像文件生成虚拟块设备。
在本实施例中,所述根据所述镜像文件生成虚拟块设备,可以采用如下方式实现:将本地镜像文件通过qemu-nbd与物理主机进行连接,将所述镜像文件模拟成在当前物理主机中的虚拟块设备。
需要说明的是,所述qemu-nbd是一种依赖Linux内核nbd模块实现基于网络的虚拟块设备数据共享方式。
在本实施例中,还可以使用libguestfs将镜像文件模拟成虚拟块设备。
具体的,将本地镜像文件通过qemu-nbd与物理主机进行连接,在当前物理主机中将所述镜像文件模拟成虚拟块设备nbd1存储在当前物理主机的/dev目录中。即:将本地镜像文件通过qemu-nbd与物理主机连接,将所述镜像文件模拟成一个物理主机的虚拟块设备/dev/nbd1。
需要说明的是,/dev是设备(device)的英文缩写,在这个目录中包含了所有linux系统中使用的设备。但是这里并不存放外部设备的驱动程序。这和常用的windows,dos操作系统不一样。/dev目录实际上是一个访问这些外部设备的端口。将设备存放在/dev目录后,可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。例如:通过访问/dev/mouse来访问鼠标的输入。
在本实施例中,在所述根据所述镜像文件生成虚拟块设备时,有可能会发生失败,所以在所述根据所述镜像文件生成虚拟块设备的步骤之后,需要对是否成功生成虚拟块设备进行验证,具体包括如下步骤:
判断所述虚拟块设备是否成功生成;
若是,则执行所述识别所述虚拟块设备中的分区信息,建立分区设备的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可以理解的,若成功生成所述虚拟块设备,说明完成了本步骤,则执行所述识别所述虚拟块设备中的分区信息,建立分区设备以完成后续步骤;若生成所述虚拟块设备失败,则停止对所述镜像文件的内部检测过程,对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
步骤S101-2,识别所述虚拟块设备中的分区信息,建立分区设备。
在本实施例中,所述识别所述虚拟块设备中的分区信息,建立分区设备,可以采用如下方式实现:通过kpartx命令识别所述虚拟块设备中的分区信息,并根据识别出的分区信息建立相应的分区设备。
需要说明的是,所述kpartx命令是基于util-linux的partx,可以从虚拟块设备中读取分区信息,模拟出分区设备。
可以理解的,由于一个镜像文件中可能包含多个分区,所以在将镜像文件模拟成在当前物理主机中的虚拟块设备后,该虚拟块设备中也包含多个分区,所以不能直接将该虚拟块设备进行挂载,需要将该虚拟块设备中包含的每个分区映射出来后在对每个分区依次的进行挂载,所以kpartx实际是一个读取分区表的工具,在一个在虚拟块设备上读取分区表并为每个分区创建映射的工具。
在本实施例中,所述识别所述虚拟块设备中的分区信息,建立分区设备,具体包括步骤S101-2-1至S101-2-2,下面结合附图3作进一步说明。
请参考图3,其示出了根据本申请的实施例提供的识别所述虚拟块设备中的分区信息建立分区设备的流程图。
所述识别所述虚拟块设备中的分区信息建立分区设备,包括:
步骤S101-2-1,从所述虚拟块设备中获取分区目录。
在本实施例中,所述从所述虚拟块设备中获取分区目录,可以采用如下方式实现:通过kpartx命令让Linux内核读取所述虚拟块设备中的分区目录表。例如:读取虚拟块设备/dev/nbd1中的分区目录表。
步骤S101-2-2,根据所述分区目录,为所述虚拟块设备建立分区设备。
在本实施例中,所述根据所述分区目录,为所述虚拟块设备建立分区设备,可以采用如下方式实现:从所述分区目录中获取所述虚拟块设备的分区信息,在所述虚拟块设备上根据获取到的分区信息再进行分区建立分区设备。
例如:从所述分区目录中获取所述虚拟块设备的分区信息有3个,则在所述虚拟块设备/dev/nbd1上再进行分区建立分区设备,所述分区设备分别为/dev/nbd1p1、/dev/nbd1p2以及/dev/nbd1p3。
需要说明的是,根据所述虚拟块设备/dev/nbd1建立的分区设备为/dev/nbd1pX。其中X代表分区数字,若分区模块只有1个,则X为1,分区设备为/dev/nbd1p1;若分区设备有2个,则X为1和2,分区设备为/dev/nbd1p1以及分区设备为/dev/nbd1p2。
在本实施例中,在所述为所述虚拟块设备建立分区设备时,有可能会发生失败,所以在所述建立分区设备的步骤之后的步骤之后,需要对是否成功建立分区设备进行验证,具体包括如下步骤:
判断所述分区设备是否成功建立;
若是,则执行所述将所述分区设备挂载到所述物理主机的挂载路径中的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可以理解的,若成功建立所述分区设备,说明完成了本步骤,则执行所述将所述分区设备挂载到所述物理主机的挂载路径中以完成后续步骤;若生成所述虚拟块设备失败,则停止对所述镜像文件的内部检测过程,对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
步骤S101-3,将所述分区设备挂载到所述物理主机的挂载路径中。
在本实施例中,所述将所述分区设备挂载到所述物理主机的挂载路径中,可以采用如下方式实现:将所述分区设备通过Linux的mount命令,将每个分区设备依次挂载到物理主机的挂载路径/mnt中。
需要说明的是,mount命令是Linux下的一个命令,它可以将分区设备挂载到Linux的文件夹下,从而将分区设备和该目录联系起来,挂载后只要访问这个文件夹,就相当于访问该分区设备了。目前mount已经不仅仅局限于Linux了。在Windows系统下的应用也越来越广了,多用在虚拟光驱类软件上。其中,挂载路径/mnt是:用于存放挂载储存设备的挂载目录,该目录是系统管理员临时安装文件系统的安装点。程序并不自动支持安装到挂载路径/mnt中。挂载路径/mnt下面可以分为许多子目录,例如:/mnt/dosa可能是使用MSDOS文件系统的软驱,而/mnt/exta可能是使用ext2文件系统的软驱,/mnt/cdrom光驱等。
由于在虚拟块设备进行分区后,分出的分区设备中会有一个核心分区,所以本实施例的技术方案提供了一种优选实施方式,在优选方式下,所述在将所述分区设备挂载到所述物理主机的挂载路径中之后,还需在虚拟块设备中分出的分区设备中确定核心分区,具体包括步骤S102-1至S102-2,下面结合附图4作进一步说明。
请参考图4,其示出了根据本申请的实施例提供的获取核心分区的流程图。
所述获取核心分区,包括:
步骤S102-1,遍历已挂载的所述分区设备。
在本实施例中,所述遍历已挂载的所述分区设备就是遍历所述虚拟块设备分出的所有分区设备。
步骤S102-2,从已挂载的所述分区设备中获取核心分区的地址。
在本实施例中,所述核心分区是指:具有需要的启动信息的启动分区。所以所述从已挂载的所述分区设备中获取核心分区的地址,就是从所述虚拟块设备分出的所有已挂载的所述分区设备确定核心分区,并获取所述核心分区的地址。
例如:所述核心分区为/dev/nbd1p1,则遍历从所述虚拟块设备分出的所有已挂载的所述分区设备/dev/nbd1p1、/dev/nbd1p2以及/dev/nbd1p3,确定分区设备/dev/nbd1p1的地址信息。
步骤S103,将所述镜像文件的登录方式修改为密钥登录。
在本实施例中,由于所述镜像文件具有登录帐号和登录密码,所以在将镜像文件传入虚拟机时,是通过密码方式进行登录的,所以将所述镜像文件的登录方式修改为密钥登录,可以采用如下方式实现将登录所述镜像文件的登录方式由密码登录方式修改为密钥登录方式。
在具体实施时,所述将所述镜像文件的登录方式修改为密钥登录,具体包括步骤S103-1至S103-2,下面结合附图5作进一步说明。
请参考图5,其示出了根据本申请的实施例提供的将所述镜像文件的登录方式修改为密钥登录的流程图。
步骤S103-1,将安全协议的登录方式修改为密钥登录;
在本实施例中,是通过SSH为远程登录会话和其他网络服务提供安全性的协议。SSH(Secure Shell)为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。
需要说明的是,SSH提供两种级别的安全验证。第一种级别是基于密码的安全验证,在这种方式下,通过SSH将镜像文件传入虚拟机并登录虚拟机时,使用登录账户和登录密码登录虚拟机;第二种级别是基于密钥的安全验证,在这种方式下,需要依靠创建一对密钥进行登录,其中所述密钥分为公钥以及对应所述公钥的私钥。公钥是放在需要访问的镜像文件上,当通过SSH协议使镜像文件链接到虚拟机在登录时,就会向虚拟机发出请求,请求使用公钥进行安全验证,虚拟机在收到请求后,先获取在该虚拟机上的公钥,在将登录时发送的公钥进行比较,当两个公钥一致时,虚拟机就用公钥加密“质询”(challenge),在接收到“质询”之后就可以用与该公钥相对应的私钥进行解密后进行登录。
在本实施例中,所述将安全协议的登录方式修改为密钥登录,可以采用如下方式实现:将SSH协议中登录所述镜像文件的登录方式从密码登录方式修改为密钥登录方式。
需要说明的是,由于协议等配置信息在不同的Linux的发行版本中存放的路径是不相同的,所以本实施例的技术方案提供了一种优选实施方式,在优选方式下,在执行所述将所述镜像文件的登录方式修改为密钥登录的步骤之前,需要先获取当前的发行版本信息,包括:解析所述核心分区,从所述核心分区中获取发行版本信息。
具体的,通过解析核心分区中的/etc/*-release文件或/etc/issue文件内容来获取其Linux发行版本信息。
需要说明的是,/etc目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。要用到的网络配置文件,文件系统,系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
可以理解的,Linux系统中不同的发行版本存放配置信息的路径都不相同,开支服务等都存放在不同的位置,所以在从所述核心分区中获取发行版本信息后,就可以在所述将安全协议的登录方式修改为密钥登录的步骤之前,根据当前发行版本信息确定协议配置存储的路径,具体包括如下步骤:
根据所述发行版本信息,获取所述安全协议的配置信息;以及
获取所述安全协议侦听的端口信息。
需要说明的是,可以通过Redhat在/etc/ssh/sshd_config获取所述安全协议的配置信息,并记录SSH侦听的端口号。例如:SSH默认的端口22,若将SSH端口进行修改,则会造成SSH无法连接。
步骤S103-2,注入修改后的登录方式使用的密钥。
在本实施例中,所述注入修改后的登录方式使用的密钥,可以采用如下方式实现:通过在root用户的/root/.ssh/authorized_keys中注入修改后的登录方式使用的密钥。
需要说明的是,SSH使用的密钥包括公钥以及与所述公钥相对应的私钥,在本步骤中,则注入的是镜像检测使用的公钥。
在本实施例中,在所述注入修改后的登录方式使用的密钥的步骤之后,包括:将网络配置文件修改为动态主机配置协议,即:修改网络配置文件为DHCP方式。
需要说明的是,所述动态主机配置协议是DHCP(Dynamic Host ConfigurationProtocol,动态主机配置协议),是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。DHCP有3个端口,通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
在本实施例中,在所述将网络配置修改为动态主机配置协议的步骤之后,包括:在所述物理主机中将挂载路径卸载、取消所述虚拟块设备中的分区设备以及断开所述镜像文件与所述物理主机的连接。
可以理解的,所述断开所述镜像文件与所述物理主机的连接是指:断开所述镜像文件与所述物理主机之间的qemu-nbd连接。
步骤S105,以所述镜像文件启动虚拟机,并根据修改后的密钥登录方式进行登录。
在本实施例中,所述以所述镜像文件启动虚拟机,可以采用如下方式实现:使用虚拟化技术以修改过登录方式的所述镜像文件启动虚拟机。
需要说明的是,所述虚拟化技术(Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。虚拟化技术透明化底层物理硬件,从而最大化的利用物理硬件。
在本实施例中,可以使用KVM(Kernel-based Virtual Machine)以修改过登录方式的所述镜像文件启动虚拟机。
在本实施例中,在所述以所述镜像文件启动虚拟机时,如果启动虚拟机过程中虚拟化工具报错、或者虚拟机启动后自动销毁,则说明虚拟机启动失败,所以在所述以所述镜像文件启动虚拟机的步骤之后,需要对是否成功启动虚拟机进行验证,具体包括如下步骤:
判断所述虚拟机是否启动成功;
若是,则执行所述根据修改后的密钥登录方式进行登录的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可以理解的,若成功启动虚拟机,说明完成了本步骤,则执行所述根据修改后的密钥登录方式进行登录以完成后续步骤;若启动虚拟机失败,则停止对所述镜像文件的内部检测过程,对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
由于访问虚拟机时是通过SSH协议进行访问的,当SSH的端口发生变化时,会造成SSH无法连接,所以本实施例的技术方案提供了一种优选实施方式,在优选方式下,在所述以所述镜像文件启动虚拟机的步骤之后,需要侦听当前虚拟机的端口信息,具体包括如下步骤:
判断已获取的安全协议侦听的端口信息是否被占用;
若否,则通过所述端口访问以所述镜像文件启动的虚拟机。
需要说明的是,以所述镜像文件启动虚拟机后,判断虚拟机中与已获取的安全协议侦听的端口信息相同的端口是否被占用,若没有被占用,则可以通过与已获取的安全协议侦听的端口信息相同的端口访问以所述镜像文件启动的虚拟机。
在本实施例中,在所述判断已获取的安全协议侦听的端口信息是否被占用时时,如果虚拟机的网络一直不通,则说明虚拟机的网络配置出错或网卡驱动存在问题,则说明虚拟机访问失败,所以在所述判断已获取的安全协议侦听的端口信息是否被占用时,需要对启动虚拟机的网络是否接通进行验证,具体包括如下步骤:
判断虚拟机的网络连接状态;
若连接状态为已连接,则执行所述通过所述端口访问以所述镜像文件启动的虚拟机的步骤;
若连接状态为未连接,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可以理解的,若虚拟机的网络联通,说明完成了本步骤则执行所述通过所述端口访问以所述镜像文件启动的虚拟机以完成后续步骤;若虚拟机的网络联通,一直不通则停止对所述镜像文件的内部检测过程,对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
在本实施例中,所述根据修改后的密钥登录方式进行登录,可以采用如下方式实现:以所述镜像文件启动虚拟机后,通过密钥登录方式登录当前虚拟机。
具体的,所述根据修改后的密钥登录方式进行登录,具体包括步骤S105-1至S105-2,下面结合附图6作进一步说明。
请参考图6,其示出了根据本申请的实施例提供的根据修改后的密钥登录方式进行登录的流程图。
所述根据修改后的密钥登录方式进行登录,包括:
步骤S105-1,从注入的所述密钥中获取与公钥相对应的私钥.
在本实施例中,所述从注入的所述密钥中获取与公钥相对应的私钥,可以采用如下方式实现:在将公钥注入镜像文件后,当通过SSH协议使镜像文件链接到虚拟机在登录时,就会向虚拟机发出请求使用公钥进行安全验证,虚拟机在收到请求后,先获取在该虚拟机上的公钥,在将登录时发送的公钥进行比较,当两个公钥一致时,虚拟机就用公钥加密质询,在接收到质询之后就可以获取到与该公钥相对应的私钥进行解密后进行登录。
步骤S105-2,使用所述私钥登录以所述镜像文件启动的虚拟机。
在本实施例中,所述使用所述私钥登录以所述镜像文件启动的虚拟机,可以采用如下方式实现:使用已注入的公钥对应的私钥登录以所述镜像文件启动的虚拟机。
在本实施例中,在所述使用所述私钥登录以所述镜像文件启动的虚拟机时,无法登录到所述虚拟机,则在所述使用所述私钥登录以所述镜像文件启动的虚拟机的步骤之后,需要对是否成功登录到所述虚拟机进行验证,具体包括如下步骤:
判断登录所述虚拟机是否成功;
若是,则执行所述对所述镜像文件进行内部检测的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可以理解的,若成功登录虚拟机,说明完成了本步骤,则执行所述对所述镜像文件进行内部检测以完成后续步骤;若登录虚拟机失败,则停止对所述镜像文件的内部检测过程,对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
在本实施例中,当所述虚拟块设备生成失败、分区设备建立失败、虚拟机启动失败、虚拟机的网络连接状态不通以及虚拟机登录失败时,会触发执行所述对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息的步骤,具体包括步骤S106-1至S106-7,下面结合附图7作进一步说明。
请参考图7,其示出了根据本申请的实施例提供的所述对所述镜像文件进行分析处理操作获取所述镜像文件的检测失败的信息的流程图。
所述对所述镜像文件进行分析处理操作获取所述镜像文件的检测失败的信息,包括:
步骤S106-1,将镜像文件作为虚拟块设备挂载到物理主机。
在本实施例中,所述将镜像文件作为虚拟块设备挂载到物理主机,与步骤S101中的相同,由于在上面的实施例中已经对所述将镜像文件作为虚拟块设备挂载到物理主机的过程进行了详细说明,所以在此不再赘述。
步骤S106-2,判断以所述镜像文件启动的虚拟机是否启动失败。
在本步骤中,以触发执行所述所述镜像文件进行分析处理操作获取所述镜像文件的检测失败的信息的步骤为依据进行判断。
例如:当所述虚拟块设备生成失败、分区设备建立失败以及虚拟机启动失败时,则进入步骤S106-3;当虚拟机的网络连接状态不通以及虚拟机登录失败时,则进入步骤S106-5。
步骤S106-3,若启动失败,则判断所述镜像文件的配置是否正确。
在本步骤中,所述判断所述镜像文件的配置是否正确,可以采用如下方式实现:判断虚拟化的驱动的配置、镜像内核版本以及启动grub对应的分区是否正确。
步骤S106-4,若不正确,则记录所述镜像文件的配置的错误项。
本步骤接收步骤S106-4中的判断结果,若虚拟化的驱动的配置、镜像内核版本以及启动grub对应的分区其中有任意一项不正确,则记录所述镜像文件的配置不正确的项目。
步骤S106-5,若启动成功,则判断所述虚拟机的网络连接状态。
在本实施例中,所述判断所述虚拟机的网络连接状态,可以采用如下方式实现:判断所述虚拟机的网络连接状态是否为无法联通。
步骤S106-6,若连接状态为未连接,则检测所述虚拟机的网络配置信息。
在本实施例中,所述检测所述虚拟机的网络配置信息,可以采用如下方式实现:根据不同发行版本判断网卡配置是否配置正确、网关是否配置正确、主路由是否配置正确。
步骤S106-7,记录所述虚拟机的网络配置信息的错误项。
本步骤接收步骤S106-6中的判断结果,若网卡配置、网关配置主路由的配置其中有任意一项不正确,则记录所述虚拟机的网络配置信息不正确的项目。
步骤S107,对所述镜像文件进行内部检测。
在本实施例中,所述对所述镜像文件进行内部检测,可以采用如下方式实现:在使用所述私钥登录以所述镜像文件启动的虚拟机后,检测传入所述镜像文件的虚拟机的CPU和内存的使用量是否正常、网卡参数配置是否成功、网关信息是否正确、路由信息是否正确、磁盘是否挂载正确并可写入。
在上述的实施例中,提供了一种镜像检测的方法,与上述镜像检测的方法相对应的,本申请还提供了一种镜像检测的装置。由于装置的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。所述镜像检测的装置实施例如下:
请参考图8,其示出了根据本申请的实施例提供的镜像检测的装置的示意图。
所述镜像检测的装置,包括:挂载单元801、登录方式修改单元803、登录单元805以及镜像检测单元807;
所述挂载单元801,用于将镜像文件作为虚拟块设备挂载到物理主机;
所述登录方式修改单元803,用于将所述镜像文件的登录方式修改为密钥登录;
所述登录单元805,用于以所述镜像文件启动虚拟机,并根据修改后的密钥登录方式进行登录;
所述镜像检测单元807,用于对所述镜像文件进行内部检测。
可选的,所述挂载单元801,包括:块设备生成子单元、分区建立子单元以及路径挂载子单元;
所述块设备生成子单元,用于根据所述镜像文件生成虚拟块设备;
所述分区建立子单元,用于识别所述虚拟块设备中的分区信息,建立分区设备;
所述路径挂载子单元,用于将所述分区设备挂载到所述物理主机的挂载路径中。
可选的,所述分区建立子单元,包括:目录获取子单元、扫描子单元以及分区设备建立子单元;
所述目录获取子单元,用于从所述虚拟块设备中获取分区目录;
所述分区设备建立子单元,用于根据所述分区目录,为所述虚拟块设备建立分区设备。
可选的,所述挂载单元801,还包括:遍历子单元以及地址获取子单元;
所述遍历子单元,用于在所述将所述分区设备挂载到所述物理主机的挂载路径中之后,遍历已挂载的所述分区设备;
所述地址获取子单元,用于从已挂载的所述分区设备中获取核心分区的地址。
可选的,所述挂载单元801,还包括:发行版本获取单元;
所述发行版本获取单元,用于在所述将所述镜像文件的登录方式修改为密钥登录之前,解析所述核心分区,从所述核心分区中获取发行版本信息。
可选的,所述登录方式修改单元803,包括:登录修改子单元以及密钥注入子单元;
所述登录修改子单元,用于将安全协议的登录方式修改为密钥登录;
所述密钥注入子单元,用于注入修改后的登录方式使用的密钥。
可选的,所述登录方式修改单元803,还包括:协议配置获取子单元以及端口获取子单元;
所述协议配置获取子单元,用于在所述将安全协议的登录方式修改为密钥登录之前,根据所述发行版本信息,获取所述安全协议的配置信息;
所述端口获取子单元,用于获取所述安全协议侦听的端口信息。
可选的,所述登录方式修改单元803,还包括:网络配置修改子单元;
所述网络配置修改子单元,用于在所述注入修改后的登录方式使用的密钥之后,将网络配置文件修改为动态主机配置协议。
可选的,所述登录方式修改单元803,还包括:卸载子单元;
所述卸载子单元,用于在所述将网络配置修改为动态主机配置协议之后,在所述物理主机中将挂载路径卸载、取消所述虚拟块设备中的分区设备以及断开所述镜像文件与所述物理主机的连接。
可选的,所述登录单元805,包括:端口判断子单元以及虚拟机访问子单元;
所述端口判断子单元,用于在所述以所述镜像文件启动虚拟机之后,判断已获取的安全协议侦听的端口信息是否被占用;
所述虚拟机访问子单元,用于接收所述端口判断子单元的判断结果,若否,则通过所述端口访问以所述镜像文件启动的虚拟机。
可选的,所述登录单元,还包括:私钥获取子单元以及虚拟机登录子单元;
所述私钥获取子单元,用于从注入的所述密钥中获取与公钥相对应的私钥;
所述虚拟机登录子单元,用于使用所述私钥登录以所述镜像文件启动的虚拟机。
可选的,所述挂载单元801,还包括:块设备判断子单元、分区建立触发子单元以及镜像分析单元;
所述块设备判断子单元,用于在所述根据所述镜像文件生成虚拟块设备之后,判断所述虚拟块设备是否成功生成;
所述分区建立触发子单元,用于接收所述块设备判断子单元的判断结果,若是,则触发所述分区建立子单元;
所述镜像分析单元,用于接收所述块设备判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,所述挂载单元801,还包括:分区判断子单元、路径挂载触发子单元以及镜像分析单元;
所述分区判断子单元,用于在所述建立分区设备之后,判断所述分区设备是否成功建立;
所述路径挂载触发子单元,用于接收所述分区判断子单元的判断结果,若是,则触发所述路径挂载子单元;
所述镜像分析单元,用于接收所述分区判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,所述登录单元805,还包括:启动判断子单元、虚拟机登录触发子单元以及镜像分析单元;
所述启动判断子单元,用于在所述以所述镜像文件启动虚拟机之后,判断所述虚拟机是否启动成功;
所述虚拟机登录触发子单元,用于接收所述启动判断子单元的判断结果,若是,则触发所述虚拟机登录子单元;
所述镜像分析单元,用于接收所述启动判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,所述登录单元805,还包括:网络连接判断子单元、虚拟机访问触发子单元以及镜像分析单元;
所述网络连接判断子单元,用于在所述判断已获取的安全协议侦听的端口信息是否被占用时,判断虚拟机的网络连接状态
所述虚拟机访问触发子单元,用于接收所述网络连接判断子单元的判断结果,若连接状态为已连接,则触发所述虚拟机访问触发子单元;
所述镜像分析单元,用于接收所述网络连接判断子单元的判断结果,若连接状态为未连接,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,所述登录单元805,还包括:登录判断子单元、镜像检测触发子单元以及镜像分析单元;
所述登录判断子单元,用于在所述使用所述私钥登录以所述镜像文件启动的虚拟机之后,判断登录所述虚拟机是否成功;
所述镜像检测触发子单元,用于接收所述登录判断子单元的判断结果,若是,则触发所述镜像检测单元;
所述镜像分析单元,用于接收所述登录判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
可选的,所述镜像分析单元,包括:挂载触发子单元、启动判断子单元、镜像配置子单元、配置记录子单元、连接状态判断子单元、网络配置检测子单元以及网络配置记录子单元;
所述挂载触发子单元,用于触发所述挂载单元;
所述启动判断子单元,用于判断以所述镜像文件启动的虚拟机是否启动失败;
所述镜像配置子单元,用于接收所述启动判断子单元的判断结果,若启动失败,则判断所述镜像文件的配置是否正确;
所述配置记录子单元,用于接收所述镜像配置子单元的判断结果,若不正确,则记录所述镜像文件的配置的错误项;
所述连接状态判断子单元,用于接收所述启动判断子单元的判断结果,若启动成功,则判断所述虚拟机的网络连接状态;
所述网络配置检测子单元,用于接收所述连接状态判断子单元的判断结果,若连接状态为未连接,则检测所述虚拟机的网络配置信息;
所述网络配置记录子单元,用于记录所述虚拟机的网络配置信息的错误项。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (35)
1.一种镜像检测的方法,其特征在于,包括:
将镜像文件作为虚拟块设备挂载到物理主机;
将所述镜像文件的登录方式修改为密钥登录;
以所述镜像文件启动虚拟机,并根据修改后的密钥登录方式进行登录;
对所述镜像文件进行内部检测。
2.根据权利要求1所述的镜像检测的方法,其特征在于,所述将镜像文件作为虚拟块设备挂载到物理主机,包括:
根据所述镜像文件生成虚拟块设备;
识别所述虚拟块设备中的分区信息,建立分区设备;
将所述分区设备挂载到所述物理主机的挂载路径中。
3.根据权利要求2所述的镜像检测的方法,其特征在于,所述识别所述虚拟块设备中的分区信息,建立分区设备,包括:
从所述虚拟块设备中获取分区目录;
根据所述分区目录,为所述虚拟块设备建立分区设备。
4.根据权利要求2所述的镜像检测的方法,其特征在于,在所述将所述分区设备挂载到所述物理主机的挂载路径中的步骤之后,包括:
遍历已挂载的所述分区设备;
从已挂载的所述分区设备中获取核心分区的地址。
5.根据权利要求4所述的镜像检测的方法,其特征在于,在所述将所述镜像文件的登录方式修改为密钥登录的步骤之前,包括:
解析所述核心分区,从所述核心分区中获取发行版本信息。
6.根据权利要求5所述的镜像检测的方法,其特征在于,所述将所述镜像文件的登录方式修改为密钥登录,包括:
将安全协议的登录方式修改为密钥登录;
注入修改后的登录方式使用的密钥。
7.根据权利要求6所述的镜像检测的方法,其特征在于,所述密钥包括:公钥以及与所述公钥相对应的私钥。
8.根据权利要求6所述的镜像检测的方法,其特征在于,在所述将安全协议的登录方式修改为密钥登录的步骤之前,包括:
根据所述发行版本信息,获取所述安全协议的配置信息;以及
获取所述安全协议侦听的端口信息。
9.根据权利要求8所述的镜像检测的方法,其特征在于,在所述注入修改后的登录方式使用的密钥的步骤之后,包括:
将网络配置文件修改为动态主机配置协议。
10.根据权利要求9所述的镜像检测的方法,其特征在于,在所述将网络配置修改为动态主机配置协议的步骤之后,包括:
在所述物理主机中将挂载路径卸载、取消所述虚拟块设备中的分区设备以及断开所述镜像文件与所述物理主机的连接。
11.根据权利要求10所述的镜像检测的方法,其特征在于,在所述以所述镜像文件启动虚拟机的步骤之后,包括:
判断已获取的安全协议侦听的端口信息是否被占用;
若否,则通过所述端口访问以所述镜像文件启动的虚拟机。
12.根据权利要求11所述的镜像检测的方法,其特征在于,所述根据修改后的密钥登录方式进行登录,包括:
从注入的所述密钥中获取与公钥相对应的私钥;
使用所述私钥登录以所述镜像文件启动的虚拟机。
13.根据权利要求2所述的镜像检测的方法,其特征在于,在所述根据所述镜像文件生成虚拟块设备的步骤之后,包括:
判断所述虚拟块设备是否成功生成;
若是,则执行所述识别所述虚拟块设备中的分区信息,建立分区设备的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
14.根据权利要求2所述的镜像检测的方法,其特征在于,在所述建立分区设备的步骤之后,包括:
判断所述分区设备是否成功建立;
若是,则执行所述将所述分区设备挂载到所述物理主机的挂载路径中的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
15.根据权利要求1所述的镜像检测的方法,其特征在于,在所述以所述镜像文件启动虚拟机的步骤之后,包括:
判断所述虚拟机是否启动成功;
若是,则执行所述根据修改后的密钥登录方式进行登录的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
16.根据权利要求11所述的镜像检测的方法,其特征在于,在所述判断已获取的安全协议侦听的端口信息是否被占用时,还包括:
判断虚拟机的网络连接状态;
若连接状态为已连接,则执行所述通过所述端口访问以所述镜像文件启动的虚拟机的步骤;
若连接状态为未连接,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
17.根据权利要求12所述的镜像检测的方法,其特征在于,在所述使用所述私钥登录以所述镜像文件启动的虚拟机的步骤之后,包括:
判断登录所述虚拟机是否成功;
若是,则执行所述对所述镜像文件进行内部检测的步骤;
若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
18.根据权利要求13-17任意一项所述的镜像检测的方法,其特征在于,所述对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息,包括:
将镜像文件作为虚拟块设备挂载到物理主机;
判断以所述镜像文件启动的虚拟机是否启动失败;
若启动失败,则判断所述镜像文件的配置是否正确;
若不正确,则记录所述镜像文件的配置的错误项;
若启动成功,则判断所述虚拟机的网络连接状态;
若连接状态为未连接,则检测所述虚拟机的网络配置信息;
记录所述虚拟机的网络配置信息的错误项。
19.一种镜像检测的装置,其特征在于,包括:
挂载单元,用于将镜像文件作为虚拟块设备挂载到物理主机;
登录方式修改单元,用于将所述镜像文件的登录方式修改为密钥登录;
登录单元,用于以所述镜像文件启动虚拟机,并根据修改后的密钥登录方式进行登录;
镜像检测单元,用于对所述镜像文件进行内部检测。
20.根据权利要求19所述的镜像检测的装置,其特征在于,所述挂载单元,包括:
块设备生成子单元,用于根据所述镜像文件生成虚拟块设备;
分区建立子单元,用于识别所述虚拟块设备中的分区信息,建立分区设备;
路径挂载子单元,用于将所述分区设备挂载到所述物理主机的挂载路径中。
21.根据权利要求20所述的镜像检测的装置,其特征在于,所述分区建立子单元,包括:
目录获取子单元,用于从所述虚拟块设备中获取分区目录;
分区设备建立子单元,用于根据所述分区目录,为所述虚拟块设备建立分区设备。
22.根据权利要求20所述的镜像检测的装置,其特征在于,所述挂载单元,还包括:
遍历子单元,用于在所述将所述分区设备挂载到所述物理主机的挂载路径中之后,遍历已挂载的所述分区设备;
地址获取子单元,用于从已挂载的所述分区设备中获取核心分区的地址。
23.根据权利要求22所述的镜像检测的装置,其特征在于,所述挂载单元,还包括:
发行版本获取单元,用于在所述将所述镜像文件的登录方式修改为密钥登录之前,解析所述核心分区,从所述核心分区中获取发行版本信息。
24.根据权利要求23所述的镜像检测的装置,其特征在于,所述登录方式修改单元,包括:
登录修改子单元,用于将安全协议的登录方式修改为密钥登录;
密钥注入子单元,用于注入修改后的登录方式使用的密钥。
25.根据权利要求24所述的镜像检测的装置,其特征在于,所述登录方式修改单元,还包括:
协议配置获取子单元,用于在所述将安全协议的登录方式修改为密钥登录之前,根据所述发行版本信息,获取所述安全协议的配置信息;
端口获取子单元,用于获取所述安全协议侦听的端口信息。
26.根据权利要求25所述的镜像检测的装置,其特征在于,所述登录方式修改单元,还包括:
网络配置修改子单元,用于在所述注入修改后的登录方式使用的密钥之后,将网络配置文件修改为动态主机配置协议。
27.根据权利要求26所述的镜像检测的装置,其特征在于,所述登录方式修改单元,还包括:
卸载子单元,用于在所述将网络配置修改为动态主机配置协议之后,在所述物理主机中将挂载路径卸载、取消所述虚拟块设备中的分区设备以及断开所述镜像文件与所述物理主机的连接。
28.根据权利要求27所述的镜像检测的装置,其特征在于,所述登录单元,包括:
端口判断子单元,用于在所述以所述镜像文件启动虚拟机之后,判断已获取的安全协议侦听的端口信息是否被占用;
虚拟机访问子单元,用于接收所述端口判断子单元的判断结果,若否,则通过所述端口访问以所述镜像文件启动的虚拟机。
29.根据权利要求28所述的镜像检测的装置,其特征在于,所述登录单元,还包括:
私钥获取子单元,用于从注入的所述密钥中获取与公钥相对应的私钥;
虚拟机登录子单元,用于使用所述私钥登录以所述镜像文件启动的虚拟机。
30.根据权利要求20所述的镜像检测的装置,其特征在于,所述挂载单元,还包括:
块设备判断子单元,用于在所述根据所述镜像文件生成虚拟块设备之后,判断所述虚拟块设备是否成功生成;
分区建立触发子单元,用于接收所述块设备判断子单元的判断结果,若是,则触发所述分区建立子单元;
镜像分析单元,用于接收所述块设备判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
31.根据权利要求20所述的镜像检测的装置,其特征在于,所述挂载单元,还包括:
分区判断子单元,用于在所述建立分区设备之后,判断所述分区设备是否成功建立;
路径挂载触发子单元,用于接收所述分区判断子单元的判断结果,若是,则触发所述路径挂载子单元;
镜像分析单元,用于接收所述分区判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
32.根据权利要求19所述的镜像检测的装置,其特征在于,所述登录单元,还包括:
启动判断子单元,用于在所述以所述镜像文件启动虚拟机之后,判断所述虚拟机是否启动成功;
虚拟机登录触发子单元,用于接收所述启动判断子单元的判断结果,若是,则触发所述虚拟机登录子单元;
镜像分析单元,用于接收所述启动判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
33.根据权利要求28所述的镜像检测的装置,其特征在于,所述登录单元,还包括:
网络连接判断子单元,用于在所述判断已获取的安全协议侦听的端口信息是否被占用时,判断虚拟机的网络连接状态
虚拟机访问触发子单元,用于接收所述网络连接判断子单元的判断结果,若连接状态为已连接,则触发所述虚拟机访问触发子单元;
镜像分析单元,用于接收所述网络连接判断子单元的判断结果,若连接状态为未连接,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
34.根据权利要求29所述的镜像检测的装置,其特征在于,所述登录单元,还包括:
登录判断子单元,用于在所述使用所述私钥登录以所述镜像文件启动的虚拟机之后,判断登录所述虚拟机是否成功;
镜像检测触发子单元,用于接收所述登录判断子单元的判断结果,若是,则触发所述镜像检测单元;
镜像分析单元,用于接收所述登录判断子单元的判断结果,若否,则对所述镜像文件进行分析处理操作,获取所述镜像文件的检测失败的信息。
35.根据权利要求30-34任意一项所述的镜像检测的装置,其特征在于,所述镜像分析单元,包括:
挂载触发子单元,用于触发所述挂载单元;
启动判断子单元,用于判断以所述镜像文件启动的虚拟机是否启动失败;
镜像配置子单元,用于接收所述启动判断子单元的判断结果,若启动失败,则判断所述镜像文件的配置是否正确;
配置记录子单元,用于接收所述镜像配置子单元的判断结果,若不正确,则记录所述镜像文件的配置的错误项;
连接状态判断子单元,用于接收所述启动判断子单元的判断结果,若启动成功,则判断所述虚拟机的网络连接状态;
网络配置检测子单元,用于接收所述连接状态判断子单元的判断结果,若连接状态为未连接,则检测所述虚拟机的网络配置信息;
网络配置记录子单元,用于记录所述虚拟机的网络配置信息的错误项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610410943.0A CN107493204B (zh) | 2016-06-13 | 2016-06-13 | 一种镜像检测的方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610410943.0A CN107493204B (zh) | 2016-06-13 | 2016-06-13 | 一种镜像检测的方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107493204A true CN107493204A (zh) | 2017-12-19 |
CN107493204B CN107493204B (zh) | 2021-03-02 |
Family
ID=60642362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610410943.0A Active CN107493204B (zh) | 2016-06-13 | 2016-06-13 | 一种镜像检测的方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107493204B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460187A (zh) * | 2018-11-09 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种qcow2文件数据一致性验证方法及验证终端 |
CN110321172A (zh) * | 2019-06-03 | 2019-10-11 | 平安科技(深圳)有限公司 | 网络块设备的分区识别方法、装置、设备和存储介质 |
CN111741068A (zh) * | 2020-05-20 | 2020-10-02 | 中国电子科技网络信息安全有限公司 | 一种虚拟机镜像链密钥模型及其数据加密密钥传输方法 |
CN113296888A (zh) * | 2021-04-27 | 2021-08-24 | 优刻得科技股份有限公司 | 一种镜像处理方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217811A (zh) * | 2008-01-17 | 2008-07-09 | 西安西电捷通无线网络通信有限公司 | 一种宽带无线多媒体网络广播通信的安全传输方法 |
US20090110291A1 (en) * | 2007-10-30 | 2009-04-30 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
CN102402446A (zh) * | 2011-11-22 | 2012-04-04 | 成都市华为赛门铁克科技有限公司 | 应用软件的安装方法和应用软件的安装装置 |
CN103226493A (zh) * | 2013-05-15 | 2013-07-31 | 百度在线网络技术(北京)有限公司 | 多操作系统业务的部署方法和系统 |
CN103493008A (zh) * | 2011-04-07 | 2014-01-01 | 微软公司 | 镜像分析工具 |
CN103856343A (zh) * | 2012-12-05 | 2014-06-11 | 北京华胜天成科技股份有限公司 | 配置虚拟机网络信息的方法及系统 |
CN104182257A (zh) * | 2011-11-22 | 2014-12-03 | 华为数字技术(成都)有限公司 | 应用软件的安装方法和应用软件的安装装置 |
-
2016
- 2016-06-13 CN CN201610410943.0A patent/CN107493204B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090110291A1 (en) * | 2007-10-30 | 2009-04-30 | Canon Kabushiki Kaisha | Image processing apparatus and image processing method |
CN101217811A (zh) * | 2008-01-17 | 2008-07-09 | 西安西电捷通无线网络通信有限公司 | 一种宽带无线多媒体网络广播通信的安全传输方法 |
CN103493008A (zh) * | 2011-04-07 | 2014-01-01 | 微软公司 | 镜像分析工具 |
CN102402446A (zh) * | 2011-11-22 | 2012-04-04 | 成都市华为赛门铁克科技有限公司 | 应用软件的安装方法和应用软件的安装装置 |
CN104182257A (zh) * | 2011-11-22 | 2014-12-03 | 华为数字技术(成都)有限公司 | 应用软件的安装方法和应用软件的安装装置 |
CN103856343A (zh) * | 2012-12-05 | 2014-06-11 | 北京华胜天成科技股份有限公司 | 配置虚拟机网络信息的方法及系统 |
CN103226493A (zh) * | 2013-05-15 | 2013-07-31 | 百度在线网络技术(北京)有限公司 | 多操作系统业务的部署方法和系统 |
Non-Patent Citations (2)
Title |
---|
何艳丽等: ""基于快照的虚拟磁盘镜像检查点系统"", 《武汉大学学报》 * |
许艳军等: ""集中虚拟机镜像格式及其性能测评"", 《计算机应用》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109460187A (zh) * | 2018-11-09 | 2019-03-12 | 郑州云海信息技术有限公司 | 一种qcow2文件数据一致性验证方法及验证终端 |
CN109460187B (zh) * | 2018-11-09 | 2022-05-03 | 郑州云海信息技术有限公司 | 一种qcow2文件数据一致性验证方法及验证终端 |
CN110321172A (zh) * | 2019-06-03 | 2019-10-11 | 平安科技(深圳)有限公司 | 网络块设备的分区识别方法、装置、设备和存储介质 |
CN111741068A (zh) * | 2020-05-20 | 2020-10-02 | 中国电子科技网络信息安全有限公司 | 一种虚拟机镜像链密钥模型及其数据加密密钥传输方法 |
CN111741068B (zh) * | 2020-05-20 | 2022-03-18 | 中国电子科技网络信息安全有限公司 | 一种数据加密密钥传输方法 |
CN113296888A (zh) * | 2021-04-27 | 2021-08-24 | 优刻得科技股份有限公司 | 一种镜像处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107493204B (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10318285B1 (en) | Deployment of infrastructure in pipelines | |
US8938523B2 (en) | System and method for deploying and maintaining software applications | |
CN111428208B (zh) | 一种应用软件授权方法、装置及存储介质 | |
CN112840321A (zh) | 用于自动化操作管理的应用程序编程接口 | |
CN105354493B (zh) | 基于虚拟化技术的终端可信增强方法及系统 | |
CN110661831B (zh) | 一种基于可信第三方的大数据试验场安全初始化方法 | |
US20130247136A1 (en) | Automated Validation of Configuration and Compliance in Cloud Servers | |
KR20200052957A (ko) | 보안 제어 방법 및 컴퓨터 시스템 | |
US7971238B2 (en) | Two-factor authentication of a remote administrator | |
CN107493204A (zh) | 一种镜像检测的方法以及装置 | |
KR20130126251A (ko) | 웹 서비스 모니터링 시스템 및 방법 | |
CN106656927A (zh) | 将Linux账号加入AD域的方法及装置 | |
CN104702624A (zh) | 基于CloudStack平台虚拟机登录方法及系统 | |
CN103975567B (zh) | 双因素认证方法及虚拟机设备 | |
CN111414612A (zh) | 操作系统镜像的安全保护方法、装置及电子设备 | |
US11531763B1 (en) | Automated code generation using analysis of design diagrams | |
US9389991B1 (en) | Methods, systems, and computer readable mediums for generating instruction data to update components in a converged infrastructure system | |
CN105120010B (zh) | 一种云环境下虚拟机防窃取方法 | |
Kumari et al. | Validation of redfish: the scalable platform management standard | |
CN115774742A (zh) | 私有云的数据存储新增方法、装置、设备、介质及产品 | |
US10439954B1 (en) | Virtual-enterprise cloud computing system | |
US9178867B1 (en) | Interacting with restricted environments | |
US10572805B2 (en) | Service modeling and execution | |
CN113377666A (zh) | 基于云端服务器的测试方法、系统、客户端及云端服务器 | |
CN114598500B (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 |