使用 CLI 自动更新系统

您可以使用命令行界面 (CLI) 来安装软件更新。

请执行以下步骤从 V7.7.0 或更高版本更新到 V8.1.0 或更高版本。

如果是首次从较早代码级别更新到 V7.8.1 或更高级别,需要另外执行一次重新引导。 这次重新引导可能会导致每个节点的总更新时间延长 10 - 20 分钟。

节点由于更新而脱机时,您可以使用命令行界面来解决多路径问题。 通过以下步骤,您将能够覆盖缺省 30 分钟的中点延迟、暂停更新以及恢复停止的更新:
  1. 要启动更新,但在中点暂停,请输入以下命令:
    applysoftware -file filename -pause
  2. 要启动更新,但在节点脱机以进行更新前暂停更新,请输入以下命令:
    applysoftware -file filename -pause -all
  3. 要恢复停止的更新并在中点暂停,请输入以下命令:
    applysoftware -resume -pause
  4. 要恢复停止的更新,并在剩余节点脱机以进行更新前暂停,请输入以下命令:
    applysoftware -resume -pause -all
    Note: -all 参数使更新在每个节点脱机以进行更新前无限期暂停。 在现有依赖对象的卷检查执行前发生此暂停。 -resume 参数支持用户继续更新。
要更新系统,请执行以下步骤:
  1. 您必须下载、安装和运行最新版本的测试实用程序,以确认当前系统不存在任何问题。
    Important: 在使用管理 GUI 或 CLI 安装和运行测试实用程序之后,必须返回到本页面中的步骤 2

    您可以从以下 Web 站点下载和安装该工具的最新版本。 该链接提供了使用管理 GUI 或 CLI 来安装和运行测试实用程序的指示信息。

    http://www.ibm.com/support/docview.wss?uid=ssg1S4000585

  2. http://support.lenovo.com.cn/EsWeb/ThinkServerAndStore.aspx?MachineClass=7271&MachineName=12810&station=4站点下载最新代码。
    • 如果希望将代码写入 CD,必须下载 CD 映像。
    • 如果不想将代码写入 CD,必须下载安装映像。
  3. 使用 PuTTY scp (pscp) 来将更新文件复制到节点。
  4. 确保已成功复制更新文件。
    开始更新之前,您必须了解以下情况:
    • 在以下情况下,安装过程会失败:
      • 如果安装在远程系统上的代码与新代码不兼容,或者如果系统间通信错误不允许系统检查代码是否兼容。
      • 如果系统中的任何节点具有不受新代码支持的硬件类型。
      • 如果系统确定系统中的一个或多个卷会因为在升级过程中重新引导节点而脱机。 您可以使用 lsdependentvdisks 命令找到有关哪些卷会受影响的详细信息。 如果您已准备好在更新期间失去对数据的访问权,那么可以使用 force 标志来覆盖该限制。
    • 更新通过使用节点间的内部连接来分发到系统中的所有节点。
    • 一次更新一个节点。
    • 节点将在进行正常系统活动的同时运行新代码。
    • 节点更新后,不会参与 I/O 组中的 I/O 活动。 因此,I/O 组中卷的所有 I/O 活动直接针对主机多路径软件的 I/O 组中的其他节点。
    • 前后两次节点更新之间有 30 分钟的延迟。 该延迟时间允许主机多路径软件重新发现到达已更新节点的路径。 在更新该 I/O 组中的其他节点时不会丢失访问。
    • 在系统中的所有节点都成功更新至新代码级别后更新才落实。 如果所有代码都使用新代码级别成功重新启动,那么新 级别便已落实。 落实新级别后,系统重要产品数据 (VPD) 会更新以反映新代码级别。
    • 请等到所有成员节点都已更新并且更新得到落实后,才能调用已更新代码的新功能。
    • 因为更新过程需要一些时间,所以一旦系统验证了代码级别,安装命令就会完成。 要确定更新在何时已完成,必须在系统 VPD 中显示代码级别或者在错误/事件日志中查找软件更新完成事件。 如果有任何节点未能使用新代码级别重新启动或者在升级过程中的任何其他环节失败,那么代码级别均会回退。
    • 在更新期间,每个节点的版本号都在安装代码并重新启动节点后更新。 系统代码版本号在新代码级别落实后更新。
    • 当更新开始时,会在错误或事件日志中生成一个条目,而在更新完成或失败时,会生成另一个条目。
  5. 发出以下 CLI 命令以开始更新过程:
    applysoftware -file software_update_file

    其中 software_update_file 是代码更新文件的名称,该文件位于步骤 3 中将文件复制到其中的目录。

    如果系统确定有任何卷会由于在系统更新过程中重新引导节点而脱机,那么都不会开始代码更新。 可选 force 参数可用于指示即使识别出问题仍继续执行更新。 如果使用 force 参数,那么会提示您确认是否希望继续。 force 参数的行为已更改,将更新应用于在事件日志中存在错误的系统时不再需要此参数。
  6. 如果要从 V7.4.0 之前的发行版进行更新,请发出以下 CLI 命令以检查代码更新过程的状态:
    svcinfo lssoftwareupgradestatus
    更新完成后,该命令显示 inactive
    Note: 如果显示状态 stalled_non_redundant,那么继续处理余下的节点更新可能导致卷脱机。 请联系服务代表以完成更新。
  7. 如果要从 V7.4.0 或更高版本进行更新,请发出以下 CLI 命令以检查代码更新过程的状态:
    lsupdate
    更新完成后,该命令显示 success
    Note: 如果显示状态 stalled_non_redundant,那么继续处理余下的节点更新可能导致卷脱机。 请联系服务代表以完成更新。
  8. 如果从 V7.4.0 之前的发行版进行了更新,那么您将收到状态消息 system_completion_required
    要完成更新过程,请发出命令 applysoftware -complete。 在运行该命令后,您可以运行 lsupdate 以查看更新完成的进度。
  9. 要验证更新是否已成功完成,请针对系统中的每个节点都发出 lsnodecanistervpd CLI 命令。

    代码版本字段会显示新代码级别。

    Important: 在已安装 64 GB 以上 RAM 的系统上,如果将系统软件从低于 V8.1.0 的版本更新到 V8.1.1 或更高版本,所有节点都会从更新中返回错误代码 841。V8.1.0 和更高版本分配内存的方式与先前版本不同,因此必须重新“接受”RAM。要解决该错误,请完成以下步骤:
    1. 在单个节点上,运行 svctask chnodehw 命令。 请勿一次在多个节点上运行该命令。
    2. 等待节点重新启动且不返回任何错误。
    3. 再等待 30 分钟,以便多路径驱动器在主机上恢复。
    4. 分别针对每个节点重复此过程,直到清除所有节点上的错误为止。
应用新代码级别后,该代码级别会自动安装在系统中的所有节点上。
Note: 自动系统更新可能需要至多每个节点 30 分钟。