从网关或文件系统模式迁移
背景
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)可以通过在新部署上手动重新创建用户、策略、存储桶和其他资源来迁移。
步骤
注意
您可以在环境变量中设置 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
用于设置控制台端口。
对于由
systemd
管理的部署使用唯一的名称复制现有的
/etc/default/minio
环境文件。在新部署的服务文件中,更新
EnvironmentFile
以引用新的环境文件。
以下步骤使用来自两个部署的
mc
命令行工具。现有 MinIO 客户端是来自旧部署的mc
。新 MinIO 客户端是来自新部署的mc
。使用
mc alias set
和新的 MinIO 客户端,为上一步骤中创建的部署添加别名。mc alias set NEWALIAS PATH ACCESSKEY SECRETKEY
使用新的 MinIO 客户端。
用要为部署创建的别名替换
NEWALIAS
。用新部署的 IP 地址或主机名和端口替换
PATH
。用您在创建新部署时使用的凭据替换
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
。
此命令将创建一个
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
标志在独立部署上使用现有的 MinIO 客户端将对象移动到新的 SNSD 部署。mc mirror --preserve --watch SOURCE/BUCKET TARGET/BUCKET
使用现有的 MinIO 客户端。
用现有独立部署的别名和存储桶替换
SOURCE/BUCKET
。用新部署的别名和对应存储桶替换
TARGET/BUCKET
。
停止对任何 S3 或 POSIX 客户端的独立部署进行写入操作。
等待
mc mirror
完成所有存储桶的任何剩余操作。停止两个部署的服务器。
使用之前独立部署使用的端口重新启动新的 MinIO 部署。有关启动 MinIO 服务的更多信息,请参阅部署 SNSD 文档 中的步骤四。
确保您应用所有环境变量和运行时配置设置,并验证新部署的行为。