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 網絡卡進行繫結,修改如下:
[[email protected] bin]# ./oifcfg getif
[[email protected]
-- 重新新增
[[email protected] bin]# ./oifcfg setif -global eth1/192.168.1.0:cluster_interconnect
--這裡原來是eth1,就需要修改成對應的繫結地址,如bond0
修改public IP的繫結也這樣修改,另外還需要修改一下VIP。因為VIP裡指定的public的IP.
如:
[[email protected] bin]# ./srvctl modify nodeapps -n raw1 -A 10.85.10.222/255.255.255.0/eth0--
[[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表空間和資料檔案的關係,否則拒絕申請