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

Linux云计算架构使用keepalived+LVS+DR部署高可用集群

文章目录Linux云计算架构-使用keepalivedLVSDR部署高可用集群1.keepalivedLVSDR架构图2.配置RS后端真实服务器3.keepalivedLVSDR负

文章目录

  • Linux云计算架构-使用keepalived+LVS+DR部署高可用集群
    • 1. keepalived+LVS+DR架构图
    • 2. 配置RS后端真实服务器
    • 3. keepalived+LVS+DR负载均衡高可用集群测试
      • 3.1 测试负载均衡
      • 3.2 测试高可用
      • 3.3 测试主LVS故障恢复


Linux云计算架构-使用keepalived+LVS+DR部署高可用集群

1. keepalived+LVS+DR架构图

在这里插入图片描述
在这里插入图片描述
在博主的其他博客有说到如何配置主备LVS,这里不多介绍。

2. 配置RS后端真实服务器

使用脚本配置rs1:

[root@rs1 ~]# vim /etc/init.d/lvsrsdr
#!/bin/bash
#description:start relserver
VIP=192.168.10.30
source /etc/init.d/functions #加载环境变量(可以加载所有的环境变量)
case $1 in
start)echo 'start LVS of Realserver DR'/sbin/ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 up/sbin/route add -host $VIP dev lo:1echo '1' > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho '2' > /proc/sys/net/ipv4/conf/lo/arp_announceecho '1' > /proc/sys/net/ipv4/conf/all/arp_ignoreecho '2' > /proc/sys/net/ipv4/conf/all/arp_announce;;
stop)/sbin/ifconfig lo:1 downecho 'Close LVS of Realserver DR'echo '0' > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho '0' > /proc/sys/net/ipv4/conf/lo/arp_announceecho '0' > /proc/sys/net/ipv4/conf/all/arp_ignoreecho '0' > /proc/sys/net/ipv4/conf/all/arp_announce;;
*)echo "Usage:$0 (start|stop)"
exit 1
esac

# 用脚本配置RS1
[root@rs1 ~]# chmod +x /etc/init.d/lvsrsdr
[root@rs1 ~]# /etc/init.d/lvsrsdr start
Reloading systemd: [ 确定 ]
Starting lvsrsdr (via systemctl): [ 确定 ]
[root@rs1 ~]# echo "/etc/init.d/lvsrsdr start" >> /etc/rc.local[root@rs1 ~]# ifconfig -a
lo:1: flags&#61;73<UP,LOOPBACK,RUNNING> mtu 65536inet 192.168.10.30 netmask 255.255.255.255loop txqueuelen 1000 (Local Loopback)# 在RS1上配置httpd服务&#xff0c;并开通防火墙的80端口号&#xff0c;httpd服务重启并添加到开机自启
[root&#64;rs1 ~]# yum install httpd -y
[root&#64;rs1 ~]# echo 192.168.10.40 > /var/www/html/index.html
[root&#64;rs1 ~]# firewall-cmd --permanent --zone&#61;public --add-port&#61;80/tcp
success
[root&#64;rs1 ~]# firewall-cmd --reload
success
[root&#64;rs1 ~]# systemctl restart httpd
[root&#64;rs1 ~]# systemctl enable httpd# 如果重启不来&#xff0c;一般是ServerName没有修改。
[root&#64;rs1 ~]# vim /etc/httpd/conf/httpd.conf 95 ServerName localhost:80# 用curl命令看下能否获取到网页&#xff0c;可以看到是没问题的。
[root&#64;rs1 ~]# curl 192.168.10.40
192.168.10.40# 用同样的方法配置RS2
为了看到负载均衡的效果&#xff0c;测试页的内容稍微调整下&#xff1a;
[root&#64;rs2 ~]# echo 192.168.10.50 > /var/www/html/index.html
[root&#64;rs2 ~]# curl 192.168.10.50
192.168.10.50

3. keepalived&#43;LVS&#43;DR负载均衡高可用集群测试

这里配置一台客户端&#xff0c;IP地址为192.168.10.60。能访问VIP的前提是能ping通。
在这里插入图片描述

3.1 测试负载均衡

# 安装检测工具
[root&#64;client ~]# yum install elinks -y# 如果在keepalived的配置文件中&#xff0c;设置了以下参数&#xff0c;可能会无法看到以下效果。
# 该参数的作用是同一IP访问VIP时&#xff0c;会保持长连接50s,即50s后才会切换。
# 要想立刻看到效果的&#xff0c;可以删除改行。
persistence_timeout 50

在这里插入图片描述
在这里插入图片描述

3.2 测试高可用

# 停止主LVS的keepalived服务模拟故障
[root&#64;mlvs1 ~]# systemctl stop keepalived.service# VIP已经进行漂移
[root&#64;mlvs2 ~]# ip a | grep ens32
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000inet 192.168.10.20/24 brd 192.168.10.255 scope global noprefixroute ens32inet 192.168.10.30/32 scope global ens32# 还是可以访问VIP
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40[root&#64;mlvs2 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size&#61;4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes-> RemoteAddress:Port
TCP 192.168.10.30:80 8 48 0 3736 0-> 192.168.10.40:80 4 24 0 1868 0-> 192.168.10.50:80 4 24 0 1868 0

3.3 测试主LVS故障恢复

# 重新启动主LVS上的keepalived服务
[root&#64;mlvs1 ~]# systemctl start keepalived.service# 可以看到VIP已经迁移回来了
[root&#64;mlvs1 ~]# ip a | grep ens32
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000inet 192.168.10.10/24 brd 192.168.10.255 scope global noprefixroute ens32inet 192.168.10.30/32 scope global ens32# VIP还是可以继续访问
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.50
[root&#64;client ~]# elinks 192.168.10.30 --dump192.168.10.40[root&#64;mlvs1 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size&#61;4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes-> RemoteAddress:Port
TCP 192.168.10.30:80 6 36 0 2802 0-> 192.168.10.40:80 3 18 0 1401 0-> 192.168.10.50:80 3 18 0 1401 0


推荐阅读
  • 基于SSL的mysql服务器的主从架构实现说明:本文选用172.16.22.1作为主服务器,172.16.22.3作为从服务器从服务器的mysql软件版 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • Nginxgaodaima.comnginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司 ... [详细]
  • ! Configuration File for keepalivedglobal_defs {   notification_email {     ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 在IDEA中运行CAS服务器的配置方法
    本文介绍了在IDEA中运行CAS服务器的配置方法,包括下载CAS模板Overlay Template、解压并添加项目、配置tomcat、运行CAS服务器等步骤。通过本文的指导,读者可以轻松在IDEA中进行CAS服务器的运行和配置。 ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • NetBPM的安装还是比较简单的,有比较详细的文档。1.当然是先下载运行程序了,netbpm-0.8.3.1.zip,官方网站ÿ ... [详细]
  • 一、生产服务器netstattcp连接状态 ... [详细]
  • 架构设计:负载均衡层设计方案之负载场景和解决方式篇
    来自:JAVA入门中https:blog.csdn.netyinwenjiearticledetails46605451在上一篇《标准Web系统的架构分层》文章中&# ... [详细]
author-avatar
nuabolalalala4_135
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有