Skip to main content
本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

升级存储固件

贡献者

从Element 12.0和管理服务版本2.14开始、您可以使用NetApp混合云控制UI和REST API在H系列存储节点上执行纯固件升级。此操作步骤不会升级 Element 软件,您可以通过它在主要 Element 版本之外升级存储固件。

您需要的内容
  • * 管理员权限 * :您拥有执行升级的存储集群管理员权限。

  • * 系统时间同步 * :您已确保所有节点上的系统时间均已同步,并且已为存储集群和节点正确配置 NTP 。必须在每节点Web UI中为每个节点配置一个DNS名称服务器(https://[IP address]:442,并且没有与时间偏差相关的未解决集群故障。

  • * 系统端口 * :如果您使用 NetApp Hybrid Cloud Control 进行升级,则已确保必要的端口处于打开状态。有关详细信息、请参见 "网络端口"

  • * 管理节点 * :对于 NetApp Hybrid Cloud Control UI 和 API ,您环境中的管理节点运行的是 11.3 版。

  • * 管理服务 * :您已将管理服务捆绑包更新到最新版本。

重要说明 对于运行 Element 软件 12.0 版的 H610S 存储节点,在升级到存储固件包 2.27 之前,应应用 D-patch SUST-909 。在升级之前,请联系 NetApp 支持部门获取 D-patch 。请参阅。 "存储固件包2.27发行说明"
重要说明 在升级存储节点上的固件之前,您必须升级到最新的管理服务包。如果要将Element软件更新到版本12.2、则需要使用管理服务2.14.60或更高版本继续操作。
备注 有关硬件"NetApp HCI 存储节点支持的固件版本"的固件和驱动程序固件的完整列表,请参阅。
  • 最终用户许可协议(EULA):从管理服务2.20.69开始、您必须先接受并保存此EULA、然后才能使用NetApp Hybrid Cloud Control UI或API升级存储固件:

    1. 在Web浏览器中打开管理节点的IP地址:

      https://<ManagementNodeIP>
    2. 通过提供存储集群管理员凭据登录到 NetApp Hybrid Cloud Control 。

    3. 选择靠近接口右上角的 * 升级 * 。

    4. 此时将弹出EULA。向下滚动、选择*我接受当前更新和所有未来更新*、然后选择*保存*。

升级选项

选择以下存储固件升级选项之一:

使用 NetApp Hybrid Cloud Control UI 升级存储固件

您可以使用 NetApp Hybrid Cloud Control UI 升级集群中存储节点的固件。

您需要的内容
注意 有关使用NetApp混合云控制升级存储集群时的潜在问题及其解决方法,请参见 "知识库文章"
提示 每个节点的升级过程大约需要30分钟。
步骤
  1. 在Web浏览器中打开管理节点的IP地址:

    https://<ManagementNodeIP>
  2. 通过提供存储集群管理员凭据登录到 NetApp Hybrid Cloud Control 。

  3. 选择靠近接口右上角的 * 升级 * 。

  4. 在 * 升级 * 页面上,选择 * 存储 * 。

    备注
    • 存储 * 选项卡列出了安装过程中的存储集群。如果 NetApp Hybrid Cloud Control 无法访问某个集群,则该集群将不会显示在 * 升级 * 页面上。如果您的集群运行的是 Element 12.0 或更高版本,则会看到为这些集群列出的当前固件包版本。如果一个集群中的节点具有不同的固件版本,或者升级过程中,您将在 * 当前固件包版本 * 列中看到 * 多个 * 。您可以选择 * 多个 * 以导航到 * 节点 * 页面以比较固件版本。如果所有集群运行的 Element 版本均早于 12.0 ,则您将看不到有关固件包版本号的任何信息。此信息也可从 * 节点 * 页面获得。请参阅。 "查看清单"

    如果集群是最新的且 / 或没有可用的升级软件包,则不会显示 * 元素 * 和 * 仅固件 * 选项卡。在升级过程中,也不会显示这些选项卡。如果显示的是 * 元素 * 选项卡,而不是 * 仅固件 * 选项卡,则表示没有可用的固件包。

  5. 选择要升级的集群旁边的下拉箭头。

  6. 选择 * 浏览 * 上传您下载的升级软件包。

  7. 等待上传完成。进度条会显示上传状态。

    注意 如果您离开浏览器窗口,则文件上传将丢失。

    成功上传并验证文件后,将显示一条屏幕消息。验证可能需要几分钟时间。如果在此阶段离开浏览器窗口,则会保留文件上传。

  8. 选择 * 仅固件 * ,然后从可用的升级版本中进行选择。

  9. 选择 * 开始升级 * 。

    提示 升级期间, * 升级状态 * 会发生更改,以反映此过程的状态。它也会根据您执行的操作而发生更改,例如暂停升级或升级返回错误。请参阅。 升级状态更改
    备注 在升级过程中,您可以退出此页面,稍后再返回此页面以继续监控进度。如果集群行已折叠,则此页面不会动态更新状态和当前版本。必须展开集群行才能更新此表,您也可以刷新此页面。

升级完成后,您可以下载日志。

升级状态更改

以下是用户界面中的 * 升级状态 * 列在升级过程之前,期间和之后显示的不同状态:

升级状态 说明

最新

集群已升级到最新可用 Element 版本,或者固件已升级到最新版本。

无法检测

如果存储服务API返回的升级状态不在可能升级状态的枚举列表中、则会显示此状态。

可用版本

可以升级较新版本的 Element 和 / 或存储固件。

进行中

正在升级。进度条会显示升级状态。屏幕上的消息还会显示节点级别的故障,并在升级过程中显示集群中每个节点的节点 ID 。您可以使用 Element UI 或适用于 vCenter Server 的 NetApp Element 插件 UI 监控每个节点的状态。

升级暂停

您可以选择暂停升级。根据升级过程的状态,暂停操作可能会成功或失败。您将看到一个 UI 提示,要求您确认暂停操作。要确保集群在暂停升级之前处于安全位置,可能需要长达两个小时才能完全暂停升级操作。要恢复升级,请选择 * 恢复 * 。

已暂停

您已暂停升级。选择 * 恢复 * 以恢复此过程。

错误

升级期间发生错误。您可以下载错误日志并将其发送给 NetApp 支持部门。解决此错误后,您可以返回到页面并选择 * 恢复 * 。恢复升级时,进度条会后退几分钟,而系统会运行运行状况检查并检查升级的当前状态。

使用 NetApp Hybrid Cloud Control 升级失败时会发生什么情况

如果驱动器或节点在升级期间发生故障, Element UI 将显示集群故障。升级过程不会继续到下一个节点,而是等待集群故障解决。UI 中的进度条显示升级正在等待集群故障解决。在此阶段,在 UI 中选择 * 暂停 * 将不起作用,因为升级会等待集群运行正常。您需要联系 NetApp 支持部门以协助进行故障调查。

NetApp Hybrid Cloud Control 具有预先设置的三小时等待时间,在此期间可能会发生以下情况之一:

  • 集群故障将在三小时内得到解决,升级将继续进行。在这种情况下,您无需执行任何操作。

  • 此问题在三小时后仍然存在,并且升级状态显示 * 错误 * 并显示红色横幅。解决问题后,您可以通过选择 * 恢复 * 来恢复升级。

  • NetApp 支持部门已确定需要暂时中止升级,以便在三小时内采取更正措施。支持人员将使用 API 中止升级。

注意 在更新节点时中止集群升级可能会导致驱动器异常地从节点中删除。如果驱动器被异常删除,则在升级期间重新添加驱动器需要 NetApp 支持部门手动干预。节点执行固件更新或更新后同步活动可能需要较长时间。如果升级进度似乎停滞,请联系 NetApp 支持部门以获得帮助。

使用 NetApp Hybrid Cloud Control API 升级存储固件

您可以使用 API 将集群中的存储节点升级到最新的 Element 软件版本。您可以使用自己选择的自动化工具来运行 API 。此处介绍的 API 工作流使用管理节点上提供的 REST API UI 作为示例。

步骤
  1. 将最新的存储固件升级包下载到可供管理节点访问的设备;转到并下载最新的 "Element 软件存储固件捆绑包页面"存储固件映像。

  2. 将存储固件升级软件包上传到管理节点:

    1. 在管理节点上打开管理节点 REST API UI :

      https://<ManagementNodeIP>/package-repository/1/
    2. 选择 * 授权 * 并完成以下操作:

      1. 输入集群用户名和密码。

      2. 将客户端ID输入为 mnode-client

      3. 选择 * 授权 * 以开始会话。

      4. 关闭授权窗口。

    3. 从 REST API UI 中,选择 * POST /packages* 。

    4. 选择 * 试用 * 。

    5. 选择 * 浏览 * 并选择升级软件包。

    6. 选择 * 执行 * 以启动上传。

    7. 从响应中,复制并保存软件包ID ("id"(),以供稍后使用。

  3. 验证上传状态。

    1. 从 REST API UI 中,选择 * GET​ /v í packages​ / { id }​ /status* 。

    2. 选择 * 试用 * 。

    3. 在 * id* 中输入上一步复制的固件包 ID 。

    4. 选择 * 执行 * 以启动状态请求。

      完成后、响应指示 state`为 `SUCCESS

  4. 找到安装资产 ID :

    1. 在管理节点上打开管理节点 REST API UI :

      https://<ManagementNodeIP>/inventory/1/
    2. 选择 * 授权 * 并完成以下操作:

      1. 输入集群用户名和密码。

      2. 将客户端ID输入为 mnode-client

      3. 选择 * 授权 * 以开始会话。

      4. 关闭授权窗口。

    3. 从 REST API UI 中,选择 * 获取 /installations * 。

    4. 选择 * 试用 * 。

    5. 选择 * 执行 * 。

    6. 从响应中,复制安装资产ID(id)。

      "id": "abcd01e2-xx00-4ccf-11ee-11f111xx9a0b",
      "management": {
        "errors": [],
        "inventory": {
          "authoritativeClusterMvip": "10.111.111.111",
          "bundleVersion": "2.14.19",
          "managementIp": "10.111.111.111",
          "version": "1.4.12"
    7. 从 REST API UI 中,选择 * 获取 /installations/ { id } * 。

    8. 选择 * 试用 * 。

    9. 将安装资产 ID 粘贴到 * id * 字段中。

    10. 选择 * 执行 * 。

    11. 根据响应、复制并保存(`"id"`要升级的集群的存储集群ID ()、以供稍后使用。

      "storage": {
        "errors": [],
        "inventory": {
          "clusters": [
            {
              "clusterUuid": "a1bd1111-4f1e-46zz-ab6f-0a1111b1111x",
              "id": "a1bd1111-4f1e-46zz-ab6f-a1a1a111b012",
  5. 运行存储固件升级:

    1. 在管理节点上打开存储 REST API UI :

      https://<ManagementNodeIP>/storage/1/
    2. 选择 * 授权 * 并完成以下操作:

      1. 输入集群用户名和密码。

      2. 将客户端ID输入为 mnode-client

      3. 选择 * 授权 * 以开始会话。

      4. 关闭窗口。

    3. 选择 * POST /upgrades* 。

    4. 选择 * 试用 * 。

    5. 在参数字段中输入升级软件包 ID 。

    6. 在参数字段中输入存储集群 ID 。

    7. 选择 * 执行 * 以启动升级。

      响应应指示状态为 initializing

    {
      "_links": {
        "collection": "https://localhost:442/storage/upgrades",
        "self": "https://localhost:442/storage/upgrades/3fa85f64-1111-4562-b3fc-2c963f66abc1",
        "log": https://localhost:442/storage/upgrades/3fa85f64-1111-4562-b3fc-2c963f66abc1/log
      },
      "storageId": "114f14a4-1a1a-11e9-9088-6c0b84e200b4",
      "upgradeId": "334f14a4-1a1a-11e9-1055-6c0b84e2001b4",
      "packageId": "774f14a4-1a1a-11e9-8888-6c0b84e200b4",
      "config": {},
      "state": "initializing",
      "status": {
        "availableActions": [
          "string"
        ],
        "message": "string",
        "nodeDetails": [
          {
            "message": "string",
            "step": "NodePreStart",
            "nodeID": 0,
            "numAttempt": 0
          }
        ],
        "percent": 0,
        "step": "ClusterPreStart",
        "timestamp": "2020-04-21T22:10:57.057Z",
        "failedHealthChecks": [
          {
            "checkID": 0,
            "name": "string",
            "displayName": "string",
            "passed": true,
            "kb": "string",
            "description": "string",
            "remedy": "string",
            "severity": "string",
            "data": {},
            "nodeID": 0
          }
        ]
      },
      "taskId": "123f14a4-1a1a-11e9-7777-6c0b84e123b2",
      "dateCompleted": "2020-04-21T22:10:57.057Z",
      "dateCreated": "2020-04-21T22:10:57.057Z"
    }
    1. 复制(`"upgradeId"`响应中的升级ID。

  6. 验证升级进度和结果:

    1. 选择 * 获取​ /upgrades/{ upgradeId } * 。

    2. 选择 * 试用 * 。

    3. 在 * 升级 Id* 中输入上一步中的升级 ID 。

    4. 选择 * 执行 * 。

    5. 如果在升级期间出现问题或存在特殊要求,请执行以下操作之一:

      选项 步骤

      您需要更正由于响应正文中的消息而导致的集群运行状况问题 failedHealthChecks

      1. 转至为每个问题描述列出的特定知识库文章,或者执行指定的补救措施。

      2. 如果指定了 KB ,请完成相关知识库文章中所述的过程。

      3. 解决集群问题后,如果需要,请重新进行身份验证,然后选择 * PUT ​ /upgrades/{ upgradeId } * 。

      4. 选择 * 试用 * 。

      5. 在 * 升级 Id* 中输入上一步中的升级 ID 。

      6. 在请求正文中输入 "action":"resume"

        {
          "action": "resume"
        }
      7. 选择 * 执行 * 。

      由于维护窗口正在关闭或其他原因,您需要暂停升级。

      1. 如果需要,请重新进行身份验证并选择 * PUT ​ /upgrades/{ upgradeId } * 。

      2. 选择 * 试用 * 。

      3. 在 * 升级 Id* 中输入上一步中的升级 ID 。

      4. 在请求正文中输入 "action":"pause"

        {
          "action": "pause"
        }
      5. 选择 * 执行 * 。

    6. 根据需要多次运行 * 获取​ /upgrades/{ upgradeId } * API ,直到此过程完成。

      在升级期间、会 status`指示 `running`是否未遇到错误。升级每个节点后,该值将 `step`更改为 `NodeFinished

    如果值为 100`且指示 `finishedstate`则升级已成功完成 `percent

了解更多信息