文档

从网关或文件系统模式迁移

背景

MinIO 网关和相关的文件系统模式在 2020 年 7 月进入功能冻结状态。2022 年 2 月,MinIO 宣布 弃用 MinIO 网关。随着弃用公告,MinIO 还宣布该功能将在六个月内移除。

截至 RELEASE.2022-10-29T06-21-33Z,MinIO 网关和相关的文件系统模式代码已被移除。仍然使用 standalonefilesystem MinIO 模式并升级到 MinIO 服务器 RELEASE.2022-10-29T06-21-33Z 或更高版本的部署在尝试启动 MinIO 时会收到错误。

概述

要升级到 RELEASE.2022-10-29T06-21-33Z 或更高版本,那些使用 standalonefilesystem 部署模式的用户必须创建一个新的 单节点单驱动器 部署,并将设置和内容迁移到新部署。

本文档概述了成功启动和迁移到新部署所需的步骤。

重要

独立/文件系统模式在任何版本(包括 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 的内容。

  1. 对于文件系统模式部署

    如果需要,升级现有部署。

    最旧的可接受版本是

    最新的可接受版本是

  2. 创建一个新的单节点单驱动器 MinIO 部署。

    有关启动新 SNSD 部署的分步说明,请参阅 文档

    部署位置可以是您选择的存储介质上的任何空文件夹。只要现有部署不在驱动器的根目录中,同一驱动器上的新文件夹就可以用于新部署。如果现有的独立系统指向驱动器的根目录,则必须为新部署使用单独的驱动器。

    如果旧的和新的部署都在同一个主机上

    • 将新部署安装到与现有部署不同的路径。

    • 将新部署的控制台和 API 端口设置为与现有部署不同的端口。

      以下命令行选项在启动时设置端口

    • 对于由 systemd 管理的部署

      • 使用唯一的名称复制现有的 /etc/default/minio 环境文件。

      • 在新部署的服务文件中,更新 EnvironmentFile 以引用新的环境文件。

    以下步骤使用来自两个部署的 mc 命令行工具。现有 MinIO 客户端是来自旧部署的 mc新 MinIO 客户端是来自新部署的 mc

  3. 使用 mc alias set 和新的 MinIO 客户端,为上一步骤中创建的部署添加别名。

    mc alias set NEWALIAS PATH ACCESSKEY SECRETKEY
    
    • 使用新的 MinIO 客户端。

    • 用要为部署创建的别名替换 NEWALIAS

    • 用新部署的 IP 地址或主机名和端口替换 PATH

    • 用您在创建新部署时使用的凭据替换 ACCESSKEYSECRETKEY

  4. 根据部署类型迁移设置

    • MinIO 网关是一种无状态代理服务,它为一系列后端存储系统提供 S3 API 兼容性。

    • 文件系统模式部署为单个 MinIO 服务器进程和单个存储卷提供 S3 访问层。

    迁移配置设置

    如果您的部署使用 环境变量 用于配置设置,请将环境变量从现有部署的 /etc/default/minio 文件复制到新部署中的同一文件。您可以省略任何 MINIO_CACHE_*MINIO_GATEWAY_SSE 环境变量,因为它们不再使用。

    如果您使用 mc admin config set 用于配置设置,请使用新的 MinIO 客户端为新部署复制现有设置。

    注意

    以下文件系统模式步骤假设现有的 MinIO 客户端支持所需的导出命令。如果没有,请使用新的 MinIO 客户端在新部署上手动重新创建用户、策略、生命周期规则和存储桶。

    1. 导出现有部署的 **配置**。

      使用 mc admin config export 命令以及现有的 MinIO 客户端来检索为现有的独立 MinIO 部署定义的配置。

      mc admin config export ALIAS > config.txt
      
      • 使用现有的 MinIO 客户端。

      • 用您要从中检索值的现有独立部署所使用的别名替换 ALIAS

    2. 使用新的 MinIO 客户端将 **配置** 从现有的独立部署导入到新部署。

      mc admin config import ALIAS < config.txt
      
      • 使用新的 MinIO 客户端。

      • 用新部署的别名替换 ALIAS

      如果 import 报告配置密钥的错误,请在相关行的开头使用 # 将其注释掉,然后重试。完成部署迁移后,验证目标 MinIO 服务器版本的当前语法,并使用 mc admin config set 手动设置任何所需的密钥。

    3. 使用新的 MinIO 客户端重新启动新部署的服务器。

      mc admin service restart ALIAS
      
      • 使用新的 MinIO 客户端。

      • 用新部署的别名替换 ALIAS

    4. 使用现有的 MinIO 客户端从现有的独立部署导出 **存储桶元数据**。

      以下命令将存储桶元数据从现有部署导出到 .zip 文件。

      数据包括

      • 存储桶目标

      • 生命周期规则

      • 通知

      • 配额

      • 锁定

      • 版本控制

      导出仅包含存储桶元数据。此命令不会从现有部署导出对象。

      mc admin cluster bucket export ALIAS
      
      • 使用现有的 MinIO 客户端。

      • 用您现有部署的别名替换 ALIAS

      此命令将创建一个 cluster-metadata.zip 文件,其中包含每个存储桶的元数据。

    5. 使用新的 MinIO 客户端将 **存储桶元数据** 导入到新部署。

      以下命令读取导出的存储桶 .zip 文件的内容,并在新部署上创建具有相同配置的存储桶。

      mc admin cluster bucket import ALIAS cluster-metadata.zip
      
      • 使用新的 MinIO 客户端。

      • 用新部署的别名替换 ALIAS

      该命令使用来自现有部署的 .zip 文件中的元数据,在新部署上创建具有相同配置的存储桶。

    6. 使用现有的 MinIO 客户端将 **IAM 设置** 从现有的独立部署导出到新部署。

      如果您使用的是外部身份和访问管理提供商,请在新部署中重新创建这些设置以及所有相关策略。

      使用以下命令从现有部署导出 IAM 设置。此命令导出

      • 组和组映射

      • STS 用户和 STS 用户映射

      • 策略

      • 用户和用户映射

      mc admin cluster iam export ALIAS
      
      • 使用现有的 MinIO 客户端。

      • 用您现有部署的别名替换 ALIAS

      此命令将创建一个 ALIAS-iam-info.zip 文件,其中包含 IAM 数据。

    7. 使用新的 MinIO 客户端将 **IAM 设置** 导入到新部署。

      使用导出的文件在新部署上创建 IAM 设置。

      mc admin cluster iam import ALIAS alias-iam-info.zip
      
      • 使用新的 MinIO 客户端。

      • 用新部署的别名替换 ALIAS

      • 将 zip 文件的名称替换为现有部署文件的名称。

  5. 使用 mc mirror 迁移存储桶内容。

    使用 mc mirror 以及 --preserve--watch 标志在独立部署上使用现有的 MinIO 客户端将对象移动到新的 SNSD 部署。

    mc mirror --preserve --watch SOURCE/BUCKET TARGET/BUCKET
    
    • 使用现有的 MinIO 客户端。

    • 用现有独立部署的别名和存储桶替换 SOURCE/BUCKET

    • 用新部署的别名和对应存储桶替换 TARGET/BUCKET

  6. 停止对任何 S3 或 POSIX 客户端的独立部署进行写入操作。

  7. 等待 mc mirror 完成所有存储桶的任何剩余操作。

  8. 停止两个部署的服务器。

  9. 使用之前独立部署使用的端口重新启动新的 MinIO 部署。有关启动 MinIO 服务的更多信息,请参阅部署 SNSD 文档 中的步骤四。

    确保您应用所有环境变量和运行时配置设置,并验证新部署的行为。