简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

升级集群

提供者 netapp-mwallis

您可以使用 Ansible 在 SolidFire ESDS 集群上执行无中断滚动升级。使用 NetApp 提供的 NAR_solidfire_SDS_upgrade 角色, Ansible 一次执行一个节点的滚动升级,同时保持所有卷的数据可用性。

在升级之前,请确保满足以下条件:

  • Element UI 中没有集群故障。

  • 此清单文件是最新的,包含当前 RPM 文件构建信息以及有关集群成员节点的详细信息。

  • 主机在清单文件中使用 IP 地址(而不是完全限定域名称 FQDN )进行定义。

重要 如果使用 FQDN 定义主机,则升级将失败。
  • 主机在清单文件中使用以下示例中的格式进行定义:

    hosts:
      10.117.136.26:
      10.117.136.27:
  • 清单文件中的节点数与要升级的集群中的节点数相同。如果数字不匹配,则升级操作步骤将失败,并显示类似于以下示例的错误: ` "Cluster 10.194.79.151 包含的节点数超过为升级指定的节点数! "`

  • 清单文件指定了以下变量: sf_mgmt_virt_IP ( MVIP ), sf_cluster_admin_username , sf_cluster_admin_passwd 和 solidfire_element_rpm (新 RPM 文件的路径)。

下面简要介绍了升级过程中会发生的情况:

  • 系统将验证您在清单文件中输入的信息。

  • 收集节点信息。

  • rpm 会并行安装在清单文件中包含的所有节点上。

  • 在每个节点上安装 RPM 后,每个 SolidFire ESDS 节点一次升级一个。每个节点都会自动置于维护模式。如果您正在运行升级攻略手册,则无需手动启用维护模式。

  • 将第一个节点置于维护模式后,该 SolidFire ESDS 节点上托管的卷将故障转移到集群中的其余 SolidFire ESDS 节点。

  • SolidFire 服务将重新启动以获取最新版本的应用程序。

  • 节点的维护模式已停用,集群将等待节点恢复。

  • 节点恢复联机后,集群将保持平衡。

  • 对集群中的所有节点重复执行相同的过程。

  • 升级完所有节点后,集群将显示最新版本。

注 如果升级期间发生错误或集群发生故障,升级不会停止。此过程会不断进行,并显示已成功升级且未成功升级的所有节点的列表。修复任何错误后,您可以重新运行攻略手册或拒绝该文件以完成升级过程。
注意 如果升级因故障而失败,则应予以解决并恢复升级。集群将保持升级状态,直到升级完成。如果在集群处于升级状态时 Element 未清除故障,您应联系 NetApp 支持部门。根据故障的性质以及是否安全,支持部门可能会指示您添加 yes_I_want _to_ignore_cluster_faults 变量,并在升级攻略手册中将其设置为 true 并重新运行攻略手册。请在未咨询支持部门的情况下尝试执行此操作。
步骤
  1. 运行 Ansible galaxy install 命令安装 NAR_solidfire_SDS_upgrade 角色。

    ansible-galaxy install git+https://github.com/NetApp-Automation/nar_solidfire_sds_upgrade.git

    您也可以通过从中复制角色来手动安装该角色 "NetApp GitHub 存储库" 并将角色放置在 ~ /.Ansible 目录中。NetApp 提供了一个自述文件,其中包含有关如何运行角色的信息。

    注 确保您始终下载最新版本的角色。
  2. 将已下载的角色上移一个安装它们的目录。

     $ mv ~/.ansible/roles/ansible/nar_solidfire_sds_* ~/.ansible/roles/
  3. 运行 Ansible - galxy role list 命令,以确保 Ansible 已配置为使用新角色。

     $ ansible-galaxy role list
     # ~/.ansible/roles
     - nar_solidfire_sds_install, (unknown version)
     - nar_solidfire_sds_upgrade, (unknown version)
     - ansible, (unknown version)
     - nar_solidfire_sds_compliance, (unknown version)
     - nar_solidfire_cluster_config, (unknown version)
     - nar_solidfire_sds_uninstall, (unknown version)
  4. 创建用于升级的攻略手册。如果您已有攻略手册并希望使用该攻略手册,请确保在此攻略手册中指定 NAR_solidfire_SDS_upgrade 角色。

  5. 运行攻略手册

     $ ansible-playbook -i inventory.yaml playbook_upgrade_sample.yaml
    注 此处使用的攻略手册名称就是一个示例。您应将其替换为攻略手册的名称。

    运行攻略手册将验证您在清单文件中输入的信息,并在清单中列出的所有节点上安装 RPM 。您可以检查 Ansible 输出以验证每个节点是否已升级。

  6. 升级完成后,使用 Element UI 或集群 API 验证每个节点以确保新版本正在运行。