I'm extremely excited about this week's quiet release of the J4410 expansion module for 7000 Series storage appliances. On the surface, it seems like they changed the look and feel and upgraded the back end to SAS-2, but it signifies much more. Inside these new modules are new disks that we affectionately call 'Fat SAS' - 1 or 2TB in size, spinning at 7200 RPM but with a SAS interface instead of SATA. This change from SAS to SATA interfaces has a lot of positive impact inside the 7000 series appliances, but the most relevant change to this post is the improved granularity with which one can configure storage pools...

Systems configured using J4410 expansion modules are able to provision storage at the granularity of a single disk where previously the smallest unit of configurable storage was a diskset, a group of 12 disks. As a result of this, and the 2010.Q1 enhancement which allows multiple pools per controller I decided to rework the 7000 Size Calculator. In order to simplify what was rapidly becoming a convoluted input language, we decided to create a new edition that will only handle the new hardware generation. Of course, you can continue to use the 2009.Q3 release to model configurations using the original J4400.

So let's take a look at how we model J4410 based configurations. There are two potential ways to buy J4410 modules: full, and with room for Log devices. The 'with room' configuration (I feel like I'm ordering at Starbucks every time I say that) has four open slots in the top row to be used with Log devices. Within each module, we can choose to allocate some of the disks to one or more pools. The new input language looks something like this:

./sizecalc-sas.py 10.156.83.42 *** 8/8/8

In the sample above, we are specifying a single expansion module configured with three pools, with 8 disks allocated to each pool. To specify two expansion modules, we add another layout statement:

./sizecalc-sas.py 10.156.83.42 *** 8/8/8 12/2/10

In this example, we now are allocating a total of 20 drives to pool 1, 10 to pool 2, and 18 to pool three with disks spread across both modules. Another new feature is strict mode, which ensures that the number of disks specified for a given expansion module adds to either 20 (for the 'with room' configuration) or 24. It is enabled simply with the '-s' argument:

./sizecalc-sas.py -s 10.156.83.42 *** 8/8/8 12/2/10

Let's see the output for the command above

./sizecalc-sas.py -s 10.156.83.42 *** 8/8/8 12/2/10 Sun Storage 7000 Size Calculator for SAS disks Version 2010.Q1 ----------------------------------------- | | 3 | 3 | 3 | 3 | | | |-----------------------------------| | | | 3 | 3 | 3 | 3 | | | |-----------------------------------| | | | 2 | 2 | 2 | 2 | | 1| |-----------------------------------| | | | 2 | 2 | 2 | 2 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | ----------------------------------------- ----------------------------------------- | | 3 | 3 | 3 | 3 | | | |-----------------------------------| | | | 3 | 3 | 3 | 3 | | | |-----------------------------------| | | | 2 | 2 | 3 | 3 | | 2| |-----------------------------------| | | | 1 | 1 | 1 | 1 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | ----------------------------------------- ============================================ Pool 1 type NSPF width spares data drives raw (TB) usable (TiB) mirror False 2 2 18 18.00 16.12 mirror True 2 4 16 16.00 14.32 mirror3 False 3 2 18 12.00 10.74 mirror3 True 3 2 18 12.00 10.74 raidz1 False 4 4 16 24.00 21.49 raidz2 False 9 2 18 28.00 25.07 raidz3 wide False 19 1 19 32.00 28.65 stripe False 0 0 20 40.00 35.81 Pool 2 type NSPF width spares data drives raw (TB) usable (TiB) mirror False 2 2 8 8.00 7.16 mirror True 2 6 4 4.00 3.58 mirror3 False 3 1 9 6.00 5.37 mirror3 True 3 4 6 4.00 3.58 raidz1 False 4 2 8 12.00 10.74 raidz2 False 9 1 9 14.00 12.53 raidz3 wide False 9 1 9 12.00 10.74 stripe False 0 0 10 20.00 17.91 Pool 3 type NSPF width spares data drives raw (TB) usable (TiB) mirror False 2 2 16 16.00 14.32 mirror True 2 2 16 16.00 14.32 mirror3 False 3 3 15 10.00 8.95 mirror3 True 3 3 15 10.00 8.95 raidz1 False 4 2 16 24.00 21.49 raidz2 False 8 2 16 24.00 21.49 raidz3 wide False 17 1 17 28.00 25.07 stripe False 0 0 18 36.00 32.23



Oh, did I forget to mention that the new version draws ASCII art to show you which disks are in which pools? Beyond the visual representation however, you can also see three separate size tables, one per pool. Let's look at a configuration that includes a 'with room' module:

./sizecalc-sas.py -s 10.156.83.42 *** 10/10 12/12 Sun Storage 7000 Size Calculator for SAS disks Version 2010.Q1 ----------------------------------------- | | LZ | LZ | LZ | LZ | | | |-----------------------------------| | | | 2 | 2 | 2 | 2 | | | |-----------------------------------| | | | 2 | 2 | 2 | 2 | | 1| |-----------------------------------| | | | 1 | 1 | 2 | 2 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | ----------------------------------------- ----------------------------------------- | | 2 | 2 | 2 | 2 | | | |-----------------------------------| | | | 2 | 2 | 2 | 2 | | | |-----------------------------------| | | | 2 | 2 | 2 | 2 | | 2| |-----------------------------------| | | | 1 | 1 | 1 | 1 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | ----------------------------------------- ============================================ Pool 1 type NSPF width spares data drives raw (TB) usable (TiB) mirror False 2 2 20 20.00 17.91 mirror True 2 2 20 20.00 17.91 mirror3 False 3 1 21 14.00 12.53 mirror3 True 3 1 21 14.00 12.53 raidz1 False 4 2 20 30.00 26.86 raidz2 False 10 2 20 32.00 28.65 raidz3 wide False 21 1 21 36.00 32.23 stripe False 0 0 22 44.00 39.39 Pool 2 type NSPF width spares data drives raw (TB) usable (TiB) mirror False 2 2 20 20.00 17.91 mirror True 2 2 20 20.00 17.91 mirror3 False 3 1 21 14.00 12.53 mirror3 True 3 1 21 14.00 12.53 raidz1 False 4 2 20 30.00 26.86 raidz2 False 10 2 20 32.00 28.65 raidz3 wide False 21 1 21 36.00 32.23 stripe False 0 0 22 44.00 39.39

Here you can see the first row of the first module identifies the Log slots with 'LZ'. You may also have noticed that the default disk size is now 2TB as that is now the flagship size. If you need to model 1TB configurations, you can still use the 'size' keyword from previous releases. The other command which carried forward is the 'add' command, which allows you to model the change in configurations over time. Here's an example that shows both in use:

./sizecalc-sas.py -s 10.156.83.42 *** size 1T 12/12 add size 2T 12/12 Sun Storage 7000 Size Calculator for SAS disks Version 2010.Q1 ----------------------------------------- | | 2 | 2 | 2 | 2 | | | |-----------------------------------| | | | 2 | 2 | 2 | 2 | | | |-----------------------------------| | | | 2 | 2 | 2 | 2 | | 1| |-----------------------------------| | | | 1 | 1 | 1 | 1 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | ----------------------------------------- ============================================ ----------------------------------------- | | 2 | 2 | 2 | 2 | | | |-----------------------------------| | | | 2 | 2 | 2 | 2 | | | |-----------------------------------| | | | 2 | 2 | 2 | 2 | | 1| |-----------------------------------| | | | 1 | 1 | 1 | 1 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | | |-----------------------------------| | | | 1 | 1 | 1 | 1 | | ----------------------------------------- ============================================ Pool 1 type NSPF width spares data drives raw (TB) usable (TiB) mirror False 2 4 32 15.00 13.43 mirror3 False 3 6 30 9.00 8.06 raidz1 False 4 8 28 18.00 16.12 raidz2 False 11 2 34 27.00 24.17 raidz3 wide False 11 2 34 24.00 21.49 stripe False 0 0 36 36.00 32.23 Pool 2 type NSPF width spares data drives raw (TB) usable (TiB) mirror False 2 4 32 15.00 13.43 mirror3 False 3 6 30 9.00 8.06 raidz1 False 4 8 28 18.00 16.12 raidz2 False 11 2 34 27.00 24.17 raidz3 wide False 11 2 34 24.00 21.49 stripe False 0 0 36 36.00 32.23

In this example, we specify that the first module uses 1TB drives, while the second uses 2TB drives. The double line separates the first configuration visually from the second that we added with the 'add' keyword.

So after all of that, you should be armed and dangerous... Download the new tool here, and have fun modelling the new system!

EOF



Read More about [Sizing J4410...