跳过导航链接
退出打印视图
| Oracle Solaris Cluster 系统管理指南 Oracle Solaris Cluster (简体中文)

搜索范围:

- 本文档
- 整个文档库

## 管理设备组

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

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

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

表 5-4 任务表：管理设备组

任务 | 指导
--- | ---
使用 `cldevice populate` 命令在不进行重新配置重新引导的情况下更新全局设备名称空间 | 如何更新全局设备名称空间
更改用于全局设备名称空间的 `lofi` 设备的大小 | 如何更改用于全局设备名称空间的 `lofi` 设备的大小
移动现有全局设备名称空间 | 如何将全局设备名称空间从专用分区迁移到 `lofi` 设备 如何将全局设备名称空间从 `lofi` 设备迁移到专用分区
使用 `metaset` 命令添加 Solaris Volume Manager 磁盘集并将其注册为设备组 | 如何添加和注册设备组 (Solaris Volume Manager)
使用 `cldevicegroup` 命令添加并注册原始磁盘设备组。 | 如何添加并注册设备组（原始磁盘）
使用 `cldevicegroup` 命令为 ZFS 添加已命名的设备组 | 如何添加并注册复制设备组 (ZFS)
使用首选方法添加新磁盘组并将其注册为设备组 | 如何在初始化磁盘时创建新磁盘组 (Veritas Volume Manager)
使用 `metaset` 和 `metaclear` 命令从配置中删除 Solaris Volume Manager 设备组 | 如何删除和取消注册设备组 (Solaris Volume Manager)
使用 `cldevicegroup`、`metaset` 和 `clsetup` 命令从所有设备组中删除一个节点 | 如何将节点从所有设备组中删除
使用 `metaset` 命令从 Solaris Volume Manager 设备组中删除一个节点 | 如何将节点从设备组中删除 (Solaris Volume Manager)
使用 VxVM 命令和 `clsetup` 将 Veritas Volume Manager 磁盘组添加为设备组 | 如何在初始化磁盘时创建新磁盘组 (Veritas Volume Manager) 如何在封装磁盘时创建新磁盘组 (Veritas Volume Manager) 如何向现有设备组添加新卷 (Veritas Volume Manager) 如何将现有磁盘组转换为设备组 (Veritas Volume Manager) 如何给设备组分配新的从设备号 (Veritas Volume Manager) 如何将磁盘组注册为设备组 (Veritas Volume Manager) 如何将本地磁盘组转换为设备组 (VxVM) 如何将设备组转换为本地磁盘组 (VxVM) 如何注册磁盘组的配置更改 (Veritas Volume Manager)
使用 `clsetup` 命令（用于生成 `cldevicegroup`）从配置中删除 Veritas Volume Manager 设备组 | 如何从设备组中删除卷 (Veritas Volume Manager) 如何删除和取消注册设备组 (Veritas Volume Manager)
使用 `clsetup` 命令生成 `cldevicegroup` 来向 Veritas Volume Manager 设备组中添加一个节点 | 如何向设备组添加节点 (Veritas Volume Manager)
使用 `clsetup` 命令生成 `cldevicegroup` 来从 Veritas Volume Manager 设备组中删除一个节点 | 如何从设备组中删除节点 (Veritas Volume Manager)
使用 `cldevicegroup` 命令从原始磁盘设备组中删除一个节点 | 如何从原始磁盘设备组删除节点
使用 `clsetup` 命令生成 `cldevicegroup` 来更改设备组的属性 | 如何更改设备组属性
使用 `cldevicegroup show` 命令显示设备组及其属性 | 如何列出设备组配置
使用 `clsetup` 生成 `cldevicegroup` 来更改设备组所需的辅助节点数量 | 如何设置设备组所需的辅助节点数
使用 `cldevicegroup switch` 命令切换设备组的主节点 | 如何切换设备组的主节点
使用 `metaset` 或 `vxdg` 命令将设备组置于维护状态 | 如何将设备组置于维护状态

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

当添加新的全局设备时，请通过运行 `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 cldevice populate

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

以下示例显示了成功运行 `cldevice populate` 命令后生成的输出。

    # devfsadm
    cldevice populate
    Configuring the /dev/global directory (global devices)...
    obtaining access to all attached disks
    reservation program successfully exiting
    # ps -ef | grep cldevice populate

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

如果在全局群集的一个或多个节点上为全局设备名称空间使用 `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) 设备上创建名称空间，而不是在专用分区上创建全局设备名称空间。如果在预先安装了 Oracle Solaris 10 OS 的系统上安装 Oracle Solaris Cluster 软件，此功能很实用。

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

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

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

- 如何将全局设备名称空间从 `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. 禁用然后重新启用 `globaldevices` 和 `scmountdev` 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 -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`。

5. 卸载全局设备分区`/global/.devices/node@` nodeID。
6. 删除与 `/.globaldevices` 文件相关联的 `lofi` 设备。

       # lofiadm -d /.globaldevices

7. 删除 `/.globaldevices` 文件。

       # rm /.globaldevices

8. 禁用然后重新启用 `globaldevices` 和 `scmountdev` SMF 服务。

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

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

9. 如果要将其他节点的全局设备名称空间从 `lofi` 设备迁移到某一分区，重复这些步骤即可。
10. 引导到群集模式。从群集的一个节点上，运行 `cldevice populate` 命令填充全局设备名称空间。

        # /usr/cluster/bin/cldevice populate

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

        # ps -ef | grep cldevice populate

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

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

### 添加并注册设备组

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

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

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

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

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

| 注意 - 您创建的 Oracle Solaris Cluster 设备组（Solaris Volume Manager、Veritas 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-1` 和 `phys-schost-2` 正在共享该驱动器。

       === DID Device Instances ===
       DID Device Name:                                /dev/did/rdsk/d1
         Full Device Path:                               phys-schost-1:/dev/rdsk/c0t0d0
       DID Device Name:                                /dev/did/rdsk/d2
         Full Device Path:                               phys-schost-1:/dev/rdsk/c0t6d0
       DID Device Name:                                /dev/did/rdsk/d3
         Full Device Path:                               phys-schost-1:/dev/rdsk/c1t1d0
         Full Device Path:                               phys-schost-2:/dev/rdsk/c1t1d0
       …

6. 将驱动器添加到磁盘集。

   使用完整的 DID 路径名称。

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

   `-`s setname

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

   `-a`

     给磁盘集添加驱动器。

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

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

       # metaset -s setname

示例 5-22 添加 Solaris Volume Manager 设备组

以下示例显示了如何使用磁盘驱动器 `/dev/did/rdsk/d1` 和 `/dev/did/rdsk/d2` 创建磁盘集和设备组，并检验设备组是否已创建。

    # metaset -s dg-schost-1 -a -h phys-schost-1

    # cldevicegroup list
    dg-schost-1
    metaset -s dg-schost-1 -a /dev/did/rdsk/d1 /dev/did/rdsk/d2

## 如何添加并注册设备组（原始磁盘）

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

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

- 您要将多个 DID 添加至设备组

- 您需要更改设备组的名称。

- 您要在不使用 cldg 命令 -v 选项的情况下创建一组设备组。

| 注意 - 如果要在复制设备上创建设备组，则创建的设备组（Solaris Volume Manager、Veritas Volume Manager 或原始磁盘）必须与复制设备组同名。

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

   使用以下命令可删除为 `d7` 和 `d8` 预定义的设备组。

       paris-1# cldevicegroup disable dsk/d7 dsk/d8
       paris-1# cldevicegroup offline dsk/d7 dsk/d8
       paris-1# cldevicegroup delete dsk/d7 dsk/d8

2. 创建包含所需设备的新原始磁盘设备组。

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

       paris-1# cldevicegroup create -n phys-paris-1,phys-paris-2 -t rawdisk
                -d d7,d8 rawdg
       paris-1# /usr/cluster/lib/dcs/cldg show rawdg -d d7 rawdg
       paris-1# /usr/cluster/lib/dcs/cldg show rawdg -d d8 rawdg

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

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

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

| 注意 - 即将完全支持 ZFS 使用第三方数据复制技术。有关 ZFS 支持的更新，请参见最新的 Oracle Solaris 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. 需要设备组名称时，请使用这一新资源组名称。

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

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

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

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

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

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

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

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

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

   请参见如何将磁盘组注册为设备组 (Veritas Volume Manager)。

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

### 维护设备组

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

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

设备组是已经注册到 Oracle Solaris Cluster 的 Solaris Volume Manager 磁盘集。要删除一个 Solaris Volume Manager 设备组，请使用 `metaclear` 和 `metaset` 命令。这些命令可删除同名的设备组，并注销磁盘组，使之不再是 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. 如果步骤 2 中标识的设备组中有任何 `VxVM` 类型的设备组，请对每个该类型的设备组执行如何从设备组中删除节点 (Veritas Volume Manager)中的步骤。
5. 确定成员是要删除的节点的原始设备磁盘组。

       # cldevicegroup list -v

6. 如果步骤 5 中所列设备组中有任何 `Disk` 或 `Local_Disk` 类型的设备组，请对所有这些设备组执行如何从原始磁盘设备组删除节点中的步骤。
7. 检验是否已将该节点从所有设备组的潜在主节点列表中删除。

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

       # 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

   `-s` setname

     指定设备组的名称。

   `-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

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

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

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

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

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

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

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

1. 在群集的任意一个节点上，成为超级用户或成为可提供 `solaris.cluster.modify` RBAC 授权的角色。
2. 如果所要封装的磁盘在 `/etc/vfstab` 文件中有文件系统条目，请确保将 `mount at boot` 选项设置为 `no`。

   在封装了磁盘并将其注册为 Oracle Solaris 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 磁盘组注册为 Oracle Solaris Cluster 设备组。

   请参见如何将磁盘组注册为设备组 (Veritas Volume Manager)。

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

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

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

在将新卷添加到现有 VxVM 设备组时，请从联机设备组的主节点执行该过程。

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

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

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

1. 在群集的任一节点上，成为超级用户或成为可提供 `solaris.cluster.read` 和 `solaris.cluster.administer` RBAC 授权的角色。
2. 确定要向其中添加新卷的设备组的主节点。

       # cldevicegroup status

3. 如果设备组脱机，请将其联机。

       # cldevicegroup switch -n nodename devicegroup

   nodename

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

   devicegroup

     指定要切换的设备组。

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

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

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

   # `cldevicegroup sync`

   如何注册磁盘组的配置更改 (Veritas Volume Manager)。

## 如何将现有磁盘组转换为设备组 (Veritas Volume Manager)

可以通过将现有 VxVM 磁盘组导入到当前节点，然后将该磁盘组注册为 Oracle Solaris Cluster 设备组，将其转换为 Oracle Solaris Cluster 设备组。

1. 成为群集中任一个节点的超级用户。
2. 将 VxVM 磁盘组导入当前节点。

       # vxdg import diskgroup

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

   请参见如何将磁盘组注册为设备组 (Veritas Volume Manager)。

## 如何给设备组分配新的从设备号 (Veritas Volume Manager)

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

1. 成为群集中任一个节点的超级用户。
2. 确定正在使用的次编号。

       # ls -l /global/.devices/node@nodeid/dev/vx/dsk/*

3. 选择当前尚未使用的、1000 的其他倍数作为该新磁盘组的基本次编号。
4. 为磁盘组指定新的次编号。

       # vxdg reminor diskgroup base-minor-number

5. 将 VxVM 磁盘组注册为 Oracle Solaris Cluster 设备组。

   请参见如何将磁盘组注册为设备组 (Veritas Volume Manager)。

示例 5-24 如何给设备组分配新的从设备号

本示例使用从设备号 16000-16002 和 4000-4001。`vxdg reminor` 命令用于将基本从设备号 5000 分配给新的设备组。

    # ls -l /global/.devices/node@nodeid/dev/vx/dsk/*

    /global/.devices/node@nodeid/dev/vx/dsk/dg1
    brw-------   1 root     root      56,16000 Oct  7 11:32 dg1v1
    brw-------   1 root     root      56,16001 Oct  7 11:32 dg1v2
    brw-------   1 root     root      56,16002 Oct  7 11:32 dg1v3

    /global/.devices/node@nodeid/dev/vx/dsk/dg2
    brw-------   1 root     root      56,4000 Oct  7 11:32 dg2v1
    brw-------   1 root     root      56,4001 Oct  7 11:32 dg2v2
    # vxdg reminor dg3 5000

## 如何将磁盘组注册为设备组 (Veritas Volume Manager)

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

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

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

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

开始之前

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

- 群集中的节点的超级用户特权。

- 要注册为设备组的 VxVM 磁盘组的名称。

- 控制设备组的节点的首选顺序。

- 设备组所需的辅助节点数。

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

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

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

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

       # clsetup

   显示“Main Menu”。

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

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

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

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

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

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

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

       cldevicegroup: Failed to add device group - in use

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

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

       # cldevicegroup sync devicegroup

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

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

       # cldevicegroup status devicegroup

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

示例 5-25 注册 Veritas Volume Manager 设备组

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

    # clsetup

    # cldevicegroup create -t vxvm -n phys-schost-1,phys-schost-2 -p failback=true dg1

    # cldevicegroup status dg1

    === Cluster Device Groups ===

    --- Device Group Status ---

    Device Group Name    Primary        Secondary      Status
    -----------------    -------        ---------      ------
    dg1                  phys-schost-1  phys-schost-2  Online

另请参见

要在 VxVM 设备组上创建群集文件系统，请参见如何添加群集文件系统。

如果从设备号有问题，请参见如何给设备组分配新的从设备号 (Veritas Volume Manager)。

## 如何注册磁盘组的配置更改 (Veritas Volume Manager)

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

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

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

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

       # clsetup

   显示“Main Menu”。

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

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

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

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

示例 5-26 注册 Veritas Volume Manager 磁盘组配置更改

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

    # clsetup

    cldevicegroup sync dg1

## 如何将本地磁盘组转换为设备组 (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

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

执行此过程可将 VxVM 设备组更改为不受 Oracle Solaris 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. 按照说明指定要从 Oracle Solaris Cluster 软件中取消注册的 VxVM 磁盘组。
   5. 退出 `clsetup` 实用程序。
4. 确认该磁盘组不再向 Oracle Solaris 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

## 如何从设备组中删除卷 (Veritas Volume Manager)

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

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

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

1. 在群集的任一节点上，成为超级用户或成为可提供 `solaris.cluster.read` 和 `solaris.cluster.modify` RBAC 授权的角色。
2. 确定设备组的主节点和状态。

       # cldevicegroup status devicegroup

3. 如果设备组处于脱机状态，请使其联机。

       # cldevicegroup online devicegroup

4. 从主节点（即当前控制设备组的节点）上删除磁盘组中的 VxVM 卷。

       # vxedit -g diskgroup -rf rm volume

   `-g` diskgroup

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

   `-rf` `rm` volume

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

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

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

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

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

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

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

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

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 设备组

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

    # cldevicegroup offline dg1
    # clsetup
    cldevicegroup delete dg1

## 如何向设备组添加节点 (Veritas Volume Manager)

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

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

- 群集中节点上的超级用户特权

- 要将节点添加到其中的 VxVM 设备组的名称

- 要添加的节点的名称或节点 ID

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

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

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

       # clsetup

   显示“Main Menu”。

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

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

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

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

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

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

       # cldevicegroup show devicegroup

示例 5-28 向 Veritas Volume Manager 设备组添加节点

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

    # clsetup
    cldevicegroup add-node -n phys-schost-3 dg1
    # cldevicegroup show dg1

    === Device Groups ===

    Device Group Name:                        dg1
      Type:                                     VxVM
      failback:                                 yes
      Node List:                                phys-schost-1, phys-schost-3
      preferenced:                              no
      numsecondaries:                           1
      diskgroup names:                             dg1

## 如何从设备组中删除节点 (Veritas Volume Manager)

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

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

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

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

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

       phys-schost-1% cldevicegroup show devicegroup

2. 在当前群集成员节点上，成为超级用户或成为可提供 `solaris.cluster.read` 和 `solaris.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

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

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

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

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

1. 在群集的某一节点（要删除的节点除外）上，成为超级用户或成为可提供 `solaris.cluster.read` 和 `solaris.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

## 如何更改设备组属性

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

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

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

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

开始之前

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

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

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

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

       # clsetup

   显示“Main Menu”。

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

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

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

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

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

   按照说明为设备组设置 `preferenced` 和 `failback` 选项。

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

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

`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.read` 和 `solaris.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

## 如何列出设备组配置

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

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

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

- 使用以下列表中的方法之一。
  Oracle Solaris Cluster Manager GUI

    有关详细信息，请参见 Oracle Solaris 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

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

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

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

`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-37 切换设备组的主节点

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

    # cldevicegroup switch -n phys-schost-1 dg-schost-1

    # cldevicegroup status dg-schost-1

    === Cluster Device Groups ===

    --- Device Group Status ---

    Device Group Name    Primary        Secondary       Status
    -----------------    -------        ---------       ------
    dg-schost-1          phys-schost-1   phys-schost-2  Online

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

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

有关如何恢复损坏的磁盘集的说明，请参见恢复损坏的磁盘集。

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

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

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

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：

       # vxdg -t import disk-group-name

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

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

   - 对于 Solaris Volume Manager：

         # metaset -C release -s diskset

   - 对于 Veritas Volume Manager：

         # 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:
      # vxdg -t import dg1

    [Complete all necessary repair procedures.]

    [Release ownership.]
    For Solaris Volume Manager:
      # metaset -C release -s dg-schost-1
    For Veritas Volume Manager:
      # vxdg deport dg1

    [Bring the device group online.]
    # cldevicegroup online dg-schost-1
    # cldevicegroup enable dg-schost-1

版权所有 © 2000, 2011, Oracle 和/或其附属公司。 保留所有权利。 法律声明 |