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

搜索范围:

- 本文档
- 整个文档库

## 管理群集文件系统

群集文件系统是通过全局方式使用的文件系统，可以从群集的任一节点对其进行读取或访问。

表 5-5 任务表：管理群集文件系统

任务 | 指导
--- | ---
在初始 Oracle Solaris Cluster 安装后添加群集文件系统 | 如何添加群集文件系统
删除群集文件系统 | 如何删除群集文件系统
检查群集中各个节点上的全局挂载点是否一致 | 如何检查群集中的全局挂载点

## 如何添加群集文件系统

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

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

在添加其他群集文件系统之前，请确保具备以下先决条件：

- 已在群集的一个节点上建立超级用户权限。

- 已在群集中安装并配置卷管理器软件。

- 存在一个设备组（Solaris Volume Manager 设备组或 VxVM 设备组）或块磁盘片，可供在其上创建群集文件系统。

如果曾使用 Oracle Solaris Cluster Manager 安装数据服务，假如用以创建群集文件系统的共享磁盘充足，则系统中已存在一个或多个群集文件系统。

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

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

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

   如果群集中配置有非全局区域，请从全局区域中执行此过程。

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

2. 创建文件系统。

   | 注意 - 创建文件系统时，会毁坏该磁盘上的所有数据。请确保指定的磁盘设备名称是正确的。如果指定的设备名称不正确，可能会删除不打算删除的数据。

   - 对于 UFS 文件系统，请使用 `newfs`(1M) 命令。

         phys-schost# newfs raw-disk-device

     下表显示了 raw-disk-device 参数名称的示例。请注意，卷管理器的命名规则各不相同。

     卷管理器 | 磁盘设备名称样例 | 描述
     --- | --- | ---
     Solaris Volume Manager | `/dev/md/nfs/rdsk/d1` | `nfs` 磁盘集中的原始磁盘设备 `d1`
     Veritas Volume Manager（Veritas 卷管理器） | `/dev/vx/rdsk/oradg/vol01` | `oradg` 磁盘组中的原始磁盘设备 `vol01`
     无 | `/dev/global/rdsk/d1s3` | 原始磁盘设备 `d1s3`

   - 对于 Veritas 文件系统 (VxFS) 文件系统，请按照 VxFS 文档中提供的过程进行操作。
3. 在群集中的每个节点上，为群集文件系统创建一个挂载点目录。

   每个节点上都需要一个挂载点，即使不在该节点上访问群集文件系统也是如此。

   提示 - 为了便于管理，请在 `/global/`device-group`/` 目录中创建挂载点。该位置允许您很容易地区别群集文件系统，这些文件系统从本地文件系统中全局可用。

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

   device-group

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

   mountpoint

     要在其上挂载群集文件系统的目录的名称。

4. 在群集中的每个节点上，在 `/etc/vfstab` 文件中为挂载点添加一个条目。

   有关详细信息，请参见 `vfstab`(4) 手册页。

   注 - 如果群集内配置有非全局区域，请确保从全局区域根目录下的某一路径上将群集文件系统挂载到全局区域中。

   1. 在每个条目中，指定所用文件系统类型所需的挂载选项。
   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/`。

5. 在群集中的任一节点上，运行配置检查实用程序。

       phys-schost# cluster check -k vfstab

   配置检查实用程序将检验挂载点是否存在。该实用程序还将检验群集的所有节点上的 `/etc/vfstab` 文件条目是否正确。如果不出现错误，则不返回任何内容。

   有关更多信息，请参见 `cluster`(1CL) 手册页。

6. 挂载群集文件系统。

       phys-schost# mount /global/device-group/mountpoint/

   - 对于 UFS，请从群集中的任何节点挂载群集文件系统。
   - 对于 VxFS，从 device-group 的当前主节点挂载群集文件系统，以确保文件系统挂载成功。

     另外，还需要从 device-group 的当前主节点卸载 VxFS 文件系统，以确保成功卸载文件系统。

     注 - 要在 Oracle Solaris Cluster 环境中管理 VxFS 群集文件系统，请只从挂载有 VxFS 群集文件系统的那个主节点运行管理命令。

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

   可以使用 `df` 命令或 `mount` 命令列出已挂载的文件系统。有关更多信息，请参见 `df`(1M) 手册页或 `mount`(1M) 手册页。

   从全局区域和非全局区域都可以访问群集文件系统。

示例 5-43 创建 UFS 群集文件系统

以下示例将在 Solaris Volume Manager 卷 `/dev/md/oracle/rdsk/d1` 上创建一个 UFS 群集文件系统。在每个节点上的 `vfstab` 文件中，都将添加一个与该群集文件系统对应的条目。随后，将从一个节点运行 `cluster check` 命令。在配置检查过程成功完成之后，从一个节点上挂载该群集文件系统并在所有节点上对其进行检验。

    phys-schost# newfs /dev/md/oracle/rdsk/d1
    …
    phys-schost# mkdir -p /global/oracle/d1
    phys-schost# 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
    …
    phys-schost# cluster check -k vfstab
    phys-schost# mount /global/oracle/d1
    phys-schost# mount
    …
    /global/oracle/d1 on /dev/md/oracle/dsk/d1 read/write/setuid/global/logging/largefiles
    on Sun Oct 3 08:56:16 2005

## 如何删除群集文件系统

您只需卸载群集文件系统就可以将其删除。如果还要移除或删除数据，请从系统中删除底层的磁盘设备（或元设备或卷）。

注 - 当您运行 `cluster shutdown` 来停止整个群集时，作为系统关闭过程的一部分，群集文件系统会自动卸载。运行 `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/volume/plex`。

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

示例 5-44 删除群集文件系统

以下示例删除了挂载在 Solaris Volume Manager 元设备或卷 `/dev/md/oracle/rdsk/d1` 上的 UFS 群集文件系统。

    # mount -v
    ...
    /global/oracle/d1 on /dev/md/oracle/dsk/d1 read/write/setuid/global/logging/largefiles
    # 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.]

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

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

`cluster`(1CL) 实用程序检验 `/etc/vfstab` 文件中群集文件系统条目的语法。如果不出现错误，则不返回任何内容。

注 - 进行了影响设备或卷管理组件的群集配置更改（如删除群集文件系统）后，请运行 `cluster check` 命令。

1. 成为群集中任一节点上的超级用户。
2. 检查群集全局安装。

       # cluster check -k vfstab

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