数据加载高可用案例介绍(下)-日志管理系统之配置手册

原文链接:https://www.gbase.cn/community/post/4052

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

1.环境准备:

1)选取两台同等配置的服务器作为加载机,两节点安装相同的OS: Redhat Enterprise Edition 6.5;

2)各节点关闭防火墙;

使用如下命令关闭防火墙:

# chkconfig iptables off

# chkconfig ip6tables off

重启后,可以使用如下方法确认防火墙是否被关闭:

# chkconfig --list iptables

iptables        0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭

# chkconfig --list ip6tables

ip6tables       0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭

3)要求各节点关闭SELINUX;

修改/etc/sysconfig/selinux文件下SELINUX=disabled:

# vi /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

重启后,可以使用如下方法确认SELINUX是否被禁用:

# sestatus

SELinux status:                 disabled

2.在两台加载机上各分配一个物理分区,要求两分区容量相同(例如:都是/dev/sdb1)

3.配置hostname(两台机器IP分别为:132.121.12.173,132.121.12.174)

[root@132.121.12.173 ~]# vim /etc/hosts

132.121.12.173  OCSJZ13

132.121.12.173  OCSJZ14

[root@132.121.12.174 ~]# vim /etc/hosts

132.121.12.173  OCSJZ13

132.121.12.174  OCSJZ14

4.建立两台加载机间root用户权限ssh互信

[root@OCSJZ13 ~]# ssh-keygen -t rsa(提示输入时均直接回车)

[root@OCSJZ13 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@OCSJZ14(需输入对端root密码)

[root@OCSJZ14 ~]# ssh-keygen -t rsa(提示输入时均直接回车)

[root@OCSJZ14 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@OCSJZ13(需输入对端root密码)

5.建立加载机与所有集群节点间gbase用户权限ssh授信

与上述步骤类似,只是要以gbase用户身份设置,两台加载机都要设置,且只需单向设置——即加载机可以以gbase用户权限无密码访问集群所有节点

6.准备安装包(两台加载机同样操作)

1)解压pkgs.tar.bz2,安装其中全部的rpm包;

2)解压toolkit.tar.bz2,将其中sbin目录下的程序全部拷贝至/usr/sbin目录,将service目录下的文件全部拷贝至/etc/init.d目录。

7.配置DRDB

两台加载机都配置相同的drbd配置文件/etc/drbd.d/global_common.conf(如果磁盘性能和网络传输够好,可以调大syncer——同步速率):

[root@OCSJZ13 ~]# vim /etc/drbd.d/global_common.conf

global {

usage-count yes;

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

}

common {

handlers {

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

}

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-timeout

}

net {

# 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-congestion

# congestion-fill congestion-extents csums-alg verify-alg

# use-rle

 protocol C;

}

syncer {

       rate 100M;

   } 

}

(注:粗体部分为需要增加或修改的配置项)

两台加载机上都创建/etc/drbd.d/dispdrbd.res资源文件:

[root@OCSJZ13 ~]# vim /etc/drbd.d/dispdrbd.res

resource dispdrbd {

on OCSJZ13 {

device    /dev/drbd0;

disk      /dev/sdb1;

address   192.168.0.173:7789;

meta-disk internal;

}

on OCSJZ14 {

device    /dev/drbd0;

disk      /dev/sdb1;

address   192.168.0.174:7789;

meta-disk internal;

}

}

两台加载机上都创建drbd资源:

[root@OCSJZ13 ~]# dd if=/dev/zero bs=1M count=1 of=/dev/sdb1

[root@OCSJZ13 ~]# drbdadm create-md dispdrbd

在两台加载机上同时启动drbd服务:

[root@OCSJZ13 ~]# service drbd start

通过cat /proc/drbd,查看同步状态,如果没有开始同步,可以在任意一个加载机上执行下面的命令:

[root@OCSJZ14 ~]# drbdadm invalidate dispdrbd

以下操作都在主节点上执行:

完成同步后(即cat /proc/drbd状态为“ds:Uptodate/Uptodate”),在主节点上执行(设132.121.12.173为主节点):

[root@OCSJZ13 ~]# drbdsetup /dev/drbd0 primary

如果设置主节点失败,则执行:

[root@OCSJZ13 ~]# drbdadm -- --overwrite-data-of-peer primary all

格式化共享设备:

[root@OCSJZ13 ~]# mkfs.ext4 /dev/drbd0

8.配置NFS(两个加载机进行相同的操作)

[root@OCSJZ13 ~]# mkdir /nfsshare

[root@OCSJZ13 ~]# vim /etc/exports

/nfsshare *(rw,sync,no_root_squash)

9.配置corosync

在主节点配置:

[root@OCSJZ13 ~]# corosync-keygen

[root@OCSJZ13 ~]# chmod 0400 /etc/corosync/authkey

[root@OCSJZ13 ~]# cp /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf

[root@OCSJZ13 ~]# vim /etc/corosync/corosync.conf

# Please read the corosync.conf.5 manual page

compatibility: whitetank

totem {

version: 2

secauth: off

threads: 0

interface {

member {

                       memberaddr: 132.121.12.173

               }

               member {

                       memberaddr: 132.121.12.174

               }

        ringnumber: 0

        bindnetaddr: 132.121.12.1

        #mcastaddr: 226.94.1.1

        mcastport: 5422

        ttl: 1

    }

    transport: udpu 

}

logging {

fileline: off

to_stderr: no

to_logfile: yes

to_syslog: yes

logfile: /var/log/cluster/corosync.log

debug: off

timestamp: on

logger_subsys {

subsys: AMF

debug: off

}

}

amf {

mode: disabled

}

service {

   ver: 0

   name: pacemaker

   use_mgmtd: yes

}

aisexec {

   user: root

   group: root

}

(注:粗体部分为需要增加或修改的配置项,配置项“mcastaddr”和“mcastport”不能与集群的配置相同)

[root@OCSJZ13 ~]# scp /etc/corosync/authkey /etc/corosync/corosync.conf root@OCSJZ14:/etc/corosync

在从节点配置

[root@OCSJZ14 ~]# chmod 0400 /etc/corosync/authkey

[root@OCSJZ14 ~]# vim /etc/corosync/corosync.conf

修改“bindnetaddr”参数为“132.121.12.1”

10.启动服务

在两台加载机都启动corosync服务:

[root@OCSJZ13 ~]# service corosync start

11.配置Pacemaker

在其中一台加载机上进行crm配置

[root@OCSJZ13 ~]# crm configure

禁用stonith:

crm(live)configure# property stonith-enabled=false

修改忽略quorum不能满足的集群状态检查:

crm(live)configure# property no-quorum-policy=ignore

为资源指定默认黏性值:

crm(live)configure# rsc_defaults resource-stickiness=100

crm(live)configure# commit

配置drbd(主备模式):

crm(live)configure# primitive dispdrbd ocf:linbit:drbd params drbd_resource=dispdrbd op monitor role=Master interval=50s timeout=30s op monitor role=Slave interval=60s timeout=30s

crm(live)configure# master ms_dispdrbd dispdrbd meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"

配置mount点:

crm(live)configure# primitive webfs ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/nfsshare" fstype="ext4"

crm(live)configure# colocation webfs_on_ms_dispdrbd inf: webfs ms_dispdrbd:Master

crm(live)configure# order webfs_after_ms_dispdrbd inf: ms_dispdrbd:promote webfs:start

配置虚拟IP(此IP为对外提供服务的IP,不能与系统中其他IP冲突,本次用户提供ip为132.121.12.175):

crm(live)configure# primitive vip ocf:heartbeat:IPaddr params ip="132.121.12.175" cidr_netmask="24" op monitor interval="5s"

crm(live)configure# colocation vip_on_ms_dispdrbd inf: vip ms_dispdrbd:Master

配置nfs:

crm(live)configure# primitive rpcbind lsb:rpcbind op monitor interval="10s"

crm(live)configure# colocation rpcbind_on_ms_dispdrbd inf: rpcbind ms_dispdrbd:Master

crm(live)configure# primitive nfsshare lsb:nfs op monitor interval="30s"

crm(live)configure# colocation nfsshare_on_ms_dispdrbd inf: nfsshare ms_dispdrbd:Master

crm(live)configure# order nfsshare_after_rpcbind mandatory: rpcbind nfsshare:start

crm(live)configure# order nfsshare_after_vip mandatory: vip nfsshare:start

crm(live)configure# order nfsshare_after_webfs mandatory: webfs nfsshare:start

使用crm status命令查看pacemaker服务状态:

[root@OCSJZ13 ~]# crm status

============

Last updated: Thu Feb  7 21:20:35 2013

Last change: Thu Feb  7 20:36:54 2013 via cibadmin on OCSJZ13

Stack: openais

Current DC: OCSJZ13 - partition with quorum

Version: 1.1.6-3.el6-a02c0f19a00c1eb2527ad38f146ebc0834814558

2 Nodes configured, 2 expected votes

5 Resources configured.

============

Online: [ OCSJZ13 OCSJZ14 ]

Master/Slave Set: ms_dispdrbd [dispdrbd]

Masters: [ OCSJZ13 ]

Slaves: [ OCSJZ14 ]

webfs  (ocf::heartbeat:Filesystem):    Started OCSJZ13

vip    (ocf::heartbeat:IPaddr):        Started OCSJZ13

nfsshare       (lsb:nfs):      Started OCSJZ13

12.配置相关配置文件(所有配置文件均需在两台加载机上采用相同配置)

配置gciplist.conf:

[root@OCSJZ13 ~]# gciplist HOSTNAME >/etc/gciplist.conf

(注:HOSTNAME指集群中任一节点的IP,这个配置需要每次更改集群拓扑时——增删节点——重新设置一次)

配置dispmon.conf:

加载监控服务有两种模式:一种是后台服务模式;一种是定时任务模式。两种模式的配置有所不同:

1)后台服务模式

[root@OCSJZ13 ~]# vim /etc/dispmon.conf

mode=daemon

exec=fetch_load.sh

(注:fetch_load.sh指用户加载控制程序执行文件的文件名,此执行文件需部署于/usr/sbin目录下)

2)定时任务模式

[root@OCSJZ13 ~]# vim /etc/dispmon.conf

mode=crontab

配置dispcron.conf:(只有使用crontab模式才需要配置)

此文需存放于/etc目录下,的配置方法与crontab配置文件的格式完全相同。

需要注意的是:dispmon.conf和dispcron.conf两个配置文件必须在两台加载机的dispmon服务均停止状态下才可以设置。

13.完成加载相关服务的配置

[root@OCSJZ13 ~]# crm configure

配置dispserver服务:

crm(live)configure# primitive dispserver lsb:dispsvr op monitor interval="10s"

crm(live)configure# colocation dispsvr_on_ms_dispdrbd inf: dispserver ms_dispdrbd:Master

crm(live)configure# order dispsvr_after_nfsshare mandatory: nfsshare dispserver:start

配置monitor服务:

crm(live)configure# primitive dispmon lsb:dispmon op monitor interval="10s"

crm(live)configure# colocation dispmon_on_ms_dispdrbd inf: dispmon ms_dispdrbd:Master

crm(live)configure# order dispmon_after_dispserver mandatory: dispserver dispmon:start

crm(live)configure# commit

crm(live)configure# quit

原文链接:https://www.gbase.cn/community/post/4052

更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容