zoukankan      html  css  js  c++  java
  • DRBD 实现数据备份的高可用性

    以下文章转载自http://goplay.blog.51cto.com/3237944/664560

    实验说明:

    1、通过drbd提供数据的冗余备份功能

    2、通过两台虚拟机模拟测试

    image

    实验配置

    一、配置ip和主机名

    1、配置ip #vim /etc/sysconfig/network-scripts/ifcfg-eth0

    image

    重启网络配置 #service network restart

    查看

    image

    2、配置主机名

    #vim /etc/hosts 使用hosts文件做dns地址解析

    image

    #vim /etc/sysconfig/network

    image

    #hostname test1.a.org

    测试配置结果 #uname –n

    image

    test2.a.org 配置相同

    二、ssh 配置(为方便远程管理,以后不用每次都输密码)

    #ssh-keygen –t rsa

    #ssh-copy-id –i ~/.ssh/id_rsa.pub root@test2

    image

    三、分区

    #fdisk /dev/sda

    image

    image

    #partprobe 重读分区表

    四、安装DRBD软件

    目前在用的drbd版本主要有8.0、8.2和8.3三个版本,其对应的rpm包的名字分别为drbd,

    drbd82和drbd83,对应的内核模块的名字分别为kmod-drbd, kmod-drbd82和kmod-drbd83。

    各版本的功能和配置等略有差异;我们实验所用的平台为x86且系统为rhel5.4,因此需要同时安装

    内核模块和管理工具。我们这里选用最新的8.3的版本(drbd83-8.3.8-1.el5.centos.i386.rpm和

    kmod-drbd83-8.3.8-1.el5.centos.i686.rpm),

    下载地址为:http://mirrors.sohu.com/centos/5.6/extras/i386/RPMS/。

    1、下载完成后直接安装即可:
    # yum -y --nogpgcheck localinstall drbd83-8.3.8-1.el5.centos.i386.rpm

    kmod-drbd83-8.3.8-1.el5.centos.i686.rpm

    2、配置

    drbd的主配置文件为/etc/drbd.conf;为了管理的便捷性,目前通常会将些配置文件分成多个部分,

    且都保存至/etc/drbd.d目录中,主配置文件中仅使用"include"指令将这些配置文件片断整合起来。

    通常,/etc/drbd.d目录中的配置文件为global_common.conf和所有以.res结尾的文件。

    其中global_common.conf中主要定义global段和common段,而每一个.res的文件用于定义一个资源。

    1)复制样例配置文件为即将使用的配置文件:
    # cp /usr/share/doc/drbd83-8.3.8/drbd.conf /etc

    2)配置/etc/drbd.d/global-common.conf (记得备份配置文件)
    global {
    usage-count no;
    # minor-count dialog-refresh disable-ip-verification
    }

    common {
    protocol C;

    startup {
    wfc-timeout 120;
    degr-wfc-timeout 120;
    }

    disk {
    on-io-error detach;
    fencing resource-only;
    }

    net {
    cram-hmac-alg "sha1";
    shared-secret "mydrbdlab";
    }

    syncer {
    rate 200M;
    }
    }

    3、定义资源/etc/drbd.d/webserver.res,内容如下:

    resource webserver {
    on test1.a.org {
    device /dev/drbd0;
    disk /dev/sda6;
    address 10.0.0.143:7789;
    meta-disk internal;
    }
    on test2.a.org {
    device /dev/drbd0;
    disk /dev/sda6;
    address 10.0.0.144:7789;
    meta-disk internal;
    }
    }

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

    1)scp配置文件到另一个节点上

    image

    2)初始化资源,在test1和test2上分别执行:
    # drbdadm create-md webserver

    image

    3)启动服务,在test1和test2上分别执行:
    /etc/init.d/drbd start

    4)查看启动状态
    # cat /proc/drbd

    test1 #此时都是Secondary/Secondary

    image

    test2

    image

    从上面的信息中可以看出此时两个节点均处于Secondary状态。于是,我们接下来需要将

    其中一个节点设置为Primary。在要设置为Primary的节点上执行如下命令:

    # drbdsetup /dev/drbd0 primary –o (只有在第一次时这样使用)

    或# drbdadm -- --overwrite-data-of-peer primary web

    image

    test1 的状态已经变成Primary/Secondary

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

    5、格式化、并挂载使用/dev/drbd0

    #mke2fs –j -L drbd /dev/drbd0

    #mkdir /drbd

    #mount /dev/drbd0 /drbd

    查看#mount

    image

    #cd /drbd

    #touch test.txt (测试使用)

    #echo "test for drbd" > test.txt

    6、主从交换,查看里边的内容

    test1

    #umount /drbd (要先卸载)

    #drbdadm secondary webserver

    查看状态

    image

    test2

    #drbdadm primary webserver

    #cat /proc/drbd

    image

    #mkdir /drbd

    #mount /dev/drbd0 /drbd

    #cd /drdb

    #ls

    结果

    image

    umount 的时候报错:device is busy

    http://liuyu.blog.51cto.com/183345/64044

  • 相关阅读:
    8.20 附加赛3
    8.22 附加赛4
    Codeforces Round #505 (Div 1 + Div 2) (A~D)
    8.9 附加赛2
    8.10 正睿暑期集训营 Day7
    8.9 正睿暑期集训营 Day6
    8.8 正睿暑期集训营 Day5
    8.7 正睿暑期集训营 Day4
    8.6 正睿暑期集训营 Day3
    8.5 正睿暑期集训营 Day2
  • 原文地址:https://www.cnblogs.com/google4y/p/2202326.html
Copyright © 2011-2022 走看看