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

[经验分享] linux负载均衡软件LVS-直接使用LVS

[复制链接]

尚未签到

发表于 2015-9-5 09:46:39 | 显示全部楼层 |阅读模式
4.安装配置LVS
4.1 准备工作
  地址规划:
  服务器名
  IP地址
  网关
  虚拟设备名
  虚拟IP
  Director Server
  192.168.98.75
  192.168.98.1
  eth0:0
  192.168.98.77
  Real Server 1
  192.168.98.74
  192.168.98.1
  lo:0
  192.168.98.77
  Real Server 2
  192.168.98.117
  192.168.98.1
  lo:0
  192.168.98.77
  Real Server n
  …
  …
  ..
  ..
4.2 安装LVS
  LVS的具体实现是由ipvsadm 这个程序来完成,因此判断一个系统是否具备 ipvs 功能,只需要查看看 ipvsadm 程序是否被安装。查看 ipvsadm 程序最简单的办法就是在任意路径执行命令ipvsadm。下表为安装 ipvsadm 及未安装 ipvsadm 的输出对比。
  执行 ipvsadm 后的输出
  未安装 ipvsadm
  -bash: ipvsadm: command not foun
  安装 ipvsadm
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  ->RemoteAddress:Port Forward Weight ActiveConn InActConn
  *所有Director Server需要安装ipvsadm,Real Server只需要执行配置脚本。
  1. 创建一个连接文件,其命令为:
  [iyunv@localhost ~]# ln –sv /usr/src/kernels/2.6.18-308.el5-x86_64/ /usr/src/linux
  注意一定要与当前的运行的内核相一致,因为/usr/src/kernels 目录下可多个目录。如果不创建这个连接文件,在编译时会出错,从而不能继续进行安装。
  2. 解压ipvsadm-1.24.tar.gz软件包:
  [iyunv@localhost ~]# tar zxvf ipvsadm-1.24.tar.gz
  3. 编译安装
  [iyunv@localhost ~]# cd ipvsadm-1.24
  [iyunv@localhost ~]# make
  [iyunv@localhost ~]# make install
  可执行文件被安装到/sbin/ipvsadm
  l 检验安装ipvsadm是否被正确安装
  1. 执行ipvsadm,输出如上表第二列底三行所示。
  2. 检查当前加载的内核模块,看是否存在 ip_vs 模块。
  [iyunv@localhost ~]# lsmod|grep ip_vs
  ip_vs 122112 0
4.3 配置及验证Director Server
4.3.1 配置Director Server
  #!/bin/bash
  VIP=192.168.98.77 #虚拟ip(供用户访问的ip)
  RIP1=192.168.98.74 #真实服务器(real server)ip
  RIP2=192.168.98.117 #真实服务器(real server)ip
  PORT=2200 #端口
  case "$1" in
  start)
  echo "start config LVS Director Server..."
  ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  route add -host $VIP dev eth0:0
  echo "1">/proc/sys/net/ipv4/ip_forward
  ipvsadm -C
  ipvsadm -A -t $VIP:$PORT -s rr 120
  ipvsadm -a -t $VIP:$PORT -r $RIP1:$PORT –g #添加real server,多个可配置多条
  ipvsadm -a -t $VIP:$PORT -r $RIP2:$PORT –g #添加real server,多个可配置多条
  ipvsadm
  echo "config LVS Director Server success!"
  ;;
  stop)
  echo "shut down LVS Director Server"
  echo "0">/proc/sys/net/ipv4/ip_forward
  ipvsadm -C
  ifconfig eth0:0 down
  echo "shut down LVS Director Server success!"
  ;;
  *)
  echo "usage:$0 {start|stop}"
  exit 1
  esac
  执行:./ lvsDR.sh start 打开
  执行:./ lvsDR.sh stop 关闭
  *执行前修改权限:chmod 755 lvsDR.sh
4.3.2 验证Director Server配置
  [iyunv@netscan lvs]# ipvsadm
  IP Virtual Server version 1.2.1 (size=4096)
  Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  TCP 192.168.98.77:2200 wlc
  -> 192.168.98.117:2200 Route 1 0 0
  -> 192.168.98.74:2200 Route 1 0 0
  输出上述信息配置成功。
4.3.3 将ipvsadm配置成开机启动脚本
  lvsDR_auto.sh:Director Server配置脚本
  其中VIP,RIP1,RIP2,PORT应根据实际需要自行修改
  #!/bin/bash
  VIP=192.168.98.77 #虚拟ip(供用户访问的ip)
  RIP1=192.168.98.74 #Real Server ip
  RIP2=192.168.98.117 #Real Server ip
  PORT=2200 #端口
  echo "start config LVS Director Server..."
  ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  route add -host $VIP dev eth0:0
  echo "1">/proc/sys/net/ipv4/ip_forward
  ipvsadm -C
  ipvsadm -A -t $VIP:$PORT -s wlc
  ipvsadm -a -t $VIP:$PORT -r $RIP1:$PORT -g
  ipvsadm -a -t $VIP:$PORT -r $RIP2:$PORT -g
  ipvsadm
  echo "config LVS Director Server success!"
  exit 1
  lvsRS_auto.sh:Real Server配置脚本
  其中VIP应该跟Director Server配置的VIP一样
  #!/bin/bash
  VIP=192.168.98.77 #虚拟ip(供用户访问的ip)
  echo "start config lvs Real Server..."
  ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  route add -host $VIP dev lo:0
  echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
  echo "config lvs Real Server success!"
  exit 1
  
  首先脚本文件放到服务器上后都需要添加执行权限:
  [iyunv@localhost ~]# chmod 755 lvsDR_auto.sh
  [iyunv@localhost ~]# chmod 755 lvsRS_auto.sh
  Director Server
  [iyunv@localhost ~]# cp lvsDR_auto.sh /etc/init.d/
  [iyunv@localhost ~]# ln -s /etc/init.d/lvsDR_auto.sh /etc/rc.d/rc3.d/S99lvsDR_auto
  [iyunv@localhost ~]# ln -s /etc/init.d/lvsDR_auto.sh /etc/rc.d/rc5.d/S99lvsDR_auto
  Real Server
  [iyunv@localhost ~]# cp lvsRS_auto.sh /etc/init.d/
  [iyunv@localhost ~]# ln -s /etc/init.d/lvsRS_auto.sh /etc/rc.d/rc3.d/S99lvsRS_auto
  [iyunv@localhost ~]# ln -s /etc/init.d/lvsRS_auto.sh /etc/rc.d/rc5.d/S99lvsRS_auto
4.4 配置及验证Real Server
4.4.1 配置Real Server
  #!/bin/bash
  VIP=192.168.98.77 #虚拟ip(供用户访问的ip)
  case "$1" in
  start)
  echo "start config lvs Real Server..."
  ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
  route add -host $VIP dev lo:0
  echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
  echo "config lvs Real Server success!"
  ;;
  stop)
  echo "shutting down lvs Real server..."
  ifconfig lo:0 down
  echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
  echo "shut down lvs Real server success!"
  ;;
  *)
  echo "usage:$0 {start|stop}"
  exit 1
  esac
  执行:./ lvsRS.sh start 打开
  执行:./ lvsRS.sh stop 关闭
  *执行前修改权限:chmod 755 lvsRS.sh
4.4.2 验证Resl Server配置
  [iyunv@localhost ~]# ip add
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
  inet 192.168.98.77/32 brd 192.168.98.77 scope global lo:0
  inet6 ::1/128 scope host
  valid_lft forever preferred_lft forever
  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
  link/ether 00:50:56:91:14:81 brd ff:ff:ff:ff:ff:ff
  inet 192.168.98.118/24 brd 192.168.98.255 scope global eth0
  inet6 fe80::250:56ff:fe91:1481/64 scope link
  valid_lft forever preferred_lft forever
  3: sit0: <NOARP> mtu 1480 qdisc noop
  link/sit 0.0.0.0 brd 0.0.0.0
  从 输 出 可 以 看 出 , lo0:0 确实 绑 定 了 我 们 指 定 的 vip 地 址 。
  
下一篇: http://www.cnblogs.com/llhua/p/4195337.html

运维网声明 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-109615-1-1.html 上篇帖子: 配置Linux—LVS (DR) 下篇帖子: 【转】LVS-NAT和LVS-DR模式的实现详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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