跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris Cluster 系统管理指南 Oracle Solaris Cluster (简体中文) |
1. Oracle Solaris Cluster 管理简介
2. Oracle Solaris Cluster 和 RBAC
11. 修补 Oracle Solaris Cluster 软件和固件
如何应用不需重新引导的 Oracle Solaris Cluster 修补程序
更改 Oracle Solaris Cluster 修补程序
表 11-1 任务表:修补群集
|
每次将修补程序应用到群集中的一个节点上,可以在修补过程中保持群集自身正常工作。执行此过程时,您必须先关闭节点,使用 boot -sx 或 shutdown -g -y -i0 命令将节点引导至单用户模式,然后再应用修补程序。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
# clresourcegroup status -Z all -n node[,...]
驻留在要修补的节点上的全局群集节点或区域群集节点的名称。
# cldevicegroup status -n node
要修补的全局群集节点的名称。
注 - 设备组与区域群集没有关联。
# clnode evacuate -n node
撤离所有设备组和资源组,包括所有全局群集非投票节点。
指定切换资源组和设备组所在的节点。
# shutdown -g0 [-y] [-i0]
在基于 SPARC 的系统上,运行以下命令。
ok boot -sx
在基于 x86 的系统上,运行以下命令。
phys-schost# shutdown -g -y -i0 Press any key to continue
GRUB 菜单显示如下内容:
GNU GRUB version 0.95 (631K lower / 2095488K upper memory) +-------------------------------------------------------------------------+ | Solaris 10 /sol_10_x86 | | Solaris failsafe | | | +-------------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line.
有关基于 GRUB 的引导的更多信息,请参见《系统管理指南:基本管理》中的"使用 GRUB 引导基于 x86 的系统(任务图)"。
GRUB 引导参数屏幕的显示与以下内容类似:
GNU GRUB version 0.95 (615K lower / 2095552K upper memory) +----------------------------------------------------------------------+ | root (hd0,0,a) | | kernel /platform/i86pc/multiboot | | module /platform/i86pc/boot_archive | +----------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press 'b' to boot, 'e' to edit the selected command in the boot sequence, 'c' for a command-line, 'o' to open a new line after ('O' for before) the selected line, 'd' to remove the selected line, or escape to go back to the main menu.
[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ESC at any time exits. ] grub edit> kernel /platform/i86pc/multiboot -sx
屏幕将显示编辑后的命令。
GNU GRUB version 0.95 (615K lower / 2095552K upper memory) +----------------------------------------------------------------------+ | root (hd0,0,a) | | kernel /platform/i86pc/multiboot -sx | | module /platform/i86pc/boot_archive | +----------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press 'b' to boot, 'e' to edit the selected command in the boot sequence, 'c' for a command-line, 'o' to open a new line after ('O' for before) the selected line, 'd' to remove the selected line, or escape to go back to the main menu.-
注 - 对内核引导参数命令所做的这一更改在系统引导后将失效。下次重新引导节点时,系统将引导至群集模式。如果希望引导至非群集模式,请重新执行上述步骤,将 -sx 选项添加到内核引导参数命令中。
# patchadd -M patch-dir patch-id
指定修补程序的目录位置。
指定给定修补程序的修补程序号。
注 - 请始终遵循修补程序目录中的说明进行操作。如果与本章介绍的过程不符,应以修补程序目录中的说明为准。
# showrev -p | grep patch-id
# reboot
重新引导所有节点后,最后一个重新引导的节点的资源组和设备组不会联机。
# cldevicegroup switch -n node + | devicegroup ... # clresourcegroup switch -n node[:zone][,...] + | resource-group ...
正在将资源组和设备组切换到的节点的名称。
可控制资源组的全局群集非投票节点 (node) 的名称。只有在创建资源组时指定了非投票节点的情况下,才能指定 zone。
# clresourcegroup switch -Z zoneclustername -n zcnode[,...] + | resource-group ...
要将资源组切换到的区域群集的名称。
可控制资源组的区域群集节点的名称。
注 - 设备组与区域群集没有关联。
# /usr/cluster/bin/scversions
您将会看见以下结果之一:
Upgrade commit is needed. Upgrade commit is NOT needed. All versions match.
# scversions -c
注 - 运行 scversions 将导致 CMM 进行一次或多次重新配置,这取决于具体情况。
示例 11-1 应用需重新引导节点的修补程序
以下示例说明了将一个需重新引导的 Oracle Solaris Cluster 修补程序应用到一个节点的过程。
# clresourcegroup status -n rg1 ...Resource Group Resource -------------- -------- rg1 rs-2 rg1 rs-3 ... # cldevicegroup status -n nodedg-schost-1 ... Device Group Name: dg-schost-1 ... # clnode evacuate phys-schost-2 # shutdown -g0 -y -i0 ...
将节点引导到非群集单用户模式。
SPARC:键入以下内容:
ok boot -sx
x86:将节点引导到非群集单用户模式。参见以上过程中介绍的引导步骤。
# patchadd -M /var/tmp/patches 234567-05 ... # showrev -p | grep 234567-05 ... # reboot ... # cldevicegroup switch -n phys-schost-1 dg-schost-1 # clresourcegroup switch -n phys-schost-1 schost-sa-1 # scversions Upgrade commit is needed. # scversions -c
另请参见
如果需要取消修补程序,请参见更改 Oracle Solaris Cluster 修补程序。
执行此过程时,您必须先停止群集,使用 boot -sx 或 shtudown -g -y -i0 命令将每个节点引导至单用户模式,然后再应用修补程序。
# cluster shutdown -y -g grace-period “message”
指定在出现确认提示时回答 yes。
指定关闭前等待的时间,以秒为单位。默认宽限期为 60 秒。
指定要广播的警告消息。如果 message 中包含多个词,请使用引号。
在每个节点的控制台上,运行以下命令。
在基于 SPARC 的系统上,运行以下命令。
ok boot -sx
在基于 x86 的系统上,运行以下命令。
phys-schost# shutdown -g -y -i0 Press any key to continue
GRUB 菜单显示如下内容:
GNU GRUB version 0.95 (631K lower / 2095488K upper memory) +-------------------------------------------------------------------------+ | Solaris 10 /sol_10_x86 | | Solaris failsafe | | | +-------------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line.
有关基于 GRUB 的引导的更多信息,请参见《系统管理指南:基本管理》中的"使用 GRUB 引导基于 x86 的系统(任务图)"。
GRUB 引导参数屏幕的显示与以下内容类似:
GNU GRUB version 0.95 (615K lower / 2095552K upper memory) +----------------------------------------------------------------------+ | root (hd0,0,a) | | kernel /platform/i86pc/multiboot | | module /platform/i86pc/boot_archive | +----------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press 'b' to boot, 'e' to edit the selected command in the boot sequence, 'c' for a command-line, 'o' to open a new line after ('O' for before) the selected line, 'd' to remove the selected line, or escape to go back to the main menu.
[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ESC at any time exits. ] grub edit> kernel /platform/i86pc/multiboot -sx
屏幕将显示编辑后的命令。
GNU GRUB version 0.95 (615K lower / 2095552K upper memory) +----------------------------------------------------------------------+ | root (hd0,0,a) | | kernel /platform/i86pc/multiboot -sx | | module /platform/i86pc/boot_archive | +----------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press 'b' to boot, 'e' to edit the selected command in the boot sequence, 'c' for a command-line, 'o' to open a new line after ('O' for before) the selected line, 'd' to remove the selected line, or escape to go back to the main menu.-
注 - 对内核引导参数命令所做的这一更改在系统引导后将失效。下次重新引导节点时,系统将引导至群集模式。如果希望引导至非群集模式,请重新执行上述步骤,将 -sx 选项添加到内核引导参数命令中。
每次在一个节点上运行以下命令。
# patchadd -M patch-dir patch-id
指定修补程序的目录位置。
指定给定修补程序的修补程序号。
注 - 每次都要按照修补程序目录中的、可替代本章中的过程的说明操作。
# showrev -p | grep patch-id
在每个节点上运行以下命令。
# reboot
# /usr/cluster/bin/scversions
您将会看见以下结果之一:
Upgrade commit is needed. Upgrade commit is NOT needed. All versions match.
# scversions -c
注 - 运行 scversions 将导致 CMM 进行一次或多次重新配置,这取决于具体情况。
示例 11-2 应用需重新引导群集的修补程序
以下示例说明将一个需重新引导的 Oracle Solaris Cluster 修补程序应用到一个群集的过程。
# cluster shutdown -g0 -y ...
将群集引导到非群集单用户模式。
SPARC:键入以下内容:
ok boot -sx
x86:将每个节点引导到非群集单用户模式下。参见上述过程以了解相关步骤。
... # patchadd -M /var/tmp/patches 234567-05 (Apply patch to other cluster nodes) ... # showrev -p | grep 234567-05 # reboot # scversions Upgrade commit is needed. # scversions -c
另请参见
如果需要取消修补程序,请参见更改 Oracle Solaris Cluster 修补程序。
将修补程序一次应用于群集中的一个节点。在应用不需要重新引导的修补程序时,您无需先停止要接收该修补程序的节点。
# patchadd -M patch-dir patch-id
指定修补程序的目录位置。
指定给定修补程序的修补程序号。
# showrev -p | grep patch-id
# /usr/cluster/bin/scversions
您将会看见以下结果之一:
Upgrade commit is needed. Upgrade commit is NOT needed. All versions match.
# scversions -c
注 - 运行 scversions 将导致 CMM 进行一次或多次重新配置,这取决于具体情况。
示例 11-3 应用不需重新引导的 Oracle Solaris Cluster 修补程序
# patchadd -M /tmp/patches 234567-05 ... # showrev -p | grep 234567-05 # scversions Upgrade commit is needed. # scversions -c
另请参见
如果需要取消修补程序,请参见更改 Oracle Solaris Cluster 修补程序。
可通过执行此任务来以单用户模式对故障转移区域应用 修补程序。如果要将故障转移配置中的 Oracle Solaris Cluster Data Service for Solaris Containers 与 Oracle Solaris Cluster 软件一起使用,就需要采用这种修补方法。
# clquorum show
# clquorum add new-didname
# clquorum remove old-didname
要了解如何运行 pgre 命令,需要安装并使用 Oracle 支持部门提供的诊断工具包 (SUNWscdtk) 软件包。
注 - 如果无意中清除了活动法定设备上的保留关键字,则必须删除并重新添加法定设备,以便将新的保留关键字放置到法定设备上。
# clresourcegroup evacuate -n node1
# clresourcegroup offline resourcegroupname
# clresource disable resourcename
# clresourcegroup unmanage resourcegroupname
# cldevicegroup offline cldevicegroupname
# cldevicegroup disable devicegroupname
# reboot -- -x
注 - 如果要修补区域路径中具有 zpool 的故障转移区域,请使用以下命令。
# reboot -- -xs
# svcs -x
注 - 如果要修补区域路径中具有 zpool 的故障转移区域,请跳过此步骤。
# cluster status
对于磁盘集中的所有磁盘,运行以下命令:/usr/cluster/lib/sc/scsi -c disfailfast -d /dev/did/rdsk/d#s2。
如果列出了项,请通过运行以下命令将其释放:/usr/cluster/lib/sc/scsi -c release -d /dev/did/rdsk/d#s2。
在完成释放保留项的操作之后,请跳过步骤 #12 并继续执行步骤 #13。
# /usr/cluster/lib/sc/scsi -c inkeys -d /dev/did/rdsk/didnames2
# /usr/cluster/lib/sc/scsi -c scrub -d /dev/did/rdsk/didnames2
# metaset -s disksetname -C take -f
注 - 如果要修补区域路径中具有 zpool 的故障转移区域,请使用以下命令。
# zpool import -R / pool_name
# mount device mountpoint
# init s
# zoneadm -z zonename halt
# zoneadm -z zonename boot -s
# reboot
# svcs -a
第一个节点现已准备就绪。
# clresourcegroup evacuate -n node2
# zoneadm -z zonename detach
# init s
# zoneadm -z zonename halt
# zoneadm -z zonename boot -s
# zoneadm -z zonename attach -F
# reboot
# /usr/cluster/bin/scversions
您将会看见以下结果之一:
Upgrade commit is needed. Upgrade commit is NOT needed. All versions match.
# scversions -c
注 - 运行 scversions 将导致 CMM 进行一次或多次重新配置,这取决于具体情况。
要删除已应用到群集中的 Oracle Solaris Cluster 修补程序,必须先删除新的 Oracle Solaris Cluster 修补程序,然后重新应用以前的修补程序或更新版本。要删除新的 Oracle Solaris Cluster 修补程序,请参见以下过程。要重新应用以前的 Oracle Solaris Cluster 修补程序,请参见以下过程之一:
注 - 应用某个 Oracle Solaris Cluster 修补程序之前,请先阅读该修补程序的 README 文件。
# patchrm patchid
# patchrm patchid
# reboot