文档

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

背景

MinIO 网关和相关文件系统模式于 2020 年 7 月停止新增功能。2022 年 2 月,MinIO 宣布了MinIO 网关的弃用。随着弃用公告,MinIO 还宣布该功能将在六个月后移除。

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

概述

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

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

重要

独立/文件系统模式在任何版本(包括 MinIO Server RELEASE.2022-10-24T18-35-07Z)上继续有效。要继续使用独立部署,请使用 MinIO 客户端 RELEASE.2022-10-29T10-09-23Z 或任何早期版本及其对应的 MinIO 客户端安装该 MinIO Server 版本。请注意,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的内容。

  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 替换为要为部署创建的别名。

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

    • ACCESSKEYSECRETKEY 替换为创建新部署时使用的凭据。

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

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

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

    迁移配置设置

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

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

    注意

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

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

      使用现有的 MinIO 客户端和 mc admin config export 命令检索为现有的独立 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 替换为现有部署的别名。

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

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

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

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

      • ALIAS 替换为新部署的别名。

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

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

    使用现有的 MinIO 客户端和 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 文档中的步骤四。

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