跳过导航链接
退出打印视图
| Oracle Solaris Cluster 软件安装指南 Oracle Solaris Cluster (简体中文)

搜索范围:

- 本文档
- 整个文档库

## 在群集中创建磁盘集

本节介绍如何为群集配置创建磁盘集。在 Oracle Solaris Cluster 环境中创建 Solaris Volume Manager 磁盘集时，该磁盘集会自动向 Oracle Solaris Cluster 软件注册为 `svm` 类型的设备组。要创建或删除 `svm` 设备组，必须使用 Solaris Volume Manager 的命令和实用程序创建或删除设备组的底层磁盘集。

下表列出了您将执行以创建磁盘集的任务。按照以下顺序完成操作。

表 4-2 任务表：安装和配置 Solaris Volume Manager 软件

任务 | 指导
--- | ---
使用 `metaset` 命令创建磁盘集。 | 如何创建磁盘集
将驱动器添加到磁盘集。 | 如何将驱动器添加到磁盘集
（可选）对磁盘集中的驱动器重新分区，以便为不同的分片分配空间。 | 如何对磁盘集中的驱动器进行重新分区
列出 DID 伪驱动程序映射，并在 `/etc/lvm/md.tab` 文件中定义卷。 | 如何创建 `md.tab` 文件
初始化 `md.tab` 文件。 | 如何激活卷

## 如何创建磁盘集

请执行以下过程来创建磁盘集。

1. 在群集的每个节点上，运行 `devfsadm`(1M) 命令。

   您可以同时在群集的所有节点上运行此命令。

2. 从群集的一个节点更新全局设备名称空间。

       phys-schost# cldevice populate

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

3. 尝试创建任何磁盘集之前，请先在每个节点上检验该命令是否已完成处理。

   即使仅从一个节点运行，该命令也会以远程方式在所有的节点上执行。要确定该命令是否已完成处理过程，请在群集中的每个节点上运行以下命令。

       phys-schost# ps -ef | grep scgdevs

4. 确保要创建的磁盘集符合以下要求之一。

   - 如果正好为磁盘集配置了两个磁盘串，则磁盘集必须正好连接至两个节点并使用两个或三个调解器主机。这些调解器主机必须包括两个主机，这两个主机需要连接到包含磁盘集的磁盘盒。有关如何配置双串调解器的详细信息，请参见配置双串调解器。

   - 如果为磁盘集配置了两个以上的磁盘串，则应确保任意两个磁盘串 S1 和 S2 上的驱动器数目之和都会超过第三个磁盘串 S3 上的驱动器数目。用一个公式来表示，该需求为 count(S1) + count(S2) > count(S3)。

5. 确保有本地状态数据库的副本。

   有关说明，请参见如何创建状态数据库副本。

6. 成为将控制磁盘集的群集节点上的超级用户。
7. 创建磁盘集。

   以下命令可创建磁盘集并将其注册为 Oracle Solaris Cluster 设备组。

       phys-schost# metaset -s setname -a -h node1 node2

   `-s setname`

     指定磁盘集名称。

   `-a`

     添加（创建）磁盘集。

   `-h` node1

     指定将控制磁盘集的主节点的名称。

   node2

     指定将控制磁组集的辅助节点的名称

   注 - 运行 `metaset` 命令以配置群集上的 Solaris Volume Manager 设备组时，默认情况下，该命令将指定一个辅助节点。创建设备组之后，可以使用 `clsetup` 实用程序更改设备组中所需的辅助节点数目。有关如何更改 `numsecondaries` 属性的更多信息，请参阅《Oracle Solaris Cluster 系统管理指南》中的"管理设备组"。

8. 如果要配置复制的 Solaris Volume Manager 设备组，请为该设备组设置复制属性。

       phys-schost# cldevicegroup sync device-group-name

   有关数据复制的更多信息，请参见《Oracle Solaris Cluster 系统管理指南》中的第 4 章 "数据复制方法"。

9. 检验新磁盘集的状态。

       phys-schost# metaset -s setname

10. 根据需要设置设备组的属性。

        phys-schost# cldevicegroup set -p name=value devicegroup

    `-p`

      指定一个设备组属性。

    name

      指定属性的名称。

    value

      指定属性的值或设置。

    devicegroup

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

    有关设备组属性的信息，请参见 `cldevicegroup`(1CL)。

示例 4-6 创建磁盘集

以下命令将创建 `dg-schost-1` 和 `dg-schost-2` 这两个磁盘集，同时将节点 `phys-schost-1` 和 `phys-schost-2` 指定为潜在的主节点。

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

接下来的步骤

将驱动器添加至磁盘集。请转至将驱动器添加到磁盘集。

### 将驱动器添加到磁盘集

将驱动器添加到磁盘集时，卷管理软件将按照以下原则对驱动器进行重新分区，以便将磁盘集的状态数据库放入驱动器。

- 每个驱动器都有一小部分被保留用于 Solaris Volume Manager 软件。在带有volume table of contents（卷目录） (VTOC) 标记的设备中，使用分片 7。在带有 可扩展固件接口 (EFI) 标记的设备中，使用分片 6。每个驱动器上的剩余空间将放到分片 0 中。

- 将驱动器添加到磁盘集中时，只有在目标分片配置不正确的情况下才会对驱动器进行重新分区。

- 重新分区时，驱动器中的所有现有数据都将丢失。

- 如果目标分片是从 0 柱面开始的，而驱动器分区的大小又足以包含一个状态数据库副本，则驱动器不会进行重新分区。

### 如何将驱动器添加到磁盘集

开始之前

确保已创建磁盘集。有关说明，请参见如何创建磁盘集。

1. 成为超级用户。
2. 列出 DID 映射。

       phys-schost# 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
       …

3. 成为磁盘集的拥有者。

       phys-schost# cldevicegroup switch -n node devicegroup

   `-n` node

     指定拥有设备组所有权的节点。

   devicegroup

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

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

   使用完整的 DID 路径名称。

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

   `-`s setname

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

   `-a`

     给磁盘集添加驱动器。

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

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

       phys-schost# metaset -s setname

示例 4-7 将驱动器添加到磁盘集

`metaset` 命令将驱动器 `/dev/did/rdsk/d1` 和 `/dev/did/rdsk/d2` 添加到磁盘集 `dg-schost-1` 中。

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

接下来的步骤

要将驱动器重新分区以便在卷中使用，请转至如何对磁盘集中的驱动器进行重新分区。

否则，请转至如何创建 `md.tab` 文件以使用 `md.tab` 文件定义元设备或卷。

## 如何对磁盘集中的驱动器进行重新分区

`metaset`(1M) 命令将磁盘集中的驱动器重新分区，以便保留每个驱动器的一小部分以供 Solaris Volume Manager 软件使用。在带有volume table of contents（卷目录） (VTOC) 标记的设备中，使用分片 7。在带有 可扩展固件接口 (EFI) 标记的设备中，使用分片 6。每个驱动器上的剩余空间将放到分片 0 中。为了更有效地使用驱动器，请使用以下过程修改磁盘布局。如果将空间分配给 VTOC 分片 1 至 6 或 EFI 分片 1 至 5，则可在设置 Solaris Volume Manager 卷时使用这些分片。

1. 成为超级用户。
2. 使用 `format` 命令更改磁盘集中每个驱动器的磁盘分区情况。

   将驱动器重新分区时，必须满足以下条件，以防止 `metaset`(1M) 命令将该驱动器重新分区。

   - 创建分片 7（对于 VTOC）或分片 6（对于 EFI），该分片应从柱面 0 开始，大小应足以容纳一个状态数据库副本。请参见 Solaris Volume Manager 管理指南来确定您的卷管理器软件版本的状态数据库副本的大小。

   - 将目标分片中的 `Flag` 字段设置为 `wu`（可读写，无法卸载）。不要将其设置为只读。

   - 不要让目标分片覆盖驱动器上的任何其他分片。

   有关详细信息，请参见 `format`(1M) 手册页。

接下来的步骤

使用 `md.tab` 文件定义卷。请转至如何创建 `md.tab` 文件。

## 如何创建 `md.tab` 文件

在群集中的每个节点上创建一个 `/etc/lvm/md.tab` 文件。使用 `md.tab` 文件为您创建的磁盘集定义 Solaris Volume Manager 卷。

注 - 如果要使用本地卷，请确保本地卷名称与用于构成磁盘集的设备 ID 名称不同。例如，如果在磁盘集中使用了设备 ID 名称 `/dev/did/dsk/d3`，请勿将名称 `/dev/md/dsk/d3` 用于本地卷。此要求不适用于共享卷，共享卷使用命名约定 `/dev/md/setname/{r}dsk/d#`。

1. 成为超级用户。
2. 列出可供在创建 `md.tab` 文件时参考的 DID 映射。

   请使用 `md.tab` 文件中的完整 DID 设备名称代替低级别设备名称 (`c` N `t` X `d` Y)。DID 设备名称采用的格式为 `/dev/did/rdsk/d` N。

       phys-schost# cldevice show | grep Device

       === 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
       …

3. 创建一个 `/etc/lvm/md.tab` 文件，并使用您的首选文本编辑器编辑该文件。

   注 - 如果将用于子镜像的驱动器上已经有数据，在设置卷之前必须先备份这些数据。然后将数据恢复到镜像上。

   为避免群集环境内不同节点上的本地卷之间产生混淆，请使用一种可以使每个本地卷名称在整个群集中都唯一的命名方案。例如，对于节点 1，选择 `d100` 到 `d199` 之间的名称。对于节点 2，则使用 `d200` 到 `d299` 之间的名称。

   有关如何创建 `md.tab` 文件的详细信息，请参见 Solaris Volume Manager 文档和 `md.tab`(4) 手册页。

示例 4-8 样例 `md.tab` 文件

下面的样例 `md.tab` 文件定义了名为 `dg-schost-1` 的磁盘集。`md.tab` 文件中各行的顺序并不重要。

    dg-schost-1/d0 -m dg-schost-1/d10 dg-schost-1/d20
        dg-schost-1/d10 1 1 /dev/did/rdsk/d1s0
        dg-schost-1/d20 1 1 /dev/did/rdsk/d2s0

样例 `md.tab` 文件的结构如下所示。

1. 第一行将设备 `d0` 定义为卷 `d10` 和 `d20` 的镜像。`-m` 表示该设备为镜像设备。

       dg-schost-1/d0 -m dg-schost-1/d0 dg-schost-1/d20

2. 第二行将卷 `d10`（`d0` 的第一个子镜像）定义为单向存储条。

       dg-schost-1/d10 1 1 /dev/did/rdsk/d1s0

3. 第三行将卷 `d20`（`d0` 的第二个子镜像）定义为单向存储条。

       dg-schost-1/d20 1 1 /dev/did/rdsk/d2s0

接下来的步骤

激活在 `md.tab` 文件中定义的卷。请转至如何激活卷。

## 如何激活卷

执行此过程可激活在 `md.tab` 文件中定义的 Solaris Volume Manager 卷。

1. 成为超级用户。
2. 确保 `md.tab` 文件位于 `/etc/lvm` 目录中。
3. 确保您对将要在其中执行命令的节点上的磁盘集具有拥有权。
4. 获取磁盘集的拥有权。

       phys-schost# cldevicegroup switch -n node devicegroup

   `-n` node

     指定拥有所有权的节点。

   devicegroup

     指定磁盘集名称。

5. 激活在 `md.tab` 文件中定义的磁盘集所属卷。

       phys-schost# metainit -s setname -a

   `-s` setname

     指定磁盘集名称。

   `-a`

     激活 `md.tab` 文件中的所有卷。

6. 对该群集中的每个磁盘集，重复执行步骤 3 至步骤 5。

   如有必要，请从另一个连接到驱动器的节点运行 `metainit`(1M) 命令。该步骤对于群集对拓扑是必需的，因为在此类拓扑中，并非所有节点都能访问驱动器。

7. 检查卷的状态。

       phys-schost# metastat -s setname

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

8. 可选捕获磁盘分区信息，以供将来参考之用。

       phys-schost# prtvtoc /dev/rdsk/cNtXdYsZ > filename

   应将该文件存储在群集外部的某个位置。如果对磁盘配置进行了任何更改，请再次运行此命令以捕获更改后的配置信息。如果磁盘发生故障需要更换，则可以使用此信息来恢复磁盘分区配置。有关更多信息，请参见 `prtvtoc`(1M) 手册页。

9. 可选创建群集配置的备份。

   对群集配置的归档备份有助于您更方便地恢复群集配置。有关更多信息，请参见《Oracle Solaris Cluster 系统管理指南》中的"如何备份群集配置"。

示例 4-9 激活 `md.tab` 文件中的卷

在以下示例中，在 `md.tab` 文件中为磁盘集 `dg-schost-1` 定义的所有卷均被激活。

    phys-schost# metainit -s dg-schost-1 -a

接下来的步骤

如果群集包含正好配置了两个磁盘附件的磁盘集并且包含两个节点，请添加双串调解器。请转至配置双串调解器。

否则，请转至如何创建群集文件系统以创建群集文件系统。

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