wangluo010 发表于 2017-4-18 10:27:06

LVS 安装配置

服务器列表




LVS主



10.92.21.12





LVS备



10.92.21.17





LVS VIP



10.92.21.222:80





应用



10.92.21.18:8080





应用



xxx.xxx.xxx.xxx:yyyy






安装包列表




依赖包



libapr1-1.3.8-2.1.x86_64.rpm





依赖包



apr-util-ldap-1.4.1-1.1.x86_64.rpm





依赖包



apr-util-1.4.1-1.1.x86_64.rpm





依赖包



php-common-5.3.3-3.el6.x86_64.rpm





依赖包



php-cli-5.3.3-3.el6.x86_64.rpm





依赖包



php-5.3.3-3.el6.x86_64.rpm





依赖包



httpd-tools-2.2.15-9.el6.x86_64.rpm





核心包



ipvsadm-1.25-9.el6.x86_64.rpm





核心包



httpd-2.2.15-9.el6.x86_64.rpm





核心包



piranha-0.8.5-7.el6.x86_64.rpm






按顺序安装上述rpm包
执行命令:rpm –ivh ${包名}
 
配置文件
 
    lvs.cf

serial_no = 126
primary = 10.92.21.12
service = lvs
backup_active = 1
backup = 10.92.21.17
heartbeat = 1
heartbeat_port = 539
keepalive = 6
deadtime = 18
network = direct
debug_level = NONE
monitor_links = 0
syncdaemon = 0
virtual lvs {
active = 1
address =10.92.21.222 eth1:1
vip_nmask = 255.255.255.0
port = 80
#persistent = 3600
send_program = "/etc/sysconfig/ha/lvs.sh %h"
expect = "OK"
use_regex = 0
load_monitor = none
scheduler = wrr
protocol = tcp
timeout = 10
reentry = 15
quiesce_server = 0
server web1 {
address = 10.92.21.18
active = 1
port = 8080
weight = 1
}
server web2 {
address = xxx.xxx.xxx.xxx
active = 1
port = yyyy
weight = 1
}
}

 把该文件放到etc/sysconfig/ha下
 
   lvs.sh  

#!/bin/sh
tmpUriName=$1
uri="http://${tmpUriName}:8080/CSMBP/lvs.Monitor"
keyword="SUCCESS"
timeout=10
errorTimes="1"
writeError(){
if [ -f /tmp/.errorcount_${tmpUriName} ]; then
errorCount="$(cat /tmp/.errorcount_${tmpUriName})"
else
errorCount="0"
fi
if [ $errorCount == ${errorTimes} ]; then
echo "NOSUCCESS"
#echo "LOG ${tmpUriName} FAIL">>/tmp/.errorcount
else
echo ${errorTimes} >/tmp/.errorcount_${tmpUriName}
echo "OK"
#echo "LOG ${tmpUriName} FAIL OK">>/tmp/.errorcount
fi
}
testConn(){
if [ `GET -t ${timeout} ${uri} |grep ${keyword} |wc -l` -gt 0 ]; then
echo "0" > /tmp/.errorcount_${tmpUriName}
echo "OK"
#echo "LOG ${tmpUriName} OK">>/tmp/.errorcount
else
writeError
fi
}
testConn

 把该文件放到etc/sysconfig/ha下
 
 
网卡配置
LVS服务器端 10.92.21.12
/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE="eth1"
BOOTPROTO="static"
IPADDR=10.92.21.12
GATEWAY=10.92.21.1
NETMASK=255.255.255.0
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"

 /etc/sysctl.conf
 
 

net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1
添加Arp抑制配置:
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.default.rp_filter=1
vm.swappiness = 0
# turn off swapping
net.ipv4.tcp_sack = 1
# enable selective acknowledgements
net.ipv4.tcp_timestamps = 1
# needed for selective acknowledgements
net.ipv4.tcp_window_scaling = 1
#scale the network window
net.ipv4.tcp_congestion_control = cubic
# better congestion algorythm
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog =32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

 
LVS服务器端 10.92.21.17
/etc/sysconfig/network-scripts/ifcfg-eth1
 

DEVICE="eth1"
BOOTPROTO="static"
IPADDR=10.92.21.17
GATEWAY=10.92.21.1
NETMASK=255.255.255.0
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"

 
/etc/sysctl.conf
 

net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1
添加Arp抑制配置:
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.default.rp_filter=1
vm.swappiness = 0
# turn off swapping
net.ipv4.tcp_sack = 1
# enable selective acknowledgements
net.ipv4.tcp_timestamps = 1
# needed for selective acknowledgements
net.ipv4.tcp_window_scaling = 1
#scale the network window
net.ipv4.tcp_congestion_control = cubic
# better congestion algorythm
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog =32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

 
LVS服务器端 10.92.21.18
/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE="eth1"
BOOTPROTO="static"
IPADDR=10.92.21.18
GATEWAY=10.92.21.1
NETMASK=255.255.255.0
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"

 /etc/sysctl.conf
 
 

net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1
添加Arp抑制配置:
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2

 /etc/sysconfig/iptables

*nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT
-A PREROUTING -d 10.92.21.222/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.92.21.18:8080
COMMIT
*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

 
LVS服务器端 xxx.xxx.xxx.xxx
/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE="eth1"
BOOTPROTO="static"
IPADDR=xxx.xxx.xxx.xxx
GATEWAY=xxx.xxx.xxx.1
NETMASK=255.255.255.0
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"

/etc/sysctl.conf

net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1
添加Arp抑制配置:
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2

/etc/sysconfig/iptables

*nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT
-A PREROUTING -d 10.92.21.222/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination xxx.xxx.xxx.xxx:yyyy
COMMIT
*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

 启动LVS
a)10.92.21.12和10.92.21.17上执行命令
service pulse start
查看 ifconfig ,如果在12或17上出现


 则说明VIP已成功启动
 
b)在启动了eth1:1的机器上执行ipvsadm –L查看负载情况



 
 c) 通过vip访问应用 http://10.92.21.222/CSMBP/test/getWeather.do



d)日志文件是/var/log/message
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
页: [1]
查看完整版本: LVS 安装配置