DRBD 是由内核模块和相关脚本而构成,用以构建高可用性的集群.其实现方式是通过网络来镜像整个设备.您可以把它看作是一种网络RAID.
Drbd 负责接收数据,把数据写到本地磁盘,然后发送给另一个主机.另一个主机再将数据存到自己的磁盘中.其他所需的组件有集群成员服务,如TurboHA 或 心跳连接,以及一些能在块设备上运行的应用程序
drbd1:192.168.6.106 drbd2:192.168.6.107
OS:ubuntu server 8.04.1 软件:drbd-8.2.6.tar.gz
分别在两台机器安装,我的机器分区是用LVM来管理的 ,我给两台机器都分了一个G,在/dev/www/www~ 1.安装drbd所需要的,DRBD编译在内核里的,也要安装linux-headers #uname -r 看下内核版本 2.6.24-19-serve 我的内核版本 #apt-get install flex linux-headers-2.6.24-19-server 2.编译安装drbd #tar zxvf drbd-8.2.6.tar.gz #cd drbd-8.2.6 #make clean 清除以前历史记录 #make KDIR=/usr/scr/linux-headers-2.6.24-19-server 编译 内核路径 #make install 安装 #groupadd haclient 建立组不然会提示警告 #chgrp haclient /sbin/drbdsetup #chmod o-x /sbin/drbdsetup #chmod u s /sbin/drbdsetup
3.修改配置文件 #mv /etc/drbd.conf /etc/drbd.conf.bak 备份原配置文件 #vim /etc/drbd.conf 贴入 common { # 设置主备节点同步时的网络速率最大值,单位是字节. syncer { rate 10M; } } resource r0 { # 使用协议C.表示收到远程主机的写入确认后,则认为写入完成. protocol C; disk { on-io-error detach; } # 每个主机的说明以"on"开头,后面是主机名.在后面的{}中为这个主机的配置. on drbd1 { device /dev/drbd0; disk /dev/www/www; (如果是新家的硬盘就写 /dev/sdb1;/dev/sdc...) address 192.168.6.106:7788; meta-disk internal; } on drbd2 { device /dev/drbd0; disk /dev/www/www; (如果是新家的硬盘就写 /dev/sdb1;/dev/sdc...) address 192.168.6.107:7788; meta-disk internal; } } 我的是很简单的,为了测试,还需要大家根据自己的需要自己修改~ 好了两台机器都写完配置文件后,在drbd1和drbd2上分别输入命令 #drbdadm create-md r0 “r0”是我们在drbd.conf里定义 弹出的信息,敲回车,如果drbd.conf配置好的话,有的信息是不会弹出的.
现在我们可以启动DRBD了,分别在两台主机上执行: [root@drbd1 local]#/etc/init.d/drbd start [root@drbd2 local]#/etc/init.d/drbd start
[root@drbd1 ~]# cat /proc/drbd version: 8.0.11 (api:86/proto:86) SVN Revision: 2713 build by root@drbd1 , 2008-06-27 14:07:14 1: cs:Connected st: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 resync: used:0/31 hits:0 misses:0 starving:0 dirty:0 changed:0 act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0 ”/proc/drbd”中显示了drbd当前的状态.第一行的st表示两台主机的状态,都是”备机”状态. ds是磁盘状态,都是”不一致”状态. 这是,DRBD无法判断哪一方为主机,以哪一方的磁盘数据作为标准数据.,我们需要初始化
一个主机.在drbd1上执行: [root@drbd1 local]#drbdsetup /dev/drbd0 primary -o
主备机状态分别是”主/备”,主机磁盘状态是”实时”,备机状态是”不一致”.
在第3行,可以看到数据正在同步中,即主机正在将磁盘上的数据, |