我尝试在/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;
}
}
Run Code Online (Sandbox Code Playgroud)
创建元数据作品
# drbdadm create-md data
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
Run Code Online (Sandbox Code Playgroud)
但是附加操作失败
# 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
Run Code Online (Sandbox Code Playgroud)
错误消息确实听起来像命令期望分区表索引作为设备次要代码。
我应该如何将原始设备附加到 DRBD 资源?
drbdadm attach data
不是创建元数据后要使用的唯一命令。
以下过程之一应该适用于启动您的设备:
drbdadm create-md data
drbdadm up data
Run Code Online (Sandbox Code Playgroud)
- 或者 -
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
Run Code Online (Sandbox Code Playgroud)
完成此操作后,您将拥有一个连接状态为“已连接”且磁盘状态为“不一致/不一致”的设备;这将始终/只有在您在两个节点上创建全新的元数据后才会如此。
从那里,只需选择一个节点来提升到 Primary,这将导致 DRBD 从Primary => Secondary同步:
# drbdadm primary data --force
Run Code Online (Sandbox Code Playgroud)
从现在开始,您应该永远不会在正常情况下需要使用--force
来提升您的 DRBD 设备。
不过,你也说过:
由于这个磁盘是虚拟的,并且我使用的管理程序允许动态磁盘扩展,我不想在扩展我的 DRBD 文件系统时打扰 LVM 操作或重新分区
这可能不适用于 DRBD。DRBD 将它的元数据放在块设备的末尾,并在该元数据中跟踪块(和其他东西)的数量。动态扩展后备块设备可能会给您带来问题。
在 Debian DRBD 软件包的特殊情况下,不需要操作“附加数据”。
以下是在 Debian 上启动并运行 DRBD 的最小顺序:
/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
设备可用于任何常规块操作,例如blockdev
或mkfs
。
请小心触发清除位图操作,这会使辅助节点上的任何数据都无法恢复。顺便说一句,它对于初始设置来说非常方便,因为它可以防止辅助节点存储在几个小时内完全写入,强制虚拟化层在存储上分配块,这对于精简配置来说很烦人。
归档时间: |
|
查看次数: |
9693 次 |
最近记录: |