AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 804217
Accepted
Yves Martin
Yves Martin
Asked: 2016-09-21 04:55:05 +0800 CST2016-09-21 04:55:05 +0800 CST 2016-09-21 04:55:05 +0800 CST

原始磁盘块设备上的 DRBD

  • 772

我尝试在/dev/sdb没有分区表的原始磁盘设备上设置 DRBD,也没有 LVM 堆栈 PV/VG/LV

由于这个磁盘是虚拟的,并且我使用的管理程序允许动态磁盘扩展,我不想在扩展我的 DRBD 文件系统时为 LVM 操作或重新分区而烦恼

我的资源定义再简单不过了

resource data {
  device  /dev/drbd1;
  meta-disk internal;
  disk    /dev/sdb;
  on node1 {
    address 10.10.10.16:7789;
  }
  on node2 {
    address 10.10.10.17:7789;
  }
}

创建元数据作品

# drbdadm create-md data
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.

但附加操作失败

 # drbdadm attach data
 1: Failure: (127) Device minor not allocated
 additional info from kernel:
 unknown minor
 Command 'drbdsetup-84 attach 1 /dev/sdb /dev/sdb internal' terminated with exit code 10

错误消息听起来确实像命令期望分区表索引作为设备次要代码。

我应该如何将原始设备附加到 DRBD 资源?

drbd raw-disk
  • 2 2 个回答
  • 10908 Views

2 个回答

  • Voted
  1. Matt Kereczman
    2016-09-22T06:33:18+08:002016-09-22T06:33:18+08:00

    drbdadm attach data不是您在创建元数据后要使用的唯一命令。

    以下过程之一应该可以让您的设备启动:

    drbdadm create-md data
    drbdadm up data
    

    - 或者 -

    drbdadm create-md data
    drbdsetup-84 new-resource data
    drbdsetup-84 new-minor data 1 0 
    drbdmeta 1 v08 /dev/sdb internal apply-al 
    drbdsetup-84 attach 1 /dev/sdb /dev/sdb internal
    drbdsetup-84 connect data ipv4:10.10.10.16:7789 ipv4:10.10.10.17:7789 --protocol=C
    

    完成此操作后,您将拥有一个连接状态为“已连接”且磁盘状态为“不一致/不一致”的设备;这将始终/仅在您在两个节点上创建全新的元数据后才会出现。

    从那里,只需选择一个节点来提升到 Primary,这将导致 DRBD 从Primary => Secondary同步:

    # drbdadm primary data --force 
    

    在一般情况下你永远不应该使用--force从这里开始推广你的 DRBD 设备。

    但是,您也说过:

    由于这个磁盘是虚拟的,并且我使用的管理程序允许动态磁盘扩展,我不想在扩展我的 DRBD 文件系统时为 LVM 操作或重新分区而烦恼

    这可能不适用于 DRBD。DRBD 将它的元数据放在块设备的末尾,并且在该元数据中跟踪块(和其他事物)的数量。动态扩展后备块设备可能会给您带来问题。

    • 5
  2. Best Answer
    Yves Martin
    2016-12-07T06:58:36+08:002016-12-07T06:58:36+08:00

    在 Debian DRBD 包的非常特殊的情况下,不需要操作“附加数据”。

    这是让 DRBD 启动并在 Debian 上运行的最小顺序:

    • /etc/drbd.d/data.res在两个节点上创建资源文件,通常用于定义/dev/drbd1(提醒此卷号1以进行清除位图操作!)
    • drbdadm create-md data在两个节点上调用
    • 在两个节点上启动服务,他们应该等待对方准备好:systemctl start drbd.service
    • 用确认Connected状态drbdadm cstate data。如果没有,请在解决任何服务启动或网络连接问题之前不要进一步。
    • 仅在primary节点上,清除位图以防止无用的初始同步:(drbdadm -- --clear-bitmap new-current-uuid data/1注意最后一个参数resourceName/volumeNumber:)
    • 仅在primary节点上,将节点提升为primary:drbdadm primary data

    从那时起,在primary节点上,/dev/drbd1设备可用于任何常规块操作,例如blockdevor mkfs。

    小心触发清除位图操作,它使辅助节点上的任何数据都无法恢复。顺便说一句,初始设置非常方便,因为它可以防止您的辅助节点存储在数小时内完全写入,强制您的虚拟化层在存储上分配块,这对于精简配置来说很烦人。

    • 2

相关问题

  • CentOS 5.3 64 位、XEN 和 DRBD

  • DRBD 代理/WAN 体验

  • 由于 MySQL DRBD Heartbeat 故障转移脚本导致的数据丢失

  • 在我们的案例中,添加额外服务器以提高可靠性的更好方法是什么?

  • 虚拟机上的 DRBD / 心跳

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve