keepalived高可用方案

keepalived概念

keepalived是一个开源的虚拟路由冗余协议(VRRP)实现,它能够提供高可用性(HA)的解决方案。VRRP是一种网络协议,用于在多个路由器之间分配路由任务,以保证网络的可靠性。在服务器高可用性环境中,keepalived常用于实现负载均衡和故障切换。

一 双机技术

指由两台服务器运行某种同样的应用,为用户提供服务,当某一台出现问题时,用户的请求将由另一台服务器继续提供,从而实现高可用性。双机技术又被称为双机热备或双机容错

二 HA 的容错过程

1.自动检测

2.自动切换

3.自动恢复

三 HA 的三种工作方式

1.主从模式

2.双机双工

3.集群模式

四 keepalived

1.keepalived 基于 vrrp 协议来实现的

注:vrrp 协议,可以实现服务的切换

2.keepalived 启动后会有三个进程:

父进程: 内存管理,子进程管理等等

子进程: VRRP 子进程

子进程: healthchecker 子进程

注:healthchecker 子进程负责检查各主机间的主机状态,当发现某台主机上的服务不可用时,将通知 vrrp 子进程,由 vrrp 子进程来完成服务的切换

五 实验步骤

1.准备实验环境:client(192.168.1.3)与两台 apache 服务器处于同一网络段,两台 web服务器的 IP 地址为 192.168.1.1 和 192.168.1.2。在两台 web 服务器上创建好主页文件,配置httpd,使客户端能够访问。

2.在 server1 和 server2 上配置好/etc/hosts 文件,并安装 keepalived

 #yum install keepalived -y

3.在 server1 上配置

 编辑配置文件:vim /etc/keepalived/keepalived.conf

 内容如下:

global_defs {

 notification_email {

 root@localhost

 }

 notification_email_from root@localhost

 smtp_server 127.0.0.1

 smtp_connect_timeout 30

 router_id host-4

}

vrrp_instance VI_1 {

 state MASTER(设备状态)

 interface eno16777736(链接备服务器的网卡)

 virtual_router_id 51

 priority 100

 advert_int 1

 authentication {

 auth_type PASS

 auth_pass 1111

 }

 virtual_ipaddress {

 192.168.1.18(同一网段任意设置,此为VIP的IP)

 }

}

 在 server2 上配置

 scp root@server1:/etc/keepalived/keepalived.conf

 更改设备 ID:host-5

 更改设备状态:BACKUP

 更改优先级:低于 MASTER 的优先级

4.在两台 keepalved/web 服务器上启动服务

 systemctl restart keepalived

5.在客户端测试

 elinks http://VIP(此为之前配置文件中设置的VIP的IP)

    显示的 server1 上的 test1 page。使 server1 宕机,再次访问 VIP,显示的是 server2 上的 test2 page。或者在 server1 上 systemctl stop keepalived,访问 VIP,显示的是 server2 上的 test page

注:如果是停掉 keepalived 服务,再次启动时,注意 IP 的子网掩码(可以通过 nmtui 中重新激活网卡解决)VIP 可以是一个不存在 IP 地址,但是该 IP 地址必须客户端可以访问

六 keepalived+lvs

1.网络拓扑

 五台虚拟机在同一网络段

               --->lvs1(192.168.0.1)-->web1(192.168.0.2)

 client(192.168.0.5)

               --->lvs2(192.168.0.3)-->web2(192.168.0.4)

2.安装软件

 client:yum install elinks -y

 lk1、lk2:yum install keepalived ipvsadm -y

 web1、web2:yum install httpd -y

3.在 lvs1、lvs2 上

 编辑 keepalived 配置文件:

#vim /etc/keepalived/keepalived.conf

Lvs1

Lvs2

 编辑 lvs-dr.sh 脚本:

#!/bin/bash

  ipvsadm -C

  ipvsadm -A -t 192.168.0.88:80 -s rr

  ipvsadm -a -t 192.168.0.88:80 -r 192.168.0.2:80 -g

  ipvsadm -a -t 192.168.0.88:80 -r 192.168.0.4:80 -g

注:两种配置文件都可以。

4.在 web1、web2 上

 配置 httpd

 编辑 web.sh 脚本:

#!/bin/bash

ifconfig lo:0 192.168.0.88 netmask 255.255.255.255 up

route add -host 192.168.0.88 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

5.在 lk1、lk2 上:systemctl restart keepalived

 bash lvs-dr.sh

 在 web1、web2 上:systemctl restart httpd

 bash web.sh

6.客户端测试:elinks http://192.168.0.254 可以看到 web1 和 web2 上的网页交替出现

将其中一台lvs关机。再用客户端测试还是可以看到web1和web2上的网页交替出现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/564169.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware Workstation Pro 17虚拟机超级详细搭建(含redis,nacos,docker, rabbitmq,sentinel,elasticsearch....)(一)

今天从零搭建一下虚拟机的环境,把nacos,redis等微服务组件还有数据库搭建到里面,首先看到的是我们最开始下载VMware Workstation Pro 17 之后的样子,总共一起应该有三部分因为篇幅太长了 下载地址 : VMware - Delivering a Digit…

【VALL-E-01】环境搭建

本系列文章系本人知乎账号迁移 本文系个人知乎专栏文章迁移 VALL-E 网络是GPT-SOVITS很重要的参考 知乎专栏地址: 语音生成专栏 相关文章链接: 【VALL-E-01】环境搭建 【VALL-E-02】核心原理 1、环境包使用 从效果看没有GPT-SOVITS 来的好 环境安装…

C#学习笔记1:C#基本文件结构与语法

现在开始我的C#学习之路吧,这也许不适合0编程基础的人看,因为我会C语言了,笔记做的可能有思维上的跳跃,如果0基础可能会觉得有些地方转折得莫名奇妙,但我的学习笔记实操还是比较多的,基本都是真实运行程序结…

docker desktop 登录不上账号

配置走代理(系统全局)也没用 解决方法 参考博文: https://blog.csdn.net/weixin_37477009/article/details/135797296 https://adoyle.me/Today-I-Learned/docker/docker-desktop.html 下载 Proxifiler 配置 Proxifiler

蓝桥杯真题:幸运数字

这道题可以用 integer.string()求每个进制的数,但这里要每一位数相加,所以用这个方法会比较麻烦,如下 import java.util.Scanner; public class Main {public static void main(String[] args) {Scanner scan new Sc…

关系型数据库mysql(4)事务

目录 一.事务的概念 1.事务的定义 2.事务的特点 2.1原子性 2.2一致性 2.4持久性 3.事务之间的相互影响 3.1脏读 3.2不可重复读 3.3幻读 3.4丢失更新 4. 事务的隔离级别(如何解决事务的干扰) 4.1查询全局事务隔离级别 4.2查询全局事务 …

浩哥带你做项目,纯免费教学

浩哥带你做项目 一、YiYi-Web项目开发1. 简介2. 技术栈2.1 后端开发环境2.2 前端开发环境 3.项目截图 二、计算机游戏程序设计(基础篇)三、RuoYi-Cloud项目学习1.功能介绍2.项目截图 四、鸿蒙应用开发五、软考六、Linux基础知识学习 最近浩哥社区群涌进大…

Qt 写一个邮件发送程序

最近在完成一个邮箱代替的告警功能&#xff0c;写了一个邮件发送的demo 以下为代码&#xff1a; #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include<QTcpSocket> namespace Ui { class MainWindow; }class MainWindow : public QMainWin…

证明:指数函数和阶乘谁增长的更快?

先说结论&#xff0c;阶乘增长速度比指数函数快&#xff0c;也就是说&#xff1a; 可以用简单的指数函数y4^x的图形和阶乘函数图形做一个对比&#xff0c;可以发现&#xff0c;在自变量取值比较小的时候&#xff0c;指数函数&#xff08;红色&#xff09;是大于阶乘的&#xff…

华为云优惠券在哪里领取?

华为云作为华为旗下的云服务品牌&#xff0c;一直致力于为广大用户提供稳定、高效的云服务体验。为了吸引用户上云&#xff0c;华为云经常推出各种优惠活动&#xff0c;其中最常见的就是发放优惠券。那么&#xff0c;华为云优惠券在哪里领取呢&#xff1f;本文将为大家详细解答…

基于java+springboot+vue实现的宿舍管理系统(文末源码+Lw+ppt)23-597

摘 要 随着信息时代的来临&#xff0c;过去的传统管理方式缺点逐渐暴露&#xff0c;对过去的传统管理方式的缺点进行分析&#xff0c;采取计算机方式构建宿舍管理系统。本文通过课题背景、课题目的及意义相关技术&#xff0c;提出了一种楼宇信息、宿舍信息、宿舍安排、缺勤信…

二维码门楼牌管理应用平台建设:核采任务数据生产的新模式

文章目录 前言一、任务包下发与领取&#xff1a;确保外业数据核采的准确性二、基于小区面、建筑物面数据的标准化任务生成三、外业队伍联动开展核采工作四、二维码门楼牌管理应用平台的优化与发展 前言 随着城市管理的数字化进程加速&#xff0c;二维码门楼牌管理应用平台的建…