DRBD9和LINSTOR用户指南——使用DRBD——11.常见的管理任务——11.2。检查DRBD状态

本文详述了DRBD状态的多种检查方法,包括使用drbdmon、drbdtop和drbdadm命令,以及如何通过drbdsetupevents2进行实时监控。介绍了资源角色、磁盘状态和连接状态的概念,提供了资源的启用、禁用、重新配置、角色切换和故障转移的操作指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

11.2。检查DRBD状态

11.2.1。使用drbdmon检索状态

drbdmon实用程序是查看DRBD状态的一种便捷方法 。它实时更新DRBD资源的状态。

11.2.2。通过drbdtop检索状态并与DRBD交互

顾名思义,它drbdtop与的工具具有相似之处htop。一方面,它允许监视DRBD资源以及进行交互(例如,将它们切换为Primary,甚至解决裂脑问题)。完整的概述可以在这里找到https://linbit.github.io/drbdtop/ ]

11.2.3。中的状态信息/proc/drbd

 

/proc/drbd不推荐使用。尽管在8.4系列中不会将其删除,但我们建议您切换到其他方式,例如通过drbdadm;或者,为更加方便地进行监视,可通过进行一次或实时监视drbdsetup events2

/proc/drbd是一个虚拟文件,显示有关DRBD模块的基本信息。它在DRBD 8.4之前得到了广泛的使用,但跟不上DRBD 9提供的信息量。

$ cat /proc/drbd

version: 9.0.0 (api:1/proto:86-110) FIXME

GIT-hash: XXX build by linbit@buildsystem.linbit, 2011-10-12 09:07:35

第一行以开头version:,显示系统上使用的DRBD版本。第二行包含有关此特定版本的信息。

11.2.4。状态信息通过drbdadm

在最简单的调用中,我们只要求单个资源的状态。

# drbdadm status home

home role:Secondary

  disk:UpToDate

  nina role:Secondary

    disk:UpToDate

  nino role:Secondary

    disk:UpToDate

  nono connection:Connecting

这只是说资源主页在本地,“ nina”“ nino”UpToDateSecondary;因此,这三个节点在其存储设备上具有相同的数据,并且目前没有人在使用该设备。

节点“ nono”未连接,其状态报告为正在 连接;有关更多详细信息,请参见下面的连接状态

您可以通过将--verbose和和或 --statistics参数传递到drbdsetup(为了便于阅读而中断的行)来获取更多信息:

# drbdsetup status home --verbose --statistics

home node-id:1 role:Secondary suspended:no

    write-ordering:none

  volume:0 minor:0 disk:UpToDate

      size:1048412 read:0 written:1048412 al-writes:0 bm-writes:48 upper-pending:0

                                        lower-pending:0 al-suspended:no blocked:no

  nina local:ipv4:10.9.9.111:7001 peer:ipv4:10.9.9.103:7010 node-id:0

                                               connection:Connected role:Secondary

      congested:no

    volume:0 replication:Connected disk:UpToDate resync-suspended:no

        received:1048412 sent:0 out-of-sync:0 pending:0 unacked:0

  nino local:ipv4:10.9.9.111:7021 peer:ipv4:10.9.9.129:7012 node-id:2

                                               connection:Connected role:Secondary

      congested:no

    volume:0 replication:Connected disk:UpToDate resync-suspended:no

        received:0 sent:0 out-of-sync:0 pending:0 unacked:0

  nono local:ipv4:10.9.9.111:7013 peer:ipv4:10.9.9.138:7031 node-id:3

                                                           connection:Connecting

在此示例中,每隔几行形成一个块,该块对该资源中使用的每个节点重复执行,本地节点的格式异常很小-有关更多详细信息,请参见下文。

每个块的第一行显示node-id(对于当前资源;主机可以node-id在不同资源中具有不同的)。此外,还将显示role(请参阅资源角色)。

下一条重要的代码行是volume规范。通常,这些编号从零开始编号,但是配置也可以指定其他ID。此行在项目中显示连接状态 replication(有关详细信息,请参阅连接状态),在其中显示远程磁盘的状态disk(请参阅磁盘状态)。那么,对于这种体积给人有点统计的线-数据receivedsentout-of-sync请参阅 性能指标连接信息数据以获取更多信息。

对于本地节点,在我们的示例中,第一行显示资源名称home。由于第一个块始终描述本地节点,因此没有连接或地址信息。

请参阅drbd.conf手册页以获取更多信息。

此示例中的其他四行形成一个块,该块针对每个配置的DRBD设备重复,并以设备次设备号为前缀。在这种情况下,它0对应于device /dev/drbd0

特定于资源的输出包含有关资源的各种信息:

11.2.5。通过一站式或实时监控drbdsetup events2

 

仅在用户空间版本8.9.3及更高版本中可用。

这是一种从DRBD中获取信息的底层机制,适用于自动化工具(如监视)。

在最简单的调用中,仅显示当前状态,输出看起来像这样(但是,在终端上运行时,将包括颜色):

# drbdsetup events2 --now r0

exists resource name:r0 role:Secondary suspended:no

exists connection name:r0 peer-node-id:1 conn-name:remote-host connection:Connected role:Secondary

exists device name:r0 volume:0 minor:7 disk:UpToDate

exists device name:r0 volume:1 minor:8 disk:UpToDate

exists peer-device name:r0 peer-node-id:1 conn-name:remote-host volume:0

    replication:Established peer-disk:UpToDate resync-suspended:no

exists peer-device name:r0 peer-node-id:1 conn-name:remote-host volume:1

    replication:Established peer-disk:UpToDate resync-suspended:no

exists -

如果没有“ --now”,该进程将继续运行,并发送如下的连续更新:

# drbdsetup events2 r0

...

change connection name:r0 peer-node-id:1 conn-name:remote-host connection:StandAlone

change connection name:r0 peer-node-id:1 conn-name:remote-host connection:Unconnected

change connection name:r0 peer-node-id:1 conn-name:remote-host connection:Connecting

然后,出于监视目的,还有另一个参数“ --statistics”,它将产生一些性能计数器和其他事实:

'drbdsetup' 详细输出(为便于阅读,行被断开):

# drbdsetup events2 --statistics --now r0

exists resource name:r0 role:Secondary suspended:no write-ordering:drain

exists connection name:r0 peer-node-id:1 conn-name:remote-host connection:Connected

                                                        role:Secondary congested:no

exists device name:r0 volume:0 minor:7 disk:UpToDate size:6291228 read:6397188

            written:131844 al-writes:34 bm-writes:0 upper-pending:0 lower-pending:0

                                                         al-suspended:no blocked:no

exists device name:r0 volume:1 minor:8 disk:UpToDate size:104854364 read:5910680

          written:6634548 al-writes:417 bm-writes:0 upper-pending:0 lower-pending:0

                                                         al-suspended:no blocked:no

exists peer-device name:r0 peer-node-id:1 conn-name:remote-host volume:0

          replication:Established peer-disk:UpToDate resync-suspended:no received:0

                                      sent:131844 out-of-sync:0 pending:0 unacked:0

exists peer-device name:r0 peer-node-id:1 conn-name:remote-host volume:1

          replication:Established peer-disk:UpToDate resync-suspended:no received:0

                                     sent:6634548 out-of-sync:0 pending:0 unacked:0

exists -

您可能还喜欢``--timestamp''参数。

11.2.6。连接状态

可以通过发出以下drbdadm cstate命令来观察资源的连接状态:

# drbdadm cstate <resource>

Connected

Connected

StandAlone

如果您只对资源的单个连接感兴趣,请也指定连接名称:

默认值为配置文件中指定的对等方的主机名。

# drbdadm cstate <peer>:<resource>

Connected

资源可能具有以下连接状态之一:

单机版

没有可用的网络配置。资源尚未连接,或者已通过管理方式断开连接(使用drbdadm disconnect),或者由于身份验证失败或头脑分裂而中断了连接。

断开连接

断开连接时的临时状态。下一个状态是StandAlone

未连接

尝试连接之前的临时状态。下一个可能的状态:正在连接

暂停

与对等方通信超时后的临时状态。下一状态:未连接

断管

与对等方的连接丢失后的临时状态。下一状态:未连接

网络故障

与伙伴的连接丢失后的临时状态。下一状态:未连接

协议错误

与伙伴的连接丢失后的临时状态。下一状态:未连接

拆除

临时状态。对方正在关闭连接。下一状态:未连接

连接中

该节点正在等待,直到对等节点在网络上可见。

连接的

已建立DRBD连接,数据镜像现在处于活动状态。这是正常状态。

11.2.7。复制状态

每个卷在每个连接上都有一个复制状态。可能的复制状态为:

由于该连接不是Connected,因此不会通过该连接复制该卷。

成立时间

该卷的所有写操作均在线复制。这是正常状态。

StartingSyncS

由管理员启动的完全同步才刚刚开始。下一个可能的状态是: SyncSourcePausedSyncS

正在启动SyncT

由管理员启动的完全同步才刚刚开始。下一个状态:WFSyncUUID

WFBitMapS

部分同步才刚刚开始。下一个可能的状态:SyncSourcePausedSyncS

WFBitMapT

部分同步才刚刚开始。下一个可能的状态:WFSyncUUID

WFSyncUUID

同步即将开始。下一个可能的状态:SyncTargetPausedSyncT

同步源

当前正在运行同步,本地节点是同步的源。

SyncTarget

同步当前正在运行,本地节点是同步的目标。

暂停同步

本地节点是正在进行的同步的源,但是同步当前已暂停。这可能是由于依赖于另一个同步过程的完成,或者是由于同步已被手动中断 drbdadm pause-sync

暂停同步

本地节点是正在进行的同步的目标,但是当前已暂停同步。这可能是由于依赖于另一个同步过程的完成,或者是由于同步已被手动中断 drbdadm pause-sync

验证

当前正在运行在线设备验证,本地节点是验证的来源。

验证码

当前正在运行在线设备验证,本地节点是验证的目标。

由于链接无法应对负载,因此数据复制已暂停。此状态由配置on-congestion选项启用 (请参阅配置拥塞策略和挂起的复制)。

背后

由于链接无法应对负载,因此数据复制被对等方暂停。此状态由on-congestion对等节点上的配置选项启用 (请参阅配置拥塞策略和挂起的复制)。

11.2.8。资源角色

可以通过发出以下drbdadm role命令来观察资源的角色 

# drbdadm role <resource>

Primary

您可能会看到以下资源角色之一:

资源当前处于主要角色,可以从中读取和写入。除非启用了双主模式,否则此角色仅在两个节点之一上发生 

次要的

该资源当前处于次要角色。它通常会从其对等方接收更新(除非以断开连接模式运行),但是既不能读取也不可以写入。此角色可能发生在一个或两个节点上。

未知

该资源的角色目前未知。本地资源角色永远不会具有此状态。它仅针对对等方的资源角色显示,并且仅在断开连接模式下显示。

11.2.9。磁盘状态

可以通过发出以下drbdadm dstate命令来观察资源的磁盘状态:

# drbdadm dstate <resource>

UpToDate

磁盘状态可能是以下之一:

无盘

尚未将本地块设备分配给DRBD驱动程序。这可能意味着该资源从未连接到其后备设备,或者已经使用进行了手动分离drbdadm detach,或者在发生较低级别的I / O错误后自动分离了该资源。

附加

读取元数据时的瞬态。

拆卸

分离并等待正在进行的IO完成时的瞬态状态。

失败的

本地块设备发出I / O故障报告后的瞬态状态。下一个状态:无盘

谈判中

在已连接的 DRBD设备上执行附加时的临时状态。

前后不一致

数据不一致。在两个节点上创建新资源后,此状态立即发生(在初始完全同步之前)。同样,在同步过程中在一个节点(同步目标)中找到此状态。

过时的

资源数据是一致的,但已 过时

D未知

如果没有网络连接可用,则此状态用于对等磁盘。

一致的

没有连接的节点的一致数据。建立连接后,将确定数据是UpToDate还是Outdated

最新

数据的一致最新状态。这是正常状态。

11.2.10。连接信息数据

本地

显示网络系列,用于接受来自对等方的连接的本地地址和端口。

同行

显示网络家族,用于连接的对等地址和端口。

拥挤

该标志表明数据连接的TCP发送缓冲区是否已满80%。

11.2.11。性能指标

drbdadm status-output 一行包含以下计数器和仪表:

发送(网络发送)

通过网络连接发送给合作伙伴的净数据量;在千字节。

接收(网络接收)

合作伙伴通过网络连接接收的净数据量;在千字节。

(磁盘写)

净数据写在本地硬盘上;在千字节。

写入(磁盘读取)

从本地硬盘读取的净数据;在千字节。

al-writes(活动日志)

元数据的活动日志区域的更新数。

bm-writes(位图)

元数据的位图区域的更新次数。

低等(本地数量)

DRBD发出的对本地I / O子系统的打开请求数。

待定

发送给合作伙伴的请求数量,但尚未得到合作伙伴的答复。

UNACKED(未确认)

伙伴通过网络连接收到的但尚未答复的请求数。

最高待定(申请待定)

转发到DRBD的但尚未被DRBD答复的块I / O请求数。

写顺序(写顺序)

当前使用的写排序方法:b(屏障),f(刷新), d(漏极)或n(无)。

不同步

当前不同步的存储量;以千字节为单位。

重新同步暂停

重新同步当前是否已暂停。可能的值是nouserpeerdependency

受阻

显示本地I / O拥塞。

  • :无拥塞。
  • 上部DRBD设备上方I / O 被阻止,即。到文件系统。典型原因是
    • 管理员暂停I / O,请参阅中的suspend-io命令drbdadm
    • 瞬态块,例如 在连接/分离期间
    • 缓冲区已耗尽,请参阅优化DRBD性能
    • 等待位图IO
  • 较低:后备设备很拥挤。

也可以看到上,下的值。

11.3。启用和禁用资源

11.3.1。启用资源

通常,所有配置的DRBD资源都会自动启用

  • 由群集资源管理应用程序根据您的群集配置自行决定,或
  • 通过/etc/init.d/drbd系统启动时的初始化脚本。

但是,如果由于任何原因需要手动启用资源,则可以通过发出以下命令来启用

# drbdadm up <resource>

与往常一样,all如果要/etc/drbd.conf一次启用所有配置的资源,可以使用关键字而不是特定的资源名称 

11.3.2。禁用资源

您可以通过发出以下命令暂时禁用特定资源

# drbdadm down <resource>

在这里,all如果您希望/etc/drbd.conf一次禁用所有列出的资源,也可以使用关键字代替资源名称 

11.4。重新配置资源

使用DRBD,您可以在运行时重新配置资源。为此,

  • 使在资源配置进行必要的修改 /etc/drbd.conf
  • /etc/drbd.conf在两个节点之间同步文件,
  • drbdadm adjust <resource>在两个节点上发出命令。

drbdadm adjust然后放手drbdsetup对配置进行必要的调整。与往常一样,您可以drbdsetup通过drbdadm使用 -ddry-run)选项运行来查看挂起的调用。

 

更改commonin中的部分时/etc/drbd.conf,可以通过发出来一次运行调整所有资源的配置drbdadm adjust all。

11.5。升级和降级资源

使用以下命令之一可以手动将资源的角色从辅助角色转换为主要角色(升级),反之亦然(降级):

# drbdadm primary <resource>

# drbdadm secondary <resource>

单主要模式下DRBD的默认设置),在连接状态 Connected任何给定时间,任何资源都只能在一个节点上担任主要角色。因此,drbdadm primary <resource>在指定的资源仍在另一节点上担任主要角色的同时在一个节点上发出将导致错误。

可将配置为允许双主要模式的资源在两个节点上切换为主要角色;这是例如。在线迁移虚拟机所需。

11.6。基本手动故障转移

如果不使用Pacemaker并希望在被动/主动配置中手动处理故障转移,则过程如下。

在当前的主节点上,停止使用DRBD设备的所有应用程序或服务,卸载DRBD设备,然后将资源降级为辅助资源。

# umount /dev/drbd/by-res/<resource>/<vol-nr>

# drbdadm secondary <resource>

现在,我们希望在节点上主要升级资源并安装设备。

# drbdadm primary <resource>

# mount /dev/drbd/by-res/<resource>/<vol-nr> <mountpoint>

如果您正在使用该auto-promote功能,则无需手动更改角色(“ 主要 /“ 次要);只需停止服务并分别进行安装。

11.7。升级DRBD

升级DRBD是一个相当简单的过程。本节将详细介绍从8.4.x升级到9.0.x的过程;对于9内升级,它变得更加容易,请参见下面的简短版本。

11.7.1。总体概述

8.4升级到9.0的一般过程如下:

11.7.2。更新您的存储库

由于8.49.0分支之间的更改数量众多,我们为每个分支创建了单独的存储库。在两台服务器上执行此存储库更新。

RHEL / CentOS系统

编辑/etc/yum.repos.d/linbit.repo文件以反映以下更改。

[drbd-9.0]

name=DRBD 9.0

baseurl=http://packages.linbit.com/<hash>/yum/rhel7/drbd-9.0/<arch>

gpgcheck=0

 

您将必须填充<hash>和<arch>变量。<hash>由LINBIT支持服务提供。

Debian / Ubuntu系统

编辑/etc/apt/sources.list(或中的文件/etc/apt/sources.d/)以反映以下更改。

deb http://packages.linbit.com/<hash>/ stretch drbd-9.0

如果您不使用stretch发行版,而使用其他发行版,则需要更改该行。

 

您将必须填充<hash>变量。该 <hash>由Linbit的支持服务提供。

接下来,您将需要将DRBD签名密钥添加到您的受信任密钥中。

# gpg --keyserver subkeys.pgp.net --recv-keys  0x282B6E23

# gpg --export -a 282B6E23 | apt-key add -

最后执行一个,apt update以便Debian识别更新的存储库。

# apt update

11.7.3。检查DRBD状态

在开始之前,请确保您的资源是同步的。cat /proc/drbd(仅 9.0 之前可用)的输出 应显示UpToDate / UpToDate

bob# cat /proc/drbd

 

version: 8.4.9-1 (api:1/proto:86-101)

GIT-hash: e081fb0570183db40caa29b26cb8ee907e9a7db3 build by linbit@buildsystem, 2016-11-18 14:49:21

 

 0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----

    ns:0 nr:211852 dw:211852 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:d oos:0

11.7.4。暂停集群

现在您已经知道资源是同步的,首先升级辅助节点。这可以手动完成,也可以使用Pacemaker将节点置于待机模式。这两个过程都在下面介绍。如果您正在运行Pacemaker,请不要使用手动方法。

  • 手动方式

bob# /etc/init.d/drbd stop

  • 起搏器

将辅助节点置于待机模式。在此示例中,“ bob”是次要的。

bob# crm node standby bob

 

您可以使用crm_mon -rf观察 集群的状态,也可以观察cat /proc/drbd直到其资源显示未配置

11.7.5。升级软件包

现在,使用yumapt更新您的软件包。

bob# yum upgrade

bob# apt upgrade

升级完成后,现在将在您的辅助节点“ bob”上安装最新的DRBD 9.0内核模块和drbd-utils

但是内核模块尚未激活。

11.7.6。加载新的内核模块

到目前为止,不应再使用DRBD模块,因此我们通过

bobrmmod drbd

如果显示类似的消息ERROR: Module drbd is in use,则说明尚未正确停止所有资源。
重试升级DRBD/或运行命令drbdadm down all以找出哪些资源仍处于活动状态。

这些可能阻止卸载的典型问题如下:

  • DRBD支持的文件系统上导出NFS(请参阅exportfs -v输出)
  • 文件系统仍挂载-检查 grep drbd /proc/mounts
  • 环回设备有效(losetup -l
  • 直接或间接使用DRBD的设备映射器(dmsetup ls --tree
  • 具有DRBD-PVLVMpvs

请注意,此列表并不完整-这些只是最常见的示例。

现在,我们可以加载新的DRBD模块:

bobmodprobe drbd

现在,您应该检查的内容/proc/drbd并验证是否加载了正确的(新)版本;如果安装的软件包使用了错误的内核版本,则说明安装modprobe成功,但是您将继续使用旧版本。

现在的输出cat /proc/drbd应显示9.0.x,看起来与此类似。

version: 9.0.0 (api:2/proto:86-110)

GIT-hash: 768965a7f158d966bd3bd4ff1014af7b3d9ff10c build by root@bob, 2015-09-03 13:58:02

Transports (api:10): tcp (1.0.0)

 

在主节点上,alice'cat / proc / drbd'仍会显示以前的版本,直到您对其进行升级。

11.7.7。迁移配置文件

DRBD 9.0向后兼容8.4配置文件。但是,某些语法已更改。有关更改的完整列表,请参见对配置语法的更改。同时,您可以使用“ drbdadm dump all”命令相当轻松地移植旧配置。这将同时输出新的全局配置和新的资源配置文件。取得此输出并进行相应的更改。

11.7.8。更改元数据

现在,您需要将磁盘元数据转换为新版本。这真的很容易,只需运行一个命令并确认两个问题即可。

如果要更改节点数,则应该已经增加了较低级别设备的大小,以便有足够的空间来存储其他位图。在这种情况下,您需要使用附加参数运行以下命令。在确定(可能)对等方的数量时,请考虑诸如DRBD客户端之类的设置。--max-peers=<N>

升级DRBD元数据就像运行一个命令并确认两个问题一样容易:

# drbdadm create-md <resource>

You want me to create a v09 style flexible-size internal meta data block.

There appears to be a v08 flexible-size internal meta data block

already in place on <disk> at byte offset <offset>

 

Valid v08 meta-data found, convert to v09?

[need to type 'yes' to confirm] yes

 

md_offset <offsets...>

al_offset <offsets...>

bm_offset <offsets...>

 

Found some data

 

 ==> This might destroy existing data! <==

 

Do you want to proceed?

[need to type 'yes' to confirm] yes

 

Writing meta data...

New drbd meta data block successfully created.

success

当然,您也可以传递all资源名称。如果您真的很幸运,也可以通过此处的命令行避免此类问题。(是的,顺序很重要。)

drbdadm -v --max-peers=<N>  -- --force create-md <resources>

11.7.9。再次启动DRBD

现在,剩下要做的就是让DRBD设备重新启动并运行-一个简单的方法drbdadm up all就可以解决问题。

现在,根据您是否拥有集群管理器还是手动跟踪资源,再次有两种不同的方法。

  • 手动地

bob# /etc/init.d/drbd start

  • 起搏器

# crm node online bob

这应该使DRBD连接到另一个节点,并且重新同步过程将开始。

当两个节点再次在所有资源上都处于UpToDate时,可以将应用程序移至已升级的节点(此处为“ bob”),然后在仍运行8.4的群集节点上执行相同的步骤。

11.7.10。从DRBD 9DRBD 9

如果您已经在运行9.0,则足以 安装新的软件包版本,使群集节点处于待机状态 卸载/重新加载内核模块, 启动资源以及使群集节点 再次联机7 ]

这些单独的步骤已在上面进行了详细说明,因此在此不再赘述。

11.8。启用双主要模式

双主要模式允许资源在多个节点上同时担当主要角色。这样做可以是永久性或临时性的。

 

双主模式要求将资源配置为同步复制(协议C)。因此,它对延迟敏感,不适用于WAN环境。

此外,由于两种资源始终都是主要资源,因此节点之间网络中的任何中断都将导致脑裂。

 

 

在DRBD 9.0.x中,双主模式只能用于实时迁移,而仅限于2个主模式。

11.8.1。永久双主要模式

要启用双主要模式,请在资源配置的net部分中将allow-two-primaries选项设置为 yes

resource <resource>

  net {

    protocol C;

    allow-two-primaries yes;

    fencing resource-and-stonith;

  }

  handlers {

    fence-peer "...";

    unfence-peer "...";

  }

  ...

}

之后,不要忘记在节点之间同步配置。在两个节点上运行 drbdadm adjust <resource>

现在,您可以使用将两个节点同时更改为主要角色 drbdadm primary <resource>

 

您应该始终实施适当的防护策略。在没有防护的情况下使用“允许两个主键”是一个非常糟糕的主意,甚至比在没有防护的情况下使用单主键更糟糕。

11.8.2。临时双主模式

要为通常在单主配置中运行的资源临时启用双主模式,请发出以下命令:

# drbdadm net-options --protocol=C --allow-two-primaries <resource>

要结束临时双主模式,请运行与上述相同的命令,但使用 --allow-two-primaries=no(和所需的复制协议,如果适用)。

11.9。使用在线设备验证

11.9.1。启用在线验证

默认情况下,不启用资源的在线设备验证。要启用它,请将以下行添加到您的资源配置中 /etc/drbd.conf

resource <resource>

  net {

    verify-alg <algorithm>;

  }

  ...

}

<algorithm>可以是系统内核配置中内核加密API支持的任何消息摘要算法。通常情况下,你应该能够至少可供选择sha1md5crc32c

如果像往常一样对现有资源进行此更改,请drbd.conf与对等方同步,然后在两个节点上运行。drbdadm adjust <resource>

11.9.2。调用在线验证

启用在线验证后,您将能够使用以下命令启动验证运行:

# drbdadm verify <resource>

这样做时,DRBD将启动<resource>的联机验证运行 ,并且如果它检测到任何不同步的块,则会将这些块标记为此类并向内核日志中写入一条消息。那时使用该设备的任何应用程序都可以继续这样做,并且您也可以随意切换资源角色

如果在验证运行期间检测到不同步的块,则可以在验证完成后使用以下命令重新同步它们:

# drbdadm disconnect <resource>

# drbdadm connect <resource>

11.9.3。自动化在线验证

大多数用户将希望自动执行在线设备验证。这很容易实现。创建一个具有以下内容的文件,在您的一个节点/etc/cron.d/drbd-verify上命名 

42 0 * * 0    root    /sbin/drbdadm verify <resource>

这将在cron每个星期日的午夜42分之后调用设备验证;因此,如果您在星期一早上进入办公室,快速浏览资源状态将显示结果。如果您的设备很大,并且32小时还不够,那么您会注意到VerifyS VerifyT为连接状态,这意味着verify仍在进行中。

如果您已经为所有资源启用了在线验证(例如,通过添加到中的部分),则还可以使用:verify-alg <algorithm>common/etc/drbd.d/global_common.conf

42 0 * * 0    root    /sbin/drbdadm verify all

11.10。配置同步速率

通常,人们试图确保尽快完成后台同步(这将使同步目标上的数据暂时不一致)。但是,也有必要防止后台同步占用所有原本可用于前台复制的带宽,这将对应用程序性能造成不利影响。因此,您必须配置同步带宽以匹配您的硬件-您可以永久或实时地进行此操作。

 

设置高于辅助节点上的最大写吞吐量的同步速率是没有意义的。您绝不能指望辅助节点奇迹般地能够比其I / O子系统所允许的速度更快地写入数据,仅因为它恰好是正在进行的设备同步的目标。

同样,出于相同的原因,设置高于复制网络上可用带宽的同步速率也没有意义。

11.10.1。估计同步速度

 

此值的一个很好的经验法则是使用大约30%的可用复制带宽。因此,如果您拥有一个能够维持400MB / s的写入吞吐量的I / O子系统,以及一个能够维持110MB / s的网络吞吐量的千兆以太网(网络是瓶颈),那么您将计算:

 

10.同步器速率示例,有效带宽为110MB / s

因此,该rate选项的建议值为33M

相比之下,如果您有一个最大吞吐量为80MB / sI / O子系统和一个千兆以太网连接(I / O子系统是瓶颈),则可以计算:

 

11.同步器速率示例,有效带宽为80MB / s

在这种情况下,该rate选项 的建议值为24M

同样,对于800MB / s的存储速度和10Gbe的网络连接,您将以\240MB / s的同步速度拍摄。

11.10.2。可变同步速率配置

当多个DRBD资源共享一个复制/同步网络时,以固定速率进行同步可能不是最佳方法。因此,在DRBD 8.4.0中,默认情况下启用了可变速率同步。在这种模式下,DRBD使用自动控制环路算法来确定和调整同步速率。该算法确保始终有足够的带宽可用于前台复制,从而大大减轻了后台同步对前台I / O的影响。

可变速率同步的最佳配置可能会因可用的网络带宽,应用程序I / O模式和链路拥塞而有很大差异。理想的配置设置还取决于是否正在使用DRBD代理。寻求专业顾问以最佳配置此DRBD功能可能是明智的。下面提供了一个示例配置(假定与DRBD代理一起部署):

resource <resource> {

  disk {

    c-plan-ahead 5;

    c-max-rate 10M;

    c-fill-target 2M;

  }

}

 

BDP * 2c-fill-target是 一个很好的起始值,其中 BDP是复制链接上的带宽延迟乘积。

例如,当使用1GBit / s的跨接连接时,您将获得大约200µs的延迟8 ]
1GBit / s表示约120MB / s200 * 10 -6秒乘以24000字节。只要将该值向上舍入到下一个MB,就可以了。

另一个示例:具有200ms延迟的100MBit WAN连接意味着12MB / s乘以0.2s,即在线约为2.5MB。在这里,一个好的起始值为 c-fill-target3MB

drbd.conf有关其他配置项目的更多详细信息,请参见手册页。

11.10.3。永久固定同步速率配置

在一些非常受限的情况下9 ],仅使用一些固定的同步速率可能是有意义的。在这种情况下,首先您需要通过使用关闭动态同步速率控制器 c-plan-ahead 0;

然后,资源用于后台重新同步的最大带宽由资源的resync-rate选项确定。这必须包含在资源的 disk部分中/etc/drbd.conf

resource <resource>

  disk {

    resync-rate 40M;

    ...

  }

  ...

}

请注意,速率设置以字节为单位,而不是每秒位数;默认单位为Kibibyte,因此的值4096将被解释为4MiB

 

这仅定义了DRBD尝试达到的速率。如果存在吞吐量(网络,存储速度)较低的瓶颈,则将无法达到定义的速度(即“希望”性能)。

11.10.4。有关同步的更多提示

如果不再真正使用一些要同步的数据(例如,由于在未连接一个节点的情况下删除了文件),则可能会受益于Trim / Discard支持

此外,c-min-rate很容易造成误解-它没有定义最低同步速度,而是一个限制,在该限制之下DRBD不会故意放慢速度。
是否设法达到同步速度取决于您的网络和存储速度,网络延迟(对于共享链接而言可能会有很大不同)和应用程序IO(可能无法执行任何操作)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值