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

如何实现Linux服务集群的高可用性(Heartbeat)

[日期:2011-07-06] 来源:Linux社区  作者:Linux [字体: ]
在服务器集群中还有一项就是服务的高可用性,为了保证我们的服务不被成为单点故障,为此我们使用heartbeat来解决这一点,简单点说,就是当我们的主服务器掉线的时候,我们的辅助节点服务器能够快速接管主节点服务器的服务,这样就保证了我们的服务不会出现单点故障了。(当然我们一下做的只是针对单点故障做的一个小实验而已,具体到应用的时候,心跳通信通道不会只有一条,还有服务器通常还会有共享存储设备,好了,不多说了,开始准备一下实验环境吧)
我们需要准备三台虚拟机:一台客户机,两台heartbeat服务器,其中这两个服务器先配置一个,另外一个根据以下步骤再配置)
实验拓扑图如下:
 
 
 
实验步骤:
1先配置一下主节点:主机名设为:node1.example.com 
#vim  /etc/hosts
192.168.0.165.   node1.example.com  node1
192.168.0.166   node2.example.cm    node2
#vim  /etc/sysconfig/network
HOSTNAME=node1.example.com
#hostname  node1.example.com
#uname  –n (查看一下现在的主机名)
1.      配置一下ip地址
外网为192.168.0.165                               
心跳通道地址192.168.10.20                          
2.      安装并配置httpd服务
#yum  install  httpd.conf
#vim   /var/www/html/index.html
#service  httpd  start
#elinks  192.168.0.220
(测试一下www服务)
3.      开始配置heartbeat了:
先安装八个包:
libnet-1.4.3-el5.i386
heartbeat-2.1.4-9.el5.i386
heartbeat-devel-2.1.4.9.el5.i386
heartbeat-gui-2.1.4-9.el5.i386
heartbeat-ldirectord-2.1.4-9.el5.i386
heartbeat-pils-2.1.4.-10.el5.i386
heartbeat-stonith-2.1.4-10.el5.i386
perl-MailTools-1.77-1.el5.noarch
 
#yum  - -nogpgcheck install  *.rpm  可以将这几个包一起安装  (使用rpm来安装的话会有好多依赖关系要解决,建议还是使用yum来安装)
4.
#cd   /etc/ha.d/    (接下来拷贝几个重要的文件到该目录下)
#cp  /usr/share/doc/heartbeat-2.1.4/ha.cf       ./
#cp  /usr/share/doc/heartbeat-2.1.4/haresources  ./
#cp  /usr/share/doc/heartbeat-2.1.4/authkeys    ./
#ls  (查看一下是否复制完全)
#vim  authkeys
在最后添加两行
auth  1
1        sha1
(以上也可以使用以下命令来配置authkeys这个文件)
#echo  -ne  “auth 1\n1 sha1”  >> /etc/ha.d/authkeys
#dd  if=/dev/urandom  bs=512 count=1  | openssl md5  >> /etc/ha.d/authkeys
                (追加密钥)
#cat   authkeys   (查看一下,看密钥是否追加上了,密钥要跟1 sha1在同一行)
#chmod  0600  authkeys  (修改一下权限)
#vim  ha.cf
确保以下几行没有被注释掉
debugfile  /var/log/ha-debug
logfacility   local0
keepalive  2
deadtime   30
warntime   10
initdead   120
udpport   694
auto_failback  on
bcast  eth1
接着在最后添加以下两行
node  node1.example.com
node  node2.example.com
 
#vim   haresources  (设置浮动的ip和服务)
在文件中添加一下一行信息:
node1.example.com   192.168.0.169  httpd
#cd  /etc/ha.d  ( 将我们的httpd服务添加软连接到resource.d中:)
#ln  -s  /etc/init.d/httpd    /etc/ha.d/resource.d/
#cd  resource.d/
#ls (查看一下链接创建成功了没)
 
 
(为了让我们的实验简化,我们克隆一个虚拟机来做backup server辅节点吧。)
将主节点关机,然后克隆一个辅节点,不过我们要对辅节点修改一下,具体修改如下:
修改它的主机名
#vim  /etc/hosts
#vim  /etc/sysconfig/network
#hostname  node2.example.com
#uname  -n
修改它的ip地址
设置外网ip地址为192.168.0.166
内网心跳通信地址为192.168.10.30
#service  network   restart
测试一下整个网络的联通性:
#ping  192.168.0.165
#ping  192.168.0.166
#ping  192.168.10.20
#ping  192.168.10.30
 
最好在主节点和辅节点上都测试一下,看80服务开了没,
#netstat  -tnlp  | grep 80  
这个时候主节点和辅节点80端口应该都是没有开的
 
在主节点和辅节点上开启心跳服务
#service   heartbeat  start
#ifconfig  (在主节点上看一下,eth0:0这个浮动ip地址已经出现了)
 
 
 
 
 
 
在主节点上查看80端口现在已经是开启的了
 
 
 
 
 
 
这个时候在客户机上访问来测试一下
 
 
在主节点上
#cd   /usr/lib/heartbeat 
#./hb_standby将节点停掉,这样httpd服务就转移到辅节点了
 
在辅节点上查看:
 
 
 
 
 
在客户机上访问一下192.168.0.169

 
(呵呵,辅节点就顺利的接替了主节点的资源)
 
使用抓包工具来测试一下:了解一下它们的心跳
#tcpdump  -i  eth1  udp   port  694
linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

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