Linux负载均衡概念与实践(二)

构建实践LVS+Keepalived实现负载均衡

keepalived概述

1.keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能——判断LVS负载调度器,节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集。

2.keepalived的热备原理概述 keepalived采用VRRP(虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案——有多台路由组成一个热备组,通过共用的虚拟IP地址对外提供服务;每个热备组内同一时刻只有一台主路由器提供服务 ,其他路由器处于冗余状态,若当前在线路由器失败,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务。热备组内的每台路由器都有可能成为主路由器,虚拟路由器的IP地址可以在热备组内的路由器之间进行转移,所以也称为漂移IP地址。使用keepalived时,漂移地址的实现不需要手动建立虚接口配置文件,而是由keepalived根据配置文件自动管理。

结构总览(图像来自网络)

1、环境说明

系统版本:ubuntu14.04 LTS

LVS服务器:192.168.1.107,192.168.1.105

真实服务器(Real Server):192.168.1.106,192.168.1.107,192.168.1.108

VIP:192.168.1.70

部署目的:

用户请求192.168.1.70的报文转发至其它3个IP台机器,没一台机器配置的都是静态IP 106,107,108已经部署了apache2,监听8888端口,提供相同服务.

LVS搭建在105,107上面,107为主,105为备

2.Real Server上配置VIP的监听

分别在Real Server上执行一下脚本root权限执行

vim rs.sh

#!/bin/bash

SNS_VIP=192.168.1.70

case "$1" in

  start)

    ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP

/sbin/route add -host $SNS_VIP dev 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

sysctl -p >/dev/null 2>&1

echo "RealServer Start OK"

;;

   stop)

ifconfig lo:0 down /sbin/route del $SNS_VIP >/dev/null 2>&1

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

echo "RealServer Stoped"

;;

  *)

    echo "Usage: $0 {start|stop}"

exit 1

esac

exit 0

保存该脚本,然后执行.(要有执行权限)

./rs.sh start

3.LVS配置主从

安装keeplived软件包

apt-get install keepalived

sudo vim /etc/keepalived/keepalived.conf

globel_defs{

  notification_email{

    [email protected] #指定keepalived在切换时需要发送到的email对象,一行一个

  }

  notification_email_from [email protected] #指定发件人 smtp_server

  127.0.0.1 #指定SMTP服务器地址

  smtp_connection_timeout 30 #指定SMTP连接超时时间

  router_id easyfun-107 #设置lvs的id,在一个网络内应该是唯一的

}

vrrp_instance VI_1{

  state MASTER #指定keepalived的角色,MASTER为主,SLAVE为从,BACKUP为备

  interface eth0 #设置实例绑定到那个网卡

  virtual_router_id 51 #VRID标记(0~255),主备要保持相同

  priority 150 #优先级,MASTER要高于BACKUP的优先级(至少50)

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

  authentication {

  auth_type PASS #指定要使用那一种认证(PASS|AH)

  auth_pass 123456 #指定要使用的密码字符串

  }

virtual_ipaddress {

  192.168.1.70 #定义虚拟IP(VIP),可多设,每行-个

  }

}

#定义对外提供服务的LVS的VIP以及port

virtual_server 192.168.1.70 8888 {

  delay_loop 1 #设置健康检测时间,单位为秒

  lb_algo wrr #设置LVS调度的算法rr|wrr|lc|wlc|lblc|lblcr|sh|dh

  lb_kind DR #设置LVS实现负载的机制,(NAT|TUN|DR)三个模式

  nat_mask 255.255.255.0

  persistence_timeout 60 #会话保持时间

  protocol TCP #使用的协议

  real_server 192.168.1.106 8888 { #指定real_server1的ip地址

    weight 3 #配置节点权值,数字越大权重越高

    TCP_CHECK {

      connect_timeout 10 #连接远程真实服务器超时时间(秒)

      nb_get_retry 3 #最大重试次数

      delay_before_retry 3 #连续两次重试的延迟时间(秒)

      connect_port 8888 #健康检查的端口

    }

  }

  real_server 192.168.1.108 8888 { #指定real_server2的ip地址

    weight 3 #配置节点权重

    TCP_CHECK {

      connect_timeout 10

      nb_get_retry 3

      delay_before_retry 3

      connect_port 8888

    }

  }

  real_server 192.168.1.107 8888 { #指定real_server2的ip地址

    weight 3 #配置节点权重

    TCP_CHECK {

      connect_timeout 10

      nb_get_retry 3

      delay_before_retry 3

      connect_port 8888

    }

  }

}

保存退出,

开启keepalived服务

service keepalived start

查看状态 ipvsadm -L -n

配置LVS从服务器(另一台LVS)

apt-get install keepalived

从服务器的配置和主服务器大致相同,要在keepalived.conf中修改两处 将state 由 MASTER改为BACKUP

将priority由150改成100

sudo vim /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {

  state BACKUP # 这里改为BACKUP

  interface eth1

  virtual_router_id 51

  priority 100 # 这里改为100,master优先级是150

  advert_int 1

  authentication {

  auth_type PASS

  auth_pass 1111

  }

virtual_ipaddress {

  192.168.1.70

  }

}

保存退出,

开启keepalived服务

service keepalived start

查看状态 ipvsadm -L -n

4.验证负载均衡主从切换,以及模拟真实服务器down掉相应服务,查看ipvsadm的状态 ipvsadm -L c

时间: 2024-10-19 09:54:36

Linux负载均衡概念与实践(二)的相关文章

Linux负载均衡概念与实践(一)

根据网上文章整理. 负载均衡软件LVS(Linux Virtual Server)概念篇 lvs是在linux操作系统基础上建立虚拟服务器,实现服务节点之间的负载均衡.它是基于linux内核实现的.2.6.X内核默认集成了lvs模块. lvs常用负载均衡的实现是基于ip协议的,所以一般称为ipvs. IPVS基本上是一种高效的Layer-4交换机,它提供负载平衡的功能.当一个TCP连接的初始SYN报文到达时,IPVS就选择一台服务器,将报文转发给它.此后通过查发报文的IP和TCP报文头地址,保证

Linux负载均衡软件LVS之二(安装篇)[转]

Linux负载均衡软件LVS之二(安装篇) 2011-04-26 16:01:47 标签:lvs安装配置 linux lvs 休闲 linux高可用 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://ixdba.blog.51cto.com/2895551/554029 一.  安装LVS软件 1.安装前准备工作操作系统:统一采用Centos4.4版本.地址规划,如表1所示:表1 更详细的信息如图2所示: 图2  LVS DR模

Linux负载均衡软件LVS之二(安装篇)

一.  安装LVS软件 1.安装前准备工作操作系统:统一采用Centos4.4版本.地址规划,如表1所示:表1 更详细的信息如图2所示: 图2中的VIP指的是虚拟IP地址,还可以叫做LVS集群的服务IP,在DR.TUN模式中,数据包是直接返回给用户的,所以,在Director Server上以及集群的每个节点上都需要设置这个地址.此IP在Real Server上一般绑定在回环地址上,例如lo:0,同样,在Director Server上,虚拟IP绑定在真实的网络接口设备上,例如eth0:0. 各

(转)Linux负载均衡软件LVS之二(安装篇)

一.  安装LVS软件 1.安装前准备工作操作系统:统一采用Centos4.4版本.地址规划,如表1所示:表1 更详细的信息如图2所示: 图2  LVS DR模式安装部署结构图 图2中的VIP指的是虚拟IP地址,还可以叫做LVS集群的服务IP,在DR.TUN模式中,数据包是直接返回给用户的,所以,在Director Server上以及集群的每个节点上都需要设置这个地址.此IP在Real Server上一般绑定在回环地址上,例如lo:0,同样,在Director Server上,虚拟IP绑定在真实

搞懂分布式技术7:负载均衡概念与主流方案

搞懂分布式技术7:负载均衡概念与主流方案 负载均衡的原理 原创: 刘欣 码农翻身 4月23日 这是1998年一个普通的上午. 一上班,老板就把张大胖叫进了办公室,一边舒服地喝茶一边发难:"大胖啊,我们公司开发的这个网站,现在怎么越来越慢了? " 还好张大胖也注意到了这个问题,他早有准备,一脸无奈地说: "唉,我昨天检查了一下系统,现在的访问量已经越来越大了,无论是CPU,还是硬盘.内存都不堪重负了,高峰期的响应速度越来越慢." 顿了一下,他试探地问道:"老

负载均衡概念及相关策略了解

一.负载均衡 概念: Load balancing,即负载均衡,是一种计算机技术,用来在多个计算机(计算机集群).网络连接.CPU.磁盘驱动器或其他资源中分配负载,以达到最优化资源使用.最大化吞吐率.最小化响应时间.同时避免过载的目的. 意思是将负载(工作任务,访问请求)进行平衡.分摊到多个操作单元(服务器,组件)上进行执行.是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案. 负载均衡是指将请求分摊到多个操作单元也就是分开部署的服务器上,nginx是常用的反向代理服务器,可以用

搞懂分布式技术9:Nginx负载均衡原理与实践

搞懂分布式技术9:Nginx负载均衡原理与实践 本篇摘自<亿级流量网站架构核心技术>第二章 Nginx负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用户访问时是通过如的方式访问,在请求时,浏览器首先会查询DNS服务器获取对应的IP,然后通过此IP访问对应的服务. 因此,一种方式是域名映射多个IP,但是,存在一个最简单的问题,假设某台服务器重启或者出现故障,DNS会有一定的缓存时间,故障后切换时间长,而且没有对

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置 LB集群是locd balance集群的简称.翻译成中文是:负载均衡集群的意思:集群是一组相互独立的.通过高速网络互联的计算机相互之间构成一个组合,并以单一的系统的模式加以管理.LVS是Linux Virtual Server的简写,翻译中文是Linux虚拟服务器,是一个虚拟的服务器集群系统. 负载均衡集群:是为了企业提供更为实用,性价比更高的系统机构解决方案.负载均衡集群把用户的请求尽可能的平均分发到集群的各

Linux负载均衡软件LVS之一(概念篇)

一. LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能.使用LVS技术要达到的目标是:通过LVS提