出于对架构的兴趣,一有时间我就会了解一下如何搭建一个高并发,高可用,可扩展的服务器运行环境。LVS-DR究竟现在的企业运用频率有多高其实我也不清楚,本文是下班之余断断续续研究搭建笔录,并且仅仅在virtual box虚拟机实践,没有实际生产实践。但是在搭建过程中确实学到了许多理论知识,这里只记录我的搭建历程和在搭建中遇到的疑惑,至于lvs是什么,dr又是什么这些已经有足够多的帖子,不再阐述。
环境搭建过程
1. 使用virtual box,我这里开了3台虚拟机,network使用了桥接模式,开启后IP分别如下:
server1: 192.168.0.112(direct server,eth0网卡)
server2: 192.168.0.113(real server1,eth0网卡)
server3: 192.168.0.114(real server2,eth0网卡)
DR模式要求direct server(ds)和real server(rs)要部署在一个不分段网络,也就是说ip要在同一个网段上,我这里使用三个同一个局域网的内网IP来搭建,生产环境据说最好是分别有一个同网段公网IP比较好,但也可以使用一个公网IP来搭建的(没怎么细究,估计就是使用nat转发到局域网,但是这种方式貌似nat转发服务器会有问题吧?)
2. real server添加虚拟IP(VIP),并修改arp接收和回答规则,这里我统一写到一个shell脚本里面:
#!/bin/bash
#这里的VIP是direct server的访问ip
ifconfig eth0:0 192.168.0.112 netmask 255.255.255.255
#修改arp应答策略
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
vip绑定在real server的lo回环网卡上
关于vip的原理是:当一个请求到达direct server后,ds上的lvs服务(ipvsadm)会将报文的目的mac地址改为某台rs的mac地址,其他的原封不动的广播到网络,由于real server绑定了该虚拟ip并且mac也匹配上了所以就会被接收处理。处理完以后数据报文是直接返回给客户端的,并没有经过direct server。
关于arp应答策略修改原理:
3. 在direct server上安装ipvadm服务并添加转发规则:
yum -y install ipvsadm
systemctl start ipvsadm
#先清楚原来的配置
ipvsadm -C
#指定调度算法。调度算法可以指定以下8种:rr(轮询),wrr(权重),lc(最后连接),wlc(权重),lblc(本地最后连接),lblcr(带复制的本地最后连接),dh(目的地址哈希),sh(源地址哈希),sed(最小期望延迟),nq(永不排队)
ipvsadm -A -t 192.168.0.112:80 -s rr
#添加转发规则, -g表示直接路由模式
ipvsadm -A -t 192.168.0.112:80 -r 192.168.0.113 -g
ipvsadm -A -t 192.168.0.112:80 -r 192.168.0.114 -g
到此,环境已经搭建好了,我们客户端访问的时候是直接访问112的,但是请求会转发给配置好的主机。在搭建过程中其实有很多理论知识是不懂的,开始很疑惑,看了别人的解释也一知半解,不过每天思考一点点,现在算是懂一些了,不过还有很多知识漏洞需要慢慢补充,加油吧
手机扫一扫
移动阅读更方便
你可能感兴趣的文章