linux不同操作系统间核心参数的自动同步方法
技术领域
1.本发明涉及不同操作系统间数据同步技术领域,具体涉及一种linux不同操作系统间核心参数的自动同步方法。
背景技术:2.近年来,随着linux操作系统的蓬勃发展,出现了很多linux的发行版本,如ubuntu、suse、centos、openeuler和中标麒麟操作系统等,这些操作系统在各个领域得到了广泛的应用,这些系统虽然都是linux操作系统,但是它们的核心参数的配置却不尽相同,例如suse和中标麒麟操作系统,它们的网络(network)参数的配置路径就完全不同。所以不同linux发行版本之间,如果进行核心参数迁移的话,是一个非常复杂的过程。
3.传统的迁移方法是通过分析迁移操作系统的不同配置方法,通过手动的方式进行迁移。这种手动迁移的方式对技术人员的要求高,效率低,并且出错概率高,甚至可能因为不当的人工操作,导致迁移操作的失败;而且核心参数迁移生效的方法有多种,没有统一的标准和规范,导致迁移经常出现混乱的想象,迫切需要一种规范有效的方法,完成不同操作系统发行版本之间的核心参数的迁移。
技术实现要素:4.为解决已有技术存在的不足,本发明提供了一种linux不同操作系统间核心参数的自动同步方法,包括如下步骤:
5.步骤s1:针对待同步操作系统及目标操作系统的核心参数种类及格式规范,获取待同步操作系统及目标操作系统的核心参数规范及参数配置规范;
6.步骤s2:针对不同类别的核心参数,制定参数生效转化库;
7.步骤s3:目标操作系统读取参数配置规范,并通过参数生效转化库,使待同步操作系统的核心参数执行生效;
8.步骤s4:目标操作系统通过参数抓取程序,获取第二参数配置规范;
9.步骤s5:对比第二参数配置规范与步骤s2-步骤s3中的参数配置规范,二者的数据值一致时表明迁移生效,否则表明迁移失败;
10.其中,待同步操作系统是指需要将其核心参数同步给其他操作系统的操作系统,目标操作系统是指需要同步其他操作系统核心参数的操作系统。
11.其中,所述步骤s4中,参数抓取程序的抓取方法包括:
12.步骤s41:对目标操作系统的安装包文件列表进行分析;
13.步骤s42:判断相应的应用程序的安装包是否分析过,若分析过则直接提取相应应用程序的配置文件路径;若没有分析过,则分析相应应用程序的配置文件路径并获取其核心参数信息。
14.其中,所述步骤s2中,参数生效转化库中各核心参数的参数转化方法包括:命令行和修改物理配置文件方法,命令行配置方式是通过一些系统配置命令来完成系统配置,修
改物理配置文件的方式是通过修改物理配置文件的参数方式来完成核心参数的配置。
15.其中,所述待同步操作系统及目标操作系统分别选自suse linux系统及中标麒麟操作系统,其核心参数规范包括安全、内核、环境变量、服务配置及其它,参数配置规范包括但不限于参数类型、参数配置文件路径、参数名、参数值。
16.本发明提供的linux不同操作系统间核心参数的自动同步方法,对linux的核心参数进行了分类管理,规范了参数格式和迁移操作,并且迁移过程不需要人工干预,自动化完成迁移操作,防止了人工操作出错的可能,执行效率高,并且支持大规模的迁移操作。
附图说明
17.图1:suse linux和中标麒麟操作系统的核心参数规范。
18.图2:suse linux和中标麒麟操作系统的参数生效转化库执行程序图。
19.图3:本发明的核心参数抓取流程图。
20.图4:本发明的核心参数抓取程序执行流程图。
21.图5:本发明的一较佳实施例的具体迁移流程图。
具体实施方式
22.为了对本发明的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本发明的技术方案及其产生的有益效果。
23.本发明针对传统的迁移方法进行了改进和提高,提出了一种自动智能分类处理核心参数,并进行迁移的方案,迁移效率高,出错率低,并且统一了迁移方法,可迁移操作的准确性和规范性。
24.本发明的不同操作系统间核心参数自动同步迁移的方法,主要应用于linux操作系统间的参数同步,尤其适用于自动将suse linux系统核心参数自动同步至中标麒麟操作系统上。本发明经过转化,也可用于其它linux发行版系统之间的核心参数转化,例如centos、ubuntu等。
25.本发明采用的技术手段是:以linux系统上内核优化工具sysctl、systemd、环境变量管理等技术为基础,具体的,以linux系统上内核优化工具sysctl以及修改应用配置文件技术为基础,针对suse linux和中标麒麟操作系统的特点,编程实现对应的迁移,其主要实现的技术基础如下:
26.1、制定核心参数规范:针对suse linux和中标麒麟操作系统,制定统一的核心参数规范。本发明将核心参数表分为五大类:安全(safety)、内核(kernel)、环境变量(environmental variable)、服务配置(service configuration)和其它(others)等五类,制定统一的参数配置规范,一般的参数规范格式包括:参数类型、参数配置文件路径、参数名、参数值等。linux操作系统的参数庞大,本过程还需要约定要迁移哪些核心参数。参数分类如图1所示。
27.2、开发参数生效转化库:在中标麒麟操作系统的平台上,针对不同类别的参数,开发参数生效转化库,以保证参数迁移可以按照规定的方法进行迁移。即根据输入的参数p,在参数生效转化库中,自动查找到参数转化方法kmethod,并运行生效。例如修改内核参数会涉及到使用sysctl命令和修改配置文件两种方法,命令行配置方式是通过一些系统配置
命令来完成系统配置例如“sysctl-w”命令,修改物理配置文件的方式是通过修改物理配置文件的参数方式来完成核心参数的配置。例如完成kernel.watchdog核心参数的配置,可使用sysctl-wkernel.watchdog=x的命令来实现参数配置,也可以通过修改
28./etc/sysctl.conf来实现参数配置。输入内核参数至参数生效转化库,参数生效转化库会自动根据参数信息寻找对应的方法进行迁移(sysctl和修改配置文件方法),以使得参数可以在中标麒麟系统上自动生效。
29.如果输入参数为kernel:vm.swappiness=5,当输入该参数时,通过参数转化库,会自动映射出对应的生效方法sysctl,则系统会执行命令sysctl vm.swappiness=5,使参数生效;
30.对于安全相关参数,生效转化库会使用到”sed-i...”等复杂的shell操作来实现参数生效转化。
31.参数生效转化库的执行流程图如图2所示。
32.3、开发抓取核心参数的程序:针对suse linux和中标麒麟操作系统的特点,参照核心参数规范,开发出抓取核心参数值的程序,该程序分为客户端(client)和服务器(server)两个部分,客户端发送抓取核心参数的请求,服务端在接受请求后,通过智能代理(smart proxy)对请求的数据进行分析,针对不同的请求执行不同的抓取参数的方法,最后再将抓取的到的数据汇总到核心参数表中,形成主机核心参数表。
33.抓取核心参数的程序,采用python语言开发,服务端和客户端的通信方式通过restful接口来实现,通信协议采用https,客户端分为:网页客户端(web ui)和命令行客户端(cli client),其实现流程图下图3所示。
34.本发明使用的抓取核心参数的程序,能够自动分析主机的安装包,并通过对安装包文件列表的分析,分析出应用和其它核心参数的配置文件的路径,进而提取出核心参数。不仅如此,抓取核心参数程序还具备一定的自学习能力,例如检测出主机上安装有应用程序vsftpd-server,该程序会自动分析安装包,得到配置文件路径是(/etc/vsftpd/vsftpd.conf),并将该路径记录下来,下一次执行抓取程序时,抓取核心参数程序不需要再分析安装包,直接可以通过上次的记录数据来定位到配置文件的安装路径,这样可以大大的提升抓取程序的执行效率。抓取参数程序的执行流程图如图4所示。
35.本发明采用的相关技术,对于不同的系统版本可能有不同的实现,本发明以suse linux enterprise server 12sp5的内核核心参数迁移到中标麒麟高级服务器操作系统v7.6为例,介绍迁移过程,请参见图5所示,为本发明的一较佳实施例的具体迁移流程图。
36.1、制定核心参数规范
37.通过sysctl
‑‑
all命令可以查看到suse linux enterprise server12sp5和中标麒麟高级服务器操作系统v7.6的所有内核相关参数,结合迁移需求,客户重点关注的参数有50项,建立该50项参数的参数表规范,参数表规范t如下表所示:
[0038][0039]
2、参照参数表规范t,抓取suse linux enterprise server 12sp5的内核的上述50个参数的相关值,并生成参数表t1,如下表所示:
[0040][0041]
3、在中标麒麟高级服务器v7.6主机上,读取表t1的参数值,并通过参数生效转化库,使参数执行生效。本发明采用python脚本程序实现参数生效转化库,主要涉及到对/etc/sysctl.conf文件的修改以及sysctl命令的使用。
[0042]
4、在中标麒麟高级服务器v7.6主机上,运行参数抓取程序,获取参数表t2,t2格式与表t1相同。
[0043]
5、对比t1与t2,如果两者的数据值一致,则表明迁移生效,否则表明迁移失败。
[0044]
本发明的有益效果如下:
[0045]
1、本发明通过核心参数表、抓取核心参数程序和参数生效转化库等方法,通过对操作系统的核心参数进行分类处理,自动完成核心参数的迁移,避免了人工的干预,减少了平台迁移的时间,大大提升了效率。
[0046]
2、本发明针对传统的方法,对参数的格式、参数的抓取方式、参数的生效的方法制定了统一的规范,避免了人工干预的风险,并且该方法还可用于规模化的使用,大大提升了
迁移效率。
[0047]
3、本发明对linux的核心参数进行了分类管理,规范了参数格式和迁移操作,并且迁移过程不需要人工干预,自动化完成迁移操作,防止了人工操作出错的可能,执行效率高,并且支持大规模的迁移操作。
[0048]
虽然本发明已利用上述较佳实施例进行说明,然其并非用以限定本发明的保护范围,任何本领域技术人员在不脱离本发明的精神和范围之内,相对上述实施例进行各种变动与修改仍属本发明所保护的范围,因此本发明的保护范围以权利要求书所界定的为准。