博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RHEL6 搭建 keepalived + lvs/DR 集群
阅读量:7240 次
发布时间:2019-06-29

本文共 4962 字,大约阅读时间需要 16 分钟。

搭建 keepalived + lvs/DR  集群

使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务:

  • LVS1调度器真实IP地址为192.168.4.50

  • LVS2调度器真实IP地址为192.168.4.55

  • 服务器VIP地址设置为192.168.4.252

  • 真实Web服务器地址分别为192.168.4.51、192.168.4.52

实验拓扑图

3.jpg

实验步骤:


实验准备:

    配置yum源

    # service iptables stop            //关闭防火墙

    # chkconfig iptables off            //关闭开机自启

    # setenforce 0                            //设置SELinux 为宽松模 

    配置WEB服务器  pc51 / pc52

    #yum -y install httpd  

    #service httpd start 

    #chkconfig httpd on

    [root@pc51 ~] #echo " 192.168.4.51  " > /var/www/html/test.html

    [root@pc52 ~] #echo " 192.168.4.52 " > /var/www/html/test.html

     本次实验有些步骤就不详细介绍了,具体有关 keepalived 和 ipvsadm 的相关配置 可以参考

      keepalived 配置高可用集群 : 

      ipvsadm 配置LVS/DR 负载均衡集群:

1 在web服务上 配置 VIP地址  pc51 / pc52

    # ifconfig lo:1 192.168.4.252/32    //只拥有ip 就可以

    # ifconfig lo:1

    lo:1      Link encap:Local Loopback  

              inet addr:192.168.4.252  Mask:0.0.0.0

              UP LOOPBACK RUNNING  MTU:65536  Metric:1

    # cd /proc/sys/net/ipv4/conf/

    # echo 1 > lo/arp_ignore

    # echo 2 > lo/arp_announce 

    # echo 1 > all/arp_ignore 

    # echo 2 > all/arp_announce 

2 配置分发器 50(主)  55(备) 分别安装keepalived软件    装包 ipvsadm

    

    # rpm -q ipvsadm keepalived

    ipvsadm-1.26-4.el6.x86_64

    keepalived-1.2.13-5.el6_6.x86_64

4 修改配置文件

    [root@pc50 ~]# vim /etc/keepalived/keepalived.conf 

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
32
33
34
 
vrrp_instance VI_1 {
      
state MASTER                 
// 
描述信息  MASTER为主服务器
      
interface eth0                 
// 
定义网络接口
      
virtual_router_id 51           
//
主 备VRID号必须一致 
      
priority 150                   
//
服务器优先级
      
advert_int 1
      
authentication {
          
auth_type PASS           
//
验证方式
          
auth_pass 1111           
//
验证密码     主  备服务器密码必须一致 
      
}
      
virtual_ipaddress {
          
192.168.4.252            
//VIP
地址
      
}   
  
}
    
  
virtual_server 192.168.4.252 80 {        
//
配置 VIP为192.168.0.252  80 端口
      
delay_loop 6
      
lb_algo rr                            
//
设置LVS调度算法为RR
      
lb_kind DR                            
//
设置LVS的模式为DR
      
nat_mask 255.255.255.0
      
persistence_timeout 50
      
protocol TCP
      
connect_timeout 3
      
nb_get_retry 3
      
delay_before_retry 3
   
     
real_server 192.168.4.51 80 {
          
weight 1                        
//
设置权重为1
     
}   
     
real_server 192.168.4.52 80 {
          
weight 1                        
//
设置权重为1
      
}   
           
  
}

使用第一个虚拟服务的模版

其余的都删除

主机55

    [root@pc55 ~]# vim /etc/keepalived/keepalived.conf 

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
32
33
  
vrrp_instance VI_1 {
      
state BACKUP                
// 
描述信息 BACKUP为备用服务器
      
interface eth0
      
virtual_router_id 51
      
priority 100
      
advert_int 1
      
authentication {
          
auth_type PASS
          
auth_pass 1111
      
}
      
virtual_ipaddress {
          
192.168.4.252
      
}
  
}
  
  
virtual_server 192.168.4.252 80 {
      
delay_loop 6
      
lb_algo rr
      
lb_kind DR
      
nat_mask 255.255.255.0
      
persistence_timeout 50
      
protocol TCP
      
connect_timeout 3
      
nb_get_retry 3
      
delay_before_retry 3
   
      
real_server 192.168.4.51 80 {
          
weight 1
      
}
      
real_server 192.168.4.52 80 {
          
weight 1
      
}
  
}

5 启动服务

    # service keepalived start

    [root@pc50 ~]# ipvsadm -Ln

    IP Virtual Server version 1.2.1 (size=4096)

    Prot LocalAddress:Port Scheduler Flags

      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

    TCP  192.168.4.252:80 rr persistent 50

      -> 192.168.4.51:80              Route   1      0          0         

      -> 192.168.4.52:80              Route   1      0          0     

    [root@pc50 ~]# ip addr show | grep 192.168.4

        inet 192.168.4.50/24 brd 192.168.4.255 scope global eth0

        inet 192.168.4.252/32 scope global eth0

    

    [root@pc55 ~]# ipvsadm -Ln --stats

    IP Virtual Server version 1.2.1 (size=4096)

    Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

      -> RemoteAddress:Port

    TCP  192.168.4.252:80               0        0        0        0        0

      -> 192.168.4.51:80                     0        0        0        0        0

      -> 192.168.4.52:80                     0        0        0        0        0

    [root@pc55 ~]# ip addr show | grep 192.168.4

        inet 192.168.4.55/24 brd 192.168.4.255 scope global eth0

6 客户端访问

# elinks --dump 192.168.4.252

   192.168.4.52

[root@room1pc32 桌面]# elinks --dump 192.168.4.252

   192.168.4.51

[root@room1pc32 桌面]# elinks --dump 192.168.4.252

   192.168.4.52

[root@room1pc32 桌面]# elinks --dump 192.168.4.252

   192.168.4.51

[root@room1pc32 桌面]# elinks --dump 192.168.4.252

   192.168.4.52

# ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

  -> RemoteAddress:Port

TCP  192.168.4.252:80               5       25        0     2075        0

  -> 192.168.4.51:80                     2       10        0      830        0

  -> 192.168.4.52:80                     3       15        0     1245        0

[root@pc55 ~]# ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

  -> RemoteAddress:Port

TCP  192.168.4.252:80               0        0        0        0        0

  -> 192.168.4.51:80                     0        0        0        0        0

  -> 192.168.4.52:80                     0        0        0        0        0

模拟50 故障 验证Keepalived 高可用

[root@pc50 ~]#  service keepalived stop

[root@pc50 ~]# ip addr show | grep 192.168.4

    inet 192.168.4.50/24 brd 192.168.4.255 scope global eth0

[root@pc55 ~]# ip addr show | grep 192.168.4

    inet 192.168.4.55/24 brd 192.168.4.255 scope global eth0

    inet 192.168.4.252/32 scope global eth0

客户端访问

# elinks --dump 192.168.4.252

   192.168.4.52

# elinks --dump 192.168.4.252

   192.168.4.51

# elinks --dump 192.168.4.252

   192.168.4.52

# elinks --dump 192.168.4.252

   192.168.4.51

# elinks --dump 192.168.4.252

   192.168.4.52

# ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes

  -> RemoteAddress:Port

TCP  192.168.4.252:80               5       25        0     2075        0

  -> 192.168.4.51:80                     2       10        0      830        0

  -> 192.168.4.52:80                     3       15        0     1245        0

本文转自 Xuenqlve 51CTO博客,原文链接:http://blog.51cto.com/13558754/2061009,如需转载请自行联系原作者
你可能感兴趣的文章
浏览器 HTTP 协议缓存机制详解
查看>>
understand软件使用教程(转)
查看>>
【JavaScript】 JS面向对象的模式与实践
查看>>
13.ng-value
查看>>
8天掌握EF的Code First开发系列之动手写第一个Code First应用
查看>>
【Django】 积累
查看>>
iOS App的加固保护原理
查看>>
测试左移和测试右移
查看>>
云开发初探 —— 更简便的小程序开发模式
查看>>
CSharpGL(49)试水OpenGL软实现
查看>>
Centos7安装Tomcat并部署DubboAdmin的War包并配置自动启动
查看>>
Linux嵌入式时区修改
查看>>
[ACM] HDU 5024 Wang Xifeng's Little Plot (构造,枚举)
查看>>
微软小子Kie
查看>>
JQuery的extend扩展方法
查看>>
Ubuntu10下MySQL搭建Amoeba_分片升级版
查看>>
ClassCastException[转贴]
查看>>
MySQL vs.MongoDB 各有胜负!
查看>>
寻找最大的K个数,Top K问题的堆实现
查看>>
DDD:在基于关系数据库的领域,聚合的边界等于并发管理的边界。
查看>>