使用 MinIO SUBNET 实现软件可支持性

Supportability as Software with MinIO SUBNET

概括来说,MinIO 利用工程专注和极简主义思想来添加可支持性功能,这意味着在问题在您的安装中变成严重问题之前找到并修复它们。

更进一步:MinIO 中的可支持性作为软件

就像 DevOps 和云原生需要重新思考旧的开发范式一样,MinIO 对可支持性的方法正在推动人们对支持的新思考。

这种方法从根本上来说是尊重客户。如今的客户,尤其是在软件领域,在技术上是复杂的,并且通常非常清楚他们的问题是什么,即使他们不直接知道如何解决它。让技术水平较低的客服人员根据脚本处理问题,对所有相关人员来说都是不尊重和令人沮丧的。

信誉与复杂性

数据存储是现代企业的基石。如果它宕机,不仅会造成经济损失,还会损害声誉。虽然底层软件是构建块,但该软件的可支持性使企业能够高效运行。此外,在开发人员主导的世界中,可支持性是客户尊重的核心组成部分。

随着 MinIO 采用率的不断提高,我们的用户基础也在扩大,这意味着 MinIO 运行环境的复杂性和差异性越来越大。通常,我们发现的问题不在 MinIO 软件内部,而在于安装环境本身。增强可支持性功能意味着,无论您的生态系统多么复杂,当需要检查正常流程以解决问题时,您都可以使用相同的特性集,从而使您或 SUBNET 团队能够在几分钟内而不是几天内解决问题。

通过 SUBNET 提供的可支持性功能意味着简单的健康检查可以使您的企业始终处于维护状态,从而在出现问题之前解决。

SUBNET

MinIO 的可支持性帮助您扩展规模,在直接与工程师支持的护栏内运行可能复杂的基礎設施。这是一种简单但完全深刻的改变,改变了企业处理可支持性的方式。

对于 MinIO 的商业客户,SUBNET 是所有这一切的基础。根据领导 MinIO 支持职能的 Eco Willson 的说法

“SUBNET 将商业许可证(对于 AGPLv3 义务很重要)与独特的支持模式相结合,通过 MinIO 构建的门户提供 24/7/365 直接与工程师的支持,该门户将 Slack 和 Zendesk 的最佳功能融合到一个解决问题的机器中。还有许多其他功能,包括安全和架构审查、访问紧急按钮和赔偿,但核心功能是将我们的专业知识传达给我们的客户,以实现大规模数据基础设施解决方案。
SUBNET 具有颠覆性,因为我们痴迷于简单。软件的简单性。方法的简单性(我们只做一件事,对象存储)。这些因素共同创造了一个易于支持的产品。”

灾难恢复与故障排除

在企业环境中,停机就是灾难,因此对可支持性而不是灾难恢复进行工程设计至关重要。每个人都使用备份和还原作为解决方案,但我们应该将其视为仅限于灾难恢复。如果您需要从备份中恢复,那么您的情况确实很糟糕。一旦您使用 PB 级别的数据,恢复这些数据并确保其恢复运行可能需要几天时间。此时,您已经损失了业务、收入和信誉。确保您的生产系统可用并能够快速恢复非常重要。虽然备份仍然是谨慎的做法,但避免灾难是更好的策略。

故障排除

找到具体问题始终是核心问题,尤其是在动态的企业级生产环境中。在该环境中,事物至关重要,业务依赖于它。可支持性不仅仅是 BI 工具。如果工具宕机,这很麻烦。如果您的环境宕机,这是一个巨大的问题。

MinIO 是一种纯软件解决方案;不涉及任何硬件。我们构建的可支持性工具可以帮助您确定流程中出现问题的位置。网络?驱动器?服务器?您如何使用它?您如何处理行为不佳的应用程序?

我们的主要目标不仅仅是确保您正在运行;而是确保您以最佳方式运行。

支持

如果它使操作更简单、更具可扩展性或更适合企业,我们就会做到并正确做到。这些新功能使您可以更具体地确定任何困难的根源,从而更快地解决问题。

业内有些人会声称我们的模式不可扩展,随着规模的扩大,您需要一个庞大的支持组织。这些公司不像我们一样坚持不懈地追求简单。之所以能够扩展,是因为一切都与极简主义(简单性)有关,并且一切都是工程问题。随着我们的发展,我们将发展工程,而不是支持。

这种精神意味着可支持性功能(本质上提高了产品质量,而不仅仅是我们的响应)是 MinIO 保持对基于工程改进的激光式关注的一部分。

功能

注意:mc support 命令专为已在 MinIO SUBNET 上注册的 MinIO 部署而设计,以确保诊断和性能测试获得最佳结果。如果针对非 MinIO 部署使用,或者独立于 MinIO 工程和支持使用,MinIO 概不保证任何功能。

访问 SUBNET

有关 SUBNET、其所有功能和功能以及如何访问和浏览的详细说明,请参阅我们网站上的这篇优秀文章

门户

Home screen of SUBNET, showing 500 TiB, 20 Clusters, 118 Servers, 925 Drives, 196 Buckets, and ~24 million objects


可支持性功能

The supportability and health check left nav of SUBNET


健康检查诊断

Results screen from diagnostic test in SUBNET

跟踪

为了了解流量,Trace 至关重要,并且是报告支持问题的首要工具。通常,获取跟踪对于更好地进行调试总是很有用的。在我们的文档中阅读更多内容,以及在我们的 GitHub 存储库中

日志显示

systemd 在很大程度上与 susted/k8s/docker 日志冗余。使用 Logs show,我们可以发送日志,集中它们,然后对它们采取行动。在 SUBNET 中,它们被置于支持之下,以便位于同一位置。当服务器运行时生成错误日志时,Logs show 会打印出可操作的日志。在我们的文档中阅读更多内容

导入/导出 - IAM/Bucket 元数据

这是健康检查中全新的功能,对备份和还原很有用。它针对灾难恢复 - 必须拥有所有存储桶元数据和 IAM 用户组信息的副本。这些工具弥补了灾难恢复中的空白,因为这涉及来自集群的对象信息,但必须提取所有策略和组。在我们的 gist 中阅读更多内容

配置文件

当开发团队被叫来时,Profile 至关重要。它提供了对 MinIO 二进制文件正在执行的操作(例如 CPU 和内存时间)的低级分析。当您了解代码库时,Profile 信息非常有用,但当您遇到性能问题时,它通常是我们要求的第一批信息之一。CPU 信息显示系统哪个部分正在使用 CPU 和内存,以及哪些操作正在占用内存。Goroutines 检查正在运行的内容。扫描程序信息提供了对扫描程序操作的洞察,当客户对使用情况计算、ILM 操作和修复有疑问时,这些信息很有用。Profile 允许我们查看总体速度以及每个操作花费多长时间。

Profiling screen of SUBNET, showing cpu, mem, block, mutex, trace, threads, and goroutines profiles all checked.


在我们的文档中阅读更多内容.

扫描程序信息

Scanner info 对于大型集群(PB 级别的小文件数据)很有用。使用扫描程序信息,您可以确定扫描数据需要多长时间,这使工程师能够找到瓶颈和速度下降的原因。

ping

mc ping 命令检查服务器的活动状态。Ping 用于显示到实例的延迟。如果是秒或微秒,则表明问题出在环境中,而不是 MinIO 本身。

就绪

Ready 是一个命令,用于检查集群的健康状况,以了解集群是否已准备好接收传入流量。这基本上会访问 MinIO 服务器的健康检查端点,以了解集群是否具有足够的仲裁(成功写入/读取磁盘数据的共识),以服务 s3 API 请求。

mc ready 具有一个特殊的标志 mc ready --cluster-read,它会检查集群是否具有足够的读取仲裁来服务 HTTP GET 请求。

如果集群未准备好,mc ready 将每五秒重复 ping 一次,直到集群准备好并返回结果。

例如,

➜  mc git:(master) ./mc ready myminio 
The cluster is not ready
The cluster is not ready
The cluster is not ready
The cluster is not ready
The cluster is not ready
The cluster is not ready
The cluster is not ready
The cluster is ready

此命令用于检查集群是否已准备好并可以服务 S3 请求。如果集群报告为“未准备好”,则可能存在网络或磁盘故障,并且仲裁丢失。

立即清除

立即清除是对强制立即删除对象的增强。在此功能之前,对象删除会将条目移动到.minio.sys/tmp/trash,然后垃圾桶每五分钟通过后台线程清空一次。

此增强功能将立即清除对象,而无需将其移动到任何临时垃圾目录。并且此功能仅适用于DeleteBucketDeleteObject API,不适用于DeleteObjects。当x-minio-force-delete头传递到DeleteBucketDeleteObject API时,对象将立即被清除,而不是等待后台清理线程启动并清除垃圾。这种立即清除意味着驱动器空间将立即被回收。

检查

在后端,我们有文件的擦除码片段。除非您是 MinIO 开发人员,否则您无法重建它们。Inspect允许您从所有服务器获取有关文件的信息。在我们的文档中阅读更多内容

Top

Top正在扩展,但仅偶尔使用。扫描程序执行 MinIO 的会计流程。Top 确定是否需要另一个层级,或者是否最近已修复。它不像 Linux top,后者提供系统信息。在我们的文档中阅读更多内容

Perf

Perf是部署集群时最重要的命令之一。如果您在部署之前在生态系统中遇到问题,则部署将无法顺利进行。Perf是使您能够从技术上评估部署环境的工具。例如,以下是 8 台服务器 80 个驱动器设置的一些实际数字

8 server 80 drive performance test results

在我们的文档中阅读更多内容以及在我们的 GitHub 仓库中

支持

更好的可支持性不仅创造了一个更好的环境来运营支持我们的商业客户,而且是对尊重客户时间和资源的坚定承诺的结果。

要深入了解,请下载 MinIO并亲身体验,或在任何公共云上启动一个市场实例。您有疑问吗?在Slack或通过 hello@min.io 提出。