Linux系统架构(高可用 负载均衡) KeepAlived

原创 2016年08月29日 11:42:41

Linux系统架构(高可用 负载均衡)

标签(空格分隔): linux


一、Linux高可用

1.1 说明

高可用,当A机器内存爆满B机器无法ping通A机器,这时候B机器就会将B机器的对应的服开启。

1.2 安装

yum install -y heartbeat
yum install -y libnet

1.3 配置文件

拷贝三个文件,HA机器的机器保持配置一致

cd /usr/share/doc/heartbeat-3.0.4
cp authkeys ha.cf haresources /etc/ha.d/
cd /etc/ha.d/

authkeys 文件内容

auth 3
3 md5 Hello!

ha.cf文件

debugfile /var/log/ha-debug
logfile /var/log/ha.log
logfacility local0
# 监听机器个数
keepalive 2
#死亡时间
deadtime 30
# 警告时间
warntime 10
initdead 60
# 监听端口
udpport 694
# 通过那个网卡和其他ha机器保持通信
bcast eth0
auto_failback on
#当前ha的多个节点,master需要在 /etc/hosts 中配置
node master
node slave
# 路由器ip
ping 192.168.1.1
# 销毁ip的命令
respawn hacluster /usr/lib64/heartbeat/ipfail

haresource 文件

master 192.168.1.109/24/eth0:1 nginx
# master ha主机的 hostname
# 192.168.1.109 移动的ip地址
# 24 ip地址通道
# eth0 网卡名
# :1 同一张网卡的另一个ip
# nginx 监控的服务名,多个空空格隔开

1.4 启动服务

第一次启动会很慢,稍等几分钟后,在放访问 192.168.1.109 自动会跳转成功,HA集群的机器都需要启动这个服务。

/etc/init.d/heartbeat start

二、负载均衡 之 NAT 模式

2.1 说明

优点:可以简单快速配置负载均衡
缺点:单机器有瓶颈
附属机器的网关(GATEWAY)必须是主机内网ip

2.2 安装软件

yum install -y ipvsadm

2.3 通过脚本配置

脚本:/usr/local/sbin/lvs_nat.sh

#!/bin/bash
# director 服务器上开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward

## 关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects

# director 设置nat防火墙功能
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -j MASQUERADE

# director 设置 ipsadm
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C #清空ipvsadm的规则
# 192.168.145.128 外网
$IPVSADM -A -t 192.168.145.128:80 -s rr
$IPVSADM -a -t 192.168.145.128:80 -r 192.168.1.27:80 -m
$IPVSADM -a -t 192.168.145.128:80 -r 192.168.1.28:80 -m

三、负载均衡 之 DR 模式

3.1 说明

优点:对服务器没有任何瓶颈,需要通过虚拟ip访问,主机的eth0:0 IP和期附属机器的lo:0的ip需要保持一直

3.2 执行脚本

主机执行脚本

#!/bin/bash
# director 服务器上开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=192.168.1.100
rs1=192.168.1.27
rs2=192.168.1.28
ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 down
ifconfig eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev eth0:0
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1

附属机器执行脚本

#!/usr/bin/env bash
vip=192.168.1.100
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 down
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

配置完成后,可以访问 192.168.1.100 切换两个不同机器的80端口。

四、keepalived 高可用,监控web服务器状态

4.1 安装 两台机器,一组一丛

yum install -y keepalived

主机器配置,虚拟ip为:192.168.1.100

vrrp_instance VI_1 {
    state MASTER  # 备用服务器上为BACKUP
    interface eth0
    virtual_router_id 51
    priority 100 #备用服务器上为90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

virtual_server 192.168.1.100 80 {
    delay_loop 6 # 每个6秒查询Realserver状态
    lb_algo rr   # lvs算法
    lb_kind DR   # Direct Route
    persistence_timeout 0 # 同一IP链接60秒内被分配到同一台realserver
    protocol TCP            #用tcp协议检查realserver状态

    real_server 192.168.1.27 80{
        weight 100
        TCP_CHECK {
            connect_timeout 10 #10秒钟无响应超时
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }

    real_server 192.168.1.28 80{
        weight 100
        TCP_CHECK {
            connect_timeout 10 #10秒钟无响应超时
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

keepalived从机器上

vrrp_instance VI_1 {
    state BACKUP  # 备用服务器上为BACKUP
    interface eth0
    virtual_router_id 51
    priority 90 #备用服务器上为90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

virtual_server 192.168.1.100 80 {
    delay_loop 6 # 每个6秒查询Realserver状态
    lb_algo rr   # lvs算法
    lb_kind DR   # Direct Route
    persistence_timeout 0 # 同一IP链接60秒内被分配到同一台realserver
    protocol TCP            #用tcp协议检查realserver状态

    real_server 192.168.1.27 80{
        weight 100
        TCP_CHECK {
            connect_timeout 10 #10秒钟无响应超时
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }

    real_server 192.168.1.28 80{
        weight 100
        TCP_CHECK {
            connect_timeout 10 #10秒钟无响应超时
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

启动主和备用机器的keepalived服务
/etc/init.d/keepalived start
查看端口转发规则
ipvsadm -ln

【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Web服务器集群

额,博客名字有点长。。。前言终于到这篇文章了,心情是有点激动的。因为这篇文章会集中以前博客讲到的所有Nginx功能点,包括基本的负载均衡,还有动静分离技术再加上这篇文章的重点,通过Keepalived...
  • u010028869
  • u010028869
  • 2016年01月30日 21:42
  • 5543

高可用&负载均衡常用架构

下面总结一下常用的高可用复杂均衡架构模式。 1. 客户端切换。 客户端配置多个服务器地址。如果发生某个服务器无法访问或者使用异常,客户端就切换到其它服务器上。 优点:简单,高效,可以在业务层面检测...
  • vargas
  • vargas
  • 2015年10月01日 14:05
  • 1929

Keepalived + nginx实现高可用性和负载均衡

在前面的一篇中讲到了Heartbeat作为高可用服务架构的解决方案,今天有试验了一种全新的解决方案,即采用Keepalived来实现这个功能。 Keepalived 是一种高性能的服务器高可用或...
  • kingice1014
  • kingice1014
  • 2016年09月09日 16:54
  • 913

Haproxy+keepalived实现高可用负载均衡

一、搭建Haproxy环境   1、下载安装依赖包 yum install wget gcc gcc-c++ autoconf automake make   2、下载安装haproxy  wge...
  • dandan2zhuzhu
  • dandan2zhuzhu
  • 2016年04月27日 16:29
  • 1976

keepalived + nginx组建高可用负载平衡Web server集群

1 nginx负载均衡高可用 1.1 什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服...
  • l192168134
  • l192168134
  • 2016年07月01日 15:30
  • 5513

使用pgpool-ii 搭建postgresql 高可用、负载均衡架构

pgpool有很多功能,其中最重要的我觉得是如下几个:提供连接池(负载均衡模式),复制模式(能通过pgpool分发sql,因此是基于sql语句的分发复制),主备模式(依赖其他的复制,如snoly和流复...
  • kc87654321
  • kc87654321
  • 2016年02月23日 14:54
  • 2526

ActiveMQ实现负载均衡+高可用部署方案

一、架构和技术介绍 1、简介 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现 2、...
  • HUXU981598436
  • HUXU981598436
  • 2016年03月12日 23:17
  • 3668

Lvs+Keepalived+MySQL Cluster架设高可用负载均衡Mysql集群

Lvs+Keepalived+MySQL Cluster架设高可用负载均衡Mysql集群 MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用...
  • samxx8
  • samxx8
  • 2015年09月26日 09:13
  • 976

浅谈web应用的负载均衡、集群、高可用(HA)解决方案

浅谈web应用的负载均衡、集群、高可用(HA)解决方案 1、熟悉几个组件 1.1、apache —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服...
  • wpydaguan
  • wpydaguan
  • 2015年07月09日 20:31
  • 3581

ActiveMQ高可用+负载均衡集群

一,高可用集群 从ActiveMQ5.9开始,ActiveMQ的集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper+LevelDB的Master-Slave实...
  • xiaobai001gonsoni
  • xiaobai001gonsoni
  • 2016年12月11日 09:08
  • 604
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux系统架构(高可用 负载均衡) KeepAlived
举报原因:
原因补充:

(最多只允许输入30个字)