Mei笑D小妞 发表于 2018-12-31 14:43:50

负载均衡lvs+keepalived 配置1

  试验机三台:
  director server:192.168.1.22
  vip:192.168.1.25
  real server1:192.168.1.23
  real server2:192.168.1.24
  yum install libnl* libpopt*
  yum install kernel-devel
  yum install popt*
  查看内核是否为2.6以上,我的三台机器环境均为:centos5.5 kernels2.6.18,通过http://www.linuxvirtualserver.org/software/ipvs.html下载对应版本,我当时下载的是:ipvsadm-1.24.tar.gz
  1.安装
  #tar -zxvf ipvsadm-1.24.tar.gz
  #make(make不成功有可能与下载的ipvs版本与内核不一致导致,可使用:
  ln -s /usr/src/kernels/2.6.9-42.EL-i686//usr/src/linux)
  #make install (也就几s)
  #ipvsadm --help 查看是否有配置选项,如:
http://s3.运维网.com/wyfs02/M00/49/B2/wKiom1QZOB_AynwQAAHTsu8RAyg911.jpg
  #ifconfig eth0:0 192.168.1.25 broadcast 192.168.1.25 \ 回车
  >netmask 255.255.255.255 up
  此处在eth0设备上绑定了一个虚拟设备eth0:0,同时设置了一个虚拟IP是192.168.1.25,也就是上面我们规划的IP地址,然后指定广播地址也为192.168.1.25,需要特别注意的是,这里的子网掩码为255.255.255.255。
  然后给设备eth0:0指定一条路由,执行如下指令:
  #route add -host 192.168.1.25 dev eth0:0
  启用IP转发:
  #echo "1" >/proc/sys/net/ipv4/ip_forward
  清除虚拟内核服务器中的记录
  #ipvsadm -C
  #ipvsadm -A -t 192.168.1.25:80 -s rr -p 600
  以上表示在内核的虚拟服务器列表中添加一条192.168.1.25的虚拟服务器记录,并且指定此虚拟服务器的服务端口为80,然后指定此虚拟服务器的调度策略为轮询调度,并且在每个real server上的持续服务时间为600秒,即10分钟。
  #ipvsadm -a -t 192.168.1.25:80 -r 192.168.1.23:80 -g
  #ipvsadm -a -t 192.168.1.25:80 -r 192.168.1.24:80 -g
  以上两条设置表示在虚拟服务器192.168.1.25中添加两条新的Real Server记录,两个Real Server的IP分别为192.168.1.23和192.168.1.24,参数“-g”指定了虚拟服务器的工作模式为直接路由模式,即DR模式。
  这样设置完毕后,当用户访问192.168.1.25的80服务时,LVS会根据设置的调度策略和路由模式将请求分配到192.168.1.23以及192.168.1.24的80端口。
  Real server 的配置
  分别在192.168.1.213/24设置
  回环设备上绑定了一个虚拟IP地址,并设定其子网掩码为255.255.255.255,与Director Server上的虚拟IP保持互通
  #ifconfig eth0:0 192.168.1.25 broadcast 192.168.1.25 netmask 255.255.255.255 up
  然后分别通过几台内网机子测试访问192.168.1.25
http://s3.运维网.com/wyfs02/M00/49/B6/wKioL1QZT7HQF-4gAAEZqDAiWLs905.jpg
  在director通过ipvsadm查看连接状态
http://s3.运维网.com/wyfs02/M00/49/B4/wKiom1QZUDeQS77zAADfyD5N4S0461.jpg
  另外需要在rea服务器上设置脚本停止与启动,方便加载vip联通:
  #!/bin/bash
  #description : Start Real Server
  VIP=192.168.1.25
  ./etc/rc.d/init.d/functions
  case "$1" in
  start)
  echo " Start LVSofReal Server"
  /sbin/ifconfig lo:0 $VIP broadcast $VIP 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 Director server"
  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
http://s3.运维网.com/wyfs02/M00/49/CA/wKiom1QaqpHQGoXfAAAckgThLtg392.gif
  以上测试实验参考教程:http://ixdba.blog.运维网.com/2895551/554799感谢博主详细的教程

页: [1]
查看完整版本: 负载均衡lvs+keepalived 配置1