DRBD+HEARTBEAT+NFS

clip_image001

DRBD?技术是指设计用于高可用性(HA)集群的块设备。 它会镜像指定网络内整个块设备。DRBD可以理解为基于RAID-1的网络。在上图中,两个橙色框表示两个服务器组成一个HA群集。 框包含通常的Linux?内核的文件系统,缓冲区高速缓存,磁盘调度,磁盘驱动程序,TCP / IP协议栈和网卡(NIC)驱动。 黑色箭头标明明了这些组件之间的数据流。橙色箭头显示的数据流,DRBD技术作为一个高度可用性的服务,从HA集群的活动节点镜像备用节点HA集群的数据。

http://www.drbd.org/

clip_image003

node1的ip地址:

clip_image004

clip_image005

clip_image006

clip_image007

修改host文件

[root@node1 mnt]# vim /etc/hosts

clip_image008

修改主机名

clip_image009

查看主机名

clip_image010

时间同步:

hwclock -s

磁盘分区:

clip_image012

重新加载分区表

[root@node1 ~]# partprobe /dev/sdb

NFS

yum install nfs

创建共享目录:

mkdir /mnt/nfs (为了安全可以适当修改权限)

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

clip_image013

导出:

clip_image014

service portmap start(可以写到heartbeat管理的资源里面)

HEARTBEAT

[root@node1 ~]# vim /etc/ha.d/ha.cf

clip_image015

[root@node1 ~]# vim /etc/ha.d/authkeys

#auth 1

#1 crc

#2 sha1 HI!

#3 md5 Hello! 这里随便写

clip_image016

[root@node1 ~]# vim /etc/ha.d/haresources

#node-name resource1 resource2 ... resourceN(如果有些服务发现无法启动,如果配置无误,你可能需要将其控制脚本拷到ha.d/resource.d下)

44 node1.a.com 192.168.2.38/27/eth0/192.168.2.63 drbddisk::r0 filesystem::/dev/drbd0::/mnt/nfs::ext3 nfs

clip_image018

还有一点要注意的是,写在这里的服务不要在两边同时启动,因为它是由heartbeat控制的

DRBD

(Distibuted Replicated Block Device)分布式可复制块设备

安装

yum localinstall drbd83-8.3.8-1.el5.centos.i386.rpm -y --nogpgcheck

如果drbd没有内置到内核中(版本低于2.6.33),可能需要下面这个rpm包kernelmodules

yum localinstall kmod-drbd83-8.3.8-1.el5.centos.i686.rpm -y --nogpgcheck

我的linux内核版本:

clip_image019

主配置文件:可以在命令行模式下输入如下命令读取,当然你也可以直接copy到/etc/下

clip_image020

全局配置文件

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

global {

usage-count no;

#使用统计

}

common {

protocol C;

#c协议,确认远程主机的写入之后,表示写入完成

startup {

wfc-timeout 120;

degr-wfc-timeout 120;

}

disk {

on-io-error detach;

fencing resource-only;

}

net {

#通信加密算法

cram-hmac-alg "sha1";

shared-secret "nfs";

}

syncer {

rate 100M;

#数据同步速率

}

}

资源:你可以写到global_common.conf、drdb.conf里面,也可以新建一个文件

[root@node1 ~]# vim /etc/drbd.d/r0.res

resource r0 {

on node1.a.com {

device /dev/drbd0;

#drbd磁盘

disk /dev/sdb3;

#磁盘成员

address 192.168.2.39:7789;

#侦听IP(ode1)、端口

meta-disk internal;

#meta data信息存放的方式,内部存储

}

on node2.a.com {

device /dev/drbd0;

disk /dev/sdb3;

address 192.168.2.40:7789;

meta-disk internal;

}

}

################################################################

以上步骤在两个节点都要做一遍,除了主机名、ip不同外其他配置相同

创建供DRBD记录信息的数据块

drbdadm create-md r0

启动:

root@node1 ~]# service drbd start

Starting DRBD resources: [

r0

Found valid meta data in the expected location, 1011703808 bytes into /dev/sdb3.

d(r0) s(r0) n(r0) ].......... 只启动一台无法启动

***************************************************************

DRBD's startup script waits for the peer node(s) to appear.

- In case this node was already a degraded cluster before the

reboot the timeout is 120 seconds. [degr-wfc-timeout]

- If the peer was available before the reboot the timeout will

expire after 120 seconds. [wfc-timeout]

(These values are for resource 'r0'; 0 sec -> wait forever)

To abort waiting enter 'yes' [30] 两边需要同时启动,120s超时

 

初始化,确定主、从关系(只在一端做就可以了,默认都是secondery)

drbdadm -- --overwrite-data-of-peer primary r0

动态观察磁盘同步状态

wtch -n 1 ‘cat /proc/drbd’

查看主从状态

clip_image021

clip_image022

clip_image024

格式化:

mkfs -t ext3 -L drbd /dev/drbd0

创建挂载点:

mkdir /mnt/nfs

mount /dev/drbd0 /mnt/nfs

可以创建几个文件,然后更改主从关系(drbdadm primary r0)

在另一端再挂载一下,测试一下是否正常。

#######################################################################

测试:

模拟节点二出现故障:

/usr/lib/haertbaet/hb_takeover

可以看到出现node2:vip eth0:0

clip_image025

node2:

clip_image026

节点1自动挂载成功:

clip_image028

node2的挂载状态

clip_image029

节点1上nfs启动正常:

clip_image030

nfs进程:

clip_image031

节点2上nfs处于关闭状态:

clip_image032

nfs启动过程曾出现错误,进程无法结束,杀掉后重启正常

clip_image033

模拟节点一出现故障:

/usr/lib/haertbaet/hb_takeover

clip_image034

clip_image035

clip_image036

nfs客户端:

挂载:

创建挂载点:mkdir /nfs

#mount vip:dir 挂载点

[root@client ~]#mount 192.168.2.38:/mnt/nfs /nfs

临时挂载,可以写到/etc/fstab里

clip_image037

以下分别为client、node1、node2创建的文件,正常状态下,节点状态切换不影响使用,不需要重新挂载

clip_image038

 

clip_image039

分别在主机target、client编辑文件client:

clip_image040

clip_image041

可以看到不能同时编辑此文件:

clip_image043

你可能感兴趣的:(border,Alt,target,blank)