当前位置: 首页 > HA > 正文

kvm 虚拟机 fence 设置

习惯于使用 虚拟机 测试HA配置文件,但是对于fence这块,一直没有办法搞定

之前看到有人用external/ssh的,就想试试,但是后知后觉的发现,这玩意竟然被pacemaker给枪毙了(相关链接)官方说来说去就是一句话来解释这个问题(No. external/ssh simply cannot be relied on)

>> You really don't want to rely on SSH STONITH in a production environment.
>>
>> Regards,
>>
>> Tim
>>
>> Sure, but I'm in a lab environment at the moment without
>> UPS-based STONITH capabilities, so having SSH STONITH working
>> to test things out would be helpful.

The development package should contain external/ssh.

> Also, even in production,
> what would be the harm of having both SSH and UPS-based STONITH
> available? Wouldn't more routes to STONITH a node be better?

No. external/ssh simply cannot be relied on.

算了,不给用就不用好了,kvm 反正还有其他的方式来实现fence呢

host机操作

1 把包先装上

# yum install -y fence-virt fence-virtd fence-virtd-libvirt fence-virtd-multicast

2 搞一个认证文件

没有啥限制,主要是内部通信用,通信机器之间文件一致即可

# mkdir /etc/cluster
# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=4096 count=1

3. 生成配置文件

# fence_virtd -c

有一点需要改改,其他的按照提示一路回车就ok

# Backend module [checkpoint]: libvirt  --因为我们只安装了fence-virtd-libvirt这个backend

4.配置文件review

生成的配置文件长这个样 /etc/fence_virt.conf

backends {
    libvirt {
        uri = "qemu:///system";
    }

}

listeners {
    multicast {
        interface = "br0";
        port = "1229";
        family = "ipv4";
        address = "225.0.0.12";
        key_file = "/etc/cluster/fence_xvm.key";
    }

}

fence_virtd {
    module_path = "/usr/lib64/fence-virt";
    backend = "libvirt";
    listener = "multicast";
}

就是一般的配置文件,对于不明白的地方,man fence_virt.conf 即可找到喜欢的解释
特别注意: interface = “br0″; 这个参数一定要仔细对待,不要被它的默认提示给忽悠了,这个监听的网卡一定要选择一个host机和guest机能够相互通信的网卡(像virtbr0这种kvm默认的网卡要仔细喽),比如,如果你的guest机是bridge的,那就写host的对外网卡就ok了

5.启动服务

# service fence_virtd start
# chkconfig --add fence_virtd
# chkconfig fence_virtd on

6. 验证配置

# fence_xvm -o list

cluster_node1             f2bd9d70-411e-393c-0720-3311985a63bf on
cluster_node2             3fd4a9cd-aa43-11b1-a943-9f8623b790b3 on
cluster_node3             f2bd9d70-411e-393c-0720-3314335a34bf on
cluster_node4             3fd4a9cd-aa43-11b1-a943-9f234b7934b3 on

重启一个guest机试试?(不要说我没告诉你-o reboot是重启的意思哦)

# fence_xvm -o reboot -H cluster_node2

guest机配置

1. 安装软件包

这个 fence-virt 就是为了试试 fence_xvm 命令的,其实不装也ok的

# yum install -y fence-virt

2. 同步配置文件

把之前在host上生成的 /etc/cluster/fence_xvm.key 文件拷贝到所有guest的对应位置

3. 测试

# fence_xvm -o list

cluster_node1             f2bd9d70-411e-393c-0720-3311985a63bf on
cluster_node2             3fd4a9cd-aa43-11b1-a943-9f8623b790b3 on
cluster_node3             f2bd9d70-411e-393c-0720-3314335a34bf on
cluster_node4             3fd4a9cd-aa43-11b1-a943-9f234b7934b3 on

同样,可以看到其它的机器,
试试?别把自己fence掉啦

# fence_xvm -o reboot -H cluster_node2

ok啦,可以使用这个fence设备了

 crm configure primitive st-virt stonith:fence_xvm \
 params port="cluster_node1 cluster_node2 cluster_node3 cluster_node4"

这个port就是fence机器的列表

 

参考文章
Guest fencing on a RHEL KVM host
Guest Fencing

    分享到:

本文固定链接: http://klwang.info/kvm-guest-fence/ | 数据库|Linux|软件开发

该日志由 klwang 于2013年06月03日发表在 HA 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: kvm 虚拟机 fence 设置 | 数据库|Linux|软件开发
关键字: , ,
【上一篇】
【下一篇】

kvm 虚拟机 fence 设置:等您坐沙发呢!

发表评论

*
快捷键:Ctrl+Enter