案例分享:一次NetApp A300/FAS8200控制器更换完美踩坑总结

本文主要是介绍案例分享:一次NetApp A300/FAS8200控制器更换完美踩坑总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文是对近期更换一个net App AFF-A300 控制器更换过程中遇到问题的简单总结,希望对大家有所帮助,避免未来再进坑。

客户环境:

客户是一台NetApp的All Flash存储系统A300的一个控制器offline,另外一个控制器已经成功takeover了这个故障控制器,并且这个故障控制器也无任何串口输出。

客户的基本环境是 Data ONTAP版本是 9.3P9,BIOS版本是11.2.1,SP版本是5.3。

Data ONTAP 9版本更换控制器相对比较容易,基本上1个小时左右就可以轻松搞定。但随着将故障控制器从chassis机头中抽出来,厄运就开始了。先后命中了四个bug,其中三个是严重bug。对于细节内容感兴趣或者遇到相同问题可以联系我们。加vx wechat:  StorageExpert。下面就是各种问题复盘,可以搬小板凳来听了。

为了描述方便起见,客户正常的控制器是A,故障控制器是B。

1. 抽出故障控制器B,正常控制器A马上宕机,客户反馈业务挂了

一个cluster 系统,将故障控制器B抽出来准备更换,但客户反馈说A控有问题了,刚听到这个消息,有点不相信。没有动A控,怎么会A控宕机呢?马上将串口线切换到A控,发现A控已经到了Loader。

这是我们幸运的命中的第一个bug

1339659 - Storage systems experience an "invalid partner module" system disruption 

这个在很多的ONTAP版本中都有这个bug,主要的设备是FAS27,FAS26和FAS82这一代产品。

下面是问题描述:简单来说就是一个正常的HA环境,一个控制器接管了另外的一个控制器,这时候将被接管的控制器从机头中抽出,将对正常控制器触发panic,导致宕机。

Some storage systems might intermittently experience a system disruption and trigger a "PANIC: Partner Present: invalid partner module" error message when one controller is removed from the chassis while the HA partner controller has taken over the controller. The panic is initiated when information about the HA partner controller cannot be read over the midplane of the chassis.

2. 启动A控,没有启动成功

由于A控还在继续提供客户业务,所以马上对A控做重启,尽快恢复业务。串口线到A控后,发现A控是loader状态,输入boot_ontao启动设备。悲剧再次发生,系统没有启动成功,abort了。abort信息如下:

Boot Loader version 6.0.5

Copyright (C) 2000-2003 Broadcom Corporation.

Portions Copyright (C) 2002-2018 NetApp, Inc. All Rights Reserved.

BIOS POST Failure(s) detected: PCIe device missing error detected. Abort AUTOBOOT

这个问题是BIOS的bug导致,当前BIOS的版本是11.2.1,升级到11.20以后就可以解决这个bug。

3. A控彻底挂掉

当时看到PCIe device missing的报错,马上想到可能是SP或者BIOS的问题,因为对于这个控制器没有做任何的物理动作。所以安排现场工程师对控制器做一个插拔重启,看是否可以正常启动。

悲剧又发生了,对A控做插拔后,串口没有任何反应。但主板上可以看到已经加电了。其实正常这个情况,SP应该是可以通的。由于串口没有任何反应,就无法对存储做任何操作。对存储下电,完全放电,重新启动,也是一样效果。这个应该是命中了FAS8200一个批次设备中的超级电容故障bug。现象就是控制器重启,可以看到加电,但串口无任何输出。

4. 新更换控制器亮黄灯

到此,原来已经故障的B控,加上又彻底挂掉的A控,现场只有一个新的控制器。利用新的控制器,对最后故障的A控做了更换,手工assign了磁盘,先恢复业务。但更换A控启动后,又命中了第四个bug,新的控制器亮黄灯,service event显示 NV battery 的Sensor 234 Fault。如下图所示:

这个是SP的bug,对于FAS8200/A300 在SP 5.8以后做了修正。

bug描述是 During the NVRAM battery learning cycle the battery status the fault LED may turn on。大概每间隔70天会有一次锂电池的学习周期,用时19个小时完成。完成以后,这个故障灯就正常了。

到此,我们可以看到,这次控制器更换完美的命中了Data ONTAP的bug导致正常控制器宕机,BIOS bug导致控制器无法启动,SP的bug导致控制器亮黄灯,再加上一个物理缺陷的bug,非常完美的一个case。

这篇关于案例分享:一次NetApp A300/FAS8200控制器更换完美踩坑总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/838306

相关文章

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Python判断for循环最后一次的6种方法

《Python判断for循环最后一次的6种方法》在Python中,通常我们不会直接判断for循环是否正在执行最后一次迭代,因为Python的for循环是基于可迭代对象的,它不知道也不关心迭代的内部状态... 目录1.使用enuhttp://www.chinasem.cnmerate()和len()来判断for

SpringBoot实现动态插拔的AOP的完整案例

《SpringBoot实现动态插拔的AOP的完整案例》在现代软件开发中,面向切面编程(AOP)是一种非常重要的技术,能够有效实现日志记录、安全控制、性能监控等横切关注点的分离,在传统的AOP实现中,切... 目录引言一、AOP 概述1.1 什么是 AOP1.2 AOP 的典型应用场景1.3 为什么需要动态插