ysql+heartbeat+DRBD+LVS实现mysql高可用

  • 在企业应用中,mysql+heartbeat+DRBD+LVS是一套成熟的集群解决方案,通过heart+DRBD实现mysql的主 节点写操作的高可用性,而通过mysql+LVS实现数据库的主从复制和mysql的读操作的负载均衡。整个方案在读写方面进行了分离,融合了写操作的高 可用和读操作的负载均衡,是一个完美又廉价的企业应用解决方案

    目前流行的高可用解决方案:

    mysql的复制功能是通过建立复制关系和两台和多台机器环境中,一台机器出现故障切换到另一台机器上保证一定程度的可用性

    mysql的复制功能加一些集群软件

    mysql+heartbeat+DRBD的复制功能

    共享存储+mysql的复制功能

    DRBD:(分布式块设备复制)是linux内核的存储层中的一个分布式存储系统,可利用DRBD在两台linux服务器之间共享块设备、文件系统 和数据。当地数据写入本地主节点的文件系统时,这些数据会通过网络发送到另一台主节点上,本地主节点和远程主节点数据通过TCP/IP协议保持同步,主节 点故障时,远程节点保存着相同的数据,可以接替主节点继续提供数据。两个节点之间使用heartbeat来检测对方是否存活

    同步过程

    1:在node1上写操作被提交,通过内核传给DRBD模块

    2:DRBD发送写操作到node2

    3:在node2上的DRBD发送写操作给本地磁盘

    4:在node2上的DRBD向node1发确认信息,确认接收到写操作并发送给本地次哦按

    5:在node1上的DRBD发送写操作给本地磁盘

    6:node1内核回应写操作完成

    配置之前的准备

    1.设置hostname及解析

    1.[[email protected] ~]# vim /etc/hosts

    2.192.168.253.129 drbd1

    3.192.168.253.140 drbd2

    部署mysql的高可用高扩展集群

    1.[[email protected] ~]# mke2fs -j /dev/sda

    2.[[email protected] ~]# mkdir /database

    3.[[email protected] ~]# mount /dev/sda /database/

    4.[[email protected] ~]# mount -a

    5.[[email protected] ~]# mount

    6.[[email protected] ~]# df -h | grep /database

    7./dev/sda               20G  173M   19G   1% /database

    DRBD的部署

    1.[[email protected] ~]# uname -a

    2.<a href="http://www.it165.net/os/oslin/" target="_blank" class="keylink">Linux</a> drbd1 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/<a href="http://www.it165.net/os/oslin/" target="_blank" class="keylink">Linux</a>

    通过yum安装drbd服务

    默认centos6.x中并没有提供DRBD的源,这时要么采用源码编译方法,要么使用第三方的YUM源。这里使用了http://elrepo.org/tiki/tiki-index.php提供的源

    1.rpm -Uvh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

    2.[[email protected] yum.repos.d]# rpm -qa | grep elrepo-release

    3.elrepo-release-6-5.el6.elrepo.noarch

    实际上就是往yum.repos.d里面添加一个源配置elrepo.repo

    使用yum list查看,进行安装

    1.[[email protected] yum.repos.d]# yum list all | grep drbd

    2.drbd83-utils.x86_64                    8.3.16-1.el6.elrepo              elrepo

    3.drbd84-utils.x86_64                    8.4.4-2.el6.elrepo                elrepo

    4.kmod-drbd83.x86_64                     8.3.16-1.el6.elrepo               elrepo

    5.kmod-drbd84.x86_64                     8.4.4-1.el6.elrepo                elrepo

    6.[[email protected] ]# yum --enablerepo=elrepo install drbd83-utils kmod-drbd83

    检查DRBD是都安装成功,若安装完成,让内核加载DRBD模块

    复制样例配置文件为即将使用的配置文件

    1.vim /usr/share/doc/drbd83-utils-8.3.16/drbd.conf.example

    配置DRBD

    1.[[email protected] etc]#  vim /etc/drbd.conf

    2.# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example

    3.include "drbd.d/global_common.conf";

    4.include "drbd.d/*.res";

    配置 vim /etc/drbd.d/global_common.conf

    01.vim /etc/drbd.d/global_common.conf

    02.global {

    03.usage-count no;

    04.# minor-count dialog-refresh disable-ip-verification

    05.}

    06.common {

    07.protocol C;

    08.handlers {

    09.pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";

    10.pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";

    11.local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";

    12.# fence-peer "/usr/lib/drbd/crm-fence-peer.sh";

    13.# split-brain "/usr/lib/drbd/notify-split-brain.sh root";

    14.# out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";

    15.# before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";

    16.# after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;

    17.}

    18.startup {

    19.#wfc-timeout 120;

    20.#degr-wfc-timeout 120;

    21.}

    22.disk {

    23.on-io-error detach;

    24.#fencing resource-only;

    25.}

    26.net {

    27.cram-hmac-alg "sha1";

    28.shared-secret "mydrbdlab";

    29.}

    30.syncer {

    31.rate 1000M;

    32.}

    33.}

    配置/etc/drbd.d/web.res

    01.[[email protected] etc]# vim /etc/drbd.d/web.res

    02.resource web {

    03.on drbd1 {

    04.device    /dev/drbd0;

    05.disk      /dev/sda;

    06.address   192.168.253.129:7789;

    07.meta-disk internal;

    08.}

    09.on drbd2 {

    10.device    /dev/drbd0;

    11.disk      /dev/sda;

    12.address   192.168.253.140:7789;

    13.meta-disk internal;

    14.}

    15.}

    启动DRBD

    1.[[email protected] ~]# drbdadm create-md all

    2.Writing meta data...

    3.initializing activity log

    4.NOT initialized bitmap

    5.New drbd meta data block successfully created.

    启动DRBD时,可能出现以下错误

    01.[[email protected] ~]# drbdadm create-md all

    02.md_offset 21474832384

    03.al_offset 21474799616

    04.bm_offset 21474144256

    05.Found ext3 filesystem

    06.20971520 kB data area apparently used

    07.20970844 kB left usable by current configuration

    08.Device size would be truncated, which

    09.would corrupt data and result in

    10.‘access beyond end of device‘ errors.

    11.You need to either

    12.* use external meta data (recommended)

    13.* shrink that filesystem first

    14.* zero out the device (destroy the filesystem)

    15.Operation refused.

    16.Command ‘drbdmeta 0 v08 /dev/sda internal create-md‘ terminated with exit code 40

    17.drbdadm create-md web: exited with code 40

    这事需要如下命令覆盖文件系统中的设备块信息

    1.[[email protected] ~]# dd if=/dev/zero of=/dev/sda bs=1M count=128

    2.记录了128+0 的读入

    3.记录了128+0 的写出

    4.134217728字节(134 MB)已复制,0.448662 秒,299 MB/

    再重新启动DRBD,可以通过dmesg命令查看DRBD的启动过程

时间: 2024-08-11 03:30:57

ysql+heartbeat+DRBD+LVS实现mysql高可用的相关文章

LVS+Keepalived实现MySQL高可用

LVS+Keepalived+MySQL高可用配置 本文所有配置前提是已实现MySQL双主备份(链接:http://www.cnblogs.com/ahaii/p/6307648.html)

MySQL高可用之——keepalivd+互为主从

目标:配置一个keepalived双机热备架构,并配置主从复制 规划: master1     zlm177     192.168.17.177 master2     zlm188     192.168.17.188 vip                             192.168.17.166 环境: Red Hat Enterprise Linux 6.4 Percona Server 5.6.15 一.软件安装 可以去官网http://www.keepalived.or

15、 Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节

15. Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节 参考自:http://oldboy.blog.51cto.com/2561410/1240412 heartbeat和keepalived应用场景及区别 很多网友说为什么不使用keepalived而使用长期不更新的heartbeat,下面说一下它们之间的应用场景及区别: 1.对于web,db,负载均衡(lvs,haproxy,nginx)等,heartbeat和keepalived都可以实现 2.lvs最好和keepa

Mysql+DRBD+Heartbeat 实现mysql高可用的双击热备(DRBD篇)

DRBD官方tar包下载地址:   http://oss.linbit.com/drbd/ 环境介绍: 系统版本:CentOS 6.4 (64位) 内核版本  2.6.32-358.el6.x86_64 软件版本:drbd-8.4.3.tar.gz 主:10.0.0.1   从:10.0.0.2 两台机器上的hosts都需要修改: [[email protected] ~]# vim /etc/hosts 10.0.0.1    node1 10.0.0.2    node2 两台服务器双网卡,

Mysql+DRBD+Heartbeat 实现mysql高可用的双机热备(mysql+heartbeat篇)

*************************************部署MYSQL******************************************* yum -y install  gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake bison* useradd mysql -d /usr/loc

Heartbeat+Drbd+MySQL高可用

一.环境介绍 继续使用之前heartbeat+drbd+nfs的环境,192.168.49.0/24网段用来ssh远程连接,172.16.49.0/24用来做心跳连接,并且也做drbd同步数据使用.因为中间做了好多改变,这里再次给出环境的配置情况. 主机名 角色 IP地址 heartbeat01.contoso.com heartbeat+drbd+mysql(节点1) eth0:192.168.49.133 eth1:172.16.49.133 heartbeat02.contoso.com

Heartbeat+DRBD+MySQL高可用方案

Heartbeat+DRBD+MySQL高可用方案 =============================================================================== 概述: =============================================================================== 方案介绍  1.方案介绍及优缺点 ★方案介绍 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数

mysql高可用集群——heartbeat+drbd

heartbeat+drbd+mysql是一种早期的mysql高可用技术. 资料来源:http://www.drbd.org DRBD原理:DRBD是对磁盘块操作的复制,可看做网络raid1.不复制磁盘内容,只复制操作.原理可见下图 架构描述 服务器列表 192.168.1.82 192.168.1.1 3306 主 /dev/drbd0 192.168.1.82 192.168.1.2 3306 备 /dev/drbd0 架构图 安装配置: 配置drbd 1.检查机器名解析: 1.查看解析 s

Heartbeat+DRBD+MySQL高可用方案【转】

转自Heartbeat+DRBD+MySQL高可用方案 - yayun - 博客园 http://www.cnblogs.com/gomysql/p/3674030.html 1.方案简介 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证.默认情况下只有一台mysql在工作,当主mysql服务器出现问题后,系统将自动切换到备机上继续提供服务,当主数据库修复完毕,又将服务切回继续由主mysql提供服务. 2.方案优缺点 优点:安全性高.稳