kolla-ansible 不同节点之间网卡名称不相同的解决方案

kolla-ansible 不同节点之间网卡名称不相同的解决方案

kolla-ansible 安装openstack时,要求被安装的节点上,对应网络平面的网卡名称要相同。但有时候会遇到不同节点对应网卡名不相同的问题,同时,有些节点修改网卡名又不能成功。这时候,可以使用网卡bond技术,将网卡名称统一。

网卡bond模式

bonding技术提供了七种工作模式,在使用的时候需要指定一种,每种有各自的优缺点.

  • balance-rr (mode=0) 默认, 有高可用 (容错) 和负载均衡的功能, 需要交换机的配置,每块网卡轮询发包 (流量分发比较均衡).
  • active-backup (mode=1) 只有高可用 (容错) 功能, 不需要交换机配置, 这种模式只有一块网卡工作, 对外只有一个mac地址。缺点是端口利用率比较低
  • balance-xor (mode=2) 不常用
  • broadcast (mode=3) 不常用
  • 802.3ad (mode=4) IEEE 802.3ad 动态链路聚合,需要交换机配置,没用过
  • balance-tlb (mode=5) 不常用
  • balance-alb (mode=6) 有高可用 ( 容错 )和负载均衡的功能,不需要交换机配置 (流量分发到每个接口不是特别均衡)

具体的网上有很多资料,了解每种模式的特点根据自己的选择就行, 一般会用到0、1、4、6这几种模式。

下面介绍CentOS7.5/Ubuntu16.04(Kylin)系统的网卡bond方法,这里使用mode 1

CentOS7.5

linux下网卡bonding配置

  1. 关闭/停止NetworkManager服务
systemctl stop NetworkManager.service     # 停止NetworkManager服务
systemctl disable NetworkManager.service  # 禁止开机启动NetworkManager服务
  1. 加载bonding模块
modprobe --first-time bonding
# 没有提示说明加载成功;
# 如果出现modprobe: ERROR: could not insert 'bonding': Module already in kernel说明你已经加载了这个模块, 就不用管了

# 也可以使用lsmod | grep bonding查看模块是否被加载
lsmod | grep bonding
bonding               136705  0 
  1. 创建bond接口的配置文件
    ==注意==:bond名称可以随意,这里可以写成需要统一的网卡名,如: enp1s0f0
vim /etc/sysconfig/network-scripts/ifcfg-enp1s0f0

TYPE=Bond
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
DEVICE=enp1s0f0
ONBOOT=yes
IPADDR=10.10.129.156
NETMASK=255.255.255.0
GATEWAY=10.10.129.254
BONDING_MASTER=yes
BONDING_OPTS="mode=1 miimon=100"

-----
vim /etc/sysconfig/network-scripts/ifcfg-ens192

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
DEVICE=ens192
ONBOOT=yes
MASTER=enp1s0f0
  1. 重启网络服务
systemctl restart network

Ubuntu-16.04/Kylin-4.4.58

Ubuntu双网卡绑定

  1. 安装ifenslave:
sudo apt-get install ifenslave
echo "bonding" >>/etc/modules
  1. 网卡绑定配置:
vim /etc/network/interfaces

auto enp6s0f2
  iface enp6s0f2 inet static
  address 10.10.103.33
  netmask 255.255.255.0
  gateway 10.10.103.254
  bond-slaves none
  bond-mode active-backup
  bond-miimon 100

auto eth2
  iface eth2 inet manual
  bond-master enp6s0f2
  bond-primary eth2
  1. 配置完成后重启网卡(如果重启不生效,请重启服务器):
/etc/init.d/networking restart

重启过程中可能出现 option mode: ubable to set because the bond device is up 错误,这时候删除已经存在的网卡bond上的ip,并重试

ip addr del 10.10.103.33/24 dev enp6s0f2
/etc/init.d/networking restart

你可能感兴趣的:(kolla-ansible 不同节点之间网卡名称不相同的解决方案)