Sun Cluster 3.0 安装指南

为 Sun Cluster 配置而配置 Solstice DiskSuite

下表列出为 Sun Cluster 配置而配置 Solstice DiskSuite 软件需要执行的任务。

表 A-1 任务图:为 Sun Cluster 配置而配置 Solstice DiskSuite

任务 

有关说明,请转到 ... 

规划 Solstice DiskSuite 配置的布局。 

"规划卷管理"

"Solstice DiskSuite 配置示例"

计算需您的配置所需要的元 设备名称数和磁盘集数,并修改 /kernel/drv/md.conf 文件。

"如何设置元设备名称和磁盘集的数目"

在本地磁盘中创建元设备状态 数据库的复制品。 

"如何创建元设备状态数据库的复制品"

可选操作。镜 像根磁盘上的文件系统。

"镜像根磁盘"

使用 metaset 命令 创建磁盘集。

"如何创建磁盘集"

将磁盘驱动器添加到磁盘集中。 

"如何为磁盘集添加驱动器"

为磁盘集中的驱动器重新分区,以便 为第 1 至 6 片分配空间。 

"如何重新分区 磁盘集中的驱动器"

列出设备 ID 伪驱动程序映射并 在 /etc/lvm/md.tab 文件中定义元设备。

"如何创建 md.tab 文件"

初始化 md.tab 文件。

"如何激活元设备"

对于双串配置,请配置介体主机,检查介体数据的状态,并且在必要时修正错误的介体数据。 

"如何添加介体主机" "如何检查介体数据的状态" "如何修正错误的介体数据"

创建并安装群集文件系统。 

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

如何设置元设备名称和磁盘集的数目

该过程描述如何计算配置所需的元设备名称的数量,以及如何修改 /kernel/drv/md.conf 文件。


提示:

元设备名称的缺省数目是 128。许多配置需要的元设备名称数 大于缺省值。在实现配置前增大该数目可节约以后的管理时间。


  1. 通过确定在每个磁盘集中使用的最大元设备名称,计算出所需的元设备名称的数量。

    该需求依据元设备名称,而非依据实 际的数量。例如,如果元设备名称的范围在 d950d1000 之间,则 Solstice DiskSuite 软件需要 1000 个名称,而不是 50 个名称。

    群集中的每个磁盘集最多可以有 8192 个元设备名称。

  2. 计算群集中磁盘集的总预期数,然后为专用磁盘管理添加一个磁盘集。

    群集最多可以有 32 个磁盘集。

  3. 编辑 /kernel/drv/md.conf 文件。


    小心:小心:

    所有群集节点(或群集对拓扑中的群集对)必须有完全相同 的 /kernel/drv/md.conf 文件,而不管每个节点向多少个磁盘集提供服 务的。不按本指南操作可能导致严重的 Solstice DiskSuite 错误并且可能损失数据。


    1. 如果计算的元设备名数量超过 128,则 将 nmd 字段设置为磁盘集中使用的最大元设备名称值。

    2. md_nsets 字段设置为 步骤 2 中 计算出的数量。

    执行重新配置重新引导 后,对 /kernel/drv/md.conf 文件的所作的更改生效。

从此处可转到何处

要创建本地复制品,请转到"如何创建元设备状态数据库的复制品"

如何创建元设备状态数据库的复制品

对群集中的每个节点执行该过程。

  1. 成为群集节点的超级用户。

  2. 使 用 metadb 命令在一个或多个本地磁盘上创建每个群集节点的复制品。

    有关详细信息,请参考 metadb(1M) 手册页和 Solstice DiskSuite 文档。


    提示:

    要为元设备状态数据提供保护(这是运行 Solstice DiskSuite 软件所必需的),请至少为每个节点 创建三个复制品。此外,将复制品放在多个磁盘上可在其中的一个磁盘出现故障时免遭损失。


  3. 检验复制器。


    # metadb
    

示例-创建元设备状态数据库 复制品

下面的示例显示三个元设备状态数据库复制品,它们分别是在不同的磁盘上 创建的。


# metadb -af c0t0d0s7 c0t1d0s7 c1t0d0s7
# metadb
flags            first blk      block count
    a       u       16            1034         /dev/dsk/c0t0d0s7
    a       u       1050          1034         /dev/dsk/c0t1d0s7
    a       u       2084          1034         /dev/dsk/c1t0d0s7

从此处可转到何处

如果要镜像根磁盘中的文件系统,请转到"镜像根磁盘"。或者,要创建 Solstice DiskSuite 磁盘集,请转到"如何创建磁盘集"

镜像根磁盘

镜像根磁盘可防止因系统磁盘故障而关闭群集节点。四种类型的文件系统可驻留在根磁盘中。文件系统类型的镜像方法各不相同。

使用下列过程镜像各种类型的文件系统。


注意:

这些镜像过程中的某些步骤可能导致类似于下面的错误消息,这种消息不会造成损害,因而可以忽略。



metainit: dg-schost-1: d1s0: not a metadevice

小心:小心:

对于本地磁盘镜像,在指定磁盘名称时不要 将 /dev/global 用作路径。为非群集文件系统的指定该路径会导致系统无法引导。


如何镜像根 (/) 文件系统

使用此过程镜像根 (/) 文件系统。

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

  2. 使用 metainit(1M) 命令将根片处于单片(单向)并置状态。


    # metainit -f submirror1 1 1 root-disk-slice
    
  3. 创建第二个并置。


    # metainit -f submirror2 1 1 submirror-disk-slice
    
  4. 创建包含一个子镜像的单向镜像。


    注意:

    镜像的元设备名称在整个群集中必须是唯一的。



    # metainit mirror -m submirror1
    
  5. 运行 metaroot(1M) 命令。

    该命令编辑 /etc/vfstab 文件 和 /etc/system 文件,以便系统可以通过元设备上的 根 (/) 文件系统来引导。


    # metaroot mirror
    
  6. 运行 lockfs(1M) 命令。

    该命令将所有事务从日志中刷新出来,并将这些事务写入到所有已安装的 UFS 文件系统的 主文件系统中。


    # lockfs -fa
    
  7. 从节点中抽出所有资源组或设备组。


    # scswitch -S -h node
    
    -S

    抽出所有资源组和设备组

    -h node

    指定从中抽出资源组或设备组的节点的名称

  8. 重新引导节点。


    # shutdown -g 0 -y -i 6
    
  9. 使用 metattach(1M) 命令将第二个子镜像与镜像连接。


    # metattach mirror submirror2
    
  10. 如果用于镜像根磁盘的磁盘物理连接到多个节点(多端口连接),请启用 用于镜像根磁盘的磁盘的原始磁盘设备组的 localonly 特性。

    如果引导设备与多个节点连接,则必须启用 localonly 特性以 防止无意中使节点与其引导设备隔离。

    1. 如有必要,可使用 scdidadm -L 命令显示原始 磁盘设备组的完整设备标识 (DID) 伪驱动程序名称。

      在下面的示例中,原始磁盘设备组名称 dsk/d2 是输出的第三列的一部 分,这一列就是完整的 DID 伪驱动程序名称。


      # scdidadm -L
      ...
      1         phys-schost-3:/dev/rdsk/c1t1d0     /dev/did/rdsk/d2
      # scconf -c -D name=dsk/d2,localonly=true
      

      有关 localonly 特性的详细信息,请参 阅 scconf_dg_rawdisk(1M) 手册页。

    2. 使用 scconf(1M) 命令启用 localonly 特性。


      # scconf -c -D name=rawdisk_groupname,localonly=true
      
      -D name=rawdisk_groupname

      指定原始磁盘设备组的名称

  11. 记录备用引导路径,以备将来可能用到。


    # ls -l /dev/rdsk/root-disk-slice
    
  12. 在群集中每个仍运行的节点上 重复步骤 1步骤 11的操作。

    确保镜像的每个元设备名称在群集中是唯一的。

示例-镜像根 (/) 文件系统

下面的示例显示 phys-schost-1 节点的 镜像 d0 的创建,该镜像由分区 c0t0d0s0 的子 镜像 d10 和分区 c2t2d0s0 的子镜 像 d20 组成。磁盘 c2t2d0 是一个多端口磁盘,所以 启用 localonly 特性。


(Create the mirror:)
# metainit -f d10 1 1 c0t0d0s0
d11: Concat/Stripe is setup
# metainit -f d20 1 1 c2t2d0s0
d12: Concat/Stripe is setup
# metainit d0 -m d10
d10: Mirror is setup
# metaroot d0
# lockfs -fa
 
(Reboot the node:)
# scswitch -S -h phys-schost-1
# shutdown -g 0 -y -i 6
 
(Attach the second submirror:)
# metattach d0 d20
d0: Submirror d20 is attached
 
(Enable the localonly property of the mirrored disk's raw disk device group:)
# scconf -c -D name=dsk/d2,localonly=true
 
(Record the alternate boot path:)
# ls -l /dev/rdsk/c2t2d0s0
lrwxrwxrwx  1 root     root          57 Apr 25 20:11 /dev/rdsk/c2t2d0s0 ->
../../devices/node@1/pci@1f,0/pci@1/scsi@3,1/disk@2,0:a,raw

从此处可转到何处

要镜像全局名称 空间 /global/.devices/node@nodeid,请 转到"如何镜像全局名称空间"

如何镜像全局名称空间

使用该过程镜像全局名称 空间 /global/.devices/node@nodeid

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

  2. 使全局名称空间片处于单片(单向)并置状态。


    # metainit -f submirror1 1 1 disk-slice
    
  3. 创建第二个并置。


    # metainit -f submirror2 1 1 submirror-disk-slice
    
  4. 创建包含一个子镜像的单向镜像。


    注意:

    镜像的元设备名称在整个群集中必须是唯一的。



    # metainit mirror -m submirror1
    
  5. 将第二个子镜像与镜像连接。

    该连接启动子镜像的同步。


    # metattach mirror submirror2
    
  6. 编辑 /global/.devices/node@nodeid 文件系统的 /etc/vfstab 文件条目。

    device to mountdevice to fsck 列中的名称替换为镜像名称。


    # vi /etc/vfstab
    #device        device          mount           FS      fsck    mount   mount
    #to mount      to fsck         point           type    pass    at boot options
    #
    /dev/md/dsk/mirror /dev/md/rdsk/mirror /global/.devices/node@nodeid ufs 2 no global
  7. 在群集中每个仍在运行的节点上重复步骤 1步骤 6的操作。

    确保镜像的每个元设备名称在整个群集中是唯一的。

  8. 等待在步骤 5中启动的镜像同步的完成。

    使用 metastat(1M) 命令查看镜像状态。


    # metastat mirror
    
  9. 如果用于镜像全局名称空间的磁盘物理连接到多个节点(多端口连接),请启用 用于镜像全局名称空间的磁盘的原始磁盘设备组的 localonly 特性。

    如果引导设备与多个节点连接,则必须启用 localonly 特性以 防止无意中使节点与其引导设备隔离。

    1. 如有必要,可使用 scdidadm -L 命令显示原始 磁盘设备组的完整设备标识 (DID) 伪驱动程序名称。

      在下面的示例中,原始磁盘设备组名称 dsk/d2 是输出的第三列的一部 分,这一列就是完整的 DID 伪驱动程序名称。


      # scdidadm -L
      ...
      1         phys-schost-3:/dev/rdsk/c1t1d0     /dev/did/rdsk/d2
      # scconf -c -D name=dsk/d2,localonly=true
      

      有关 localonly 特性的详细信息,请参阅 scconf_dg_rawdisk(1M) 手册页。

    2. 使用 scconf(1M) 命令启用 localonly 特性。


      # scconf -c -D name=rawdisk_groupname,localonly=true
      
      -D name=rawdisk_groupname

      指定原始磁盘设备组的名称

示例-镜像全局名称空间

下面的示例显示镜像 d101 的创建,该镜像 由 c0t0d0s3 分区的子镜像 d111 和分 区 c2t2d0s3 的子镜像 d121 组成。已更新 /global/.devices/node@1/etc/vfstab 文件项,以使用 d101。磁盘 c2t2d0 是一个多端口连接的磁盘,因而启用了 localonly 特性。


(Create the mirror:)
# metainit -f d111 1 1 c0t0d0s3
d111: Concat/Stripe is setup
# metainit -f d121 1 1 c2t2d0s3
d121: Concat/Stripe is setup
# metainit d101 -m d111
d101: Mirror is setup
# metattach d101 d121
d101: Submirror d121 is attached
 
(Edit the /etc/vfstab file:)
# vi /etc/vfstab
#device        device          mount           FS      fsck    mount   mount
#to mount      to fsck         point           type    pass    at boot options
#
/dev/md/dsk/d101 /dev/md/rdsk/d101 /global/.devices/node@1 ufs 2 no global
 
(View the sync status:)
# metastat d101
d101: Mirror
      Submirror 0: d111
         State: Okay
      Submirror 1: d121
         State: Resyncing
      Resync in progress: 15 % done
...
 
(Identify the DID name of the mirrored disk's raw disk device group:)
# scdidadm -L
...
1         phys-schost-3:/dev/rdsk/c2t2d0     /dev/did/rdsk/d2
 
(Enable the localonly property of the mirrored disk's raw disk device group:)
# scconf -c -D name=dsk/d2,localonly=true

从此处可转到何处

要镜像无法在正常系统使用期间卸装的文件 系统,如 /usr/optswap,请 转到"如何镜像不能卸装的文件系统"。要镜像用户定义的文件系统,请转到"如何镜像用户定义的文件系统"

或者,如要创建磁盘集,请转到"如何创建磁盘集"

如何镜像不能卸装的文件系统

使用该过程镜像无法在正常系统使用期间卸装的文件 系统,如 /usr/optswap

  1. 成为群集的节点的超级用户。

  2. 使可卸装的文件系统驻留的片处于单片(单向)并置状态。


    # metainit -f submirror1 1 1 disk-slice
    
  3. 创建第二个并置。


    # metainit -f submirror2 1 1 submirror-disk-slice
    
  4. 创建包含一个子镜像的单向镜像。


    注意:

    镜像的元设备名称在群集中必是唯一的。



    # metainit mirror -m submirror1
    
  5. 为要镜像的每个可卸装的文件系统 重复步骤 1步骤 4的操作。

  6. 在每个节点上,为镜像的每个可卸装的文件系统编辑 /etc/vfstab 文件条目。

    device to mountdevice to fsck 列中的名称替换为镜像名称。


    # vi /etc/vfstab
    #device        device          mount           FS      fsck    mount   mount
    #to mount      to fsck         point           type    pass    at boot options
    #
    /dev/md/dsk/mirror /dev/md/rdsk/mirror /file-system  ufs     2       no      global
  7. 从节点中抽出所有资源组或设备组。


    # scswitch -S -h node
    
    -S

    抽出所有资源组和设备组

    -h node

    指定从中抽出资源组或设备组的节点的名称

  8. 重新引导节点。


    # shutdown -g 0 -y -i 6
    
  9. 将第二个子镜像与每个镜像连接。

    该连接启动子镜像的同步。


    # metattach mirror submirror2
    
  10. 等待在步骤 9中启动的镜像同步的完成。

    使用 metastat(1M) 命令查看镜像状态。


    # metastat mirror
    
  11. 如果用于镜像可卸装的文件系统的磁盘物理连接到多个节点(多端口连接),请启用 用于镜像可卸装的文件系统的磁盘的原始磁盘设备组的 localonly 特性。

    如果引导设备与多个节点连接,则必须启用 localonly 特性以 防止无意中使节点与其引导设备隔离。

    1. 如有必要,可使用 scdidadm -L 命令显示原始 磁盘设备组的完整设备标识 (DID) 伪驱动程序名称。

      在下面的示例中,原始磁盘设备组名称 dsk/d2 是输出的第三列的一部 分,这一列就是完整的 DID 伪驱动程序名称。


      # scdidadm -L
      ...
      1            phys-schost-3:/dev/rdsk/c1t1d0    /dev/did/rdsk/d2
      # scconf -c -D name=dsk/d2,localonly=true
      

      有关 localonly 特性的详细信息,请参阅 scconf_dg_rawdisk(1M) 手册页。

    2. 使用 scconf(1M) 命令启用 localonly 特性。


      # scconf -c -D name=rawdisk_groupname,localonly=true
      
      -D name=rawdisk_groupname

      指定原始磁盘设备组的名称

示例-镜像可卸装的文件系统

下面的示例显示在节点 phys-schost-1 上创建 镜像 d1 以镜像 /usr(驻留 在 c0t0d0s1 上)。镜像 d1 由 分区 c0t0d0s1 中的子镜像 d11 和分 区 c2t2d0s1 中的子镜像 d21 组成。/usr/etc/vfstab 文件条目更新为使用镜像名称 d1。磁盘 c2t2d0 是一个多端口连接的磁盘,因而启用了 localonly 特性。


(Create the mirror:)
# metainit -f d11 1 1 c0t0d0s1
d11: Concat/Stripe is setup
# metainit -f d21 1 1 c2t2d0s1
d21: Concat/Stripe is setup
# metainit d1 -m d11
d1: Mirror is setup
 
(Edit the /etc/vfstab file:)
# vi /etc/vfstab
#device        device          mount           FS      fsck    mount   mount
#to mount      to fsck         point           type    pass    at boot options
#
/dev/md/dsk/d1 /dev/md/rdsk/d1 /usr            ufs     2       no      global
 
(Reboot the node:)
# scswitch -S -h phys-schost-1
# shutdown -g 0 -y -i 6
 
(Attach the second submirror:)
# metattach d1 d21
d1: Submirror d21 is attached
 
(View the sync status:)
# metastat d1
d1: Mirror
      Submirror 0: d11
         State: Okay
      Submirror 1: d21
         State: Resyncing
      Resync in progress: 15 % done
...
 
(Identify the DID name of the mirrored disk's raw disk device group:)
# scdidadm -L
...
1         phys-schost-3:/dev/rdsk/c2t2d0     /dev/did/rdsk/d2
 
(Enable the localonly property of the mirrored disk's raw disk device group:)
# scconf -c -D name=dsk/d2,localonly=true

从此处可转到何处

要镜像用户定义的文件系统,请转到"如何镜像用户定义的文件系统"。或者,要创建磁盘集,请转到"如何创建磁盘集"

如何镜像用户定义的文件系统

使用此过程镜像用户定义的文件系统。在此过程中,节点不需要重新引导。

  1. 成为群集的节点的超级用户。

  2. 使用户定义的文件系统驻留的片处于单片(单向)并置状态。


    # metainit -f submirror1 1 1 disk-slice
    
  3. 创建第二个并置。


    # metainit -f submirror2 1 1 submirror-disk-slice
    
  4. 创建包含一个子镜像的单向镜像。


    注意:

    镜像的元设备名称在群集中必是唯一的。



    # metainit mirror -m submirror1
    
  5. 为要镜像的每个用户定义的文件系统 重复步骤 1步骤 4的操作。

  6. 在每个节点中,为镜像的每个用户定义的文件系统 编辑 /etc/vfstab 文件条目。

    device to mountdevice to fsck 列中的名称替换为镜像名称。


    # vi /etc/vfstab
    #device        device          mount           FS      fsck    mount   mount
    #to mount      to fsck         point           type    pass    at boot options
    #
    /dev/md/dsk/mirror /dev/md/rdsk/mirror /file-system  ufs     2       no      global
  7. 将第二个子镜像与镜像连接。

    该连接启动子镜像的同步。


    # metattach mirror submirror2
    
  8. 等待在步骤 7中启动的镜像同步的完成。

    使用 metastat(1M) 命令查看镜像状态。


    # metastat mirror
    
  9. 如果用于镜像用户定义的文件系统的磁盘物理连接到多个节点(多端口连接),则 启用用于镜像用户定义的文件系统的磁盘的原始磁盘设备组的 localonly 特性。

    如果引导设备与多个节点连接,则必须启用 localonly 特性以 防止无意中使节点与其引导设备隔离。

    1. 如有必要,可使用 scdidadm -L 命令显示原始 磁盘设备组的完整设备标识 (DID) 伪驱动程序名称。

      在下面的示例中,原始磁盘设备组名称 dsk/d4 是输出的第三列的一 部分,这一列就是完整的 DID 伪驱动程序名称。


      # scdidadm -L
      ...
      1         phys-schost-3:/dev/rdsk/c1t1d0     /dev/did/rdsk/d2
      # scconf -c -D name=dsk/d2,localonly=true
      

      有关 localonly 特性的详细信息,请参阅 scconf_dg_rawdisk(1M) 手册页。

    2. 使用 scconf(1M) 命令启用 localonly 特性。


      # scconf -c -D name=rawdisk_groupname,localonly=true
      
      -D name=rawdisk_groupname

      指定原始磁盘设备组的名称

示例-镜像用户定义的文件系统

下面的示例显示创建镜像 d4 以镜 像 /home/home 驻留 在 c0t0d0s4中。镜像 d4 由 分区 c0t0d0s4 中的子镜像 d14 和分 区 c2t2d0s4 中的子镜像 d24 组成。/home/etc/vfstab 文件条目更新为使用镜像名称 d4。磁盘 c2t2d0 是一个多端口连接的磁盘,因而启用了 localonly 特性。


(Create the mirror:)
# metainit -f d14 1 1 c0t0d0s4
d14: Concat/Stripe is setup
# metainit -f d24 1 1 c2t2d0s4
d24: Concat/Stripe is setup
# metainit d4 -m d14
d4: Mirror is setup
 
(Edit the /etc/vfstab file:)
# vi /etc/vfstab
#device        device          mount           FS      fsck    mount   mount
#to mount      to fsck         point           type    pass    at boot options
#
/dev/md/dsk/d4 /dev/md/rdsk/d4 /home           ufs     2       no      global
 
(Attach the second submirror:)
# metattach d4 d24
d4: Submirror d24 is attached
 
(View the sync status:)
# metastat d4
d4: Mirror
      Submirror 0: d14
         State: Okay
      Submirror 1: d24
         State: Resyncing
      Resync in progress: 15 % done
...
 
(Identify the DID name of the mirrored disk's raw disk device group:)
# scdidadm -L
...
1         phys-schost-3:/dev/rdsk/c2t2d0     /dev/did/rdsk/d2
 
(Enable the localonly property of the mirrored disk's raw disk device group:)
# scconf -c -D name=dsk/d2,localonly=true

从此处可转到何处

要创建磁盘集,请转到"如何创建磁盘集"

如何创建磁盘集

为群集中的每个磁盘集 执行该过程。

  1. 如果 /.rhosts 文件不用于列出群集 节点名称,请确保 root 是组 14 的成员。


    # vi /etc/group
    ...
    sysadmin::14:root
    ...
  2. 确保有本地元设备状态数据库 的复制品。

    如有必要,可参考过程"如何创建元设备状态数据库的复制品"

  3. 成为将主控磁盘集的群集节点的超级用户。

  4. 创建磁盘集。

    该命令还将磁盘集注册为 Sun Cluster 磁盘设备组。


    # metaset -s setname -a -h nodename1 nodename2
    
    -s setname

    指定磁盘集名称

    -a

    添加(创建)磁盘集

    -h nodename1

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

    nodename2

    指定管理磁盘集的辅节点的名称

  5. 验证新磁盘集的状态。


    # metaset -s setname
    

示例-创建磁盘集

下面的命令将创建两个磁盘集,dg-schost-1dg-schost-2,同时将节点 phys-schost-1phys-schost-2 分配为潜在的主节点。


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

从此处可转到何处

要为驱动器添加磁盘集,请转到"如何为磁盘集添加驱动器"

为驱动器 添加磁盘集

当磁盘驱动器添加到磁盘集中时,Solstice DiskSuite 对它进行如下的重新分区,以 便磁盘集的元设备状态数据库可以存放到驱动器上。

如何为磁盘集添加驱动器
  1. 成为节点的超级用户。

  2. 确保已创建磁盘集。

    如有必要,请参考"如何创建磁盘集"

  3. 列出 设备 ID (DID) 映射。


    # scdidadm -L
    

    • 选择将主控或可能 主控磁盘集的群集节点共享的驱动器。

    • 为磁盘集添加驱动器时,请使用完整 的 DID 伪驱动程序名称。

    输出的第一列是 DID 实例编号,第二列是完整 路径(物理路径),第三列是完整的 DID 伪驱动程序名称(伪路径)。对于相同的 DID 示例 编号,共享驱动器具有不止一个条目。

    在以下示例中,DID 实例编号 2 条目指示一个 由 phys-schost-1phys-schost-2 共享 的驱动器,完整 DID 名称为 /dev/did/rdsk/d2


    1       phys-schost-1:/dev/rdsk/c0t0d0 /dev/did/rdsk/d1
    2       phys-schost-1:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    2       phys-schost-2:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    3       phys-schost-1:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    3       phys-schost-2:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    ...
  4. 获取磁盘集的所有权。


    # metaset -s setname -t
    
    -s setname

    指定磁盘集名称

    -t

    获取磁盘集的所有权

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

    使用完整的 DID 伪驱动程序名称。


    注意:

    向磁盘集中添加驱动器时不要使用低级别 设备名称 (cNtXdY)。因为低级别设备名称是本地名称,并且在群集中不是唯一的,使用该名称可能使元集合 不能切换。



    # metaset -s setname -a DIDname
    
    -a DIDname

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

  6. 验证磁盘集和驱动器的状态。


    # metaset -s setname
    

示例-为磁盘集添加驱动器

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


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

从此处可转到何处

要重新分区在元设备中使用的驱动器,请转到 "如何重新分区 磁盘集中的驱动器"

如何重新分区 磁盘集中的驱动器

metaset(1M) 命令重新分区磁盘集中的驱动器,使每个驱动 器有一小部分保留在第 7 片中,供 Solstice DiskSuite 软件使用。每个驱动器的剩余空间放在第 0 片中。要 更有效地使用磁盘,请使用该过程修改磁盘的布局。将空间分配给第 1 至 6 片使您能够在设置元设备时 使用这些片。

  1. 成为群集节点的超级用户。

  2. 使 用 format(1M) 命令更改磁盘集中每个驱动器的磁盘分区。

    当您为一个驱动器重新分区时,必须满足以下 条件,以避免 metaset(1M) 命令对磁盘重新分区。

    • 创建从柱面 0 开始的分区 7,其大小应足以容纳状态 数据库复制品(大约 2 M 字节)。

    • 将第 7 片中 的 Flag 字段设置 为 V_UNMT(不可卸装)并且不要将它设置为只读。

    • 不允许第 7 片重叠磁盘中的任何其他片。

有关详细信息,请参考 format(1M) 手册页。

从此处可转到何处

要使用 md.tab 文件定义元设备,请转到"如何创建 md.tab 文件"

如何创建 md.tab 文件

为群集中的每个节点创建一个 /etc/lvm/md.tab 文件。


注意:

使用 Solstice DiskSuite 软件时,确保本地元设备的名称不同于用于构成磁盘集的 设备标识 (DID) 名称。例如,如果在磁盘集中使用 DID 名称 /dev/did/dsk/d3,则 不要在配置本地元设备时使用名称 /dev/md/dsk/d3


  1. 成为群集节点的超级用户。

  2. 列出在 创建 md.tab 文件时引用的 DID 映射。

    md.tab 文件中 用完整的 DID 伪驱动程序名称代替较低级别的设备 名称 (cNtXdY)。


    # scdidadm -L
    

    在下面的示例中,输出的第一列是 DID 实例编号,第二列是 完整路径(物理路径),第三列是完整的 DID 伪驱动程序名称(伪路径)。


    1       phys-schost-1:/dev/rdsk/c0t0d0 /dev/did/rdsk/d1
    2       phys-schost-1:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    2       phys-schost-2:/dev/rdsk/c1t1d0 /dev/did/rdsk/d2
    3       phys-schost-1:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    3       phys-schost-2:/dev/rdsk/c1t2d0 /dev/did/rdsk/d3
    ...
  3. 创建 一个 /etc/lvm/md.tab 文件并使用您的首选文本编辑器 来手工编辑该文件。

有关创建 md.tab 文件的详细信息,请参考 Solstice DiskSuite 文档。

示例-md.tab 文件样例

下面的 md.tab 文件样例定义名为 dg-schost-1 的磁盘集的元设备。md.tab 文件中的行的排序并不重要。


dg-schost-1/d0 -t dg-schost-1/d1 dg-schost-1/d4
    dg-schost-1/d1 -m dg-schost-1/d2
        dg-schost-1/d2 1 1 /dev/did/rdsk/d1s4
        dg-schost-1/d3 1 1 /dev/did/rdsk/d55s4
    dg-schost-1/d4 -m dg-schost-1/d5
        dg-schost-1/d5 1 1 /dev/did/rdsk/d3s5
        dg-schost-1/d6 1 1 /dev/did/rdsk/d57s5

md.tab 文件样例的构成如下。


注意:

如果磁盘上有将用于子镜像的现有数据,则必须在元设备安装之 前备份该数据并且将其恢复到镜像中。


从此处可转到何处

要激活在 md.tab 文件中定义的元设备,请转到"如何激活元设备"

如何激活元设备

  1. 确保满足下列需求。

    • 您对将要执行命令的节点上的磁盘集具有所有权。

    • md.tab 文件 位于 /etc/lvm 目录中。

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

  3. 获取磁盘集的所有权。


    # metaset -s setname -t
    
    -s setname

    指定磁盘集名称

    -t

    获取磁盘集的所有权

  4. 激活磁盘集的元设备,该设备是 在 md.tab 文件中定义的。


    # metainit -s setname -a
    
    -a

    激活 md.tab 文件中的所有元设备

  5. 为每个主设备和日志设备连接第二个子 镜像 (submirror2)。

    当激活 md.tab 文件中的元设备时,只连接 了主设备和日志设备的第一个子 镜像 (submirror1),所 以必须手动连接 submirror2


    # metattach mirror submirror2
    
  6. 为群集中的每个磁盘集 重复 步骤 4步骤 5

    如有必要,请从与磁盘连接的另一个节点 运行 metainit(1M) 命令。该步骤对于群集对拓扑是必需的,并非所有节点都能 访问该拓扑中的磁盘。

  7. 检查元设备的状态。


    # metastat -s setname
    

示例-激活 md.tab 文件中的元设备

在下面的示例中,在 md.tab 文件中为磁盘集 dg-schost-1 定义的所有元设备均将激活。然 后主设备 dg-schost-1/d1 和日志 设备 dg-schost-1/d4 两者的第二子镜像被激活。


# metainit -s dg-schost-1 -a
# metattach dg-schost-1/d1 dg-schost-1/d3
# metattach dg-schost-1/d4 dg-schost-1/d6

从此处可转到何处

如果群集包含刚好用两个磁盘群组和两个节点配置的磁盘集,则这些磁盘 集需要介体。要添加介体主机,请转到"介体概述"。或者,如要创建群集文件 系统,请转到"如何添加群集文件系统"

介体概述

介体或介体主机是存储介体数据的群集节点。介体数据提供其他介体的位置信息 并包含一个提交计数,该计数与存储在数据库复制品中的提交计数完全相同。该提交计数用于 确认介体数据与数据库复制品中的数据是同步的。

对于正好用两个磁盘串和两个群集节点配置的所有 Solstice DiskSuite 磁盘集,介体是必需的。磁 盘串由一个磁盘群组、其物理磁盘、外壳到节点的电缆以及接口适配卡组成。使用介体使 Sun Cluster 软件能够确保在双串配置的单串失败实例中展示最当前数据。下列规则适用于使用介体的双串配置。

这些规则不要求整个群集刚好有两个节点。而只要求这些具有两个磁盘串的磁盘集必须正好 与两个节点连接。这些规则之下允许有 N+1 群集和许多其他拓扑。

如何添加介体主机

在您的配置需要介体时执行此过程。

  1. 成为一个节点的超级用户,该节点当前主控着您想为其添加 介体主机的磁盘集。

  2. 运行 metaset(1M) 命令以将与磁盘集连接的每个节点添加为该磁盘集的介体主机。


    # metaset -s setname -a -m mediator_host_list
    
    -s setname

    指定磁盘集名称

    -a

    添加到磁盘集

    -m mediator_host_list

    指定作为磁盘集的介体主机添加的节点的名称

有关 metaset 命令的介体特定的选项的详细信息,请 参阅 mediator(7) 手册页。

示例-添加介体主机

下面的示例将 节点 phys-schost-1phys-schost-2 作为 磁盘集 dg-schost-1 的介体主机来添加。这两个命令都从 节点 phys-schost-1 中运行。


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

从此处可转到何处

要检查介体数据的状态,请转到"如何检查介体数据的状态"

如何检查介体数据的状态

  1. 运行 medstat 命令。


    # medstat -s setname
    
    -s setname

    指定磁盘集名称

    如果“状态”字段中的值是 Bad,则按照 过程 "如何修正错误的介体数据" 来修复受影响的介体主机。

    有关详细信息,请参阅 medstat(1M) 手册页。

从此处可转到何处

如果其中一个介体主机的介体数据是错误的,请转到"如何修正错误的介体数据"以修正问题。否则,要创建群集文件系统,请转到"如何添加群集文件系统"

如何修正错误的介体数据

执行此过程以修复错误的介体数据。要确定介体数据的状态,请按过程 "如何检查介体数据的状态" 操作。

  1. 成为拥有受影响的磁盘集的节点的超级用户。

  2. 从所有受影响的磁盘集中移去具有错误介体数据的介体主机。


    # metaset -s setname -d -m mediator_host_list
    
    -s setname

    指定磁盘集名称

    -d

    从磁盘集中删除

    -m mediator_host_list

    指定将作为磁盘集的介体主机删除的节点的名称

  3. 恢复介体主机。


    # metaset -s setname -a -m mediator_host_list
    
    -a

    添加到磁盘集

    -m mediator_host_list

    指定将作为磁盘集的介体主机来添加的节点的名称

有关 metaset 命令的介体特定的选项的详细信息,请参阅 mediator(7) 手册页。

从此处可转到何处

要创建群集文件系统,请转到"如何添加群集文件系统"