热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

群集负载均衡LVSDR+keepalived部署实战

文章目录前言一:keepalived实现原理1.1:keepalived工具概述1.2:原理解析二:如何部署Keepalie

文章目录

  • 前言
  • 一:keepalived实现原理
      • 1.1:keepalived工具概述
      • 1.2:原理解析
  • 二:如何部署Keepalievd
      • 2.1:Keepalievd部署概述
      • 2.2:Keepalievd安装与启动
      • 2.3:配置Keepalievd master服务器
      • 2.4:配置Keepalived slave服务器
      • 2.5:Keepalived双机热备效果测试
  • 三:双机热备keepalived配置
      • 3.1:实验验证


前言
  • keepalived部署前提:先将DR部署完成,可查看我之前博客
  • https://blog.csdn.net/CN_TangZheng/article/details/104001381

一:keepalived实现原理

1.1:keepalived工具概述


  • 专为LVS和HA设计的一款健康检查工具
    • 支持故障自动切换( Failover)
    • 支持节点健康状态检查( Health Checking)
    • 官方网站http://www.keepalived.org
    • mark

1.2:原理解析


  • Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能

  • VRRP,虚拟路由冗余协议,是针对路由器的一种备份解决方案

    mark

    • 由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务
    • 每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态
    • 若当前在线的路由器失效,则其他路由器会根据设置的优先级自动接替虚拟IP地址,继续提供服务

二:如何部署Keepalievd

2.1:Keepalievd部署概述


  • Keepalived可实现多机热备,每个热备组可有多台服务器,最常用的就是双机热备

  • 双机热备的故障切换是由虚拟IP地址的漂移来实现,适用于各种应用服务器

  • 本次部署将实现基于web服务的双机热备

    mark


2.2:Keepalievd安装与启动


  • 在LVS群集环境中应用时,也需用到 lipvsadm管理工具
  • YUM安装 Keepalived
  • 启用 Keepalived服务

2.3:配置Keepalievd master服务器


  • Keepalievd配置目录位于/etc/keepalievd/
  • keepalievd.conf是主配置文件
    • global_defs{…}区段指定全局参数
    • vrrp_instance实例名称{…}区段指定VRRP热备参数
    • 注释文字以“!”符号开头
    • 目录samples/,提供了许多配置样例作为参考
  • 常用配置选项
    • router_id HA_TEST_R1: 本路由器(服务器)的名称
    • vrrp_instance VI_1:定义VRRP热备实例
    • state MASTER:热备状态,MASTER表示主服务器
    • interface ens33:承载VIP地址的物理接口
    • virtual_router_id 1:虚拟路由器的ID号,每个热备组保持一致
    • priority 100:优先级,数值越大优先级越高
    • advert_int 1:通告间隔秒数(心跳频率)
    • auth_type PASS:认证类型
    • auth_pass 123456:密码字串
    • virtual_ipaddress{vip}:指定漂移地址(VIP),可以有多个,多个漂移地址以逗号分隔

2.4:配置Keepalived slave服务器


  • Keepalived备份服务器的配置与master的配置有三个选项不同
    • router_id:设为自由名称
    • state:设为BACKUP
    • priority:值低于主服务器
  • 其他选项与master相同

2.5:Keepalived双机热备效果测试


  • 测试双机热备的效果
    • 主、备机均启用Web服务,内容相同
    • 先后禁用、启用主服务器的网卡,执行以下测试
  • 测试1:使用ping检测19216810.72的连通性
  • 测试2:访问htt:/192168.10.72,确认可用性及内容变化
  • 测试3:查看日志文件/var/log/messages中的变化

三:双机热备keepalived配置
  • 两台lvs调度器配置

    [root@lvs1 ~]# vim /etc/keepalived/keepalived.conf
    ! Configuration File for keepalivedglobal_defs
    {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1 '//邮件协议指向自己'smtp_connect_timeout 30router_id LVS_01 '//router_id不能相同'vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
    }vrrp_instance VI_1 {state MASTER '//主服务器为MASTER,备服务器为BACKUP'interface eth0virtual_router_id 10 '//主备组号要相同'priority 100 '//优先级,备服务器的优先级要小于主'advert_int 1authentication {auth_type PASSauth_pass 1111 '//主备密码要相同'}virtual_ipaddress {192.168.100.10}
    }
    virtual_server 192.168.100.10 80 {delay_loop 6lb_algo rr '//轮询算法'lb_kind DR '//修改为DR模式'persistence_timeout 50protocol TCPreal_server 192.168.100.200 80 { '//节点1配置'weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.100.222 80 { '//节点2配置'weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
    }

  • 第二台lvs调度器与第一台调度器不同的地方

    [root@lvs1 ~]# vim /etc/keepalived/keepalived.conf
    ...省略内容
    router_id LVS_02 '//router_id不能相同'
    ...省略内容
    vrrp_instance VI_1
    {state BACKUP '//此处选择为BACKUP备服务器'interface eth0virtual_router_id 10priority 90 '//优先级需要低于主服务器'
    ...省略内容
    '//其他配置都相同'

  • 开启keepalived服务

    [root@lvs1 ~]# systemctl start keepalived
    [root@lvs2 ~]# systemctl start keepalived


3.1:实验验证


  • 修改win10主机IP地址

    mark

  • 使用win10访问192.168.100.10验证

    mark

    mark

  • 此时可以关闭主服务器的漂移地址 ifdown ens33:0,再次访问页面,发现依然可以访问,双机热备成功

  • 两台服务器多刷新几次会显示另一台web首页

  • 若无法显示网页,尝试重启两台lvs服务器的dr.sh脚本或其他服务


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • IP经常分为内网和外网的,内网IP一般是有路由器分配的,尤其是想公司可能都有各自的内网IP,公用的公网IP。查询内网IP的通用方法是通过doc指令来查询,如ipconfig或者ipconfigall ... [详细]
  • Linux系统高级网络配置:链路聚合
    链路聚合网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同 ... [详细]
author-avatar
腾云溪牛_556
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有