为什么验证高可用性存储上的软件很重要 (99,9999%)

为什么验证高可用性存储上的软件很重要 (99,9999%)

哪个固件版本最“正确”和“有效”? 如果存储系统保证99,9999%的容错率,是否意味着即使没有软件更新,它也能不间断地工作? 或者,相反,为了获得最大的容错能力,您应该始终安装最新的固件? 我们将根据我们的经验尝试回答这些问题。

小介绍

我们都知道,每个版本的软件,无论是操作系统还是设备驱动程序,通常都包含缺陷/错误和其他“功能”,这些“功能”可能直到设备使用寿命结束或“开放”时才会“出现”仅在某些条件下。 这些细微差别的数量和重要性取决于软件的复杂性(功能)以及开发过程中的测试质量。 

通常,用户会保留“出厂固件”(著名的“它可以工作,所以不要弄乱它”)或始终安装最新版本(在他们的理解中,最新意味着最有效)。 我们使用不同的方法 - 我们查看所使用的所有内容的发行说明 在 mClouds 云中 设备并为每台设备仔细选择合适的固件。

正如他们所说,我们根据经验得出了这个结论。 通过我们的操作示例,我们将告诉您为什么如果您不及时监控软件更新和说明,存储系统所承诺的 99,9999% 可靠性就毫无意义。 我们的案例适用于任何供应商的存储系统的用户,因为任何制造商的硬件都可能发生类似的情况。

选择新的存储系统

去年年底,我们的基础设施中添加了一个有趣的数据存储系统:IBM FlashSystem 5000 系列的初级型号,在购买时称为 Storwize V5010e。 现在它以 FlashSystem 5010 的名称出售,但实际上它是相同的硬件基础,内部具有相同的 Spectrum Virtualize。 

顺便说一句,统一管理系统的存在是 IBM FlashSystem 之间的主要区别。 对于年轻系列的模型来说,它实际上与更具生产力的模型没有什么不同。 选择特定型号仅提供适当的硬件基础,其特征使得可以使用一种或另一种功能或提供更高级别的可扩展性。 该软件识别硬件并为该平台提供必要且充分的功能。

为什么验证高可用性存储上的软件很重要 (99,9999%)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 就不会出现在更新的固件上。 但由于某些原因,该系统的更新被推迟了。

结果,轻微的更新延迟导致了极其不愉快的画面,如链接中的描述所示: https://www.ibm.com/support/pages/node/6172341

是的,在该版本的固件中,所谓的 APAR(授权程序分析报告)HU02104 是相关的。 如下所示。 在负载下,在某些情况下,缓存开始溢出,然后系统进入保护模式,在该模式下禁用池的 I/O。 在我们的例子中,它看起来像是在 RAID 3 模式下断开 RAID 组的 6 个磁盘,断开连接发生了 6 分钟。 接下来,恢复对池中卷的访问。

如果有人不熟悉 IBM Spectrum Virtualize 上下文中逻辑实体的结构和命名,我现在将简要解释一下。

为什么验证高可用性存储上的软件很重要 (99,9999%)存储系统逻辑元素结构

磁盘被收集到称为 MDisk(托管磁盘)的组中。 MDisk 可以是经典的 RAID (0,1,10,5,6、XNUMX、XNUMX、XNUMX、XNUMX) 或虚拟化的 RAID - DRAID(分布式 RAID)。 使用 DRAID 可以提高阵列的性能,因为... 将使用组中的所有磁盘,并且重建时间将减少,因为只有某些块需要恢复,而不是故障磁盘中的所有数据。

为什么验证高可用性存储上的软件很重要 (99,9999%)在 RAID-5 模式下使用分布式 RAID (DRAID) 时,数据块在磁盘之间的分布。

下图显示了在一个磁盘发生故障时 DRAID 重建如何工作的逻辑:

为什么验证高可用性存储上的软件很重要 (99,9999%)一块磁盘故障时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为例,请根据您的系统特点进行选择。

为什么验证高可用性存储上的软件很重要 (99,9999%)限制 IBM 存储性能

  • 有必要正确计算存储系统的负载并避免过载。 为此,您可以使用 IBM sizer(如果您有权访问它),也可以借助合作伙伴或第三方资源。 了解存储系统上的负载曲线非常重要,因为MB/s 和 IOPS 的性能差异很大,至少取决于以下参数:

    • 操作类型:读或写,

    • 操作块大小,

    • 读写操作占总 I/O 流的百分比。

    此外,操作速​​度还受到数据块读取方式的影响:顺序读取或随机读取。 在应用程序端执行多个数据访问操作时,存在依赖操作的概念。 也建议考虑到这一点。 所有这些都有助于查看操作系统、存储系统、服务器/虚拟机管理程序的性能计数器的总体数据,以及了解应用程序、DBMS 和其他磁盘资源“消费者”的操作特性。

  • 最后,请确保备份是最新且有效的。 应根据业务可接受的 RPO 值来配置备份计划,并定期验证备份的完整性检查(相当多的备份软件供应商在其产品中实现了自动验证),以确保可接受的 RTO 值。

感谢您阅读到最后。
我们准备在评论中回答您的问题和意见。 还 我们邀请您订阅我们的电报频道,其中我们定期举办促销活动(IaaS 折扣和 VPS 促销代码赠品高达 100%),在 Habr 博客上撰写有趣的新闻并发布新文章。

来源: habr.com

添加评论