Sun Cluster Software Installation Guide for Solaris OS

How to Mirror the Global Namespace

Use this procedure to mirror the global namespace, /global/.devices/node@nodeid/.

  1. Become superuser on a node of the cluster.

  2. Put the global namespace slice in a single-slice (one-way) concatenation.

    Use the physical disk name of the disk slice (cNtXdYsZ).


    # metainit -f submirror1 1 1 diskslice
    

  3. Create a second concatenation.


    # metainit submirror2 1 1 submirror-diskslice
    

  4. Create a one-way mirror with one submirror.


    # metainit mirror -m submirror1
    


    Note –

    The metadevice or volume name for the mirror must be unique throughout the cluster.


  5. Attach the second submirror to the mirror.

    This attachment starts a synchronization of the submirrors.


    # metattach mirror submirror2
    

  6. Edit the /etc/vfstab file entry for the /global/.devices/node@nodeid file system.

    Replace the names in the device to mount and device to fsck columns with the mirror name.


    # 
    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. Repeat Step 1 through Step 6 on each remaining node of the cluster.

  8. Wait for the synchronization of the mirrors, started in Step 5, to complete.

    Use the metastat(1M) command to view mirror status and to verify that mirror synchronization if complete.


    # metastat mirror
    

  9. If the disk that is used to mirror the global namespace is physically connected to more than one node (multihosted), enable the localonly property.

    Perform the following steps to enable the localonly property of the raw-disk device group for the disk that is used to mirror the global namespace. You must enable the localonly property to prevent unintentional fencing of a node from its boot device if the boot device is connected to multiple nodes.

    1. If necessary, use the scdidadm(1M) command to display the full device-ID path name of the raw-disk device group.

      In the following example, the raw-disk device-group name dsk/d2 is part of the third column of output, which is the full device-ID path name.


      # scdidadm -L
      …
      1         phys-schost-3:/dev/rdsk/c1t1d0     /dev/did/rdsk/d2
      

    2. View the node list of the raw-disk device group.

      Output looks similar to the following.


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

    3. If the node list contains more than one node name, remove all nodes from the node list except the node whose disk is mirrored.

      Only the node whose disk is mirrored should remain in the node list for the raw-disk device group.


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

      Specifies the cluster-unique name of the raw-disk device group

      nodelist=node

      Specifies the name of the node or nodes to remove from the node list

    4. Use the scconf(1M) command to enable the localonly property.

      When the localonly property is enabled, the raw-disk device group is used exclusively by the node in its node list. This usage prevents unintentional fencing of the node from its boot device if the boot device is connected to multiple nodes.


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

      Specifies the name of the raw-disk device group

      For more information about the localonly property, see the scconf_dg_rawdisk(1M) man page.

  10. (Optional) To mirror file systems other than root (/) that cannot be unmounted, go to How to Mirror File Systems Other Than Root (/) That Cannot Be Unmounted.

  11. (Optional) To mirror user-defined file systems, go to How to Mirror File Systems That Can Be Unmounted

  12. Go to Creating Disk Sets in a Cluster to create a disk set.

Example—Mirroring the Global Namespace

The following example shows creation of mirror d101, which consists of submirror d111 on partition c0t0d0s3 and submirror d121 on partition c2t2d0s3. The /etc/vfstab file entry for /global/.devices/node@1 is updated to use the mirror name d101. Device c2t2d0 is a multihost disk, so the localonly property is enabled.


(Create the mirror)
# metainit -f d111 1 1 c0t0d0s3
d111: Concat/Stripe is setup
# metainit 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 device-ID name of the mirrored disk's raw-disk device group)
# scdidadm -L
…
1         phys-schost-3:/dev/rdsk/c2t2d0     /dev/did/rdsk/d2
 
(Display the device-group node list)
# scconf -pvv | grep dsk/d2
Device group name:						dsk/d2
…
  (dsk/d2) Device group node list:		phys-schost-1, phys-schost-3
…
 
(Remove phys-schost-3 from the node list)
# scconf -r -D name=dsk/d2,nodelist=phys-schost-3
 
(Enable the localonly property)
# scconf -c -D name=dsk/d2,localonly=true