加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

高性能集群Linux Virtual ServerCL

发布时间:2022-11-16 17:07:35 所属栏目:Linux 来源:网络
导读: 内容概要:
1,集群概念
2,LVS介绍
3,LVS实现
4,LVS高可用性
Cluster概念:
1,系统扩展方式:
Scale UP : 向上扩展,增强.
Scale Out : 向外扩展,增加设备,调度分配问题,Cluster.
2,Cluster:

内容概要:

1,集群概念

2,LVS介绍

3,LVS实现

4,LVS高可用性

Cluster概念:

1,系统扩展方式:

Scale UP : 向上扩展,增强.

Scale Out : 向外扩展,增加设备,调度分配问题,Cluster.

2,Cluster:

集群,为解决某个特定问题将多台计算机组合起来形成单个系统.

3,Linux Cluster 类型:

LB : Load Balancing , 负载均衡

HA : High Availiablity ,高可用 , SPOF(single point of failure)

MTBF : Mean Time Between Failure 平均无故障时间

MTTR : Mean Time To Restoration ( repair ) 平均恢复前时间

A = MTBF / (MTBF + MTTR )

HPC : High-performance computing , 高性能 ,排名可参考()

4,分布式系统:

分布式储存 : 云盘

分布式计算 : hadoop , Spark

Cluster分类:

LB Cluster 的实现;

硬件:

F5 Big-IP

Citrix Netscaler

A10 A10

软件:

lvs: Linux Virtual Server

nginx : 支持四层调度

haproxy : 支持四层调度

ats : apache traffic server , 由yahoo!捐助

perlbal : Perl 编写

pound

Cluster分类:

基于工作的协议层次划分 :

传输层(通用):DPORT

LVS:

nginx : stream

haproxy : mode tcp

应用层(专用): 针对特定协议,自定义的请求模型分类

proxy server :

http : nginx , httpd , haproxu(mode http) , ...

fastcgi : nginx , httpd , ...

mysql : mysql-proxy , ...

Cluster相关:

会话保持 : 负载均衡

(1) session sticky : 同一用户调度固定服务器

Source IP : LVS sh算法(对某一特定服务而言)

Cookie

(2)session replication : 每台服务器拥有全部session

session multicast cluster

(3) session server : 专门的session服务器

Memcached , Redis

HA集群实现方案:

keepalived : vrrp 协议

ais : 应用接口规范

heartbeat

cman + rgmanager(RHCS)

coresync_pacemaker

LVS介绍:

LVS: Linux Virtual Server , 负载调度器 , 集成内核

VS : Virtual Server , 负责调度

RS : Real Server , 负责真正提供服务

L4 : 四层路由器或交换机

工作原理: VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS.

iptables/netfilter :

iptables : 用户空间的管理工具

netfilter : 内核空间上的框架

流入: PREROUTING --> INPUT

流出: OUTPUT --> POSTROUTING

转发: PREROUTING --> FORWARD --> POSTROUTING

DNAT: 目标地址转换

LVS集群体系结构:

我自己按照理解画的草图,网上有很多详细的(这是一个VS/NAT模式的)

集群linux_集群linux_linux集群高可用

LVS概念:

lvs集群类型中的术语:

VS : Virtual Server , Director Server(DS)

Dispatcher(调度器) , Load Balancer

RS : Real Server(lvs) , upstream server(nginx)

backend server(haproxy)

CIP : Client IP

VIB : Virtual Server IP

RIP : Real Server IP

访问流程 : CIP VIP == DIP RIP

Lvs集群的类型:

lvs : ipvsadm/ipvs

ipvsadm : 用户空间的命令行工具 , 规则管理器

ipvs : 工作与内核空间的netfilter的INPUT钩子上的框架

lvs集群的类型:

lvs-nat : 修改请求报文的目标IP , 多目标IP的DNAT

lvs-dr : 操纵封装新的MAC地址

lvs-tun : 在原请求IP报文之外新加一个IP首部

lvs-fullnat : 修改请求报文的源IP和目标IP

Lvs-nat模式:

lvs-nat : 本质是多目标IP的DNAT , 通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发.

(1) RIP和DIP必须在同一个IP网络 , 且应该使用私网地址 ; RS的网关要指向DIP

(2) 请求报文和相应报文都必须经由Director转发 , Director易于成为系统瓶颈

(3) 支持端口映射 , 可修改请求报文的目标PORT

(4) VS必须是Linux系统 , RS可以是任意OS系统

NAT模式IP包调度过程:

linux集群高可用_集群linux_集群linux

LVS-DR模式:

LVS-DR : Direct Routing , 直接路由 , LVS默认模式 ,应用最广泛集群linux, 通过为请求报文重新封装一个MAC首部进行转发 , 源MAC是DIP所在的接口的MAC , 目标MAC是某挑选出的RS的RIP所在接口的MAC地址 ; 源IP/PORT , 以及目标IP/PORT均保持不变

Director和各RS都配置有VIP

(1) 确保前端路由器将目标IP为VIP的请求报文发往Director :

在前端网关做静态绑定VIP和Director的MAC地址

在RS上使用arptables工具

arptables -A IN -d $VIP -j DROP

arptables -A OUT -s $VIP -j mangle --mangle -ip-s $RIP

在RS上修改内核参数以限制arp通告及应答级别

arp_announce

arp_ignore

(2) RS的RIP可以使用私网地址 , 也可以是公网地址 ; RIP与DIP在同一IP网络 ; RIP的网关不能指向DIP , 以确保响应报文不会经由Director.

(3) 请求报文要经由Director , 但响应报文不经由Director , 由RS直接发往Client

(5) 不支持端口映射(端口不能修改)

(6) RS可以使用大多数OS系统

体系结构:

集群linux_linux集群高可用_集群linux

DR模式IP包调度过程:

集群linux_集群linux_linux集群高可用

lvs-tun模式:

lvs-tun:

转发方式 : 不修改请求报文的IP首部(源IP为CIP , 目标IP为VIP) , 而在原IP报文之外再封装一个IP首部(源IP是DIP,目标IP是RIP) , 将报文发往挑选出的目标RS ; RS直接响应给客户端(源IP是VIP , 目标IP是CIP)

(1) DIP , VIP , RIP 都应该是公网地址

(2) RS的网关不能 , 也不可能指向DIP

(3) 请求报文要经由Director , 但响应不能经由Director

(4) 不支持端口映射

(5) RS的OS必须支持隧道功能

vs/tun体系结构:

集群linux_linux集群高可用_集群linux

TUN模式IP包调度过程:

linux集群高可用_集群linux_集群linux

Lvs-fullnat模式:

lvs-fullnat : 通过同时修改请求报文的源IP地址和目标IP地址进行转发 ; CIP --> DIP , VIP --> RIP

(1) VIP是公网地址 , 但RIP和DIO是私网地址 , 且通常不在同一IP网络 ; 因此 , RIP的网关一般不会指向DIP

(2) RS收到的请求报文源地址是DIP , 因此 ,只需响应给DIP ; 但Director还要将其发往Client

(3) 请求和相应报文都经由Director

(4) 支持端口映射;

注意 : 此类型kernel默认不支持

总结:

集群linux_集群linux_linux集群高可用

lvs-nat与lvs-fullnat : 请求和响应报文都经由Director

lvs-nat : RIP的网关要指向DIP

lvs-fullnat : RIP和DIP未必在同一IP网络 , 弹药可以通信

lvs-dr 与 lvs-tun : 请求报文要经由Director , 但响应报文由RS直接发往Client

lvs-dr : 通过封装新的MAC首部实现 , 通过MAC网络转发

lvs-tun : 通过在原IP报文外封装新IP头实现转发 , 支持远距离通信

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!