Linux入门攻坚——40、Linux集群系统入门-lvs(1)

Cluster,集群,为了解决某个特定问题将多台计算机组合起来形成的单个系统。
  这个单个集群系统可以扩展,系统扩展的方式:scale up,向上扩展,更换更好的主机;scale out,向外扩展,增加更多的主机;

集群类型:
  LB:负载均衡集群,Load Balancing,并发处理能力
  HA:高可用集群(冗余),High Availablility,在线时间/(在线时间+故障处理时间)
  HP(HPC):高性能集群(高性能计算集群),High Performance(High Performance Computing Cluster),向量机,并行处理集群
  Availablility=90%,95%,99%,99.9%,99.99%,...

集群之前,是大规模分布式处理。

集群或是分布式都是一个系统。
度量一个系统:  可扩展性、  可用性、  容量、性能

系统运维:可用 ——> 标准化 ——> 自动化 

构建高可扩展性系统的重要原则:在系统内部尽量避免串行化和交互;

GSLB:Global Service Load Balancing,全局负载均衡
    SLB:Service Load Balancing

总结:
  分层;
  分割;
  分布式:分布式应用、分布式静态资源、分布式数据和存储、分布式计算;

LB集群的实现

硬件:
  F5 BIG-IP、Citrix NetScaler、A10 A10、Array 、Redware、...
软件:
  lvs、haproxy、nginx、ats(apache traffic server)、perbal、...

基于工作的协议层次划分:
  传输层:lvs,haproxy(mode tcp)
  应用层:haproxy、nginx、ats、perbal    

lvs:内核中进行的转发,工作于netfilter,负载均衡。(程序作者:章文嵩)
  ——linux virtual server,linux虚拟服务器,基于哪个协议的哪个端口进行分发。相应的后台真正进行服务的主机叫real server。
L4:四层交换,四层路由;
    根据请求报文的目标IP和PORT将其转发至后端主机集群中的某一台主机(根据挑选算法);
    netfilter:
        PREROUTING --> INPUT
        PREROUTING --> FORWARD --> POSTROUTING
        OUTPUT --> FORWARD --> POSTROUTING

lvs工作于INPUT链上,定义了集群规则,然后强行转发到POSTROUTING链上。
ipvsadm/ipvs:lvs在程序上叫做ipvs
  ipvsadm:用户空间的命令行工具,用于管理集群服务;
  ipvs:工作于内核中netfilter INPUT钩子上;

主机是否提供lvs功能:
  grep -i -A 10 'IPVS' /boot/config-3.10.0-1160.el7.x86_64 

说明内核已经编译了IPVS模块,可以使用。

支持TCP、UDP,AH,ESP,AH_ESP,SCTP等诸多协议;

lvs arch:lvs架构
  专用名称:
  调度器:director,dispatcher,balancer
  RS:Real Server
  Client IP:CIP
  Director Virtual IP:VIP
  Director IP:DIP
  Real Server IP:RIP

lvs type:
  lvs-nat:基于DNAT,MASQUERADE
  lvs-dr(direct routing):GATEWAY
  lvs-tun(ip tunneling):IPIP
  lvs-fullnat:

lvs-nat:多目标的DNAT(iptables);通过修改请求报文的目标IP地址(同时可能修改目标端口)至挑选出的某RS的RIP地址实现转发;请求和响应报文都经由director。
  1)RS和DIP应该使用私网地址,且RS的网关要指向DIP;
  2)请求和响应报文都要经由director转发;  极高负载的场景中,director可能会成为系统瓶颈;
  3)支持端口映射;
  4)RS可以使用任意OS;
  5)RS的RIP和Director的DIP必须在同一IP网络;

关键在第2步,Director调度时可以按算法选择后台的任一台RS实现负载均衡。

lvs-dr:direct routing
  通过修改请求报文的目标MAC地址进行转发;仅请求报文经由director,响应报文是由RS直接响应给Client。
  Director:VIP,DIP
  RS:RIP,VIP(在lo上,即本地回环接口上)
  1)保证前端路由器将目标IP为VIP的请求报文发送给director;
    解决方案:静态绑定、arptables、修改RS主机内核的参数,主要是使RS不响应对VIP的ARP查询。
  2)RS的RIP可以使用私有地址,也可以使用公网地址;
  3)RS跟Director必须在同一物理网络中;
  4)请求报文经由Director调度,但响应报文一定不能经由Director;
  5)不支持端口映射;
  6)RS可以是大多数OS;
  7)RS的网关不能指向DIP;

通过上面的示意图,dr模型主要是通过MAC地址实现。

lvs-tun:不修改请求报文的IP首部,而是通过在原有的IP首部(cip <--> vip)之外,再封装一个IP首部(dip <--> rip);
  1)RIP,DIP,VIP全部都是公网地址;
  2)RS的网关不能指向DIP;
  3)请求报文必须经由Director调度,但响应报文必须不能经由Director;
  4)不支持端口映射;
  5)RS的OS必须支持隧道功能;

lvs-fullnat:Director通过同时修改请求报文的源和目的IP地址进行转发;
  1)VIP是公网地址,RIP和DIP是私网地址,二者无须在同一网络中;
  2)RS接收到的请求报文的源地址是DIP,因此要响应给DIP;
  3)请求报文和响应报文都必须经由Director;
  4)支持端口映射机制;
  5)RS的OS可以使用任意OS;

http:stateless,http协议是无状态的协议
  session和cookie:实现状态追踪,无状态变为有状态。在集群中,涉及如何在不同集群服务器中对session的保持。
  session保持机制:
    session绑定:将来自同一个用户的请求,始终导向同一个RS;可以基于两种依据IP和cookie:
      source ip hash,基于源ip做哈希。
      cookie,基于cookie。
    session集群:
      session复制到其他所有RS中,可能网络中充斥session复制信息,浪费带宽;
    session服务器:
      使用一台服务器单独存放session信息,又引入了单点问题。

lvs scheduler:lvs调度器,多种不同的调度算法
  静态方法:仅根据算法本身进行调度;
      RR:round robin,轮询,论调;
      WRR:weighted rr,加权轮询
      SH:source hash,实现session保持的机制;将来自于同一个IP的请求始终调度至同一RS;
      DH:destination hash,将对同一个目标的请求始终发往同一个RS;
  动态方法:根据算法及各RS的当前负载状态进行调度;
        负载 Overhead=
      LC:Least Connection,最少连接数;Overhead=Active*256+Inactive
      WLC:Weighted LC,Overhead=(Active*256 + Inactive)/ weight
      SED:Shortest Expection Delay,Overhead=(Active+1)*256 / weight
      NQ:Never Queue,在RS有空时,依次按权重选择,然后按SED;
      LBLC:Locality-Based LC,即动态的DH算法;正向代理情形下的cache server调度;
      LBLCR:Locality-Based Least-Connection with Replication,带复制功能的LBLC算法;

ipvs的集群服务:
  tcp,udp,ah,esp,ah_esp,sctp
  1)一个ipvs主机可以同时定义多个cluster service;tcp、udp
  2)一个cluster service上至少应该有一个real server;
      定义时,指明lvs-type,以及lvs scheduler;
ipvsadm的用法:
  管理集群服务:
      ipvsadm -A|E -t|u|f service-address [-s scheduler]
      ipvsadm -D -t|u|f service-address    

      service-address:
          tcp:-t ip:port
          udp:-u ip:port
          fwm:-f mark
        -s scheduler:默认为wlc
管理集群服务中的RS:
      ipvsadm -a|e  -t|u|f  service-address -r server-address  [-g|i|m] [-w weight]
      ipvsadm -d -t|u|f service-address  -r server-address

        server-address:ip:[port]
        lvs-type:-g --> gateway,dr;-i --> ipip,tun;-m --> masquerade,nat
  查看和清空:
      ipvsadm -C
      ipvsadm -L|l [options]
       
-n:基于数字格式显示地址和端口;
        -c:connection,显示ipvs连接
        --stats:统计数据
        --rate:速率
        --exact:显示精确值

  保存和重载:
      ipvsadm -R
      ipvsadm -S [-n]

  置零计数器:
      ipvsadm -Z [ -t|u|f service-address]

实操测试
模拟环境:

在RS1和RS2上安装好httpd服务,在Director上确保iptables是空的:
iptables -F -t filter -t nat -t mangle 
确保Director上的转发功能开启:

添加规则
添加集群Director:
ipvsadm -A -t 192.168.61.129:80 -s rr     
ipvsadm -L -n

添加RS:
ipvsadm -a -t 192.168.61.129:80 -r 192.168.147.129 -m
ipvsadm -a -t 192.168.61.129:80 -r 192.168.147.130 -m

保存规则、清空规则、重载规则:

修改Director调度算法:
ipvsadm -E -t 192.168.61.129:80 -s sh

修改RS:
ipvsadm -e -t 192.168.61.129:80 -r 192.168.147.129:8080 -m
这个命令一直不成功,提示No such destination,不知是什么原因
删除一个RS:
ipvsadm -d -t 192.168.61.129:80 -r 192.168.147.129

查询:

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

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

相关文章

威胁驱动的网络安全方法论

本文主要内容取自洛克希德马丁公司的论文&#xff1a;A Threat-Driven Approach to Cyber Security&#xff0c;想要全面准确了解论文内容的朋友建议阅读原文。希望能够抛砖引玉&#xff0c;为相关领域的相关工作人员带来一点不同的思路或启发&#xff0c;从而更好地维护企业/组…

【Verilog】实验三 数码管实验

目录 一、实验目的&#xff1a; 二、实验内容: 三、实验要求&#xff1a; 四、实验步骤: 一、实验目的&#xff1a; 进一步熟悉Modelsim和VIVADO工具&#xff1b;掌握7段数码管显示译码器&#xff1b;掌握7段数码管数码管动态输出显示的方法。 二、实验内容: 实现按动开关…

Spring Cloud + MyBatis Plus + GraphQL 完整示例

Spring Cloud MyBatis Plus GraphQL 完整示例 1、创建Spring Boot子项目1.1 配置POM&#xff0c;添加必要的依赖1.2 配置MyBatis-Plus 2、集成GraphQL2.1 定义schema.graphqls2.2 添加GraphQL解析器2.3 配置schame文件配置 3、访问测试3.1 查询测试&#xff08;演示&#xff…

MySQL书籍推荐

《高性能MySQL&#xff08;第4版&#xff09;》-西尔维亚博特罗斯 系统层次 Mysql性能优化和高可用架构实践 2020 系统基础 MySQL性能调优与架构设计 系统基础 Mysql技术大全 2021 综合 MySQL数据库应用案例教程 综合实战 从入门到项目实践 综合实战 丰富 超值 MySQ…

MR30分布式IO模块赋能喷水织机

纺织行业作为我国传统支柱产业&#xff0c;历经数千年的演变&#xff0c;如今仍面临着诸多困境&#xff0c;在纺织行业中&#xff0c;每一次技术的飞跃都是对行业边界的勇敢探索。在纺织行业&#xff0c;喷水织机作为关键生产设备&#xff0c;其性能直接影响到产品质量和产能。…

nodejs循环导出多个word表格文档

文章目录 nodejs循环导出多个word表格文档一、文档模板编辑二、安装依赖三、创建导出工具类exportWord.js四、调用五、效果图nodejs循环导出多个word表格文档 结果案例: 一、文档模板编辑 二、安装依赖 // 实现word下载的主要依赖 npm install docxtemplater pizzip --save/…

LabVIEW中“this VI‘s owning library is missing”错误及解决

问题描述 当加载或打开一个VI时&#xff0c;如果其所属的项目库未加载到内存&#xff0c;LabVIEW将提示错误&#xff1a;“this VIs owning library is missing”&#xff08;该VI的所属库不存在&#xff09;。 该问题通常发生在以下情况下&#xff1a; 项目库文件丢失或路径…

LongVU:用于长视频语言理解的空间时间自适应压缩

晚上闲暇时间看到一种用于长视频语言理解的空间时间自适应压缩机制的研究工作LongVU&#xff0c;主要内容包括&#xff1a; 背景与挑战&#xff1a;多模态大语言模型&#xff08;MLLMs&#xff09;在视频理解和分析方面取得了进展&#xff0c;但处理长视频仍受限于LLM的上下文长…

sphinx基本使用

sphix是一个文档生成工具 本文介绍一些基础技能&#xff0c;如果想深入学习&#xff0c;可以查看官方文档 Sphinx官方文档 1.安装虚拟环境 # ubuntu # 使用 venv 创建 .venv虚拟环境 python3 -m venv .venv# 激活虚拟环境 source .venv/bin/activate# windows # 创建虚拟环境…

爬虫第四篇:Xpath 路径表达式全解析:从网页基础到爬取百度贴吧图片实战

简介&#xff1a;本文围绕 Xpath 路径表达式展开讲解&#xff0c;先是介绍了网页相关基础如 html、css、vue 以及前后端分离的概念与示例&#xff0c;包括各部分的结构、作用及简单代码展示&#xff0c;随后详细阐述了 xml 的节点关系、选取节点、谓语等理论知识&#xff0c;最…

HarmonyOS NEXT开发进阶(一):初识 HarmonyOS NEXT开发

文章目录 一、前言二、HarmonyOS NEXT 开发框架三、HarmonyOS NEXT开发指导3.1 Windows环境准备 四、项目拆解4.1 工程目录4.2 全局配置4.2.1 APP全局配置: AppScope层&#xff08;AppScope/app.json5&#xff09;4.2.3 签名全局配置 4.3 APP代码初始化4.4 APP签名文件配置4.5 …

Chrome控制台 网站性能优化指标一览

打开chrome-》f12/右键查看元素-》NetWrok/网络 ctrlF5 刷新网页&#xff0c;可以看到从输入url到页面资源请求并加载网页&#xff0c;用于查看资源加载&#xff0c;接口请求&#xff0c;评估网页、网站性能等&#xff0c;如下图&#xff1a; request、stransferred、resour…

【C++】入门【六】

本节目标 一、继承的概念及定义 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 五、继承与友元 六、继承与静态成员 七、复杂的菱形继承及菱形虚拟继承 八、继承的总结和反思 九、笔试面试题 一、继承的概念及定义 1.继承的概念 继承是面向对象…

MacOS安装sshfs挂载远程电脑硬盘到本地

文章目录 sshfs简介sshfs安装下载安装macFUSE安装sshfs sshfs使用注意事项 sshfs简介 SSHFS&#xff08;SSH Filesystem&#xff09;是一种基于FUSE&#xff08;用户空间文件系统&#xff09;的文件系统&#xff0c;它允许你通过SSH协议挂载远程文件系统。使用SSHFS&#xff0…

亚马逊云(AWS)使用root用户登录

最近在AWS新开了服务器&#xff08;EC2&#xff09;&#xff0c;用于学习&#xff0c;遇到一个问题就是默认是用ec2-user用户登录&#xff0c;也需要密钥对。 既然是学习用的服务器&#xff0c;还是想直接用root登录&#xff0c;下面开始修改&#xff1a; 操作系统是&#xff1…

深度学习中的迁移学习:应用与实践

引言 在深度学习领域&#xff0c;迁移学习&#xff08;Transfer Learning&#xff09;是一个非常强大且日益流行的概念&#xff0c;它通过将从一个任务中学到的知识应用于另一个任务&#xff0c;能够显著加快模型训练速度并提高其泛化能力。迁移学习在许多实际应用中都得到了广…

股市复盘笔记

复盘是股市投资中非常重要的一个环节&#xff0c;它指的是投资者在股市收盘后&#xff0c;对当天的市场走势、个股表现以及自己的交易行为进行回顾和总结&#xff0c;以便更好地指导未来的投资决策。以下是对复盘的详细解释&#xff1a; 一、复盘的目的 总结市场走势&#xff…

ubuntu18.04+qt 5.12.12+安装和实验

引用 【QT | 开发环境搭建】Linux系统(Ubuntu 18.04) 安装 QT 5.12.12 开发环境 ubuntu18.04 安装qt5.12.8及环境配置 1.安装包链接 第一篇中写了 http://download.qt.io/archive/qt/5.12/5.12.12/qt-opensource-linux-x64-5.12.12.run2.安装 到下载目录下 sudo chmod ax…

【目标跟踪】AntiUAV600数据集详细介绍

AntiUAV600数据集的提出是为了适应真实场景&#xff0c;即无人机可能会随时随地出现和消失。目前提出的Anti-UAV任务都只是将其看做与跟踪其他目标一样的任务&#xff0c;没有结合现实情况考虑。 论文链接&#xff1a;https://arxiv.org/pdf/2306.15767https://arxiv.org/pdf/…

LabVIEW氢同位素单质气体定量分装系统

氢同位素单质气体在多个行业中有重要应用&#xff0c;如能源和化工。传统的分装方法面临精度和自动化程度不足的问题。为此&#xff0c;开发了一套基于LabVIEW和质量流量控制器的定量分装系统&#xff0c;提高分装精度和效率&#xff0c;同时减少资源浪费和环境污染。 项目背景…