DRBD 的日常管理

DRBD是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。DRBD是由内核模块和相关脚本而构成,用以构建高可用性的集群。对于在高可用集群的环境里,尽管DRBD磁盘资源被作为一种集群服务由集群管理组件接管,但对于DRBD的常用命令的掌握还是非常有必要的。本文描述了一些常用的DRBD日常管理命令,供大家参考。 有关DRBD的相关知识,可以参考: DRBD原理及特性概述 快速安装及部署DRBD

一、DRBD用户空间管理工具

drbdadm: 
    高层的 DRBD 程序管理套件工具。 它从配置文件/etc/drbd.conf 中获取所有配
    置参数。 drbdadm 为 drbdsetup 和 drbdeta 两个命令充当程序的前端应用, 执行 drbdadm
    实际是执行的 drbdsetup 和 drbdeta 两个命令。
drbdsetup:
    drbdsetup 可以让用户配置已经加载在内核中运行的 DRBD 模块,它是底层
    的 DRBD 程序管理套件工具。使用该命令时,所有的配置参数都需要直接在命令行中定义,
    虽然命令和灵活,但是大大的降低了命令的简单易用性,因此很多的用户很少使用debdsetup。
drbdmeta: 
    drbdmeta 允许用户创建、转储、还原和修改 drbd 的原数据结构。这个命令也是用户极少用到。
###获取drbdadm帮助
# drbdadm 

USAGE: drbdadm [OPTION...] [-- DRBDSETUP-OPTION...] COMMAND {all|RESOURCE...}

OPTIONS:
 {--stacked|-S}  ### Author : Leshami
 {--dry-run|-d}  ### Blog   : http://blog.csdn.net/leshami
 {--verbose|-v}
 {--config-file|-c} val
 {--config-to-test|-t} val
 {--drbdsetup|-s} val
 {--drbdmeta|-m} val
 {--drbd-proxy-ctl|-p} val
 {--sh-varname|-n} val
 {--force|-f}
 {--peer|-P} val
 {--version|-V}

COMMANDS:
 attach                             detach                             
 connect                            disconnect                         
 up                                 down                               
 primary                            secondary                          
 invalidate                         invalidate-remote                  
 outdate                            resize                             
 syncer                             verify                             
 pause-sync                         resume-sync                        
 adjust                             wait-connect                       
 wait-con-int                       role                               
 cstate                             dstate                             
 dump                               dump-xml                           
 create-md                          show-gi                            
 get-gi                             dump-md                            
 wipe-md                            hidden-commands             

###查看连接状态
# drbdadm cstate all
Connected

###查看资源角色
# drbdadm role all
Primary/Secondary

###查看磁盘状态
# drbdadm dstate all
UpToDate/UpToDate

更多有关状态值,角色值等详细描述:
http://drbd.linbit.com/users-guide-8.4/

###资源的启用
# drbdadm up <resource>

###资源禁用
# drbdadm down <resource>

###资源升级
# drbdadm primary <resource>

###资源降级
# drbdadm secondary <resource>

二、DRBD其他工具的使用

1、查看drbd服务

# service drbd status
drbd driver loaded OK; device status:
version: 8.3.15 (api:88/proto:86-97)
GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by root@orasrv1.xlk.com, 2015-10-31 10:58:13
m:res     cs         ro                 ds                 p  mounted  fstype
0:redisk  Connected  Primary/Secondary  UpToDate/UpToDate  C  /data    ext3

2、命令drbd-overview

# /usr/local/drbd/sbin/drbd-overview
  0:redisk  Connected Primary/Secondary UpToDate/UpToDate C r----- /data ext3 1004M 18M 936M 2%

3、/proc/drbd文件查看

# cat /proc/drbd
version: 8.3.15 (api:88/proto:86-97)  ###版本,下一行位编译信息
GIT-hash: 0ce4d235fc02b5c53c1c52c53433d11a694eab8c build by root@orasrv1.xlk.com, 2015-10-31 10:58:13
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:56 nr:0 dw:56 dr:1181 al:3 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

设备号               状态                 角色(当前/对等)               磁盘状态及协议,I/O状态
-----    --------------         ---------------------     -----------------------------
   0:     cs:Connected          ro:Primary/Secondary        ds:UpToDate/UpToDate C r-----

    I/O状态包括6种:   
    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。正常为 –

第二行为性能指标 
ns:56   nr:0    dw:56   dr:1181 al:3    bm:0    lo:0    pe:0    ua:0    ap:0    ep:1    wo:f     oos:0  

    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( pengding 待定):发送到对等节点但是尚未节点对方回答的请求的数目
    UA( unacknowledged 未确认):通过网络连接接收到对等节点的请求,但是尚未得到回复
    AP( alllication 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):以 kububyte 同步当前存储

三、DRBD主从角色切换

1、主服务器操作

卸载已经mount到主服务器的drbd磁盘
对于无法umount情形,可以使用lsof |grepdrbd方式查看哪些进程在使用drbd分区上的文件,将其关闭
    # umount /data
将drbd主服务角色切换为从服务器角色
    # drbdadm secondary redisk

2、从服务器操作

将drbd从服务角色提升为主服务器角色
    # drbdadm primary redisk
挂载drbd分区,-o noatime参数将关闭因访问产生更新文件atime的操作,提供磁盘I/O性能
    # mount -o noatime /dev/drbd0 /data

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏谦谦君子修罗刀

程序员面试闪充--版本管理之SVN

在软件开发过程中,通常一个软件项目要靠多人合作完成的。而在此过程中的修修改改一定会存在一些不可避免的问题。可能一不小心就闹出个大乱子呢。 一、源代码管理的问题 ...

2686
来自专栏企鹅号快讯

如何通过Smem命令行检查Ubuntu上的内存使用情况

如何检查Ubuntu Linux上的内存使用情况,我们可以安装并使用Smem内存报告工具来显示Ubutnu Linux系统上的内存使用情况。 Smem是一个命令...

2438
来自专栏c#开发者

Android Studio导入第三方类库的方法

Android Studio导入第三方类库的方法 本人也刚刚开始尝试做android app的开发,听说android studio是Google支持的andr...

3245
来自专栏大数据架构师专家

系统监控工具-glances

作为运维不仅要时时监控系统,还需要优雅的装13,当别人还在命令的小黑框里敲打那个top命令去查看系统性能的时候,我们带你使用web端监控系统性能

1444
来自专栏地方网络工作室的专栏

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十)打包项目并发布到子目录

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十)打包项目并发布到子目录 前情回顾 通过上一章《Vue2+VueRou...

2498
来自专栏ionic3+

解决ionic4编译过慢的问题

ionic4中编译一次需要几十秒,远比ionic3久,在Github上看有没有人反馈这个问题,发现还真的有,而解决方法是:

6060
来自专栏L宝宝聊IT

服务器监控cacti

5054
来自专栏云计算

6个虚拟机备份和恢复的最佳实践

虚拟机的架构与传统的物理机有着天壤之别,因此不适合于传统的备份方案。在本文中,我们将介绍一些虚拟机备份的最佳实践。

22610
来自专栏Debian社区

Debian 9修复18个重要的Linux 4.9 LTS内核安全漏洞

Debian 项目近日发布了针对 Debian GNU/Linux 9 “ Stretch ” 系列操作系统新的 Linux 内核安全更新,修复了最近发现的几个...

1384
来自专栏CSDN技术头条

从0到1搭建属于自己的服务器

云计算这个概念从提出到现在已经十多年了,在这些年里,云计算取得了飞速的发展与翻天覆地的变化,而云计算也给我们很多开发者带来了福音,比如早期的微信公众号开发,我们...

1.2K6

扫码关注云+社区

领取腾讯云代金券