Uncategorized

So my FreeNAS server is full.

I wanted to build it again in a rack mount case for inclusion in my new A/V rack in the new cinema room, and bring all my ‘home compute & network’ together in a single place – but I couldn’t afford to take it offline.

Since it’s been a while since I built it, I had a look on eBay for all the same parts (since it’s just a FreeNAS file server, it doesn’t need a whole bunch of power) and I was really quite happy with how solid the original build has been. I therefore purchased all the same parts again (except for a different case)

SuperMicro X9-SCL-O motherboard
Xeon E3-1260v3 Processor
32Gb ECC RAM
8 x 6Tb Seagate NAS drives (increasing from 6 x 3Tb drives)
2 x 120Gb SSD
1 x 800w PSU
1 x Rosewill 4U rack mount case

Apart from the drives, I managed to get the whole lot for about $350 which was a steal compared to my original build.

Throw on the latest FreeNAS 11 and it’s ticking along nicely.

However, I now have about 12Tb of data to move from the old server to the new one, without bringing the old one offline.

I’ve always been a fan of rsync… I know there are faster ways of transferring data, but rsync is solid, handles incremental updates, and is very very mature. But it ain’t fast.

After having a dig around, I finally found a magic incantation which upped my transfer rate from about 150Mbps to about 850Mbps!!!

rsync -aHAXv -e "ssh -T -o Compression=no -x" user@<source>:<source_dir> <dest_dir>

There’s a fantastic discussion here :

https://gist.github.com/KartikTalwar/4393116

[UPDATE] — so, using this to migrate servers is missing some special sauce. Using the command line as-is was resulting in some odd copy failures, mainly related to the mismatch of user/group permissions between the source and target machines.

We need to tell rsync NOT to transfer permissions (and I added a parameter which cleans up the target folder too) – this seems to work well, and saturates my network connection while running 🙂

rsync -aHAXv -A --no-perms --stats --delete -e "ssh -T -o Compression=no -x" remote:/Music/Compressed/ /Media/Music/MP3

So, I decided to build a full sized arcade machine for Sam’s 5th birthday!  (Actually, I had planned on building it for his Xmas, but things got away from me – so I figured May would be a better target).

I think it turned out pretty damned sweet – and I learned a lot (not just about wood working, cabinetry and power tools), but about Raspberry Pi, RetroPie and MAME configuration!

I really should write up how I built it…

Having been a PC user for almost 30 years now, I’ve changed over to an iMac as my primary machine.  (I have Parallels installed, of course, for when I need to do something PC’ish or use some of my more esoteric development software)…  One of the major things that has been driving me MENTAL is the change in keyboard layout… I can handle SPLAT-C and SPLAT-V for cut/paste instead of CTRL-C/V — but why the hell would anyone mess with HOME or END?  Or event some of the more text-editing centric ones like word jumping left and right, and delete word…

Anyway, one of the things I discovered is that with OS X 10.8 onwards, you can just change all of the default mappings easily by adding a new file with the new keyboard macros!

Create a folder in your user Library called KeyBindings and create a file called DefaultKeyBinding.dict and slap this in there…

~/Library/KeyBindings/DefaultKeyBindings.dict
{
"\UF729" = "moveToBeginningOfLine:";
"^\UF729" = "moveToBeginningOfDocument:";
"$\UF729" = "moveToBeginningOfLineAndModifySelection:";
"^$\UF729" = "moveToBeginningOfDocumentAndModifySelection:";
"\UF72B" = "moveToEndOfLine:";
"^\UF72B" = "moveToEndOfDocument:";
"$\UF72B" = "moveToEndOfLineAndModifySelection:";
"^$\UF72B" = "moveToEndOfDocumentAndModifySelection:";
"^\UF702" = "moveWordLeft:";
"^\UF703" = "moveWordRight:";
"$\UF700" = "moveUpAndModifySelection:";
"$\UF701" = "moveDownAndModifySelection:";
"$\UF702" = "moveLeftAndModifySelection:";
"$\UF703" = "moveRightAndModifySelection:";
"^$\UF702" = "moveWordLeftAndModifySelection:";
"^$\UF703" = "moveWordRightAndModifySelection:";
"^\U007F" = "deleteWordBackward:";
}

Looking for the raw key values?  I picked up some really useful ones here…

http://www.hcs.harvard.edu/~jrus/site/KeyBindings/Windows%20Bindings.dict