So how much work was it?

Guest Author

With any product, there is always some talk from the enthusiasts about how they
could do it faster, cheaper, or simpler. Inevitably, there's a little bit of truth to
both sides. Enthusiasts have been doing homebrew NAS for as long as free software
has been around, but it takes far more
work to put together a complete, polished solution that stands up under the stress
of an enterprise environment.

One of the amusing things I like to do is to look
back at the total amount of source code we wrote. Lines of source code by itself
is obviously not a measure of complexity - it's possible to write complex software
with very few lines of source, or simple software that's over engineered - but it's
an interesting measure nonetheless. Below is the current output of a little script
I wrote to count lines of code1 in our fish-gate. This does not
include the approximately 40,000 lines of change made to
the ON (core Solaris) gate, most of which we'll be putting back gradually over
the next few months.

C (libak)                 185386        # The core of the appliance kit
C (lib) 12550 # Other libraries
C (fcc) 11167 # A compiler adapted from dtrace
C (cmd) 12856 # Miscellaneous utilities
C (uts) 4320 # clustron driver
----------------------- ------
Total C 226279
JavaScript (web) 69329 # Web UI
JavaScript (shell) 24227 # CLI shell
JavaScript (common) 9354 # Shared javascript
JavaScript (crazyolait) 2714 # Web transport layer (adapted from jsolait)
JavaScript (tst) 40991 # Automated test code
----------------------- ------
Total Javascript 146615
Shell (lib) 4179 # Support scripts (primarily SMF methods)
Shell (cmd) 5295 # Utilities
Shell (tools) 6112 # Build tools
Shell (tst) 6428 # Automated test code
----------------------- ------
Total Shell 22014
Python (tst) 34106 # Automated test code
XML (metadata) 16975 # Internal metadata
CSS 6124 # Stylesheets

[1] This is a raw line count. It includes blank lines and comments, so
interpret it as you see fit.

Join the discussion

Comments ( 6 )
  • kangcool Tuesday, November 11, 2008

    From the view of the home brew nas what you say helps our case.

    A home brew nas is simpler as it only does what we really need it to do.

    Ie do you really need the 40,000 changes to core ON? We been building NAS boxes just fine up to now.

    Home brew nas are also cheap, but not as pretty. Ok you can't build a u4 thumper - but you can build it in a u5 case for a fraction of the price.

    Faster, well yes but only due to brute force. With all the cash we have saved we might as well put in the top end cpu and loads of memory.

  • Irritated Admin Tuesday, November 11, 2008

    It has been \*one day\* and I'm already tired of the "I could go to Fry's/NewEgg/Circuit City (RIP) and build this same thing with my soldering iron" crowd. There's nothing wrong with homebrew NAS solutions. They are directly comparable to people building kit cars in their garages: they are fun (and time consuming) to assemble, they work (usually), they're often pretty fast, and they carry one or two people around. Using that scale, the 7000 series products are 747 jumbo jets which can be safely run by a bus driver. It's true: both the kit car and the 747 "do the same thing": they both move people around. But they're not comparable in the manner suggested by kangcool. I'm not interesting in placing my medical records, my science experiments, my render farm, my genome sequences, my search engine backend, my sales database, etc. on homebrew NAS. The data has \*value\* many times greater than the cost of the storage. Protecting the data is in the best interest of all involved.

    As for the LOC count, I think it'd also be good to count the effort Sun expended in the core platform. The CIFS server, ZFS enhancements, etc.


  • Joe Tuesday, November 11, 2008

    I have a home brew NAS. It runs OpenSolaris Nevada Build 101 and the filesystem is ZFS. It works great and I built it from parts from NewEgg.

  • Peter Wednesday, November 12, 2008

    Just curious if you've seen SLOCCount before


    It'll give actual source lines discounting comments etc.

    as well as a nice summary of each language and breakdown.


    As for the home brew NAS based on OpenSolaris and ZFS crowd,

    sure you can do it but it'll take a lot more time and effort than this.

    Download and try the virtual machine image to see what all

    this brings to the table:



  • TS Sunday, November 16, 2008

    I am really sick of the people who think like this:

    "It has been \*one day\* and I'm already tired of the "I could go to Fry's/NewEgg/Circuit City (RIP) and build this same thing with my soldering iron" crowd."

    It is absolutely true you can go 1/10 of the list price by DIY. Even without doing it yourself, can you explain the $10,000 list price difference of the SunFire X4540("Thor") to the 7210 system? The question is whether "fishworks" UI is worth 10,000 dollars worth of license per node. What is even sicker is this: can you explain the difference say if you bought the 2U SunFire X4440 and stuffed custom SSDs(Intel X25-M for the readzillas, and Intel X25-E for the logzillas) in there yourself to make yourself a 7410 equivalent system for less than 10,000 dollars from Sun itself(or half of the price of the Thumper)

    You can even do it with Dell PE2970 + 2 MD1120 cases for the same 48 bay enclosure. Yes that system is 6U compared to 4U of the thumper, but the thumper/thor takes 10Amps of power. So you can't fit 10 Thumpers in a data center 42U rack or you will be pushing 100 Amps+ so the space premium is not an issue.

    What it comes down to is this: are you willing to pay a $10K license fee per controller node for the fishy UI on the new storage 7000 system.

  • Dave McDorman Thursday, November 20, 2008


    Don't compare these systems to something you can build yourself.

    Compare it to commercial Filers from the big Storage companies.

    This $10,000 you highlight and lay at the foot of the software

    covers a multitude of values: service, integration and testing

    of components. If price is your only objection, contact a Sun Sales

    Person or Channel Partner and negotiate away that objection.

    The prices you mention are List. Discounts are negotiated on most

    large commercial procurements with commitments for volume or competitive

    situations. The price of the 7000's will be used repeatedly to obtain better

    discounts from it's competition. It changes the $/GB for a high performance

    commercial filer... that's what drove these guys to spend 2 years making this

    "applicance" for Sun to capture a share of that market.

    You can build a great filer from OpenSolaris code and the Fishworks

    team contributed nice chunks of code to make that possible (L2ARC for example).

    Would we like to see the Fishworks code donated to OpenSolaris... sure.

    But what has been donated will allow start-ups and others to build filers

    at the price of the components without any licensing fees or software add-ons.

    DISCLOSURE: I am an engineer for a Sun Reseller and I expect to sell a lot of

    these systems.

Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.