负载均衡LVS—ipvsadm应用详解

负载均衡LVS—ipvsadm应用详解

环境:64位Centos 6.4

1、在director上安装ipvsadm工具(这里使用RPM包)

//挂载光盘,搜索ipvsadm工具安装包

[[email protected] ~]# mount /dev/cdrom /media/cdrom/

[[email protected] ~]# cd /media/cdrom/Packages

[[email protected] Packages]# ll |grep ipvsadm

//安装ipvsadm工具

[[email protected] Packages]# yum install ipvsadm-1.25-10.el6.x86_64.rpm

2、ipvsadm的相关参数和用法

//使用man ipvsadm或ipvsadm --help查看ipvsadm用法

[[email protected] ~]# man ipvsadm

NAME

ipvsadm - Linux Virtual Server administration

SYNOPSIS

ipvsadm -A|E -t|u|f service-address [-s scheduler]

[-p [timeout]] [-O] [-M netmask]

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

ipvsadm -C

ipvsadm -R

ipvsadm -S [-n]

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

[-g|i|m] [-w weight] [-x upper] [-y lower]

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]

[--syncid syncid]

ipvsadm --stop-daemon state

ipvsadm -h

其中:

第一个service-address:是指虚拟服务器的IP地址l

第二个service-address:是指的真实服务器的IP地址

scheduler:指定调度算

ipvsadm命令参数选项详细含义如下所示:

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

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

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

-C (--clear) 清除内核虚拟服务器列表中的所有规则

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

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

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

-e (--edit-server) 编辑一条虚拟服务器记录中的某条Real Server记录

-d (--delete-server) 删除一条虚拟服务器记录中的某条Real Server记录

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

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

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

-t 说明虚拟服务器提供的是tcp服务,此选项后面跟如下格式:

[virtual-service-address:port] or [real-server-ip:port]

-u 说明虚拟服务器提供的是udp服务,此选项后面跟如下格式:

[virtual-service-address:port] or [real-server-ip:port]

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

-s   此选项后面跟LVS使用的调度算法

有这样几个选项: rr|wrr|lc|wlc|lblc|lblcr|dh|sh

默认的调度算法是: wlc

-p  [timeout] 在某个Real Server上持续的服务时间。也就是说来自同一个用户的多次请求,将被同一个Real Server处理。此参数一般用于有动态请求的操作中,timeout 的默认值为360 分钟。例如:-p 600,表示持续服务时间为600分钟。

-r 指定Real Server的IP地址,此选项后面跟如下格式:

[real-server-ip:port]

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

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

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

-w (--weight) weight 指定Real Server的权值

-c (--connection) 显示LVS目前的连接信息 如:ipvsadm -L -c

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

-L --daemon 显示同步守护进程状态,例如:ipvsadm -L –daemon

-L  --stats 显示统计信息,例如:ipvsadm -L –stats

-L  --rate 显示速率信息,例如:ipvsadm -L  --rate

-L  --sort 对虚拟服务器和真实服务器排序输出,例如:ipvsadm -L --sort

注: 保存添加的虚拟ip记录和ipvsadm的规则可以使用service ipvsadm save,还可以用-S或--save。清除所有记录和规则除了使用-C,还以使用--clear。

3、应用实例

(1) 实例1(nat模式)

Step1:NAT模式拓扑图

NAT模式的拓扑图,如图1所示:图1:NAT模式拓扑图

Step2:IP地址规划

根据拓扑图,给设备接口规划IP地址如表1所示

表1 IP地址规划


设备名称


设备接口


IP地址


子网掩码


Director


Eth0


61.130.130.1


255.255.255.0


Eth1


192.168.2.101


255.255.255.0


Web Server1


Eth0


192.168.2.102


255.255.255.0


Web Server2


Eth0


192.168.2.103


255.255.255.0

说明:由于是NAT模式,所以根据NAT模式工作原理可知director设备有两块网卡分别连接外网和内网,当外部用户访问内部的服务器时,访问的IP地址是director连接外网的IP地址。内部的服务器的IP地址与director连接内网的IP地址在一个网段,并且服务器的网关要指向director连接内网的IP。

Step3:打开director的路由转发功能

[[email protected] ~]# vim /etc/sysctl.conf

[[email protected] ~]# sysctl -p   //刷新路由协议

Step4:添加虚拟IP记录和规则

[[email protected] ~]# ipvsadm -A -t 61.130.130.1:80 -s rr

[[email protected] ~]# ipvsadm -a -t 61.130.130.1:80 -r 192.168.2.102 -m

[[email protected] ~]# ipvsadm -a -t 61.130.130.1:80 -r 192.168.2.103 -m

说明:rr表示采用轮询调度算法,这里还可以采用其他调度算法如wrr(加权轮询调度算法),在使用加权轮询调度算法时,还可以在添加规则时改变权值,一般默认权值为1,如改变到Web Server1的权值为5,操作如下:

ipvsadm -a -t 61.130.130.1:80 -r 192.168.2.102 -w 5 -m

//查看记录和规则

[[email protected] ~]# ipvsadm -l -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  61.130.130.1:80 rr

-> 192.168.2.102:80              Route   1      0          0

-> 192.168.2.103:80              Route   1      0          0

(2) 实例2(DR模式)

Step1:DR模式拓扑图

DR模式的拓扑图,如图2所示:

 图2 DR模式的拓扑图

Step2:IP地址规划

根据拓扑图,给设备接口规划IP地址如表2所示

表2 IP地址规划表


设备名称


设备接口


IP地址


子网掩码


Director设备


Eth0


192.168.2.104


255.255.255.0


Eth0:0


192.168.2.101


255.255.255.0


Web Server1


Eth0


192.168.2.102


255.255.255.0


Lo:0


192.168.2.101


255.255.255.255


Web Server2


Eth0


192.168.2.103


255.255.255.0


Lo:0


192.168.2.101


255.255.255.255

说明:根据DR模式的工作原理可知,director和真是服务器在同一个网络中,而在dirctor设备上vsip应该在物理接口的别名上,物理接口上则配置内网中不同于vsip的地址,而真实服务器的物理接口上配置与director物理接口同一网段的IP地址,除此之外还要在逻辑接口上配置vsip,因为改地址是虚拟的所以应把子网掩码设置为4个255。例如director的vsip地址配置如下:

进入图形界面后,找到网络设备,然后新添加配置如3所示:

图3 director设备visp设置

配置完后重新启动网络服务,使用service network restart命令,如果启动没有出现或失败,先关闭图形界面网络服务,使用service NetworkManager stop命令,然后在重新使用service network restart命令启动。

Step3:添加虚拟IP记录和规则

[[email protected] ~]# ipvsadm -A -t 192.168.2.101:80 -s rr

[[email protected] ~]# ipvsadm -a -t 192.168.2.101:80 -r 192.168.2.102 -g

[[email protected] ~]# ipvsadm -a -t 192.168.2.101:80 -r 192.168.2.103 -g

说明:rr表示采用轮询调度算法,这里还可以采用其他调度算法如wrr(加权轮询调度算法),在使用加权轮询调度算法时,还可以在添加规则时改变权值,一般默认权值为1,如改变到Web Server1的权值为5,操作如下:

ipvsadm -a -t 192.168.2.101:80 -r 192.168.2.102 -w 5 -g

//查看记录和规则

[[email protected] ~]# ipvsadm -l -n

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.2.101:80 rr

-> 192.168.2.102:80              Route   1      0          0

-> 192.168.2.103:80              Route   1      0          0

Step4:查看,并修改服务器中arp的相关参数

//查看服务器的arp_announce和arp_ignore

[[email protected] ~]# sysctl -a |grep arp*

//修改服务器的arp_announce和arp_ignore

[[email protected] ~]# echo "net.ipv4.conf.eth0.arp_announce = 2" >> /etc/sysctl.conf

[[email protected] ~]# echo "net.ipv4.conf.eth0.arp_ignore = 1" >> /etc/sysctl.conf

[[email protected] ~]# sysctl -p

说明:arp_announce有3个值,分别为0、1和2,其中0为默认值。0表示将使用任意本地的IP地址,配置在任何接口上;1表示尽量避免使用本地的IP地址;2表示总是使用最好的本地地址。arp_ignore有8个值,分为0、1、2、3....8,其中默认是0,而这里选择1,1表示只有当收到本地IP地址消息时才回应,否则忽略。

负载均衡LVS—ipvsadm应用详解

时间: 2024-10-11 12:51:20

负载均衡LVS—ipvsadm应用详解的相关文章

负载均衡LVS集群详解

 一.LB--负载均衡 在负载均衡集群中需要一个分发器,我们将其称之为Director,它位于多台服务器的上面的中间层,根据内部锁定义的规则或调度方式从下面的服务器群中选择一个以此来进行响应请求,而其分发的方式则是根据某个算法进行的. 二.HA--高可用 高可用顾名思义就是服务的可用性比较高,即当我们不会因为某台服务器的宕机,从而造成我们的服务不可用,其工作模式则是将一个具有故障的服务转交给一个正常工作的服务器,从而达到服务不会中断. 三.LVS: LVS:Linux Virtual Serve

Nginx、LVS及HAProxy负载均衡软件的优缺点详解

提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护.缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用:另外一种就是类似于Nginx/LVS

总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解

总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解 PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时

负载均衡(LB)详解

二.LB LoadBalance就是把负载均衡分配到集群的各个节点,从而提高整体的吞吐能力.Oracle 10g RAC提供了两种手段来实现负载,其一是通过Connection Balancing,按照某种算法把用户分配到不同的节点:其二是通过service,在应用层面上进行分散. Connection Balancing Connection Balancing这种负载均衡是在用户连接这个层次上进行的,也就是在用户请求建立连接时,根据每个的负载决定把连接分配到哪个实例上.而一旦建立连接之后,会

LVS负载均衡群集及相关服务详解

在各种互联网应用中,随着站点对硬件性能.响应速度.服务稳定性.数据可靠性等要求越来越高,单台服务器将难以承担所有的访问.除了使用价格昂贵的大型机.专用负载分流设备以外,企业中还有另外一种选择来解决难题,就是构建群集服务器--通过整个多台相对廉价的普通服务器,以同一个地址提供相同的服务. 在Linux系统中,有一种非常常用的群集技术--LVS(Linux Virtual Server,Linux虚拟服务器). 博文大纲:一.群集技术概述:二.LVS虚拟服务器详解:三.NFS共享存储服务详解: LV

Nginx/LVS/HAProxy负载均衡软件的优缺点详解

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂

(总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂

Nginx/LVS/HAProxy负载均衡软件的优缺点详解(转)

原文:http://www.ha97.com/5646.html PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时

Nginx/LVS/HAProxy 负载均衡软件的优缺点详解

一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护.缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使