升级存储固件
从 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 支持部门。对于追加信息,请参见此内容 "知识库文章"。 |
-
* 集群运行状况 * :您已运行运行运行状况检查。请参见 "在升级存储之前,请运行 Element 存储运行状况检查"。
-
* 已更新 H610S 节点的 BMC * :您已升级 H610S 节点的 BMC 版本。请参见 "发行说明和升级说明"。
有关适用于您的硬件的完整固件和驱动程序固件列表,请参见 "NetApp HCI 存储节点支持的固件版本"。 |
-
最终用户许可协议(EULA):从管理服务2.20.69开始、您必须先接受并保存此EULA、然后才能使用NetApp Hybrid Cloud Control UI或API升级存储固件:
-
在Web浏览器中打开管理节点的IP地址:
https://<ManagementNodeIP>
-
通过提供存储集群管理员凭据登录到 NetApp Hybrid Cloud Control 。
-
选择靠近接口右上角的 * 升级 * 。
-
此时将弹出EULA。向下滚动、选择*我接受当前更新和所有未来更新*、然后选择*保存*。
-
选择以下存储固件升级选项之一:
使用 NetApp Hybrid Cloud Control UI 升级存储固件
您可以使用 NetApp Hybrid Cloud Control UI 升级集群中存储节点的固件。
如果您的管理节点未连接到 Internet ,则表示您已连接到 Internet "已下载 NetApp HCI 存储集群的存储固件包"。
有关使用 NetApp Hybrid Cloud Control 升级存储集群时的潜在问题及其解决方法,请参见 "知识库文章"。 |
每个存储节点的升级过程大约需要 30 分钟。如果要将 Element 存储集群升级到版本 2.76 以上的存储固件,则只有在将新固件写入节点后,各个存储节点才会在升级期间重新启动。 |
-
在Web浏览器中打开管理节点的IP地址:
https://<ManagementNodeIP>
-
通过提供存储集群管理员凭据登录到 NetApp Hybrid Cloud Control 。
-
选择靠近接口右上角的 * 升级 * 。
-
在 * 升级 * 页面上,选择 * 存储 * 。
-
存储 * 选项卡列出了安装过程中的存储集群。如果 NetApp Hybrid Cloud Control 无法访问某个集群,则该集群将不会显示在 * 升级 * 页面上。如果您的集群运行的是 Element 12.0 或更高版本,则会看到为这些集群列出的当前固件包版本。如果一个集群中的节点具有不同的固件版本,或者升级过程中,您将在 * 当前固件包版本 * 列中看到 * 多个 * 。您可以选择 * 多个 * 以导航到 * 节点 * 页面以比较固件版本。如果所有集群运行的 Element 版本均早于 12.0 ,则您将看不到有关固件包版本号的任何信息。此信息也可从 * 节点 * 页面获得。请参见 "查看清单"。
如果集群是最新的且 / 或没有可用的升级软件包,则不会显示 * 元素 * 和 * 仅固件 * 选项卡。在升级过程中,也不会显示这些选项卡。如果显示的是 * 元素 * 选项卡,而不是 * 仅固件 * 选项卡,则表示没有可用的固件包。
-
-
选择要升级的集群旁边的下拉箭头。
-
选择 * 浏览 * 上传您下载的升级软件包。
-
等待上传完成。进度条会显示上传状态。
如果您离开浏览器窗口,则文件上传将丢失。 成功上传并验证文件后,将显示一条屏幕消息。验证可能需要几分钟时间。如果在此阶段离开浏览器窗口,则会保留文件上传。
-
选择 * 仅固件 * ,然后从可用的升级版本中进行选择。
-
选择 * 开始升级 * 。
升级期间, * 升级状态 * 会发生更改,以反映此过程的状态。它也会根据您执行的操作而发生更改,例如暂停升级或升级返回错误。请参见 升级状态更改。 在升级过程中,您可以退出此页面,稍后再返回此页面以继续监控进度。如果集群行已折叠,则此页面不会动态更新状态和当前版本。必须展开集群行才能更新此表,您也可以刷新此页面。 升级完成后,您可以下载日志。
升级状态更改
以下是用户界面中的 * 升级状态 * 列在升级过程之前,期间和之后显示的不同状态:
升级状态 | 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 作为示例。
-
将最新的存储固件升级软件包下载到可供管理节点访问的设备;转到 "Element 软件存储固件捆绑包页面" 并下载最新的存储固件映像。
-
将存储固件升级软件包上传到管理节点:
-
在管理节点上打开管理节点 REST API UI :
https://<ManagementNodeIP>/package-repository/1/
-
选择 * 授权 * 并完成以下操作:
-
输入集群用户名和密码。
-
输入客户端 ID
mnode-client
。 -
选择 * 授权 * 以开始会话。
-
关闭授权窗口。
-
-
从 REST API UI 中,选择 * POST /packages* 。
-
选择 * 试用 * 。
-
选择 * 浏览 * 并选择升级软件包。
-
选择 * 执行 * 以启动上传。
-
在响应中,复制并保存软件包 ID (` "id"` )以供后续步骤使用。
-
-
验证上传状态。
-
从 REST API UI 中,选择 * GET /v í packages / { id } /status* 。
-
选择 * 试用 * 。
-
在 * id* 中输入上一步复制的固件包 ID 。
-
选择 * 执行 * 以启动状态请求。
完成后,此响应会将
state
指示为Success
。
-
-
找到安装资产 ID :
-
在管理节点上打开管理节点 REST API UI :
https://<ManagementNodeIP>/inventory/1/
-
选择 * 授权 * 并完成以下操作:
-
输入集群用户名和密码。
-
输入客户端 ID
mnode-client
。 -
选择 * 授权 * 以开始会话。
-
关闭授权窗口。
-
-
从 REST API UI 中,选择 * 获取 /installations * 。
-
选择 * 试用 * 。
-
选择 * 执行 * 。
-
从响应中复制安装资产 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"
-
从 REST API UI 中,选择 * 获取 /installations/ { id } * 。
-
选择 * 试用 * 。
-
将安装资产 ID 粘贴到 * id * 字段中。
-
选择 * 执行 * 。
-
在此响应中,复制并保存要升级的集群的存储集群 ID (` "id"` ),以便日后使用。
"storage": { "errors": [], "inventory": { "clusters": [ { "clusterUuid": "a1bd1111-4f1e-46zz-ab6f-0a1111b1111x", "id": "a1bd1111-4f1e-46zz-ab6f-a1a1a111b012",
-
-
运行存储固件升级:
-
在管理节点上打开存储 REST API UI :
https://<ManagementNodeIP>/storage/1/
-
选择 * 授权 * 并完成以下操作:
-
输入集群用户名和密码。
-
输入客户端 ID
mnode-client
。 -
选择 * 授权 * 以开始会话。
-
关闭窗口。
-
-
选择 * POST /upgrades* 。
-
选择 * 试用 * 。
-
在参数字段中输入升级软件包 ID 。
-
在参数字段中输入存储集群 ID 。
-
选择 * 执行 * 以启动升级。
响应应指示状态为
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" }
-
复制响应中的升级 ID (` "upgradeId"` )。
-
-
验证升级进度和结果:
-
选择 * 获取 /upgrades/{ upgradeId } * 。
-
选择 * 试用 * 。
-
在 * 升级 Id* 中输入上一步中的升级 ID 。
-
选择 * 执行 * 。
-
如果在升级期间出现问题或存在特殊要求,请执行以下操作之一:
选项 步骤 您需要更正响应正文中出现的
failedHealthChecks
消息导致的集群运行状况问题。-
转至为每个问题描述列出的特定知识库文章,或者执行指定的补救措施。
-
如果指定了 KB ,请完成相关知识库文章中所述的过程。
-
解决集群问题后,如果需要,请重新进行身份验证,然后选择 * PUT /upgrades/{ upgradeId } * 。
-
选择 * 试用 * 。
-
在 * 升级 Id* 中输入上一步中的升级 ID 。
-
在请求正文中输入 ` action" : "resume"` 。
{ "action": "resume" }
-
选择 * 执行 * 。
由于维护窗口正在关闭或其他原因,您需要暂停升级。
-
如果需要,请重新进行身份验证并选择 * PUT /upgrades/{ upgradeId } * 。
-
选择 * 试用 * 。
-
在 * 升级 Id* 中输入上一步中的升级 ID 。
-
在请求正文中输入 ` action" : "pause"` 。
{ "action": "pause" }
-
选择 * 执行 * 。
-
-
根据需要多次运行 * 获取 /upgrades/{ upgradeId } * API ,直到此过程完成。
在升级期间,如果未遇到任何错误,则
stStatus
会指示Running
。升级每个节点后,step
值将更改为NodeFinished
。
当
Percent
值为100
且state
指示finished
时,升级已成功完成。 -