标签: drbd

10GigE 上的 DRBD 糟糕的同步性能

我已经设置了一对具有 RAID 阵列(8 核、16GB RAM、12x2 TB RAID6)、3 个 10GigE 接口的相同服务器,以托管一些高可用性服务。

这些系统目前运行的是 Debian 7.9 Wheezy oldstable(因为 corosync/pacemaker 在 8.x stable 和 testing 上均不可用)。

  • 本地磁盘性能约为 900 MB/s 写入,1600 MB/s 读取。
  • 机器之间的网络吞吐量超过 700MB/s。
  • 通过 iSCSI,每台机器可以以超过 700 MB/s 的速度写入对方的存储。

但是,无论我如何配置 DRBD,吞吐量都限制在 100MB/s。它看起来真的像一些硬编码限制。我可以通过调整设置来可靠地降低性能,但它永远不会超过 1Gbit(一次达到 122MB/s 几秒钟)。我真的很喜欢这个。

  • 普通香草内核 3.18.24 amd64
  • drbd 8.9.2~rc1-1~bpo70+1

配置分为两个文件global-common.conf::

global {
        usage-count no;
}

common {
        handlers {
        }

        startup {
        }

        disk {
                on-io-error             detach;
         #       no-disk-flushes ;
        }
        net {
                max-epoch-size          8192;
                max-buffers             8192;
                sndbuf-size             2097152;
        }
        syncer …
Run Code Online (Sandbox Code Playgroud)

linux performance debian drbd

16
推荐指数
3
解决办法
2万
查看次数

如何在 2 节点主动/被动 linux HA 起搏器集群中设置 STONITH?

我正在尝试使用 corosync 和起搏器设置一个主动/被动(2 个节点)Linux-HA 集群来启动和运行 PostgreSQL 数据库。它通过 DRBD 和 service-ip 工作。如果节点 1 失败,节点 2 应该接管。如果 PG 在 node2 上运行并且失败,则相同。除了 STONITH 之外,一切正常。

节点之间是专用的 HA 连接(10.10.10.X),所以我有以下接口配置:

eth0            eth1            host
10.10.10.251    172.10.10.1     node1
10.10.10.252    172.10.10.2     node2
Run Code Online (Sandbox Code Playgroud)

Stonith 已启用,我正在使用 ssh-agent 进行测试以杀死节点。

crm configure property stonith-enabled=true
crm configure property stonith-action=poweroff
crm configure rsc_defaults resource-stickiness=100
crm configure property no-quorum-policy=ignore

crm configure primitive stonith_postgres stonith:external/ssh \
                params hostlist="node1 node2"
crm configure clone fencing_postgres stonith_postgres
Run Code Online (Sandbox Code Playgroud)

crm_mon -1 显示:

============
Last updated: Mon Mar 19 15:21:11 2012
Stack: openais …
Run Code Online (Sandbox Code Playgroud)

cluster high-availability drbd pacemaker

12
推荐指数
2
解决办法
4万
查看次数

无法将 drbd 切换到辅助

我正在drbd83ocfs2centos 5和打算使用packemaker它们。一段时间后,我面临着drbd脑裂问题。

version: 8.3.13 (api:88/proto:86-96)
GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by mockbuild@builder10.centos.org, 2012-05-07 11:56:36

 1: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown   r-----
    ns:0 nr:0 dw:112281991 dr:797551 al:99 bm:6401 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:60
Run Code Online (Sandbox Code Playgroud)

我无法将我的 drbd 切换到次要。

drbdadm secondary r0
1: State change failed: (-12) Device is held open by someone
Command 'drbdsetup 1 secondary' terminated with exit code 11
Run Code Online (Sandbox Code Playgroud)

我的drbd资源配置:

resource r0 {
        syncer { 
                rate 1000M; 
                verify-alg sha1;
        }

        disk …
Run Code Online (Sandbox Code Playgroud)

centos high-availability drbd ocfs2 centos5

11
推荐指数
2
解决办法
2万
查看次数

DRBD 代理/广域网体验

我想考虑使用 DRBD 在主要和次要位置之间进行数据复制。初步计划是在两者之间建立VPN隧道;主要端使用双 T1 链路的切片和电缆/dsl 线路上的次要位置设置。

辅助节点仅用于 DR - 它“永远不会”复制回主节点。

有没有人做过/厌倦/使用这样的东西,你有什么经验。

Linbit 还有一个(付费)DRBD 代理产品,该产品设计用于跨 WAN 类型链接(压缩、多个对等点)运行。有人试过这个吗?

drbd

9
推荐指数
1
解决办法
5072
查看次数

如何在 LVM 上调整 DRBD 磁盘的大小?

这是我的 drbd 配置

resource mysql {

    protocol C;

    floating 10.100.101.1:7788 {
            device   /dev/drbd0;
            disk     /dev/VolGroup00/LogVol02;
            meta-disk       internal;
    }

    floating 10.100.101.2:7788 {
            device   /dev/drbd0;
    disk     /dev/VolGroup01/LogVol02;
    meta-disk   internal;
    }
}
Run Code Online (Sandbox Code Playgroud)

两个节点上 LVM 上的磁盘设置为 50G,我在两个节点上使用 LVM 增加了 +4G(现在总共 54G)

但是当我尝试跑步时

[root@db1 ~]# resize2fs /dev/VolGroup00/LogVol02
resize2fs 1.39 (29-May-2006)
resize2fs: Device or resource busy while trying to open /dev/VolGroup00/LogVol02
Couldn't find valid filesystem superblock.
[root@db1 ~]# 
Run Code Online (Sandbox Code Playgroud)

它说我不能。我该怎么办?我应该停止DRBD吗?如果是这样 - 我应该在调整大小和启动 DRBD 后执行其他步骤吗?

谢谢,德米特里

lvm drbd

9
推荐指数
1
解决办法
2万
查看次数

使用快照的 ZFS 可以使用同步协议 A 替换 DRBD 吗?

这个问题与以前的更通用的问题有关,但这次我想更具体地询问 ZFS 是否可以在像我这样的用例中替换 DRBD。即两台服务器,都托管自己的 VM 或其他服务,同时将 VM 或其他一些数据相互复制,以缩短硬件故障或维护时的停机时间。此设置符合预期,我想要首选的本地读/写,并且可以在任意时间范围内承受潜在的数据丢失。

DRBD 支持这种具有不同镜像协议的场景,其中复制协议 A是异步的,因为我需要它。DRBD 在我的设置中的主要好处是切换到更同步的协议很容易,只需配置和重新启动即可。此外,可以将 dm-crypt 放在 DRBD 块设备的顶部,并将文件系统放入 dm-crypt 中,以便对每个数据进行加密。

另一方面,DRBD 的问题是它需要块设备,并且必须使用其他技术(如 RAID 和 LVM 等)关心它们的可用性和大小。尤其是调整大小的事情似乎很有趣,因为我的服务器有空闲插槽可以在将来连接更多磁盘。为了支持调整大小,我需要在 DRBD 下使用 LVM,首先使用 LVM 添加存储,然后调整 DRBD 的大小以考虑新的存储。比我还需要处理 dm-crypt,文件系统本身等。这读起来非常复杂,而且我容易出错。

另一方面,像 ZFS 这样的文件系统已经提供了自己的 LVM,并且能够发送/接收增量快照。所以理论上 ZFS 应该能够实现相同的协议 像 DRBD 这样的方法不需要使用 RAID、LVM 等。只需将存储添加到服务器,将其放入 ZFS 池中,它就可以立即用于托管更多/更大的虚拟机或其他。发送/接收快照听起来与 DRBD 所做的任何事情一样有效,因为它只是增量二进制数据,需要任何开销来描述要在接收 ZFS 中理解的更改。我读过人们使用无睡眠时间的无限循环发送/接收 ZFS 快照,然后再次直接在源中删除它们,因为它们只用于短期复制。

不过,加密对 ZFS 来说似乎是一个问题。dm-crypt 可能适用于 zvols 之类的东西,将来它可能会直接支持加密,但目前不支持。此外,发送/接收快照似乎总是异步的,如果需要,没有办法实现像 DRBD 提供的更多同步协议。不过,这可能是可以接受的,因为不需要使用 LVM 并使整体设置更容易。

或者我错了,除了发送/接收快照之外,还有其他方法 ZFS 如何将数据转发到开箱即用的其他主机和仅 ZFS?

与 DRBD 镜像协议相比,您是否看到在短时间内使用 ZFS 频繁发送/接收快照的一些基本性能差异或限制?后者可能会更有效一点,因为我猜只有块级别。 …

zfs replication drbd zfsonlinux

9
推荐指数
1
解决办法
2382
查看次数

LVM/DRBD resize df 报告错误信息后

我有一个安装了 DRBD 的分区的 Debian Xen DomU。我需要将此分区的大小从 46G 调整为 50G。我做了以下事情:

  • 在辅助节点上停止 DRBD: /etc/init.d/drbd stop
  • 将底层 LVM dist 增加到 50 GB: lvresize -L 50G /lvm/device
  • 再次启动DRBD,等待磁盘同步: /etc/init.d/drbd start
  • 切换初选。并在另一个节点上执行相同的操作。
  • 在现在的辅助 DRBD 节点上停止 drbd: /etc/init.d/drbd stop
  • 增加底层LVM: lvresize -L 50G /lvm/device
  • 再次启动DRBD,等待磁盘同步: /etc/init.d/drbd start
  • 在两个节点上发出: drbdadm resize drbd-device
  • 在主节点上发出: resize2fs /dev/drbd0

我得到这个回应:

$ resize2fs 1.40-WIP (14-Nov-2006)
The filesystem is already 12058624 blocks long.  Nothing to do!
Run Code Online (Sandbox Code Playgroud)

使用 fdisk,drbd0 和 sda 设备 drbd 都使用报告设备的大小为 49392123904。这与 resize2fs 所说的一致。(12058624x4096 [块大小])。

我的问题是df没有报告磁盘大小的变化。

$ df -B …
Run Code Online (Sandbox Code Playgroud)

xen debian disk-space-utilization drbd

8
推荐指数
1
解决办法
3116
查看次数

IPoIB(IP over InfiniBand)与 RDMA 性能

我部分继承了一个 Linux HA 集群,该集群的中心目前在两个 Debian 主机之间通过 IPoIB(IP over InfiniBand)提供与 DRBD 8 的连接。它没有坏,所以我不会修理它。

我还注意到 DRBD 9 支持 RDMA,因此问题可能会出现在将来是否通过 RDMA(即“本机”InfiniBand)替换与 DRBD 9 的连接。

由于我不想在生产系统上运行性能测试,我想知道:是否有已发布的 IPoIB 与 RDMA/InfiniBand 的性能比较。例如,我是否可以预期从 IPoIB 切换到 10%、50% 或 100% 的数量级的带宽/延迟增益?可以期待什么?

performance debian ip infiniband drbd

8
推荐指数
1
解决办法
2110
查看次数

为什么要在 Pacemaker 集群中禁用 DRBD

DRBD 文档(在将 DRBD 与 Pacemaker 集群集成部分)建议在 Pacemaker 集群中禁用 DRBD:

如果您正在使用 DRBD OCF 资源代理,建议您将 DRBD 启动、关闭、升级和降级专门推迟到 OCF 资源代理。这意味着你应该禁用DRBD初始化脚本:chkconfig drbd off

在 systemd 下,这相当于systemctl disable drbd.service.

尽管有此建议,但启用 DRBD 是否有任何危害?这个想法是启用 DRBD,但禁用 Corosync 和 Pacemaker,以便在集群节点出现故障并重新启动后,它将继续接收 DRBD 同步的数据,但将保持“被动”状态。这应该允许在故障节点重新进入集群之前对其进行分析,但同时仍将实时数据保存在两个集群节点上。该建议背后的理由是什么?

drbd pacemaker corosync

8
推荐指数
1
解决办法
1506
查看次数

DRBD 与 GlusterFS 用于复制

我需要构建一个解决方案来托管内部 git 存储库。它需要支持数十万(或更多)存储库。

我计划将多个“哑”服务器与共享存储一起使用,因此基本上当客户端尝试访问存储库时 - 负载平衡器会将其重定向到任何可用服务器。对存储库的任何更改 - 将在所有节点上复制。

我的第一个想法是为此使用 GlusterFS,但我读过它不能很好地处理小文件。我也在考虑使用 DRBD 自己复制所有内容,但这需要更多设置,并且与 GlusterFS 相比似乎更复杂。

两者中哪一个提供更好的性能?基本上,我试图解决的问题是,当任何服务器出现故障时 - 我希望其他人仍然能够提供数据。

nfs git drbd glusterfs shared-storage

7
推荐指数
1
解决办法
2万
查看次数