Sun Cluster 3.0 12/01 软件安装指南

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

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

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

  2. 将用户定义的文件系统所驻留的盘片置于单盘片(单向)并置中。

    使用磁盘片的物理磁盘名称 (cNtXdYsZ)。


    # metainit -f submirror1 1 1 diskslice
    

  3. 创建第二个并置。


    # metainit -f submirror2 1 1 submirror-diskslice
    

  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 /filesystem  ufs     2       no      global

  7. 将第二个子镜像连接到镜像中。

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


    # metattach mirror submirror2
    

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

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


    # metastat mirror
    

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

    如果引导设备与多个节点连接,则必须启用 localonly 特性以防止意外地将节点与其引导设备隔开。

    1. 如果需要,可以使用 scdidadm -L 命令来显示原始磁盘设备组的完整设备 ID (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. 查看原始磁盘设备组的节点列表。

      输出类似于以下内容,其中 N 是 DID 号。


      # scconf -pvv | grep dsk/dN
      Device group name:                                 dsk/dN
      ...
        (dsk/dN) Device group node list:                 phys-schost-1, phys-schost-3
      ...

    3. 节点列表是否包含多个节点名称?

    4. 从原始磁盘设备组的节点列表中删除所有节点,其根磁盘已镜像的节点除外

      仅在节点列表中保留其根磁盘已镜像的那个节点。


      # scconf -r -D name=dsk/dN,nodelist=node
      
      -D name=dsk/dN

      给原始磁盘设备组指定群集范围内唯一的名称

      nodelist=node

      指定要从节点列表中删除的节点的名称

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

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


      # scconf -c -D name=rawdisk-groupname,localonly=true
      
      -D name=rawdisk-groupname

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

  10. 创建磁盘集。

    转到"如何创建磁盘集"

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

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


(创建镜像)
# 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
 
(编辑 /etc/vfstab 文件)
# 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
 
(连接第二个子镜像)
# metattach d4 d24
d4: Submirror d24 is attached
 
(查看同步状态)
# metastat d4
d4: Mirror
      Submirror 0: d14
         State: Okay
      Submirror 1: d24
         State: Resyncing
      Resync in progress: 15 % done
...
 
(检验已镜像磁盘的原始磁盘设备组的 DID 名称)
# scdidadm -L
...
1         phys-schost-3:/dev/rdsk/c2t2d0     /dev/did/rdsk/d2
 
(显示镜像磁盘的原始磁盘设备组的节点列表)
# scconf -pvv | grep dsk/d2
Device group name:                                 dsk/d2
...
  (dsk/d2) Device group node list:                 phys-schost-1, phys-schost-3
...
 
(从原始磁盘设备组的节点列表中删除 phys-schost-3)
# scconf -r -D name=dsk/d2,nodelist=phys-schost-3
 
(启用已镜像磁盘的原始磁盘设备组的 localonly 特性)
# scconf -c -D name=dsk/d2,localonly=true