从公有云对象存储迁移到回私有化 MinIO需要了解的所有信息


我们上一篇文章《如何从 AWS S3 遣返到 MinIO》的反响非常出色 - 我们已经接到了数十个企业的电话,要求我们提供遣返建议。我们已将这些回复汇总到这篇新文章中,其中我们更深入地研究了与遣返相关的成本和节省,以便您更轻松地进行自己的分析。对许多人来说,数据迁移是一项艰巨的任务。在实践中,他们的目标是将新数据引入 MinIO,并利用他们的甜蜜时间从云中迁移旧数据,或者将其留在原地而不增长。

遣返概览

要从 AWS S3 发回数据,您将遵循以下一般准则:

  1. 查看数据要求:确定需要从 AWS S3 返回的特定存储桶和对象。确保您逐个桶了解业务需求和合规性要求。

  2. 确定遣返目的地:您已经决定遣返到 MinIO,现在您可以选择在本地数据中心或其他云提供商或托管设施中运行 MinIO。使用 #1 中的要求,您将选择硬件或实例来满足预测的存储、传输和可用性需求。

  3. 数据传输:计划并执行从 AWS S3 到 MinIO 的数据传输。只需使用 MinIO 的内置批量复制或使用 MinIO 客户端进行镜像(有关详细信息,请参阅如何从 AWS S3 遣返到 MinIO)。您还可以使用其他几种方法进行数据传输,例如使用 AWS DataSync、AWS Snowball 或 TD SYNNEX 数据迁移,或者直接使用 AWS API。

  4. 数据访问和权限:确保为每个存储桶的返还数据设置适当的访问控制和权限。这包括用于管理用户访问、身份验证和授权的 IAM 和存储桶策略,以确保数据的安全性。

  5. 对象锁定:在迁移后保留对象锁定保留和法律保留策略至关重要。目标对象存储必须以与 Amazon S3 相同的方式解释规则。如果您不确定,请要求对目标对象存储实现进行 Cohasset Associates 合规性评估。

  6. 数据生命周期管理:为返还的数据定义并实施数据生命周期管理策略。这包括定义保留策略、备份和恢复过程以及基于每个存储桶的数据归档做法。

  7. 数据验证:验证传输的数据以确保其完整性和完整性。执行必要的检查和测试,以确保数据已成功传输,没有任何损坏或丢失。传输后,源和目标之间的对象名称、ETag 和元数据、校验和以及对象数量都匹配。

  8. 更新应用程序和工作流:好消息是,如果您遵循云原生原则来构建应用程序,那么您所要做的就是为新的 MinIO 端点重新配置它们。但是,如果您的应用程序和工作流旨在与 AWS 生态系统配合使用,请进行必要的更新以适应返回的数据。这可能涉及更新配置、重新配置集成或在某些情况下修改代码。

  9. 监控和优化:持续监控和优化遣返的数据环境,以确保最佳性能、成本效益并遵守数据管理最佳实践。

遣返步骤

在制定云遣返预算和规划时,需要考虑许多因素。幸运的是,我们的工程师已经与许多客户合作过,我们已经为您制定了详细的计划。我们的客户已经遣返了从少量工作负载到数百 PB 的所有内容。

最大的规划任务是考虑围绕网络、租用带宽、服务器硬件、未选择要遣返的数据的归档成本以及管理和维护自己的云基础架构的人力成本等方面的选择。估算这些成本并为其制定计划。云遣返成本将包括将数据从云移回数据中心的数据出口费用。这些费用故意高到足以迫使云锁定。请注意这些高昂的出口费用 - 它们证实了离开公共云的经济论点,因为随着您管理的数据量的增长,出口费用也会增加。因此,如果您要遣返,尽早采取行动是值得的。

我们将重点关注必须移动的数据和元数据 - 这是遣返所需工作的 80%。元数据包括存储桶属性和策略(基于访问/私有密钥的访问管理、生命周期管理、加密、匿名公有访问、对象锁定和版本控制)。

现在让我们专注于数据(对象)。对于要迁移的每个命名空间,请清点要移动的存储桶和对象。您的 DevOps 团队可能已经知道哪些存储桶包含重要的当前数据。您还可以使用 Amazon S3 清单。在较高级别上,这将如下所示:

Namespace(命名空间)总桶数对象总数对象总大小 (GB)每日总上传量 (TB)每日总下载量 (TB)
NS-001型16647,751,258980,014.4850.0414.80
NS-001型4424,320,810615,033.3523.84675.81
NS-002型64888,207,041601,298.91328.25620.93
NS-001型24068,394,231128,042.1662.4812.45

下一步是按命名空间列出每个存储桶及其要迁移的每个存储桶的属性。请注意在该存储桶中存储和读取数据的应用程序。根据使用情况,将每个存储桶分类为热层、暖层或冷层数据。

在删节版中,这看起来像

存储桶名称性能应用热/温/冷层
ACopy and paste JSON hereSpark, Iceberg, Dremio
BCopy and paste JSON hereElastic
CCopy and paste JSON hereElastic 弹性的快照

此时,您需要做出一些关于数据生命周期管理的决定,请密切关注,因为这是节省 AWS 费用的好方法。根据访问频率将每个存储桶中的对象分类为热、暖或冷。一个省钱的好地方是将冷层存储桶直接迁移到 S3 Glacier – 没有理由为了再次上传而产生下载出口费用。

根据要遣返的数据量,您可以通过几个选项来选择迁移方式。我们建议您在新的 MinIO 集群上加载和处理新数据,同时随着时间的推移将热数据和温数据复制到新集群。当然,复制对象所需的时间和带宽将取决于要复制的对象的数量和大小。

在这里,计算要从 AWS S3 传回的总数据将非常有帮助。查看您的库存,并计算所有分类为热桶和暖桶的总大小。

说明
热层和暖层数据总数 = 1,534,096.7 GB
可用带宽 = 10 Gbps
所需的最短传输时间(总对象大小/可用带宽)= 14.2 天

根据上述总额计算数据出口费用。我使用的是标价,但您的组织可能有资格享受 AWS 的折扣。我也使用 10 Gbps 作为连接带宽,但您可能或多或少可以使用。最后,我的假设是,三分之一的 S3 数据将仅转移到 S3 Glacier Deep Archive。

说明
分层到 S3 Glacier 的总数据 = 767048.337GB
S3 到 S3 Glacier 的传输费用(0.05 USD/1000 个对象)= 3773.11USD
S3 Glacier Deep Archive 月度存储费 = 760 USD

不要忘记为 S3 Glacier Deep Archive 的使用量制定预算。

说明
要传输的总数据 = 1,534,096.7 GB
前 10 TB,0.09 USD/GB = 900 USD
接下来的 100 TB,0.07 USD/GB = 70000 USD
超过 150 TB 的额外容量,0.05 USD/GB = 69205 USD
接下来的 40 TB,价格为 0.085 USD/GB = 3400 USD
出口总费用 = 143,504 USD

为简单起见,上述计算既不包括每个对象操作的费用(0.40 美元/1 百万美元),也不包括 LISTing 的成本(5 美元/1 百万美元)。对于非常大的遣返项目,我们还可以在通过网络发送对象之前对其进行压缩,从而为您节省一些出口费用。

另一种选择是使用 AWS Snowball 传输对象。每个 Snowball 设备都是 80TB,因此我们事先知道需要 20 个设备来进行遣返工作。每台设备的费用包括 10 天的使用时间,外加 2 天的运输费用。额外天数为每台设备 30 美元。

说明
20 Snowball 设备服务费 ($300 ea) = $6,000
R/T 运费(3-5 天,每台 400 美元)= 8,000 美元
S3 数据输出(0.02 USD/GB)= 30682 USD
Snowball 总费用 = 38981.93 USD

AWS 将向您收取标准请求、存储和数据传输费率,以读取和写入 AWS 服务,包括 Amazon S3 和 AWS Key Management Service (KMS)。使用 Amazon S3 存储类时,还有其他注意事项。对于 S3 导出作业,从 S3 传输到 Snow Family 设备的数据按 LIST、GET 等操作的标准 S3 费用计费。您还需要为 Amazon CloudWatch Logs、Amazon CloudWatch 指标和 Amazon CloudWatch Events 支付标准费率。

现在我们知道迁移如此庞大的数据量需要多长时间以及成本。根据时间和费用的组合,就哪种方法满足您的需求做出业务决策。

在这一点上,我们还知道在本地或托管设施中运行 MinIO 所需的硬件要求。根据上述 1.5PB 存储要求,估计数据增长,并查阅我们的推荐硬件和配置页面和为您的 MinIO 部署选择最佳硬件。

第一步是在 MinIO 中重新创建 S3 存储桶。无论您选择如何迁移对象,您都必须这样做。虽然 S3 和 MinIO 都使用服务器端加密来存储对象,但您不必担心迁移加密密钥。您可以使用 MinIO KES 连接到您选择的 KMS 来管理加密密钥。这样,在 MinIO 中创建加密租户和存储桶时,将自动为您生成新密钥。

有多个选项可以复制对象:批量复制和 mc mirror 。我之前的博客文章《如何从 AWS S3 遣返到 MinIO》包含了这两种方法的详细说明。您可以将对象直接从 S3 复制到本地 MinIO,或使用在 EC2 上运行的临时 MinIO 集群查询 S3,然后镜像到本地 MinIO。

通常,客户将我们编写的工具与 AWS Snowball 或 TD SYNNEX 的数据迁移硬件和服务结合使用,以移动大量数据(超过 1 PB)。

MinIO 最近与 Western Digital 和 TD SYNNEX 合作推出了 Snowball 替代方案。客户可以安排窗口来接收 Western Digital 硬件,并在租赁期间支付他们需要的费用。更重要的是,该服务不依赖于特定的云,这意味着企业可以使用该服务将数据移入、移出云和跨云移动数据,所有这些都使用无处不在的 S3 协议。有关该服务的其他详细信息,请访问TD SYNNEX网站的“数据迁移服务”页面。

可以使用 get-bucket S3 API 调用读取存储桶元数据(包括策略和存储桶属性),然后在 MinIO 中进行设置。当您注册 MinIO SUBNET 时,我们的工程师将与您一起从 AWS S3 迁移以下设置:基于访问密钥/私有密钥的访问管理、生命周期管理策略、加密、匿名公有访问、不可变性和版本控制。关于版本控制的一点是,迁移数据时通常不会保留 AWS 版本 ID,因为每个版本 ID 都是一个内部 UUID。这对客户来说很大程度上不是问题,因为对象通常是按名称调用的。但是,如果需要 AWS 版本 ID,那么我们有一个扩展程序可以将其保留在 MinIO 中,并帮助您启用它。

请特别注意 IAM 和存储桶策略。S3 不会是 AWS 基础设施中唯一被您抛弃的部分。在访问 S3 存储桶时,您将拥有大量服务账户供应用程序使用。这将是列出和审核所有服务帐户的好时机。然后,您可以决定是否在标识提供者中重新创建它们。如果您选择自动化,则使用 Amazon Cognito 与外部 OpenID Connect IDP 和 AD/LDAP 共享 IAM 信息。

特别注意数据生命周期管理,例如对象保留、对象锁定和归档/分层。在每个存储桶上运行一个 get-bucket-lifecycle-configuration 以获取人类可读的生命周期规则 JSON 列表。您可以使用 MinIO 控制台或 MinIO 客户端 (mc) 轻松重新创建 AWS S3 设置。使用 和 get-object-legal-hold get-object-lock-configuration 等命令来查明需要特殊安全和治理处理的对象。

当我们讨论生命周期时,让我们先谈谈备份和灾难恢复。是否希望复制到其他 MinIO 集群以进行备份和灾难恢复?

将对象从 AWS S3 复制到 MinIO 后,验证数据完整性非常重要。执行此操作的最简单方法是使用 MinIO 客户端对 S3 中的旧存储桶和 MinIO 上的新存储桶运行 mc diff 。这将计算存储桶之间的差异,并仅返回缺少或不同的对象的列表。此命令采用源存储桶和目标存储桶的参数。为方便起见,您可能希望为 S3 和 MinIO 创建别名,这样您就不必不断键入完整的地址和凭证。例如:

mc diff s3/bucket1 minio/bucket1 

好消息是,您所要做的就是将现有应用程序指向新的 MinIO 端点。可以在一段时间内逐个应用重写配置。在对象存储中迁移数据比文件系统对数据的干扰要小,只需将 URL 更改为从新集群读/写即可。请注意,如果您以前依赖 AWS 服务来支持您的应用程序,那么这些服务将不会出现在您的数据中心中,因此您必须将它们替换为它们的开源等效项并重写一些代码。例如,Athena 可以替换为 Spark SQL、Apache Hive 和 Presto、Kinesis 和 Apache Kafka 以及 AWS Glue 和 Apache Airflow。

如果您的 S3 迁移是将整个应用程序移动到本地的更大工作的一部分,那么您很可能使用 S3 事件通知在新数据到达时调用下游服务。如果是这种情况,请不要害怕 - MinIO 也支持事件通知。此处最直接的迁移是实现自定义 Webhook 来接收通知。但是,如果您需要更持久和更具弹性的目标,请使用 Kafka 或 RabbitMQ 等消息传递服务。我们还支持将事件发送到 PostgreSQL 和 MySQL 等数据库。

现在您已经完成了遣返,是时候将注意力转向存储操作、监控和优化了。好消息是,MinIO 不需要优化——我们已经在软件中内置了优化功能,因此您知道您的硬件获得了最佳性能。您需要开始监视新的 MinIO 集群,以持续评估资源利用率和性能。MinIO 通过 Prometheus 端点公开指标,您可以在选择的监控和警报平台中使用该端点。有关监控的更多信息,请参阅使用 Prometheus 和 Grafana 进行多云监控和警报,以及使用 OpenTelemetry、Flask 和 Prometheus 使用 MinIO 的指标。

总结

向云提供商开空白支票的日子已经一去不复返了,这已不是什么秘密。许多企业目前正在评估他们的云支出,以寻找潜在的节省。现在,您拥有开始从 AWS S3 迁移到 MinIO 所需的一切,包括具体的技术步骤和财务框架。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/248161.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为配置小型网络WLAN 的基本业务示例

配置小型网络WLAN基本业务示例 组网图形 图1 配置小型网络WLAN基本业务组网图 小型WLAN网络简介配置注意事项组网需求数据规划配置思路操作步骤配置文件 小型WLAN网络简介 本文介绍的WLAN网络是指利用频率为2.4GHz或5GHz的射频信号作为传输介质的无线局域网,相对于有…

运行VUE提示找不到模块validate-engines.js...

原来好好的,突然提示找不到模块validate-engines.js,CMD命令行输入npm -v不是内部或外部命令,node -v可以查看到版本号。 解决: 1. 卸载nodejs,重新下载安装文件:下载nodejs 2. 到目录:C:\Us…

大坑!react+thress.js

2. UI交互界面与Canvas画布叠加 | Three.js中文网 (webgl3d.cn) // canvas画布绝对定位 renderer.domElement.style.position absolute; renderer.domElement.style.top 0px; renderer.domElement.style.left 0px; renderer.domElement.style.zIndex -1; 我按照教程设置了…

Nginx负载均衡下的webshell连接

一、上传AntSword-Labs-master搭建负载均衡实验环境 搭建好docker环境,并且配置好docker-compose 我的Redhat的docker版本: 查看当前环境下的文件是否正确: 接着执行docker compose up -d 拉取环境 访问成功页面: 进入docker容器…

2024 高级前端面试题之 CSS 「精选篇」

该内容主要整理关于 CSS 的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 CSS模块精选篇 1. 盒模型2. BFC3. 层叠上下文4. 居中布局5. 选择器权重计算方式6. 清除浮动7. link 与 import 的区别8. CSS3的新特性9. CSS动画和过渡10. 有哪些…

如何使用Python+Flask搭建本地Web站点并结合内网穿透公网访问?

文章目录 前言1. 安装部署Flask并制作SayHello问答界面2. 安装Cpolar内网穿透3. 配置Flask的问答界面公网访问地址4. 公网远程访问Flask的问答界面 前言 Flask是一个Python编写的Web微框架,让我们可以使用Python语言快速实现一个网站或Web服务,本期教程…

HTML以及CSS相关知识总结(一)

近日就开始回顾html和css相关知识啦,并且会学习html5和css3的新知识,以下是我对记忆不太深刻的地方以及新知识点的总结: Web标准: 结构:用于对网页元素进行整理和分类,即HTML 表现:用于设置网页…

Spring Boot如何统计一个Bean中方法的调用次数

目录 实现思路 前置条件 实现步骤 首先我们先自定义一个注解 接下来定义一个切面 需要统计方法上使用该注解 测试 实现思路 通过AOP即可实现,通过AOP对Bean进行代理,在每次执行方法前或者后进行几次计数统计。这个主要就是考虑好如何避免并发情况…

Spring cloud智慧工地信息平台管理系统源码

目录 报警统计 实时报警列表 工程进度 劳务信息 隐患信息 施工安全管理 人员证书管理 专项安全方案 安全方案审批 隐患排查管理 安全检查统计 危险源Top10 整改超时预警 检查问题数量统计 安全隐患趋势 安全日志管理 视频监控查看 视频回放 AI危险源识别 AI应用总览 AI设备 机械…

海外动态IP代理如何帮助批量注册TikTok账户?

Tik Tok作为全球最火爆的短视频社交平台,无论是商业推广还是个人使用,都有着巨大的吸引力。商业推广中经常需要批量注册Tik Tok账号,以便进行市场营销或者数据分析。那么,如何批量注册Tik Tok账号呢?这篇文章将为大家详…

路由、组件目录存放

文章目录 单页应用程序:SPA- Single Page Application路由的介绍VuePouter的介绍VueRouted 的使用 组件目录存放问题(组件分类) 单页应用程序:SPA- Single Page Application 单页应用(SPA):所有功能在一个…

粒子群算法求解港口泊位调度问题(MATLAB代码)

粒子群算法(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,它通过模拟鸟群或鱼群的行为来寻找最优解。在泊位调度问题中,目标是最小化所有船只在港时间的总和,而PSO算法可以帮助我们找到一…

GitLab 中国发行版如何设置镜像拉取策略?

最近在用极狐GitLab(极狐GitLab 可以理解为 GitLab 在中国的发行版) CI/CD 的时候遇到一个问题:CI/CD 中有一个 stage 需要拉取 dockerhub 上的镜像,但是由于 dockerhub 在国内的访问不是很顺畅,经常发生 timeout 的情…

Spring Boot + security + jwt 测试安全策略

一、测试概述 主要目的是测试security的用法。因测试搭建mysql和redis比较麻烦,所以我这里将自定义的jwt和用户信息缓存到程序的内存中。 本人测试的项目比较混乱,Spring Boot父类只标出有用的依赖。其子类用的版本为jdk11。后续会继续深入oauth2&#x…

【Linux 基础】常用基础指令(上)

文章目录 一、 创建新用户并设置密码二、ls指令ls指令基本概念ls指令的简写操作 三、pwd指令四、cd指令五、touch指令六、rm指令七、mkdir指令八、rmdir 指令 一、 创建新用户并设置密码 ls /home —— 查看存在多少用户 whoami —— 查看当前用户名 adduser 用户名 —— 创建新…

公司宣传电子画册的制作方法

​制作公司宣传电子画册是一种非常有效的方式,可以展示公司的形象和产品,同时也可以吸引更多的潜在客户。不仅低碳环保,还省了不少人力和财力,只要一个二维码、一个链接就能随时随地访问公司的宣传画册。以下是一些制作电子画册的…

(2024,双流编码器,文本引导的风格迁移,调制,FFT 和低频滤波)FreeStyle:使用扩散模型进行文本引导风格迁移

FreeStyle: Free Lunch for Text-guided Style Transfer using Diffusion Models 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 3. 方法 3.1 LDM 3.2 FreeStyle 的模型结构…

springBoot配置文件加密

很多项目的配置文件里&#xff0c;包括数据库密码、缓存密码、还有一些第三方服务的Key都是直接配在里面&#xff0c;没有做任何加密处理&#xff01; 本次我用SpringBoot 集成 Jasypt 对数据库加密以及踩坑经验 1.集成依赖&#xff0c;我用的是目前最新的版本3.0.4版本 <…

常用芯片学习——AMS1117芯片

AMS1117 1A 低压差线性稳压器 使用说明 AMS1117 是一款低压差线性稳压电路&#xff0c;该电路输出电流能力为1A。该系列电路包含固定输出电压版本和可调输出电压版本&#xff0c;其输出电压精度为士1.5%。为了保证芯片和电源系统的稳定性&#xff0c;XBLWAMS1117 内置热保护和…

语音生成、写作增强、论文辅助、英文学习,AI原生应用精彩推荐一箩筐!

崭新的2024年已然降临&#xff0c;飞桨星河社区再次涌现出诸多精彩纷呈的AI原生应用&#xff0c;快来一同探索&#xff0c;发现这些应用带来的无限惊喜与可能吧&#xff01; 语音生成&#xff1a;10音色自由选择 应用介绍 本应用基于ERNIE SDK和语音合成工具&#xff0c;可以…