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

搜索范围:

- 本文档
- 整个文档库

## 疑难解答

本节包含疑难解答过程，您可以使用该过程进行测试。

### 在全局群集外部运行应用程序

### 如何从在非群集模式下引导的节点中获取 Solaris Volume Manager 元集

使用此过程可出于测试目的在全局群集之外运行一个应用程序。

1. 确定 Solaris Volume Manager 元集中是否使用了法定设备，并确定法定设备是否使用了 SCSI2 或 SCSI3 预留空间。

       phys-schost# clquorum show

   1. 如果法定设备位于 Solaris Volume Manager 元集中，请添加一个新的法定设备，这个新的法定设备不属于稍后要在非群集模式下获取的元集的一部分。

          phys-schost# clquorum add did

   2. 删除旧的法定设备。

          phys-schost# clqorum remove did

   3. 如果法定设备使用 SCSI2 预留空间，请从旧的法定设备中清理 SCSI2 预留空间，并确认没有留下任何 SCSI2 预留空间。

      要了解如何运行 `pgre` 命令，需要安装并使用 Oracle 支持部门提供的诊断工具包 (SUNWscdtk) 软件包。

2. 撤离要在非群集模式下引导的全局群集节点。

       phys-schost# clresourcegroup evacuate -n targetnode

3. 使任一或多个资源组脱机，这些资源组包含 HAStorage 或 HAStoragePlus 资源并包含受您稍后要在非群集模式下获取的元集影响的设备或文件系统。

       phys-schost# clresourcegroup offline resourcegroupname

4. 禁用已脱机的资源组中的所有资源。

       phys-schost# clresource disable resourcename

5. 使资源组不受管理。

       phys-schost# clresourcegroup unmanage resourcegroupname

6. 使相应的一个或多个设备组脱机。

       phys-schost# cldevicegroup offline devicegroupname

7. 禁用这一个或多个设备组。

       phys-schost# cldevicegroup disable devicegroupname

8. 将非活动节点 (passive node) 引导至非群集模式。

       phys-schost# reboot -x

9. 继续执行操作之前，检验非活动节点上的引导过程是否已完成。

       phys-schost# svcs -x

10. 确定元集中的磁盘上是否有任何 SCSI3 预留空间。对元集中的所有磁盘运行以下命令。

        phys-schost# /usr/cluster/lib/sc/scsi -c inkeys -d /dev/did/rdsk/dids2

11. 如果磁盘上有任何 SCSI3 预留空间，请对其进行清理。

        phys-schost# /usr/cluster/lib/sc/scsi -c scrub -d /dev/did/rdsk/dids2

12. 在清空的节点上获取元集。

        phys-schost# metaset -s name -C take -f

13. 挂载包含该元集中所定义设备的一个或多个文件系统。

        phys-schost# mount device mountpoint

14. 启动应用程序，并执行所需的测试。完成测试后，停止应用程序。
15. 重新引导节点，并等待，直至引导过程结束。

        phys-schost# reboot

16. 使一个或多个设备组联机。

        phys-schost# cldevicegroup online -e devicegroupname

17. 启动一个或多个资源组。

        phys-schost# clresourcegroup online -eM  resourcegroupname

### 恢复损坏的磁盘集

如果磁盘集损坏或者处于群集中节点无法获得该磁盘集所有权的状态，请使用此过程。如果清除该状态的尝试失败，可使用此过程作为修复磁盘集的最后措施。

这些过程适用于 Solaris Volume Manager 元集和多属主 Solaris Volume Manager 元集。

### 如何保存 Solaris Volume Manager 软件配置

从头开始恢复磁盘集可能非常耗时，而且容易出错。一种更好的替代方法是使用 `metastat` 命令定期备份副本，或使用 Oracle Explorer (SUNWexplo) 创建备份。然后，可以使用保存的配置来重新创建磁盘集。应该将当前配置保存到文件中（使用 `prtvtoc` 和 `metastat` 命令），然后重新创建磁盘集及其组件。请参见如何重新创建 Solaris Volume Manager 软件配置。

1. 保存磁盘集中每个磁盘的分区表。

       # /usr/sbin/prtvtoc /dev/global/rdsk/diskname > /etc/lvm/diskname.vtoc

2. 保存 Solaris Volume Manager 软件配置。

       # /bin/cp /etc/lvm/md.tab /etc/lvm/md.tab_ORIGINAL

       # /usr/sbin/metastat -p -s setname >> /etc/lvm/md.tab

   注 - 其他配置文件，例如 `/etc/vfstab` 文件，可能引用 Solaris Volume Manager 软件。此过程假设重新构建了完全等同的 Solaris Volume Manager 软件配置，因此挂载信息相同。如果 Oracle Explorer (SUNWexplo) 在拥有磁盘集的节点上运行，它会检索 `prtvtoc` 和 `metaset —p` 信息。

### 如何清除损坏的磁盘集

从一个或所有节点清除磁盘集会删除配置。要从一个节点清除磁盘集，该节点不能具有该磁盘集的所有权。

1. 在所有节点上运行清除命令。

       # /usr/sbin/metaset -s setname -P

   运行此命令会从数据库副本以及 Oracle Solaris Cluster 系统信息库中删除磁盘集信息。`-P` 和 `-C` 选项允许在无需完全重建 Solaris Volume Manager 环境的情况下清除磁盘集。

   注 - 如果清除了一个多属主磁盘集而节点在引导后退出群集模式，您可能需要安装并使用 Oracle 支持部门提供的诊断工具包 (SUNWscdtk) 软件包。该工具包可从 `dcs` 配置文件删除磁盘集信息。请参见步骤 2。

2. 如果只想删除数据库副本中的磁盘集信息，请使用以下命令。

       # /usr/sbin/metaset -s setname -C purge

   通常应使用 `-P` 选项而不是 `-C` 选项。使用 `-C` 选项可能导致重新创建磁盘集时发生问题，因为 Oracle Solaris Cluster 软件仍会识别该磁盘集。

   1. 如果在 `metaset` 命令中使用 `-C` 选项，请首先创建磁盘集，查看是否发生问题。
   2. 如果存在问题，请使用诊断工具包 (SUNWscdtk) 软件包从 `dcs` 配置文件删除磁盘集信息。

   如果 `purge` 选项失败，请确认您已经安装了最新的内核和元设备修补程序，然后联系 Oracle Solaris Cluster 服务部门。

### 如何重新创建 Solaris Volume Manager 软件配置

只有在发生完全丢失 Solaris Volume Manager 软件配置的情况下才应使用此过程。这些步骤假设您已经保存了当前的 Solaris Volume Manager 配置及其组件，并清除了损坏的磁盘集。

注 - 只应在双节点群集中使用调节器。

1. 创建新磁盘集。

       # /usr/sbin/metaset -s setname -a -h nodename1 nodename2

   如果该磁盘集是多属主磁盘集，请使用以下命令创建新磁盘集。

        /usr/sbin/metaset -s setname -aM -h nodename1 nodename2

2. 在创建了磁盘集的同一主机上，根据需要添加调节器主机（仅限双节点）。

        /usr/sbin/metaset -s setname -a -m nodename1 nodename2

3. 从该主机将相同磁盘添加回磁盘集。

        /usr/sbin/metaset -s setname -a /dev/did/rdsk/diskname /dev/did/rdsk/diskname

4. 如果清除了磁盘集并要重新创建该磁盘集，卷目录 (Volume Table of Contents, VTOC) 应该保留在磁盘上，使您可以跳过此步骤。但是，如果正在重新创建要恢复的磁盘集，应根据 `/etc/lvm/diskname.vtoc` 文件中保存的配置格式化磁盘。例如：

       # /usr/sbin/fmthard -s /etc/lvm/d4.vtoc /dev/global/rdsk/d4s2

       # /usr/sbin/fmthard -s /etc/lvm/d8.vtoc /dev/global/rdsk/d8s2

   可以在任何节点上运行此命令。

5. 在现有 `/etc/lvm/md.tab` 文件中检查每个元设备的语法。

       # /usr/sbin/metainit -s setname -n -a metadevice

6. 根据保存的配置创建每个元设备。

       # /usr/sbin/metainit -s setname -a metadevice

7. 如果元设备上存在文件系统，请运行 `fsck` 命令。

       # /usr/sbin/fsck -n /dev/md/setname/rdsk/metadevice

   如果 `fsck` 命令仅显示几个错误，例如超级块计数，则表明设备很可能已经正确重建。然后您可以运行不带 `-n` 选项的 `fsck` 命令。如果出现多个错误，请检验您是否正确重建了元设备。如果是，则查看 `fsck` 错误，确定是否能够恢复文件系统。如果不能，您应该从备份中恢复数据。

8. 将所有群集节点上的所有其他元集串联到 `/etc/lvm/md.tab` 文件，然后串联本地磁盘集。

       # /usr/sbin/metastat -p >> /etc/lvm/md.tab

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