本发明涉及网卡测试技术领域,具体涉及一种自动化配置linux网卡bonding的方法及装置。
背景技术
bonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,能够提升网络吞吐量、实现网络冗余、负载等功能。
bonding网卡的行为取决于所选择的工作模式,有多种工作模式,默认工作模式是mode=0,有高可用(容错)和负载均衡的功能,需要交换机的配置,每块网卡轮询发包(流量分发比较均衡);也经常使用mode=1active-backup模式,只有高可用(容错)功能,不需要交换机配置,这种模式只有一块网卡工作,对外只有一个mac地址。缺点是端口利用率比较低;要配置网卡bonding需要多不操作命令,用户需要记忆复杂的操作命令,进行批量配置时费时费力。
技术实现要素:
为了克服上述现有技术中的不足,本发明提供一种自动化配置linux网卡bonding的方法及装置,以解决上述技术问题。
本发明的技术方案是:
一种自动化配置linux网卡bonding的方法,服务器上两张物理网卡eth0和eth1通过绑定成一个逻辑网卡bond0,创建脚本文件进行linux网卡bonding的配置,包括如下步骤:
根据网络类型的不同设置脚本传入参数;
通过getopts取出传入的各个参数对应的值,加载bonding模块;
根据网络类型,设置ip_setting字符串的内容;
配置网卡的配置文件。
进一步的,步骤根据网络类型的不同设置脚本传入参数之前,还包括:
关闭和停止网络服务;其中,传入参数包括:
逻辑网卡的名称及类型、物理网卡的名称、网络类型、逻辑网卡的ip、网络掩码、gateway。
进一步的,步骤根据网络类型,设置ip_setting字符串的内容包括:
当网络类型为static时,检查是否传入了gateway的值,若未传入,则ip_setting字符串的内容为ipaddr=&ipnetwork=$maskuserctl=no;若已传入,ip_setting字符串增加gateway=&gateway内容;
当网络类型为dhcp或auto时,ip地址动态分配,ip_setting字符串的内容为userctl=no。
进一步的,步骤配置网卡的配置文件,包括:
获取原网卡的配置文件,
调用set_rhel7_slave_config函数模块配置新网卡的配置文件,若原网卡的配置文件存在,将新网卡的配置文件进行重命名;
进一步的,该方法还包括:
重启网络服务,查看bonding网卡的接口状态信息。
一种自动化配置linux网卡bonding的装置,服务器上两张物理网卡em1和em2,通过绑定成一个逻辑网卡bond0,包括:
设置模块,用于根据网络类型的不同设置脚本传入参数;其中,传入参数包括:逻辑网卡的名称及类型、物理网卡的名称、网络类型、逻辑网卡的ip、网络掩码、gateway;
加载模块,用于通过getopts取出传入的各个参数对应的值,加载bonding模块;
字符串设置模块,用于根据网络类型,设置ip_setting字符串的内容;
配置模块,用于配置网卡的配置文件。
进一步的,该装置还包括网络关闭模块;
网络关闭模块,用于关闭和停止网络服务。
进一步的,字符串设置模块包括:检测单元和设置单元;
检测单元,用于当网络类型为static时,检查是否传入了gateway的值,若未传入,设置单元,用于设置ip_setting字符串的内容为ipaddr=&ipnetwork=$maskuserctl=no;若已传入,设置单元,还用于设置ip_setting字符串增加gateway=&gateway内容;
当网络类型为dhcp或auto时,ip地址动态分配,设置单元,还用于设置ip_setting字符串的内容为userctl=no。
进一步的,配置模块包括:获取单元、调用单元和命名单元;
获取单元,用于获取原网卡的配置文件;
调用单元,用于调用set_rhel7_slave_config函数模块配置新网卡的配置文件;
若原网卡的配置文件存在,命名单元,用于将新网卡的配置文件进行重命名;
进一步的,该装置还包括网络重启模块和查询显示模块,
所述网络重启模块,用于重启网络服务;
查询显示模块,用于查看显示bonding网卡的接口状态信息。
从以上技术方案可以看出,本发明具有以下优点:本发明提出了一种linux网卡bonding的配置脚本,通过一个命令运行该脚本,即可自动完成原先需要好几步命令操作才能完成的网卡bonding配置,用户不需要记忆复杂的操作命令,而且可以将该脚本文件复制到批量服务器上,节约了运维人员进行网卡bonding操作的时间,提高了准确度和运维效率。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1为一种自动化配置linux网卡bonding的方法流程图。
具体实施方式
下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
如图1所示,一种自动化配置linux网卡bonding的方法,服务器上两张物理网卡eth0和eth1,通过绑定成一个逻辑网卡bond0,创建脚本文件进行linux网卡bonding的配置,包括如下步骤:
s1:关闭和停止网络服务;
根据网络类型的不同设置脚本传入参数;
当网络类型为dhcp时,./bondingconfig.sh–bbond0–mactive-backup–s1eth0–s2eth1–tdhcp–s"miimon=100primary=eth0"表示使用主备模式建立bonding,bonding的名字为bond0,主网卡是eth0,备网卡是eth1,ip地址的分配方式为dhcp;
当网络类型为static时,./bondingconfig.sh–bbond0–mactive-backup–s1eth0–s2eth1–tstatic–i192.168.1.10-n255.255.255.0–s"miimon=100primary=eth0"表示使用主备模式建立bonding,bonding的名字为bond0,主网卡是eth0,备网卡是eth1,ip地址的分配方式为静态分配,ip地址是192.168.1.10,子网掩码是255.255.255.0;
该脚本用于配置网卡bonding,可以传入的参数包括:
#-b:bondname
#-m:bondtype
#-s1:slavename1
#-s2:slavename2
#-t:networktype
#-i:bondipaddress
#-n:networkmask
#-g:gateway
#-s:bondoptions
bond_config_file="/etc/sysconfig/network-scripts/ifcfg-$bond_name"
if[-f$bond_config_file];then
mv$bond_config_file/etc/sysconfig/network-scripts/bondhelper.$bond_name-f
fi
s2:通过getopts取出传入的各个参数对应的值,加载bonding模块;
s3:根据网络类型,设置ip_setting字符串的内容;
其中,当网络类型为static时,检查是否传入了gateway的值,若未传入,则ip_setting字符串的内容为ipaddr=&ipnetwork=$maskuserctl=no;若已传入,ip_setting字符串增加gateway=&gateway内容;
当网络类型为dhcp或auto时,ip地址动态分配,ip_setting字符串的内容为userctl=no;
s4:配置网卡的配置文件:
获取原网卡的配置文件;
调用set_rhel7_slave_config函数模块配置新网卡的配置文件,若原网卡的配置文件存在,将新网卡的配置文件进行重命名;
实施例二
一种自动化配置linux网卡bonding的装置,服务器上两张物理网卡em1和em2,通过绑定成一个逻辑网卡bond0,包括:
设置模块,用于根据网络类型的不同设置脚本传入参数;其中,传入参数包括:逻辑网卡的名称及类型、物理网卡的名称、网络类型、逻辑网卡的ip、网络掩码、gateway;
加载模块,用于通过getopts取出传入的各个参数对应的值,加载bonding模块;
字符串设置模块,用于根据网络类型,设置ip_setting字符串的内容;
配置模块,用于配置网卡的配置文件。
该装置还包括网络关闭模块;
网络关闭模块,用于关闭和停止网络服务。
本实施例中,字符串设置模块包括:检测单元和设置单元;
检测单元,用于当网络类型为static时,检查是否传入了gateway的值,若未传入,设置单元,用于设置ip_setting字符串的内容为ipaddr=&ipnetwork=$maskuserctl=no;若已传入,设置单元,还用于设置ip_setting字符串增加gateway=&gateway内容;
当网络类型为dhcp或auto时,ip地址动态分配,设置单元,还用于设置ip_setting字符串的内容为userctl=no。
本实施例中,配置模块包括:获取单元、调用单元和命名单元;
获取单元,用于获取原网卡的配置文件;
调用单元,用于调用set_rhel7_slave_config函数模块配置新网卡的配置文件;
若原网卡的配置文件存在,命名单元,用于将新网卡的配置文件进行重命名;
进一步的本实施例中该装置还包括网络重启模块和查询显示模块,
所述网络重启模块,用于重启网络服务;
查询显示模块,用于查看显示bonding网卡的接口状态信息。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。