1、环境说明

系统版本:ubuntu14.04

LVS服务器:14.17.64.3

真实服务器:14.17.64.4-12

VIP:14.17.64.13

部署目的:用户请求14.17.64.13的报文转发至14.17.64.4-12上进行负载均衡。

2、安装LVS

由于LVS像iptables一样是工作在内核层,所以只需要安装模块ip_vs就可以了,并没有后台进程在跑

#aptitude install ipvsadm

# ipvsadm -v

ipvsadm v1.26

# lsmod |grep ip_vs     #查看内核模块,有代表ipvsadm加载进内核当中,此时LVS安装完毕

ip_vs                 136701  0

nf_conntrack           96976  1 ip_vs

libcrc32c              12644  3 xfs,btrfs,ip_vs

# ipvsadm -L -n       #查看lvs规则

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

root@ubun

# ipvsadm -L -c   #查看连接情况

3、配置LVS VIP服务

-A是添加一条虚拟服务器记录,即VIP。此处配置要选择算法。

#ipvsadm -A-t 14.17.64.13  -s wrr -p 300     #代理转发所有去往该IP TCP的报文,-s指定算法wrr为加权轮询算法,-p会话保持时间(默认值是300s)

#ipvsadm -A-t 14.17.64.13:80 -s wrr -p 20    #代理转发去往该IP TCP80端口的报文

VIP维护:

使用-E修改VIP设置

例:ipvsadm -E -t 14.17.64.13 -s wrr -p 40 #可修改会话保持时间与算法。

使用-D删除VIP设置

例:ipvsadm -D -t 14.17.64.13    #删除该条VIP

4、配置LVS RIP规则

-a是添加VIP要对哪些真实服务器IP(即RIP)进行负载(默认是DR模式即-g)。

ipvsadm -a -t 14.17.64.13 -r 14.17.64.4 -g -w 1   #-r指定真实服务器IP,-g为选择DR模式(-m为NAT模式,-t为tunnel模式),-w选择权重。

ipvsadm -a -t 14.17.64.13 -r 14.17.64.5 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.6 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.7 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.8 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.9 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.10 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.11 -g -w 1

ipvsadm -a -t 14.17.64.13 -r 14.17.64.12 -g -w 1

#如果只对tcp 80端口进行负载,可使用如下命令

#ipvsadm -a-t14.17.64.13:80 -r 14.17.64.4:80 -g -w 1

RIP维护:

使用-e修改RIP配置

例:ipvsadm -e -t14.17.64.13 -r 14.17.64.6 -g -w 4    #修改这条RIP规则的权重。

使用-d删除RIP配置

例:ipvsadm -d -t14.17.64.13 -r 14.17.64.6 -g -w 1   #删除该条RIP配置

5、在真实服务器上配置VIP

在真实服务器上都配置上VIP,即14.17.64.13地址。

#ifconfig lo:1314.17.64.13 netmask 255.255.255.255

6、在真实服务器上关闭ARP响应

关闭真实服务器上loop口的arp回应,其它口的无须关闭。

默认arp_ignore和arp_announce的参数都是0,即回应所有目的IP是本机的arp请求。

在所有真实服务器上进行如下操作:

echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore         #只回答目标IP地址是来访网络接口本地地址的ARP查询请求。

echo "2">/proc/sys/net/ipv4/conf/all/arp_announce      #对查询目标使用最适当的本地地址。

#此处可以进行测试,在测抑制arp前,能ping通VIP地址。在抑制arp后,在前端交换机上清掉arp缓存,再ping VIP就不通了。但物理eth0网卡IP还是能通的。

arp含义参考地址:http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html

接下来在lvs上配置VIP:

ifconfig lo:13 14.17.64.13 netmask255.255.255.255

7、开启内核转发功能

在lvs上开启内核转发功能。

#echo  'net.ipv4.ip_forward=1'  >>/etc/sysctl.conf

#sysctl -p

8、LVS测试

由于真实服务器上未搭建http服务,但我设置的lvs是转发所有tcp连接,所以我通过ssh到VIP上进行测试。

#iptables -L -c  #查看lvs转发记录,确定请求转发成功。

TCP 14:59 ESTABLISHED 242.103.143.219.broad.bj.bj.dynamic.163data.com.cn:5197714.17.64.13:22  14.17.64.10:22

至此lvs搭建成功。

9、lvs补充思考

1、  自身无法对真实服务器保活,如果出现服务器down情况,还会向down的服务器转发请求。

解决方法是keepalived或自已写脚本来监测连通性再清除相应规则。

2、一台LVS服务器会出现单点故障,需要有备份LVS服务器

解决方法是keepalived来进行LVS故障接管。

本文转自杨云1028 51CTO博客,原文链接:http://blog.51cto.com/yangrong/1574991,如需转载请自行联系原作者

Ubuntu LVS DR模式生产环境部署相关推荐

  1. lvs dr模式安装

    lvs dr模式安装 环境:centos5.5 (注:测试环境均为centos5.5,在虚拟机上虚拟三个centos系统) vip 192.168.3.169 lb真是ip192.168.3.168 ...

  2. LVS DR模式搭建、keepalived+LVS

    LVS DR 模式搭建 准备工作 三台机器,三台机器均有公网IP. 调度器(director) IP:192.168.159.131 real server 1 (real1) IP:192.168. ...

  3. LVS DR模式负载均衡

    高并发场景 LVS 安装及高可用实现 分类: 运维基本功,故障解决 转载自 惨绿少年   https://www.cnblogs.com/clsn/p/7920637.html 1.1 负载均衡介绍 ...

  4. Vue.js 生产环境部署

    生产环境部署 开启生产环境模式 开发环境下,Vue 会提供很多警告来帮你对付常见的错误与陷阱.而在生产环境下,这些警告语句却没有用,反而会增加应用的体积.此外,有些警告检查还有一些小的运行时开销,这在 ...

  5. django生产环境部署

    最近尝试进行一些python web生产环境部署的任务.主要是使用django框架进行web开发.本地使用windows + python3.7可是上到服务器之后是ubuntu系统.ubuntu默认是 ...

  6. lvs之 lvs+nginx+tomcat_1、tomcat_2+redis(lvs dr 模式)

    前提:已经安装好 lvs+nginx+tomcat_1.tomcat_2+redis环境 ,可参考 (略有改动,比如tomcat_1.tomcat_2安装在两台机器上,而不是单机多实例 ,自行稍稍变动 ...

  7. 深度学习TensorFlow生产环境部署(环境准备篇)

    最近在研究Tensorflow Serving生产环境部署,尤其是在做服务器GPU环境部署时,遇到了不少坑.特意总结一下,当做前车之鉴. 1 系统背景 系统是ubuntu16.04 ubuntu@ub ...

  8. 320、Vue学习笔记26 -【生产环境部署】 2020.04.20

    0.目录 1.开启生产环境模式 1.1 不使用构建工具 1.2 使用构建工具 2.模板预编译 3.提取组件的 CSS 4.跟踪运行时错误 5.参考链接 1.开启生产环境模式 开发环境下,Vue 会提供 ...

  9. 11-02 生产环境部署 部署微电影网站

    生产环境部署 关键点: 安装依赖包 关闭调试模式   app.debug = False 修改mysql数据库连接,导入数据 开启多个端口后台运行 配置nginx反向代理 安装依赖包 步骤1: 获取依 ...

最新文章

  1. 用c实现跨平台异常捕获机制
  2. 8.2.5: Spring3.0新增的@DependsOn和@Lazy
  3. 【渝粤题库】国家开放大学2021春1373特殊教育概论题目
  4. html框架里面怎么填写内容_还不会Python高级框架?进来,速学
  5. C++ Socket通信类的封装(还有点小bug)
  6. mysql教程丿it教程网_1.0MySQL基础入门【DQL部分】
  7. 在xtragrid中如何自定义日期编辑控件的格式
  8. 设计模式之观察者模式PHP实现
  9. turbo c语言教程,turbo c语言教程(Turbo C language tutorial).doc
  10. 暴风影音2009 Real插件无法下载安装问题解决
  11. 637道Java面试题(含答案)
  12. bin和cue怎么合并_bin和cue格式的文件怎么用?
  13. zigbee学习之JN5169通用函数
  14. java技术分享些什么,大牛最佳总结
  15. 路由器WIFI密码怎么设置?快速设置,只需1分钟
  16. 使用ECharts加载大数据量数据
  17. java项目大概多少张表,要把数据插入到多张表?该如何处理
  18. python交易是什么意思_Py交易是什么意思
  19. 云计算进入多云时代 青云QingCloud如何帮企业做好多云管理?
  20. iOS14 系统 YBImageBrowser显示图片黑屏问题

热门文章

  1. 如何动态在maven插件中加载项目及第三方类
  2. 08 事务到底是隔离的还是不隔离的?(转)
  3. 使用 Redis的SETNX命令实现分布式锁
  4. java下载进度怎样判断_Java获得下载进度
  5. java 画笔跟swing组件_「软帝学院」:2019思维最清晰的java学习路线
  6. Spring 事务初始化源码分析
  7. 关于配置中心的几个问题
  8. mysql中常用的时间工具
  9. Memcached命令-存储命令-查找命令-清理命令
  10. 常用的第三方库(OC)