https://onitroad.com 更多教程
标志的含义
我们会在“ifconfig -a”命令的输出中看到诸如 NOFAILOVER、DEPRECATED、STANDBY 等标志。
这些标志和启用它们的参数的含义是:
deprecated -> 只能用作 IPMP 的测试地址,不能用于应用程序的任何实际数据传输。
-failover -> 在接口出现故障时不会进行故障转移
备用 -> 使接口用作备用
测试 IPMP 故障转移
我们可以使用 if_mpadm 命令非常轻松地检查接口的故障和修复。
"-d" 分离接口,而 "-r" 重新连接它。
# if_mpadm -d ce0 # if_mpadm -r ce0
什么是基于链接的 IPMP?
mpathd 守护程序使用的故障检测和修复方法将 IPMP 区分为基于探测或者基于链接。
在基于链接的 IPMP 的情况下:
- mpathd 守护进程使用接口内核驱动程序检查接口的状态。
- in.mpathd 守护进程观察接口上 IFF_RUNNING 标志的变化以确定故障。
- 故障检测不需要测试地址。
- 默认启用(如果接口支持)。
- 基于链路的 IPMP 的优点之一是它不依赖于外部来源发送 ICMP 回复来确保链路状态,它还节省了 IP 地址,因为它不需要任何测试地址来进行故障检测
最常用的基于链路的 IPMP 配置
基于单接口Link的IPMP配置
这不是一个非常有用的配置,因为它实际上并不提供高可用性。
但只能用于在接口失败时得到提示。
命令行 :
# ifconfig e1000g0 plumb 192.168.1.2 netmask + broadcast + group IPMPgroup up
对于跨重新启动的持久配置,请编辑文件:
/etc/hostname.e1000g0 192.168.1.2 netmask + broadcast + group IPMPgroup up
失败前:
# ifconfig -a lo0: flags=2001000849[UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL] mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 e1000g0: flags=1000843[UP,BROADCAST,RUNNING,MULTICAST,IPv4] mtu 1500 index 13 inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255 groupname IPMPgroup ether 0:c:29:f6:ef:67
失败后:
# ifconfig -a lo0: flags=2001000849[UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL] mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 e1000g0: flags=11000803[UP,BROADCAST,MULTICAST,IPv4,FAILED] mtu 1500 index 13 inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255 groupname IPMPgroup ether 0:c:29:f6:ef:67
多接口Link based IPMP配置
主主模式(Active Active) 配置
命令行 :
# ifconfig e1000g0 plumb 192.168.1.2 netmask + broadcast + group IPMPgroup up # ifconfig e1000g1 plumb group IPMPgroup up
对于跨重新启动的持久配置,请编辑文件:
/etc/hostname.e1000g0 192.168.1.2 netmask + broadcast + group IPMPgroup up /etc/hostname.e1000g1 group IPMPgroup up
失败前:
# ifconfig -a lo0: flags=2001000849[UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL] mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 e1000g0: flags=1000843[UP,BROADCAST,RUNNING,MULTICAST,IPv4] mtu 1500 index 14 inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255 groupname IPMPgroup ether 0:c:29:f6:ef:67 e1000g1: flags=1000843[UP,BROADCAST,RUNNING,MULTICAST,IPv4] mtu 1500 index 15 inet 0.0.0.0 netmask ff000000 groupname IPMPgroup ether 0:c:29:f6:ef:71
失败后
# ifconfig -a lo0: flags=2001000849[UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL] mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 e1000g0: flags=19000802[BROADCAST,MULTICAST,IPv4,NOFAILOVER,FAILED] mtu 0 index 14 inet 0.0.0.0 netmask 0 groupname IPMPgroup ether 0:c:29:f6:ef:67 e1000g1: flags=1000843[UP,BROADCAST,RUNNING,MULTICAST,IPv4] mtu 1500 index 15 inet 0.0.0.0 netmask ff000000 groupname IPMPgroup ether 0:c:29:f6:ef:71 e1000g1:1: flags=1000843[UP,BROADCAST,RUNNING,MULTICAST,IPv4] mtu 1500 index 15 inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255
主备模式(Active standby)配置
命令行 :
# ifconfig e1000g0 plumb 192.168.1.2 netmask + broadcast + group IPMPgroup up # ifconfig e1000g1 plumb group IPMPgroup standby up
对于跨重新启动的持久配置,请编辑文件:
/etc/hostname.e1000g0 192.168.1.2 netmask + broadcast + group IPMPgroup up /etc/hostname.e1000g1 group IPMPgroup standby up
失败前
# ifconfig -a lo0: flags=2001000849[UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL] mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 e1000g0: flags=1000843[UP,BROADCAST,RUNNING,MULTICAST,IPv4] mtu 1500 index 20 inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255 groupname IPMPgroup ether 0:c:29:f6:ef:67 e1000g0:1: flags=1000842[BROADCAST,RUNNING,MULTICAST,IPv4] mtu 1500 index 20 inet 0.0.0.0 netmask 0 e1000g1: flags=69000842[BROADCAST,RUNNING,MULTICAST,IPv4,NOFAILOVER,STANDBY,INACTIVE] mtu 0 index 21 inet 0.0.0.0 netmask 0 groupname IPMPgroup ether 0:c:29:f6:ef:71
失败后
# ifconfig -a lo0: flags=2001000849[UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL] mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 e1000g0: flags=19000802[BROADCAST,MULTICAST,IPv4,NOFAILOVER,FAILED] mtu 0 index 20 inet 0.0.0.0 netmask 0 groupname IPMPgroup ether 0:c:29:f6:ef:67 e1000g1: flags=21000842[BROADCAST,RUNNING,MULTICAST,IPv4,STANDBY] mtu 1500 index 21 inet 0.0.0.0 netmask 0 groupname IPMPgroup ether 0:c:29:f6:ef:71 e1000g1:1: flags=21000843[UP,BROADCAST,RUNNING,MULTICAST,IPv4,STANDBY] mtu 1500 index 21 inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255
mpathd 配置文件
mpathd 守护进程负责检测接口故障。
它使用配置文件 /etc/default/mpathd 来设置各种 IPMP 参数。
# cat /etc/default/mpathd # #pragma ident "@(#)mpathd.dfl 1.2 00/07/17 SMI" # # Time taken by mpathd to detect a NIC failure in ms. The minimum time # that can be specified is 100 ms. # FAILURE_DETECTION_TIME=10000 # # Failback is enabled by default. To disable failback turn off this option # FAILBACK=yes # # By default only interfaces configured as part of multipathing groups # are tracked. Turn off this option to track all network interfaces # on the system # TRACK_INTERFACES_ONLY_WITH_GROUPS=yes
mpathd 配置文件中的重要参数是:
- FAILURE_DETECTION_TIME : mpathd 检测 NIC 故障所用的时间(以毫秒为单位)(默认值 10 秒)
- FAILBACK : 在故障链接可用后启用或者禁用故障回复(默认值是)
- TRACK_INTERFACES_ONLY_WITH_GROUPS 如果打开接口配置为 IPMP 的一部分只被监控(默认值是)
in.mpathd 守护进程重新读取配置文件的命令是:
# pkill -HUP in.mpathd
日期:2020-09-17 00:15:06 来源:oir作者:oir