I've reviewed Ubuntu's NetBook remix and then 10.10's Unity, and wasn't impressed with what appeared to be beta-ware at best. Now that 11.04 is out, I felt I should give it a spin before abandoning my preferred distribution of the last several years. I grabbed the amd64 11.04 live cd, used unetbootin to make a bootable USB Key, and booted my x201 to the Natty Narwhal.
First the good. The Unity interface has been polished up a bit, it's smoother and less clunky. Some small space savings features are effective: the maximized window title bar in the panel and the mouse-over file menu in the panel (ala Mac OS). The narrow scrollbar will a mouse over grab bar is actually particularly nice (or is this just GTK3?).
Work and family life was busy, so it was a few days before I could put the QNAP TS-419P+ to the test with some representative use cases. But before I did, I spent some time educating myself with RAID levels and came to the conclusion that until I am in desperate need of more storage space, RAID 5 just doesn't make sense. Here's why. RAID 5 distributes parity across all the drives in the array, this parity calculation is both compute intensive and IO intensive. Every write requires the parity calculation, and data must be written to every drive. With the low power CPU already the bottleneck for throughput, adding an additional load didn't seem like a good idea. More importantly is data integrity. RAID 5 allows for a single drive to fail without any loss of data. However, while rebuilding the array, if one of the remaining three drives were to fail, all the data is lost. Rebuilding a RAID 5 array after a single disk failure is also very compute and IO intensive as every disk must be read in order to restore the blocks to the new drive.
A better option for a four drive array is RAID 10, a striped pair of mirrored disks. In this configuration writes only affect the two drives in the mirror, and the data integrity is much improved. After a single drive fails, it is restored by copying it's sibling in the mirrored pair. If one of the three remaining drives were to fail, there is only a 33% chance that data will be unrecoverable as either drive from the other mirrored pair could fail without a problem.
The cost for this is total volume size. RAID 5 provides SIZE*(N-1) while RAID 10 provides SIZE*(N/2). With 4 1.5TB drives, RAID 5 yields a 4.5TB volume, while RAID 10 yields only 3TB. When drives were expensive, this 50% gain was significant, but when 2TB drives can be had for under $100, and larger drives becoming available every year (3TB drives now ship with consumer level NAS products), the principle value of RAID 5 is not as convincing as it once was. With RAID 10 and current technology (3TB drives) I can still double my capacity, and that should only improve in the coming years.
OK, on to configuration. I took to configuring the NAS for use with my home Linux network. I should preface this by saying I am not a network file system expert, not even an experienced user. I have setup NFS enough times to know the homogeneous uid/gid thing is a pain and that there are plenty of failing corner cases with respect to dropped connections, file locking, etc. QNAP claims to support NFS, so I expected them to provide the necessary tooling in their oft-praised web interface. The sad truth is that NFS appears to be an afterthought, and the implementation barely merits an "[x] NFS" string on their marketing material. The UI allows you to add users, but not to specify (or modify) the uid or gid. This means that standard Unix file permissions simply do not work, and their solution appears to be to make the shares globally read-only or globally read-write. Two words: cop out. Fortunately QNAP does provide a root-only ssh shell, and I was able to log in and manually edit /etc/passwd and /etc/group to make my users match the rest of the network. Some careful recursive 'chmod g+s ug+rw o-rwx' commands provided me with the permissions I wanted - but avoiding that sort of work is precisely why I opted for QNAP instead of building my own. In this regard, they failed miserably.
The SMB story is better. The QNAP UI supports per volume user and group permissions. While the on disk representation is still globally read-write, it's not a problem as SMB performs it's own user authentication and only the admin user has ssh access anyway. I tinkered with this enough to get it working with the GNOME desktop file manager and with autofs. This might be the best way to access shares on the QNAP, even from a Linux system. Still, something about running SMB makes me feel like I need to shower.
For throughput tests I used the rsync daemon to copy my MythTV recordings to the QNAP. This consisted of 300GB of mostly mpeg2 files from 2 to 6 GB each. I used the UI as well as top to monitor the system status periodically during the transfer. The CPU was pegged at 100% for the duration of the transfer, and it averaged just over 20MB/s.QNAP claims 45MB/s writes over SMB and 42MB/s over FTP. Rsync should be faster if anything. Throughput was a disappointment. Following the transfer the QNAP remained under heavy load (7-8), and became fairly unresponsive. Watching the kernel logs I found a few Out of Memory errors, with apache and php being among the OOM Killer's victims. I raised the throughput and OOM issues with QNAP and my supplier. They weren't able to suggest any changes to improve throughput or identify why the OOM occurred. They did agree to allow me to return the TS-419P+ in exchange for a TS-459Pro+. The latter replaces the ARM CPU with a dual core Atom, doubles the RAM, and replaces the 16MB flash with a 512MB DOM. 20MB/s just wasn't cutting it, and a kernel OOM was just unacceptable. I shipped the QNAP TS-419P+ back and am impatiently awaiting a TS-459Pro+. Whether I keep the QNAP firmware or replace it with Ubuntu Server or perhaps a custom Yocto image is the subject for a future project.
As if the arrival of the final components for Rage wasn't enough tech debauchery, the present trucks also delivered a shiny new QNAP TS-419P+ and 4 Samsung Spinpoint F2 1.5TB drives. Devon helped me unpack everything and carefully mount the drives in their trays. He even helped me plug it in and start the initial setup process.
The QNAP packaging and physical documentation is simple, nay, spartan. Which I like. The device itself is smaller than I expected (always nice) but I was disappointed to find a separate power brick instead of a built-in power supply - this educed my excitement about the compact size of the unit a somewhat. The recommended "Linux Setup" was to connect a PC directly to the NAS and configure your networks to talk to eachother - this didn't appeal to me, so I just looked up the QNAP IP on my dd-wrt router and followed the directions for Windows and Mac - just without installing a qnap finder application.
The QNAP web interface is highly polished. Initial setup included setting the hostname (I selected Toph in keeping with my heroine theme for my personal machines), installing the latest firmware, setting an initial password, which network services to enable, and an initial RAID configuration. Perhaps this is obvious to everyone else, but be sure to unzip the firmware you download from the QNAP website, otherwise you'll just get an unhelpful error complaining the image is bad. I found the initial RAID selection to be odd as it is very limited. I chose RAID 5 as that is probably what I want to do, but the device offers a lot more options than a single RAID array using all the disks. Given the amount of time it takes to resync a 4.5 TB RAID 5 array - it seems like this step could be skipped and the user sent directly to the full-featured volume management admin screen at first login. Instead, after completing the initial setup, you are presented with this iTunes-wanna-be AJAX interface:
Here you can see the volume management screen - and an ascending time remaining field in the Status column. I really don't know how I'll partition things up, or if I even need to. The QNAP offers a _ton_ of flexibility in how you access your data. I'll need to spend a good deal of time considering them before I make a final decision. I'll reserve judgement on these features until then.
Out of the box, several network services are available for immediate configuration:
And finally, QNAP offers add-on packages in the form of QPKG, which oddly enough includes an IPKG application for even greater selection of packages. There are several media streaming servers available, including one that is pre-installed. The installation process appears a bit cumbersome, requiring the user to download the package to a PC and then upload it to the NAS for installation. I am looking forward to installing Python, possibly Twonky, and maybe MySQL and WordPress (I'm considering moving this blog away from Drupal and to something else).
So for now, my QNAP is resyncing its RAID 5 array. I hope to have the time to explore its many features soon, and I'll share my experience as I do. My initial impressions are good, and I'm optimistic that this will turn out to have been a good choice for our needs.
The present truck(s) were good to me today. I received the two Intel Xeon x5680 CPUs, the two Seagate Barracuda 1TB drives, the Intel 160GB G2 SSD, and the second heat sink. The SuperMicro hot-swap trays don't allow for mounting 2.5" drives, so I had to mount the SSD in a 3.5" bracket in a 5.25" bracket. Lame. As I mentioned in my last post, the first CPU cooler's fan conflicts with the rear chassis fan. Since I had to choose between the two, I chose to keep the larger (quieter) chassis fan, but I connected it to CPU 1 FAN instead of the FAN 5 header. This is a guess on my part, but I figure the CPU is first thing to get hot, and the most valuable component in the system, so it makes sense to me to let its temperature determine the fan speed. This may cause problems however as the fan speed used by the CPU 1 FAN is probably not appropriate for the larger fan, and I don't know how removing the FAN 5 connection will impact how the system decides to use the forward fan (which is smaller, and louder). Any insight readers may have here is very welcome.
Initial power-on is always exciting, this was no different, perhaps more so. After pressing the power button, Rage jumped to life like a wild beast startled from slumber. Her fans roared and her many bright beady eyes flickered their discontent. After familiarizing myself with her BIOS settings, I ran a quick Ubuntu 10 install off USB (it was absurdly fast). The BIOS RAID options were confusing at best, and I felt I just might get better results with software RAID via mdadm (at least more control). Rage is currently resyncing a RAID 1 array composed of the two 1TB SATA drives. I'm not sure quite how long this will take, and with her periodic snoring (loud fan bursts), I may just have to force her back into hibernation so my better half can sleep tonight.
Just as soon as I can I'll kick off a complete Yocto build and share the results. Following that, I'll run some burn in tests to ensure the memory, CPUs, and HDDs are all functioning properly. I haven't tested IPMI 2.0 support yet (remote access, KVM, etc.) I'll get to that soon as well.
I holed up in my cave with a Beagleboard XM rev B and spent the day learning how an ARM board boots. After a few hours of aimless wondering, misdirection, ill-conceived notions, and deep tangents, I am happy to say I managed to boot a minimal Yocto image on the Beagleboard XM!
beagleboard login: root
root@beagleboard:~# uname -r
|From dvhart's blog|
The key difference (in terms of booting) between the Beagleboard and the Beagleboard XM is the lack of NAND. This changes the boot process slightly. Specifically, it requires an X-Loader and a u-boot binary on the MMC (as opposed to having them in NAND) - or something along those lines. I am thrilled that in a single day (not even a very long one) I was able to get Yocto booted on an architecture I have exactly zero experience with.
I will be spending next week tweaking poky recipes to generate the proper binaries and user boot scripts. The linux-yocto meta-data for the Beagleboard will also need to be updated for the new ethernet inteface on the XM. For those of you eager to boot Yocto on your Beagleboard XM, you won't have to wait long!
And in case you are wondering how your Kindle can help you with Beagleboard development, here are two ways. First, it can read the Beagleboard manual if you email it to your kindle account. And second, its power supply with the proper mini-usb cable provides adequate voltage and more current than my laptop and is able to power the Beagleboard XM, while my laptop could not source quite enough current, resulting in a kernel panic, oddly enough.
Shuttleworth's recent announcement that Unity will be the default shell for Ubuntu 11.04 may have just tipped the scales in Fedora's favor.
I've been a very happy Ubuntu consumer for several years. But as Canonical moves away from just being a fantastic integrator and tries to muscle its way into UI design, I find myself less and less content with their distribution. The recent themes and blurred graphics of the last two releases are far too garish (dark gray, purple, and orange - really?) to have general acceptance (just flat-out-dog-ass ugly in my opinion).
The windicators push has never made sense to me. Moving the window controls to the left to make room for the windicators.... uhm... what's wrong with the space on the left? Are you too good for the left? I've also not heard of a single use-case for windicators that makes any sense at all. A shopping-cart? Really? Do you plan to get ebay, amazon, and the other 50 billion internet retailers to hook into it? If not, you're left with yet another inconsistent user experience.
And now Unity. I blogged on my initial experience with Unity and am sad to say that things have only gotten worse. Part of the problem is clearly that it simply wasn't ready to be part of an official release. The file-manager is useless, infuriating my wife as she tried to copy a file to her USB drive (requiring my intervention). The family has announced their dislike for the shell and a downgrade to 10.04 is on my todo list until such time as MeeGo gets multi-user support.
And how about quality? With all the attention on UI design, it is my opinion that the 10.10 Maverick release fell significantly shy of Canonical's fairly stellar integration and QA standards. Since the upgrade to 10.10 both my ThinkPad x201 and our family Toshiba NB-305 netbook must have the nm-applet manually killed and restarted after a resume as the icon disappears from the panel, and it won't reconnect to the wireless access point. My x201 suffers from some dbus error which I avoid by running the Lucid kernel.
Come on Canonical, you're better than this! Your consumers expect better from you. By all means, expand your horizons, apply your vast resources to innovation, improve the Linux Desktop user experience, but please, don't neglect what made you great - a polished distribution that brought Linux to the masses.
The first question I received (and indeed the first one I asked a few weeks ago) regarding the Yocto Project was, "Yet another Linux distribution?" We certainly have plenty of those, adding one more would really only serve to further fragment the embedded space.
So no, Yocto is not a distribution (like Fedora and Ubuntu) and it is not a platform (like MeeGo and Android). The Yocto Project is a workgroup (as described in the Linux Foundation Announcement) and the core bit of software behind it is the Poky build system which has its roots in OpenEmbedded. So, the Yocto Project is targeted at making it easier to create your own Linux distribution. It also serves as an umbrella project to collect things like BSPs all in one place.
The ultimate goal is to provide a common collaboration point from which we can reduce the chaos in this space and make it easier for people to bring Linux based devices to market.
After weeks of barely being able to contain myself while being probed about what I'm working on at Intel (my new job as of about 6 weeks ago), I can finally share all the details publicly. We're proud to announce the initial public release of The Yocto Project!
Check out all the buzz about Yocto:
I am personally working on the Linux kernel itself. I've spent the last few weeks learning the system, fixing a few bugs wherever I ran into them, and preparing the live demo for the CELF conference.
I was thrilled with Ubuntu 10.04 Netbook Remix. It made excellent use of the small screen and the single-full-screen application usage model. It had its warts. You had to leave your application to access the menu. Some dialogs didn't work well on small screens, making it difficult to get at the buttons on the bottom. But all in all, it worked really well. I was particularly fond of the menu system's use of the desktop to display icons - with the caveat that it would have been nice to be able to get at things without completing obscuring your current application.
Enter Ubuntu 10.10 (Maverick) Netbook Edition with the new Unity interface. I was expecting a polished up version of 10.04 - what I got was... lost. The new menu system displays icons on the left-most column, and maximized windows do not obscure it. So far, so good in my opinion. But wait... where did the menu organization go? You know "Internet" "Graphics"... etc. You have to scroll down to the "Applications" icon (mouse hover is the only way to be sure that's what it is) which brings up a menu system reminiscent of the 10.04 menu, except without much in the way useful organization. There are some breadcrumb style categories at the top, but all those that I would expect. Figuring there must be some preferences to adjust this sort of thing, I started looking for preferences... ... ... not a preferences category in sight - OK, I used the handy search bar. That brought up some plausible settings programs. Clicking on one of them brought up... the application installer! The search showed me preferences tools for applications that were not even installed!
Once an application is found, I expected to be able to add it to the menu as a favorite, or some other similar model. No such luck, right click is impotent, although it is used to remove icons from the menu. As it happens you can only add it to the menu by launching the application and then right clicking on the newly added icon on the menu and selecting "Keep in Launcher". I found the "+" around the icon in 10.04 to be a much more discoverable mechanism.
Besides objections to its design, I ran into some implementation annoyances as well. The Application and System launchers took long enough to load that I was tempted to press them again. Perhaps this is do to time spent searching the package manager for applications I haven't installed? The mouse-hover descriptions of the menu icons would occasionally stick - leaving "Firefox Web Browser" obscuring the browser itself.
Perhaps things will "click" and I'll fall madly in love with Unity - but I doubt it. For now, I must bide my time until my better half logs into her account on this netbook and looks up at me with that knowing glare that says, "You just couldn't resist could you? WTF is my browser?"
You've received that email, "Please print, sign, scan, and return." Possibly it said FAX - but like me, you just can't wrap you're head around using a FAX in 2010. So you fire up gimp (or xsane), scan a page, crop it, save it; repeat for N pages; then spend 10 minutes reading the absurdly obfuscated ImageMagick man pages to finally stitch the images together into a PDF, and return to sender. You do this once, and the memory of it provides a very significant mental barrier to ever repeating the process.
I had to do this again today for a pair of documents. The Simple Scan tool caught my eye and I gave it a try. It's pure genius, in an "OMFG why did it take 10 years for this to appear?" kind of way. Simple Scan handles the intermediate files behind the scenes, crops all the pages to the same size, displays a thumbnail of each page you scan, and finally saves the document as a PDF. Like, wow. Thanks Simple Scan!