mysql+lvs+keepalived 复制负载配置.docx

上传人:b****6 文档编号:7055227 上传时间:2023-01-16 格式:DOCX 页数:20 大小:23.84KB
下载 相关 举报
mysql+lvs+keepalived 复制负载配置.docx_第1页
第1页 / 共20页
mysql+lvs+keepalived 复制负载配置.docx_第2页
第2页 / 共20页
mysql+lvs+keepalived 复制负载配置.docx_第3页
第3页 / 共20页
mysql+lvs+keepalived 复制负载配置.docx_第4页
第4页 / 共20页
mysql+lvs+keepalived 复制负载配置.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

mysql+lvs+keepalived 复制负载配置.docx

《mysql+lvs+keepalived 复制负载配置.docx》由会员分享,可在线阅读,更多相关《mysql+lvs+keepalived 复制负载配置.docx(20页珍藏版)》请在冰豆网上搜索。

mysql+lvs+keepalived 复制负载配置.docx

mysql+lvs+keepalived复制负载配置

1.MySQL-VIP:

192.168.1.10

2.2.MySQL-master1:

192.168.1.4

3.3.MySQL-master2:

192.168.1.9

4.4.lvs_servermaster192.168.1.5

5.5.lvs_serverbackup192.168.1.6

6.6.liunx版本:

Linuxversion2.6.18-164.el5

7.7.MySQL版本:

5.0.56

8.8.Keepalived版本:

1.1.17

实施步骤实施步骤实施步骤实施步骤:

①_在realserver主机上实行脚本realserver,为lo:

0绑定VIP地址192.168.1.10,这步分别在二个mysql主机上192.168.1.4、192.168.1.9实施。

这步提前做,是因为以后的过程中这一步是不会发生更改的

Vim/usr/local/bin/lvs_real.sh

#!

/bin/bash

#description:

startrealserver

VIP=192.168.1.10

source/etc/rc.d/init.d/functionscase"$1"instart)echo"startLVSofrealserver"

/sbin/ifconfiglo:

0$VIPbroadcast$VIPnetmask255.255.255.255up

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

;;

stop)

/sbin/ifconfiglo:

0down

echo"closeLVSdirectorserver"

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"Usage:

$0{start|stop}"

exit1

Esac

完成运行此脚本:

.Lvs_real.shstart(orstop)

简单说明下上述脚本的作用:

1)vip(virtualip)。

直接路由模式的vip必须跟服务器对外提供服务的ip地址在同一个网段,并且lvs负载均衡器和其他所有提供相同功能的服务器都使用这个vip;

2)vip被绑定在环回接口lo0:

0上,其广播地址是其本身,子网掩码是255.255.255.255。

这与标准的网络地址设置有很大的不同。

采用这种可变长掩码方式把网段划分成只含一个主机地址的目的是避免ip地址冲突;

3)echo这段的作用是抑制arp广播。

如果不做arp抑制,将会有众多的机器向其他宣称:

“嗨!

我是奥巴马,我在这里呢!

”,这样就乱套了。

②为二台lvs主机安装lvs+keepalived软件。

安装lvs软件是必须做的,因为keepalived是运行在lvs之上的,因此lvs及keepalived必须装在一个系统里面。

过程如下:

1.#mkdir/usr/local/src/lvs

2.#cd/usr/local/src/lvs

3.#wgethttp:

//www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

4.#ln-s/usr/src/kernels/2.6.18-53.el5PAE-i686//usr/src/linux

5.#tarzxvfipvsadm-1.24.tar.gz

6.#cdipvsadm-1.24

7.#make

8.#makeinstall

9.执行ipvsadm,

10查看当前加载的内核模块:

lsmod|grepip_vs

11.运行ipvsadm

[root@lvsipvsadm-1.24]#lsmod|grepip_vs

Ip_vs775690

③编辑keepalived.conf文件,直接用keepalived实现负载均衡及高可用性

1.a)Keepalived的安装

2.

3.#wgethttp:

//www.keepalived.org/software/keepalived-1.1.15.tar.gz

4.

5.#tarzxvfkeepalived-1.1.15.tar.gz

6.

7.#cdkeepalived-1.1.15

8.

9.#./configure

10.

显示出以下结果:

Keepalivedconfiguration

------------------------

Keepalivedversion:

1.1.17

Compiler:

gcc

Compilerflags:

-g-O2

ExtraLib:

-lpopt-lssl-lcrypto

UseIPVSFramework:

Ye

IPVSsyncdaemonsupport:

Yes

UseVRRPFramework:

Yes

UseLinkWatch:

No

UseDebugflags:

No

11.#make

12.

13.#makeinstall

将keepalived做成启动脚务,方便管理:

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

2.

3.#cp/usr/local/etc/sysconfig/keepalived/etc/sysconfig/

4.

5.#mkdir/etc/keepalived

6.

7.#cp/usr/local/etc/keepalived/keepalived.conf/etc/keepalived/

8.

9.#cp/usr/local/sbin/keepalived/usr/sbin/

10.

11.#servicekeepalivedstart|stop

12.

配置主lvs

1.!

ConfigurationFileforkeepalived

2.

3.global_defs{

4.

6.

7.yuhongchun027@

8.

9.}

10.

11.notification_email_fromsns-lvs@

12.

13.smtp_server127.0.0.1

14.

15.router_idLVS_DEVEL_1

16.

17.}

18.

19.vrrp_instanceVI_1{

20.

21.stateMASTER

22.

23.interfaceeth0

24.

25.virtual_router_id51

26.

27.priority100

28.

29.advert_int1

30.

31.authentication{

32.

33.auth_typePASS

34.

35.auth_pass1111

36.

37.}

38.

39.virtual_ipaddress{

40.

41.192.168.1.10

42.

43.}

44.

45.}

46.

47.virtual_server192.168.1.103360{

48.

49.delay_loop6

50.notification_email{

51.lb_algowrr

52.lb_kindDR

54.

55.persistence_timeout60

56.

57.protocolTCP

58.

59.real_server192.168.1.43306{

60.

61.weight3

62.

63.TCP_CHECK{

64.

65.connect_timeout10

66.

67.nb_get_retry3

68.

69.delay_before_retry3

70.

71.connect_port3306

72.

73.}

74.

75.}

76.

77.real_server192.168.1.93306{

78.

79.weight3

80.

81.TCP_CHECK{

82.

83.connect_timeout10

84.

85.nb_get_retry3

86.

87.delay_before_retry3

88.

89.connect_port3306

90.

91.}

92.

93.}

94.

95.}

96.配置备份lvs1.

!

ConfigurationFileforkeepalived

2.

3.global_defs{

4.

5.notification_email{

6.

7.yuhongchun027@

8.

9.}

10.

11.notification_email_fromsns-lvs@

12.

13.smtp_server127.0.0.1

14.

15.router_idLVS_DEVEL_2注意与主不一样的地方

16.

17.}

18.

19.vrrp_instanceVI_1{

20.

21.stateBACKUP注意与主不一样的地

3.

22.

23.interfaceeth0

24.

25.virtual_router_id51

26.

27.priority99注意与主不一样的地

28.

29.advert_int1

30.

31.authentication{

32.

33.auth_typePASS

34.

35.auth_pass1111

36.

37.}

38.

39.virtual_ipaddress{

40.

41.192.168.1.10

42.

43.}

44.

45.}

46.

47.virtual_server192.168.1.103306{

48.

49.delay_loop6

50.

51.lb_algowrr

52.

53.lb_kindDR

54.

55.persistence_timeout60

56.

57.protocolTCP

58.

59.real_server192.168.1.43306{

60.

61.weight3

62.

63.TCP_CHECK{

64.

65.connect_timeout10

66.

67.nb_get_retry3

68.

69.delay_before_retry3

70.

71.connect_port3306

72.

73.}

74.

75.}

76.

77.real_server192.168.1.93306{

78.

79.weight3

80.

81.TCP_CHECK{

82.

83.connect_timeout10

84.

85.nb_get_retry3

86.

87.delay_before_retry3

88.

89.connect_port3306

90.

91.}

92.

93.}

94.

95.}

96.

②分别在二台lvs机上启动servciekeepalivedstart就可实现负载均衡及高可用集群;keepalived.conf内容说明如下:

●●●●全局定义块全局定义块全局定义块全局定义块1、email通知。

作用:

有故障,发邮件报警。

2、Lvs负载均衡器标识(lvs_id)。

在一个网络内,它应该是唯一的。

3、花括号“{}”。

用来分隔定义块,因此必须成对出现。

如果写漏了,keepalived运行时,不会得到预期的结果。

由于定义块内存在嵌套关系,因此很容易遗漏结尾处的花括号,这点要特别注意。

●VRRP●VRRP●VRRP●VRRP定义块定义块定义块定义块

1、同步vrrp组vrrp_sync_group。

作用:

确定失败切换(FailOver)包含的路由实例个数。

即在有2个负载均衡器的场景,一旦某个负载均衡器失效,需要自动切换到另外一个负载均衡器的实例是哪些?

2、实例组group。

至少包含一个vrrp实例。

3、Vrrp实例vrrp_instance。

实例名出自实例组group所包含的那些名字。

(1)实例状态state。

只有MASTER和BACKUP两种状态,并且需要大写这些单词。

其中MASTER为工作状态,BACKUP为备用状态。

当MASTER所在的服务器失效时,BACKUP所在的系统会自动把它的状态有BACKUP变换成MASTER;当失效的MASTER所在的系统恢复时,BACKUP从MASTER恢复到BACKUP状态

(2)通信接口interface。

对外提供服务的网络接口,如eth0,eth1.当前主流的服务器都有2个或2个以上的接口,在选择服务接口时,一定要核实清楚。

(3)lvs_sync_daemon_inteface。

负载均衡器之间的监控接口,类似于HAHeartBeat的心跳线。

但它的机制优于Heartbeat,因为它没有“裂脑”这个问题,它是以优先级这个机制来规避这个麻烦的。

在DR模式中,lvs_sync_daemon_inteface与服务接口interface使用同一个网络接口。

(3)(4)虚拟路由标识virtual_router_id。

这个标识是一个数字,并且同一个vrrp实例使用唯一的标识。

即同一个vrrp_stance,MASTER和BACKUP的virtual_router_id是一致的,同时在整个vrrp内是唯一的。

(5)优先级priority。

这是一个数字,数值愈大,优先级越高。

在同一个vrrp_instance里,MASTER的优先级高于BACKUP。

若MASTER的priority值为150,那么BACKUP的priority只能是140或更小的数值。

(6)同步通知间隔advert_int。

MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位为秒

(7)验证authentication。

包含验证类型和验证密码。

类型主要有PASS、AH两种,通常使用的类型为PASS,据说AH使用时有问题。

验证密码为明文,同一vrrp实例MASTER与BACKUP使用相同的密码才能正常通信。

4、虚拟ip地址virtual_ipaddress。

可以有多个地址,每个地址占一行,不需要指定子网掩码。

注意:

这个ip必须与我们在lvs客户端设定的vip相一致!

 

●●●●虚拟服务器虚拟服务器虚拟服务器虚拟服务器virtual_servervirtual_servervirtual_servervirtual_server定义块定义块定义块定义块虚拟服务器定义是keepalived框架最重要的项目了,是keepalived.conf必不可少的部分。

1、虚拟服务器virtual_server。

这个ip来自于vrrp定义块的第“4”步,后面一个空格,然后加上端口号。

定义一个vip,可以实现多个tcp端口的负载均衡功能。

(1)delay_loop。

健康检查时间间隔,单位是秒。

(2)lb_algo。

负载均衡调度算法,互联网应用常使用wlc或rr。

(3)lb_kind。

负载均衡转发规则。

一般包括DR、NAT、TUN3种,在我的方案中,都使用DR的方式。

(4)persistence_timeout。

会话保持时间,单位是秒。

这个选项对动态网站很有用处:

当用户从远程用帐号进行登陆网站时,有了这个会话保持功能,就能把用户的请求转发给同一个应用服务器。

在这里,我们来做一个假设,假定现在有一个lvs环境,使用DR转发模式,真实服务器有3个,负载均衡器不启用会话保持功能。

当用户第一次访问的时候,他的访问请求被负载均衡器转给某个真实服务器,这样他看到一个登陆页面,第一次访问完毕;接着他在登陆框填写用户名和密码,然后提交;这时候,问题就可能出现了---登陆不能成功。

因为没有会话保持,负载均衡器可能会把第2次的请求转发到其他的服务器。

(5)转发协议protocol。

一般有tcp和udp两种。

实话说,我还没尝试过udp协议类的转发。

2、真实服务器real_server,也即服务器池。

Real_server的值包括ip地址和端口号,多个连续的真实ip。

(1)权重weight,权重值是一个数字,数值越大,权重越高。

使用不同的权重值的目的在于为不同性能的机器分配不同的负载,性能较好的机器,负载分担大些;反之,性能差的机器,则分担较少的负载,这样就可以合理的利用不同性能的机器资源。

(2)Tcp检查tcp_check。

附注:

以上就是lvs+keepalived的基本配置步骤,有兴趣的同学建议可做下lvs的1+2的基本架构实验,即不需要keepalived,采用单lvs的方式,其lvs_dr脚本如下

#vim/usr/local/sbin/lvs-dr.sh

1.

2.#!

/bin/bash

3.

4.#websitedirectorvip.

5.

6.SNS_VIP=192.168.1.188

7.

8.SNS_RIP1=192.168.1.104

9.

10.SNS_RIP2=192.168.1.105

11.

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

13.

14.logger$0calledwith$1

15.

16.case"$1"in

17.

18.start)

19.

20.#setsquidvip

21.

22./sbin/ipvsadm--set30560

23.

24./sbin/ifconfigeth0:

0$SNS_VIPbroadcast$SNS_VIPnetmask255.255.255.255broadcast$SNS_VIPup

25.

26./sbin/routeadd-host$SNS_VIPdeveth0:

0

27.

28./sbin/ipvsadm-A-t$SNS_VIP:

80-swrr-p3

29.

30./sbin/ipvsadm-a-t$SNS_VIP:

80-r$SNS_RIP1:

80-g-w1

31.

32./sbin/ipvsadm-a-t$SNS_VIP:

80-r$SNS_RIP2:

80-g-w1

33.

34.touch/var/lock/subsys/ipvsadm>>>>/dev/null2>>>>&1

35.

36.;;

37.

38.stop)

39.

40./sbin/ipvsadm-C

41.

42./sbin/ipvsadm-Z

43.

44.ifconfigeth0:

0down

45.

46.routedel$SNS_VIP

47.

48.rm-rf/var/lock/subsys/ipvsadm>>>>/dev/null2>>>>&1

49.

50.echo"ipvsadmstoped"

51.

52.;;

53.

54.status)

55.

56.if[!

-e/var/lock/subsys/ipvsadm];then

57.

58.echo"ipvsadmstoped"

59.

60.exit1

61.

62.else

63.

64.echo"ipvsadmOK"

65.

66.fi

67.

68.;;

69.

70.*)

71.

72.echo"Usage:

$0{start|stop|status}"

73.

74.exit1

75.

76.esac

77.

78.exit0

79.

最新版更新内容如下最新版更新内容如下最新版更新内容如下最新版更新内容如下:

①每台服务器都有二块网卡,分别连接内外网;后端的mysql数据库与web连接采用内网方式,整个网络环境采用内网;

②增加了keepalivedyiyyy.conf语法内容;

③删除了lvs.sh脚本内容,直接让keepalived内容更直接明了,新增加了单lvs的配置脚本lvs_dr.sh;

④lvs主从机上的keepalived.conf文件我直接从生产服务器上download下来了,可方便大家使用。

※※※※值得注意的是值得注意的是值得注意的是值得注意的是:

1、你必须向你的服务器所在机房IDC多申请一个IP供VIP使用;多关注/var/log/messages和ipvsadm-ln,利用其有效信息排错。

2、服务器的iptables、Selinux均关闭;在生产环境中,我就遇到了iptables的NAT转发问题,导致了lvs失败。

3、keepalived的启动

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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