首页> 中国专利> 批量ISO创建CephX认证虚拟机的实现方法及装置

批量ISO创建CephX认证虚拟机的实现方法及装置

摘要

本申请实施例公开了一种批量ISO创建CephX认证虚拟机的实现方法及装置;所述方法包括:通过预设唯一约束的映像缓存记录表和映像缓存映射记录表,通过映像缓存记录表进行映像缓存并保存记录,发起映像分发请求,根据预设的映像分发规则,进行映像分发缓存;通过映像缓存映射记录表进行映像缓存映射并保存记录,发起映像缓存映射请求,根据预设的映像缓存映射规则,进行映像缓存映射;本申请实施例解决使用CephX认证时不支持光盘热插拔的问题,同时实现同一个ISO和节点上可以并发执行,达到批量执行的效果。

著录项

  • 公开/公告号CN112631732A

    专利类型发明专利

  • 公开/公告日2021-04-09

    原文格式PDF

  • 申请/专利权人 国云科技股份有限公司;

    申请/专利号CN202011626993.5

  • 发明设计人 邓玉芳;季统凯;贺忠堂;

    申请日2020-12-30

  • 分类号G06F9/455(20060101);

  • 代理机构11884 北京泽方誉航专利代理事务所(普通合伙);

  • 代理人陈照辉

  • 地址 523808 广东省东莞市松山湖高新技术产业开发区科汇路1号中科院云计算中心19楼

  • 入库时间 2023-06-19 10:32:14

说明书

技术领域

本申请实施例涉及虚拟机管理技术领域,尤其涉及一种批量ISO创建CephX认证虚拟机的实现方法及装置。

背景技术

RBD块存储是Ceph提供的3种存储类型中使用最广泛,最稳定的存储类型。RBD块类似于磁盘,可以挂载到物理机或虚拟机中。Ceph提供了两种身份认证方式:None和CephX;None表示客户端不需要通过密钥访问即可访问Ceph存储集群,显然这种方式是不被推荐的;CephX的本质是一种对称加密协议,加密算法为AES,用于识别用户的身份、对用户在客户端上的操作进行认证,以此防止中间人攻击、数据篡改等网络安全问题。

为了支持批量创建,很多云平台会提供镜像分发功能以预先把镜像缓存分发到节点的操作;但带CephX认证的RBDiso目前不支持热插拔,也即带CephX认证时无法进行在线挂载卸载光盘;为了实现批量iso创建虚拟机,大多平台都是通过提供映像分发功能,在批量创建前,先进行映像分发,这无疑增加了云平台操作的不便性。

发明内容

本申请实施例提供一种批量ISO创建CephX认证虚拟机的实现方法及装置,以解决现有技术中在使用CephX认证时不支持光盘热插拔和在没有映像缓存的情况下不能批量ISO创建虚拟机的问题。

在第一方面,本申请实施例提供了一种批量ISO创建CephX认证虚拟机的实现方法,包括:

预设唯一约束的映像缓存记录表和映像缓存映射记录表,所述映像缓存记录表用于记录目标节点中的映像缓存,所述映像缓存映射记录表用于记录目标节点中的映像缓存映射;

通过所述映像缓存记录表判断目标节点是否已经存在映像缓存;

根据映像缓存的判断结果保存记录并向镜像节点组件发起映像分发请求;

所述镜像节点组件收到映像分发请求后,根据预设的映像分发规则,进行映像分发缓存;

通过所述映像缓存映射记录表判断目标节点是否已经存在映像缓存映射;

根据映像缓存映射的判断结果保存记录并向计算节点组件发起映像缓存映射请求;

所述计算节点组件收到映像缓存映射请求后,根据预设的映像缓存映射规则,进行映像缓存映射。

进一步的,所述根据映像缓存的判断结果保存记录并向镜像节点组件发起映像分发请求,包括:

若存在映像缓存,且分发状态为活跃状态,则在映像缓存记录表中保存映像缓存记录;

若保存映像缓存记录成功,则设置分发操作的标记为第一标记,并向镜像节点组件发起映像分发请求;

若保存映像缓存记录失败,则设置分发操作的标记为第二标记,并向镜像节点组件发起映像分发请求;

若不存在映像缓存,则重新通过所述映像缓存记录表判断目标节点是否已经存在映像缓存。

进一步的,所述镜像节点组件收到映像分发请求后,根据预设的映像分发规则,进行映像分发缓存,包括:

所述镜像节点组件收到映像分发请求后,判断分发操作的标记,若分发操作的标记为第一标记,则进行映像分发缓存;

若分发操作的标记为第二标记,则进行循环检测,通过控制节点调用分发状态的同步消息,直到分发状态为活跃状态则反馈给控制节点映像缓存分发成功;

当循环检测时间超过预设门限值,则反馈映像缓存分发失败状态给控制节点,进入回滚状态。

进一步的,所述根据映像缓存映射的判断结果保存记录并向计算节点组件发起映像缓存映射请求,包括:

若存在映像缓存映射,且映射状态为活跃状态,则在映像缓存映射记录表中保存映像缓存映射记录;

若保存映像缓存映射记录成功,则设置映射操作的标记为第三标记,并向计算节点组件发起映像缓存映射请求;

若保存映像缓存映射记录失败,则设置映射操作的标记为第四标记,并向计算节点组件发起映像缓存映射请求;

若不存在映像缓存映射,则重新通过所述映像缓存映射记录表判断目标节点是否已经存在映像缓存映射。

进一步的,所述计算节点组件收到映像缓存映射请求后,根据预设的映像缓存映射规则,进行映像缓存映射,包括:

所述计算节点组件收到映像缓存映射请求后,判断映射操作的标记,若映射操作的标记为第三标记,则进行映像缓存映射;

若映射操作的标记为第四标记,则进行循环检测,通过控制节点调用映射状态,直到映射状态为活跃状态时则反馈给控制节点映像缓存映射成功;

当循环检测时间超过预设门限值,则反馈映像缓存映射失败状态给控制节点,进入回滚状态。

进一步的,所述映像缓存记录表包括第一ID、第一映像ID、存储目标、存储类型、分发状态和资源类型六个字段;所述第一ID为唯一约束字段,所述第一ID由所述第一映像ID、所述存储目标、所述存储类型和所述资源类型四个字段的值组合而成;

所述映像缓存映射记录表包括第二ID、第二映像ID、节点名、存储池名、映射路径和映射状态六个字段;所述第二ID为唯一约束字段,所述第二ID由映像ID、节点名、存储池名三个字段的值组合而成。

进一步的,所述进行映像缓存映射,包括:

通过RBD块的map命令将RBD块设备映射到虚拟机操作系统。

进一步的,所述计算节点组件收到映像缓存映射请求后,根据预设的映像缓存映射规则,进行映像缓存映射之后,还包括:

通过映射ISO缓存的设备路径来修改虚拟机的配置文件。

在第二方面,本申请实施例提供了一种批量ISO创建CephX认证虚拟机的实现装置,包括:

记录表预设模块,用于预设唯一约束的映像缓存记录表和映像缓存映射记录表,所述映像缓存记录表用于记录目标节点中的映像缓存,所述映像缓存映射记录表用于记录目标节点中的映像缓存映射;

映像缓存判断模块,用于通过所述映像缓存记录表判断目标节点是否已经存在映像缓存;

分发请求发送模块,用于根据映像缓存的判断结果保存记录并向镜像节点组件发起映像分发请求;

分发缓存执行模块,用于所述镜像节点组件收到映像分发请求后,根据预设的映像分发规则,进行映像分发缓存;

映像缓存映射判断模块,用于通过所述映像缓存映射记录表判断目标节点是否已经存在映像缓存映射;

映射请求发送模块,用于根据映像缓存映射的判断结果保存记录并向计算节点组件发起映像缓存映射请求;

映像缓存映射执行模块,用于所述计算节点组件收到映像缓存映射请求后,根据预设的映像缓存映射规则,进行映像缓存映射。

进一步的,所述分发请求发送模块包括:缓存记录保存单元、第一标记设置模块、第二标记设置模块和映像缓存节点判断单元;

所述缓存记录保存单元用于实现若存在映像缓存,且分发状态为活跃状态,则在映像缓存记录表中保存映像缓存记录;所述第一标记设置模块用于实现若保存映像缓存记录成功,则设置分发操作的标记为第一标记,并向镜像节点组件发起映像分发请求;所述第二标记设置模块用于实现若保存映像缓存记录失败,则设置分发操作的标记为第二标记,并向镜像节点组件发起映像分发请求;所述映像缓存节点判断单元用于实现若不存在映像缓存,则重新通过所述映像缓存记录表判断目标节点是否已经存在映像缓存。

进一步的,所述分发缓存执行模块包括:分发缓存执行单元、分发循环检测单元和分发回滚状态单元;

所述分发缓存执行单元用于实现所述镜像节点组件收到映像分发请求后,判断分发操作的标记,若分发操作的标记为第一标记,则进行映像分发缓存;所述分发循环检测单元用于实现若分发操作的标记为第二标记,则进行循环检测,通过控制节点调用分发状态的同步消息,直到分发状态为活跃状态则反馈给控制节点映像缓存分发成功;所述分发回滚状态单元用于实现当循环检测时间超过预设门限值,则反馈映像缓存分发失败状态给控制节点,进入回滚状态。

进一步的,所述映射请求发送模块包括:映射缓存记录保存单元、第三标记设置模块、第四标记设置模块和缓存映射节点判断单元;

所述映射缓存记录保存单元用于实现若存在映像缓存映射,且映射状态为活跃状态,则在映像缓存映射记录表中保存映像缓存映射记录;所述第三标记设置模块用于实现若保存映像缓存映射记录成功,则设置映射操作的标记为第三标记,并向计算节点组件发起映像缓存映射请求;所述第四标记设置模块用于实现若保存映像缓存映射记录失败,则设置映射操作的标记为第四标记,并向计算节点组件发起映像缓存映射请求;所述缓存映射节点判断单元用于实现若不存在映像缓存映射,则重新通过所述映像缓存映射记录表判断目标节点是否已经存在映像缓存映射。

进一步的,所述映像缓存映射执行模块包括:缓存映射执行单元、映射循环检测单元和映射回滚状态单元;

所述缓存映射执行单元用于所述计算节点组件收到映像缓存映射请求后,判断映射操作的标记,若映射操作的标记为第三标记,则进行映像缓存映射;

所述映射循环检测单元用于若映射操作的标记为第四标记,则进行循环检测,通过控制节点调用映射状态,直到映射状态为活跃状态时则反馈给控制节点映像缓存映射成功;

所述映射回滚状态单元用于当循环检测时间超过预设门限值,则反馈映像缓存映射失败状态给控制节点,进入回滚状态。

进一步的,所述映像缓存映射执行模块还用于通过RBD块的map命令将RBD块设备映射到虚拟机操作系统。

进一步的,还包括:虚拟机光盘配置模块,所述虚拟机光盘配置模块用于通过映射ISO缓存的设备路径来修改虚拟机的配置文件。

在第三方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的批量ISO创建CephX认证虚拟机的实现方法。

本申请实施例通过预设唯一约束的映像缓存记录表和映像缓存映射记录表,通过映像缓存记录表进行映像缓存并保存记录,发起映像分发请求,根据预设的映像分发规则,进行映像分发缓存;通过映像缓存映射记录表进行映像缓存映射并保存记录,发起映像缓存映射请求,根据预设的映像缓存映射规则,进行映像缓存映射,解决使用CephX认证时不支持光盘热插拔的问题,同时实现同一个ISO和节点上可以并发执行,达到批量执行的效果。

附图说明

图1是本申请实施例提供的一种批量ISO创建CephX认证虚拟机的实现方法的流程图;

图2是本申请实施例提供的另一种批量ISO创建CephX认证虚拟机的实现方法的流程图;

图3是本申请实施例提供的另一种批量ISO创建CephX认证虚拟机的实现方法的流程图;

图4是本申请实施例提供的另一种批量ISO创建CephX认证虚拟机的实现方法的流程图;

图5是本申请实施例提供的另一种批量ISO创建CephX认证虚拟机的实现方法的流程图;

图6是本申请实施例提供的一种批量ISO创建CephX认证虚拟机的实现装置的流程图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

本申请提供的批量ISO创建CephX认证虚拟机的实现的方法通过预设唯一约束的映像缓存记录表和映像缓存映射记录表,通过映像缓存记录表进行映像缓存并保存记录,发起映像分发请求,根据预设的映像分发规则,进行映像分发缓存;通过映像缓存映射记录表进行映像缓存映射并保存记录,发起映像缓存映射请求,根据预设的映像缓存映射规则,进行映像缓存映射,解决使用CephX认证时不支持光盘热插拔的问题,同时实现同一个ISO和节点上可以并发执行,达到批量执行的效果。

RBD块存储是Ceph提供的3种存储类型中使用最广泛,最稳定的存储类型。RBD块类似于磁盘,可以挂载到物理机或虚拟机中。Ceph提供了两种身份认证方式:None和CephX;None表示客户端不需要通过密钥访问即可访问Ceph存储集群,显然这种方式是不被推荐的;CephX的本质是一种对称加密协议,加密算法为AES,用于识别用户的身份、对用户在客户端上的操作进行认证,以此防止中间人攻击、数据篡改等网络安全问题。为了支持批量创建,很多云平台会提供镜像分发功能以预先把镜像缓存分发到节点的操作。但带CephX认证的RBDiso目前不支持热插拔,也即带CephX认证时无法进行在线挂载卸载光盘;为了实现批量iso创建虚拟机,大多平台都是通过提供映像分发功能,在批量创建前,先进行映像分发,这无疑增加了云平台操作的不便性。

具体的,创建虚拟机任务流模板中会有很多步骤,如创建虚拟机初始化步骤、检测虚拟机创建节点环境步骤、创建系统盘步骤、挂载系统盘步骤、创建挂载数据盘任务流步骤、创建挂载网卡任务流步骤、虚拟机开机步骤、虚拟机修改密码步骤和虚拟机重命名步骤等。

本申请实施例通过在创建挂载网卡任务流步骤后面添加挂载ISO任务流步骤,来避免现有在使用CephX认证时不支持光盘热插拔和在没有映像缓存的情况下不能批量ISO创建虚拟机的问题。

其中,挂载ISO任务流步骤是一个嵌套的子任务流,该任务流包括挂载ISO初始化步骤、检测与分发映像缓存步骤、检测与映射ISO缓存步骤、修改虚拟机光盘配置步骤以及挂载光盘完成步骤。

示例性的,挂载ISO初始化步骤:一般是做一些挂载ISO前的操作,如把虚拟机的任务状态改为正在挂载光盘等,以防止其他人对虚拟机进行其他操作。

具体的,在挂载ISO任务流模板中添加检测与分发映像缓存步骤,该步骤对于同一个ISO和节点上可以并发执行,达到批量执行的效果;具体的,在挂载ISO任务流模板中添加检测与映射ISO缓存步骤,通过RBD块的map命令将RBD块设备映射到操作系统的方式解决使用CephX认证时不支持光盘热插拔的问题,同时对同一个ISO和节点上同样可以并发执行,达到批量执行的效果。

图1为本申请实施例提供的一种批量ISO创建CephX认证虚拟机的实现方法的流程图。参考图1,该批量ISO创建CephX认证虚拟机的实现方法具体包括:

步骤110、预设唯一约束的映像缓存记录表和映像缓存映射记录表,所述映像缓存记录表用于记录目标节点中的映像缓存,所述映像缓存映射记录表用于记录目标节点中的映像缓存映射。

具体的,设置一个唯一约束的映像缓存记录表,所述映像缓存记录表包括第一ID、第一映像ID、存储目标、存储类型、分发状态和资源类型六个字段;所述第一ID为唯一约束字段,所述第一ID由所述第一映像ID、所述存储目标、所述存储类型和所述资源类型四个字段的值组合而成。

示例性的,存储目标是指缓存存储的目标位置,可选的,一般为存储池名称;存储类型包括node、vg和RBD;分发状态包括downloading、deleting和active;资源类型包括ISO和image。

具体的,设置一个唯一约束的映像缓存映射记录表,所述映像缓存映射记录表包括第二ID、第二映像ID、节点名、存储池名、映射路径和映射状态六个字段;所述第二ID为唯一约束字段,所述第二ID由映像ID、节点名、存储池名三个字段的值组合而成。

示例性的,映射状态包括mapping和active;资源类型包括ISO和image。

步骤120、通过所述映像缓存记录表判断目标节点是否已经存在映像缓存。

可以理解的是,系统先通过映像缓存记录表判断目标节点上是否已经存在映像缓存,根据是否存在映像缓存来执行接下来的步骤。

步骤130、根据映像缓存的判断结果保存记录并向镜像节点组件发起映像分发请求。

请参照图2,步骤130具体可以通过步骤1301-1304实现。

步骤1301、若存在映像缓存,且分发状态为活跃状态,则在映像缓存记录表中保存映像缓存记录。

具体的,若通过映像缓存记录表判断得到目标节点上存在映像缓存,判断此时的分发状态,若此时的分发状态为活跃(active)状态时,则尝试在映像缓存记录表中保存映像缓存记录。

步骤1302、若保存映像缓存记录成功,则设置分发操作的标记为第一标记,并向镜像节点组件发起映像分发请求。

具体的,若在映像缓存记录表中保存映像缓存记录成功,因为第一ID由第一映像ID、存储目标、存储类型和资源类型四个字段的值组合而成,并且唯一约束,如果保存映像缓存记录成功,表明此映像在目标节点上并没有缓存,也没有其它正在分发此映像到目标节点上的任务存在,此时给分发操作设置一个标记,记为第一标记,可选的,第一标记记为distribute,并向镜像节点组件发起映像分发请求;可以理解的是,镜像节点组件用于实现映像分发缓存。

步骤1303、若保存映像缓存记录失败,则设置分发操作的标记为第二标记,并向镜像节点组件发起映像分发请求。

若在映像缓存记录表中保存映像缓存记录失败,表明有其它操作正在分发此映像到目标节点,此时给分发操作设置一个标记,记为第二标记,可选的,第二标记记为check,并向镜像节点组件发起映像分发请求。

步骤1304、若不存在映像缓存,则重新通过所述映像缓存记录表判断目标节点是否已经存在映像缓存。

其中,若通过映像缓存记录表判断得到目标节点上不存在映像缓存,则重新通过所述映像缓存记录表判断目标节点是否已经存在映像缓存。

示例性的,在虚拟机的批量创建的时候,第一台虚拟机的流程步骤会分发映像,其他台虚拟机会一直检测映像的状态,检测映像是否已经分发完成,检测到完成就进入下一步;即虚拟机的创建是并行创建的。

步骤140、所述镜像节点组件收到映像分发请求后,根据预设的映像分发规则,进行映像分发缓存。

请参照图3,步骤140具体可以通过步骤1401-1403实现。

步骤1401、所述镜像节点组件收到映像分发请求后,判断分发操作的标记,若分发操作的标记为第一标记,则进行映像分发缓存。

具体的,镜像节点组件收到映像分发请求后,判断分发操作的标记,若分发操作的标记为第一标记,则为distribute时,进行正常的映像分发操作;可选的,映像分发操作为:本地存储映像分发到指定节点上;分布式存储分发到分布式存储;集中存储分发到集中存储的vg上(跟虚拟机所在vg一致)。

步骤1402、若分发操作的标记为第二标记,则进行循环检测,通过控制节点调用分发状态的同步消息,直到分发状态为活跃状态则反馈给控制节点映像缓存分发成功.

可选的,若分发操作的标记为第二标记,则为check时,则进行循环检测,向控制节点调用获取映像缓存分发状态的同步消息,直到映像缓存分发状态为活跃(active)状态时则反馈给控制节点映像缓存分发成功,让挂载ISO流程继续执行下一个步骤。

步骤1403、当循环检测时间超过预设门限值,则反馈映像缓存分发失败状态给控制节点,进入回滚状态。

可以理解的是,如果循环检测超时,即当循环检测时间超过预设门限值,说明映像缓存未能分发成功,则反馈给控制节点映像缓存分发失败状态消息,挂载ISO流程将进入回滚状态,即执行前面步骤的回滚操作;可以理解的是,循环检测的预设门限值的具体值可以根据需求进行设置,本申请实施例对具体的值不作限定。

步骤150、通过所述映像缓存映射记录表判断目标节点是否已经存在映像缓存映射。

可以理解的是,系统先通过映像缓存映射记录表判断目标节点上是否已经存在映像缓存映射,根据是否存在映像缓存映射来执行接下来的步骤。

步骤160、根据映像缓存映射的判断结果保存映像缓存映射记录并向计算节点组件发起映像缓存映射请求。

请参照图4,步骤160具体可以通过步骤1601-1604实现。

步骤1601、若存在映像缓存映射,且映射状态为活跃状态,则在映像缓存映射记录表中保存映像缓存映射记录。

具体的,若通过映像缓存映射记录表判断得到目标节点上存在映像缓存映射,判断此时的映射状态,若此时的映射状态为活跃(active)状态时,则尝试在映像缓存映射表中保存映像缓存映射记录。

步骤1602、若保存映像缓存映射记录成功,则设置映射操作的标记为第三标记,并向计算节点组件发起映像缓存映射请求;

具体的,若在映像缓存映射记录表中保存映像缓存映射记录成功,因为第二ID由第二映像ID、节点名和存储池名三个字段的值组合而成,并且唯一约束,如果保存映像缓存映射记录成功,表明此映像在目标节点上并没有缓存映射,也没有其它正在映射此映像到目标节点上的任务存在,此时给映射操作设置一个标记,记为第三标记,可选的,第三标记记为map,并向计算节点组件发起映像缓存映射请求;可以理解的是,计算节点组件用于实现映像缓存映射。

步骤1603、若保存映像缓存映射记录失败,则设置映射操作的标记为第四标记,并向计算节点组件发起映像缓存映射请求;

若在映像缓存映射记录表中保存映像缓存映射记录失败,表明有其它操作正在分发此映像缓存到目标节点,此时给映射操作设置一个标记,记为第四标记,可选的,第二标记记为check,并向计算节点组件发起映像缓存映射请求。

步骤1604、若不存在映像缓存映射,则重新通过所述映像缓存映射记录表判断目标节点是否已经存在映像缓存映射。

其中,若通过映像缓存映射记录表判断得到目标节点上不存在映像缓存映射,则重新通过所述映像缓存映射记录表判断目标节点是否已经存在映像缓存映射。

步骤170、所述计算节点组件收到映像缓存映射请求后,根据预设的映像缓存映射规则,进行映像缓存映射。

请参照图5,步骤170具体可以通过步骤1701-1703实现。

步骤1701、所述计算节点组件收到映像缓存映射请求后,判断映射操作的标记,若映射操作的标记为第三标记,则进行映像缓存映射;

具体的,计算节点组件收到映像缓存映射请求后,判断映射操作的标记,若映射操作的标记为第三标记,则为map时,进行正常的映像缓存映射操作;可选的,映像缓存映射操作为:通过RBD块的map命令将RBD块设备映射到虚拟机操作系统。

步骤1702、若映射操作的标记为第四标记,则进行循环检测,通过控制节点调用映射状态,直到映射状态为活跃状态时则反馈给控制节点映像缓存映射成功;

可选的,若映射操作的标记为第四标记,则为check时,则进行循环检测,向控制节点调用获取映像缓存映射状态的同步消息,直到映像缓存映射状态为活跃(active)状态时则反馈给控制节点映像缓存映射成功,让挂载ISO流程继续执行下一个步骤。

步骤1703、当循环检测时间超过预设门限值,则反馈映像缓存映射失败状态给控制节点,进入回滚状态。

可以理解的是,如果循环检测超时,即当循环检测时间超过预设门限值,说明映像缓存未能映射成功,则反馈给控制节点映像缓存映射失败状态消息,挂载ISO流程将进入回滚状态,即执行前面步骤的回滚操作。

在上述实施例的基础上,批量ISO创建CephX认证虚拟机的实现方法还可以具体化为:所述计算节点组件收到映像缓存映射请求后,根据预设的映像缓存映射规则,进行映像缓存映射之后,还包括:

通过映射ISO缓存的设备路径来修改虚拟机的配置文件。

示例性的,将相关挂载配置写进虚拟机的配置文件里,重启虚拟机一遍之后光盘依然挂载在虚拟机上。

以上步骤并不是严格按照编号描述的顺序依次执行,其应作为一个整体方案进行理解。

在上述实施例的基础上,图6为本申请实施例提供的一种批量ISO创建CephX认证虚拟机的实现装置的结构示意图。参考图6,本实施例提供的图像处理装置具体包括:记录表预设模块301、映像缓存判断模块302、分发请求发送模块303、分发缓存执行模块304、映像缓存映射判断模块305、映射请求发送模块306和映像缓存映射执行模块307。

其中,记录表预设模块301用于预设唯一约束的映像缓存记录表和映像缓存映射记录表,所述映像缓存记录表用于记录目标节点中的映像缓存,所述映像缓存映射记录表用于记录目标节点中的映像缓存映射;映像缓存判断模块302用于通过所述映像缓存记录表判断目标节点是否已经存在映像缓存;分发请求发送模块303用于根据映像缓存的判断结果保存记录并向镜像节点组件发起映像分发请求;分发缓存执行模块304用于所述镜像节点组件收到映像分发请求后,根据预设的映像分发规则,进行映像分发缓存;映像缓存映射判断模块305用于通过所述映像缓存映射记录表判断目标节点是否已经存在映像缓存映射;映射请求发送模块306用于根据映像缓存映射的判断结果保存记录并向计算节点组件发起映像缓存映射请求;映像缓存映射执行模块307用于所述计算节点组件收到映像缓存映射请求后,根据预设的映像缓存映射规则,进行映像缓存映射。

进一步的,所述分发请求发送模块303包括:缓存记录保存单元、第一标记设置模块、第二标记设置模块和映像缓存节点判断单元;

所述缓存记录保存单元用于实现若存在映像缓存,且分发状态为活跃状态,则在映像缓存记录表中保存映像缓存记录;所述第一标记设置模块用于实现若保存映像缓存记录成功,则设置分发操作的标记为第一标记,并向镜像节点组件发起映像分发请求;所述第二标记设置模块用于实现若保存映像缓存记录失败,则设置分发操作的标记为第二标记,并向镜像节点组件发起映像分发请求;所述映像缓存节点判断单元用于实现若不存在映像缓存,则重新通过所述映像缓存记录表判断目标节点是否已经存在映像缓存。

进一步的,所述分发缓存执行模块304包括:分发缓存执行单元、分发循环检测单元和分发回滚状态单元;

所述分发缓存执行单元用于实现所述镜像节点组件收到映像分发请求后,判断分发操作的标记,若分发操作的标记为第一标记,则进行映像分发缓存;所述分发循环检测单元用于实现若分发操作的标记为第二标记,则进行循环检测,通过控制节点调用分发状态的同步消息,直到分发状态为活跃状态则反馈给控制节点映像缓存分发成功;所述分发回滚状态单元用于实现当循环检测时间超过预设门限值,则反馈映像缓存分发失败状态给控制节点,进入回滚状态。

进一步的,所述映射请求发送模块306包括:映射缓存记录保存单元、第三标记设置模块、第四标记设置模块和缓存映射节点判断单元;

所述映射缓存记录保存单元用于实现若存在映像缓存映射,且映射状态为活跃状态,则在映像缓存映射记录表中保存映像缓存映射记录;所述第三标记设置模块用于实现若保存映像缓存映射记录成功,则设置映射操作的标记为第三标记,并向计算节点组件发起映像缓存映射请求;所述第四标记设置模块用于实现若保存映像缓存映射记录失败,则设置映射操作的标记为第四标记,并向计算节点组件发起映像缓存映射请求;所述缓存映射节点判断单元用于实现若不存在映像缓存映射,则重新通过所述映像缓存映射记录表判断目标节点是否已经存在映像缓存映射。

进一步的,所述映像缓存映射执行模块307包括:缓存映射执行单元、映射循环检测单元和映射回滚状态单元;

所述缓存映射执行单元用于所述计算节点组件收到映像缓存映射请求后,判断映射操作的标记,若映射操作的标记为第三标记,则进行映像缓存映射;

所述映射循环检测单元用于若映射操作的标记为第四标记,则进行循环检测,通过控制节点调用映射状态,直到映射状态为活跃状态时则反馈给控制节点映像缓存映射成功;

所述映射回滚状态单元用于当循环检测时间超过预设门限值,则反馈映像缓存映射失败状态给控制节点,进入回滚状态。

进一步的,所述映像缓存映射执行模块307还用于通过RBD块的map命令将RBD块设备映射到虚拟机操作系统。

进一步的,还包括:虚拟机光盘配置模块,所述虚拟机光盘配置模块用于通过映射ISO缓存的设备路径来修改虚拟机的配置文件。

本申请实施例提供的批量ISO创建CephX认证虚拟机的实现装置可以用于执行上述实施例提供的批量ISO创建CephX认证虚拟机的实现方法,具备相应的功能和有益效果。

上述,通过预设唯一约束的映像缓存记录表和映像缓存映射记录表,通过映像缓存记录表进行映像缓存并保存记录,发起映像分发请求,根据预设的映像分发规则,进行映像分发缓存;通过映像缓存映射记录表进行映像缓存映射并保存记录,发起映像缓存映射请求,根据预设的映像缓存映射规则,进行映像缓存映射,解决使用CephX认证时不支持光盘热插拔的问题,同时实现同一个ISO和节点上可以并发执行,达到批量执行的效果。

本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种批量ISO创建CephX认证虚拟机的实现方法,该批量ISO创建CephX认证虚拟机的实现方法包括:预设唯一约束的映像缓存记录表和映像缓存映射记录表,所述映像缓存记录表用于记录目标节点中的映像缓存,所述映像缓存映射记录表用于记录目标节点中的映像缓存映射;通过所述映像缓存记录表判断目标节点是否已经存在映像缓存;根据映像缓存的判断结果保存记录并向镜像节点组件发起映像分发请求;所述镜像节点组件收到映像分发请求后,根据预设的映像分发规则,进行映像分发缓存;通过所述映像缓存映射记录表判断目标节点是否已经存在映像缓存映射;根据映像缓存映射的判断结果保存记录并向计算节点组件发起映像缓存映射请求;所述计算节点组件收到映像缓存映射请求后,根据预设的映像缓存映射规则,进行映像缓存映射。

存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDRRAM、SRAM、EDORAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。

当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的批量ISO创建CephX认证虚拟机的实现方法,还可以执行本申请任意实施例所提供的批量ISO创建CephX认证虚拟机的实现方法中的相关操作。

上述实施例中提供的批量ISO创建CephX认证虚拟机的实现装置、存储介质及计算机设备可执行本申请任意实施例所提供的批量ISO创建CephX认证虚拟机的实现方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的批量ISO创建CephX认证虚拟机的实现方法。

上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号