lvs负载均衡基本搭建

来源:互联网 发布:定制家居拆单下料软件 编辑:程序博客网 时间:2024/05/16 07:00

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”

………………………

……………………….

 


原创粉丝点击