LVM异常分析

  • 环境信息

硬件环境

软件环境

相关软件包

云上鲲鹏RH220

操作系统:麒麟V10sp1-0711

系统自带多路径:multipath-tools-0.8.4-6

光纤连接华为存储Oceanstor18500 v5

内核版本:4.19.90

  • 故障描述

云上鲲鹏RH220安装系统麒麟V10sp1-0711镜像后,升级内核版本到4.19.90-24.4,挂sp2的外网源,用yum install安装sp2外网源中的multipath-tools,版本为multipath-tools-0.8.4-6。后端存储使用的是光纤连接的华为存储Oceanstor18500 v5,系统识别到的多路径设备为mpatha,对mpatha做逻辑卷组datavg和逻辑卷datalv。多路径配置文件中没有配置devices项时,系统多路径启动正常;当修改multipath.conf文件中的Devices配置,将path_checker置成“tur”,重启服务器,多路径启动失败,通过mpatha做的lvm状态为not available。/etc/fstab 文件对datdlv设置为开机自动挂载。经过以上操作后,重启系统,出现datalv逻辑卷没有激活导致重启失败。

下面两幅截图为故障时,查询相关存储的信息:

  • 问题分析
  1. 配置device的差异分析

我们首先查看不配置device时,读取multipath默认配置信息,可以看到path_checker

为tur,如下所示:

将multipath日志级别调到9,可以打印出更详细的日志信息,重启服务器,在message日志中可以看到路径检测方法实际是rdac,而不是tur。如下图所示:

所以我们需要进一步分析path_checker为tur时,为什么会引起多路径异常导致mpatha做的lvm状态为not available。

  1. Lvm异常分析

继续分析multipath.conf配置了device信息,path_checker置成“tur”的情况, 根据messages日志,可以看到异常情况下,multipath有“mpatha: setting up map with 4/4 path checkers pending”和“mpatha: Entering recovery mode: max_retries=15”等错误日志,如下图:

进一步观察messages日志信息中multipath相关的信息,如下图所示:

根据日志可以看到,tur state一直是pending状态,直到multipath报错“mpatha: Entering recovery mode: max_retries=15”也是pending状态。

查看multipath源码,tur检测是采用异步的方式,通过pthread_create创建路径检测线程tur_thread来完成的。源码如下图所示:

继续查看tur_thread的实现如下,可以看到代码中的两条写日志,第一条日志“tur checker starting up”出现说明对路径的检测开始,之后调用tur_check接口对设备发送SCSI命令0x00(即TEST UNIT READY)检测路径,最后出现第二条日志“tur checker finished, state up”表明对路径检测完成。

结合messages日志,路径检测达到最大重试次数之后才出现tur_thread中的两条打印,这说明创建该线程后到切换到该线程执行真正的路径检测的时间较长,因为线程是异步执行的,执行时间是不确定的,导致mpatha的状态是异常的,即“MPATH_DEVICE_READY”为0,因此就不会去激活逻辑卷组datavg和逻辑卷datalv,需要重新加载multipath模块或者重新加载路径等方法来修复。

异常情况日志如下,可以看到MPATH_DEVICE_READY”为0,不会去进行激活mpatha上的逻辑卷组和逻辑卷。

正常情况日志可以看到MPATH_DEVICE_READY”为1,而且会激活mpatha上的逻辑卷组和逻辑卷。

结合上述日志和源码分析可以看出问题的根因是tur的异步线程执行时间不可控,导致tur一直处于pending状态。multipath中tur的检测方式有异步和同步两种方式,默认为异步,同步的方式需要用配置参数“force_sync yes”来开启,在代码中的实现如下图,这样会直接调用tur_check接口发送SCSI命令0x00到设备,不再另起线程检测。

三、验证

在客户环境上设置force_sync为yes,配置path_checker为tur,重启服务器,系统正常启动,查看messages日志,可以看到path state为up状态,没有pending状态,MPATH_DEVICE_READY为1,mpatha上的逻辑卷组和逻辑卷也被激活。

四、结论与解决方案

根据以上分析,首先不配置device的情况,分析日志可以看到华为存储默认的多路径检测方法不是tur,而是rdac,rdac的检测方式是同步的,不会起异步线程,因此重启系统正常。其次逻辑卷没有激活的原因是多路径的路径检测选用tur方法时,检测方式是异步的,异步线程执行时间是不确定的,导致路径检测一直处于pending状态,进而导致多路径mpatha的状态MPATH_DEVICE_READY为0,也不会去激活mpatha上的逻辑卷组和逻辑卷。

综上所述,经过日志分析和实验验证,该问题的解决方案为/etc/multipath.conf文件中的defaults部分增加参数“force_sync yes”将tur的检测方式变为同步。检测方式由异步变为同步,tur_check会等待本次检测成功再返回。在当前的使用场景下,可以采用同步检测这种配置方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/225537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssm+vue的高校智能培训管理系统分析与设计(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的高校智能培训管理系统分析与设计(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller&#xff09…

npm ,yarn 更换使用国内镜像源,阿里源,清华大学源

在平时开发当中,我们经常会使用 Npm,yarn 来构建 web 项目。但是npm默认的源的服务器是在国外的,如果没有梯子的话。会感觉特别特别慢,所以,使用国内的源是非常有必要的。 在这里插入图片描述 Nnpm, yarn …

1130 - Host “WIN-CA4FHERGO9J‘ is not allowed to connect to this MySQL server

1、知识小课堂 1.1 Mysql MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品。它是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS (Relational Database Management System&am…

elementui + vue2实现表格行的上下移动

场景&#xff1a; 如上&#xff0c;要实现表格行的上下移动 实现&#xff1a; <el-dialogappend-to-bodytitle"条件编辑":visible.sync"dialogVisible"width"60%"><el-table :data"data1" border style"width: 100%&q…

antd+vue:tree组件:父级节点禁止选择并不展示选择框——基础积累

antdvue:tree组件&#xff1a;父级节点禁止选择并不展示选择框——基础积累 1.判断哪些是父节点&#xff0c;给父节点添加disabled属性——this.permissionList是数据源2.通过css样式来处理disabled的父节点3.完整代码如下&#xff1a; 最近在写后台管理系统的时候&#xff0c;…

[GXYCTF2019]Ping Ping Ping (文件执行漏洞)

本题考点&#xff1a; 1、命令联合执行 2、命令绕过空格方法 3、变量拼接 1、命令联合执行 ; 前面的执行完执行后面的| 管道符&#xff0c;上一条命令的输出&#xff0c;作为下一条命令的参数&#xff08;显示后面的执行结果&#xff09;|| 当前面的执行出错时&#xff08;为…

C#winform实现单页面自由切换窗口

一、介绍 这是效果图&#xff0c;由于视频压缩画质很差&#xff0c;看个效果就好。 左侧是打开界面的按钮&#xff0c;点击左侧按钮右侧打开不同窗口&#xff0c;点击右侧窗口中的按钮&#xff0c;也可以切换页面&#xff0c;可以方便的进行返回、下一页等操作。 每个窗口打开…

JavaSE语法之七:封装

文章目录 一、封装的概念二、访问限定符三、封装扩展之包1. 包的概念2. 导入包中的类3. 自定义包4. 常见的包 四、实现封装五、static成员1. 再谈学生类成员变量2. static修饰成员变量3. static修饰成员方法4. static成员变量初始化 六、代码块1. 代码块概念及其分类2. 普通代码…

香槟过了保质期还能喝吗?

香槟是起泡酒的高级代表&#xff0c;是浪漫和喜庆的化身&#xff0c;它浑身上下都散发着无穷的魅力。那么&#xff0c;这么精贵的葡萄酒有没有保质期&#xff0c;会不会变质呢&#xff1f;云仓酒庄的品牌雷盛红酒分享当然会。一瓶酒的生命离不开它的保存期限&#xff0c;酒的质…

理解Socket

前言 我在去年就学习过Java中Socket的使用&#xff0c;但对于Socket的理解一直都是迷迷糊糊的。看了网上很多关于Socket的介绍&#xff0c;看完还是不太理解到底什么是Socket&#xff0c;还是很迷。直到最近在学习计算机网络&#xff0c;我才对Socket有了一个更深地理解。之前一…

HBuilder X

选择一款编程软件有以下几个好处&#xff1a; &#xff08;1&#xff09;提高效率&#xff1a;编程软件通常强调代码编辑和自动完成&#xff0c;可以帮助程序员更快速、更准确地输入代码。 &#xff08;2&#xff09;降低错误率&#xff1a;编程软件还可以检测代码中的错误&a…

如何提升数据结构方面的算法能力?

谈及为什么需要花时间学算法&#xff0c;我至少可以列举出三个很好的理由。 (1)性能&#xff1a;选择正确的算法可以显著提升应用程序的速度。仅就搜索来说&#xff0c;用二分查找替 换线性搜索就能为我们帶来巨大的收益。 (2)安全性&#xff1a;如果你选用了错误的算法&…

设计模式之结构型设计模式(二):工厂模式 抽象工厂模式 建造者模式

工厂模式 Factory 1、什么是工厂模式 工厂模式旨在提供一种统一的接口来创建对象&#xff0c;而将具体的对象实例化的过程延迟到子类或者具体实现中。有助于降低客户端代码与被创建对象之间的耦合度&#xff0c;提高代码的灵活性和可维护性。 定义了一个创建对象的接口&…

【通用】Linux,VSCode,IDEA,Eclipse等资源相对位置

正文 不论是 IDEA、Linux、VSCode、cmd等等吧&#xff0c;都遵循这个规则&#xff1a; 如果以斜杠开头&#xff0c;表示从根开始找&#xff1a; IDEA的根是classpath&#xff08;classpath就是项目被编译后&#xff0c;位于 target下的 classes文件夹&#xff0c;或者位于ta…

软实力篇---第三篇

系列文章目录 文章目录 系列文章目录前言一、专业技能怎么写二、排版注意事项三、其他一些小tips前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、专业技能怎么…

自然语言处理阅读第一弹

Transformer架构 encoder和decoder区别 Embeddings from Language Model (ELMO) 一种基于上下文的预训练模型,用于生成具有语境的词向量。原理讲解ELMO中的几个问题 Bidirectional Encoder Representations from Transformers (BERT) BERT就是原生transformer中的Encoder两…

爬虫akamai案例:DHL国际物流

声明&#xff1a; 该文章为学习使用&#xff0c;严禁用于商业用途和非法用途&#xff0c;违者后果自负&#xff0c;由此产生的一切后果均与作者无关 一、Akamai简介 Akamai是一家提供内容传递网络&#xff08;CDN&#xff09;和云服务的公司。CDN通过将内容分发到全球各地的服…

RK3568全国产化多网口板卡,支持内置UPS模块,支持麒麟翼辉国产系统

信迈XM-3568-01主板采用瑞芯微RK3568四核Cortex-A55 处理器&#xff0c;主频最高可达2.0GHz&#xff0c;效能有大幅提升最高可配8GB内存容量&#xff0c;频率高达1600MHz&#xff1b;支持全链路ECC&#xff0c;让数据更安全可靠配置双千兆自适应RJ45以太网口&#xff0c;并扩展…

带你学C语言~指针(1)

Hello,CSDN的各位家人们&#xff0c;你们好啊&#xff01;今天&#xff0c;小赵要给大家分享的C语言知识是指针&#xff0c;相信不少家人们都或多或少被指针搞得晕头转向&#xff0c;小赵一开始也是&#xff0c;但后来小赵经过不断地努力学习&#xff0c;终于将这里面的知识弄懂…

Pearson、Spearman 相关性分析使用

介绍 Pearson 积差相关系数衡量了两个定量变量之间的线性相关程度。 用来衡量两个数据集的线性相关程度&#xff0c;仅当一个变量的变化与另一个变量的比例变化相关时&#xff0c;关系才是线性的。 Spearman等级相关系数则衡量分级定序变量之间的相关程度。斯皮尔曼相关系数不…