资讯专栏INFORMATION COLUMN

运维 在Linux上部署DRBD

Jiavan / 612人阅读

摘要:以相同的形式记录在一个文件系统中。本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用。上格式化并挂载进行测试上执行此处并没有格式化。注同时只能有一个主设备,只有主设备可以进行操作等。上执行将设备设为主设备得到目录。

drbd 工作原理

DRBD是一种块设备,可以被用于高可用(HA)之中。它类似于一个网络RAID-1功能。

当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上。以相同的形式记录在一个文件系统中。本地(主节点)与远程主机(备节点)的数据可以保证实时同步。本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用。在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵。

因为数据同时存在于本地主机和远程主机上,切换时,远程主机只要使用它上面的那份备份数据。

简而言之,基本功能相当于一个网络raid1,也有很多特殊功能。

本文的目的是入门。

drbd 配置 准备工作

两台服务器如下:

192.168.11.128  ubuntu1
192.168.11.129  ubuntu2

每台服务器准备一个20G的分区。
因为用到的只是最简单的功能raid1,所以需要每台服务器的磁盘大小相同。

安装drbd
ubuntu系列软件包名为drbd8-utils。

开始配置

两台主机分别写hosts

192.168.11.128  ubuntu1
192.168.11.129  ubuntu2

drbd运行时所需要的配置文件是

include "drbd.d/global_common.conf";
include "drbd.d/*.res";

其中:
global_common.conf是全局配置,
*.res是单个的磁盘配置。

最简单的global_common.conf配置:

global {
        usage-count no;
}
common {
        net {
                protocol C;
        }
}

user-count指的是给drbd官方使用drbd的用户总数统计。
protocol C指的是复制磁盘时所使用的协议,可以参考使用协议,最常用的是C协议。

*.res配置
一个最简单的示例sdb.res如下:

resource sdb {
  on ubuntu1 {
    device    /dev/drbd1;#虚拟出的设备
    disk      /dev/sdb1;#原设备
    address   192.168.11.128:7789;
    meta-disk internal;
  }
  on ubuntu2 {
    device    /dev/drbd1;
    disk      /dev/sdb1;
    address   192.168.11.129:7789;
    meta-disk internal;
  }
}

功能:节点ubuntu1和节点ubuntu2上都将/dev/sdb1虚拟为drbd设备,访问设备需要用/dev/drbd1,而不是用/dev/sdb1

启动

5.1 两台机器使用相同的global_common.confsdb.res

5.2 分别执行drbdadm create-md all

5.3 分别启动/etc/init.d/drbd start

启动过程中,先启动的那一台会等待后一台的启动。

5.4 查询启动状态:drbd-overview

5.5 将ubuntu1的设备设为主设备:ubuntu1上执行drbdadm -- --overwrite-data-of-peer primary all,多个设备时,将ubuntu1的设备sdb设为主设备:drbdadm -- --overwrite-data-of-peer primary sdb

ubuntu1上格式化并挂载进行测试:

6.1 ubuntu1上执行

mkfs.reiserfs /dev/drbd1 #此处并没有格式化ubuntu2。
mkdir /tmp/drbd1
mount /dev/drbd1 /tmp/drbd1
cd /tmp/drbd1 
git clone https://github.com/phpsysinfo/phpsysinfo
drbdadm secondary sdb#将sdb设备设为从设备,同时只能有一个主设备。

注:同时只能有一个主设备,只有主设备可以进行mount操作等。

6.2 ubuntu2上执行

drbdadm primary sdb#将sdb设备设为主设备
mkdir /tmp/drbd1
mount /dev/drbd1 /tmp/drbd1
cd /tmp/drbd1 
ls

得到phpsysinfo目录。

至此,drbd的基本用法网络raid1完成。


更高级的用法、完全文档可以参考:

The DRBD User’s Guide

DRBD 中文应用指南

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/7892.html

相关文章

发表评论

0条评论

最新活动
阅读需要支付1元查看
<