在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. shiro中编码/加密

    在涉及到密码存储问题上,应该加密/生成密码摘要存储,而不是存储明文密码.比如之前的600w csdn账号泄露对用户可能造成很大损失,因此应加密/生成不可逆的摘要方式存储. 5.1 编码/解码 Shir ...

  2. 使用maven命令把jar包加入maven仓库

    命令:mvn install:install-file -Dfile=D:\jar包路径xxxx.jar -DgroupId=根目录文件夹名字  -DartifactId=子目录文件夹 -Dversi ...

  3. jquery获取和设置值

    1.html html() :   取得第一个匹配元素的html内容. html(value): 设置每一个匹配元素的html内容 2text text() :  取得所有匹配元素的内容,结果是由所有 ...

  4. 非常不错的地区三级联动,js简单易懂。封装起来了

    首先需要引入area.js,然后配置并初始化插件: 例: <!-- 绑定银行卡开始 --> <script src="js/area.js"></sc ...

  5. Python返回函数、闭包,匿名函数

    函数不仅可以作为函数参数,还可以作为函数返回结果 def pro1(c,f): def pro2(): return f(c) return pro2 #调用pro1函数时,返回的是pro2函数对象& ...

  6. Android Studio build gradle project info 卡主不动解决方法.

    项目里的: build.gradle 依赖 的gradle 版本 在每个项目里 gradle/wrapper/properties/gradle-wrapper.properties 配置文件里 用户 ...

  7. Tomcat禁用SSLv3和RC4算法

    1.禁用SSLv3(SSL 3.0 POODLE攻击信息泄露漏洞(CVE-2014-3566)[原理扫描]) 编缉$CATALINA_HOEM/conf/server.xml配置文件,找到https端 ...

  8. io重定向打开关闭 Eclipse中c开发printf无法输出解决办法

    if(freopen("e:\\lstm-comparec\\lstm\\lstm\\output.txt","a",stdout)==NULL)fprintf ...

  9. zabbix3.4.7主动模式监控日志(多关键字)

    日志监控原理 1.Zabbix Server和Zabbix Agent会追踪日志文件的大小和最后修改时间,并且分别记录在字节计数器和最新的时间计数器中. 2.Agent会从上次读取日志的地方开始读取日 ...

  10. 逆袭之旅DAY30.XIA.集合

    2018年7月26日 面试题:List和set的区别 ArrayList 遍历效率较高,但添加和删除较慢 遍历集合最高效的方法:迭代器 集合的遍历: 迭代器:Iterator 创建 为什么使用泛型: ...