[T Series]A Capacity Management Mechanism Defect in Solaris10U9forX86 Led to a Failure to Update Disk Capacities

Publication Date:  2012-07-19 Views:  83 Downloads:  0
Issue Description

Product and version information:

  • S5500T V100R001 V100R002
  • S5600T V100R001 V100R002
  • S5800T V100R001 V100R002
  • S6800T V100R001 V100R002
  • Application server operating system: Solaris10U9 For X86

1.Connect the host to the storage array properly through a SAN network.
2.Log in to the storage array management system and map two LUNs, for example 10 GB LUN0 and 20 GB LUN1, to the host.
3.Log in to the host and scan for the mapped LUN, and check the LUN status, quantity, and capacities.
4.On the storage array management system, delete the two LUNs mapped to the host, and map another two LUNs, for example, 30 GB LUN2 and 40 GB LUN3, to the host, which have different capacities from the former LUNs.
5.On the host, scan for the newly mapped LUNs. There is a possibility that the capacities of the mapped LUNs appear to be different from their actual capacities, even when the host is restarted.

Alarm Information
None
Handling Process

To update the capacity information, perform the following steps:

1.Run the bash-3.00# reboot command to restart the Solaris10U9 For X86 host.
2.Run the bash-3.00#cfgadm -al command to scan for LUNs.
3.Use the format tool to delete the disk partition information of former LUNs. The disk partition information is retained on the location of the LUN IDs of the mapped LUNs.
  The following uses host LUN ID 2 as an example. Perform the following steps:
    a.Run the format command, and enter 2 at the cursor.
       bash-3.00#format
      
    b.Enter fdisk at the cursor.
       
    c.Enter 3 at the cursor to delete the fdisk partition. In the same way as previously described, delete all fdisk partitions.
       
    d.Enter 5 at the cursor to exit fdisk and update disk settings.
       
4.Use the format tool to create disk partition information for the newly mapped LUNs.
  Use the IDs of the newly mapped LUNs in this step. Perform the following steps:
    a.Run the format command, and enter 2
      
    b.Enter fdisk at the cursor.
       
    c.Enter 1 at the cursor to create fdisk partitions. It is recommended that only one fdisk partition be created though more can be created.
      
    d.Enter 5 at the cursor to exit fdisk and update disk settings.
       
    e.Enter verify at the cursor to view partition information and verify that the capacities are the same as the actual values.

      

Root Cause
1.The newly mapped LUNs were not formatted (The related disks had no FDISK partitions).
2.The newly mapped LUNs' host IDs had been used by other LUNs.
3.The capacities displayed were different from actual values as long as the preceding conditions were met. The root cause is that the Solaris10U9ForX86 operating system has a defect.
Suggestions

Solaris10U9 For X86 considers disk information such capacities is unchanged once the disk is created. If the capacity appears to be different from the actual value, Solaris10U9 For X86 may fail to read/write disk data properly. Therefore, do not unnecessarily change LUN mappings. Meanwhile, use host LUN IDs that have never been used before when mapping new LUNs.

When mapping a new LUN, consider the following three situations:
    1.If the newly mapped LUN is a LUN on which no FDISK partitions are created, and its host LUN ID has been used by other mapped LUNs, its capacity appears to be different from the actual value.
    2.If the host LUN ID of the newly mapped LUN has not been used by other mapped LUNs, even if no FDISK partition is created on the LUN, there is no capacity inconsistency issue.
    3.If any FDISK partitions are created on the LUN, there is no capacity inconsistency issue.

When creating FDISK partitions on a disk, Solaris10U9ForX86 stores its capacity information in its disk tag, and then write the capacity information to the first sector. Solaris10U9ForX86 considers the disk capacity to be unchanged once the disk is created. The following explains how Solaris10U9ForX86 identifies a LUN:
    1.Solaris10U9ForX86 cannot properly obtain the capacity information form the first sector if no FDISK partitions are created on the newly mapped LUN. Solaris10U9ForX86 uses either of the following two methods to obtain disk information based on the host LUN ID:

        a.Solaris10U9ForX86 obtains disk capacity information from system cache if the disk information is stored in system cache. The caused the capacity inconsistency.
        b.Solaris10U9ForX86 requests users to create FDISK partitions if no information is stored in system cache. In this case, the capacity displayed is the same as the actual value.

   2.If the newly mapped LUN has FDISK partitions, Solaris10U9ForX86 reads the capacity information from the first sector of the disk and updates the disk information in the system cache. In this case, the capacity displayed is the same as the actual value.

END