drdb 安装配置

DRBD 安装及配置


DRBD主:10.1.1.5

DRBD备:10.1.1.6


1.下载源码包:

   地址:www.drbd.org


2.安装:

2.1 安装依赖:

  yum install kernel-devel kernel-headers


2.2.编译安装

  tar -zxf drbd-8.3.16.tar.gz 

  ./configure --prefix=/usr/local/drbd --with-km

  make && make install


2.3 拷贝配置文件模板

   mv /usr/local/drbd/etc/drbd.conf /usr/local/drbd/drbd.conf.old

   cp /tmp/soft/drbd-8.3.16/scripts/drbd.conf.exampl /usr/local/drbd/etc/drbd.conf


2.4 设置链接

   ln -s /usr/local/drbd/etc/drbd.conf /etc/drbd.conf

   ln -s /usr/local/drbd/etc/rc.d/init.d/drbd /etc/init.d/drbd


3.DRBD 配置文件(主备配置完全一致):

3.1 配置文件解析:

# vi /etc/drbd.conf 

global {


    usage-count no;  #是否加入DRBD 使用统计


}


common {


  syncer { rate 200M; }  #设置传输速率


}


#resource r0 设置资源名称

resource r0 { 


  protocol C;  #设置协议C,写入完成才认为同步完成,最安全。


  handlers {


    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";

    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";

    local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";

    fence-peer "/usr/lib/heartbeat/drbd-peer-outdater -t 5";

    pri-lost "/usr/lib/drbd/notify-pri-lost.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";

    split-brain "/usr/lib/drbd/notify-split-brain.sh root";

    out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";


  }


  startup {


    degr-wfc-timeout 120;   #超时时间 120秒

    outdated-wfc-timeout 2; #超时时间 2分钟


  }


  disk {


    on-io-error   detach;

    fencing resource-only;

    #使用dpod 功能,(drbd outdate-peer daemon)保证数据不同步时不进行切换


  }


  net {


    cram-hmac-alg "sha1";  #使用的加密方式

    shared-secret "ckl893";#使用加密密码


  }


  on ckl-bd1 {  #设置主机名称


    device     /dev/drbd0;        #DRBD名称

    disk       /dev/sda5;         #共享的磁盘分区

    address    10.1.1.5:7788;     #主机地址

    flexible-meta-disk  internal; #DRBD 元数据存放方式


  }


  on ckl-bd2 {


    device    /dev/drbd0;

    disk      /dev/sda5;

    address   10.1.1.6:7788;

    meta-disk internal;


  }

}


3.2 创建DRBD数据块

在启动DRBD之前,你需要分别在两台主机的分区上,创建供DRBD记录信息的数据块.分别在两台主机上执行: 

# drbdadm create-md r0 或者执行drbdadm create-md all

# drbdadm create-md r0

md_offset 40275800064

al_offset 40275767296

bm_offset 40274534400


Found ext3 filesystem

    39331840 kB data area apparently used

    39330600 kB left usable by current configuration


Device size would be truncated, which

would corrupt data and result in

'access beyond end of device' errors.

You need to either

   * use external meta data (recommended)

   * shrink that filesystem first

   * zero out the device (destroy the filesystem)

Operation refused.


Command 'drbdmeta 0 v08 /dev/sda5 internal create-md' terminated with exit code 40

drbdadm create-md r0: exited with code 40


报错:drbdadm create-md r0: exited with code 40

解决办法:初始化磁盘文件格式, dd if=/dev/zero bs=1M count=1 of=/dev/sdXYZ; sync


在1.5 和 1.6 上分别执行

#dd if=/dev/zero bs=1M count=1 of=/dev/sda5;sync

#drbdadm create-md r0

Writing meta data...

initializing activity log

NOT initialized bitmap

New drbd meta data block successfully created.


4.启动服务

4.1 启动:

# /etc/init.d/drbd start

Starting DRBD resources: [ d(r0) 0: Failure: (104) Can not open backing device.


[r0] cmd /sbin/drbdsetup 0 disk /dev/sda5 /dev/sda5 internal --set-defaults --create-device --on-io-error=detach --fencing=resource-only  failed - continuing!

 

s(r0) n(r0) ]..........

***************************************************************

 DRBD's startup script waits for the peer node(s) to appear.

 - In case this node was already a degraded cluster before the

   reboot the timeout is 120 seconds. [degr-wfc-timeout]

 - If the peer was available before the reboot the timeout will

   expire after 0 seconds. [wfc-timeout]

   (These values are for resource 'r0'; 0 sec -> wait forever)

 To abort waiting enter 'yes' [  17]:yes


 启动报错:Starting DRBD resources: [ d(r0) 0: Failure: (104) Can not open backing device

 解决办法:我们挂载了/data 分区,必须卸载

 #umount /data


再次启动:

# /etc/init.d/drdb start

Starting DRBD resources: [ d(r0) s(r0) n(r0) ]..........

***************************************************************

 DRBD's startup script waits for the peer node(s) to appear.

 - In case this node was already a degraded cluster before the

   reboot the timeout is 120 seconds. [degr-wfc-timeout]

 - If the peer was available before the reboot the timeout will

   expire after 0 seconds. [wfc-timeout]

   (These values are for resource 'r0'; 0 sec -> wait forever)

 To abort waiting enter 'yes' [  15]:yes



5.DRBD 信息说明

# cat /proc/drbd 

version: 8.3.16 (api:88/proto:86-97)

GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by root@ckl-bd1, 2014-05-01 18:12:33

 0: cs:WFConnection ro:Secondary/Unknown ds:Diskless/DUnknown C r-----

    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

 cs 表示连接状态

 ro 表示角色信息,第一次启动drbd时,两个drbd节点默认都处于Secondary状态

 ds 磁盘状态信息“Inconsistent/Inconsisten”,即为“不一致/不一致”状态,表示两个节点的磁盘数据处于不一致状态。

 ns表示网络发送的数据包信息

 nr 网络接收的数据包

 dw 磁盘写信息

 dr 磁盘读信息


 6.设置主节点:

 #drbdsetup /dev/drbd1 primary �Co

   或者执行下面命令:

 #drbdadm -- --overwrite-data-of-peer primary all

  第一次执行完此命令后,在后面如果需要设置哪个是主节点时,就可以使用另外一个命令:

  #/sbin/drbdadm primary r0或者/sbin/drbdadm primary all



# drbdsetup /dev/drbd0 primary -o

再次查看信息(主):

# cat /proc/drbd 

version: 8.3.16 (api:88/proto:86-97)

GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by root@ckl-bd1, 2014-05-01 18:12:33

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

    ns:394240 nr:0 dw:0 dr:394904 al:0 bm:22 lo:0 pe:62 ua:0 ap:0 ep:1 wo:f oos:38944296

        [>....................] sync'ed:  1.0% (38028/38408)M

        finish: 0:42:03 speed: 15,420 (15,452) K/sec



ro:Primary/Secondary 变为主节点

ds:UpToDate/Inconsistent 不同步状态,现在还在同步中


等待一段时间,同步完成:

# cat /proc/drbd 

version: 8.3.16 (api:88/proto:86-97)

GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by root@ckl-bd1, 2014-05-01 18:12:33

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

    ns:39330600 nr:0 dw:0 dr:39331264 al:0 bm:2339 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0


cs:Connected 状态连接

ds:UpToDate/UpToDate 磁盘状态,一致


7.格式化DRBD

在主格式化DRBD,格式化操作只需要执行一次

# mkfs.ext4 /dev/drbd0 

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

2460976 inodes, 9832650 blocks

491632 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=4294967296

301 block groups

32768 blocks per group, 32768 fragments per group

8176 inodes per group

Superblock backups stored on blocks: 

        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 

        4096000, 7962624


Writing inode tables: done                            

Creating journal (32768 blocks): done

Writing superblocks and filesystem accounting information: done


This filesystem will be automatically checked every 29 mounts or

180 days, whichever comes first.  Use tune2fs -c or -i to override.


挂载DRBD:

# mount /dev/drbd0 /mnt

# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2              20G  1.3G   18G   7% /

tmpfs                 499M     0  499M   0% /dev/shm

/dev/sda1             485M   33M  428M   8% /boot

/dev/drbd0             37G  176M   35G   1% /mnt


8.验证数据同步:

8.1 主节点上创建文件:

# ls

lost+found  nihao


查看文件内容:

# cat nihao 

ni hao drbd


8.2 主节点停止DRBD 服务:

# /etc/init.d/drdb stop

Stopping all DRBD resources: 

.


查看分区已经被自动卸载:

# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2              20G  1.3G   18G   7% /

tmpfs                 499M     0  499M   0% /dev/shm

/dev/sda1             485M   33M  428M   8% /boot


8.3. 备用节点执行:

# drbdsetup /dev/drbd0 primary -o

# mount /dev/drbd0 /mnt

# cd /mnt/

# ls

lost+found  nihao

查看文件内容:

# cat nihao 

ni hao drbd



#查看信息

# cat /proc/drbd 

version: 8.3.16 (api:88/proto:86-97)

GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by root@ckl-bd2, 2014-05-01 18:13:20

 0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/Outdated C r-----

    ns:0 nr:40081660 dw:40081664 dr:1029 al:1 bm:2338 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:4

cs:WFConnection 状态不可连接

ro:Primary/Unknown 磁盘信息unknown


在1.5 启动服务:

# /etc/init.d/drdb start

Starting DRBD resources: [ d(r0) s(r0) n(r0) ].


在1.6 查看信息:

# cat /proc/drbd 

version: 8.3.16 (api:88/proto:86-97)

GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by root@ckl-bd2, 2014-05-01 18:13:20

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

    ns:4 nr:40081660 dw:40081664 dr:1033 al:1 bm:2339 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0



9.第二种方式

现在1.6是主,在1.6上执行:

卸载分区:# umount /mnt

执行主节点转换为备节点命令:#drbdadm secondary all


在1.5上执行:

#drbdadm primary all

# mount /dev/drbd0 /mnt


你可能感兴趣的:(drbd)