中文文档

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

背景说明

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 或更高版本,那些使用 standalonefilesystem 部署模式的用户必须创建一个新的 单节点单硬盘 部署,并将设置和内容迁移到新的部署中。

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

重要

独立/文件系统模式在任何版本中仍可以使用,包括 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 的内容来查看任何运行时设置。

  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 访问层。

    Migrate configuration settings:

    如果您的部署使用 环境变量 进行配置设置,请将现有部署的 /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 Server版本的当前语法,并使用 mc admin config set 手动设置任何需要的键。

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

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

      • ALIAS 替换为正在检索值的现有独立部署所使用的别名。

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

      The following command exports bucket metadata from the existing deployment to a .zip file. 以下命令将存储桶元数据导出到一个 .zip

      这些数据文件中,包括::

      • 存储桶目标

      • 生命周期规则

      • 通知

      • 配额

      • 锁定

      • 版本控制

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

      mc admin cluster bucket export ALIAS
      
      • 使用已经存在的MinIO客户端

      • ALIAS 替换为正在检索值的现有独立部署所使用的别名

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

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

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

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

      • ALIAS 替换为正在检索值的现有独立部署所使用的别名。

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

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

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

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

      • 组和组映射

      • STS用户和STS用户映射

      • 策略

      • 用户和用户映射

      mc admin cluster iam export ALIAS
      
      • 使用已经存在的MinIO客户端

      • ALIAS 替换为正在检索值的现有独立部署所使用的别名

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

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

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

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

      • ALIAS 替换为正在检索值的现有独立部署所使用的别名。

      • 用现有部署文件的名称替换zip文件的名称

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

    使用 mc mirror 带上 --preserve--watch 标志来移动对象到新的 SNSD 部署中,使用现有的MinIO客户端迁移存储桶内容。

    mc mirror --preserve --watch SOURCE/BUCKET TARGET/BUCKET
    
    • 使用已经存在的MinIO客户端

    • 将“SOURCE/BUCKET”替换为现有单独部署的别名和存储桶

    • 将“TARGET/BUCKET”替换为新部署的别名和对应存储桶

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

  7. 等待“mc mirror”完成所有存储桶的复制操作,直到操作完成。

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

  9. 重新启动新的MinIO部署并使用前一个独立部署所使用的端口。有关启动MinIO服务的更多信息,请参阅deploy SNSD 文档

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

Join Slack 商业支持购买咨询