最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

mysql集群方案之mysql+drbd+heartbeat

来源:动视网 责编:小OO 时间:2025-10-06 00:07:04
文档

mysql集群方案之mysql+drbd+heartbeat

这段时间一直在研究mysql的集群方案,前几天发了一个关于mysql+heartbeat+存储的方案,今天把mysql+drbd+heartbeat的方案也放出来吧,这个方案,我个人觉得有瑕疵,就是主机挂了通过heartbeat往备机上面切换这个没有问题,但是如果有failback的话,那么主机回切将会有一系列的问题,主要应该就是脑裂吧,遇到问题的欢迎和我讨论。1.环境说明:2.test1:192.168.122.10as5u33.test2:192.168.122.11as5u34.VIP:
推荐度:
导读这段时间一直在研究mysql的集群方案,前几天发了一个关于mysql+heartbeat+存储的方案,今天把mysql+drbd+heartbeat的方案也放出来吧,这个方案,我个人觉得有瑕疵,就是主机挂了通过heartbeat往备机上面切换这个没有问题,但是如果有failback的话,那么主机回切将会有一系列的问题,主要应该就是脑裂吧,遇到问题的欢迎和我讨论。1.环境说明:2.test1:192.168.122.10as5u33.test2:192.168.122.11as5u34.VIP:
这段时间一直在研究mysql的集群方案,前几天发了一个关于mysql+heartbeat+存储的方案,今天把mysql+drbd+heartbeat的方案也放出来吧,这个方案,我个人觉得有瑕疵,就是主机挂了通过heartbeat往备机上面切换这个没有问题,但是如果有failback的话,那么主机回切将会有一系列的问题,主要应该就是脑裂吧,遇到问题的欢迎和我讨论。

1.环境说明:

2.test1:192.168.122.10 as5u3

3.test2:192.168.122.11 as5u3

4.V I P:192.168.122.12

5.

6.

7.第一部分:mysql的安装(主备机一样)

8.# tar -zxvf mysql-5.0.67.tar.gz 

9.# cd mysql-5.0.67

10.# groupadd mysql

11.# useradd -g mysql -s /sbin/nologin -M mysql

12.# ./configure --prefix=/usr/local/mysql --with-charset=gbk --localstatedir=/var/data --with-extra-charset=all --enable-thread-safe-client

13.# make && make install

14.

15.# cp support-files/my-large.cnf /etc/my.cnf

16.# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

17.# chmod 755 /etc/rc.d/init.d/mysqld

18.加入服务队列:

19.# chkconfig --add mysqld

20.

21.# chown -R mysql.mysql /usr/local/mysql/

22.# /usr/local/mysql/bin/mysql_install_db --user=mysql(这一步可以先不用执行,放到drbd那一块执行)

23.# chown -R mysql.mysql /usr/local/mysql/var

24.

25.# /usr/local/mysql/bin/mysqld_safe --user=mysql &

26.

27.*************************************************************************

28.配置库文件搜索路径(有时间自己做吧)

29.# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf

30.# ldconfig

31.添加/usr/local/mysql/bin到环境变量PATH中

32.#echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

33.#source /etc/profile 

34.**************************************************************************

35.

36.######################################################################

37.

38.第二部分:DRBD的安装和设置(首先hosts做好主备解析,关闭iptables相关选项)

39.http://oss.linbit.com/drbd/

40.(1)安装DRBD(主从服务器安装相同)

41.# tar -zxvf drbd-8.3.0.tar.gz

42.# cd drbd-8.3.0

43.# make KDRI=/usr/src/redhat/

44.# make install

45.检查是否生成了相应的文件:/etc/drbd.conf ; /etc/init.d/drbd ; 以及./drbd/drbd.ko

46.加载安装drbd模块

47.# modprobe drbd

48.通过lsmod检查是否已经成功

49.#lsmod |grep drbd

50.如果有,则表示成功了

51.(2)更改drbd配置文件(主从服务器相同)

52.准备drbd要使用的分区,该分区最好是干净的分区,我在虚拟机中重新划分了一个分区/dev/sdb1作为drbd使用。

53.cat /etc/drbd.conf 

54.global { usage-count yes; }

55.common { syncer { rate 100M; } }

56.

57.#下面这段是建新找的防止开机无限搜索

58.startup {

59.wfc-timeout 5;

60.degr-wfc-timeout 120;

61.outdated-wfc-timeout 10;

62.}

63.

.resource r0 {

65.protocol C;

66.net {

67.cram-hmac-alg sha1;

68.shared-secret "FooFunFactory";

69.}

70.on test1 {

71.device /dev/drbd1;

72.disk /dev/sdb1;

73.address 192.168.122.10:78;

74.meta-disk internal;

75.}

76.on test2 {

77.device /dev/drbd1;

78.disk /dev/sdb1;

79.address 192.168.122.11:78;

80.meta-disk internal;

81.}

82.}

83.

84.DRBD的启动在启动DRBD之前,你需要分别在两台主机的hdb1分区上,创建供DRBD记录信息的数据块.分别在两台主机上执行: (做前得先执行这个操作mkfs.ext3 /dev/sdb1或者dd if=/dev/zero bs=1M count=1 of=/dev/sdb1; sync 这个命令破坏原有文件系统,否则底下第一次执行主备同步会感觉到很慢)

85.[root@test1 local]#drbdadm create-md r0

86.[root@test2 local]#drbdadm create-md r0 

87.“r0”是我们在drbd.conf里定义的资源名称. 现在我们可以启动DRBD了,分别在两台主机上执行: 

88.[root@test1 local]#/etc/init.d/drbd start

.[root@test2 local]#/etc/init.d/drbd start 

90.**********************To abort waiting enter 'yes' 数字……总在等对方响应?怎么回事?**************看看/etc/hosts iptables

91.========================================================

92.现在可以查看DRBD的状态,然后在test1主机上执行:

93.[root@test1 ~]# cat /proc/drbd

94.version: 8.0.0 (api:86/proto:86)SVN Revision: 2713 build by root@test7, 2008-06-27 14:07:14

95.1: cs:Connected st:Secondary/Secondary ds:Inconsistent/Inconsistent C r--- 

96.ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0 act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0

97.”/proc/drbd”中显示了drbd当前的状态.第一行的st表示两台主机的状态,都是”备机”状态.ds是磁盘状态,都是”不一致”状态. 这是由于,DRBD无法判断哪一方为主机,以哪一方的磁盘数据作为标准数据.所以,我们需要初始化 一个主机.在test1上执行: 

98.

99.[root@test1 local]#drbdsetup /dev/drbd1 primary -o 或:/sbin/drbdadm primary r0

100./sbin/drbdadm secondary r0 (此命令为降级) 

101.

102.[root@test1 ~]# cat /proc/drbd

103.version: 8.0.0 (api:86/proto:86)SVN Revision: 2713 build by root@test1, 2010-07-15 14:07:14

104.1: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r--- 

105.ns:18528 nr:0 dw:0 dr:18528 al:0 bm:1 lo:0 pe:0 ua:0 ap:0 [>...................] sync'ed: 0.3% (8170/81)M finish: 6:46:43 speed: 336 (324) K/sec resync: used:0/31 hits:1156 misses:2 starving:0 dirty:0 changed:2 act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0

106.

107.主备机状态分别是”主/备”,主机磁盘状态是”实时”,备机状态是”不一致”. 在第3行,可以看到数据正在同步中,即主机正在将磁盘上的数据,传递到备机上.现在的进度是0.3%.

108.

109.=================================================

110.稍等一会,在数据同步完后,再查看一下test1的DRBD状态: 

111.[root@test1 ~]# cat /proc/drbd

112.version: 8.0.0 (api:86/proto:86)SVN Revision: 2713 build by root@test1, 2010-07-15 15:07:14

113.1: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r--- ns:497928 nr:0 dw:0 dr:497928 al:0 bm:31 lo:0 pe:0 ua:0 ap:0 resync: used:0/31 hits:31091 misses:31 starving:0 dirty:0 changed:31 act_log: used:0/127 hits:0 misses:0 starving:0 dirty:0 changed:0

114.磁盘状态都是”实时”,表示数据同步完成了.

115.

116.

117.挂载文件系统,先停止mysql,安装一下数据文件

118.

119.# mount /dev/drbd1 /var/data

120.# /usr/local/mysql/bin/mysql_install_db --user=mysql

121.# chown -R mysql.mysql /var/data

122.

123.

124.

125.

126.drbdadm connect r0

127.

128.##############################################################

129.

130.第三部分:heartbeat的安装(主备机一样,唯独ha.cf里面的ucast那条信息)

131.libnet 下载:http://sourceforge.net/projects/libnet-dev/

132.两台机器都要安装双机软件libnet.tar.gz heartbeat-2.1.3.tar.gz

133.tar -zxvf libnet.tar.gz

134.cd libnet

135../configure

136.make && make install

137.

138.groupadd haclient

139.useradd -g haclient hacluster

140.tar -zxvf heartbeat-2.1.3.tar.gz

141.cd heartbeat-2.1.3

142../ConfigureMe configure

143.make && make install

144.

145.[root@test1 ha.d]# more ha.cf

146.debugfile /var/log/ha-debug

147.logfile /var/log/ha-log

148.logfacility local0

149.keepalive 2

150.deadtime 30

151.warntime 10

152.initdead 120

153.auto_failback on

154.node test1

155.node test2

156.udpport 694

157.#ucast eth0 192.168.122.11 (不存在心跳线,所以没必要)

158.ping_group group1 192.168.122.10 192.168.122.11 (ping对方和自己,如果都ping不通则自己挂了,释放自己的资源)

159.respawn hacluster /usr/lib/heartbeat/ipfail

160.apiauth ipfail gid=haclient uid=hacluster

161.hopfudge

162.

163.[root@test1 ha.d]# more authkeys 

1.auth 3

165.#1 crc

166.#2 sha1 HI!

167.3 md5 Hello!

168.

169.cp /etc/init.d/mysqld /etc/ha.d/resources.d/

170.[root@test1 ha.d]# more haresources

171.test1 drbddisk Filesystem::/dev/drbd1::/var/data::ext3 mysqld 192.168.122.12

172.

173.umount /dev/drbd ; /usr/local/mysql/bin/mysqladmin shutdown

174.最后 /etc/init.d/heartbeat start

175.

176.

177.基本参见:http://hi.baidu.com/hx10/blog/item/7613a78b22bfa4729e2fb4ee.html

178.mysql部分参见:http://lin128.blog.51cto.com/407924/279411

179.drbd部分参见:http://blog.chinaunix.net/u2/66227/showart_1018701.html

180.

181.###############################################################

182.调试部分:

183.drbdadm -- --discard-my-data connect all (on node with "bad" data) 

184.drbdadm connect all (on node with "good" data) 

文档

mysql集群方案之mysql+drbd+heartbeat

这段时间一直在研究mysql的集群方案,前几天发了一个关于mysql+heartbeat+存储的方案,今天把mysql+drbd+heartbeat的方案也放出来吧,这个方案,我个人觉得有瑕疵,就是主机挂了通过heartbeat往备机上面切换这个没有问题,但是如果有failback的话,那么主机回切将会有一系列的问题,主要应该就是脑裂吧,遇到问题的欢迎和我讨论。1.环境说明:2.test1:192.168.122.10as5u33.test2:192.168.122.11as5u34.VIP:
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top