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

virtualbox虚拟机fence设置

之前一篇文章中介绍了kvm虚拟机使用fence的方法, 但是kvm虚拟机共享磁盘的设置一直没能搞定

特别是在使用gfs2的时候,明明两台节点都可以访问存储

但是我自己的测试程序运行的时候就会堵住,一动不动,很是懊恼

有高手告诉我使用命令行方式启动kvm,、没有任何问题

无奈我等技术不过关,只会使用 virt-manager

请高手帮忙分析了 virt-manager 的虚拟机启动参数,也没有发现任何异常情况

最终,我把这个问题归结为人品问题

因为之前的一篇文章提到了 virtualbox 中的共享存储使用

这次就先偷个懒,用virtualbox把活干完

待有时间研究研究一下kvm的高深,再来解决这个问题吧

使用virtualbox时,又遇到了fence的问题,pacemaker居然木有自带的

真实屋漏偏逢连阴雨,看来做啥事都要老老实实,不能老想着走捷径

好在最终解决了fence的问题,这里做一个笔记,希望对其他人有些许帮助

google中搜索一把,发现有人在2010年曾用perl写过一个virtualbox的agent

主要原理是使用VBoxManage的controlvm来reset虚拟机

他的附带文档中也提到了cman 的 fenceAPI(找了好久,真是的来全不费功夫啊)

agent的使用很简单

    Usage:

    ./fence_vbox [options]

    Options:
      -s <string>      vboxhost (vbox server)
      -g <string>      vmname (guest name)
      -a <string>      action: reboot (default), off, on or status
      -u <string>      login (default=root)
      -v               version  

只要指定虚拟机的机器名,就可以直接fence掉

但是有一个要求,就是要设置虚拟机和host机的authorized_keys

    fence_vbox -s host_ip -g vmname

命令行使用真是爽,但是配置到 cluster.conf 中就不爽了

    [root@redhat-1 ~]# ccs_config_validate -f cluster.conf 
    Relax-NG validity error : Extra element fencedevices in interleave
    tempfile:34: element fencedevices: Relax-NG validity error : 
    Element cluster failed to validate content
    Configuration fails to validate
    [root@redhat-1 ~]# 

搞得我是一头雾水,怎么就不对了呢,仔细看了一下API文档

    ipaddr - for a hostname or IP address 
    nodename - if the agent fences by node name, this is the parameter to use (e.g. instead of port).
        In the event that both nodename and port are specified, 
                the preference is given to port. 

API中要求host机器的参数用ipaddr,而作者给出的却是vboxhost

API中要求节点机器的参数用nodename,而作者给出的却是vmname

看来要该agent了

    sed -i 's/vboxhost/ipaddr/g' fence_vbox
    sed -i 's/vmname/hostname/g' fence_vbox

然后重新配置,问题解决。

最终配置

  <cluster config_version="30" name="CLUSTER1">
    <clusternodes>
      <clusternode name="node1" nodeid="1">
        <fence>
          <method name="1">
            <device name="VBoxManage" nodename="node1"/>
          </method>
        </fence>
      </clusternode>
      <clusternode name="node2" nodeid="2">
        <fence>
          <method name="1">
            <device name="VBoxManage" nodename="node2"/>
          </method>
        </fence>
      </clusternode>
      <clusternode name="node3" nodeid="3">
        <fence>
          <method name="1">
            <device name="VBoxManage" nodename="node3"/>
          </method>
        </fence>
      </clusternode>
    </clusternodes>
    <fencedevices>
      <fencedevice agent="fence_vbox" ipaddr="vboxhost" name="VBoxManage"/>
    </fencedevices>
  </cluster>

That’s all

    分享到:

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

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

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

发表评论

*
快捷键:Ctrl+Enter