分享

LVS(DR) KeepAlived On CentOS6 安装配置说明书

 Colin收藏 2012-02-17

LVS(DR)+ KeepAlived On CentOS6 安装配置说明书

分类: 内存数据库移动互联网电子商务应用开发数据库群集云计算J2EE技术Java基础技术203人阅读评论(0)收藏举报

目录

 

一、要做那些事?... 3

二、环境:... 3

三、硬件IP:... 3

四、VIP:... 3

五、注意事项:... 4

六、网络结构... 4

七、Master安装步骤:... 5

1、安装ipvsadm 和 KeepAlived for Master. 5

2、配置keepalived for Master. 6

3、配置ipvsadm for Master. 10

八、Backup安装步骤:... 13

九、RealServer配置步骤:... 14

十、JBoss作为LVS的WebServer:... 15

 

一、要做那些事?

1、安装ipvsadm(Master/Backup)

2、安装keepalived(Master/Backup)

3、配置keepalived(Master/Backup)

4、配置ipvsadm(Master/Backup)

5、配置RealServer

 

二、环境:

CentOS6 (Linux Kernel 2.6.32-71.el6.i686)

ipvsadm 1.2.4

keepalived 1.1.17

 

三、IP

Master IP:192.168.20.100

Backup IP:192.168.20.101

RealServer IP:192.168.20.102、192.168.20.100(兼)、192.168.20.101(兼)

 

四、VIP

192.168.20.99

 

五、注意事项:

CentOS6 安装选择开发工作站模式

防火墙都关闭(因为业务机器前端有专用的防火墙,如果没有,那么Master也可兼)

 

六、网络结构

 


七、Master安装步骤:

1、安装ipvsadm 和 KeepAlived for Master

[root@RServer2 soft]#mkdir /soft
[root@RServer2 soft]#cd /soft
[root@RServer2 soft]# wget http://www./software/kernel-2.6/ipvsadm-1.24.tar.gz
[root@RServer2 soft]# wget http://www./software/keepalived-1.1.17.tar.gz
[root@RServer2 soft]#ln -s /usr/src/kernels/2.6.32-71.el6.i686/ /usr/src/linux
[root@RServer2 soft]# tar -zxvf ipvsadm-1.24.tar.gz
[root@RServer2 soft]# cd ipvsadm-1.24
[root@RServer2 ipvsadm-1.24]# make;make install
[root@RServer2 ipvsadm-1.24]# cd ..
[root@RServer2 soft]# tar -zxvf keepalived-1.1.17.tar.gz
[root@RServer2 soft]# cd keepalived-1.1.17
[root@RServer2 soft]# ./configure --prefix=/usr/local/keepalived
[root@RServer2 keepalived-1.1.17]# make;make install

顺利的话就这些步骤了,如果出现错误提示,那么根据具体的错误具体处理,一般可能出现的错误:

1)、OpenSSL,提示可能如下

!!! OpenSSL is not properly installed on your system. !!!

!!! Can not include OpenSSL headers files.

解决方案:运行yum -y installopenssl-devel

2)、提示没有gcc编译器

解决方案:运行yum installncurses-devel gcc gcc-c++ make rpm-build

 

2、配置keepalived for Master

[root@RServer2 keepalived-1.1.17]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
[root@RServer2 keepalived-1.1.17]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
[root@RServer2 keepalived-1.1.17]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@RServer2 keepalived-1.1.17]# mkdir -p /etc/keepalived/
[root@RServer2 keepalived-1.1.17]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
[root@RServer2 keepalived-1.1.17]# chmod +x /etc/init.d/keepalived
 
[root@RServer2 keepalived-1.1.17]# gedit /etc/keepalived/keepalived.conf
或是
[root@RServer2 keepalived-1.1.17]# vi /etc/keepalived/keepalived.conf

keepalived.conf文件如下:

#Master服务器上的配置 /etc/keepalived/keepalived.conf
global_defs {
   notification_email {
       likx@****.com #可以多个地址
   }
   notification_email_from likx@****.com
   smtp_server 192.168.0.**
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
#监测ipvsadm进程状态,每3秒执行一次
vrrp_script chk_ipvsadm{
    script "/usr/local/keepalived/chk_ipvsadm.sh"
    interval 3
    weight 3
}
vrrp_instance VI_1 {
    state MASTER #标示状态为MASTER 备份机为BACKUP
    interface eth0
    virtual_router_id 51
    priority 100   #MASTER权重要高于BACKUP 比如BACKUP为99
    advert_int 5
    mcast_src_ip 192.168.20.101 #Master服务器IP,如果是备份机请填写备份机的IP
 
    authentication {
        auth_type PASS #主从服务器验证方式
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.20.99 #虚拟IP
    }
}
 
#虚拟服务器 21端口的配置
virtual_server 192.168.20.99 21 {
    delay_loop 10           #(每隔10秒查询realserver状态)
    lb_algo rr              #(lvs 算法)
    lb_kind DR              #(Direct Route)
    persistence_timeout 60 #(同一IP的连接60秒内被分配到同一台realserver)
    protocol TCP         #(用TCP协议检查realserver状态)
 
    #实际服务器的IP和端口
    real_server 192.168.20.102 21 {
        weight  5
        TCP_CHECK {
            connect_timeout 10
            connect_port 21
        }
    }
 
    #实际服务器的IP和端口
    real_server 192.168.20.100 21 {
        weight  5
        TCP_CHECK {
            connect_timeout 10
            connect_port 21
        }
    }
    #实际服务器的IP和端口
    real_server 192.168.20.101 21 {
        weight  5
        TCP_CHECK {
            connect_timeout 10
            connect_port 21
        }
    } 
}
 
#虚拟服务器 80端口的配置
virtual_server 192.168.20.99 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    protocol TCP
 
    real_server 192.168.20.102 80 {
        weight  5
        TCP_CHECK {
            connect_timeout 10
            connect_port 80
        }
    }
 
    real_server 192.168.20.100 80 {
        weight  5
        TCP_CHECK {
            connect_timeout 10
            connect_port 80
        }
    }
 
    real_server 192.168.20.101 80 {
        weight  5
        TCP_CHECK {
            connect_timeout 10
            connect_port 80
        }
    } 
}
 

keepAlived使用方式:

/etc/init.d/keepalived start|stop|restart

/usr/local/keepalived/chk_ipvsadm.sh文件内容如下:

#!/bin/bash
#
# author: likexi
# description:
# 定时查看ipvsadm是否存在,如果不存在则启动ipvsadm,
# 如果启动失败,则停止keepalived
#
status=$(ps aux|grep ipvsadm | grep -v grep | grep -v bash | wc -l)
if [ "${status}" = "0" ]; then
        service ipvsadm start
        status2=$(ps aux|grep ipvsadm | grep -v grep | grep -v bash |wc -l)
        if [ "${status2}" = "0"  ]; then
                /etc/init.d/keepalived stop
        fi
fi
 

3、配置ipvsadm for Master

把一下内容保存成:lvs_server.sh,并放置在/etc/init.d目录下

#!/bin/bash
#把一下内容保存成:lvs_server.sh
#并放置在/etc/init.d目录下
#如果想启动LVS Server执行:/etc/init.d/lvs_server.sh start
#如果想停止LVS Server执行:/etc/init.d/lvs_server.sh stop
#如果想重启LVS Server执行:/etc/init.d/lvs_server.sh restart
 
VIP=192.168.20.99 #虚拟IP,更具具体情况而变
#有几个输入几个,与下面的配置对应,同时必须与KeepAlived.config配置对应
RIP1=192.168.20.101 #实际的服务器IP
RIP2=192.168.20.100 #实际的服务器IP
RIP2=192.168.20.102 #实际的服务器IP
. /etc/rc.d/init.d/functions # 如果提示权限不够,那么先在命令行执行: chmod 777 /etc/rc.d/init.d/functions
case "$1" in
 
start)
        echo "启动LVS服务器"
          #设置虚拟IP和同步参数
          /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
          echo "1" >/proc/sys/net/ipv4/ip_forward 
          #清空 IPVS的内存数据 
          /sbin/ipvsadm -C
 
          #设置LVS
          #开启FTP 21 端口服务,并指向RIP1和RIP2的服务器
          /sbin/ipvsadm -A -t $VIP:21 -s rr
          /sbin/ipvsadm -a -t $VIP:21 -r $RIP1:21 -g
          /sbin/ipvsadm -a -t $VIP:21 -r $RIP2:21 -g
          /sbin/ipvsadm -a -t $VIP:21 -r $RIP3:21 -g
          #开启WEB 80 端口服务,并指向RIP1和RIP2的服务器
          /sbin/ipvsadm -A -t $VIP:80 -s rr
          /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
          /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
          /sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g
          #运行LVS
          /sbin/ipvsadm -ln
          ;;
stop)
       echo "关闭LVS服务器"
       echo "0" >/proc/sys/net/ipv4/ip_forward
       /sbin/ipvsadm -C
       /sbin/ifconfig eth0:0 down
       ;;
 
restart)
       echo "关闭LVS服务器"
       echo "0" >/proc/sys/net/ipv4/ip_forward
       /sbin/ipvsadm -C
       /sbin/ifconfig eth0:0 down
 
      echo "启动LVS服务器"
      #设置虚拟IP和同步参数
      /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
      echo "1" >/proc/sys/net/ipv4/ip_forward 
      #清空 IPVS的内存数据 
      /sbin/ipvsadm -C
 
      #设置LVS
      #开启FTP 21 端口服务,并指向RIP1和RIP2的服务器
      /sbin/ipvsadm -A -t $VIP:21 -s rr
      /sbin/ipvsadm -a -t $VIP:21 -r $RIP1:21 -g
      /sbin/ipvsadm -a -t $VIP:21 -r $RIP2:21 -g
      /sbin/ipvsadm -a -t $VIP:21 -r $RIP3:21 -g
      #开启WEB 80 端口服务,并指向RIP1和RIP2的服务器
      /sbin/ipvsadm -A -t $VIP:80 -s rr
      /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
      /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
      /sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g
      #运行LVS
      /sbin/ipvsadm -ln
      ;;
*)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
 

/etc/init.d/lvs_server.sh使用方法

[root@RServer2 ~]# chmod 777 /etc/init.d/lvs_server.sh
[root@RServer2 ~]# chmod 777 /etc/rc.d/init.d/functions
[root@RServer2 ~]# /etc/init.d/lvs_server.sh start|stop|restart
 

到这里为止,Master配置完成。

八、Backup安装步骤:

Backup的安装和Master的安装基本一致,只是一些参数略有变化。

变化的参数为止如下:

1、keepalived.conf文件中

原:state MASTER #标示状态为MASTER 备份机为BACKUP
state BACKUP  #标示状态改为BACKUP
 
原:priority 100   #MASTER权重要高于BACKUP 比如BACKUP为99
priority 99   #MASTER权重要高于BACKUP,MASTER为100,那么BACKUP略小于,比如99
 
原:mcast_src_ip 192.168.20.101 #Master服务器IP,如果是备份机请填写备份机的IP
mcast_src_ip 192.168.20.100  #换成BACKUP服务器IP

九、RealServer配置步骤:

RealServer只需要在root目录下创建lvs_real_server.sh文件,并执行他一遍即可,lvs_real_server.sh的文件内容如下:

#!/bin/bash
#把一下内容保存成:lvs_real_server.sh
#并放置在root目录下
#如果想启动real Server执行:/root/lvs_real_server.sh start
#如果想停止real Server执行:/root/lvs_real_server.sh stop
 
CLUSTER_VIP=192.168.20.99 #虚拟IP,更具具体情况而变
. /etc/rc.d/init.d/functions # 如果提示权限不够,那么先在命令行执行: chmod 777 /etc/rc.d/init.d/functions
case "$1" in
start)
       /sbin/ifconfig lo:0 $CLUSTER_VIP netmask 255.255.255.255 broadcast $CLUSTER_VIP
       /sbin/route add -host $CLUSTER_VIP dev lo:0
       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
       sysctl -p >/dev/null 2>&1
       echo "真实服务器启动....." 
       ;;
stop)
       /sbin/ifconfig lo:0 down
       /sbin/route del $CLUSTER_VIP >/dev/null 2>&1
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "真实服务器停止....."
       ;;
*)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
 

/root/lvs_real_server.sh使用方法

[root@RServer2 ~]# chmod 777 /root/lvs_real_server.sh
[root@RServer2 ~]# chmod 777 /etc/rc.d/init.d/functions
[root@RServer2 ~]# /root/lvs_real_server.sh start|stop|restart

十、JBoss作为LVS的WebServer:

Jboss作为LVS的WebServer时需要做一些简单的配置

对于standalone运行模式的Jboss,只需在standalone.xml配置文件添加如下内容:

<interfaces>
        <interface name="management">
            <inet-address value="${jboss.bind.address.management:192.168.20.101}"/>
        </interface>
        <interface name="public">
           <inet-address value="${jboss.bind.address:192.168.20.99}"/>
        </interface>
<interface name="any">
           <any-address/>
        </interface>
    </interfaces>
 
default-interface="any">
        <socket-binding name="http" port="80"/>
        <socket-binding name="https" port="443"/>
        <socket-binding name="jmx-connector-registry" interface="management" port="1090"/>
        <socket-binding name="jmx-connector-server" interface="management" port="1091"/>
        <socket-binding name="jndi" port="1099"/>
        <socket-binding name="osgi-http" interface="management" port="8090"/>
        <socket-binding name="remoting" port="4447"/>
        <socket-binding name="txn-recovery-environment" port="4712"/>
        <socket-binding name="txn-status-manager" port="4713"/>
    </socket-binding-group>

十一、LVS群集系统维护命令:

1、ipvsadm维护

启动:/etc/init.d/lvs_server.sh start
停止:/etc/init.d/lvs_server.sh stop
重启:/etc/init.d/lvs_server.sh restart

2、keepAlived维护

启动:/etc/init.d/keepAlived start
停止:/etc/init.d/keepAlived stop
重启:/etc/init.d/keepAlived restart

3、real server 维护

启动:/etc/init.d/lvs_real_server.sh start
停止:/etc/init.d/lvs_real_server.sh stop

4、Jboss维护

后台运行模式:/jboss/bin/standalone.sh & 
              exit(退出控制台,但是Jboss继续运行)
前台运行模式:/jboss/bin/standalone.sh
关闭Jboss:ps aux | grep jboss
            kill 对应的线程号

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多