从网关或文件系统模式迁移
背景
MinIO 网关和相关文件系统模式在 2020 年 7 月停止了功能开发。2022 年 2 月,MinIO 宣布了MinIO 网关的弃用。 随着弃用公告的发布,MinIO 还宣布该功能将在六个月后移除。
截至RELEASE.2022-10-29T06-21-33Z,MinIO 网关和相关文件系统模式代码已被移除。仍然使用standalone或filesystem MinIO 模式并升级到 MinIO 服务器RELEASE.2022-10-29T06-21-33Z或更高版本的部署在尝试启动 MinIO 时会收到错误。
注意
对于在容器中运行的部署,请参阅容器 - 从网关或文件系统模式迁移教程。
概述
要升级到RELEASE.2022-10-29T06-21-33Z或更高版本,那些使用standalone或filesystem部署模式的用户必须创建一个新的单节点单驱动器部署,并将设置和内容迁移到新部署。
本文档概述了成功启动和迁移到新部署所需的步骤。
重要
独立/文件系统模式在任何版本(包括 MinIO 服务器RELEASE.2022-10-24T18-35-07Z)上都继续有效。要继续使用独立部署,请使用 MinIO 客户端RELEASE.2022-10-29T10-09-23Z或任何早期版本及其对应的 MinIO 客户端安装该 MinIO 服务器版本。请注意,MinIO 客户端的版本应更新,并尽可能接近 MinIO 服务器的版本。
文件系统模式部署必须至少在RELEASE.2022-06-25T15-50-16Z上才能使用 MinIO 客户端导入和导出命令。文件系统模式部署(包括RELEASE.2022-06-20T23-13-45Z)可以通过在新的部署上手动重新创建用户、策略、存储桶和其他资源来迁移。
步骤
注意
您可以在环境变量中以及使用mc admin config set
设置 MinIO 配置设置。根据您当前的部署设置,您可能需要检索两者的值。
您可以使用env | grep MINIO_
检查任何运行时设置,或者对于使用 MinIO 的 systemd 服务的部署,检查/etc/default/minio
的内容。
对于文件系统模式部署
如果需要,请升级现有部署。
最旧的可接受版本是
MinIO 客户端 RELEASE.2022-06-26T18-51-48Z
最新的可接受版本是
MinIO 客户端 RELEASE.2022-10-29T10-09-23Z
创建一个新的单节点单驱动器 MinIO 部署。
部署位置可以是您选择的存储介质上的任何空文件夹。只要现有部署不在驱动器的根目录,同一驱动器上的新文件夹就可以用于新部署。如果现有的独立系统指向驱动器的根目录,则必须为新部署使用单独的驱动器。
如果旧版和新版部署都在同一主机上
将新部署安装到与现有部署不同的路径。
将新部署的控制台和 API 端口设置为与现有部署不同的端口。
以下命令行选项在启动时设置端口
--address
用于设置 API 端口。--console-address
用于设置控制台端口。
对于由
systemd
管理的部署使用唯一名称复制现有的
/etc/default/minio
环境文件。在新部署的服务文件中,更新
EnvironmentFile
以引用新的环境文件。
以下步骤使用来自两个部署的
mc
命令行工具。现有 MinIO 客户端 是来自旧部署的mc
。新 MinIO 客户端 是来自新部署的mc
。使用
mc alias set
和新 MinIO 客户端为上一步创建的部署添加别名。mc alias set NEWALIAS PATH ACCESSKEY SECRETKEY
使用新 MinIO 客户端。
将
NEWALIAS
替换为要为部署创建的别名。将
PATH
替换为新部署的 IP 地址或主机名和端口。将
ACCESSKEY
和SECRETKEY
替换为创建新部署时使用的凭据。
根据部署类型迁移设置
MinIO 网关是一种无状态代理服务,可为一系列后端存储系统提供 S3 API 兼容性。
文件系统模式部署为单个 MinIO 服务器进程和单个存储卷提供 S3 访问层。
迁移配置设置
如果您的部署使用 环境变量 进行配置设置,请将环境变量从现有部署的
/etc/default/minio
文件复制到新部署中的同一文件。您可以省略任何MINIO_CACHE_*
和MINIO_GATEWAY_SSE
环境变量,因为它们不再使用。如果您使用
mc admin config set
进行配置设置,请使用新 MinIO 客户端复制现有设置以进行新部署。注意
以下文件系统模式步骤假定现有 MinIO 客户端支持所需的导出命令。如果它不支持,请使用新 MinIO 客户端在新部署上手动重新创建用户、策略、生命周期规则和存储桶。
导出现有部署的**配置**。
使用
mc admin config export
命令和现有 MinIO 客户端检索为现有独立 MinIO 部署定义的配置。mc admin config export ALIAS > config.txt
使用现有 MinIO 客户端。
将
ALIAS
替换为您要从中检索值的现有独立部署使用的别名。
使用新 MinIO 客户端将现有独立部署的**配置**导入新部署。
mc admin config import ALIAS < config.txt
使用新 MinIO 客户端。
将
ALIAS
替换为新部署的别名。
如果
import
报告配置密钥的错误,请在相关行的开头使用#
对其进行注释,然后重试。完成部署迁移后,验证目标 MinIO 服务器版本的当前语法,并使用mc admin config set
手动设置任何所需的密钥。使用新 MinIO 客户端重新启动新部署的服务器。
mc admin service restart ALIAS
使用新 MinIO 客户端。
将
ALIAS
替换为新部署的别名。
使用现有 MinIO 客户端从现有独立部署导出**存储桶元数据**。
以下命令将现有部署的存储桶元数据导出到
.zip
文件。数据包括
存储桶目标
生命周期规则
通知
配额
锁
版本控制
导出仅包含存储桶元数据。此命令不会从现有部署导出对象。
mc admin cluster bucket export ALIAS
使用现有 MinIO 客户端。
将
ALIAS
替换为现有部署的别名。
此命令创建一个包含每个存储桶元数据的
cluster-metadata.zip
文件。使用新 MinIO 客户端将**存储桶元数据**导入新部署。
以下命令读取导出的存储桶
.zip
文件的内容,并在新部署上创建具有相同配置的存储桶。mc admin cluster bucket import ALIAS cluster-metadata.zip
使用新 MinIO 客户端。
将
ALIAS
替换为新部署的别名。
该命令在新的部署上创建存储桶,其配置与现有部署的 .zip 文件中的元数据提供的配置相同。
使用现有 MinIO 客户端将现有独立部署的**IAM 设置**导出到新部署。
如果您使用外部身份和访问管理提供程序,请在新部署中重新创建这些设置以及所有关联的策略。
使用以下命令从现有部署导出 IAM 设置。此命令导出
组和组映射
STS 用户和 STS 用户映射
策略
用户和用户映射
mc admin cluster iam export ALIAS
使用现有 MinIO 客户端。
将
ALIAS
替换为现有部署的别名。
此命令创建一个包含 IAM 数据的
ALIAS-iam-info.zip
文件。使用新 MinIO 客户端将**IAM 设置**导入新部署。
使用导出的文件在新部署上创建 IAM 设置。
mc admin cluster iam import ALIAS alias-iam-info.zip
使用新 MinIO 客户端。
将
ALIAS
替换为新部署的别名。将 zip 文件的名称替换为现有部署的文件的名称。
使用
mc mirror
迁移存储桶内容。使用
mc mirror
以及现有 MinIO 客户端上的独立部署上的--preserve
和--watch
标志,将对象移动到新的具有现有 MinIO 客户端的 SNSD 部署。mc mirror --preserve --watch SOURCE/BUCKET TARGET/BUCKET
使用现有 MinIO 客户端。
将
SOURCE/BUCKET
替换为现有独立部署的别名和存储桶。将
TARGET/BUCKET
替换为新部署的别名和相应的存储桶。
停止任何 S3 或 POSIX 客户端对独立部署的写入操作。
等待
mc mirror
完成所有存储桶的任何剩余操作。停止两个部署的服务器。
使用先前独立部署使用的端口重新启动新的 MinIO 部署。有关启动 MinIO 服务的更多信息,请参阅部署 SNSD 文档中的步骤四。
确保应用所有环境变量和运行时配置设置,并验证新部署的行为。