Top
PRIMECLUSTERGlobal Disk Services Configuration and AdministrationGuide 4.5
FUJITSU Software

F.1.10 File System Related Errors

For file system related errors, in one of the following circumstances, take the actions as indicated for the relevant situation.

(1) After the system has been restarted, the ZFS storage pool status in a local class has become UNAVAIL.

Explanation

If one creates a ZFS storage pool on a local class volume and restarts the system while under a status of having imported the ZFS storage pool without specifying the -R option of the zpool import command, the ZFS storage pool status will become UNAVAIL after system restart and one will become unable to use the ZFS file system.

Resolution

Using the zpool clear command, delete the error information for the ZFS storage pool. For details on the zpool clear command, please refer to the manual for ZFS.

Also, to prevent this phenomenon from occurring, please perform a setup following the procedures outlined in "If using ZFS with a local class" of "A.2.42 If using ZFS."

(2) Restoring the UFS file system created on the local volume.

Explanation

This is the procedure to restore the UFS file system created on the volume of the local class by using the fsck(1M) command.

Resolution

If the file system is located on the local volume, how to execute the fsck(1M) command is equal to when restoring the file system created on the physical slice, with following two exceptions.

The following example shows the procedure when the class name is Class1, the volume name is Volume1, the mount point is /mount_point, and the file system type is ufs.

  1. Stop applications that use the target file system.

  2. Unmount the target file system if it is mounted.

    # umount /mount_point
  3. Start the target volume.
    If the volume is already started, skip this step.

    # sdxvolume -N -c Class1 -v Volume1
  4. Execute the fsck(1M) command. When executing the fsck(1M) command, specify the device special file of the target volume.

    # fsck -F ufs -y /dev/sfdsk/Class1/rdsk/Volume1

    See

    For more information such as fsck(1M) command options, see the Solaris manual.

(3) Restoring the UFS file system created on the shared volume.

Explanation

This is the procedure to restore the UFS file system created on the volume of the shared class by using the fsck(1M) command.

Resolution

If the file system is located on the shared volume, how to execute the fsck(1M) command is equal to when restoring the file system created on the physical slice, with following two exceptions.

The following example shows the procedure when the class name is Class1, the volume name is Volume1, the mount point is /mount_point, and the file system type is ufs.

Take any one of the following two procedures suitable for each case:

  1. The class is not registered to the cluster application.

  2. The class is registered to the cluster application.

a. The class is not registered to the cluster application.
  1. On all the nodes in the class scope, stop the applications that use the target file system.

  2. On all the nodes in the class scope, unmount the target file system.

    # umount /mount_point
  3. On all the nodes in the class scope, stop the target volume.

    Log in to any one of the nodes in the class scope, and execute the sdxvolume -F -e allnodes command.

    # sdxvolume -F -c Class1 -v Volume1 -e allnodes
  4. Start the target volume on any one of the nodes in the class scope.

    # sdxvolume -N -c Class1 -v Volume1
  5. Execute the fsck(1M) command on the node where the volume has been started in step 4.

    When executing the fsck(1M) command, specify the device special file of the target volume.

    # fsck -F ufs -y /dev/sfdsk/Class1/rdsk/Volume1

    See

    For more information such as fsck(1M) command options, see the Solaris manual.

b. The class is registered to the cluster application.
  1. Stop the applications that use the target class.

    See

    For how to stop the cluster application, see "PRIMECLUSTER Installation and Administration Guide."

  2. Start the target volume on any one of the nodes in the class scope.

    # sdxvolume -N -c Class1 -v Volume1
  3. Execute the fsck(1M) command on the node where the volume has been started in step 2.

    When executing the fsck(1M) command, specify the device special file of the target volume.

    # fsck -F ufs -y /dev/sfdsk/Class1/rdsk/Volume1

    See

    For more information such as fsck(1M) command options, see the Solaris manual.

  4. Stop the target volume on the node where the volume has been started in step 2.

    # sdxvolume -F -c Class1 -v Volume1

(4) Restoring the UFS file system created on the root volume.

Explanation

This is the procedure to restore the UFS file system created on the volume of the root class by using the fsck(1M) command.

Resolution

a. Any file systems except / (root), /usr, and /var

For file systems except / (root), /usr, and /var, how to restore the file system is equal to when restoring the file system created on the local class volume.

For details on the procedure, see "(2) Restoring the UFS file system created on the local volume."

b. / (root), /usr, and /var file systems

If the message "Run fsck manually (fsck -F ...)" requesting the execution of the fsck(1M) command is output, follow the message to execute the fsck(1M) command.

See below for the procedure when booting the system from the CD-ROM drive to restore the / (root), /usr, and /var file systems by executing the fsck(1M) command. Boot the system from the CD-ROM drive, execute the fsck(1M) command for one of the mirrored physical slices, and then copy the data from that physical slice to another physical slice.

  1. Boot the system from the CD-ROM drive.

    Note

    • When booting the system from the CD-ROM drive, the Solaris version must be the same as the restored Solaris version.

    • In the system where the disks are mirrored by GDS, if the system is booted from the CD-ROM drive and operations are performed improperly, the mirroring status may collapse.

      Be sure to perform operations according to the procedures described here. Operations other than those described here should not be performed.

    • When mounting the file system on the physical slice at the time of restoring, mounting as read-only is recommended to write-lock.

  2. Check the physical slice name of the target file system to be restored among the / (root), /usr, and /var file systems.

    Note

    If multiplicity of the mirroring configuration is 3 or more, there are multiple mirror physical slices.

    # eeprom nvramrc | grep sdx-root-slice
    devalias sdx-root-slice-1 /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
    devalias sdx-root-slice-2 /devices/pci@1e,4000/scsi@3/sd@0,0:a,raw
    # eeprom nvramrc | grep sdx-usr-slice
    devalias sdx-usr-slice-1 /devices/pci@1f,4000/scsi@3/sd@0,0:g,raw
    devalias sdx-usr-slice-2 /devices/pci@1e,4000/scsi@3/sd@0,0:g,raw
    # eeprom nvramrc | grep sdx-var-slice
    devalias sdx-var-slice-1 /devices/pci@1f,4000/scsi@3/sd@0,0:b,raw
    devalias sdx-var-slice-2 /devices/pci@1e,4000/scsi@3/sd@0,0:b,raw

    In this example, the physical slices are as follows:

     Original slice of / (root ): /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
      Mirrored slice of / (root): /devices/pci@1e,4000/scsi@3/sd@0,0:a,raw
          Original slice of /usr: /devices/pci@1f,4000/scsi@3/sd@0,0:g,raw
          Mirrored slice of /usr: /devices/pci@1e,4000/scsi@3/sd@0,0:g,raw
          Original slice of /var: /devices/pci@1f,4000/scsi@3/sd@0,0:b,raw
          Mirrored slice of /var: /devices/pci@1e,4000/scsi@3/sd@0,0:b,raw

    Information

    If /usr and /var file systems do not exist in the configuration, the physical slice names are not displayed as shown below.

    # eeprom nvramrc | grep sdx-usr-slice
    # eeprom nvramrc | grep sdx-var-slice
  3. Execute the fsck(1M) command. Specify the original physical slice of the file systems to be restored.

    3-1) Check the special file name in /dev/rdsk/cXtXdXsX format for the original physical slice.

    For the grep(1) command arguments, specify the physical disk names confirmed in step 2. Add ",raw" at the end of each physical name.

    # ls -l /dev/rdsk | grep /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
    lrwxrwxrwx   1 root     root          45  Jan 21  18:09 c0t0d0s0
    -> ../../devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
    # ls -l /dev/rdsk | grep /devices/pci@1f,4000/scsi@3/sd@0,0:g,raw
    lrwxrwxrwx   1 root     root          45  Jan 21  18:09 c0t0d0s6
    -> ../../devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
    # ls -l /dev/rdsk | grep /devices/pci@1f,4000/scsi@3/sd@0,0:b,raw
    lrwxrwxrwx   1 root     root          45  Jan 21  18:09 c0t0d0s1
    -> ../../devices/pci@1f,4000/scsi@3/sd@0,0:a,raw

    In this example, the special file names of the original physical slices are as follows:

    / (root): /dev/rdsk/c0t0d0s0
        /usr: /dev/rdsk/c0t0d0s6
        /var: /dev/rdsk/c0t0d0s1

    3-2) Execute the fsck(1M) command. Specify the special file confirmed in step 3-1).

    # fsck -F ufs -y /dev/rdsk/c0t0d0s0
    # fsck -F ufs -y /dev/rdsk/c0t0d0s6
    # fsck -F ufs -y /dev/rdsk/c0t0d0s1

    See

    For more information such as fsck(1M) command options, see the Solaris manual.

    If the file systems cannot be restored by executing the fsck(1M) command, the file systems cannot be restored by this procedure.

    In this case, follow the procedure described in "6.3.3 Restoring (When the System Cannot Be Booted)" to restore the file system.

  4. Check the sector size and cylinder size. Write down them for later reference.

    # prtvtoc /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
    ...
    * Dimensions:
    *     512 bytes/sector
    *     248 sectors/track
    *      19 tracks/cylinder
    *    4712 sectors/cylinder
    ...

    In this example, the sector size is 512 bytes, and the cylinder size is 4712 sectors = 512 x 4712 (bytes).

  5. Check the physical slice that contains the first sector (VTOC area) of the disk.

    In the prtvtoc(1M) command output, a physical slice with 0 in the First Sector field contains the first sector of the disk.

    # prtvtoc /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
    ...
    *                          First     Sector    Last
    * Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
           0      2    00          0    409656    409655
           1      7    00     409656    307242    716897
           2      5    00          0   4117568   4117567
           3      3    01     737906    388648   1126553
           4     33    00     716898     21008    737905
           5      4    00    1126554    942734   2069287
           6      4    00    2069288   2048280   4117567
    ...

    In this example, the physical slice of Partition 0 (:a) contains the first sector.

    Information

    Partition 2 is a special partition that corresponds to the entire disk.

  6. Copy the data from the original physical slices restored by the fsck(1M) command to the mirror physical slices.

    Take the following steps to copy the data:

    • Step a. if the physical slices do not contain the first sector of the disk

    • Step b. if the physical slices contain the first sector of the disk

    Note

    • If the multiplicity of the mirroring configuration is 3 or more, there are multiple mirror physical slices. Be sure to copy the data to all of the mirror physical slices.

    • The original slices that were not restored by the fsck(1M) command in step 3. do not have to be copied.

    1. The physical slices do not contain the first sector of the disk

      To reduce copying time, specify the cylinder size calculated in step 4. to the bs option (I/O block size) of the dd(1M) command.

      # dd if=/devices/pci@1f,4000/scsi@3/sd@0,0:g,raw \
      of=/devices/pci@1e,4000/scsi@3/sd@0,0:g,raw bs=4712b
      # dd if=/devices/pci@1f,4000/scsi@3/sd@0,0:b,raw \
      of=/devices/pci@1e,4000/scsi@3/sd@0,0:b,raw bs=4712b
    2. The physical slices contain the first sector of the disk

      Take the following steps.

      b-1) Copy only the first cylinder of the physical slice first. Skip the first sector not to overwrite the first sector (VTOC area) of the mirror slice and copy by sector.

      To skip the first sector, specify 1 to the iseek option and the oseek option of the dd(1M) command. Specify the sector size confirmed in step 4. to the bs option. Specify the cylinder size (512 byte blocks) calculated in step 4. subtracting 1 to the count option.

      # dd if=/devices/pci@1f,4000/scsi@3/sd@0,0:a,raw \
      of=/devices/pci@1e,4000/scsi@3/sd@0,0:a,raw bs=512 \
      iseek=1 oseek=1 count=4711

      b-2) Copy the rest of cylinders of the physical slice next.

      To reduce copying time, specify the cylinder size calculated in step 4. to the bs option of the dd(1M) command. To skip the first cylinder copied in step b-1) of step 6, specify 1 to the iseek option and the oseek option.

      # dd if=/devices/pci@1f,4000/scsi@3/sd@0,0:a,raw \
      of=/devices/pci@1e,4000/scsi@3/sd@0,0:a,raw bs=4712b \
      iseek=1 oseek=1
  7. Restart the system.

    # shutdown -g0 -i6 -y