DRBD状态指标和性能指标简介

DRBD经过/proc/drbd文件监控DRBD设备的运行状况。html

/proc/drbd  文件分为两大块,分别是当前配置的全部drbd资源的实时状态和DRBD性能指标。网络

image_thumb[2]

其中,第一行是状态标志:app

  • cs: Connection state,网络链接状态
  • ro: Resource roles, 节点的角色。格式:本地节点/对等节点
  • ds: Disk states, 磁盘状态
  • 同步协议 : protocol A、B和C
  • I/O状态标志位 : 表示格式为 [r/s][a/-][p/-][u/-][d/b/n/a/-][s/-]

第二行是性能指标(详细指标的说明参见 http://drbd.linbit.com/users-guide-8.4/ch-admin.html#s-proc-drbd): less

nns:** nr:** dw:** dr :** al :** bm :** lo :** pe :** ua :** ap :** ep :** wo :** oos :** socket

 

(1) DRBD 网络链接状态

网络链接状态就是上述的性能指标中的  "cs:Connnect" 这一列信息,DRBD中全部的状态以下图所示,其中红色部分表示是临时状态。ide

image_thumb[7]

  • StandAlone 独立的:网络配置不可用。资源尚未被链接或者是被管理断开(使用drbdadm disconnect命令),或者是因为出现认证失败或者是裂脑的状况。
  • Disconnecting 断开。
  • Timeout超时:与对等节点链接超时。
  • BrokerPipe:与对等节点链接丢失。
  • NetworkFailure:与对等节点失去链接后的临时状态。
  • ProtocolError. 与对等节点失去链接后的临时状态。
  • TearDown:对等节点链接关闭。
  • Unconnected :是尝试链接前的临时状态
  • WFConnection.等待和对等节点创建网络链接。
  • WFReportParams:已经创建TCP链接,本节点等待从对等节点传来的第一个网络包。
  • Connected 链接:Drbd已经创建链接,数据镜像如今可用,节点处于正常状态。
  • VerifyS:以本地节点为验证源的线上设备验证正在执行。
  • StartingSyncS:由管理者发起的彻底同步开始同步。
  • WFBitMapS:部分同步刚刚开始
  • SyncSource:以本节点为同步源的同步正在进行。
  • PausedSyncS:以本地节点是一个持续同步的源,可是目前同步已经暂停。多是由于另一个同步正在进行或者是使用命令drbdadm pause-sync暂停了同步
  • VerifyT:以本地节点为目标源的线上设备验证正在执行
  • StartingSyncT:由管理者发起的彻底同步刚刚开始
  • WFBitMapT:部分同步刚刚开始
  • WFSyncUUID:同步即将开始
  • SyncTarget:以本节点为同步目标的同步正在进行。
  • PausedSyncT:以本地节点为持续的同步目标,可是目前同步已经暂停,这多是由于另一个同步正在进行或者是使用命令drbdadm pause-sync暂停了同步。

 

其实,这些状态在DRBD源码中也能够看到:性能

/* The order of these constants is important.
* The lower ones (<C_WF_REPORT_PARAMS) indicate
* that there is no socket!
* >=C_WF_REPORT_PARAMS ==> There is a socket
*/
enum drbd_conns {
    C_STANDALONE,
    C_DISCONNECTING,  /* Temporal state on the way to StandAlone. */
    C_UNCONNECTED,    /* >= C_UNCONNECTED -> inc_net() succeeds */ui

    /* These temporal states are all used on the way
     * from >= C_CONNECTED to Unconnected.
     * The 'disconnect reason' states
     * I do not allow to change between them. */
    C_TIMEOUT,
    C_BROKEN_PIPE,
    C_NETWORK_FAILURE,
    C_PROTOCOL_ERROR,
    C_TEAR_DOWN,this

    C_WF_CONNECTION,
    C_WF_REPORT_PARAMS, /* we have a socket */
    C_CONNECTED,      /* we have introduced each other */
    C_STARTING_SYNC_S,  /* starting full sync by admin request. */
    C_STARTING_SYNC_T,  /* starting full sync by admin request. */
    C_WF_BITMAP_S,
    C_WF_BITMAP_T,
    C_WF_SYNC_UUID,.net

    /* All SyncStates are tested with this comparison
     * xx >= C_SYNC_SOURCE && xx <= C_PAUSED_SYNC_T */
    C_SYNC_SOURCE,
    C_SYNC_TARGET,
    C_VERIFY_S,
    C_VERIFY_T,
    C_PAUSED_SYNC_S,
    C_PAUSED_SYNC_T,

    C_AHEAD,
    C_BEHIND,

    C_MASK = 31
};

 

(2) DRBD 磁盘状态

能够经过查看/proc/drbd 或者是使用命令drbdadm dstate查看资源的磁盘状态,主要有以下的磁盘状态:

  • Failed :本地块设备报告I/O 错误的下一个状态。其下一个状态为Diskless无盘。
  • Diskless:本地没有块设备分配给DRBD使用,这就意味着没有可用的备用设备,或者使用drbdadm detach命令手工分离或者是底层的I/O 错误致使自动分离。
  • Negotiating:在已经链接的DRBD设备进行Attach读取元数据前的瞬间状态。
  • Attaching :读取元数据时候的瞬间状态。
  • DUnknown  :对等节点(peer)网络不可用
  • Consistent :数据一致可是没有链接。当创建链接时,它决定数据是UpToDate 或者是Outdated。
  • Outdated : 数据一致可是已通过时
  • Inconsistent : 数据是不一致的,在两个节点上(初始的彻底同步前)这种状态出现后当即建立一个新的资源。此外,在同步期间(同步目标)在一个节点上出现这种状态。
  • UpToDate  : 一致的最新的数据状态,这个状态是正常的状态。

 

同时,这些状态在DRBD源码中也能够看到

enum drbd_disk_state {
    D_DISKLESS,
    D_ATTACHING,      /* In the process of reading the meta-data */
    D_FAILED,         /* Becomes D_DISKLESS as soon as we told it the peer */
              /* when >= D_FAILED it is legal to access device->ldev */
    D_NEGOTIATING,    /* Late attaching state, we need to talk to the peer */
    D_INCONSISTENT,
    D_OUTDATED,
    D_UNKNOWN,       /* Only used for the peer, never for myself */
    D_CONSISTENT,     /* Might be D_OUTDATED, might be D_UP_TO_DATE ... */
    D_UP_TO_DATE,       /* Only this disk state allows applications' IO ! */
    D_MASK = 15
};

 

(3) DRBD I/O状态标志位

经过查看/proc/drbd 的以下图所示的数据,包含有关I/O 操做的当前资源的信息。

image

其具体表示的信息以下:

image

从左到右分别表示:

1. I/O suspension,r表示运行I/O,s表示suspended I/O,正常状况下为r

2. Serial resynchronization 串行同步:当资源等待同步时却推迟了从新同步,这则个标志变成A,正常状况为  –

3. Peer-initiated sync suspension  对等节点发起的同步暂停:当资源正在等待从新同步时,对等节点由于一些缘由发起暂停同步。这个标志变成p。正常为–

4.  Locally initiated sync suspension 本地发起的同步暂停:当资源等待从新同步时,在本地节点上用户发起同步暂停,这个标志变成u。正常为  –

5.  Locally blocked I/O 。正常为  -。可能会是一下标志:
    d:如由于一个短暂的磁盘状态致使的drbd内部出现I/O 阻塞
    b:备用设备的I/O 阻塞
    n:网络socket出现阻塞
    a:设备的I/O 阻塞和网络阻塞的组合
6.  Activity Log update suspension 活动日志更新暂停:当活动日志更新暂停,这个标志变成s。正常为  –

 

(4) DRBD 性能指标

/proc/drbd 第二行包含每一个资源的计数器和仪表情况的信息,以下图所示:

image

 

每一个状态指标的含义以下所示。

  • ns(network send 网络发送):net数据以kibyte经过网络链接发送到对等节点
  • nr(network receive 网络接收):经过网络链接以kibyte接收net数据
  • dw(disk write 磁盘写入):net数据以kibyte写入本地磁盘 、
  • dr(disk read 磁盘读取):net数据以kibyte读取本地磁盘数据
  • al(activity log 活动日志):活动日志区的元数据更新
  • bm(bit map 位图):位图区元数据更新
  • lo(local count  本地计数):DRBD请求的开放本地I/O 子系统的数量
  • pe(pending 待定):发送到对等节点可是还没有节点对方回答的请求的数目
  • ua(unacknowledged 未确认):经过网络链接接收到对等节点的请求,可是还没有获得回复
  • ap(application pending应用程序挂起):数据块I/O 请求转发到DRBD,可是DRBD还没有回答
  • ep(epochs):必定数量的epoch对象,一般为1,使用阻碍或者是没有排序写的方法时可能增长I/O 负载。
  • wo(write order 写入顺序)目前使用的写入顺序的方法:b(barrier障碍)、f (flush  刷新)、d(drain 漏)或者是n(none无)
  • oos(out of sync):以Kibibytes同步当前存储
相关文章
相关标签/搜索