近期处理的几个小问题记录

本文聚焦Linux系统,分析了KVM虚机读写异常、nfs客户端挂载超时、文件夹删除失败、云主机启动失败和rsyslog启动失败等问题。详细阐述各问题现象,如虚机load升高、挂载报错等,并给出定位方法,如检查磁盘、抓包、查看内核版本等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

KVM虚机读写异常

问题现象

虚机load异常升高,df/ls容易卡住,宿主机load无明显异常。

问题定位

1、确定虚机盘符位置:

sudo virsh dumpxml xxx

根据<disk></disk>信息确认虚机盘符均位于宿主机sdb盘上。

2、检查宿主机磁盘读写情况

$ iostat -mx 5 2
Linux 3.10.0-957HG.el7.x86_64 03/01/2024      _x86_64_        (128 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.13    0.00    0.50    0.02    0.00   98.35

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.06    0.00    0.71     0.00     0.01    21.07     0.01   13.11    5.37   13.12   1.14   0.08
sdb               0.00     0.05    1.56    9.49     0.10     0.16    47.80     0.04    4.01    2.18    4.31   0.87   0.97
nvme0n1           0.00     0.00    0.00    0.00     0.00     0.00    68.17     0.00    0.12    0.12    0.00   0.10   0.00
dm-0              0.00     0.00    0.00    0.15     0.00     0.00    15.44     0.00   19.22   20.85   19.22   3.39   0.05
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     8.02     0.00  217.99    0.43  342.40   0.15   0.00
dm-2              0.00     0.00    0.00    0.63     0.00     0.01    20.39     0.01   13.30    0.70   13.30   1.24   0.08

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.48    0.00    0.25    0.79    0.00   98.49

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.20     0.00     0.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    0.00   15.40     0.00     0.09    11.35     4.01    0.53    0.00    0.53  64.94 100.00
nvme0n1           0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.20     0.00     0.00     8.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

$ sar -d -p
Linux 3.10.0-957HG.el7.x86_64  03/01/2024      _x86_64_        (128 CPU)
Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:          sda      0.89      0.05     17.08     19.29      2.64   2967.37    228.84     20.33
Average:          sdb     35.86    257.51    761.75     28.42      8.68    239.68     25.27     90.60
Average:      nvme0n1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    vg0-lv_root      0.18      0.05      2.87     16.63      0.73   4147.10    714.98     12.55
Average:    vg0-lv_swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    vg0-lv_var      0.77      0.00     14.22     18.38      2.41   3088.81    257.28     19.90

可见sdb%util异常,且iops与带宽均不在高位。

3、检查sdb是否存在相关IO报错

$ sudo cat /var/log/messages | grep sdb | tail -10
Mar  1 15:08:45 xxx kernel: sd 4:2:1:0: [sdb] tag#0 megasas: target reset FAILED!!
Mar  1 15:08:45 xxx kernel: sd 4:2:1:0: [sdb] tag#0 Controller reset is requested due to IO timeout#012SCSI command pointer: (ffffa08bcb38f640)#011 SCSI host state: 5#011 SCSI 
Mar  1 15:11:55 xxx kernel: sd 4:2:1:0: [sdb] tag#52 task abort called for scmd(ffffa08bcb38ddc0)
Mar  1 15:11:55 xxx kernel: sd 4:2:1:0: [sdb] tag#52 CDB: Write(16) 8a 00 00 00 00 0e 00 2e 55 68 00 00 00 18 00 00
Mar  1 15:11:55 xxx kernel: sd 4:2:1:0: [sdb] tag#3 task abort called for scmd(ffffa08bcb38f640)
Mar  1 15:11:55 xxx kernel: sd 4:2:1:0: [sdb] tag#3 CDB: Read(16) 88 00 00 00 00 0e 00 51 04 80 00 00 00 80 00 00
Mar  1 15:13:45 xxx kernel: sd 4:2:1:0: [sdb] tag#10 task abort called for scmd(ffffa08bcb38d880)
Mar  1 15:13:45 xxx kernel: sd 4:2:1:0: [sdb] tag#10 CDB: Write(16) 8a 00 00 00 00 0d 80 9d 38 90 00 00 00 08 00 00
Mar  1 15:13:45 xxx kernel: sd 4:2:1:0: [sdb] tag#52 megasas: target reset FAILED!!
Mar  1 15:13:45 xxx kernel: sd 4:2:1:0: [sdb] tag#10 Controller reset is requested due to IO timeout#012SCSI command pointer: (ffffa08bcb38d880)#011 SCSI host state: 5#011 SCSI

定位raid卡控制器存在异常,报修。

nfs客户端挂载超时

问题现象

进行NFS挂载时sudo mount -t nfs -o vers=3,nolock,proto=tcp xxx:/xxx xxx -v报错超时:mount.nfs: portmap query failed: RPC: Timed out

问题定位

在存储服务端抓包发现,客户端执行挂载命令时,服务端未收到任何数据包,判断网络不通,经测试,客户端仅能访问服务端2049端口,因此无法挂载。

服务端采用glusterfs+nfs-ganesha+samba方案构建,因此客户端至少需要能够访问服务端如下端口:

  • 111:RPCbind服务用于将NFS服务的端口号映射到实际使用的端口上。客户端需要使用这个端口来查找NFS服务的实际端口号;
  • 2049:NFS服务的主要端口,用于客户端和服务器之间的文件传输;
  • 4501:Rquota_Port,远程配额服务的端口,当客户端需要查询或更新其配额信息时,会使用这个端口与Ganesha服务器通信,可通过cat /etc/ganesha/ganesha.conf | grep Rquota_Port确认端口号;
  • 4502:MNT_Port,用于挂载信息服务的端口,当客户端想要挂载NFS共享时,它们会首先使用此端口来检索关于该共享的信息,可通过cat /etc/ganesha/ganesha.conf | grep MNT_Port确认端口号;
  • 139、445:smb服务端口,Windows挂载使用,可通过sudo netstat -ntpl | grep smbd确认端口号;

因此针对该问题,需再开通访问服务端111、4501、4502端口的网络策略。

glusterfs文件夹删除失败

问题现象

通过NFS挂载的glusterfs,某文件夹删除失败,报错rm cannot remove xxx : Directory not empty,但客户端查看该文件夹已无文件。

问题定位

确认服务端该文件夹情况,再glusterfs所有节点执行:

sudo ls /gluster/brick-*/文件夹路径xxx
sudo ls /glusterfs_mnt/文件夹路径xxx

发现brick间数据不同步,部分节点该文件夹下有文件,解决办法为删除/glusterfs_mnt/下该目录中的文件,如删除后/gluster/brick-*/中仍存在,则继续删除/gluster/brick-*/下的文件。

云主机启动失败

问题现象

云主机重启后报错无法进入系统:

error: ../../grub-core/fs/fshelp.c:258:file
'/boot/initramfs-4.18.0-532.e18.x86_64.img' not found

Press any key to continue...
Kernel pannic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
................
end Kernel pannic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

问题定位

查看该客户云主机订购的操作系统为CentOS8.0,其原本内核版本为4.18.0-513.el8.x86_64,但报错的内核版本为532,重启尝试选择513版本内核,可正常进入系统,判断无法进入系统的原因为升级内核版本(ls /boot/可查看所有内核版本)导致的系统异常。

#设置默认启动内核
grubby --set-default /boot/vmlinuz-4.18.0-513.el8.x86_64
#查看默认启动内核
grubby --default-kernel

rsyslog启动失败

问题现象

rsyslog启动失败,无明显报错(sudo journalctl -u rsyslog):

Mar 03 09:21:22 xxx systemd[1]: Stopping System Logging Service...
Mar 03 09:21:22 xxx rsyslogd[69431]:  [origin software="rsyslogd" swVersion="8.24.0-34.el7_6.3" x-pid="69431" x-info="http://www.rsyslog.com"] exitin
Mar 03 09:21:22 xxx systemd[1]: Stopped System Logging Service.
Mar 03 09:21:22 xxx systemd[1]: Starting System Logging Service...
Mar 03 09:21:32 xxx systemd[1]: rsyslog.service: main process exited, code=killed, status=11/SEGV
Mar 03 09:21:32 xxx systemd[1]: Failed to start System Logging Service.
Mar 03 09:21:32 xxx systemd[1]: Unit rsyslog.service entered failed state.
Mar 03 09:21:32 xxx systemd[1]: rsyslog.service failed.
Mar 03 09:21:33 xxx systemd[1]: rsyslog.service holdoff time over, scheduling restart.

问题定位

在无明显变动的情况下,优先考虑检查/etc/rsyslog.d/下的自定义配置。

$ cat /etc/rsyslog.d/containerd.conf 
if $programname == 'containerd' then /apps/logs/containerd/containerd.log
if $programname == 'containerd' then ~

新版语法中~已被stop代替,尝试修改配置文件为:

if $programname == 'containerd' then /apps/logs/containerd/containerd.log
if $programname == 'containerd' then stop

再次检查服务已正常启动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洒满阳光的午后

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值