Linux Out, FreeBSD In
Don’t let the title scare you. This is only on my main file server, which holds both shared material (source tarballs and update packages) and 116G of movie files. It has recently begun to mis-behave under Linux. The specific symptom is a network freeze under heavy I/O load. This is not unknown with the Realtek 8139 Ethernet chipset, but it’s a big hassle when a movie player stops hard because NFS has suddenly disappeared.
Copying files off for a system wipe took no less than 3-1/2 days. The happy medium I had to live with was rebooting the file server every 20 minutes, and limiting rsync to 1.5MB/s. Most of the time, NFS (a stateless protocol) didn’t have a problem with resuming transmission after a reboot. However, after about 8 hours, the ext3 filesystem was expecting to be checked, which bogged down the process even worse. Having all the files copied was a giant relief.
That being accomplished, I pulled the server system off the network and installed FreeBSD 8.1-RELEASE on it, hoping it had OpenSSH and NFS servers in the base install. Sure enough, it does. The install process was fairly easy, but I did face two hiccups along the way:
- Using the same hostname and IP address meant I had to delete the old SSH key from ~/.ssh/known_keys.
- By default, only non-superusers are allowed to log in directly via SSH. However, only users that are members of the “wheel” group are allowed to use “su”. I forgot that second part, so I had no way to gain superuser privileges through the network. On a headless system, that’s a no-go.
Once I had it set up for headless access, getting NFS configured was trivial for my purposes.
I started copying files back around 12:30pm. As I type this, it’s a little after 7:30pm, and I have yet to reboot the system due to a network lock-up. I expect all the files to be copied back before I go to bed tonight.
The score on my home network is now Linux 2, FreeBSD 1.
Update 12/23: It turns out Linux programmers aren’t the only ones who find the RealTek 8139 chips frustrating. While perusing the FreeBSD code for the 8139 driver, I found a comment at the top of a source file to the effect that the 8139 “brings new meaning to the term ‘low-end.'” Ouch.
Update 12/26: I’m done dealing with comments that say, “Gee, I didn’t have a problem with the 8139.” I don’t care how many problems you didn’t have with the 8139. I had persistent Ethernet lockup problems under a saturated network load, and it was trivial to induce a lockup. The same goes for comments saying I should have just put in another network card that I don’t have and can’t buy at this time. Those comments are finished. Any comments saying either of these things, will be deleted, no matter how much other good stuff might be in them.