About a year ago, I built a NAS system, using FreeNAS (v7 now named NAS4Free) using an cheap, but rather nice, HP Microserver I’d originally acquired for VMWare. It had four SATA drives, old, but I’d used the FreeNAS software RAID to create an RAID5 array, so I could afford a disk loss, or so I thought. I stored the system config on an internal USB stick mount, because I was planning to upgrade to V8, and my limited reading showed this might be possible if I didn’t install the system to the RAID’d drives (I was wrong, it turns out).
I was moving things around, so I checked the event log and system health; all drives fine, so I shut the system down, cleaned the dust out and moved it to its new home.
Where it refused to boot, with just a “|” in the top left corner (Thanks FreeBSD folks! Cos that’s not hard to google at all on failure is it?). Much mucking around with Live CD’s of both V7 and 8 to no avail; it was like the drives didn’t exist to FreeBSD. Gparted LiveCD could see them, though, and some googling brought up mention of corrupt partition tables, which I was able to find with Gparted and verify, but only on one drive out of the four.
The LiveCD’s contained a link to the IRC channels for both NAS4Free and FreeNAS, so I went to the NAS4Free folks and explained the symptoms. An hour later the only reply was someone telling me that version was EOL.
dlavigne (yes, that Dru Lavigne, one of the people behind FreeNAS v8) on the FreeNAS v8 IRC channel tried, but all the commands she gave me worked differently in V7, and refused to provide useful information. So, thanks to Ms. Lavigne (go buy her books), and a big rasberry to the V7 folks. I hope someone is as helpful to you in a data loss situation as you were to me.
More checking, this time with testdisk (helpfully on the GParted liveCD) thanks to Guy at work, who reminded me of an article he’d written on extreme data recovery. GParted partition recovery errored on libc when trying to recover the partitions on the drives, but highlighted that actually one of the SATA drives had errrors and the USB stick was likely knackered.
Testdisc allowed me to try and recover partitions, but I couldn’t find enough of the GPT partitions to recover, and again, there are no tools I can see to recover a RAID in this situation. I expect that if I had a better knowledge of BSD I might be able to use a LiveCD to get something back, but I don’t, and can’t find enough to get me started on recovery. As far as I can see, the information I needed to reconstruct the RAID died with the USB stick.
This could be just bad luck and hardware failure, but, alas, I think FreeBSD deserves the pointer here; I used software raid because I knew the limited raid in the box wouldn’t be up to much. To have a raid implementation you can’t reconstruct from the remaining non-parity disks without another disks worth of config is unforgiveable; all that info should be on the RAID’d disks, and any system capable of speaking the RAID should be able to reconstruct. IMNSHO, anyway. Worst of all, the system didn’t alert me to the disk failures. I’d got SMART monitoring on and regularly checked the logs as well the system monitors.
Alas, the Dev’s that did speak to me were talking V8 stuff, which the V7 doesn’t understand (and you cannot upgrade between V7 and 8 as they don’t appear to understand each other’s software RAID. Again, unforgiveable.
So in summary, don’t use NAS4Free because when it fails you’re on your own, and their recovery tools don’t appear well tested or reliable. Given the software RAID, I’d be very nervous of using FreeNAS of any version, unless you had hardware RAID.
I’ve moved my data (all that I could recover from other sources) onto a Ubuntu server (with hardware RAID!), and have still got the BSD box. I might have another go, but I suspect not.
