1. Oracle Solaris Cluster 管理简介
2. Oracle Solaris Cluster 和 RBAC
Solaris Volume Manager 的全局设备许可
Veritas Volume Manager 管理的注意事项
如何配置 DID 设备以使用 Hitachi TrueCopy 进行复制
如何检验 Hitachi TrueCopy 复制全局设备组配置
示例:为 Oracle Solaris Cluster 配置 TrueCopy 复制组
管理 EMC Symmetrix Remote Data Facility 复制设备
示例:为 Oracle Solaris Cluster 配置 SRDF 复制组
如何添加和注册设备组 (Solaris Volume Manager)
如何在初始化磁盘时创建新磁盘组 (Veritas Volume Manager)
如何删除和取消注册设备组 (Solaris Volume Manager)
如何将节点从设备组中删除 (Solaris Volume Manager)
如何在封装磁盘时创建新磁盘组 (Veritas Volume Manager)
如何向现有设备组添加新卷 (Veritas Volume Manager)
如何将现有磁盘组转换为设备组 (Veritas Volume Manager)
如何给设备组分配新的从设备号 (Veritas Volume Manager)
如何将磁盘组注册为设备组 (Veritas Volume Manager)
如何注册磁盘组的配置更改 (Veritas Volume Manager)
如何从设备组中删除卷 (Veritas Volume Manager)
如何删除和取消注册设备组 (Veritas Volume Manager)
如何向设备组添加节点 (Veritas Volume Manager)
如何启用节点在所有受监视的共享磁盘路径均发生故障时自动重新引导的功能
如何禁用节点在所有受监视的共享磁盘路径均发生故障时自动重新引导的功能
11. 修补 Oracle Solaris Cluster 软件和固件
随着群集要求的变化,您可能需要在群集中添加、删除或修改设备组。为此,Oracle Solaris Cluster 提供了一个名为 clsetup 的交互式界面。您可以在该界面中进行这些更改。clsetup 可生成 cluster 命令。生成的命令显示在某些过程结尾部分的示例中。下表列出了用于管理设备组的各项任务,并提供了指向本节中相应操作过程的链接。
注意 - 如果其他节点是活动群集成员并且至少其中的一个节点拥有磁盘集,请勿在群集之外引导的群集节点上运行 metaset —s setname —f -t。 |
注 - Oracle Solaris Cluster 软件可自动为群集中的每个磁盘和磁带设备创建一个原始磁盘设备组。但是,群集设备组仍处于脱机状态,直到您将这些组作为全局设备访问。
表 5-4 任务表:管理设备组
|
当添加新的全局设备时,请通过运行 cldevice populate 命令手动更新全局设备名称空间。
注 - 如果运行 cldevice populate 命令的节点当前不是群集成员,则该命令没有任何效果。如果未挂载 /global/.devices/node@ nodeID 文件系统,则该命令也没有任何效果。
您可以同时在群集的所有节点上运行此命令。
# cldevice populate
cldevice 命令会在所有节点上远程调用其自身,即使该命令仅从一个节点上运行也是如此。要确定 cldevice populate 命令是否已完成处理过程,请在群集的每个节点上运行以下命令。
# ps -ef | grep cldevice populate
示例 5-21 更新全局设备名称空间
以下示例显示了成功运行 cldevice populate 命令后生成的输出。
# devfsadm cldevice populate Configuring the /dev/global directory (global devices)... obtaining access to all attached disks reservation program successfully exiting # ps -ef | grep cldevice populate
如果在全局群集的一个或多个节点上为全局设备名称空间使用 lofi 设备,请执行此过程更改该设备的大小。
这样做可以确保您在执行此过程时不会从该节点为全局设备提供服务。有关说明,请参见如何以非群集模式引导节点。
全局设备文件系统在本地挂载。
phys-schost# umount /global/.devices/node\@`clinfo -n` > /dev/null 2>&1 Ensure that the lofi device is detached phys-schost# lofiadm -d /.globaldevices The command returns no output if the device is detached
注 - 如果使用 -m 选项挂载文件系统,则不会有任何条目添加到 mnttab 文件。umount 命令可能会报告类似如下的警告:
umount: warning: /global/.devices/node@2 not in mnttab ====>>>> not mounted
可以放心地忽略此警告。
以下示例显示了如何创建大小为 200 MB 的新 /.globaldevices 文件。
phys-schost# rm /.globaldevices phys-schost# mkfile 200M /.globaldevices
phys-schost# lofiadm -a /.globaldevices phys-schost# newfs `lofiadm /.globaldevices` < /dev/null
全局设备现在位于新文件系统中。
phys-schost# reboot
可在回送文件接口 (lofi) 设备上创建名称空间,而不是在专用分区上创建全局设备名称空间。如果在预先安装了 Oracle Solaris 10 OS 的系统上安装 Oracle Solaris Cluster 软件,此功能很实用。
注 - 支持根文件系统的 ZFS,但有一个重要的例外。如果使用引导磁盘的专用分区作为全局设备文件系统,必须仅使用 UFS 作为其文件系统。全局设备名称空间要求在 UFS 文件系统上运行代理文件系统 (PxFS)。但全局设备名称空间的 UFS 文件系统可与根 (/) 文件系统及其他根文件系统(例如,/var 或 /home)的 ZFS 文件系统共存。另外,如果改为使用 lofi 设备来托管全局设备名称空间,则不会限制对根文件系统的 ZFS 的使用。
以下程序介绍如何在专用分区与 lofi 设备之间移动现有全局设备名称空间:
这样做可以确保您在执行此过程时不会从该节点为全局设备提供服务。有关说明,请参见如何以非群集模式引导节点。
# mkfile 100m /.globaldevices# lofiadm -a /.globaldevices# \ LOFI_DEV=`lofiadm /.globaldevices`# newfs `echo ${LOFI_DEV} | \ sed -e 's/lofi/rlofi/g'` < /dev/null# lofiadm -d /.globaldevices
# svcadm disable globaldevices# svcadm disable scmountdev# \ svcadm enable scmountdev# svcadm enable globaldevices
现已在 /.globaldevices 中创建 lofi 设备并挂载为全局设备文件系统。
# /usr/cluster/bin/cldevice populate
请先在每个节点上检验命令是否已完成处理,然后再对群集执行其他操作。
# ps -ef \ grep cldevice populate
全局设备名称空间现已驻留在 lofi 设备上。
这样做可以确保您在执行此过程时不会从该节点为全局设备提供服务。有关说明,请参见如何以非群集模式引导节点。
大小至少为 512M
使用 UFS 文件系统
# /usr/sbin/clinfo -nnode ID
blockdevice rawdevice /global/.devices/node@nodeID ufs 2 no global
例如,如果选用的分区是 /dev/did/rdsk/d5s3 ,则要向 /etc/vfstab 文件添加如下新条目:/dev/did/dsk/d5s3 /dev/did/rdsk/d5s3 /global/.devices/node@3 ufs 2 no global。
# lofiadm -d /.globaldevices
# rm /.globaldevices
# svcadm disable globaldevices# svcadm disable scmountdev# \ svcadm enable scmountdev# svcadm enable globaldevices
该分区现已挂载为全局设备名称空间文件系统。
# /usr/cluster/bin/cldevice populate
在对任意节点执行其他操作之前,请确保群集所有节点均已完成此过程。
# ps -ef | grep cldevie populate
全局设备名称空间现已驻留在专用分区上。
您可以为 Solaris Volume Manager、ZFS、Veritas Volume Manager 或原始磁盘添加并注册设备组。
使用 metaset 命令可创建 Solaris Volume Manager 磁盘集,并将磁盘集注册为 Oracle Solaris Cluster 设备组。注册磁盘集时,系统会将您指定给磁盘集的名称自动指定给设备组。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
注意 - 您创建的 Oracle Solaris Cluster 设备组(Solaris Volume Manager、Veritas Volume Manager 或原始磁盘)必须与所复制的设备组同名。 |
# metaset -s diskset -a -M -h nodelist
指定要创建的磁盘集。
添加一组可以主控磁盘集的节点。
将磁盘组指定为多属主。
注 - 如果运行 metaset 命令在群集上建立 Solaris Volume Manager 设备组,则默认情况下,无论该设备组中包含多少个节点,都会生成一个辅助节点。创建了设备组之后,您可以使用 clsetup 实用程序更改所需辅助节点数。有关磁盘故障转移的更多信息,请参阅如何设置设备组所需的辅助节点数。
# cldevicegroup sync devicegroup
设备组名称与使用 metaset 命令指定的磁盘集名称相符。
# cldevicegroup list
# cldevice show | grep Device
选择由将要控制或可能要控制磁盘集的群集节点共享的驱动器。
向磁盘集添加驱动器时,请使用格式为 /dev/did/rdsk/d N 的完整 DID 设备名称。
在下面的示例中,DID 设备 /dev/did/rdsk/d3 的条目表明 phys-schost-1 和 phys-schost-2 正在共享该驱动器。
=== DID Device Instances === DID Device Name: /dev/did/rdsk/d1 Full Device Path: phys-schost-1:/dev/rdsk/c0t0d0 DID Device Name: /dev/did/rdsk/d2 Full Device Path: phys-schost-1:/dev/rdsk/c0t6d0 DID Device Name: /dev/did/rdsk/d3 Full Device Path: phys-schost-1:/dev/rdsk/c1t1d0 Full Device Path: phys-schost-2:/dev/rdsk/c1t1d0 …
使用完整的 DID 路径名称。
# metaset -s setname -a /dev/did/rdsk/dN
指定磁盘集的名称,该名称与设备组名称相同。
给磁盘集添加驱动器。
注 - 在向磁盘集添加驱动器时,请不要使用低级别的设备名称 ( cNtX dY)。因为低级别设备名称是本地名称,并且在群集中不是唯一的,使用该名称可能使元集无法切换。
# metaset -s setname
示例 5-22 添加 Solaris Volume Manager 设备组
以下示例显示了如何使用磁盘驱动器 /dev/did/rdsk/d1 和 /dev/did/rdsk/d2 创建磁盘集和设备组,并检验设备组是否已创建。
# metaset -s dg-schost-1 -a -h phys-schost-1 # cldevicegroup list dg-schost-1 metaset -s dg-schost-1 -a /dev/did/rdsk/d1 /dev/did/rdsk/d2
除其他卷管理器以外,Oracle Solaris Cluster 软件还支持使用原始磁盘设备组。对 Oracle Solaris Cluster 进行初始配置时,该软件会为群集中的每个原始设备自动配置设备组。请使用以下过程重新配置这些自动创建的设备组,以便在 Oracle Solaris Cluster 软件中使用。
基于以下原因新建原始磁盘类型的设备组:
您要将多个 DID 添加至设备组
您需要更改设备组的名称。
您要在不使用 cldg 命令 -v 选项的情况下创建一组设备组。
注意 - 如果要在复制设备上创建设备组,则创建的设备组(Solaris Volume Manager、Veritas Volume Manager 或原始磁盘)必须与复制设备组同名。 |
使用以下命令可删除为 d7 和 d8 预定义的设备组。
paris-1# cldevicegroup disable dsk/d7 dsk/d8 paris-1# cldevicegroup offline dsk/d7 dsk/d8 paris-1# cldevicegroup delete dsk/d7 dsk/d8
使用以下命令可创建一个名为 rawdg 且包含 d7 和 d8 的全局设备组。
paris-1# cldevicegroup create -n phys-paris-1,phys-paris-2 -t rawdisk -d d7,d8 rawdg paris-1# /usr/cluster/lib/dcs/cldg show rawdg -d d7 rawdg paris-1# /usr/cluster/lib/dcs/cldg show rawdg -d d8 rawdg
要复制 ZFS,必须创建已命名的设备组并列出属于该存储池的磁盘。一个设备一次只能属于一个设备组,因此,如果已经存在包含该设备的 Oracle Solaris Cluster 设备组,则必须将该组删除后才能将该设备添加到新的 ZFS 设备组。
您创建的 Oracle Solaris Cluster 设备组(Solaris Volume Manager、Veritas Volume Manager 或原始磁盘)必须与所复制的设备组同名。
注意 - 即将完全支持 ZFS 使用第三方数据复制技术。有关 ZFS 支持的更新,请参见最新的 Oracle Solaris Cluster 发行说明。 |
例如,如果存储池 mypool 含有两个设备 /dev/did/dsk/d2 和 /dev/did/dsk/d13,则必须删除 d2 和 d13 这两个默认设备组。
# cldevicegroup offline dsk/d2 dsk/d13 # cldevicegroup remove dsk/d2 dsk/d13
# cldevicegroup create -d d2,d13 -t rawdisk mypool
此操作创建名为 mypool 的设备组(与存储池同名),它管理原始设备 /dev/did/dsk/d2 和 /dev/did/dsk/d13。
# zpool create mypool mirror /dev/did/dsk/d2 /dev/did/dsk/d13
# clrg create -n pnode1,pnode2 migrate_truecopydg-rg
# clrs create -t HAStoragePlus -x globaldevicepaths=mypool -g \ migrate_truecopydg-rg hasp2migrate_mypool
# clrg create -n pnode1:zone-1,pnode2:zone-2 -p \ RG_affinities=+++migrate_truecopydg-rg sybase-rg
# clrs create -g sybase-rg -t HAStoragePlus -p zpools=mypool \ -p resource_dependencies=hasp2migrate_mypool \ -p ZpoolsSearchDir=/dev/did/dsk hasp2import_mypool
添加 VxVM 磁盘组后,您需要注册该设备组。
如果使用 VxVM 为 Oracle RAC 建立共享磁盘组,则使用《Veritas Volume Manager Administrator's Reference Guide》中所述的 VxVM 群集功能。
使用您的首选方法创建磁盘组和卷。
注 - 如果安装的是镜像卷,则可以用脏区记录 (DRL) 缩短出现节点故障时的卷恢复时间。但是,使用 DRL 可能减少 I/O 吞吐量。
有关完成此步操作的过程,请参阅 Veritas Volume Manager 文档。
请参见如何将磁盘组注册为设备组 (Veritas Volume Manager)。
不要在群集框架中注册 Oracle RAC 共享磁盘组。
您可针对设备组执行各种管理任务。
设备组是已经注册到 Oracle Solaris Cluster 的 Solaris Volume Manager 磁盘集。要删除一个 Solaris Volume Manager 设备组,请使用 metaclear 和 metaset 命令。这些命令可删除同名的设备组,并注销磁盘组,使之不再是 Oracle Solaris Cluster 设备组。
有关删除磁盘集的步骤,请参阅 Solaris Volume Manager文档。
使用此过程可将一个群集节点从所有在其潜在主节点列表中列出该节点的设备组中删除。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
在每个设备组的 Device group node list 中查找该节点名称。
# cldevicegroup list -v
# cldevicegroup list -v
如果该节点不再被列为任何设备组的潜在主节点,则以下命令不返回任何内容。
# cldevicegroup list -v nodename
使用此过程可将一个群集节点从 Solaris Volume Manager 设备组的潜在主节点列表中删除。对每个要从中删除该节点的设备组执行 metaset 命令。
注意 - 如果其他节点是活动群集成员并且至少其中的一个节点拥有磁盘集,则请勿在群集之外引导的群集节点上运行 metaset —s setname —f -t。 |
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
设备组类型 SDS/SVM 指示 Solaris Volume Manager 设备组。
phys-schost-1% cldevicegroup show devicegroup
# cldevicegroup status devicegroup
# metaset -s setname -d -h nodelist
指定设备组的名称。
从设备组中删除以 -h 标识的节点。
指定将要删除的一个或多个节点的节点名称。
注 - 完成更新可能需要几分钟。
如果该命令失败,请在命令中增加 -f(强制)选项。
# metaset -s setname -d -f -h nodelist
设备组名称与使用 metaset 命令指定的磁盘集名称相符。
phys-schost-1% cldevicegroup list -v devicegroup
示例 5-23 从设备组中删除一个节点 (Solaris Volume Manager)
下面的示例显示了如何从设备组配置中删除主机名 phys-schost-2。本示例消除了 phys-schost-2 成为指定设备组的潜在主节点的可能性。可运行 cldevicegroup show 命令检验节点是否已删除。检查删除的节点是否不再显示在屏幕文本中。
[Determine the Solaris Volume Manager device group for the node:] # cldevicegroup show dg-schost-1 === Device Groups === Device Group Name: dg-schost-1 Type: SVM failback: no Node List: phys-schost-1, phys-schost-2 preferenced: yes numsecondaries: 1 diskset name: dg-schost-1 [Determine which node is the current primary for the device group:] # cldevicegroup status dg-schost-1 === Cluster Device Groups === --- Device Group Status --- Device Group Name Primary Secondary Status ----------------- ------- --------- ------ dg-schost-1 phys-schost-1 phys-schost-2 Online [Become superuser on the node that currently owns the device group.] [Remove the host name from the device group:] # metaset -s dg-schost-1 -d -h phys-schost-2 [Verify removal of the node:]] phys-schost-1% cldevicegroup list -v dg-schost-1 === Cluster Device Groups === --- Device Group Status --- Device Group Name Primary Secondary Status ----------------- ------- --------- ------ dg-schost-1 phys-schost-1 - Online
您可以将非根磁盘转换成 Oracle Solaris Cluster 设备组,方法是将磁盘封装为 VxVM 磁盘组,然后再将这些磁盘组注册为 Oracle Solaris Cluster 设备组。
只有在最初创建 VxVM 磁盘组时,才支持磁盘封装。创建了 VxVM 磁盘组并将其注册为 Oracle Solaris Cluster 设备组之后,只有能进行初始化的磁盘才应添加到磁盘组中。
如果使用 VxVM 为 Oracle RAC 建立共享磁盘组,则使用《Veritas Volume Manager Administrator's Reference Guide》中所述的 VxVM 群集功能。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
在封装了磁盘并将其注册为 Oracle Solaris Cluster 设备组之后,再设置回 yes。
使用 vxdiskadm 菜单或图形用户界面来封装磁盘。VxVM 要求在磁盘的开始或尾部有两个可用分区和未分配的柱面。第 2 片还必须设置到整个磁盘。有关详细信息,请参见 vxdiskadm 手册页。
clnode evacuate 命令可将指定节点上的所有资源组和设备组(包括全局群集中的所有非投票节点)切换到下一个首选节点。使用 shutdown 命令可以关闭并重新启动节点。
# clnode evacuate node[,...] # shutdown -g0 -y -i6
如果资源组和设备组最初配置为故障恢复回主节点,则无需执行此步骤。
# cldevicegroup switch -n node devicegroup # clresourcegroup switch -z zone -n node resourcegroup
节点名称。
可控制资源组的非投票节点 node 的名称。只有在创建资源组时指定了非投票节点的情况下,才能指定 zone。
请参见如何将磁盘组注册为设备组 (Veritas Volume Manager)。
不要在群集框架中注册 Oracle RAC 共享磁盘组。
当您向现有 VxVM 设备组中添加一个新卷时,请从联机设备组的主节点执行此过程。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
# cldevicegroup status
# cldevicegroup switch -n nodename devicegroup
指定要将设备组切换到的节点的名称。该节点将成为新的主节点。
指定要切换的设备组。
有关用于创建 Veritas Volume Manager 卷的过程,请参阅 VxVM 文档。
# cldevicegroup sync
可以通过将现有 VxVM 磁盘组导入到当前节点,然后将该磁盘组注册为 Oracle Solaris Cluster 设备组,将其转换为 Oracle Solaris Cluster 设备组。
如果设备组注册因为从设备号与其他磁盘组冲突而失败,您必须为新磁盘组分配一个新的未使用的从设备号。分配了新的从设备号后,请重新运行该过程,将磁盘组注册为 Oracle Solaris Cluster 设备组。
# ls -l /global/.devices/node@nodeid/dev/vx/dsk/*
# vxdg reminor diskgroup base-minor-number
示例 5-24 如何给设备组分配新的从设备号
本示例使用从设备号 16000-16002 和 4000-4001。vxdg reminor 命令用于将基本从设备号 5000 分配给新的设备组。
# ls -l /global/.devices/node@nodeid/dev/vx/dsk/* /global/.devices/node@nodeid/dev/vx/dsk/dg1 brw------- 1 root root 56,16000 Oct 7 11:32 dg1v1 brw------- 1 root root 56,16001 Oct 7 11:32 dg1v2 brw------- 1 root root 56,16002 Oct 7 11:32 dg1v3 /global/.devices/node@nodeid/dev/vx/dsk/dg2 brw------- 1 root root 56,4000 Oct 7 11:32 dg2v1 brw------- 1 root root 56,4001 Oct 7 11:32 dg2v2 # vxdg reminor dg3 5000
此过程使用 clsetup 实用程序将关联的 VxVM 磁盘组注册为 Oracle Solaris Cluster 设备组。
注 - 一旦在群集中注册了设备组,请勿使用 VxVM 命令导入或导出 VxVM 磁盘组。如果对 VxVM 磁盘组或卷进行了更改,请按照如何注册磁盘组的配置更改 (Veritas Volume Manager)中的过程对设备组的配置更改进行注册。该过程可确保全局名称空间处于正确的状态。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
在注册 VxVM 设备组之前,请确保具备以下先决条件:
群集中的节点的超级用户特权。
要注册为设备组的 VxVM 磁盘组的名称。
控制设备组的节点的首选顺序。
设备组所需的辅助节点数。
此外,定义首选顺序时,您还需指定,如果第一首选节点发生故障但稍后又回到群集中,是否应将设备组重新切换回该节点。
有关节点首选项和故障恢复选项的更多信息,请参见cldevicegroup(1CL)。
非主群集节点(备用节点)将根据节点首选顺序向辅助节点过渡。通常,设备组的默认辅助节点数为 1。该默认设置可使正常运行期间多个辅助节点的主检查点操作对性能的影响降至最小。例如,在包含四个节点的群集中,默认情况下,系统配置一个主节点、一个辅助节点和两个备用节点。另请参见如何设置设备组所需的辅助节点数。
# clsetup
显示“Main Menu”。
这时将显示“Device Groups”菜单。
按照说明进行操作,并键入要注册为 Oracle Solaris Cluster 设备组的 VxVM 磁盘组的名称。
如果该设备组是通过基于存储的复制过程复制的,则此名称必须与复制组的名称相符。
如果您使用 VxVM 为 Oracle Parallel Server/Oracle RAC 设置共享磁盘组,请不要在群集框架中注册该共享磁盘组。请使用 VxVM 的群集功能,如《Veritas Volume Manager Administrator's Reference Guide》中所述。
cldevicegroup: Failed to add device group - in use
要重新为设备组分配从设备号,请按照如何给设备组分配新的从设备号 (Veritas Volume Manager)中的过程操作。此过程使您能够分配一个新的、不与现有设备组所使用的从设备号冲突的从设备号。
# cldevicegroup sync devicegroup
如果正确注册了设备组,则使用以下命令时将显示新设备组的信息。
# cldevicegroup status devicegroup
注 - 如果对已在群集中注册的 VxVM 磁盘组或卷的任何配置信息进行了更改,必须使用 clsetup 对设备组进行同步。这样的配置更改包括添加或删除卷,以及更改现有卷的组、属主或许可。配置更改后的注册将确保全局名称空间处于正确的状态。请参见如何更新全局设备名称空间。
示例 5-25 注册 Veritas Volume Manager 设备组
以下示例显示了当 clsetup 注册 VxVM 设备组 (dg1) 时生成的 cldevicegroup 命令,以及检验步骤。此示例假定 VxVM 磁盘组和卷为以前创建的磁盘组和卷。
# clsetup # cldevicegroup create -t vxvm -n phys-schost-1,phys-schost-2 -p failback=true dg1 # cldevicegroup status dg1 === Cluster Device Groups === --- Device Group Status --- Device Group Name Primary Secondary Status ----------------- ------- --------- ------ dg1 phys-schost-1 phys-schost-2 Online
要在 VxVM 设备组上创建群集文件系统,请参见如何添加群集文件系统。
如果从设备号有问题,请参见如何给设备组分配新的从设备号 (Veritas Volume Manager)。
更改 VxVM 磁盘组或卷的任何配置信息后,都需要注册相应 Oracle Solaris Cluster 设备组的配置更改。通过注册可确保全局名称空间处于正确的状态。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
# clsetup
显示“Main Menu”。
这时将显示“Device Groups”菜单。
按照说明进行操作,并键入已更改了配置的 VxVM 磁盘组的名称。
示例 5-26 注册 Veritas Volume Manager 磁盘组配置更改
以下示例显示了当 clsetup 注册一个已更改的 VxVM 设备组 (dg1) 时所生成的 cldevicegroup 命令。此示例假定 VxVM 磁盘组和卷为以前创建的磁盘组和卷。
# clsetup cldevicegroup sync dg1
执行此过程可将本地 VxVM 磁盘组更改为可在全局范围访问的 VxVM 设备组。
# clsetup
phys-schost# cldevicegroup show
执行此过程可将 VxVM 设备组更改为不受 Oracle Solaris Cluster 软件管理的本地 VxVM 磁盘组。本地磁盘组可在节点列表中包含多个节点,但它在某一时刻只受一个节点控制。
phys-schost# cldevicegroup offline devicegroup
phys-schost# clsetup
phys-schost# cldevicegroup status
命令输出中不应再显示已取消注册的设备组。
phys-schost# vxdg import diskgroup
phys-schost# clsetup
phys-schost# vxdg list diskgroup
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
# cldevicegroup status devicegroup
# cldevicegroup online devicegroup
# vxedit -g diskgroup -rf rm volume
指定包含该卷的 VxVM 磁盘组。
删除指定的卷。-r 选项使操作具有递归性。-f 选项是删除已启用的卷所必需的。
删除 Oracle Solaris Cluster 设备组会导致对应的 VxVM 磁盘组被导出而不是销毁。但是,除非重新注册,否则,即使 VxVM 磁盘组依然存在,也无法在群集中使用。
此过程使用 clsetup 实用程序删除 VxVM 磁盘组,并取消其作为 Oracle Solaris Cluster 设备组的注册。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
# cldevicegroup offline devicegroup
# clsetup
显示“Main Menu”。
这时将显示“Device Groups”菜单。
按照说明进行操作,并键入要取消注册的 VxVM 磁盘组的名称。
示例 5-27 删除并取消注册 Veritas Volume Manager 设备组
以下示例显示了脱机的 VxVM 设备组 dg1,以及当 clsetup 删除并取消注册设备组时所生成的 cldevicegroup 命令。
# cldevicegroup offline dg1 # clsetup cldevicegroup delete dg1
此过程使用 clsetup 实用程序向设备组中添加一个节点。
向 VxVM 设备组添加节点的先决条件如下:
群集中节点上的超级用户特权
要将节点添加到其中的 VxVM 设备组的名称
要添加的节点的名称或节点 ID
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
# clsetup
显示“Main Menu”。
这时将显示“Device Groups”菜单。
按照说明进行操作,并键入设备组和节点的名称。
通过以下命令查看所显示的新磁盘的设备组信息。
# cldevicegroup show devicegroup
示例 5-28 向 Veritas Volume Manager 设备组添加节点
以下示例显示了当 clsetup 向 VxVM 设备组 (dg1) 添加节点 (phys-schost-3) 时所生成的 cldevicegroup 命令,以及检验步骤。
# clsetup cldevicegroup add-node -n phys-schost-3 dg1 # cldevicegroup show dg1 === Device Groups === Device Group Name: dg1 Type: VxVM failback: yes Node List: phys-schost-1, phys-schost-3 preferenced: no numsecondaries: 1 diskgroup names: dg1
使用以下过程可从 Veritas Volume Manager (VxVM) 设备组(磁盘组)的潜在主节点列表中删除某个群集节点。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
设备组类型 VxVM 表示 VxVM 设备组。
phys-schost-1% cldevicegroup show devicegroup
# clsetup
显示“Main Menu”。
根据提示从设备组中删除群集节点。系统将提示您输入有关以下内容的信息:
VxVM 设备组
节点名称
# cldevicegroup show devicegroup
示例 5-29 从设备组中删除节点 (VxVM)
本示例说明如何将名为 phys-schost-1 的节点从 dg1 VxVM 设备组中删除。
[Determine the VxVM device group for the node:] # cldevicegroup show dg1 === Device Groups === Device Group Name: dg1 Type: VXVM failback: no Node List: phys-schost-1, phys-schost-2 preferenced: no numsecondaries: 1 diskgroup names: dg1 [Become superuser and start the clsetup utility:] # clsetup Select Device groups and volumes>Remove a node from a VxVM device group. Answer the questions when prompted. You will need the following information. Name: Example: VxVM device group name dg1 node names phys-schost-1 [Verify that the cldevicegroup command executed properly:] cldevicegroup remove-node -n phys-schost-1 dg1 Command completed successfully. Dismiss the clsetup Device Groups Menu and Main Menu. [Verify that the node was removed:] # cldevicegroup show dg1 === Device Groups === Device Group Name: dg1 Type: VXVM failback: no Node List: phys-schost-2 preferenced: no numsecondaries: 1 device names: dg1
使用此过程可将一个群集节点从原始磁盘设备组的潜在主节点列表中删除。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
# cldevicegroup show -n nodename -t rawdisk +
# cldevicegroup set -p localonly=false devicegroup
有关 localonly 属性的更多信息,请参见 cldevicegroup(1CL) 手册页。
Disk 设备组类型指示已禁用该原始磁盘设备组的 localonly 属性。
# cldevicegroup show -n nodename -t rawdisk -v +
必须为每一个与正在删除的节点相连接的原始磁盘设备组完成此步骤。
# cldevicegroup remove-node -n nodename devicegroup
示例 5-30 从原始设备组中删除节点
本示例说明如何从原始磁盘设备组中删除节点 (phys-schost-2)。所有命令均是从该群集的另一节点 (phys-schost-1) 上运行的。
[Identify the device groups connected to the node being removed, and determine which are raw-disk device groups:] phys-schost-1# cldevicegroup show -n phys-schost-2 -t rawdisk -v + Device Group Name: dsk/d4 Type: Disk failback: false Node List: phys-schost-2 preferenced: false localonly: false autogen true numsecondaries: 1 device names: phys-schost-2 Device Group Name: dsk/d2 Type: VxVM failback: true Node List: pbrave2 preferenced: false localonly: false autogen true numsecondaries: 1 diskgroup name: vxdg1 Device Group Name: dsk/d1 Type: SVM failback: false Node List: pbrave1, pbrave2 preferenced: true localonly: false autogen true numsecondaries: 1 diskset name: ms1 (dsk/d4) Device group node list: phys-schost-2 (dsk/d2) Device group node list: phys-schost-1, phys-schost-2 (dsk/d1) Device group node list: phys-schost-1, phys-schost-2 [Disable the localonly flag for each local disk on the node:] phys-schost-1# cldevicegroup set -p localonly=false dsk/d4 [Verify that the localonly flag is disabled:] phys-schost-1# cldevicegroup show -n phys-schost-2 -t rawdisk + (dsk/d4) Device group type: Disk (dsk/d8) Device group type: Local_Disk [Remove the node from all raw-disk device groups:] phys-schost-1# cldevicegroup remove-node -n phys-schost-2 dsk/d4 phys-schost-1# cldevicegroup remove-node -n phys-schost-2 dsk/d2 phys-schost-1# cldevicegroup remove-node -n phys-schost-2 dsk/d1
用于确立设备组的主拥有权的方法基于一个名为 preferenced 的拥有权首选属性的设置。如果未设置该属性,其他无主 (unowned) 设备组的主所有者便是第一个尝试访问该组中磁盘的节点。但是,如果设置了该属性,您必须指定节点尝试建立拥有权时采用的首选顺序。
如果禁用 preferenced 属性,则 failback 属性也将自动被禁用。但是,如果尝试启用或重新启用 preferenced 属性,则可以选择启用或禁用 failback 属性。
如果启用或重新启用了 preferenced 属性,则需要重新排列主拥有权首选列表中节点的顺序。
此过程使用 clsetup 设置或取消设置 Solaris Volume Manager 或 VxVM 设备组的 preferenced 属性和 failback 属性。
要执行此过程,您需要知道要更改其属性值的设备组的名称。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
# clsetup
显示“Main Menu”。
这时将显示“Device Groups”菜单。
此时将显示“Change Key Properties Menu”。
按照说明为设备组设置 preferenced 和 failback 选项。
通过以下命令查看所显示的磁盘设备组信息。
# cldevicegroup show -v devicegroup
示例 5-31 更改设备组属性
以下示例显示了当 clsetup 对设备组 (dg-schost-1) 的属性值进行设置时所生成的 cldevicegroup 命令。
# cldevicegroup set -p preferenced=true -p failback=true -p numsecondaries=1 \ -p nodelist=phys-schost-1,phys-schost-2 dg-schost-1 # cldevicegroup show dg-schost-1 === Device Groups === Device Group Name: dg-schost-1 Type: SVM failback: yes Node List: phys-schost-1, phys-schost-2 preferenced: yes numsecondaries: 1 diskset names: dg-schost-1
numsecondaries 属性指定设备组中在主节点发生故障后可以控制该设备组的节点数。设备服务默认的辅助节点数为 1。您可将该值设置为一与设备组中有效非主提供节点的数目之间的任意整数。
该设置是平衡群集性能和可用性的一个重要因素。例如,增大所需的辅助节点数可以增大设备组在群集中同时发生多处故障时正常运行的机率。增大辅助节点数通常还会有规律地降低正常运行时的性能。一般情况下,辅助节点数越少,性能越好,但是可用性越差。但是,辅助节点数多并不一定会提高出现问题的文件系统或设备组的可用性。有关更多信息,请参阅《Oracle Solaris Cluster Concepts Guide》中的第 3 章 "Key Concepts for System Administrators and Application Developers"。
如果更改 numsecondaries 属性,则一旦此更改导致实际辅助节点数与所需辅助节点数不一致,系统将向设备组添加或从中删除辅助节点。
此过程使用 clsetup 实用程序为所有类型的设备组设置 numsecondaries 属性。有关配置任意设备组时的设备组选项的信息,请参阅 cldevicegroup(1CL)。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
# clsetup
显示“Main Menu”。
这时将显示“Device Groups”菜单。
此时将显示“Change Key Properties Menu”。
按照说明进行操作,并键入要为设备组配置的辅助节点数。此时,将执行相应的 cldevicegroup 命令并显示日志,然后返回到前一菜单。
# cldevicegroup show dg-schost-1 === Device Groups === Device Group Name: dg-schost-1 Type: VxVm This might also be SDS or Local_Disk. failback: yes Node List: phys-schost-1, phys-schost-2 phys-schost-3 preferenced: yes numsecondaries: 1 diskgroup names: dg-schost-1
注 - 如果更改群集中已注册的 VxVM 磁盘组或卷的任何配置信息,必须使用 clsetup 重新注册设备组。这样的配置更改包括添加或删除卷,以及更改现有卷的组、属主或许可。配置更改后的注册将确保全局名称空间处于正确的状态。请参见如何更新全局设备名称空间。
通过以下命令查看所显示的磁盘设备组信息。
# cldevicegroup show -v devicegroup
示例 5-32 更改所需的辅助节点数 (Solaris Volume Manager)
以下示例显示了当 clsetup 为设备组 (dg-schost-1) 配置所需的辅助节点数时所生成的 cldevicegroup 命令。此示例假定磁盘组和卷是以前创建的。
# cldevicegroup set -p numsecondaries=1 dg-schost-1 # cldevicegroup show -v dg-schost-1 === Device Groups === Device Group Name: dg-schost-1 Type: SVM failback: yes Node List: phys-schost-1, phys-schost-2 preferenced: yes numsecondaries: 1 diskset names: dg-schost-1
示例 5-33 设置所需的辅助节点数(Veritas Volume Manager)
以下示例显示了当 clsetup 将设备组 (dg-schost-1) 所需的辅助节点数设置为 2 时所生成的 cldevicegroup 命令。有关在创建设备组后如何更改所需辅助节点数的信息,请参见如何设置设备组所需的辅助节点数。
# cldevicegroup set -p numsecondaries=2 dg-schost-1 # cldevicegroup show dg-schost-1 === Device Groups === Device Group Name: dg-schost-1 Type: VxVM failback: yes Node List: phys-schost-1, phys-schost-2 preferenced: yes numsecondaries: 1 diskgroup names: dg-schost-1
示例 5-34 将所需的辅助节点数设置为默认值
以下示例显示如何使用空字符串值配置默认的辅助节点数。设备组将配置为使用该默认值,即使默认值改变。
# cldevicegroup set -p numsecondaries= dg-schost-1 # cldevicegroup show -v dg-schost-1 === Device Groups === Device Group Name: dg-schost-1 Type: SVM failback: yes Node List: phys-schost-1, phys-schost-2 phys-schost-3 preferenced: yes numsecondaries: 1 diskset names: dg-schost-1
您无需成为超级用户即可列出配置。但您需要具备 solaris.cluster.read 授权。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
有关详细信息,请参见 Oracle Solaris Cluster Manager 联机帮助。
使用 cldevicegroup show 可列出群集中所有设备组的配置。
使用 cldevicegroup show devicegroup 可列出单个设备组的配置。
使用 cldevicegroup status devicegroup 可确定单个设备组的状态。
使用 cldevicegroup status + 可确定群集中所有设备组的状态。
在这些命令中使用 -v 选项可获取更为详细的信息。
示例 5-35 列出所有设备组的状态
# cldevicegroup status + === Cluster Device Groups === --- Device Group Status --- Device Group Name Primary Secondary Status ----------------- ------- --------- ------ dg-schost-1 phys-schost-2 phys-schost-1 Online dg-schost-2 phys-schost-1 -- Offline dg-schost-3 phys-schost-3 phy-shost-2 Online
示例 5-36 列出特定设备组的配置
# cldevicegroup show dg-schost-1 === Device Groups === Device Group Name: dg-schost-1 Type: SVM failback: yes Node List: phys-schost-2, phys-schost-3 preferenced: yes numsecondaries: 1 diskset names: dg-schost-1
此过程还可以用于启动不活动的设备组(使之联机)。
您还可以通过使用 Oracle Solaris Cluster Manager GUI 使不活动的设备组联机或切换设备组的主节点。有关详细信息,请参见 Oracle Solaris Cluster Manager 联机帮助。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
# cldevicegroup switch -n nodename devicegroup
指定要切换到的节点的名称。此节点成为新的主节点。
指定要切换的设备组。
如果正确注册了设备组,则使用以下命令时将显示新设备组的信息。
# cldevice status devicegroup
示例 5-37 切换设备组的主节点
以下示例显示了如何切换设备组的主节点以及如何检验此更改。
# cldevicegroup switch -n phys-schost-1 dg-schost-1 # cldevicegroup status dg-schost-1 === Cluster Device Groups === --- Device Group Status --- Device Group Name Primary Secondary Status ----------------- ------- --------- ------ dg-schost-1 phys-schost-1 phys-schost-2 Online
将设备组置于维护状态可在设备组中的某个设备被访问时防止设备组自动联机。完成修复过程时(该过程要求完成修复前停止一切 I/O 活动),应该使设备组处于维护状态。此外,将设备组置于维护状态还可确保当系统在一个节点上修复磁盘集或磁盘组时,另一节点上的设备组不会联机,从而防止数据丢失。
有关如何恢复损坏的磁盘集的说明,请参见恢复损坏的磁盘集。
注 - 在将设备组置于维护状态之前,必须停止对其设备的所有访问并且必须卸载所有依赖该设备的文件系统。
phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。
此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。
# cldevicegroup disable devicegroup
# cldevicegroup offline devicegroup
对于 Solaris Volume Manager:
# metaset -C take -f -s diskset
注意 - 如果要获取 Solaris Volume Manager 磁盘集的所有权,必须在设备组处于维护状态时使用 metaset -C take 命令。使用 metaset -t 会将设备组联机,这是获取所有权的一部分。如果要导入 VxVM 磁盘组,必须在导入磁盘组时使用 -t 标志。使用 -t 标志可防止重新引导此节点时自动导入该磁盘组。 |
对于 Veritas Volume Manager:
# vxdg -t import disk-group-name
注意 - 使设备组脱离维护状态之前,必须先释放对该磁盘集或磁盘组的所有权。如果释放拥有权失败,可导致数据丢失。 |
对于 Solaris Volume Manager:
# metaset -C release -s diskset
对于 Veritas Volume Manager:
# vxdg deport diskgroupname
# cldevicegroup online devicegroup # cldevicegroup enable devicegroup
示例 5-38 将设备组置于维护状态
本示例说明了如何将设备组 dg-schost-1 置于维护状态,以及如何使该设备组脱离维护状态。
[Place the device group in maintenance state.] # cldevicegroup disable dg-schost-1 # cldevicegroup offline dg-schost-1 [If needed, manually import the disk set or disk group.] For Solaris Volume Manager: # metaset -C take -f -s dg-schost-1 For Veritas Volume Manager: # vxdg -t import dg1 [Complete all necessary repair procedures.] [Release ownership.] For Solaris Volume Manager: # metaset -C release -s dg-schost-1 For Veritas Volume Manager: # vxdg deport dg1 [Bring the device group online.] # cldevicegroup online dg-schost-1 # cldevicegroup enable dg-schost-1