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

配置 Solaris Volume Manager 软件

下表列出了配置 Solaris Volume Manager 软件以实现各种 Sun Cluster 配置时所需执行的任务。

表 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 设备实例 ===                   
      
      DID 设备名称:                                   /dev/did/rdsk/d2
        完整设备路径:                               phys-schost-1:/dev/rdsk/c1t1d0
        完整设备路径:                               phys-schost-3:/dev/rdsk/c1t1d0
      …

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

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


      phys-schost# cldevicegroup show dsk/dN
      

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


      设备组名称:                                            dsk/d2
      …
        节点列表:                                      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
设备组名称:                              dsk/d2
…
  节点列表:                                      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. 将全局设备名称空间分片置于单分片(单向)串联中。

    需使用磁盘分片的物理磁盘名称 (cNtXd Y 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 设备实例 ===                   
      
      DID 设备名称:                                   /dev/did/rdsk/d2
        完整设备路径:                               phys-schost-1:/dev/rdsk/c1t1d0
        完整设备路径:                               phys-schost-3:/dev/rdsk/c1t1d0
      …

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

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


      phys-schost# cldevicegroup show dsk/dN
      

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


      设备组名称:                                            dsk/d2
      …
        节点列表:                                      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 设备实例 ===                   

DID 设备名称:                                /dev/did/rdsk/d2
  完整设备路径:                               phys-schost-1:/dev/rdsk/c2t2d0
  完整设备路径:                               phys-schost-3:/dev/rdsk/c2t2d0
…

phys-schost# cldevicegroup show | grep dsk/d2
设备组名称:                              dsk/d2
…
  节点列表:                                      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 设备实例 ===                   
      
      DID 设备名称:                                   /dev/did/rdsk/d2
        完整设备路径:                               phys-schost-1:/dev/rdsk/c1t1d0
        完整设备路径:                               phys-schost-3:/dev/rdsk/c1t1d0
      …

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

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


      phys-schost# cldevicegroup show dsk/dN
      

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


      设备组名称:                                            dsk/d2
      …
        节点列表:                                      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 设备名称:                                /dev/did/rdsk/d2
phys-schost# cldevicegroup show dsk/d2
设备组名称:                              dsk/d2
…
  节点列表:                                      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 设备实例 ===                   
      
      DID 设备名称:                                   /dev/did/rdsk/d2
        完整设备路径:                               phys-schost-1:/dev/rdsk/c1t1d0
        完整设备路径:                               phys-schost-3:/dev/rdsk/c1t1d0
      …

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

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


      phys-schost# cldevicegroup show dsk/dN
      

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


      设备组名称:                                            dsk/d2
      …
        节点列表:                                      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 设备名称:                                /dev/did/rdsk/d2
phys-schost# cldevicegroup show dsk/d2
设备组名称:                              dsk/d2
…
  节点列表:                                      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 的错误消息。这样的错误消息是无碍的,可以忽略。