基于DRBD+corosync对MariaDB做高可用集群

六、安装配置

1.下载

drbd共有两部分组成:内核模块和用户空间的管理工具。其中drbd内核模块代码已经整合进Linux内核2.6.33以后的版本中,因此,如果您的内核版本高于此版本的话,你只需要安装管理工具即可;否则,您需要同时安装内核模块和管理工具两个软件包,并且此两者的版本号一定要保持对应。

目前适用CentOS 5的drbd版本主要有8.0、8.2、8.3三个版本,其对应的rpm包的名字分别为drbd, drbd82和drbd83,对应的内核模块的名字分别为kmod-drbd, kmod-drbd82和kmod-drbd83。而适用于CentOS 6的版本为8.4,其对应的rpm包为drbd和drbd-kmdl,但在实际选用时,要切记两点:drbd和drbd-kmdl的版本要对应;另一个是drbd-kmdl的版本要与当前系统的内容版本相对应。各版本的功能和配置等略有差异;我们实验所用的平台为x86_64且系统为CentOS 6.4,因此需要同时安装内核模块和管理工具。我们这里选用最新的8.4的版本(drbd-8.4.3-33.el6.x86_64.rpm和drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm),下载地址为?query=drbd&type=smart,请按照需要下载。

2.准备工作

两个节点的节点的名称和对应的ip地址解析服务应该能正常工作,本处不在给出操作步骤,可以参考本人的相关博文

3.安装,由于drbd包没有依赖关系,可以直接使用rpm安装

[root@node1 ~]# rpm -ivh drbd-8.4.3-33.el6.x86_64.rpm drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm[root@node2 ~]# rpm -ivh drbd-8.4.3-33.el6.x86_64.rpm drbd-kmdl-2.6.32-431.el6-8.4.3-33.el6.x86_64.rpm

4.配置说明

drbd的主配置文件为/etc/drbd.conf;为了管理的便捷性,目前通常会将些配置文件分成多个部分,且都保存至/etc/drbd.d目录中,主配置文件中仅使用”include”指令将这些配置文件片断整合起来。通常,/etc/drbd.d目录中的配置文件为global_common.conf和所有以.res结尾的文件。其中global_common.conf中主要定义global段和common段,而每一个.res的文件用于定义一个资源。

在配置文件中,global段仅能出现一次,且如果所有的配置信息都保存至同一个配置文件中而不分开为多个文件的话,global段必须位于配置文件的最开始处。目前global段中可以定义的参数仅有minor-count, dialog-refresh, disable-ip-verification和usage-count。

common段则用于定义被每一个资源默认继承的参数,可以在资源定义中使用的参数都可以在common段中定义。实际应用中,common段并非必须,但建议将多个资源共享的参数定义为common段中的参数以降低配置文件的复杂度。

resource段则用于定义drbd资源,每个资源通常定义在一个单独的位于/etc/drbd.d目录中的以.res结尾的文件中。资源在定义时必须为其命名,名字可以由非空白的ASCII字符组成。每一个资源段的定义中至少要包含两个host子段,以定义此资源关联至的节点,其它参数均可以从common段或drbd的默认中进行继承而无须定义。

5.配置文件/etc/drbd.d/global_common.conf 详解在i

global {usage-count no; //drbd官网用来统计drbd的使用数据的# minor-count dialog-refresh disable-ip-verification}common { //提供共享配置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”; 当本地发送io错误时的操作# 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;# after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh;}startup { //可以不配置,使用默认即可# wfc-timeout 等待对端上线的超时时间# degr-wfc-timeout 降级的超时时间#outdated-wfc-timeout 过期的等待超时时间#wait-after-sb 脑裂的等待时间}options { //可以不配置 使用默认即可# cpu-mask on-no-data-accessible}disk {# size max-bio-bvecs on-io-error fencing disk-barrier disk-flushes# disk-drain md-flushes resync-rate resync-after al-extents# c-plan-ahead c-delay-target c-fill-target c-max-rate# c-min-rate disk-timeouton-io-error 当发生io错误是,应该要做的操作,有三个选项,pass_on:降级当前节点;call-local-io-error:执行本机的io-error操作;detach:将磁盘拆掉}net {protocol C 协议版本cram-hmac-alg “sha1″shared-secret “kjasdbiu2178uwhbj”# protocol timeout max-epoch-size max-buffers unplug-watermark# connect-int ping-int sndbuf-size rcvbuf-size ko-count# allow-two-primaries cram-hmac-alg shared-secret after-sb-0pri# after-sb-1pri after-sb-2pri always-asbp rr-conflict# ping-timeout data-integrity-alg tcp-cork on-congestionsyncer{rate 1000M 同步的速率}}走过的路成为背后的风景,不能回头不能停留,若此刻停留,

基于DRBD+corosync对MariaDB做高可用集群

相关文章:

你感兴趣的文章:

标签云: