如何判断DRBD设备是否被占用(无需切换至secondary状态)及查询占用进程
如何判断DRBD设备是否被占用(无需切换至secondary状态)及查询占用进程
我来给你分享几个不用切换DRBD角色就能搞定的实用方法,既能判断设备是否被占用,还能揪出到底是谁在占用它:
用
lsof工具直接查询
这是最常用的查看打开文件/设备的命令,直接指定你的DRBD设备路径就行,比如:lsof /dev/drbd0如果有输出结果,就说明这个DRBD设备正被占用。输出里会清晰显示进程名称、PID、运行用户等信息,哪怕是XEN虚拟机这类后台进程在占用,也能一眼看出来。要是想统计占用的进程数量,可以用:
lsof /dev/drbd0 | tail -n +2 | wc -l(
tail -n +2是去掉表头行,避免统计错误)用
fuser命令快速排查
这个工具专门用来识别正在使用某个文件/设备的进程,加上-v参数能显示详细信息:fuser -v /dev/drbd0执行后会列出所有占用该DRBD设备的进程,包括进程的PID、用户、访问类型(比如读/写),信息一目了然,而且执行速度很快。
额外小技巧:检查XEN虚拟机的挂载情况
如果你怀疑是XEN虚拟机在占用设备,除了上面的进程工具,还可以查看XEN虚拟机的配置文件(通常在/etc/xen/目录下),搜索DRBD设备路径,确认是否有虚拟机挂载了它。不过这种方式不如进程工具直接,更适合辅助验证。
这些方法都不需要你执行drbdadm secondary切换角色,完全在primary状态下就能安全操作,不用担心影响业务。
备注:内容来源于stack exchange,提问作者AlexKing
相关产品推荐
相关产品推荐

