In case you haven't noticed, we've integrated a nice little feature into open Solaris Build 97: a more user-friendly [s]sd-config-list. The detailed feature description can be found in PSARC 2008/465


What is sd-config-list?


sd-config-list has been a private property in [s]sd.conf for [s]sd driver since 1999. The original intention for this property was just for internal development/field diagnosis, as the name "private" suggests. As time flies, many people in/outside Sun started using it to tune its disk systems. Doing a google search on sd-config-list gives you a long list of storage vendors who tell you how to use sd-config-list on their disk storage, like this, this and this.


But using sd-config-list is painful and error prone. Here is an example:



  ssd-config-list= "SUN     T4", "t4-data";
t4-data=1,0x20000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1;

Basically it is based on a bit-mask system and each bit represents a different tunable. Over the years the number of bits has grown to 18!!! I don't think anybody can figure out what the above ssd-config-list is trying to configure, without looking up the bit map table. In case you are curious, it is trying to enable LOGICAL LUN RESET.

So what are the changes?


A picture is worth a thousand words and an example should counts at least five hundreds. The new sd-config-list looks like this:


  ssd-config-list =
"SUN T4", "delay-busy:600, retries-timeout:6",
"SUN StorEdge_3510", "retries-timeout:3";


Much more elegant than the previous one, right? Furthermore, the new sd-config-list is JSON-compliant. Using JSON gives us not only a language independent format but also a familiar C style conventions. Backward compatibility is maintained: the old bitmask way still works but I am sure you will prefer the new format.

One more thing, the sd-retry-count tunable is back to Solaris. Of course, you have to use sd-config-list to configure sd-retry-count(now called "retries-timeout", the retries to perform on an IO timeout) on a per device type basis.



Future works?



There are two fronts of future works:



  • Providing generic interfaces in Solaris libnvpair to convert between nvlist and JSON text

  • Adopting more driver properties to use the JSON format. A quick target would be tape-config-list in st.conf.


Kudos to Chris and Nikko who make this happen!

Comments:

Hi,

Is PSARC 2008/465 available in Solaris 10 and if yes, since which version

Regards
Eric

Posted by Eric on July 21, 2009 at 06:19 PM HKT #

Hi Eric,

Yes, PSARC 2008/465 was integrated into S10U7, which was released early this year. The corresponding CR # is 6518995.

Regards,

Grant

Posted by Grant on July 23, 2009 at 09:39 AM HKT #

Post a Comment:
  • HTML Syntax: NOT allowed

This blog copyright 2009 by tauger