部署LVS-DR + keepalived 高可用群集

  • LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。
  • 直接路由(DirectRouting);简称DR模式,采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。
  • Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
  • 实验需求
  • 服务器主机 IP: ( VIP:192.168.200.100) 需要安装配置
    NFS共享服务器 192.168.200.105 NFS共享存储
    LVS主调度器 192.168.200.103 keepalived 、ipvsadm
    LVS从调度器 192.168.200.104 keepalived 、ipvsadm
    节点服务器1 192.168.200.101 httpd 、NFS
    节点服务器2 192.168.200.102 httpd 、NFS
    windows客户机 192.168.200.200 测试专用
    • LVS调度服务器
    • 主从调度服务器配置基本相同(不同之处已经标注)
      # yum install keepalived ipvsadm -y
    • 调整proc响应参数
      # vi /etc/sysctl.conf
          net.ipv4.ip_forward=1
          net.ipv4.conf.all.send_redirects = 0
          net.ipv4.conf.default.send_redirects = 0
          net.ipv4.conf.ens33.send_redirects = 0
          //proc响应关闭重定向功能//
          # sysctl -p    //立即生效
    • 配置虚拟VIP
      # cd /etc/sysconfig/network-scripts
      # cp ifcfg-ens33 ifcfg-ens33:0
      # vim  ifcfg-ens33:0
          DEVICE=ens33:0
          ONBOOT=yes
          IPADDR=192.168.200.100
          NETMASK=255.255.255.0
      
      # ifup ens33:0     //启用虚拟IP
    • 配置负载分配策略
    • 编写脚本方便管理
          # cd /etc/init.d/
          # vi dr.sh
              #!/bin/bash
              GW=192.168.200.1
              VIP=192.168.200.100
              RIP1=192.168.200.101
              RIP2=192.168.200.102
              case "$1" in
              start)
                  /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
                  systemctl start ipvsadm
                  /sbin/ifconfig ens33:0 $VIP broadcast $VIP netmask 255.255.255.255 broadcast $VIP up
                  /sbin/route add -host $VIP dev ens33:0
                  /sbin/ipvsadm -A -t $VIP:80 -s rr
                  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
                  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
                  echo "ipvsadm starting --------------------[ok]"
                  ;;
                  stop)
                  /sbin/ipvsadm -C
                  systemctl stop ipvsadm
                  ifconfig ens33:0 down
                  route del $VIP
                  echo "ipvsamd stoped----------------------[ok]"
                   ;;
                  status)
                  if [ ! -e /var/lock/subsys/ipvsadm ];then
                  echo "ipvsadm stoped---------------"
                  exit 1
                                  else
                                  echo "ipvsamd Runing ---------[ok]"
                  fi
                  ;;
                  *)
                  echo "Usage: $0 {start|stop|status}"
                  exit 1
                  esac
                  exit 0
      
          # chmod +x dr.sh
          # service dr.sh start
    • keepalived部署
      # vim /etc/keepalived/keepalived.conf
          global_defs {
      ...
      smtp_server 127.0.0.1           #指向本地
      router_id LVS_01   #指定名称,备份服务器不同名称
      ...
      }
      vrrp_instance VI_1 {
      state MASTER             #备份服务器是BACKUP
      virtual_router_id 10     # 组号   备份服务器相同
      ...
      auth_pass abc123         #验证密码  备份服务器相同
      priority 100              #优先级  备份小于主
      ...
      virtual_ipaddress {
      192.168.200.100          //指定VIP地址
          }
      ...
      virtual_server 192.168.200.100 80 {
          lb_kind DR            //指定DR模式
      ...
      real_server 192.168.200.101 80 {        #web节点地址端口
      weight 1                         #节点的权重
      TCP_CHECK {               #健康检查方式
          connect_port 80         #添加端口
          connect_timeout 3    #连接超时
          nb_get_retry 3           #重试次数
          delay_before_retry 3   #重试间隔(秒)
      }
          }
          real_server 192.168.200.102 80 {
      weight 1
      TCP_CHECK {
          connect_port 80              #添加端口
          connect_timeout 3
          nb_get_retry 3
          delay_before_retry 3
      }
          }
      }
      # systemctl start keepalived
      # ip addr show dev ens33:0         #查看虚拟网卡
      # systemctl stop firewalld.service   #关防火墙
      # setenforce 0
    • 配置NFS共享服务器
      # systemctl stop firewalld.service   //关防火墙
      # setenforce 0
      # yum install nfs-utils rpcbind -y   //安装NFS服务
      # systemctl start rpcbind.service
      # systemctl start nfs.service
      # cd /opt | mkdir benet accp  //创建共享目录
      (在实际工作中 还是要共享挂载磁盘阵列raid的目录)
      # vi /etc/exports
          /usr/share *(ro,sync)
          /opt/benet 192.168.200.0/24(rw,sync)
          /opt/accp 192.168.200.0/24(rw,sync)
      # exportfs -rv    //发布共享
    • 节点服务器配置
    • 两个节点服务器配置基本相同(不同之处已经标注)
      # yum install nfs-utils rpcbind -y   //安装NFS服务
      # mount.nfs 192.168.200.105:/opt/benet /var/www/html  //挂载NFS
      # yum install -y httpd   #安装httpd服务
      # systemctl start httpd.service      #启动httpd服务
      # systemctl stop firewalld.service    #关防火墙
      # setenforce 0
    • 建立一个测试页面
    • 两个节点服务器测试页面要不同
      # echo "this is 7.1 web" > /var/www/html/index.html    #节点服务器1
      # echo "this is 7.2 web" > /var/www/html/index.html    #节点服务器2 (方便查看测试结果)
    • 配置虚拟VIP
    • 作用:仅发送web响应数据包的源地址
      # cd /etc/sysconfig/network-scripts
      # cp ifcfg-lo ifcfg-lo:0
      # vim ifcfg-lo:0
          DEVICE=lo:0
          IPADDR=192.168.200.100
          NETMASK=255.255.255.0
          ONBOOT=yes
    • 编写服务脚本方便管理
    • 添加VIP本地访问路由
    • 调整proc响应
          # cd /etc/init.d/
          # vim web.sh
                  #!/bin/bash
                  VIP=192.168.200.100
                  case "$1" in
                  start)
              ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
              /sbin/route add -host $VIP dev lo:0
              echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
              echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
              echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
              echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
              sysctl -p >/dev/null 2>&1
              echo "RealServer Start OK "
              ;;
                  stop)
              ifconfig lo:0 down
              route del $VIP /dev/null 2>&1
              echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
              echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
              echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
              echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
              echo "RealServer Stopd"
              ;;
                  *)
              echo "Usage: $0 {start|stop}"
              exit 1
                  esac
                  exit 0
      
          # chmod +x web.sh
          # service web.sh start
          # ifup lo:0        //启用虚拟VIP
          # firefox "http://127.0.0.1/" &     //火狐查看测试页
          # service web.sh stop
          # service web.sh start    //(建议重启服务)
    • 测试
      在windows7  浏览器输入 虚拟VIP 192.168.200.100
      (多刷新几次可以看到节点1和节点2的测试页面为成功)

    原文地址:http://blog.51cto.com/13630803/2131530

    时间: 2024-08-30 13:51:26

    部署LVS-DR + keepalived 高可用群集的相关文章

    虚拟机 搭建LVS + DR + keepalived 高可用负载均衡

    一:环境说明:   LVS-DR-Master:    10.3.0.82   LVS-DR-Backup:    10.3.0.70   VIP:                10.3.0.60   RealServer1:    10.3.0.69   RealServer1:    10.3.0.83   Centos:5.7    二:安装LVS和Keepalvied软件包   1. 下载相关软件包    mkdir /usr/local/src/lvs    cd /usr/loca

    LVS + Keepalived 高可用群集 【DR模式】

    简介 Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具,主要用来提供故障切换和健康检查( Health Checking )功能--判断 LVS 负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后就会重新加入群集中. Keepalived 采用 VRRP (虚拟路由冗余协议)热备份协议,和HSRP一样,只不过 HSRP 是思科私有的协议,VRRP 可以跑在很多设备上!VRRP 是以软件的方式实现 Linux 服务器的多机热备功能. VRRP 工作原

    搭建LVS(DR模式)+Keepalived高可用群集,可跟做!!!

    Keepalived的设计目标就是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器.管理服务器池,而不仅仅用作双机热备.使用Keepalived构建LVS群集更加简便易用,主要优势体现在,对LVS负载调度器实现热备切换.提高可用性,对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入. 在基于LVS(DR模式)+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,两台以上的节点服务器,本次实验以DR模式的LVS群集为基础,增加一台负载

    keepalived高可用群集与lvs群集结合搭建

     keepalived双机热备 1:keepalived双机热备,主要是用来提供故障切换,和对节点服务器的健康检查.当故障主机回复之后加入群集 2:keepalived是基于vrrp协议的方式进行热备方式,除了一个主服务器之外可以有多个从服务器,而且每一台从服务器的优先级等级各不相同. 3:工作的时候只有主服务器在工作其他服务器处于冗余状态,只要主服务器一旦发生宕机,从服务器,优先级最高的将接任主服务器的位置,以此类推.当主服务器故障排除之后,将重新夺得控制权                  

    高可用群集HA介绍与LVS+keepalived高可用群集

    一.Keepalived介绍 通常使用keepalived技术配合LVS对director和存储进行双机热备,防止单点故障,keepalived专为LVS和HA设计的一款健康检查工具,但演变为后来不仅仅为LVS提供方案,Keepaliced支持故障自动切换(Failover),支持节点健康状态检查(Health Checking),官方网站http://www.keepalived.org/ Keepalived采用VRRP的热备份协议实现Linux服务器的多机热备功能,VRRP,虚拟路由冗余协

    构建LVS+Keepalived高可用群集

    防伪码:不必向我诉说春天,我的心里并没有秋寒 第六章 构建LVS+Keepalived高可用群集 前言:keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换和健康检查,官方网站:http://www.keepalived.org.类似于我们以前学习过的HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务.我们今天学习的双机热备是就是利用了

    LVS+Keepalived高可用群集

    keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换,类似HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务. 双机热备是就是利用了VRRP虚拟路由冗余协议,和HRSP一样都拥有一个虚拟的ip地址对外提供服务,而不是真正的服务器ip地址,也拥有一台主服务器和多台备份服务器,优先级高的做主路由器,备份服务器处于冗余状态,当主服务器发生故障

    CentOS7.4—构建LVS+Keepalived高可用群集

    LVS+Keepalived高可用群集 目录第一部分 环境准备第二部分 使用Keepalived搭建双机热备第三部分 配置Web节点服务器第四部分 测试LVS+Keepalived高可用群集 第一部分 环境准备一:调度器两台(双机热备)系统:Linux-CentOS 7.4IP地址:192.168.80.10(主)IP地址:192.168.80.20(备)二:Web服务器两台系统:Linux-CentOS 7.4IP地址:192.168.80.30(SERVER AA)IP地址:192.168.

    LVS+keepalived 高可用群集

    LVS+keepalived 高可用群集 实验目的: 使用 keepalived 实现 LVS 双机热备. 实验环境: 主机 操作系统 IP地址 主要软件 LVS 负载调度器 CentOS 7.3 x86_64 192.168.217.128 keepalived LVS 负载调度器 CentOS 7.3 x86_64 192.168.217.129 keepalived web 服务器 1 CentOS 7.3 x86_64 192.168.217.130 http web 服务器 2 Cen

    构建LVS-DR+keepalived 高可用群集

    LVS-DR+keepalived高可用群集 所需环境:     192.168.10.5   主LVS 192.168.10.6   从LVS 192.168.10.7   web 1      虚拟IP:      192.168.10.100 192.168.10.8   web 2      虚拟IP:      192.168.10.100 192.168.10.9   xp客户机 配置要求:断开主LVS,查看客户机是否能ping通10.100 配置原理: 负载均衡的工作模式使用的是直