戴尔 ECS 数据迁移到 MinIO

戴尔 ECS 集群允许您将数据迁移到任何与 S3 兼容的存储。戴尔 ECS 将此功能称为“数据迁移”,也称为复制到云。它是 ECS 3.8.0.1 中引入的一项功能,允许您将对象从戴尔 ECS 复制到 MinIO,这在希望将存储堆栈现代化以支持其 AI 数据基础设施需求的客户和潜在客户中非常受欢迎。数据迁移是基于 ECS Sync 开源工具构建的,该工具提供并行复制数据的功能。
在本概述中,我们将向您展示如何通过专门关注以下内容将数据从戴尔 ECS 迁移到 MinIO
- 配置源和目标存储桶
- 设置数据迁移策略
- 监控和记录迁移到 MinIO
配置源和目标存储桶
在我们开始创建策略以迁移数据之前,请确保已为数据迁移配置了源存储桶和目标存储桶。
配置戴尔 ECS 源存储桶
在内部,数据迁移策略使用元数据 (MD) 搜索扫描源存储桶以枚举所有要迁移的数据对象。为了使数据迁移实际移动数据,您需要确保在戴尔 ECS 源存储桶上启用了 MD 搜索,并将 LastModified 作为索引字段包含在内。
接下来,让我们配置 MinIO,即目标存储桶。
配置 MinIO 目标存储桶
为了将数据传输到 MinIO,我们需要事先在 MInIO 中创建以下资源
- 访问密钥和秘密密钥
- 存储桶名称
- IAM 策略
创建存储桶时,请务必启用存储桶版本控制,除非 MinIO 中的目标存储桶专门用于数据迁移策略。创建后,请务必记下上述详细信息,因为以后需要它们的值。
IAM 策略应允许以下 API
- s3:ListBucket
- s3:GetObject
- s3:PutObject
- s3:DeleteObject
请按照以下交互式指南了解如何在 MinIO 控制台中创建 IAM 策略、访问密钥和存储桶。
配置好源存储桶和目标存储桶后,让我们设置数据迁移策略。
数据迁移策略
数据迁移策略是戴尔 ECS 中的定义,可以通过 UI 或 API 设置,用于定义应将戴尔 ECS 源存储桶中的哪些对象复制到 MinIO 目标存储桶。数据迁移策略扫描作业会自动触发,但可以随时暂停或恢复。这与 MinIO 的 批次复制 过程非常类似。默认情况下,数据迁移策略按 LastModified 时间顺序将数据迁移到 MinIO。
我们将向您展示两种不同的数据迁移场景,让您了解这将如何运作,但迁移方式的限制只有您的想象力。
数据迁移到 MinIO
在此配置中,我们将添加必要的 MinIO 部分,以便戴尔 ECS 与其通信。第一步,在启用 MD 搜索后,是将数据迁移设置为 ON
,如下所示。
将数据迁移设置为 ON
后,我们可以继续配置策略。
- 端点:将其设置为 MinIO 端点
http://<minio_ip>:<minio_port>
- 访问密钥和秘密密钥:这是在 MinIO 控制台中创建并在之前步骤中保存的。
- 存储桶名称:MinIO 目标存储桶名称
- 日志记录存储桶:这是戴尔 ECS 中用于记录迁移过程中出现的所有错误的存储桶。
还有其他设置,我没有介绍所有设置,只是最重要的设置。请注意,如果从戴尔 ECS 源存储桶中删除数据,迁移完成后不会从 MinIO 目标存储桶中删除数据。
使用 Dremio 将数据迁移到 MinIO
现在,让我们看一下使用使用 Dremio 的应用程序迁移将是什么样子。
在此迁移过程中会发生以下几个步骤
- 面向客户的应用程序写入戴尔 ECS 存储桶。
- ECS 复制到 MinIO 中的暂存存储桶,使用数据迁移策略配置。
- 数据复制到暂存存储桶。
- MinIO 暂存存储桶将使用 事件通知 向 RabbitMQ 发送消息,Dremio 将订阅该消息。
- Dremio 读取消息并将数据从 MinIO 暂存存储桶摄取到 MinIO 中的 Dremio 存储桶。
- 数据摄取完成后,您可以使用 生命周期策略 清理 MinIO 暂存存储桶。
这只是两个示例,但您可以使用此方法从使用戴尔 ECS 的任何应用程序迁移到 MinIO。
数据迁移监控和日志记录
在数据迁移过程中,重要的是要密切关注整体迁移过程,因为它将数据迁移到 MinIO。戴尔 ECS GUI 提供了具有高级监控功能的概述仪表板,显示已复制的总对象数、已复制的总字节数、水印延迟、总错误数、已复制的对象数、已复制的字节数等等。
您还可以进一步深入到显示源/目标特定信息,例如迁移过程中选定期间的对象计数和存储桶大小。
在本文开头处的初始图中,我们显示了我们在 ECS 侧使用的日志存储桶,这是所有数据迁移操作的日志记录位置。这在调试迁移过程中的任何问题时非常有用,尤其是在由于硬件和物理限制而花费很长时间时。
以下是日志记录的示例
为什么要迁移到 MinIO?
MinIO 是一个单一的 Go 二进制文件,可以在许多不同类型的云和本地环境中启动。它非常轻量级,但也功能齐全,包括复制和加密等功能,并提供与各种应用程序的集成。我们已经 对它进行了基准测试,在仅使用 32 个节点的现成 NVMe SSD 的情况下,GET 操作的吞吐量为 325 GiB/s(349 GB/s),PUT 操作的吞吐量为 165 GiB/s(177 GB/s)——它用于构建数据湖/湖仓和分析以及 AI/ML 工作负载。
不仅如此,MinIO 还默认包含
- 加密:MinIO 支持 静态 和 传输 中的加密。这确保数据在从发出调用到对象放置到存储桶的整个交易过程中始终处于加密状态。
- 数据损坏保护:物理磁盘上的数据可能会由于多种原因而损坏。这可能是由于电压尖峰、固件中的错误、错误的读写操作以及其他问题造成的。MinIO 确保及时捕获和修复这些错误,以确保数据完整性。
- 擦除编码:MinIO 不使用 RAID 来确保数据的冗余,从而在性能方面增加额外开销,而是使用此数据冗余和可用性功能来实时重建对象,而无需任何额外的硬件或软件。
- 安全访问 ACL 和 PBAC:支持具有内置 IDP 的 IAM S3 风格的策略,有关更多信息,请参阅 MinIO 最佳实践 - 安全性和访问控制。
- 分层:对于不太常访问的数据,您可以将其转移到运行 MinIO 的另一个冷存储,以便您可以将最新数据优化到您的最佳硬件上,而不会占用未使用的空间。
- 对象锁定和保留:MinIO 支持对象锁定(保留),这将强制执行一次写入多次读取操作,以实现基于持续时间的锁定和无限期法律保留。这允许关键数据保留合规性,并满足 SEC17a-4(f)、FINRA 4511(C) 和 CFTC 1.31(c)-(d) 的要求。
更不用说,优秀的软件离不开良好的支持。MinIO 通过我们的 SUBNET 门户提供业界最佳的支持之一。我们有工程师直接在 Slack 风格的互动式和协作式媒介中回答关于 MinIO 核心代码库的问题。当您与工程师交谈时,您不必无休止地将问题升级到下一级工程师,您所交谈的人员能够解决您遇到的任何问题。我们甚至有一些客户在使用竞争对手的存储平台后,由于缺乏适当的支持而回到了我们这里。无论您是否设计了拥有所有功能的存储,如果您没有及时支持您的客户,它将毫无用处。对于我们来说,支持我们的客户并使其取得成功是我们的首要任务。
如果您有任何关于如何将数据从 Dell ECS 迁移到 MinIO 的问题,请务必通过 Slack 联系我们!