MinIO 网关迁移
我们弃用了 MinIO Gateway。该产品最初开发是为了让客户使用 S3 API 与后端一起工作,例如 NFS、Azure Blob 和 HDFS,否则这些后端将不支持它。MinIO 网关主要充当客户端和后端之间 S3 API 的转换层,因此每个后端都可以以其本机格式写入。
MinIO Gateway 从未打算成为永久性解决方案,相反,它是那些尚未使用 S3 兼容 API 的人的权宜之计,因此他们可以轻松可靠地从传统存储解决方案过渡。S3 API 无处不在(部分归功于 MinIO Gateway),但如果我们继续开发 MinIO Gateway,我们只会使既非高性能也非云原生的旧技术永存。此外,解决为每个后端维护 MinIO 网关所需的持续技术挑战需要大量时间和资源,因此完全弃用它更有意义。
如何迁移
在这篇博文中,我们将向您展示如何将现有的 MinIO 网关设置迁移到 MinIO 服务器部署。为了避免新旧设置之间的混淆,让我们适当地命名它们:
old_gatewaynew_node
让我们首先继续部署一个独立于安装位置的 MinIOnew_node 驱动器实例old_gateway。请按照我们之前的博文Configuring MinIO with SystemD中提供的说明进行操作。
接下来让我们安装mc admin
$ curl https://dl.min.io/client/mc/release/linux-amd64/mc \ --create-dirs \ -o $HOME/minio-binaries/mc $ chmod +x $HOME/minio-binaries/mc $ export PATH=$PATH:$HOME/minio-binaries/ $ mc --help
为 mc adminold_gateway和设置两个别名new_node
$ mc alias set old_gateway <OLD_GATEWAY_ADDRESS> <OLD_GATEWAY_USER> <OLD_GATEWAY_PASS> $ mc alias set new_node <NEW_NODE_ADDRESS> <NEW_NODE_USER> <NEW_NODE_PASS>
确认已正确设置别名new_node
$ mc alias list old_gateway $ mc alias list new_node
将配置导出和导入old_gateway到new_node
$ mc admin config export old_gateway > config.txt $ mc admin config import new_node < config.txt
虽然这将允许您迁移您使用 设置的任何设置mc admin config set,但它不会迁移环境变量,因为可以通过多种方式设置这些变量并且没有自动迁移它们的方法。相反,我们建议检查以下两个地方:
首先,grep 上设置的任何环境变量old_gateway,并在 上复制该环境变量new_node。
$ env | grep MINIO_
其次,如果old_gateway是systemd安装,请检查以下文件并将其设置迁移到new_node同一位置。
$ cat /etc/default/minio
new_node在导入old_gateway的配置、环境变量和默认值后重启 MinIO :
$ systemctl restart minio
将存储桶元数据设置从old_gateway导出到new_node
$ mc admin cluster bucket export old_gateway
上面的命令将生成一个cluster-metadata.zip文件。从该文件导入元数据设置
$ mc admin cluster bucket import new_node cluster-metadata.zip
将 IAM 设置从导出old_gateway到new_node
$ mc admin cluster iam export old_gateway
上面的命令将创建一个名为old_gateway-iam-info.zip. 从此文件导入 IAM 设置
$ mc admin cluster iam import new_node old_gateway-iam-info.zip
或者,您可以复制层从old_gateway到new_node,但没有自动命令。相反,列出来自的层old_gateway并将它们手动应用到new_node.
$ mc admin tier ls old_gateway --json
最后但同样重要的是,让我们将实际数据old_gateway从new_node. old_gateway在继续下一步之前停止任何进一步的写入以避免同步问题。
new_node在调用时创建一个桶new-bucket
$ mc mb new_node/new-bucket
使用mc mirror命令迁移数据,假设旧的bucket的名字是old-bucket(如果不是则替换)
$ mc mirror --preserve --watch old_gateway/old-bucket new_node/new-bucket
根据要镜像的数据量,这可能需要一些时间;请等到它完成。
镜像完成后,您就可以使用新的 MinIO 部署了。请务必验证您是否已成功从 复制环境变量、配置和其他设置old_gateway。
一旦您验证 的new_node运行方式与 类似old_gateway,您就可以更新我们之前要求停止写入的应用程序old_gateway,现在可以开始写入new_node. 这还可以包括清理设置资源old_gateway和任何剩余的后端。
MinIO 网关 - 去,去,走了!
如您所见,从 MinIO 网关迁移到作为单个节点或一组分布式节点运行的 MinIO 服务器非常简单。事实上,它是如此的快速和简单,以至于没有理由不从 Gateway 迁移出来,它已经从最新版本的 MinIO 代码库中删除。您可以查看文档以获取有关迁移的更多信息。
如果您对 MinIO Gateway 迁移有任何疑问,请务必在Slack上联系我们!