设为首页 收藏本站
查看: 969|回复: 0

[经验分享] lvs 集群

[复制链接]

尚未签到

发表于 2019-1-3 08:55:22 | 显示全部楼层 |阅读模式
  Cluster 集群  将按照某种组织方式将多台电脑组织起来完成某种特定的任务
三种集群类型:
1. LB ,load Balancing负载均衡  大容量,在一定程度上可以实现高可用的目的
2. HA  High Availabilty高可用集群  实时在线 一年在线时间 99.999%  至少两个主机同时在工作一旦   一个主机down 机了,另一台主机马上替换。
两台主机 只有一台在工作,另一台只是做好随时替换准备
3.  HP  High Perfomance高性能 集群   大量运算 例: 人口统计 天气预报
硬软件 F5 ,lvs,  HAPROXY
Scale on 向上扩展  用更好的性能计算机 来替代性能更差的 那个计算机
Scale  out  向外扩展  使用 多台计算机
LB:负载器软件
    lvs,  haproxy
    Lvs  开源软件 作者 作者章文嵩  
          缺点 单点故障 ,如果负载较大 会down机
         
         
Lvs 提供至少10种算法
    动态
    静态
   高可用集群
SAN  块级别
  要保证 两个服务器 不在互抢 a 主机就要隔一段宣告一下自己还活着
   
  LB 负载 均衡  Director  负责接受客户端请求,并将请求按照某种算法分步到后台真正提供 服务器上。基于硬件(F5)来实现 ,也可以基于软件来实现   
      lvs   haproxy         
   HA  高可用集群:
         软件: heartbeat   corosync+openais RHCS 红帽
         Ultramokey    keepalive  开源软件   
         共享存储
         两台服务器实现 共享文件服务器   效率比较低
          使用专业共享  san  比较昂贵 通过光纤连到san服务器上,输出块级别
                              
LVS : 虚拟服务器    称四层转发 本身是不会修改用户ack
   真正提供节点 realservers
工作模式三种型:
     Net
     DR  路由
     隧道TUN      不能实现端口映射 后两个
Lvs、 功能:
    1.并发能力
     2.  容错
     3 适用性 或收缩 服务器

VIP  虚拟ip地址  并不提供服务,只是转发到后台
RIP    客户端真正提供 工作
DIP  转发器  用来和D/RIP 进行联系的地址
CIP 客户端 ip地址  公网ip
  
Type of   lvs
Lvs –net 模型
      
      1.   DIP RIP  必须在统一子网
       2.   RIP 地址通常是私有地址
        3.   RIP的网关 必须指向DIP
       4. 端口转换    地址转换
        5. 任何操作系统分都可做rip  只要有web
         6. 负载均衡 瓶颈  压力 比较大
  lvs –dr   直接路由 模式
    1. 集群节点 必须在连在物理当中  
    2. rip 可以使用公网ip
    3. director 仅接受用户发来请求 而real servers响应的信息则  不在响应director
     4 .  集群节点 网关不能指向 dip  
    5. 不支持端口转换
    6.  绝大多数操作系统 都能实现real servers   因为支持同一块网卡 配置多ip
  Lvs- tun 隧道
   1 . 集群节点和director节点不必再同一个网段
   2. rip必须使用公网ip
   3. director 只需要处理进来请求,不需要处理出去请求
   4. 响应请求一定不能进过director
   5. director不能做端口映射
   6. 只能使用那些ip隧道 协议的操作系统
  Lvs 调动方法 10种算法:
    静态调动     静态算法  缺陷 不考虑后端实际的当前负载情况
              RR   Round-robin  轮调    轮替意思
              WRR   加强论调    区分后端服务器响应能力 定义权重  2:1 的比例  
              DH   目标地址 hashing    提高命中缓存的    将来自同一个用户的请求始终转发到同一个server   
              SH     源地址 hashing        将来自同一个用户请求始终转发到同一个 route      
    动态调用    算法   检查后端 的连接数    活动和非活动状态连接
              Lc 最少活动连接数     算法   连接数=活动数*256+非活动连接数、
                         同时检查 后台 活动数和非活动数 ,其中连接数最少的会自动连接下一个连接
                        Overhead  最少 活动连接数   
              Wlc 加权最少连接数    考虑非活动连接  算法:连接数=(活动数*256+非活动数)÷权重
                默认 调度方法
                       Wlc  是最常用的算法
              Sed   比例10:1    不考虑非活动连接数 是对wlc 改进 连接数=(活动连接数+1)*256           sed——>nq
             Nq 算法   永不排队  
           Lblc 基于本地最少连接 算法 考虑后台算法  支持权重  是将 dh和wlc 结合起来   用在什么场景:    当一个网络有多个路由和防火墙的时候对用户请求平均分摊负载到防火墙上的时候
           Lblcr 基于本地 带复制最少连接书 对上一个改进 考虑后台负载 支持权重的   

  Lvs 跟 iptables 工作类似
  Lvs  开源软件
   ipvsadm  工作在 内核中 默认是直接做进内核的               
查看 : grep –i ipvs  /boot/canfig-2.6.18.164.e15                        
                                                              
   Ipvsadm 功能:                                     tcp  udp                   端口号  防火墙
         1,集群服务      使用ipvsadm  -A 参数 –t  -u  都要指定 vip地址  port  –f
          2,realserver                          
          3.查看
   配置 lvs –net 模型
         安装操作系统
           提供 web
           设置默认路由  指向dip
           安装lvs
           配置 lvs
需要 三个 服务器
Ipvsadm  -A  -E –t  -u  vip 地址   -s
   -A 添加服务    -E  修改一个服务      -s 指定调度算法   
  ipvsadm  -D  -t|-u  删除服务
         -a|-e  -t|-u   vip  -r  realserver –g|-i -w 指定默认类型  
                  | 表示或                        指定权重
          Ipvsadm  –d –t  vip:port -r  readserver 删除一个readserver
                      -s 保存规则到某个规则里
                      -c 清空规则
                     -R 恢复
                     -L  查看
                     -z 清空计数器
                     -n 显示数据
  

Lvs  Persistence持久性:  给客户端的所有请求必须来自于同一台real server,就要用到 持久性
Pcc  ppc   ftp   
持久连接模板    其实就是内存中的一段空间   
-p n  n指的是持久时常  启动持久连接
每一个用户的记录条目 都有 一个倒数计数器,一旦这个计时器超时了,这个条目就会在模板中删除。
超出了持久连接用户依然在访问  计时器 默认 加长2分钟
  1.类型 PCC  持久客户端连接
      来自同一个用户访问 都被定义到同一台realy server
      
2.PPC  端口连接
   
3.pnmpp持久防火墙 标志连接
                  端口的引擎关系
4. FTP 连接  两个独立的 连接,
           5. 超时连接
端口0  指的是任意服务
PCC   用0 作为端口  并不常用
  /sbin/ipvsadm –A –t ip:0 –s rr –p 300  -p指的是持久性时间
PPC  常用
  防火墙标记:
  Iptables –t mangle –A  PREROUTING  -d ip –p tcp –-dport 80 -j MARK --set-mark 10
  ========================================
     =====LVS-NAT 的实验

  
    一个Director  打开路由功能,在定义集群服务,添加realserver ,然后验证
    两个 realserver  地址在同一个网段,把网关指向 DIP,  要用桥接的
   
   配置 ip地址   
在 realserver 1上配置 ip地址
#ifconfig eth0  ip+mask
网关
# route add default gw  网关地址
安装# yum install httpd  
同样在 realserver 2配置
#ifconfig  eth0  ip+mask
# route add default gw  网关地址
# yum install  httpd
  在 real 1和real 2 上 都做
为了 验证LAM 需要 把
# yum install mysql-server php php-mysql
  为了最后能看到效果: 在real 1和real 2上做 个网页
  real 1#vim /var/www/html/index.html
   real 1 server 1 ceshi
# hostname localhost
# service httpd start
  real 2#vim /var/www/html/index.html
   real 2 service 2 ceshi
# hostname localhost
# service httpd start
  配置director ip  在这里Director 用的是两块网卡
# ifconfig eth0  ip
#ifconfig eth1  ip

看一下路由功能是否打开

  
         
开始配置 ipvsadm
在 director 配置
# ipvsadm -A -t  ip地址:80  -s  rr      :80指的是端口
# ipvsadm -L -n 查看一下配置
添加 real 1
#ipvsadm -a -t ip地址:80 -r  real1的地址 -m
#ipvsadm -a -t ip地址:80 -r  real2的地址 -m
  查看
# ipvsadm -Ln
  可以在 浏览器上测试了
输入 director  ip地址/index.html
  
修改算法:
  #ipvsadm  -E -t ip地址:80 -s wlc
查看
#ipvsadm -Ln
  改权重
#ipvsadm -e -t ip地址:80 -r real 2的ip -m -w 3     用-w 把权重改为3
查看
#ipvsadm -Ln
  
LVS -DR 实验

  实验搭建环境:
Director: eth0:0  VIP 192.168.0.110  桥接
             eth0 DIP192.168.0.10
real server 1:eth0  rip  192.168.0.12    桥接
                   lo:0   vip 192.168.0.110   
real server 2 :eth0   rip 192.168.0.13   桥接
                     lo:0   vip 192.168.0.110  
   Director:
DIP 要配置在接口上,VIP要配置在接口别名上
VIP:必须是公网
rip :可以不是公网,可以不再同一网段
real server:
   RIP:要配置接口上,VIP要配置在 lo的别名上
在 real 1 配置ip地址
  # ifconfig eth0 192.168.0.12/24


  #ifconfig lo:0 192.168.0.110 broadcast 192.168.0.110 netmask 255.255.255.255 up
#route add -host 192.168.0.110 dev lo:0
#route -n   查看
  

在real 2 上配置ip

# ifconfig eth0 192.168.0.13/24


  #ifconfig lo:0  192.168.0.110 broadcast 192.168.0.110 netmast 255.255.255.255 up
#route add -host 192.168.0.110 dev lo:0
  #route -n

   
在director 配置
#ifconfig eth0 192.168.0.10/24
#ifconfig eth0:0 192.168.0.110 broadcast 192.168.0.110 netmask 255.255.255.255 up
#route add -host 192.168.0.110 dev eth0:0
#service network restart

#ipvsadm -A -t 192.168.0.110:80 -s wlc
#ipvsadm -a -t 192.168.0.110:80 -r 192.169.0.12 -g -w 2
#ipvsadm -a -t 192.168.0.110:80 -r 192.169.0.13 -g -w 4
#ipvsadm -Ln 查看                  

加入要保持页面一样,另外在准备一台服务器专门存放网页信息的,在通过nfs共享方式挂载到 real server 的网页目录下,
持久连接:
#ipvsadm -E -t 192.168.0.110:80 -s wlc -p 3600
#ipvsadm -Ln
  高可用集群 HA
    一年down 机时间 99.99999%
两台服务器 同时工作
模式 active/passive   一个处于活动,一个处于被用
       active/active    两个都处于活动 ,通过不同服务来实现的
使用共享式的raid 机制  
raid  和nfs 区别  
  raid 是通过总线 连接在服务器上的
nfs  是通过网络  方式共享
信息层  messagehg  传递心跳信息 基于udp
  隔离 级别:
      节点级别 stonith   切断电源
      资源级别 fence  把资源资源截断
  HA: quorum    stonith
n/n-1  有一个空闲的服务器
n/m  m小于n的 ,有m 个空闲服务器
集群的分区:导致资源挣用
法定代表人数:集群 必须超过半数以上 才算是正常
        脑裂 和仲裁:在某种情况下,由于底层通知错误,或者传递的信息的介质出现错误,会出现资源争用的情况。 称之脑裂
Dc 指定的协调员 就是头 ,为了避免资源争用   定义故障优先级
   

共享 存储:
DAS   直接附加存储
       RAID  共享式的
       SCSI   磁盘
NAS  网络共享存储
      文件级别共享
SAN 存储区域网络
      块级别的   单独主机或单独服务器
       SCSI  
        Fc   通过光网络传输  但是交换机接口很贵
         Ipsan (iscsi) 带宽是有限的   共享是块 级别
         
   cluster filsesystem  集群文件系统:
     工作在HA
     开源软件软件 :
      GFS2    readhat 公司   
     Ocfs   都做进内核中了
     
     故障转移域: 分组  
     怎么定义 两个节点的 集群法定票数:rhcs 里quorum disk 共享磁盘   


  
      
  4个层次:
      1. 最底层 :基础架构层   传递心跳信息的 ,靠单独插件来实现
       2.成员层 :对整个集群发定票数计算,重新收敛状态信息  简称ccm,
                承上启下  接收不到另外一个心跳,重新计算
      3.资源分配层: crm核心  叫集群管理器   crm维护cib 集群信息机库   cib 是以xml文件
                   策略 pe和te   只能运行在DC上, 无论任何 时候一个集群 节点时候发生了改变都必须要通过DC来实现   
                    pe 是做策略的  te 是做执行的
                       
      4.资源代理层 : 启动  停止   获取信息   lrm 是执行crm传递 过来在本地执行某个资源监控或停止
     
   Lrm  管理本地 , Crm   管理全局的
资源 可以是ip 也可以是服务
  Web
  Ip   storage  httpd 要按照顺序启动
HA: 层次
  成员关系层 :  绘制整个集群中拓扑图
           Ccm  向其它层传递信息
  资源分配层   crm ,lrm,CIB
         Crm集群资源管理器  直接调用下层  最核心的      
          DC  指定协调员  有PE和TE   有te执行  
         Lrm 本地资源管理器   
资源代理层: ra   要分组  资源约束
         Ra 资源代理   格式 lsb,ocf,heartbeat
linux HA:
   heartbeat  有三个版本 (v1,v2,v3)
          v2版本 需要手写 xml ,但官方提供了 cib.Xml  
   keepalive              
   uitramonkey
   corosync/openais  结合起来使用  红帽6版本  在用
   RHCS (luci  riccii) 红帽的  完整的解决方案  
         提供web   cman 基于命令行的管理工具 ccsd
        
/etc/ha.d/hd.cf 对心跳信息加密的
/etc/ha.d/haresoucs 集群资源管理器
/etc/ha.d/quthkeys
  启动服务 一定要手动启动 ,而且确保下次启动不能让它自动启动
实验 配置静态地址,

  
搭建环境:
  node 1: eth0  192.168.0.11   桥接  
           eth1    192.168.11.11 通过虚拟通道连接  心跳测试
   提供 web 服务,httpd
node 2 : eth0   192.168.0.12    桥接
              eth1  192.168.11.12   通过虚拟通道 连接 心跳测试
    提供web 服务,httpd
向外提供服务   公网 ip 192.168.0.10
配置 node 1 上的节点:
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
把 BOOTPROTU=static
  IPADDR=192.168.0.11
  NETMASK=255.255.0.0
#vim /etc/sysconfig/network-scripts/ifcfg-eth1
把 BOOTPROTU=static
添加  IPADDR=192.168.11.11
       NETMASK=255.255.0.0
#vim /etc/sysconfig/network
如果有网关 把 网关删除
#service network restart
#vim /etc/sysconfig/network
HOSTNAME=node1.a.org
#hostname node1.a.org
#vim /etc/host
添加 192.168.0.11   node1.a.org   node1
        192.168.0.12  node2.a.org   node2
  #yum install httpd
  编辑个网页 为了 验证:
# vim /var/www/html/index.html
node 1.a.org
#service httpd start
#service httpd stop   停止服务
#chkconfig httpd off  关闭不让开机自动启动
  接下来装集群软件:
下载 软件包

  
# yum localinstall *.rpm --nogpgcheck
#cd /etc/hd.d
#cp ha.cf haresource authkeys /etc/ha.d
#vim ha.cf
把 logfile /var/log/ha-log 把#去了
在 bcast let le2   # Solaris  行后 添加
bcast eth1


  #vim authkeys
最后 添加
auth 2
2  sha1 suibianxie       后边加密串随便写的
#chown 400 authkeys  改权限
#vim haresources
在 最后 添加:
node1.a.org    192.169.0.10/16/eth0/192.168.255.255 httpd
#./ha_propagate   是个执行脚本
#scp haresources node2:/etc/ha.d
# /etc/init.d/heartbeat start 启动
#tail /var/log/ha-log   查看
#ssh node2 --‘/etc/init.d/hearthear start'  启动第二个节点
  配置node 2
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
把 BOOTPROTU=static
添加 IPADDR=192.168.0.12
      NETMASK=255.255.0.0
  #vim /etc/sysconfig/network-scripts/ifcfg-eth1
把 BOOTPROTU=static
添加 PADDR=192.168.11.12
      NETMASK=255.255.0.0
#service network restart
#vim /etc/sysconfig/network
HOSTNAME=node2.a.org
#hostname node2.a.org
# yum install httpd

编辑个网页 为了 验证:
# vim /var/www/html/index.html
node 2.a.org


#service httpd start
测试 在浏览器上 输入 ip地址

#service httpd stop   停止服务
#chkconfig httpd off  关闭不让开机自动启动

下载 软件包


  # yum localinstall *.rpm --nogpgcheck -y
  
测试 在浏览器上 输入 公网 ip

如果节点一,坏了 ,节点二自动启动











运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-658823-1-1.html 上篇帖子: LVS的简单示例(一) 下篇帖子: Linux集群技术之LB之LVS
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表