ssd’s and ubuntu

So I got fed up with waiting for my new computer to boot or java to find the hundreds of files it needs, I decided to blow my spoils from a recent conference victory on a SSD hard disk for my desktop machine.

First surprise – it came in a flat envelope – thought it was a mistake at first, and they’d sent me an OEM cd, but sure enough it was an Intel 80Gb (SSDSA2MH080G2C1 to be precise…) . These things are really small, packaged in not much and must be quite robust.
Second surprise – well not really surprise, the speed boost is pretty noticeable. Overclocking takes second place to getting one of these on your development machine – top video is with my old HDD (320Gb WD Caviar drive), bottom with the Intel SSD.

So running ubuntu, there are two things I discovered people talked about – erase block alignment and trim support. Because I’ll forget what I did this time, I’ll note it in this blog, however I suspect that by the time anyone uses this, there will be a better guide available.
Erase block alignment
As explained here, when a SSD deletes data, but nuking entire erase blocks. On my intel disk disc drive the erase block size is 128K (128 * 2^10 bytes, different drives, such as the OCZ use different e/block sizes), so we want the sectors of the drive to align to this boundary. I used the instructions here to use the live Ubuntu CD and fdisk to ensure this was the case.
Then I reinstalled ubuntu and booted her up.
Trim support

Trim is an operating system function that tells a drive when pages are no longer in use, and can be handed back to the SSD’s page-allocation system. But the default version of Ubuntu (currently lucid/10.04) uses kernel version 2.6.32, so there’s no trim support. The instructions here give a painless way to upgrade the kernel to 2.6.34, once ubuntu is installed.