在安装之前我们要确定一件事情就是系统内核。如果在2.6.33以下的需要添加DRBD的内核模块才可以。本方法介绍的为2.6.33以下内核的配置介绍。

安装:

 
  
  1. yum update 
  2. yum -y install gcc make automake autoconf flex rpm-build kernel-devel libxslt libxslt-devel  
  3. mkdir -p rpmbuild/SOURCES  
  4. tar -zxvf drbd-*   
  5. cd drbd-*   
  6. ./configure   
  7. make rpm   
  8. make km-rpm 

现在我们将源码包编译成了rpm包,可以安装该软件和模块了。
 

 
  
  1. rpm -ivh drbd-utils* drbd-km-2.6*  
星号匹配一下内核版本

配置

vim /etc/drbd.d/global_common.conf

 

 
  
  1. global {   
  2. usage-count yes;   
  3. }   
  4.    
  5. common {   
  6. handlers {   
  7. pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";   
  8. pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";   
  9. local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";   
  10. }   
  11.    
  12. startup {   
  13. wfc-timeout 30;   
  14. degr-wfc-timeout 30;   
  15. outdated-wfc-timeout 30;   
  16. }   
  17.    
  18. options {   
  19. # cpu-mask on-no-data-accessible   
  20. }   
  21.    
  22. disk {   
  23. on-io-error detach;   
  24. fencing resource-and-stonith;   
  25. resync-rate 15M;   
  26. }   
  27.    
  28. net {   
  29. protocol      C;  
  30. prcram-hmac-alg sha1;   
  31. shared-secret "111111";   
  32. }    

vim /etc/drbd.d/r0.res

 

 
  
  1. resource r0 {  
  2. device /dev/drbd0;  
  3. disk /dev/md0;  
  4. meta-disk internal;  
  5. on nde254 {  
  6. address 192.168.0.254:9876;  
  7. }  
  8. on node253 {  
  9. address 192.168.0.253:9876;  
  10. }  
  11. }  

这是比较简单的应用。drbd块本身是可以再连接块设备的。有兴趣的童鞋可以去官网了解。

结合heartbeat我们就可以实现高可用的heartbeat+drbd

下面简单的描述一下heartbeat的使用。

在编译出来的drbd的rpm包里有一个drbd-heartbeat-8.4.2-2.el6.x86_64.rpm

安装以后将会提供drbd的判断脚本。Heartbeat的配置文件如下:

ha.cf

 

 
  
  1. logfacility     local0  
  2. keepalive 2  
  3. deadtime 30  
  4. warntime 10  
  5. initdead 120  
  6. ucast eth0 192.168.200.254  
  7. auto_failback on 
  8. node    node253  
  9. node    nde254 

haresources

 

其中drbddisk脚本就是上述软件包安装产生的。脚本位于heartbeat目录下的resour

ce.d目录下。killnfsd为自己写的脚本。用来结束nfs进程。

 
  
  1. node253 IPaddr::192.168.0.101/24/bond0 drbddisk::r0 Filesystem::/dev/drbd0::/drbd::ext4 killnfsd smb