Not so long ago, we tested the Sun Fire X4500 Storage Server, aka Thumper, which was a dual-CPU, dual-core Opteron-based server running OpenSolaris and housing a whopping 48 3.5-inch SATA drives, all within a 4U chassis. The sheer size and scale of that storage server could only be handled by Sun's own ZFS file system. Thumper was a tank in every sense of the word and carved a niche for itself in a wide variety of infrastructures.
Sun has taken that 48-drive behemoth and turned it into an appliance, the Sun Storage 7210 Unified Storage System. While its lineage is immediately clear, the 7210 differs from its predecessor in key ways.
First, the 7210 runs with two quad-core Opteron CPUs and 64GB of RAM, roughly doubling the processing power present in the original X4500. Second, it's a true appliance, not just a server. It does run OpenSolaris, but all interactions with the server are via the FishWorks GUI, not the command line. In fact, if you try to gain root access to the box via serial console, a large warning informs you that doing so will void the warranty, cause irreparable damage to the server, and possibly open a portal to another dimension. While this is somewhat disappointing from a flexibility perspective, the completeness of the FishWorks GUI makes up for it.
The 7210 isn't merely filled with SATA drives, either. In fact, there is a solid-state drive (SSD) present in the system, specifically designed for write operations. This SSD is configured as the ZIL (ZFS Intent Logging) drive and provides for faster access times for the file system, leaving the physical disks to handle the data storage tasks. Sun dubs this drive “Logzilla.” It's an 18GB write-biased SSD in a 3.5-inch form factor, and aside from a slightly different bezel, it looks identical to the hard drives in the 47 other internal hot-swap slots. The system uses RAM as a read cache.
On the software side, the 7210 offers a wide range of file-serving protocols: NFSv3, NFSv4, CIFS, iSCSI, FTP, and HTTP. It supports onboard virus scanning; snapshots; cloning; compression; SNMPv3/v4; NDMP (Network Data Management Protocol) backups; and CLI scripting in Perl, Python, Java, and more. There's even an SSL-based phone-home option that can automate support services.
For authentication and authorization, the 7210 can be linked to Active Directory, NIS (Network Information Server), or an LDAP server, or it can run with local users and authentication.
The FishWorks GUI is not only entirely Web-based, but entirely AJAX. At first, we wondered how wise that might be, but after only a few minutes of use, I was smitten. It's very attractive and very accessible. In fact, it may be the most complete filer interface we've ever seen, blowing the doors off Network Appliance's Web-based manager.
As a brief example, the dashboard display is a constantly moving visual representation of everything the 7210 is currently doing, providing instant feedback on load and throughput for any or all the protocols in use. The graph displays are not only clickable, but they can be arranged on customized worksheets to provide easy at-a-glance status reports. You can drill down (using the handy drill-shaped icon) into any graph to get more granular data and even pull up a list of files or users who are currently hogging the most bandwidth at that exact moment in time. This works at the file level in most protocols, so if the 7210 is being hammered, you can almost instantly determine not only who is responsible, but also what files are being accessed and from where.
The dashboard shows the various aspects of the 7210 itself, including network I/O, memory and CPU utilization, and independent protocol statistics. Next to each graph heading is an icon representing the health of that particular data point, as denoted by a meteorological symbol. If the icon is a sun, all is well. Clouds indicate that the protocol or system component is working hard, while raindrops indicate that activity is really ramping up. A lightning bolt signifies that the protocol or component is running near capacity. Because the entire interface is constantly updating, it's possible to leave pages open at all times and get a to-the-second report on the filer's health.
Beyond the frankly stunning statistical representation, administering the 7210 is relatively straightforward, using drag-and-drop concepts to build link aggregation configurations and the like. We developed a love/hate relationship with this approach. For example, it's not immediately obvious why a link is or is not available to be configured, and you have to drag a physical interface around to link it. When dealing with configurations that can result in the box being completely inaccessible if a mistake is made, we prefer to have a much clearer representation.
That said, you won't configure the network interface very often; more likely, you'll need to perform it only once. Aside from this quibble, the configuration and management of the server are as easy as one could expect. There's no need for any CLI involvement, and creating storage pools, shares, quotas, snapshots, and such is really quite simple. The FishWorks GUI ran without issue in Firefox on Linux and Mac OS, as well as in Internet Explorer on Windows.
As a closed appliance, the 7210 doesn't offer much outside-the-box potential, but it delivers plenty of inside-the-box performance. When originally setting up the system, we configured a storage pool (a zpool) and an NFS share via the GUI, then tested it from my Linux workstation, using the single-gigabit NIC on that box. Much to my surprise, using dd to create a 10GB file on the NFSv3 share ran at nearly wire-rate, achieving a 115MBps sequential write time. We then tested with NFSv4 and got the same results. Using Iometer and a Windows Vista system, we were able to get about 90MBps sequential writes, which is quite good.
Configuring iSCSI is simple: Create an iSCSI share, link an initiator, and off you go. We did have a few issues with LUN (logical unit number) discovery at one point, but clearing the LUN configuration and starting over remedied the situation. As with the NFS performance, we were able to achieve nearly wire-rate throughput with sequential reads and writes via iSCSI and a software initiator running on a CentOS 5.2 system. Using an iSCSI hardware initiator will decrease the CPU load on the client system, but will probably achieve similar performance figures.
In addition to the single-protocol tests, we ran a bevy of multiprotocol tests. Running sequential reads and writes via NFSv3, NFSv4, iSCSI, and CIFS from four separate client systems to the 7210 with a 2GB aggregate link resulted in all four protocols running around 55MBps to 60MBps during load. Again, this is very close to wire-rate speeds. During these tests, the aforementioned protocol and system component health indicators were heading toward a dark and stormy night. However, the FishWorks interface didn't falter, even when the system was running as hard as it could. Throughout the most intense parts of these tests, I didn't get the feeling that I'd lost communication with the 7210 or that it was fragile in any way.
The Sun Storage 7210 Unified Storage System isn't cheap, but the cost is actually fairly low considering the capabilities. Make no mistake, none of this capability would be possible without ZFS; no other file system available today can make use of the resources present in the 7210 like ZFS, and the addition of the solid-state logging drive just increases the potency of this file system.
The market for multilingual filers has plenty of players, from NetApp to Adaptec, but in terms of bang for the buck, Sun's 7210 is in rare territory. Regardless of price, son of Thumper is a uniquely complete representation of what a filer should be.