DEVICE=bond0
BOOTPROTO=static
BROADCAST=192.168.100.255
IPADDR=192.168.100.21
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
編輯 /etc/modules.conf 文件,加入如下一行內容以使系統在啟動時載入bonding模塊,對外虛擬網路介面設備為 bond0加入下列兩行
# vi /etc/modules.conf
alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0
說明:miimon是用來進行鏈路監測的. 比如:miimon=100,那麼系統每100ms監測一次路連接狀態,如果有一條線路不通就轉入另一條線路;mode的值表示工作模式,共有0、1、2、3四種模式,常用的為0,1兩種:mode=0表示load balancing (round-robin)為負載均衡方式,兩塊網卡都工作.mode=1表示fault-tolerance (active-backup)提供冗餘功能,工作方式是主備的工作方式,默認情況下只有一塊網卡工作,另一塊做備份,primary指定啟動后active的網卡.
由環境描述可知192.168.100.0網段是跑業務的,我們需要指定默認路由
# more /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=am1
GATEWAY=192.168.100.2
# /etc/init.d/network restart
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v2.6.3-rh (June 8, 2005) Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0 Slave Interface: eth0
MII Status: up
Link Failure Count: 1
Permanent HW addr: xx:xx:xx:xx:xx:xx Slave Interface: eth1
MII Status: up
Link Failure Count: 1
Permanent HW addr: xx:xx:xx:xx:xx:xx
# /etc/init.d/rgmanager stop
#/etc/init.d/fenced stop
#/etc/init.d/cman stop
#/etc/init.d/ccsd stop
修改/usr/share/system-config-cluster/FaildomController.py文件,第213行少一個「=」,該問題為cluser自身bug.5.編寫集群啟動和關閉腳本:
#more /root/cluster.sh #!/bin/sh start() {開始配置Cluster:(使用的是RHCSV5版本的system-config-cluster工具)
/etc/init.d/ccsd start
/etc/init.d/cman start
/etc/init.d/fenced start
/etc/init.d/rgmanager start
} stop() {
/etc/init.d/rgmanager stop
/etc/init.d/fenced stop
/etc/init.d/cman stop
/etc/init.d/ccsd stop
} status() {
/etc/init.d/rgmanager status
/etc/init.d/fenced status
/etc/init.d/cman status
/etc/init.d/ccsd status
} case "$1" in
start)
start $1
;;
stop)
stop $1
exit 0
;;
restart|reload)
stop $1
start $1
RETVAL=$?
;;
status)
status
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
exit 1
esac 修改許可權 #chmod 700 /root/cluster.sh
1.在Xwindow下運行
# system-config-cluser
打開圖形化配置工具:
2.選擇Create New Configuration按鈕,然後輸入文件名點和多播地址,然後點擊「確定」. 再選擇左邊的Cluster,並選擇右下"Edit Cluster Properties" 調出"cluster Properies" 配置Cluster的名稱和相關屬性. "PostJoinDelay" 柵進程接收新節點的加入請求后等待節點確認加入的延遲秒數,默認值為3,典型的設置為20至30,這個根據你的網路和集群的實際情況而定."PostFailDelay" 柵進程發現節點失效后將節點踢出錯誤恢復域的等待延遲時間,默認值為0代表立即踢出不延時,這個值要按你集群網路的實際情況而定.
3.選中Cluster Nodes,這裡就是加入成員節點的,點擊Add a Cluster Node,輸入amcluster1點OK,如下圖,Node Name需要和/etc/hosts文件中配置的機器名相同 同理加入amcluster2. 4.選中Fence Devices,點擊Add a Fence Device,如下圖,Fence設備需要根據實際情況進行選擇配置,這次安裝中IBM刀片伺服器使用IBM Blade Center管理,修改後的IP是192.168.110.47,用戶名是USERID,密碼是PASSW0RD, 點OK.
6.創建失效域,添加對應節點,如圖,選中Failover Domains,點擊右下角的Create a Failover Domain.在彈出的對話框中輸入失效域的名稱,這裡我們輸入AMHA保存后. 7.將失效域成員節點添加進去 右邊的兩個打勾選向分別是 "RestrictFailover Domains members" 以及 "Priotitzed List".如果妳只有兩台, 打勾第一項「Restrict Failover Domains members」 就可以了,這項是只允許這兩台做輪替.另外一項"Priotitzed List"則是在你有兩台以上的伺服器,需要分別設定輪替的優先順序時需要的.當你打鉤"Priotitzed List"后可以使用"Adjust Priority" 調整多節點的替換優先順序 8.創建資源組 選中Resources,點擊右下角的Create a Resources,這裡選擇Create a Resource,然後選擇IP Address,填寫Float IP進去. 然後將tomcat的啟動腳本添加進去,如下圖所示: 9.創建服務 選中Service,點擊右下角的Create a Service,在彈出的對話框中創建Service,如下圖 點擊OK后,做如下配置 注意: 1.紅色圈出的下拉框要選擇我們剛才創建的失效域名稱AMHA 2.藍色圈出的部分,若選擇Restart,則服務發生異常時,cluster嘗試把該服務重啟;若選擇Relocate,則服務發生異常時,cluster直接嘗試切換服務至另一個節點上. 配置完這兩步,點擊左下角的 彈出如下對話框 依次增加要切換的服務即可. 在這裡需要提醒各位最好將服務腳本放置在IP下面,只有網卡起來了才 能服務,邏輯上才正確. 操作流程:選擇Create a new resource for this service 然後選擇IP Address,這樣地址資源就載入好了,選中剛建立的地址,再在下面選擇Attach a new Private Resource to the Selection,這裡選擇Script並添加我們需要服務的腳本. 10.保存配置並同步到備機 最終的cluster.conf文件內容應該如下結構: <?xml version="1.0" ?>
<cluster alias="AMHA" config_version="2" name="AMHA">
<fence_daemon post_fail_delay="0" post_join_delay="3"/>
<clusternodes>
<clusternode name="amcluster1" nodeid="1" votes="1">
<multicast addr="225.0.0.1" interface="bond0"/>
<fence>
<method name="1">
<device blade="1" name="AMM"/>
</method>
</fence>
</clusternode>
<clusternode name="amcluster2" nodeid="2" votes="1">
<multicast addr="225.0.0.1" interface="bond0"/>
<fence>
<method name="1">
<device blade="2" name="AMM"/>
</method>
</fence>
</clusternode>
</clusternodes>
<cman expected_votes="1" two_node="1">
<multicast addr="225.0.0.1"/>
</cman>
<fencedevices>
<fencedevice agent="fence_bladecenter" ipaddr="192.168.110.47" login="USERID" name="AMM" passwd="PASSW0RD"/>
</fencedevices>
<rm>
<failoverdomains>
<failoverdomain name="AMHA" ordered="0" restricted="1">
<failoverdomainnode name="amcluster1" priority="1"/>
<failoverdomainnode name="amcluster2" priority="1"/>
</failoverdomain>
</failoverdomains>
<resources>
<ip address="192.168.100.18" monitor_link="1"/>
<script file="/etc/init.d/tomcat" name="tomcat"/>
</resources>
<service autostart="1" domain="AMHA" name="AMHA">
<ip ref="192.168.100.18">
<script ref="tomcat"/>
</ip>
</service>
</rm>
</cluster> 可以通過 # scp /etc/cluster/cluster.conf root@amcluster2:/etc/cluster
也可以通過systemconfigcluster圖形集群配置工具中可以簡單的點一下」Send to」按鈕來傳. 也可以通過RHCS提供的工具: 1.# ccs_tool update /etc/cluster/cluster.conf,告知ccs升級配置文件版本. 2.# cman_tool status | grep 「Config version」,查出你cluster.conf文件的版本. 觀察返回的東東是否和你的新版本一樣,否的話就需要通過下面的命令來更新. # cman_tool version-r new_version_number 3.驗證一下是否是最新就OK了. 以上操作時RHEL4中的,在RHEL5中用戶只需要使用ccs_tool update /etc/cluster/cluster.conf就可以了.到這裡使用之前的集群啟動腳本啟動服務就可以了.
[火星人 ] Linux集群--HA略談已經有896次圍觀