更换 DRBD 中的故障驱动器 ()

Replacing a failed drive in DRBD ()

如何正确设置磁盘大小,更换时,如果我想使用原来的磁盘大小?

新磁盘的容量是 4 Gb,但我只想使用之前使用过的并且在另一个节点的磁盘上使用的容量 (2 Gb)。

资源:

resource res-vdb {

  device drbd_res_vdb1 minor 1;
  disk /dev/vdb;   
  meta-disk internal;

  protocol C;

  on node01 {
    address 192.168.0.1:7005;
  }

  on node02 {
    address 192.168.0.2:7005;
  }
}

我是否正确理解我可以从 lsblck 或 /sys/block/drbd1/size 获取大小并在 drbdadm create-md 和 drbdadm attach 之前在 res config 中设置?

即配置:

resource res-vdb {

  device drbd_res_vdb1 minor 1;
  disk /dev/vdb;   
  meta-disk internal;

  protocol C;

  disk {
        size 2097052K;      <==== 2GB
    }
  on node01 {
    address 192.168.0.1:7005;
  }

  on node02 {
    address 192.168.0.2:7005;
  }
}

您是正确的,您可以在 create-mdattach 之前在 DRBD res 文件中设置大小,以便明确设置 DRBD 设备的大小。

正如您还建议的那样,您可以通过多种方式检索 DRBD 设备的确切大小,包括使用 lsblk 或使用 cat /sys/block/drbd1/size、运行 检查内核设置来自对等节点。

但是,当您使用 lsblk 时,它会进行一些舍入。 DRBD 的解析器似乎不接受字节 (B) 作为有效单位(drbd-utils 版本 9.13.1 似乎只喜欢 KBMBGB), 所以你最好设置扇区大小 (s).

您在 /sys/block/drbd1/size 中找到的大小已经在扇区中,因此示例为:

# cat /sys/block/drbd1/size 
27262072

# cat /etc/drbd.d/r1.res 
resource res-vdb {
    protocol C;
    disk /dev/vdb;
    device minor 1;
    disk {
        size 27262072s;
    }
    on centos7-a {
        address 172.16.7.100:7779;
    }
    on centos7-b {
        address 172.16.7.101:7779;
    }
}

综上所述,因为 DRBD 会在其对等方之间自动协商设备大小,您可以简单地 drbdadm create-md res-vdbdrbdadm up res-vdb,它应该可以正常工作。