首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带外部元磁盘的DRBD

带外部元磁盘的DRBD
EN

Server Fault用户
提问于 2022-01-27 03:23:42
回答 2查看 538关注 0票数 0

我正在尝试用DRBD创建一个故障转移,并且我有两个分区。

分区1) /dev/sda4 4是为我将要创建的KVM设置的。分区2) /dev/sda5 5用于DRBD元数据

我的配置文件在下面

代码语言:javascript
复制
resource r0 {
    protocol C;
    startup {
            wfc-timeout  15;
            degr-wfc-timeout 60;
    }
    net {
            cram-hmac-alg sha1;
            shared-secret "SECRET_KEY";
    }
    on Server1{
            device /dev/drbd0;
            disk /dev/sda4;
            address IP:7788;
            meta-disk /dev/sda5;
    }
    on Server2{
            device /dev/drbd0;
            disk /dev/sda4;
            address IP:7788;
            meta-disk /dev/sda5;
    }

}

当我运行drbdadm md r0时,它成功地运行,但是它在两个分区上都创建了/dev/drbd0 0。

代码语言:javascript
复制
    ├─sda4      8:4    0  7.2T  0 part
    │ └─drbd0 147:0    0  7.2T  1 disk
    └─sda5      8:5    0  399M  0 part
      └─drbd0 147:0    0  7.2T  1 disk

据我理解,它只应该在/dev/sda5 5的元磁盘上创建它。我设置元磁盘的原因是为了避免写入sda4。我的推理是正确的还是我遗漏了什么。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2022-01-31 10:12:48

终于弄明白了。通过将卷组放在DRBD0之上,一切都开始工作了。

我在设备上创建卷组时遇到了问题,必须向lvm.conf添加筛选器。

我有个错误说

代码语言:javascript
复制
Cannot use device /dev/drbd/ with duplicates

我刚把这个添加到设备部分

代码语言:javascript
复制
filter = [ "r|/dev/sda4|", "r|/dev/disk/|", "r|/dev/block/|", "a/.*/" ]

现在一切都很好

票数 -1
EN

Server Fault用户

发布于 2022-01-28 04:34:14

我证实了这就是在lsblk 8.5上使用外部元数据时AlmaLinux输出的样子。DRBD设备仅仅是一个虚拟块设备,在您安装的两个分区上都是分层的。

它如预期的那样工作。如果使用其他方法/实用程序检查块设备,您将看到只有一个/dev/drbd0,并且您创建的元数据分区是您所期望的大小。

例如,我的配置使用两个LVM卷:

代码语言:javascript
复制
resource r0 {
    protocol C;
    startup {
            wfc-timeout  15;
            degr-wfc-timeout 60;
    }
    net {
            cram-hmac-alg sha1;
            shared-secret "SECRET_KEY";
    }
    on Server1{
            device /dev/drbd0;
            disk /dev/drbdpool/data;      # 1GiB lvm on /dev/sdb
            meta-disk /dev/drbdpool/meta; # 4MiB lvm on /dev/sdb
            192.168.1.11:7788;
    }
    on Server2{
            device /dev/drbd0;
            disk /dev/drbdpool/data;      # 1GiB lvm on /dev/sdb
            meta-disk /dev/drbdpool/meta; # 4MiB lvm on /dev/sdb
            192.168.1.12:7788;
    }

正如我在/proc/partitions中所期望的那样:

代码语言:javascript
复制
# cat /proc/partitions 
major minor  #blocks  name

   8        0   20480000 sda
   8        1    2048000 sda1
   8        2   18430976 sda2
   8       16    8388608 sdb
 253        0       4096 dm-0
 253        1    1048576 dm-1
 147        0    1048576 drbd0

blockdev --report看起来也不错:

代码语言:javascript
复制
# blockdev --report /dev/drbd0
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0      1073741824   /dev/drbd0
# blockdev --report /dev/drbdpool/meta 
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw  8192   512  4096          0         4194304   /dev/drbdpool/meta
# blockdev --report /dev/drbdpool/data
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw  8192   512  4096          0      1073741824   /dev/drbdpool/data

这可能是lsblk感到困惑的地方:

代码语言:javascript
复制
# cat /sys/block/drbd0/size 
2097152
# cat /sys/block/dm-0/size 
8192
# cat /sys/block/dm-1/size 
2097152
# cat /sys/block/dm-0/holders/drbd0/size 
2097152
# cat /sys/block/dm-1/holders/drbd0/size 
2097152
票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1091310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档