Sun Cluster 3.0 12/01 系统管理指南

第 3 章 管理全局设备和群集文件系统

本章讲述了管理全局设备和群集文件系统的过程。

以下是本章中包含的过程的列表。

有关本章中相关过程的高级说明,请参阅表 3-2

有关全局设备、全局名称空间、磁盘设备组和群集文件系统的概念性信息,请参阅《Sun Cluster 3.0 12/01 概念》文档。

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

对 Sun Cluster 磁盘设备组的管理取决于群集上所安装的卷管理器。 Solstice DiskSuite "支持群集",因此可使用 Solstice DiskSuite metaset(1M) 命令来添加、注册以及删除磁盘设备组。在 VERITAS Volume Manager (VxVM) 中, 您可以用 VxVM 命令创建磁盘组。 然后,通过 scsetup(1M) 实用程序将磁盘组注册为 Sun Cluster 磁盘设备组。删除 VxVM 磁盘设备组时,使用 scsetup 实用程序和 VxVM 命令。

Sun Cluster 软件自动为群集中的每个磁盘设备和磁带设备各创建一个原始磁盘设备组。但是,这些群集设备组仍处于脱机状态,直到您将它们作为全局设备访问。管理磁盘设备组或卷管理器磁盘组时,您需要在作为组的主节点的群集节点上操作。

通常,您不需要管理全局设备名称空间,因为全局名称空间是在安装时自动设置的,并且在 Solaris 操作环境重配置重新引导时自动更新。 但是,如果需要重新生成或更新全局名称空间,您可以从任何群集节点运行 scgdevs(1M) 命令。 这样做会导致在所有其他群集节点成员上以及将来可能加入群集的节点上更新全局名称空间。

3.1.1 Solstice DiskSuite 的全局设备许可

对全局设备许可所做的更改不会自动传播到 Solstice DiskSuite 和磁盘设备的群集中的所有节点。 如果要更改全局设备的许可,必须手动更改群集中所有设备的许可。 例如,如果要将全局设备 /dev/global/dsk/d3s0 的许可更改为 644,则必须对群集中的所有节点执行

# chmod 644 /dev/global/dsk/d3s0

命令。

VxVM 不支持 chmod 命令。要更改 VxVM 中的全局设备许可,请参考 VxVM 管理员指南。

3.1.2 动态重新配置全局设备

在完成对群集中的磁盘设备及磁带设备进行动态重新配置 (DR) 操作时,有几个问题必须予以考虑。


小心:小心:

如果在对辅助节点执行 DR 操作时当前主节点发生故障,将会影响群集的可用性。主节点将无处可转移故障,直到为其提供了一个新的辅助节点。


要对全局设备执行 DR 操作,须按所示顺序完成下列步骤。

表 3-1 任务表:动态重新配置磁盘设备和磁带设备

任务 

有关说明,请转到... 

1. 如果某项 DR 操作会影响活动设备组而且必须在当前主节点上执行它,则在对设备执行 DR 删除操作之前先切换主节点和辅助节点。 

"3.3.18 如何切换设备组的主节点"

2. 对正在删除的设备执行 DR 删除操作。  

Sun Enterprise 10000 Dynamic Reconfiguration User Guide》和《Sun Enterprise 10000 Dynamic Reconfiguration Reference Manual》(出自《Solaris 8 on Sun Hardware》集)

3.1.3 VERITAS Volume Manager 管理的注意事项

要使 Sun Cluster 维护 VxVM 名称空间,则必须在 Sun Cluster 磁盘设备组配置发生更改的情况下将 VxVM 磁盘组或卷的任何更改进行注册。注册这些更改可确保所有群集节点上的名称空间得到更新。 会影响名称空间的配置更改包括添加、删除或重命名卷,以及更改卷许可、属主或组 ID。


注意:

一旦将磁盘组在群集中注册为 Sun Cluster 磁盘设备组之后,就不要用 VxVM 命令导入或导出 VxVM 磁盘组。 Sun Cluster 软件将处理需要导入或导出磁盘组的所有情况。


每个 VxVM 磁盘组必须有一个在整个群集范围内唯一的次编号。 缺省情况下,创建磁盘组时,VxVM 会选择 1000 的倍数中的其中一个随机数作为该磁盘组的基本次编号。 对于大多数仅有少量磁盘组的配置,这足以确保唯一性。 但是,新创建的磁盘组的次编号有可能与另一群集节点上导入的原有磁盘组的次编号冲突。 在这种情况下,注册 Sun Cluster 磁盘设备组的尝试将会失败。 要解决此问题,应当为新磁盘组提供一个新的唯一值作为次编号,然后将该磁盘组注册为 Sun Cluster 磁盘设备组。

如果安装的是镜像卷,则可以使用脏区记录 (DRL) 来缩短发生节点故障时的卷恢复时间。 尽管 DRL 会降低 I/O 吞吐量,仍然建议您使用它。

3.1.3.1 为 Oracle Parallel Server/Real Application Clusters 创建共享磁盘组

如果使用 VxVM 为 Oracle Parallel Server/Real Application Clusters 建立共享磁盘组,则使用《VERITAS Volume Manager Administrator's Reference Guide》中所述的 VxVM 的群集功能。 为 Oracle Parallel Server/Real Application Clusters 创建共享磁盘组与创建其他磁盘组的区别包括以下项。

要创建其他 VxVM 磁盘组,请参阅"3.3.5 如何在初始化磁盘时创建新磁盘组 (VERITAS Volume Manager)"

3.2 群集文件系统管理概述

群集文件系统的管理不需要任何特殊的 Sun Cluster 命令。 可以使用诸如 mountnewfs 等标准的 Solaris 文件系统命令,象管理任何其他 Solaris 文件系统一样管理群集文件系统。 可以通过将 -g 选项指定给 mount 命令来安装群集文件系统。 也可以在引导时自动安装群集文件系统。


注意:

群集文件系统在读取文件时,并不更新这些文件的访问时间。


3.3 管理磁盘设备组

scsetup(1M) 实用程序是 scconf(1M) 命令的一个交互式接口。运行 scsetup 时将生成 scconf 命令。 这些生成的命令显示在某些过程结尾部分的示例中。


注意:

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


表 3-2 任务列表:管理磁盘设备组

任务 

有关说明,请转到... 

在不进行重配置重新引导的情况下更新全局设备名称空间 

- 使用 scgdevs

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

添加 Solstice DiskSuite 磁盘集并将它们注册为磁盘设备组 

- 使用 metaset

"3.3.2 如何添加并注册磁盘设备组 (Solstice DiskSuite)"

从配置中删除 Solstice DiskSuite 磁盘设备组 

- 使用 metasetmetaclear

"3.3.3 如何删除和取消注册磁盘设备组 (Solstice DiskSuite)"

从 Solstice DiskSuite 磁盘设备组中删除节点 

- 使用 metaset 

"3.3.4 如何从磁盘设备组 (Solstice DiskSuite) 中删除节点"

将 VERITAS Volume Manager 磁盘组作为磁盘设备组添加 

- 使用 VxVM 命令和 scsetup

"3.3.5 如何在初始化磁盘时创建新磁盘组 (VERITAS Volume Manager)"

 

"3.3.6 如何在封装磁盘时创建新磁盘组 (VERITAS Volume Manager)"

 

"3.3.7 如何向现有的磁盘设备组 (VERITAS Volume Manager) 添加新卷"

 

"3.3.8 如何使现有磁盘组成为磁盘设备组 (VERITAS Volume Manager)"

 

"3.3.9 如何给磁盘设备组 (VERITAS Volume Manager) 分配新的次编号"

 

"3.3.10 如何将磁盘组注册为磁盘设备组 (VERITAS Volume Manager)"

 

"3.3.11 如何注册磁盘设备组配置更改 (VERITAS Volume Manager)"

从配置中删除 VERITAS Volume Manager 磁盘设备组 

- 使用 scsetup (以生成 scconf)

"3.3.12 如何从磁盘设备组 (VERITAS Volume Manager) 删除卷 "

 

"3.3.13 如何删除和取消注册磁盘设备组 (VERITAS Volume Manager) "

在 VERITAS Volume Manager 磁盘设备组中添加节点 

- 使用 scsetup(以生成 scconf)

"3.3.14 如何向磁盘设备组 (VERITAS Volume Manager) 添加节点"

从 VERITAS Volume Manager 磁盘设备组中删除节点 

- 使用 scsetup(以生成 scconf) 

"3.3.15 如何从磁盘设备组 (VERITAS Volume Manager) 中删除节点"

更改磁盘设备组特性 

- 使用 scsetup(以生成 scconf)

"3.3.16 如何更改磁盘设备特性"

显示磁盘设备组及其特性 

- 使用 scconf

"3.3.17 如何列出磁盘设备组配置"

切换磁盘设备组的主节点 

- 使用 scswitch

"3.3.18 如何切换设备组的主节点"

使磁盘设备组处于维护状态 

- 使用 metasetvxdg

"3.3.19 如何使磁盘设备组处于维护状态"

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

添加新的全局设备时,请通过运行 scgdevs(1M) 来手动更新全局设备名称空间。


注意:

如果运行 scgdevs 命令的节点当前不是群集成员,或者未安装 /global/.devices/node@nodeID 文件系统,则该命令将不起任何作用。


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

  2. 使用 scgdevs 命令重新配置名称空间。


    # scgdevs
    

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

以下示例显示的是成功运行 scgdevs 后生成的输出内容。


# scgdevs 
Configuring the /dev/global directory (global devices)...
obtaining access to all attached disks
reservation program successfully exiting

3.3.2 如何添加并注册磁盘设备组 (Solstice DiskSuite)

可以使用 metaset(1M) 命令创建 Solstice DiskSuite 磁盘集并将其注册为 Sun Cluster 磁盘设备组。注册磁盘集后,分配给该磁盘集的名称将自动分配给磁盘设备组。

  1. 成为该特定节点(该节点已连接到要在其上创建磁盘集的各个磁盘)上的超级用户。

  2. 计算配置所需的元设备名称的数量,并修改各节点上的 /kernel/drv/md.conf 文件。

    请参阅《Sun Cluster 3.0 12/01 软件安装指南》中的"如何设置元设备名称和磁盘集数目"

  3. 使用 metaset 命令添加 Solstice DiskSuite 磁盘集并在 Sun Cluster 中将其注册为磁盘设备组。


    # metaset -s diskset -a -h nodelist
    

    -s diskset

    指定要创建的磁盘集。

    -a -h nodelist

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

  4. 检验是否已添加磁盘设备组。

    磁盘设备组名称将与用 metaset 指定的磁盘集名称相匹配。


    # scconf -p | grep disk-device-group
    

3.3.2.1 示例 - 添加 Solstice DiskSuite 磁盘设备组

以下示例显示了磁盘集和磁盘设备组的创建,并检验是否已创建磁盘设备组。


# metaset -s dg-schost-1
# scconf -p | grep dg-schost-1
Device group name: dg-schost-1

3.3.3 如何删除和取消注册磁盘设备组 (Solstice DiskSuite)

磁盘设备组是已向 Sun Cluster 注册的 Solstice DiskSuite 磁盘集。 要删除 Solstice DiskSuite 磁盘设备组,请使用 metaclear(1M) 和 metaset(1M) 命令。 这些命令将同名磁盘设备组删除并取消其注册,使之不再是 Sun Cluster 磁盘设备组。

有关删除磁盘集的步骤,请参阅 Solstice DiskSuite 的文档。

3.3.4 如何从磁盘设备组 (Solstice DiskSuite) 中删除节点

使用此过程可在运行 Solstice DiskSuite 的群集上从磁盘设备组的可能的主节点列表中删除群集节点。 一个节点可同时属于多个磁盘设备组。因此,对要从其删除节点的每个磁盘设备组重复 metaset 命令。

  1. 确定磁盘设备组,其成员中包括所要删除的节点。


    # scstat -D
    

  2. 成为当前拥有要修改的磁盘设备组的节点上的超级用户。

  3. 从磁盘设备组删除节点的主机名。


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

    -s setname

    指定磁盘设备组的名称

    -d

    从磁盘设备组删除用 -h 标识的节点

    -f

    强制

    -h nodelist

    从可以主控磁盘设备组的节点的列表中删除节点


    注意:

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


  4. 对要从中删除节点(作为可能的主节点被删除)的每个磁盘设备组重复步骤 3

  5. 检验是否已从磁盘设备组删除了该节点。

    磁盘设备组名称将与用 metaset 指定的磁盘集名称相匹配。


    # scstat -D
    

3.3.4.1 示例 - 从磁盘设备组 (SDS) 删除节点

以下示例显示的是从磁盘设备组配置中删除主机名 phys-schost-2 的过程。 这样做就排除了 phys-schost-2 作为指定磁盘设备组的主节点的可能性。 检验该节点确实已删除,方法是通过运行 scstat -D 命令并检查所删除的节点不再显示在屏幕文本中。


[Determine the disk device group(s) for the node:]
# scstat -D
  -- Device Group Servers --
                       Device Group  Primary        Secondary
                       ------------  -------        ---------
  Device group servers: dg-schost-1  phys-schost-1  phys-schost-2
[Become superuser.]
[Remove the hostname from all disk device groups:]
# metaset -s dg-schost-1 -d -f -h phys-schost-2
[Verify removal of the node:]
# scstat -D
  -- Device Group Servers --
                       Device Group  Primary       Secondary
                       ------------  -------       ---------
  Device group servers: dg-schost-1  phys-schost-1  -

3.3.5 如何在初始化磁盘时创建新磁盘组 (VERITAS Volume Manager)


注意:

此过程仅用于初始化磁盘。 如果是封装磁盘,请遵照"3.3.6 如何在封装磁盘时创建新磁盘组 (VERITAS Volume Manager)"中的过程操作。


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

如果使用 VxVM 为 Oracle Parallel Server/Real Application Clusters 建立共享磁盘组,则使用《VERITAS Volume Manager Administrator's Reference Guide》中所述的 VxVM 群集功能。 有关详细信息,请参阅"3.1.3.1 为 Oracle Parallel Server/Real Application Clusters 创建共享磁盘组"

  1. 成为符合以下条件的群集的任何节点上的超级用户:该群集与组成所要添加的磁盘组的那些磁盘之间存在物理连接

  2. 创建 VxVM 磁盘组和卷。

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


    注意:

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


    有关完成此步操作的过程,请参阅 VERITAS Volume Manager 文档。

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

    请参阅"3.3.10 如何将磁盘组注册为磁盘设备组 (VERITAS Volume Manager)"

    请不要向群集框架注册 Oracle Parallel Server/Real Application Clusters 共享磁盘组。

3.3.6 如何在封装磁盘时创建新磁盘组 (VERITAS Volume Manager)


注意:

此过程仅用于封装磁盘。 如果是初始化磁盘,请遵照"3.3.5 如何在初始化磁盘时创建新磁盘组 (VERITAS Volume Manager)"中的过程操作。


您可以使非根磁盘加入 Sun Cluster 中,方法是先将它们封装为 VxVM 磁盘组,然后再将它们注册为 Sun Cluster 磁盘设备组。

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

如果用 VxVM 为 Oracle Parallel Server/Real Application Clusters 建立共享磁盘组,请使用《VERITAS Volume Manager Administrator's Reference Guide》中所述的 VxVM 群集功能。有关详细信息,请参阅"3.1.3.1 为 Oracle Parallel Server/Real Application Clusters 创建共享磁盘组"

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

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

    一旦将磁盘封装并将其注册为 Sun Cluster 磁盘设备组之后,就可以将此选项的设置恢复为 yes

  3. 封装磁盘。

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

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

    scswitch(1M) 命令可将所有资源组和设备组从主节点切换到下一个首选节点。然后,用 shutdown(1M) 关闭并重新启动节点。


    # scswitch -S -h nodelist
    # shutdown -g0 -y -i6
    

  5. 根据需要,可将所有的资源组和设备组切换回原始节点。

    如果资源组和设备组按初始配置应将故障转移回主节点,则不必执行此步骤。


    # scswitch -z -h nodelist -D disk-device-group
    # scswitch -z -h nodelist -g resource-group
    

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

    请参阅"3.3.10 如何将磁盘组注册为磁盘设备组 (VERITAS Volume Manager)"

    请不要向群集框架注册 Oracle Parallel Server/Real Application Clusters 共享磁盘设备组。

3.3.7 如何向现有的磁盘设备组 (VERITAS Volume Manager) 添加新卷


注意:

添加卷后,您需要遵照"3.3.11 如何注册磁盘设备组配置更改 (VERITAS Volume Manager)"中的过程注册配置更改。


将新卷添加到现有的 VxVM 磁盘设备组时,需要从磁盘设备组的主节点执行该过程,并且磁盘设备组必须为联机状态。

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

  2. 确定要向其添加新卷的磁盘设备组的主节点及其状态。


    # scstat -D
    

  3. 如果磁盘设备组为脱机状态,则使其联机。


    # scswitch -z -D disk-device-group -h nodelist
    

    -z -D disk-device-group

    切换指定的设备组。

    -h nodelist

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

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

    有关用于创建 VxVM 卷的过程,请参阅 VERITAS Volume Manager 文档。

  5. 注册 VxVM 磁盘组的更改,使全局名称空间得以更新。

    请参阅"3.3.11 如何注册磁盘设备组配置更改 (VERITAS Volume Manager)"

3.3.8 如何使现有磁盘组成为磁盘设备组 (VERITAS Volume Manager)

您可以使现有的 VxVM 磁盘组成为 Sun Cluster 磁盘设备组。方法是,先将该磁盘组导入到当前节点上,然后将其注册为 Sun Cluster 磁盘设备组。

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

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


    # vxdg import diskgroup
    

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

    请参阅"3.3.10 如何将磁盘组注册为磁盘设备组 (VERITAS Volume Manager)"

3.3.9 如何给磁盘设备组 (VERITAS Volume Manager) 分配新的次编号

如果因为次编号与另一磁盘组冲突而使得注册磁盘设备组失败,则必须给新的磁盘组分配一个新的、未经使用的次编号。 分配了新的次编号后,请重新运行该过程,以将磁盘组注册为 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 磁盘设备组。

    请参阅"3.3.10 如何将磁盘组注册为磁盘设备组 (VERITAS Volume Manager)"

3.3.9.1 示例 - 如何给磁盘设备组指定新的次编号

该示例使用了次编号 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

3.3.10 如何将磁盘组注册为磁盘设备组 (VERITAS Volume Manager)

此过程使用了 scsetup(1M) 实用程序将相关的 VxVM 磁盘组注册为 Sun Cluster 磁盘设备组。


注意:

一旦将磁盘设备组向群集注册后,请不要使用 VxVM 命令导入或导出 VxVM 磁盘组。 如果对 VxVM 磁盘组或卷进行了更改,则使用"3.3.11 如何注册磁盘设备组配置更改 (VERITAS Volume Manager)"过程注册该磁盘设备组的配置更改。这样做可确保全局名称空间处于正确的状态。


注册 VxVM 磁盘设备组的先决条件如下:

定义了首选顺序后,也就指定了在首选节点被关闭然后又返回到群集中时,是否让磁盘设备组切换回首选节点。

有关节点首选项和故障返回选项的详细信息,请参阅 scconf(1M)

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

  2. 进入 scsetup 实用程序。


    # scsetup
    

    显示 Main Menu。

  3. 要使用 VxVM 磁盘设备组,请键入 4(设备组和卷)。

    这时将显示"Device Groups"菜单。

  4. 要注册 VxVM 磁盘设备组,请键入 1(将 VxVM 磁盘组注册为设备组)。

    按照说明输入要注册为 Sun Cluster 磁盘设备组的 VxVM 磁盘组的名称。

    如果使用 VxVM 为 Oracle Parallel Server/Real Application Clusters 建立共享磁盘组,则不要向群集框架注册该共享磁盘组。 请使用《VERITAS Volume Manager Administrator's Reference Guide》中所述的 VxVM 的群集功能。

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


    scconf: Failed to add device group - in use

    要为磁盘设备组重新分配次编号,请遵照"3.3.9 如何给磁盘设备组 (VERITAS Volume Manager) 分配新的次编号"过程。通过该过程,您可以分配新的次编号,该次编号不会与现有的磁盘设备组所用的次编号冲突。

  6. 检验磁盘设备组是否已注册并处于联机状态。

    如果已正确注册磁盘设备组,则在使用以下命令时会显示新磁盘设备组的信息。


    # scstat -D
    


    注意:

    如果更改了向群集注册了的 VxVM 磁盘组或卷的任何配置信息,则必须使用 scsetup 重新注册该磁盘设备组。 这样的配置更改包括添加或删除卷,以及更改现有卷的组、属主或许可。 配置更改后的注册将确保全局名称空间处于正确的状态。 请参阅"3.3.1 如何更新全局设备名称空间"


3.3.10.1 示例 - 注册 VERITAS Volume Manager 磁盘设备组

以下示例显示了 scsetup 注册 VxVM 磁盘设备组 (dg1) 时生成的 scconf 命令,以及检验步骤。 此示例假定 VxVM 磁盘组和卷为以前创建的磁盘组和卷。


# scsetup

scconf -a -D type=vxvm,name=dg1,nodelist=phys-schost-1:phys-schost-2

# scstat -D
-- Device Group Servers --
                         Device Group      Primary           Secondary
                         ------------      -------           ---------
Device group servers:    dg1              phys-schost-1      phys-schost-2
 
-- Device Group Status --
                              Device Group        Status              
                              ------------        ------              
  Device group status:        dg1                 Online

3.3.10.2 从此处可转到何处

要在 VxVM 磁盘设备组上创建群集文件系统,请参阅"3.4.1 如何添加群集文件系统"

如果存在与次编号相关的问题,请参阅"3.3.9 如何给磁盘设备组 (VERITAS Volume Manager) 分配新的次编号"

3.3.11 如何注册磁盘设备组配置更改 (VERITAS Volume Manager)

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

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

  2. 进入 scsetup(1M) 实用程序。


    # scsetup
    

    显示 Main Menu。

  3. 要使用 VxVM 磁盘设备组,请键入 4(设备组和卷)。

    这时将显示"Device Groups"菜单。

  4. 要注册配置更改,请键入 2(同步 VxVM 设备组的卷信息)。

    按照说明输入已更改配置的 VxVM 磁盘组。

3.3.11.1 示例 - 注册 VERITAS Volume Manager 磁盘组配置更改

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


# scsetup
 
scconf -c -D name=dg1,sync

3.3.12 如何从磁盘设备组 (VERITAS Volume Manager) 删除卷


注意:

从磁盘设备组删除卷后,必须遵照"3.3.11 如何注册磁盘设备组配置更改 (VERITAS Volume Manager)"过程为磁盘设备组的配置更改进行注册。


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

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


    # scstat -D
    

  3. 如果磁盘设备组为脱机状态,则使其联机。


    # scswitch -z -D disk-device-group -h nodelist
    

    -z

    执行切换。

    -D disk-device-group

    指定要切换的设备组。

    -h nodelist

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

  4. 从主节点(当前主控磁盘设备组的节点)删除磁盘组中的 VxVM 卷。


    # vxedit -g diskgroup -rf rm volume
    

    -g diskgroup

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

    -rf rm volume

    删除指定的卷。

  5. 使用 scsetup 注册磁盘设备组的配置更改,以更新全局名称空间。

    请参阅"3.3.11 如何注册磁盘设备组配置更改 (VERITAS Volume Manager)"

3.3.13 如何删除和取消注册磁盘设备组 (VERITAS Volume Manager)

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

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

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

  2. 使磁盘设备组脱机。


    # scswitch -F -D disk-device-group
    

    -F

    使磁盘设备组脱机。

    -D disk-device-group

    指定要脱机的设备组。

  3. 进入 scsetup 实用程序。

    显示 Main Menu。


    # scsetup
    

  4. 要使用 VxVM 设备组,请键入 4(设备组和卷)。

    这时将显示"Device Groups"菜单。

  5. 要取消注册 VxVM 磁盘组,请键入 3(取消注册 VxVM 设备组)。

    按照说明输入将要取消注册的 VxVM 磁盘组。

3.3.13.1 示例 - 删除并取消注册 VERITAS Volume Manager 磁盘设备组

以下示例显示了脱机的 VxVM 磁盘设备组 dg1,以及 scsetup 删除并取消注册该磁盘设备组时生成的 scconf(1M) 命令。


# scswitch -F -D dg1
# scsetup

   scconf -r -D name=dg1

3.3.14 如何向磁盘设备组 (VERITAS Volume Manager) 添加节点

此过程使用 scsetup(1M) 实用程序将节点添加到磁盘设备组。

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

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

  2. 进入 scsetup(1M) 实用程序

    显示 Main Menu。


    # scsetup
    

  3. 要使用 VxVM 磁盘设备组,请键入 4(设备组和卷)。

    这时将显示"Device Groups"菜单。

  4. 要向 VxVM 磁盘设备组添加节点,请键入 4(向 VxVM 设备组添加节点)。

    按照说明输入设备组和节点的名称。

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

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


    # scconf -p 
    

3.3.14.1 示例 - 向 VERITAS Volume Manager 磁盘设备组添加节点

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


# scsetup
 
scconf a D type=vxvm,name=dg1,nodelist=phys-schost-3
  
# scconf -p 
Device group name:                               dg1
   Device group type:                            VXVM
   Device group failback enabled:                yes
   Device group node list:                       phys-schost-1, phys-schost-3

3.3.15 如何从磁盘设备组 (VERITAS Volume Manager) 中删除节点

遵照此过程从运行 VERITAS Volume Manager (VxVM) 的现有群集磁盘设备组(磁盘组)中删除群集节点。

  1. 确定要删除的节点是其成员的磁盘设备组。


    # scstat -D
    

  2. 成为当前群集成员节点的超级用户。

  3. 执行 scsetup 实用程序。


    # scsetup
    

    显示 Main Menu。

  4. 要重新配置磁盘设备组,请键入 4(设备组和卷)。

  5. 要从 VxVM 磁盘设备组中删除该节点,请键入 5(从 VxVM 设备组删除节点)。

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

    VxVM 设备组

    节点名

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


    # scconf -p | grep Device
    

3.3.15.1 示例 - 从磁盘设备组 (VxVM) 中删除节点

此示例说明了将名为 phys-schost-4 的节点从 dg1 VxVM 磁盘设备组中删除的过程。


[Determine the disk device group for the node:]
# scstat -D
  -- Device Group Servers --
                       Device Group  Primary        Secondary
                       ------------  -------        ---------
  Device group servers: dg-schost-1  phys-schost-1  phys-schost-2
[Become superuser and execute the scsetup utility:]
# scsetup
 Select Device groups and volumes>Remove a node from a VxVM device group.
Answer the questions when prompted.
You will need the following information.
  You Will Need:            Example:
  VxVM device group name    dg1
  node names                phys-schost-1
[Verify that the scconf command executed properly:]
 
scconf -r -D name=dg1,nodelist=phys-schost-4
 
    Command completed successfully.
Quit the scsetup Device Groups Menu and Main Menu.
[Verify that the node was removed:]
# scconf -p | grep Device
  Device group name:                 dg1
    Device group type:               VxVM
    Device group failback enabled:   no
    Device group node list:          phys-schost-3
    Device group diskset name:    	dg1

3.3.16 如何更改磁盘设备特性

确立磁盘设备组的主拥有权的方法基于称为 preferenced 的拥有权首选项属性的设置。 如果未设置该属性,则另外的无属主磁盘设备组的主属主是第一个尝试访问该组中的磁盘的节点。 但是,如果设置了该属性,您必须指定节点尝试建立拥有权时采用的首选顺序。

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

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

此过程使用 scsetup(1M) 设置或取消设置 Solstice DiskSuite 或 VxVM 磁盘设备组的 preferenced 属性和 failback 属性。

要运行此过程,需要正在更改其属性值的磁盘设备组的名称。

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

  2. 进入 scsetup(1M) 实用程序

    显示 Main Menu。


    # scsetup
    

  3. 要使用磁盘设备组,请键入 4(设备组和卷)。

    这时将显示"Device Groups"菜单。

  4. 要更改设备组特性,请键入 6(更改 VxVM 或 Solstice DiskSuite 设备组的关键特性)。

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

  5. 检验是否已更改磁盘设备组的属性。

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


    # scconf -p 
    

3.3.16.1 示例 - 更改磁盘设备组特性

以下示例显示 了 scsetup 设置磁盘设备组 (dg-schost-1) 的属性值时生成的 scconf 命令。


# scconf -c -D name=dg-schost-1,nodelist=phys-schost-1:phys-schost-2,\
preferenced=true,failback=enabled

# scconf -p | grep Device
Device group name:                             dg-schost-1
   Device group type:                          SDS
   Device group failback enabled:              yes
   Device group node list:                     phys-schost-1, phys-schost-2
   Device group ordered node list:             yes
   Device group diskset name:                  dg-schost-1

3.3.17 如何列出磁盘设备组配置

您不需要成为超级用户就可以列出该配置。

您可以使用以下三种方法列出磁盘设备组配置信息。

  1. 使用 SunPlex Manager GUI。

    有关详细信息,请参阅 SunPlex Manager 的联机帮助。

  1. 使用 scstat(1M) 列出磁盘设备组的配置。


    % scstat -D
    

    使用 scconf(1M) 列出磁盘设备组的配置。


    % scconf -p
    

3.3.17.1 示例 - 使用 scstat 列出磁盘设备组的配置

使用 scstat -D 命令显示以下信息。


-- Device Group Servers --
                         Device Group      Primary             Secondary
                         ------------      -------             ---------
  Device group servers:  schost-2          -                   -
  Device group servers:  schost-1          phys-schost-2       phys-schost-3
  Device group servers:  schost-3          -                   -
-- Device Group Status --
                              Device Group      Status              
                              ------------      ------              
  Device group status:        schost-2          Offline
  Device group status:        schost-1          Online
  Device group status:        schost-3          Offline

3.3.17.2 示例 - 使用 scconf 列出磁盘设备组配置

使用 scconf 命令时,请查看设备组下列出的信息。


# scconf -p
...
Device group name: dg-schost-1
	Device group type:              SDS
	Device group failback enabled:  yes
	Device group node list:         phys-schost-2, phys-schost-3
	Device group diskset name:      dg-schost-1

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

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

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

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

  2. 使用 scswitch(1M) 来切换磁盘设备组的主节点。


    # scswitch -z -D disk-device-group -h nodelist
    

    -z

    执行切换。

    -D disk-device-group

    指定要切换的设备组。

    -h nodelist

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

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

    如果已正确注册磁盘设备组,则在使用以下命令时会显示新磁盘设备组的信息。


    # scstat -D
    

3.3.18.1 示例 - 切换磁盘设备组的主节点

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


# scswitch -z -D dg-schost-1 -h phys-schost-1
# scstat -D

-- Device Group Servers --
                          Device Group        Primary             Secondary
                         ------------        -------             ---------
Device group servers:    dg1                 phys-schost-1       phys-schost-2
 
-- Device Group Status --
                                Device Group        Status              
                              ------------        ------              
  Device group status:        dg1                 Online

3.3.19 如何使磁盘设备组处于维护状态

如果使设备组处于维护状态,无论何时访问设备组的设备之一,可防止设备组被自动联机。 完成修复过程后(该过程要求完成修复前停止一切 I/O 活动),应该使设备组处于维护状态。 使设备组处于维护状态还有助于防止数据丢失,具体方法是:确保在一个节点上磁盘设备组没有联机,而同时在另一个节点上修复磁盘集或磁盘组。


注意:

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


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


    # scswitch -m -D disk-device-group
    

  2. 如果正在执行的修复过程要求磁盘集或磁盘组的拥有权,请手动导入该磁盘集或磁盘组。

    • 对于 Solstice DiskSuite:


      # metaset -C take -f -s diskset
      


    小心:小心:

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


    • 对于 VERITAS Volume Manager:


      # vxdg -t import disk-group-name
      

  3. 完成需要执行的任何修复过程。

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


    小心:小心:

    使磁盘设备组脱离维护状态前,必须释放该磁盘集或磁盘组的拥有权。 如果不这样做,可能会导致数据丢失。


    • 对于 Solstice DiskSuite:


      # metaset -C release -s diskset
      

    • 对于 VERITAS Volume Manager:


      # vxdg deport disk-group-name
      

  5. 使磁盘设备组联机。


    # scswitch -z -D disk-device-group -h nodelist
    

3.3.19.1 示例 - 使磁盘设备组处于维护状态

该示例说明了如何使磁盘设备组 dg-schost-1 处于维护状态以及如何使该磁盘设备组脱离维护状态。


[Place the disk device group in maintenance state.]
# scswitch -m -D dg-schost-1
 
[If needed, manually import the diskset or disk group.]
For Solstice DiskSuite:
  # metaset -C take -f -s dg-schost-1
For VERITAS Volume Manager:
  # vxdg -t import dg1
  
[Complete all necessary repair procedures.]
  
[Release ownership.]
For Solstice DiskSuite:
  # metaset -C release -s dg-schost-1
For VERITAS Volume Manager:
  # vxdg deport dg1
  
[Bring the disk device group online.]
# scswitch -z -D dg-schost-1 -h phys-schost-1

3.4 管理群集文件系统

表 3-3 任务表:管理群集文件系统

任务 

有关说明,请转到... 

首次安装 Sun Cluster 后添加群集文件系统 

- 使用 newfsmkdir

"3.4.1 如何添加群集文件系统"

删除群集文件系统 

- 使用 fuserumount

"3.4.2 如何删除群集文件系统"

检查群集中的全局安装点在各节点是否一致 

- 使用 sccheck

"3.4.3 如何检查群集中的全局安装"

3.4.1 如何添加群集文件系统

首次安装 Sun Cluster 后,为所创建的每个群集文件系统执行此任务。


小心:小心:

请确保指定了正确的磁盘设备名称。 创建群集文件系统会损坏磁盘上的所有数据。 如果指定的设备名称不正确,将删除您可能不打算删除的数据。


添加其他群集文件系统的先决条件如下:

如果安装数据服务时使用了 SunPlex Manger,并且有足够的共享磁盘用来创建群集文件系统,则一个或多个群集文件系统业已存在。

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


    提示:

    要更快地创建文件系统,请成为要为其创建文件系统的全局设备的当前主节点上的超级用户。


  2. 使用 newfs(1M) 命令创建文件系统。


    # newfs raw-disk-device
    

    下表显示了 raw-disk-device 变量名称的示例。请注意,卷管理器的命名惯例各不相同。

    表 3-4 原始磁盘设备名称示例

    如果您的卷管理器是... 

    则磁盘设备的名称可能是...  

    说明 

    Solstice DiskSuite 

    /dev/md/oracle/rdsk/d1

    oracle 磁盘集中的原始磁盘设备 d1

    VERITAS Volume Manager 

    /dev/vx/rdsk/oradg/vol01

    oradg 磁盘组中的原始磁盘设备 vol01

    无 

    /dev/global/rdsk/d1s3

    块片 d1s3 中的原始磁盘设备。

  3. 在群集中的每一节点上,创建群集文件系统的安装点目录。

    每个节点上都需要一个安装点;即使不在某个节点上访问群集文件系统也不例外。


    提示:

    为便于管理,请在 /global/device-group 目录中创建安装点。 使用此位置,您可以很容易地将本地文件系统和群集文件系统区别开来,后者在全局范围内都可用。



    # mkdir -p /global/device-group/mountpoint
    
    device-group

    与包含该设备的设备组的名称相对应的目录名。

    mountpoint

    要在其上安装群集文件系统的目录名。

  4. 在群集中的每个节点上,为安装点的 /etc/vfstab 文件添加一个条目。

    1. 使用下列必需的安装选项。


      注意:

      对于所有群集文件系统,登录是必需的。


      • Solaris UFS logging - 使用 global,logging 安装选项。 有关 UFS 安装选项的详细信息,请参阅 mount_ufs(1M) 手册页。


        注意:

        UFS 群集文件系统不需要 syncdir 安装选项。 如果指定了 syncdir,就可以保证文件系统的行为与 POSIX 一致。 如果不指定,您会看到与 UFS 文件系统一样的行为。 如果不指定 syncdir,可以显著改善分配磁盘块(如向文件附加数据时)的写入性能。但是,在某些情况下,如果不指定 syncdir,则只能在关闭一个文件后才发现空间不足。 在不指定 syncdir 的情况下很少会出现问题。 指定了 syncdir(和 POSIX 行为)之后,空间不足的情况应该在关闭文件之前就已发现了。


      • Solstice DiskSuite trans 元设备 - 使用 global 安装选项(而不使用 logging 安装选项)。 有关设置 trans 元设备的信息,请参阅 Solstice DiskSuite 文档。

      • VxFS logging - 使用 global, log 安装选项。 有关 VxFS 安装选项的详细信息,请参阅 mount_ufs(1M) 手册页。

    2. 要自动安装群集文件系统,请将 mount at boot 字段设置为 yes

    3. 请确保每个群集文件系统的 /etc/vfstab 条目中的信息在每个节点上完全相同。

    4. 请确保在每个节点的 /etc/vfstab 文件中的条目都以相同顺序列出设备。

    5. 检查文件系统的引导顺序相关性。

      例如,假定出现以下情况:phys-schost-1 将磁盘设备 d0 安装在 /global/oracle 上,而 phys-schost-2 将磁盘设备 d1 安装在 /global/oracle/logs 上。 根据此配置,只有在 phys-schost-1 引导并安装了 /global/oracle 之后,phys-schost-2 才可以引导并安装 /global/oracle/logs

    有关详细信息,请参阅 vfstab(4) 手册页。

  5. 在群集的每个节点上,检验安装点是否存在以及群集的所有节点上的 /etc/vfstab 文件条目是否正确。


    # sccheck
    

    如果没有错误,则不返回任何信息。

  6. 从群集中的任何节点,安装群集文件系统。


    # mount /global/device-group/mountpoint
    

  7. 在群集的每个节点上检验是否已安装群集文件系统。

    可以使用命令 df(1M) 或者 mount(1M) 来列出已安装的文件系统。

    要在 Sun Cluster 环境中管理 VxFS 群集文件系统,请只从安装有 VxFS 群集文件系统的那个主节点运行管理命令。

3.4.1.1 示例 - 添加群集文件系统

以下示例在 Solstice DiskSuite 元设备 /dev/md/oracle/rdsk/d1 上创建一个 UFS 群集文件系统。


# newfs /dev/md/oracle/rdsk/d1
...
 
[on each node:]
# mkdir -p /global/oracle/d1
 
# vi /etc/vfstab
#device	device mount FS fsck mount mount
#to mount to fsck  point type pass at boot options
#                       
/dev/md/oracle/dsk/d1 /dev/md/oracle/rdsk/d1 /global/oracle/d1 ufs 2 yes global,logging
[save and exit]
 
[on one node:]
# sccheck
# mount /global/oracle/d1
# mount
...
/global/oracle/d1 on /dev/md/oracle/dsk/d1 read/write/setuid/global/logging/
largefiles on Sun Oct 3 08:56:16 2001

3.4.2 如何删除群集文件系统

您只需卸载群集文件系统就可以将其删除。 如果还想删除数据,请从系统中删除基础磁盘设备(或元设备或卷)。


注意:

当运行 scshutdown(1M) 关闭整个群集时,系统将关闭,其中就包括群集文件系统的自动卸载。 运行 shutdown 来关闭单个节点时,不会卸载群集文件系统。 但是,如果只有正被关闭的节点与磁盘相连,则任何对该磁盘上的群集文件系统的尝试访问均会导致出错。


卸载群集文件系统的先决条件如下:

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

  2. 确定已安装的群集文件系统。


    # mount -v
    

  3. 在各节点上,列出所有正使用群集文件系统的进程,这样,您就知道将要停止哪些进程。


    # fuser -c [ -u ] mountpoint
    

    -c

    报告有关用作文件系统安装点的文件以及那些已安装的文件系统中的任何文件的信息。

    -u

    (可选)显示每个进程 ID 的用户登录名称。

    mountpoint

    指定您要停止其进程的群集文件系统的名称。

  4. 在每个节点上,停止群集文件系统的所有进程。

    请使用停止进程的首选方法。 根据需要,请使用以下命令强制终止与群集文件系统相关的进程。


    # fuser -c -k mountpoint
    

    向使用群集文件系统的每个进程发出 SIGKILL 命令。

  5. 在每个节点上,确保无任何进程正在使用群集文件系统。


    # fuser -c mountpoint
    

  6. 仅从一个节点卸载群集文件系统。


    # umount mountpoint
    

    mountpoint

    指定要卸载的群集文件系统的名称。 该名称既可以是安装群集文件系统的目录名称,也可以是群集文件系统的设备名称路径。

  7. (可选)编辑 /etc/vfstab 文件以删除正在被删除的群集文件系统的条目。

    对于任何群集节点,只要其 /etc/vfstab 文件中有此群集文件系统的条目,就要在该群集节点上执行此步骤。

  8. (可选)删除磁盘设备 group/metadevice/plex。

    有关详细信息,请参阅卷管理器文档。

3.4.2.1 示例 - 删除群集文件系统

以下示例删除安装在 Solstice DiskSuite 元设备 /dev/md/oracle/rdsk/d1 上的 UFS 群集文件系统。


# mount -v
...
/global/oracle/d1 on /dev/md/oracle/dsk/d1 read/write/setuid/global/logging/largefiles on Sun Oct  3 08:56:16 1999
# fuser -c /global/oracle/d1
/global/oracle/d1: 4006c
# fuser -c -k /global/oracle/d1
/global/oracle/d1: 4006c
# fuser -c /global/oracle/d1
/global/oracle/d1:
# umount /global/oracle/d1
 
(on each node, remove the highlighted entry:)
# vi /etc/vfstab
#device           device        mount   FS      fsck    mount   mount
#to mount         to fsck       point   type    pass    at boot options
#                       
/dev/md/oracle/dsk/d1 /dev/md/oracle/rdsk/d1 /global/oracle/d1 ufs 2 yes global,logging
[Save and exit.]

注意:

要删除群集文件系统中的数据,请删除基础设备。 有关详细信息,请参阅卷管理器文档。


3.4.3 如何检查群集中的全局安装

sccheck(1M) 实用程序可检验 /etc/vfstab 文件中群集文件系统条目的语法。如果没有错误,则不返回任何信息。


注意:

在进行了影响设备或卷管理组件的群集配置更改(如删除群集文件系统)后,请运行 sccheck


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

  2. 检查群集全局安装。


    # sccheck