搭建 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. MYSQL索引类型。MYSQLc储存引擎

                                                            MYSQL索引类型,MYSQLc储存引擎 MySQL索引创建与删除 MySQL存储引擎的 ...

  2. 2017蓝桥杯算式900(C++C组)

    题目:算式900 小明的作业本上有道思考题:  看下面的算式:  (□□□□-□□□□)*□□=900  其中的小方块代表0~9的数字,这10个方块刚好包含了0~9中的所有数字.  注意:0不能作为某 ...

  3. C语言中 sinx cosx 的用法

    #include<stdio.h> #include<math.h> int main() {     double pi=acos(-1.0);     double ang ...

  4. Python 的while循环和for循环的使用

    #循环 遍历 迭代 # while循环 a = 0while a <5: a =a+1 if a == 3: continueprint('我循环了')+str(a) # print ('我循环 ...

  5. Docker-CentOS系统安装Docker

    上一节,我们介绍了安装虚拟机及操作系统,本文再详细描述安装docker的命令. 前提条件 虚拟机系统:CentOS,并且虚拟机能连通外网. 另外,虚拟机最好配置上阿里的镜像源,点此链接,进入cento ...

  6. 安装JDK后,未设置Path,也能执行java.exe的原因

    安装JDK时,自动将java.exe复制到C:\Windows\System32下

  7. Python 分析后告诉你闲鱼上哪些商品抢手?

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:[Airpython] PS:如有需要Python学习资料的小伙伴可以 ...

  8. Daily Scrum 12/17/2015

    Process: Zhaoyang:完成了相册图片的异步加载. Yandong&Dong:   对Azure的体系架构进行学习和相应的编程. Fuchen:   对Oxford计划中的NLP接 ...

  9. python与excel的关系;铁打的python流水的excel

    现在很多行业,都离不开用Excel: 做财务的,要用Excel做报表:做物流的,会用Excel来跟踪订单情况:做HR的,会用Excel算工资:做分析的,会用Excel计算数据做报表.不知道你有没有这样 ...

  10. 从零开始学AB测试:基础篇

    什么是AB测试? 通俗点理解,AB测试就是比较两个东西好坏的一套方法,这种A和B的比较在我们的生活和人生中非常常见,所以不难理解.具体到AB测试这个概念,它和我们比较哪个梨更大.比较哪个美女更漂亮.比 ...