简单认识LVS-DR负载群集和部署实例

news2024/11/24 17:06:10

文章目录

  • 一、LVS-DR负载群集简介
    • 1、DR模式数据包流向分析
    • 2、DR 模式的特点
  • 二、DR模式 LVS负载均衡群集部署


一、LVS-DR负载群集简介

1、DR模式数据包流向分析

1、客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。
2、Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。
3、内核空间判断数据包的目标IP是本机VIP,此时IPVS(IP虚拟服务器)比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源 MAC 地址为 Director Server 的 MAC地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。
4、到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数据包重新封装报文(源 IP 地址为 VIP,目标 IP 为 CIP),将响应报文通过 lo 接口传送给物理网卡然后向外发出。
5、Real Server 直接将响应报文传送到客户端。

2、DR 模式的特点

1、Director Server 和 Real Server 必须在同一个物理网络中。
2、Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对 RIP 进行直接访问。
3、Director Server作为群集的访问入口,但不作为网关使用。
4、所有的请求报文经由 Director Server,但回复响应报文不能经过 Director Server。
5、Real Server 的网关不允许指向 Director Server IP,即Real Server发送的数据包不允许经过 Director Server。
6、Real Server 上的 lo 接口配置 VIP 的 IP 地址。
在这里插入图片描述

二、DR模式 LVS负载均衡群集部署

实验准备
Web 服务器1:192.168.206.7(VIP 192.168.206.180)
Web 服务器2:192.168.206.8(VIP 192.168.206.180)
NFS 共享存储器:192.168.206.5
LVS 负载调度器:192.168.206.10
网关/路由器:192.168.206.2
客户端:192.168.206.9

1.配置负载调度器(192.168.206.10)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm

(1)配置虚拟 IP 地址(VIP:192.168.206.180)

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0				#若隧道模式,复制为ifcfg-tunl0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.206.180
NETMASK=255.255.255.255

ifup ens33:0
ifconfig ens33:0

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

(2)调整 proc 响应参数

#由于 LVS 负载调度器和各节点需要共用 VIP 地址,需要关闭 icmp 的重定向,不充当路由器。
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

在这里插入图片描述

(3)配置负载分配策略

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

ipvsadm -C
ipvsadm -A -t 192.168.206.180:80 -s rr
ipvsadm -a -t 192.168.206.180:80 -r 192.168.206.7:80 -g			#若隧道模式,-g替换为-i
ipvsadm -a -t 192.168.206.180:80 -r 192.168.206.8:80 -g
ipvsadm

ipvsadm -ln					#查看节点状态,Route代表 DR模式

在这里插入图片描述

2.部署共享存储(NFS服务器:192.168.206.5)

#关闭防火墙和selinux
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
 
#下载nfs服务
yum install nfs-utils rpcbind -y
systemctl start rpcbind.service
systemctl start nfs.service
systemctl enable nfs.service
systemctl enable rpcbind.service
 
#创建两个共享目录
cd /opt/
mkdir ikun heizi
chmod 777 ikun/ heizi/
echo 'welcome to ikun.com!' > ikun/index.html
echo 'welcome to heizi.com!' > heizi/index.html
 
#修改nfs发布策略
vim /etc/exports
/usr/share *(ro,sync)
/opt/ikun 192.168.206.0/24(rw,sync)
/opt/heizi 192.168.206.0/24(rw,sync)
 
#在线发布
exportfs -rv
#查看共享
showmount -e

在这里插入图片描述

3.配置节点服务器(192.168.206.7、192.168.206.8)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

(1)配置虚拟 IP 地址(VIP:192.168.206.180)
#此地址仅用作发送 Web响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚接口 lo∶0 来承载 VIP 地址,并为本机添加一条路由记录,将访问 VIP 的数据限制在本地,以避免通信紊乱。

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0		
vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.206.180
NETMASK=255.255.255.255						#注意:子网掩码必须全为 1

ifup lo:0
ifconfig lo:0
route add -host 192.168.206.180 dev lo:0

vim /etc/rc.local
/sbin/route add -host 192.168.206.180 dev lo:0

chmod +x /etc/rc.d/rc.local

在这里插入图片描述

(2)调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突

vim /etc/sysctl.conf
......
net.ipv4.conf.lo.arp_ignore = 1			#系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2		#系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p

在这里插入图片描述

yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start httpd

在这里插入图片描述

–192.168.206.7—

#挂载
mount.nfs 192.168.206.5:/opt/ikun /var/www/html/
#查看挂载
df -h
#永久挂载
vim /etc/fstab
192.168.206.5:/opt/ikun /var/www/html nfs defaults,_netdev 0 0
#刷新
mount -a
#重启网卡
systemctl restart network

在这里插入图片描述

–192.168.10.17—

#挂载
mount.nfs 192.168.206.5:/opt/heizi /var/www/html/
#查看挂载
df -h
#永久挂载
vim /etc/fstab
192.168.206.5:/opt/heiz /var/www/html nfs defaults,_netdev 0 0
#刷新
mount -a
#重启网卡
systemctl restart network

在这里插入图片描述

4.测试 LVS 群集
在客户端使用浏览器访问 http://192.168.206.180/

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

放大器的基本知识

文章目录 1.反向输入(引出:反向器)1.反向输入例子 2.同向输入(引出:电压跟随器)2.同向输入例子 3.加法运算 1.反向输入(引出:反向器) 1.反向输入例子 —————————…

基于Java网上药品售卖系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

【MYSQL基础】基础命令介绍

基础命令 MYSQL注释方式 -- 单行注释/* 多行注释 哈哈哈哈哈 哈哈哈哈 */连接数据库 mysql -u root -p12345678退出数据库连接 使用exit;命令可以退出连接 查询MYSQL版本 mysql> select version(); ----------- | version() | ----------- | 8.0.27 | ----------- 1…

HA使用Node-RED推送消息到手机

目录 1.一个简单示例(1).注入使用个inject节点,用来触发(2).手机通知是call service节点(3).保存-部署,看效果 2.消息-添加变量 1.一个简单示例 (1).注入使用个inject节点,用来触发 (2).手机通知是call service节点 Node-RED需要提前和Home A…

spring boot + Apache tika 实现文档内容解析

Apache tika是Apache开源的一个文档解析工具。Apache Tika可以解析和提取一千多种不同的文件类型(如PPT、XLS和PDF)的内容和格式,并且Apache Tika提供了多种使用方式,既可以使用图形化操作页面(tika-app),又可以独立部…

Dockerfile 基本命令

本文目录 1. 什么是 Dockerfile2. Dockerfile 基本命令2.1 FROM 指定基础镜像2.2 RUN 执行命令2.3 COPY 复制文件2.4 ADD 更高级的复制文件2.5 CMD2.6 ENTRYPOINT2.7 ENV 设置环境变量2.8 ARG2.9 VOLUME 定义匿名卷2.10 EXPOSE2.11 WORKDIR 指定工作目录2.12 USER 指定当前用户…

【洛谷】P1073 [NOIP2009 提高组] 最优贸易(dp+搜索)

接下来讲具体解法。第一、输入。存邻接表第二、我们需要做深搜。可以用递归来做,同时做动规:函数如下(贴了注释).void dfs(int x,int minx,int pre) { //x表示当前访问的节点编号,minx表示目…

添加白名单 gcc/g++【Linux系统编程】

目录 一、添加白名单 二、gcc和g的使用 1、背景知识 一、添加白名单 如何让普通用户可以执行sudo(以root的身份)指令? 添加白名单 用root身份在/etc/sudoers目录添加 vim /etc/sudoers二、gcc和g的使用 1、背景知识 (1&#…

【FFmpeg实战】ffplay整体框架

原文地址:https://segmentfault.com/a/1190000042611796 本文使用的ffplay.c的版本是搭配ffmpeg5.0的版本。 ffplay代码大致架构 关于fplay的架构很难三言两语说得清楚,而且本人对它的理解也不是很深,加上行笔比较啰嗦,可能就更…

springboot配置多个mongo数据源

yaml配置文件: spring:data:mongodb:uri: mongodb://admin:密码ip:27017/paasoo?authSourceadminother:uri: mongodb://admin:密码ip:27017/conversation?authSourceadmin java config文件: package com.paasoo.quartz.config.mongo;import org.spr…

VR数字乡村激活乡土文化生命力,助力乡村振兴

民俗节庆、传统技艺等蕴含着中华五千年以来的传统文化,乡村文化建设在为文化留住血脉的同时,也为高质量发展创造更多可能。找准乡村文化与产业的结合点,有利于激发产业发展的潜力,激活乡土文化的生命力,为乡村振兴注入…

baichuan-7B模型

文章目录 baichuan-7B介绍baichuan-7B 推理baichuan-7B 微调 baichuan-7B介绍 2023年6月15日,搜狗创始人王小川创立的百川智能公司,发布了70 亿参数量的中英文预训练大模型——baichuan-7B。 baichuan-7B 基于 Transformer 结构,在大约 1.2…

【Ubuntu学习MySQL——安装MySQL】

首先得su,然后输入密码,进入到root模式下,以下命令均在root用户模式下进行 1.在这里我们使用RPM包来安装Mysql,所以首先安装RPM包 apt install rpm2.安装完RPM包之后,检测系统是否自带安装MySQL,如果没有…

最小年龄仅5岁!盘点全球最“天才”少年黑客 TOP 10

你还能想起自己8岁的时候,每天都在玩什么吗?可能是在楼下和小朋友一起捉迷藏?在家追一本连载的漫画书?又或者在电脑上玩种菜偷菜的小游戏? 当同龄人还在沉迷于这些比较“基础”的小游戏时,有这样一批和互联…

ARM_uart_发送接收字符 and 发送接收字符串

include/uart4.h #ifndef __UART4_H__ #define __UART4_H__#include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_uart.h"//初始化相关操作 void hal_uart4_init();//发送一个字符 void hal_put_char(const char st…

逆波兰表达式

思路 变量 String[] arr Stack 代码 public class Test1 {public static void main(String[] args) {String s "3 40 5 * 6 -";Stack numArr new Stack(10);int num1 0;int num2 0;int res 0;int index 0;String[] arr s.split(" ");for(String…

Flink 读写Kafka总结

前言 总结Flink读写Kafka Flink 版本 1.15.4 Table API 本文主要总结Table API的使用(SQL),官方文档:https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/connectors/table/kafka/ kerberos认证相关配置 …

spring生命周期配置

初始化方法,可读化方法: 初始化方法定义在java接口文件: init-method:指定类中的初始化方法名称 destroy-method :指定类中销毁方法名称 这里要在配置文件中配置一份: 如果想要destroy文件关闭后还能运行&…

Spring源码整体脉络介绍及源码编译

需完成的任务 类------------------------------------------BeanFactory----------------------------------------->Bean【BeanFactory调用getBean()生产出来的】 BeanFactory Spring顶层核心接口,使用了简单工厂模式【根据名字,生产出不同的Bean…

【MR】搭建 Vision Pro App 开发环境

2023 年 6 月 21 日,Apple 发布 Xcode 15 Beta 2,包含了初代版本的 visionOS 1 beta,标志着苹果正式发布 Vsion Pro 的 SDK。 一、安装 Xcode 15 Beta 2 官网下载,需要 MacOS > 13.4 可以不选 visionOS 1 beta,直接…