lvs+keepalived+vsftp配置FTP服务器负载均衡
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服务器负载均衡的更多相关文章
- LVS+Keepalived搭建MyCAT高可用负载均衡集群
LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...
- LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)
一.概述 LVS作用:实现负载均衡 Keepalived作用:监控集群系统中各个服务节点的状态,HA cluster. 配置LVS有两种方式: 1. 通过ipvsadm命令行方式配置 2. 通过Red ...
- 通过LVS+Keepalived搭建高可用的负载均衡集群系统
1. 安装LVS软件 (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...
- 借助LVS+Keepalived通过DR模式实现负载均衡
1.测试环境4台server,全部初始化一下,该关的关了 # vim /etc/hosts 192.168.1.101 lvs-master DIP 192.168.1.102 lvs-slave D ...
- LVS + Keepalived 实现高可用、负载均衡 Web 集群
简介: LVS 是 Linux Virtual Server 的简写,Linux 虚拟服务器的意思,是一个虚拟的服务器集群系统,此项目由章文嵩博士于 1998 年 5 月成立,是中国最早出现的自由软件 ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡
源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...
- RHEL 5.4下部署LVS(DR)+keepalived实现高性能高可用负载均衡
原文地址:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html 一.简介 LVS是Linux Virtual Server的简写, ...
- CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡【转】
CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2 ...
随机推荐
- Mac下的Mysql无法登陆的问题
以下是还原root权限和更改root密码的最便捷方法. 1:装mysql workbench .可视化界面直接操作. 2:苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭my ...
- 由浅入深之Tensorflow(4)----Saver&restore
x = tf.placeholder(tf.float32) y = tf.placeholder(tf.float32) w = tf.Variable(tf.zeros([1, 1], dtype ...
- 【python】win10中python3.5.2输入pip出现Fatal error in launcher: Unable to create process using '"'
系统:windows 10 python版本:3.5.2 出现的错误如下: C:\Users\zhuxy>pip list Fatal error in launcher: Unable to ...
- 一个UUID生成算法的C语言实现——WIN32版本
源: 一个UUID生成算法的C语言实现——WIN32版本
- 【Python】错误、调试和测试
链接到错误处理 链接到调试 链接到单元测试 链接到文档测试 [错误处理] 小结:遇到错误怎么办? 1.不理它. 2.捕获它,再抛出. 3.捕获并处理错误. raise 不懂如何处理错误就直接抛出(ra ...
- linux 分区格式化
要对一个u盘进行分区 windows上直接格式化就行了,但是我的u盘 由于之前做成的系统把u盘分成三个分区,windows只能格式化第一个分区其他两个分区只能看着,理论上windows上也有dd之类的 ...
- 20145231熊梓宏《网络对抗》逆向及Bof基础
20145231网络对抗<逆向及Bof基础> 实验目的与要求 1.本次实践的对象是一个名为pwn1的linux可执行文件. 2.若该程序正常执行,则main函数会调用foo函数,foo函数 ...
- iOS日常学习 - 如何配置.gitignore文件
文章为转载学习,原文地址 为什么要配置.gitigore 在我们使用git的过程当中,不是任何文件都需要commit到本地或者远程仓库的,比如一些三方库文件. 那么作为一个git新手,很多人不知道如何 ...
- 在linux上使用tomcat服务器图片验证码不显示问题
背景描述:在liunx系统上,使用tomcat中间件,访问web项目,登录页面的图片验证码显示不出来,但是在window系统上可以正常显示 解决方案:设置一下这个文件tomcat/bin/catali ...
- linux 忘记登陆密码
声明:如果不是远程登陆,机器在自己身边还有救. 第一步:重启机器,进入brug界面(grub是一个引导管理程序,可以引导linux.winxp等系统,在/boot/grub/中的menu.lst中进行 ...