3.1部署keepalived

3.1.1下载keepalived源码包,并解压

# wget http://www.keepalived.org/software/keepalived-1.4.2.tar.gz

# tar xf keepalived-1.3.6.tar.gz

# cd keepalived-1.3.6

3.1.2安装包

# ./configure --prefix=/usr/local/keepalived --disable-fwmark && make && make install

# cp /usr/local/src/keepalived-1.3.6/keepalived/etc/init.d/keepalived.rh.init /etc/sysconfig/keepalived.sysconfig

# cp -f /usr/local/src/keepalived-1.3.6/keepalived/keepalived.service  /usr/lib/systemd/system/

# cp  /usr/local/src/keepalived-1.3.6/bin/keepalived  /usr/sbin/

3.1.3配置keepalived

分别在两台负载服务器同时执行以下操作安装keepalived:

3.1.3.1master服务器:

# mkdir /etc/keepalived

# mkdir /etc/keepalived/vip

# cat /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {

state MASTER  # 主机类型,MASTER, BACKUP

interface br0  # 实例绑定的网卡

virtual_router_id 80  # router_id必改

priority 50   # 优先级

advert_int 1  # 检查间隔,默认为1秒

unicast_src_ip 192.168.10.205  # 本机ip

unicast_peer {

192.168.10.206  # 备机ip

}

authentication {

auth_type PASS  # 负载同步验证方式

auth_pass 123456

}

virtual_ipaddress {

192.168.10.100/24 dev br0 label br0:0  # vip配置

}

}

include /etc/keepalived/vip/*.conf  # 配置文件导入

# vim /etc/keepalived/vip/vip_br1.conf

vrrp_instance VI_2 {

state BACKUP

interface br1

virtual_router_id 81

priority 100

advert_int 1

unicast_src_ip 192.168.20.205

unicast_peer {

192.168.20.206

}

authentication {

auth_type PASS

auth_pass 123456

}

virtual_ipaddress {

192.168.20.100/24 dev br1 label br1:0

}

}

3.1.3.2backup服务器:

# mkdir /etc/keepalived

# mkdir /etc/keepalived/vip

# cat /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {

state MASTER

interface bond0

virtual_router_id 80

priority 100

advert_int 1

unicast_src_ip 192.168.10.206

unicast_peer {

192.168.10.205

}

authentication {

auth_type PASS

auth_pass 123456

}

virtual_ipaddress {

192.168.10.100/24 dev bond0 label bond0:0

}

}

include /etc/keepalived/vip/*.conf

# vim /etc/keepalived/vip/vip_br1.conf

vrrp_instance VI_2 {

state BACKUP

interface bond1

virtual_router_id 81

priority 50

advert_int 1

unicast_src_ip 192.168.20.205

unicast_peer {

192.168.20.206

}

authentication {

auth_type PASS

auth_pass 123456

}

virtual_ipaddress {

192.168.20.100/24 dev bond1 label bond1:0

}

}

3.1.3.3 验证

# 启动keepalived

# systemctl  start keepalived

# systemctl  enable keepalived

# ifconfig

3.2部署haproxy

分别在两台负载服务器同时执行以下操作安装haproxy:

3.2.1:下载haproxy:

# wget http://www.haproxy.org/download/1.7/src/haproxy-1.8.4.tar.gz

# tar xf  haproxy-1.8.4.tar.gz

# cd haproxy-1.7.9

3.2.2: 安装haproxy:

# make  ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1  USE_CPU_AFFINITY=1  PREFIX=/usr/local/haproxy && make install PREFIX=/usr/local/haproxy && cp haproxy  /usr/sbin/

# # USE_PCRE=1 开启正则 USE_OPENSSL=1 开启openssl USE_ZLIB=1

# # USE_CPU_AFFINITY=1 为开启haproxy进程与CPU核心绑定,USE_SYSTEMD=1为支持使用 -Ws参数(systemd-aware master-worker 模式)启动Haproxy,从而实现单主进程多子进程运行模式。

3.3.3:配置haproxy

3.3.3.1:准备haproxy启动脚本

# cat /usr/lib/systemd/system/haproxy.service

[Unit]

Description=HAProxy Load Balancer

After=syslog.target network.target

[Service]

#支持多配置文件读取,类似于从侧面是实现配置文件的include功能。

ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf -c -q

ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf -p /run/haproxy.pid

ExecReload=/bin/kill -USR2 $MAINPID

[Install]

WantedBy=multi-user.target

You have new mail in /var/spool/mail/root

## cp ./haproxy-systemd-wrapper  /usr/sbin/haproxy-systemd-wrapper  (haproxy1.7版本使用)

# cp ./haproxy /usr/sbin/haproxy

3.3.3.2准备系统配置文件

# cat  /etc/sysconfig/haproxy

# Add extra options to the haproxy daemon here. This can be useful for

# specifying multiple configuration files with multiple -f options.

# See haproxy(1) for a complete list of options.

OPTIONS=""

3.3.3.3配置主配置文件

# mkdir /var/lib/haproxy

# mkdir /etc/haproxy

# vim /etc/haproxy/haproxy.cfg

global

maxconn 100000

chroot /usr/local/haproxy

#stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin

uid 99

gid 99

daemon

nbproc 4

cpu-map 1 0

cpu-map 2 1

cpu-map 3 2

cpu-map 4 3

pidfile /usr/local/haproxy/run/haproxy.pid

log 127.0.0.1 local3 info

defaults

option http-keep-alive #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器

option  forwardfor   #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接

maxconn 100000

mode http

timeout connect 10s #连接到一台服务器的最长等待时间

timeout client  20s #连接客户端发送数据最长等待时间

timeout server  30s #服务器回应客户端发送数据最长等待时间

timeout check   5s   #对后端服务器的检测超时时间

listen stats

mode http

bind 0.0.0.0:9999

stats enable

log global

stats uri     /haproxy-status  # 页面访问路径

stats auth    haadmin:q1w2e3r4ys

#####################分文件conf/*.cfg 配置实例###############

frontend openstack_mysql

bind 192.168.10.100:3306

mode tcp

default_backend  openstack_mysql_node

backend  openstack_mysql_node

mode tcp

balance source

server 192.168.10.201  192.168.10.201:3306   check inter 2000 fall 3 rise 5

3.3.3.4配置各个负载的内核参数

# vim /etc/sysctl.conf

net.ipv4.ip_nonlocal_bind = 1  #开启允许绑定非本机的IP,haporxy启动忽视VIP存在

net.ipv4.ip_forward = 1 #内核是否转发数据包

# sysctl  -p  # 配置内核参数生效

3.3.3.5 启动haproxy并验证

# systemctl reload haproxy

# systemctl  start haproxy

# systemctl  enable  haproxy

3.3整合keepalived+haproxy

主要为keepalived监控haproxy,以防haproxy死掉,keepalived进程还存活。

3.3.1配置keepalived严控haproxy进程

# vim  /etc/keepalived/<keepalived配置文件> 添加

vrrp_script chk_haproxy {

script "/etc/keepalived/check_haproxy.sh"

interval 5

weight 2

}

track_script {

chk_haproxy

}

# vim /etc/keepalived/check_haproxy.sh

#!/bin/bash

if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then

haproxy -f /opt/haproxy-1.7.8/haproxy.cfg

fi

sleep 2

if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then

service keepalived stop

fi

3.4验证

待续………

Openstack(三)Haproxy+Keepalived双机的更多相关文章

  1. Keepalived双机热备

    一,Keepalived双机热备的应用场景 1,网站流量不高,压力不大,但是对服务器的可靠性要求极其高,例如实时在线OA系统,政府部门网站系统,医院实时报医系统,公安局在线报案系统,股市后台网站系统等 ...

  2. HAproxy + keepalived 实现双机热备

    一.HAProxy简介: HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点, ...

  3. 理解 OpenStack Swift (1):OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置

    本系列文章着重学习和研究OpenStack Swift,包括环境搭建.原理.架构.监控和性能等. (1)OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置 ( ...

  4. Nginx+keepalived双机热备(主从模式)

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...

  5. Nginx+keepalived 双机热备(主从模式)

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...

  6. Nginx+keepalived双机热备(默认路径安装)- 基础篇

    负载均衡技术对于一个网站尤其是大型网站的web服务器集群来说是至关重要的!做好负载均衡架构,可以实现故障转移和高可用环境,避免单点故障,保证网站健康持续运行.关于负载均衡介绍,可以参考:linux负载 ...

  7. HAProxy & Keepalived L4-L7 高可用负载均衡解决方案

    目录 文章目录 目录 HAProxy 负载均衡器 应用特性 性能优势 会话保持 健康检查 配置文件 负载均衡策略 ACL 规则 Web 监控平台 Keepalived 虚拟路由器 核心组件 VRRP ...

  8. 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!

    写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...

  9. haproxy+keepalived实现高可用负载均衡

    软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载. HA ...

随机推荐

  1. 使用鼠标监听器,使鼠标悬停在JTable某行时背景色改变

    一.需要知道的事实: 1.当鼠标悬停在JTable上时,相应的格子(cell)的渲染器(TableCellRenderer)的渲染方法(getTableCellRenererComponent)会被调 ...

  2. day19<异常&File类>

    异常(异常的概述和分类) 异常(JVM默认是如何处理异常的) 异常(try...catch的方式处理异常1) 异常(try...catch的方式处理异常2) 异常(编译期异常和运行期异常的区别) 异常 ...

  3. wsdl.exe的用法与参数说明

    wsdl.exe的用法与参数说明 打开.net自己带的Visual Studio .NET 2003或 2005 命令提示 输入 wsdl /language:VB /n:mynamespace /o ...

  4. swift -- 计步器CMPedometer的使用

    最近公司接了个项目,是一款运动类型的APP,可以检测运动量(例如:步数,上下楼等).睡眠信息.速度等信息,因为以前粗略的了解过传感器方面的相关信息,知道主要是苹果设备内置的传感器在起作用,传感器的种类 ...

  5. m2014-architecture-imgserver->利用Squid反向代理搭建CDN缓存服务器加快Web访问速度

    案例:Web服务器:域名www.abc.com IP:192.168.21.129 电信单线路接入访问用户:电信宽带用户.移动宽带用户出现问题:电信用户打开www.abc.com正常,移动用户打开ww ...

  6. 《ASP.NET MVC4 WEB编程》学习笔记------乐观锁和悲观锁

    摘要:对数据库的并发访问一直是应用程序开发者需要面对的问题之一,一个好的解决方案不仅可以提供高的可靠性还能给应用程序的性能带来提升.下面我们来看一下Couchbase产品市场经理Don Pinto结合 ...

  7. nodeJS基础---->nodeJS的使用(一)

    Node.js是一个Javascript运行环境(runtime).实际上它是对Google V8引擎进行了封装.V8引擎执行Javascript的速度非常快,性能非常好.Node.js对一些特殊用例 ...

  8. 使用Sublime Text 3做Python开发

    引言 刚转到OS X平台时,寻找写Python,JavaScript,Markdown等文件的工具时,比较了许多工具, 最终选择了Sublime Text 2,主要原因是其跨平台, 想着以后再转到wi ...

  9. webpack中,require的五种用法

    a.js: module.exports = function(x){ console.log(x); } 一,commonjs同步: var b = require('./a');b('你好')// ...

  10. hibernate实现有两种配置,xml配置与注释配置。<转>

    <注意:在配置时hibernate的下载的版本一定确保正确,因为不同版本导入的jar包可能不一样,所以会导致出现一些错误> hibernate实现有两种配置,xml配置与注释配置. (1) ...