欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


Linux下的sed命令使用详解
Linux系统的垃圾清理方法总结
Linux系统中uniq命令的基本使用教程
搜狐视频怎么更改下载的位置?
iPad Safari独享的最近关闭的标签功能
win10桌面图标全部消失该怎么办
win7电脑管家怎么解决QQ无法安装
word试卷中的题目怎么设置分级标题?
WPS表格中单元格设置下拉菜单的方法
Linux系统中tr命令删除和替换文本字符的基本用法
Linux中使用ipvsadm配置LVS集群的基本方法
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   LVS集群有DR、TUN、NAT三种配置模式,可以对www服务、FTP服务、MAIL服务等做负载均衡,下面通过搭建www服务的负载均衡实例,讲述基于DR模式的LVS集群配置。

  一、 Director Server的配置

  在Director Server上配置LVS负载均衡集群,有两种方法:

  a. 通过ipvsadm命令行进行配置

  b. 通过Redhat提供的工具piranha来配置LVS

  通过ipvsadm命令行方式配置LVS

  安装IPVS后,就可以配置LVS集群了,首先在Director Server上绑定一个虚拟IP(也叫VIP),此IP用于对外提供服务,执行如下命令:

  复制代码

  代码如下:

  [root@localhost ~]#ifconfig eth0:0 192.168.60.200 broadcast 192.168.60.200 netmask 255.255.255.255 up

  此处在eth0设备上绑定了一个虚拟设备eth0:0,同时设置了一个虚拟IP是192.168.60.200,也就是上面我们规划的IP地址,然后指定广播地址也为192.168.60.200,需要特别注意的是,这里的子网掩码为255.255.255.255。

  然后给设备eth0:0指定一条路由,执行如下指令:

  代码如下:

  [root@localhost ~]#route add -host 192.168.60.200 dev eth0:0

  接着启用系统的包转发功能,从而使系统充当路由器,执行如下指令:

  代码如下:

  [root@localhost ~]#echo "1" >/proc/sys/net/ipv4/ip_forward

  指令中,参数值为1时启用ip转发,为0时禁止ip转发。其实在DR模式中,开启系统的包转发功能不是必须的,而在NAT模式下此操作是必须的。

  然后开始配置ipvs,执行如下操作:

  代码如下:

  [root@localhost ~]#ipvsadm -C

  [root@localhost ~]#ipvsadm -A -t 192.168.60.200:80 -s rr -p 600

  [root@localhost ~]#ipvsadm -a -t 192.168.60.200:80 -r 192.168.60.132:80 -g

  [root@localhost ~]#ipvsadm -a -t 192.168.60.200:80 -r 192.168.60.144:80 -g

  上面操作中,第一行是清除内核虚拟服务器列表中的所有记录,第二行是添加一条新的虚拟IP记录。这个新的IP是192.168.60.200,同时指定 持续服务时间为600秒。第三、四行是在新加虚拟IP记录中添加两条新的Real Server记录,并且指定LVS 的工作模式为直接路由模式。

  最后,启动LVS服务,执行如下操作:

  代码如下:

  [root@localhost ~]#ipvsadm

  这样,LVS在Director Server上的配置就完成了。

  为了管理和配置的方便,可以将上面的操作写出一个脚本文件,脚本内容如下:

  代码如下:

  #!/bin/bash

  VIP=192.168.60.200

  RIP1=192.168.60.132

  RIP2=192.168.60.144

  GW=192.168.60.1

  # set the Virtual IP Address

  /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up

  /sbin/route add -host $VIP dev eth0:0

  echo "1" >/proc/sys/net/ipv4/ip_forward

  #Clear IPVS table

  /sbin/ipvsadm -C

  #set LVS

  /sbin/ipvsadm -A -t $VIP:80 -s rr -p 600

  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g

  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g

  #Run LVS

  /sbin/ipvsadm

  #end

  也可以写成可启动与停止的服务脚本,脚本内容如下:

  代码如下:

  #!/bin/sh

  # description: Start LVS of Director server

  VIP=192.168.60.200

  RIP1=192.168.60.132

  RIP2=192.168.60.144

  ./etc/rc.d/init.d/functions

  case "$1" in

  start)

  echo " start LVS of Director Server"

  # set the Virtual IP Address and sysctl parameter

  /sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up

  echo "1" >/proc/sys/net/ipv4/ip_forward

  #Clear IPVS table

  /sbin/ipvsadm -C

  #set LVS

  /sbin/ipvsadm -A -t $VIP:80 -s rr -p 600

  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g

  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g

  #Run LVS

  /sbin/ipvsadm

  ;;

  stop)

  echo "close LVS Directorserver"

  echo "0" >/proc/sys/net/ipv4/ip_forward

  /sbin/ipvsadm -C

  /sbin/ifconfig eth0:0 down

  ;;

  *)

  echo "Usage: $0 {start|stop}"

  exit 1

  esac

  将此脚本命名为lvsDR文件,然后把文件放到/etc/init.d下,执行:

  代码如下:

  [root@localhost ~]#chomd 755 /etc/init.d/lvsDR

  最后可以通过下面命令启动或停止LVS服务:

  代码如下:

  service lvsDR {start|stop}

  到此为止,命令行方式配置Director Server完毕。

  二、Real server 的配置

  在lvs的DR和TUn模式下,用户的访问请求到达真实服务器后,是直接返回给用户的,而不再经过前端的Director Server,因此,就需要在每个Real server节点上增加虚拟的VIP地址,这样数据才能直接返回给用户,增加VIP地址的操作可以通过创建脚本的方式来实现,创建文件/etc /init.d/lvsrs,脚本内容如下:

  代码如下:

  #!/bin/bash

  VIP=192.168.60.200

  /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

  /sbin/route add -host $VIP dev lo:0

  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

  sysctl -p

  #end

  此操作是在回环设备上绑定了一个虚拟IP地址,并设定其子网掩码为255.255.255.255,与Director Server上的虚拟IP保持互通,然后禁止了本机的ARP请求。

  PS:ipvsadm命令的用法和格式如下:

  ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p [timeout]] [-M netmask]

  ipvsadm -D -t|u|f virtual-service-address

  ipvsadm -C

  ipvsadm -R

  ipvsadm -S [-n]

  ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port

  [-g|i|m] [-w weight]

  ipvsadm -d -t|u|f service-address -r server-address

  ipvsadm -L|l [options]

  ipvsadm -Z [-t|u|f service-address]

  ipvsadm --set tcp tcpfin udp

  ipvsadm --start-daemon state [--mcast-interface interface]

  ipvsadm --stop-daemon

  ipvsadm -h

  命令选项解释:

  有两种命令选项格式,长的和短的,具有相同的意思。在实际使用时,两种都可以。

  -A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。

  -E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。

  -D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。

  -C --clear 清除内核虚拟服务器表中的所有记录。

  -R --restore 恢复虚拟服务器规则

  -S --save 保存虚拟服务器规则,输出为-R 选项可读的格式

  -a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器

  -e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录

  -d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录

  -L|-l --list 显示内核虚拟服务器表

  -Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)

  --set tcp tcpfin udp 设置连接超时值

  --start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说明LVS Router 是aster 或是backup。在这个功能上也可以采用keepalived 的VRRP 功能。

  --stop-daemon 停止同步守护进程

  -h --help 显示帮助信息

  其他的选项:

  -t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务[vip:port] or [real-server-ip:port]

  -u --udp-service service-address 说明虚拟服务器提供的是udp 的服务[vip:port] or [real-server-ip:port]

  -f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。

  -s --scheduler scheduler 使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc.

  -p --persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。

  -M --netmask netmask persistent granularity mask

  -r --real-server server-address 真实的服务器[Real-Server:port]

  -g --gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)

  -i --ipip 指定LVS 的工作模式为隧道模式

  -m --masquerading 指定LVS 的工作模式为NAT 模式

  -w --weight weight 真实服务器的权值

  --mcast-interface interface 指定组播的同步接口

  -c --connection 显示LVS 目前的连接 如:ipvsadm -L -c

  --timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout

  --daemon 显示同步守护进程状态

  --stats 显示统计信息

  --rate 显示速率信息

  --sort 对虚拟服务器和真实服务器排序输出

  --numeric -n 输出IP 地址和端口的数字形式

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号