Sun Microsystems, Inc.  Sun System Handbook - ISO 4.1 October 2012 Internal/Partner Edition
   Home | Current Systems | Former STK Products | EOL Systems | Components | General Info | Search | Feedback

Asset ID: 1-71-1455525.1
Update Date:2012-07-31
Keywords:

Solution Type  Technical Instruction Sure

Solution  1455525.1 :   How to Determine Uptime of Sun Storage[TM] 2500, 2500-M2 and 6000 Disk Arrays  


Related Items
  • Sun Storage 6580 Array
  •  
  • Sun Storage 2540-M2 Array
  •  
  • Sun Storage 6130 Array
  •  
  • Sun Storage 6540 Array
  •  
  • Sun Storage 6180 Array
  •  
  • Sun Storage 2540 Array
  •  
  • Sun Storage 2510 Array
  •  
  • Sun Storage 6780 Array
  •  
  • Sun Storage 2530-M2 Array
  •  
  • Sun Storage 2530 Array
  •  
  • Sun Storage 6140 Array
  •  
Related Categories
  • PLA-Support>Sun Systems>DISK>Arrays>SN-DK: 6140_6180
  •  




In this Document
Goal
Fix
References


Created from <SR 3-5630905197>

Applies to:

Sun Storage 2540-M2 Array - Version Not Applicable to Not Applicable [Release N/A]
Sun Storage 6130 Array - Version Not Applicable to Not Applicable [Release N/A]
Sun Storage 6540 Array - Version Not Applicable to Not Applicable [Release N/A]
Sun Storage 6580 Array - Version Not Applicable to Not Applicable [Release N/A]
Sun Storage 6780 Array - Version Not Applicable to Not Applicable [Release N/A]
Information in this document applies to any platform.

Goal

How to determine uptime of Sun Storage[TM] 2500, 2500-M2 and 6000 Disk Array

Fix

1. Collect the stateCaptureData.dmp file:

The stateCaptureData.dmp file can be collected by any one of two methods below:

  1. Method1:
    Collect supportdata of the array. Reference <Document 1002514.1> Collecting Sun Storage Common Array Manager Array Support Data.
    This supportdata contains the stateCaptureData.dmp file.
  2. Method2:
    Create a stateCaptureData file manually using the 'service' command:
    service -d <device> -c save -t state -p <dir> -o <filename>

    where <device>   = The name of the array, or IP address of any of the controllers.
             <dir>         = The directory to store the result file.
             <filename> = The filename for the result file.

    Note: The location of the 'service' command in CAM management host:
    Solaris: /opt/SUNWsefms/bin/
    Windows: C:\Program Files\Sun\Common Array Manager\Component\fms\bin
    Linux: /opt/sun/private/fms/bin  


2. Locate the 'getObjectGraph_MT(1,0...)' output and 'bootTime' value in the stateCaptureData.dmp file:

Locate the 'getObjectGraph_MT(1,0...)' output by opening the stateCaptureData.dmp file, and searching for the keyword "getObjectGraph_MT". The 'bootTime'value is reported under 'getObjectGraph_MT(1,0...)'. 

For Example:

Executing getObjectGraph_MT(1,0,0,0,0,0,0,0,0,0) on controller A:
CONTROLLER - 0x12345678
. . .
bootTime                       : 0x4f0b7397
. . .

 

Note: In a Dual Controller Array, there will be two 'getObjectGraph_MT(1,0...)' outputs, one for each controller. From the example above, the output represents for Controller A.
  • If 'bootTime' value is found, it's the time the controller completed its last boot cycle. It is HEX value in unix time format (also known as Epoch time).
    Convert this time format to standard date format, you may use pearl script ($ perl -e 'print scalar(localtime(<time_value_in_decimal>)), "\n"') to do the conversion.
    For example:
    0x4f0b7397 equals to 1326150551
    . . . .
    . . . .
    $ perl -e 'print scalar(localtime(1326150551)), "\n"'
    Tue Jan 10 07:09:11 2012
     
  • To find the controlller uptime, take the difference between the current time and the time found in the previous step.
  • The 'bootTime' value is not collected for certain firmware versions. So if the value is not found, proceed to Step 3.

Note: bootTime is value is found only for 06.70, 07.77 and 07.80 firmware versions stateCaptureData.dmp, and it's not found for 06.19, 06.60, 07.35, 07.50 and 07.60 series.

 

3. Locate the 'chall' output and 'Tick' value in the stateCaptureData.dmp file:

Locate the 'chall' output by opening the stateCaptureData.dmp file, and searching for the keyword "chAll". The 'chAll' output is associated with a 'Tick' value.

For Example:

Executing xxxx(x,x,x,x) on controller A:

-> chall 0

chAll (Tick 0029858754) ==> 05/02/12-23:59:58 (GMT)

 

Note: In a Dual Controller Array, there will be two 'chall' outputs, one for each controller. From the example above, the output represents for Controller A.
  • If the Tick value is Negative, proceed to Step 4.
  • If the Tick value is Positive, proceed to Step 5.


4. Convert the tick value from Negative to Positive:

To get actual Tick value, Deduct the Negative Tick value from 4,294,967,296.

For example:

Executing xxxx(x,x,x,x) on controller A:

-> chall 0

chAll (Tick -1874383274) ==> 05/04/12-06:53:36 (GMT)

Negative Tick value = -1874383274
Actual Tick Value = 4294967296 - 1874383274 = 2420584022

Note: The tick value is positive up to 2147483648 (or 0x80000000) at which point it becomes a negative value and reduces back down to zero to reach the max 0xFFFFFFFF (or 4294967296).
  • Calculate the Actual Tick value using the example above, and then proceed to Step 4.


5. Determine Controller Uptime:

60 Ticks equals One Second, and thus we can calculate Controller uptime.
Divide the Tick value by 5184000 (60ticks * 60seconds * 60minutes * 24hours) to get Controller uptime in Days.

For example:

Actual Tick Value = 2420584022

2420584022 / 5184000 = 466.93 days

Note: In a Dual Controller Array, there will be two Tick values as noted in Step 2. Thus the calculation should be done for Both controllers.

Internal Notes for Oracle TSE:

We can get the Tick value by executing "vxAbsTicks" command in Serial shell.

Note: ***This command should only be executed by Oracle Engineer. Serial shell passwd should not be shared with Customer ***

For example:

-> vxAbsTicks
vxAbsTicks = 0x22d360: value = 15971913 = 0xf3b649

 Here 15971913 - Tick value in Decimal
        0xf3b649 - Tick value in Hex

Note: If the Decimal Tick value is Negative, use either Step(3) to convert from negative to positive, or Hex value directly.

References


Attachments
This solution has no attachment
  Copyright © 2012 Sun Microsystems, Inc.  All rights reserved.
 Feedback