跳过导航链接 | |
退出打印视图 | |
![]() |
Oracle Solaris Cluster 系统管理指南 Oracle Solaris Cluster 3.3 3/13 (简体中文) |
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 的引导的更多信息,请参见《Oracle Solaris 管理:基本管理》中的"使用 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) 的名称。只有在创建资源组时指定了非投票节点时,才能指定区域。
# 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: Type:
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 的引导的更多信息,请参见《Oracle Solaris 管理:基本管理》中的"使用 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: Type:
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) 密钥。如果磁盘上没有密钥,将显示 errno=22 消息。
# /usr/cluster/lib/sc/pgre -c pgre_inkeys -d /dev/did/rdsk/dids2
找到密钥后,将清理 PGRE 密钥。
# /usr/cluster/lib/sc/pgre -c pgre_scrub -d /dev/did/rdsk/dids2
![]() | 注意 - 如果从磁盘中清理活动法定设备密钥,群集将在下次重新配置时出现紧急情况,并显示 Lost operational quorum 消息。 |
# clresourcegroup evacuate -n node1
# clresourcegroup offline resourcegroupname
# clresource disable resourcename
# clresourcegroup unmanage resourcegroupname
# cldevicegroup offline cldevicegroupname
# cldevicegroup disable devicegroupname
# reboot -- -x
注 - 如果要修补的是区域路径具有存储池的故障转移区域,请使用下列命令。
# reboot -- -xs
# svcs -x
注 - 如果要修补的是区域路径具有存储池的故障转移区域,请跳过此步骤。
# 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 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