0
点赞
收藏
分享

微信扫一扫

lvs实战项目-dr模式实现

集群:同一个业务系统,部署在多台服务器上,集群中,每一台服务器实现的功能没有差别,数据 和代码都是一样的

分布式:一个业务被拆成多个子业务,或者本身就是不同的业务,部署在多台服务器上。分布式 中,每一台服务器实现的功能是有差别的,数据和代码也是不一样的,分布式每台服务器功能加起 来,才是完整的业务

分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数

来提升效率。

对于大型网站,访问用户很多,实现一个群集,在前面部署一个负载均衡服务器,后面几台服务器

完成同一业务。如果有用户进行相应业务访问时,负载均衡器根据后端哪台服务器的负载情况,决

定由给哪一台去完成响应,并且台服务器垮了,其它的服务器可以顶上来。分布式的每一个节点,

都完成不同的业务,如果一个节点垮了,那这个业务可能就会失败

一.LVS--负载调度器

  • VS: Virtual Server ,负责调度

  • RS:RealServer,负责真正提供服务


图形:

四台服务器都是采用的rhel9

准备环境:

安装软件编写html


 准备环境:

安装软件编写html


准备环境:

内核路由功能配置

#vim /etc/sysctl.conf
net.ipv4.ip_forward=1
#sysctl -p   #生效
net.ipv4.ip_forward=1

下载软件

后端调用主机

测试rs:

在lvs虚拟机上ping并且访问他的内容


总的测试:



图形:

lvs webserver1 webserver2处于同一个vlan里面都是仅主机模式

client  route 处于同一个vlan里面都是nat模式

解决 vip 响应问题
DR 模型中各主机上均需要配置 VIP ,解决地址冲突的方式有三种:
(1) 在前端网关做静态绑定
(2) 在各 RS 使用 arptables
(3) 在各 RS 修改内核参数,来限制 arp 响应和通告的级别
限制响应级别 :arp_ignore
0: 默认值,表示可使用本地任意接口上配置的任意地址进行响应
1: 仅在请求的目标 IP 配置在本地主机的接收到请求报文的接口上时,才给予响应
限制通告级别 :arp_announce
0: 默认值,把本机所有接口的所有信息向每个接口的网络进行通告
1: 尽量避免将接口信息向非直接连接网络进行通告
2: 必须避免将接口信息向非本网络进行通告

准备环境:

 

 安装软件编写html

静态绑定:

检查:

添加vip

 


 准备环境:

安装软件编写html

 静态绑定:

检查:

添加vip


准备环境

 内核路由功能配置

#vim /etc/sysctl.conf
net.ipv4.ip_forward=1
#sysctl -p   #生效
net.ipv4.ip_forward=1


准备环境

 添加vip

 

 在lvs虚拟机上ping并且访问他的内容

后端调动rs1和rs2


准备环境

测试:



httphttps为例,当我们在RS中同时开放80443端口,那么默认控制是分开轮询的,这样我们就出 现了一个轮询错乱的问题

当我第一次访问80被轮询到RS1后下次访问443仍然可能会被轮询到RS1

在RS1和RS2中安装mod_ssl并重启apache
]# yum install mod_ssl -y
]# systemctl restart httpd
在lvs中设置调度,因为我们要调度80和443两个端口所以我们需要设定两组策略
]# ipvsadm -C
[root@lvs ~]# ipvsadm -A -t 192.168.0.100:80 -s rr
[root@lvs ~]# ipvsadm -A -t 192.168.0.100:443 -s rr
[root@lvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.101:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.0.100:80 -r 192.168.0.102:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.0.100:443 -r 192.168.0.102:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.0.100:443 -r 192.168.0.101:80 -g
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.100:80 rr
-> 192.168.0.101:80 Route 1 0 0
-> 192.168.0.102:80 Route 1 0 0
TCP 192.168.0.100:443 rr
-> 192.168.0.101:443 Route 1 0 0
-> 192.168.0.102:443 Route 1 0 0
测试问题
[root@node10 ~]# curl http://192.168.0.100;curl -k https://192.168.0.100
RS1 server - 192.168.0.101
RS1 server - 192.168.0.101
当访问vip时两次调度都到了

环境准备(以上即可)

RS1和RS2

  • 安装mod_ssl模块让rs支持https

   重启httpd

查看端口

在lvs进行多端口标记

多端口自动识别

在客户端client

测试

举报

相关推荐

0 条评论