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

升级存储固件

贡献者

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

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

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

  • * 系统端口 * :如果您使用 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 或更高版本才能继续。
重要说明 要更新 iDRAC 或 BIOS 固件,请联系 NetApp 支持部门。对于追加信息,请参见此内容 "知识库文章"
备注 有关适用于您的硬件的完整固件和驱动程序固件列表,请参见 "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 升级集群中存储节点的固件。

您需要的内容

如果您的管理节点未连接到 Internet ,则表示您已连接到 Internet "已下载 NetApp HCI 存储集群的存储固件包"

注意 有关使用 NetApp Hybrid Cloud Control 升级存储集群时的潜在问题及其解决方法,请参见 "知识库文章"
提示 每个存储节点的升级过程大约需要 30 分钟。如果要将 Element 存储集群升级到版本 2.76 以上的存储固件,则只有在将新固件写入节点后,各个存储节点才会在升级期间重新启动。
步骤
  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. 选择 * 开始升级 * 。

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

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

升级状态更改

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

升级状态 Description

最新

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

无法检测

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

可用版本

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

正在进行中

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

升级暂停

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

已暂停

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

error

升级期间发生错误。您可以下载错误日志并将其发送给 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. 复制响应中的升级 ID (` "upgradeId"` )。

  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 ,直到此过程完成。

      在升级期间,如果未遇到任何错误,则 stStatus 会指示 Running 。升级每个节点后, step 值将更改为 NodeFinished

    Percent 值为 100state 指示 finished 时,升级已成功完成。

了解更多信息