`

lvs+keepalived+vsftp配置FTP服务器负载均衡

 
阅读更多

 

STEP 1 准备机器和环境

 

准备4台机器,这里以152-155四台机器为例(CENTOS 6.4)

 

173.1.3.152 (keepalived负载均衡 主机 MASTER)
173.1.3.153 (keepalived负载均衡 备机 BACKUP)
173.1.3.154 (FTP服务器1)
173.1.3.155 (FTP服务器2)

 

 

 

 

 

STEP 2 负载均衡主机安装

1、环境准备

1)执行如下命令

 

[root@CentOS-6 ~]# yum install -y wget make kernel-devel gcc gcc-c++ libnl* libpopt* popt-static

 

 

(

说明:

如果不能yum 请先查看各软件是否已安装,查看方式为

 

rpm -qa|grep XXX(XXX = wget|make|kernel-devel|gcc|gcc-c++|libnl*|libpopt*|popt-static)

 

 

没有安装的请一一下载安装,安装方法在此不再赘述

)

2)查看内核版本,创建LN软链接,具体过程执行以下命令

 

[root@CentOS-6 ~]# lsmod |grep ip_vs
[root@CentOS-6 ~]# uname -r
(系统显示)2.6.32-358.el6.x86_64
[root@CentOS-6 ~]# ln -s /usr/src/kernels/2.6.32-358.e16.x86_64/ /usr/src/linux

 

 

 

2、安装ipvsadm-1.26.tar.gz

1)先将该文件通过SFTP上传至/usr/src

2)安装ipvsadm-1.26

 

[root@CentOS-6 ~]# cd /usr/src
[root@CentOS-6 src]# tar -zxvf ipvsadm-1.26.tar.gz
[root@CentOS-6 src]# cd ipvsadm-1.26
[root@CentOS-6 ipvsadm-1.26]# make
[root@CentOS-6 ipvsadm-1.26]# make install

 

 

3)验证安装

 

[root@CentOS-6 ~]# ipvsadm
显示如下:
***********************************************************************************
		IP Virtual Server version 1.2.1 (size=4096)
		Prot LocalAddress:Port Scheduler Flags
		  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
***********************************************************************************
[root@CentOS-6 ~]# lsmod |grep ip_vs
显示如下
***********************************************************************************
		ip_vs_rr                1420  0 
		ip_vs_wlc               1241  1 
		ip_vs                 115643  5 ip_vs_rr,ip_vs_wlc
		libcrc32c               1246  1 ip_vs
		ipv6                  321422  20 ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
***********************************************************************************

 

 

 

3、安装keepalived-1.2.13.tar.gz

1)先将该文件通过SFTP上传至/usr/src

2)安装及验证keepalived-1.2.13

 

		[root@CentOS-6 ~]# cd /usr/src
		[root@CentOS-6 src]# tar -zxvf keepalived-1.2.13.tar.gz
		[root@CentOS-6 src]# cd keepalived-1.2.13
		[root@CentOS-6 keepalived-1.2.13]# ./configure 
		注:./configure 不指定 --prefix=时,则默认安装至/usr/local
		注意,出现如下显示,则表示配置成功,标★的三行必须为YES
		**************************************************************
		Keepalived configuration
		-----------------------------------------------
		Keepalived version       : 1.1.19
		Compiler                 : gcc
		Compiler flags           : -g -O2
		Extra Lib                : -lpopt -lssl -lcrypto 
		Use IPVS Framework       : Yes ★
		IPVS sync daemon support : Yes ★
		Use VRRP Framework       : Yes ★
		Use LinkWatch            : No
		Use Debug flags          : No
		-------------------------------------------------
		**************************************************************
		[root@CentOS-6 keepalived-1.2.13]# make
		[root@CentOS-6 keepalived-1.2.13]# make install

 

 

3)配置keepalived

		[root@CentOS-6 keepalived-1.2.13]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
		[root@CentOS-6 keepalived-1.2.13]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
		[root@CentOS-6 keepalived-1.2.13]# mkdir /etc/keepalived
		[root@CentOS-6 keepalived-1.2.13]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
		[root@CentOS-6 keepalived-1.2.13]# cp /usr/local/sbin/keepalived /usr/sbin

 

注:./configure 如果指定了 --prefix=XXX时,以上命令改为cp XXXX /***/***

 

4、配置keepalived.conf

1)将keepalived.conf通过SFTP上传至/etc/keepalived

 将check_ftpget.pl上传至/usr/local/bin

2)变更check_ftpget.pl文件权限(凡是遇到文件权限访问等问题,都需要变更文件权限,如本文没有提到的文件有权限访问问题,请参考这里)

		[root@CentOS-6 ~]# chmod 755 /usr/local/bin/check_ftpget.pl

 

3)keepalived.conf文件在这个安装手册上已经配置好了,不需要变动,但实际生产环境中可能由于IP地址不一样,需要变更一些配置。

以下我就这些配置跟大家做个说明

	! Configuration File for keepalived 
	global_defs { #全局配置
		notification_email {
			xxxxxx@sina.com   #设置报警邮件地址,可以设置多个,每行一个。需要开启sendmail服务。
		}
		notification_email_from keepalived@localhost  #设置邮件的发送地址
		smtp_server 127.0.0.1                         #设置SMTP Server地址
		smtp_connect_timeout 30                       #设置SMTP Server的超时时间
		router_id LVS_DEVEL          #表示运行Keepalived服务器的一个标识。发邮件时显示大邮件主题中的信息
	}  
	
	vrrp_sync_group VGM { #VRRP同步组设置:设置同步组可支持MASTER和BACKUP机器分别存在于内外网
			 group {
				VI_CACHE         #VRRP实例定义
			} 
	}  
	vrrp_instance VI_CACHE {	#VRRP实例配置
		 state MASTER     		#指定Keepalived的角色,MASTER表示些主机是主服务器。BACKUP表示此主机是备用服务器 
		 interface eth2			#指定HA监测网络的接口(查看网络接口用命令ip addr)
		 virtual_router_id 51	#虚拟路由标识,这个标识是一个数字,同一个vrrp实例使用唯一的标识,即同一个vrrp_instance下MASTER与BACKUP必须是一致的
		 priority 100			#定义优先级,数字越大,优先级越高,一般主机高于备机
		 advert_int 1			#检查间隔,默认1秒
		 authentication {		#设置认证
		  auth_type PASS		#认证方式,支持PASS和AH
		  auth_pass 1111		#认证的密码
		 } 
		virtual_ipaddress {		#设置漂移地址(虚拟IP地址),可以设置多个漂移地址,每行一个
			 173.1.3.156    
		} 
	} 
	 
	virtual_server 173.1.3.156 21 {	#设置虚拟服务器,需要指定虚拟IP地址和服务端口,IP与端口之间用空格隔开
		 delay_loop 6				#设置运行情况检查时间,单位为秒
		 lb_algo wlc				#设置负载调度算法,这里设置rr,即轮询算法
		 lb_kind DR					#设置LVS实现负载均衡机制,有NAT、TUN、DR三个模式可选(简单说NAT支持任意OS但只支持20个负载,TUN只支持LINUX,DR支持LINUX/WINDOWS等,但只支持同一网段)
		 persistence_timeout 50		#会话保持单位时间,单位是秒
		 protocol TCP				#指定转发协议类型,有TCP和UDP两种 
	 
			real_server 173.1.3.154 21 {#配置服务节点1,需要指定real server的真实IP地址和端口
				weight 1				#配置服务节点的权值,权值数字越大,权值越高
				MISC_CHECK {			#MISC健康检查方式,执行一个程序
					misc_path "/usr/local/bin/check_ftpget.pl -H 173.1.3.154 -u admin -p 123457"	#待执行的脚本
					misc_timeout 10		#脚本执行的超时时间
				}
			} 
			real_server 173.1.3.155 21 {#配置服务节点2,说明参考1,略
				weight 1
				MISC_CHECK { 
						misc_path "/usr/local/bin/check_ftpget.pl -H 173.1.3.155 -u admin -p 123457"
						 misc_timeout 10
				 }     
			} 
	}

 

 

5、启动keepalived

1)直接启动:

		[root@CentOS-6 ~]# service keepalived start

  2)添加开机自动启动

在/etc/rc.d/rc.local添加一行,内容为“service keepalived start”

 

6、关闭防火墙或添加防火墙规则(二选一)

1)关闭防火墙

重启后生效

		[root@CentOS-6 ~]# chkconfig iptables off

  即时生效,重启后失效service 方式

		[root@CentOS-6 ~]# service iptables stop

 

2)添加规则

		[root@CentOS-6 ~]# vi /etc/sysconfig/iptables 
			-A INPUT -m state -–state NEW -m tcp -p tcp –-dport 20 -j ACCEPT
			-A INPUT -m state -–state NEW -m tcp -p tcp –-dport 21 -j ACCEPT
			-A INPUT -m state -–state NEW -m tcp -p tcp –-dport 1024: -j ACCEPT

  {注:20&21开放端口是主动方式,其中21是FTP连接TCP端口,20是数据传输接口

1024:&21开放端口是被动方式,其中21是FTP连接TCP端口,1024:

(表示1024-正无穷,为啥呢,因为FTP服务会随机开1024以上的端口作数据传输,所以此次:不可少)是数据传输接口}

 

 

 

STEP 3 负载均衡备机安装

1、环境准备

参考主机

 

2、安装ipvsadm-1.26.tar.gz

参考主机

 

3、安装keepalived-1.2.13.tar.gz

参考主机

 

4、配置keepalived.conf

1)将keepalived_bak.conf通过SFTP上传至/etc/keepalived,并改名为keepalived.conf

 将check_ftpget.pl上传至/usr/local/bin

其他步骤参考主机,备机注意keepalived.conf配置有两个地方和主机不同

state BACKUP

priority 99

 

5、启动keepalived

参考主机

 

6、关闭防火墙或添加防火墙规则(二选一)

参考主机

 

 

 

 

STEP 4 FTP服务器配置

1、环境准备

假设你已经安装了VSFTPD,此文中VSFTPD不是重点,安装方法在此不再赘述

FTP服务器需要注意安装过程中,需要对执行以下命令开启FTP服务允许访问状态

	[root@CentOS-6 ~]# setsebool allow_ftpd_full_access=1 ftp_home_dir=1

 2、FTP配置

1)将lvs_realserver.sh上传至FTP服务器/etc/rc.d/init.d

2)变更权限

		[root@CentOS-6 ~]# chmod 755 /etc/rc.d/init.d/functions
		[root@CentOS-6 ~]# chmod 755 /etc/rc.d/init.d/lvs_realserver.sh

  2)启动配置脚本

马上启动:

			[root@CentOS-6 ~]# /etc/rc.d/init.d/lvs_realserver.sh start

  开机自启动(后台方式):

在/etc/rc.d/rc.local中添加一行:

			/etc/rc.d/init.d/lvs_realserver.sh start&

 

 

 

STEP 5 测试

1、可以通过FTP客户端,直接连接173.1.3.156虚拟FTP服务

	IP:173.1.3.156
	PORT:21
	USER:admin
	PASS:123457

 

2、查看虚拟IP服务状态

在活动负载均衡机器(默认主机)上执行如下命令:

	[root@CentOS-6 ~]# ipvsadm
		IP Virtual Server version 1.2.1 (size=4096)
		Prot LocalAddress:Port Scheduler Flags
			-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
		TCP  173.1.3.156:ftp wlc persistent 50
			-> 173.1.3.154:ftp              Route   1      1          0         
			-> 173.1.3.155:ftp              Route   1      3          0   

 

3、停止负载均衡主机服务

	[root@CentOS-6 ~]# service keepalived stop   	#停止
	[root@CentOS-6 ~]# service keepalived restart   #重启
	[root@CentOS-6 ~]# service keepalived start   	#开启
	[root@CentOS-6 ~]# service keepalived status   	#查看状态

  停止负载均衡主机,系统会自动唤醒备机,无需手工切换,自动化无人植守配置。切换时间目前配置的是1秒,但切换可能需要1-20秒不等的时间

主机恢复后,备机将自动进入休眠状态,如此反复。

 

4、停止负载均衡备机服务

命令参考上一条,对备机作任何变更,在主机存活期间无任何影响,但如果主机服务宕机,则会有影响,将导致虚拟FTP不可用。

 

5、停止FTP真机服务

停止任意一台真机服务,不会影响虚拟FTP服务,虚拟FTP服务会自动连上可以提供服务的FTP服务器,如果所有的FTP真机服务都宕机了,则虚拟FTP也将无法访问。

当真机FTP服务恢复正常后,虚拟FTP将自动添加真机服务至虚拟队列中,无人值守。

 

6、清除和手工添加一些虚拟IP规则

	ipvsadm -C	#清除
	ipvsadm -A -t 173.1.3.156:21 -s wlc #添加虚拟IP TCP协议 
	ipvsadm -a -t 173.1.3.156:21 -r 173.1.3.154 -g -w 1  #添加虚拟IP TCP协议真机 
	ipvsadm -a -t 173.1.3.156:21 -r 173.1.3.155 -g -w 1  #添加虚拟IP TCP协议真机

  其他规则参考网络上ipvsadm命令用法

 

 

 

附录

安装手册:

安装手册.txt

 

安装时需要的文件:

check_ftpget.pl #检查FTP服务是否正常的程序
ipvsadm-1.26.tar.gz #ipvsadm安装包
keepalived-1.2.13.tar.gz #keepalived安装包
keepalived.conf #keepalived主机配置参考文件
keepalived_bak.conf #keepalived备机配置参考文件
lvs_realserver.sh #FTP真机服务器连接虚拟FTP地址的程序
vsftpd.conf #FTP服务的配置

 

供大家学习及参考的文档:

Keepalived权威指南.pdf
lvs+keepalived+vsftp实现主备负载均衡ftp集群.txt.doc

 

分享到:
评论
3 楼 0筱蔡0 2016-07-13  
你好   我想问下:
   看您的文档  我把服务搭了起来 ,但是  在内网测试的时候  用vip  来连接ftp  是可以做到集群的,,, 但是我ftp映射到外网的时候 , lvs  的策略就好像没有效果了 ,只会在一台ftp上  不会做到负载均衡  ,有什么办法可以解决吗?
2 楼 laputa73 2016-03-23  
ftp集群的问题是,各个服务器之间是否要实现文件同步?
服务虽然是HA了,但是realserver上的内容挂了就没了。。。
1 楼 xuhang1458 2015-10-20  
测试FTP健康的脚本单独运行怎么运行不了,语法错误?在第15行的my 附近。我找了好久,卡了我很长时间。望大神解救

相关推荐

    LVS+Keepalived高可用负载均衡集群

    随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司...我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。

    lvs+Keepalived+nginx高可用负载均衡搭建部署方案

    lvs+Keepalived+nginx高可用负载均衡搭建部署方案

    搭建LVS+KEEPALIVED负载均衡.pdf

    搭建LVS+KEEPALIVED负载均衡需要安装ipvsadm和Keepalived软件,配置Keepalived的配置文件,并部署Master-lvs和Backup-lvs服务器。同时,LVS和KEEPALIVED可以实现高可用性和高性能,且可以灵活地配置Real Server和...

    Mysql双主热备+LVS+Keepalived高可用操作记录-精华版

    本篇文档为Mysql双主热备+LVS+Keepalived高可用操作记录,可作为线上实操手册,有需要的朋友可以拿走,希望能帮助到有用到的人~

    利用LVS+Keepalived 实现高性能高可用负载均衡服务器

    【LVS+Keepalived 实现高性能高可用负载均衡服务器】 在互联网行业中,随着网站业务量的不断增长,服务器承受的压力日益增大。为了确保服务的稳定性和可用性,需要采用负载均衡策略。LVS(Linux Virtual Server)和...

    LVS+keepalived负载均衡系统资料合集

    综上所述,LVS+keepalived负载均衡系统是构建高可用、高性能服务的关键技术之一,其强大的功能和灵活的配置使得它在各类规模的网络环境中都有广泛的应用。通过深入理解和熟练掌握这些知识点,可以有效地提升系统稳定...

    LVS+Keepalived+MySQL半同步主主复制高可用方案.docx

    【LVS+Keepalived+MySQL半同步主主复制高可用方案】 1. 方案概述 LVS(Linux Virtual Server)结合Keepalived构建的高可用解决方案,通常用于实现负载均衡和故障转移,以提高系统的整体可用性。在这个方案中,MySQL...

    Mysql双主热备+LVS+Keepalived高可用操作记录(个人精华版)

    本篇文章详细记录了Mysql双主热备+LVS+Keepalived高可用操作过程,可作为线上长期的实操手册.特此分享,希望能帮助到有用到的朋友.

    lvs+KeepAlived搭建实战.pdf

    Lvs抗负载能力强,因为 lvs 工作方式的逻辑是非常之简单,而且工作在网络 4 层仅做请求分发之用,没有流量,所以在效率上基本不...文档简单演示了lvs+keepalived的搭建过程和负载测试,顺便记录下来。每天进步一点。

    HAProxy+Keepalived+LVS实现负载平衡高可用集群最佳实践

    HAProxy+Keepalived+LVS实现负载平衡高可用集群最佳实践

    Linux负载均衡--LVS+Keepalived(终极文档).pdf

    Linux 负载均衡 -- LVS+Keepalived 终极指南 Linux 负载均衡是当前网站业务量增长面临的主要挑战之一。如何实现高性能高可用的负载均衡方案,降低成本,提高网站的可靠性和灵活性,是每个网站管理员和架构师所面临...

    LVS+KeepAlived+Nginx高可用实现方案.pdf

    "LVS+KeepAlived+Nginx高可用实现方案" LVS(Linux Virtual Server)是一种虚拟服务器集群系统,旨在提供高性能、高可用的服务器解决方案。其主要特点包括可伸缩性、可靠性和可管理性。LVS通过IP负载均衡技术实现...

    lvs+keepalived+mha+mysql架构配置说明

    lvs+keepalived+mha+mysql 架构配置说明 LVS(Linux Virtual Server)是一种开源的负载均衡解决方案,旨在提高服务器集群的可用性和可扩展性。在高可用架构中,LVS 通常与 Keepalived 配合使用,以提供高可用的负载...

    MySQL+lvs+keepalived+mha架构配置实战演练

    MySQL+lvs+keepalived+mha架构是一种高可用性、负载均衡的数据库集群解决方案,用于构建强大且可靠的数据库服务。这种架构充分利用了各组件的优势,确保数据的安全性和系统的稳定性。 MySQL是世界上最流行的开源...

    LVS+Keepalived实现高可用负载均衡

    ### LVS+Keepalived 实现高可用负载均衡 #### 一、原理 **1、概要介绍** 在现代互联网架构中,为了提高系统的稳定性和可靠性,常常采用高可用(High Availability, HA)架构设计。其中,LVS(Linux Virtual ...

    (带目录版)MySQL LVS+Keepalived+MHA 高可用群集 应用部署操作手册

    #### LVS+Keepalived 高可用负载均衡系统 - **LVS(Linux Virtual Server)** - LVS 是一种基于Linux的高性能负载均衡解决方案。 - 它通过IP负载均衡技术和基于内容请求分发技术,将访问请求均匀地分配到多个...

    Lvs+keepalived+failover搞定服务器负载均衡ppt

    在LVS+Keepalived的环境中,Failover通常由Keepalived实现,当主服务器失效时,Keepalived可以快速将VIP(Virtual IP)转移到备份服务器,保证服务不间断。 总结PPT中的内容,我们可以期待了解到如何配置和管理LVS...

Global site tag (gtag.js) - Google Analytics