DRBD Centos6.5(64bit)编译安装,双主模式

JerryXia 发表于 , 阅读 (37)

一、简介

DRBD(Distributed Rep;icate Block Device)是基于块设备在不同的高可用服务器之间同步和镜像数据的软件,通过它可实现在网络中的两台服务器之间基于块设备级别的实时或者异步镜像或同步复制。

DREB可以理解为网络的raid1。

Raid1:其原理就是将一块硬盘的数据以相同位置指向另一块硬盘的位置。RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。RAID1是将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”。块设备可以是磁盘分区、LVM逻辑卷、整块磁盘。

二、单主模式和双主模式

单主模式:一个集群内一个资源在任何给定的时间内仅有一个primary角色,另一个为secondary。文件系统可以是ext3、ext4、xfs等。

单主模式下,在primary节点上有如下操作:格式化: mkfs.ext4 /dev/drbd1,然后将/dev/drbd1挂载到之前创建的/db目录。在secondary节点,启动drbd后是无法挂载/dev/sda6。备份的过程是,先在primary上的/db目录中写入数据,然后关闭secondary的drbd服务:drbdadm down r0; 之后就可以把secondary的/dev/sda6挂载到目录/db下,就可以看到primary中的数据了。

双主模式:对于一个资源,在任何给定的时刻该集群都有两个primary节点,也就是drbd两个节点均为primary,因此可以实现并发访问。此时的文件系统应该是GFS或者OCFS2。

在双主模式,需要在配置文件/global-common.conf中加入allow-two-primaries yes;一项,在两个节点上同时执行 drbdadm primary –force r0,将两个节点提升为primary节点。然后在一台节点上执行:mkfs.gfs2 -j 2 -p lock_dlm -t gfscluster:gfslocktable /dev/drbd1将其格式化为gfs文件系统。然后在两个节点上执行mount /dev/drbd1 /db,即可实现双主模式在双主模式下,传入4G左右的文件成功,删除文件成功,两台节点能保证数据一致,而且基本同步。比如从本地传入greencloud1一个4G的文件,greencloud1中传入1G的话,在greencloud2也会同步过去1G的大小。

三、安装过程

操作系统版本为Centos6.5,drbd软件版本8.4.1

0.服务器准备

0.1.分区设置

暂定的安装方式是:在安装系统的时候,留出一定大小的磁盘空间不做分配,为后续安装drbd使用。

0.2. 关闭防火墙

/etc/init.d/iptables stopchkconfig iptables off

0.3. 修改ip和hostname对应

vi /etc/hosts

在配置drbd的时候需要用到主机名,因此添加ip和hostname对应关系

0.4.双机互相通信

greencloud1:ssh-keygen -t rsa -P ''greencloud2:ssh-copy-id -i .ssh/id_rsa.pub root@greencloud1

1.安装所需依赖(以下步骤在两台服务器上共同执行)

1.1.gcc和内核

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

1.2.gfs和cman

yum install gfs2-utils.x86_64 cman.x86_64

双主模式需要使用分布式文件方案

GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。

Cluster manager 简称CMAN,是一个分布式集群管理工具,运行在集群的各个节点上,为RHCS提供集群管理任务。

2.安装drbd

2.0.磁盘分区

使用fdisk出一个sda6分区,分区步骤如图,也可google一下更详细的分区介绍。

分区完成后建议重启计算机,因为执行partprobe后还是在安装drbd的时候会报错,重启是最保险的做法。

2.1.下载

将tar压缩包放入某文件夹内

tar xzf drbd-8.4.1.tar.gzcd drbd-8.4.1./configure --prefix=/usr/local/drbd --with-km    //编译并指定目录,-km不清楚作用make KDIR=/usr/src/kernels/2.6.32-431.20.5.el6.x86_64/make install  mkdir -p /usr/local/drbd/var/run/drbd  cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d  chkconfig --add drbd   //chkconfig --add“ 只是设置一个存在的service为自动启动chkconfig drbd on

2.2.安装drbd模块

cd drbdmake cleanmake KDIR=/usr/src/kernels/2.6.32-431.20.5.el6.x86_64/cp drbd.ko /lib/modules/`uname -r`/kernel/lib/depmod   //分析可载入模块的相依性

2.3.配置drbd文件

mkdir /db   /用于备份目录

2.3.1.配置drbd.conf文件

vi /usr/local/drbd/etc/drbd.conf写入include "drbd.d/global_common.conf";include "drbd.d/*.res";

2.3.2.配置global_common.conf文件

vi /usr/local/drbd/etc/drbd.d/global_common.conf设置以下内容:global {       usage-count yes;}common {       startup {              become-primary-on both;     }       disk {              fencing resource-and-stonith;       }       net {              protocol C;              allow-two-primaries yes;   //设置为双主模式              after-sb-0pri discard-zero-changes;              after-sb-1pri discard-secondary;              after-sb-2pri disconnect;       }