This iteration of Lab Bench Online takes a look at two different approaches to NAS and to embedded systems. The first is VIA Technologies ArTiGO A2000 (Fig. 1). This is a conventional NAS box that supports a pair of SATA drives. The second is Marvell’s SheevaPlug (Fig. 2). The SheevaPlug is designed for external USB drives. Both devices can handle any kind of USB device making them interesting development and deployment platforms for USB peripherals from data acquisition to printers.
For storage, we turned to Seagate for a pair of their latest 3.5-in, 2-Tbyte Barracuda drives (see "Seagate Delivers 2-Terabyte Hard Drive") for the A2000. For the SheevaPlug we added one of Fujitu’s HandyDrive external USB units (see "500-Gbyte Fujitsu HandyDrive"). We also incorporated a 1 Gbyte industrial Compact Flash from WinSystems (see "WinSystems Delivers Industrial Compact Flash") to handle FreeNAS on the A2000.
The A2000 and SheevaPlug target developers and hobbyists but they are quite different in their target audiences. The A2000 is essentially a full x86 PC or server in disguise. The SheevaPlug is a low power, compact SoC-based system running the ARM architecture. Both will serve up files from a hard drive but the A2000 has the performance edge while the SheevaPlug is very flexible. The A2000 follows the more conventional NAS model while SheevaPlug has siblings like PogoPlug that use the same hardware base but add in an Internet-based backup and service distribution system.
From our perspective, the A2000 is a hardware project since it can be built up by adding some hardware and software. We’ll concentrate on construction here.
The SheevaPlug is more of a closed box albeit a system that can be expanded externally. The concentration here is the debugging and development tools.
VIA’s A2000 is a full fledge NAS server running a 1.5 GHz VIA C7 processor with a VX800 chipset complete with VGA output. This is on par with a low to mid range desktop and it can be used as such. There is just space for lots of storage. In this case, we crammed in 4 Tbytes using a pair of 2 Tbyte Seagate Barracuda LP drives (Fig. 3). There is some airspace under the drives but no fixed mounting points for additional boards. The system supports up to 2 Gybtes of DDR2 memory with a SO-DIMM single slot.
The front panel has status LEDs, the power button and a USB board. The rear panel (Fig. 4) provides access to the VGA port, audio outputs plus the 1 Gbit Ethernet port and a pair of USB ports. The USB ports can be used for additional storage, keyboards and mice, or any other USB device you care to try out. The interior is cramped with tight quarters for cabling. (Fig. 5) but the layout works as do the custom length SATA cables.
There is a large system cooling fan and the motherboard has its own fan on the heat sink. Overall, the system is very quiet especially when used with the quiet Seagate hard drives.
The system boots using a standard BIOS so it is possible to boot from one of the hard drives, the internal CompactFlash slot (Fig. 6), or a USB device such as a flash drive (Fig. 7). I actually used all three approaches.
The first step is popping open the system. There are three screws on the back and then it is possible to pop off the front panel. Installing the SO-DIMM takes patience because it is a tight fit but manageable. It is possible to do after the drives are installed but easier to see when they are not. The same is true for the WinSystems 1 Gbyte industrial CompactFlash I installed. That’s bigger than necessary for FreeNAS, one of the platforms used, but it provides enough space for a more substantial Linux installation. The two hard Seagate Barracuda LP hard drives were next. The SATA interfaces slide into the hard disk circuit board connectors. Four screws hold each drive in place. It was then a matter of popping the top back and plugging in the external power supply.
Elapsed time: fifteen minutes. It takes longer to unpack everything than assembling it.
Because of the arrival order of the hardware, my first pass did not include the CompactFlash card so I used a USB flash drive to install a server copy of Ubuntu. The system will easily handle a graphical interface and it is possible to run a remote console using VNC. There were no surprises and the system was essentially a PC.
Things got more interesting once the WinSystems CompactFlash card arrived. Adding it was easy but first I loaded it with FreeNAS. This is a free, open source, FreeBSD-based NAS server platform complete with an extensive web-based interface. It can run a host of file services from Samba (for Windows support) to NFS to SSH. The UPNP support can work with DLNA clients. It has SMART drive support as well as firewall support. Check out the website for all of the features and screen shots of the interface.
There are a number of advantages to using FreeNAS. First, it is a snap to install and use. Logic Supply, an ArTiGO A2000 distributor, has an image file that can be copied to the flash card for immediate booting. All that needs to be done is change passwords, set an IP address and setup the hard drives. The latest version of FreeNAS has the changes needed for the A2000 so the stock version is the way to go now.
Second, it only needs 32 Mbytes although finding a CompactFlash card that small these days is tough. The WinSystems 1 Gbyte card gives lots of headroom.
Finally, the system boots without any hard drives. This is useful when swapping drives. Installing the OS on the hard drive makes things more difficult even in a RAID situation.
FreeNAS is great and I have built another A2000 system for a local school using this approach but here in the lab I run CENTOS servers. CENTOS is derived from Red Hat’s popular Enterprise Linux but it is from completely free sources so it lacks some of the custom Red Hat tools. It is also a nice multiple server management environment. The server version easily fits into the 1 Gbyte flash drive.
I went with a slightly customized configuration with swap partitions on the hard drives and the reset setup as a mirrored RAID system using LVM (Logical Volume Manager). This is handy when adding additional external hard drives. It is overkill for a home NAS but very handy when setting up iSCSI support for a Xen-based application server.
Overall, the A2000 is a solid, well designed machine that does what it was intended to do: provide a flexible server platform.
Marvell’s claim to fame is chip technology. They have everything from embedded processors to WiFi chips. The $99 SheevaPlug is a way to highlight the 1.2 Ghz Kirkwood system-on-a-chip (SoC) that uses the ARM-based Sheeva processor and adds in 512 Mbytes for flash and 512 Mbytes of SRAM. It also includes a USB 2.0 interface and a Gbit Ethernet port.
The SheevaPlug differs from the partner platform from PogoPlug, a commercial version of the SheevaPlug. PogoPlug adds a host of network-based services but it is designed for an end user, not a developer as the SheevaPlug is. In fact, the SheevaPlug includes two additional interfaces, an SDIO slot and a mini-USB connector. The latter is used for a serial terminal mode interface to the processor. The SDIO slot provides access to more flash memory. The bulk of the hardware is the power supply.
The complete schematics and all the open source software is available at the PlugComputing website. The whole scheme is designed to sell chips so it makes sense to give away the rest of the package. The site has a growing developer community and it will be interesting to see what other things come out of this incubator.
As with most open platforms, it can handle a range of software. Right now there are Gentoo and Ubuntu Linux versions available for download. Getting up and running with the system is a breeze if you are used to Linux. It is possible to take a step down and work with the bare metal but that takes a little more time and expertise. I found it manageable but you should be prepared for JTAG via the 2nd USB debug interface and living on the cutting edge. I suspect that most developers will want to work above the OS where you can rely on tutorials or software from other sources such as Ubuntu repositories. Keep in mind, through, that this is an ARM platform, not an x86 platform. Source code will often work. Binaries are platform specific.
Loading in a new OS is done using the JTAG and debug USB interface. Once installed, it is then possible to use a terminal interface via the USB port or the network interface to access the system.
The network interface is very handy for cross platform development. Just make a new application available on a network server and test it out on the SheevaPlug. Network-based debugging is easier than using the extra USB interface that tends to be used for bringing up a new OS or debugging a device driver.
For those looking for a higher level development platform, check out some of the commercial concerns found on the PlugComputing site such as WebTView or CTERA Networks.
Performance wise, it is close to the A2000. The SheevaPlug platform has a lot of potential especially with standard USB devices. It could be used for a data acquisition or a control application where USB devices were used. A USB hub can easily support multiple USB devices. I didn’t have any data acquisition boards handy but it was easy to write applications that took advantage of standard USB devices.
VIA Technology’s A2000 and the SheevaPlug are not the only NAS development platforms around but they do stand out, each for their own design.