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

相关文章

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta