ubuntu环境部署LVS DR模式

简介:
一、环境说明:
系统环境:ubuntu14.04
lvs服务器:10.36.1.55/10.36.1.56
真实服务器:10.36.1.55/10.36.1.56 在这里也充当mysql和zabbix角色
VIP:10.36.1.101
部署目的:
1、访问VIP的3306端口,可以将请求报文转发至10.36.1.55-56上进行负载
2、zabbix agent向VIP的10051端口上报采集数据的时候,可以将请求报文转发至10.36.1.55-56上进行负载
3、向VIP访问80端口(zabbix web管理界面)的时候,可以将请求报文转发至10.36.1.55-56上进行负载

二、安装LVS(两台服务器都要安装)
apt-get -y install ipvsadm

查看版本 
ipvsadm -v

查看是否已加载进内核模块中
lsmod | grep ip_vs

#查看lvs规则
ipvsadm -L -n       

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

三、配置LVS VIP服务
说明:-A是添加一条虚拟服务器记录,即VIP。此处配置要选择算法
ipvsadm -A -t 10.36.1.101  -s wrr -p 300     #代理转发所有去往该IP TCP的报文,-s指定算法wrr为加权轮询算法,-p会话保持时间(默认值是300s)

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

四、VIP维护
使用-E修改VIP设置
例:ipvsadm -E -t 10.36.1.101 -s wrr -p 40 #可修改会话保持时间与算法。

使用-D删除VIP设置
例:ipvsadm -D -t 10.36.1.101    #删除该条VIP

五、配置LVS RIP规则
-a是添加VIP要对哪些真实服务器IP(即RIP)进行负载(默认是DR模式即-g)。
我这里的LVS服务器也充当了真是服务器

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

 

#如果只对tcp 80端口进行负载,可使用如下命令:
ipvsadm -a -t 10.36.1.101:80 -r 10.36.1.55:80 -g -w 1  
ipvsadm -a -t 10.36.1.101:80 -r 10.36.1.56:80 -g -w 1 

ipvsadm -a -t 10.36.1.101:3306 -r 10.36.1.55:3306 -g -w 1  
ipvsadm -a -t 10.36.1.101:3306 -r 10.36.1.56:3306 -g -w 1 

ipvsadm -a -t 10.36.1.101:10051 -r 10.36.1.55:10051 -g -w 1  
ipvsadm -a -t 10.36.1.101:10051 -r 10.36.1.56:10051 -g -w 1 

RIP维护:

使用-e修改RIP配置
例:ipvsadm -e -t 10.36.1.101 -r 10.36.1.55 -g -w 4    #修改这条RIP规则的权重。

使用-d删除RIP配置
例:ipvsadm -d -t 10.36.1.101 -r 10.36.1.55 -g -w 1   #删除该条RIP配置


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

在两台真实服务器上都配置上VIP,即10.36.1.101地址。
ifconfig lo:0 10.36.1.101 netmask 255.255.255.255


七、在真实服务器上关闭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:0 10.36.1.101 netmask 255.255.255.255 (注意,我这里是LVS和业务服务器都跑一起了,所以配置一次即可)

八、开启内核转发功能
在lvs上开启内核转发功能。
echo 'net.ipv4.ip_forward=1' >>/etc/sysctl.conf
sysctl -p    #查看配置

9、LVS测试
#查看lvs规则
ipvsadm -L -n       
#查看连接情况

ipvsadm -L -c  
至此lvs搭建成功。

说明:以上配置系统重启以后无效,需重新配置一遍


10、配置好后,那么目前的lvs面临有哪些问题呢?

1、自身无法对真实服务器保活,如果出现服务器down情况,还会向down的服务器转发请求。解决方法是keepalived或自已写脚本来监测连通性再清除相应规则。

2、一台LVS服务器会出现单点故障,需要有备份LVS服务器,解决方法是keepalived来进行LVS故障接管。


本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1880919


相关文章
|
10天前
|
Ubuntu 开发工具 C语言
Ubuntu环境下的Samba源码编译
以上就是在Ubuntu环境下编译Samba源码的步骤。希望这个指南能帮助你成功地从源码编译Samba。如果你在编译过程中遇到任何问题,你可以查阅Samba的官方文档,或者在网上搜索相关的教程和解决方案。
52 23
|
19天前
|
Ubuntu 安全 Docker
Ubuntu下部署及操作Docker技巧
以上就是在Ubuntu下部署及操作Docker的具体步骤。但这只是冰山一角,Docker的魅力远不仅如此。你可以将其视为存放各种工具的小箱子,随时随地取用,极大地提升工作效率。你也可以私人订制,适应不同的开发环境,就像一个拥有各种口味冰淇淋的冰箱,满足各种各样的需求。好了,现在你已经掌握了基本的Docker运用技巧,快去尝试使用吧!记住,沉浸在探索中,你会找到无尽的乐趣和满满的收获。
83 23
|
1月前
|
关系型数据库 应用服务中间件 PHP
在 Ubuntu 20.04 上搭建NMP环境
本文介绍了如何在Linux系统上安装和配置Nginx、MariaDB和PHP。首先更新系统包并安装Nginx,确保其正常运行并配置防火墙允许流量。接着安装MariaDB数据库,运行安全脚本增强安全性,并验证安装成功。最后,安装PHP及其常用扩展,通过创建一个简单的PHP文件测试其是否正常工作。整个过程详细说明了每一步骤的命令及操作,帮助用户顺利完成LAMP(Linux, Nginx, MariaDB, PHP)环境的搭建。
63 1
|
4月前
|
JSON Ubuntu 开发者
ubuntu 22安装lua环境&&编译lua cjson模块
通过上述步骤,可以在 Ubuntu 22.04 系统上成功安装 Lua 环境,并使用 LuaRocks 或手动编译的方式安装 lua-cjson 模块。本文详细介绍了每一步的命令和操作,确保每一步都能顺利完成,适合需要在 Ubuntu 系统上配置 Lua 开发环境的开发者参考和使用。
401 13
|
6月前
|
Ubuntu 测试技术 网络安全
Ubuntu系统下部署flatpress轻量级博客系统
【10月更文挑战第3天】Ubuntu系统下部署flatpress轻量级博客系统
107 3
Ubuntu系统下部署flatpress轻量级博客系统
|
6月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
1326 3
|
6月前
|
Ubuntu
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境
本文介绍了如何在Ubuntu系统下使用Anaconda和Jupyter Notebook指定并切换不同的虚拟环境。
187 0
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境
|
7月前
|
存储 关系型数据库 文件存储
Ubuntu22.04LTS基于cephadm快速部署Ceph Reef(18.2.X)集群
这篇文章是关于如何在Ubuntu 22.04LTS上使用cephadm工具快速部署Ceph Reef(18.2.X)存储集群的详细教程,包括ceph的基本概念、集群的搭建步骤、集群管理以及测试集群可用性等内容。
1849 8
Ubuntu22.04LTS基于cephadm快速部署Ceph Reef(18.2.X)集群
|
6月前
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
183 1
|
6月前
|
Kubernetes 网络安全 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
696 2
下一篇
oss创建bucket