binghai03 发表于 2019-1-3 08:55:22

lvs 集群

  Cluster 集群将按照某种组织方式将多台电脑组织起来完成某种特定的任务
三种集群类型:
1. LB ,load Balancing负载均衡大容量,在一定程度上可以实现高可用的目的
2. HAHigh Availabilty高可用集群实时在线 一年在线时间 99.999%至少两个主机同时在工作一旦   一个主机down 机了,另一台主机马上替换。
两台主机 只有一台在工作,另一台只是做好随时替换准备
3.HPHigh Perfomance高性能 集群   大量运算 例: 人口统计 天气预报
硬软件 F5 ,lvs,HAPROXY
Scale on 向上扩展用更好的性能计算机 来替代性能更差的 那个计算机
Scaleout向外扩展使用 多台计算机
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 功能:                                     tcpudp                   端口号防火墙
         1,集群服务      使用ipvsadm-A 参数 –t-u都要指定 vip地址port–f
          2,realserver                        
          3.查看
   配置 lvs –net 模型
         安装操作系统
         提供 web
         设置默认路由指向dip
         安装lvs
         配置 lvs
需要 三个 服务器
Ipvsadm-A-E –t-uvip 地址   -s
   -A 添加服务    -E修改一个服务      -s 指定调度算法   
ipvsadm-D-t|-u删除服务
         -a|-e-t|-u   vip-rrealserver –g|-i -w 指定默认类型
                  | 表示或                        指定权重
          Ipvsadm–d –tvip:port -rreadserver 删除一个readserver
                      -s 保存规则到某个规则里
                      -c 清空规则
                     -R 恢复
                     -L查看
                     -z 清空计数器
                     -n 显示数据
  

LvsPersistence持久性:给客户端的所有请求必须来自于同一台real server,就要用到 持久性
Pccppc   ftp   
持久连接模板    其实就是内存中的一段空间   
-p nn指的是持久时常启动持久连接
每一个用户的记录条目 都有 一个倒数计数器,一旦这个计时器超时了,这个条目就会在模板中删除。
超出了持久连接用户依然在访问计时器 默认 加长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 –APREROUTING-d ip –p tcp –-dport 80 -j MARK --set-mark 10
  ========================================
   =====LVS-NAT 的实验
http://blog.运维网.com/attachment/201109/133604430.jpg
  
    一个Director打开路由功能,在定义集群服务,添加realserver ,然后验证
    两个 realserver地址在同一个网段,把网关指向 DIP,要用桥接的
   
   配置 ip地址   
在 realserver 1上配置 ip地址
#ifconfig eth0ip+mask
网关
# route add default gw网关地址
安装# yum install httpd
同样在 realserver 2配置
#ifconfigeth0ip+mask
# route add default gw网关地址
# yum installhttpd
  在 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 eth0ip
#ifconfig eth1ip

看一下路由功能是否打开
http://blog.运维网.com/attachment/201109/133844676.jpg
  
         
开始配置 ipvsadm
在 director 配置
# ipvsadm -A -tip地址:80-srr      :80指的是端口
# ipvsadm -L -n 查看一下配置
添加 real 1
#ipvsadm -a -t ip地址:80 -rreal1的地址 -m
#ipvsadm -a -t ip地址:80 -rreal2的地址 -m
  查看
# ipvsadm -Ln
  可以在 浏览器上测试了
输入 directorip地址/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 实验
http://blog.运维网.com/attachment/201109/141200997.jpg
  实验搭建环境:
Director: eth0:0VIP 192.168.0.110桥接
             eth0 DIP192.168.0.10
real server 1:eth0rip192.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

http://blog.运维网.com/attachment/201109/134019741.jpg
  #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

http://blog.运维网.com/attachment/201109/134124775.jpg
  #ifconfig lo:0192.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/mm小于n的 ,有m 个空闲服务器
集群的分区:导致资源挣用
法定代表人数:集群 必须超过半数以上 才算是正常
      脑裂 和仲裁:在某种情况下,由于底层通知错误,或者传递的信息的介质出现错误,会出现资源争用的情况。 称之脑裂
Dc 指定的协调员 就是头 ,为了避免资源争用   定义故障优先级
   

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

http://blog.运维网.com/attachment/201109/134739344.jpg
  
      
4个层次:
      1. 最底层 :基础架构层   传递心跳信息的 ,靠单独插件来实现
       2.成员层 :对整个集群发定票数计算,重新收敛状态信息简称ccm,
                承上启下接收不到另外一个心跳,重新计算
      3.资源分配层: crm核心叫集群管理器   crm维护cib 集群信息机库   cib 是以xml文件
                   策略 pe和te   只能运行在DC上, 无论任何 时候一个集群 节点时候发生了改变都必须要通过DC来实现   
                  pe 是做策略的te 是做执行的
                     
      4.资源代理层 : 启动停止   获取信息   lrm 是执行crm传递 过来在本地执行某个资源监控或停止
   
   Lrm管理本地 , Crm   管理全局的
资源 可以是ip 也可以是服务
  Web
Ip   storagehttpd 要按照顺序启动
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 (luciriccii) 红帽的完整的解决方案
         提供web   cman 基于命令行的管理工具 ccsd
      
/etc/ha.d/hd.cf 对心跳信息加密的
/etc/ha.d/haresoucs 集群资源管理器
/etc/ha.d/quthkeys
  启动服务 一定要手动启动 ,而且确保下次启动不能让它自动启动
实验 配置静态地址,
http://blog.运维网.com/attachment/201109/142332709.jpg
  
搭建环境:
  node 1: eth0192.168.0.11   桥接
         eth1    192.168.11.11 通过虚拟通道连接心跳测试
   提供 web 服务,httpd
node 2 : eth0   192.168.0.12    桥接
            eth1192.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.12node2.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关闭不让开机自动启动
  接下来装集群软件:
下载 软件包
http://blog.运维网.com/attachment/201109/135706972.jpg
  
# 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

http://blog.运维网.com/attachment/201109/140406939.jpg
  #vim authkeys
最后 添加
auth 2
2sha1 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关闭不让开机自动启动

下载 软件包

http://blog.运维网.com/attachment/201109/135553482.jpg
  # yum localinstall *.rpm --nogpgcheck -y
  
测试 在浏览器上 输入 公网 ip

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










页: [1]
查看完整版本: lvs 集群