lvs集群实现lvs-dr模型和lvs-nat模型
ipvsadm
ipvsadm命令是lvs集群在应用层的管理工具,我们可以通过此ipvsadm来管理lvs的配置,其实现了集群服务管理:增、删、改,集群服务的RS管理:增、删、改以及查看集群状态。
管理集群服务:增、改、删;
增(A)、改(E):ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] 删:ipvsadm -D -t|u|f service-address -t|u|f service-address:-t: TCP协议的端口,VIP:TCP_PORT,如 -t 172.16.10.6:80-u: UDP协议的端口,VIP:UDP_PORT-f:firewall MARK,是一个数字,通过iptables可以定义firewall MARK [-s scheduler]:指定集群的调度算法,默认为wlc
管理集群上的RS:增、改、删;
增(a)、改(e):ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight] 删:ipvsadm -d -t|u|f service-address -r server-address -r server-address:rip[:port],指明RS的IP地址 lvs类型:-g: gateway, dr类型-i: ipip, tun类型-m: masquerade, nat类型 -w weight:权重
查看集群的状态信息:
ipvsadm -L|l [options] options:-c, --connection:显示当前的LVS连接--timeout:列出超时--daemon:--stats:状态信息--rate:传输速率--persistent-conn:坚持连接--sor:把列表排序。--nosort:不排序-n, --numeric:输出IP地址和端口的数字形式
规则的保存和重载:
保存和重载: ipvsadm -S = ipvsadm-saveipvsadm -R = ipvsadm-restore 清空定义的所有内容:ipvsadm -C 将所有数据相关的计数器清零:ipvsadm -Z [-t|u|f service-address]
lvs-nat集群的实现
简易流程图:
配置RS1:
[root@RS1 ~]# yum -y install httpd #安装Apache [root@RS1 ~]# systemctl stop firewalld.service #关闭防火墙 [root@RS1 ~]# ifconfig eno16777736 172.16.0.10/24 up #配置网卡 [root@RS1 ~]# route add default gw 172.16.0.254 #配置路由 [root@RS1 ~]# vim /etc/httpd/conf/httpd.conf #设置httpdListen 8080ServerName localhost [root@RS1 ~]# vim /var/www/html/index.html<h1> RS1 172.16.0.10 <h1> [root@RS1 ~]# systemctl start httpd #启用httpd [root@RS1 ~]# ss -tanLISTEN 0 128 :::8080 :::*
RS2的配置参考RS1。
配置DR:
[root@DR ~]# yum -y install ipvsadm #安装ipvsadm工具 [root@DR ~]# ifconfig eno16777736 10.0.0.1/24 up #配置vip [root@DR ~]# ifconfig eno16777736:0 172.16.0.254/24 up #配置dip [root@DR ~]# sysctl -a | grep ip_forward #确保核心转发功能已开启net.ipv4.ip_forward = 1 [root@DR ~]# ipvsadm -A -t 10.0.0.1:80 -s rr #配置lvs集群规则 [root@DR ~]# ipvsadm -a -t 10.0.0.1:80 -r 172.16.0.10:8080 -m [root@DR ~]# ipvsadm -a -t 10.0.0.1:80 -r 172.16.0.11:8080 -m [root@DR ~]# ipvsadm -ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 10.0.0.1:80 rr-> 172.16.0.10:8080 Masq 1 0 0 -> 172.16.0.11:8080 Masq 1 0 0
客户端测试:
# 调度算法使用rr,轮询方式,故调用RS时 比例为1:1 [root@client ~]# for i in {1..20}; do curl http://10.0.0.1; done <h1> RS1 172.16.0.10 </h1> <h1> RS2 172.16.0.11 </h1> <h1> RS1 172.16.0.10 </h1> <h1> RS2 172.16.0.11 </h1> <h1> RS1 172.16.0.10 </h1> <h1> RS2 172.16.0.11 </h1> <h1> RS1 172.16.0.10 </h1> <h1> RS2 172.16.0.11 </h1> <h1> RS1 172.16.0.10 </h1> <h1> RS2 172.16.0.11 </h1> <h1> RS1 172.16.0.10 </h1> <h1> RS2 172.16.0.11 </h1> <h1> RS1 172.16.0.10 </h1> <h1> RS2 172.16.0.11 </h1> <h1> RS1 172.16.0.10 </h1> <h1> RS2 172.16.0.11 </h1> <h1> RS1 172.16.0.10 </h1> <h1> RS2 172.16.0.11 </h1> <h1> RS1 172.16.0.10 </h1> <h1> RS2 172.16.0.11 </h1>
lvs-dr集群的实现
简易流程图:
配置RS1:
[root@RS1 ~]# ifconfig eno16777736 10.0.0.11/24 up #配置网卡 [root@RS1 ~]# ifconfig lo:0 10.0.0.1 netmask 255.255.255.255 broadcast 10.0.0.1 up [root@RS1 ~]# route add -host 10.0.0.1 dev lo:0 #配置路由 [root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore #设置arp响应 [root@RS1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore [root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce [root@RS1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce [root@RS1 ~]# vim /etc/httpd/conf/httpd.conf #设置httpdListen 80 [root@RS1 ~]# vim /var/www/html/index.html<h1> RS1 10.0.0.11<h1> [root@RS1 ~]# systemctl start httpd #启用httpd [root@RS1 ~]# ss -tanLISTEN 0 128 :::8080 :::*
RS2的配置参考RS1。
配置DR:
[root@DR ~]# ifconfig eno16777736 10.0.0.2/24 up #配置dip [root@DR ~]# ifconfig eno16777736:0 10.0.0.1 netmask 255.255.255.255 broadcast 10.0.0.1 up #配置vip [root@DR ~]# ipvsadm -A -t 10.0.0.1:80 -s wrr #配置lvs集群规则 [root@DR ~]# ipvsadm -a -t 10.0.0.1:80 -r 10.0.0.11 -g -w 1 [root@DR ~]# ipvsadm -a -t 10.0.0.1:80 -r 10.0.0.12 -g -w 2 [root@DR ~]# ipvsadm -ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 10.0.0.1:80 wrr-> 10.0.0.11:80 Route 1 0 0 -> 10.0.0.12:80 Route 2 0 0
客户端测试:
# 调度算法使用wrr,比重为1:2 [root@client ~]# for i in {1..20}; do curl http://10.0.0.1; done <h1> RS1 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS1 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS1 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS1 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1>
RS1的配置脚本参考:
#!/bin/bash # vip=10.0.0.1 rip=10.0.0.11 mask1=255.255.255.255 mask2=255.255.255.0 case $1 in start)echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 1 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announceecho 2 > /proc/sys/net/ipv4/conf/lo/arp_announceifconfig eno16777736 $rip netmask $mask2 upifconfig lo:0 $vip netmask $mask1 broadcast $vip uproute add -host $vip dev lo:0;; stop)ifconfig lo:0 downecho 0 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 0 > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho 0 > /proc/sys/net/ipv4/conf/all/arp_announceecho 0 > /proc/sys/net/ipv4/conf/lo/arp_announce;; *) echo "Usage $(basename $0) start|stop"exit 1;; esac
DR的配置脚本参考:
#!/bin/bash # vip=10.0.0.1 mask1=255.255.255.255 dip=10.0.0.2 mask2=255.255.255.0 port=80 rs1=10.0.0.11 rs2=10.0.0.12 scheduler='wrr' type='-g' case $1 in start)ifconfig eno16777736 $dip netmask $mask2 upifconfig eno16777736:0 $vip netmask $mask1 broadcast $vip upipvsadm -A -t ${vip}:${port} -s $scheduleripvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 2;; stop)ipvsadm -Cifconfig eno16777736:0 down;; *)echo "Usage $(basename $0) start|stop"exit 1;; esac
附:使用 ldirectord 实现对各RS的健康状态做检查,失败时禁用,成功时启用。
DR上安装 ldirectord:
[root@DR ~]# lsb_release -r #centos版本 Release: 7.2.1511 [root@DR ~]# yum localinstall ldirectord-3.9.6-0rc1.1.1.x86_64.rpm #ldirectord版本 [root@DR ~]# cp /usr/share/doc/ldirectord-3.9.6/ldirectord.cf /etc/ha.d/ldirectord.cf #ldirectord默认没有配置文件,直接复制一份 [root@DR ~]# vim /etc/ha.d/ldirectordchecktimeout=3checkinterval=1fallback=127.0.0.1:80autoreload=yesquiescent=novirtual=10.0.0.1:80real=10.0.0.11:80 gate 1real=10.0.0.12:80 gate 2fallback=127.0.0.1:80 gateservice=http #指定服务request="index.html" #指定健康监测的文件#receive="Test" #指定健康监测响应的内容scheduler=wrrchecktype=negotiatecheckport=80 [root@DR ~]# ipvsadm -C #清除自己设定的集群 [root@DR ~]# ldirectord start [root@DR ~]# ipvsadm -ln #启用ldirectord会自行设定集群IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 10.0.0.1:80 wrr-> 10.0.0.11:80 Route 1 0 0 -> 10.0.0.12:80 Route 2 0 0
客户端测试:
#客户端测试 [root@client ~]# for i in {1..20}; do curl http://10.0.0.1; done<h1> RS2 10.0.0.12 </h1> <h1> RS1 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS1 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS1 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS1 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS1 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS1 10.0.0.11 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS1 10.0.0.11 </h1> #停止RS1的httpd服务 [root@RS1 ~]# systemctl stop httpd.service #DR的状态 [root@DR ~]# ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 10.0.0.1:80 wrr-> 10.0.0.12:80 Route 2 0 0 #客户端测试 [root@client ~]# for i in {1..20}; do curl http://10.0.0.1; done<h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1> <h1> RS2 10.0.0.12 </h1>
转载于:https://www.cnblogs.com/walk1314/p/9359158.html
lvs集群实现lvs-dr模型和lvs-nat模型相关推荐
- php lvs,LVS(四)LVS集群DR模式
LVS集群DR模式 系统:CentOS-7-x86_64-Minimal-1611.iso 三台虚拟机网络规划: Director (桥接网卡) enp0s3DIP:192.168.43.201 19 ...
- lvs集群基础及lvs-nat、dr、fwm实践
集群基础知识点: 集群类型:LB.HA.HP.DS LB:load balance,负载均衡集群,director:负载均衡器或者调度器,上游服务(upstream server),后端服务器称为re ...
- LVS集群-DR负载均衡集群
LVS集群-DR负载均衡集群 服务介绍 Director 分配请求到不同的real server. real server 处理请求后直接回应给用户,这样director 负载均衡器仅处理客户机与服务 ...
- Linux系统(五)负载均衡LVS集群之DR模式
序言 DR模式是lvs集群中三种负载均衡模式的其中一种,那么上一篇中我写啦关于NAT模式的搭建与原理,为什么还要有DR模式与IP隧道模式呢? 首先我们来看3张图.LVS/NAT模式如下图: LVS/I ...
- LVS集群---做前端调度器搭建使用
LVS集群--->在这里做前端调度器搭建使用,工作模式用的LVS-nat和LVS-dr. ++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- Linux里面lvs的基础命令,Linux中使用ipvsadm配置LVS集群的基本方法
LVS集群有DR.TUN.NAT三种配置模式,可以对www服务.FTP服务.MAIL服务等做负载均衡,下面通过搭建www服务的负载均衡实例,讲述基于DR模式的LVS集群配置. 一. Director ...
- keepalived高可用lvs集群,主/备和主/主模型
利用keepalived高可用lvs集群,主/备和主/主: vrrp_script高可用双主nginx: keepalived主备:lvs-dr工作模型 网络搭建: 在前端2台调度器: DR1:172 ...
- LVS集群应用配置详解
一. 目录 关于集群的介绍. 什么是负载均衡以及为什么需要负载均衡. 负载均衡技术的特点. 负载均衡集群的常见解决方案. lvs介绍及管理工具. 实现lvs集群服务的三种类型方法介绍. LVS调度算法 ...
- Linux服务器集群系统(二)——LVS集群的体系结构
原文地址: http://www.linuxvirtualserver.org/zh/lvs2.html 本文主要介绍了LVS集群的体系结构.先给出LVS集群的通用体系结构,并讨论了其的设计原则 ...
最新文章
- 6D位姿估计Point Pair Feature (PPF)算法详解
- centos7安装mysql8.0简书_【Linux实战03】CentOS 7 下 MySQL 8.0 的安装
- 2021年看得见的粉丝价值——五大平台KOL粉丝分析研究报告
- 你不知道的Chrome调试技巧
- 无缝的缓存读取:双存储缓存策略
- Atitit.并发编程原理与概论 attilax总结
- 最具有中国特色的脑筋急转弯
- deficit记忆_英语单词分类记忆 高效快速的记忆法
- linux服务器如何查看硬盘型号,Linux如何查看硬盘型号和缓存
- bootcamp空间不足_mac安装双系统 提示磁盘上没有足够的可用空间的解决方法
- java newline_“\ n”和Environment.NewLine之间的区别
- 快速将PDF转换为图片:使用在线转换器的步骤
- 【MySQL基础】什么是MySQL约束?什么是主键约束?
- 【打CF,学算法——四星级】CodeForces 86D Powerful array (莫队算法)
- c语言switch语句中文,C语言switch语句问题。
- zookeeper启动报错Starting zookeeper ... ./zkServer.sh:行113: /usr/local/src/zookeeper/data/zookeeper_serv
- 江西服装学院计算机考试是几级,江西服装学院2018年艺术类报考须知(江苏省)
- 九、【TF2】Metrics 评估指标
- 51单片机独立按键控制LED状态
- 江西计算机专业技校排名,江西技校一览表
热门文章
- PyQt5 QLabel标签
- px、pt和em的区别
- 中科曙光 量子计算机,中科曙光 量子计算机 量子计算机的曙光
- 一、 网络安全基础入门-概念名词
- Oracle--“ORA-28007: the password cannot be reused”解决
- YDOOK:Java: 获取 boolean Boolean 数据类型的默认值
- 秒杀99.99%大学生!看看清华的学霸到底有多牛?
- Eclipse 2020-06 汉化包安装步骤(附汉化包+安装教程)(转载)
- 最优化方法(学习笔记)-第十一章等式约束优化问题
- Java设计模式策略模式(附实例代码)每天一学设计模式