Oracle RAC 与 网卡绑定

RAC对节点之间的内部通信要求比较高,如果内部节点通信出现问题,可能会导致节点的重启。所以保证RAC节点之间的正常也是一项重要的工作。

如果只用单网卡来作为节点之间的通信,就不能100%的保证节点之间的通信正常,只要这个网卡出现问题,RAC节点之间的通信就会出现问题。所以这里就提到了网卡绑定,就是将多个物理网卡绑定到一个虚拟网卡上,由虚拟网卡提供服务。

网卡绑定有几种,常用主备模式和负载均衡模式。但是在Linux下,负载均衡的效果并不明显。网上的说法,AIX的etherchannel和hpux的apa能做到load balance。这个没有条件去做测试。

先举例说明一下,假设一个服务器上有4块网卡:eth0,eth1,eth2,eth3.

可以将eth0和eth1绑定成bond0.作为RAC的private-ip。提供内部通信。

将eth2和eth3绑定成bond1,作为public-ip。

这个如果在RAC安装之前就进行了绑定,就可以使用bond0和bond1来安装RAC.如果是在RAC安装之后进行的绑定,还需要修改RAC IP的相关参数。

如对private网卡进行绑定,修改如下:

[root@raw1 bin]# ./oifcfg getif

[root@raw1 bin]# ./oifcfg delif -global eth1

--重新添加

[root@raw1 bin]# ./oifcfg setif -globaleth1/192.168.1.0:cluster_interconnect

--这里原来是eth1,就需要修改成对应的绑定地址,如bond0

修改public IP的绑定也这样修改,另外还需要修改一下VIP。因为VIP里指定的public的IP.

如:

[root@raw1 bin]# ./srvctl modify nodeapps -n raw1 -A 10.85.10.222/255.255.255.0/eth0--将eth0改成bond1

[root@raw1 bin]# ./srvctl modify nodeapps -n raw2 -A 10.85.10.223/255.255.255.0/eth0--将eth0改成bond1

具体的RAC IP的修改可以参考我的Blog:

Oracle RAC修改IP地址

http://blog.csdn.net/xujinyang/article/details/6829618

下面来看一下Linux Redhat 5.4下的一个绑定测试。把2个网卡绑定成bond0。

1.在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0

[root@singledb doc]# cat /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

BOOTPROTO=none

BROADCAST=192.168.6.255

IPADDR=192.168.6.200

NETMASK=255.255.255.0

ONBOOT=yes

TYPE=Ethernet

GATEWAY=192.168.6.254

USERCTL=no

IPV6INIT=no

PEERDNS=yes

参数说明:

DEVICE=物理设备名
IPADDR=IP地址
NETMASK=掩码值
NETWORK=网络地址
BROADCAST=广播地址
GATEWAY=网关地址
ONBOOT=[yes|no](引导时是否激活设备)
USERCTL=[yes|no](非root用户是否可以控制该设备)
BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议)
HWADDR =你的MAC地址

2.分别修改原来网卡配置文件的信息,删除其中的IP地址、子网掩码等信息

[root@singledb doc]#cat /etc/sysconfig/network-scripts/ifcfg-eth0

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

TYPE=Ethernet

[root@singledb doc]#cat /etc/sysconfig/network-scripts/ifcfg-eth1

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

TYPE=Ethernet

[root@singledb doc]#

3.配置驱动模块参数:/etc/modprobe.conf

在/etc/modules.conf文件中添加如下内容:

[root@singledb doc]# cat /etc/modprobe.conf

alias eth0 pcnet32

alias eth1 pcnet32

alias scsi_hostadapter mptbase

alias scsi_hostadapter1 mptspi

alias scsi_hostadapter2 ata_piix

alias peth0 pcnet32

alias bond0 bonding

options bond0 miimon=100 mode=0

说明:

(1)、miimon是链路监测的时间间隔单位是毫秒,miimon=100的意思就是,每100毫秒检测网卡和交换机之间是否连通,如不通则使用另外的链路。

(2)、mode=0表示负载均衡方式,两块网卡都工作,需要交换机作支持

mode=1表示冗余方式,网卡只有一个工作,一个出问题启用另外的

mode=6表示负载均衡方式,两块网卡都工作,不需要交换机作支持

看了一个网友的测试,在mode=6下有丢包现在。选择mode =0就可以了。

Linux双网卡绑定测试

http://www.cnblogs.com/killkill/archive/2009/02/15/1390717.html

4.设置开机绑定

先在Linux的Terminal里执行一下命令:

ifenslave bond0 eth1 eth0

将虚拟网卡进行绑定,然后将该参数添加到/etc/rc.local中,让开机自动绑定:

[root@singledb doc]# cat /etc/rc.local

#!/bin/sh

touch /var/lock/subsys/local

ifenslave bond0 eth0 eth1

5.重新网络

[root@singledb ~]# service network restart

绑定网卡的启动与关闭:

# ifdownbond0

#ifup bond0

现在我们可以做测试,比如拔掉某个网卡的网线,或者ifdown。bond0还是可以正常工作的。

我是在虚拟机上做的测试。

(1)#ifdown eth0

此时bond0还可以正常连接。

(2)#ifdown eth1

此时bond0的连接也中断。

(3)#ifup eth0

bond0又恢复正常。

这里只是对Redhat 5.4 Linux下的一个测试,Unix下方法又不一样,等以后有环境了,在测试一下。

------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值