How to configure Solaris 10 Link Based IPMP
What’s a Link Based IPMP ?
The failure detection and repair method used by the mpathd daemon differentiates the IPMP as probe based or link based. In case of link based IPMP :
mpathd Configuration file
mpathd daemon is responsible to detect an interface failure . It uses a configuration file /etc/default/mpathd to set various IPMP parameters.
# 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
The important parameters in mpathd configuration file are :
1. FAILURE_DETECTION_TIME : Time taken by mpathd to detect a NIC failure in ms (default value – 10 seconds)
2. FAILBACK : To enable or disable failback after the failed link becomes available (default vaule – yes)
3. TRACK_INTERFACES_ONLY_WITH_GROUPS – If turned on interfaces configured as part of IPMP are only monitored (default vaule – yes)
1. FAILURE_DETECTION_TIME : Time taken by mpathd to detect a NIC failure in ms (default value – 10 seconds)
2. FAILBACK : To enable or disable failback after the failed link becomes available (default vaule – yes)
3. TRACK_INTERFACES_ONLY_WITH_GROUPS – If turned on interfaces configured as part of IPMP are only monitored (default vaule – yes)
The command for in.mpathd daemon to re-read the configuration file is :
# pkill -HUP in.mpathd
Meanings of FLAGs
You would see flags such as NOFAILOVER, DEPRECATED, STANDBY etc.. in the output of “ifconfig -a” command. The meanings of these flags and parameters to enable them are:
Testing IPMP failover
We can check the failure and repair of an interface very easily using if_mpadm command. “-d” detaches the interface whereas “-r” reattaches it.
We can check the failure and repair of an interface very easily using if_mpadm command. “-d” detaches the interface whereas “-r” reattaches it.
# if_mpadm -d ce0 # if_mpadm -r ce0
Most commonly used Link-Based IPMP configurations
1. Single interface Link based IPMP configuration
This is not a very useful configuration, as it does not actually provide high availability. But can be used only to get intimated when an interface is failed.
Command line :
This is not a very useful configuration, as it does not actually provide high availability. But can be used only to get intimated when an interface is failed.
Command line :
# ifconfig e1000g0 plumb 192.168.1.2 netmask + broadcast + group IPMPgroup up
For persistent configuration across reboots edit the files :
/etc/hostname.e1000g0 192.168.1.2 netmask + broadcast + group IPMPgroup up
Before failure :
# 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
After failure :
# 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
2. Multiple interface Link based IPMP configuration
a. Active – Active configuration
Command line :
a. Active – Active configuration
Command line :
# ifconfig e1000g0 plumb 192.168.1.2 netmask + broadcast + group IPMPgroup up # ifconfig e1000g1 plumb group IPMPgroup up
For persistent configuration across reboots edit the files :
/etc/hostname.e1000g0 192.168.1.2 netmask + broadcast + group IPMPgroup up /etc/hostname.e1000g1 group IPMPgroup up
Before Failure :
# 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
After Failure
# 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
b. Active standby Configuration
Command line :
Command line :
# ifconfig e1000g0 plumb 192.168.1.2 netmask + broadcast + group IPMPgroup up # ifconfig e1000g1 plumb group IPMPgroup standby up
For persistent configuration across reboots edit the files :
/etc/hostname.e1000g0 192.168.1.2 netmask + broadcast + group IPMPgroup up /etc/hostname.e1000g1 group IPMPgroup standby up
Before failure
# 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
After failure
# 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
No comments:
Post a Comment