哪个固件版本最“正确”和“有效”? 如果存储系统保证99,9999%的容错率,是否意味着即使没有软件更新,它也能不间断地工作? 或者,相反,为了获得最大的容错能力,您应该始终安装最新的固件? 我们将根据我们的经验尝试回答这些问题。
小介绍
我们都知道,每个版本的软件,无论是操作系统还是设备驱动程序,通常都包含缺陷/错误和其他“功能”,这些“功能”可能直到设备使用寿命结束或“开放”时才会“出现”仅在某些条件下。 这些细微差别的数量和重要性取决于软件的复杂性(功能)以及开发过程中的测试质量。
通常,用户会保留“出厂固件”(著名的“它可以工作,所以不要弄乱它”)或始终安装最新版本(在他们的理解中,最新意味着最有效)。 我们使用不同的方法 - 我们查看所使用的所有内容的发行说明
正如他们所说,我们根据经验得出了这个结论。 通过我们的操作示例,我们将告诉您为什么如果您不及时监控软件更新和说明,存储系统所承诺的 99,9999% 可靠性就毫无意义。 我们的案例适用于任何供应商的存储系统的用户,因为任何制造商的硬件都可能发生类似的情况。
选择新的存储系统
去年年底,我们的基础设施中添加了一个有趣的数据存储系统:IBM FlashSystem 5000 系列的初级型号,在购买时称为 Storwize V5010e。 现在它以 FlashSystem 5010 的名称出售,但实际上它是相同的硬件基础,内部具有相同的 Spectrum Virtualize。
顺便说一句,统一管理系统的存在是 IBM FlashSystem 之间的主要区别。 对于年轻系列的模型来说,它实际上与更具生产力的模型没有什么不同。 选择特定型号仅提供适当的硬件基础,其特征使得可以使用一种或另一种功能或提供更高级别的可扩展性。 该软件识别硬件并为该平台提供必要且充分的功能。
IBM 闪存系统 5010
简单介绍一下我们的型号5010。这是一款入门级双控制器块存储系统。 它可以容纳NLSAS、SAS、SSD磁盘。 其中不支持 NVMe 放置,因为该存储模型定位于解决不需要 NVMe 驱动器性能的问题。
购买存储系统是为了容纳档案信息或不经常访问的数据。 因此,其功能的标准集对我们来说就足够了:分层(Easy Tier)、精简配置。 NLSAS 磁盘在 1000-2000 IOPS 水平上的性能也让我们非常满意。
我们的经验-我们如何没有按时更新固件
现在谈谈软件更新本身。 购买时,系统已经安装了稍微过时版本的 Spectrum Virtualize 软件,即 8.2.1.3.
我们研究了固件描述并计划更新 8.2.1.9。 如果我们效率更高一点,这篇文章就不会存在——这个 bug 就不会出现在更新的固件上。 但由于某些原因,该系统的更新被推迟了。
结果,轻微的更新延迟导致了极其不愉快的画面,如链接中的描述所示:
是的,在该版本的固件中,所谓的 APAR(授权程序分析报告)HU02104 是相关的。 如下所示。 在负载下,在某些情况下,缓存开始溢出,然后系统进入保护模式,在该模式下禁用池的 I/O。 在我们的例子中,它看起来像是在 RAID 3 模式下断开 RAID 组的 6 个磁盘,断开连接发生了 6 分钟。 接下来,恢复对池中卷的访问。
如果有人不熟悉 IBM Spectrum Virtualize 上下文中逻辑实体的结构和命名,我现在将简要解释一下。
存储系统逻辑元素结构
磁盘被收集到称为 MDisk(托管磁盘)的组中。 MDisk 可以是经典的 RAID (0,1,10,5,6、XNUMX、XNUMX、XNUMX、XNUMX) 或虚拟化的 RAID - DRAID(分布式 RAID)。 使用 DRAID 可以提高阵列的性能,因为... 将使用组中的所有磁盘,并且重建时间将减少,因为只有某些块需要恢复,而不是故障磁盘中的所有数据。
在 RAID-5 模式下使用分布式 RAID (DRAID) 时,数据块在磁盘之间的分布。
下图显示了在一个磁盘发生故障时 DRAID 重建如何工作的逻辑:
一块磁盘故障时DRAID重建的逻辑
接下来,一个或多个 MDisk 形成一个所谓的池。 在同一池中,不建议在同一类型的磁盘上使用具有不同 RAID/DRAID 级别的 MDisk。 我们不会太深入地讨论这个问题,因为…… 我们计划在以下一篇文章中介绍这一点。 事实上,池分为多个卷,这些卷使用一种或另一种块访问协议呈现给主机。
因此,由于上述情况,我们 阿帕HU02104由于三个磁盘的逻辑故障,MDisk 停止运行,进而导致 Pool 和相应的 Volume 出现故障。
由于这些系统非常智能,因此可以连接到基于云的 IBM Storage Insights 监控系统,如果出现问题,该系统会自动向 IBM 支持人员发送服务请求。 创建应用程序后,IBM 专家将远程执行诊断并联系系统用户。
因此,问题很快得到了解决,并且从支持服务收到了及时建议,将我们的系统更新到之前选择的固件 8.2.1.9,当时该固件已经得到修复。 它证实了
结果和我们的建议
俗话说:“善始善终”。 固件中的错误并未造成严重问题 - 服务器已尽快恢复并且没有数据丢失。 一些客户不得不重新启动虚拟机,但总的来说,我们已经做好了应对更多负面后果的准备,因为我们每天都会对所有基础设施元素和客户端计算机进行备份。
我们已收到确认,即使是承诺可用性 99,9999% 的可靠系统也需要关注和及时维护。 根据实际情况,我们得出了一些结论并分享我们的建议:
-
必须监视更新的发布,研究发行说明以纠正潜在的关键问题,并及时执行计划的更新。
这是一个组织性的、甚至是相当明显的观点,似乎不值得关注。 然而,在这个“平坦的地面”上,你很容易绊倒。 其实,正是这一刻,才增加了上述的麻烦。 制定更新法规时要非常小心,并同样仔细地监控其遵守情况。 这一点更多地涉及到“纪律”的概念。
-
最好让系统保持最新的软件版本。 而且,当前的并不是数字较大的那一款,而是发布日期较晚的那一款。
例如,IBM 为其存储系统至少保留了两个最新的软件版本。 在撰写本文时,这些是 8.2 和 8.3。 8.2 的更新较早发布。 8.3 的类似更新通常会稍微延迟发布。
8.3 版具有许多功能优势,例如,能够通过添加一个或多个新磁盘来扩展 MDisk(在 DRAID 模式下)(此功能从版本 8.3.1 开始出现)。 这是一个相当基本的功能,但不幸的是,在 8.2 中没有这样的功能。
-
如果由于某种原因无法更新,则对于版本 8.2.1.9 和 8.3.1.0 之前的 Spectrum Virtualize 软件版本(与上述错误相关的情况),为了降低其发生的风险,IBM 技术支持建议在池级别限制系统性能,如下图所示(该图是在俄罗斯化版本的 GUI 中拍摄的)。 以10000 IOPS为例,请根据您的系统特点进行选择。
限制 IBM 存储性能
-
有必要正确计算存储系统的负载并避免过载。 为此,您可以使用 IBM sizer(如果您有权访问它),也可以借助合作伙伴或第三方资源。 了解存储系统上的负载曲线非常重要,因为MB/s 和 IOPS 的性能差异很大,至少取决于以下参数:
-
操作类型:读或写,
-
操作块大小,
-
读写操作占总 I/O 流的百分比。
此外,操作速度还受到数据块读取方式的影响:顺序读取或随机读取。 在应用程序端执行多个数据访问操作时,存在依赖操作的概念。 也建议考虑到这一点。 所有这些都有助于查看操作系统、存储系统、服务器/虚拟机管理程序的性能计数器的总体数据,以及了解应用程序、DBMS 和其他磁盘资源“消费者”的操作特性。
-
-
最后,请确保备份是最新且有效的。 应根据业务可接受的 RPO 值来配置备份计划,并定期验证备份的完整性检查(相当多的备份软件供应商在其产品中实现了自动验证),以确保可接受的 RTO 值。
感谢您阅读到最后。
我们准备在评论中回答您的问题和意见。 还
来源: habr.com