|NO.Z.00011|——————————|^^ 构建 ^^|——|HAC构建.V2|——|5台server|

一、Keepalived原理
### --- Keepalived原理
### --- 案例环境专为LVS和HA设计的一款健康检查工具

~~~     LVS是一款著名的负载均衡调度器。LVS在它的功能中专门加了一个Keepalived模块,
~~~     现在企业主要使用LVS+keepalived实现高可用和负载均衡。
~~~     支持故障自动切换(Failover)
~~~     支持节点健康状态检查(Health Checking)
~~~     官方网站:http://www.keepalived.org/

### --- keepalived的热备方式
~~~     VRRP(Virtual Router Redundancy Protocol,
~~~     虚拟路由冗余协议:网路中非常重要的协议)
~~~     一主+多备,公用一个IP地址,但优先级不同
### --- 对于路由器实现最简洁的方案是VRRP方式。

~~~     把这些路由器放在同一个组里,只有在同一个组里才会竞争IP的使用权。
~~~     漂移地址:在同一个组里漂移地址会来回移动。
~~~     若是主宕机其它三台会选举一个主出来,主来承担漂移地址的使用权;
~~~     这个方案保证整个网络不会中断
~~~     keeplived底层就是通过VRRP这个底层技术去实现高可用。
二、LVS-DR+keepalived
### --- LVS-DR+keepalived

~~~     LVS-DR:是企业首选的一种LVS工作方式。
~~~     LVS-DR+keeplived实现我们的负载高可用方案。
~~~     10.10.10.240——>客户端
~~~     10.10.10.11:LVS-M    |    10.10.10.13:RS1 10.10.10.14:RS2     第一步构建 
~~~     10.10.10.13:LVS-S——>备份节点/LVS从节点                         第二步构建

一、系统规划:
### --- 系统规划:

~~~     Windows:10.10.10.240:client
~~~     10.10.10.11:LVS-M:LVS主节点
~~~     10.10.10.12:LVS-S:LVS从节点
~~~     10.10.10.13:RS1:主服务器1
### --- 10.10.10.14:RS2:主服务器2

### --- 说明:
~~~     LVS本身是没有对后端主机存活状态的检测功能,之前我们使用脚本LVS健康检查脚本实现
~~~     LVS+keeplived:keeplived是支持后端主机存活状态的检测功能的。
~~~     且它融合了LVS的模块,所以它可以自动的添加三组节点。
二、实验构建:LVS-DR模式构建
### --- 实验环境准备
### --- 关闭所有节点的网卡守护进程

[root@server11 ~]# service NetworkManager stop && chkconfig NetworkManager off 
1、10.10.10.11:构建LVS-DR模式的负载均衡集群
### --- LVS-DR模式构建
### --- 10.10.10.11:构建LVS-DR模式的负载均衡集群

### --- 添加网卡,作为VIP去使用
[root@server11 ~]# cd /etc/sysconfig/network-scripts/
[root@server11 network-scripts]# cp -a ifcfg-eth0 ifcfg-eth0:0
[root@server11 network-scripts]# vim !$
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.10.10.100
NETMASK=255.255.255.0
### --- 启动ifcfg-eth0:0网卡

[root@server11 network-scripts]# ifup ifcfg-eth0:0
Determining if ip address 10.10.10.100 is already in use for device eth0...
[root@server11 network-scripts]# ifconfig
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:FA:34:71  
          inet addr:10.10.10.100  Bcast:10.10.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
### --- 安装ipvsadm
[root@server11 ~]# yum install -y ipvsadm
 
### --- 安装网卡的广播功能,防止IP冲突
[root@server11 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0

[root@server11 ~]# sysctl -p
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
### --- 添加集群

[root@server11 ~]# ipvsadm -A -t 10.10.10.100:80 -s rr
[root@server11 ~]# ipvsadm -a -t 10.10.10.100:80 -r 10.10.10.13:80 -g
[root@server11 ~]# ipvsadm -a -t 10.10.10.100:80 -r 10.10.10.14:80 -g
[root@server11 ~]# service ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [  OK  ]
### --- 查看集群

[root@server11 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.10.10.100:80 rr
  -> 10.10.10.13:80               Route   1      0          0         
  -> 10.10.10.14:80               Route   1      0          0 
2、10.10.10.13:RS1,添加真实服务器RS1 
### --- 10.10.10.13:RS1,添加真实服务器RS1 

### --- 开启Apache服务
[root@server13 ~]# service httpd start
[root@server13 ~]# chkconfig httpd on
[root@server13 ~]# echo "this is server 1" >> /var/www/html/index.html
[root@server13 ~]# curl localhost
this is server 1
### --- 开启lo:0网卡并关闭ARP的通信行为

[root@server13 ~]# cd /etc/sysconfig/network-scripts/
[root@server13 network-scripts]# cp -a ifcfg-lo  ifcfg-lo:0
[root@server13 network-scripts]# vim !$
DEVICE=lo:0
IPADDR=10.10.10.100
NETMASK=255.255.255.255
NETWORK=127.0.0.0
[root@server13 ~]# ifup lo:0
### --- 设置路由规则
 
[root@server13 ~]#   
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
 
[root@server13 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
### --- 添加一条路由记录
[root@server13 ~]# route add -host 10.10.10.100 dev lo:0

### --- 查看路由记录
[root@server13 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.100    0.0.0.0         255.255.255.255 UH    0      0        0 lo      //10.10.10.100交给lo:0网卡
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
### --- 把路由规则写入开机自启里

[root@server13 ~]# echo "route add -host 10.10.10.100 dev lo:0" >> /etc/rc.local
3、10.10.10.14:RS2,添加真实服务器RS12
### --- 10.10.10.14:RS2,添加真实服务器RS12
### --- 开启Apache服务

[root@server14 ~]# service httpd start
[root@server14 ~]# chkconfig httpd on
[root@server14 ~]# echo "this is server 2" >> /var/www/html/index.html
[root@server14 ~]# curl localhost
this is server 2
### --- 开启lo:0网卡并关闭ARP的通信行为

[root@server14 ~]# cd /etc/sysconfig/network-scripts/
[root@server14 network-scripts]# cp -a ifcfg-lo  ifcfg-lo:0
[root@server14 network-scripts]# vim !$
DEVICE=lo:0
IPADDR=10.10.10.100
NETMASK=255.255.255.255
NETWORK=127.0.0.0
[root@server14 ~]# ifup lo:0
### --- 设置路由规则
 
[root@server14 ~]# vim /etc/sysctl.conf 
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

[root@server14 ~]# sysctl -p
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
### --- 添加一条路由记录
[root@server14 ~]# route add -host 10.10.10.100 dev lo:0
 
### --- 查看路由记录
[root@server14 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.100    0.0.0.0         255.255.255.255 UH    0      0        0 lo  // 10.10.10.100交给lo:0网卡
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
### --- 把路由规则写入开机自启里

[root@server14 ~]# echo "route add -host 10.10.10.100 dev lo:0" >> /etc/rc.local

三、验证:通过IE浏览器http://10.10.10.100/
 四、通过ipvsadm命令行的方式验证
### --- 通过ipvsadm命令行的方式验证

[root@server11 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  10.10.10.100:80                    28      140        0    19750        0
  -> 10.10.10.13:80                     14       70        0     9845        0
  -> 10.10.10.14:80                     14       70        0     9905        0

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(29)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示