lvs集群与nat模式

一,什么是集群:

        集群,群集,Cluster,由多台主机构成,但是对外只表现为一个整体,只提供一个访问入口(域名与ip地址),相当于一台大型计算机。

二,集群适用场景:高并发

三,集群的分类:

        1,负载均衡集群

                减少响应延迟,提高并发处理能力

        2,高可用集群(HA)

                提高系统的稳定性,减少服务器中断的时间,减少损失

        3,高性能运算集群

                分布式计算

四,负载均衡的集群架构

        数据流向:用户----vip---访问

        第一层:负载调度器通过调度算法,以及rip的发送

        第二层:服务器池所有服务器用的资源通过

        第三层:共享存储提供网站,存储资源

五,负载均衡器的工作模式:

        1,地址转换(NAT模式)

                调度器做网关的同时还承担请求入口与访问出口,在高并发场景下负载压力很高,但是安全性很高。缺点:一台设备承担入口,出口,负载调度,高并发模型可能性能不足。

        2,ip隧道(TUN模式)

                仅作为访问的入口,响应不经过调度器,但是需要大量的公网ip,还需要专用的ip隧道(成本太高)数据转发受ip隧道的额外的影响。缺点:对公网ip数量要求比较高,对ip隧道数量有要求。

        3,直接路由(DR模式)

                仅作为请求的入口,响应数据不经过调度器,节点服务器和调度器在一个物理网络中,转发数据不受额外影响。

六,lvs的负载均衡算法

        1,轮询

        2,加权轮询

        3,最少链接数

        4,加权最少链接数

七,lvs组成

  1. 基于内核态的netfilter框架来实现的ipvs功能,工作在内核态。用户配置vip等相关信息并且传递到ipvs就需要用到ipvs当中的adm工具。
  2. Ipvs adm是lvs用户态的一个配套工具,可以实现vip和rs增删改查。Ipvsadm就是类似于iptables工具的地位。

八,lvs的作用:

  1. 主要用于多服务器的负载均衡
  2. 工作在网络层,可实现高性能,高可用的服务集群技术
  3. 廉价,可把我们的许多低性能的服务器组合在一起形成一个超级设备
  4. 易用,配置简单,有多重负载均衡的方式
  5. 稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不会影响整体效果
  6. 可扩展性好

九,lvs支持与工具

        1,查看系统是否支持lvs:

                modprobe ip_vs

        2,lvs管理工具:ipvsadm

                -A    添加虚拟服务器
                -D    删除整个虚拟服务器
                -s    指定负载调度算法 (轮询:rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc )
                -a    表示添加真实服务器 (节点服务器)
                -d    删除某一个节点
                -t    指定 VIP地址及 TCP端口
                -r    指定 RIP地址及 TCP端口
                -m    表示使用 NAT群集模式.
                -g    表示使用 DR模式
                -i    表示使用 TUN模式
                -w    设置权重 (权重为 0 时表示暂停节点)
                -p 60    表示保持长连接60秒
                -l    列表查看 LVS 虚拟服务器 (默认为查看所有)
                -n    以数字形式显示地址、端口等信息,常与 “-l” 选项组合使用。ipvsadm -ln

十,具体配置:

本次实验需要在vmware中添加一块新网卡,并且给负载均衡器设置新的网卡。

NFS服务器:

安装nfs及其相关程序
yum install -y nfs-utils rpcbind开启并设置自启动
systemctl start nfs.service 
systemctl start rpcbind.service
systemctl enable nfs.service 
systemctl enable rpcbind.service创建共享目录两个,对应两个web服务器,然后更改权限
mkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benet进项共享目录的设置
/usr/share *(ro,sync)
/opt/kgc 192.168.10.0/24(rw,sync)
/opt/benet 192.168.10.0/24(rw,sync)发布共享
exportfs -rv
showmount -e

web服务器1(192.168.10.16)

安装httpd,开启并设置自启动
yum install -y httpd
systemctl start httpd.service 
systemctl enable httpd.service安装nfs以及相关组件,开启并设置自启动
yum install -y nfs-utils rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.service检测来自192.168.10.18的挂载目录
showmount -e 192.168.10.18挂载目录后写入网页内容
mount.nfs 192.168.10.18:/opt/kgc /var/www/html/
echo 'this is kgc' > /var/www/html/index.html设置永久挂载
vim /etc/fstab 
192.168.10.18:/opt/kgc /var/www/html nfs defaults,_netdev 0 0
mount -a修改网卡网关为lvs服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.10.19

web服务器2(192.168.10.17)

安装httpd,开启并设置自启动
yum install -y httpd
systemctl start httpd.service 
systemctl enable httpd.service安装nfs以及相关组件,开启并设置自启动
yum install -y nfs-utils rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.service检测来自192.168.10.18的挂载目录
showmount -e 192.168.10.18挂载目录后写入网页内容
mount.nfs 192.168.10.18:/opt/benet /var/www/html/
echo 'this is benet' > /var/www/html/index.html设置永久挂载
vim /etc/fstab 
192.168.10.18:/opt/benet /var/www/html nfs defaults,_netdev 0 0
mount -a修改网卡网关为lvs服务器
vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.10.19

负载调度器

添加网卡后,使用ifconfig扫描新加入的网卡,然后复制原有的网卡信息到新的网卡文件中,不使用DNS与网关,ip地址用新加入的vmnet3,vmnet3在本次实验中用的网段为10.0.0.0配置snat转发规则
vim /etc/sysctl.conf
net.ipv4.ip_forward=1查看配置是否生效
sysctl -p清空iptables策略并且写入新的策略
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens37 -j SNAT --to-source 10.0.0.1加载lvs内核模块并查看版本
modprobe ip_vs
cat /proc/net/ip_vs安装管理工具
yum install -y ipvsadm启动服务(启动之前需要先保存策略)
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service配置负载均衡策略
ipvsadm -C
ipvsadm -A -t 10.0.0.1:80 -s rr
ipvsadm -a -t 10.0.0.1:80 -r 192.168.10.16:80 -m -w 1
ipvsadm -a -t 10.0.0.1:80 -r 192.168.10.17:80 -m -w 1启动策略并查看节点状态,查看后保存
ipvsadm
ipvsadm -ln
ipvsadm-save > /etc/sysconfig/ipvsadm

配置结束后使用win10访问负载均衡服务器即可。

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

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

相关文章

算法通关村第4关【白银】| 栈的经典算法问题

1.括号匹配问题 思路:将左括号压入栈中,遍历字符串,当遇到右括号就出栈,判断是否是匹配的一对,不是就返回false(因为按照顺序所以当遇到右括号出栈一定要是匹配的)。使用Map来简化ifelse clas…

Compose - 修饰符 Modifier

一、概念 四大使用场景: 修改外观(尺寸、样式、布局、行为)。添加额外信息(如无障碍标签)。添加交互功能(点击、滚动、拖拽、缩放)。处理用户输入。 1.1 为组合函数添加 Modifier 参数 任何一…

kafka的位移

文章目录 概要消费位移__consumer_offsets主题位移提交 概要 本文主要总结kafka的位移是如何管理的,在broker端如何通过命令行查看到位移信息,并从代码层面总结了位移的提交方式。 消费位移 对于 Kafka 中的分区而言,它的每条消息都有唯一…

LVS-DR的RS进行ARP抑制的原因和LVS持久连接配置

一.RS的ARP抑制 1.为什么要抑制 2.如何抑制 (1)修改/etc/sysctl.conf文件,增加以下内容 (2)命令行临时设置 二.LVS持久连接 1.客户端持久连接 2.端口持久连接 3.防火墙标记持久连接 一.RS的ARP抑制 1.为什么要…

C++--红黑树

1.什么是红黑树 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因…

解决c/c++ Error: redefinition of ‘xxx’ 的问题

错误信息 两个类/文件同时引用定义ReplyInfo的头文件,会造成头文件中定义重复定义 如两个类/文件重复引用massage文件报错 message.h:36:16: error: redefinition of struct MSG_SERVOCTRL message.h:40:2: error: conflicting types for servoctrl解决 一般是目…

计算机组成与设计 Patterson Hennessy 笔记(一)MIPS 指令集

计算机的语言:汇编指令集 也就是指令集。本书主要介绍 MIPS 指令集。 汇编指令 算数运算: add a,b,c # abc sub a,b,c # ab-cMIPS 汇编的注释是 # 号。 由于MIPS中寄存器大小32位,是基本访问单位,因此也被称为一个字 word。M…

YOLOv5改进系列(21)——替换主干网络之RepViT(清华 ICCV 2023|最新开源移动端ViT)

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制 YOLOv5改进系列(2

React 之 Suspense和lazy

一. Suspense 参考链接&#xff1a;https://react.docschina.org/reference/react/Suspense suspense&#xff1a;n. 焦虑、悬念 <Suspense> 允许你显示一个退路方案&#xff08;fallback&#xff09;直到它的所有子组件完成加载。 <Suspense fallback{<Loadin…

vue项目根据word模版导出word文件

一、安装依赖 //1、docxtemplaternpm install docxtemplater pizzip -S//2、jszip-utilsnpm install jszip-utils -S//3、pizzipnpm install pizzip -S//4、FileSaver npm install file-saver --save二、创建word模版 也就是编辑一个word文档&#xff0c;文档中需要动态取值的…

基于chatgpt动手实现一个ai_translator

动手实现一个ai翻译 前言 最近在极客时间学习《AI 大模型应用开发实战营》&#xff0c;自己一边跟着学一边开发了一个进阶版本的 OpenAI-Translator&#xff0c;在这里简单记录下开发过程和心得体会&#xff0c;供有兴趣的同学参考&#xff1b; ai翻译程序 版本迭代 在学习…

Spring-MVC的数据响应-19

在访问服务端MVC的时候&#xff0c;这个controller层进行相应操作之后 他要做两件事&#xff1a;页面跳转和返回字符串&#xff0c;在做完这些操作之后&#xff0c;我们一般进行页面展示:排除页面展示之外&#xff0c;有些需求可能直接回写给我们一些数据&#xff1a; 页面跳…

spring bean创建总览 1

1 开始 这是一个总图 下边慢慢看 我们最基础的写的方式就是xml的方式去写 像这样&#xff0c; 而我们会通过applicationContext的方式去获得我们的bean &#xff0c;我其中一篇博客就写到了applicationContext他的父类就是beanFactory 但是中间的是怎么样处理的呢&#xff1f…

springboot引入druid解析sql

一、前言 在开发中&#xff0c;有时我们可能会需要获取SQL中的表名&#xff0c;那么因为不同的数据源类型SQL会存在部分差异&#xff0c;那么我们就可以使用alibaba 的druid包实现不同的数据源类型的sql解析。 二、引入相关maven依赖 <dependency><groupId>com.a…

MySQL表的操作

MySQL表的操作 创建表查看表结构的详细信息修改表结构增加表结构属性删除表结构表结构的修改 删除表结构 创建表 语法: create table table_name( field1 datatype [comment xxxxx], field2 datatype [comment xxxxx], field3 datatype [comment xxxxx]) [charsetxxx][collatey…

idea 转换为 Maven Project 的方法

选项&#xff1a; Add as Maven Project

一、进入sql环境,以及sql的查询、新建、删除、使用

1、进入sql环境 》》》mysql -u root -p 》》》输入密码 2、sql语言的分类 3、注意事项&#xff1a; 4、基础操作&#xff1a; &#xff08;1&#xff09;查询所有数据库&#xff1a; show databases; 运行结果&#xff1a; &#xff08;2&#xff09;创建一个新的数据库&…

ceph数据分布

ceph的存储是无主结构&#xff0c;数据分布依赖client来计算&#xff0c;有两个条主要路径。 1、数据到PG 2、PG 到OSD 有两个假设&#xff1a; 第一&#xff0c;pg的数量稳定&#xff0c;可以认为保持不变&#xff1b; 第二&#xff0c; OSD的数量可以增减&#xff0c;OSD的…

我能“C”——实用的调试技巧

什么是bug&#xff1f; 调试是什么&#xff1f;有多重要&#xff1f; debug和release的介绍。 windows环境调试介绍。 一些调试的实例。 如何写出好&#xff08;易于调试&#xff09;的代码。 编程常见的错误。 1.什么是bug&#xff1f; 世界上第一个bug是程序员赫柏发现的。 …

中大许少辉博士《乡村振兴战略下传统村落文化旅游设计》中国建筑工业出版社八一付梓。

中大许少辉博士《乡村振兴战略下传统村落文化旅游设计》中国建筑工业出版社八一付梓。