虚拟机搭建LVS-DR集群
来源:互联网 发布:java代码书写规范 编辑:程序博客网 时间:2024/05/28 15:07
一.。必备知识
参考搭建 NAT模型 http://blog.csdn.net/liaomin416100569/article/details/73300692
二。概念解析
lvs官网 http://www.linuxvirtualserver.org/
lvs和nginx的区别在于 lvs是传输层(7层中第4层)的负载均衡 也就是ip和端口的负载均衡
nginx是应用层(7层中第7层) http协议的负载均衡 比如http协议中中的url ,浏览器缓存,cookie一些设置都可以在应用层 在第4层就
无法做到 明显 4层负载均衡效率高于7层负载均衡
lvs(linux virtual server)提供了三种集群方式
分别是:
- The LVS/NAT working principle and configuration instructions.
- The LVS/TUN working principle and configuration instructions.
- The LVS/DR working principle and configuration instructions.
Dr模型(Direct Routing)直接路由 用户负载均衡分发到RealServer NAT也是用于该目标
NAT模型所有的请求和响应都必须经过负载均衡服务器 一般响应的流量较大 请求的参数小 需要负载均衡器下载带宽无限大 负载均衡的目的在于均衡的将请求分发给目标RealServer不能因为下载的流量导致服务器带宽被占用完 DR模型 负载均衡器只需要将请求转发 RealServer响应不再经过均衡器直接
由RealServer响应给客户端 由于socket长连接 客户端与负载均衡器发送的请求和响应必须是相对的 如果实现RealServer直接响应 必须在RealServer响应
时将源ip修改为负载均衡器ip 同时RealServer可连接客户端 可以给RealServer一个虚拟ip 该ip和负载均衡器的外网ip一致 同时 ip不对外发送arp
三。场景模拟
DR模式要求所有的机器处于同一网络环境中 比如 客户端 负载均衡器 和RealServer都处于互联网中 要么同处于同一局域网中
负载均衡器 192.168.58.134(局域网ip DIP) 192.168.58.133(客户端访问VIP)
RealServer1 192.168.58.135(局域网ip RIP) 192.168.58.133(虚拟ip VIP)
RealServer2 192.168.58.136(局域网ip RIP) 192.168.58.133(虚拟ip VIP)
1.配置负载均衡器
》添加虚拟ip 192.168.58.133(eno16777736为物理网卡名 通过ifconfig查看)
ifconfig eno16777736:0 192.168.58.133/32 up route add -host 192.168.58.133 dev eno16777736:0
》安装ipvsadm
yum -y install ipvsadm #清空所有的路由规则 ipvsadm -C #添加一个集群 192.168.58.133:80 必须是外网ip 也就是vip 因为别人才可以访问 rr表示轮询 ipvsadm -A -t 192.168.58.133:80 -s rr #给集群添加一个主机 Rserver 192.168.58.135:80和192.168.58.136:80 这两台机各自部署一个tomcat -m表示nat模式 -g 表示dr模型 ipvsadm -a -t 192.168.58.133:80 -r 192.168.58.135:80 -g ipvsadm -a -t 192.168.58.133:80 -r 192.168.58.136:80 -g
2 配置RealServer1和2
》虚拟ip的arp路由设置
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announce》 添加虚拟ip
ifconfig lo:0192.168.58.133 broadcast192.168.58.133 netmask 255.255.255.255 up route add -host 192.168.58.133 lo:0
RealServer分别安装两个tomcat 修改端口为80
访问 http://192.168.58.133 成功
查看转发或者realserver的运行检查 可以查看系统日志 /var/log/messages文件
四。lvs缺点
lvs使用负载算法 平均发布请求到realserver 但是不能进行健康检查 比如 rs1出现故障 director仍然会转发到rs1 所以必须结合keepalived
五。使用keepalived结合lvs检查rs故障
模拟场景
DServer1 192.168.58.134(局域网ip DIP) 192.168.58.133(客户端访问VIP) +keepalived +lvs
DServer2 192.168.58.137(局域网ip DIP) 192.168.58.133(客户端访问VIP) +keepalived +lvs
RealServer1 192.168.58.135(局域网ip RIP) 192.168.58.133(虚拟ip VIP) +tomcat
RealServer2 192.168.58.136(局域网ip RIP) 192.168.58.133(虚拟ip VIP) +tomcat
两台Dserver 分别安装lvs负载均衡 并且安装使用keepalived
keepalived 功能
1:vip192.168.58.133 在主(Dserver1)和从(Dserver2)中漂移 如果主机Dserver1的lvs挂掉 vip自动切换给Dserver2
2:keepalived会自动检测 后台的realserver的tomcat是否挂掉 如果挂掉自动切换到其他tomcat
在两台Dserver上分别配置 keepalived的配置文件/etc/keepalived/keepalived.conf 具体可以先参考(http://blog.csdn.net/liaomin416100569/article/details/73477162 该文章了解 keepalived)
vrrp_instance LVS { state MASTER # interface eno16777736 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.58.133 }}virtual_server 192.168.58.133 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 50 protocol TCP real_server 192.168.58.135 80 { weight 1 HTTP_GET { url { path / digest aa150255da35870c218c9be8cea310f3 } connect_timeout 3 nb_get_retry 3 connect_port 80 delay_before_retry 3 } } real_server 192.168.58.136 80 { weight 1 HTTP_GET { url { path / digest aa150255da35870c218c9be8cea310f3 } connect_timeout 3 nb_get_retry 3 connect_port 80 delay_before_retry 3 } }}
其中 keepalived实际上通过访问 http://192.168.58.135:80/ 来测试tomcat是否正常运行 其中
digest可以预先通过
[root@bogon keepalived]# genhash -s 192.168.58.135 -p 80 -u /MD5SUM = aa150255da35870c218c9be8cea310f3生成
该keepalived 会指定在interface eno16777736指定的网络接口上生成虚拟ip 192.168.58.133
可以ip addr查看
[root@bogon keepalived]# ip addr1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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 valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:49:29:6c brd ff:ff:ff:ff:ff:ff inet 192.168.58.134/24 brd 192.168.58.255 scope global dynamic eno16777736 valid_lft 1468sec preferred_lft 1468sec inet 192.168.58.133/32 scope global eno16777736 valid_lft forever preferred_lft forever inet6 fe80::20c:29ff:fe49:296c/64 scope link valid_lft forever preferred_lft forever
同时 会自动在lvs中添加 dr的轮询rr (不需要自己添加)
[root@bogon keepalived]# ipvsadm -L -nIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.58.133:80 rr persistent 50 -> 192.168.58.135:80 Route 1 0 0 -> 192.168.58.136:80 Route 1 0 0
所有的realserver 配置同三。场景模拟 的 2 配置RealServer1和2
访问 http://192.168.58.133
关闭其中一台tomcat 看是否能够继续访问
关闭主lvs服务134看 看vip是否转移到 从服务器 137
- 虚拟机搭建LVS-DR集群
- 虚拟机搭建LVS-NAT集群
- 采用Lvs DR(直接路由)模式搭建集群
- Linux搭建负载均衡集群,使用LVS的DR模式
- 使用LVS+DR搭建集群实现负载均衡
- 虚拟机 搭建LVS + DR + keepalived 高可用负载均衡
- 虚拟机搭建LVS负载均衡DR直接路由模式
- 虚拟机virtualBox 搭建 Keepalived+lvs dr+httpd 负载均衡
- lvs-dr实验搭建
- 集群之LVS-DR原理
- lvs群集DR模式搭建
- 用 KVM 搭建web集群实验笔记 - LVS和Keeplived负载均衡(DR模式)
- 高可用负载均衡集群Heartbeat+Ldirectord+lvs-DR的搭建
- 高可用负载均衡集群Keepalived+lvs-DR模式的搭建
- CentOS 6.5 LVS+KeepAlived(DR模式)搭建高可用负载均衡集群
- 配置基于DR模式Lvs集群
- CentOS上配置LVS DR集群
- CentOS上配置LVS DR集群
- linux权限之su和sudo的区别
- mysql join操作【实例教程】
- Android中Recyclerview使用11----选中某一条目,在点击后取消选中
- 循环冗余校验(CRC校验)
- Python与医疗图像3
- 虚拟机搭建LVS-DR集群
- 适用于准入职Java程序员的最有价值的10道java面试题
- 13、react之 用yeoman搭建开发环境
- mysql5.6 varchar存中文笔记
- ECharts3基础教程(二)Option简单配置篇
- Saltstack-01基本命令
- JDBC连接MSSQL2014
- redis存储结构
- 前端知识点