案例分享:一次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

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

Java 中的 equals 和 hashCode 方法关系与正确重写实践案例

《Java中的equals和hashCode方法关系与正确重写实践案例》在Java中,equals和hashCode方法是Object类的核心方法,广泛用于对象比较和哈希集合(如HashMa... 目录一、背景与需求分析1.1 equals 和 hashCode 的背景1.2 需求分析1.3 技术挑战1.4

Java中实现对象的拷贝案例讲解

《Java中实现对象的拷贝案例讲解》Java对象拷贝分为浅拷贝(复制值及引用地址)和深拷贝(递归复制所有引用对象),常用方法包括Object.clone()、序列化及JSON转换,需处理循环引用问题,... 目录对象的拷贝简介浅拷贝和深拷贝浅拷贝深拷贝深拷贝和循环引用总结对象的拷贝简介对象的拷贝,把一个

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工