DRBD

DRBD介绍:

DRBD:distributed replicated block device分布式复制块设备,基于主机通过网络复制数据,是内核中控制复制数据的一个模块

 

drbdadm:用户空间的管理工具,需要分析配置参数来实现对drbd的控制
drbd运行在两个节点,默认为主从,主从可以切换
 
Master/Master模式:
1、文件系统必须为集群文件系统如:GFS2;OCFS2(本身提供高可用功能)
2、使用高可用环境
3、使用分布式锁DLM
 
Master/Slave模式:
1、可以使用普通文件系统
2、可以切换主从角色
3、如果需要为高可用提供存储空间,需要将DRBD作为HA的一个资源
4、从节点不可读、不可写、不可挂载
 
复制协议:
ProtocolA:异步,数据被送到TCP/IP协议缓冲区就宣布复制完成
ProtocolB:半同步,也称内存同步,数据发送到从节点的内存接收缓冲区
ProtocolC:异步,数据写到对方的磁盘
 
实验环境:
主节点(primary):192.168.169.128 (CentOS 5.8)
从节点(secondary):192.168.169.129 (CentOS 5.8)
准备工作:
1、配置两个节点能够解析:
 
  
  
  
  
  1. # Do not remove the following line, or various programs 
  2. # that require network functionality will fail. 
  3. 127.0.0.1               localhost.localdomain localhost 
  4. :1              localhost6.localdomain6 localhost6 
  5. 192.168.169.128 web1 
  6. 192.168.169.129 web2 
2、在主节点和从节点上新建分区:
假设在主节点和从节点上新建的分区分别为:/dev/sdb1、/dev/sdb1
安装:
 
  
  
  
  
  1. yum -y install kmod-drbd83 drbd83 

 

加载模块:

 

  
  
  
  
  1. modprobe drbd 

检查是否加载成功:

 

  
  
  
  
  1. [root@web1 drbd]# lsmod | grep drbd 
  2. drbd                  300440  4  

安装成功之后/sbin目录下面有drbdadm,drbdmeta,drbdsetup命令,以及/etc/init.d/drbd启动脚本。

配置:

drbd的主配置文件为/etc/drbd.conf;为了管理的便捷性,目前通常会将些配置文件分成多个部分,且都保存至/etc/drbd.d目录中,主配置文件中仅使用"include"指令将这些配置文件片断整合起来。通常,/etc/drbd.d目录中的配置文件为global_common.conf和所有以.res结尾的文件。其中global_common.conf中主要定义global段和common段,而每一个.res的文件用于定义一个资源。

为drbd准备配置文件:

  
  
  
  
  1. [root@web1 ~]# cp /usr/share/doc/drbd83-8.3.13/drbd.conf /etc 

为drbd配置参数,编辑global_common.conf文件添加如下几个参数:

  
  
  
  
  1. #vim /etc/drbd.d/global_common.conf   
  2. disk {   
  3.      on-io-error detach;   
  4. }   
  5. net {   
  6. cram-hmac-alg “sha1”;          
  7. shared-secred “mydrbd”;   
  8. }   
  9. syncer {   
  10.        rate 1000M;   
  11. }   

定义一个资源/etc/drbd.d/web.res,内容如下:

  
  
  
  
  1. resource web { 
  2.         device /dev/drbd0; 
  3.         meta-disk internal; 
  4.                 on web1 { 
  5.  
  6.                 disk /dev/sdb1; 
  7.                 address 192.168.169.128:7789; 
  8.         } 
  9.                 on web2 { 
  10.                 disk /dev/sdb1; 
  11.                 address 192.168.169.129:7789; 
  12.         } 
  13.  
  14.  
  15.  

以上文件两个节点上必须相同,因此可以基于ssh将刚才配置的文件同步到web2节点上:

  
  
  
  
  1. #scp /etc/drbd.* web2:/etc   

在两个节点上初始化已定义的资源并启动服务:

 1)初始化资源,在两节点执行:

  
  
  
  
  1. # drbdadm create-md web   

 2)启动服务,在web1和web2上分别执行: 

  
  
  
  
  1. #/etc/init.d/drbd start   

以下两个命令可以查看启动状态:

  
  
  
  
  1. # cat /proc/drbd   
  2. # drbd-overview   

 

注意命令执行后可以看到“Secondary/Secondary”的关键字,此信息表示两个节点都处于secondary状态
设置节点web1的状态为primary:
  
  
  
  
  1. drbdsetup /dev/drbd0 primary –o   
而后再次查看状态,可以发现数据同步过程已经开始,等数据同步完成以后再次查看状态,可以发现节点已经实时状态,且节点已经有了主次
   
   
   
   
  1. # drbd-overview   

 

创建文件系统:
文件系统的挂载只能在Primary节点进行,因此,也只有在设置了主节点后才能对drbd设备进行格式化,在主节点进行格式化后就不需要在从节点再设置格式化了。
 
   
   
   
   
  1. mkfs.ext3 /dev/drbd0  
  2. mkdir /mnt/drbd 
  3. mount /dev/drbd0 /mnt/drbd 

 

DRBD主备节点切换:

1、先在主节点上卸载掉文件系统

2、把主节点设置为secondary

3、在从节点上设置为primary

4、在从节点上挂载文件系统

   
   
   
   
  1. umount /mnt/drbd                  #在主节点上执行 
  2. drbdsetup /dev/drbd0 secondary    #在主节点上执行 
  3.  
  4. drbdsetup /dev/drbd0 primary      #在从节点上执行 
  5. mount /dev/drbd0 primary          #在从节点上执行 
注:在重启之后DRBD的主从关系就会失效,我们可以在rc.local文件里面设置主从关系和挂载文件系统。
   
   
   
   
  1. drbdsetup /dev/drbd0 primary 
  2. mount /dev/drbd0 /mnt/drbd 
  3.    

 

 

你可能感兴趣的:(drbd)