LVS+Keepalive 实现服务器的负载均衡高可用
一、安装
两台机器的安装是一样的,这里只记录一遍。
1. 下载LVS+Keepalive 所需安装包
http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
http://down1.chinaunix.net/distfiles/linux-2.6.18.tar.bz2
http://down1.chinaunix.net/distfiles/linux-2.6.32.tar.bz2
2. 安装所需环境
[root@ZH-LVS01 ~]# yum -y install glibc* gcc* cc*

[root@ZH-LVS01 ~]# yum -y install openssl-devel
[root@ZH-LVS01 ~]# yum -y install kernel-devel

3. 安装keepalive
[root@ZH-LVS01 ~]# tar -xzf keepalived-1.2.7.tar.gz
[root@ZH-LVS01 ~]# cd keepalived-1.2.7
[root@ZH-LVS01 keepalived-1.2.7]# ./configure

编译时出现以下问题原因是未安装popt的开发包

解决:

yum install popt-devel
安装好popt的开发包。

[root@ZH-LVS01 keepalived-1.2.7]# make && make install
[root@ZH-LVS01 keepalived-1.2.7]# keepalived --help #查看keepavlied的帮助信息同时也证明了keepalive已经安装成功

[root@ZH-LVS01 ~]# find / -name keepalived #查看keepalived的位置

[root@ZH-LVS01 ~]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[root@ZH-LVS01 ~]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@ZH-LVS01 ~]# mkdir /etc/keepalived
[root@ZH-LVS01 ~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[root@ZH-LVS01 ~]# cp /usr/local/sbin/keepalived /usr/sbin/

[root@ZH-LVS01 ~]# service keepalived start
启动 keepalived:
[root@ZH-LVS01 ~]# service keepalived stop
停止 keepalived: [确定]
[root@ZH-LVS01 ~]# service keepalived start
启动 keepalived: [确定]
[root@ZH-LVS01 ~]#
4. 安装ipvsadm LVS管理工具
4.1 检查kernel是否已经支持LVS的IPVS模块。
[root@ZH-LVS01 ~]# modprobe -l |grep ipvs

4.2 在安装ipvsadm之前应该做一下内核比对,/usr/local/kernels/ 下面的内核版本要和linux所使用的内核版本一样,然后做个链接。

4.3 解压并安装ipvsadm管理软件
[root@ZH-LVS01 ~]# tar -xzf ipvsadm-1.24.tar.gz
[root@ZH-LVS01 ~]# cd ipvsadm-1.24
[root@ZH-LVS01 ipvsadm-1.24]# make && make install
[root@ZH-LVS01 ipvsadm-1.24]# ipvsadm --help #看到帮助提示,表明IPVS已经安装成功。[root@ZH-LVS01 ipvsadm-1.24]# cd
[root@ZH-LVS01 ~]# find / -name ipvsadm #查看ipvsadm软件安装的位置。

二、 配置
1.
[root@ZH-LVS01 ~]# cd /etc/keepalived/
[root@ZH-LVS01 keepalived]# cp keepalived.conf keepalived.conf.bak
[root@ZH-LVS01 keepalived]# vim keepalived.conf2. 配置LVS01为Real Server,通过创建脚本的方式来实现。

 ! Configuration File for keepalived

 global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout
router_id LVS_DEVEL
}
vrrp_script chk_tomcat
{
script "/data/ha/scripts/ftp_check.sh"
interval
timeout
fall
} vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
10.143.92.202
}
track_script {
chk_tomcat
}
} virtual_server 10.143.92.202 { #此处端口不能写21哦,不然起来后会有问题
delay_loop
lb_algo wlc
lb_kind DR
nat_mask 255.255.255.255
persistence_timeout
protocol TCP real_server 10.143.92.115 {
weight
MISC_CHECK {
misc_path "/usr/local/bin/check_ftpget.pl -H 10.143.92.115 -u dev -p dev"
misc_timeout
}
weight
TCP_CHECK {
  connect_timeout
  nb_get_retry
  delay_before_retry
}
} real_server 10.143.82.10 {
weight
MISC_CHECK {
misc_path "/usr/local/bin/check_ftpget.pl -H 10.143.92.116 -u dev -p dev"
misc_timeout
}
weight
TCP_CHECK {
  connect_timeout
  nb_get_retry
  delay_before_retry
}
}
}

keepalived.conf

#!/bin/bash
status=$(/usr/local/bin/check_ftpget.pl -H 10.143.92.116 -u dev -p dev)
if [ "${status}" != "ftp ok" ];then
/etc/init.d/keepalived stop
exit
else
ftp_status=$(ps -ef |grep keepalived |grep -v grep|wc -l)
#if [ "${ftp_status}" < "3" ];then
if [ "${ftp_status}" != ];then
/etc/init.d/keepalived start
exit
fi
fi

/data/ha/scripts/ftp_check.sh

 #!/usr/bin/perl -w
## Written // Jeremy Hanmer
# $Id: check_ftpget.pl,v 1.1 // :: karldebisschop Exp $
use strict;
use Net::FTP;
use Getopt::Std;
use vars qw($opt_H $opt_u $opt_p $opt_f);
getopts("H:u:p:f:");
my $host = $opt_H ||
die "usage: check_ftp.pl -h host [<-u user> <-p pass> <-f file>]\n";
my $username = $opt_u || 'anonymous';
my $pass = $opt_p || "$ENV{'LOGNAME'}\@$ENV{'HOSTNAME'}" ;
my $file = $opt_f;
my $status = ;
my $problem;
my $output = "ftp ok";
my $ftp = Net::FTP->new("$host") ||
&crit("connect");
$ftp->login("$username", "$pass") ||
&crit("login");
$ftp->get($file) ||
&crit("get") if $file;
sub crit()
{
$problem = $_[];
$status = ;
if ( $problem eq 'connect' ) {
$output = "can't connect";
} elsif ( $problem eq 'login' ) {
$output = "can't log in";
} elsif ( $problem eq 'get' ) {
$output = "cant get $file";
}
}
print "$output\n";
exit $status;

/usr/local/bin/check_ftpget.pl

配置文件参考博客:http://www.cnblogs.com/MacoLee/p/5858995.html

[root@ZH-LVS01 ~]# vim /etc/init.d/lvsrs
#!/bin/bash
##
Script to start LVS DR real server.
# Decription: LVS DR real server.
. /etc/rc.d/init.d/functions
VIP=10.143.117.200
host=`/bin/hostname`
case "$1" in
start)
# Start LVS-DR real server on this machine.
/sbin/ifconfig lo down
/sbin/ifconfig lo up
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
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
;;
stop)
# Stop LVS-DR real server loopback device(s).
/sbin/ifconfig lo:0 down
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
;;
status)
# Status of LVS-DR real server.
islothere=`/sbin/ifconfig lo:0 | grep $VIP`
isrothere=`netstat -nr | grep "lo:0" | grep $VIP`
if [ ! "$islothere" -o ! "isrothere" ];then
# Either the route or the lo:0 device
# not found.
echo "LVS-DR real server Stoped."
else
echo "LVS-DR real server Running."
fi
;;*)
# Invalid entry .
echo "$0 : Usage: $0 {start|status|stop}"
exit 1
;;
esac
[root@ZH-LVS01 ~]# chmod +x /etc/init.d/lvsrs
4. 安装http 服务测试负载。
[root@ZH-LVS01 ~]# yum -y install http*
[root@ZH-LVS01 ~]# echo "ZH-LVS01" > /var/www/html/index.html
[root@ZH-LVS01 ~]# service httpd start
启动 httpd: [确定]
[root@ZH-LVS01 ~]# netstat -ntlp
5.启动服务
[root@ZH-LVS01 ~]# service keepalived restart
停止 keepalived: [确定]
启动 keepalived: [确定]
[root@ZH-LVS01 ~]# /usr/local/bin/check_interface &
[1] 10719
[root@ZH-LVS01 ~]# /etc/init.d/lvsrs start
[root@ZH-LVS01 ~]# /etc/init.d/lvsrs status
LVS-DR real server Running.
[root@ZH-LVS01 ~]#
ZH-LVS02的配置基本和ZH-LVS01上的配置是一样的,可以直接scp过去。有以下几点不同。
1. /etc/keepalived/keepalived.conf 中将MASTER改为BACKUP
2. 在LVS02中/etc/keepalived/keepalived.conf 中不需要写nopreempt
3.其他的/etc/init.d/lvsrs 可以直接拷贝过去就给执行权限即可。
日志写在 /var/log/messages 中ZH-LVS01配置
[root@ZH-LVS02 ~]# scp root@192.168.211.166:/etc/keepalived/keepalived.conf /etc/keepalived/
[root@ZH-LVS02 ~]# scp root@192.168.211.166:/etc/init.d/lvsrs /etc/init.d/
安装http服务并添加测试网页内容
[root@ZH-LVS02 ~]# echo "ZH-LVS02" > /var/www/html/index.html
[root@ZH-LVS02 ~]# service httpd start
启动 httpd: [确定]
[root@ZH-LVS02 ~]# netstat -ntlp启动服务
[root@ZH-LVS02 keepalived]# service keepalived restart
停止 keepalived: [确定]
启动 keepalived: [确定]
[root@ZH-LVS02 keepalived]# /etc/init.d/lvsrs start
[root@ZH-LVS02 keepalived]# /etc/init.d/lvsrs status
LVS-DR real server Running.
[root@ZH-LVS02 keepalived]#
使用ipvsadm 查看负载节点

lvs+keepalived+vsftp配置FTP服务器负载均衡的更多相关文章

  1. LVS+Keepalived搭建MyCAT高可用负载均衡集群

    LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...

  2. LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)

    一.概述 LVS作用:实现负载均衡 Keepalived作用:监控集群系统中各个服务节点的状态,HA cluster. 配置LVS有两种方式: 1. 通过ipvsadm命令行方式配置 2. 通过Red ...

  3. 通过LVS+Keepalived搭建高可用的负载均衡集群系统

    1. 安装LVS软件      (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...

  4. 借助LVS+Keepalived通过DR模式实现负载均衡

    1.测试环境4台server,全部初始化一下,该关的关了 # vim /etc/hosts 192.168.1.101 lvs-master DIP 192.168.1.102 lvs-slave D ...

  5. LVS + Keepalived 实现高可用、负载均衡 Web 集群

    简介: LVS 是 Linux Virtual Server 的简写,Linux 虚拟服务器的意思,是一个虚拟的服务器集群系统,此项目由章文嵩博士于 1998 年 5 月成立,是中国最早出现的自由软件 ...

  6. CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...

  7. 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...

  8. RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡

    原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写, ...

  9. CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】

    CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡   一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2 ...

随机推荐

  1. python全栈开发从入门到放弃之推导式详解

    variable = [out_exp_res for out_exp in input_list if out_exp == 2] out_exp_res: 列表生成元素表达式,可以是有返回值的函数 ...

  2. The Cheap KD 10 design is not too far of a departure

    Kevin Durant's Cheap KD 10 have to do with to determine the greatest spotlight they have seen around ...

  3. Linux系统——引导过程与服务控制

    一.Linux开机启动原理(十步) (1)开机自检BIOS 开机检测,主板检测 (2)MBR引导 硬盘512字节 (3)GRUB菜单 操作系统菜单 (4)加载内核(kernel) 启动操作系统核心,根 ...

  4. hdu6206 Apple

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6206 题目: Apple Time Limit: 1000/1000 MS (Java/Oth ...

  5. TOSCA自动测试工具跟QTP 和 Selenium的简单对比

    1. 一个课程里的,可以做个简单的参考,有些地方不是很准确

  6. 50条常用liunx命令整理

    1.pwd命令 :确定自己在那个目录 使用方法:在liunx命令输入框里面输入pwd,自动就会显示出自己现在在那个目录下 操作截图: 此时正处在root目录里面 2.cd命令:切换目录的意思 使用方法 ...

  7. PHP秒杀系统全方位设计分析(一)

    秒杀系统特点人多商品少时间短流量高外挂机器[黄牛和非黄牛] 技术分析瞬间高并发的处理能力多层次的分布式处理能力人机交互与对抗[12306验证码图片] 技术选型分析Linux+Nginx+PHP+Mys ...

  8. raid 简单了解

    独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks ...

  9. 20145313张雪纯 《Java程序设计》第4周学习总结

    20145313张雪纯 <Java程序设计>第4周学习总结 教材学习内容总结 6.1何谓继承 程序代码重复时,可以把相同的程序代码提升为父类.继承除了可避免类之间重复的行为定义以外,还有i ...

  10. 20145328 《Java程序设计》课程总结

    20145328 <Java程序设计>课程总结 每周学习总结链接汇总 20145328 <Java程序设计>第0周学习总结 20145328 <Java程序设计>第 ...