• LVS概述


    LVS原理概述:
    lvs是一个开源软件,是Linux virtual server的简写,即linux虚拟服务器,是一个虚拟的服务器集群系统,lvs集群采用ip负载均衡技术和基于内容的请求分发技术。将客户端的请求均衡的转移到后边的不同的服务器上,且调度器自动屏蔽掉服务器的故障,整个服务器集群结构对于用户是透明的。集群采用三层结构:负载均衡调度层、应用服务集群层、共享存储层。lvs调度层一般是两台主备lvs服务器,主要作用是平衡真实服务器中的负载和检查每个真实服务器中服务的完整性。
     
    负载均衡集群常用软件有:lvs、haproxy、nginx
    高可用集群常用软件:heartbeat、keepalived、corosync+pacemaker(RHCS)
    功能:
    ipvsadm负责数据分发(负载均衡)
    keepalived负责lvs服务器错误检测和健康检查 
    lvs负载均衡技术:
    1、VS/NAT(网络地址转换)
    2、VS/DR(直接路由方法)
    3、VS/TUN(IP隧道方法)
    常用VS/DR和VS/TUN
    lvs体系结构:
    使用lvs架设的服务器集群系统有三个部分:最前端的负载均衡层-Load Balancer;中间服务器群组层-server Array;最底层数据共享层-shared storage表示。
    Load Balancer层:位于集群系统的最前端,有一台或多台父子均衡调度器(Director server)组成,lvs模块就安装在Director server上,而Director主要作用类似于一个路由器,它含有完成lvs功能所设定的路由表,通过这些路由表把用户的请求发送到Real server上,同时在Director server上还要安装对Real server服务的监控模块Ldirectord(集成在heartbeat中),此模块用于检测各个Real server服务的健康状况。
    Server Array层:由一组运行应用服务的机器组成,可以是web服务、mail服务、ftp服务、dns服务等。实际应用中Director server也可以同时兼任Real server的角色。
    Shared Storage层:为所有Real server提供共享存储空间和内容一致的存储区域,一般可以使用NFS/CIFS网络文件共享数据,但是NFS在繁忙业务系统中性能不是很好,这是可以使用集群文件系统,如红帽的GFS2文件系统,oracle提供的ocfs2文件系统。可以使用iscsi、DM多路径存储、MFS分布式文件存储、DRBD
    从整个lvs结构可以看出Director server是整个lvs的核心,linux系统(内核2.6)可以不用任何设置就支持lvs功能。
    LVS安装和配置
    第一种:通过ipvsadm命令行配置
    第二种:通过红帽工具piranha来配置
    通过ipvsadm命令行来配置:
    1、yun install ipvsadm
    2、加载ipvs规则,保存规则
    3、在Director server上绑定vip
    ifconfig eth0:0 192.168.0.200 netmask 255.255.255.0 up
    4、Real server设置,/etc/sysctl.conf内核设置
    5、Real server添加接口和路由规则
    ifconfig lo:0 192.168.0.200 netmask 255.255.255.255 up
    route add -host 192.168.0.200 dev lo:0
    6、测试访问vip ip反复刷新网页出现不同网页则表示成功
    一、通过红帽Piranha实现web负载均衡
    声明:可以不用经过以上配置,直接通过web界面配置lvs比较简单
    两台负载均衡调度服务器(主/备)、vip、两台Real server
     
    piranha方案是基于lvs基础上设计的一套负载均衡解决方案。
    一个活动lvs负载均衡调度器和一个备份的
    yum install piranha -y
    配置文件/etc/sysconfig/ha/lvs.cf
    设定密码,启动服务,进入web界面配置,ip:3636
    配置主lvs和备份lvs,配置添加lvs(vip信息),配置realserver信息,启动lvs服务pluse。
    备份lvs和主lvs一样,直接拷贝lvs.cf到相应目录
    测试:
    ipvsadm    -ln    //查看lvs链接状态
    二、通过heartbeat搭建lvs高可用集群
    一台主心跳服务器和一台备份心跳服务器
    两台Real sever
     
    yum install heartbeat heartbeat-libs heartbeat-devel ldirectord
    修改/etc/ha.d/ha.cf文件
    加载内核加载watchdog
    #modprobe softdog
    在/etc/modprobe.d下添加watchdog.conf
    options    softdog    nowayout=0
    资源文件/etc/ha.d/haresources修改
    认证文件/etc/ha.d/authkeys权限600
    配置/etc/ha.d/ldirectord.cf
    主心跳服务器配置完后,拷贝/etc/ha.d目录下的authkeys、haresources、ha.f、ldirectord.cf到备份心跳服务器。
    启动服务后,正常的话会多一个eth0:0接口
    在Real server上添加接口和路由
    #ifconfig eth0:0 192.168.0.200 netmask 255.255.255.255 up
    #route add -host 192.168.0.200 dev eth0:0
    然后测试ipvsadm -Lnc查看详细链接情况
    三、通过keepalived搭建lvs高可用集群
    两台负载均衡调度服务器(主/备)、VIP、两台Real server
     
    源码编译安装keepalived    ./configure    --prefix=/usr/local/keepalived
    创建软连接,修改主备配置文件,Real server上添加接口和路由规则
  • 相关阅读:
    springboot mybatis自定义枚举enum转换
    springboot结合swagger生成接口文档
    Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre
    java枚举enum equal与==
    linux安装redis
    springboot添加第三方的jar或本地jar
    SpringBoot Junit测试Controller
    List集合分页
    SpringBoot集成redisson分布式锁
    转载- ACM常见的各种说法
  • 原文地址:https://www.cnblogs.com/cornell/p/3853237.html
Copyright © 2020-2023  润新知