DRBD详细实践手记

49 篇文章 0 订阅
31 篇文章 0 订阅

虚拟机环境:centos 6.2
主服务器:masterNode   192.168.58.128
备服务器:backupNode   192.168.58.129


1、DRBD安装
1.1、安装依赖包:
yum -y install gcc kernel-devel kernel-headers flex


下载安装drbd源码包:
wget http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz
tar xzf drbd-8.4.1.tar.gz
cd drbd-8.4.1
./configure --prefix=/usr/local/drbd --with-km
make KDIR=/usr/src/kernels/2.6.32-220.17.1.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 drbd on
KDIR=中指定的系统内核源码路径,根据实际情况设置


1.2、安装drbd模块:
cd drbd
make clean
make KDIR=/usr/src/kernels/2.6.32-220.17.1.el6.x86_64/
cp drbd.ko /lib/modules/`uname -r`/kernel/lib/
depmod


2、DRBD配置
首先对/dev/sda设备分区/dev/sda3(这一步我是在装系统时就分区了),在根目录下建立/drbdData文件夹,名字自定义,供后面挂载/dev/sda3分区设备用。


2.1、配置global_common.conf
编辑全局配置:
vi /usr/local/drbd/etc/drbd.d/global_common.conf


确保文件中包含有下内容:
global {
  usage-count yes;
}
common {
  net {
    protocol C;
  }
}
当然,还可以有其它配置,这是最基本的。


2.2、配置r0资源:
创建r0资源:
vi /usr/local/drbd/etc/drbd.d/r0.res


写入文件内容:
resource r0{
        on masterNode{
                device          /dev/drbd1; #逻辑设备的路径
                disk            /dev/sda3; #物理设备
                address         192.168.58.128:7788;
                meta-disk       internal;
        }
        on backupNode{
                device          /dev/drbd1;
                disk            /dev/sda3;
                address         192.168.58.129:7788;
                meta-disk       internal;
        }
}
需要把上面用到的防火墙7788端口打开,这个端口是自定义的,如果嫌麻烦可以直接关掉防火墙。
说明:
device  是自定义的物理设备的逻辑路径
disk        是磁盘设备,或者是逻辑分区
address   是机器监听地址和端口
meta-disk   这个还没弄明白,看到的资料都是设为:internal


2.3、建立resource
modprobe drbd //载入 drbd 模块
lsmod | grep drbd                               //确认 drbd 模块是否载入
dd if=/dev/zero of=/dev/sda3 bs=1M count=100 //把一些资料塞到 sda3 内 (否则 create-md 时会报错)
drbdadm create-md r0                           //建立 drbd resource
drbdadm up r0


我遇到的问题: 
[root@backupNode /]# drbdadm up r0
1: Failure: (104) Can not open backing device.
Command 'drbdsetup attach 1 /dev/sda3 /dev/sda3 internal' terminated with exit code 


原因是我之前已经挂在了/dev/sda3,需要先卸载/dev/sda3设备,解决办法:
umount /dev/sda3
问题解决。




注:以上每一步骤,都需要在主备服务器上进行配置设置。


2.4、设置Primary Node
将masterNode设为主服务器(primary node),在masterNode上执行:
drbdadm primary --force r0


查看drbd状态:
[root@backupNode /]# cat /proc/drbd
version: 8.4.1 (api:1/proto:86-100)
GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by root@masterNode, 2012-05-27 18:34:27


 1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:4 nr:9504584 dw:9504588 dr:1017 al:1 bm:576 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0
已经变成了主服务器。




2.5、创建DRBD文件系统
上面已经完成了/dev/drbd1的初始化,现在来把/dev/drbd1格式化成ext4格式的文件系统,在masterNode上执行:
[root@masterNode /]# mkfs.ext4 /dev/drbd1
输出:
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
589824 inodes, 2358959 blocks
117947 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2415919104
72 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632


正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成


This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.


然后,将/dev/drbd1挂载到之前创建好的/drbdData目录:
[root@masterNode /]# mount /dev/drbd1 /drbdData


现在只要把数据写入/drbdData目录,drbd即会立刻把数据同步到backupNode的/dev/sda3分区上了。


2.6、DRBD同步测试
1、首先,在主服务器上先将设备卸载,同时将主服务器降为备用服务器:
[root@masterNode /]# umount /dev/drbd1
[root@masterNode /]# drbdadm secondary r0


2、然后,登录备用服务器,将备用服务器升为主服务器,同时挂载drbd1设备到 /drbdData目录:
[root@masterNode /]# ssh backupnode
Last login: Sun May 27 19:57:17 2012 from masternode
[root@backupNode ~]# drbdadm primary r0
[root@backupNode ~]# mount /dev/drbd1 /drbdData/


3、最后,进入/drbdData目录,就可以看到之前在另外一台机器上放入的数据了,如果没有看到,说明同步失败!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值