群集服务器,LB提供负载均衡 ,支持大量并发连接HA提供高可用性;HP用于科学计算。

拓扑图:

群集服务器(HA+LB)_第1张图片

安装heartbeat

Node1

1Node1配置yum

[root@node1 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

[rhel-server]#yum仓库名

name=Red Hat Enterprise Linux server#yum仓库详细名字

baseurl=file:///mnt/cdrom/Server#指明server仓库位置

enabled=1#开启仓库

gpgcheck=1#启动签名

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release#签名文件件

群集服务器(HA+LB)_第2张图片

2Node1用本地yum库安装heartbeat

[root@node1 ~]# yum localinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-devel-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm --nogpgcheck#取消签名检测

群集服务器(HA+LB)_第3张图片

[root@node1 ~]# rpm -ivh heartbeat-ldirectord-2.1.4-9.el5.i386.rpm

Node2

1Node2配置yum

[root@node2 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo

[rhel-server] #yum仓库名

name=Red Hat Enterprise Linux server#yum仓库详细名字

baseurl=file:///mnt/cdrom/Server#指明server仓库位置

enabled=1#开启仓库

gpgcheck=1#启动签名

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release#签名文件件

群集服务器(HA+LB)_第4张图片

2Node2用本地yum库安装heartbeat

[root@node2 ~]# yum localinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-devel-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm --nogpgcheck#取消签名检测

群集服务器(HA+LB)_第5张图片

[root@node2 ~]# rpm -ivh heartbeat-ldirectord-2.1.4-9.el5.i386.rpm

配置

1、指明ipvsadm规则

[root@node1 ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/ #产生配置文档

[root@node1 ~]# cd /etc/ha.d/

[root@node1 ha.d]# vim ldirectord.cf

群集服务器(HA+LB)_第6张图片

[root@node1 ha.d]# scp ldirectord.cf node2.a.com:/etc/ha.d/ #拷贝一份给node2

Node1产生heartbeat配置文件

[root@node1 ~]# cd /usr/share/doc/heartbeat-2.1.4/

[root@node1 heartbeat-2.1.4]# cp ha.cf /etc/ha.d/

[root@node1 heartbeat-2.1.4]# cp authkeys /etc/ha.d/

[root@node1 heartbeat-2.1.4]# cp haresources /etc/ha.d/

[root@node1 heartbeat-2.1.4]#

2、指明出口

[root@node1 ha.d]# vim ha.cf


3、配置共享密钥

[root@node1 ha.d]# dd if=/dev/random bs=512 count=1|md5sum #产生512位随机数并以md5加密


群集服务器(HA+LB)_第7张图片


[root@node1 ha.d]#vim authkeys#配置


群集服务器(HA+LB)_第8张图片


[root@node1 ha.d]# chmod 600 authkeys#修改文件的权限

[root@node1 ha.d]# scp authkeys ha.cf  node2.a.com:/etc/ha.d/#node1上的文件拷到node2


群集服务器(HA+LB)_第9张图片


4设置监控的资源

[root@node1 ha.d]# vim haresources

node1.a.com   192.168.10.6/24/eth0 ldirectord::ldirectord.cf #检测服务器名、ivp、端口、服务



[root@node1 ha.d]# scp haresources node2.a.com:/etc/ha.d/#将配置文档拷给node2



安装ipvsadm

Node1

[root@node1 ~]# cd /mnt/cdrom/Cluster

[root@node1 Cluster]# rpm -ivh ipvsadm-1.24-10.i386.rpm #安装主程序

Node2

[root@node2 ~]# cd /mnt/cdrom/Cluster

[root@node2 Cluster]# rpm -ivh ipvsadm-1.24-10.i386.rpm #安装主程序

启动

[root@node1 ha.d]# service heartbeat start



[root@node2 ~]# service heartbeat start



搭建web服务器

服务器web1

安装apache

[root@web1 ~]# mkdir /mnt/cdrom #创建挂载点

[root@web1 ~]# mount /dev/cdrom /mnt/cdrom#挂载光盘

[root@web1 ~]# cd /mnt/cdrom/Server/ #进入文件夹

[root@web1 Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm #安装

[root@web1 Server]# service httpd start #启动

配置

[root@web1 Server]# cd /var/www/html/

[root@web1 html]# echo "ok">.test.html #写出我们的监控文件

[root@web1 html]#

[root@web1 ~]# vim /etc/sysctl.conf #设置忽视arp

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.all.arp_ignore=1



[root@web1 ~]# sysctl -p #使其生效

[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0 #创建网卡

TYPE=Ethernet

DEVICE=lo:0

HWADDR=00:00:00:00:00:00

BOOTPROTO=none

NETMASK=255.255.255.255

IPADDR=192.168.10.6

群集服务器(HA+LB)_第10张图片


[root@web1 ~]# vim /var/www/html/index.html #创建web页面

web1


服务器web2

安装apache

[root@web2 ~]# mount /dev/cdrom /mnt/cdrom#挂载光盘

[root@web2 ~]# cd /mnt/cdrom/Server/#进入文件夹

[root@web2 Server]# rpm -ivh httpd-2.2.3-31.el5.i386.rpm #安装

[root@web2 Server]# service httpd start#启动

配置

[root@web2 Server]# cd /var/www/html/

[root@web2 html]# echo "ok">.test.html#写出我们的监控文件

[root@web2 html]#

[root@web2 html]# vim /etc/sysctl.conf #设置忽视arp

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1



[root@web2 html]# sysctl -p #使其生效

[root@web2 html]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0 #创建网卡

TYPE=Ethernet

DEVICE=lo:0

HWADDR=00:00:00:00:00:00

BOOTPROTO=none

NETMASK=255.255.255.255

IPADDR=192.168.10.6


群集服务器(HA+LB)_第11张图片


[root@web2 html]# vim index.html #创建web页面

web2



测试

测试1


群集服务器(HA+LB)_第12张图片

监测的的结果

群集服务器(HA+LB)_第13张图片

测试2

web1关闭

[root@web1 html]# service httpd stop

监测的的结果

群集服务器(HA+LB)_第14张图片

群集服务器(HA+LB)_第15张图片

能够起到备份的作用。

测试3

node1关闭

[root@node1 ha.d]# /usr/lib/heartbeat/hb_standby

群集服务器(HA+LB)_第16张图片

node2上查看

群集服务器(HA+LB)_第17张图片

群集服务器(HA+LB)_第18张图片

可以看到node2立即启用,可以起到高可用性。