一种虚拟机磁盘镜像构建方法、装置、设备、介质制造方法及图纸

技术编号:23671961 阅读:35 留言:0更新日期:2020-04-04 17:31
本申请公开了一种虚拟机磁盘镜像构建方法、装置、设备、介质,该方法包括:利用目标docker镜像启动容器,并在所述容器中进行目标软件的安装和目标文件的剪裁,构建出虚拟机镜像系统rootfs;利用所述容器与宿主机操作系统的目录共享机制,构建目标虚拟机镜像系统rootfs;退出所述容器后,根据所述目标虚拟机镜像系统rootfs占用的磁盘空间大小,建立虚拟机磁盘镜像文件,以存放所述目标虚拟机镜像系统rootfs;将所述虚拟机磁盘镜像文件挂载到所述宿主机的第二目标目录下;将所述第二目标目录下的所述目标虚拟机镜像系统rootfs拷贝到虚拟机镜像系统的根分区下,得到可用的虚拟机磁盘镜像。这样能够降低虚拟机磁盘镜像构建的复杂度,且不会对宿主机系统造成影响。

A method, device, device and medium of virtual machine disk image construction

【技术实现步骤摘要】
一种虚拟机磁盘镜像构建方法、装置、设备、介质
本申请涉及虚拟化
,特别涉及一种虚拟机磁盘镜像构建方法、装置、设备、介质。
技术介绍
随着当前云计算的发展,虚拟化技术得到广泛的应用,用户可以根据自身业务的不同需要对虚拟机的操作系统进行个性化定制,现有的定制方法一般是针对不同的Linux操作系统发行版选择相应的ISO(光盘镜像文件)进行最小化安装,然后在虚拟机或物理机下进行操作系统的构建和剪裁等,最后生成定制化的虚拟机磁盘镜像文件,此方法需要在物理机和虚拟机之间频繁切换操作,增加了系统定制的复杂度,且会对宿主机系统造成影响。
技术实现思路
有鉴于此,本申请的目的在于提供一种虚拟机磁盘镜像构建方法、装置、设备、介质,能够降低虚拟机磁盘镜像构建的复杂度,且不会对宿主机系统造成影响。其具体方案如下:第一方面,本申请公开了一种虚拟机磁盘镜像构建方法,包括:利用目标docker镜像启动容器,并在所述容器中进行目标软件的安装和目标文件的剪裁,构建出虚拟机镜像系统rootfs;利用所述容器与宿主机操作系统的目录共享机制,将宿主机下用于存储所述虚拟机镜像系统rootfs的第一目标目录挂载到所述容器下,并将容器rootfs拷贝到所述宿主机的所述第一目标目录下,得到目标虚拟机镜像系统rootfs;退出所述容器后,根据所述目标虚拟机镜像系统rootfs占用的磁盘空间大小,建立虚拟机磁盘镜像文件,以存放所述目标虚拟机镜像系统rootfs;将存放着所述目标虚拟机镜像系统rootfs的所述虚拟机磁盘镜像文件挂载到所述宿主机的第二目标目录下;将所述第二目标目录下的所述目标虚拟机镜像系统rootfs拷贝到虚拟机镜像系统的根分区下,并将所述虚拟机磁盘镜像文件卸载,得到可用的虚拟机磁盘镜像。可选的,所述利用目标docker镜像启动容器之前,还包括:启动虚拟机镜像系统构建脚本,并选择虚拟机镜像系统的基础操作系统和版本。可选的,所述启动虚拟机镜像系统构建脚本,并选择所述虚拟机镜像系统的基础操作系统和版本之后,还包括:根据所述基础操作系统和所述版本,下载相应的mini版本的docker镜像。可选的,所述将容器rootfs拷贝到所述宿主机的所述第一目标目录下,得到目标虚拟机镜像系统rootfs之后,还包括:在所述容器中对所述目标虚拟机镜像系统rootfs进行剪裁优化。可选的,所述根据所述目标虚拟机镜像系统rootfs占用的磁盘空间大小,建立虚拟机磁盘镜像文件,以存放所述目标虚拟机镜像系统rootfs,包括:根据所述目标虚拟机镜像系统rootfs占用的磁盘空间大小,利用qemu-image命令建立虚拟机磁盘镜像文件,并在所述虚拟机磁盘镜像文件中创建磁盘分区,以存放所述目标虚拟机镜像系统rootfs。可选的,所述将存放着所述目标虚拟机镜像系统rootfs的所述虚拟机磁盘镜像文件挂载到所述宿主机的第一目标目录下,包括:将存放着所述目标虚拟机镜像系统rootfs的所述虚拟机磁盘镜像文件以loop方式作为块设备挂载到所述宿主机的第二目标目录下。可选的,所述在所述容器中对所述目标虚拟机镜像系统rootfs进行剪裁优化,包括:在所述容器中对所述目标虚拟机镜像系统rootfs中的冗余的二进制文件、系统服务、依赖库以及帮助文档进行剪裁。第四方面,本申请公开了一种虚拟机磁盘镜像构建装置,包括:容器启动模块,用于利用目标docker镜像启动容器;第一rootfs构建模块,用于在所述容器中进行目标软件的安装和目标文件的剪裁,构建出虚拟机镜像系统rootfs;第二rootfs构建模块,用于利用所述容器与宿主机操作系统的目录共享机制,将宿主机下用于存储所述虚拟机镜像系统rootfs的第一目标目录挂载到所述容器下,并将容器rootfs拷贝到所述宿主机的所述第一目标目录下,得到目标虚拟机镜像系统rootfs;磁盘镜像文件建立模块,用于退出所述容器后,根据所述目标虚拟机镜像系统rootfs占用的磁盘空间大小,建立虚拟机磁盘镜像文件,以存放所述目标虚拟机镜像系统rootfs;文件挂载模块,用于将存放着所述目标虚拟机镜像系统rootfs的所述虚拟机磁盘镜像文件挂载到所述宿主机的第二目标目录下;文件拷贝模块,用于将所述第二目标目录下的所述目标虚拟机镜像系统rootfs拷贝到所述虚拟机镜像系统的根分区下;文件卸载模块,用于将所述虚拟机磁盘镜像文件卸载,得到可用的虚拟机磁盘镜像。第五方面,本申请公开了一种虚拟机磁盘镜像构建设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;所述处理器,用于执行所述计算机程序,以实现前述公开的虚拟机磁盘镜像构建方法。第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的虚拟机磁盘镜像构建方法。可见,本申请先利用目标docker镜像启动容器,并在所述容器中进行目标软件的安装和目标文件的剪裁,构建出虚拟机镜像系统rootfs;再利用所述容器与宿主机操作系统的目录共享机制,将宿主机下用于存储所述虚拟机镜像系统rootfs的第一目标目录挂载到所述容器下,并将容器rootfs拷贝到所述宿主机的所述第一目标目录下,得到目标虚拟机镜像系统rootfs;退出所述容器后,根据所述目标虚拟机镜像系统rootfs占用的磁盘空间大小,建立虚拟机磁盘镜像文件,以存放所述目标虚拟机镜像系统rootfs;将存放着所述目标虚拟机镜像系统rootfs的所述虚拟机磁盘镜像文件挂载到所述宿主机的第二目标目录下;将所述第二目标目录下的所述目标虚拟机镜像系统rootfs拷贝到虚拟机镜像系统的根分区下,并将所述虚拟机磁盘镜像文件卸载,得到可用的虚拟机磁盘镜像。这样能够降低虚拟机磁盘镜像构建的复杂度,且在容器内进行相关软件的安装和文件的剪裁不会对宿主机系统造成影响。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请公开的一种虚拟机磁盘镜像构建方法流程图;图2为本申请公开的一种具体的虚拟机磁盘镜像构建方法流程图;图3为本申请公开的一种虚拟机磁盘镜像构建装置结构示意图;图4为本申请公开的一种虚拟机磁盘镜像构建设备结构图;图5为本申请公开的一种终端结构图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属本文档来自技高网...

【技术保护点】
1.一种虚拟机磁盘镜像构建方法,其特征在于,包括:/n利用目标docker镜像启动容器,并在所述容器中进行目标软件的安装和目标文件的剪裁,构建出虚拟机镜像系统rootfs;/n利用所述容器与宿主机操作系统的目录共享机制,将宿主机下用于存储所述虚拟机镜像系统rootfs的第一目标目录挂载到所述容器下,并将容器rootfs拷贝到所述宿主机的所述第一目标目录下,得到目标虚拟机镜像系统rootfs;/n退出所述容器后,根据所述目标虚拟机镜像系统rootfs占用的磁盘空间大小,建立虚拟机磁盘镜像文件,以存放所述目标虚拟机镜像系统rootfs;/n将存放着所述目标虚拟机镜像系统rootfs的所述虚拟机磁盘镜像文件挂载到所述宿主机的第二目标目录下;/n将所述第二目标目录下的所述目标虚拟机镜像系统rootfs拷贝到虚拟机镜像系统的根分区下,并将所述虚拟机磁盘镜像文件卸载,得到可用的虚拟机磁盘镜像。/n

【技术特征摘要】
1.一种虚拟机磁盘镜像构建方法,其特征在于,包括:
利用目标docker镜像启动容器,并在所述容器中进行目标软件的安装和目标文件的剪裁,构建出虚拟机镜像系统rootfs;
利用所述容器与宿主机操作系统的目录共享机制,将宿主机下用于存储所述虚拟机镜像系统rootfs的第一目标目录挂载到所述容器下,并将容器rootfs拷贝到所述宿主机的所述第一目标目录下,得到目标虚拟机镜像系统rootfs;
退出所述容器后,根据所述目标虚拟机镜像系统rootfs占用的磁盘空间大小,建立虚拟机磁盘镜像文件,以存放所述目标虚拟机镜像系统rootfs;
将存放着所述目标虚拟机镜像系统rootfs的所述虚拟机磁盘镜像文件挂载到所述宿主机的第二目标目录下;
将所述第二目标目录下的所述目标虚拟机镜像系统rootfs拷贝到虚拟机镜像系统的根分区下,并将所述虚拟机磁盘镜像文件卸载,得到可用的虚拟机磁盘镜像。


2.根据权利要求1所述的虚拟机磁盘镜像构建方法,其特征在于,所述利用目标docker镜像启动容器之前,还包括:
启动虚拟机镜像系统构建脚本,并选择虚拟机镜像系统的基础操作系统和版本。


3.根据权利要求2所述的虚拟机磁盘镜像构建方法,其特征在于,所述启动虚拟机镜像系统构建脚本,并选择所述虚拟机镜像系统的基础操作系统和版本之后,还包括:
根据所述基础操作系统和所述版本,下载相应的mini版本的docker镜像。


4.根据权利要求3所述的虚拟机磁盘镜像构建方法,其特征在于,所述将容器rootfs拷贝到所述宿主机的所述第一目标目录下,得到目标虚拟机镜像系统rootfs之后,还包括:
在所述容器中对所述目标虚拟机镜像系统rootfs进行剪裁优化。


5.根据权利要求4所述的虚拟机磁盘镜像构建方法,其特征在于,所述根据所述目标虚拟机镜像系统rootfs占用的磁盘空间大小,建立虚拟机磁盘镜像文件,以存放所述目标虚拟机镜像系统rootfs,包括:
根据所述目标虚拟机镜像系统rootfs占用的磁盘空间大小,利用qemu-image命令建立虚拟机磁盘镜像文件,并在所述虚拟机磁盘镜像文件中创建磁盘分区,以存放所述目标虚拟机镜像系统rootfs。


6...

【专利技术属性】
技术研发人员:张会健
申请(专利权)人:北京浪潮数据技术有限公司
类型:发明
国别省市:北京;11

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

1