zhongl 发表于 2013-7-16 08:48:55

MYSQL+heratbeat+DRBD+LVS 数据库高可用群集---DRBD部分

在企业数据库应用群集方案中MYSQL+heratbeat+DRBD+LVS已经很成熟了,通过heartbeat+DRBD实现MYSQL的主节点写操作的高可用性;通过MYSQL+LVS实现MYSQL读操作的负载均衡。DRBD简单工作流程:   当数据写入到本地主节点时,这些数据会通过网络发送到另一台主节点上。本地主节点和远程主节点数据通过TCP/IP协议保持同步,主节点故障时,远程节点保存相同的数据,可以接替主节点继续提供数据。两个主节点之间使用heartbeat来监测对方是否存活。群集的简单架构图如下:
DRBD部分:1、设置host192.168.0.229    mysql-drbd-1192.168.0.230    mysql-drbd-2
2、磁盘的设置本地主节点的分区要跟远程主节点的分区大小一致。新添加的分区格式化后就放在那里等待以后的配置就可以。
3、DRBD的配置文件的
# cat /etc/drbd.conf #
# please have a a look at the example configuration file in
# /usr/share/doc/drbd83/drbd.conf
#
#create by yw_cy at 2013-07-10global {
         # minor-count 64;
         # dialog-refresh 5; #5 seconds
         # disable-ip-verification;
         usage-count no;
}common {
syncer { rate 200M; }
}resource r0 {
      protocol      C;
      handlers {
             pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
             pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
             local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
             fence-peer "/usr/lib64/heartbeat/drbd-peer-outdater -t 5";
             pri-lost "echo pri-lost. Have a look at the log files. | mail -s 'DRBD Alert' root";
             split-brain "/usr/lib/drbd/notify-split-brain.sh root";
             out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
} net {
      # timeout         60;
      # connect-int       10;
      # ping-int          10;
      # max-buffers   2048;
      # max-epoch-size2048;
      cram-hmac-alg "sha1";
      shared-secret "MySQL-HA";
}disk {
      on-io-error detach;
      fencing resource-only;
}startup {
      wfc-timeout 120;
      degr-wfc-timeout 120;
}device       /dev/drbd0;on mysql-drbd-1 {
      disk      /dev/sdb1;
      address   192.168.0.229:7788;
         meta-disk   internal;
}on mysql-drbd-2 {
      disk      /dev/sdb1;
      address   192.168.0.230:7788;
      meta-disk   internal;
}}
本地跟远程的一样就可以。
4、DRBD的启动   创建DRBD元数据库信息,命令为 #drbdadmcreate-mdr0执行这个命令是有肯能会报错,这时需用dd命令覆盖文件系统中的块设备信息。dd if/dev/zeroof=/dev/sdb1bs=1Mcount=128然后在执行刚才那个创建元数据库信息的命令就会成功了,然后就可以启动了/etc/init.d/drbdstart启动有可能也会报错,一般是权限啊,所属组的问题,按照提示依次完成就可以了。然后在次启动,成功。
5、将节点设置为primary节点#drbdadm primary r0    #drbdadm----overwrite-data-of-peerprimary all #如果上一步执行不成功,则执行此命令把此节点设置为primary,从头开始同步#mkfs.ext3/dev/sdb1
6、从新启动drbd记得上面的操作都是在两个节点同时操作。 # /etc/init.d/drbd restart
Stopping all DRBD resources: .
Starting DRBD resources: [ d(r0) s(r0) n(r0) ].      
7、查看数据同步情况# cat /proc/drbd
version: 8.3.15 (api:88/proto:86-97)
GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by mockbuild@builder10.centos.org, 2013-03-27 16:01:26
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0具体意思不多说,主要看两个关键字,primary/secondary表示两台节点的关系建立完成,一台主要,一台次要。update/update表示数据也同步了。到此DRBD部分配置完毕。

cxin 发表于 2013-7-22 00:56:56

找不到恐龙,就用蜥蜴顶

颇为阿娇978 发表于 2013-7-28 12:05:38

我是来刷分的,嘿嘿

leonheart 发表于 2013-8-4 18:29:45

生,容易。活,容易。生活,不容易。

kaola4549 发表于 2013-8-25 01:19:46

如果回帖是一种美德,那我早就成为圣人了!

arongsoft 发表于 2013-9-21 11:54:52

如果恐龙是人,那人是什么?

shenzhang 发表于 2013-11-28 06:04:38

当青春已成青春,该拿什么去挥霍.
页: [1]
查看完整版本: MYSQL+heratbeat+DRBD+LVS 数据库高可用群集---DRBD部分