• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >windows > 搭建基于Corosync+DRBD的高可用MySQL集群

搭建基于Corosync+DRBD的高可用MySQL集群

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含heartbeat drbd mysql,drbd mysql,corosync,corosync pacemaker,corosync怎么读等服务器相关知识,网友希望可以进行参考

1、实验环境:

Node1:192.168.1.17RHEL5.8_32bit,web server)

Node2:192.168.1.18RHEL5.8_32bit,web server)

SteppingStone:192.168.1.19RHEL5.8_32bit)

VIP:192.168.1.20


2、准备工作

<1> 配置主机名

节点名称使用/etc/hosts解析;节点名称必须跟uname -n命令的执行结果一致

Node1:

# hostname node1.ikki.com
# vim /etc/sysconfig/network
HOSTNAME=node1.ikki.com

Node2:

# hostname node1.ikki.com
# vim /etc/sysconfig/network
HOSTNAME=node2.ikki.com

<2> 配置节点ssh基于密钥方式互相通信

Node1:

# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2

Node2:

# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1

<3> 配置各节点基于主机名互相通信

Node1&Node2:

# vim /etc/hosts
192.168.1.17   node1.ikki.com node1
192.168.1.18   node2.ikki.com node2

<4> 配置各节点时间同步

Node1&Node2:

# crontab -e
*/5 * * * *     /sbin/ntpdate 202.120.2.101 &> /dev/null

<5> 配置跳板机SteppingStone)

与Node1和Node2建立ssh互信,且基于主机名通信:

# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
# vim /etc/hosts
192.168.1.17   node1.ikki.com node1
192.168.1.18   node2.ikki.com node2

制作同步远程执行命令的step脚本工具:

# vim step
#!/bin/bash
if [ $# -eq 1 ]; then
  for I in {1..2}; do
    ssh node$I $1;
  done
else
  echo "Usage:step 'COMMANDs'"
fi
# chmod +x step
# mv step /usr/sbin

<6> Node1和Node2两个节点上各提供了一个大小相同的分区作为drbd设备

为各个节点上创建LVM逻辑卷,大小为1G

# fdisk /dev/sda
n --> e --> n --> +1G --> w
# partprobe /dev/sda


3、安装内核模块和管理工具

安装最新的8.3的版本:

drbd83-8.3.15-2.el5.centos.i386.rpm

kmod-drbd83-8.3.15-3.el5.centos.i686.rpm

在SteppingStone上执行远程安装:

# step 'yum -y --nogpgcheck localinstall drbd83-8.3.8-1.el5.centos.i386.rpm kmod-drbd83-8.3.8-1.el5.centos.i686.rpm'


4、配置drbdNode1)

<1> 复制样例文件为配置文件:

# cp /usr/share/doc/drbd83-8.3.8/drbd.conf  /etc

<2> 配置/etc/drbd.d/global-common.conf

global {
        usage-count no;    # 禁用信息统计
        # minor-count dialog-refresh disable-ip-verification
}
common {
        protocol C;    # 默认使用同步协议
        handlers {
                # These are EXAMPLE handlers only.
                # They may have severe implications,
                # like hard resetting the node under certain circumstances.
                # Be careful when chosing your poison.
                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";
                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";
                local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
                # fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
                # split-brain "/usr/lib/drbd/notify-split-brain.sh root";
                # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
                # before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k";
                # after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;
        }
        startup {
                # wfc-timeout degr-wfc-timeout outdated-wfc-timeout wait-after-sb
        }
        disk {
                on-io-error detach;    # 当磁盘IO错误时执行分离
                # on-io-error fencing use-bmbv no-disk-barrier no-disk-flushes
                # no-disk-drain no-md-flushes max-bio-bvecs
        }
        net {
                # sndbuf-size rcvbuf-size timeout connect-int ping-int ping-timeout max-buffers
                # max-epoch-size ko-count allow-two-primaries cram-hmac-alg shared-secret
                # after-sb-0pri after-sb-1pri after-sb-2pri data-integrity-alg no-tcp-corki
                cram-hmac-alg "sha1";    # 同步时验证所使用的算法
                shared-secret "mydrbd7788";    # 共享的密码
        }
        syncer {
                rate 200M;    # 同步速率
                # rate after al-extents use-rle cpu-mask verify-alg csums-alg
        }
}

<3> 定义一个资源/etc/drbd.d/mydrbd.res,内容如下:

resource mydrbd {
        device  /dev/drbd0;
        disk    /dev/sda5;
        meta-disk internal;
        on node1.ikki.com {
                address 192.168.1.17:7789;
        }
        on node2.ikki.com {
                address 192.168.1.18:7789;
        }
}

将以上配置的文件全部同步至另外一个节点

# scp -r /etc/drbd.*  node2:/etc


5、在两个节点上初始化已定义的资源并启动服务:

<1> 初始化资源Node1和Node2):

# drbdadm create-md web

<2> 启动服务Node1和Node2):

# /etc/init.d/drbd start

<3> 查看启动状态Node1):

# cat /proc/drbd
version: 8.3.15 (api:88/proto:86-97)
GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by mockbuild@builder17.centos.org, 2013-03-27 16:04:08
 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent 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:987896

<4> 将当前节点设置为主节点Node1)

# drbdadm -- --overwrite-data-of-peer primary mydrbd

注:适用于初次设置

再次查看状态:

# drbd-overview
  0:mydrbd  Connected Primary/Secondary UpToDate/UpToDate C r-----

注:Primary/Secondary:当前节点/另一节点


6、创建文件系统并挂载主节点Node1)

文件系统的挂载只能在Primary节点进行,因此在主节点上对drbd设备进行格式化:

# mke2fs -j /dev/drbd0
# mkdir /mydata
# mount /dev/drbd0 /mydata


7、切换主从节点进行测试

Node1:

# cp /etc/inittab /mydata
# umount /mydata
# drbdadm secondary mydrbd
# drbd-overview
  0:mydrbd  Connected Secondary/Secondary UpToDate/UpToDate C r-----

Node2:

# drbdadm primary mydrbd
# drbd-overview
  0:mydrbd  Connected Primary/Secondary UpToDate/UpToDate C r-----
# mkdir /mydata
# mount /dev/drbd0 /mydata
# ls /mydata


8、配置openais/corosync+pacemaker

<1> 安装corosync和pacemakerSteppingStone)

# cd /root/corosync/
# ls
cluster-glue-1.0.6-1.6.el5.i386.rpm
cluster-glue-libs-1.0.6-1.6.el5.i386.rpm
corosync-1.2.7-1.1.el5.i386.rpm
corosynclib-1.2.7-1.1.el5.i386.rpm
heartbeat-3.0.3-2.3.el5.i386.rpm
heartbeat-libs-3.0.3-2.3.el5.i386.rpm
libesmtp-1.0.4-5.el5.i386.rpm
pacemaker-1.1.5-1.1.el5.i386.rpm
pacemaker-libs-1.1.5-1.1.el5.i386.rpm
resource-agents-1.0.4-1.1.el5.i386.rpm
# step 'mkdir /root/corosync'
# for I in {1..2};do scp *.rpm node$I:/root/corosync;done
# step 'yum -y --nogpgcheck localinstall /root/corosync/*.r
  


 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 基于Drbd+Corosync构建高可用Mysql服务器
  • 搭建基于Corosync+DRBD的高可用MySQL集群
  • 基于DRBD构建高可用主从MySQL服务器

相关文章

  • LFTP 软件详解
  • 电脑桌面向右移动了,如何恢复?
  • liunx服务(Nginx服务器 web服务器源码包和rpm 服务平滑升级)
  • 在CentOS 5上配置NFS服务器
  • web集群怎么共享同步session(memcache)
  • NetApp携手长虹佳华共绘云版图
  • SVN 更新时出错:不能打开新文件 svn-base 系统找不到指定的文件
  • IIS启用GZip失败之原因:临时目录权限没设好
  • 音视频功能介绍
  • Windows中配置Python运行环境,只有700KB

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • NBU MediaServer 备份失败状态码2
    • windows中IIS7.5/6开启GZip压缩
    • nginx fastcgi和gzip模块学习
    • 关于VirtualBox的端口映射的那一点事儿
    • 删除.svn文件夹,Windows下最快捷的方法
    • 让apache 支持 shtml 配置方法
    • NTFS 权限导致的程序疑难问题排查
    • zabbix实现linux流量变化率监控
    • Windows服务器IIS中设置站点或目录的执行权限
    • Windows Server 2003的Web接口

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有