负载均衡LVS—ipvsadm应用详解

负载均衡LVS—ipvsadm应用详解

2023年7月10日发(作者:)

负载均衡LVS—ipvsadm应⽤详解1、在director上安装ipvsadm⼯具(这⾥使⽤RPM包)//挂载光盘,搜索ipvsadm⼯具安装包[root@linuxidc ~]# mount /dev/cdrom /media/cdrom/[root@linuxidc ~]# cd /media/cdrom/Packages[root@linuxidc Packages]# ll |grep ipvsadm//安装ipvsadm⼯具[root@linuxidc Packages]# yum install 6.x86_2、ipvsadm的相关参数和⽤法//使⽤man ipvsadm或ipvsadm --help查看ipvsadm⽤法[root@linuxidc ~]# man ipvsadmNAME ipvsadm - Linux Virtual Server administrationSYNOPSIS 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地址规划设备名称DirectorWeb Server1Web Server2

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

Step3:打开director的路由转发功能[root@linuxidc ~]# vim /etc/设备接⼝Eth0Eth1Eth0Eth0IP地址61.130.130.1192.168.2.101192.168.2.102192.168.2.103⼦⽹掩码255.255.255.0255.255.255.0255.255.255.0255.255.255.0[root@linuxidc ~]# sysctl -p //刷新路由协议Step4:添加虚拟IP记录和规则[root@linuxidc ~]# ipvsadm -A -t 61.130.130.1:80 -s rr[root@linuxidc ~]# ipvsadm -a -t 61.130.130.1:80 -r 192.168.2.102 -m[root@linuxidc ~]# 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@linuxidc ~]# ipvsadm -l -nIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 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地址规划表设备名称Director设备Web Server1Web Server2设备接⼝Eth0Eth0:0Eth0Lo:0Eth0Lo:0IP地址192.168.2.104192.168.2.101192.168.2.102192.168.2.101192.168.2.103192.168.2.101⼦⽹掩码255.255.255.0255.255.255.0255.255.255.0255.255.255.255255.255.255.0255.255.255.255说明:根据DR模式的⼯作原理可知,director和真是服务器在同⼀个⽹络中,⽽在dirctor设备上vsip应该在物理接⼝的别名上,物理接⼝上则配置内⽹中不同于vsip的地址,⽽真实服务器的物理接⼝上配置与director物理接⼝同⼀⽹段的IP地址,除此之外还要在逻辑接⼝上配置vsip,因为改地址是虚拟的所以应把⼦⽹掩码设置为4个255。例如director的vsip地址配置如下:进⼊图形界⾯后,找到⽹络设备,然后新添加配置如3所⽰:图3 director设备visp设置配置完后重新启动⽹络服务,使⽤service network restart命令,如果启动没有出现或失败,先关闭图形界⾯⽹络服务,使⽤serviceNetworkManager stop命令,然后在重新使⽤service network restart命令启动。Step3:添加虚拟IP记录和规则[root@linuxidc ~]# ipvsadm -A -t 192.168.2.101:80 -s rr[root@linuxidc ~]# ipvsadm -a -t 192.168.2.101:80 -r 192.168.2.102 -g[root@linuxidc ~]# 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@linuxidc ~]# ipvsadm -l -nIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.2.101:80 rr -> 192.168.2.102:80 Route 1 0 0

-> 192.168.2.103:80 Route 1 0 0Step4:查看,并修改服务器中arp的相关参数//查看服务器的arp_announce和arp_ignore[root@linuxidc ~]# sysctl -a |grep arp*//修改服务器的arp_announce和arp_ignore[root@linuxidc ~]# echo "_announce = 2" >> /etc/[root@linuxidc ~]# echo "_ignore = 1" >> /etc/[root@linuxidc ~]# 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地址消息时才回应,否则忽略。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688986731a191877.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信