集群的一点学习

来源:互联网 发布:php招聘 编辑:程序博客网 时间:2024/04/30 14:20

一.集群分为三种,高可用(故障迁移),负载均衡,高性能

    主要学习高可用(HA)和负载均衡(LB)。

负载均衡的实现方式一般有硬件或软件两种方式,硬件一般是交换机实现(F5),软件一般分为系统和第三方应用的。系统的有红帽自带的rhcs,第三方应用的有LVS,nginx、haproxy等。

高可用一般有:keepalived,zookeeper,heartbeat等

二.LVS简述

   LVS一般会分出DS(dirctor server)和RS(real server),会虚拟出一个IP供外界访问(VIP),外界进来的流量经过lvs作分发请求(注意这里流量并不经过lvs),经过负载策略和负载算法,分给各个real server,real server再对存储集群进行IO操作。

   LVS的三种负载策略。

1.NAT 网络地址翻译

   RS通过修改报文的目的地址,将客户传给VIP的报文再分发给RS。RS返回数据时,经过DS时,再次修改报文的地址给客户。这种情况下,DS的压力比较大。

2.TUN

           进来的流量经过DS指挥分发,出去的流量不经过DS,直接返回客户。这种模式下,DS和RS不用在同一网段

        3.DR

           原理与TUN一样,只不过DS和RS需要在同一网段

  调度算法,据说有8种。只学习了2种常用的。

1.RR(round robin) 

    一比一轮询,不考虑性能,均衡的分发给每一个RS

         2.WRR(weighted round robin)

             根据性能设置权值,再根据权值决定哪一个RS  

如果LVS是单点部署,可能会出现单点故障。所以要对LVS进行主备设置,当LVS master出故障的时候备LVS backup能够立即顶上,也就是高可用。

3.keepalived的安装。

    先讲下keepalived

    1 )安装 yum install keepalive

     2)配置文件 目录

            目录:/etc/keepalived/*

     3)keepalived.conf详解

地址:http://www.linuxidc.com/Linux/2013-07/86889.htm

           http://blog.csdn.net/jibcy/article/details/7826158

http://server.it168.com/a2009/0926/746/000000746749_3.shtml


内容:    

    ! Configuration File for keepalived


global_defs {                                                                             #全局定义块
   notification_email {
     xxx@139.com                                                                                          #接受邮件的邮箱  
   }
   notification_email_from keepalived@gmail.com                               #发送邮件的邮箱服务器
   smtp_server smtp.google.com                                                              #发送邮件的邮箱
   smtp_connect_timeout 30                                                                      #超时重发的时间
   router_id LVS_SV022                                                                             #负载均衡器标识
LVS}

vrrp_instance VI_1 {                                #高可用切换的实例
    state BACKUP                                     # VI_1 处于备用状态
    interface bond1                                   #  对外提供服务的网络接口(在DR模式中,lvs_sync_daemon_interface与这个接口相同,类似于心跳线,但是不会出现脑裂问题)
    virtual_router_id 51                             # 虚拟路由id
    priority 100                                           #优先级(正比)
    advert_int 1                                          #同步通知间隔  主备检查的时间间隔
    authentication {                                  #主备间验证方式
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {                            #虚拟IP地址(VIP)
        10.1.1.1/24 dev bond1
        10.1.2.1/24 dev bond0
    }
}

virtual_server_group LVS_CONSOLE {
    172.17.2.24 8443
}

virtual_server_group LVS_CONSOLE {
    172.17.2.24 8443
}

virtual_server_group LVS_CONSOLE {
    172.17.2.24 8443
}
virtual_server group LVS_BUSINESS {
    delay_loop 6                                                  #健康检查时间间隔
    lb_algo rr                                                         #负载均衡调度算法(rr)
    lb_kind DR                                                      #负载均衡转发规则  (DR)
    persistence_timeout 50                                #会话保持时间(在这个时间内只会保持在同一RS上访问)
    protocol TCP                                                   #转发协议
    real_server 172.17.0.34 8090 {
        weight 1                                                      #权重决定负载大小
        HTTP_GET {
            url {
              path file/
              digest b6dae9dfa5d7b14c37f92480a8cc2bee
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

4)触发高可用切换的动作

1.检查网络和keepalived进程的存在

 2.通过配置vrrp_script这个东西,来制定切换动作。详情看这个大神的blog http://my.oschina.net/hncscwc/blog/158746



0 0
原创粉丝点击