负载均衡(ha 负载)

负载均衡

负载均衡是一种网络技术,可以通过在多个服务器之间分配网络流量来提高应用程序和网站的可用性和性能。

负载均衡器的类型

有两种主要类型的负载均衡器:

  • 硬件负载均衡器: 专门的硬件设备,提供高性能和可扩展性。
  • 软件负载均衡器: 在服务器或虚拟机上运行的软件,提供较低的成本和更高的灵活性。

负载均衡算法

负载均衡器使用各种算法在服务器之间分配流量,包括:

  • 轮询: 将流量顺序地分配到服务器。
  • 最少连接数: 将流量分配到连接数最少的服务器。
  • 权重轮询: 根据服务器的权重分配流量,权重较高的服务器接收更多的流量。
  • IP 哈希: 根据客户端 IP 地址将流量分配到相同的服务器。

HA 负载均衡

HA 负载均衡(高可用性负载均衡)是一种负载均衡配置,旨在最大程度地提高应用程序和网站的可用性。它涉及使用两台或多台负载均衡器创建冗余配置,以确保一台负载均衡器发生故障时,另一台负载均衡器能够接管流量。

HA 负载均衡的关键优势包括:

  • 提高可用性: 如果一台负载均衡器发生故障,其他负载均衡器将继续处理流量。
  • 无缝故障转移: 当一台负载均衡器发生故障时,故障转移过程对客户端无缝进行。
  • 可扩展性: HA 负载均衡器可以通过添加更多负载均衡器来轻松扩展,以满足不断增长的流量需求。

HA 负载均衡的实现

HA 负载均衡可以通过以下方式实现:

  • 双负载均衡器: 使用两台负载均衡器,配置为主动-被动或主动-主动。
  • 多负载均衡器: 使用三个或更多负载均衡器,配置为冗余集群。
  • 全局服务器负载均衡器 (GSLB): 在地理分布式环境中使用负载均衡器集群,根据客户端位置将流量路由到最合适的服务器。

HA 负载均衡的最佳实践

在实施 HA 负载均衡时,建议遵循以下最佳实践:

  • 使用可靠的硬件和软件。
  • 配置冗余连接。
  • 定期测试和维护负载均衡器。
  • 使用健康检查来监控服务器的可用性。
  • 实施故障转移机制。
  • 记录故障转移事件并进行故障排除。

结论

负载均衡对于提高应用程序和网站的可用性、性能和可扩展性至关重要。HA 负载均衡通过提供冗余和无缝故障转移,使组织能够创建高度可靠和可用的环境。通过遵循这些最佳实践,组织可以最大限度地发挥 HA 负载均衡的优势,并确保其关键业务应用程序和服务始终可用。


haproxy+keepalived负载均衡之主备切换

VIP: 192.168.1.100

Master: 192.168.1.238

Slave: 192.168.1.239

真实IP:

RIP1: 192.168.1.235

RIP2: 192.168.1.236

以下为安装步骤

第一步:安装haproxy

下载zxvf

#make TARGET=linux26

#make install

第二步:安装ipvs

根据ipvs官网介绍,不同版本内核适用的ipvs版本不一样。适用于1.24的各个版本

(for kernel between 2.6.10 and 2.6.27.4) - December 10, 2005

(for 1.2.0 or later) - October 27, 2004

(for 1.1.8 or later) - January 10, 2004

(for 1.1.8 or later) - December 20, 2003

- December 10, 2005

安装之前,软连接系统内核目录

ln -s /usr/src/kernels/5-i686/ /usr/src/linux

查看系统当前的内核版本:

有时你找不到这个内核的路径,系统安装后并没有kernerls的目录

解决方法:yum install kernel-devel

接下来在进行连接 编译 就ok了!

我们使用最新的 ,下载安装。

cd ipvsadm-1.24

make install

第三步,安装keepalived

从上下载最新的。

cd keepalived-1.2.2

./configure

make install

安装完毕。配置

cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cp /usr/local/etc/keepalived/ /etc/keepalived/

ln -s /usr/local/sbin/keepalived /usr/sbin/

service keepalived start

如果安装时的编译参数为: ./configure --prefix=/usr/local/keepalived

则操作步骤如下:

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived

cp /usr/local/keepalived/etc/keepalived/ /etc/keepalived/

ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

service keepalived start

以下为详细的配置文件

二、haproxy

(1)、haproxy配置文件

chroot /usr/local/haproxy

maxconn 256

user haproxy

group haproxy

log-send-hostname

log-tag my_xiaokk

pidfile /var/run/

log 127.0.0.1 local0 info

maxconn 256

timeout connect 5000ms

timeout client ms

timeout server ms

timeout check 2000

option httpclose

option httplog

option dontlognull

option forwardfor

option redispatch

option abortonclose

frontend http-www

bind 192.168.1.100:80

acl ha_policy hdr_reg(host) -i ^(|||)

acl ha_baby hdr_dom(host) -i

use_backend ha_www if ha_policy

use_backend ha_www if ha_baby

log 127.0.0.1 local0 info

listen admin_status

bind 192.168.1.100:1080

log 127.0.0.1 local0 info

stats uri /admin?status

stats refresh 30s

stats realm Haproxy/ Admin/ Center

stats auth admin:admin

stats hide-version

backend ha_www

balance source

cookie SERVERID

option httpchk HEAD /

server w1 192.168.1.235:80 cookie 1 check inter 1500 rise 3 fall 3 weight 1

server w2 192.168.1.236:85 cookie 1 check inter 1500 rise 3 fall 3 weight 2

(2)、haproxy启却脚本

# chkconfig: - 85 15

# description: HA-Proxy is a TCP/HTTP reverse proxy which is particularly /

# suited for high availability environments.

# processname: haproxy

# config: /usr/local/haproxy/conf/

# pidfile: /var/run/

# Source function library.

if [ -f /etc/init.d/functions ]; then

. /etc/init.d/functions

elif [ -f /etc/rc.d/init.d/functions ]; then

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up

[ ${NETWORKING} = no ]exit 0

[ -f /usr/local/haproxy/conf/ ] || exit 1

# start Haproxy

/usr/local/haproxy/sbin/haproxy -c -q -f /usr/local/haproxy/conf/

if [ $? -ne 0 ]; then

echo Errors found in configuration file.

echo -n Starting Haproxy:

daemon /usr/local/haproxy/sbin/haproxy -D -f /usr/local/haproxy/conf/ -p /var/run/

[ $RETVAL -eq 0 ]touch /var/lock/subsys/haproxy

return $RETVAL

# stop Haproxy

echo -n Shutting down Haproxy:

killproc haproxy -USR1

[ $RETVAL -eq 0 ]rm -f /var/lock/subsys/haproxy

[ $RETVAL -eq 0 ]rm -f /var/run/

return $RETVAL

# restart Haproxy

restart() {

/usr/local/haproxy/sbin/haproxy -c -q -f /usr/local/haproxy/conf/

if [ $? -ne 0 ]; then

echo ERR found in configuration file, check it with haproxy check.

# check haproxy

/usr/local/haproxy/sbin/haproxy -c -q -V -f /usr/local/haproxy/conf/

rhstatus() {

status haproxy

# condrestart

condrestart() {

[ -e /var/lock/subsys/haproxy ]restart || :

# See how we were called.

condrestart)

condrestart

echo $Usage: haproxy {start|stop|restart|reload|condrestart|status|check}

exit $RETVAL

三、keepalived配置文件

Master的配置文件:

! Configuration File for keepalived

global_defs {

router_id LVS_1

vrrp_script chk_haproxy {

script /etc/keepalived/check_

vrrp_instance VI_1 {

state MASTER

priority 99

advert_int 1

virtual_router_id 50

garp_master_delay 1

interface eth0

authentication {

auth_type PASS

auth_pass Kxiaokk345Pix

track_interface {

virtual_ipaddress {

192.168.1.100

track_script {

chk_haproxy

notify_master /etc/keepalived/ master

notify_backup /etc/keepalived/ backup

notify_fault /etc/keepalived/ fault

Slave的配置文件

! Configuration File for keepalived

global_defs {

router_id LVS_2

vrrp_script chk_haproxy {

script /etc/keepalived/check_

vrrp_instance VI_1 {

state BACKUP

priority 96

advert_int 1

virtual_router_id 50

garp_master_delay 1

interface eth0

authentication {

auth_type PASS

auth_pass Kxiaokk345Pix

track_interface {

virtual_ipaddress {

192.168.1.100

track_script {

chk_haproxy

notify_master /etc/keepalived/ master

notify_backup /etc/keepalived/ backup

notify_fault /etc/keepalived/ fault

###### --- haproxy存活状态检测脚本

#!/bin/bash

# desc: check haproxy service

A=`ip address show eth0 | grep 192.168.1.100 | wc -l`

B=`ps -C haproxy --no-heading | wc -l`

if [ $A -eq 1 ]; then

if [ $B -eq 0 ]; then

/usr/local/haproxy/ start

主备切换时邮件提醒程序(此程序源自litus,有小改动,调试通过)

#!/usr/bin/python

#coding: utf-8

from import MIMEMultipart

from import MIMEText

from import MIMEImage

from import Header

import smtplib

# desc: send notify email

smtp_server =

smtp_user = toplover

smtp_pass = xxx***xxx

if [1] != master and [1] != backup and [1] != fault:

notify_type = [1]

mail_title = [crt] Haproxy-notify-info

mail_body_plain = notify_type + alive,please check it now

mail_body_html = bfont color=red + notify_type + alive,please check it now

msgRoot = MIMEMultipart(related)

msgRoot[Subject] = Header(mail_title,utf-8)

msgRoot[From] = strFrom

msgRoot[To] = strTo

msgAlternative = MIMEMultipart(alternative)

(msgAlternative)

msgText = MIMEText(mail_body_plain, plain, utf-8)

msgText = MIMEText(mail_body_html, html, utf-8)

(smtp_server)

(smtp_user,smtp_pass)

(strFrom, strTo, _string())

到此完成了简单的haproxy+keepalived负载均衡主从热备功能。

不明之处请参阅haproxy官方文件及keepalived官方文档。

“负载均衡”是什么意思?

“负载均衡”的意思是指建立在现有的网络结构之上,提供了一个便宜有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

负载均衡是什么意思

负载均衡是一种通过合理分配和调度资源,使系统中的负载均匀分布,提高系统的性能和可靠性的技术和策略。

1.什么是负载均衡

负载均衡是指在一个系统中,将工作负载均匀地分配到多个资源上,以提高系统的整体性能和可靠性。这个系统可以是计算机、网络或其他类型的系统。负载均衡的目标是确保每个资源都能够得到合理的利用,避免资源过载或闲置,从而提高系统的效率和稳定性。

2.负载均衡的原理

负载均衡的原理是通过将请求分发到多个服务器或资源上,使每个服务器或资源的负载均匀分布。有多种负载均衡算法可以实现这一目标,如轮询算法、加权轮询算法、最少连接算法等。这些算法会根据服务器的性能和负载情况,决定将请求发送到哪个服务器上,以实现负载均衡。

3.负载均衡的好处

提高系统的性能:通过将负载均匀地分配到多个资源上,可以减轻单个资源的负荷,提高系统的处理能力和吞吐量。提高系统的可靠性:通过将负载分散到多个资源上,即使某个资源发生故障或下线,系统仍然可以继续正常运行,提高了系统的可用性和容错性。

提高系统的可伸缩性:当系统的负载增加时,通过负载均衡可以动态地将请求分发到更多的资源上,从而使系统能够扩展,满足更多用户的需求。

优化资源利用:负载均衡可以根据资源的性能和负载情况,智能地分配请求,使每个资源得到合理的利用,避免资源的浪费和闲置。简化系统管理:通过负载均衡,可以将多个资源组织成一个逻辑集群,统一管理和调度,简化了系统的运维和管理工作。

4.负载均衡的应用场景

网站和应用服务器:通过负载均衡将用户请求分发到多个服务器上,提高网站和应用的性能和可用性。数据中心和云计算平台:通过负载均衡,将用户的请求分发到多个虚拟机或容器上,实现资源的弹性分配和动态调度。

阅读全文
未经允许不得转载:亿动网 » 负载均衡(ha 负载)
分享到: 生成海报

相关推荐

  • 暂无文章
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活