linux HAProxy及Keepalived热备

HAProxy

它是免费,快速且可靠的一种解决方案没,适用于那些负载特大的web站点
这些站点通常又需要会话保持或七层处理
提供高可用性,负载均衡及基于tcp和http应用的代理

衡量负载均衡器性能的因素
Session rate 会话率:
每秒钟产生的会话数
Session concurrency 并发会话数:
服务器处理会话的时间越长,并发会话数越多
Data rate 数据速率:
以MB/s或Mbps衡量,大的对象导致并发会话数增加,
高会话数,高数据速率要求更多的内存

haproxy工作模式
mode http:
客户端请求被深度分析后再发往服务器
http事务模型:
hrrp close,客户端像服务器建立一个tcp连接,三次握手消耗相对较大的系统资源,延迟大
keep-alive,一次连接可以传输多个请求
开启keep-alive
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf
KeepAlive On
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf
KeepAlive On
pipelining,任然使用keep-alive,适用于有大量图片的页面,降低了多次请求之间的网络延迟
mode tcp:
客户端与服务器之间建立会话,不检查第七层信息
mode health:
仅做健康检查,已经不建议使用

实例:配置haproxy
[[email protected] ~]# yum -y install pcre pcre-devel(安装开发依赖包)
[[email protected] ~]# tar -xf haproxy-1.4.24.tar.gz
[[email protected] ~]# yum -y install gcc gcc-c++
[[email protected] haproxy-1.4.24]# make USE_PCRE=1 PREFIX=/usr/local/haproxy TARGET=linux2628 install(配置文件说明内核版本高于2.6以上要写上内核版本)
[[email protected] ~]# ln -s /usr/local/haproxy/sbin/haproxy/ /usr/local/sbin/(建立符号链接)
[[email protected] ~]# mkdir /usr/local/haproxy/conf
[[email protected] haproxy-1.4.24]# cp examples/haproxy.cfg /usr/local/haproxy/conf/(拷贝安装源目录下的示例文件)
haproxy配置文件说明
命令行:总是具有最高优先级
global部分:全局设置进程级别参数
代理声明部分:来自于default,listen,frontend和backend
default:为后续的其他部分设置缺省参数,缺省参数可以被后续部分重置
frontend:描述接受客户端侦听套接字(socket)集
backend:描述转发链接的服务器集
listen:把frontend和backend结合到一起的完整申明
[[email protected] ~]# vim /usr/local/haproxy/conf/haproxy.cfg
global
....
maxconn 4096(最大连接数)
chroot /usr/share/haproxy
pidfile /var/run/haproxy.pid(添加pid文件)
.......
defaults
....
option redispatch(改为option)
stats uri /ha_mon(添加uri,路径随便写)
...
listen appli1-rewrite 0.0.0.0:80(0.0.0.0 相当于虚拟ip)
cookie SERVERID rewrite
balance roundrobin
server web1 192.168.4.2:80 cookie app1inst1 check inter 2000 rise 2 fall 5(服务器名,ip地址)
server web2 192.168.4.3:80 cookie app1inst2 check inter 2000 rise 2 fall 5(把后面的不要的配置都删除)
[[email protected] conf]# haproxy -f /usr/local/haproxy/conf/haproxy.cfg(开启服务)
[[email protected] conf]# netstat -tlnp |grep :80(查看监听端口)
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13810/haproxy
[[email protected] ~]# firefox http://192.168.4.4/ha_mon(测试访问查看监测)
[[email protected] ~]# kill $(pidof haproxy)(关闭进程)
[[email protected] ~]# pidof haproxy
13810
[[email protected] ~]# haproxy -f /usr/local/haproxy/conf/haproxy.cfg -st 13810(重启)

——————————————————————————————————————————————————————————————————————————————

Keepalived热备

keepalived实现了高可用集群,最初为lvs设计的,专门监控各服务器节点的状态
后来加入了vrrp功能,防止单点故障(VRRP 虚拟冗余路由协议)

Keepalived运行原理
keepalived检测每个服务器节点状态,服务器节点异常或工作出现故障,Keepalived将故障节点从集群系统中剔除,
故障节点恢复后,Keepalived再将其加入到集群系统中
所有工作自动完成,无需人工干预

实例:配置高可用web集群(两台web服务器做相同的操作)
[[email protected] ~]# yum -y install gcc gcc-c++ openssl-devel popt popt-devel(安装依赖)
[[email protected] ~]# tar -xf keepalived-1.3.6.tar.gz
[[email protected] keepalived-1.2.7]# ./configure --sysconf=/etc
[[email protected] keepalived-1.2.7]# make
[[email protected] keepalived-1.2.7]# make install
[[email protected] ~]# ln -s /usr/local/sbin/keepalived /usr/sbin/
[[email protected] ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER(主服务器,另一个写副服务器)
interface eth0(正用的网卡)
virtual_router_id 51(虚拟路由器id号)
priority 100(优先级)
advert_int 1(通告间隔)
authentication {
auth_type PASS(密码认证方式)
auth_pass 1111(两台密码一样)
}
virtual_ipaddress {
192.168.4.200(对外提供的ip地址)
}
}(底下的配置全部dd)
[[email protected] ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state SLAVE(副服务器)
interface eth0
virtual_router_id 51
priority 90(优先级比主服务器低)
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.4.200
}
}
[[email protected] ~]# service keepalived start
[[email protected] ~]# firefox http://192.168.4.200(访问测试)

实例:搭建高可用负载均衡的web集群
环境:把两台的keepalived stop,实现的是DR模式,所以web服务仍然要在lo上配置vip
仍然需要调整参数,把第一台lvs上的vip删除
把第一台调度器上的lvs规则清空
再准备一台调度器,主机名为lvs2,ip地址为192.168.4.4
在第二台调度器安装lvs(ipvsadm)

删除lvs上的vip,清空lvs规则
[[email protected] network-scripts]# rm -rf ifcfg-eth0:0
[[email protected] ~]# /etc/init.d/network restart
[[email protected] ~]# ipvsadm -D -t 192.168.4.100:80
安装lvs
[[email protected] ~]# vim /etc/yum.repos.d/rhel6.repo
[rhel]
name=Linux NSD
baseurl=file:///root/myiso/LoadBalancer(需要加上这个路径,yum默认找server这个库)
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[[email protected] ~]# yum -y install ipvsadm
安装依赖, 安装keepalived(两台lvs做相同的操作)
[[email protected] ~]# yum -y install gcc gcc-c++ openssl-devel popt-devel
[[email protected] ~]# tar -xf keepalived-1.2.7.tar.gz
[[email protected] keepalived-1.2.7]# ./configure --sysconf=/etc/
[[email protected] keepalived-1.2.7]# make
[[email protected] keepalived-1.2.7]# make install
[[email protected] keepalived-1.2.7]# ln -s /usr/local/sbin/keepalived /usr/sbin/
[[email protected] keepalived-1.2.7]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
[email protected](服务器有问题会向这个邮箱发邮件)
}
notification_email_from [email protected](谁发的邮件)
smtp_server 127.0.0.1(发邮件的地址)
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER(主服务器,另一个lvs要写副服务器)
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.4.100

}
}
virtual_server 192.168.4.100 80 {(真实机上的lo:0的虚拟ip)
delay_loop 6
lb_algo rr(rr算法)
lb_kind DR(DR模式)
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP

real_server 192.168.4.2 80 {(真实服务器地址)
weight 1
TCP_CHECK {(这里默认是ssl,改为tcp)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.3 80 {(真实服务器地址)
weight 1
TCP_CHECK {(这里默认是ssl,改为tcp)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}(下面的配置文件全部dd)
[[email protected] keepalived-1.2.7]# scp /etc/keepalived/keepalived.conf 192.168.4.5:/etc/keepalived/(把配置好的服务拷贝到lvs2的配置目录下)
[[email protected] keepalived-1.2.7]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state SLAVE(改为副服务器)
interface eth0
virtual_router_id 51
priority 90(优先级)
[[email protected] ~]# service keepalived start; chkconfig keepalived on
[[email protected] ~]# ipvsadm -Ln(验证)
[[email protected] ~]# firefox http://192.168.4.100/bbs(访问测试)

————————————————————————————————————————————————————————————————————————————————————————————-

时间: 2024-10-07 05:19:41

linux HAProxy及Keepalived热备的相关文章

两台linux完美实现双机热备【来源网络尚未实践】

[来源:http://rainbird.blog.51cto.com/211214/225541/] 一直想做基于linux的双机热备,一直没有时间和机会.一直以为只要做双机热备的实验就必须两台机器外接一个存储.甚至一个月以前在学习keepalived的时候还在琢磨keepalvied去掉哪些条件可以实现双机热备.直到一个月以前设计存储方案的时候部门老大给了一个国外的链接介绍drbd+nfs实现nfs的热备方案的时候,我的眼前一亮,这不就是我一直想做的不依靠存储实现热备的解决方案吗? 先来纠正一

CLUSTER集群Keepalived热备+LVS服务

keepalived 通过在两台主.备调度器上实现Keepalived高可用解决调度器单点失败问题 主.备调度器上配置LVS,正常情况下主调度器工作 主调度器异常时,Keepalived启用备用调度器,保证了调度器的高可用 调度器保证了后台服务的高可用 调度器安装keepalived # yum install  -y  gcc gcc-c++  kernel-devel  openssl-devel popt-devel # tar  xvzf  keepalived-1.2.7.tar.gz

linux系统多网卡热备实现高并发负载均衡

#nmcli实现bonding #先停止NetworkManagerservice NetworkManager stop chkconfig NetworkManager off   //开机自启动 关闭 #虚拟主机网卡类型要一致选(桥接)模式: #添加bonding接口:nmcli con add type bond con-name mybond0 ifname bond0 mode active-backup#生成的配置文件路径:cd /etc/sysconfig/network-scr

​Keepalived双机热备

Keepalived双机热备 Keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健检查功能,如判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集.在非LVS群集环境中使用时Keepalived也可以作为热备软件使用. Keepalived采用VRRP(virtual  router  redundancy protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现linux服务器的多机热备功能.VRRP是

centos 7之keepalived双机热备理论+配置文件详解

一.keepalived工作原理及作用: keepalived最初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检 查功能--判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故 障主机回复后将其重新加入群集.单独部署LVS环境的话,调度器发生宕机的话,整个群集就 失效了,某一个web节点宕机后,客户端在访问时,总会碰上访问不到网页的情况,所以,将 keepalived和LVS结合起来,才可形成一个真正的高可用群集,当然,后端的共享存储也必须 搭建一个

keepalived 双机热备配置文件详解

配置示例:https://blog.51cto.com/14227204/2438902一.keepalived工作原理及作用: keepalived最初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能--判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机回复后将其重新加入群集.单独部署LVS环境的话,调度器发生宕机的话,整个群集就失效了,某一个web节点宕机后,客户端在访问时,总会碰上访问不到网页的情况,所以,将keepalived和L

利用Keepalived实现双机热备详解

在这个高度信息化的IT时代,企业的生产系统.业务运营.销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求不断提高,以便提供持续的.不间断的计算机系统或网络服务. 一.Keepalived双机热备基础知识 1.Keepalived概述 Keepalived起初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能--判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集. Keepaliv

Keepalived双机热备原理与基础配置

Keepalived的热备方式 基于VRRP热备份协议,以软件的方式实现Linux服务器的多机热备份功能.是通过共有的虚拟IP地址(VIP)对外提供服务:每个热备组内只能有一个服务器提供服务,其他服务器处于冗余状态,若当前服务器失效后,则其他处于冗余状态的服务器将接替他的工作(优先级高的),以继续提供服务. ## 漂移地址 ## 虚拟IP地址可以在热备组内的服务器间进行转移,所以也称为漂移IP地址:使用Keepalived时,漂移地址的实现不需要手动建立虚拟接口配置文件,而是由Keepalive

浅谈Keepalived双机热备

一.Keepalived双机热备的基础知识 keepalived官方网站: www.keepalived.org/ 在非LVS环境中keepalived也可以作为热备软件使用. 1.Keepalived作用 keepalived最初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能--判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机回复后将其重新加入群集.单独部署LVS环境的话,调度器发生宕机的话,整个群集就失效了,某一个web节点宕机后