Oracle RAC与网卡绑定

    技术2025-12-14  8

     

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

     

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

     

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

          

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

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

    eth2eth3 绑定成bond1,作为public-ip

     

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

     

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

    [root@raw1 bin]# ./oifcfg getif

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

    -- 重新添加

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

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

     

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

     

    如:

    [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/tianlesoftware/archive/2010/03/09/5362925.aspx

     

     

           下面来看一下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

    绑定网卡的启动与关闭:

         # ifdown  bond0

         #ifup       bond0

     

     

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

     

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

    1#ifdown eth0

           此时bond0还可以正常连接。

    2#ifdown eth1

           此时bond0 的连接也中断。

    3#ifup eth0

           bond0 又恢复正常。

     

     

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

     

     

     

     

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

    QQ:492913789

    Email:ahdba@qq.com

    Blog: http://www.cndba.cn/dave

    网上资源: http://tianlesoftware.download.csdn.net

    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

    DBA1 群:62697716(); DBA2 群:62697977()

    DBA3 群:62697850   DBA 超级群:63306533;    

    聊天 群:40132017

    --加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

    最新回复(0)