1. 程式人生 > >Oracle RAC 與 網絡卡繫結

Oracle RAC 與 網絡卡繫結

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 網絡卡進行繫結,修改如下:

[[email protected] bin]# ./oifcfg getif

[[email protected]

bin]# ./oifcfg delif -global eth1

-- 重新新增

[[email protected] bin]# ./oifcfg setif -global eth1/192.168.1.0:cluster_interconnect

--這裡原來是eth1,就需要修改成對應的繫結地址,如bond0

修改public IP的繫結也這樣修改,另外還需要修改一下VIP因為VIP裡指定的publicIP.

如:

[[email protected] bin]# ./srvctl modify nodeapps -n raw1 -A 10.85.10.222/255.255.255.0/eth0--

eth0 改成bond1

[[email protected] bin]# ./srvctl modify nodeapps -n raw2 -A 10.85.10.223/255.255.255.0/eth0--eth0 改成bond1

具體的RAC IP 的修改可以參考我的Blog

Oracle RAC 修改 IP 地址

下面來看一下Linux Redhat 5.4 下的一個繫結測試。 2個網絡卡繫結成bond0

1. /etc/sysconfig/network-scripts/下建立虛擬網絡卡bond0的配置檔案ifcfg-bond0

[[email protected] 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 地址、子網掩碼等資訊

[[email protected] doc]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

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

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

TYPE=Ethernet

[[email protected] doc]# cat /etc/sysconfig/network-scripts/ifcfg-eth1

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

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

TYPE=Ethernet

[[email protected] doc]#

3. 配置驅動模組引數:/etc/modprobe.conf

/etc/modules.conf檔案中新增如下內容:

[[email protected] 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 就可以了。

4. 設定開機繫結

先在Linux Terminal裡執行一下命令:

ifenslave bond0 eth1 eth0

將虛擬網絡卡進行繫結,然後將該引數新增到/etc/rc.local中,讓開機自動繫結:

[[email protected] doc]# cat /etc/rc.local

#!/bin/sh

touch /var/lock/subsys/local

ifenslave bond0 eth0 eth1

5. 重新網路

[[email protected] ~]# 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:[email protected]

網上資源: http://tianlesoftware.download.csdn.net

相關視訊:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

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

DBA3 群:62697850DBA 超級群:63306533;

聊天 群:40132017

--加群需要在備註說明Oracle表空間和資料檔案的關係,否則拒絕申請