lvs+keepalived负载mysql读Word格式文档下载.docx

上传人:b****3 文档编号:16845588 上传时间:2022-11-26 格式:DOCX 页数:12 大小:70.31KB
下载 相关 举报
lvs+keepalived负载mysql读Word格式文档下载.docx_第1页
第1页 / 共12页
lvs+keepalived负载mysql读Word格式文档下载.docx_第2页
第2页 / 共12页
lvs+keepalived负载mysql读Word格式文档下载.docx_第3页
第3页 / 共12页
lvs+keepalived负载mysql读Word格式文档下载.docx_第4页
第4页 / 共12页
lvs+keepalived负载mysql读Word格式文档下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

lvs+keepalived负载mysql读Word格式文档下载.docx

《lvs+keepalived负载mysql读Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《lvs+keepalived负载mysql读Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。

lvs+keepalived负载mysql读Word格式文档下载.docx

带有复制调度的基于地区的最少连接调度

dh

目标散列调度

sh

源散列调度基于client地址的来源区分

sed

最短的期望的延迟

nq

最少队列调度

四、安装、配置

环境:

RIP1:

192.168.2.61

RIP2:

192.168.2.62

LVS1:

192.168.2.60

LVS2:

192.168.2.63

192.168.2.215

4.1 

添加VIP地址(real 

server)

因为在LVS的DR和TUN模式下,用户的访问请求到达real 

server后,是直接返回给用户的,不再经过前端的调度器(Director 

Server),

所以需要在每个Real 

server节点上增加虚拟的VIP地址,这样数据才能直接返回给用户。

其中echo这些段是抑制arp广播。

在两台realserver主机上添加脚本

[root@wch 

~]# 

cat 

/etc/lvs.sh 

#!

/bin/bash

VIP=192.168.2.215

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

case 

"

$1"

in

start)

/sbin/ifconfig 

lo:

$VIP 

broadcast 

netmask 

255.255.255.255 

up

echo 

lvs 

start!

1"

>

/proc/sys/net/ipv4/conf/lo/arp_ignore

2"

/proc/sys/net/ipv4/conf/lo/arp_announce

/proc/sys/net/ipv4/conf/all/arp_ignore

/proc/sys/net/ipv4/conf/all/arp_announce

;

stop)

down

stop!

0"

*)

Usage:

$0 

{start|stop}"

exit 

1

esac

LVS_MASTER

4.2 

安装keepalived(调度器)

这里编译之前必须先安装几个依赖包gcc、opensll、openssl-devel、popt、popt-devel 

[root@localhost 

tar 

zxvf 

keepalived-1.1.15.tar.gz

如果你的usr/src/kernel/目录下没有内核文件那就需要安装“ 

kernel-devel”

keepalived-1.1.15]# 

./configure 

--sysconf=/etc 

--with-kernel-dir=/usr/src/kernels/2.6.32-358.11.1.el6.x86_64

--sysconf指定配置文件安装路径/etc/keepalived/keepalived.conf

--with-kernel-dir指定使用内核源码的头文件(即include目录)

make 

&

install

[*注意]要执行“ln 

-s 

/usr/local/sbin/keepalived 

/sbin/”使/etc/init.d/keepalived可执行。

4.3 

安装lvs(调度器)

ipvsadm-1.24.tar.gz

ipvsadm-1.24]# 

“libipvs.h:

14:

23:

error:

net/ip_vs.h:

No 

such 

file 

or 

directory”报错,因为找不到对应的内核。

这时执行先确认有安装kernel-devel包,/usr/src/kernels/下才会有内核文件

“ln 

/usr/src/kernels/2.6.32-358.11.1.el6.x86_64 

/usr/src/linux” 

就可以了。

keepalived.conf

!

Configuration 

File 

for 

keepalived

***全局定义部分***

global_defs 

{

notification_email 

niandun@ 

报警邮件地址,可设多个,要分行

}

Notification_email_from 

root@localhost 

邮件发送地址

smtp_server 

192.168.22.100 

smtp 

地址

smtp_connect_timeout 

30 

连接smtp 

server超时时间

router_id 

LVS_DEVEL 

表示运行keepalived服务器的一个标识。

邮件中主题信息

vrrp_instance 

VI_1 

***vrrp实例定义部分***

state 

MASTER 

指定角色,master、backup

interface 

eth0 

指定监测网络接口

virtual_router_id 

51 

虚拟路由标识,同个vrrp唯一标识。

主备的要一致。

priority 

100 

定义优先级。

同个vrrp_instance下主的要大于备的

advert_int 

主备之间同步检测时间间隔,秒。

authentication 

设置主备间的验证类型和密码

auth_type 

PASS 

主从验证方式,类型有:

PASS、AH

auth_pass 

redhat123 

主备密码要相同

virtual_ipaddress 

设置虚拟IP,可设多个,要分行

***虚拟服务定义部分***

virtual_server 

192.168.2.2153306 

指定虚拟IP及服务端口

delay_loop 

运行情况检测时间,秒

lb_algorr 

负载调度算法

lb_kind 

DR 

LVS实现负载均衡机制,NAT、TUN、DR三种模式

!

persistence_timeout 

50 

会话保持时间,秒。

如果50s都没操作接下来的操作就会

分发到别的节点

protocol 

TCP 

指定转发协议类型,有TCP、UDP

real_server192.168.2.613306{ 

TCP_CHECK{

connect_timeout3

nb_get_retry3

delay_before_retry3

connect_port3306

}

real_server192.168.2.623306{

virtual_server192.168.2.21580{

delay_loop6

lb_algorr

lb_kindDR

persistence_timeout0

protocolTCP

real_server192.168.2.6180{

connect_port80

real_server192.168.2.6280{

LVS_BACKUP

先安装几个依赖包gcc、opensll、openssl-devel、popt、popt-devel 

修改配置文件keepalived.conf

BACKUP 

priority 

99 

值小于主

注:

从启动keepalived后还要执行下命令ipvsadm主从才连上

要是启动报错,则找出keepalived安装路径,建立连接到/usr/sbin/

ln 

/sbin/

/etc/init.d/keepalivedstart 

开启realserver上的lvs.sh脚本

五、模拟测试部分

VIP:

LVS主:

LVS备:

realserver1:

realserver2:

test1:

test2:

192.168.2.64

1.验证负载

LVS主、LVS备:

开启keepalived服务

realserver1、realserver2:

开启lvs.shstart;

web、mysql服务

test1、test2:

终端执行命令“mysql-h192.168.2.215-uroot-predhat123-e"

select*fromtest.yy"

test1

test2

访问web页面192.168.2.215,按F5刷新看是否会跳转页面(realserver1、realserver2首页间跳转)

存在问题现象:

(1)lvs放在realserver服务器上负载轮询异常,只能访问本地realserver

(2)同一ip在某一段时间内访问VIP时都分配到同一realserver端去(现在需求:

同一IP过来的每次查询申请进行负载)

问题分析:

为什么同一IP的某一段时间内访问都分配到同一realserver--->

持久连接技术

LVS持久连接技术有2种

持久时间工作原理

当一个新的请求进来时,就创建一条此ip的连接信息并添加一个state为none的记录,该记录有效期会轮询直至此ip的连接信息超时退出DIRECTOR记录。

在此none记录存在期间来自同一ip的地址请求都会被发送到同一realserver,并且会跟新none的expire的有效时期(为persistent的时间)

1. 

把同一个cip发来请求到同一台RS的持久超时时间。

把同一个client的请求信息记录到lvs的hash表里,保存时间使用persistence_timeout控制,单位为秒。

persistence_granularity参数是配合persistence_timeout的,在某些情况特别有用,他的值是子网掩码,表示持久连接的粒度,

默认是255.255.255.255,也就是单独的clientip,

如果改成,255.255.255.0就是clientip一个网段的都会被分配到同一个realserver。

2. 

一个链接创建后空闲时的超时时间,这个超时时间分为3种。

1)tcp的空闲超时时间。

(从ESTABLISHED状态转为断开状态的时间)

2)lvs收到客户端tcpfin的超时时间

3)udp的超时时间

ipvsadm-Lcn查看lvs的记录

ipvsadm–settcptcpfinudp更改超时连接时间

改变持续时间的方法

LVS

1.persistence_timeout参数的值(即state为none的expire的值:

none有效期),改成0,注释掉为取消掉持久连接

2.修改超时时间

命令为“#ipvsadm–settcptcpfinudp 

第一个参数tcp为state中从ESTABLISHED状态转为断开状态的时间

第二个参数tcpfin为state中FIN_WAIT对应的expire有效期

第三个参数udp为state中从ESTABLISHED状态转为断开状态的时间

###########################################

结合实例的说明

ipvsadm3个超时参数

mysql数据库的连接超时参数

lvs的state状态

realserver的state状态

1.persistence_timeout属关闭状态

当ipvsadm--set603020,mysql的f的[mysqld]中wait_timeout=5,interactive_timeout=5

此时test1连接VIP数据库成功

第一时间:

lvs端的记录中显示为test1:

192.168.2.63请求访问VIP:

1925.168.2.215被分发到realserver2:

192.168.2.62,此时为连接的ESTABLISHED状态,有效期为上面设定的tcp有效期

realserver2上面的端口信息为 

1925.168.2.215为连接的ESTABLISHED状态,

第二时间:

超过5秒后,因为f中设置的超时时间为5秒,所以mysql的连接超时,realserver2上的端口信息为从连接的ESTABLISHED状态转为 

FIN_WAIT2状态

(这里连接状态是自己手动退出的,则lvs端为fin_wait状态,realserver端即时断开没有端口连接信息显示)

第三时间:

超过60秒后,因为lvs中ipvsadm中的tcp超时连接为60秒,所以lvs端的连接ESTABLISHED状态记录信息清除,realserver2中的3306端口连接的FIN_WAIT2状态也同时清除

1.persistence_timeout属开启状态

192.168.2.62,此时lvs记录上为连接的ESTABLISHED跟NONE状态,ESTABLISHED有效期为上面设定的tcp有效期NONE的有效期默认为60秒

此时NONE有效期先是10秒,none的expire值为0时,检测当前ip的ESTABLISHED连接是否已超时断开,若断开了此none记录清除,否则none的有效期更新为默认值60秒,继续轮询

此时的NONE状态继续上面的轮询,值为0时检测当前ip的连接状态是否存在

可行性解决问题

(2)

让来自同一ip地址的不同批次的mysql查询lvs都将负载到后台数据库(前提条件:

后台数据库realserver的数据必须一致)

注释掉keepalived配置文件中的persistence_timeout参数选项(此时ipvsadm--set 

tcptcpfinudp的这3个参数值对访问负载分发无影响)

weight参数也要注释掉

测试结果

#mysql-h192.168.2.61-uroot-predhat123-e"

+------+-------+

|id 

|name 

|

2|linux|

#mysql-h192.168.2.62-uroot-predhat123-e"

1|linux|

mysqlDR模式轮询负载正常

测试长连接状态下的情况

#mysql-h192.168.2.61-uroot-predhat123

mysql>

select*fromtest.yy;

#mysql-h192.168.2.215-uroot-predhat123-e"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1