LVS 集群技术基础

LVS(linux virual server)

LVS集群技术---NAT模式

一.准备四台虚拟机

1.client(eth0=ip:172.254.100)

2.lvs(eth0=ip:172.254.200;eth1=ip:192.168.0.200)

3.rs1(eht0=ip:192.168.0.10)

4.rs2(eth0=ip:192.168.0.20)

二:在rs1和rs2安装httpd功能

dnf/yum install htppd -y

三:在rs1上操作

root@RS1 \~# systemctl disable --now firewalld #禁用并停止 firewalld 服务

root@RS1 \~# echo RS1 - 192.168.0.10 > /var/www/html/index.html #创建并写入内容到 index.html 文件:

root@RS1 \~# systemctl enable --now http d #启用并启动 Apache HTTP 服务

在rs2操作相同

四:在lvs操作

复制代码
[root@lvs ~]# sysctl  -a | grep ip_forward
 net.ipv4.ip_forward = 0 #net.ipv4.ip_forward = 0:这意味着当前 IPv4 数据包转发功能被禁用了(值为0表示禁用,1表示启用)
 net.ipv4.ip_forward_update_priority = 1
 net.ipv4.ip_forward_use_pmtu = 0
 [root@lvs ~]# echo net.ipv4.ip_forward=1 > /etc/sysctl.conf #这条命令将 net.ipv4.ip_forward=1 写入到了 /etc/sysctl.conf 配置文件中,使得系统在启动时启用 IPv4 转发。
 [root@lvs ~]# sysctl -p #使用 sysctl -p 使配置立即生效。
 net.ipv4.ip_forward = 1

五:检查lvs需要的安装包

复制代码
dnf search lvs

六:在lvs上安装ipvsadm

复制代码
dnf install ipvsadm -y

七:查看策略调度机制

复制代码
watch -n1 ipvsadm -Ln

八:配置一个虚拟服务

复制代码
ipvsadm -A -t

172.25.254.200:80 -s rr #这条命令使用 ipvsadm 工具配置一个虚拟服务 172.25.254.200:80,并使用 轮询(Round Robin) 调度算法(-S rr)来分发流量到后端服务器

复制代码
[root@lvs ~]# ipvsadm -E -t 172.25.254.200:80 -s wrr #-E表示更改为wrr机制 TCP 172.25.254.200:80 wrr

[root@lvs ~]# ipvsadm -E -t 172.25.254.200:80 -s wrr -p 360 #-p设置持久连接超时规定时间内同一来源请求调度到同一realserver-----这里时间设为360

TCP 172.25.254.200:80 wrr persistent 360

[root@lvs ~]# ipvsadm -A -f 66 -s rr #设置火墙
 ​
 TCP  172.25.254.200:80 wrr persistent 360
 FWM  66 rr

删除机制

复制代码
 [root@lvs ~]# ipvsadm -D -f 66 #删除火墙-D
 ​
 [root@lvs ~]# ipvsadm -C          #全部删除

九:模式不能混用

复制代码
[root@lvs ~]# ipvsadm -A -t 172.25.254.200:80 -s rr
 [root@lvs ~]# ipvsadm -a -t 172.25.254.200:80 -r 192.168.0.10:80 -g
 [root@lvs ~]# ipvsadm -a -t 172.25.254.200:80 -r 192.168.0.20:80 -g
 #-g为直连路由
复制代码
[root@lvs ~]# ipvsadm -a -t 172.25.254.200:80 -r 192.168.0.20:80 -m
 [root@lvs ~]# ipvsadm -a -t 172.25.254.200:80 -r 192.168.0.10:80 -m
 #-m为nat模式
复制代码
 [root@lvs ~]# ipvsadm -e -t 172.25.254.200:80 -r 192.168.0.20:80 -i
 [root@lvs ~]# ipvsadm -e -t 172.25.254.200:80 -r 192.168.0.10:80 -i
 #-e为切换模式 -i为ipip隧道模式

十:设置权重

复制代码
[root@lvs ~]# ipvsadm -e -t 172.25.254.200:80 -r 192.168.0.10:80 -i -w 2
 #-w 后面跟数字代表权重这里设置2--权重不是所有模式一定生效

十一:保存策略

复制代码
[root@lvs ~]# ipvsadm-save -n > /mnt/ipvsadm.rule

如果用ipvsadm -C删除后

用命令
ipvsadm-restore < /mnt/ipvsadm.rule
恢复策略
永久保存  #开机时加载策略
ipvsadm-save -n > /etc/sysconfig/ipvsadm

十二:测试

LVS---DR模式

一:实验环境

client eth0=ip 172.25.254.111

路由器 eth0=ip 172.25.254.100 eth1=ip192.168.0.100

DR-LVS eth0=ip 192.168.0.200

RS1 eth0=ip192.168.0.10

RS2 eth0=ip 192.168.0.20

二:客户端 clent网络设置

复制代码
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
method=manual
address1=172.25.254.111/24,172.25.254.100
dns=8.8.8.8

三:路由器网络设置

(1) eth0 配置

复制代码
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
method=manual
address1=172.25.254.100/24

(2) eth1 配置

复制代码
[connection]
id=eth1
type=ethernet
interface-name=eth1

[ipv4]
method=manual
address1=192.168.0.100/24

(3) 激活网口

复制代码
nmcli connection reload
nmcli connection up eth0
nmcli connection up eth1

(4) 开启路由转发功能

复制代码
[root@luyou ~] vim /etc/sysctl.conf  #编辑文件开启内核路由功能

net.ipv4.ip_forward=1开启内核路由功能

[root@luyou ~] sysctl -p  #激活
复制代码
[root@luyou system-connections] firewall-cmd --permanent  --add-masquerade
Warning: ALREADY_ENABLED: masquerade
success

四:lvs主机设置

复制代码
网口eth0.nmconnection
[root@dr-lvs system-connections] cat eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
method=manual
address1=192.168.0.200/24,192.168.0.100
address2=192.168.0.220/24
dns=8.8.8.8

[root@dr-lvs system-connections]# nmcli connection reload   #重启
[root@dr-lvs system-connections]# nmcli connection up eth0 #激活

[root@dr-lvs system-connections] cat lo.nmconnection
[connection]
id=lo
type=loopback
interface-name=lo

[ipv4]
pmethod=manual#静态
address1=127.0.0.1/8
address2=192.168.0.220/32不对外相应32
[root@dr-lvs system-connections]# nmcli connection reload   #重启
[root@dr-lvs system-connections]# nmcli connection up lo #激活

五:RS1和RS2设置

1.RS1设置

复制代码
[root@RS1 system-connections]# cat eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
method=manual
address1=192.168.0.10/24,192.168.0.100
dns=8.8.8.8

[root@RS1 system-connections]# cat lo.nmconnection
[connection]
id=lo
type=loopback
interface-name=lo

[ipv4]
method=manual
address1=127.0.0.1/8
address2=192.168.0.220/32

设置相应管控

复制代码
[root@RS1 ~] sysctl -a | grep arp  #搜索arp相关设置

[root@RS1 ~] echo net.ipv4.conf.lo.arp_ignore =1 >> /etc/sysctl.conf

[root@RS1 ~] echo net.ipv4.conf.lo.arp_announce = 2 >> /etc/sysctl.conf

[root@RS1 ~] echo net.ipv4.conf.all.arp_ignore = 1 >> /etc/sysctl.conf

[root@RS1 ~] echo net.ipv4.conf.all.arp_announce = 2 >> /etc/sysctl.conf



[root@RS1 ~] sysctl  -p  #生效
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
vnet.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

2.RS2设置

复制代码
[root@RS2 system-connections]# cat eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0

[ipv4]
method=manual
address1=192.168.0.20/24,192.168.0.100
dns=8.8.8.8

[root@RS2 system-connections]# cat lo.nmconnection
[connection]
id=lo
type=loopback
interface-name=lo

[ipv4]
method=manual
address1=127.0.0.1/8
address2=192.168.0.220/32


[root@RS2 ~] sysctl -a | grep arp  #搜索arp相关设置

[root@RS2 ~] echo net.ipv4.conf.lo.arp_ignore =1 >> /etc/sysctl.conf

[root@RS2 ~] echo net.ipv4.conf.lo.arp_announce = 2 >> /etc/sysctl.conf

[root@RS2 ~] echo net.ipv4.conf.all.arp_ignore = 1 >> /etc/sysctl.conf

[root@RS2 ~] echo net.ipv4.conf.all.arp_announce = 2 >> /etc/sysctl.conf



[root@RS2 ~] sysctl  -p  #生效
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
vnet.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

六:测试

相关推荐
冰封之寂8 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
xiaoye-duck8 小时前
《Linux系统编程》Linux 系统多线程(五):<线程同步与互斥>线程互斥(上):从条件变量到生产者消费者模型详解
linux·线程
一叶龙洲10 小时前
向日葵远程Ubuntu,支持隐私屏
linux·运维·ubuntu
酷可达拉斯10 小时前
Linux操作系统-shell编程之Grep与正则表达式
linux·运维·服务器·正则表达式·centos
寒水馨11 小时前
Linux下载、安装llama.cpp-b10068(附安装包llama-b10068-bin-ubuntu-vulkan-x64.tar.gz)
linux·ubuntu·llm·llama·本地部署·llama.cpp·推理引擎
我星期八休息13 小时前
网络编程—UDP与TCP
linux·运维·网络·数据库·网络协议·tcp/ip·udp
ziguo112214 小时前
C/C++ 错误处理全解:从 errno 到 C++ 异常
linux·c语言·c++·windows·visual studio
三84415 小时前
使用Samba/NFS实现文件共享/自动挂载共享目录/autofs自动挂载服务
linux·服务器·网络
高铭杰16 小时前
万物皆可KV(2)SurrealDB 存储布局分析
linux·服务器
无小道16 小时前
深入解析操作系统文件缓冲区:页缓存、基数树与f_pos的协同设计
linux·缓存·文件缓冲区