一步一步安装DRBD

时间

2016 一月 07

作者

曹登化

版权

版权所者是曹登化-2016



第一步:前期准备


1. 准备2台机器 同步的磁盘大小一致


问:磁盘可以大小不一致吗?


配置如下表:



操作系统

主机名

IP

drbd磁盘

node1

CentOS 6.7

centos03.cdh

192.168.1.93

/dev/drbd0

node2

CentOS 6.7

centos04.cdh

192.168.1.94

/dev/drbd0


两台设备的防火墙要互相允许。

以上主机名与IP对应的关系中,两台服务器上的hosts、/etc/sysconfig/network文件都要写上


2. 时间同步

ntpdate [公网时间服务器IP或自建ntp服务器IP]


3.在2节点上生成密钥,使得两节点间检测心跳信息无须密码


设置空密码

# ssh-keygen -P ''  


用 ssh-copy-id 命令可以大大简化公钥分配过程


$ ssh-copy-id [remote-machine IP]


公钥,私钥已经生成,执行上述命令完毕出现如下错误:


/usr/bin/ssh-copy-id: ERROR: No identities found


发现缺少公钥路径,通过 -i 加上即可:


# ssh-copy-id -i ~/.ssh/id_dsa.pub [用户名@主机名]


不要轻易迷信任何书籍,实践出真知!


查看二台服务器时间是否同步


# ssh centos03.cdh 'date';date


第二步:安装drbd



在安装之前,将内核进行了升级,如果以下命令不行,可以先将内核进行升级。升级后重启,应用新内核

升级系统:

##yum update kernel

##yum install kernel-devel


说明:drbd共有两部分组成:内核模块和用户空间的管理工具。其中drbd内核模块代码已经整合进Linux内核2.6.33以后的版本中,因此,如果您的内核版本高于此版本的话,你只需要安装管理工具即可;否则,您需要同时安装内核模块和管理工具两个软件包,并且此两者的版本号一定要保持对应。

CentOS 6.4的内核版本是2.6.32-358.el6.x86_64,所以还提安装内核模块。

CentOS 6.7的内核版本是2.6.32-573.el6.x86_64,所以还提安装内核模块。


4条命令安装drbd

1. # rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

# yum -y install drbd83-utils kmod-drbd83

可以安装最新的84版本

2. # yum -y install drbd84-utils kmod-drbd84

3. # modprobe drbd

4. # lsmod |grep drbd


第三步:配置drbd


1.全局配置文件

vi /etc/drbd.d/global_common.conf

global {

usage-count no;

}

common {

protocol C;

startup {

wfc-timeout          240;

degr-wfc-timeout     240;

outdated-wfc-timeout 240;

}

disk {

on-io-error detach;

}

net {

cram-hmac-alg md5;

shared-secret "testdrbd";

}

syncer {

rate 330;   #30% bandwith,官方推荐是30%的带宽

al-extents 3389;

verify-alg  md5;    ##pei he /etc/crontab   4 * * * *  root /sbin/drbdadm verify  resourceName,用于数据校验的,通过配合定时任务可以一起起作用。

}

}


2.资源配置文件

vi r0.res

注意文件r0.res与文件里的resource r0一致

resource r0{  

on centos03.cdh {

 device     /dev/drbd0;

 disk       /dev/sdb1;

 address    192.168.1.93:7898;

 meta-disk  internal;

}

on centos04.cdh {

 device     /dev/drbd0;

 disk       /dev/sdb1;

 address    192.168.1.94:7898;

 meta-disk  internal;

}

}


将配置文件同步到node2

# scp global_common.conf r0.res node2:/etc/drbd.d/



第四步:启动drbd



1. node1与node2上初始化资源

# drbdadm create-md r0  


2. node1与node2上启动DRBD服务

# service drbd start

3. 启动后,先查看一下drbd的状态,目前显示是不一致,因为还没有指定主:

# cat /proc/drbd


version: 8.3.16 (api:88/proto:86-97)

GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014

-10-28 10:31:39

0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----

   ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:5242684

4. 指定node1的drbd设备为主:

# drbdsetup /dev/drbd0 primary -o

5. 再查看时,就会发现开始进行同步了:

# cat /proc/drbd


version: 8.3.16 (api:88/proto:86-97)

GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-10-28 10:31:39

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

   ns:0 nr:76376 dw:76376 dr:0 al:0 bm:4 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:5166308

       [>....................] sync'ed:  1.5% (5044/5116)M

       finish: 3:47:13 speed: 360 (356) want: 330 K/sec

我这里同步比较慢,因为限制了速度,只有330 K/sec。


第五步:注意事项


注意:备机的drbd设备无法挂载,因为它由drbd负责。用于接收主机数据的。当然,为了测试,可以在主机无数据写入时,进行查看。

使用:将主机上的drbd设备挂载即可使用。当有数据变更时,它会自动同步到备用磁盘上。

备用磁盘要使用时,待数据同步完成后,将drbd停止掉,然后再挂载上就好。


第六步:主备切换


1. 先将node1主上面的磁盘卸载掉并降级

# umount /dev/drbd0

# drbdadm secondary r0

2. 在备机上升级为主机

# drbdadm primary r0

3. 挂载磁盘

# mount /dev/drbd0 /media/mnt


总结



DRBD 配置步骤

1. 分区、格式化,准备好需要同步的磁盘或分区

2. 安装drbd

3. 配置资源文件(定义资料名称,磁盘,节点信息,同步限制等)

4. 将drbd加入到系统服务chkconfig --add drbd

5. 初始化资源组drbdadm create-md resource_name

6. 启动服务 service drbd start

7. 设置primary主机,并同步数据

8. 查看状态

你可能感兴趣的:(drbd)