本章讲述了向 Sun Cluster 配置添加修补程序或从中删除修补程序的过程。
鉴于群集的特性,所有群集成员节点的修补程序必须处于同一级别,这样才可保证群集能正常工作。 使用 Sun Cluster 修补程序修补节点时,可能需要先暂时取消该节点的群集成员资格或停止整个群集,然后再安装修补程序。 本节说明这些步骤。
应用 Sun Cluster 修补程序之前, 请查看 Sun Cluster Web 页查找所有特定说明;有关当前 URL 的说明,请参阅 Sun Cluster Release Notes for Solaris OS 或与 Enterprise Services 联系。 如果没有任何特殊说明,请查阅修补程序的 README 文件。
对于 Sun Cluster 的修补程序,请始终查阅修补程序的 README 文件,其中包含的说明优先于本章中介绍的有关过程。
所有群集节点上修补程序的安装分为以下几种情况:
重新引导修补程序(节点)— 在应用修补程序之前,必须先使用 boot -sx 或 b -sx 命令将节点引导到单用户模式下。应用修补程序之后再重新引导该节点使其加入群集。 在执行这些操作时,您需要使所要应用修补程序的那个节点进入“安静” 状态。具体做法是:首先将该节点的任何资源组或磁盘设备组切换到另一个群集成员上。 此外,每次将此修补程序应用到一个群集节点,以避免关闭整个群集。
如果以这种方式应用修补程序,即使暂时关闭单个节点,群集本身也将一直保持可用状态。 在一个节点上应用了修补程序之后,即使其他节点尚未达到该节点的修补级别,它也可以作为群集成员重新加入到群集中。
重新引导修补程序(群集和固件)— 必须关闭群集并使用 boot -sx 或 b -sx 命令将节点引导到单用户模式下,才能应用软件或固件修补程序。 然后重新引导这些节点使其重新加入群集。 对于这种类型的修补,群集在修补程序应用期间是不可用的。
非重新引导修补程序 — 节点不必处于“静止”状态(仍然可以控制资源组或设备组), 应用修补程序时也不必关闭或重新引导节点。 但是,您仍然应当在将修补程序应用到一个节点后检验该修补是否有效,确认有效后再修补另一节点。
基础群集协议不会因修补程序而更改。
使用 patchadd 命令将修补程序应用到群集中,使用 patchrm 命令删除修补程序(如果可能)。
使用以下提示有助于您更有效地管理 Sun Cluster 修补程序:
查阅 Sun Cluster 网站,看是否有与修补程序或固件更新相关的特殊说明。 有关最新的 URL,请参阅 Sun Cluster Release Notes for Solaris OS 或与 Enterprise Services 联系。
每次应用修补程序之前都阅读该修补程序的 README 文件。
在生产环境中运行群集前应用所有(必须应用和推荐应用)的修补程序。
检查硬件固件级别并安装所要求安装的所有固件更新(以后可能需要使用它们)。
充当群集成员的所有节点必须拥有相同的修补程序。
使群集子系统的修补程序保持最新, 这包括卷管理、存储设备固件和群集传输等。
定期查阅修补程序报告(比如每季度查阅一次),并使用推荐的修补程序套件来修补 Sun Cluster 配置。
应用由 Enterprise Services 部门推荐的可选择的修补程序。
在主要的修补程序更新后测试故障转移;如果群集性能下降或受损,请准备好删除修补程序。
任务 |
有关说明,请转到... |
---|---|
每次将一个不需重新引导的 Sun Cluster 修补程序应用于一个节点,同时不必停止该节点 | |
使群集成员进入非群集模式后应用需重新引导的 Sun Cluster 修补程序 |
|
删除 Sun Cluster 修补程序 - 如果需要,您可以退出修补程序。 |
每次将修补程序应用到群集中的一个节点上,可以在修补过程中保持群集自身的操作。 执行此过程时,您必须先关闭节点,并使用 boot -sx 或 b -sx 命令将节点引导到单用户模式,然后再应用修补程序。
在应用修补程序之前,查阅 Sun Cluster 产品的 Web 页中是否有关于安装前或安装后的特殊说明。
成为要应用修补程序的那个节点的超级用户。
列出所要修补的节点上的资源组和设备组。
# scrgadm -pv # scstat |
将所有资源组、资源和设备组从要修补的节点切换到其他群集成员。
# scswitch -S -h node[,...] |
从指定的节点中抽出所有的设备组和资源组。
指定切换资源组和设备组所在的节点。
关闭该节点。
# shutdown -g0 [-y] [-i0] |
SPARC:
ok boot -sx |
x86:
<<< Current Boot Parameters >>> Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@7,1/ sd@0,0:a Boot args: Type b [file-name] [boot-flags] <ENTER> to boot with options or i <ENTER> to enter boot interpreter or <ENTER> to boot with defaults <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: b -sx |
应用增补程序。
# patchadd -M patch-dir patch-id |
指定修补程序的目录位置。
指定给定修补程序的修补程序号。
每次都要按照修补程序目录中的、可替代本章中的过程的说明操作。
将该节点重新引导到群集中。
# reboot |
检验该修补程序是否已成功安装。
# showrev -p | grep patch-id |
检验修补程序是否有效,以及该节点和群集是否正常运行。
根据需要,切换资源组、资源和设备组。
在重新引导所有的节点后,最后重新引导的那个节点的资源组和设备组不会联机。
# scswitch -z -D device-group[,...]-h node[,...] # scswitch -z -g resource-group[,...]-h nod[,...]e |
指定对资源组或设备组的控制方面的更改。
指定将资源组和设备组切换到哪些节点。
将指定的设备组切换到使用 -h 选项确定的节点。
将指定的资源组切换到使用 -h 选项确定的节点。 如果未指定 -h,这些资源组将脱机。
以下示例说明了将一个需重新引导的 Sun Cluster 修补程序应用到一个节点的过程。
# scrgadm -pv ... RG Name: schost-sa-1 ... # scstat ... Device Group Name: dg-schost-1 ... # scswitch -S -h phys-schost-2 # shutdown -g0 -y -i0 ... |
将节点引导到非群集单用户模式。
SPARC:
ok boot -sx |
x86:
<<< Current Boot Parameters >>> Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@7,1/ sd@0,0:a Boot args: Type b [file-name] [boot-flags] <ENTER> to boot with options or i <ENTER> to enter boot interpreter or <ENTER> to boot with defaults <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: b -sx |
... # patchadd -M /tmp/patches 234567-05 ... # reboot ... # showrev -p | grep 234567-05 # scswitch -z -D dg-schost-1 -h phys-schost-1 # scswitch -z -g schost-sa-1 -h phys-schost-1 |
如果需要撤出一个修补程序,请参阅如何删除 Sun Cluster 修补程序。
执行此过程时,您必须线关闭群集并使用 boot -sx 或 b -sx 命令将每个节点引导到单用户模式,然后再应用修补程序。
在应用修补程序之前,查阅 Sun Cluster 产品的 Web 页中是否有关于安装前或安装后的特殊说明。
成为群集中任一节点上的超级用户。
关闭群集。
# scshutdown -y -g grace-period “message” |
指定在出现确认提示时回答 yes。
指定关闭前等待的时间,以秒为单位。 缺省宽延期为 60 秒。
指定要广播的警告消息。 如果 message 中包含多个词,请使用引号。
将每个节点引导到非群集单用户模式。
SPARC:
ok boot -sx |
x86:
<<< Current Boot Parameters >>> Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@7,1/ sd@0,0:a Boot args: Type b [file-name] [boot-flags] <ENTER> to boot with options or i <ENTER> to enter boot interpreter or <ENTER> to boot with defaults <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: b -sx |
应用软件或固件的修补程序。
每次在一个节点上运行以下命令。
# patchadd -M patch-dir patch-id |
指定修补程序的目录位置。
指定给定修补程序的修补程序号。
每次都要按照修补程序目录中的、可替代本章中的过程的说明操作。
检验是否已成功地在每个节点上安装了修补程序。
# showrev -p | grep patch-id |
在将修补程序应用到所有节点后,重新将节点引导到群集中。
在每个节点上运行以下命令。
# reboot |
检验修补程序是否有效,以及该节点和群集是否正常运行。
以下示例说明将一个需重新引导的 Sun Cluster 修补程序应用到一个群集的过程。
# scshutdown -g0 -y ... |
将群集引导到非群集单用户模式。
SPARC:
ok boot -sx |
x86:
<<< Current Boot Parameters >>> Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@7,1/ sd@0,0:a Boot args: Type b [file-name] [boot-flags] <ENTER> to boot with options or i <ENTER> to enter boot interpreter or <ENTER> to boot with defaults <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: b -sx |
... # patchadd -M /tmp/patches 234567-05 (Apply patch to other cluster nodes) ... # showrev -p | grep 234567-05 # reboot |
如果需要撤出一个修补程序,请参阅如何删除 Sun Cluster 修补程序。
每次将修补程序应用于群集中的一个节点。 应用一个非重新引导修补程序时,不需要首先关闭接收此修补程序的节点。
在应用修补程序前,查阅 Sun Cluster 产品的 Web 页,看是否有关于安装前或安装后的特殊说明。
在单个节点上应用修补程序。
# patchadd -M patch-dir patch-id |
指定修补程序的目录位置。
指定给定修补程序的修补程序号。
检验该修补程序是否已成功安装。
# showrev -p | grep patch-id |
检验修补程序是否有效,以及该节点和群集是否正常运行。
# patchadd -M /tmp/patches 234567-05 ... # showrev -p | grep 234567-05 |
如果需要撤出一个修补程序,请参阅如何删除 Sun Cluster 修补程序。
如果需要,您可以退出(删除)Sun Cluster 修补程序。
成为您要从其中删除修补程序的节点的超级用户。
列出要从中删除修补程序的节点上的资源组和设备组。
# scrgadm -pv # scstat |
将要删除修补程序的节点上的所有资源组、资源和设备组切换到其他群集成员。
# scswitch -S -h node[,...] |
从指定的节点抽出所有的设备服务和资源组。
指定正要从中切换资源组和设备组的节点。
关闭该节点。
# shutdown -g0 -y -i0 “message” |
指定关闭前等待的时间,以秒为单位。 缺省宽延期为 60 秒。
指定在出现确认提示时回答 yes。
指定初始状态为 0。使用此选项将关闭基于 SPARC 的系统上的 OpenBoot PROM ok 提示或到基于 x86 系统上的引导子系统的节点。
指定要广播的警告消息。 如果 message 中包含多个词,请使用引号。
SPARC:
ok boot -sx |
x86:
<<< Current Boot Parameters >>> Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@7,1/ sd@0,0:a Boot args: Type b [file-name] [boot-flags] <ENTER> to boot with options or i <ENTER> to enter boot interpreter or <ENTER> to boot with defaults <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: b -sx |
删除修补程序。
# patchrm patch-id |
指定给定修补程序的修补程序号。
重新引导该节点。
# reboot |
检验是否已成功删除修补程序。
# showrev -p | grep patch-id |
检验该节点和群集是否正常运行。
(可选)根据需要,切换资源组、资源和设备组。
在重新引导所有的节点后,最后重新引导的那个节点的资源组和设备组不会联机。
# scswitch -z -Ddevice-group[,...] -h node[,...] # scswitch -z -g resource-group[,...] -h node[,...] |
指定对资源组或设备组的控制方面的更改。
指定将资源组和设备组切换到哪些节点。
将指定的设备组切换到使用 -h 选项确定的节点。
将指定的资源组切换到使用 -h 选项确定的节点。 如果未指定 -h,这些资源组将脱机。
以下示例说明删除一个 Sun Cluster 修补程序的过程。
# scrgadm -pv ... RG Name: schost-sa-1 ... # scstat ... Device Group Name: dg-schost-1 ... # scswitch -S -h phys-schost-2 # shutdown -g0 -y -i0 "Rebooting down node for maintenance" ... |
将节点引导到非群集模式。
SPARC:
ok boot -x |
x86:
<<< Current Boot Parameters >>> Boot path: /pci@0,0/pci8086,2545@3/pci8086,1460@1d/pci8086,341a@7,1/ sd@0,0:a Boot args: Type b [file-name] [boot-flags] <ENTER> to boot with options or i <ENTER> to enter boot interpreter or <ENTER> to boot with defaults <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: b -x |
... # patchrm 234567-05 ... # reboot ... # pkgchk -v 234567-05 ... # scswitch -z -D dg-schost-1 -h phys-schost-1 # scswitch -z -g schost-sa-1 -h phys-schost-1 |