dbrd

DRBD 是由内核模块和相关脚本而构成,用以构建高可用性的集群。其实现方式是通过网络来镜像整个设备。您可以把它看作是一种网络RAID。


DRBD 负责接收数据,把数据写到本地磁盘,然后发送给另一个主机。另一个主机再将数据存到自己的磁盘中。其他所需的组件有集群成员服    务,如TurboHA 或 心跳连接,以及一些能在块设备上运行的应用程序。例如:裸I/O、文件系统及fsck、具有恢复能力的数据库。



系统环境:rhel6 x86_64 selinux and iptables disabled


软件下载:http://oss.linbit.com/drbd


1. 安装DRBD



# yum -y install gcc flex rpm-build kernel-devel -y   # 解决依赖性


# rpmbuild ~   # 在家目录生成rpmbuild编译所需环境


# tar xf 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 *


Note: 从2.6.33开始drbd已经包含在内核中


Note: 拷贝生成的rpm包到另一主机,并安装软件包


2. 配置DRBD



# cp /usr/share/doc/drbd-utils-8.4.0/drbd.conf.example /etc/drbd.d/example.res



# vi /etc/drbd.d/example.res


resource example {


 options {


on-no-data-accessible suspend-io;


}


net {


cram-hmac-alg "sha1";


shared-secret "secret_string";


}


# The disk section is possible on resource level and in each


# volume section


disk {


# If you have a resonable RAID controller


# with non volatile write cache (BBWC, flash)


disk-flushes no;


disk-barrier no;


md-flushes no;


}


# volume sections on resource level, are inherited to all node


# sections. Place it here if the backing devices have the same


# device names on all your nodes.


on server23.example.com {


address 192.168.0.123:7780;


volume 0 {


      device minor 0;


      disk /dev/vdb1;


      meta-disk internal;


}


}


on vserver2.example.com {


address 192.168.0.223:7780;


volume 0 {


      device minor 0;


      disk /dev/vdb1;


      meta-disk internal;


}


}


 }


Note: 两台机器的配置一样,直接复制


3. 启动和测试


在两台主机上分别执行以下命令


# drbdadm create-md example


# /etc/init.d/drbd start


将其中一台机器设置为primary节点, 并同步数据


# drbdsetup /dev/drbd0 primary --force


在两台主机上查看同步状态


# watch cat /proc/drbd


version: 8.4.0 (api:1/proto:86-100)


GIT-hash: 28753f559ab51b549d16bcf487fe625d5919c49c build by [email protected],


2011-08-14 09:44:01


0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----


ns:126192 nr:0 dw:0 dr:126856 al:0 bm:7 lo:0 pe:145 ua:0 ap:0 ep:1 wo:d oos:922896


[=>..................] sync'ed: 12.2% (922896/1048508)K


finish: 0:02:41 speed: 5,692 (4,484) K/sec


数据同步结束后创建文件系统


# mkfs.ext4 /dev/drbd0


挂载文件系统


# mount /dev/drbd0 /var/www/html


存放数据


# cp -r /etc/* /var/www/html


卸载文件系统


# umount /dev/drbd0


将这台机器设置为secondary节点


# drbdadm secondary example


将另一台机器设置为primary节点 (在另一台机器上执行)


# drbdadm primary example


挂载文件系统,查看数据是否同步


# mount /dev/drbd0 /var/www/html


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



 

你可能感兴趣的:(网络,职场,休闲,设备)