DRBD 实现数据备份的高可用性

以下文章转载自http://goplay.blog.51cto.com/3237944/664560

实验说明:

1、通过drbd提供数据的冗余备份功能

2、通过两台虚拟机模拟测试

image

实验配置

一、配置ip和主机名

1、配置ip #vim /etc/sysconfig/network-scripts/ifcfg-eth0

image

重启网络配置 #service network restart

查看

image

2、配置主机名

#vim /etc/hosts 使用hosts文件做dns地址解析

image

#vim /etc/sysconfig/network

image

#hostname test1.a.org

测试配置结果 #uname –n

image

test2.a.org 配置相同

二、ssh 配置(为方便远程管理,以后不用每次都输密码)

#ssh-keygen –t rsa

#ssh-copy-id –i ~/.ssh/id_rsa.pub root@test2

image

三、分区

#fdisk /dev/sda

image

image

#partprobe 重读分区表

四、安装DRBD软件

目前在用的drbd版本主要有8.0、8.2和8.3三个版本,其对应的rpm包的名字分别为drbd,

drbd82和drbd83,对应的内核模块的名字分别为kmod-drbd, kmod-drbd82和kmod-drbd83。

各版本的功能和配置等略有差异;我们实验所用的平台为x86且系统为rhel5.4,因此需要同时安装

内核模块和管理工具。我们这里选用最新的8.3的版本(drbd83-8.3.8-1.el5.centos.i386.rpm和

kmod-drbd83-8.3.8-1.el5.centos.i686.rpm),

下载地址为:http://mirrors.sohu.com/centos/5.6/extras/i386/RPMS/。

1、下载完成后直接安装即可:
# yum -y --nogpgcheck localinstall drbd83-8.3.8-1.el5.centos.i386.rpm

kmod-drbd83-8.3.8-1.el5.centos.i686.rpm

2、配置

drbd的主配置文件为/etc/drbd.conf;为了管理的便捷性,目前通常会将些配置文件分成多个部分,

且都保存至/etc/drbd.d目录中,主配置文件中仅使用"include"指令将这些配置文件片断整合起来。

通常,/etc/drbd.d目录中的配置文件为global_common.conf和所有以.res结尾的文件。

其中global_common.conf中主要定义global段和common段,而每一个.res的文件用于定义一个资源。

1)复制样例配置文件为即将使用的配置文件:
# cp /usr/share/doc/drbd83-8.3.8/drbd.conf /etc

2)配置/etc/drbd.d/global-common.conf (记得备份配置文件)
global {
usage-count no;
# minor-count dialog-refresh disable-ip-verification
}

common {
protocol C;

startup {
wfc-timeout 120;
degr-wfc-timeout 120;
}

disk {
on-io-error detach;
fencing resource-only;
}

net {
cram-hmac-alg "sha1";
shared-secret "mydrbdlab";
}

syncer {
rate 200M;
}
}

3、定义资源/etc/drbd.d/webserver.res,内容如下:

resource webserver {
on test1.a.org {
device /dev/drbd0;
disk /dev/sda6;
address 10.0.0.143:7789;
meta-disk internal;
}
on test2.a.org {
device /dev/drbd0;
disk /dev/sda6;
address 10.0.0.144:7789;
meta-disk internal;
}
}

4、在两个节点上初始化已定义的资源并启动服务

1)scp配置文件到另一个节点上

image

2)初始化资源,在test1和test2上分别执行:
# drbdadm create-md webserver

image

3)启动服务,在test1和test2上分别执行:
/etc/init.d/drbd start

4)查看启动状态
# cat /proc/drbd

test1 #此时都是Secondary/Secondary

image

test2

image

从上面的信息中可以看出此时两个节点均处于Secondary状态。于是,我们接下来需要将

其中一个节点设置为Primary。在要设置为Primary的节点上执行如下命令:

# drbdsetup /dev/drbd0 primary –o (只有在第一次时这样使用)

或# drbdadm -- --overwrite-data-of-peer primary web

image

test1 的状态已经变成Primary/Secondary

0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r----

5、格式化、并挂载使用/dev/drbd0

#mke2fs –j -L drbd /dev/drbd0

#mkdir /drbd

#mount /dev/drbd0 /drbd

查看#mount

image

#cd /drbd

#touch test.txt (测试使用)

#echo "test for drbd" > test.txt

6、主从交换,查看里边的内容

test1

#umount /drbd (要先卸载)

#drbdadm secondary webserver

查看状态

image

test2

#drbdadm primary webserver

#cat /proc/drbd

image

#mkdir /drbd

#mount /dev/drbd0 /drbd

#cd /drdb

#ls

结果

image

umount 的时候报错:device is busy

http://liuyu.blog.51cto.com/183345/64044

原文地址:https://www.cnblogs.com/google4y/p/2202326.html