lvs DR模式
来源:互联网 发布:朗朗数码的mac怎么样 编辑:程序博客网 时间:2024/05/18 12:31
DR模式的原理
一般来说,LVS集群采用三层结构,其主要组成部分为:
A、负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。
B、服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。
C、共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。
DR模式工作流程
现在客户端CLient访问172.25.28.100,目的端口为80,于是客户端和我们VIP,端口80建立连接(TCP三次握手,只是建立连接没有传送数据),之后客户端发送HTTP请求,LVS在VIP上收到之后,根据hash策略,从后端realserver中选出一台作为此次请求的接受者,假设为RIP1,LVS将请求包的目的mac地址更改为RIP1的mac,然后封装后转发给后端的RIP1,同时将该链接记录在hash表中。
RIP1的某一块网卡,比如eth0,接收到这个转发包看到mac地址是自己的,于是就转发给上层的IP层,IP层解开包后,发现目的的IP地址也是自己,因为VIP也配置在我们的一块non-arp的网卡上(比如lo:0),然后根据IP首部的类型字段(这里是TCP),把请求送给TCP,然后TCP根据目的端口80,传给应用层的Apache,Apache处理完请求之后,将数据传给TCP,TCP将源端口更改为80 ,源IP更改为VIP,目的端口更改为客户端的端口,目的IP更改为Client的IP,打包后给IP层,IP层根据目的地址进行路由,然后经过网络返给Client,完成了一次请求;
早上看原理的时候,发现了一个特别清晰的图解。贴在这里咯!!!
http://blog.csdn.net/pi9nc/article/details/23380589
DR配置过程:
lvs负载均衡器 ip:172.25.28.1 vip:172.25.67.100
web1:172.25.28.2
web2:172.25.28.3
一:安装web服务器,此处用apache
web1:
[root@server2 ~]# yum install -y httpd [root@server2 ~]# echo "172.25.28.2" /var/www/html/index.html [root@server2 ~]# /etc/init.d/httpd start
web2:
[root@server3 ~]# yum install -y httpd [root@server3 ~]# echo "172.25.28.3" /var/www/html/index.html [root@server3 ~]# /etc/init.d/httpd start
二、安装LVS软件
配置高可用yum源
[root@server1 ~]# cat /etc/yum.repos.d/rhel-source.repo [rhel-source]name=Red Hat Enterprise Linux $releasever - $basearch - Sourcebaseurl=http://172.25.67.250/rhel6.5gpgcheck=0[HighAvailability]name=Red Hat Enterprise Linux HighAvailabilitybaseurl=http://172.25.67.250/rhel6.5/HighAvailabilitygpgcheck=0[LoadBalancer]name=Red Hat Enterprise Linux LoadBalancerbaseurl=http://172.25.67.250/rhel6.5/LoadBalancergpgcheck=0[ResilientStorage]name=Red Hat Enterprise Linux ResilientStoragebaseurl=http://172.25.67.250/rhel6.5/ResilientStoragegpgcheck=0[ScalableFileSystem]name=Red Hat Enterprise Linux ScalableFileSystembaseurl=http://172.25.67.250/rhel6.5gpgcheck=0
安装ipvsadm
yum install -y ipvsadm
查看ipvs模块是否加载
[root@server1 ~]# lsmod |grep ip_vs ##查看ipvs模块是否加载因为此时系统还没有把ipvs模块加载进系统,需要我们执行ipvsadm命令才会加载进去或者modprobe ip_vs。[root@server1 ~]# ipvsadmIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight [root@server1 ~]# lsmod |grep ip_vsip_vs_rr 1420 1 ip_vs 125220 3 ip_vs_rrlibcrc32c 1246 1 ip_vsipv6 317340 16 ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
三、手动配置LVS负载均衡器
添加vip
[root@server1 ~]# ip addr add 172.25.28.100 dev eth0
ipvsadm添加lvs服务
[root@server1 ~]# ipvsadm -C ##清空之前配置[root@server1 ~]# ipvsadm -A -t 172.25.28.100:80 -s rr#添加虚拟服务指定VIP[root@server1 ~]# ipvsadm -a -t 172.25.28.100:80 -r 172.25.28.2:80 -g#针对虚拟服务添加RS节点[root@server1 ~]# ipvsadm -a -t 172.25.28.100:80 -r 172.25.28.3:80 -g[root@server1 ~]# ipvsadm -Ln#查看VIP和RS是否已经配置成功IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 172.25.28.100:80 rr -> 172.25.28.2:80 Route 1 0 0 -> 172.25.28.3:80 Route 1 0 0
LB上删除虚拟服务
ipvsadm -D -t 172.25.67.100:80
四、RS节点服务器手动配置
添加VIP
[root@server2 ~]# ip addr add 172.25.28.100/24 dev eth0 [root@server2 ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:a6:4a:16 brd ff:ff:ff:ff:ff:ff inet 172.25.28.2/24 brd 172.25.28.255 scope global eth0 inet 172.25.28.100/24 scope global secondary eth0 inet6 fe80::5054:ff:fea6:4a16/64 scope link valid_lft forever preferred_lft forever
arp 抑制rs vip
[root@server2 ~]# yum install -y arptables_jf[root@server2 ~]# arptables -A IN -d 172.25.28.100 -j DROP[root@server2 ~]# arptables -A OUT -s 172.25.28.100 -j mangle --mangle-ip-s 172.25.28.2[root@server2 ~]# /etc/init.d/arptables_jf saveSaving current rules to /etc/sysconfig/arptables: [ OK ]
五:测试
配置好以上后,我们打开一个浏览器进行访问:
通过访问发现。当我访问vip时,lvs会根据算法负载均衡使得访问web均衡。。。
- 配置 LVS DR模式
- LVS DR模式配置
- LVS的DR模式
- LVS的DR模式
- lvs DR模式
- lvs DR模式
- LVS-DR模式配置详解
- LVS/DR模式原理剖析
- lvs DR模式的笔记
- lvs DR NAT模式练习
- LVS/DR模式原理剖析
- LVS之DR模式配置
- LVS 配置之DR模式
- LVS/DR工作模式详解
- lvs-dr模式 安装配置
- 均衡负载LVS-DR模式
- lvs群集DR模式搭建
- lvs群集DR模式介绍
- 值得推荐的C/C++框架和库 (真的很强大)
- Cookie
- 线性表之循环列表
- 17icpc北京网络赛G题(gcd意义)
- 取数组的最后一个元素
- lvs DR模式
- 【MyBatis】MyBatis入门
- 宁南山:中国未来的国运如何?
- Python数据结构中列表,字典,元组,集合的总结
- Balanced Game HDU
- 递归问题 D: 八皇后
- 【LeetCode】 Implement Queue by Two Stacks用栈实现队列
- Python学习笔记:文件操作
- WIN7_64 + CVE-2012-1889的分析