LVS之模式一:DR模式

LVS:linux virtual server


四种模式十种调度算法

防火墙
PREROUTING -> INPUT(流向内部)(lvs起作用 强行改变数据流向)
PREROUTING -> FORWARD -> POSTROUTING(转发)
OUTPUT -> POSTROUTING(流向外部)

kernel space

调度,需要给它做高可用HA+LVS
便写调度策略
查看调度策略
查看内核中有那些模块

lvs四种服务模式

1.DR模式:直连模式,速度很快
2.NAT模式:作业
3.TUN隧道模式
4.FULLNAT模式:
 

VS/DR
跟 VS/TUN 方法相同,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提
高整个集群系统的吞吐量。跟 VS/TUN 相比,这种方法没有 IP 隧道的开销,但调度器和服务器组都必
须在物理上有一个网卡通过不分断的局域网相连,如通过交换机或者高速的 HUB 相连。VIP 地址为调
度器和服务器组共享,调度器配置的 VIP 地址是对外可见的,用于接收虚拟服务的请求报文;所有的服
务器把 VIP 地址配置在各自的 Non-ARP 网络设备上,它对外面是不可见的,只是用于处 理目标地址为
VIP 的网络请求。

 

 

模式一:DR直连模式(Direct Routing)

环境:安装ipvsadm  (调度器)

ipvsadm是管理集群服务的命令行工具,用于管理LVS的策略规则
server1作为调度

1.搭建yum源,添加必要安装包

 

 

vim /etc/yum.repos.d/rhel-source.repo 

[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.99.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[HighAvailability]   ##高可用性
name=HighAvailability
baseurl=http://172.25.99.250/rhel6.5/HighAvailability
gpgcheck=0

[LoadBalancer]    #负载均衡
name=LoadBalancer
baseurl=http://172.25.99.250/rhel6.5/LoadBalancer
gpgcheck=0

[ResilientStorage]    #弹性存储
name=ResilientStorage
baseurl=http://172.25.99.250/rhel6.5/ResilientStorage
gpgcheck=0

[ScalableFileSystem]    #可扩展文件系统
name=ScalableFileSystem
baseurl=http://172.25.99.250/rhel6.5/ScalableFileSystem
gpgcheck=0

 

2.yum install ipvsadm -y

3.ipvsadm -l   ##查看调度策略
4.lsmod    ##查看内核中有哪些模块
modprobe virtio ##虚拟机安装模块
5.ipvsadm --help  ##查看帮助信息
rr    表示确定轮询的模式
-r  指定真实主机
-g直连模式
-A 增加一台虚拟设备
-C   清除之前环境遗留的策略
-a 添加真实服务器的操作
-t tcp服务地址
-s 调度算法(10中调度算法rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)
-r 对应的真实ip
-g rh(路由)
rr 调度算法:轮询

直连模式:

 

1.ipvsadm -A -t 172.25.99.100:80 -s rr  #添加一台虚拟设备
##-A表示添加虚拟主机,-t表示tcp连接,-s表示负载均衡工作模式为轮询模式

2.ipvsadm -a -t 172.25.99.100:80 -r 172.25.99.2:80 -g  #添加后端实际服务器
##-a表示往一条记录中添加真实的服务主机,-g直连模式,-r表示指定真实主机的ip

3.ipvsadm -a -t 172.25.99.100:80 -r 172.25.99.3:80 -g  

/etc/init.d/ipvsadm save  ##保存策略

ipvsadm -l

4./etc/init.d/httpd start  ##打开server2与server3的httpd服务,用于检测

 

添加VIP

 

检测1:
真机:curl 172.25.99.100  访问100主机,可在调度器server1中查看到调度记录

server1:ipvsadm -l(解析的) ipvsadm -ln(没有解析)
但是因为调度器与真实主机不能通信,虽然server1确实调度了,但是真实主机server2与server3不能收到指令,所以真机访问没有回应

5.在真实主机server1与server2添加虚拟主机的ip,使调度器可以与其通信

ip addr add 172.25.99.100/32 dev eth0   
##32可以让客户无法ping服务器,只允许服务器ping自己,安全性
ip addr add 172.25.99.100/32 dev eth0

 

检测2
真机:
curl 172.25.99.100  访问主机,可以查看到具体数据,但是因为server123都有172.25.99.100的ip,所以时随机访问的

可以使用命令arp -an | grep 100查看到访问主机的mac地址,

确认访问的是哪一台主机(arp地址解析协议,将ip解析为mac地址)

arp -d 172.25.99.100
可以清除物理地址缓存缓存,否则每次curl 172.25.99.100访问的都是一台主机

如果访问的是调度器,那么在不清除缓存的情况下,是server2与server3轮询工作的,在调度器中ipvsadm -l可以查看到调度记录

 

查看各调度两次

 

若无法轮询 则客户端存储了某个真实服务器的地址

arp -d 172.25.99.100  ##删除存储的真实服务器硬件地址

访问时会访问真实主机(server2/3),会使服务器压力过大。

#编写调度器,使访问虚拟主机ip时只能连接到调度器

方法1:arptables使用防火墙策略来限制用户访问服务器

server2:
 

yum install arptables_jf -y    ##安装arptables

arptables -A IN -d 172.25.99.100 -j DROP 
##-A表示添加策略,IN表示在表IN中操作,-d表示destation,-j表示指定的处理方式,DROP 表示拒绝访问不回应,在
arptables -A OUT -s 172.25.14.100 -j mangle --mangle-ip-s 172.25.99.2 
##管理输出,以ip172.25.99.2输出
arptables -L
/etc/init.d/arptables_jf save  ##保存arptables的更改

server3同server2

 

 

检测:
真机:
重复进行下面的操作
 

arp -d 172.25.99.100  ##清除物理地址缓存
curl 172.25.99.100   ##多次访问虚拟主机,此时可以看到每次访问的都是调度器的轮询工作模式

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值