本申请涉及计算机应用技术领域,更具体地说,涉及一种系统镜像制备方法及系统。
背景技术:
随着大数据时代的来临,云计算和云存储成为炙手可热的领域,在云计算和云存储领域中,服务器的存储性能是整个系统需要着重管理和不断提升的性能之一。
分布式系统是提升服务器的存储性能和易管理性能的有力手段,但在现有技术中的分布式系统中,在需要对分布式系统的存储容量或性能进行拓展时,往往只能通过给分布式系统中的节点替换更大容量的硬盘的方式实现,这种方式限制了分布式系统的存储容量和性能的可拓展上限。
技术实现要素:
为解决上述技术问题,本发明提供了一种系统镜像制备方法及系统,以实现通过为分布式系统提供可用系统镜像,以使分布式系统可以通过增加节点的方式增加分布式系统的存储容量和性能的目的,从而增加了分布式系统的存储容量和性能的可拓展上限。
为实现上述技术目的,本发明实施例提供了如下技术方案:
一种系统镜像制备方法,应用于分布式系统,所述系统镜像制备方法包括:
获取待处理系统镜像;
将所述待处理系统镜像包含文件复制在预设目录中;
构建分布式系统软件包;
根据预设标准和所述分布式系统软件包所在位置,在所述预设目录中创建包含镜像安装流程的ks.cfg文件;
修改所述预设目录中的启动配置文件,将启动位置设置为所述预设目录;
根据所述预设目录中的所有文件生成目标系统镜像。
可选的,所述构建分布式系统软件包之后,所述根据预设标准和所述分布式系统软件包所在位置之前还包括:
根据所述预设标准修改所述待处理系统镜像的内核文件,获得目标内核文件,并将所述目标内核文件作为目标系统镜像的内核文件。
可选的,所述将所述待处理系统镜像包含文件复制在预设目录中包括:
使用挂载命令挂载所述待处理系统镜像,使所述待处理系统镜像包含文件可见,并将所述待处理系统镜像包含文件复制在预设目录中。
可选的,所述构建分布式系统软件包包括:
获取分布式文件系统源码;
在所述预设目录中部署rpmbuild构建目录;
将所述分布式文件系统源码中的spec文件复制在rpmbuild构建目录中;
将所述分布式文件系统源码打包,获得压缩包格式的源码并放在rpmbulid构建目录中;
将所述rpmbulid构建目录打包,获得所述分布式系统软件包。
一种系统镜像制备系统,应用于分布式系统,所述系统镜像制备系统包括:
镜像获取模块,用于获取待处理系统镜像;
文件复制模块,用于将所述待处理系统镜像包含文件复制在预设目录中;
软件包构建模块,用于构建分布式系统软件包;
流程构建模块,用于根据预设标准和所述分布式系统软件包所在位置,在所述预设目录中创建包含镜像安装流程的ks.cfg文件;
启动项修改模块,用于修改所述预设目录中的启动配置文件,将启动位置设置为所述预设目录;
镜像生成模块,用于根据所述预设目录中的所有文件生成目标系统镜像。
可选的,还包括:
内核修改模块,用于根据所述预设标准修改所述待处理系统镜像的内核文件,获得目标内核文件,并将所述目标内核文件作为目标系统镜像的内核文件。
可选的,所述文件复制模块将所述待处理系统镜像包含文件复制在预设目录中具体用于,使用挂载命令挂载所述待处理系统镜像,使所述待处理系统镜像包含文件可见,并将所述待处理系统镜像包含文件复制在预设目录中。
可选的,所述软件包构建模块包括:
源码获取单元,用于获取分布式文件系统源码;
部署单元,用于在所述预设目录中部署rpmbuild构建目录;
文件复制单元,用于将所述分布式文件系统源码中的spec文件复制在rpmbuild构建目录中;
源码压缩单元,用于将所述分布式文件系统源码打包,获得压缩包格式的源码并放在rpmbulid构建目录中;
软件包压缩单元,用于将所述rpmbulid构建目录打包,获得所述分布式系统软件包。
从上述技术方案可以看出,本发明实施例提供了一种系统镜像制备方法及系统,其中,所述系统镜像制备方法以现有的待处理系统镜像为基础,在所述待处理系统镜像的目录中增加ks.cfg文件的方式使得镜像安装流程兼容应用的分布式系统;并且,利用所述系统镜像制备方法获取的目标系统镜像中构建有分布式系统软件包,使所述目标系统镜像在能够应用于分布式系统的基础上,还可以供用户自主增删软件,提升了目标系统镜像的适用性。
所述系统镜像制备方法提供了获得适用于分布式系统的目标系统镜像的制备方法,使分布式系统可以通过增加安装所述目标系统镜像的节点来实现增加分布式系统的存储容量和性能,从而使得分布式系统的存储容量和性能的可拓展上限理论上达到了无穷大。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请的一个实施例提供的一种系统镜像制备方法的流程示意图;
图2为本申请的另一个实施例提供的一种系统镜像制备方法的流程示意图;
图3为本申请的又一个实施例提供的一种系统镜像制备方法的流程示意图;
图4为本申请的再一个实施例提供的一种系统镜像制备方法的流程示意图;
图5为本申请的一个实施例提供的一种系统镜像制备系统的结构示意图;
图6为本申请的另一个实施例提供的一种系统镜像制备系统的结构示意图;
图7为本申请的再一个实施例提供的一种系统镜像制备系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供了一种系统镜像制备方法,如图1所示,应用于分布式系统,所述系统镜像制备方法包括:
s101:获取待处理系统镜像;
s102:将所述待处理系统镜像包含文件复制在预设目录中;
s103:构建分布式系统软件包;
s104:根据预设标准和所述分布式系统软件包所在位置,在所述预设目录中创建包含镜像安装流程的ks.cfg文件;
s105:修改所述预设目录中的启动配置文件,将启动位置设置为所述预设目录;
s106:根据所述预设目录中的所有文件生成目标系统镜像。
需要说明的是,本申请实施例提供的系统镜像制备方法需要基于linux系统实现,所述待处理系统镜像也需要为linux系统,由于linux开源的特性,使得基于linux实现所述系统镜像制备方法成为可能。所述待处理系统镜像和实现所述系统镜像制备方法的操作环境可以是同一种系统,也可以是不同的系统,只要都是linux系统即可,本申请对此并不做限定,具体视实际情况而定。
所述系统镜像制备方法以现有的待处理系统镜像为基础,在所述待处理系统镜像的目录中增加ks.cfg文件的方式使得镜像安装流程兼容应用的分布式系统;并且,利用所述系统镜像制备方法获取的目标系统镜像中构建有分布式系统软件包,使所述目标系统镜像在能够应用于分布式系统的基础上,还可以供用户自主增删软件,提升了目标系统镜像的适用性。
所述系统镜像制备方法提供了获得适用于分布式系统的目标系统镜像的制备方法,使分布式系统可以通过增加安装所述目标系统镜像的节点来实现增加分布式系统的存储容量和性能,从而使得分布式系统的存储容量和性能的可拓展上限理论上达到了无穷大。
另外,由于所述系统镜像制备方法基于现有的待处理系统镜像生成目标系统镜像,大大减少了开发目标系统镜像的设计难度。
还需要说明的是,所述预设标准是指根据所述目标系统镜像应用的分布式系统确定的系统镜像标准,所述镜像安装流程包括但不限于镜像在安装过程中整个流程(包括开机启动文件、安装文件、重启等步骤)、安装过程中预安装的软件包、系统分区和网卡定制中的至少一项。
所述预设目录系统中预先设定的目录位置,该预设目录可以根据实际需求而设定。
在上述实施例的基础上,在本申请的一个实施例中,如图2所示,所述构建分布式系统软件包之后,所述根据预设标准和所述分布式系统软件包所在位置之前还包括:
s107:根据所述预设标准修改所述待处理系统镜像的内核文件,获得目标内核文件,并将所述目标内核文件作为目标系统镜像的内核文件。
需要说明的是,系统的内核文件中包含着系统的驱动程序等内容,当需要对驱动程序进行精简或新增时,需要对系统的内核文件进行修改,利用获得的目标内核文件替换待处理系统镜像中原有的内核文件,以实现对系统内核的修改。
在上述实施例的基础上,在本申请的另一个实施例中,如图3所示,所述将所述待处理系统镜像包含文件复制在预设目录中包括:
s1021:使用挂载命令挂载所述待处理系统镜像,使所述待处理系统镜像包含文件可见,并将所述待处理系统镜像包含文件复制在预设目录中。
需要说明的是,挂载命令(linuxmount)是linux系统中挂载待处理系统镜像,使待处理系统镜像中包含的文件可见的命令,在利用挂载命令挂载所述待处理系统镜像后,就可以通过复制的方式将所述待处理系统镜像包含的所有文件复制在预设目录中。
在上述实施例的基础上,在本申请的又一个实施例中,如图4所示,所述构建分布式系统软件包包括:
s1031:获取分布式文件系统源码;
s1032:在所述预设目录中部署rpmbuild构建目录;
s1033:将所述分布式文件系统源码中的spec文件复制在rpmbuild构建目录中;
s1034:将所述分布式文件系统源码打包,获得压缩包格式的源码并放在rpmbulid构建目录中;
s1035:将所述rpmbulid构建目录打包,获得所述分布式系统软件包。
在本实施例中提供了一种基于分布式文件系统(ceph)软件包构建分布式系统软件包的具体流程,在本实施例中,使用的是rpmbuild构建rpm包的打包环境。
在上述实施例的基础上,在本申请的一个具体实施例中,以centos7.2(communityenterpriseoperatingsystem,社区企业操作系统)作为所述待处理系统镜像为例,提供了一种具体的利用所述系统镜像制备方法生成目标系统镜像的流程,包括:
(1)部署安装centos7.2的系统。
(2)使用mount方法将centos7.2系统镜像挂载到已经安装的系统目录。
(3)将挂载的系统镜像目录复制到我们要进行定制的系统镜像目录中,这里以7.2目录说明;
(4)进入系统镜像目录centos7.2中的isolinux目录下,创建并编辑ks.cfg文件,定制我们系统启动整个流程,精简不需要安装的软件包,以及定制系统分区等等;这里也可以根据需要对内核进行精简,定制精简或者新增的驱动程序的内核,替换先前镜像目录centos7.2中的内核文件。
(5)部署分布式文件系统ceph软件包构建环境。这里使用的是rpmbuild构建rpm包的打包环境。先采用rpmdev-setuptree生成构建软件包打包的目录。然后将分布式文件系统的ceph源码中的spec文件放到已经构建的软件包打包目录的rpmbuild/specs下。将ceph源码使用tar命令压缩成tar.gz的压缩包放到已经构建软件包打包目录rpmbuild/sources目录下。然后在已经构建的软件包打包目录rpmbuild/specs目录下执行rpmbuild的构建命令,创建分布式文件系统的软件rpm包。
(6)将构建成功后的软件rpm包,集成到定制的系统镜像目录7.2/packages目录下。然后修改先前创建的ks.cfg文件,增加分布式文件系统软件包的安装文件配置。
(7)集成完毕后,我们需要修改定制的系统镜像目录7.2/isolinux目录下的isolinux.cfg文件,修改我们的启动项配置。
(8)系统精简和软件包集成完毕后,我们可以使用mkisofs命令对我们定制的系统镜像目录重新生成镜像文件。
相应的,本申请实施例还提供了一种系统镜像制备系统,如图5所示,应用于分布式系统,所述系统镜像制备系统包括:
镜像获取模块100,用于获取待处理系统镜像;
文件复制模块200,用于将所述待处理系统镜像包含文件复制在预设目录中;
软件包构建模块300,用于构建分布式系统软件包;
流程构建模块400,用于根据预设标准和所述分布式系统软件包所在位置,在所述预设目录中创建包含镜像安装流程的ks.cfg文件;
启动项修改模块500,用于修改所述预设目录中的启动配置文件,将启动位置设置为所述预设目录;
镜像生成模块600,用于根据所述预设目录中的所有文件生成目标系统镜像。
需要说明的是,本申请实施例提供的系统镜像制备系统需要基于linux系统实现,所述待处理系统镜像也需要为linux系统,由于linux开源的特性,使得基于linux实现所述系统镜像制备系统成为可能。所述待处理系统镜像和实现所述系统镜像制备系统的操作环境可以是同一种系统,也可以是不同的系统,只要都是linux系统即可,本申请对此并不做限定,具体视实际情况而定。
所述系统镜像制备系统以现有的待处理系统镜像为基础,在所述待处理系统镜像的目录中增加ks.cfg文件的方式使得镜像安装流程兼容应用的分布式系统;并且,利用所述系统镜像制备系统获取的目标系统镜像中构建有分布式系统软件包,使所述目标系统镜像在能够应用于分布式系统的基础上,还可以供用户自主增删软件,提升了目标系统镜像的适用性。
所述系统镜像制备系统提供了获得适用于分布式系统的目标系统镜像的制备系统,使分布式系统可以通过增加安装所述目标系统镜像的节点来实现增加分布式系统的存储容量和性能,从而使得分布式系统的存储容量和性能的可拓展上限理论上达到了无穷大。
另外,由于所述系统镜像制备系统基于现有的待处理系统镜像生成目标系统镜像,大大减少了开发目标系统镜像的设计难度。
还需要说明的是,所述预设标准是指根据所述目标系统镜像应用的分布式系统确定的系统镜像标准,所述镜像安装流程包括但不限于镜像在安装过程中整个流程(包括开机启动文件、安装文件、重启等步骤)、安装过程中预安装的软件包、系统分区和网卡定制中的至少一项。
所述预设目录系统中预先设定的目录位置,该预设目录可以根据实际需求而设定。
在上述实施例的基础上,在本申请的一个实施例中,如图6所示,所述系统镜像制备系统还包括:
内核修改模块700,用于根据所述预设标准修改所述待处理系统镜像的内核文件,获得目标内核文件,并将所述目标内核文件作为目标系统镜像的内核文件。
需要说明的是,系统的内核文件中包含着系统的驱动程序等内容,当需要对驱动程序进行精简或新增时,需要对系统的内核文件进行修改,利用获得的目标内核文件替换待处理系统镜像中原有的内核文件,以实现对系统内核的修改。
在上述实施例的基础上,在本申请的另一个实施例中,所述文件复制模块将所述待处理系统镜像包含文件复制在预设目录中具体用于,使用挂载命令挂载所述待处理系统镜像,使所述待处理系统镜像包含文件可见,并将所述待处理系统镜像包含文件复制在预设目录中。
需要说明的是,挂载命令(linuxmount)是linux系统中挂载待处理系统镜像,使待处理系统镜像中包含的文件可见的命令,在利用挂载命令挂载所述待处理系统镜像后,就可以通过复制的方式将所述待处理系统镜像包含的所有文件复制在预设目录中。
在上述实施例的基础上,在本申请的又一个实施例中,如图7所示,所述软件包构建模块300包括:
源码获取单元310,用于获取分布式文件系统源码;
部署单元320,用于在所述预设目录中部署rpmbuild构建目录;
文件复制单元330,用于将所述分布式文件系统源码中的spec文件复制在rpmbuild构建目录中;
源码压缩单元340,用于将所述分布式文件系统源码打包,获得压缩包格式的源码并放在rpmbulid构建目录中;
软件包压缩单元350,用于将所述rpmbulid构建目录打包,获得所述分布式系统软件包。
在本实施例中提供了一种基于分布式文件系统(ceph)软件包构建分布式系统软件包的具体流程,在本实施例中,使用的是rpmbuild构建rpm包的打包环境。
在上述实施例的基础上,在本申请的一个具体实施例中,以centos7.2(communityenterpriseoperatingsystem,社区企业操作系统)作为所述待处理系统镜像为例,提供了一种具体的利用所述系统镜像制备方法生成目标系统镜像的流程,包括:
(1)部署安装centos7.2的系统。
(2)使用mount方法将centos7.2系统镜像挂载到已经安装的系统目录。
(3)将挂载的系统镜像目录复制到我们要进行定制的系统镜像目录中,这里以7.2目录说明;
(4)进入系统镜像目录centos7.2中的isolinux目录下,创建并编辑ks.cfg文件,定制我们系统启动整个流程,精简不需要安装的软件包,以及定制系统分区等等;这里也可以根据需要对内核进行精简,定制精简或者新增的驱动程序的内核,替换先前镜像目录centos7.2中的内核文件。
(5)部署分布式文件系统ceph软件包构建环境。这里使用的是rpmbuild构建rpm包的打包环境。先采用rpmdev-setuptree生成构建软件包打包的目录。然后将分布式文件系统的ceph源码中的spec文件放到已经构建的软件包打包目录的rpmbuild/specs下。将ceph源码使用tar命令压缩成tar.gz的压缩包放到已经构建软件包打包目录rpmbuild/sources目录下。然后在已经构建的软件包打包目录rpmbuild/specs目录下执行rpmbuild的构建命令,创建分布式文件系统的软件rpm包。
(6)将构建成功后的软件rpm包,集成到定制的系统镜像目录7.2/packages目录下。然后修改先前创建的ks.cfg文件,增加分布式文件系统软件包的安装文件配置。
(7)集成完毕后,我们需要修改定制的系统镜像目录7.2/isolinux目录下的isolinux.cfg文件,修改我们的启动项配置。
(8)系统精简和软件包集成完毕后,我们可以使用mkisofs命令对我们定制的系统镜像目录重新生成镜像文件。
综上所述,本申请实施例提供了一种系统镜像制备方法及系统,其中,所述系统镜像制备方法以现有的待处理系统镜像为基础,在所述待处理系统镜像的目录中增加ks.cfg文件的方式使得镜像安装流程兼容应用的分布式系统;并且,利用所述系统镜像制备方法获取的目标系统镜像中构建有分布式系统软件包,使所述目标系统镜像在能够应用于分布式系统的基础上,还可以供用户自主增删软件,提升了目标系统镜像的适用性。
所述系统镜像制备方法提供了获得适用于分布式系统的目标系统镜像的制备方法,使分布式系统可以通过增加安装所述目标系统镜像的节点来实现增加分布式系统的存储容量和性能,从而使得分布式系统的存储容量和性能的可拓展上限理论上达到了无穷大。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。