手机版
你好,游客 登录 注册
背景:
阅读新闻

Linux Heartbeat实现高可用集群及在VirtualBox虚拟环境下的测试

[日期:2012-07-07] 来源:Linux社区  作者:warrenwyf [字体: ]

【本文环境】VirtualBox 4.0.4,CentOS 5.5 x64

Heartbeat是Linux下最常用的HA方案之一,主要为了解决集群前置服务器的单点失效问题。Heartbeat顾名思义可以在两台电脑间通过心跳信号来互相探测对方是否正常工作,因此,这两台电脑间需要有相应的物理介质连接起来。在这里,我并没有使用额外的网线(CAT-5双绞线)和网卡来实现,而是采用了串口线来建立心跳连接。

这样,在VirtualBox虚拟环境中,虚拟机间还需要使用一个虚拟的串口互相连接,这还需要一个软件的配合:Named Pipe TCP Proxy。如图 1,在本机上通过Named Pipe TCP Proxy可以新建一个命名管道,这样运行于本机上的虚拟机就可以将虚拟机串口的I/O重定向到这个管道上,如果两个虚拟机都定向到这个管道的时候,就相当于两个虚拟机通过一根串口线连接到了一起。

clip_image002 clip_image004

1 在Named Pipe TCP Proxy中新建管道连接

这样,在创建Linux虚拟机的时候,两个虚拟机就都使用“//./pipe/vbox”作为虚拟串口,唯一的区别是首先启动的虚拟机需要勾选“创建通道”选项,如图 2。

clip_image006

2 Linux虚拟机的串口设置

分别启动两个Linux虚拟机,首先验证一下两台虚拟机是否虚拟地通过串口连接到了一起。为了便于区分,我这里用这两台虚拟机的机器名分别代表它们:www.linuxidc.com1(IP:192.168.2.101)和www.linuxidc.com2(IP:192.168.2.102)。我们可以分别在两台虚拟机上打开终端,在www.linuxidc.com1上执行命令:

[root@www.linuxidc.com1 ~]# cat < /dev/ttyS0

这样,输入到这个虚拟机COM1串口的数据都会在控制台中打印出来,如果我们在www.linuxidc.com2虚拟机上执行echo命令:

[root@www.linuxidc.com2 ~]# echo 'test serial connection' > /dev/ttyS0

在www.linuxidc.com1上可以看到这段文本:

[root@www.linuxidc.com1 ~]# cat < /dev/ttyS0

test serial connection

这样表明,从www.linuxidc.com1串口发送的数据可以被www.linuxidc.com2串口接收到,两台虚拟机相当于通过串口线连接在了一起。

linux
相关资讯       集群  heartbeat  HA 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款