搭建 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. 使用Azure Rest API获得Access Token介绍

    背景 本文主要介绍如何获取如何获取Azure Rest API的访问token,所采用的是v2.0版本的Microsoft标识平台,关于1.0和2.0的区别可以参考 https://docs.azur ...

  2. 搭建mariadb数据库系统《一》

                                                                     搭建mariadb数据库系统 案例3:搭建mariadb数据库系统 3 ...

  3. python3.6 ubuntu部署nginx、 uwsgi、 django

    ubuntu部署nginx. uwsgi. django 将项目上传到服务器 python manager.py runserver 0:80 在浏览器输入服务器的域名或者ip地址,访问成功. 安装u ...

  4. Java第六天,API中常用的类,StringBuffer、StringBuilder、包装类、System类的使用

    System (1)这个类中有很多可以获取系统信息的类. public class SystemLearn { public static void main(String[] args) { lon ...

  5. redis中的缓存-缓存雪崩和缓存穿透

    缓存雪崩 缓存雪崩是由于原有缓存失效(过期),新缓存未到期间.所有请求都去查询数据库,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机.从而形成一系列连锁反应,造成整个系统崩溃. 1. 碰到 ...

  6. 【Tool】Windows系统安装Maven依赖管理工具

    安装Maven依赖管理工具 官网下载地址:http://maven.apache.org/download.cgi 系统环境要求: [JDK]Maven3.3版本+需要JDK1.7版本以上支持 [内存 ...

  7. 01、WireShark——ARP 协议包分析

     1. 什么是ARP ARP(Address Resolution Protocol)协议,即地址解析协议.该协议的功能就是将 IP 地 址解析成 MAC 地址. ARP(Address Resolu ...

  8. 数据类型、运算符、Scanner的使用

              一.常见的基本数据类型      数值型  byte(最小,2字节)      short(4字节) int (默认 8字节)    long(16字节)      浮点型   f ...

  9. idea创建springboot工程,总出现响应超时问题,或者无法连接http://start.spring.io导致创建失败

    问题描述如下: idea创建springboot工程,总出现响应超时问题,或者无法连接http://start.spring.io导致创建失败 从我出现此类问题几次的解决方案 依照解决效率分为一下三种 ...

  10. Laravel异步队列全攻略

    最近项目需求,研究了laravel的异步队列.官方文档虽然很是详细,但也有些晦涩难懂,在此记录下步骤,供大家参考. 1.修改/config/queue.php文件 <?php return [ ...