How To: Migrate from Raid1 to Raid5

Recently I discovered that the iPhoto data was actually stuffed under a deleted user that existed as part of the Mac migration process, this meant it wasn’t being seen by my rsnapshot backup of the active user directory. Fixing the location of the iPhoto library was relatively easy to do, but having an extra 130GB of data to back up immediately ran me into storage problems.

I had setup a RAID1 system using two 1TB volumes, I had decided to split the 1TB mirrored volume into 300Gb/700Gb so I could limit the space used by backups to 300Gb. In hindsight this was a silly idea, and it also made the migration process more complicated. If I had placed the 300Gb volume second, it might have been feasible to move that data somewhere then expand the 700Gb volume to fill the remainder of the drive – but I had put the 300Gb volume first. One day someone will write the utility to allow you to shift the start of a volume to the left (towards the start of a drive).

Instead of sticking with a RAID1 setup, I decided to move to RAID5. While there is a little less redundancy with RAID5, the additional flexibility seems like a good trade off to me at this point. I’ll avoid getting into the religious debate over which type of RAID you should use, or if RAID makes sense at all with large sized drives. Also there are some good off the shelf solutions now such as Drobo or QNAP.

With a project like this it is a good idea to make a plan in advance, then log your steps as you go along. Migration of 100’s of Gb of data will take time, lots of time. I did the work over about 5 days, some of it while on a trip outside the country (remote access!). Here was my plan:

  1. install new drive – ensure system is happy
  2. break mirrored set – run in degraded mode
  3. repartition new drive & unused mirrored drive
  4. create degraded raid 5 (2 drives only)
  5. copy data from degraded mirror onto degraded raid5
  6. decommission degraded mirror & repartition
  7. add volume to raid5 set

I also was careful to check that the new volume had the same capacity as the other two having been bit by that in the past. (I used fdisk -l /dev/sde to get the stats of the drive) Continue reading “How To: Migrate from Raid1 to Raid5”

Kingston RAM

RAM is one of the most important aspects of your computer system, but spending a lot on fast RAM is usually not worth it – better to get more RAM that is cheaper. I’ll frequently just buy whatever is cheapest that meets the specs I need.

Back in 2006 when I bought a refurbished Mac Mini (G4) from Apple it came with 512MB of RAM. The PPC Mini was limited to a single RAM slot, and 512MB was ok – but not really enough.

For Macs there was RAM specially tagged as compatible, or I could go the aftermarket route and just buy some RAM with the same specifications. If my memory is correct, the price delta was 30% or so. In the end, even at the premium price (about $100) the 1Gb of RAM I needed wasn’t a huge expense so I went for the guaranteed to work. The memory arrived, it worked fine until just recently.

The mini stopped booting, running a memory test resulted in it indicating the RAM was bad (I thought maybe the hard drive had gone). As Kingston has a lifetime warranty I figured it was worth seeing if I could get a free replacement (vs. a $30 price for a new unit at todays RAM cost).

Wow! Kingston’s support/warranty process is amazingly good.

I called and almost immediately got a real live person. It was really hassle free, they asked why I thought the RAM was bad and I said I had run a self test on it – and that was it. I was immediately in line for a RMA #.

The RMA process is really slick. Once you get the right documentation from Kingston (via email!) – you only need to package the RAM and drop it off at a FedEx location. Kingston picks up the cost of shipping it both ways.

The shipping was fast (and free to me):
Oct 4, 2011 9:45 AM Delivered FOURNTAN VALLEY, CA
Oct 4, 2011 8:57 AM On FedEx vehicle for delivery COSTA MESA, CA
Oct 4, 2011 8:03 AM At local FedEx facility COSTA MESA, CA
Oct 4, 2011 5:59 AM In transit LOS ANGELES, CA
Oct 4, 2011 4:04 AM Departed FedEx location INDIANAPOLIS, IN
Oct 4, 2011 2:04 AM International shipment release INDIANAPOLIS, IN
Oct 4, 2011 12:27 AM Arrived at FedEx location INDIANAPOLIS, IN
Oct 3, 2011 10:44 PM In transit MIRABEL, PQ
Oct 3, 2011 8:04 PM In transit OTTAWA, ON
Oct 3, 2011 6:23 PM Left FedEx origin facility OTTAWA, ON
Oct 3, 2011 5:16 PM Picked up OTTAWA, ON

A brand new stick of RAM arrived on my doorstep on October 12th (again via FedEx). It was amusingly over packaged (as you can tell from the photo at the top of this post). Of course it works perfectly.

Sure I paid Kingston a premium form Mac specific RAM, but that was back in 2006. To get such red carpet service 5 years after I bought something is really amazing. Their warranty also covers the regular ValueRAM etc, so you should get similar great service. They usually have very good pricing on their RAM, but given my experience with the warranty even if they aren’t the best price it will be tempting to spend a few bucks more to get Kingston.

Greylisting with Postfix and Ubuntu

Recently it seems email spam levels have been increasing, reading through the news it seems there is some debate if it is really up or not. Either way, I know that my local mailbox has been getting more spam (specifically more binary attachment spam) lately. As I host my own email server, addressing spam levels is something I can do something about at the server level vs. needing to rely on clever filtering by the client.

Hosting your own email server is a little dumb. I like the challenge, and knowing my data is stored on my computer systems is comforting. Most people should just stick with gmail or similar. If you are stubborn like myself, Ubuntu makes it easy to setup your own mail server. There is of course the other details on getting a ISP that allows you to host a server etc. (exercise left to the reader)

One alternative is to run a local mail server that smarthosts through your ISP (or even Google). It can use fetchmail or similar to suck down email from your various accounts too. This would result in your data on your machines and good spam filtering as you offload that problem to the other mail server (say gmail).

Ok, so you’re dumb like me and while spamassassin is doing an ok job, it’d be nice to stop more spam from hitting your mail server. The solution is greylisting, the Ubuntu community docs make it very simple to setup if you’ve got a postfix based mail system setup already.

The concept behind greylisting is very simple. Spammers are lazy and so is spam software. One of the error codes a mail server can answer back is ‘temporary failure’. Greylisting causes the first attempt to deliver a given email message with a temporary failure code, any properly configured mail server will retry after a short period of time (usually minutes). Spam software can’t be bothered to go back, it’s spraying email across a large number of servers and a large number of addresses – a few failures aren’t important. If you want to know more, I encourage you to read through the whitepaper.

The trade off with greylisting is that normal email can be delayed. Postgrey uses an adaptive whitelist to allow frequent valid email to skip the temporary fail sequence. The place you’ll notice delays is when you reset a password, since the email is likely to come from a mail server you don’t often get email from – so it will be delayed by the temporary fail code.

After a day – spam has dropped to zero, and email is still arriving in my inbox. I did have to “wait” for a password reset email that was delayed by 1041 seconds (a bit more than 17mins), the delay time is due to the sending server retry cadence.

Looking at a year of mail traffic on my server, it doesn’t appear that volumes are up that much.

Looking at the weekly graph shows a spike in rejects (due to greylisting), but if you look closely you can see the drop off on viruses and spam (since greylisting prevents those messages from ever being received and processed).