1 环境搭建
1.1 硬件资源
表1-1 硬件资源需求表
序号
名称
配置参数
用途
数量
1.
服务器
作为负载均衡调度器
1
2
服务器
作为负载均衡服务节点
2
1.2 软件资源
表1-2 软件资源需求表
序号
名称
版本
用途
1
Centos
6.0
服务器操作系统
2
Heartbeat
3.0.5
使用Heartbeat中的ldirectord服务,检测节点服务运行状态
3
ipvsadm
1.2.1
Lvs负载均衡管理工具
1.3 搭建及安装步骤
注:本测试环境使用直接路由方法搭建
1.3.1 准备工作
1.设置环境变量
exportLCRSODIR=$PREFIX/libexec/lcrso
export CLUSTER_USER=hacluster
export CLUSTER_GROUP=haclient
2.建立组及组中用户
getent group ${CLUSTER_GROUP}>/dev/null || groupadd -r ${CLUSTER_GROUP}
getent passwd ${CLUSTER_USER}>/dev/null || useradd -r -g ${CLUSTER_GROUP} -d/var/lib/heartbeat/cores/hacluster -s /sbin/nologin -c "cluster user"${CLUSTER_USER}
1.3.2 安装Cluster Clue
1. 下载源代码并解压
wget -Ocluster-glue.tar.bz2 http://hg.linux-ha.org/glue/archive/tip.tar.bz2 tar jxvfcluster-glue.tar.bz2 cd Reusable-Cluster-Components-*
2. 设置编译环境
./autogen.sh&& ./configure --with-daemon-user=${CLUSTER_USER} --with-daemon-group=${CLUSTER_GROUP}
3. 编译安装
make
sudo makeinstall
1.3.3 安装Resource Agents
1. 下载源代码并解压
wget -Oresource-agents.tar.gz https://github.com/ClusterLabs/resource-agents/tarball/mastertar xzvf resource-agents.tar.gz
cdClusterLabs-resource-agents-*
2. 设置编译环境
./autogen.sh&& ./configure
3. 编译安装
make sudo makeinstall
1.3.4 安装Heartbeat
1. 下载源代码并解压
wget -Oheartbeat.tar.bz2 http://hg.linux-ha.org/dev/archive/tip.tar.bz2
tar jxvf heartbeat.tar.bz2 cd Linux-HA-Dev-*
2. 设置编译环境
./bootstrap&& ./configure
3. 编译安装
make
sudo make install
1.3.5 安装ipvsadm
yum install –y ipvsadm
1.3.6 配置节点ip
负载调度器:192.168.1.211/24,eth0:0(VIP):192.168.1.220/3
真实服务器1:192.168.1.55/24,lo:0(VIP) :192.168.1.220/32
真实服务器2:192.168.1.212/24,lo:0(VIP) :192.168.1.220/3
1.3.7 配置负载调度器
1. 运行以下脚本配置虚拟ip并添加路由
#!/bin/bash
VIP=192.168.1.220
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0
echo "1" > /proc/sys/net/ipv4/ip_forward
2. 配置lvs
#ipvsadm-A -t $VIP:80 -s wlc #add virtual service
#ipvsadm -a -t $VIP:80 -r 192.168.1.55 -g # add real server1
#ipvsadm -a -t $VIP:80 -r 192.168.1.212 -g # add real server2
3. 查看配置结果
#ipvsadm –l
结果如下证明配置正确
IP VirtualServer version 1.2.1 (size=4096)
ProtLocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.220:http wlc
-> node55:http Route 1 0 0
-> 192.168.1.212:http Route 1 0 0
1.3.8 配置真实服务器
真实服务器上只需要给虚拟网络设置lo:0配置VIP,添加一条路由,然后设置不响应ARP请求即可.两个真实服务器的配置都是一样的,只是IP地址不同,把下面标注为绿色的行改成相应的IP即可,运行以下脚本:
!/bin/bash
VIP="192.168.1.220"
/sbin/ifconfigeth0 192.168.1.55/24
/sbin/ifconfiglo:0 $VIP broadcast $VIP netmask255.255.255.255 up
/sbin/route add-host $VIP dev lo:0
#以下配置是使这台服务器不响应ARP请求
echo"1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo"2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo"1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo"2" > /proc/sys/net/ipv4/conf/all/arp_announce
1.3.9 配置ldirectord
1. 创建配置文件/etc/ha.d/ldirectord.cf
checktimeout=3
checkinterval=1
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=no
virtual=192.168.1.220:80
real=192.168.1.55:80gate
real=192.168.1.212:80gate
fallback=127.0.0.1:80gate
service=http
scheduler=wcl
#persistent=600
#netmask=255.255.255.255
protocol=tcp
checktype=negotiate
checkport=80
request="index.html
2. 启动服务
/etc/init.d/ldirectordstart
1.3.10 创建测试页面
在两台真实服务器上分别配置
# echo “This is Webserver1”>/var/www/html/index.html
# echo “This is Webserver2”>/var/www/html/index.html
2 测试环境搭建成功准则
1. 在两台真实服务器上启动http服务
service httpd start
2. 在局域网内另一台设备上运行如下指令:
for i in `seq 1 1000`; do curlhttp://192.168.1.220/; sleep 1; done;t]
出现如下结果证明搭建成功
“Thisis Webserver1”
“Thisis Webserver2”
“Thisis Webserver1”
“Thisis Webserver2”
“Thisis Webserver1”
“Thisis Webserver2”
………………………
……………………….