搭建 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

实验拓扑图


实验步骤:


实验准备:

配置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 配置高可用集群 : https://blog.51cto.com/13558754/2060950

      ipvsadm 配置LVS/DR 负载均衡集群:https://blog.51cto.com/13558754/2060405

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

 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

  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

转载于:https://blog.51cto.com/13558754/2061009

RHEL6 搭建 keepalived + lvs/DR 集群的更多相关文章

  1. Keepalived+LVS+nginx搭建nginx高可用集群

    1. 环境准备 1. VMware; 2. 4台CentOs7虚拟主机:192.168.122.248,192.168.122.68, 192.168.122.110, 192.168.122.167 ...

  2. 每秒处理3百万请求的Web集群搭建-用 LVS 搭建一个负载均衡集群

    这篇文章是<打造3百万次请求/秒的高性能服务器集群>系列的第3部分,有关于性能测试工具以及优化WEB服务器部分的内容请参看以前的文章. 本文基于你已经优化好服务器以及网络协议栈的基础之上, ...

  3. 用 LVS 搭建一个负载均衡集群(转)

    http://blog.jobbole.com/87503/ 第一篇:<如何生成每秒百万级别的 HTTP 请求?> 第二篇:<为最佳性能调优 Nginx> 第三篇:<用 ...

  4. Keepalived高可用集群应用

    Keepalived高可用集群应用 1.keepalived服务说明 1.1.keepalived介绍 Keepalived是一个用C语言编写的路由软件.该项目的主要目标是为Linux系统和基于Lin ...

  5. Nginx+Keepalived高可用集群应用实践

    Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...

  6. 使用Kubeadm搭建高可用Kubernetes集群

    1.概述 Kubenetes集群的控制平面节点(即Master节点)由数据库服务(Etcd)+其他组件服务(Apiserver.Controller-manager.Scheduler...)组成. ...

  7. 亿级Web系统搭建——单机到分布式集群

    当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层 ...

  8. 亿级Web系统搭建——单机到分布式集群[转]

    当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层 ...

  9. 【web】 亿级Web系统搭建——单机到分布式集群

      当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架 ...

随机推荐

  1. CF633(div.2)B. Sorted Adjacent Differences

    题目描述 http://codeforces.com/contest/1339/problem/B 有一个长度为 \(n(3\le n \le 10^5)\) 的整数序列 \(a_1,a_2,..., ...

  2. 关于TD信息树自己的体验和建议

    自己选择的是17级学长13组的TD消息树,通过对这个软件的使用,感觉整体上还是很好的,他的主要功能就相当于把微信的朋友圈还有qq的好友动态等功能集合到了一起.这个软件整体就相当于一个空间,可以加好友互 ...

  3. (js描述的)数据结构[树结构之红黑树](13)

    1.二叉送搜索树的缺点: 2.红黑树难度: 3.红黑树五大规则: 4.红黑树五大规则的作用: 5.红黑树二大变换: 1)变色 2)旋转 6.红黑树的插入五种变换情况: 先声明--------插入的数据 ...

  4. Linux 磁盘管理篇,连接文件

    连接文件分为两种 1.像Window类似的快捷方式的文件 2.通过文件系统的inode来产生新的文件名而不是新文件(硬连接) 创建连接文件            ln 创建连接文件的快捷方式      ...

  5. coding++:jdk1.7 HashMap 的get()和put() 源码

    HashMap的概述:    基于哈希表的 Map 接口的实现.    此实现提供所有可选的映射操作,并允许使用 null 值和 null 键. (除了非同步和允许使用 null 之外,HashMap ...

  6. 并发系列64章(TPL 数据流)第七章

    前言 什么是TPL?全称:transmission control protocol 传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务. 然后思维方式回到为什么有这个TPL 数据流上 ...

  7. shell命令-for语句

    数字循环 sum=0 for((i=1;i<=10;i++)) do sum=$(($sum+$i)) echo "$i:$sum" done 字符循环 for i in ` ...

  8. log4j入门(转) --- 很详细 也很简单容易懂

    log4j入门(转) Log4j实在是很熟悉,几乎所有的Java项目都用它啊.但是我确一直没有搞明白.终于有一天我受不了了,定下心去看了一把文档,才两个小时,我终于搞明白了.一般情况下Log4j总是和 ...

  9. Java面向对象的总结

    面向对象的程序设计 1.面向对象 核心:以类的方式组织代码,以对象的方式封装数据 比喻:也就是说类是没有数据的,给了数据之后的类就是对象 封装 继承 多态 2.方法 a.一个方法只有一个返回值,只有一 ...

  10. L6循环神经网络

    循环神经网络 本节介绍循环神经网络,下图展示了如何基于循环神经网络实现语言模型.我们的目的是基于当前的输入与过去的输入序列,预测序列的下一个字符.循环神经网络引入一个隐藏变量HHH,用HtH_{t}H ...