从网关或文件系统模式迁移
背景说明
MinIO 网关和相关文件系统模式在 2020 年 7 月进入了功能冻结阶段。 在 2022 年 2 月,MinIO 宣布 弃用 MinIO 网关 。 随着弃用公告的发布,MinIO 还宣布该功能将于六个月后被删除。
截至 RELEASE.2022-10-29T06-21-33Z ,MinIO 网关和相关的文件系统模式代码已被移除。 仍然使用独立模式或文件系统模式的 MinIO 部署,在升级到 MinIO 服务器 RELEASE.2022-10-29T06-21-33Z 或更高版本时,尝试启动 MinIO 会收到错误提示。
备注
对于在容器中运行的部署,请参阅 容器 - 从网关模式或文件系统模式迁移 教程。
概述
要升级到 RELEASE.2022-10-29T06-21-33Z 或更高版本,那些使用 standalone 或 filesystem 部署模式的用户必须创建一个新的 单节点单硬盘 部署,并将设置和内容迁移到新的部署中。
本文档概述了成功启动和迁移到新部署所需的步骤。
重要
独立/文件系统模式在任何版本中仍可以使用,包括 MinIO Server RELEASE.2022-10-24T18-35-07Z。 要继续使用独立部署,请安装该 MinIO 服务器版本和 MinIO客户端 RELEASE.2022-10-29T10-09-23Z 或与其相应的任何 早期版本。请注意,MinIO客户端的版本应尽可能新,并且与 MinIO服务器的版本尽可能接近。
文件系统模式的部署必须至少使用 RELEASE.2022-06-25T15-50-16Z 才能使用 MinIO客户端导入和导出命令。 文件系统模式的部署,包括 RELEASE.2022-06-20T23-13-45Z 及之前的版本,可以通过手动重新创建用户、策略、桶和其他资源来迁移至新的部署。
操作步骤
备注
您可以在环境变量中设置 MinIO 配置设置,并使用 mc admin config set 命令进行设置。
根据您当前的部署设置,您可能需要检索两者的值。
您可以使用 env | grep MINIO_ 或者对于使用 MinIO 的 systemd 服务的部署,请检查 /etc/default/minio 的内容来查看任何运行时设置。
- 对于文件系统模式的部署: - 如有需要,请升级现有部署。 - 最旧可接受的版本为: 
- MinIO客户端 RELEASE.2022-06-26T18-51-48Z 
 - 最新可接受的版本为: 
- MinIO客户端 RELEASE.2022-10-29T10-09-23Z 
 
- 创建一个单节点单硬盘的MinIO部署. - 请参阅 文档中一步步介绍了如何进行单节点部署的说明 你可以逐步说明文档以启动一个新的 SNSD 部署。 - 部署位置可以是您选择的任意空文件夹。 只要现有的部署不在驱动器的根目录下,同一驱动器上的新建文件夹即可用于新部署。 如果现有的独立系统指向了驱动器的根目录,则必须使用另一个驱动器来进行新的部署。 - 如果新旧部署都在同一台主机上: - 将新部署安装到与现有部署不同的路径中。 
- 将新部署的控制台和 API 端口设置为不同于现有部署的端口。 - 下面的命令行选项在启动时设置端口: - 使用 - --address来设置 API 端口.
- 使用 - --console-address来设置 Console 端口.
 
- 对于由 - 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 访问层。 
 - Migrate configuration settings: - 如果您的部署使用 环境变量 进行配置设置,请将现有部署的 /etc/default/minio文件中的环境变量复制到新部署的同一文件中。
- 您可以省略任何 - MINIO_CACHE_*和- MINIO_GATEWAY_SSE环境变量,因为它们已不再使用。
 - 如果您使用 - mc admin config set进行配置设置,请使用新的 MinIO 客户端为新部署复制现有设置。- 备注 - 假定现有的 MinIO 客户端支持所需的导出命令,以下是文件系统模式的步骤。 - 如果不支持导出命令,则需要使用新的 MinIO 客户端在新部署中手动重新创建用户、策略、生命周期规则和存储桶。 - 导出现在的 配置文件. - 使用现有的 MinIO客户端,运行 - mc admin config export命令以检索为现有独立 MinIO 部署定义的配置文件。- mc admin config export ALIAS > config.txt - 使用已存在的MinIO客户端。 
- 将 - ALIAS替换为正在检索值的现有独立部署所使用的别名。
 
- 使用新的 MinIO客户端,从现有独立部署中导入 配置文件 到新部署中。 - mc admin config import ALIAS < config.txt - 使用已存在的MinIO客户端. 
- 将 - ALIAS替换为正在检索值的现有独立部署所使用的别名。
 
 - 如果 import对配置键报错,请将该行开头添加#注释后再尝试。
- 完成迁移后,请验证目标MinIO Server版本的当前语法,并使用 - mc admin config set手动设置任何需要的键。- 请使用新的MinIO客户端重启新部署的服务器。 - mc admin service restart ALIAS - 使用新的MinIO客户端 
- 将 - ALIAS替换为正在检索值的现有独立部署所使用的别名。
 
- 请使用现有的MinIO客户端从现有独立部署中导出存储桶元数据。 - The following command exports bucket metadata from the existing deployment to a - .zipfile. 以下命令将存储桶元数据导出到一个- .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替换为正在检索值的现有独立部署所使用的别名
 - 此命令将创建一个名为 - ALIAS-iam-info.zip的文件,其中包含IAM数据。
- 使用新的MinIO客户端将**IAM设置**导入到新部署中。 - 使用导出的文件在新部署中创建IAM设置。 - mc admin cluster iam import ALIAS alias-iam-info.zip - 使用新的MinIO客户端 
- 将 - ALIAS替换为正在检索值的现有独立部署所使用的别名。
- 用现有部署文件的名称替换zip文件的名称 
 
 
 
- 使用 - mc mirror命令来迁移存储桶内容。- 使用 - mc mirror带上- --preserve和- --watch标志来移动对象到新的 SNSD 部署中,使用现有的MinIO客户端迁移存储桶内容。- mc mirror --preserve --watch SOURCE/BUCKET TARGET/BUCKET - 使用已经存在的MinIO客户端 
- 将“SOURCE/BUCKET”替换为现有单独部署的别名和存储桶 
- 将“TARGET/BUCKET”替换为新部署的别名和对应存储桶 
 
- 停止来自任何S3或POSIX客户端的对独立部署的写入操作。 
- 等待“mc mirror”完成所有存储桶的复制操作,直到操作完成。 
- 停止两个部署的服务器。 
- 重新启动新的MinIO部署并使用前一个独立部署所使用的端口。有关启动MinIO服务的更多信息,请参阅deploy SNSD 文档 。 - 确保应用所有环境变量和运行时配置设置,并验证新部署的行为。 
