首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >奇安信安全软件导致 NFS 不正常

奇安信安全软件导致 NFS 不正常

原创
作者头像
颇忒脱
发布于 2022-11-21 02:16:08
发布于 2022-11-21 02:16:08
2.2K00
代码可运行
举报
运行总次数:0
代码可运行

现象

项目现场 K8S 集群上的某些应用时常出现无法访问的现象。

根据排查,发现是 redis 出现了重启,下面是 redis 挂掉之前的日志:

下面是 Pod 重启的次数:

那么基本可以断定是磁盘问题,而这个 Redis 是挂载 PVC 的,PVC 是 NFS,所以初步怀疑是 NFS 的问题。

那么究竟是 NFS 的磁盘问题,还是 NFS 的网络问题,需要进一步排查

排查 dmesg

进入 redis 所在服务器dmesg -T 查看日志发现 nfs 服务器存在无响应或者响应超时的情况,时间和故障时间吻合:

再看 nfs 服务器的 dmesg,没有发现今日故障。

收集信息

在 nfs 服务器和 k8s node 上安装软件 yum install -y sysstat nc telnet iostat iotop

在 nfs 服务器上采集磁盘 IO、CPU 情况、网络情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 网络流量统计
sar -n DEV 3 > sar.log
# 磁盘IO统计
pidstat -d 3 > pidstat-d.log
# CPU和磁盘IO统计
vmstat -t 3 > vmstat.log

在某个 k8s node 用 nc 测试和 nfs 是否能够建立 tcp 连接,写了个脚本,nc-nfs.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while :
do
  date
  nc -zv <nfs-ip> 2049
  sleep 5
done

输出到文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./nc-nfs.sh > nc-nfs.log

等待故障发生

21:09 时,在 dmesg 中发现 nfs 服务器无响应了,故障重现了。

但是观察 k8s node 的 nc-nfs.log,期间网络都是通的。

再看 nfs 服务器,sar.log21:09 时流量不高,只有几百 Kb/s,但是在 21:11 时流量稍高,发送流量有 38~49Mb/s。

发送流量意味着“读”的动作发生。

vmstat.log21:09 没有什么特别,在21:11 有较高的 bi(读),而且 wa(iowait)有点高-17:

pidstat-d.log,也是,在21:09没有什么特别,在21:11发生了较高的读操作:

经检查,时间都是校准的,那么看来故障发生的时间点和流量高峰(也不算高峰只是稍微高一点)没什么关系。

模拟 NFS 高流量读写

进入 redis 容器,进入挂载 NFS 的目录 /data,在里面用 dd 模拟写操作(写 1G):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dd if=/dev/zero of=dd.test bs=512k count=2000

然后再模拟读操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dd if=dd.test of=dd.test bs=512k

发现读写在 200~300Mb/s,再看 dmesg -T,期间也没有新的 nfs 报错。

僵局

网络通的、磁盘IO也没问题、高流量的 NFS 读写也没有问题,排查陷入了僵局。

偶然在 nfs 服务器上用 top,发现 qaxsafed 进程的 CPU 和 内存占用有点高:

对比其他 k8s node 上的这个进程,CPU 和内存占用都比较低:

发现它是 11月2号启动的:

奇安信

qaxsafed 是奇安信的服务器安全软件,死马当活马医 kill 这个进程,但是一会儿又复活了。

于是转移了它的目录,然后 kill,终于杀掉了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mv /opt/qaxsafe /opt/qaxsafe1
pkill -9 qaxsafe

在所有服务器上都做了这个操作。

结束

之后 nfs 故障就再没出现过了。

关于安全软件,这篇文章有个清单。

后记

希望国内的安全软件厂商在把东西卖给客户之后,认证做好后续的实施培训工作。 这个世界上不存在一套适用所有场景的安全规则和软件,也不要给客户宣传这种观念。 安全软件的误伤导致的系统故障基本都是我们这些 ISV 背锅,因为客户比起我们更信任你们。 要不是我水平高这锅还真是我给背了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
网工人必须掌握的Linux命令
作为一个Linux运维人员,主要就是对Linux服务器的性能做一些优化,本篇博文仅仅介绍如何性能检测常用的指令!
网络技术联盟站
2021/02/22
1.1K0
将java进程转移到“解剖台”之前,法医都干了什么?
作为法医,不怕高度腐烂的尸体,也不怕错综复杂的案情。最怕的,是没留下任何东西。空无一物,任何高超的技术,丰富的经验,都无从下手。
xjjdog
2019/08/09
8510
将java进程转移到“解剖台”之前,法医都干了什么?
Linux性能检测常用的9个基本命令
作为一个Linux运维人员,主要就是对Linux服务器的性能做一些优化,本篇博文仅仅介绍如何性能检测常用的指令!
网络技术联盟站
2020/05/14
1.9K0
如何应对在线故障,值得一读的精品好文
线上运行的Java应用突然没有响应、响应缓慢,进程突然消失,遇到这些情况应该如何应对呢?
lyb-geek
2018/12/24
1.1K0
1 分钟内对 Linux 进行性能诊断的10 个命令
当你发现 Linux 服务器上的系统性能问题,在最开始的 1 分钟时间里,你会查看哪些系统指标呢? Netflix 在 AWS 上有着大规模的 EC2 集群,以及各种各样的性能分析和监控工具。 比如我
Vincent-yuan
2021/12/20
1K0
1 分钟内对 Linux 进行性能诊断的10 个命令
快速诊断Linux性能的10个命令
通过运行下面十个命令,你就能在六十秒内粗略地了解系统正在运行的进程及资源使用情况。通过查看这些命令输出的错误信息和资源饱和度(它们都很容易看懂),你可以接下来对资源进行优化。饱和是指某个资源的负载超出了其能够处理的限度,一旦出现饱和,它通常会在请求队列的长度或等待时间上暴露出来。
星哥玩云
2022/06/17
5020
如何快速分析出现性能问题的Linux服务器
本文将详细介绍以下这些Linux命令及其扩展选项的意义,及其在实践中的作用。并利用一个实际出现问题的例子,来验证这些套路是不是可行,下面工具的屏幕输出结果都来自这个出现问题的系统。当遇到一个系统性能问题时,如何利用登录的前60秒对系统的性能情况做一个快速浏览和分析,主要包括如下10个工具,这是一个非常有用且有效的工具列表。
星哥玩云
2022/07/26
1.3K0
如何快速分析出现性能问题的Linux服务器
30 分钟玩转 Kubernetes 持久化存储之 NFS 实战入门
玩转 Kubernetes 必然少不了持久化存储,不考虑各种公有云上的 Kubernetes 集群和商业化集中存储,自建的 Kubernetes 集群中,后端持久化存储常见的解决方案有 Ceph、GlusterFS、NFS,以及这两年新兴起的 Longhorn(也可能还有我不了解的其他的更好的)。
运维有术
2023/11/30
3.9K0
30 分钟玩转 Kubernetes 持久化存储之 NFS 实战入门
Linux 性能优化的全景指南,可能都在这里了,建议收藏~
性能问题的本质就是系统资源已经到达瓶颈,但请求的处理还不够快,无法支撑更多的请求。性能分析实际上就是找出应用或系统的瓶颈,设法去避免或缓解它们。
用户6543014
2022/03/04
2.8K0
Linux 性能优化的全景指南,可能都在这里了,建议收藏~
【转】接入层问题故障定位(火焰图等方法)
原文地址 https://www.jianshu.com/p/0bbac570fa4c
保持热爱奔赴山海
2024/11/27
1460
技能篇:开发必备linux命令大全-稳赚不亏
我们的服务一般都是在linux系统运行,因此了解一些关于linux命令是必须。接下来将一一详细介绍一些常用的linux的命令
潜行前行
2021/08/20
4.5K0
技能篇:开发必备linux命令大全-稳赚不亏
Linux 性能诊断:快速检查单(Netflix版)
快速检查单(Quick Reference Handbook,QRH)是飞行员在飞行过程中依赖的重要指导性文件。
RiboseYim
2018/01/12
2.2K0
Linux环境监控工具汇总
GreatSQL季报(2021.12.26) https://mp.weixin.qq.com/s/FZ_zSBHflwloHtZ38YJxbA
GreatSQL社区
2022/02/13
8160
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 NFS 终极实战指南
今天分享的内容是 KubeSphere 最佳实战「2024」 系列文档中的 探索 Kubernetes 持久化存储之 NFS 终极实战指南。
运维有术
2024/07/16
9260
KubeSphere 最佳实战:探索 Kubernetes 持久化存储之 NFS 终极实战指南
K8S部署Redis Cluster集群(三主三从模式) - 部署笔记
在Kubernetes中部署Redis集群面临挑战,因为每个Redis实例都依赖于一个配置文件,该文件可以跟踪其他集群实例及其角色。为此,我们需要结合使用StatefulSets控制器和PersistentVolumes持久化存储。
洗尽了浮华
2021/03/03
4.4K0
如何用九条命令在一分钟内检查 Linux 服务器性能?
这个命令可以快速查看机器的负载情况。在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量。这些数据可以让我们对系统资源使用有一个宏观的了解。
芋道源码
2018/12/29
9570
如何用九条命令在一分钟内检查 Linux 服务器性能?
7-Kubernetes入门基础之存储Volume介绍
描述: 我们知道在Docker中可以通过Volume将宿主机文件(配置文件、数据库等等)映射到Container内部供其容器内的应用程序使用。在Kubernrtes中我们可以采用ConfigMap控制器创建共享应用配置,亦可采用Kubernetes中的volume(卷)在一个Pod内多个Container之间进行文件共享;
全栈工程师修炼指南
2022/09/29
1.5K0
7-Kubernetes入门基础之存储Volume介绍
Linux问题故障定位,看这一篇就够了
有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分析问题和踩坑是非常锻炼一个人的成长和提升自我能力。如果我们有一套好的分析工具,那将是事半功倍,能够帮助大家快速定位问题,节省大家很多时间做更深入的事情。
十四君
2020/03/13
3.2K0
Linux问题故障定位,看这一篇就够了
Linux服务器检查性能瓶颈
如果Linux服务器突然访问卡顿变慢,负载暴增,如何在最短时间内找出Linux性能问题所在?
码客说
2022/01/25
4.7K1
Linux服务器检查性能瓶颈
值得收藏的 14 个 Linux 下 CPU 监控工具
前三个数字是1、5、15分钟内进程队列中平均进程数,包括正在运行的进程+准备好等待运行的进程。
杰哥的IT之旅
2020/06/18
6.7K0
值得收藏的 14 个 Linux 下 CPU 监控工具
推荐阅读
相关推荐
网工人必须掌握的Linux命令
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验