免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2955 | 回复: 11
打印 上一主题 下一主题

多网口的IP Network Multipathing failover 互为热备份实例篇 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-27 22:10 |只看该作者 |正序浏览
以下是本人在某工程中所应用到的、切实可行的案例。
(注意 solaris 的版本要求是 solaris 8 10/00后,包括该版本)
hme0 与hme1 两块物理网卡互为热备份的设置
其配置步骤如下:
1) 修改EPROM中local-mac-address?= 的参数值:
          #eeprom local-mac-address?=true  

2) 建立/etc/notrouter文件:
         #touch  /etc/notrouter

3) 建立/etc/init.d/rdisc文件,并将其与/etc/rc2.d/S70rdisc建立硬连接:
   #cat >;/etc/init.d/rdisc
case "$1" in
  'start')
          if [ -x /usr/bin/pgrep ]
          then
       /usr/bin/pgrep -x -u 0 in.rdisc >;/dev/null 2>;&1 || \
                    /usr/sbin/in.rdisc -f >;/dev/msglog 2>;&1
          else
logger cannot execute /usr/bin/pgrep, in.rdisc not started.
          fi
                ;;
   'stop')
          /usr/bin/pkill -x -u 0 in.rdisc
                ;;
        *)
                echo "Usage:  $0 {start | stop}"
                ;;
esac
exit 0  

最后按“CTRL+D”组合键。

#ln /etc/init.d/rdisc  /etc/rc2.d/S70rdisc

4) 编辑 /etc/hostname.hme0  和 /etc/hostname.hme1 文件:   
双网卡热备份的配置 :
          /etc/hostname.hme0的内容:
hostnameA
        6.40.5.129 netmask + broadcast + group radius failover up \
      addif 6.40.5.130 deprecated -failover netmask + broadcast + up

            /etc/hostname.hme1的内容:
hostnameA-slave
6.40.5.131 netmask + broadcast + group radius failover up \
addif 6.40.5.132 deprecated -failover netmask + broadcast +  up   
对客户公布的IP地址为 6.40.5.129和6.40.5.131(6.40.5.130和 6.40.5.132不为应用程序所使用)。两个网卡的逻辑组名要求一致,这里组名是radius 。

当hme0链路出现问题时,hme1自动生成一个hme1:2的逻辑网卡,其IP地址为6.40.5.129,当hme0恢复正常后,hme1:2 自动撤掉,hme0使用原来的IP地址6.40.5.129。

同理,当hme1链路出现问题时,hme0:2接替hme1工作。
(注意,该处的所有的IP地址要求处于同一网段,)

5)配置文件 /etc/default/mpathd 中的内容基本上可以不用改动,如果想加快
failover的时间,可以将FAILURE_DETECTION_TIME的值设小点,

6) reboot机器 ,使参数生效
  #init 6   
  重启后,可通过 ps 看到有/sbin/in.mpathd进程在后台运行。

论坛徽章:
0
12 [报告]
发表于 2003-06-08 22:24 |只看该作者

多网口的IP Network Multipathing failover 互为热备份实例篇

不知大家有没有更好的经验?

论坛徽章:
0
11 [报告]
发表于 2003-06-08 22:21 |只看该作者

多网口的IP Network Multipathing failover 互为热备份实例篇

我的配的IPMP的工作记录

SunFire V480 Server
自带两个10/100/1000M自适应的网口,设备名分别是ce0和ce1;
在PCI槽中又扩了一块四口网卡X1034A,设备名分别是qfe0,qfe1,qfe2,qfe3;
用来做ipmp(IP MultiPath)的是ce0和qfe0,其中ce0为主网口,IP为220.192.216.x,提供对外服务;而qfe0设置为备用网口;
ce0和qfe0组成一个名为ipmp_group的NIC Group;
IP 192.168.0.1和192.168.0.2是为了检测用途的两个IP,用来测试所在网卡的状态;
/sbin/in.mpathd是检测、恢复、回复多个网卡的系统进程。

在/etc/rc2.d下创建如下启动脚本,并重新启动机器:
root@AAA1# more /etc/rc2.d/S99ipmp
ifconfig qfe0 plumb
ifconfig ce0 group ipmp_group
ifconfig qfe0 group ipmp_group
ifconfig ce0 addif 192.168.0.1 -failover deprecated up
ifconfig qfe0 192.168.0.2 -failover deprecated standby up

将主网口ce0的网线拔下,出现如下情况:
root@AAA1#
Dec 22 15:44:24 AAA1 genunix: WARNING: ce0: fault detected external to device; service degraded
Dec 22 15:44:24 AAA1 genunix: WARNING: ce0: xcvr addr:0x01 - link down
Dec 22 15:44:32 AAA1 in.mpathd[339]: NIC failure detected on ce0 of group ipmp_group
Dec 22 15:44:32 AAA1 in.mpathd[339]: Successfully failed over from NIC ce0 to NIC qfe0

这时对外服务IP成功的从ce0切换到qfe0,可以用ifconfig命令查看:
root@AAA1# ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4>; mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
ce0: flags=19000842<BROADCAST,RUNNING,MULTICAST,IPv4,NOFAILOVER,FAILED>; mtu 0 index 2
        inet 0.0.0.0 netmask 0
        groupname ipmp_group
        ether 0:3:ba:29:87:4b
ce0:1: flags=19040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,FAILED>; mtu 1500 index 2
        inet 192.168.0.1 netmask ffffff00 broadcast 192.168.0.255
qfe0: flags=29040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY>; mtu 1500 index 3
        inet 192.168.0.2 netmask ffffff00 broadcast 192.168.0.255
        groupname ipmp_group
        ether 0:3:ba:29:87:4b
qfe0:1: flags=21000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,STANDBY>; mtu 1500 index 3
        inet 220.192.216.x netmask fffffff0 broadcast 220.192.216.111

再测试恢复过程,将ce0的网线重新插好,出现如下情况:
root@AAA1#
Dec 22 15:46:18 AAA1 genunix: NOTICE: ce0: fault cleared external to device; service available
Dec 22 15:46:18 AAA1 genunix: NOTICE: ce0: xcvr addr:0x01 - link up 10 Mbps half duplex
Dec 22 15:46:32 AAA1 in.mpathd[339]: NIC repair detected on ce0 of group ipmp_group
Dec 22 15:46:32 AAA1 in.mpathd[339]: Successfully failed back to NIC ce0

这时再用ifconfig命令查看,发现对外服务IP已经成功的从qfe0切换回ce0:
root@AAA1# ifconfig -a
lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4>; mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
ce0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4>; mtu 1500 index 2
        inet 220.192.216.x netmask fffffff0 broadcast 220.192.216.111
        groupname ipmp_group
        ether 0:3:ba:29:87:4b
ce0:1: flags=9040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER>; mtu 1500 index 2
        inet 192.168.0.1 netmask ffffff00 broadcast 192.168.0.255
qfe0: flags=69040843<UP,BROADCAST,RUNNING,MULTICAST,DEPRECATED,IPv4,NOFAILOVER,STANDBY,INACTIVE>; mtu 1500 index 3
        inet 192.168.0.2 netmask ffffff00 broadcast 192.168.0.255
        groupname ipmp_group
        ether 0:3:ba:29:87:4b
root@AAA1#

但是最后发现一个问题,如果本网段内没有一台支持Multicast的设备作为in.mpathd的测试设备的话,回导致该NIC group内的所有网口全部fail。

Dec 23 12:27:36 AAA1 in.mpathd[336]: All Interfaces in group ipmp_group have failed

只有在测试是网段有个能响应IP Multicast的设备,ipmp_group才能恢复:

Dec 23 12:32:14 AAA1 in.mpathd[336]: At least 1 interface (qfe0) of group ipmp_group has repaired
Dec 23 12:32:14 AAA1 in.mpathd[336]: NIC repair detected on qfe0 of group ipmp_group
Dec 23 12:32:15 AAA1 in.mpathd[336]: NIC repair detected on ce0 of group ipmp_group
Dec 23 12:32:15 AAA1 in.mpathd[336]: Successfully failed back to NIC ce0
Dec 23 12:32:15 AAA1 in.mpathd[336]: Improved failure detection time 16660 ms
Dec 23 12:32:15 AAA1 in.mpathd[336]: Improved failure detection time 10000 ms

论坛徽章:
0
10 [报告]
发表于 2003-06-08 22:04 |只看该作者

多网口的IP Network Multipathing failover 互为热备份实例篇

感觉有些问题,在此提出一个疑问,请楼主及大家解惑,感谢!

如果一台机器的话,那么,我对外公布的IP地址按照常规的方式来说,应该只有一个,而在这里却有两个,这是为什么?不能在这个group上做一个IP地址吗?

论坛徽章:
0
9 [报告]
发表于 2003-05-28 10:55 |只看该作者

多网口的IP Network Multipathing failover 互为热备份实例篇

其中的netmask和broadcast不用实际值替换 "+"就是表示让系统自动计算

只要在安装OS时, /etc/netmasks 设置正确就可以了。

论坛徽章:
0
8 [报告]
发表于 2003-05-28 10:44 |只看该作者

多网口的IP Network Multipathing failover 互为热备份实例篇

[quote]原帖由 "gztommyt"]6.40.5.129 netmask + broadcast + group radius failover up [/quote 发表:


其中的netmask和broadcast要用实际值替换吗?

论坛徽章:
0
7 [报告]
发表于 2003-05-28 10:01 |只看该作者

多网口的IP Network Multipathing failover 互为热备份实例篇

http://www.eng.auburn.edu/~doug/howtos/multipathing.html

论坛徽章:
0
6 [报告]
发表于 2003-05-28 09:48 |只看该作者

多网口的IP Network Multipathing failover 互为热备份实例篇

对啊,能讲讲连接方面的实践吗?

论坛徽章:
0
5 [报告]
发表于 2003-05-28 09:47 |只看该作者

多网口的IP Network Multipathing failover 互为热备份实例篇

可以连接在同一交换机上,此时的交换机可以用hub代替。

当连接在同一交换机时,只是起到网卡的冗余备份,此时还存在单点故障(交换机)。如果想消除单点故障,可以用两台交换机做HA (如cisco 两台cat6509间 起HSRP,sun上的hme0接cat6509-1,sun 的hme1 接cat6509-2)。

论坛徽章:
0
4 [报告]
发表于 2003-05-28 09:33 |只看该作者

多网口的IP Network Multipathing failover 互为热备份实例篇

机器的网线连接是怎么连的????
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP