DIY NAS Smackdown

Bill Meade compares homebrew NASes using ClarkConnect, Ubuntu and Windows XP Pro and comes up with interesting and surprising results.

Speak out in the Tom's Networking reader survey!
19 answers Last reply
More about smackdown
  1. excellent article Bill, nicely executed! Only one thing missing is comparing different file systems as JFS and Reiser are supposed to be better at handling bigger files.
  2. Very intresting article on IMHO super hot topic. :D
    Some more things I would find intresting:
    - OpenNas distribution (based on openBSD I believe)
    - energy efficient platforms (VIA C3 CPU?) - for the environment and because power is so expensive here in Denmark
    - SME linux - probably as easy as CC and covers an enormous number of networking needs (disk server + firewall+ web server + ftp server + mail server + remote access through VPN + many more goodies) every geek should base his home network on one of these. Even MS heads can handle SME :wink:
  3. Quote:
    Bill Meade - I wish that I could get all the people posting to the Forumz from the first article to run iozone on their equipment and send me the equipment specifications (NAS and XP test system) and the .wks file that iozone creates.

    Bill would you copy/paste the quick and dirty Iozone commands that you used in plain text here for those who would post numbers who are too lazy to figure out Iozone. I'll sit down and try to run the same commands on several machines using various setups and I'll send it your way. Would you prefer a PMs or a post right to the forum?

    Not sure if you used the exact same string but I'm using the one right from the 'How We Test' page.

    iozone -Rab [results file name] -i 0 -i 1 -+u -f [path to directory on NAS device under test] -q 64k -n 32M -g 1G -z
  4. Great question! I save every iozone command I run. Here's an example:

    iozone -Rab 016UD16.wks -i 0 -i 1 -+u -f z:\test\013.tmp -q 64k -n 32M -g 1G -z

    which was the command I used to test Ubuntu Desktop on a 1.6 GHz Duron.

    To set this up:

    Download and install iozone from and install on your Windows machine. iozone will install itself in /Program Files/Benchmarks/Iozone 3.326 or some such place.

    Connect your Windows box to the NAS on its own gigabit switch for the test. Another thing we shoudl start testing is the impact of jumbo frames. If you know how to do that or have JFs set up, include the description of these in your emailed test results please.

    I give my XP box and the NAS box fixed IP addresses that are consistent with my sub net so I can plug the two boxes into a switch or into the main network just by moving 3' cables between switches.

    So for example I'll use for the XP box with for the gateway, and for the NAS and the same gateway.

    Then on XP I set up a mapped network drive to the NAS. By default this becomes drive z: so if you look in my iozone I have the test file written into z:\test\ and I name it something new every run. So, you'll have to create the \test directory on the NAS for the above command to run.

    One thing that saves a reboot is to, as soon as the test is done on your NAS, delete the share on z:\ because when you taket he NAS off and swap on another NAS at the same IP address XP will think about what the heck is going on for a REALLY LONG TIME.

    Now, to actually run the test, stop all programs you can.

    Open Notepad and copy the command from the top of this post, and paste it into a text file on your desktop.

    Edit the command as you like.

    Save the command.

    Select the entire command and do a control-c to copy it to scrap

    Then, open a dos window.

    cd \ to get back to the root directory
    cd "Program Files
    cd benchmarks
    cd "iozone 3.326

    then click on the c:\ icon in the upper left hand corner of the dos window

    click on the Edit > menu of the drop down

    click on Paste to paste your command intot he dos window

    Hit enter

    Try this and let me know how you come out. Email the spreadsheets as attachments to an email that contains with your configuration(s) to I've got 4 spreadsheets so far! Thanks you Jordma01!!!!

    And thanks to all! Once I get a few spreadsheets we'll have to have some kind of contest. I've got extra MegaRAID i4s we can give away as prizes!!!!

    bill meade
  5. I'm going to forego the use of a switch and use a crossover cable that I made in my free time at work. Now that I'm home I can play.
  6. bgerber,

    What is the exact case make and model that you are using? I cannot find one that holds that many drives.


    Frank T. Lee
  7. Great article bill and a good supplment to your DIY NAS article from earlier.

    One question I have to suggest, is what about bnechmarking Ubuntu Server for these tests?

    I understand it is substantially optimised, though it's command line only. I'm sure it can be configured to set up an http access interface to the server (though being inexperienced I'd struggle to do so myself).

    I suspect we might see improved results especially on the low end pltaforms e.g. the Duron.
  8. Last night I was running numbers on my setups to share with all. I'll post what I'm testing on below. Mind that for now I'm only benchmarking NASLite v2 for the OS. And will perhaps at a later time run NASLite 1 it's free and pretty much dumby proof and will run on very minimal hardware.

    For these tests I'm using the same machine with various components. It is an older Dell Optiplex GX1. Slot 1 motherboard with the good old i440BX chipset that does 66/100MHz FSB. I may also test on a P4 2.8GHz using configurations as close to the others as possible.

    CPUs - PII 350MHz, PII450MHz, PIII 1000MHz – all three are 100MHz FSB
    RAM PC100- 128MB, 256MB, 512MB
    NIC(s) - D-Link DGE-500 (GbE), *D-Link GFE-530TX+ (100MbE)
    HD control - Promise Ultra100 PCI
    HD - Seagate 120GB ATA100 7200RPM, 8MB

    *I may not even run the tests over a 100M connection; why bother when it’s limited to 12.5MBs. GbE cards and unmanaged switches are cheap enough hence, there is not much reason to not move up to GbE and reap the benefits. Though I do suppose if all you can afford or have on hand is even an old ISA 10M NIC then use it.

    The machine running Iozone has a 3GHz P4 800MHz FSB, 1GB dual channel PC3200, Seagate 160GB SATA 7200RPM 8MB, onboard Intel Pro 1000T GbE, and Win XP Pro SP2.

    I directly linked them via a CAT5e crossover I made and tested to GbE yesterday in my free time at work. This will take out any latency a switch may have and give me the best results not considering my hardware. Some people may want to consider this if they are only using a NAS with one machine and no switching, just add a second NIC to the machine accessing the NAS.

    BLAM!!! Single drive! Not bad at all...

    Reads - 64KB record size

    Writes - 64KB record size

    Bill try giving NASLite 2 a shot on your test machines.
  9. Bill,

    One thing you may want to explore to explain the slower Raid 5 performance with larger file sizes is to increase the stripe size. Based on your previous article, when setting up the MSI MegaRAID card you used the default stripe size of 64K. Since you are running a 4 HD setup, you may find it faster for larger files if you increase this number to 128K. I know this involves a restructuring of your RAID array which should eat up any "free" time you have. :wink: Not fun, but it would be interesting to see the results.
  10. For all,

    FYI if you DIY a NAS even when using an old PII 350Mhz or older use a GbE NIC, it would be dumb not to if you care anything about speed. It's funny a lowly PII 350MHz with a single drive out does off the shelf stuff, LMAO.

    Off the shelf NAS are most likely for people who:
    1) don't care about speed
    2) don't have the time to build a NAS
    3) don't know that they can get better and save money by building one
    4) want to be green and save on the electric bill
    5) want something smaller
    6) don't have a monkey with a screw driver around to build one for them
  11. Great article, but is it just me or are there some pages missing. When I first read the article a few days ago, it had something like 12 pages, now its only 3. I was planning on re-reading the Ubuntu part. Can you please post the remaining portion of your article.

    Thank you.
  12. Hmmm, you are right. Article is broken. Here are the Ubuntu steps:

    c. Setting up SAMBA shares under Ubuntu 6.06 Desktop.

    I don’t know much about Ubuntu 6.06. Just that IT IS GREAT! I’ve been most impressed by ease of install and update. For the constellation of hardware that I work with Ubuntu beats Suse, Gentoo, ClarkConnect, and Linspire 5. Ubuntu has been able to install flawlessly on esoteric laptops (Averatec 1050EB1), rare-in-the-x86-world-monitors (Apple 23” Cinema Display), as well as all the video cards, motherboards, and ethernet adapters in my inventory. Having worked at a large electronics company on installers, I take my hat off to the Ubuntu installer team ( and These 3 (!) people have obviously spared no trouble to try their product on every piece of hardware available.

    The more I use Ubuntu, the more I find myself gossiping about it as a great operating system. Fancis Crick in his book What Mad Pursuit used the idea of listening to yourself gossiping as a way to determine what you want to do with your life. I’d better be careful, because I find myself fantasizing about getting rid of all my Windows computers and jumping to something like Ubuntu.

    Well, maybe someday.

    To install and configure Ubuntu Desktop:

    Step 1: point your web browser to then click on desktop Download, click on your country, then click on the version of Ubuntu 6.06 for your platform.

    Step 2: After the ISO image is completely downloaded, burn the ISO image to CDR (see above instructions on burning ISO CDs).

    Step 3: Boot your desktop PC from Ubuntu 6.06 ISO image.

    Step 4: When your machine finishes loading the graphical user interface, look in the upper left hand corner for the disk icon with an organge triangle (Ubuntu logo) and an arrow that says “Install”. Double click on that icon and follow the screen prompts to install Ubuntu 6.06. You have to specify Language (English for me), Location (Boise, ID), Keyboard Layout (American English), Full Name, Log-In Name, Password, veto or don’t the Name of Computer computed for you. Next erase entire disk or (gag) partition. Confirm installation settings before the installer starts. Get back to work while the Ubuntu installer completes.

    Write down your user name and password on a note. You will need them to get back in to the system at the end of the install. I’m not doing screen shots or step-by-step instructions for this part of the installation. It is smooth. You will be fine. Trust me. 31 minutes end-to-end.

    Or, if you have a problem, complain on the Tom’s Forumz (see the link at the top of the first page of this article) and I’ll see what I can do to step you through any roadblocks that pop up.

    Step 5: Once you’ve got Ubuntuo 6.06 Desktop installed, reboot, then log-in. Now you are at the desktop, we can install SAMBA and get your share up. Warning, for the Linux queasy, we’ll have to use the terminal window to do this. Not pretty, but it won’t last too long.

    Step 6: Click on the “Applications” menu in the upper left hand corner, then hold the mouse over “Acessories” so that the sub-menu pops up. Then, move your mouse over “Terminal” and hold down the left mouse button. Keep your finger on the left mouse button and then drag the terminal icon to the top menu bar of the screen. It may take you a couple tries, but once you’ve got the terminal at the top of the screen, you can easly jump back and forth between the graphical user interface and the Linux Ferrari under the hood.

    Step 7: Open the terminal window. Type:

    sudo apt-get install samba

    Ubuntu will prompt you for password. Give it your default password. Next the terminal will prompt you to ask permission to copy the SAMBA files to your hard drive. Type “Y” and then hit enter. After the action stops you should see “* Starting Samba Demons” on its own line. Then type:

    sudo apt-get install smbfs

    This should get SAMBA installed on your UNAS (Ubutnu Network Attached Storage). Next we need to create the first share. To do this we will use the Ubuntu GUI and the mouse. Click on the minimize button (left side of the upper right corner) of the Terminal window.

    Step 7a: Click on the “System” menu at the top of the screen to the left of the globe icon.
    Step 7b: Select “Administration” which is 2nd from the top.
    Step 7c: Click on “Shared Folders” which is about ½ the way down the menu.
    Step 7d: First you will be asked for your administrative password. Enter it. Then “Shared Folders Settings” dialog will open up
    Step 7e: Now click the “+Add” button on the “Shared folders settings” dialog.
    Step 7f: A “Share folder” dialog pops up. Type the name of the share you want to create next to the “Name” field. I’m naming my share \test. Check “Allow browsing folder. Then, click on the “General Windows Sharing” button.
    Step 7g: A dialog named “Windows sharing settings” will open. In this window set your domain/workgroup (the default is MSHOME) to whatever your workgroup is. I’m setting my workgroup to WORKGROUP. Then click OK.

    What these steps have done is to create a network share in my /home/bill Linux directory. The network name for the share is \test in SAMBA (or MS Windows Networking).

    Step 7h: Open the terminal window (click on it on the bottom task bar) and go to your home directory
    cd /home
    next type:
    chmod 0777 bill
    where bill = your login name in Ubuntu.

    Step 7i: Now we need to tweak the SAMBA configuration file that is in /etc/samba. While you are still in the terminal window, type:

    cd /etc/samba
    sudo nano smb.conf

    The first line will move you into the SAMBA folder and the second line will allow you to edit the SAMBA configuration file (smb.conf) and allow you to save your changes.

    The computer will ask you for your password. Type it in and hit return. Once you are in the Nano editor, type <Ctrl><w> to search for a text string and type in:

    security =

    and then hit enter to start Nano searching for “security =”

    The lines in smb.conf will look like this:

    ####### Authentication #######

    # "security = user" is always a good idea. This will require a Unix account
    # in this server for every user accessing the server. See
    # /usr/share/doc/samba-doc/htmldocs/Samba-HOWTO-Collection/ServerType.html
    # in the samba-doc package for details.
    ; security = user

    take out the ; at the beginning of the 2nd “security = user” line and then change “user” to “share”. When you’re done, this section of smb.conf should look like this:

    ####### Authentication #######

    # "security = user" is always a good idea. This will require a Unix account
    # in this server for every user accessing the server. See
    # /usr/share/doc/samba-doc/htmldocs/Samba-HOWTO-Collection/ServerType.html
    # in the samba-doc package for details.
    security = share

    Then, scroll down to the very bottom of your smb.conf file where you should find:

    path = /home/bill
    available = yes
    browseable = yes
    public = yes
    writable = yes

    and add these lines:

    create mask = 0777
    directory mask = 0777
    force user = nobody
    force group = nogroup

    so the final product looks like this:

    path = /home/bill
    available = yes
    browseable = yes
    public = yes
    writable = yes
    create mask = 0777
    directory mask = 0777
    force user = nobody
    force group = nogroup

    Type <Ctrl><x> to exit the Nano editor. Type “Y” to save the changes. Finally (famous last words) restart SAMBA by typing:

    sudo /etc/init.d/samba restart

    The reason we restart samba is that we want the changes we just made in the smb.conf file (security = share and the changes to the [test] share) to be loaded into SAMBA. Until SAMBA restarts, it will be using the old settings. These last settings changes tell SAMBA that it is OK to allow us to write to the \test share.

    The very last thing we need to do is to see what the IP address is on our UNAS. To do this type “ifconfig” in the Ubuntu terminal window. At the left side of the screen you’ll see eth0. On the line below eth0 and at the left end you’ll see “inet That is your UNAS’s ip address. In my case that is
  13. Wow this thread is slow. 8O
  14. Quote:
    Great article, but is it just me or are there some pages missing. When I first read the article a few days ago, it had something like 12 pages, now its only 3. I was planning on re-reading the Ubuntu part. Can you please post the remaining portion of your article.

    Thank you.

    The link to the discussion from the first article is also gone. That thread was really going somewhere, and now the momentum is gone. What happened to that poor article?
  15. Quote:
    Great article, but is it just me or are there some pages missing. When I first read the article a few days ago, it had something like 12 pages, now its only 3. I was planning on re-reading the Ubuntu part. Can you please post the remaining portion of your article.

    Thank you.

    The link to the discussion from the first article is also gone. That thread was really going somewhere, and now the momentum is gone. What happened to that poor article?
    We had some database problems over the weekend that caused some content to go missing. We think we have everything restored, but it looks like we missed some things.

    The link to the RAID 5 DIY discussion is here:

    and will be restored to the article shortly.

    Thanks for your patience and sorry for the problem.
  16. Brett said:
    The DIY NAS Smackdown article was great, it inspired me to finally break down and set up a system. I thought it might be worth mentioning that a visit to the Dell Outlet produced a scratch and dent Celeron 2.5Ghz machine with 512MB ram a DVD/RW and 160GB hard drive all for $209. They had several deals like this and always do. Just another source for cheap hardware.
  17. Mach Speed Viper MK8-939A Socket 939 Barebone Kit - $139.99*
    w/ AMD Sempron n 3000+ OEM / 512MB DDR PC3200 / CPU Fan / ATX Mid-Tower Case with a 400 Watt Power Supply

    Maxtor 300GB L01S300 16MB Buffer Serial ATA (SATA) - Retail Hard Drive Kit. - $79.99 8O
    limit two - :cry:
  18. Thanks for a very usefull article!
    I am a complete newbie to Linux so a type error in the article at Step 7: caused some problems for me and time to figure out:
    For other newbies like me please edit in a space between "sudo" and "apt" so it reads sudo apt-get install samba.
    There is also a space missing in the command to restart samba between sudo and /etc.

    These errors have been corrected in your earlier answer above, but editing the article on SmallNetBuilder site would perhaps be a good thing.
    For me it toke some time to find this forum as there is not much on the SmallNetBuilder site pointing to this forum or maybe I am looking with my left foot?

    Thanks for showing me or pointing me into the world of Ubuntu/Linux!!!!
  19. So is RAM in the NAS system the one that is limiting the performance when it comes to file sizes > 1GB?
Ask a new question

Read More

Article Discussion NAS / RAID Do It Yourself Windows XP Ubuntu