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

[经验分享] 负载均衡LVS—ipvsadm应用详解

[复制链接]

尚未签到

发表于 2019-1-3 08:05:42 | 显示全部楼层 |阅读模式
负载均衡LVS—ipvsadm应用详解
环境:64位Centos 6.4
1、在director上安装ipvsadm工具(这里使用RPM包)
//挂载光盘,搜索ipvsadm工具安装包
[root@huangzhong ~]# mount /dev/cdrom /media/cdrom/
[root@huangzhong ~]# cd /media/cdrom/Packages
[root@huangzhong Packages]# ll |grep ipvsadm
//安装ipvsadm工具
[root@huangzhong Packages]# yum install ipvsadm-1.25-10.el6.x86_64.rpm
2、ipvsadm的相关参数和用法
//使用man ipvsadm或ipvsadm --help查看ipvsadm用法
[root@huangzhong ~]# 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的路由转发功能
[root@huangzhong ~]# vim /etc/sysctl.conf

[root@huangzhong ~]# sysctl -p   //刷新路由协议
Step4:添加虚拟IP记录和规则
[root@huangzhong ~]# ipvsadm -A -t 61.130.130.1:80 -s rr
[root@huangzhong ~]# ipvsadm -a -t 61.130.130.1:80 -r 192.168.2.102 -m
[root@huangzhong ~]# 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
//查看记录和规则
[root@huangzhong ~]# 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记录和规则
[root@huangzhong ~]# ipvsadm -A -t 192.168.2.101:80 -s rr
[root@huangzhong ~]# ipvsadm -a -t 192.168.2.101:80 -r 192.168.2.102 -g
[root@huangzhong ~]# 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
//查看记录和规则
[root@huangzhong ~]# 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_announcearp_ignore
[root@huangzhong ~]# sysctl -a |grep arp*
//修改服务器的arp_announcearp_ignore
[root@huangzhong ~]# echo "net.ipv4.conf.eth0.arp_announce = 2" >> /etc/sysctl.conf
[root@huangzhong ~]# echo "net.ipv4.conf.eth0.arp_ignore = 1" >> /etc/sysctl.conf
[root@huangzhong ~]# 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地址消息时才回应,否则忽略。
  





运维网声明 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.iyunv.com/thread-658789-1-1.html 上篇帖子: LVS—NAT群集配置 下篇帖子: LVS_DR实现过程...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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