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 …

vue+react题集整理

1.Typescript中 interface 和 type 的差别是什么? interface只能用来描述对象类型 type可以描述任何类型组合 type后边需要有 interface后边没有 当多次使用相同名称定义一个 interface 时,它们会自动合并为一个接口。同名属性的不能进行类型覆盖修改&am…

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…

GEE(ccdc)——连续变化检测和分类 (CCDC)概述

连续变化检测和分类 (CCDC) 1 背景 1.1 土地变化监测 土地覆盖变化影响自然和人为环境,被全球气候观测系统视为基本气候变量。例如,荒漠化导致土地覆盖从植物生态系统转变为沙漠,森林砍伐导致森林转变为人类改变的土地用途,城市发展可以将自然环境转变为被建筑物和道路覆…

MVVM和MVC以及MVP的原理以及它们的区别

MVVM、MVC 和 MVP 都是前端架构模式&#xff0c;它们各自有不同的原理和特点。 MVC&#xff08;Model-View-Controller&#xff09; 原理&#xff1a;MVC 将应用程序分为三个部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&a…

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;为…

从计时器失效到判断页面可见性

目录 1&#xff0c;问题 - 计时器失效2&#xff0c;解决 - 页面可见性判断1&#xff0c;页面可见性2&#xff0c;visibilitychange3&#xff0c;终极解决方案 - lifecycle 3&#xff0c;精准计时 1&#xff0c;问题 - 计时器失效 问题复现&#xff1a;移动端必现&#xff0c;p…

BMS常见名词解释

&#xff08;1&#xff09;阻抗&#xff1a;在具有电阻、电感和电容的电路里&#xff0c;对电路中的电流所起的阻碍作用叫作阻抗。阻抗常用Z表示&#xff0c;是一个复数&#xff0c;实部称为电阻&#xff0c;虚部称为电抗。电容在电路中对交流电所起的阻碍作用称为容抗 ,电感在…

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…

spring事务(3)基于XML的声明式事务

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

Canvas学习笔记

2023.12.15 按照官方的文档安装production&#xff0c;安装了Ubuntu 20.04.6 LTS服务器版。安装过程比较顺利&#xff0c;除了git clone试了多次才成功。 官方安装文档安装node.js有一处错误&#xff0c; 正确的命令是&#xff1a; curl -sL https://deb.nodesource.com/se…

hive中如何求取中位数?

目录 中位数的概念代码实现准备数据实现 中位数的概念 中位数&#xff08;Median&#xff09;又称中值&#xff0c;统计学中的专有名词&#xff0c;是按顺序排列的一组数据中居于中间位置的数&#xff0c;代表一个样本、种群或概率分布中的一个数值&#xff0c;其可将数值集合…

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

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