CentOS 6.5搭建LVS负载均衡集群和Keepalived

一、LVS群集应用基础

1.群集的类型

1)负载均衡集群:将客户机的访问请求分给多个服务器,从而缓解整个系统压力
2)高可用集群:故障切换,双机热备,多机热备
3)高性能运算集群:通过专业的硬件和软件将多个服务器的CPU、内存等资源整合在一起,形成一个超级计算机

2.负载均衡的分层结构

1)第一层:负载调度器
2)第二层:服务器池
3)第三层:共享存储

3.负载均衡的工作模式

1)地址转换:简称NAT模式,调度器作为所有服务器的网关
2)ip隧道:简称TUN模式,调度器仅作为客户机的访问入口,各服务器有独立的公网ip,不经过调度器直接回应客户机,通过专用ip隧道与调度器通信
3)直接路由:简称DR模式,与TUN模式类似,但调度器与个服务器处于同一网络,通过本地网络连接

二、LVS虚拟服务器

1.LVS是针对Linux内核开发的一个负载均衡项目,是Linux内核的一部分,默认编译为ip_vs模块
加载ip_vs模块:modprobe ip_vs
查看模块信息:cat /proc/net/ip_vs
2.LVS负载调度算法

1)轮询:将收到的请求按顺序平均分给每台服务器,
2)加权轮询:根据服务器的处理能力分配请求,保证处理能力强的服务器处理更多的访问请求
3)最少连接:根据服务器的已连接数进行分配,将请求有限分配给连接数少的节点
4)加权最少连接:在服务器性能差异较大时,性能好的将处理更多的请求

2.LVS管理工具——ipvsadm

1)ipvsadm命令

命令	解释
-A	添加虚拟服务器(调度器——网关)
-t	指定虚拟IP地址(调度器外网ip)和端口
-s	指定调度算法
	rr:轮询 wrr:加权轮询 lc:最少轮询 wlc:加权最少连接
-a	添加要调度的服务器
-r	指定服务器的ip和端口
-m	使用NAT模式
-g	使用DR模式
-i	使用TUN模式
-w	指定权重(权重为0表示暂停该节点)
-d	从服务器池中删除指定服务器
-D	删除此虚拟服务器
ipvsadm-save/service ipvsadm save	保存策略(需重定向指定文件,不指定则为默认文件)
ipvsadm-restore	恢复策略

三、构建LVS负载均衡群集

1.LVS-NAT地址转换模式

1)打开调度器路由转发功能

vim /etc/sysctll.conf
	net.ipv4.ip_forward = 1
sysctl -p

2)设置SNAT

2.配置负载分配策略

1)配置负载均衡策略

ipvsadm -At 172.16.17.21:80 -s rr
例:ipvsadm -at 172.16.17.21:80 -r 192.168.1.1:80 -m -w 1

2)配置节点服务器
安装配置httpd
此处省略

3.测试LVS集群

LVS-DR

一、LVS-DR概述

LVS负载调度器作为集群的访问入口,但不作为网关使用,服务器池中各节点各自有两个网卡,一个网卡属于内网负责接收调度器的调度,另一个接入Internet,由各节点将响应数据发送给客户机

二、配置多个公网ip的LVS-DR

以下是我的拓扑图,是在虚拟机中完成的,系统是CentOS 6.5
CentOS 6.5搭建LVS负载均衡集群和Keepalived_第1张图片

1.配置负载调度器

1)配置虚拟IP地址(VIP)

vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
ONBOOT=yes
IPADDR=192.168.1.1
NETMASK=255.255.255.0

2)因为调度器和个服务器要用到公用VIP,为避免冲突,关闭内核的重定向参数响应

vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0

3)配置负载均衡策略

ipvsadm -At 192.168.11.114:80 -s rr
ipvsadm -at 192.168.11.114:80 -r 192.168.11.115 -g -w 1
ipvsadm -at 192.168.11.114:80 -r 192.168.11.116 -g -w 1

4)配置节点服务器
① 配置VIP

vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.1.2
NETMASK=255.255.255.255

② 添加VIP本地访问路由

vim /etc/sysctl.conf
	/sbin/route add -host 192.168.11.114 dev lo:0
route add -host 192.168.11.114 dev lo:0

③ 关闭内核重定向参数

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

④ 安装并配置httpd
5)测试LVS集群

二、配置仅用一个公网ip的LVS-DR

1.概述

在前面的基础上,添加网关服务器,集群内所有机器只有一个私有ip和VIP,客户机访问网关的公网IP时映射到调度器的VIP,再有服务器通过网关直接回复数据给客户机
以下是我的拓扑图,配置省略
CentOS 6.5搭建LVS负载均衡集群和Keepalived_第2张图片
192.168.11.0是模拟的外网,1.0是内网

LVS+Keepalived高可用集群

一、keepalived概述

Keepalived采用VRRP(虚拟路由冗余协议)热备份协议,有多台路由器组成一个热备组,通过VIP对外提供服务,每个热备组同一时刻只有一个主路由器提供服务,其他处于备份状态,

二、Keepalived的安装与控制

1.安装支持包
yum -y install kernel-devel openssl-devel popt-devel
yum -y install ipvsadm
2.编译安装Keepalived

1)解压
2)配置安装

./configure --prefix=/ --with-kernel-dir=/usr/src/kernel/2.6.32-431.e16.x86_64
make && make install

3)设置开机启动

chkconfig --add keepalived
chkconfig keepalived on

三、Keepalived的配置文件

1.Keepalived主配置文件介绍

Keepalived配置文件位置/etc/keepalived/keepalive.conf,global_defs {…}为热备部分配置,virtual_server{…}部分为调度器部分

global_defs {				
    router_id KEEP					#本服务器的名称 
}
vrrp_instance VI_1 {					#热备组名
    state BACKUP  	  #热备状态,master为主服务器,backup为备份服务器
    interface eth0					#承载VIP的网卡接口
    virtual_router_id 1				#热备组ID
    priority 99						#优先级,越大优先级越高
    advert_int 1						#通告间隔描述(心跳频率)
    authentication {				#认证类型,每个组必须相同
        auth_type PASS			#认证类型(当前为密码认证)
        auth_pass 123456		#密码
    }
    virtual_ipaddress {				
        192.168.1.2				#指定漂移地址(VIP)可以有多个
    }
}
virtual_server 192.168.1.2 80 {		#虚拟服务器VIP,端口
    delay_loop 6					#健康检查时间(秒)
    lb_algo rr						#调度算法(当前为轮询)	
    lb_kind DR						#群集工作模式(当前为DR)
    !persistence 50					#连接保持时间(!为注释)
    protocol TCP					#应用采用的协议(当前为tcp)

    real_server 192.168.1.3 80 {	#第一个web节点的ip,端口
        weight 1					#权重
        TCP_CHECK {				#健康检查方式
	    connect_port 80			#检查的端口
            connect_timeout 3	#连接超时(秒)
            nb_get_retry 3		#重试次数
            delay_before_retry 3	#重试间隔
        }
    }
}

四、配置LVS+Keepalived高可用集群

以下是我的拓扑图
CentOS 6.5搭建LVS负载均衡集群和Keepalived_第3张图片

1.按照上面的配置文件模板配置好Keepalived主服务器和从服务器

主服务器:Keepalived的virtual_server{…}部分相当于LVS的所有配置

service Keepalived start		
ip addr show dev eth0

从服务器:

service Keepalived start		
ip addr show dev eth0
2.配置web节点服务器

① 配置VIP

vim /etc/sysconfig/network-scripts/ifcfg-lo:0
	DEVICE=lo:0
	ONBOOT=yes
	IPADDR=192.168.1.2
	NETMASK=255.255.255.255

② 添加VIP本地访问路由

vim /etc/sysctl.conf
	/sbin/route add -host 192.168.11.114 dev lo:0
route add -host 192.168.11.114 dev lo:0

③ 关闭内核重定向参数

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

④ 安装并配置httpd

4.测试集群

你可能感兴趣的:(LVS)