Linux

帶有 Xen、Heartbeat、Pacemaker 的 Linux HA 集群。domU 不會故障轉移到輔助節點

  • December 24, 2011

我在使用 OenSuSE + Heartbeat + Pacemaker + Xen HA 集群時遇到了以下問題:當執行 Xen domU 的節點“死”時,在其上執行的 Xen domU不會在第二個節點上重新啟動。

集群設置有兩個節點,每個節點在 CRM 模式下執行 OpenSuSE-11.3、Heartbeat 3.0 和 Pacemaker 1.0。對於儲存,我在 iSCSI SAN 設備上使用 LUN;LUN 使用 OCFS2 格式化並使用 LVM 進行管理。Xen domU 有兩個邏輯卷;一個用於root,另一個用於交換。我將 IPMI 卡用於 STONITH 設備,並使用專用乙太網鏈路進行心跳通信。

ha.cf 文件如下: `keepalive 1

deadtime 10

warntime 5

udpport 694

ucast eth1

auto_failback off

node dhcp-166

node stage

use_logd yes

crm yes`

我的資源如下所示:

Xen domU 配置文件如下: `shocrm(live)configure# show

node $id=“5c1aa924-bba4-4f95-a367-6c9a58ac4a38” dhcp-166

node $id=“cebc92eb-af24-4833-aaf0-672adf80b58e” stage

primitive Xen-Util ocf:heartbeat:Xen \

meta target-role=“Started” \

operations $id=“Xen-Util-operations” \

op start interval=“0” timeout=“60” start-delay=“0” \

op stop interval=“0” timeout=“120” \

params xmfile="/etc/xen/vm/xen-util"

primitive my-stonith stonith:external/ipmi \

params hostname=“dhcp-166” ipaddr=“192.168.3.106” userid=“ADMIN” passwd=“xxx” \

op monitor interval=“2m” timeout=“60s”

primitive my-stonith2 stonith:external/ipmi \

params hostname=“stage” ipaddr=“192.168.3.105” userid=“ADMIN” passwd=“xxx” \

op monitor interval=“2m” timeout=“60s”

property $id=“cib-bootstrap-options” \

dc-version=“1.0.9-89bd754939df5150de7cd76835f98fe90851b677” \

cluster-infrastructure=“Heartbeat”`

`name = “xen-util”

bootloader = “/usr/lib/xen/boot/domUloader.py”

#bootargs = “xvda1:/vmlinuz-xen,/initrd-xen”

bootargs = “–entry=xvda1:/boot/vmlinuz-xen,/boot/initrd-xen”

memory = 4096

disk = [ ‘phy:vg_xen/xen-util-root,xvda1,w’,

‘phy:vg_xen/xen-util-swap,xvda2,w’, ]

root = “/dev/xvda1”

vif = [ ‘mac=00:16:3e:42:42:06’ ]

#vfb = [ ’type=vnc,vncunused=0,vnclisten=192.168.3.172’ ]

extra = “"`

說 domU “Xen-Util” 正在節點 “stage” 上執行;如果“stage”關閉,“Xen-Util”不會節點“dhcp-166”上重新啟動。似乎想嘗試一下,因為“xm 列表”會顯示幾秒鐘,如果您使用“xm 控制台 xen-util”,它會給出一條消息,例如“將 /boot/kernel.gz 從 xvda1 複製到 /var/lib /xen/tmp/kernel.a53gs 用於引導”。但是,它永遠不會超過,最終放棄,不再出現在“xm 列表”中。現在,當節點“stage”在重啟後重新上線時,它檢測到“Xen-Util”沒有執行,並啟動它(在舞台上)。

我嘗試在沒有執行集群的情況下在節點“dhcp-166”上啟動“Xen-Util”,它工作正常。沒問題。所以,我知道它在這方面是有效的。

有任何想法嗎?謝謝!

經過更多的試驗和錯誤,我想通了。正如在 ServerFault 上的這篇文章中所提到的,我在太快地備份堆棧時遇到了 iSCSI 錯誤。

除了更改上面文章中概述的變數外,我還跟踪了一些網路電纜,發現節點 #2 位於 100Mb 鏈路上,而節點 #1 與 SAN 一起位於 Gig 鏈路上。經過一些仔細的改組後,所有網路連接現在都以 Gig 速度執行。

最後,我將 Linux 介面上的 MTU 從 1500 更改為 9000,這似乎也加快了速度。

最終結果是一個工作集群,其中 domU 在節點 #1 上的啟動速度甚至比以前更快。

乾杯,

肯德爾

引用自:https://serverfault.com/questions/236325