wstlwl 发表于 2018-12-30 06:15:12

lvs+keepalived+vsftp实现主备负载均衡ftp集群.txt

lvs+keepalived+vsftp实现主备负载均衡ftp集群

2010-3-17
目录
  lvs+keepalived+vsftp实现主备负载均衡ftp集群... 1
  一、拓扑描述... 3
  二、环境说明... 3
  三、Lvs+keepalived安装配置... 3
3.1负载均衡主服务器配置... 3
3.1.1下载软件... 3
3.1.2软件安装... 3
3.1.3 keepalived配置... 5
3.2负载均衡备份服务器配置... 7
3.2.1软件下载... 7
3.2.2软件安装... 7
3.2.3 keepalived配置... 7
3.3真实ftp服务器配置... 9
  四、服务启动... 10
  附录:vsftp配置... 11
一、拓扑描述
http://blog.运维网.com/e/u/themes/default/images/spacer.gif负载均衡主服务器(master)10.99.0.245VIP:10.99.0.145
http://blog.运维网.com/e/u/themes/default/images/spacer.gif负载均衡备份服务器(backup)10.99.0.226VIP:10.99.0.145
http://blog.运维网.com/e/u/themes/default/images/spacer.gif真实ftp服务器110.99.0.246
http://blog.运维网.com/e/u/themes/default/images/spacer.gif真实ftp服务器210.99.0.247
二、环境说明
本案例涉及到4台服务器,操作系统均为turbolinux11 64位操作系统,内核版本为2.6.18-53。ftp软件为vsftp。
三、Lvs+keepalived安装配置
3.1负载均衡主服务器配置
3.1.1下载软件
  需要安装ipvsadm-1.24.tar.gz和keepalived-1.1.19.tar.gz两个软件,下载地址如下:
  http://www.linuxvirtualserver.org/software/ipvs.html
  http://www.keepalived.org/software/keepalived-1.1.19.tar.gz
3.1.2软件安装
  ipvsadm-1.24.tar.gz安装
  将ipvsadm-1.24.tar.gz复制到/usr/src/目录下
  对内核源码做个软连接,否则会报错,注意keepalived安装的时候,也是需要这个软连接的。
  #ln –s /usr/src/kernels/2.6.18-53-x86_64 /usr/src/linux
  解压程序包
  # tar –zxvf ipvsadm-1.24.tar.gz
  编译安装
  # cd ipvsadm-1.24
  # make
  # make install
  验证安装
  # ipvsadm
  显示如下:
  **************************************************************
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:PortForward Weight ActiveConn InActConn
  **************************************************************
  # lsmod |grep ip_vs
  显示如下
  **************************************************************
  ip_vs_*******1
  ip_vs****** 3ip_vs_**
  **************************************************************
  keepalived-1.1.19.tar.gz安装
  同样,将keepalived-1.1.19.tar.gz复制到/usr/src/目录下
  解压、编译
  # tar –zxvf keepalived-1.1.19.tar.gz
  # cd keepalived-1.1.19
  # ./configure --prefix=/usr/local/keepalived
  注意,出现如下显示,则表示配置成功,红色的三行必须为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
-------------------------------------------------
  **************************************************************
  # make
  # make install
  配置启动
  #cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
  #cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
  #mkdir /etc/keepalived
  #cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
  #cp /usr/local/keepalived/sbin/keepalived /usr/sbin
  #service keepalived start|stop(先不要启动)
3.1.3 keepalived配置
  Keepalived只有一个配置文件,及/etc/keepalived/keepalived.conf,文件内容如下:
  ************************************************************************
  ! Configuration File for keepalived
  global_defs {
  router_id LVS_DEVEL
  }
  vrrp_sync_group VGM {
  group {
  VI_CACHE
  }
  }
  vrrp_instance VI_CACHE {
  state MASTER
  interface eth0
  virtual_router_id 51
  priority 100
  advert_int 1
  authentication {
  auth_typePASS
  auth_pass 1111
  }
  virtual_ipaddress {
  10.99.0.145
  }
  }
  virtual_server 10.99.0.145 21 {
  delay_loop 6
  lb_algo wlc
  lb_kind DR
  persistence_timeout 50
  protocol TCP
  real_server 10.99.0.246 21 {
  weight 1
  MISC_CHECK {
  misc_path "/usr/local/bin/check_ftpget.pl -H 10.99.0.246 -u dx1 -p 111111"
  misc_timeout 10
  }
  }
  real_server 10.99.0.247 21 {
  weight 1
  MISC_CHECK {
  misc_path "/usr/local/bin/check_ftpget.pl -H 10.99.0.247 -u dx1 -p 111111"
  misc_timeout 10
  }
  }
  }
  ************************************************************************
  配置文件中的红色部分,涉及到一个脚本,该脚本作用为检测ftp服务是否正常,文件内容如下:
  ************************************************************************
  #!/usr/bin/perl -w
  ## Written 12/5/00 Jeremy Hanmer
  # $Id: check_ftpget.pl,v 1.1 2000/12/07 14:40:44 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 []\n";
  my $username = $opt_u || 'anonymous';
  my $pass = $opt_p || "$ENV{'LOGNAME'}\@$ENV{'HOSTNAME'}" ;
  my $file = $opt_f;
  my $status = 0;
  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 = 2;
  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;
  ************************************************************************
  设置成自启动:vi /etc/rc.local //里面添加。
  
  注意:此时负载均衡主服务器已配置完毕,ipvsadm是不用做任何配置的,只需要配置keepalived即可。Keepalived运行在ipvsadm之上,负责将配置加载到ipvsadm。
3.2负载均衡备份服务器配置
3.2.1软件下载
  同上
3.2.2软件安装
  同上
3.2.3 keepalived配置
  Keepalived配置文件,与主服务器略有不同,红色部分标识(两处),内容如下:
  ************************************************************************
  ! Configuration File for keepalived
  global_defs {
  router_id LVS_DEVEL
  }
  vrrp_sync_group VGM {
  group {
  VI_CACHE
  }
  }
  vrrp_instance VI_CACHE {
  state BACKUP
  interface eth0
  virtual_router_id 51
  priority 99
  advert_int 1
  authentication {
  auth_typePASS
  auth_pass 1111
  }
  virtual_ipaddress {
  10.99.0.145
  }
  }
  virtual_server 10.99.0.145 21 {
  delay_loop 6
  lb_algo wlc
  lb_kind DR
  persistence_timeout 50
  protocol TCP
  real_server 10.99.0.246 21 {
  weight 1
  MISC_CHECK {
  misc_path "/usr/local/bin/check_ftpget.pl -H 10.99.0.246 -u dx1 -p 111111"
  misc_timeout 10
  }
  }
  real_server 10.99.0.247 21 {
  weight 1
  MISC_CHECK {
  misc_path "/usr/local/bin/check_ftpget.pl -H 10.99.0.247 -u dx1 -p 111111"
  misc_timeout 10
  }
  }
  }
  ************************************************************************
  同时需要check_ftpget.pl这个文件,内容与主服务器相同。
  设置成自启动:vi /etc/rc.local //里面添加。
3.3真实ftp服务器配置
真实ftp服务器不用安装任何软件,有ftp服务即可,只需做如下操作。
编写脚本/etc/rc.d/init.d/lvs_realserver.sh,内容如下:
  ************************************************************************
  #!/bin/bash
  #description:start realserver
  VIP1=10.99.0.145
  /etc/rc.d/init.d/functions
  case "$1" in
  start)
  echo " start LVS of RealServer"
  /sbin/ifconfig lo:0 $VIP1 broadcast $VIP1 netmask 255.255.255.255 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
  ;;
  stop)
  /sbin/ifconfig lo:0 down
  echo "close LVS Directorserver"
  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 "Usage: $0 {start|stop}"
  exit 1
  esac
  # shell end
  ************************************************************************‘
将该脚本添加到/etc/rc.d/rc.local以开机自启动
/etc/rc.d/init.d/lvs_realserver.sh start&
四、服务启动
负载均衡主服务器、负载均衡备份服务器,在/etc/rc.d/rc.local添加一行,内容为“service keepalived start”。真实ftp服务器,在/etc/rc.d/rc.local添加一行,内容为“/etc/rc.d/init.d/lvs_realserver.sh start&”。当然真实服务器ftp服务必须能自启动,可以在setup中配置。
负载均衡主服务器验证
# ipvsadm显示如下:
http://blog.运维网.com/e/u/themes/default/images/spacer.gif
  # ip addr显示如下
http://blog.运维网.com/e/u/themes/default/images/spacer.gif
负载均衡备份服务器验证
# ipvsadm显示如下:
http://blog.运维网.com/e/u/themes/default/images/spacer.gif
# ip addr显示如下
http://blog.运维网.com/e/u/themes/default/images/spacer.gif
附录:vsftp配置
  *****************************************************************************
  设置说明:只允许本地用户(dx1、lt1、yd1)登录,权限:只能上传、不能下载、不能删除
  *****************************************************************************
  具体配置如下,包含vsftpd.conf、chroot_list、user_list、ftpusers四个配置文件
  *******************************************************************************
  ####################################
  ###vsftpd.conf###
  ####################################
  #/etc/vsftpd/vsftpd.conf
  #host
  #是否使用服务器本地时间,YES为是
  use_localtime=YES
  #用户是否有写权限
  write_enable=YES
  #用户是否可以下载,设置为NO,即限制用户下载
  download_enable=NO
  dirmessage_enable=YES
  #用户可以使用的ftp命令,此处没有DELE,即限制用户删除
  cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RMD,RNFR,RNTO,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
  #是否开启上传下载日志
  xferlog_enable=YES
  #日志文件
  xferlog_file=/var/log/vsftpd.log
  #data_connection_timeout=60
  #idle_session_timeout=600
  #服务器最大用户连接数
  max_clients=50
  #每个ip最大连接数
  max_per_ip=5
  ascii_upload_enable=NO
  ascii_download_enable=NO
  connect_from_port_20=YES
  pasv_enable=YES
  pasv_min_port=65400
  pasv_max_port=65420
  pam_service_name=vsftpd
  tcp_wrappers=YES
  listen_port=21
  listen=YES
  #anonymous
  #是否开启匿名用户
  anonymous_enable=NO
  #real user
  #是否开启本地用户
  local_enable=YES
  #文件上传后的权限 022相当于 -rw-r--r--
  local_umask=022
  #是否将用户锁定在用户家目录下
  chroot_list_enable=YES
  #需要锁定家目录的用户列表文件
  chroot_list_file=/etc/vsftpd/chroot_list
  #是否使用用户限制列表
  userlist_deny=YES
  #用户限制列表文件
  userlist_file=/etc/vsftpd/user_list
  #文件传输最大速度
  local_max_rate=900000
  *******************************************************************************
  ####################################
  ###chroot_list###
  ####################################
  #/etc/vsftpd/chroot_list注:需要事先建好以下三个系统用户、并设置好密码(#adduser dx1)
  dx1
  lt1
  yd1
  *******************************************************************************
  ####################################
  ###user_list###
  ####################################
  #/etc/vsftpd/user_list
  #视本地用户目录而定
  root
  rpc
  rpcuser
  rpm
  sabayon
  shutdown
  smmsp
  squid
  sshd
  sync
  tomcat
  uucp
  vcsa
  webalizer
  xfs
  yhx
  *******************************************************************************
  ####################################
  ###ftpusers###
  ####################################
  #/etc/vsftpd/ftpusers
  #视本地用户目录而定
  root
  rpc
  rpcuser
  rpm
  sabayon
  shutdown
  smmsp
  squid
  sshd
  sync
  tomcat
  uucp
  vcsa
  webalizer
  xfs
  yhx
  *******************************************************************************



页: [1]
查看完整版本: lvs+keepalived+vsftp实现主备负载均衡ftp集群.txt