Ubuntu on a VIA MM3500 – 2 Terabyte NAS RAID1 server for $350

Sometimes raw power is the enemy of efficiency. For example, many car buyers opt for powerful engines for their cars, only to get disappointing fuel economy around town, where that power is not needed. A smaller engine that might have to work harder when pushed but runs much closer to peak efficiency in everyday driving would be more suitable. Likewise, many computer buyers get machines with high end CPUs that when doing mundane tasks such as email and web browsing spend more then 90% of their time idle, but still burning 90 to 200 Watts. A less powerful CPU might get the same job done drawing less than 50 Watts. This easily adds up to hundreds of kilowatt hours (kWh) wasted during the computer’s lifespan.

Yes, sometimes less is more. I took this philosophy to heart when I bought a Toyota Prius, which has only a modest 1.5 litre engine, drawing on electric motors and a battery for peak loads. I also recently purchased a sub-$70 motherboard with a 1.5 GHz VIA CPU that typical desktop CPUs will run circles around when running under full load, but at a cost in electricity and money. This board will take over the workload of multiple, more energy-hungry machines that have been sitting mostly idle doing what they’re doing every day. It’s powerful enough and economical, drawing a maximum of about 20W. Typical desktop chips have a maximum power draw of 45 W, 65W or more.

MM3500 - VIA C7-D 1.5GHz, CN896 + VT8237A

(Click here to see a full set of pictures of the upgrade)

Five months ago the largest and most important hard disk on my LAN died after only 15 months. Even though I could still rescue the most crucial data off it before the drive finally went offline forever, it was a very close shave and I lost some data. I realized I needed to move my data to a RAID, a “Redundant Array of Inexpensive Drives”. It’s a system in which data is transparently written to multiple drives for reliability. If any one drive dies you can still read your data and recover gracefully from the failure after swapping the dead drive for a replacement drive. This is relatively easy to do in Linux, in fact the server that hosts this website uses RAID too.

Last weekend I set up a machine for about $350 in total as a network attached storage server (NAS) under Linux with adequate processing power for other tasks. I equipped it with 2 GB of RAM and twin 1 TB mirrored hard disk drives. The main expense were the two drives (WD10EADS “GreenPower”, 5400 rpm, $110 each), whose cost made up about 2/3 of the total investment. The other parts were the Micro-ATX VIA MM3500 motherboard ($70), two 1 GB DDR2 PC5300 memory modules ($25 each), SATA cables (one comes with the motherboard) and Molex to SATA power adapter cables, as my older ATX SFX power supply (PSU) did not have the right connectors yet. Also, the motherboard uses a 24-pin power connector while the PSU only had a 20-pin plug, but the four extra pins are not required for this board and the plug is keyed to only fit in the proper place.

The case that was to house these components used to be an eMachine 366i, a cheap minitower I had bought in 1999 for about $450 and which had served me well for many years. I once had to replace the power supply for $25 with a FSP180-50NIV-H (dead PSUs are the most common problem in eMachines) and otherwise only upgraded the hard disks, the last one being a 60 GB IBM DeskStar that failed in 2007. By now the 366i’s Celeron 366 MHz CPU was slow, it’s 256 MB (the maximum supported by the board) inadequate for modern operating systems and it neither supported SATA drives nor any drives greater than 128 GB. It also didn’t have any USB2 ports. Still, the replacement power supply was relatively recent and the case big enough for this project.

Since the RAID drives had to be online 24/7 for my spam processing I was looking for a motherboard that used as little power as possible while being adequate for running the file server and spam filter. After considering various Intel and AMD desktop boards (including the Intel Atom processor 230 Intel 945GC Mini ITX desktop board) I finally came across the VIA MM3500. As mentioned above, this board includes a VIA C7-D CPU running at 1.5 GHz.

While that VIA CPU is even slower than an Intel Atom (which is not exactly known for its speed) its price of under 7000 Japanese yen (less than US$70) was attractive and both the CPU and the chipset draw little power. While the CPU on the Intel Atom board only sips power, its chipset is fairly inefficient (which is why the cooling fan sits on the Northbridge heatsink, not the passively cooled Atom heatsink). Like the Atom board the MM3500 has two SATA ports, enough for handling RAID1. 8 USB2 ports provide plenty of expansion capabilities, as does a PCI-E slot for video cards (not available on the Atom). Two DDR2 slots will accept up to 4 GB of RAM, twice the limit of the Atom board which only has one slot and can only reach its maximum of 2 GB by using a 2 GB SIMM. Both boards offer one PCI slot.

The main complication with the VIA board turned out to be video driver support for the onboard graphics (CN986 Northbridge / Chrome9 HC IGP). As soon as Ubuntu switches into graphics mode, the screen becomes unreadable. I got around this only by plugging an old Jaton Video-198PCI-64 Twin video card into the PCI slot (any Ubuntu-supported PCI or PCI-E card will do). I am hoping to find a proper work-around to be able to remove this card again and minimize power usage [done, see UPDATE below!]. I could do away with it by running the server only in text mode (with ssh access) and never using its GUI. That wouldn’t matter for a file server.

I first tried installing Ubuntu 8.04 LTS (desktop edition), but after the video problems I switched to a torrent of the Ubuntu 8.10 beta. Ubuntu 8.10 (Intrepid Ibex) is due for release on October 30, 2008. The 8.10 beta includes a fix for booting off a RAID1 system with one dead drive, which I may need in the future. 8.04 doesn’t handle this yet.

After installing the PCI video card, the operating system installation (including configuring the two mirrored drives as RAID1 following these very helpful instructions) went very smoothly.

It is a pity VIA doesn’t provide better video driver support for up-to-date Linux versions, otherwise this would be a nice little board that I would find easy to recommend to people who want to build a low-power usage system on a small budget.

UPDATE (2008-10-14):

I now have the motherboard video working in VESA mode and it’s very usable.

Following some pointers in various forums, I tried adding the xforcevesa option to the kernel loader line in /boot/grub/menu.lst, but that didn’t seem to have any effect in Ubuntu 8.10 beta (Intrepid Ibex).

Then I renamed /etc/X11/xorg.conf to a backup and copied xorg.conf.failsafe to xorg.conf (in folder /etc/X11/). I shut down the machine, connected the monitor cable to the motherboard VGA and removed the add-on VGA from the PCI slot. When I powered up the machine again, it booted fine. I get a 1280×1024 screen, the maximum for the Dell 1905FP monitor I used.

I am still hoping that the Ubuntu developers will manage to get an updated Chrome9 HC IGP driver into the upcoming release, but for now I have a workable solution and am happy with this setup.

UPDATE (2008-11-10):

I got rid of the VESA driver and am using the default OpenChrome driver for the motherboard video after specifying two options to disable features on the driver that cause problems in the current build:

Section “Device”
Identifier “Configured Video Device”
# Driver “vesa”
Option “XaaNoImageWriteRect”
Option “SWCursor” “True”
EndSection

Also, a couple of days ago VIA uploaded a beta test version of their driver for Ubuntu 8.10 to their Linux support site (a month after 8.10 was released), but I haven’t tested it yet.

7 thoughts on “Ubuntu on a VIA MM3500 – 2 Terabyte NAS RAID1 server for $350

  1. Pingback: 4 pin cpu fan connector | Bookmarks URL

  2. You made the wrong choice in my opinion. With the Atom 230 you get SATA II, hyperthreading a 64-bit computing.

    The only pro to the VIA board is the PCIe slot which is not useful for a NAS box anyway.

    I dumped my MM3500 board for the Intel Atom mini-itx and installed opensolaris on it. I now have a ZFS powered NAS for just about the same price.

    As for the MM3500 board, I added a 8400GS NVIDIA card and I am running mythtv with VDPAU support on it.

  3. Ahmed, I do not regret my choice of the MM3500 over the Intel D945GCLF board.

    The ability to run 64-bit code does not directly buy you any speed, to the contrary (64-bit code will usually run a little slower than 32-bit code if available physical memory is no constraining factor, because it’s a little less compact). What 64-bit offers is seamless expansion of addressable RAM beyond 4 GB. If your apps run out of space in 4 GB then being able to upgrade to 8 GB will buy you extra performance, but that is a complete non-issue on a board that physically can’t even go beyond 2 GB.

    Likewise, hyper-threading or other performance considerations are not really important with my application. The CPU load usually hovers anywhere between 0.02 and 0.30, which means the CPU spends more time being idle than doing anything.

    The SATA/300 support (popularly, but not quite correctly referred to as “SATA II”) on the Intel board is not important to me either, as I am accessing it mostly over the network and none of my network clients even have network interfaces beyond 100 Mbps. They would max out at 10 MB/s regardless of the hard drive interface. Even if I had Gigabit Ethernet, the network would be slower than the 1.5 Gbps interface of SATA/150.

    The sustained sequential throughput of the WD 1TB drives reported by Tom’s Hardware ( http://www.tomshardware.com/reviews/wd-caviar-gp,1703-4.html ) varies between about 39 and 76 MB/s, depending on what part of the disk you’re accessing. That’s between 1/4 and 1/2 of the maximum bandwidth offered by the slower SATA/150 interface of the MM3500. If my board supported SATA/300, it would be 1/8 to 1/4 instead. Either way the interface is fast enough to keep up with the drive.

    Unlike these three points what *is* important to me is the more than 20W burnt 24/7 by the relatively inefficient 945GC chipset of the Atom 230 board, which makes a bit of a mockery of the lean 4W TDP of the CPU itself. I would prefer the more efficient notebook version of the Atom chip set (as used in the Eee Box 202 for example), but such boards are not available as low-cost retail products for purposes like ours.

  4. To each his own then 🙂

    However your statement that 64-bit code is generally slower than 32-bit is completely dependent of what your code is doing! Running a 128 bit file system (ZFS) is one application where 32-bit vs 64-bit make a huge difference.

    I would conceded that the atom is an overkill for a NAS box. However the MM3500 just couldn’t handle ZFS so it was not a real option (plus the mini-itx form factor made me drool a bit).

    That said, I think that there are a few motherboard/CPU options available. What I couldn’t find was a reasonably priced NAS case.

  5. Pingback: IPv6 with DD-WRT router and Hurricane Electric

  6. Pingback: Computer power usage: AMD, Intel and VIA

  7. Pingback: Ubuntu 11.4, GA-H67MA-UD2H-B3, EarthWatts EA-380D, Centurion 5 II, 5K3000

Leave a Reply

Your email address will not be published. Required fields are marked *