在DRBD进入使用阶段之后,要经常查看它的工作状态,通过这些状态来判断DRBD运行情况。

1) 使用drbd-overview命令观察状态
     最为简便的方式就是运行drbd-overview命令
# drbd-overview
  0:r0  Connected Primary/Secondary UpToDate/UpToDate C r—– /nfs ext4 20G 45M 19G 1%

2) 通过伪文件系统/proc/drbd 文件来运行状态
# cat /proc/drbd 
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-11-24 14:51:37
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r—–
    ns:0 nr:0 dw:664 dr:2017 al:1 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
状态指示
第一行:  软件的版本号
第二行: 有关构建DRBD的特定信息
第三行: DRBD的主要信息

cs(Connect State):表示网络连接的状态
ro(Role):表示运行节点的角色,Primary/Secondary 表示本机为主
ds(Disk State):表示当前的硬盘状态
Replication protocol:表示当前复制所使用的协议,可以是ABC
I/O Flags:6个I/O输入输出标志,从各个方面反映了本地资源的状态
Performance indicators:性能指标,这是一组统计数据和计数器,反映出资源的利用情况和性能


3) 连接状态
连接状态可以通过监控/proc/drbd文件得到具体信息,也可以使用drbdadm cstate命令来获取。

# drbdadm cstate r0

Connected
连接的状态也有可能是以下其中的一种:
StandAlone:没有可用的网络配置,资源没有被连接,或者执行过 drbdadm disconnect resource 命令,例子如下:
# drbdadm disconnect all
# drbdadm cstate r0
StandAlone

4) 资源角色
资源连接状态可以通过/proc/drbd或者使用drbdadm role resource来获取。
# drbdadm role all
Primary/Secondary
可能的角色为:
Primary:当前的资源是Primary角色,可以进行读取和定稿的操作。该角色在两个节点中仅能出现在一个节点[双节点模式除外]
Secondary:表示该角色为从节点,这种角色下既不能读取也不写入。这种角色可能会发生在一个或者两个节点上。
第一行:
Unknown:这种角色表示当前资源的角色不。本地资源不会有这种状态,它仅出现在用来表示对点的资源角色,而且仅在无法连接模式下。如下:
# drbdadm disconnect all
# cat /proc/drbd 
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-11-24 14:51:37
 0: cs:StandAlone ro:Secondary/Unknown ds:UpToDate/DUnknown   r—–
    ns:660 nr:4 dw:664 dr:1029 al:5 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

5) 磁盘状态
磁盘状态可以通过/proc/drbd或者使用drbdadm dstate resource来获取。
# drbdadm dstate r0
UpToDate/UpToDate
首先输入的是本地硬盘状态,后面的是远程硬盘状态。以下为硬盘的状态:

Diskless:无盘状态,当前没有与DRBD驱动相关块设备。这种状态通常代表着资源没有被附加上后台设备。可能是通过使用 rbdadm detach命令手工分离了后台设备。或者由于底层I/O的错误而自动分离。

Attaching:附加状态,这种状态是在读取元数据时出现的一种瞬间状态。

Failed:失败状态,也是一种瞬间状态,由于本地块设备报告,接着就是一个I/O错误,下一个状态就是Diskless.

Negotiating:协商状态,在已经连接的DRBD设备上进行“Attach”读取元数据的一个瞬间状态。

Inconsistent:数据不一致状态这种状态出现两个DRBD节点上的资源在创建了新的资源后立即建立连接时(就是完全初始化同步之前),这种情况下两个资源节点都会出现,另一种可能就是在同步过程中一个节点出现这种状态,而且是出现在同步的目标上。

Outdated:数据过期状态,资源数据一致,但是已经过期,这种情况需要进行进一步处理。

DUnknown:硬盘不明确状态,如果网络连接无效,那么这种状态将会被用于表示对点磁盘的状态。

Consisten:数据一致状态,在没有连接时数据一致的状态,当连接完成后将会决定数据的状态是UpToDate状态还是Outdated状态。

UpToDate:数据一致状态,而且是最新的数据一致状态。这也是正常状态模式。


6) I/O状态标志
在/proc/drbd文件中提供了有关I/O操作信息,这种标志信息一共有6个,可能的值如下:

  • I/O暂停信息状态:可能看到的值两个,不是r就是s,r表示正在运行,s表示暂停,通过为r.
  • 串行重新同步状态:当资源重新同步时,但是因为重新同步延时,那么这个标志将会变为a,通常为”-“.
  • 对点初始化同步延时状态:在资源等待重新同步时,但是本地节点的使用者延时了同步,那么这个状态将变为”u”
  • 本地I/O阻塞状态:通常为“-”,可能还会出现如下标志:
d:内部原因导致I/O阻塞,例如,瞬间状态出现时。

b:后台设备i/o出现阻塞。

n:网络字出现阻塞。

a:同时出现设备i/o阻塞和网络阻塞。

  • 活动日志更新暂时状态:当活动日志更新暂停时,这个标志变成了s。

7) 性能指标
在预览/proc/drbd时,每个资源的第二行都包含了计数器和度量值。
# cat /proc/drbd 
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2014-11-24 14:51:37
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r—–
    ns:524420 nr:0 dw:525084 dr:2041 al:132 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
ns(network send):通过网络连接发送到对端的数据量,单位KB.
nr(network receive):通过网络连接从对点接收的数据量,单位KB.
dw(disk write):向本地硬盘写入网络数据,单位KB.
dr(disk read):网络从本地硬盘读取的数据量,单位KB.
al(activity log):元数据活动日志的更新次数。
bm(bit map):元数据区域更新的资源。
lo(local count):由DRBD产生的本地I/O请求数据。
pe(pending):就是等待响应,已经发送到圣战,但是还没有得到对端回应的数量。
ua(unacknow wledged):就是未确认,通过网络连接收到对方的请求,但是还没有做出处理的数量.
ap(application pending):转发到DRBD的I/O请求,仍然没有被DRBD所响应。
ep(epochs):epoch对象的数,通常为1。当使用barrier或者none写顺序方法时,可能会增加底层I/O负荷。
wo(write order):当前使用的写顺序的方法:b(barrier)/f(flush)/d(drain)/n(none)。
oos(out of sync):当前没有同步的数据总数量,单位为KB.

8) 启用/禁用资源
//启用资源r0
# drbdadm up r0
提示:也可以将r0更改为all

//禁用资源r0
# drbdadm down r0
提示:也可以将r0更改为all

9) 重新配置资源

DRBD在运行时,允许用户重新配置资源,为了实现这个目的,需要进行以下操作:
1、在DRBD的配置文件/etc/drbd.conf(包括所有资源)中进行有必要的改变
2、在两个节点之间同步DRBD的配置文件
3、在两个节点上执行drbdadm adjust <source>命令 (在执行此命令时,建议添加-d参数)

10) 导出当前资源配置信息
# drbdadm dump all
# /etc/drbd.conf
common {
    protocol               C;
}

# resource r0 on node2.dd.com: not ignored, not stacked
resource r0 {
    on node1.dd.com {
        device           /dev/drbd0 minor 0;
        disk             /dev/sdb1;
        address          ipv4 192.168.198.201:7788;
        meta-disk        internal;
    }
    on node2.dd.com {
        device           /dev/drbd0 minor 0;
        disk             /dev/sdb1;
        address          ipv4 192.168.198.202:7788;
        meta-disk        internal;
    }
    syncer {
        rate             100M;
    }
}

DRBD常用管理篇的更多相关文章

  1. 20、高可用数据同步工具drbd介绍

    20.1.什么是drbd: 20.2.drbd的工作原理: 20.3.drbd的同步模式: 1.实时同步模式: 2.异步同步模式: 20.4.drbd生产应用场景: 1.生产场景中drbd常用于基于高 ...

  2. Linux常用命令--网络管理篇(三)

    ping –b 10.0.0.255 扫描子网网段 ifconfig 查看网络信息 netconfig 配置网络,配置网络后用service network restart重新启动网络 ifconfi ...

  3. Linux运维入门到高级全套常用要点

    Linux运维入门到高级全套常用要点 目 录 1. Linux 入门篇................................................................. ...

  4. 1 NFS高可用解决方案之DRBD+heartbeat搭建

    preface NFS作为业界常用的共享存储方案,被众多公司采用.我司也不列外,使用NFS作为共享存储,为前端WEB server提供服务,主要存储网页代码以及其他文件. 高可用方案 说道NFS,不得 ...

  5. MYSQL企业常用架构与调优经验分享

    一.选择Percona Server.MariaDB还是MYSQL  mysql应用源码:http://www.jinhusns.com/Products/Download/?type=xcj 1.M ...

  6. Linux常用命令_(安装包管理)

    rpm命令: RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm -ivh rpm包安装rpm包rpm -Uvh rp ...

  7. Drbd 安装配置

    一.Drbd介绍 Distributed Replicated Block Device(DRBD)是基于块设备在不同的高可用服务器之间同步和镜像数据的软件,通过它可以实现在网络中两台服务器这间基于块 ...

  8. MySQL企业常用集群图解

      mysql集群架构图片 1.mysql企业常用集群架构 在中小型互联网的企业中.mysql的集群一般就是上图的架构.WEB节点读取数据库的时候读取dbproxy服务器.dbproxy服务器通过对S ...

  9. Linux 常用命令使用方法大搜刮

    Linux 常用命令使用方法大搜刮 1.# 表示权限用户(如:root),$ 表示普通用户  开机提示:Login:输入用户名  password:输入口令   用户是系统注册用户成功登陆后,可以进入 ...

随机推荐

  1. ​ 别忘了Nologging哦

    ​ ​ 别忘了Nologging哦

  2. 在spring中,C3P0的一些配置(部分)

    <!-- c3p0连接池配置 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPoo ...

  3. Python序列化-pickle和json模块

    Python的“file-like object“就是一种鸭子类型.对真正的文件对象,它有一个read()方法,返回其内容.但是,许多对象,只要有read()方法,都被视为“file-like obj ...

  4. 【转】Entity Framework教程(第二版)

    源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐.可能是当时Entity Framework刚刚发布介绍EF的文章比较少.一晃这么多年过去了,E ...

  5. nodejs 修改端口号 process.env.PORT(window环境下)

    各个环境下,nodejs设置process.env.PORT的值的命令,如下1.linux环境下: PORT= node app.js 使用上面命令每次都需要重新设置,如果想设置一次永久生效,使用下面 ...

  6. js匀速运动

    匀速运动      封装匀速运动原理:设置定时器,将传入的ele,设定一个速度,使用定时器获取当前时间的一个位置,加上速度值,给回节点,当节点到达目标位置,判断给他清除定时器. 匀速效果地址:http ...

  7. centos6.5+python2.7+flask+apache+mod-wsgi部署

    flask部署,使用的是centos6.5,python2.7,版本很重要.基本步骤如下: 一.创建虚拟环境,创建目录把项目拷进去 二.安装mod-wsgi和apache easy_install m ...

  8. vue数据请求显示loading图

    一般项目中,有时候会要求,你在数据请求的时候显示一张gif图片,然后数据加载完后,消失.这个,一般只需要在封装的axios中写入js事件即可.当然,我们首先需要在app.vue中,加入此图片.如下: ...

  9. day8-python函数

    函数的简介 函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字. 降低编程难度 代码重用 可以通过函数名在程序的不同地方多长执行,这通常叫函数调用(.). 预定义函数 ...

  10. RabbitMQ 均衡调度(公平分发机制)

    均衡调度是针对Consumer来说的.现在有两个Consumer请求同一个队列的消息.RabbitMQ会将序号为奇数的消息发给第一个Consumer,会将序号为偶数的消息发送给第二个Consumer. ...