实验机器配置:
ubuntu Linux 系统
有一个独立的分区用于同步,该分区最好是一个独立的磁盘
两块网卡,其中一块用于提供网络服务,另一块用于数据同步
以上配置的机器要求两台,我没有两台相同的机器,因此使用了虚拟机。
我的两台机器的初始参数分别是分别是 :
XFS-74 192.168.11.74 用于同步的分区为/dev/sda4 eth0/192.168.11.74 eth1/192.168.1.2
XFS-75 192.168.11.75 用于同步的分区为/dev/sda4 eth0/192.168.11.75 eth1/192.168.1.3
eth0用于提供网络服务,eth1用来进行数据同步
安装配置过程:
一、vi /etc/hosts
在hosts中确认以下两行:
192.168.1.2 XFS-74
192.168.1.3 XFS-75
二、apt-get install drbd8-utils
三、修改/etc/drbd.conf文件
文件内容如下:
common{
syncer {rate 10M;} #速率
}
resource r0{
protocol C; #同步协议,C协议是一种有确认的协议,可靠性较高
disk {on-io-error detach;}
on LFS-74{ #LFS-74是节点的机器名
device /dev/drbd0;
disk /dev/sda4; #需要同步的分区
address 192.168.1.2:7788;
meta-disk internal;
}
on LFS-75{
device /dev/drbd0;
disk /dev/sda4;
address 192.168.1.3:7788;
meta-disk internal;
}
}
四、创建资源
dd if=/dev/zero of=/dev/sda4 bs=1M count=128
drbdadm create-md r0
五、启动
/etc/init.d/drbd start5
六、确认应经启动的方法:
1> cat /proc/drbd
2>netstat -aux 开看是否有7788的TCP服务端口在运行
七、把其中一台机器设置成为主盘
drbdsetup /dev/drbd0 primary -o
这一步完成后可以使用 watch -n1 cat /proc/drbd 监视复制的状态。
八、格式化网络硬盘
mkfs.ext3 /dev/drbd0
格式化只能在主盘上进行
九、drdb运行状态的监视
1.查看进程文件
/proc/drbd
输出内容大致如下:
Every 2.0s: cat /proc/drbd Fri Dec 16 15:13:58 2011
version: 8.3.9 (api:88/proto:86-95)
srcversion: CF228D42875CF3A43F2945A
0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
ns:520192 nr:0 dw:0 dr:520192 al:0 bm:196 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
cs 后便可以看到那个是主那个是从
ds:可以查看磁盘的状态,UpToDate/UpToDate 应该表示两个磁盘都是实时状态,这是正确的情况
我们要关注的信息是:
1》主盘和从盘的连结是否正常,如果连结不正常,我们要检查原因,看看网线是否正常,防火墙是否意外,drbd服务是否正常启动登
2》主从盘的数据状态,一般主盘应该是实时状态,从盘一般也应该是实时状态,这表示两个磁盘信息一致
3》关键是要杜绝脑裂(Split-Brian) 的现象,即从盘上有主盘上没有的数据,
注意的问题:
使用drbd只能在主服务器上挂载设备,在从服务器上不能挂载设备,否则会导致同步失败。
两个重要的命令
mknod
examples:
mknod /dev/drbd0 b 147 0 //创建drbd0设备 参数b表示是快设备 147是主设备号,0是次设备号
dd
watch
watch可以重复执行一个命令,从而避免一遍一遍的敲命令行
watch有两个参数, -n 便是从新执行命令的时间间隔 ,默认是两秒, -d是对变化的内容高亮显示
mountpoint
这个命令检查目录是不是挂载点
examples:
mountpoint /mnt 输出 /mnt is not a mountpoint 或者 /mnt is a mountpoint
mountpoint -d /mnt 输出挂载设备的主次设备号