zoukankan      html  css  js  c++  java
  • drbd

    1、DRBD安装

    1.1、安装依赖包:

    1. yum -y install gcc kernel-devel kernel-headers flex  


    下载安装drbd源码包:

    1. wget http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz  
    2. tar xzf drbd-8.4.1.tar.gz  
    3. cd drbd-8.4.1  
    4. ./configure --prefix=/usr/local/drbd --with-km  
    5. make KDIR=/usr/src/kernels/2.6.32-220.17.1.el6.x86_64/  
    6. make install  
    7. mkdir -p /usr/local/drbd/var/run/drbd  
    8. cp /usr/local/drbd/etc/rc.d/init.d/drbd /etc/rc.d/init.d  
    9. chkconfig --add drbd  
    10. chkconfig drbd on  

    KDIR=中指定的系统内核源码路径,根据实际情况设置

    1.2、安装drbd模块:

    1. cd drbd  
    2. make clean  
    3. make KDIR=/usr/src/kernels/2.6.32-220.17.1.el6.x86_64/  
    4. cp drbd.ko /lib/modules/`uname -r`/kernel/lib/  
    5. depmod  

     

    2、DRBD配置

    首先对/dev/sda设备分区/dev/sda3(这一步我是在装系统时就分区了),在根目录下建立/drbdData文件夹,名字自定义,供后面挂载/dev/sda3分区设备用。

    2.1、配置global_common.conf

    编辑全局配置:
    1. vi /usr/local/drbd/etc/drbd.d/global_common.conf  


    确保文件中包含有下内容:

    1. global {  
    2.   usage-count yes;  
    3. }  
    4. common {  
    5.   net {  
    6.     protocol C;  
    7.   }  
    8. }  

    当然,还可以有其它配置,这是最基本的。

     

    2.2、配置r0资源:

    创建r0资源:
    1. vi /usr/local/drbd/etc/drbd.d/r0.res  


    写入文件内容:

    1. resource r0{  
    2.         on masterNode{  
    3.                 device          /dev/drbd1; #逻辑设备的路径  
    4.                 disk            /dev/sda3;  #物理设备  
    5.                 address         192.168.58.128:7788;  
    6.                 meta-disk       internal;  
    7.         }  
    8.         on backupNode{  
    9.                 device          /dev/drbd1;  
    10.                 disk            /dev/sda3;  
    11.                 address         192.168.58.129:7788;  
    12.                 meta-disk       internal;  
    13.         }  
    14. }  

    需要把上面用到的防火墙7788端口打开,这个端口是自定义的,如果嫌麻烦可以直接关掉防火墙。

    说明:

    device 是自定义的物理设备的逻辑路径

    disk       是磁盘设备,或者是逻辑分区

    address   是机器监听地址和端口

    meta-disk   这个还没弄明白,看到的资料都是设为:internal

     

    2.3、建立resource

    1. modprobe drbd                               //载入 drbd 模块  
    2. lsmod | grep drbd                                            //确认 drbd 模块是否载入  
    3. dd if=/dev/zero of=/dev/sda3 bs=1M count=100    //把一些资料塞到 sda3 內 (否则 create-md 时会报错)  
    4. drbdadm create-md r0                                     //建立 drbd resource  
    5. drbdadm up r0     


    我遇到的问题:

    1. [root@backupNode /]# drbdadm up r0  
    2. 1: Failure: (104) Can not open backing device.  
    3. Command 'drbdsetup attach 1 /dev/sda3 /dev/sda3 internal' terminated with exit code   


    原因是我之前已经挂在了/dev/sda3,需要先卸载/dev/sda3设备,解决办法:

    1. umount /dev/sda3  

    问题解决。

     

    注:以上每一步骤,都需要在主备服务器上进行配置设置。

     

    2.4、设置Primary Node

    将masterNode设为主服务器(primary node),在masterNode上执行:

    1. drbdadm primary --force r0  


    查看drbd状态:

    1. [root@backupNode /]# cat /proc/drbd  
    2. version: 8.4.1 (api:1/proto:86-100)  
    3. GIT-hash: 91b4c048c1a0e06777b5f65d312b38d47abaea80 build by root@masterNode2012-05-27 18:34:27  
    4.   
    5.  1: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----  
    6.     ns:4 nr:9504584 dw:9504588 dr:1017 al:1 bm:576 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0  

    已经变成了主服务器。


    2.5、创建DRBD文件系统

    上面已经完成了/dev/drbd1的初始化,现在来把/dev/drbd1格式化成ext4格式的文件系统,在masterNode上执行:

    1. [root@masterNode /]# mkfs.ext4 /dev/drbd1  

    输出:

    1. mke2fs 1.41.12 (17-May-2010)  
    2. 文件系统标签=  
    3. 操作系统:Linux  
    4. 块大小=4096 (log=2)  
    5. 分块大小=4096 (log=2)  
    6. Stride=0 blocks, Stripe width=0 blocks  
    7. 589824 inodes, 2358959 blocks  
    8. 117947 blocks (5.00%) reserved for the super user  
    9. 第一个数据块=0  
    10. Maximum filesystem blocks=2415919104  
    11. 72 block groups  
    12. 32768 blocks per group, 32768 fragments per group  
    13. 8192 inodes per group  
    14. Superblock backups stored on blocks:  
    15.         32768983041638402293762949128192008847361605632  
    16.   
    17. 正在写入inode表: 完成  
    18. Creating journal (32768 blocks): 完成  
    19. Writing superblocks and filesystem accounting information: 完成  
    20.   
    21. This filesystem will be automatically checked every 21 mounts or  
    22. 180 days, whichever comes first.  Use tune2fs -c or -i to override.  


    然后,将/dev/drbd1挂载到之前创建好的/drbdData目录:

    1. [root@masterNode /]# mount /dev/drbd1 /drbdData  


    现在只要把数据写入/drbdData目录,drbd即会立刻把数据同步到backupNode的/dev/sda3分区上了。

    2.6、DRBD同步测试

    1、首先,在主服务器上先将设备卸载,同时将主服务器降为备用服务器:

    1. [root@masterNode /]# umount /dev/drbd1  
    2. [root@masterNode /]# drbdadm secondary r0  


    2、然后,登录备用服务器,将备用服务器升为主服务器,同时挂载drbd1设备到 /drbdData目录:

    1. [root@masterNode /]# ssh backupnode  
    2. Last login: Sun May 27 19:57:17 2012 from masternode  
    3. [root@backupNode ~]# drbdadm primary r0  
    4. [root@backupNode ~]# mount /dev/drbd1 /drbdData/  

    3、最后,进入/drbdData目录,就可以看到之前在另外一台机器上放入的数据了,如果没有看到,说明同步失败!

  • 相关阅读:
    基于JFinal中搭建wopi协议支撑办法
    mysql 增加列
    国王分金币
    口算题卡升级版本
    elasticsearch牛人的日志列表
    牛B的大数据库
    golang --rune
    golang ---rune与byte
    golang学习笔记--接口
    golang学习笔记--函数和方法
  • 原文地址:https://www.cnblogs.com/xianqingzh/p/3459012.html
Copyright © 2011-2022 走看看