在存儲備粉論壇發了好幾天了,沒有人給建議,現在重新發布,征尋解決方法,
介紹一下經驗啦,我現在的問題好辣手,搞了一個禮拜了,還是解決不了,
環境:
redhat AS3 +clumanager +redhat-config-cluster
伺服器:浪潮兩台:
gwweb1 10.0.0.1
gwweb2 10.0.0.2
心跳地址:
gwweb1 192.168.2.1
gwweb2 192.168.2.2
emc磁碟櫃,
quorum分區:
/etc/sysconfig/rawdevices的內容為:
/dev/raw/raw1 /dev/emcpowera1
/dev/raw/raw1 /dev/emcpowera1
現在情況是:
集群軟體能啟動,上面備分的服務:httpd也能夠啟動;但是就是切換不成功,
比如down掉gwweb1的10.0.0.1地址,服務不能由從機接管,查看原因是因為:gwweb1沒有釋放掉數據區
/dev/emcpowera3,,
以下是cluster.xml:
<?xml version="1.0"?>
<cluconfig version="3.0">
<clumembd broadcast="yes" interval="330000" loglevel="5" multicast="no" multicast_ipaddress="" thread="yes" tko_count="15"/>
<cluquorumd loglevel="5" pinginterval="" tiebreaker_ip="172.16.7.254"/>
<clurmtabd loglevel="5" pollinterval="4"/>
<clusvcmgrd loglevel="5"/>
<clulockd loglevel="5"/>
<cluster config_viewnumber="19" key="c3aa387383165d9997e63d760d8b8f0d" name="SDWEB"/>
<sharedstate driver="libsharedraw.so" rawprimary="/dev/raw/raw1" rawshadow="/dev/raw/raw2" type="raw"/>
<members>
<member id="0" name="gwweb1" watchdog="yes"/>
<member id="1" name="gwweb2" watchdog="yes"/>
</members>
<services>
<service checkinterval="3" failoverdomain="SDGW" id="0" maxfalsestarts="0" maxrestarts="0" name="Apache" userscript="/etc/init.d/apabea">
<service_ipaddresses>
<service_ipaddress broadcast="172.16.7.255" id="0" ipaddress="172.16.0.101" netmask="255.255.248.0"/>
</service_ipaddresses>
<device id="0" name="/dev/emcpowera3" sharename="">
<mount forceunmount="yes" fstype="ext3" mountpoint="/data" options="rw"/>
</device>
</service>
</services>
<failoverdomains>
<failoverdomain id="0" name="SDGW" ordered="no" restricted="yes">
<failoverdomainnode id="0" name="gwweb1"/>
<failoverdomainnode id="1" name="gwweb2"/>
</failoverdomain>
</failoverdomains>
</cluconfig>
我是先用命令:ifdown eth1 (不是心跳口),這樣和直接拔掉eth1的網線效果是一樣的,
再後來又做了些測試,幾乎都是服務可以轉移到另外的備機,可是就是資源不釋放,這樣會有安全隱患,如果兩台機子同時對共享磁碟寫數據,可能會導致數據丟失,,
還有為什麼,兩台伺服器的心跳線好象沒有什麼作用啊,非常奇怪, 有沒有好象都是一樣的情形。。
《解決方案》
回復 1樓 liyhappy 的帖子
磁碟分區應該採用 GFS ,解決共享數據同步問題。
《解決方案》
樓頂是生產環境么?如果是的話,請先不要考慮RHCS. 類似你這種情況,我已經在好幾個項目中遇到。
如果是2節點,用steeleye lifekeeper吧.
《解決方案》
steeleye lifekeeper也是商業軟體吧,有沒有免費的
《解決方案》
不要用ifdown eth1這樣的手段來代替拔網線,這樣會導致很多問題。
rhcs再生產環境用的多了,這是你配置的問題。
修改/etc/syslog.conf,把LOCAL4.*指向單獨的文件/var/log/cluster,重起syslog
把clusvcmgrd 的日誌級別調到7
你可以先不要啟動ha,兩個節點上依次試試看如下操作:
1. /usr/lib/clumanager start 0; echo $? (看看結果是不是0,不然可以看看/var/log/cluster日誌)
2. 測試殺進程,拔網線等各種情況,運行
/usr/lib/clumanager status 0 ; echo $?(看看結果是不是1,不然可以看看/var/log/cluster日誌)
3. usr/lib/clumanager stop 0 ; echo $? (看看結果是不是0,資源又沒有釋放,不然可以看看/var/log/cluster日誌)
如果在兩個節點上都通過了,你就可以在HA啟動后測試沒有問題了。
《解決方案》
剛才看了一下,rhas3 u4有bug,這個地方必須加上
<cluster config_viewnumber="19" key="c3aa387383165d9997e63d760d8b8f0d" name="SDWEB" msgsvc_noarp="yes" />
另外這個地方必須加上
<service_ipaddress broadcast="172.16.7.255" id="0" ipaddress="172.16.0.101" netmask="255.255.248.0" monitor_link="yes"/>
才能保證拔掉網線后切換。
建議採用下列方式配clumanager
心跳線採用交叉線直連,另外的網線連接交換機提供服務。假設心跳線ip為192.168.0.1 (node0),192.168.0.2(node1),
那麼修改/etc/hosts,把這個兩個ip對應到node0,node1上,配置的時候添加node0,node1為節點的名稱。
配置完后,修改/etc/cluster.xml,加上兩個參數即可。