• 在Linux上配置DRBD部署


    drbd 工作原理
    DRBD是一种块设备,能够被用于高可用(HA)之中.它相似于一个网络RAID-1功能.当你将数据写入本地 文件系统时,数据还将会被发送到网络中还有一台主机上.以同样的形式记录在一个文件系统中。

    本地(主节点)与远程主机(备节点)的数据能够保证实时同步.当本地系统出现问题时,远程主机上还会 保留有一份同样的数据,能够继续使用.在高可用(HA)中使用DRBD功能,能够取代使用一个共享盘阵.
    由于数据同一时候存在于本地主机和远程主机上,切换时,远程主机仅仅要使用它上面的那份备份数据,
    就能够继续进行服务了。
    两台机器的环境例如以下:
    hostname:srv5.localdomain
    192.168.8.5
    hostname:srv6.localdomain
    192.168.8.6

    准备环境

    在两台机器上各新加一块磁盘
    fdisk -l 列出全部的磁盘和分区的情况
    在实验中能够看到新加的磁盘还没有分区
    Disk /dev/sdb: 1073 MB, 1073741824 bytes
    255 heads, 63 sectors/track, 130 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    对新加的磁盘分区
    [root@srv5 ~]# fdisk /dev/sdb

    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    e
    Partition number (1-4): 1
    First cylinder (1-130, default 1):
    Using default value 1
    Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
    Using default value 130

    Command (m for help): n
    Command action
       l   logical (5 or over)
       p   primary partition (1-4)
    l
    First cylinder (1-130, default 1):
    Using default value 1
    Last cylinder or +size or +sizeM or +sizeK (1-130, default 130):
    Using default value 130

    Command (m for help): w
    The partition table has been altered!

    Calling ioctl() to re-read partition table.
    Syncing disks.
    载入磁盘信息
    partprobe /dev/sdb
    cat /proc/partions

    安装和配置DRBD

    1。两台机器上分别安装drbd
    yum -y install kmod-drbd83 drbd83
    检查是否成功安装
    [root@srv5 yum.repos.d]# modprobe -l | grep -i drbd
    /lib/modules/2.6.18-53.el5/weak-updates/drbd83/drbd.ko
    安装完毕后再/sbin 文件夹下有drbd的命令文件。 在/etc/init.d/文件夹下有drbd启动脚本
    [root@srv5 yum.repos.d]# ls /sbin/drbd*
    /sbin/drbdadm  /sbin/drbdmeta  /sbin/drbdsetup

    2,配置drbd
    2.1,在两台机器的hosts文件里加入例如以下的内容:
    192.168.8.5 srv5.localdomain
    192.168.8.6 srv6.localdomain

    2.2,DRBD运行的时候要读取/etc/drbd.conf文件,
    将文件的内容保存为例如以下内容:
    include "drbd.d/global_common.conf";
    include "drbd.d/*.res";

    改动global_common.conf文件内容例如以下:

    global {
    	usage-count no;
    }
    common {
    	protocol C;
    	startup {
    		wfc-timeout 15;  
    		degr-wfc-timeout 15;  
    		outdated-wfc-timeout 15;  
    	}
    	disk {
    		on-io-error detach;  
    		fencing resource-only;  
    	}
    	net {
    		cram-hmac-alg sha1;  
    		shared-secret "123456";   
    	}
    	syncer {
    		rate 100M;  
    	}
    }
    创建一个xserver.res文件内容例如以下:
    resource xserver {   
    	meta-disk internal;   
    	device /dev/drbd0; #device指定的參数最后必须有一个数字,用于global的minor-count,
    	#否则会报错。device指定drbd应用层设备。 
    	on srv5.localdomain{    #注意:drbd配置文件里。机器名大写和小写敏感。
    		address 192.168.8.5:7789;   
    		disk /dev/sdb5;    
    	}   
    	on srv6.localdomain {   
    		address 192.168.8.6:7789;   
    		disk /dev/sdb5;  
    	}   
    }


    2.3,如果上面的配置是在92.168.8.5上做的。拷贝上面配置好的3个文件到92.168.8.6上
    scp /etc/drbd.conf 192.168.8.6:/etc/drbd.conf
    scp /etc/drbd.d/* 192.168.8.6:/etc/drbd.d/

    3,在两台机器上创建drbd元数据信息:
    [root@srv5 ~]# drbdadm create-md all
    Writing meta data...
    initializing activity log
    NOT initialized bitmap
    New drbd meta data block successfully created.

    4。启动服务。
    4.1,在主节点92.168.8.5上
    service drbd start
    在备份节点92.168.8.6上
    service drbd start
    在两台机器上用以下的命令drbd-overview或者cat /proc/drbd查看,发现都是Secondary 备份状态
    [root@srv5 ~]# drbd-overview
      0:xserver  Connected Secondary/Secondary Inconsistent/Inconsistent C r-----
    [root@srv6 ~]# cat /proc/drbd
    version: 8.3.15 (api:88/proto:86-97)
    GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by mockbuild@builder17.centos.org, 2013-03-27 16:04:08
     0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent 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:1044092

    4.2,在主节点92.168.8.5上运行以下的命令让其成为主节点
    drbdadm -- --overwrite-data-of-peer primary all
    然后再看状态:
    [root@srv5 ~]# drbd-overview
      0:xserver  SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
            [=============>......] sync'ed: 70.6% (310268/1044092)K
    [root@srv5 ~]# drbd-overview
      0:xserver  SyncSource Primary/Secondary UpToDate/Inconsistent C r---n-
            [================>...] sync'ed: 89.1% (117372/1044092)K
    [root@srv5 ~]# drbd-overview
      0:xserver  Connected Primary/Secondary UpToDate/UpToDate C r-----

    4.3,将/dev/drbd0格式化并挂载
    在主节点192.168.8.5上运行以下的命令
    mkfs.ext3 /dev/drbd0
    mkdir /xserver-storage
    mount /dev/drbd0 /xserver-storage
    4.4,測试同步
    在主节点192.168.8.5上运行以下的命令
    cd /xserver-storage
    echo "a file created in server5" > testfile
    在备份节点192.168.8.6上运行以下的命令
    mkdir /xserver-storage
    mount /dev/drbd0 /xserver-storage
    #mount 会出错,由于mount仅仅能在Primary一端使用
    在主节点192.168.8.5上运行以下的命令变成备份节点
    umount /xserver-storage
    drbdadm secondary all
    在备份节点192.168.8.6上运行以下的命令变为主节点,能够看到192.168.8.5同步过来的内容
    drbdadm primary all
    mount /dev/drbd0 /xserver-storage
    less /xserver-storage/testfile
    能够查看到文件的内容为"a file created in server5"
    在192.168.8.6新建一个文件
    echo "a file created in server6" > testfile2
    再将192.168.8.5变为主节点后mount能够看到testfile2的内容也同步了。

  • 相关阅读:
    [编译原理读书笔记][第3章 词法分析]
    [编译原理读书笔记][第2章 一个简单的语法制导程序
    [编译原理读书笔记][第一章 引论]
    [Python爬虫笔记][随意找个博客入门(一)]
    大二下学习总结
    [操作系统][简单文件系统实现]
    Hadoop综合大作业
    hive基本操作与应用
    理解MapReduce计算构架
    熟悉HBase基本操作
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6917257.html
Copyright © 2020-2023  润新知