DRBD 号称是 “网络 RAID”,开源软件,由LINBIT 公司开发。DRBD实际上是一种块设备的实现,主要被用于Linux平台下的高可用(HA)方案之中。他有内核模块和相关程序而组成,通过网络通信来同步镜像整个设备,有点类似于一个网络RAID-1的功能。也就是说当你将数据写入本地的DRBD设备上的文件系统时,数据会同时被发送到网络中的另外一台主机之上,并以完全相同的形式记录在文件系统中。本地节点与远程节点的数据可以保证实时的同步,并保证IO的一致性。所以当本地节点的主机出现故障时,远程节点的主机上还会保留有一份完全相同的数据,可以继续使用,以达到高可用的目的

 

两台主机192.168.0107

             192.167.0108
都新加一块虚拟磁盘 /dev/vdb
数据存放在vdb,两台主机vdb数据同步。当107挂掉,把vdb挂载到108,原先在107的创建的数据还在

通过源码生成软件包
yum install gcc flex rpm-build kernel-devel -y  #解决软件依赖性
rpmbuild ~  #在家目录生成rpmbuild编译所需路径
tar zxf drbd-8.4.0.tar.gz
cd drbd-8.4.0
./configure
make rpm  #编译 drbd
make km-rpm #编译 drbd 内核模块
cd ~/rpmbuild/RPMS/x86_64
rpm -ivh *

scp * 192.168.0.108:/root
在108也安装

文件配置,两台机子一样
cp /usr/share/doc/drbd-utils-8.4.0/drbd.conf.example /etc/drbd.d/drbd.res
或者改/etc/drbd.conf 使其包括drbd.conf.example文件名

vi /etc/drbd.d/drbd.res
resource example  #名字可改
......
 on server7.example.com {
                address 192.168.0.107:7780;

                volume 0 {
                       device minor 0;
                       disk /dev/vdb;
                       meta-disk internal;
                }
        }
        on desktop73.example.com {
                address 192.168.0.108:7780;

                volume 0 {
                       device minor 0;
                       disk /dev/vdb;
                       meta-disk internal;
                }
        }

两台机子分别执行
drbdadm create-md example
/etc/init.d/drbd start

drbdsetup /dev/drbd0 primary --force #将107设置为 primary 节点,并同步数据
watch cat /proc/drbd  #查看同步状态

同步完成后
mkfs.ext4 /dev/drbd0
mount /dev/drbd0 /mnt
cp /boot/* /mnt
umount /dev/drbd0

drbdadm secondary example #将107设置为secondary节点
drbdadm primary example #将108设置为primary节点

在108上,mount /dev/drbd0 /mnt
查看之前拷贝文件是否还在

两台主机上的/dev/drbd0 不能同时挂载,只有状态为 primary 时,才能被挂载
使用,而此时另一方的状态为 secondary。。drbd0即/dev/vdb