LVS集群

集群

  • 集群(CLUSTER)概念

    • 集群就是一组计算机,它们作为一个整体向用户提供一组网络资源
  • 集群核心:任务调度

  • 集群分类

LVS

LVS:Linux Virtual Server,Linux虚拟服务器

  • 功能

    • 实现高可用的、可伸缩的Web、Mail、Cache和Media等网络服务
  • 目标

    • 利用Linux操作系统和LVS集群软件实现一个高可用、高性能、低成本的服务器应用集
  • 组成

    • 工作在内核空间的IPVS模块
    • 工作在用户空间的ipvsadm管理工具
  • 术语:

    • 调度器:LVS服务器
    • 真实服务器Real Server:提供服务的服务器
    • VIP:虚拟地址,提供给用户访问的地址
    • DIP:指定地址,LVS服务器上与真实服务器通信的地址
    • RIP:真实地址,真实服务器的地址

LVS的工作模式:

复制代码
 测试LVS-NAT拓扑网络通信情况
复制代码
[root@lvs1 ~]# cat /proc/sys/net/ipv4/ip_forward        #检查lvs1主机是否开启路由转发
复制代码
1       #如果得到1则无需调整,如果得到0则执行下一步临时开启路由转发功能
复制代码
[root@lvs1 ~]#
复制代码
[root@lvs1 echo 1 > /proc/sys/net/ipv4/ip_forward
复制代码
[root@lvs1 ~]# cat /proc/sys/net/ipv4/ip_forward
  • 常见的调度算法,共10个,常用的有4个:

    • 轮询rr:Real Server轮流提供服务
    • 加权轮询wrr:根据服务器性能设置权重,权重大的得到的请求更多
    • 最少连接lc:根据Real Server的连接数分配请求
    • 加权最少连接wlc:类似于wrr,根据权重分配请求

LVS-NAT模式

  • 实验环境准备

    • pubserver:eth0->192.168.88.240,eth1->192.168.99.240
    • client:eth0->192.168.88.10,网关192.168.88.5
    • lvs1: eth0 -> 192.168.88.5;eth1->192.168.99.5
    • web1:eth1->192.168.99.100;网关192.168.99.5
    • web2:eth1->192.168.99.200;网关192.168.99.5
  • Ansible配置

cat /proc/sys/net/ipv4/ip_forward

复制代码
   
复制代码
# 配置LVS-NAT模式规则

121

[root@lvs1 ~]# ipvsadm -L

122

IP Virtual Server version 1.2.1 (size=4096)

123

Prot LocalAddress:Port Scheduler Flags

124

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

125

[root@lvs1 ~]# ipvsadm -A -t 192.168.88.5:80 -s rr

126

[root@lvs1 ~]# ipvsadm -a -t 192.168.88.5:80 -r 192.168.99.100:80 -w 1 -m

127

[root@lvs1 ~]# ipvsadm -a -t 192.168.88.5:80 -r 192.168.99.200:80 -w 2 -m

128

[root@lvs1 ~]# ipvsadm -Ln #-n为显示具体IP地址,不加则显示主机名

129

IP Virtual Server version 1.2.1 (size=4096)

130

Prot LocalAddress:Port Scheduler Flags

131

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

132

TCP 192.168.88.5:80 rr

133

-> 192.168.99.100:80 Masq 1 0 0

-> 192.168.99.200:80 Masq 2 0 0

ipvsadm命令常用选项

复制代码
    -A: 添加虚拟服务器
复制代码
    -E: 编辑虚拟服务器
复制代码
    -D: 删除虚拟服务器
复制代码
    -C: 删除所有虚拟服务器
复制代码
    -t: 添加tcp服务器
复制代码
    -u: 添加udp服务器
复制代码
    -s: 指定调度算法。如轮询rr/加权轮询wrr/最少连接lc/加权最少连接wlc
复制代码
    -a: 添加虚拟服务器后,向虚拟服务器中加入真实服务器
复制代码
    -r: 指定真实服务器
复制代码
    -w: 设置权重
复制代码
    -m: 指定工作模式为NAT
复制代码
    -g: 指定工作模式为DR
相关推荐
龙哥说跨境14 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
七星静香23 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
Jacob程序员23 分钟前
java导出word文件(手绘)
java·开发语言·word
ZHOUPUYU24 分钟前
IntelliJ IDEA超详细下载安装教程(附安装包)
java·ide·intellij-idea
stewie627 分钟前
在IDEA中使用Git
java·git
Elaine20239142 分钟前
06 网络编程基础
java·网络
G丶AEOM44 分钟前
分布式——BASE理论
java·分布式·八股
落落鱼20131 小时前
tp接口 入口文件 500 错误原因
java·开发语言
想要打 Acm 的小周同学呀1 小时前
LRU缓存算法
java·算法·缓存
镰刀出海1 小时前
Recyclerview缓存原理
java·开发语言·缓存·recyclerview·android面试