|Linksys Network Storage Link for USB 2.0 Disk Drives|
|Summary||Open Source-based SAMBA server converts any external USB drive to shared network storage.|
|Update||7/9/2004 - Corrected Flash and RAM sizes
7/7/2004 - Backup bugfix released. Info on hidden syslog page added. Admin login info added
|Pros||• Gives you the flexibility to adjust NAS capacity to your budget
• Built-in disk-to-disk and client-to-disk backup utility
• Supports file read via HTTP
• Good value for the money
|Cons||• Unbalanced read / write performance
• Not secure for access via Internet
One of the challenges that computer manufacturers face is managing their hard drive inventory - a problem that is shared by makers of networked storage devices. Although drive prices are insanely low on a cost-per-gigabyte basis, they still can be the major factor in a NAS product's retail price. And who wants to be left holding inventory when the next drive capacity bump-up hits?
Some networking product companies have approached this problem by making routers with built-in NAS features that require BYO storage. - USR's 8200 [reviewed here] and NETGEAR's WGT634U to name two. It was only a matter of time before someone broke the BYODisk NAS function out into its own box.
That time has now come with Linksys' NSLU2 Network Storage Link. I'm happy to report that it works well and even addresses my number one request to NAS device makers - backup!
The NSL comes in a silver and charcoal plastic package that's about the size of a portable standard-sized cassette tape player. Although it has rubber feet on one side, you'll probably want to use the included base and stand it up so that you can better see the status lights. The lights include Ready/Status and Ethernet, Disk 1 and Disk 2 link / activity.
Updated 7/9/2004 The NSL contains a complete embedded computer (Figure 1) based on the Intel IXP420 Network Processor and backed by 8MB of flash and 32MB of RAM. It even has a real-time clock chip and on-board buzzer / beeper!
The single 10/100 Ethernet port is supplied via a Realtek RTL8201 Single-Port 10/100M Fast Ethernet PHYceiver and the dual USB 2.0 ports come courtesy of an NEC D720101 USB 2.0 host controller. The IXP420 comes in 266, 400 and 533 MHz flavors, but I couldn't tell which one is used. An item that the NSL doesn't have is a fan, so it's wonderfully silent in operation.
Figure 1: The NSLU2's board
Linksys' spec says that the NSL supports SMB (Server Message Block) / CIFS (Common Internet File System) over TCP/IP, which most modern operating systems support. Since the NSL is Open Source based, it essentially is a SAMBA server in a cute little box, with a friendlier user interface than you get with most SAMBA implementations. Note that the NSL uses the Ext3 file system, so you can't swap a USB drive between a Windows PC and the NSL without reformatting it - and losing the stored data.
Fans of hacking Linksys' Open Source based WRT54G router [reviewed here] will be happy to know that the company has presented you with another opportunity in the NSL. If you browse the included CD, you'll find a folder that contains original source for the SnapGear Embedded Linux that runs the NSL, plus source files for the various modified Linux modules used in the product.
Setup & Admin - Security Warning
Linksys provides a Windows-based Setup Wizard, but you can bypass it and do the entire setup via the NSL's web browser-based admin server. Just be sure to get your computer set to an IP address in the 192.168.1.X subnet other than 192.168.1.77, which is the NSL's default.
Once you log in, you can set the NSL to grab an address from your LAN's DHCP server, but I'd recommend keeping it set to a static IP address that matches your LAN's subnet so that you always know where to find it.
Figure 2: Home page
Once you enter the default IP address into your browser, you'll immediately get the Home screen shown in Figure 2. As a matter of fact, you can access everything you see without having to log in except for the Administration and User Log In (Private Data) links.
Linksys has apparently opted for ease-of-use vs. security in their choice of defaults, and the wide selection of activities available without login frankly freaked me out at first. I was particularly concerned with the ability to change any password - including the admin account - without having to first log in!
You could argue that this is no worse than Linksys' normal setup of using the same default login on all products. But this just feels more likely to get unsuspecting users in trouble, especially if they decide to make their NSL accessible for remote access via Internet. Until Linksys tightens up the NSL's security, I strongly recommend you do not set up the NSL for direct Internet access. If you must access it remotely, you'd be best off setting up VPN access to your LAN, but you should at least make the changes listed below.
Changing the default admin password and disabling UPnP should be among the first things you do in setting up the NSL. You may also want to change the port that the HTTP interface responds to from its default of 80. Unfortunately you don't have the option of disabling HTTP file access entirely, while leaving the Admin server turned on. You also can't enable secure HTTP (HTTPS) for all web-based activity, or restrict HTTP access to specific IP addresses or ranges.
On a more positive note, although you can't delete the "guest" account that provides no-password access to the NSL's "public" folder, you can add a password. You can also disable "guest" logins entirely, and not let failed logins default to being granted "guest" access.
Setup & Admin - Disk Setup
Most configuration is done via the Administration link, which has the very annoying attribute of requiring you to log in every time you click on it! Fortunately, there's a work-around via a bug - at least until Linksys fixes it.
TIP: The Administration log-in work-around requires that you log in successfully once. Then, each time you again click on the Administration link, just Cancel the log in box that pops up, click on the Go Back link on the page that comes up, then click on the Administration link again and you'll be back in the NSL's admin section.
TIP: Update 7/7/2004 The admin login information is Linksys' standard admin for both username and password. This is a little fuzzy in the User Manual (page 22).
TIP: For more fun, try entering http://192.168.1.77/Management/ into your web browser, logging in with the default user name and password and clicking on the telnet.cgi link. Let me know if you figure out what the Telnet login info is.
TIP: Update 7/7/2004 You can also try the log_server.cgi link on the hidden /Management page for setting up logging to a syslog server.
Once you're logged in, the first thing you'll want to do - after making security changes as suggested above - is format the USB hard drive you've attached to the NSL.
Figure 3: Setting up the attached USB drive
Formatting took about 12 minutes for the 160GB Maxtor OneTouch drive that Linksys arranged for the NSL's checkout. During the format, you get a "Formatting..." indication in the Disk Status box, but no progress bar and you can't really do anything else. The screen does refresh the status to indicate Formatted when it's completed, though a little beep or two from the NSL's on-board buzzer would have been nice, too. Figure 3 also shows that you can run a disk error scan immediately, or schedule one daily or weekly on your chosen day at a programmed time.
The NSL will actually support two USB hard drives via its two USB 2.0 ports, or one drive and one USB Flash memory device. Linksys says you need to install a Windows utility which lets you set the flash drive as a Windows mapped drive and "safely" shut it down before you yank it out of the NSL. But I found the utility really isn't necessary - which is good news for non-Windows users.
When you insert a USB Flash drive into the Drive 2 USB port, the NSL automatically configures it as a Share named "flash" with read/write permissions set for the "administrators" and "everyone" groups. This Share also automatically appears in My Network Places or whatever network browser your OS users and as a Location selection on the Share setup page.
I did note that the Disk 2 status with a Flash drive installed shows "Not Installed", which I think should be changed to "Flash Drive Installed" or something similar to show what's actually happening with that port. You can't perform a ScanDisk on a Flash drive either.
Setup & Admin - Shares, Groups, Users
Once the drive is formatted, you can start using the NSL right away since it sets up two default Shares, or folders (directories) on the NSL. Figure 4 shows the two shares as they appear in My Network Places. Disk 1 is the "Guest" share, which is by default Read/Write accessible by anyone on your network. Admin 1 is a share protected by the default "admin" user account and password.
Figure 4: The NSLU2's default shares
If you poke around the NSL's directory structure using your OS's file explorer, you'll find that Disk 1 really is the "public" folder found in the Admin 1 folder. But you won't find the public share anywhere in the Shares admin interface (Figure 5). Actually, all Shares get created as folders / directories under the Admin 1 top-level share. Since "Disk 1" is the way that the Admin interface refers to the first physical disk, I think this is an unfortunate and confusing choice.
Figure 5: Share administration
You can set up a new Share directly via its interface, or click on over to the User page (inconveniently located in a different Admin page grouping) and set one up automatically when setting up a new User (Figure 6). All Shares are created in the Admin 1 root directory, unless you use the Specify option and enter the path you desire - using a forward-slash format.
Figure 6: User administration
Users can also be assigned to Groups and have Disk Quotas assigned in 1MB increments. I verified that quotas are enforced per User, no matter on which Shares the User's files are stored.
Although the NSL's permission capabilities should be adequate for most of its target SOHO users, they may not be adequate for those who need finer-level control over who can access what. Basically, you can't set file or user-level permissions. Access to the "Private Folder" that can be created for each user is actually controlled by the creation of a same-named Group.
Permission mistakes for nested folders are a common mistake to make for server administration novices and can drive you crazy until you figure out what you're doing wrong. Unfortunately, the NSL lets you create nested folders (as described above), but doesn't properly handle access permissions. And worse, it doesn't properly represent the permissions in the Admin interface that it does set.
In my test case, I created a sub-folder that had different and more restrictive Group permissions than its parent folder. I found that the NSL properly wouldn't let me log into it with User info valid for the parent folder's permissions. But once I logged into the parent folder, I was granted complete access to the sub-folder.
Setup & Admin - Other Features
There are a number of other handy administration features that I don't think I touched on:
- You can enable emailed alerts. But I couldn't get the NSL to send me anything, even when I tried to exceed a User quota
- Browser-based firmware upgrade from a downloaded file
- Set the time zone and date and time for the NSL's clock
- Enable WINS and specify a server IP
- Restore the factory configuration and save and load the NSL's configuration
- Immediately shutdown or restart the NSL, or schedule shutdown and start up. (Unfortunately, the NSL can't power down the attached USB drive)
- Extensive on-line help is available via a condensed User Guide link and context-sensitive Help button on each screen.
But there are also some notable omissions:
- You can't disable HTTP access to the NSL's drives, nor can you set a different port for admin and file access. Note also that HTTP access is read only
- FTP file access is not supported
- Although you can view a master (merged) log or just a log of the Backup activity (more below), you can't save the log or send it to a syslog server
- Permission (Share, User, Group) activities are not logged, nor are logins and failed login attempts.
- No indication of how much of each User's Quota is used
The feature that I was most happy to see, however, was the NSL's built-in Backup. I nag every NAS vendor to bundle fully-functional multi-user backup capability with their product, since I think that this chore is the most dreaded and therefore least-performed essential maintenance activity.
I'm pleased to report that Linksys has exceeded my expectations in the NSL's Backup features and I think their implementation - plus the NSL's low pricing - will set the standard for competing products, as well as help them sell a lot of NSLs!
Figure 7: Backup features
Figure 7 shows the lower half of the Backup admin page (the upper half contains the NSL Configuration Save and Restore feature), which shows that the NSL features both Drive and Data Backup capabilities. The Drive backup isn't quite as good as RAID 5 mirroring, but at least ensures that as frequently as once a day, the entire contents of the NSL's Disk 1 will be backed up to its Disk 2.
This feature provides another layer of data security and I'd love to see it support using a USB 2 DVD burner as the second drive. This would provide even better protection against data loss by backing up data to removable media that could be stored off-site.
The really sweet feature, though, is the NSL's Data Backup. Figure 8 shows a backup job that I created for testing and shows most of the options available.
Figure 8: Backup job
In addition to the Full backup shown, you can also define Incremental and Synchronize jobs. Full backs up all files and Incremental backs up only changed files. A Synchonize backup will back up all files on its first run, then on subsequent runs delete any files on the destination drive that do not exist on the source (as well as backing up new files on the source drive).
A couple of positive points to note are that the Data Backup can handle shares that require a login, and lets you schedule multiple backups, which can run concurrently. You also can have the backup run from the NSL's drive to another networked share, which lets you back up a single-drive NSL.
I was able to emulate a Disk backup to removable media by creating a Data backup of the entire NSL Admin 1 share to a shared CD-RW on one of my networked machines. Not the cheapest way to do it, but it would get the job done!
There are, of course, other Backup features that I hope Linksys will add in future firmware releases. For starters, the NSL won't let you browse to pick the "Other device" used in the backup. Instead, you have to enter the full path to the share in "backslash" format, starting from the root of the share.
You also can't stop a backup once you launch it and the only progress monitor you get are job start and stop log entries, with not even an "in progress" indication in the NSL's Admin interface. You can see that something's up, though, from the flashing disk activity lights on the NSL and the USB drive. Finally, I'd definitely like to see some sort of backup report, even if it's only in summary form.
NOTE: During my backup testing I encountered a nasty bug that dampened my enthusiasm for this feature. What happens is that the NSL changes the File Modification Date/Time stamp on both the original and backup copy of each file that it backs up! The date gets changed to some time in 1970, which has the effect of blanking the Date Modified field in Windows Explorer's Details view. Viewing each file's properties, however, displays the modified incorrect 1970 date.
Linksys confirmed the problem - which is in the V2.3R21 firmware - and quickly turned around a new firmware revision that fixed the problem. But as of the time of this review Linksys has not yet posted it, nor any information regarding this bug's existence.
Update 7/7/2004 Linksys has posted Version 2.3 Release 24 that fixes this bug. Download from here.
I used IOzone to check out the NSL's file system performance and the full testing setup and methodology are described on this page. All checkout was done using a Maxtor One-Touch 160GB drive that Linksys arranged for the review. The 7200RPM drive has a USB 2.0 interface and 8MB cache.
• The flat spots at the left front and right rear of the plots are zero value areas due to the IOzone test parameters that I set and not due to performance problems
• Keep in mind that the maximum raw data rate for 100Mbps Ethernet is 12500 kBytes/sec
• If you want a closer look at the test data or generate your own plots, download the test result file here (WKS format).
Figure 9 shows a 3D surface plot of the NSL's write performance using file sizes from 64 kBytes to 128MBytes and record sizes from 4 kBytes to 16MBytes. Note that the plot is oriented so that larger file sizes are closer to the front.
Figure 9: NSL NAS Write performance
(click on the image for a larger view)
I starting out running the test with file sizes up to 1 GByte in order to ensure that the test covered areas where there were no caching effects from my test computer's 512MB of memory. (Caching is what causes the "mountain" rising out of the plot's plateau.) But as you can see in Figure 9, write performance pretty much leveled off above a 64MByte file size. You can also see that peak performance (aided by caching) of almost 252MBytes/sec occurred with a 1MByte file size and record sizes 512 kBytes and under.
Read performance was an entirely different story. Figure 10 - which has a vertical scale one-tenth that of Figure 9 - shows comparatively little performance enhancement from caching. Peak performance of about 8.3MBytes/sec occurred with record and file size of only 64 kBytes.
Figure 10: NSL NAS Read performance
(click on the image for a larger view)
Since the cached performance expands the scale such that you can't see the non-cached performance details, I've generated plots that zero in on those areas. Figure 11 shows non-cached Write performance and Figure 12 non-cached Read.
Figure 11: Non-cached NAS Write performance
(click on the image for a larger view)
Figure 12: Non-cached NAS Read performance
(click on the image for a larger view)
Of interest here is that non-cached Read performance improves with larger file sizes.
Finally, Figures 13 and 14 will help put the NSL's performance in perspective. They show a comparison of Write and Read performance for varying record sizes for 128MByte file transfers for three devices:
- The NSL with Maxtor USB drive
- The Maxtor USB 2.0 drive directly attached to a WinXP Home SP1 system running iozone
- The 80GB Maxtor DiamondMax Plus 9 ATA/133 drive on the WinXP Home SP1 system running iozone
Figure 13: Write performance comparison
(click on the image for a larger view)
Figure 14: Read performance comparison
(click on the image for a larger view)
These plots show that NSL performance limitations certainly aren't due to the Maxtor USB 2.0 drive. They also show that you're more likely to notice that retrieving files from the NSL is slower than getting them from your computer's local drive, than you are to notice a difference in how long it takes to save files.
Just as Linksys' venerable BEFSR41 "Linky" router marked the start of easy, affordable Internet sharing for the masses, I predict the NSLU2 will do the same for NAS. I haven't been this enthused about a product in a long time, let alone one from the networking equivalent of the Borg. But I have to say that the NSLU2 has restored my faith in Linksys' ability to shake the industry up a bit.
The NSLU2 is simply the cheapest and most flexible way yet to get Networked Storage added to your LAN. Not only do you get a kick-ass little SAMBA server with a friendly user interface, but you also get scheduled, automatic backup for all your LAN clients without having to buy or install anything on them!
Yes, I know rolling your own SAMBA server can be even cheaper if you happen to be handy with Linux, but for about $125 (using your own spare drive and a cheap USB 2.0 enclosure), why not just save yourself some time and keep your blood pressure where it should be?