【问题实操】银河高级服务器操作系统实例分享,三台服务器宕机解决方式

1.服务器环境以及配置

物理机/虚拟机/云/容器

物理机

外网/私有网络/无网络

私有网络

处理器:

Hygon C86 7265 24-core Processor 2 of 2 CPU sockets populated, 24 cores/48 threads per CPU 48 total cores, 96 total threads

内存:

768 GiB

整机类型/架构:

ZTE  R5930 G2

BIOS版本:

Insyde 03.15.100 2022/09/27

具体操作系统版本

Kylin Linux Advanced Server V10 (Tercel) V10 (Tercel)

内核版本

4.19.90-24.4.v2101.ky10.x86_64

2.问题现象描述

3台服务器宕机,有生成vmcore,需要厂家分析宕机原因。

3.问题分析

分析sosreport,当前系统为Kylin Linux Advanced Server V10 SP1,而内核使用的是V10 SP2的内核,系统组件还是V10 SP1的系统组件。

查看kdump的配置情况,设置了kernel.hung_task_panic=1,当系统发生hung task的时候,系统会崩溃,触发异常重启。

3.1 分析sosreport-NFDW5-X86TSTACK-TX-COM30-20231208104840

查看磁盘存储情况,多路径盘没有文件系统格式。

3.1.1 分析vmcore-dmesg日志

系统出现hung task,出现了blk_cloned_rq_check_limits: over max size limit日志打印,及多路径的相关报错。

[8383722.927691] sd 34:0:0:2: alua: port group 01 state A preferred supports tolUsNa
[8383722.928275] sd 34:0:0:2: alua: port group 01 state A preferred supports tolUsNA
[8383723.023106] blk_cloned_rq_check_limits: over max size limit.
[8383723.030122] blk_cloned_rq_check_limits: over max size limit.
[8383723.030133] device-mapper: multipath: Failing path 8:144.
[8383723.919298] device-mapper: multipath: Reinstating path 8:160.
[8383723.921083] device-mapper: multipath: Reinstating path 8:192.
[8383723.922643] device-mapper: multipath: Reinstating path 8:176.
[8383723.925439] device-mapper: multipath: Reinstating path 8:208.
[8383723.931608] sd 34:0:1:2: alua: port group 01 state A preferred supports tolUsNA
[8383723.932190] sd 34:0:1:2: alua: port group 01 state A preferred supports tolUsNA
[8383724.023032] blk_cloned_rq_check_limits: over max size limit.
[8383724.030045] blk_cloned_rq_check_limits: over max size limit.
[8383724.030056] device-mapper: multipath: Failing path 8:208.
[8383724.037055] blk_cloned_rq_check_limits: over max size limit.
[8383724.037167] device-mapper: multipath: Failing path 8:176.
[8383724.044067] blk_cloned_rq_check_limits: over max size limit.
[8383724.044148] device-mapper: multipath: Failing path 8:192.
[8383724.051079] blk_cloned_rq_check_limits: over max size limit.
[8383724.051162] device-mapper: multipath: Failing path 8:160.
[8383724.929323] device-mapper: multipath: Reinstating path 8:240.
[8383724.939527] sd 35:0:2:2: alua: port group 01 state A preferred supports tolUsNA
[8383724.940120] sd 35:0:2:2: alua: port group 01 state A preferred supports tolUsNA
[8383725.034956] blk_cloned_rq_check_limits: over max size limit.
[8383725.041964] blk_cloned_rq_check_limits: over max size limit.
[8383725.041975] device-mapper: multipath: Failing path 8:240.
[8383725.899647] INFO: task worker:2189823 blocked for more than 120 seconds.
[8383725.907831]       Tainted: G           OE     4.19.90-24.4.v2101.ky10.x86_64 #1
[8383725.916697] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[8383725.926127] worker          D    0 2189823      1 0x000003a0
[8383725.933137] Call Trace:
[8383725.936437] device-mapper: multipath: Reinstating path 8:224.
[8383725.936568]  ? __schedule+0x296/0x910
[8383725.945235] device-mapper: multipath: Reinstating path 65:0.
[8383725.948431]  schedule+0x28/0x80
[8383725.955527] sd 35:0:1:2: alua: port group 01 state A preferred supports tolUsNA
[8383725.959626]  schedule_timeout+0x1ee/0x3a0
[8383725.969017] sd 35:0:1:2: alua: port group 01 state A preferred supports tolUsNa
[8383725.973626]  ? blk_flush_plug_list+0x218/0x270
[8383725.984815] sd 35:0:1:2: alua: port group 01 state A preferred supports tolUsNA
[8383725.988127]  io_schedule_timeout+0x19/0x40
[8383726.002222]  wait_for_completion_io+0x126/0x190
[8383726.007971]  ? wake_up_q+0x70/0x70
[8383726.012459]  submit_bio_wait+0x5b/0x80
[8383726.017335]  blkdev_issue_zeroout+0xdc/0x210
[8383726.022794]  ? blkdev_ioctl+0x893/0x930
[8383726.027766]  blkdev_ioctl+0x893/0x930
[8383726.032547]  block_ioctl+0x39/0x40
[8383726.037034]  do_vfs_ioctl+0xa4/0x640
[8383726.041721]  ? do_numa_page+0x250/0x267
[8383726.046685]  ksys_ioctl+0x70/0x80
[8383726.046888] blk_cloned_rq_check_limits: over max size limit.
[8383726.051076]  __x64_sys_ioctl+0x16/0x20
[8383726.058080] blk_cloned_rq_check_limits: over max size limit.
[8383726.058088] device-mapper: multipath: Failing path 65:0.
[8383726.062961]  0xffffffffc0ee3868
[8383726.062971]  ? __audit_syscall_entry+0x103/0x130
[8383726.069969] blk_cloned_rq_check_limits: over max size limit.
[8383726.069976] device-mapper: multipath: Failing path 8:224.

整理hung task堆栈,从堆栈中可见调用了blkdev_issue_zeroout,这可能是在做格式化的操作。

ksys_ioctl+0x70/0x80  
do_vfs_ioctl+0xa4/0x640  
? do_numa_page+0x250/0x267  
block_ioctl+0x39/0x40  // 块设备的ioctl操作处理函数,它处理块设备相关的ioctl调用
blkdev_ioctl+0x893/0x930  // 块设备ioctl系统调用的处理函数,用于执行块设备相关的命令,如分区大小调整、获取设备信息等
blkdev_ioctl+0x893/0x930  
? blkdev_issue_zeroout+0xdc/0x210  // 可能用于将块设备的一个区域清零
submit_bio_wait+0x5b/0x80  // 提交一个bio结构(块I/O)到底层设备,并等待操作完成
? wake_up_q+0x70/0x70  // 用于唤醒在等待队列中的进程
wait_for_completion_io+0x126/0x190   // 用于等待I/O操作的完成
io_schedule_timeout+0x19/0x40   // 可能是负责刷新块插件列表的函数,用于优化I/O操作的执行
? blk_flush_plug_list+0x218/0x270  
schedule_timeout+0x1ee/0x3a0

根据沟通了解到,当时正在执行mkfs.xfs的格式化操作,然后导致hung task。加上堆栈中的blkdev_issue_zeroout相关函数,推断出,这个内核的已知问题,且符合已知问题的堆栈。

报错问题的原因是系统在处理Write Zero类IO(输入/输出)请求时,发现多路径设备及其底层设备不支持Write Same/Zero命令。这导致了在多路径模块中IO请求以IOERR(输入/输出错误)状态完成,被误判为路径失效。随后,这个Write Zero IO请求在多路径中循环选择路径,但由于所有路径都不支持Write Zero命令,导致IO请求无法完成,反复导致路径失败,无法正常处理。

解决方案是对Write Zero类IO请求进行修复调整,将其状态码改为NOTSUPP(不支持),以便通知IO请求的发起方该请求不被支持。这样,发起方可以知晓情况进行调整,而不是一直等待一个不能被处理的IO请求的完成。该修复方案已合入4.19.90-23.30.v2101及以上内核版本,建议通过升级内核来解决此问题。

3.1.2 分析sa日志

sar -rh -f sa06,查看问题发生时的内存使用情况,空闲内存还有很多。

sar -u -f sa06,当时的CPU使用率很低。

sar -q -f sa06,当时的系统负载也很低。

3.2 分析sosreport-NFDW5-X86TSTACK-TX-COM80-20231208104517

3.2.1 分析vmcore-dmesg日志

查看vmcore-dmesg日志,和前面一台机器的vmcore-demsg日志相同,是同一个问题。

[8444815.609179] device-mapper: multipath: Failing path 8:240.
[8444815.616184] blk_cloned_rq_check_limits: over max size limit.
[8444815.616223] device-mapper: multipath: Failing path 8:224.
[8444815.623199] blk_cloned_rq_check_limits: over max size limit.
[8444815.623206] device-mapper: multipath: Failing path 8:208.
[8444815.630216] blk_cloned_rq_check_limits: over max size limit.
[8444815.630275] device-mapper: multipath: Failing path 8:192.
[8444815.637230] blk_cloned_rq_check_limits: over max size limit.
[8444815.637243] device-mapper: multipath: Failing path 8:176.
[8444815.644248] blk_cloned_rq_check_limits: over max size limit.
[8444815.644280] device-mapper: multipath: Failing path 8:160.
[8444815.651263] blk_cloned_rq_check_limits: over max size limit.
[8444815.651275] device-mapper: multipath: Failing path 8:144.
[8444821.198270] INFO: task worker:2981470 blocked for more than 120 seconds.
[8444821.206446]       Tainted: G           OE     4.19.90-24.4.v2101.ky10.x86_64 #1
[8444821.215294] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[8444821.224714] worker          D    0 2981470      1 0x000003a0
[8444821.231720] Call Trace:
[8444821.235145]  ? __schedule+0x296/0x910
[8444821.239927]  schedule+0x28/0x80
[8444821.244116]  schedule_timeout+0x1ee/0x3a0
[8444821.249287]  ? blk_flush_plug_list+0x218/0x270
[8444821.254936]  io_schedule_timeout+0x19/0x40
[8444821.260192]  wait_for_completion_io+0x126/0x190
[8444821.265938]  ? wake_up_q+0x70/0x70
[8444821.270423]  submit_bio_wait+0x5b/0x80
[8444821.275299]  blkdev_issue_zeroout+0xdc/0x210
[8444821.280752]  ? blkdev_ioctl+0x893/0x930
[8444821.285720]  blkdev_ioctl+0x893/0x930
[8444821.290498]  block_ioctl+0x39/0x40
[8444821.294982]  do_vfs_ioctl+0xa4/0x640
[8444821.299651]  ? do_numa_page+0x250/0x267
[8444821.304617]  ksys_ioctl+0x70/0x80
[8444821.309000]  __x64_sys_ioctl+0x16/0x20
[8444821.313888]  0xffffffffc0ddd868
[8444821.318085]  ? __audit_syscall_entry+0x103/0x130
[8444821.323924]  0xffffffffc0dde2a6
[8444821.328124]  do_syscall_64+0x5b/0x1d0
[8444821.332898]  entry_SYSCALL_64_after_hwframe+0x44/0xa9

3.2.2 分析sa日志

sar -rh -f sa07,分析当时的内存使用情况,内存使用率很低。

 sar -u -f sa07,查看问题发生时的CPU使用率,可见其使用率很低。

sar -d -f sa07,查看磁盘读写情况,磁盘读写很低。

sar -q -f sa07,查看当时的系统负载,系统负载也非常的低。

3.3 分析sosreport-NFDW5-X86TSTACK-TX-COM81-20231208104057

查看kdump的配置情况,设置了kernel.hung_task_panic=1,当系统发生hung task的时候,系统会崩溃,触发异常重启。

3.3.1 分析vmcore-dmesg日志

查看vmcore-dmesg日志,和前面两台系统的hung task日志一致。

[8397590.155959] blk_cloned_rq_check_limits: over max size limit.
[8397590.155974] device-mapper: multipath: Failing path 8:144.
[8397597.335970] INFO: task worker:1982596 blocked for more than 120 seconds.
[8397597.344146]       Tainted: G           OE     4.19.90-24.4.v2101.ky10.x86_64 #1
[8397597.352996] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[8397597.362427] worker          D    0 1982596      1 0x000003a0
[8397597.369438] Call Trace:
[8397597.372870]  ? __schedule+0x296/0x910
[8397597.377647]  schedule+0x28/0x80
[8397597.381844]  schedule_timeout+0x1ee/0x3a0
[8397597.387015]  ? blk_flush_plug_list+0x218/0x270
[8397597.392665]  io_schedule_timeout+0x19/0x40
[8397597.397929]  wait_for_completion_io+0x126/0x190
[8397597.403680]  ? wake_up_q+0x70/0x70
[8397597.408171]  submit_bio_wait+0x5b/0x80
[8397597.413049]  blkdev_issue_zeroout+0xdc/0x210
[8397597.418511]  ? blkdev_ioctl+0x893/0x930
[8397597.423481]  blkdev_ioctl+0x893/0x930
[8397597.428265]  block_ioctl+0x39/0x40
[8397597.432756]  do_vfs_ioctl+0xa4/0x640
[8397597.437441]  ? do_numa_page+0x250/0x267
[8397597.442413]  ksys_ioctl+0x70/0x80
[8397597.446801]  __x64_sys_ioctl+0x16/0x20
[8397597.451690]  0xffffffffc0e90868
[8397597.455889]  ? __audit_syscall_entry+0x103/0x130
[8397597.461736]  0xffffffffc0e912a6
[8397597.465940]  do_syscall_64+0x5b/0x1d0
[8397597.470719]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[8397597.477051] RIP: 0033:0x7f91fa507ec7
[8397597.481737] Code: Bad RIP value.

4.问题分析结果

1、分析三台机器的sosreport日志,多路径盘没有文件系统,hung task发生时正在执行mkfs.xfs,进行格式化。

2、分析三台机器sa日志,问题发生前,系统一切资源都消耗很低,资源使用正常。

3、分析三台机器的vmcore-dmesg日志,出现了blk_cloned_rq_check_limits: over max size limit日志打印,及多路径的相关报错,堆栈调用blkdev_issue_zeroout函数,将块设备的一个区域清零,而后出现了超时,最后出现hung task,从报错和堆栈上看,是多路径格式化xfs失败的已知问题。由于设置了kernel.hung_task_panic=1,当系统发生hung task的时候,系统会崩溃,触发异常重启。

报错问题的原因是系统在处理Write Zero类IO(输入/输出)请求时,发现多路径设备及其底层设备不支持Write Same/Zero命令。这导致了在多路径模块中IO请求以IOERR(输入/输出错误)状态完成,被误判为路径失效。随后,这个Write Zero IO请求在多路径中循环选择路径,但由于所有路径都不支持Write Zero命令,导致IO请求无法完成,反复导致路径失败,无法正常处理。

解决方案是对Write Zero类IO请求进行修复调整,将其状态码改为NOTSUPP(不支持),以便通知IO请求的发起方该请求不被支持。这样,发起方可以知晓情况进行调整,而不是一直等待一个不能被处理的IO请求的完成。该修复方案已合入4.19.90-23.30.v2101及以上内核版本,建议通过升级内核来解决此问题。

5.相关建议

升级最新的SP1内核4.19.90-23.42.v2101。

4.19.90-23.30.v2101

  • 修复多路径格式化xfs失败问题。

4.19.90-23.13.v2101

  • 修复mlx 25G光模块通过ethtool读取信息不对的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1W、2W 3KVAC隔离 宽电压输入 交直两用AC/DC 电源模块 ——TP01(02)AZ 系列

TP01(02)AZ为客户提供一款超小体积模块式开关电源,该系列模块电源输出功率为1W、2W,具有极低的空载损耗,低漏电流仅0.1mA,小体积,隔离耐压高达3KV等特点。产品安全可靠,EMC 性能好,EMC 及安全规…

哪个品牌的开放式耳机性价比高?五大高口碑优质爆款直入

最近几年来耳机音频市场上的质量问题层出不穷,就连最近火爆的开放式耳机也未能幸免。这是由于很多企业过分强调智能化、注重外形设计等,而忽视了作为一款开放式耳机最基本的音质和舒适性。很多品牌使用劣质材料制作开放式耳机产品,从而存在着…

英睿达硬盘数据恢复方法:从丢失到找回的详细指南

在数字化时代,硬盘作为我们存储重要数据的关键设备,承载着大量的个人、工作甚至商业信息。然而,无论是由于意外删除、格式化、病毒感染还是硬件故障,硬盘数据丢失的情况时有发生。英睿达硬盘作为市场上的知名品牌,其数…

基于yolov8+flask搭建一个web版本的网页模型预测系统

测试环境: anaconda3python3.8 torch1.9.0cu111 ultralytics8.2.2 首先我们将训练好的权重放在weights目录下面 并将名字改成yolov8n.pt,如果不想改可以在代码app.py都把路径改过来即可。然后我们打开 python app.py之后看到 我们点击选择文件支持图…

在PDF中使用Paragraph进行文本段落的处理

上一篇文章中我们使用itxtpdf库中的方法,绘制了一个固定表格与一个动态表格。如果你想在PDF中加入文字该怎么办呢。可以使用本文推荐的Paragraph这个类去实现,效果如下: 我在PDF中插入了一个工作流的审批流程。具体实现呢还是使用itextpdf库中…

0.98T优于10米高程DEM数据

我们在《全球30米100%水陆覆盖高程》一文中,为大家分享了全球100%覆盖,且包括海底高程的30米DEM数据。 该数据虽然全球无死角覆盖,但分辨率只有30米。 这里,再为大家分享一个优于10米的高程数据,但目前仅覆盖全国范围…

CSS学习笔记之中级教程(二)

CSS学习笔记之中级教程(一) 6、CSS 布局 - display: inline-block 与 display: inline 相比,主要区别在于 display: inline-block 允许在元素上设置宽度和高度。 同样,如果设置了 display: inline-block,将保留上下外…

Node.js基础:从入门到实战

初识 Node.js 与内置模块 (初识) 1、知道什么是node.js 2、知道node.js可以做什么 3、node.js 中js的组成部分 (内置模块) 4、用 fs 模块读写操作文件 5、使用 path 模块处理路径 6、使用http 模块写一个基本的web服务器 初识 N…

二.PVE创建 Ubuntu CT

二.PVE创建 Ubuntu CT 浏览器地址栏输入访问pve系统的网址,利用web端进行管理。注意进入pve系统时默认显示的有访问地址。本步骤的web访问地址为:https://192.168.1.102:8006。 出现该页面,选择继续前往。 进入管理页面后&…

图文成片剪辑软件,分享3个专业的工具!

在数字化时代,图文成片剪辑软件成为了我们创作与表达的重要工具。无论是想要制作一段引人入胜的短视频,还是打造一幅精美的图文海报,这些软件都能助你一臂之力。那么,图文成片剪辑软件的方法有哪些?又有哪些值得一试的…

衡量代理IP的因素

当你随便点开百度搜索IP代理,然后你就会看到,五花八门的IP代理商出现在视线中。再点进去链接,我们会发现,大多数IP代理商提供的基础IP服务都大差不差,东家这样说,西家又那样说,尽管我们看的头昏…

三步在 vite 中配置 tailwindcss

前言 tailwindcss 是一个原子化的 css 工具,可以让你免于写 css,只写 html 即可原理:利用你写的 html 的 class 名称来生成 css 样式,理解为一个 postcss 插件或 loader 第一步:安装 tailwindcss npm i -D tailwind…

JVM运行时内存:本地方法接口与本地方法栈

文章目录 1. 什么是本地方法?2. 为什么要使用Native Method?3. 本地方法现状 运行时内存整体结构如下图所示: 1. 什么是本地方法? 简单地讲,一个Native Method就是一个Java调用非 Java 代码的接口。一个Native Method是这样一个 …

GBDT调参--贝叶斯调参

随机抽特征和随机抽样本 n_estimators 是控制森林中树木的数量,即基评估器的数量。这个参数对随机森林模型的精确性影响是单调的,n_estimators越 大,模型的效果往往越好。但是相应的,任何模型都有决策边 n_estimators达到一定的程…

【资源汇总】GIS/RS相关软件包+数据分享(直接获取附链接)

01软件类 ArcGIS 10.2 链接:https://pan.baidu.com/s/1euHa3eTiaTjiOu-zxsi9eA?pwdnjov ArcGIS Pro 2.8.6 链接:https://pan.baidu.com/s/1Y3AQshCGL7tA1zdUc7s9PQ?pwdlkic ENVI 5.3 链接:https://pan.baidu.com/s/14k4IVlYIheNOr2to…

520告白好物有哪些?收下这份清单不迷茫!

在这个充满爱意的日子里,你是否正在为如何向心仪的人表达深情而犯愁?别担心,我们为你精心准备了一份520告白好物清单都是一些实用的礼品,为你提供多样化的选择,助你轻松传达爱意,让告白不再迷茫。快来看看吧…

网页设计web

效果图代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style>* …

opencv4.8.0 GPU版本各平台编译

一、opencv4.8.0 ubuntu22.04上编译&#xff1a; 用cmake进行编译,需要配置三次。选中world选项&#xff0c;输入opencv_contrib_module路径。 ubuntu22.04上编译&#xff1a; cmake \ -D CMAKE_BUILD_TYPERELEASE \ -D CMAKE_INSTALL_PREFIX/usr/local \ -D BUILD_opencv_p…

HR人才测评:督导能力与岗位胜任力测评

督导能力指的是什么&#xff1f; 督导能力指的是为了实现某一种目标&#xff0c;不管是客户的利益还是组织的利益&#xff0c;在必要的时候引导他人的行为。对于企业而言&#xff0c;有督导能力的人可以指引企业更好的前进&#xff0c;他们代表的是标准&#xff0c;代表的是榜样…

策略模式详解

策略模式 1 概述 先看下面的图片&#xff0c;我们去旅游选择出行模式有很多种&#xff0c;可以骑自行车、可以坐汽车、可以坐火车、可以坐飞机。 作为一个程序猿&#xff0c;开发需要选择一款开发工具&#xff0c;当然可以进行代码开发的工具有很多&#xff0c;可以选择Idea进…