您的位置:首页 > 其它

drbd--主从模式配置

2014-03-08 21:20 323 查看
一、DRBD简介
Distributed Replicated Block Device(DRBD)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。官网地址: http://www.drbd.org
二、基础知识



1. 管理工具
drbdadm:高级管理工具,管理/etc/drbd.conf,向drbdsetup和drbdmeta发送指令drbdsetup:配置装载进kernel的DRBD模块,平时很少直接用drbdmeta:管理META数据结构,平时很少直接用

2. 资源
在DRBD中,资源是特指某复制的存储设备的所有方面。包括:

Resource name: 名字中不能有空格

DRBD device: 这个设备总是被命名为/dev/drbdn,n是镜像设备的编号,它的主设备号是147
Disk configuration: 使本地数据可以为DRBD所用
Network configuration: 与对方通信

3. 资源角色
⑴Primary(主): 主角色的DRBD设备可以不受限制的读和写,比如创建和映射文件系统、对于块设备的raw或直接IO访问。⑵Secondary(备): 备角色的DRBD设备接受来自对方的所有修改,但是不能被应用程序读写,甚至只读也不行。

4. DRBD模式
单主模式:在单主模型下drbd可以使用任意的文件系统
双主模式:在双主模型下只能使用集群文件系统,常用的集群文件系统有oracle公司的OCFS和redhat公司的GFS

5. 数据同步模式
异步:protocol A,本地已经写到磁盘了,并且同步数据已经被放到tcp缓冲区等待发送的队列中,这样就认为同步完成
半同步: protocol B,本地已经写到磁盘了,并且同步数据已经发送到对方内存缓冲区,对方已经确认收到数据,这样就认为同步完成
同步:protocol C,本地已经写到磁盘了,从服务器也写入完成了

三、安装DRBD
drbd共有两部分组成:内核模块和用户空间的管理工具。其中drbd内核模块代码已经整合进Linux内核2.6.33以后的版本中,因此,如果内核版本高于此版本的话,你只需要安装管理工具即可。

[root@ipvs ~]# uname -r
2.6.32-358.el6.x86_64    #redhat6.4内核是2.6.32版本的
准备:
[root@ipvs ~]# vim /etc/hosts
172.16.1.1      ipvs1.com ipvs1
172.16.1.2      ipvs2.com ipvs2


1. 安装drbd软件

[root@ipvs ~]# tar xf drbd-8.4.4.tar.gz
[root@ipvs ~]# cd drbd-8.4.4
[root@ipvs drbd-8.4.4]# ./configure --prefix=/usr/local/drbd  --with-km --sysconfdir=/etc/
[root@ipvs drbd-8.4.4]# make && make install   #安装完成
[root@ipvs drbd-8.4.4]# chkconfig --add drbd
[root@ipvs drbd-8.4.4]# chkconfig --list drbd    #设置开机自动启动
drbd            0:off   1:off   2:on    3:on    4:on    5:on    6:off


2. 完善安装
[root@ipvs ~]# vim /etc/profile
export PATH=$PATH:/usr/local/drbd/sbin/ #最后增加这一行
[root@ipvs ~]# . !$
[root@ipvs ~]# vim /etc/man.config
MANPATH /usr/local/drbd/share     #增加这一行
[root@ipvs ~]# cd drbd-8.4.4
[root@ipvs drbd-8.4.4]# cp scripts/drbd.conf.example /etc/drbd.d/resource.res
#将配置文件拷贝过去


3. 将drbd模块加载进内核
[root@ipvs ~]# modprobe drbd     #加载进内核
[root@ipvs ~]# lsmod | grep drbd
drbd                  340487  0
libcrc32c               1246  2 drbd,ip_vs
[root@ipvs ~]# modprobe -r drbd   #从内核中移除
4. 配置DRBD(需拷贝一份到另一个节点上)
drbd的主配置文件为/etc/drbd.conf;为了管理的便捷性,目前通常会将些配置文件分成多个部分,且都保存至/etc/drbd.d目录中

global {
usage-count no;    #是否记录DRBD的使用次数
# minor-count dialog-refresh disable-ip-verification
}
common {
protocol C;
handlers {
}
startup {
wfc-timeout 120;
degr-wfc-timeout 120;   #指定降级超时时间
}
disk {
on-io-error detach;   #磁盘IO错误就拆除磁盘
fencing resource-only;  #资源级别隔离
}
net {
cram-hmac-alg "sha1";       #指定数据传输的校验算法为sha1
shared-secret "tcnetadmin";   #指定共享密码
}
}
global_common.conf中主要定义global段和common段,global段必须位于配置文件的最开始处,common段则用于定义被每一个资源默认继承的参数,可以在资源定义中使用的参数都可以在common段中定义。

5. 定义一个资源
[root@ipvs drbd.d]# vim resource.res
resource share {
on ipvs1.com {
device    /dev/drbd0;
disk      /dev/sdb1;       #要先创建这个分区
address   172.16.1.1:7789;
meta-disk internal;
}
on ipvs2.com {
device    /dev/drbd0;
disk      /dev/sdb1;
address   172.16.1.2:7789;
meta-disk internal;
}
}
[root@ipvs drbd.d]# scp resource.res root@ipvs2:/etc/drbd.d/
#并且把它直接拷贝到节点2上去


6. 初始化已定义的资源并启动服务(2个节点都做)
[root@ipvs drbd.d]# drbdadm create-md share  #初始化share资源,share是个名字
[root@ipvs drbd.d]# service iptables stop
[root@ipvs drbd.d]# /etc/init.d/drbd start    #启动服务
[root@ipvs drbd.d]# drbdadm -- --overwrite-data-of-peer primary share
#将其中一个节点设置为Primary
[root@ipvs drbd.d]# watch -n 0.5 'drbd-overview'  #监视数据同步过程


7. 在当前的主节点上格式化文件系统并使用
[root@ipvs drbd.d]# mkfs.ext4 /dev/drbd0   #只有主节点可以格式化和挂载
[root@ipvs ~]# mount /dev/drbd0 /mnt/
[root@ipvs ~]# cp -a /etc /mnt/
[root@ipvs ~]# umount /mnt/
[root@ipvs ~]# drbdadm secondary share   #将这个节点置为备节点


8. 将另一个节点置为主节点并查看文件
[root@ipvs2 ~]# drbdadm primary share
[root@ipvs2 ~]# drbd-overview
0:share/0  Connected Primary/Secondary UpToDate/UpToDate C r----- /mnt ext4 1020M 57M 911M 6%
[root@ipvs2 ~]# mount /dev/drbd0 /mnt/
[root@ipvs2 ~]# cd /mnt/
[root@ipvs2 mnt]# ls
etc  lost+found
#在这个节点上成功看到文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  drbdadm