小白带你学习linux的LVS集群(三十六)

简介: 小白带你学习linux的LVS集群(三十六)



一、集群概述

1、负载均衡技术类型

四层负载均衡器 也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;

七层负载均衡器 也称为 7 层交换机,位于 OSI 的最高层,即应用层,此负载均衡器支持多种协议,如HTTP、FTP、SMTP 等。7 层负载均衡器可根据报文内容,配合一定的负载均衡算法来选择后端服务器,即“内容交换器”。如常见的 HAProxy、Nginx。

2、负载均衡实现方式

硬件负载均衡产品:F5 、深信服 、Radware

软件负载均衡产品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache trafficserver)

二、LVS结构

1、三层结构

负载调度器

服务器池

共享存储

2、架构对象

VS:Virtual Server,也称为 Director,负载均衡服务器

RS:Real Server,真正的服务器,集群中各节点

VIP:Director 向外部提供服务的 IP

DIP:Director 向内部与 RS 通信的 IP

RIP:真实服务器的 IP

CIP:客户端的 IP

三、LVS工作模式

   LVS-NAT(NAT模式)

   LVS-DR(直接路由模式)(应用最广泛)

   LVS-TUN(IP隧道(Tunnel)模式,不常用)

   FULL-NAT模式(双向转换模式,不常用)

四、LVS负载均衡算法

1、静态负载均衡

rr(round robin,轮询 )

wrr(weight round robin,加权轮询)

sh(source hashing,源地址散列算法(HASH))

dh(destination hashing,目标地址 HASH)

2、动态负载均衡

lc(leash-connection,最少连接 )

简单算法:active * 256 + inactive (谁的小选谁)

wlc(加权最少连接)

简单算法:(active * 256 + inactive) / weight(谁的小选谁)

sed(最少期望延迟)

简单算法:(active + 1) * 256 / weight (谁的小选谁)

nq(never queue,永不排队)

LBLC(基于局部性的最少连接 )

LBLCR(基于局部性的带复制功能的最少连接)

五、ipvsadm命令详解

-A        添加虚拟服务节点

-D        删除虚拟服务节点

-L        查看虚拟服务节点列表

-a       添加真实服务节点

-d        删除真实服务节点

-l        查看真实服务节点列表

-t        指定虚拟服务器IP地址

-s        指定调度算法

-r        指定真实服务器节点IP地址

-w        指定权重值

-g        直接路由模式(默认)

-i        隧道模式(不常用)

-m        NAT模式

   案例

六、LVS配置案列

我配置的是三台虚拟机,拿主机访问的虚拟机配置

1、基础配置

修改主机名

关闭防火墙

关闭Selinux

关闭Networkmanager

配置IP地址

master 192.168.28.4

server1 192.168.28.5

server2 192.168.28.6

2、实现NAT模型搭建

2、1负载调度器配置

配置IP地址

master增加一块网卡

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens37

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens37
vim ifcfg-ens33
vim ifcfg-ens37

ens37 这里就要看主机的ip了主机ip是192.168.200.1所以我们的37就是

vim ifcfg-ens37

删除UUID

NAME=ens37

DEVICE=ens37

重启一下网卡

systemctl restart network
ip a

配置本地yum源

安装ipvsadm

yum  install -y ipvsadm

开启路由转发功能

cd /etc/sysctl.d/
vim route.conf
sysctl -p /etc/sysctl.d/route.conf

主机master的更改就OK了,开始更改slave1,slave2基础配置和master一样

ip192.168.28.5

在这里网关一定要给成master的网关

改成网络源

下载nginx

yum -y install epel-release
 yum -y install epel-release
 yum -y install nginx

启动nginx

systemctl start nginx
 netstat -anptu |grep nginx

创建一个nginx1的网站

cd /usr/share/nginx/html/
 echo nginx1 > index.html
 route -n

slave2的配置和slave1 的一样

yum -y install epel-release
 yum -y install epel-release
 yum -y install nginx
 systemctl start nginx

cd /usr/share/nginx/html/
 echo nginx2 > index.html 
 vim /etc/sysconfig/network-scripts/ifcfg-ens33 
 systemctl restart network
 route -n

网卡配置一下

回master加载ip_vs模块

modprobe ip_vs
lsmod |grep ip_vs

启动ipvsadm服务

systemctl start ipvsadm
systemctl status ipvsadm
touch /etc/sysconfig/ipvsadm
ls /etc/sysconfig/

配置负载分配策略

ipvsadm -A -t 192.168.200.100:80 -s rr

ipvsadm -a -t 192.168.200.100:80 -r 192.168.28.5:80 -m

ipvsadm -a -t 192.168.200.100:80 -r 192.168.28.6:80 -m

ipvsadm -A -t 192.168.200.100:80 -s rr
 ipvsadm -a -t 192.168.200.100:80  -r 192.168.28.5:80 -m
 ipvsadm -a -t 192.168.200.100:80  -r 192.168.28.6:80 -m

保存策略

ipvsadm-save > /etc/sysconfig/ipvsadm

查看一下

ipvsadm -Ln

ipvsadm-save > /etc/sysconfig/ipvsadm
 cat /etc/sysconfig/ipvsadm

2、2web节点配置

直接拿我们的主机当做httpd访问

测试

做到这就OK了回我们的主机浏览器查看一下192.168.200.100使用Ctrl+F5深度刷新完成

3、 实现DR模型搭建

3、1负载调度器配置

调整ARP参数

从上个基础上把master的37网卡摘除

把slave1和slave2的网关注释掉

回到master上删除一个数据

rm -rf /etc/sysctl.d/route.conf

vim /etc/sysctl.conf

vim /etc/sysctl.conf 
 sysctl -p

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects=0

net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

配置虚拟IP地址

cd /etc/sysconfig/network-scripts/

cd /etc/sysconfig/network-scripts/
 mv ifcfg-ens37 ifcfg-ens33:0
 vim ifcfg-ens33:0

重启一下网络查看一下IP

systemctl restart network
 ip a

安装ipvsadm

yum  install -y ipvsadm
modprobe ip_vs
lsmod |grep ip_vs
systemctl start ipvsadm

yum  install -y ipvsadm

加载ip_vs模块

modprobe ip_vs

lsmod |grep ip_vs

启动ipvsadm服务

systemctl start ipvsadm

这三步骤已经安装好了

配置负载分配策略

ipvsadm -A -t 192.168.200.100:80 -s rr

ipvsadm -a -t 192.168.115.200:80 -r 192.168.28.5:80 -g

ipvsadm -a -t 192.168.115.200:80 -r 192.168.28.6:80 -g

ipvsadm -A -t 192.168.28.100:80 -s rr
ipvsadm -a -t 192.168.28.100:80 -r 192.168.28.5:80 -g
ipvsadm -a -t 192.168.28.100:80 -r 192.168.28.6:80 -g
ipvsadm -Ln

保存策略

ipvsadm-save > /etc/sysconfig/ipvsad

3、2web节点配置

调整ARP参数两台slave都需要配置

vim /etc/sysctl.conf

sysctl -p

vim /etc/sysctl.conf 
 sysctl -p

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.default.arp_ignore=1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce=2

两台slave都需要配置

配置虚拟IP地址两台slave都需要更改

cd /etc/sysconfig/network-scripts/

cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0

cd /etc/sysconfig/network-scripts/
 cp ifcfg-lo ifcfg-lo:0
 vim ifcfg-lo:0
 systemctl restart network
 ip a

添加回环路由两台都要加

route add -host 192.168.28.100/32 dev lo:0

主机刷新

抓包工具一抓就OK

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
2天前
|
Linux 程序员 计算机视觉
【linux 学习】在Linux中经常用到的cmake、make、make install等命令解析
【linux 学习】在Linux中经常用到的cmake、make、make install等命令解析
15 0
|
2天前
|
自然语言处理 Java Linux
【Linux】开始学习进程替换吧!
通过学习进程替换,我们可以体会到多语言混搭的快乐,可以从C语言直接蹦到python ,也可以从c++里运行java代码。是不是很厉害!这是通过调度多个进程的效果,联系我们之前学习的进程,进程控制等概念。我们可以想要运行其他代码可以通过创建子进程来实现,但是这样也肯定是同一种语言,如果想要运行其他语言,那是不是有种方法可以调度一个进程来当做子进程呢??? 我们开始今天的学习吧!
11 0
|
2天前
|
Ubuntu 算法 Linux
嵌入式Linux的学习误区
该文指出了学习嵌入式Linux开发的两个常见误区。一是过分专注于学习桌面或服务器版Linux,而非关注嵌入式开发本身,实际上只需熟悉基本操作即可。二是试图在没有基础的情况下直接阅读Linux内核源代码,这是不切实际的,应先建立基础知识再进行源码学习。文章还提到了在嵌入式系统中获取和处理屏幕数据的示例,包括使用gsnap工具将framebuffer数据转为图像,以及涉及的交叉编译过程。
11 0
|
2天前
|
编解码 Linux 数据安全/隐私保护
【Linux学习】​​学习Linux的准备工作和Linux的基本指令
【Linux学习】​​学习Linux的准备工作和Linux的基本指令
|
2天前
|
Linux Shell 虚拟化
【Linux学习】Linux 的虚拟化和容器化技术
【Linux学习】Linux 的虚拟化和容器化技术
|
2天前
|
运维 监控 安全
【专栏】11 个 Linux 网络命令学习和熟练运用这些命令是提升网络管理能力的基础
【4月更文挑战第28天】本文介绍了11个必备的Linux网络命令,包括ifconfig、ip、ping、traceroute、netstat、tcpdump、ss、telnet、ftp、ssh和nmap,这些命令在网络配置、故障排查和性能监控中发挥关键作用。通过实例分析,强调了它们在实际工作中的综合应用,帮助运维工程师提升效率和应对网络挑战。学习和熟练运用这些命令是提升网络管理能力的基础。
|
2天前
|
运维 负载均衡 监控
keepalived+LVS实现高可用性集群
通过结合keepalived和LVS,你可以创建一个高可用性的负载均衡集群,确保服务器的稳定性和性能。这对于托管Web服务、应用服务器等关键服务的服务器集群非常有用。
38 1
|
2天前
|
负载均衡 监控 Linux
CentOS6.5高可用集群LVS+Keepalived(DR模式)
CentOS6.5高可用集群LVS+Keepalived(DR模式)
|
7月前
|
负载均衡 应用服务中间件 Linux
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
101 0
|
7月前
|
存储 负载均衡 网络协议
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
125 0