高可用分布式存储(Corosync+Pacemaker+DRBD+MooseFS)

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

一、服务器分布及相关说明

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

1、服务器信息


2、总体架构

 

3、网络参数


4、元数据节点上需要额外部署的服务

Corosync + Pacemaker + DRBD

5、系统环境

CentOS 6.3

6、内核版本

kernel-2.6.32.43

7、需要启动的服务

corosync

【注意:其他服务资源皆由此服务进行接管】

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

二、DRBD编译安装

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

1、DRBD描述

详细信息请参考:http://www.drbd.org/

DRBD源码包:

http://oss.linbit.com/drbd/8.4/drbd-8.4.3.tar.gz

注意:

(1)、内核版本为2.6.32,推荐使用drbd 8.4.3;

(2)、同时从2.6.33内核版本开始,drbd已作为标准组件默认自带。

# yum -y install kernel-devel kernel-headers flex

2、安装用户空间工具

# tar xvzf drbd-8.4.3.tar.gz

# cd drbd-8.4.3

# ./configure --prefix=/ --with-km

# make KDIR=/usr/src/kernel-linux-2.6.32.43

# make install

3、安装drbd模块

# cd drbd

# make clean

# make KDIR=/usr/src/kernel-linux-2.6.32.43

# mkdir -p /lib/modules/`uname-r`/kernel/lib/

# cp drbd.ko /lib/modules/`uname-r`/kernel/lib/

注意启动顺序:

(1)、启动DRDB服务,即“/etc/init.d/drbd”,同时会动态加载一个DRBD内核模块;

(2)、最后挂载DRBD设备“/dev/drbd0”,推荐放在“/etc/rc.d/rc.local”,不推荐修改“/etc/fstab”。

4、主机名设置

注意:

10.185.15.241 为元数据主节点,名称为node1

10.185.15.242为元数据备用节点,名称为node2

(1)node1节点

# vim /etc/sysconfig/network

HOSTNAME=node1.mfs.com

# hostname node1.mfs.com

# vim /etc/hosts

10.185.15.241 node1.mfs.com node1

10.185.15.242 node2.mfs.com node2

(2)node2节点

# vim /etc/sysconfig/network

HOSTNAME=node2.mfs.com

# hostname node2.mfs.com

# vim /etc/hosts

10.185.15.241 node1.mfs.com node1

10.185.15.242 node2.mfs.com node2

5SSH信任部署

http://blog.csdn.net/codepeak/article/details/14447627

6DRBD配置

 (1)、全局公共配置

# vim /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 certaincircumstances.

# Be careful when chosing your poison.

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

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

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

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

# split-brain "/lib/drbd/notify-split-brain.shroot";

# out-of-sync "/lib/drbd/notify-out-of-sync.shroot";

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

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

}

startup {

# wfc-timeout degr-wfc-timeout outdated-wfc-timeoutwait-after-sb

wfc-timeout 0;

degr-wfc-timeout 120;

outdated-wfc-timeout 120;

}

options {

# cpu-mask on-no-data-accessible

}

disk {

# size max-bio-bvecs on-io-error fencing disk-barrierdisk-flushes

# disk-drain md-flushes resync-rate resync-afteral-extents

# c-plan-ahead c-delay-target c-fill-target c-max-rate

# c-min-rate disk-timeout

on-io-error detach;

#fencing resource-only;

}

net {

# protocol timeout max-epoch-size max-buffersunplug-watermark

# connect-int ping-int sndbuf-size rcvbuf-size ko-count

# allow-two-primaries cram-hmac-alg shared-secretafter-sb-0pri

# after-sb-1pri after-sb-2pri always-asbp rr-conflict

# ping-timeout data-integrity-alg tcp-corkon-congestion

# congestion-fill congestion-extents csums-algverify-alg

# use-rle

timeout 60;

connect-int 10;

ping-int 10;

max-buffers 2048;

max-epoch-size 2048;

cram-hmac-alg "sha1";

shared-secret "my_mfs_drbd";

}

syncer {

rate 1000M;

}

}

(2)、存储资源配置

# vim /etc/drbd.d/mfs_store.res

resource mfs_store {

on node1.mfs.com {

device /dev/drbd0;

disk /dev/sda4;

address 10.185.15.241:7789;

meta-disk internal;

}

on node2.mfs.com {

device /dev/drbd0;

disk /dev/sda4;

address 10.185.15.242:7789;

meta-disk internal;

}

}

# scp /etc/drbd.d/{global_common.conf,mfs_store.res} [email protected]:/etc/drbd.d/

【注意:配置文件global_common.conf、mfs_store.res,在主从节点上需保持一致】

(3)、分区设置

## 删除空闲的分区,并重新分区,但无需格式化

# umount /dev/sda4

# fdisk /dev/sda

# partx /dev/sda

# dd if=/dev/zero bs=1M count=128 of=/dev/sda4

## 去掉/dev/sda4的挂载项

# vim /etc/fstab

#/dev/sda4              /data                   ext3    noatime,acl,user_xattr  1 2

【注意:以上操作在主从节点都需进行】

(4)DRBD服务操作

## node1与node2上初始化资源,并启动DRBD服务

# drbdadm create-md mfs_store

# service drbd start

## 提升node1为主节点

# drbd-overview

# drbdadm primary --force mfs_store

# drbd-overview

【注意:正在将node1节点的“/dev/sda4”分区同步到node2节点的“/dev/sda4”分区,需要稍等一段时间】

# drbd-overview

## 格式化主节点,并挂载

# mkfs -t ext3 /dev/drbd0

# mount /dev/drbd0 /data

(5)DRBD主从节点角色切换测试

主节点(node1)上执行:

# umount /data

# drbdadm secondary mfs_store

# drbd-overview

从节点(node2)上执行:

# drbdadm primary mfs_store

# drbd-overview

# mount /dev/drbd0 /data

 (6)、解决脑裂问题

一般情况下会出现类似如下信息:

0:mfs_store/0  WFConnection Primary/UnknownUpToDate/DUnknown C r-----

从节点上执行:

# drbdadm disconnect mfs_store

# drbdadm secondary mfs_store

# drbdadm --discard-my-data connectmfs_store

# cat /proc/drbd

主节点上执行:

# drbdadm connect mfs_store

# cat /proc/drbd

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

三、MFS编译安装

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

概述:

MooseFS是一种分布式文件系统,MooseFS文件系统结构包括以下四种角色:

(1)、管理服务器managing server(master)

(2)、元数据日志服务器Metalogger server(Metalogger)

(3)、数据存储服务器 dataservers(chunkservers)

(4)、客户机挂载使用 client computers

各种角色作用:

(1)、管理服务器:负责各个数据存储服务器的管理,文件读写调度,文件空间回收以及恢复,多节点拷贝;

(2)、元数据日志服务器:负责备份master服务器的变化日志文件,文件类型为changelog_ml.*.mfs,以便于在masterserver出问题的时候接替其进行工作;

(3)、数据存储服务器:负责连接管理服务器,听从管理服务器调度,提供存储空间,并为客户提供数据传输;

(4)、客户端:通过fuse内核接口挂接远程管理服务器上所管理的数据存储服务器,看起来共享的文件系统和本地UNIX文件系统使用一样的效果。

相关说明:

此处,我们没有用到Metalogger节点,因为已经通过DRBD对元节点进行了网络备份容灾。

1、Metaserver Master节点部署

# /usr/sbin/groupadd mfs

# /usr/sbin/useradd mfs -g mfs -s /sbin/nologin

# tar xvzf mfs-1.6.27-5.gz

# cd mfs-1.6.27

# ./configure --prefix=/usr/local/mfs \

--with-default-user=mfs \

--with-default-group=mfs \

--disable-mfschunkserver \

--disable-mfsmount

# make && make install

# cd /usr/local/mfs/etc/mfs

# cp mfsmaster.cfg.dist mfsmaster.cfg

# cp mfsexports.cfg.dist mfsexports.cfg

# cp mfstopology.cfg.dist mfstopology.cfg

# vim mfsexports.cfg

10.0.0.0/8             /       rw,alldirs,maproot=0

172.0.0.0/8           /       rw,alldirs,maproot=0

# vim mfsmaster.cfg

DATA_PATH = /data/mfsmetadata

# mkdir -p /data/mfsmetadata

# cp -a /usr/local/mfs/var/mfs/metadata.mfs.empty /data/mfsmetadata/metadata.mfs

# chown -R mfs:mfs /data/mfsmetadata

# vim /etc/hosts

10.185.15.241    mfsmaster                【注意:后续会修改为VIP】

10.137.153.224  mfschunkserver1

10.166.147.229  mfschunkserver2

10.185.4.99       mfschunkserver3

# /usr/local/mfs/sbin/mfsmaster start

# ps aux | grep mfs

# netstat -ntlp

监控平台,修改默认绑定IP地址和端口:

any --> 0.0.0.0

9425 --> 80

# vim /usr/local/mfs/sbin/mfscgiserv

# /usr/local/mfs/sbin/mfscgiserv start

# netstat -ntlp

访问:http://10.185.15.241   【注意:后续以VIP的方式进行访问】

2、Metaserver Slave节点部署

# /usr/sbin/groupadd mfs

# /usr/sbin/useradd mfs -g mfs -s /sbin/nologin

# scp –r [email protected]:/usr/local/mfs/usr/local/

# vim /etc/hosts

10.185.15.241    mfsmaster                【注意:后续会修改为VIP】

10.137.153.224  mfschunkserver1

10.166.147.229  mfschunkserver2

10.185.4.99       mfschunkserver3

3chunkservers节点部署

# /usr/sbin/groupadd mfs

# /usr/sbin/useradd mfs -g mfs -s /sbin/nologin

# tar xvzf mfs-1.6.27-5.gz

# cd mfs-1.6.27

# ./configure --prefix=/usr/local/mfs \

--with-default-user=mfs \

--with-default-group=mfs \

--disable-mfsmaster \

--disable-mfsmount

# make && make install

# cd /usr/local/mfs/etc/mfs

# cp mfschunkserver.cfg.dist mfschunkserver.cfg

# cp mfshdd.cfg.dist mfshdd.cfg

# vim /etc/hosts

10.185.15.241   mfsmaster         【注意:后续会修改为VIP】

# mkdir -p /data/mfsmetadata

# chown -R mfs:mfs /data/mfsmetadata

# vim mfschunkserver.cfg

DATA_PATH =/data/mfsmetadata

# mkdir -p /data/mfschunk

# chown -R mfs:mfs /data/mfschunk

## 可以添加多个路径

# vim mfshdd.cfg

/data/mfschunk

# /usr/local/mfs/sbin/mfschunkserver start

# netstat -ntlp

 

4MFSclient节点部署

# /usr/sbin/groupadd mfs

# /usr/sbin/useradd mfs -g mfs -s /sbin/nologin

# tar xvzf fuse-2.9.2.tar.gz

# cd fuse-2.9.2

# ./configure --prefix=/usr/local

# make && make install

运行以下export命令,否则挂载moosefs系统会失败

# vim /etc/profile

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

# source /etc/profile

# tar xvzf mfs-1.6.27-5.gz

# cd mfs-1.6.27

# ./configure --prefix=/usr/local/mfs \

--with-default-user=mfs \

--with-default-group=mfs \

--enable-mfsmount

# make && make install

# vim /etc/hosts

10.185.15.241   mfsmaster         【注意:后续会修改为VIP】

# mkdir -p /data/mfsdata

# /usr/local/mfs/bin/mfsmount /data/mfsdata -H mfsmaster

## 设置文件副本数

/usr/local/mfs/bin/mfsrsetgoal 3 /data/mfsdata

echo ‘mytest‘ > /data/mfsdata/testfile

/usr/local/mfs/bin/mfsfileinfo /data/mfsdata/testfile

## 设置删除文件后空间回收时间

/usr/local/mfs/bin/mfsrsettrashtime 600 /data/mfsdata

## 取消本地挂载

# umount -l /data/mfsdata


5、一点建议

安全停止MooseFS集群,建议如下步骤:

umount -l /data/mfsdata                                                      # 客户端卸载MooseFS文件系统

/usr/local/mfs/sbin/mfschunkserver stop                               # 停止chunkserver进程

/usr/local/mfs/sbin/mfsmaster stop                                       #停止主控masterserver进程

安全启动MooseFS集群,建议如下步骤:

/usr/local/mfs/sbin/mfsmaster start                                       #启动主控masterserver进程

/usr/local/mfs/sbin/mfschunkserver start                               # 启动chunkserver进程

/usr/local/mfs/bin/mfsmount /data/mfsdata -H mfsmaster        # 客户端挂载MooseFS文件系统

 

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

四、CoroSync + PacemakerHA

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

1、相关描述

详细信息请参考:

https://github.com/corosync

https://github.com/ClusterLabs/pacemaker

https://github.com/crmsh/crmsh

 

2、一些准备工作

(1)、为MasterServer提供lsb格式启动脚本

# vim /etc/init.d/mfsmaster

#!/bin/sh

#

# mfsmaster - this scriptstart and stop the mfs metaserver daemon

#

# chkconfig: 345 91 10

# description: startupscript for mfs metaserver

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

MFS_PATH="/usr/local/mfs/sbin"

LOCK_FILE1="/usr/local/mfs/var/mfs/.mfscgiserv.lock"

LOCK_FILE2="/data/mfsmetadata/.mfsmaster.lock"

. /etc/rc.d/init.d/functions

. /etc/sysconfig/network

start() {

[[ -z `netstat -ntlp | grep mfsmaster` ]] && rm -f ${LOCK_FILE2}

[[ -z `ps aux | grep mfscgiserv | grep -v grep` ]] && rm -f ${LOCK_FILE1}

if [[ -z `netstat -ntlp | grep mfsmaster` && -n `ps aux | grep mfscgiserv | grep -v grep` ]]; then

kill -9 `ps aux | grep mfscgiserv | grep -v grep | awk ‘{print $2}‘`

rm -f ${LOCK_FILE1} ${LOCK_FILE2}

fi

$MFS_PATH/mfsmaster start

$MFS_PATH/mfscgiserv start

}

stop() {

$MFS_PATH/mfsmaster stop

$MFS_PATH/mfscgiserv stop

}

restart() {

$MFS_PATH/mfsmaster restart

$MFS_PATH/mfscgiserv restart

}

status() {

$MFS_PATH/mfsmaster test

$MFS_PATH/mfscgiserv test

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

restart

;;

status)

status

;;

*)

echo $"Usage: $0 start|stop|restart|status"

exit 1

esac

exit 0

# chmod 755 /etc/init.d/mfsmaster

# chkconfig mfsmaster off

# service mfsmaster stop

【注意:主从节点上皆执行】

(2)、关闭DRBD服务并卸载设备

# umount /data                     【注意:只针对主节点】

# chkconfig drbd off

# service drbd stop

【注意:主从节点上皆执行】

(3)、修改hosts文件中的mfsmater指向

10.185.15.244   mfsmaster

【注意:包括主节点、从节点、数据节点、客户端】

3CoroSync+ Pacemaker高可用配置

http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz

http://pyyaml.org/download/pyyaml/PyYAML-3.11.tar.gz

https://github.com/crmsh/crmsh/archive/1.2.6.tar.gz

(1)、基础安装

# yum -y install corosync* pacemaker*

# tar xvzf pssh-2.3.1.tar.gz

# cd pssh-2.3.1

# python setup.py install

# tar xvzf PyYAML-3.11.tar.gz

# cd PyYAML-3.11

# python setup.py install

# tar xvzf crmsh-1.2.6.tar.gz

# cd crmsh-1.2.6

# ./autogen.sh

# ./configure --prefix=/usr

# make && make install

(2)、主配置修改

# cd /etc/corosync

# vim corosync.conf

compatibility: whitetank

totem {

version: 2

secauth: on

threads: 16

interface {

ringnumber: 0

bindnetaddr: 10.185.15.192

mcastaddr: 226.94.1.1

mcastport: 5405

ttl: 1

}

}

logging {

fileline: off

to_stderr: no

to_logfile: yes

to_syslog: no

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

debug: off

timestamp: on

logger_subsys {

subsys: AMF

debug: off

}

}

amf {

mode: disabled

}

service {

ver: 0

name: pacemaker

}

aisexec {

user: root

group: root

}

(3)、生成authkey

使用corosync-keygen生成key时,由于要使用/dev/random生成随机数,因此如果新装的系统操作不多,没有足够的熵,可能会出现如下提示:

此时只需要在本地登录后狂敲键盘即可!

# corosync-keygen

# scp authkey corosync.conf [email protected]:/etc/corosync/

【注意:需要把corosync.conf、authkey也拷贝到备用节点上】

(4)、服务启动

# service corosync start

# netstat -nulp

【注意:在两个节点上都需要执行】

(5)、资源管理详细配置

# crm status

## 禁用STONISH、忽略法定票数、设置资源粘性

# crm configure

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

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

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

crm(live)configure# show

crm(live)configure# verify

crm(live)configure# commit

【注意:如果已经设置了,就无需设置】

## 添加DRBD资源

crm(live)configure# primitive mfsdrbd ocf:linbit:drbd params drbd_resource=mfs_store op start timeout=240s op stop timeout=100s op monitor role=Master interval=20s timeout=30s op monitor role=Slave interval=30stimeout=30s

crm(live)configure# master ms_mfsdrbd mfsdrbd meta master-max=1master-node-max=1 clone-max=2 clone-node-max=1 notify=true

crm(live)configure# show

crm(live)configure# verify

crm(live)configure# commit

crm(live)configure# cd

crm(live)# status

## 添加文件系统资源

crm(live)configure# primitive drbdfs ocf:heartbeat:Filesystem params device=/dev/drbd0 directory=/data fstype=ext3 op monitor interval=30s timeout=40s op start timeout=60 op stop timeout=60 on-fail=restart

## 添加VIP资源

crm(live)configure# primitive vip ocf:heartbeat:IPaddr params ip=10.185.15.244 nic=eth1 cidr_netmask=26 op monitor interval=20 timeout=30 on-fail=restart

## 定义MFS服务

crm(live)configure# primitive mfsserver lsb:mfsmaster op monitor interval=20s timeout=15s on-fail=restart

crm(live)configure# show

crm(live)configure# verify

crm(live)configure# commit

## 定义约束(排列约束、顺序约束)

crm(live)configure# colocation drbd_with_ms_mfsdrbd inf: drbdfs ms_mfsdrbd:Master

【注:挂载资源追随drbd主资源】

crm(live)configure# order drbd_after_ms_mfsdrbd mandatory: ms_mfsdrbd:promote drbdfs:start

【注:节点上存在drbdMaster才能启动drbdfs服务】

crm(live)configure# colocation mfsserver_with_drbdfs inf: mfsserver drbdfs

【注:mfs服务追随挂载资源】

crm(live)configure# order mfsserver_after_drbdfs mandatory: drbdfs:start mfsserver:start

【注:drbdfs服务启动才能启动mfs服务】

crm(live)configure# colocation vip_with_mfsserver inf: vip mfsserver

【注:vip追随mfs服务】

crm(live)configure# order vip_before_mfsserver mandatory: vip mfsserver

【注:vip启动才能启动mfs服务】

crm(live)configure# show

crm(live)configure# verify

crm(live)configure# commit

crm(live)configure# cd

crm(live)# status

# ifconfig

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

五、MFS元数据节点HA测试

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

1、模拟主从节点自动切换

## 切换前

# crm status

## 切换后

# crm node standby node1.mfs.com

# crm status

## 对下线的节点进行上线

# crm node online node1.mfs.com

# crm status

2、模拟MFS元数据服务挂掉

## 挂掉前

# netstat -ntlp

## 模拟挂掉操作

# service mfsmaster stop

## 挂掉后

# netstat -ntlp

# crm status

注意:

KILL掉服务后,服务是不会自动重启的。因为节点没有故障,所以资源不会转移,默认情况下,pacemaker不会对任何资源进行监控。所以,即便是资源关掉了,只要节点没有故障,资源依然不会转移。要想达到资源转移的目的,得定义监控(monitor)。

虽然我们在MFS资源定义中加了“monitor”选项,但发现并没有起到作用,服务不会自动拉起,所以通过加监控脚本的方式暂时解决。

# vim /usr/local/src/check_mfsmaster.sh

#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

VIP=`awk ‘/mfsmaster/ {print $1}‘ /etc/hosts `

[[ -z `/sbin/ip addr show eth1 | grep ${VIP}` ]] && exit 1

ONLINE_HOST=`/usr/sbin/crm status | awk ‘/mfsserver/ {print $4}‘`

CURRENT_HOST=`/bin/hostname`

[[ "${ONLINE_HOST}" != "${CURRENT_HOST}" ]] && exit 1

[[ -z `netstat -ntlp | grep mfsmaster` ]] && /sbin/service mfsmaster start

# chmod +x /usr/local/src/check_mfsmaster.sh

# crontab -e

* * * * * sleep 10; /usr/local/src/check_mfsmaster.sh >/dev/null 2>&1

* * * * * sleep 20; /usr/local/src/check_mfsmaster.sh >/dev/null 2>&1

* * * * * sleep 30; /usr/local/src/check_mfsmaster.sh >/dev/null 2>&1

* * * * * sleep 40; /usr/local/src/check_mfsmaster.sh >/dev/null 2>&1

* * * * * sleep 50; /usr/local/src/check_mfsmaster.sh >/dev/null 2>&1

3、模拟DRBD服务挂掉

# service mfsmaster stop

# umount /data

# service drbd stop

# crm status

【注意:在测试这一步的时候,可以将前面加的crontab项临时去掉,以避免不必要的麻烦】

# lsmod

# ps aux | grep drbd

【注意:node2上的drbd服务在被停掉后会自动拉起,同时也会自动将主节点切换到node1】

4、模拟corosync服务挂掉

目前在线提供服务的是node1节点,选择“关闭corosync服务”或者“重启服务器”皆可,我们这里选择“重启服务器”

# reboot

# crm status

高可用分布式存储(Corosync+Pacemaker+DRBD+MooseFS),布布扣,bubuko.com

时间: 2024-10-08 22:18:08

高可用分布式存储(Corosync+Pacemaker+DRBD+MooseFS)的相关文章

Corosync+Pacemaker+DRBD+Mysql高可用HA配置

操作系统: CentOS 6.6 x64,本文采用rpm方式安装corosync+pacemaker+drbd,采用二进制版本安装mysql-5.6.29.本文是在Corosync+Pacemaker+DRBD+NFS高可用实例配置基础上进行配置修改,然后进行测试的安装过程. 一.双机配置 1. app1,app2配置hosts文件,以及主机名. [[email protected] soft]# vi /etc/hosts   127.0.0.1   localhost localhost.l

基于Corosync + Pacemaker+DRBD实现MySQL高可用集群

前言 在众多的高可用集群解决方案中,除了Heartbeat之外,Corosync也能提供类似于Heartbeat一样的功能,而且目前RedHat官方提供的高可用集群解决方案的程序包都以Corosync为主,所以在未来的日子Corosync会逐渐取代Heartbeat.本文带来的是基于Corosync + Pacemaker+DRBD的MySQL高可用集群解决方案. 相关介绍 Corosync Corosync是从OpenAIS中分支出来的一个项目,它在传递信息的时候可以通过一个简单的配置文件来定

高可用集群corosync+pacemaker+drbd+httpd----手动配置篇

共享存储高可用方案 -----DRBD Drbd  :Distributed Replicated Block Device 高可用集群中的文件共享方案之一 共享存储的常见实现方式 DAS:直接附加存储 Direct attached storage:通过专用线缆直接连接至主板存储控制器接口的设备成为直接附加存储.,如外置的raid阵列 并行口: IDE  SCSI 两种接口的区别: ide接口的存取过程: 首先将从文件的读取说起;当用户空间进程要读写文件时首先向内核发起系统调用,然后进程有用户

corosync+pacemaker+drbd实现web服务高可用

一:实验环境    节点      OS      IP  DRBD_IP  DRBD用硬盘     VIP web1 centos 5.10 192.168.10.11 172.16.1.1 /dev/sdb 192.168.10.100 web2 centos 5.10 192.168.10.12 172.16.1.2 /dev/sdb 注: 1.其中两节点IP地址已按上图设置好 2.两节点已配置相互ssh信任,并已做了时间同步 二:安装相关软件(节点1和2都安装) 1.安装corosync

corosync+pacemaker+drbd 实现lamp集群(Discuz)

实验平台: CentOS 6.4 实现功能: 利用corosync+pacemaker+drbd完成lamp平台的高可用,并安装Discuz论坛进行测试 实验步骤: 1. 同步双方hosts文件,加入node6与node7的解析 10.32.9.56 node6 10.32.9.57 node7 实现SSH双机互信 node1 ssh-keygen -t rsa --- 生成一对公私钥文件,默认放在/root/.ssh/id_rsa目录下 ssh-copy-id [email protected

Linux HA集群之 Corosync + Pacemaker + drbd + MySQL

大纲 一.什么是DRBD 二.DRBD工作原理 三.DRBD相关概念 四.DRBD配置过程 五.Corosync + Pacemaker + DRBD + MySQL实现 一.什么是DRBD Distributed Replicated Block Device(DRBD)是一个基于软件的.无共享.复制的存储解决方案,在服务器之间的对块设备(硬盘.分区.逻辑卷等)进行镜像. DRBD镜像数据 实时性:当应用对磁盘的数据进行修改时,复制立即发生 透明性:应用程序的数据存储在镜像设备上是独立和透明的

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

Linux HA集群之Corosync + Pacemaker + DRBD + MySQL实现MySQL高可用

大纲 一.系统环境及所需软件包 二.高可用环境准备工作 三.DRBD的安装与基本配置 四.Corosync的安装与基本配置 五.基于crm配置资源 一.系统环境及所需软件包 系统环境 CentOS5.8 x86_64 node1.network.com    node1    172.16.1.101 node2.network.com    node2    172.16.1.105 软件包 corosync-1.2.7-1.1.el5.x86_64.rpm pacemaker-1.0.12-

Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群

大纲一.前言二.环境准备三.Corosync 安装与配置四.Pacemaker 安装与配置五.DRBD 安装与配置六.MySQL 安装与配置七.crmsh 资源管理 推荐阅读: Linux 高可用(HA)集群基本概念详解 http://www.linuxidc.com/Linux/2013-08/88522.htm Linux 高可用(HA)集群之Heartbeat详解 http://www.linuxidc.com/Linux/2013-08/88521.htm 一.前言      前几篇博文