Sun Cluster 软件安装指南(适用于 Solaris OS)

第 4 章 配置 Solaris Volume Manager 软件

使用本章中的过程以及规划卷管理中的规划信息为 Solaris Volume Manager 软件配置本地磁盘和多主机磁盘。有关详细信息,请参阅 Solaris Volume Manager 文档。


注 –

Solaris Management Console 的增强存储模块与 Sun Cluster 软件不兼容。请使用命令行界面或 Sun Cluster 实用程序来配置 Solaris Volume Manager 软件。


本章包含以下几节:

配置 Solaris Volume Manager 软件

下表列出了为 Sun Cluster 配置而配置 Solaris Volume Manager 软件所需执行的任务。

表 4–1 任务表:配置 Solaris Volume Manager 软件

任务 

指导 

1. 规划 Solaris Volume Manager 配置的布局。 

规划卷管理

2.(仅适用于 Solaris 9)计算配置所需的卷名称和磁盘集的数目,并修改 /kernel/drv/md.conf 文件。

SPARC: 如何设置卷名称和磁盘集的数目

3. 在本地磁盘上创建状态数据库副本。 

如何创建状态数据库副本

4.(可选)对根磁盘上的文件系统进行镜像。

镜像根磁盘

ProcedureSPARC: 如何设置卷名称和磁盘集的数目


注 –

以下过程仅对 Solaris 9 OS 来说是必需的。如果群集是在 Solaris 10 OS 上运行,请继续执行如何创建状态数据库副本

在 Solaris 10 版本中,Solaris Volume Manager 的功能已得到增强,它可以动态配置卷。不再需要编辑 /kernel/drv/md.conf 文件中的 nmdmd_nsets 参数。根据需要动态创建新卷。


本过程介绍如何确定配置所需的 Solaris Volume Manager 卷名称和磁盘集的数目。 本过程还介绍如何修改 /kernel/drv/md.conf 文件以指定这些数目。


提示 –

每个磁盘集的卷名称的默认数目是 128,但许多配置需要的数目要多于该默认数目。着手配置前请增大这个数目,以便节省今后管理的时间。

同时,应尽可能使 nmd 字段和 md_nsets 字段的值保持最低。所有可能设备的内存结构由 nmdmd_nsets 确定,即使这些设备尚未创建。为了获得最佳性能,请使 nmdmd_nsets 的值仅比要使用的卷的数目略高一点。


开始之前

准备好已填写完的设备组配置工作单

  1. 计算群集中所需的磁盘集的总数,然后再添加一个磁盘集用于专用磁盘管理。

    群集最多可以包含 32 个磁盘集,31 个磁盘集用于一般用途,外加一个磁盘集用于专用磁盘管理。磁盘集的默认数为 4。您可以将此值应用于步骤 3md_nsets 字段。

  2. 计算群集中任何磁盘集所需的最大卷名称数目。

    每个磁盘集最多可有 8192 个卷名称。应在步骤 3 中将此值提供给 nmd 字段。

    1. 确定每个磁盘集所需的卷名称的数量。

      如果您使用本地卷,请确保其上挂载了全局设备文件系统 (/global/.devices/node@ nodeid) 的每个本地卷名称在整个群集中都是唯一的,并且没有使用与群集中任何设备 ID 名称相同的名称。


      提示 –

      选择专用于设备 ID 名称的数值范围,以及供每个节点专用于其本地卷名称的数值范围。例如,设备 ID 名称可以使用从 d1d100 的范围;节点 1 上的本地卷名称可以使用的数值范围为 d100d199。节点 2 上的本地卷名称可以使用的数值范围为 d200d299


    2. 计算要在任何磁盘集中使用的卷名称的最大值。

      要设置的卷名称的数量取决于卷名称的,而不是实际数量。例如,如果卷名称的范围为 d950d1000,Solaris Volume Manager 软件要求将该值设置为 1000 个名称,而不是 50 个。

  3. 在每个节点上,成为超级用户并编辑 /kernel/drv/md.conf 文件。


    Caution – Caution –

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


    1. md_nsets 字段设置为您在步骤 1 中确定的值。

    2. nmd 字段设置为您在步骤 2 中确定的值。

  4. 在每个节点上,执行重新配置后的重新引导。


    phys-schost# touch /reconfigure
    phys-schost# shutdown -g0 -y -i6
    

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

接下来的操作

创建本地状态数据库副本。请转到如何创建状态数据库副本

Procedure如何创建状态数据库副本

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

  1. 成为超级用户。

  2. 在一个或多个本地设备上为每个群集节点创建状态数据库拷贝。

    使用物理名称 (cNtXdY sZ) 而不是设备 ID 名称 (dN) 来指定要使用的分片。


    phys-schost# metadb -af slice-1 slice-2 slice-3
    

    提示 –

    要为状态数据提供保护(这是运行 Solaris Volume Manager 软件所必需的),则至少为每个节点创建三个副本。此外,您可以将拷贝放在多个设备上,以在其中一个设备出现故障时提供保护。


    有关详细信息,请参见 metadb(1M) 手册页和您的 Solaris Volume Manager 文档。

  3. 检验副本。


    phys-schost# metadb
    

    metadb 命令显示副本列表。


示例 4–1 创建状态数据库副本

以下示例显示了三个状态数据库副本。每个拷贝分别创建在不同的设备上。


phys-schost# metadb -af c0t0d0s7 c0t1d0s7 c1t0d0s7
phys-schost# metadb
flags            first blk      block count
    a       u       16          8192         /dev/dsk/c0t0d0s7
    a       u       16          8192         /dev/dsk/c0t1d0s7
    a       u       16          8192         /dev/dsk/c1t0d0s7

接下来的操作

要在引导磁盘上镜像文件系统,请转到镜像根磁盘

否则,请转到在群集中创建磁盘集以创建 Solaris Volume Manager 磁盘集。

镜像根磁盘

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

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


Caution – Caution –

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


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

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


注 –

此过程提供了 Sun Cluster 命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简写形式的列表,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的附录 A “Sun Cluster 面向对象的命令”


  1. 成为超级用户。

  2. 将根盘片置于单盘片(单向)并置中。

    指定根磁盘分片的物理磁盘名称 (cNtXdY sZ)。


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


    phys-schost# metainit submirror2 1 1 submirror-disk-slice
    
  4. 创建具有一个子镜像的单向镜像。


    phys-schost# metainit mirror -m submirror1
    

    注 –

    如果该设备是用于挂载全局设备文件系统 /global/.devices/node@nodeid 的本地设备,则镜像的卷名称必须在整个群集中是唯一的。


  5. 为根 (/) 目录设置系统文件。


    phys-schost# metaroot mirror
    

    此命令编辑 /etc/vfstab/etc/system 文件,以便可以通过元设备或卷上的根 (/) 文件系统来引导系统。有关更多信息,请参见 metaroot(1M) 手册页。

  6. 清理所有文件系统。


    phys-schost# lockfs -fa
    

    该命令清理日志中的所有事务,并将这些事务写入所有已安装的 UFS 文件系统上的主文件系统中。有关更多信息,请参见 lockfs(1M) 手册页。

  7. 从节点中清空任何资源组或设备组。


    phys-schost# clnode evacuate from-node
    
    from-node

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

  8. 重新引导该节点。

    此命令重新装载新镜像的根 (/) 文件系统。


    phys-schost# shutdown -g0 -y -i6
    
  9. 将第二个子镜像与镜像连接。


    phys-schost# metattach mirror submirror2
    

    有关更多信息,请参见 metattach(1M) 手册页。

  10. 如果用来镜像根磁盘的磁盘与多个节点建立了物理连接(多宿主),请修改设备组的属性以支持将其用作镜像。

    确保设备组符合以下要求:

    • 原始磁盘设备组的节点列表中只能配置有一个节点。

    • 原始磁盘设备组的 localonly 属性必须已启用。如果节点的引导设备与多个节点相连,则启用 localonly 属性可防止节点与其引导设备之间发生意外隔离。

    1. 如有必要,可使用 cldevice 命令来确定原始磁盘设备组的名称。


      phys-schost# cldevice show node:/dev/rdsk/cNtXdY
      

      提示 –

      如果从与磁盘物理连接的某个节点发出此命令,则可以按照 cNtXdY 而非其完整设备路径名来指定磁盘的名称。


      在以下示例中,原始磁盘设备组的名称 dsk/d2 是 DID 设备名称的一部分。


      === DID Device Instances ===                   
      
      DID Device Name:                                /dev/did/rdsk/d2
        Full Device Path:                               phys-schost-1:/dev/rdsk/c1t1d0
        Full Device Path:                               phys-schost-3:/dev/rdsk/c1t1d0
      …

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

    2. 查看原始磁盘设备组的节点列表。


      phys-schost# cldevicegroup show dsk/dN
      

      设备组 dsk/d2 的输出结果类似如下内容:


      Device Group Name:                              dsk/d2
      …
        Node List:                                      phys-schost-1, phys-schost-3
      …
        localonly:                                      false
    3. 如果节点列表包含多个节点名称,请从节点列表中删除对其根磁盘进行了镜像的节点以外的所有节点。

      原始磁盘设备组节点列表中应只保留对其根磁盘进行了镜像的节点。


      phys-schost# cldevicegroup remove-node -n node devicegroup
      
      -n node

      指定要从设备组节点列表中删除的节点。

    4. 启用原始磁盘设备组的 localonly 属性(如果该属性尚未启用)。

      启用 localonly 属性之后,该原始磁盘设备组将由节点列表中的节点专用。如果引导设备与多个节点连接,则启用该特性可以防止意外地将节点与其引导设备隔开。


      phys-schost# cldevicegroup set -p localonly=true devicegroup
      
      -p

      设置设备组属性的值。

      localonly=true

      启用设备组的 localonly 属性。

      有关 localonly 属性的更多信息,请参见 cldevicegroup(1CL) 手册页。

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

    如果主引导设备出现故障,则可以通过这个备用引导设备进行引导。有关备用引导设备的更多信息,请参见《Solaris Volume Manager Administration Guide》中的“Special Considerations for Mirroring root (/)”《Solaris Volume Manager Administration Guide》中的“Creating a RAID-1 Volume”


    phys-schost# ls -l /dev/rdsk/root-disk-slice
    
  12. 在群集的其余每个节点上重复步骤 1步骤 11

    确保其上要挂载全局设备文件系统 /global/.devices/node@nodeid 的镜像的每个卷名称在整个群集中是唯一的。


示例 4–2 镜像根 (/) 文件系统

以下示例显示了在节点 phys-schost-1 上创建镜像 d0 的过程,该镜像由分区 c0t0d0s0 上的子镜像 d10 和分区 c2t2d0s0 上的子镜像 d20 组成。设备 c2t2d0 是一个多主机磁盘,所以启用了 localonly 属性。此示例还显示了要记录的备用引导路径。


phys-schost# metainit -f d10 1 1 c0t0d0s0
d11: Concat/Stripe is setup
phys-schost# metainit d20 1 1 c2t2d0s0
d12: Concat/Stripe is setup
phys-schost# metainit d0 -m d10
d10: Mirror is setup
phys-schost# metaroot d0
phys-schost# lockfs -fa
phys-schost# clnode evacuate phys-schost-1
phys-schost# shutdown -g0 -y -i6
phys-schost# metattach d0 d20
d0: Submirror d20 is attached
phys-schost# cldevicegroup show dsk/d2
Device Group Name:                              dsk/d2
…
  Node List:                                      phys-schost-1, phys-schost-3
…
  localonly:                                     false
phys-schost# cldevicegroup remove-node -n phys-schost-3 dsk/d2
phys-schost# cldevicegroup set -p localonly-true dsk/d2
phys-schost# 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,请转至如何镜像全局设备名称空间

要镜像无法卸载的文件系统,请转到如何镜像无法卸载的根文件系统 (/) 以外的文件系统

要镜像用户定义的文件系统,请转到如何镜像无法卸载的文件系统

否则,请转到在群集中创建磁盘集以创建磁盘集。

故障排除

此镜像过程中的某些步骤可能会导致产生类似于 metainit: dg-schost-1: d1s0: not a metadevice 的错误消息。这样的错误消息是无碍的,可以忽略。

Procedure如何镜像全局设备名称空间

要镜像全局设备名称空间 /global/.devices/node@nodeid/,请使用以下过程。


注 –

此过程提供了 Sun Cluster 命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简写形式的列表,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的附录 A “Sun Cluster 面向对象的命令”


  1. 成为超级用户。

  2. 将全局设备名称空间分片置于单分片(单向)串联中。

    需使用磁盘分片的物理磁盘名称 (cNtXdY sZ)。


    phys-schost# metainit -f submirror1 1 1 diskslice
    
  3. 创建第二个并置。


    phys-schost# metainit submirror2 1 1 submirror-diskslice
    
  4. 创建具有一个子镜像的单向镜像。


    phys-schost# metainit mirror -m submirror1
    

    注 –

    其上要挂载全局设备文件系统 /global/.devices/node@nodeid 的镜像的卷名称在整个群集中必须是唯一的。


  5. 将第二个子镜像与镜像连接。

    这一连接操作会启动子镜像的同步。


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

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


    phys-schost# 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) 命令查看镜像状态并检验镜像同步是否完成。


    phys-schost# metastat mirror
    
  9. 如果用来镜像全局设备名称空间的磁盘与多个节点建立了物理连接(多宿主),请确保设备组节点列表仅包含一个节点并且 localonly 属性已启用。

    确保设备组符合以下要求:

    • 原始磁盘设备组的节点列表中只能配置有一个节点。

    • 原始磁盘设备组的 localonly 属性必须已启用。如果节点的引导设备与多个节点相连,则启用 localonly 属性可防止节点与其引导设备之间发生意外隔离。

    1. 如有必要,可使用 cldevice 命令来确定原始磁盘设备组的名称。


      phys-schost# cldevice show node:/dev/rdsk/cNtXdY
      

      提示 –

      如果从与磁盘物理连接的某个节点发出此命令,则可以按照 cNtXdY 而非其完整设备路径名来指定磁盘的名称。


      在以下示例中,原始磁盘设备组的名称 dsk/d2 是 DID 设备名称的一部分。


      === DID Device Instances ===                   
      
      DID Device Name:                                /dev/did/rdsk/d2
        Full Device Path:                               phys-schost-1:/dev/rdsk/c1t1d0
        Full Device Path:                               phys-schost-3:/dev/rdsk/c1t1d0
      …

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

    2. 查看原始磁盘设备组的节点列表。


      phys-schost# cldevicegroup show dsk/dN
      

      设备组 dsk/d2 的输出结果类似如下内容:


      Device Group Name:                              dsk/d2
      …
        Node List:                                      phys-schost-1, phys-schost-3
      …
        localonly:                                      false
    3. 如果节点列表包含多个节点名称,请从节点列表中删除对其根磁盘进行了镜像的节点以外的所有节点。

      原始磁盘设备组节点列表中应只保留对其根磁盘进行了镜像的节点。


      phys-schost# cldevicegroup remove-node -n node devicegroup
      
      -n node

      指定要从设备组节点列表中删除的节点。

    4. 启用原始磁盘设备组的 localonly 属性(如果该属性尚未启用)。

      启用 localonly 属性之后,该原始磁盘设备组将由节点列表中的节点专用。如果引导设备与多个节点连接,则启用该特性可以防止意外地将节点与其引导设备隔开。


      phys-schost# cldevicegroup set -p localonly=true devicegroup
      
      -p

      设置设备组属性的值。

      localonly=true

      启用设备组的 localonly 属性。

      有关 localonly 属性的更多信息,请参见 cldevicegroup(1CL) 手册页。


示例 4–3 镜像全局设备名称空间

下面的示例显示了创建镜像 d101 的过程,该镜像由分区 c0t0d0s3 上的子镜像 d111 和分区 c2t2d0s3 上的子镜像 d121 组成。/global/.devices/node@1/etc/vfstab 文件项被更新为使用镜像名称 d101。设备 c2t2d0 是一个多主机磁盘,所以启用了 localonly 属性。


phys-schost# metainit -f d111 1 1 c0t0d0s3
d111: Concat/Stripe is setup
phys-schost# metainit d121 1 1 c2t2d0s3
d121: Concat/Stripe is setup
phys-schost# metainit d101 -m d111
d101: Mirror is setup
phys-schost# metattach d101 d121
d101: Submirror d121 is attached
phys-schost# 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
phys-schost# metastat d101
d101: Mirror
      Submirror 0: d111
         State: Okay
      Submirror 1: d121
         State: Resyncing
      Resync in progress: 15 % done
…
phys-schost# cldevice show phys-schost-3:/dev/rdsk/c2t2d0 
=== DID Device Instances ===                   

DID Device Name:                                /dev/did/rdsk/d2
  Full Device Path:                               phys-schost-1:/dev/rdsk/c2t2d0
  Full Device Path:                               phys-schost-3:/dev/rdsk/c2t2d0
…

phys-schost# cldevicegroup show | grep dsk/d2
Device Group Name:                              dsk/d2
…
  Node List:                                      phys-schost-1, phys-schost-3
…
  localonly:                                      false
phys-schost# cldevicegroup remove-node -n phys-schost-3 dsk/d2
phys-schost# cldevicegroup set -p localonly-true dsk/d2

接下来的操作

要镜像根文件系统 (/) 以外的无法卸载的文件系统,请转到如何镜像无法卸载的根文件系统 (/) 以外的文件系统

要镜像用户定义的文件系统,请转到如何镜像无法卸载的文件系统

否则,请转到在群集中创建磁盘集以创建磁盘集。

故障排除

此镜像过程中的某些步骤可能会导致产生类似于 metainit: dg-schost-1: d1s0: not a metadevice 的错误消息。这样的错误消息是无碍的,可以忽略。

Procedure如何镜像无法卸载的根文件系统 (/) 以外的文件系统

使用该过程,可以在正常使用系统期间镜像无法卸载的根文件系统 (/) 以外的文件系统,例如 /usr/optswap


注 –

此过程提供了 Sun Cluster 命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简写形式的列表,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的附录 A “Sun Cluster 面向对象的命令”


  1. 成为超级用户。

  2. 将无法卸载的文件系统所驻留的盘片置于单盘片(单向)并置中。

    指定该磁盘片的物理磁盘名称 (cNtX dYsZ)。


    phys-schost# metainit -f submirror1 1 1 diskslice
    
  3. 创建第二个并置。


    phys-schost# metainit submirror2 1 1 submirror-diskslice
    
  4. 创建具有一个子镜像的单向镜像。


    phys-schost# metainit mirror -m submirror1
    

    注 –

    此镜像的卷名称在整个群集中必是唯一的。


  5. 对其余要镜像的每个无法卸载的文件系统重复步骤 1步骤 4

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

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


    phys-schost# 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 /filesystem ufs 2 no global
  7. 从节点中清空任何资源组或设备组。


    phys-schost# clnode evacuate from-node
    
    from-node

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

  8. 重新引导该节点。


    phys-schost# shutdown -g0 -y -i6
    
  9. 将第二个子镜像连接到每个镜像。

    这一连接操作会启动子镜像的同步。


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

    使用 metastat(1M) 命令查看镜像状态并检验镜像同步是否完成。


    phys-schost# metastat mirror
    
  11. 如果用来镜像可卸载文件系统的磁盘与多个节点建立了物理连接(多宿主),请确保设备组节点列表仅包含一个节点并且 localonly 属性已启用。

    确保设备组符合以下要求:

    • 原始磁盘设备组的节点列表中只能配置有一个节点。

    • 原始磁盘设备组的 localonly 属性必须已启用。如果节点的引导设备与多个节点相连,则启用 localonly 属性可防止节点与其引导设备之间发生意外隔离。

    1. 如有必要,可使用 cldevice 命令来确定原始磁盘设备组的名称。


      phys-schost# cldevice show node:/dev/rdsk/cNtXdY
      

      提示 –

      如果从与磁盘物理连接的某个节点发出此命令,则可以按照 cNtXdY 而非其完整设备路径名来指定磁盘的名称。


      在以下示例中,原始磁盘设备组的名称 dsk/d2 是 DID 设备名称的一部分。


      === DID Device Instances ===                   
      
      DID Device Name:                                /dev/did/rdsk/d2
        Full Device Path:                               phys-schost-1:/dev/rdsk/c1t1d0
        Full Device Path:                               phys-schost-3:/dev/rdsk/c1t1d0
      …

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

    2. 查看原始磁盘设备组的节点列表。


      phys-schost# cldevicegroup show dsk/dN
      

      设备组 dsk/d2 的输出结果类似如下内容:


      Device Group Name:                              dsk/d2
      …
        Node List:                                      phys-schost-1, phys-schost-3
      …
        localonly:                                      false
    3. 如果节点列表包含多个节点名称,请从节点列表中删除对其根磁盘进行了镜像的节点以外的所有节点。

      原始磁盘设备组节点列表中应只保留对其根磁盘进行了镜像的节点。


      phys-schost# cldevicegroup remove-node -n node devicegroup
      
      -n node

      指定要从设备组节点列表中删除的节点。

    4. 启用原始磁盘设备组的 localonly 属性(如果该属性尚未启用)。

      启用 localonly 属性之后,该原始磁盘设备组将由节点列表中的节点专用。如果引导设备与多个节点连接,则启用该特性可以防止意外地将节点与其引导设备隔开。


      phys-schost# cldevicegroup set -p localonly=true devicegroup
      
      -p

      设置设备组属性的值。

      localonly=true

      启用设备组的 localonly 属性。

      有关 localonly 属性的更多信息,请参见 cldevicegroup(1CL) 手册页。


示例 4–4 镜像无法卸装的文件系统

下面的示例显示了在节点 phys-schost-1 上创建镜像 d1 来镜像驻留在 c0t0d0s1 上的 /usr 的过程。镜像 d1 由分区 c0t0d0s1 上的子镜像 d11 和分区 c2t2d0s1 上的子镜像 d21 组成。/usr/etc/vfstab 文件条目被更新为使用镜像名称 d1。设备 c2t2d0 是一个多主机磁盘,所以启用了 localonly 属性。


phys-schost# metainit -f d11 1 1 c0t0d0s1
d11: Concat/Stripe is setup
phys-schost# metainit d21 1 1 c2t2d0s1
d21: Concat/Stripe is setup
phys-schost# metainit d1 -m d11
d1: Mirror is setup
phys-schost# 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
…
phys-schost# clnode evacuate phys-schost-1
phys-schost# shutdown -g0 -y -i6
phys-schost# metattach d1 d21
d1: Submirror d21 is attached
phys-schost# metastat d1
d1: Mirror
      Submirror 0: d11
         State: Okay
      Submirror 1: d21
         State: Resyncing
      Resync in progress: 15 % done
…
phys-schost# cldevice show phys-schost-3:/dev/rdsk/c2t2d0
…
DID Device Name:                                /dev/did/rdsk/d2
phys-schost# cldevicegroup show dsk/d2
Device Group Name:                              dsk/d2
…
  Node List:                                      phys-schost-1, phys-schost-3
…
  localonly:                                      false
phys-schost# cldevicegroup remove-node -n phys-schost-3 dsk/d2
phys-schost# cldevicegroup set -p localonly=true dsk/d2

接下来的操作

要镜像用户定义的文件系统,请转到如何镜像无法卸载的文件系统

否则,请转到在群集中创建磁盘集以创建磁盘集。

故障排除

此镜像过程中的某些步骤可能会导致类似 metainit: dg-schost-1: d1s0: not a metadevice 的错误消息。这样的错误消息是无碍的,可以忽略。

Procedure如何镜像无法卸载的文件系统

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


注 –

此过程提供了 Sun Cluster 命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简写形式的列表,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的附录 A “Sun Cluster 面向对象的命令”


  1. 成为超级用户。

  2. 卸载要镜像的文件系统。

    确保文件系统中没有正在运行的进程。


    phys-schost# umount /mount-point
    

    有关更多信息,请参见 umount(1M) 手册页和《System Administration Guide: Devices and File Systems》中的第 18  章 “Mounting and Unmounting File Systems (Tasks)”

  3. 使包含可以卸载的用户定义的文件系统的盘片处于单片(单向)并置状态。

    指定该磁盘片的物理磁盘名称 (cNtX dYsZ)。


    phys-schost# metainit -f submirror1 1 1 diskslice
    
  4. 创建第二个并置。


    phys-schost# metainit submirror2 1 1 submirror-diskslice
    
  5. 创建具有一个子镜像的单向镜像。


    phys-schost# metainit mirror -m submirror1
    

    注 –

    此镜像的卷名称在整个群集中必是唯一的。


  6. 对要镜像的每个可安装的文件系统重复步骤 1步骤 5

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

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


    phys-schost# 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 /filesystem ufs 2 no global
  8. 将第二个子镜像与镜像连接。

    这一连接操作会启动子镜像的同步。


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

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


    phys-schost# metastat mirror
    
  10. 如果用来镜像用户自定义文件系统的磁盘与多个节点建立了物理连接(多宿主),请确保设备组节点列表仅包含一个节点并且 localonly 属性已启用。

    确保设备组符合以下要求:

    • 原始磁盘设备组的节点列表中只能配置有一个节点。

    • 原始磁盘设备组的 localonly 属性必须已启用。如果节点的引导设备与多个节点相连,则启用 localonly 属性可防止节点与其引导设备之间发生意外隔离。

    1. 如有必要,可使用 cldevice 命令来确定原始磁盘设备组的名称。


      phys-schost# cldevice show node:/dev/rdsk/cNtXdY
      

      提示 –

      如果从与磁盘物理连接的某个节点发出此命令,则可以按照 cNtXdY 而非其完整设备路径名来指定磁盘的名称。


      在以下示例中,原始磁盘设备组的名称 dsk/d2 是 DID 设备名称的一部分。


      === DID Device Instances ===                   
      
      DID Device Name:                                /dev/did/rdsk/d2
        Full Device Path:                               phys-schost-1:/dev/rdsk/c1t1d0
        Full Device Path:                               phys-schost-3:/dev/rdsk/c1t1d0
      …

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

    2. 查看原始磁盘设备组的节点列表。


      phys-schost# cldevicegroup show dsk/dN
      

      设备组 dsk/d2 的输出结果类似如下内容:


      Device Group Name:                              dsk/d2
      …
        Node List:                                      phys-schost-1, phys-schost-3
      …
        localonly:                                      false
    3. 如果节点列表包含多个节点名称,请从节点列表中删除对其根磁盘进行了镜像的节点以外的所有节点。

      原始磁盘设备组节点列表中应只保留对其根磁盘进行了镜像的节点。


      phys-schost# cldevicegroup remove-node -n node devicegroup
      
      -n node

      指定要从设备组节点列表中删除的节点。

    4. 启用原始磁盘设备组的 localonly 属性(如果该属性尚未启用)。

      启用 localonly 属性之后,该原始磁盘设备组将由节点列表中的节点专用。如果引导设备与多个节点连接,则启用该特性可以防止意外地将节点与其引导设备隔开。


      phys-schost# cldevicegroup set -p localonly=true devicegroup
      
      -p

      设置设备组属性的值。

      localonly=true

      启用设备组的 localonly 属性。

      有关 localonly 属性的更多信息,请参见 cldevicegroup(1CL) 手册页。

  11. 安装已镜像的文件系统。


    phys-schost# mount /mount-point
    

    有关更多信息,请参见 mount(1M) 手册页和《System Administration Guide: Devices and File Systems》中的第 18  章 “Mounting and Unmounting File Systems (Tasks)”


示例 4–5 镜像可以卸装的文件系统

下面的示例显示了创建镜像 d4 以镜像驻留在 c0t0d0s4 上的 /export 的过程。镜像 d4 由分区 c0t0d0s4 上的子镜像 d14 和分区 c2t2d0s4 上的子镜像 d24 组成。/export/etc/vfstab 文件条目被更新为使用镜像名称 d4。设备 c2t2d0 是一个多主机磁盘,所以启用了 localonly 属性。


phys-schost# umount /export
phys-schost# metainit -f d14 1 1 c0t0d0s4
d14: Concat/Stripe is setup
phys-schost# metainit d24 1 1 c2t2d0s4
d24: Concat/Stripe is setup
phys-schost# metainit d4 -m d14
d4: Mirror is setup
phys-schost# 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 /export ufs 2 no    global
phys-schost# metattach d4 d24
d4: Submirror d24 is attached
phys-schost# metastat d4
d4: Mirror
       Submirror 0: d14
          State: Okay
       Submirror 1: d24
          State: Resyncing
       Resync in progress: 15 % done
…
phys-schost# cldevice show phys-schost-3:/dev/rdsk/c2t2d0
…
DID Device Name:                                /dev/did/rdsk/d2
phys-schost# cldevicegroup show dsk/d2
Device Group Name:                              dsk/d2
…
  Node List:                                      phys-schost-1, phys-schost-2
…
  localonly:                                      false
phys-schost# cldevicegroup remove-node -n phys-schost-3 dsk/d2
phys-schost# cldevicegroup set -p localonly=true dsk/d2 
phys-schost# mount /export

接下来的操作

如果需要创建磁盘集,请转到以下任务之一:

如果您有足够的磁盘集来满足需要,则转到以下任务之一:

故障排除

此镜像过程中的某些步骤可能会导致类似 metainit: dg-schost-1: d1s0: not a metadevice 的错误消息。这样的错误消息是无碍的,可以忽略。

在群集中创建磁盘集

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


注 –

要创建供 Oracle RAC 使用的 Solaris Volume Manager for Sun Cluster 磁盘集,请勿使用这些过程。而应执行《Sun Cluster Data Service for Oracle RAC Guide for Solaris OS》中的“How to Create a Multi-Owner Disk Set in Solaris Volume Manager for Sun Cluster for the Oracle RAC Database”所介绍的过程。


下表列出了您将执行以创建磁盘集的任务。

表 4–2 任务表:安装和配置 Solaris Volume Manager 软件

任务 

指导 

1. 使用 metaset 命令创建磁盘集。

如何创建磁盘集

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

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

3.(可选)对磁盘集中的驱动器重新分区,以便为各个分片分配空间。

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

4. 列出 DID 伪驱动程序映射,并在 /etc/lvm/md.tab 文件中定义卷。

如何创建 md.tab 文件

5. 初始化 md.tab 文件。

如何激活卷

Procedure如何创建磁盘集

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


注 –

此过程提供了 Sun Cluster 命令的完整形式。此外,大多数命令还有简短格式。除了命令名称的形式以外,简写形式和完整形式的命令是相同的。有关命令及其简写形式的列表,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的附录 A “Sun Cluster 面向对象的命令”


  1. SPARC:(Solaris 9)确定创建新磁盘集后群集中是否将包含三个以上磁盘集。

    • 如果群集中包含的磁盘集不超过三个,则跳到步骤 9

    • 如果群集包含四个或四个以上磁盘集,则继续执行步骤 2 以准备群集。无论是首次安装磁盘集还是向已完全配置的群集添加更多磁盘集,均必须执行此任务。

    • 如果群集在 Solaris 10 OS 上运行,则 Solaris Volume Manager 将自动进行必要的配置更改。跳到步骤 9

  2. 在群集的任何节点上,检查 /kernel/drv/md.conf 文件中的 md_nsets 变量的值。

  3. 如果群集中磁盘集的总数大于 md_nsets 的现有值减一,请将 md_nsets 的值增加到所需的值。

    磁盘集的最大许可数为 md_nsets 的配置值减一。md_nsets 可能的最大值为 32,因此可以创建的最大磁盘集数为 31。

  4. 确保 /kernel/drv/md.conf 文件在群集的每个节点上都完全相同。


    Caution – Caution –

    不按本指南操作可能会导致严重的 Solaris Volume Manager 错误,并且可能丢失数据。


  5. 如果更改了任一节点上的 md.conf 文件,请执行以下步骤以使这些更改生效。

    1. 在一个节点上成为超级用户。

    2. 从一个节点,关闭群集。


      phys-schost# cluster shutdown -g0 -y
      
    3. 重新引导群集的每个节点。

      • 在基于 SPARC 的系统中执行以下操作:


        ok boot
        
      • 在基于 x86 的系统中执行以下操作:

        显示 GRUB 菜单后,选择相应的 Solaris 条目,然后按 Enter 键。GRUB 菜单显示如下内容:


        GNU GRUB version 0.95 (631K lower / 2095488K upper memory)
        +-------------------------------------------------------------------------+
        | Solaris 10 /sol_10_x86                                                  |
        | Solaris failsafe                                                        |
        |                                                                         |
        +-------------------------------------------------------------------------+
        Use the ^ and v keys to select which entry is highlighted.
        Press enter to boot the selected OS, 'e' to edit the
        commands before booting, or 'c' for a command-line.

        有关基于 GRUB 进行引导的更多信息,请参见《System Administration Guide: Basic Administration》中的第 11  章 “GRUB Based Booting (Tasks)”

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

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

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


    phys-schost# cldevice populate
    

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

  8. 尝试创建任何磁盘集之前,先在每个节点上检验上述命令是否已完成处理过程。

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


    phys-schost# ps -ef | grep scgdevs
    
  9. 确保要创建的磁盘集符合以下要求之一。

    • 如果正好用两个磁盘串配置磁盘集,则磁盘集必须正好连接至两个节点并正好使用两个调解器主机。这些调解器主机必须是用于该磁盘集的两个主机。有关如何配置双串调解器的详细信息,请参见配置双串调解器

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

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

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

  11. 成为将控制磁盘集的群集节点上的超级用户。

  12. 创建磁盘集。

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


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

    指定磁盘集名称。

    -a

    添加(创建)磁盘集。

    -h node1

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

    node2

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


    注 –

    运行 metaset 命令配置群集上的 Solaris Volume Manager 设备组时,该命令缺省指定一个辅助节点。创建了设备组之后,您可以使用 clsetup 实用程序更改设备组中所需的辅助节点数目。有关如何更改 numsecondaries 属性的更多信息,请参阅《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的“管理设备组”


  13. 如果要配置被复制的 Solstice DiskSuite 设备组或 Solaris Volume Manager 设备组,请设置该设备组的复制属性。


    phys-schost# cldevicegroup sync device-group-name
    

    有关数据复制的更多信息,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的第 4  章 “数据复制方法”

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


    phys-schost# metaset -s setname
    
  15. 根据需要设置设备组的属性。


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

    指定一个设备组属性。

    name

    指定属性的名称。

    value

    指定属性的值或设置。

    devicegroup

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

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


示例 4–6 创建磁盘集

以下命令将创建 dg-schost-1dg-schost-2 两个磁盘集,同时指定节点 phys-schost-1phys-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

接下来的操作

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

将驱动器添加到磁盘集

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

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

开始之前

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

  1. 成为超级用户。

  2. 列出 DID 映射。


    phys-schost# cldevice show | grep Device
    
    • 选择由将要控制或可能要控制磁盘集的群集节点共享的驱动器。

    • 向磁盘集添加驱动器时,请使用格式为 /dev/did/rdsk/dN 的完整 DID 设备名称。

    在下面的示例中,DID 设备 /dev/did/rdsk/d3 的条目表明 phys-schost-1phys-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# cldegivegroup switch -n node devicegroup
    
    -n node

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

    devicegroup

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

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

    使用完整的 DID 路径名称。


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

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

    -a

    给磁盘集添加驱动器。


    注 –

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


  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 文件定义元设备或卷。

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

可使用 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 文件

Procedure如何创建 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 设备名称代替级别较低的设备名称 (cN tXdY)。DID 设备名称采用的格式为 /dev/did/rdsk/dN


    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 选择 d100d199 之间的名称。为节点 2 选用 d200d299 之间的名称。

    有关如何创建 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 定义为卷 d10d20 的镜像。-m 表示该设备为镜像设备。


    dg-schost-1/d0 -m dg-schost-1/d0 dg-schost-1/d20
  2. 第二行将卷 d10d0 的第一个子镜像)定义为单向条。


    dg-schost-1/d10 1 1 /dev/did/rdsk/d1s0
  3. 第三行将卷 d20d0 的第二个子镜像)定义为单向条。


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

接下来的操作

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

Procedure如何激活卷

执行此过程可激活在 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. (可选的)对群集配置进行备份。对群集配置的归档备份有助于您更方便地恢复群集配置。有关更多信息,请参见《Sun Cluster 系统管理指南(适用于 Solaris OS)》中的“如何备份群集配置”


示例 4–9 激活 md.tab 文件中的卷。

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


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

接下来的操作

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

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

配置双串调解器

本节提供了配置双串调解器主机的信息和过程。正好配置了两个磁盘串和两个群集节点的所有 Solaris Volume Manager 磁盘集均需要双串调解器。通过使用调解器,Sun Cluster 软件能够确保在双串配置中的单串失败的情况下仍能显示最新的数据。

双串调解器或调解器主机是存储调解器数据的群集节点。调解器数据提供了有关其他调解器的位置的信息,并包含与存储在数据库副本中的提交计数相同的提交计数。该提交计数用于确认调解器数据与数据库副本中的数据是否同步。

磁盘串由磁盘盒、其物理驱动器、磁盘盒与节点之间的电缆以及接口适配卡组成。

下表列出了您将执行以配置双串调解器主机的任务。

表 4–3 任务表:安装和配置 Solaris Volume Manager 软件

任务 

指导 

1. 配置双串调解器主机。 

双串调解器要求

如何添加调解器主机

2. 检查调解器数据的状态。 

如何检查调解器数据的状态

3. 如有必要,修复错误的调解器数据。 

如何修正错误的调解器数据

双串调解器要求

下列规则适用于使用调解器的双串配置。

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

Procedure如何添加调解器主机

在您的配置需要双串调解器时执行此过程。

  1. 成为节点的超级用户,该节点当前控制着您要为其添加调解器主机的磁盘集。

  2. 将连接到磁盘集的每个节点添加为该磁盘集的调解器主机。


    phys-schost# metaset -s setname -a -m mediator-host-list
    
    -s setname

    指定磁盘集名称。

    -a

    添加到磁盘集。

    -m mediator-host-list

    指定要作为磁盘集的调解器主机进行添加的节点的名称。

    有关 metaset 命令特定于调解器的选项的详细信息,请参见 mediator(7D) 手册页。


示例 4–10 添加调解器主机

以下示例将节点 phys-schost-1phys-schost-2 添加为磁盘集 dg-schost-1 的调解器主机。这两个命令都从节点 phys-schost-1 运行。


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

接下来的操作

检查调解器数据的状态。请转到如何检查调解器数据的状态

Procedure如何检查调解器数据的状态

开始之前

确保您已按照如何添加调解器主机中的描述添加了调解器主机。

  1. 显示调解器数据的状态。


    phys-schost# medstat -s setname
    
    -s setname

    指定磁盘集名称。

    有关更多信息,请参见 medstat(1M) 手册页。

  2. 如果 medstat 输出的状态字段中的值为 Bad,请检修受影响的调解器主机。

    请转到如何修正错误的调解器数据

接下来的操作

请转到如何创建群集文件系统以创建群集文件系统。

Procedure如何修正错误的调解器数据

执行此过程以修复错误的调解器数据。

  1. 按照过程如何检查调解器数据的状态中的描述标识包含错误调解器数据的所有调解器主机。

  2. 成为包含受影响磁盘集的节点的超级用户。

  3. 从所有受影响的磁盘集中删除带有错误调解器数据的所有调解器主机。


    phys-schost# metaset -s setname -d -m mediator-host-list
    
    -s setname

    指定磁盘集名称。

    -d

    从磁盘集删除。

    -m mediator-host-list

    指定要作为磁盘集的调解器主机进行删除的节点的名称。

  4. 恢复在步骤 3 中删除的每个调解器主机。


    phys-schost# metaset -s setname -a -m mediator-host-list
    
    -a

    添加到磁盘集。

    -m mediator-host-list

    指定要作为磁盘集的调解器主机进行添加的节点的名称。

    有关 metaset 命令特定于调解器的选项的详细信息,请参见 mediator(7D) 手册页。

接下来的操作

查看以下列表以确定下一项要执行的任务(该任务应适用于您的群集配置)。如果需要执行此列表中的多项任务,请转至其中在列表中排在最前面的那项任务。