JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Cluster 系统管理指南     Oracle Solaris Cluster 4.0 (简体中文)
search filter icon
search icon

文档信息

前言

1.  Oracle Solaris Cluster 管理简介

2.  Oracle Solaris Cluster 和 RBAC

3.  关闭和引导群集

4.  数据复制方法

5.  管理全局设备、磁盘路径监视和群集文件系统

管理全局设备和全局名称空间概述

Solaris Volume Manager 的全局设备许可

动态重新配置全局设备

管理群集文件系统概述

群集文件系统限制

管理设备组

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

如何更改用于全局设备名称空间的 lofi 设备的大小

迁移全局设备名称空间

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

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

添加并注册设备组

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

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

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

维护设备组

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

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

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

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

如何更改设备组属性

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

如何列出设备组配置

如何切换设备组的主节点

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

管理存储设备的 SCSI 协议设置

如何显示所有存储设备的默认全局 SCSI 协议设置

如何显示单个存储设备的 SCSI 协议

如何更改所有存储设备的默认全局隔离协议设置

如何更改单个存储设备的隔离协议

管理群集文件系统

如何添加群集文件系统

如何删除群集文件系统

如何检查群集中的全局挂载点

管理磁盘路径监视

如何监视磁盘路径

如何取消监视磁盘路径

如何打印故障磁盘路径

如何解决磁盘路径状态错误

如何从文件监视磁盘路径

如何启用节点在所有受监视的共享磁盘路径均发生故障时自动重新引导的功能

如何禁用节点在所有受监视的共享磁盘路径均发生故障时自动重新引导的功能

6.  管理法定

7.  管理群集互连和公共网络

8.  添加和删除节点

9.  管理群集

10.  对 CPU 使用控制的配置

11.  更新您的软件

12.  备份和恢复群集

A.  示例

索引

管理设备组

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


注意

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



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


表 5-2 任务列表:管理设备组

任务
指导
使用 cldevice populate 命令在不进行重新配置重新引导的情况下更新全局设备名称空间
更改用于全局设备名称空间的 lofi 设备的大小
移动现有全局设备名称空间
使用 metaset 命令添加 Solaris Volume Manager 磁盘集并将其注册为设备组
使用 cldevicegroup 命令添加并注册原始磁盘设备组。
使用 cldevicegroup 命令为 ZFS 添加已命名的设备组
使用 metaset metaclear 命令从配置中删除 Solaris Volume Manager 设备组
使用 cldevicegroupmetasetclsetup 命令从所有设备组中删除一个节点
使用 metaset 命令从 Solaris Volume Manager 设备组中删除一个节点
使用 cldevicegroup 命令从原始磁盘设备组中删除一个节点
使用 clsetup 命令生成 cldevicegroup 来更改设备组的属性
使用 cldevicegroup show 命令显示设备组及其属性
使用 clsetup 生成 cldevicegroup 来更改设备组所需的辅助节点数量
使用 cldevicegroup switch 命令切换设备组的主节点
使用 metasetvxdg 命令将设备组置于维护状态

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

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


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


  1. 在群集的任一节点上,成为超级用户或承担可提供 solaris.cluster.modify RBAC 授权的角色。
  2. 在群集中的每个节点上运行 devfsadm 命令。

    您可以同时在群集的所有节点上运行此命令。有关更多信息,请参见 devfsadm(1M) 手册页。

  3. 重新配置名称空间。
    # cldevice populate
  4. 在每个节点上,先验证 cldevice populate 命令是否已完成,然后再尝试创建磁盘集。

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

    # ps -ef | grep cldevice populate

示例 5-1 更新全局设备名称空间

以下示例显示了成功运行 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 设备的大小

如果在全局群集的一个或多个节点上为全局设备名称空间使用 lofi 设备,请执行此过程更改该设备的大小。

  1. 成为超级用户,或成为使用在要调整全局设备名称空间的 lofi 设备的节点上可提供 solaris.cluster.modify RBAC 授权的角色。
  2. 从节点清除服务,并将节点重新引导至非群集模式。

    这样做可以确保您在执行此过程时不会从该节点为全局设备提供服务。有关说明,请参见如何以非群集模式引导节点

  3. 卸载全局设备文件系统,并分离其 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

    可以放心地忽略此警告。


  4. 删除并重新创建所需大小的 /.globaldevices 文件。

    以下示例显示了如何创建大小为 200 MB 的新 /.globaldevices 文件。

    phys-schost# rm /.globaldevices
    phys-schost# mkfile 200M /.globaldevices
  5. 为全局设备名称空间创建新文件系统。
    phys-schost# lofiadm -a /.globaldevices
    phys-schost# newfs `lofiadm /.globaldevices` < /dev/null
  6. 将节点引导到群集模式下。

    全局设备现在位于新文件系统中。

    phys-schost# reboot
  7. 将希望在节点上运行的任何服务迁移到该节点。

迁移全局设备名称空间

可在回送文件接口 (lofi) 设备上创建名称空间,而不是在专用分区上创建全局设备名称空间。


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


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

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

  1. 在要更改其名称空间位置的全局群集投票节点上成为超级用户。
  2. 从节点清除服务,并将节点重新引导至非群集模式。

    这样做可以确保您在执行此过程时不会从该节点为全局设备提供服务。有关说明,请参见如何以非群集模式引导节点

  3. 确保该节点上不存在名为 /.globaldevices 的文件。

    如果存在该文件,请将其删除。

  4. 创建 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
  5. /etc/vfstab 文件中,注释掉全局设备名称空间条目。

    该条目具有以 /global/.devices/node@nodeID 开头的挂载路径。

  6. 卸载全局设备分区 /global/.devices/node@ nodeID
  7. 禁用然后重新启用 globaldevicesscmountdev SMF 服务。
    # svcadm disable globaldevices
    # svcadm disable scmountdev
    # svcadm enable scmountdev
    # svcadm enable globaldevices

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

  8. 如果要将其他节点的全局设备名称空间从某一分区迁移到 lofi 设备,重复这些步骤即可。
  9. 从一个节点填充全局设备名称空间。
    # /usr/cluster/bin/cldevice populate

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

    # ps -ef | grep cldevice populate

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

  10. 将希望在节点上运行的任何服务迁移到该节点。

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

  1. 在要更改其名称空间位置的全局群集投票节点上成为超级用户。
  2. 从节点清除服务,并将节点重新引导至非群集模式。

    这样做可以确保您在执行此过程时不会从该节点为全局设备提供服务。有关说明,请参见如何以非群集模式引导节点

  3. 在节点的本地磁盘上,创建符合以下要求的新分区:
    • 大小至少为 512M

    • 使用 UFS 文件系统

  4. /etc/vfstab 文件中为新分区添加一个条目,使其挂载为全局设备文件系统。
    • 确定当前节点的节点 ID。
      # /usr/sbin/clinfo -n node- 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

  5. 卸载全局设备分区 /global/.devices/node@ nodeID
  6. 删除与 /.globaldevices 文件相关联的 lofi 设备。
    # lofiadm -d /.globaldevices
  7. 删除 /.globaldevices 文件。
    # rm /.globaldevices
  8. 禁用然后重新启用 globaldevicesscmountdev SMF 服务。
    # svcadm disable globaldevices# svcadm disable scmountdev
    # svcadm enable scmountdev
    # svcadm enable globaldevices

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

  9. 如果要将其他节点的全局设备名称空间从 lofi 设备迁移到某一分区,重复这些步骤即可。
  10. 引导至群集模式,然后填充全局设备名称空间。
    1. 从群集中的一个节点填充全局设备名称空间。
      # /usr/cluster/bin/cldevice populate
    2. 在对任意节点执行其他操作之前,请确保群集所有节点均已完成此过程。
      # ps -ef | grep cldevice populate

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

  11. 将希望在节点上运行的任何服务迁移到该节点。

添加并注册设备组

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

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

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

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

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有短形式。这些命令除了名称长短的不同以外,其功能都是相同的。


注意

注意 - 您创建的 Oracle Solaris Cluster 设备组(Solaris Volume Manager 或原始磁盘)必须与复制的设备组同名。


  1. 在与磁盘(您要在这些磁盘上创建磁盘集)相连的节点中的一个节点上,成为超级用户或承担可提供 solaris.cluster.modify RBAC 授权的角色。
  2. 添加 Solaris Volume Manager 磁盘集并将其注册为 Oracle Solaris Cluster 设备组。

    要创建多所有者磁盘组,请使用 -M 选项。

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

    指定要创建的磁盘集。

    -a -h nodelist

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

    -M

    将磁盘组指定为多所有者的。


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


  3. 如果正在配置一个复制设备组,请为设备组设置复制属性。
    # cldevicegroup sync devicegroup
  4. 检验是否已添加设备组。

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

    # cldevicegroup list
  5. 列出 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
    …
  6. 将驱动器添加到磁盘集。

    使用完整的 DID 路径名称。

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

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

    -a

    给磁盘集添加驱动器。


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


  7. 检验磁盘集和驱动器的状态。
    # metaset -s setname

示例 5-2 添加 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 软件中使用。

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


注意

注意 - 如果要在复制的设备上创建设备组,则您创建的设备组(Solaris 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

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

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

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

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

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

    # cldevicegroup offline dsk/d2 dsk/d13
    # cldevicegroup add dsk/d2 dsk/d13
  2. 创建命名的设备组,使其 DID 与步骤 1 中删除的设备组相对应。
    # cldevicegroup create -n pnode1,pnode2 -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. 将此资源组的 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. 需要设备组名称时,请使用这一新资源组名称。

维护设备组

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

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

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

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

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

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

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

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有短形式。这些命令除了名称长短的不同以外,其功能都是相同的。

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

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

    # cldevicegroup list -v
  3. 如果步骤 2 中标识的设备组中有任何 SVM 类型的设备组,请对每个该类型的设备组执行如何将节点从设备组中删除 (Solaris Volume Manager)中的步骤。
  4. 确定成员是要删除的节点的原始设备磁盘组。
    # cldevicegroup list -v
  5. 如果步骤 4 中所列设备组中有任何 DiskLocal_Disk 类型的设备组,请对所有这些设备组执行如何从原始磁盘设备组删除节点中的步骤。
  6. 检验是否已将该节点从所有设备组的潜在主节点列表中删除。

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

    # cldevicegroup list -v nodename

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

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


注意

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


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

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有短形式。这些命令除了名称长短的不同以外,其功能都是相同的。

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

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

    phys-schost-1% cldevicegroup show devicegroup
  2. 确定哪个节点是设备组当前的主节点。
    # cldevicegroup status 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-3 从设备组中删除一个节点 (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

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

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

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

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有短形式。这些命令除了名称长短的不同以外,其功能都是相同的。

  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-4 从原始设备组中删除节点

本示例说明如何从原始磁盘设备组中删除节点 (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/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 属性,则需要重新排列主拥有权首选列表中节点的顺序。

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

开始之前

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

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

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有短形式。这些命令除了名称长短的不同以外,其功能都是相同的。

  1. 在群集的任一节点上,成为超级用户或承担可提供 solaris.cluster.readsolaris.cluster.modify RBAC 授权的角色。
  2. 启动 clsetup 实用程序。
    # clsetup

    这时将显示主菜单。

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

    这时将显示“设备组”菜单。

  4. 要更改设备组的主要属性,请键入用于更改 Solaris Volume Manager 设备组主要属性的选项对应的编号。

    这时将显示“更改主要属性”菜单。

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

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

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

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

    # cldevicegroup show -v devicegroup 

示例 5-5 更改设备组属性

以下示例显示了当 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 命令的长格式。此外,大多数命令还有短形式。这些命令除了名称长短的不同以外,其功能都是相同的。

  1. 在群集的任一节点上,成为超级用户或承担可提供 solaris.cluster.readsolaris.cluster.modify RBAC 授权的角色。
  2. 启动 clsetup 实用程序。
    # clsetup

    这时将显示主菜单。

  3. 要使用磁盘组,请选择“设备组和卷”菜单项。

    这时将显示“设备组”菜单。

  4. 要更改设备组的主要属性,请选择“更改设备组的主要属性”菜单项。

    这时将显示“更改主要属性”菜单。

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

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

  6. 验证设备组的配置。
    # cldevicegroup show dg-schost-1
    === Device Groups ===                          
    
    Device Group Name:                    dg-schost-1
      Type:                                 Local_Disk 
      failback:                             yes
      Node List:                            phys-schost-1, phys-schost-2 phys-schost-3
      preferenced:                          yes
      numsecondaries:                       1
      diskgroup names:                      dg-schost-1

    注 - 这样的配置更改包括添加或删除卷,以及更改现有卷的组、所有者或权限。配置更改后的注册将确保全局名称空间处于正确的状态。请参见如何更新全局设备名称空间


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

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

    # cldevicegroup show -v devicegroup 

示例 5-6 更改所需的辅助节点数 (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-7 将所需的辅助节点数设置为默认值

以下示例显示如何使用空字符串值配置默认的辅助节点数。设备组将配置为使用该默认值,即使默认值改变。

# 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 命令的长格式。此外,大多数命令还有短形式。这些命令除了名称长短的不同以外,其功能都是相同的。

示例 5-8 列出所有设备组的状态

# 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-9 列出特定设备组的配置

# 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

如何切换设备组的主节点

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

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

此过程提供了 Oracle Solaris Cluster 命令的长格式。此外,大多数命令还有短形式。这些命令除了名称长短的不同以外,其功能都是相同的。

  1. 在群集的任一节点上,成为超级用户或承担可提供 solaris.cluster.modify RBAC 授权的配置文件。
  2. 使用 cldevicegroup switch 切换设备组的主节点。
    # cldevicegroup switch -n nodename devicegroup 
    -n nodename

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

    devicegroup

    指定要切换的设备组。

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

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

    # cldevice status devicegroup

示例 5-10 切换设备组的主节点

以下示例显示了如何切换设备组的主节点以及如何检验此更改。

# 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 命令的长格式。此外,大多数命令还有短形式。这些命令除了名称长短的不同以外,其功能都是相同的。

  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 会将设备组联机,这是获取所有权的一部分。


  3. 完成需要执行的修复过程。
  4. 释放磁盘集的拥有权。

    注意

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


    • 对于 Solaris Volume Manager:

      # metaset -C release -s diskset
  5. 使设备组联机。
    # cldevicegroup online devicegroup
    # cldevicegroup enable devicegroup

示例 5-11 将设备组置于维护状态

本示例说明了如何将设备组 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
  
[Complete all necessary repair procedures.]  
[Release ownership.]
For Solaris Volume Manager:
  # metaset -C release -s dg-schost-1
  
[Bring the device group online.]
# cldevicegroup online dg-schost-1
# cldevicegroup enable dg-schost-1