Sun Cluster 系统管理指南(适用于 Solaris OS)

管理设备组

随着群集要求的变化,您可能需要在群集中添加、删除或修改设备组。为此,Sun Cluster 提供了一个名为 clsetup 的交互式界面。您可以在该界面中进行这些更改。clsetup 可生成 cluster 命令。生成的命令显示在某些过程结尾部分的示例中。下表列出了用于管理设备组的各项任务,并提供了指向本节中相应操作过程的链接。


注意 – 注意 –

如果其他节点是活动群集成员并且至少其中的一个节点拥有磁盘集,请勿在群集之外引导的群集节点上运行 metaset —s setname —f -t



注 –

Sun Cluster 软件可自动为群集中的每个磁盘和磁带设备创建一个原始磁盘设备组。但是,群集设备组仍处于脱机状态,直到您将这些组作为全局设备访问。


表 5–4 任务表:管理设备组

任务 

指导 

使用 cldevice populate 命令在不进行重新配置重新引导的情况下更新全局设备名称空间

如何更新全局设备名称空间

移动现有全局设备名称空间 

如何将全局设备名称空间从专用分区迁移到 lofi 设备

如何将全局设备名称空间从 lofi 设备迁移到专用分区

使用 metaset 命令添加 Solaris Volume Manager 磁盘集并将其注册为设备组

如何添加和注册设备组 (Solaris Volume Manager)

使用 cldevicegroup 命令添加并注册原始磁盘设备组。

如何添加并注册设备组(原始磁盘)

使用 cldevicegroup 命令为 ZFS 添加已命名的设备组

如何添加并注册复制设备组 (ZFS)

使用首选方法添加新磁盘组并将其注册为设备组 

如何在初始化磁盘时创建新磁盘组 (Veritas Volume Manager(Veritas 卷管理器))

使用 metaset metaclear 命令从配置中删除 Solaris Volume Manager 设备组

如何删除和取消注册设备组 (Solaris Volume Manager)

使用 cldevicegroupmetasetclsetup 命令从所有设备组中删除一个节点

如何将节点从所有设备组中删除

使用 metaset 命令从 Solaris Volume Manager 设备组中删除一个节点

如何将节点从设备组中删除 (Solaris Volume Manager)

使用 VxVM 命令和 clsetup 将 Veritas Volume Manager(Veritas 卷管理器) 磁盘组添加为设备组

如何在初始化磁盘时创建新磁盘组 (Veritas Volume Manager(Veritas 卷管理器))

如何在封装磁盘时创建新磁盘组 (Veritas Volume Manager(Veritas 卷管理器))

如何向现有设备组添加新卷 (Veritas Volume Manager(Veritas 卷管理器))

如何将现有磁盘组转换为设备组 (Veritas Volume Manager(Veritas 卷管理器))

如何给设备组分配新的从设备号 (Veritas Volume Manager(Veritas 卷管理器))

如何将磁盘组注册为设备组 (Veritas Volume Manager(Veritas 卷管理器))

如何将本地磁盘组转换为设备组 (VxVM)

如何将设备组转换为本地磁盘组 (VxVM)

如何注册磁盘组的配置更改 (Veritas Volume Manager(Veritas 卷管理器))

使用 clsetup 命令(用于生成 cldevicegroup)从配置中删除 Veritas Volume Manager(Veritas 卷管理器) 设备组

如何从设备组中删除卷 (Veritas Volume Manager(Veritas 卷管理器))

如何删除和取消注册设备组 (Veritas Volume Manager(Veritas 卷管理器))

使用 clsetup 命令生成 cldevicegroup 来向 Veritas Volume Manager(Veritas 卷管理器) 设备组中添加一个节点

如何向设备组添加节点 (Veritas Volume Manager(Veritas 卷管理器))

使用 clsetup 命令生成 cldevicegroup 来从 Veritas Volume Manager(Veritas 卷管理器) 设备组中删除一个节点

如何从设备组中删除节点 (Veritas Volume Manager(Veritas 卷管理器))

使用 cldevicegroup 命令从原始磁盘设备组中删除一个节点

如何从原始磁盘设备组删除节点

使用 clsetup 命令生成 cldevicegroup 来更改设备组的属性

如何更改设备组属性

使用 cldevicegroup show 命令显示设备组及其属性

如何列出设备组配置

使用 clsetup 生成 cldevicegroup 来更改设备组所需的辅助节点数量

如何设置设备组所需的辅助节点数

使用 cldevicegroup switch 命令切换设备组的主节点

如何切换设备组的主节点

使用 metasetvxdg 命令将设备组置于维护状态

如何将设备组置于维护状态

Procedure如何更新全局设备名称空间

当添加新的全局设备时,请通过运行 cldevice populate 命令手动更新全局设备名称空间。


注 –

如果运行 cldevice populate 命令的节点当前不是群集成员,则该命令没有任何效果。如果未挂载 /global/.devices/node@ nodeID 文件系统,则该命令也没有任何效果。


  1. 在群集的任意一个节点上,成为超级用户或使用一个可提供 solaris.cluster.modify RBAC 授权的角色。

  2. 在群集的每个节点上,运行 devfsadm(1M) 命令。

    您可以同时在群集的所有节点上运行此命令。

  3. 重新配置名称空间。


    # cldevice populate
    
  4. 在每个节点上,先检验 cldevice populate 命令是否已完成,然后再尝试创建磁盘集。

    cldevice 命令会在所有节点上远程调用其自身,即使该命令仅从一个节点上运行也是如此。要确定 cldevice populate 命令是否已完成处理过程,请在群集的每个节点上运行以下命令。


    # ps -ef | grep scgdevs
    

示例 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 scgdevs

迁移全局设备名称空间

可在回送文件接口 (lofi) 设备上创建名称空间,而不是在专用分区上创建全局设备名称空间。如果在预先安装了 Solaris 10 OS 的系统上安装 Sun Cluster 软件,此功能很实用。


注 –

支持根文件系统的 ZFS,但有一个重要的例外。如果使用引导磁盘的专用分区作为全局设备文件系统,必须仅使用 UFS 作为其文件系统。全局设备名称空间要求在 UFS 文件系统上运行代理文件系统 (PxFS)。但全局设备名称空间的 UFS 文件系统可与根 (/) 文件系统及其他根文件系统(例如,/var/home)的 ZFS 文件系统共存。另外,如果改为使用 lofi 设备来托管全局设备名称空间,则不会限制对根文件系统的 ZFS 的使用。


以下程序介绍如何在专用分区与 lofi 设备之间移动现有全局设备名称空间:

Procedure如何将全局设备名称空间从专用分区迁移到 lofi 设备

  1. 在要更改其名称空间位置的全局群集投票节点上成为超级用户。

  2. 确保该节点上不存在名为 /.globaldevices 的文件。如果存在该文件,请将其删除。

  3. 创建 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
    
  4. /etc/vfstab 文件中,注释掉全局设备名称空间条目。该条目具有以 /global/.devices/node@nodeID 开头的挂载路径。

  5. 卸载全局设备分区 /global/.devices/node@nodeID

  6. 禁用然后重新启用 globaldevicesscmountdev SMF 服务。


    # svcadm disable globaldevices# svcadm disable scmountdev# \
    svcadm enable scmountdev# svcadm enable globaldevices
    

    现已在 /.globaldevices 中创建 lofi 设备并挂载为全局设备文件系统。

  7. 如果要将其他节点的全局设备名称空间从某一分区迁移到 lofi 设备,重复这些步骤即可。

  8. 从一个节点填充全局设备名称空间。


    # /usr/cluster/bin/cldevice populate
    

    请先在每个节点上检验命令是否已完成处理,然后再对群集执行其他操作。


    # ps -ef \ grep scgdevs
    

    全局设备名称空间现已驻留在 lofi 设备上。

Procedure如何将全局设备名称空间从 lofi 设备迁移到专用分区

  1. 在要更改其名称空间位置的全局群集投票节点上成为超级用户。

  2. 在节点的本地磁盘上,创建符合以下要求的新分区:

    • 大小至少为 512M

    • 使用 UFS 文件系统

  3. /etc/vfstab 文件中为新分区添加一个条目,使其挂载为全局设备文件系统。

    • 确定当前节点的节点 ID。


      # /usr/sbin/clinfo -nnode ID
      
    • 使用以下格式在 /etc/vfstab 文件中创建新条目:


      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

  4. 卸载全局设备分区 /global/.devices/node@ nodeID

  5. 删除与 /.globaldevices 文件相关联的 lofi 设备。


    # lofiadm -d /.globaldevices
    
  6. 删除 /.globaldevices 文件。


    # rm /.globaldevices
    
  7. 禁用然后重新启用 globaldevicesscmountdev SMF 服务。


    # svcadm disable globaldevices# svcadm disable scmountdev# \
    svcadm enable scmountdev# svcadm enable globaldevices
    

    该分区现已挂载为全局设备名称空间文件系统。

  8. 如果要将其他节点的全局设备名称空间从 lofi 设备迁移到某一分区,重复这些步骤即可。

  9. 从群集的一个节点上,运行 cldevice populate 命令填充全局设备名称空间。


    # /usr/cluster/bin/cldevice populate
    

    在对任意节点执行其他操作之前,请确保群集所有节点均已完成此过程。


    # ps -ef | grep scgdevs
    

    全局设备名称空间现已驻留在专用分区上。

添加并注册设备组

您可以为 Solaris Volume Manager、ZFS、Veritas Volume Manager 或原始磁盘添加并注册设备组。

Procedure如何添加和注册设备组 (Solaris Volume Manager)

使用 metaset 命令可创建 Solaris Volume Manager 磁盘组并将磁盘组注册为 Sun Cluster 设备组。注册磁盘集时,系统会将您指定给磁盘集的名称自动指定给设备组。

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B


注意 – 注意 –

您创建的 Sun Cluster 设备组(Solaris Volume Manager、Veritas Volume Manager 或原始磁盘)必须与所复制的设备组同名。


  1. 在与磁盘(您要在这些磁盘上创建磁盘集)相连的节点中的一个节点上,成为超级用户或使用一个可提供 solaris.cluster.modify RBAC 授权的角色。

  2. 仅限 SPARC:Solaris 9:计算配置所需的 Solstice DiskSuite 元设备或 Solaris Volume Manager 卷的名称的数目,并修改每个节点上的 /kernel/drv/md.conf 文件。如果运行的是 Solaris 10,则无需执行此步骤。

    请参见《Sun Cluster 软件安装指南(适用于 Solaris OS)》中的“如何设置元设备或卷名称以及磁盘集的数目”。

  3. 添加 Solaris Volume Manager 磁盘集并将其注册为 Sun Cluster 设备组。要创建多属主磁盘组,请使用 –M 选项。


    # metaset -s diskset -a -M -h nodelist
    
    -sdiskset

    指定要创建的磁盘集。

    -a -h nodelist

    添加一组可以主控磁盘集的节点。

    -M

    将磁盘组指定为多属主。


    注 –

    如果运行 metaset 命令在群集上建立 Solstice DiskSuite/Solaris Volume Manager 设备组,则默认情况下,无论该设备组中包含多少个节点,都会生成一个辅助节点。创建了设备组之后,您可以使用 clsetup 实用程序更改所需辅助节点数。有关磁盘故障转移的更多信息,请参阅如何设置设备组所需的辅助节点数


  4. 如果正在配置一个复制设备组,请为设备组设置复制属性。


    # cldevicegroup sync devicegroup
    
  5. 检验是否已添加设备组。

    设备组名称与使用 metaset 命令指定的磁盘集名称相符。


    # cldevicegroup list
    
  6. 列出 DID 映射。


    # cldevice show | grep Device
    
    • 选择由将要控制或可能要控制磁盘集的群集节点共享的驱动器。

    • 向磁盘集添加驱动器时,请使用格式为 /dev/did/rdsk/d N 的完整 DID 设备名称。

    在下面的示例中,DID 设备 /dev/did/rdsk/d3 的条目表明 phys-schost-1phys-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
    …
  7. 将驱动器添加到磁盘集。

    使用完整的 DID 路径名称。


    # metaset -s setname -a /dev/did/rdsk/dN
    
    -s setname

    指定磁盘集的名称,该名称与设备组名称相同。

    -a

    给磁盘集添加驱动器。


    注 –

    在向磁盘集添加驱动器时,请不要使用低级别的设备名称 ( cNtX dY)。因为低级别设备名称是本地名称,并且在群集中不是唯一的,使用该名称可能使元集无法切换。


  8. 检验磁盘集和驱动器的状态。


    # 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

Procedure如何添加并注册设备组(原始磁盘)

除其他卷管理器以外,Sun Cluster 软件还支持使用原始磁盘设备组。对 SunCluster 进行初始配置时,该软件会为群集中的每个原始设备自动配置设备组。请使用以下过程重新配置这些自动创建的设备组,以便与 Sun Cluster 软件配合使用。

基于以下原因新建原始磁盘类型的设备组:


注意 – 注意 –

如果要在复制设备上创建设备组,则创建的设备组(Solaris Volume Manager、Veritas Volume Manager 或原始磁盘)必须与复制设备组同名。


  1. 识别要使用的设备,并取消配置为其预定义的设备组。

    使用以下命令可删除为 d7d8 预定义的设备组。


    paris-1# cldevicegroup disable dsk/d7 dsk/d8
    paris-1# cldevicegroup offline dsk/d7 dsk/d8
    paris-1# cldevicegroup delete dsk/d7 dsk/d8
    
  2. 创建包含所需设备的新原始磁盘设备组。

    使用以下命令可创建一个名为 rawdg 且包含 d7d8 的全局设备组。


    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
    

Procedure如何添加并注册复制设备组 (ZFS)

要复制 ZFS,必须创建已命名的设备组并列出属于该存储池的磁盘。一个设备一次只能属于一个设备组,因此,如果已经存在包含该设备的 Sun Cluster 设备组,则必须将该组删除后才能将该设备添加到新的 ZFS 设备组。

您创建的 Sun Cluster 设备组(Solaris Volume Manager、Veritas Volume Manager 或原始磁盘)必须与所复制的设备组同名。


注意 – 注意 –

即将完全支持 ZFS 使用第三方数据复制技术。有关 ZFS 支持的更新,请参见最新的 Sun Cluster 发行说明。


  1. 删除与存储池中设备相对应的默认设备组。

    例如,如果存储池 mypool 含有两个设备 /dev/did/dsk/d2/dev/did/dsk/d13,则必须删除 d2 d13 这两个默认设备组。


    # cldevicegroup offline dsk/d2 dsk/d13
    # cldevicegroup remove dsk/d2 dsk/d13
    
  2. 创建命名的设备组,使其 DID 与步骤 1 中删除的设备组相对应。


    # cldevicegroup create -d d2,d13 -t rawdisk mypool
    

    此操作创建名为 mypool 的设备组(与存储池同名),它管理原始设备 /dev/did/dsk/d2 和 /dev/did/dsk/d13。

  3. 创建包含这些设备的存储池。


    # zpool create mypool mirror /dev/did/dsk/d2 /dev/did/dsk/d13
    
  4. 创建用于管理复制设备(设备组中)迁移的资源组,其节点列表中只包含全局区域。


    # clrg create -n pnode1,pnode2 migrate_truecopydg-rg
    
  5. 在步骤 4 所创建的资源组中创建 hasp-rs 资源,将 globaldevicepaths 属性设置为原始磁盘类型的设备组。您已在步骤 2 中创建了该设备组。


    # clrs create -t HAStoragePlus -x globaldevicepaths=mypool -g \
    migrate_truecopydg-rg hasp2migrate_mypool
    
  6. 如果应用程序资源组要在本地区域中运行,则创建其节点列表中包含相应本地区域的新资源组。步骤 4 所创建的资源组的节点列表中必须包含与本地区域对应的全局区域。将此资源组的 rg_affinities 属性的 +++ 值设置为在步骤 4 中创建的资源组。


    # clrg create -n pnode1:zone-1,pnode2:zone-2 -p \
    RG_affinities=+++migrate_truecopydg-rg sybase-rg
    
  7. 在步骤 4 或 6 所创建的资源组中,为步骤 3 所创建的存储池创建 HAStoragePlus 资源 (hasp-rs)。将 resource_dependencies 属性设置为在步骤 5 中创建的 hasp-rs 资源。


    # clrs create -g sybase-rg -t HAStoragePlus -p zpools=mypool \
    -p resource_dependencies=hasp2migrate_mypool \
    -p ZpoolsSearchDir=/dev/did/dsk hasp2import_mypool
    
  8. 需要设备组名称时,请使用这一新资源组名称。

Procedure如何在初始化磁盘时创建新磁盘组 (Veritas Volume Manager(Veritas 卷管理器))


注 –

此过程仅用于初始化磁盘。如果要封装磁盘,请执行如何在封装磁盘时创建新磁盘组 (Veritas Volume Manager(Veritas 卷管理器))中所述的过程。


添加 VxVM 磁盘组后,您需要注册该设备组。

如果使用 VxVM 为 Oracle RAC 建立共享磁盘组,则使用《Veritas Volume Manager Administrator's Reference Guide》中所述的 VxVM 群集功能。

  1. 在组成所添加磁盘组的磁盘物理连接的任何群集节点上成为超级用户。

  2. 创建 VxVM 磁盘组和卷。

    使用您的首选方法创建磁盘组和卷。


    注 –

    如果安装的是镜像卷,则可以用脏区记录 (DRL) 缩短出现节点故障时的卷恢复时间。但是,使用 DRL 可能减少 I/O 吞吐量。


    有关完成此步操作的过程,请参阅 Veritas Volume Manager(Veritas 卷管理器) 文档。

  3. 将 VxVM 磁盘组注册为 Sun Cluster 设备组。

    请参见如何将磁盘组注册为设备组 (Veritas Volume Manager(Veritas 卷管理器))

    不要在群集框架中注册 Oracle RAC 共享磁盘组。

维护设备组

您可针对设备组执行各种管理任务。

如何删除和取消注册设备组 (Solaris Volume Manager)

设备组是已经向 Sun Cluster 注册的 Solaris Volume Manager 磁盘集。要删除一个 Solaris Volume Manager 设备组,请使用 metaclearmetaset 命令。这些命令可删除同名的设备组,并注销磁盘组,使之不再是 Sun Cluster 设备组。

有关删除磁盘集的步骤,请参阅 Solaris Volume Manager文档。

Procedure如何将节点从所有设备组中删除

使用此过程可将一个群集节点从所有在其潜在主节点列表中列出该节点的设备组中删除。

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 在要删除的作为所有设备组的潜在主节点的节点上,成为超级用户或使用一个可提供 solaris.cluster.modify RBAC 授权的角色。

  2. 确定成员是要删除的节点的一个或多个设备组。

    在每个设备组的 Device group node list 中查找该节点名称。


    # cldevicegroup list -v
    
  3. 如果步骤 2 中标识的设备组中有任何 SVM 类型的设备组,请对每个该类型的设备组执行如何将节点从设备组中删除 (Solaris Volume Manager)中的步骤。

  4. 如果步骤 2 中标识的设备组中有任何 VxVM 类型的设备组,请对每个该类型的设备组执行如何从设备组中删除节点 (Veritas Volume Manager(Veritas 卷管理器))中的步骤。

  5. 确定成员是要删除的节点的原始设备磁盘组。


    # cldevicegroup list -v
    
  6. 如果步骤 5 中所列设备组中有任何 DiskLocal_Disk 类型的设备组,请对所有这些设备组执行如何从原始磁盘设备组删除节点中的步骤。

  7. 检验是否已将该节点从所有设备组的潜在主节点列表中删除。

    如果该节点不再被列为任何设备组的潜在主节点,则以下命令不返回任何内容。


    # cldevicegroup list -v nodename
    

Procedure如何将节点从设备组中删除 (Solaris Volume Manager)

使用此过程可将一个群集节点从 Solaris Volume Manager 设备组的潜在主节点列表中删除。对每个要从中删除该节点的设备组执行 metaset 命令。


注意 – 注意 –

如果其他节点是活动群集成员并且至少其中的一个节点拥有磁盘集,则请勿在群集之外引导的群集节点上运行 metaset —s setname —f -t


phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 检验该节点是否仍是设备组的成员,且该设备组是否是 Solaris Volume Manager 设备组。

    设备组类型 SDS/SVM 指示 Solaris Volume Manager 设备组。


    phys-schost-1% cldevicegroup show devicegroup
    
  2. 确定哪个节点是设备组当前的主节点。


    # cluster status -t devicegroup
    
  3. 成为当前拥有要修改的设备组的节点上的超级用户。

  4. 将该节点的主机名从设备组中删除。


    # metaset -s setname -d -h nodelist
    
    -ssetname

    指定设备组的名称。

    -d

    从设备组中删除以 -h 标识的节点。

    -h nodelist

    指定将要删除的一个或多个节点的节点名称。


    注 –

    完成更新可能需要几分钟。


    如果该命令失败,请在命令中增加 -f(强制)选项。


    # metaset -s setname -d -f -h nodelist
    
  5. 对每个将要从中删除作为潜在主节点的节点的设备组执行步骤 4

  6. 检验该节点是否已从设备组中删除。

    设备组名称与使用 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

Procedure如何在群集中创建三个以上的磁盘集

如果正在运行 Solaris 9 并打算在群集中创建三个以上的磁盘集,请在创建磁盘集前先执行以下步骤。如果您运行的是 Solaris 10,则无需执行此过程。如果您是首次安装磁盘集,或者要向完全配置的群集中添加更多磁盘集,请执行下列步骤:

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 确保 md_nsets 变量的值足够高。该值应当与所要在群集中创建的磁盘集总数相适应。

    1. 在群集的任何节点上,检查 /kernel/drv/md.conf 文件中的 md_nsets 变量的值。

    2. 如果群集中磁盘集的数目大于 md_nsets 的现有值减一,请在每个节点上增加 md_nsets 的值。

      允许的最大磁盘集数是 md_nsets 的值减一。md_nsets 可能的最大值是 32。

    3. 确保 /kernel/drv/md.conf 文件在群集的每个节点上都完全相同。


      注意 – 注意 –

      不按本指南操作可能导致严重的 Solaris Volume Manager 错误并且可能丢失数据。


    4. 从一个节点,关闭群集。


      # cluster shutdown -g0 -y
      
    5. 重新引导群集中的每个节点。

      • 在基于 SPARC 的系统上,运行以下命令。


        ok boot
        
      • 在基于 x86 的系统上,运行以下命令。

        显示 GRUB 菜单后,选择相应的 Solaris 条目,然后按 Enter 键。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.
  2. 在群集的每个节点上,运行 devfsadm(1M) 命令。

    您可以同时在群集的所有节点上运行此命令。

  3. 从群集的一个节点上运行 cldevice populate 命令。

  4. 在每个节点上,先检验 cldevice populate 命令是否已完成,然后再尝试创建磁盘集。

    cldevice 命令会在所有节点上远程调用其自身,即使该命令仅从一个节点上运行也是如此。要确定 cldevice populate 命令是否已完成处理过程,请在群集的每个节点上运行以下命令。


    # ps -ef | grep scgdevs
    

Procedure如何在封装磁盘时创建新磁盘组 (Veritas Volume Manager(Veritas 卷管理器))


注 –

此过程仅用于封装磁盘。如果要初始化磁盘,请执行如何在初始化磁盘时创建新磁盘组 (Veritas Volume Manager(Veritas 卷管理器))中所述的过程。


您可以将非根磁盘转换成 Sun Cluster 设备组,方法是将磁盘封装为 VxVM 磁盘组,然后再将这些磁盘组注册为 Sun Cluster 设备组。

只有在最初创建 VxVM 磁盘组时,才支持磁盘封装。创建了 VxVM 磁盘组并将其注册为 Sun Cluster 设备组之后,只有能进行初始化的磁盘才应添加到磁盘组中。

如果使用 VxVM 为 Oracle RAC 建立共享磁盘组,则使用《Veritas Volume Manager Administrator's Reference Guide》中所述的 VxVM 群集功能。

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 在群集的任意一个节点上,成为超级用户或使用一个可提供 solaris.cluster.modify RBAC 授权的角色。

  2. 如果所要封装的磁盘在 /etc/vfstab 文件中有文件系统条目,请确保将 mount at boot 选项设置为 no

    在封装了磁盘并将其注册为 Sun Cluster 设备组之后,再设置回 yes

  3. 封装磁盘。

    使用 vxdiskadm 菜单或图形用户界面来封装磁盘。VxVM 要求在磁盘的开始或尾部有两个可用分区和未分配的柱面。第 2 片还必须设置到整个磁盘。有关详细信息,请参见 vxdiskadm 手册页。

  4. 关闭并重新启动节点。

    clnode evacuate 命令可将指定节点上的所有资源组和设备组(包括全局群集中的所有非投票节点)切换到下一个首选节点。使用 shutdown 命令可以关闭并重新启动节点。


    # clnode evacuate  node[,...]
    # shutdown -g0 -y -i6
    
  5. 如有必要,可将所有的资源组和设备组切换回原节点。

    如果资源组和设备组最初配置为故障恢复回主节点,则无需执行此步骤。


    # cldevicegroup switch -n node devicegroup 
    # clresourcegroup switch -z zone -n node resourcegroup 
    
    node

    节点名称。

    zone

    可控制资源组的非投票节点 node 的名称。只有在创建资源组时指定了非投票节点的情况下,才能指定 zone

  6. 将 VxVM 磁盘组注册为 Sun Cluster 设备组。

    请参见如何将磁盘组注册为设备组 (Veritas Volume Manager(Veritas 卷管理器))

    不要在群集框架中注册 Oracle RAC 共享磁盘组。

  7. 如果您在步骤 2 中将 mount at boot 选项设置为 no ,请将其设置回 yes

Procedure如何向现有设备组添加新卷 (Veritas Volume Manager(Veritas 卷管理器))

当您向现有 VxVM 设备组中添加一个新卷时,请从联机设备组的主节点执行此过程。


注 –

添加完卷后,您需要通过执行如何注册磁盘组的配置更改 (Veritas Volume Manager(Veritas 卷管理器))中的过程来注册配置更改。


phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 在群集的任一节点上,成为超级用户或使用一个可提供 solaris.cluster.readsolaris.cluster.administer RBAC 授权的角色。

  2. 确定要向其中添加新卷的设备组的主节点。


    # cldevicegroup status
    
  3. 如果设备组脱机,请将其联机。


    # cldevicegroup switch -n nodename devicegroup
    
    nodename

    指定要将设备组切换到的节点的名称。该节点将成为新的主节点。

    devicegroup

    指定要切换的设备组。

  4. 从主节点(即当前控制着设备组的节点)上创建磁盘组中的 VxVM 卷。

    有关用于创建 Veritas Volume Manager(Veritas 卷管理器) 卷的过程,请参阅 VxVM 文档。

  5. 同步 VxVM 磁盘组的更改,以更新全局名称空间。

    # cldevicegroup sync

    如何注册磁盘组的配置更改 (Veritas Volume Manager(Veritas 卷管理器))

Procedure如何将现有磁盘组转换为设备组 (Veritas Volume Manager(Veritas 卷管理器))

您可以通过将现有的 VxVM 磁盘组导入当前节点,然后再将其注册为 Sun Cluster 设备组,将该磁盘组转换为 Sun Cluster 设备组。

  1. 成为群集中任一个节点的超级用户。

  2. 将 VxVM 磁盘组导入当前节点。


    # vxdg import diskgroup
    
  3. 将 VxVM 磁盘组注册为 Sun Cluster 设备组。

    请参见如何将磁盘组注册为设备组 (Veritas Volume Manager(Veritas 卷管理器))

Procedure如何给设备组分配新的从设备号 (Veritas Volume Manager(Veritas 卷管理器))

如果设备组注册因为从设备号与其他磁盘组冲突而失败,您必须为新磁盘组分配一个新的未使用的从设备号。分配了新的从设备号后,请重新运行该过程,将磁盘组注册为 Sun Cluster 设备组。

  1. 成为群集中任一个节点的超级用户。

  2. 确定正在使用的次编号。


    # ls -l /global/.devices/node@nodeid/dev/vx/dsk/*
    
  3. 选择当前尚未使用的、1000 的其他倍数作为该新磁盘组的基本次编号。

  4. 为磁盘组指定新的次编号。


    # vxdg reminor diskgroup base-minor-number
    
  5. 将 VxVM 磁盘组注册为 Sun Cluster 设备组。

    请参见如何将磁盘组注册为设备组 (Veritas Volume Manager(Veritas 卷管理器))


示例 5–24 How to Assign a New Minor Number to a Device Group

本示例使用从设备号 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

Procedure如何将磁盘组注册为设备组 (Veritas Volume Manager(Veritas 卷管理器))

此过程使用 clsetup 实用程序将关联的 VxVM 磁盘组注册为 Sun Cluster 设备组。


注 –

一旦在群集中注册了设备组,请勿使用 VxVM 命令导入或导出 VxVM 磁盘组。如果对 VxVM 磁盘组或卷进行了更改,请按照如何注册磁盘组的配置更改 (Veritas Volume Manager(Veritas 卷管理器))中的过程对设备组的配置更改进行注册。该过程可确保全局名称空间处于正确的状态。


phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

开始之前

在注册 VxVM 设备组之前,请确保具备以下先决条件:

此外,定义首选顺序时,您还需指定,如果第一首选节点发生故障但稍后又回到群集中,是否应将设备组重新切换回该节点。

有关节点首选项和故障恢复选项的更多信息,请参见cldevicegroup(1CL)

非主群集节点(备用节点)将根据节点首选顺序向辅助节点过渡。通常,设备组的默认辅助节点数为 1。该默认设置可使正常运行期间多个辅助节点的主检查点操作对性能的影响降至最小。例如,在包含四个节点的群集中,默认情况下,系统配置一个主节点、一个辅助节点和两个备用节点。另请参见如何设置设备组所需的辅助节点数

  1. 在群集的任意一个节点上,成为超级用户或使用一个可提供 solaris.cluster.modify RBAC 授权的角色。

  2. 启动 clsetup 实用程序。


    # clsetup
    

    显示“Main Menu”。

  3. 要使用 VxVM 设备组,请键入与设备组和卷的选项相对应的编号。

    这时将显示“Device Groups”菜单。

  4. 要注册 VxVM 设备组,请键入与将 VxVM 磁盘组注册为设备组的选项相对应的编号。

    按照说明进行操作,并键入要注册为 Sun Cluster 设备组的 VxVM 磁盘组的名称。

    如果该设备组是通过基于存储的复制过程复制的,则此名称必须与复制组的名称相符。

    如果您使用 VxVM 为 Oracle Parallel Server/Oracle RAC 设置共享磁盘组,请不要在群集框架中注册该共享磁盘组。请使用 VxVM 的群集功能,如《Veritas Volume Manager Administrator's Reference Guide》中所述。

  5. 如果在尝试注册设备组时遇到以下错误,请重新为该设备组分配从设备号。


    scconf: Failed to add device group - in use

    要重新为设备组分配从设备号,请按照如何给设备组分配新的从设备号 (Veritas Volume Manager(Veritas 卷管理器))中的过程操作。此过程使您能够分配一个新的、不与现有设备组所使用的从设备号冲突的从设备号。

  6. 如果正在配置一个复制设备组,请为设备组设置复制属性。


    # cldevicegroup sync devicegroup
    
  7. 检验设备组是否已注册并处于联机状态。

    如果正确注册了设备组,则使用以下命令时将显示新设备组的信息。


    # cldevicegroup status devicegroup
    

    注 –

    如果对已在群集中注册的 VxVM 磁盘组或卷的任何配置信息进行了更改,必须使用 clsetup 对设备组进行同步。这样的配置更改包括添加或删除卷,以及更改现有卷的组、属主或许可。配置更改后的注册将确保全局名称空间处于正确的状态。请参见如何更新全局设备名称空间



示例 5–25 注册 Veritas Volume Manager(Veritas 卷管理器) 设备组

以下示例显示了当 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(Veritas 卷管理器))

Procedure如何注册磁盘组的配置更改 (Veritas Volume Manager(Veritas 卷管理器))

更改 VxVM 磁盘组或卷的任何配置信息后,都需要注册相应 Sun Cluster 设备组的配置更改。通过注册可确保全局名称空间处于正确的状态。

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 在群集的任一节点上,成为超级用户或使用一个可提供 solaris.cluster.modify RBAC 授权的角色。

  2. 启动 clsetup 实用程序。


    # clsetup
    

    显示“Main Menu”。

  3. 要使用 VxVM 设备组,请键入与设备组和卷的选项相对应的编号。

    这时将显示“Device Groups”菜单。

  4. 要注册配置更改,请键入与同步 VxVM 设备组的卷信息的选项相对应的编号。

    按照说明进行操作,并键入已更改了配置的 VxVM 磁盘组的名称。


示例 5–26 注册 Veritas Volume Manager(Veritas 卷管理器) 磁盘组配置更改

以下示例显示了当 clsetup 注册一个已更改的 VxVM 设备组 (dg1) 时所生成的 cldevicegroup 命令。此示例假定 VxVM 磁盘组和卷为以前创建的磁盘组和卷。


# clsetup
 
cldevicegroup sync dg1

Procedure如何将本地磁盘组转换为设备组 (VxVM)

执行此过程可将本地 VxVM 磁盘组更改为可在全局范围访问的 VxVM 设备组。

  1. 成为群集中一个节点上的超级用户。

  2. 启动 clsetup 实用程序


    # clsetup
    
  3. 取消对 localonly 属性的设置。

    1. 选择菜单项 "Device groups and volumes"。

    2. 选择菜单项 "Reset a local VxVM disk group to a VxVM device group"。

    3. 按照说明来取消对 localonly 属性的设置。

  4. 指定可对磁盘组进行控制的节点。

    1. 返回 clsetup 实用程序的主菜单。

    2. 选择菜单项 "Device groups and volumes"。

    3. 选择菜单项 "Register a diskgroup"。

    4. 按照说明指定可对磁盘组进行控制的节点。

    5. 完成后,退出 clsetup 实用程序。

  5. 检验是否已配置设备组。


    phys-schost# cldevicegroup show
    

Procedure如何将设备组转换为本地磁盘组 (VxVM)

执行此过程可将 VxVM 设备组更改为不受 Sun Cluster 软件管理的本地 VxVM 磁盘组。本地磁盘组可在节点列表中包含多个节点,但它在某一时刻只受一个节点控制。

  1. 成为群集中一个节点上的超级用户。

  2. 使设备组脱机。


    phys-schost# cldevicegroup offline devicegroup
    
  3. 取消注册设备组。

    1. 启动 clsetup 实用程序。


      phys-schost# clsetup
      
    2. 选择菜单项 "Device groups and volumes"。

    3. 选择菜单项 "Unregister a VxVM disk group"。

    4. 按照说明指定要从 Sun Cluster 软件中取消注册的 VxVM 磁盘组。

    5. 退出 clsetup 实用程序。

  4. 确认该磁盘组不再向 Sun Cluster 软件注册。


    phys-schost# cldevicegroup status
    

    命令输出中不应再显示已取消注册的设备组。

  5. 导入磁盘组。


    phys-schost# vxdg import diskgroup
    
  6. 设置磁盘组的 localonly 属性。

    1. 启动 clsetup 实用程序。


      phys-schost# clsetup
      
    2. 选择菜单项 "Device groups and volumes"。

    3. 选择菜单项 "Set a VxVM disk group as a local disk group"。

    4. 按照说明设置 localonly 属性,并指定要独自控制磁盘组的单个节点。

    5. 完成后,退出 clsetup 实用程序。

  7. 检验磁盘组是否已成功配置为本地磁盘组。


    phys-schost# vxdg list diskgroup
    

Procedure如何从设备组中删除卷 (Veritas Volume Manager(Veritas 卷管理器))


注 –

从设备组中删除卷后,您必须执行如何注册磁盘组的配置更改 (Veritas Volume Manager(Veritas 卷管理器))中的过程对设备组的配置更改进行注册。


phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 在群集的任一节点上,成为超级用户或使用一个可提供 solaris.cluster.readsolaris.cluster.modify RBAC 授权的角色。

  2. 确定设备组的主节点和状态。


    # cldevicegroup status devicegroup
    
  3. 如果设备组处于脱机状态,请使其联机。


    # cldevicegroup online devicegroup
    
  4. 从主节点(即当前控制设备组的节点)上删除磁盘组中的 VxVM 卷。


    # vxedit -g diskgroup -rf rm volume
    
    -gdiskgroup

    指定包含该卷的 VxVM 磁盘组。

    -rf rm volume

    删除指定的卷。-r 选项使操作具有递归性。-f 选项是删除已启用的卷所必需的。

  5. 使用 clsetup 实用程序注册设备组的配置更改,从而更新全局名称空间。

    请参见如何注册磁盘组的配置更改 (Veritas Volume Manager(Veritas 卷管理器))

Procedure如何删除和取消注册设备组 (Veritas Volume Manager(Veritas 卷管理器))

删除 Sun Cluster 设备组会使相应的 VxVM 磁盘组被导出,而不是被销毁。但是,除非重新注册,否则,即使 VxVM 磁盘组依然存在,也无法在群集中使用。

此过程使用 clsetup 实用程序删除 VxVM 磁盘组,并取消其作为 Sun Cluster 设备组的注册。

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 在群集的任意一个节点上,成为超级用户或使用一个可提供 solaris.cluster.modify RBAC 授权的角色。

  2. 使设备组脱机。


    # cldevicegroup offline devicegroup
    
  3. 启动 clsetup 实用程序。


    # clsetup
    

    显示“Main Menu”。

  4. 要使用 VxVM 设备组,请键入与设备组和卷的选项相对应的编号。

    这时将显示“Device Groups”菜单。

  5. 要取消注册 VxVM 磁盘组,请键入与取消注册 VxVM 设备组的选项相对应的编号。

    按照说明进行操作,并键入要取消注册的 VxVM 磁盘组的名称。


示例 5–27 删除并取消注册 Veritas Volume Manager(Veritas 卷管理器) 设备组

以下示例显示了脱机的 VxVM 设备组 dg1,以及当 clsetup 删除并取消注册设备组时所生成的 cldevicegroup 命令。


# cldevicegroup offline dg1
# clsetup

   cldevicegroup delete dg1

Procedure如何向设备组添加节点 (Veritas Volume Manager(Veritas 卷管理器))

此过程使用 clsetup 实用程序向设备组中添加一个节点。

向 VxVM 设备组添加节点的先决条件如下:

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 在群集的任一节点上,成为超级用户或使用一个可提供 solaris.cluster.readsolaris.cluster.modify RBAC 授权的角色。

  2. 启动 clsetup 实用程序。


    # clsetup
    

    显示“Main Menu”。

  3. 要使用 VxVM 设备组,请键入与设备组和卷的选项相对应的编号。

    这时将显示“Device Groups”菜单。

  4. 要向 VxVM 设备组添加节点,请键入与向 VxVM 设备组添加节点的选项相对应的编号。

    按照说明进行操作,并键入设备组和节点的名称。

  5. 检验是否已添加节点。

    通过以下命令查看所显示的新磁盘的设备组信息。


    # cldevicegroup show devicegroup 
    

示例 5–28 向 Veritas Volume Manager(Veritas 卷管理器) 设备组添加节点

以下示例显示了当 clsetup 向 VxVM 设备组 (dg1) 添加节点 (phys-schost-3) 时所生成的 scconf 命令,以及检验步骤。


# 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

Procedure如何从设备组中删除节点 (Veritas Volume Manager(Veritas 卷管理器))

使用以下过程可从 Veritas Volume Manager(Veritas 卷管理器) (VxVM) 设备组(磁盘组)的潜在主节点列表中删除某个群集节点。

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 检验节点是否仍是组的成员并该组是 VxVM 设备组。

    设备组类型 VxVM 表示 VxVM 设备组。


    phys-schost-1% cldevicegroup show devicegroup
    
  2. 在当前群集成员节点上,成为超级用户或使用一个可提供 solaris.cluster.readsolaris.cluster.modify RBAC 授权的角色。

  3. 启动 clsetup 实用程序。


    # clsetup
    

    显示“Main Menu”。

  4. 要重新配置设备组,请键入与设备组和卷的选项相对应的编号。

  5. 要从 VxVM 设备组中删除节点,请键入与从 VxVM 设备组删除节点的选项相对应的编号。

    根据提示从设备组中删除群集节点。系统将提示您输入有关以下内容的信息:

    • VxVM 设备组

    • 节点名称

  6. 检验节点是否已从 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

Procedure如何从原始磁盘设备组删除节点

使用此过程可将一个群集节点从原始磁盘设备组的潜在主节点列表中删除。

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 在群集的某一节点(要删除的节点除外)上,成为超级用户或使用一个可提供 solaris.cluster.readsolaris.cluster.modify RBAC 授权的角色。

  2. 找出与正在删除的节点相连的设备组,并确定哪些是原始磁盘设备组。


    # cldevicegroup show -n nodename -t rawdisk +
    
  3. 禁用每个 Local_Disk 原始磁盘设备组的 localonly 属性。


    # cldevicegroup set -p localonly=false devicegroup
    

    有关 localonly 属性的更多信息,请参见 cldevicegroup(1CL) 手册页。

  4. 检验是否已禁用与要删除的节点相连的所有原始磁盘设备组的 localonly 属性。

    Disk 设备组类型指示已禁用该原始磁盘设备组的 localonly 属性。


    # cldevicegroup show -n nodename -t rawdisk -v + 
    
  5. 将节点从步骤 2 所找出的所有原始磁盘设备组中删除。

    必须为每一个与正在删除的节点相连接的原始磁盘设备组完成此步骤。


    # 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

Procedure如何更改设备组属性

用于确立设备组的主拥有权的方法基于一个名为 preferenced 的拥有权首选属性的设置。如果未设置该属性,其他无主 (unowned) 设备组的主所有者便是第一个尝试访问该组中磁盘的节点。但是,如果设置了该属性,您必须指定节点尝试建立拥有权时采用的首选顺序。

如果禁用 preferenced 属性,则 failback 属性也将自动被禁用。但是,如果尝试启用或重新启用 preferenced 属性,则可以选择启用或禁用 failback 属性。

如果启用或重新启用了 preferenced 属性,则需要重新排列主拥有权首选列表中节点的顺序。

此过程使用 clsetup 设置或取消设置 Solaris Volume Manager 或 VxVM 设备组的 preferenced 属性和 failback 属性。

开始之前

要执行此过程,您需要知道要更改其属性值的设备组的名称。

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 在群集的任一节点上,成为超级用户或使用一个可提供 solaris.cluster.readsolaris.cluster.modify RBAC 授权的角色。

  2. 启动 clsetup 实用程序。


    # clsetup
    

    显示“Main Menu”。

  3. 要使用设备组,请键入与设备组和卷的选项相对应的编号。

    这时将显示“Device Groups”菜单。

  4. 要更改设备组的关键属性,请键入与更改 VxVM 或 Solaris Volume Manager 设备组的关键属性的选项相对应的编号。

    此时将显示“Change Key Properties Menu”。

  5. 要更改某个设备组属性,请键入与更改 preferenced 和/或 failback 属性的选项相对应的编号。

    按照说明为设备组设置 preferencedfailback 选项。

  6. 检验设备组属性是否已更改。

    通过以下命令查看所显示的磁盘设备组信息。


    # 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

Procedure如何设置设备组所需的辅助节点数

numsecondaries 属性指定设备组中在主节点发生故障后可以控制该设备组的节点数。设备服务默认的辅助节点数为 1。您可将该值设置为一与设备组中有效非主提供节点的数目之间的任意整数。

该设置是平衡群集性能和可用性的一个重要因素。例如,增大所需的辅助节点数可以增大设备组在群集中同时发生多处故障时正常运行的机率。增大辅助节点数通常还会有规律地降低正常运行时的性能。一般情况下,辅助节点数越少,性能越好,但是可用性越差。但是,辅助节点数多并不一定会提高出现问题的文件系统或设备组的可用性。有关更多信息,请参阅《Sun Cluster Concepts Guide for Solaris OS》中的第 3  章 “Key Concepts for System Administrators and Application Developers”

如果更改 numsecondaries 属性,则一旦此更改导致实际辅助节点数与所需辅助节点数不一致,系统将向设备组添加或从中删除辅助节点。

此过程使用 clsetup 实用程序为所有类型的设备组设置 numsecondaries 属性。有关配置任意设备组时的设备组选项的信息,请参阅 cldevicegroup(1CL)

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 在群集的任一节点上,成为超级用户或使用一个可提供 solaris.cluster.readsolaris.cluster.modify RBAC 授权的角色。

  2. 启动 clsetup 实用程序。


    # clsetup
    

    显示“Main Menu”。

  3. 要使用设备组,请选择 "Device groups and volumes" 选项。

    这时将显示“Device Groups”菜单。

  4. 要更改设备组的关键属性,请选择 "Change key properties of a device group" 选项。

    此时将显示“Change Key Properties Menu”。

  5. 要更改所需的辅助节点数,请键入与更改 numsecondaries 属性的选项相对应的编号。

    按照说明进行操作,并键入要为设备组配置的辅助节点数。此时,将执行相应的 cldevicegroup 命令并显示日志,然后返回到前一菜单。

  6. 验证设备组的配置。


    # 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 重新注册设备组。这样的配置更改包括添加或删除卷,以及更改现有卷的组、属主或许可。配置更改后的注册将确保全局名称空间处于正确的状态。请参见如何更新全局设备名称空间


  7. 检验设备组属性是否已更改。

    通过以下命令查看所显示的磁盘设备组信息。


    # 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

Procedure如何列出设备组配置

您无需成为超级用户即可列出配置。但您需要具备 solaris.cluster.read 授权。

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 使用以下列表中的方法之一。

    Sun Cluster Manager GUI

    有关详细信息,请参见 Sun Cluster Manager 联机帮助。

    cldevicegroup show

    使用 cldevicegroup show 可列出群集中所有设备组的配置。

    cldevicegroup show devicegroup

    使用 cldevicegroup show devicegroup 可列出单个设备组的配置。

    cldevicegroup status devicegroup

    使用 cldevicegroup status devicegroup 可确定单个设备组的状态。

    cldevicegroup status +

    使用 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

Procedure如何切换设备组的主节点

此过程还可以用于启动不活动的设备组(使之联机)。

您还可以通过使用 Sun Cluster Manager GUI 使不活动的设备组联机或切换设备组的主节点。有关详细信息,请参见 Sun Cluster Manager 联机帮助。

phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 在群集的任意一个节点上,成为超级用户或使用一个可提供 solaris.cluster.modify RBAC 授权的配置文件。

  2. 使用 cldevicegroup switch 切换设备组的主节点。


    # cldevicegroup switch -n nodename devicegroup 
    
    -n nodename

    指定要切换到的节点的名称。此节点成为新的主节点。

    devicegroup

    指定要切换的设备组。

  3. 检验设备组是否已切换到新的主节点上。

    如果正确注册了设备组,则使用以下命令时将显示新设备组的信息。


    # 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

Procedure如何将设备组置于维护状态

将设备组置于维护状态可在设备组中的某个设备被访问时防止设备组自动联机。完成修复过程时(该过程要求完成修复前停止一切 I/O 活动),应该使设备组处于维护状态。此外,将设备组置于维护状态还可确保当系统在一个节点上修复磁盘集或磁盘组时,另一节点上的设备组不会联机,从而防止数据丢失。


注 –

在将设备组置于维护状态之前,必须停止对其设备的所有访问并且必须卸载所有依赖该设备的文件系统。


phys-schost# 提示符表示全局群集提示符。此操作过程适用于全局群集。

此过程提供了 Sun Cluster 命令的长格式。此外,大多数命令还有简短格式。这些命令除了名称长短的不同以外,其功能都是相同的。有关命令及其简短格式的列表,请参见附录 B

  1. 使设备组处于维护状态。

    1. 如果启用了设备组,请禁用设备组。


      # cldevicegroup disable devicegroup
      
    2. 使设备组脱机。


      # cldevicegroup offline devicegroup
      
  2. 如果所执行的修复过程需要磁盘集或磁盘组的拥有权,请手动导入该磁盘集或磁盘组。

    对于 Solaris Volume Manager:


    # metaset -C take -f -s diskset
    

    注意 – 注意 –

    如果要获取 Solaris Volume Manager 磁盘集的所有权,必须在设备组处于维护状态时使用 metaset -C take 命令。使用 metaset -t 会将设备组联机,这是获取所有权的一部分。如果要导入 VxVM 磁盘组,必须在导入磁盘组时使用 -t 标志。使用 -t 标志可防止重新引导此节点时自动导入该磁盘组。


    对于 Veritas Volume Manager(Veritas 卷管理器):


    # vxdg -t import disk-group-name
    
  3. 完成需要执行的修复过程。

  4. 释放磁盘集的拥有权。


    注意 – 注意 –

    使设备组脱离维护状态之前,必须先释放对该磁盘集或磁盘组的所有权。如果释放拥有权失败,可导致数据丢失。


    • 对于 Solaris Volume Manager:


      # metaset -C release -s diskset
      
    • 对于 Veritas Volume Manager(Veritas 卷管理器):


      # vxdg deport diskgroupname
      
  5. 使设备组联机。


    # 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(Veritas 卷管理器):
  # 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(Veritas 卷管理器):
  # vxdg deport dg1
  
[Bring the device group online.]
# cldevicegroup online dg-schost-1
# cldevicegroup enable dg-schost-1