lvs+keepalived负载mysql读Word格式文档下载.docx
- 文档编号:16845588
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:12
- 大小:70.31KB
lvs+keepalived负载mysql读Word格式文档下载.docx
《lvs+keepalived负载mysql读Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《lvs+keepalived负载mysql读Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
带有复制调度的基于地区的最少连接调度
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:
0
$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
1
主备之间同步检测时间间隔,秒。
authentication
设置主备间的验证类型和密码
auth_type
PASS
主从验证方式,类型有:
PASS、AH
auth_pass
redhat123
主备密码要相同
virtual_ipaddress
设置虚拟IP,可设多个,要分行
***虚拟服务定义部分***
virtual_server
192.168.2.2153306
指定虚拟IP及服务端口
delay_loop
6
运行情况检测时间,秒
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"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lvs keepalived 负载 mysql
![提示](https://static.bdocx.com/images/bang_tan.gif)