一、概述

1、lvs

LVS是Linux Virtual Server的缩写,是一种基于Linux内核的高性能、高可用性的

负载均衡软件。它可以将多台服务器组成一个虚拟的服务器集群,通过负载均衡算法将

客户端请求分发到不同的服务器上,从而提高系统的可用性和性能。LVS支持多种负载

均衡算法,包括轮询、加权轮询、最少连接数等,同时还支持会话保持和健康检查等功

能。LVS是开源软件,广泛应用于互联网、电子商务、游戏等领域。

2、keepalived

keepalived是一个开源的高可用性软件,它可以在多个服务器之间提供负载均衡

和故障转移。它可以监控服务器的状态,并在服务器出现故障时自动将流量转移到其他

可用的服务器上,以确保服务的连续性和可用性。keepalived支持多种负载均衡算法,

包括轮询、加权轮询、最小连接数等。它还支持多种协议,包括TCP、HTTP、SMTP

等。keepalived可以在Linux和Unix操作系统上运行,并且可以与其他软件集成,如

HAProxy、Nginx等。

二、工作原理

lvs

1. 客户端向LVS发送请求,请求被LVS接收。

2. LVS根据负载均衡算法(如轮询、加权轮询、源地址哈希等)选择一台真实服务器。

3. LVS将请求转发给选中的真实服务器。

4. 真实服务器处理请求并将响应返回给LVS。

5. LVS将响应返回给客户端。

keepalived

1. keepalived在每个节点上运行,每个节点都有一个虚拟IP地址和一个实际IP地址。

2. 当主节点出现故障时,备份节点会接管主节点的虚拟IP地址,从而保证服务的高可用性。

3. keepalived使用VRRP协议来实现节点之间的通信和状态同步。VRRP协议定义了一个虚拟路由器,由多个节点共同维护,其中一个节点为主节点,其他节点为备份节点。

4. 主节点会定期发送VRRP广告包,告知其他节点自己的状态和优先级。备份节点会监听这些广告包,如果主节点出现故障或者优先级比备份节点低,备份节点会接管虚拟IP地址。

5. keepalived还支持健康检查功能,可以定期检查服务的可用性,如果服务不可用,就会将节点的优先级降低,从而避免将故障节点作为主节点。

三、准备工作

1、五台服务器

2、关闭防火墙

3、lvs主从服务器安装keepalived   ipvsadm

4、web1  web2 服务器安装http

5、nfs文件共享服务器安装nfs

四、部署安装web服务(两台同时部署)

1、配置临时IP

cd /etc/sysconfig/network-scripts/     进入网卡配置文件夹cp ifcfg-lo ifcfg-lo:666               复制虚拟网卡配置文件vim ifcfg-lo:666                       配置虚拟网卡DEVICE=lo:666                          设备名称
IPADDR=192.168.1.234                  虚拟网卡IP
NETMASK=255.255.255.255                虚拟网卡子网掩码
ONBOOT=yes                             是否开机自启
NAME=loopback:666                      虚拟网卡名称systemctl restart network              重启网卡

route add -host 192.168.1.234/32 dev lo:666   添加本地回环

vim /etc/sysctl.conf     调整ARP参数net.ipv4.conf.all.arp_ignore=1     表示当接收到ARP请求时,忽略所有接口的IP地址与请求中的目标IP地址不匹配的情况。
net.ipv4.conf.all.arp_announce=2   表示当发送ARP请求时,使用接口的IP地址作为源IP地址,并将目标IP地址设置为请求中的目标IP地址。
net.ipv4.conf.default.arp_ignore=1 表示当接收到ARP请求时,忽略默认接口的IP地址与请求中的目标IP地址不匹配的情况。
net.ipv4.conf.default.arp_announce = 2 表示当发送ARP请求时,使用默认接口的IP地址作为源IP地址,并将目标IP地址设置为请求中的目标IP地址。
net.ipv4.conf.lo.arp_ignore = 1    表示当接收到ARP请求时,忽略回环接口的IP地址与请求中的目标IP地址不匹配的情况。
net.ipv4.conf.lo.arp_announce=2    表示当发送ARP请求时,使用回环接口的IP地址作为源IP地址,并将目标IP地址设置为请求中的目标IP地址。

2、安装http

yum -y install httpd       安装httpecho "syh1" >/var/www/html/index.html   在首页文件中写入内容 方便测试

五、部署LVS主服务器

vim /etc/sysctl.conf            调整ARP参数net.ipv4.conf.all.send_redirects = 0        禁止所有网络接口发送 ICMP 重定向报文
net.ipv4.conf.default.send_redirects=0      禁止默认网络接口发送 ICMP 重定向报文
net.ipv4.conf.ens33.send_redirects = 0      禁止名为 ens33 的网络接口发送 ICMP 重定向报文touch /etc/sysconfig/ipvsadm    创建lvs负载均衡配置文件

yum install -y keepalived ipvsadm      安装keepalived ipvsadmvim /etc/keepalived/keepalived.conf    进入keepalived配置文件global_defs {                       router_id LVS_DEVEL1                指定了LVS的路由器ID
}vrrp_instance master {                 定义了一个VRRP,用于实现高可用性state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {                指定了虚拟IP地址192.168.1.234}
}virtual_server 192.168.1.234 80 {      定义了一个虚拟服务器,用于实现负载均衡 delay_loop 6                       指定了LVS的延迟时间,lb_algo指定了负载均衡算法lb_algo rrlb_kind DR                         指定了负载均衡的方式,protocol指定了虚拟服务器使用的协议#persistence_timeout 50protocol TCPreal_server 192.168.1.211 80 {     定义了实际的服务器weight 1                       指定了服务器的权重HTTP_GET {                     指定了健康检查的方式url {                      url指定了健康检查的URL路径path /}connect_timeout 3          指定了连接超时时间nb_get_retry 3             指定了重试次数delay_before_retry 3       指定了重试前的延迟时间}}real_server 192.168.1.220 80 {weight 1HTTP_GET {url {path /}connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}

六、部署lvs备份服务器

vim /etc/sysctl.conf            调整ARP参数net.ipv4.conf.all.send_redirects = 0        禁止所有网络接口发送 ICMP 重定向报文
net.ipv4.conf.default.send_redirects=0      禁止默认网络接口发送 ICMP 重定向报文
net.ipv4.conf.ens33.send_redirects = 0      禁止名为 ens33 的网络接口发送 ICMP 重定向报文touch /etc/sysconfig/ipvsadm    创建lvs负载均衡配置文件

yum install -y keepalived ipvsadm      安装keepalived ipvsadmvim /etc/keepalived/keepalived.conf    进入keepalived配置文件global_defs {router_id LVS_DEVEL2                这个地方需要将ID修改为2
}vrrp_instance master {state backup                       将这里修改为备份服务器interface ens33virtual_router_id 51priority 99                        将这里修改为99advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.234        }
}virtual_server 192.168.1.234 80 {delay_loop 6lb_algo rrlb_kind DR#persistence_timeout 50protocol TCPreal_server 192.168.1.211 80 {weight 1HTTP_GET {url {path /}connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.1.220 80 {weight 1HTTP_GET {url {path /}connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}

七、测试

systemctl start keepalived                启动keepalivedsystemctl start ipvsadm                   启动ipvsadmmodprobe ip_vs                            加载ip_vs模块ipvsadm -ln                               查看lvs节点状态

停掉web1的服务

就可以看到web2的访问页面了

以上就是lvs架构的基本配置方法

如有错误欢迎各位大佬批评指正,我们共同进步

小白到运维工程师自学之路 第三十九集 (LVS架构)相关推荐

  1. Hadoop运维工程师专家之路--第二章Hadoop架构简介

    第二章Hadoop架构简介 本章包括 l  Hadoop架构 l  分布式集群 l  HDFS架构 l  YARN架构 本章介绍Hadoop架构.在你学习管理Hadoop集群之前,有必要先了解下Had ...

  2. 2021年,运维工程师笔试真题(三)(附带答案)

    1.下面关于计算机存储原理说法错误的是 ( )? A.存储器由大量可以存储二进制数据的存储单元组成 B.数据总线从存储器中获取数据的过程称为写操作 C.程序执行时,读取指令是指计算机自动从存储器中取出 ...

  3. Python之路(第三十九篇)管道、进程间数据共享Manager

    一.管道 概念 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信. 先画一幅图帮助大家理解下管道的基本原理 现有2个 ...

  4. 一文带你了解什么是云计算网络运维工程师,以及2023年的就业前景

    作者简介:一名在校云计算网络运维学生.每天分享网络运维的学习经验.和学习笔记.   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.云计算网络运维工程师是做什么的? 二 ...

  5. 月薪过万的运维工程师都要会干什么

    如果你想要进入运维领域这一行,首先你应该了解运维工程师是干什么的,除了对Linux下各种网络服务.应用系统.监控系统等进行自动化脚本开发的工作,并根据项目对系统进行性能优化,运维工程师还应该掌握哪些升 ...

  6. python运维工程师待遇_会Python的运维工程师能挣多少钱?

    或许你经常听说,一个高级运维必须会Python.一个不会Python的运维拿不了高薪.那么,Python和运维的关系是什么呢?为什么Python更适合做运维?今天达妹就来带你详细看一下. 工作一年以上 ...

  7. Kubernetes CKA认证运维工程师笔记-Kubernetes监控与日志

    Kubernetes CKA认证运维工程师笔记-Kubernetes监控与日志 1. 查看集群资源状况 2. 监控集群资源利用率 3. 管理K8s组件日志 4. 管理K8s应用日志 1. 查看集群资源 ...

  8. 5年运维经验分享:一个小白走向高级运维工程师之路

    我是Freeman,88年的,老家河南,来上海4年,O2O行业高级运维工程师,拥有5年运维经验. 我目前维护上千台服务器,熟悉大型网站架构,熟悉集群高可用,熟悉数据库.对大并发场景下的业务稳定性可用性 ...

  9. 不忘初心:从运维工程师到水果贩子的降级路

    原文地址:http://mee66.com/blog/?p=546 说明:原文貌似是个人站,打开速度较慢,原文有附图,但图片不显示,所以在转载的时候去掉了 前两天大家上都在转 @徐佳 的微博,是一位 ...

最新文章

  1. 安装oracle到create inventory时卡住了怎么办_「推荐」wacom数位板怎么用?教你如何正确的安装数位板驱动...
  2. 2017-6-3 jQuery 事件 DOM操作
  3. (原创)7-1 银行业务队列简单模拟 (30 分)
  4. android 状态栏 背景色_技术一面:说说Android动态换肤实现原理
  5. 07.十分钟学会tomcat数据源
  6. Java8 lambda支持
  7. SAP Spartacus 在 Github 托管虚拟机上执行的 pipeline 明细
  8. SAP Leonardo机器学习模型重新训练的日志
  9. springboot2 使用hikaridatasource 并测试_基于Spring Boot 2.x的后端管理网站脚手,源码免费分享...
  10. 正则表达式在iOS中的运用
  11. 设计秒杀系统架构,这4个关键点要注意
  12. 周五,放松心情,听我来分享问题背后的背后(一)
  13. 导入虚拟机vmware,此主机支持Intel VT-x,但Intel VT-x处于禁用状态和黑屏
  14. 安卓夜神模拟器设置代理
  15. Github系列教程一 ————开门
  16. 怀旧小虎队 谨防挂马网站和极虎病毒
  17. 批量自动下单(拼多多)
  18. iframe例子 (
  19. 重磅!谷歌开源TensorFlow 3D场景理解库
  20. 最受欢迎的五大bug管理平台

热门文章

  1. poj3077的想法
  2. Java菜鸟补给站---AJAX和JSON
  3. STM32 HAL库开发学习笔记: USART1串口通讯(中断方式) IDE-STM32CubeIDE
  4. 嗅探欺骗之Ettercap局域网攻击
  5. EasyGBS级联时设备invite超时,平台可向上级回复code=400消息
  6. 华硕无畏Pro14和 联想小新pro14参数对比 哪个好
  7. [crash分析][mips]一个openwrt的patch引发的血案
  8. codeforces 1250N wires(简单图论)
  9. ar9271无线网卡驱动 linux,虚拟机 ubuntu 安装 Mercury MW150U 无线网卡(AR9271芯片组)
  10. 如何三天从0搭建完整的Java项目?强烈推荐!