Geek Foibles


MacBook Pro with an SSD boot drive and an HD data drive
February 22, 2011, 2:27 pm
Filed under: Uncategorized

It recently came time to get a new computer. Like any geek, this is one of my favorite times, when you get an excuse to finally spend some money on all those neat things you’ve seen flitting past on Engadget and the like. Historically I’ve always just done a stock pro Apple laptop (PowerBook, MacBook Pro, etc.) and then bought extra memory from somewhere like Crucial or OWC to avoid Apple’s absurd memory pricing. However, this time around I had an idea.

I’ve worked with SSD drives a lot lately and have experienced first hand how quick they can be. Problem is, while they’ve come down in price significantly over the past couple of years, they’re still very expensive per gigabyte, and I need a lot of gigabytes. If I worked on a desktop computer, I’d just install two drives: one SSD as the startup disk, and a traditional hard drive for storage. The lightning-fast SSD would speed system and application startup times, while still leaning on the capacious hard drive for storing my hundreds of gigabytes of data.

Problem is, I don’t work on a desktop computer. My job is mobile, so I work on a laptop, where I’m confined to a single 2.5″ hard drive.

Enter the MCE OptiBay.

Several companies make adapters like this, but MCE’s is the first I saw, and they’re a company whose products I was already familiar with. Its purpose is simple: It allows you to mount a 2.5″ hard drive in place of a slimline optical drive. This is perfectly suited to my plan, as I rarely use my optical drive and would be happy to do without it. To make things even sweeter, the adapter comes with an external USB enclosure for your optical drive, so you don’t even have to give up your ability to read and write optical media.

I ordered a Samsung Spinpoint MP4 7200rpm 640GB hard drive for my data (since 7200rpm 750GB 2.5″ drives weren’t out, yet) and an OCZ Vertex 2 120GB SSD for my operating system. Once they and the MCE OptiBay were all in the same place I got to work. Installation was more difficult than a simple hard drive swap, since removing the optical drive on my MacBook Pro (15-inch, Mid 2010) requires some careful wrangling of the cables snaking around it. The screws that fasten the hard drive to the OptiBay have a tapered head (like wood screws, where you screw all but the surface of the screw’s head into the wood), which caused the heads to stick out of the bottom of the OptiBay a bit. I was nervous that they would stick out far enough to keep the computer’s bottom case from fitting back on properly, but when the time came the case went back on fine. I still question the wisdom of using that specific design of screw, but I suppose if it works it’s all right in the end.

Once I had the two drives installed, it was time to set up the software side of things. It would be nice to start everything from scratch, but I have far too much careful software configuration to want to set everything up again, so my approach was to just restore my old drive onto these ones. (I’ll say now that I tend to do a lot of things on the command line and this project was no exception, so novice users looking to repeat my steps may want to stop here as I’ll be glossing over a lot of details and making assumptions about the reader’s skill level.) First I wanted to check to make sure both drives were recognized, so I booted from a Snow Leopard disc and opened Disk Utility. Happily they each showed up, proudly presenting themselves as internal SATA drives, so I formatted them each and switched over to Terminal.

Ready to start moving data, I connected my old hard drive via a Firewire 800 enclosure and moved its entire /Users onto the spacious new internal hard drive. My decision to move rather than copy was a deliberate one, since I already have a separate backup (thus nullifying the need to keep the original for safety’s sake) and I wanted /Users gone from the original since that would simplify moving everything else onto the SSD. After moving /Users finished, I copied everything that remained on my old hard drive onto the internal SSD. Once it was done, I used the “bless” command to mark the SSD as a bootable drive.

Now all of my data had been successfully moved to these two drives. Problem was, it was now split in two, with user data on one and apps and the OS on the other. They’d never been divorced before, so the OS was still going to be looking for user data on the startup drive. So, for starters I made a symlink of the new “Users” folder and put it at /Users on the SSD. However, there’s also a more “correct” way to do this where you can actually tell the OS that a user’s folder is at a specific path. To do this, I restarted from the SSD in single user mode and issued the following commands:

/bin/launchctl load /System/Library/LaunchDaemons/com.apple.DirectoryServices.plist

dscl .

cd /Local/Default/Users

change will dsAttrTypeNative:home /Users/will /Volumes/Hard/Users/will

exit

…where “will” was my user’s short name and “Hard” was the volume name of my hard drive.

Now, most of the data in my home folder isn’t used that regularly. I’ll open a few photos in iPhoto, play a few MP3’s, etc. Most data accesses are one-offs and not repeated very often. The exception to this is my “Library” folder. Here applications keep their caches, databases, preferences and so on, many of which see very heavy access when the applications that use them are first opened. I thus decided to move my user’s “Library” folder onto the SSD. I created a “UserLibraries” folder in the root of my SSD, moved my “Library” into it, renamed it “will” (in case I moved any other user libraries there in the future) and then symlink-ed the new location to the old one so that applications could still find it. Note that I left a space out of “UserLibraries”: I still run into applications once in a while that can’t handle spaces in file paths, so I air on the side of caution and decided to keep spaces out of the full path to the library folder (/UserLibraries/will).

One restart later and my system was ready for use, so it was time to see what sort of speed improvements had occurred. Here are some video benchmarks from before the upgrade:

So, to summarize, OS startup took 49 seconds, log in took 25 seconds and Photoshop startup took 14 seconds. Now here are the same benchmarks after installing the new drives:

OS startup had 6 seconds (12%) shaved off, which wasn’t as much of a speedup as I was hoping for. The other benchmarks, however, were where things got dramatic. Logging in was shortened by a whopping 22 seconds (88%), which is nothing short of breathtaking, and Photoshop’s startup had been shortened by 9 seconds (64%). Normal use of the computer has since shown that other applications saw similar improvements in startup time, and while things relying on computation power unsurprisingly saw little improvement, a variety of tasks involving heavy file I/O were sped up dramatically.

In short, the benefit of keeping even just some things (OS, apps, user library) on an SSD is very real. They’re not just measurable in benchmark terms, but also very, very noticeable in human terms. Most of peoples’ data consists of audio and video files, both of which stream off a hard drive without issue. There is thus little benefit in putting most of peoples’ data onto an SSD. A hybrid approach like this allows us to avoid the prohibitive cost of larger SSD’s while still enjoying the technology’s benefits. I am still curious why OS startup saw only modest improvement, though I suspect that much of that time is spent probing and communicating with hardware components, something a fast drive will benefit little. Despite that, I am able to heartily recommend this sort of upgrade. And, if the rumors are to be believed, Apple seems to feel the same way.

Advertisements

Leave a Comment so far
Leave a comment



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s



%d bloggers like this: