1. <fieldset id='2sbsf'></fieldset>

        <ins id='2sbsf'></ins>

      1. <dl id='2sbsf'></dl>

        <i id='2sbsf'><div id='2sbsf'><ins id='2sbsf'></ins></div></i>

        <code id='2sbsf'><strong id='2sbsf'></strong></code>
        <span id='2sbsf'></span>

        1. <i id='2sbsf'></i>
        2. <tr id='2sbsf'><strong id='2sbsf'></strong><small id='2sbsf'></small><button id='2sbsf'></button><li id='2sbsf'><noscript id='2sbsf'><big id='2sbsf'></big><dt id='2sbsf'></dt></noscript></li></tr><ol id='2sbsf'><table id='2sbsf'><blockquote id='2sbsf'><tbody id='2sbsf'></tbody></blockquote></table></ol><u id='2sbsf'></u><kbd id='2sbsf'><kbd id='2sbsf'></kbd></kbd>
        3. <acronym id='2sbsf'><em id='2sbsf'></em><td id='2sbsf'><div id='2sbsf'></div></td></acronym><address id='2sbsf'><big id='2sbsf'><big id='2sbsf'></big><legend id='2sbsf'></legend></big></address>

          Linux中使用ipvsadm配置LVS集群的基本方法

          • 时间:
          • 浏览:5
          • 来源:124软件资讯网

              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 地址和端口的数字形式