Sunday, October 28, 2007

CMake in OpenSync, Opie 1.2.5?

So I did some more work on OpenSync/Opie lately - fixed a few issues in Opie's sync authentication code, finally changed the todo list to show some reasonable icons, etc. The most interesting change for me though was to do with CMake - OpenSync has just moved over to it from scons (having previously moved from autotools to scons a couple of months ago). I was reasonably impressed with scons when I came to move the opie-sync plugin over to it, in that it removed a lot of the complexity of autotools, but CMake just blew me away. It's even simpler and requires even less files in my source tree, and switching over was a breeze. Build systems are often the bane of software developers, particularly in the free/open source software world, so kudos to Kitware for making a build system that doesn't make my head want to explode :) Thanks also to Daniel Gollub of SUSE/Novell for all his recent hard work on the OpenSync core, including the decision and the effort to move OpenSync over to CMake.

I've started some tentative plans for Opie 1.2.5. I know, I know, 1.2.4 isn't out yet and 1.2.3 isn't even available to a lot of people, but we're working on that too. I think it's important to be looking ahead. Take a look at the recently updated Opie roadmap for details.

Friday, October 12, 2007

Click-click-click-click... uh-oh...

I have not exactly had great luck with hard drives lately. First, a Seagate 320GB SATA drive in my main PC started acting up - fortunately only a few files were unreadable and I managed to copy the rest of the data off without issues. Then, just days later a Seagate 120GB IDE drive in my parents' PC (of which I am the de-facto maintainer) began to bite the dust - it was pretty much unreadable and making lots of nasty noises. After trying a few other options I attempted copying the entire drive using Acronis Disk Director, and following several hours of constant grinding to my amazement it seemed to have copied all of the data successfully, this time onto an IDE RAID 1 array to avoid further faulty hard drive hassles.

You would think that the story would end there. Unfortunately not. A week later Windows XP on my parents' PC begins to report corrupt files, so it seems that one of the drives or the cheap no-brand IDE RAID controller is faulty. If it is one of the drives then it obviously isn't serious enough to make the RAID controller fail the drive out of the array, because it helpfully reports that everything is OK. Should I mention that the two drives in the array are both brand new Seagate 160GB IDE drives?

Right, that's it - no more Seagate. I used to be a loyal Seagate buyer, but two confirmed failures and one possible failure in two weeks, plus at least four previous failed drives in the last seven years is just too much to bear. To replace the failing 320GB drive in my machine I've gone for two Western Digital Caviar "RAID Edition" 320GB SATA drives in a Linux software RAID-1 array. (The RAID Edition drives have some added reliability features, but also have a 5-year warranty and aren't all that much more expensive than the standard WD drives). Since I've just moved to a new PC I've given the old one to my parents, and tonight I have rebuilt it for them using two new WD RAID Edition 160GB SATA drives in RAID-1 using the onboard Promise RAID controller. Third time's a charm...

Earlier this year I read two interesting articles on hard drive reliability (which are summaries of two research papers) on the StorageMojo site:

Google’s Disk Failure Experience
Everything You Know About Disks Is Wrong

In my case, the comments regarding how useless SMART is were definitely borne out - SMART reported no errors at all before the problems started. In fact when I was attempting to recover the 120GB drive using SpinRite it was still reporting no errors in the SMART status as it was clicking away. Brilliant.

I guess the only lucky thing to come out all of this is that no significant amount of data was lost. It has also been a bit of a wakeup call in that I realised I hadn't done a backup in ages. Needless to say I have since rectified that oversight :)