本文主要介绍了如何在redhat6.2环境下部署ipvsadm及keepalived实现基于socket高可用集群负载均衡的功能的方法、操作步骤以及需要注意的事项,希望对正在尝试使用基于lvs实现socket负载方式的博友提供一些参考和指导。
一、环境准备工作
1、关闭selinux:
vi /etc/selinux/config
把SELINUX=enforce   改成disabled
2、关闭防火墙(NAT负载模式需要根据业务需求配置iptables,DR模式请直接关掉)
chkconfig --level 2345 iptables off
chkconfig --level 2345 ip6tables off
iptables -F
service iptables stop 
3、配置yum源 
#配置本地yum源
1)挂载光盘
mount -o loop /dev/cdrom  /mnt/media
2)新建本地yun源的配置文件
vi /etc/yum.repos.d/local.repo
加入以下信息:
[Local]
name=Local
baseurl=file:///mnt/media
enable=1
gpgcheck=0
3)yum clean all
二、高可用集群规划(DR负载模式,RR轮询调度)
浮动地址VIP:36.0.0.70
压测主机IP: 36.0.0.158
调度主机LBServer1:36.0.0.156
调度主机LBServer2: 36.0.0.157
应用主机realServer1:36.0.0.71
应用主机realServer2:36.0.0.72
应用主机realServer3:36.0.0.73
--------------------------------------------------------------
三、安装部署ipvs管理工具ipvsadm
#调度管理工具介质安装
1、确保Linux的kernel支持ipvs算法,检查内核是否支持
#modprobe -l|grep ipvs 
2、使用rpm包安装
#rpm -ivh ipvsadm-1.24-13.el5.x86_64.rpm
3、检查ipvsadm是否完整安装
#lsmod|grep ip_vs      
四、高可用介质keepalived安装
1、安装先决条件
#安装编译工具
#yum install make -y
#安装编译环境
#yum install gcc* -y
#安装依赖程序
#yum install openssl* -y
#yum install popt-devel -y
2、安装HA软件
解压程序包
#tar -zxvf keepalived1.2.2.tar.gz
#cd keepalived-1.2.2
#配置编译环境
#./configure 
#编译安装
#make && make install     
3、配置HA为系统服务
#cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/ 
#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ 
#cp /usr/local/sbin/keepalived /usr/sbin/ 
#chkconfig --add keepalived
#chkconfig --level 2345 keepalived on #配置随机启动后 有时会导致ipvsadm无法启动 需要先停止keepalived 启动ipvsadm后 再重启keepalived
#chkconfig --level 2345 ipvsadm on
4、配置HA的配置文件
#mkdir /etc/keepalived
#编辑vi keepalived.conf 
#其信息如下所示,备机需修改state和 priority,具体可参考LB服务器配置

点击(此处)折叠或打开

  1. ! Configuration File for keepalived


  2. global_defs {

  3. router_id LVS_ESB

  4. }


  5. vrrp_instance VI_1 {

  6.    state MASTER

  7.    interface eth1

  8.    virtual_router_id 125

  9.    priority 100

  10.    advert_int 1

  11.    authentication {

  12.        auth_type PASS

  13.        auth_pass inzone

  14.    }

  15. virtual_ipaddress {

  16.       36.0.0.70

  17.    }

  18. }


  19. virtual_server 36.0.0.70 9051{

  20.    delay_loop 6

  21.    lb_algo rr

  22.    lb_kind DR

  23.    protocol TCP


  24.    real_server 36.0.0.71 9051{

  25.        weight 1

  26.        TCP_CHECK {

  27.        connect_timeout 10

  28.        nb_get_retry 3

  29.        delay_before_retry 3

  30.        connect_port 9051

  31.        }

  32.    }


  33.    real_server 36.0.0.72 9051{

  34.        weight 1

  35.        TCP_CHECK {

  36.        connect_timeout 10

  37.        nb_get_retry 3

  38.        delay_before_retry 3

  39.        connect_port 9051

  40.        }

  41.    }


  42.       real_server 36.0.0.73 9051{

  43.        weight 1

  44.        TCP_CHECK {

  45.        connect_timeout 10

  46.        nb_get_retry 3

  47.        delay_before_retry 3

  48.        connect_port 9051

  49.        }

  50.    }


  51. }

五、配置realServer
1、抑制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
2、配置路由
#ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
#/sbin/route add -host $VIP dev lo:0  
#sysctl -p > /dev/null 2>&1
六、HA服务的管理
停止主: service keepalived stop
启动主: service keepalived start
停止备: service keepalived stop
启动备: servive keepalived start
七、验证服务
telnet $vip port