设为首页 收藏本站
查看: 888|回复: 0

[经验分享] lvs+keepalived+vsftp实现主备负载均衡ftp集群.txt

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2018-12-30 06:15:12 | 显示全部楼层 |阅读模式
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
一、拓扑描述
负载均衡主服务器(master10.99.0.245VIP10.99.0.145
负载均衡备份服务器(backup10.99.0.226VIP10.99.0.145
真实ftp服务器110.99.0.246
真实ftp服务器210.99.0.247
二、环境说明
本案例涉及到4台服务器,操作系统均为turbolinux11 64位操作系统,内核版本为2.6.18-53ftp软件为vsftp
三、Lvs+keepalived安装配置
3.1负载均衡主服务器配置
3.1.1下载软件
  需要安装ipvsadm-1.24.tar.gzkeepalived-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 = $_[0];
  $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显示如下:

  # ip addr显示如下

负载均衡备份服务器验证
# ipvsadm显示如下:

# ip addr显示如下

附录:vsftp配置
  *****************************************************************************
  设置说明:只允许本地用户(dx1lt1yd1)登录,权限:只能上传、不能下载、不能删除
  *****************************************************************************
  具体配置如下,包含vsftpd.confchroot_listuser_listftpusers四个配置文件
  *******************************************************************************
  ####################################
  ###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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657343-1-1.html 上篇帖子: keepalived+LVS/DR的搭建 下篇帖子: linux服务器 keepalived+nfs+web集群搭建实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表