How To: Apple MacBook Pro RAID 0 Array with 2 Intel X25-M SSDs

In late 2008 I wrote about my experience using the first generation 80GB Intel X25-M SSD — my first SSD. I had to pay the early adopter tax for that SSD, so it cost me around 700. The speed boost alone justified the price to me. Fast-forward about a year and that SSD stopped working. I'm not quite sure what died — the controller or something else — but I RMA'd it with Intel and they sent me a new, second generation X25-M that week. The second generation (G2) X25-M is based on 34nm fabrication compared to the 50nm first generation. The G2 is also substantially cheaper at roughly 299 and noticeably faster due to a new controller and firmware. Intel still claims the same "up to 250MB/s" sequential read speed and "up to 70MB/s" sequential write speed but the G2 brings improved (2x for 80GB, 2.5x for 160GB version) random 4KB writes.

Two Intel X25-M G2 80GB Solid State Drives in a 17-inch Unibody Apple MacBook Pro
The second X25-M G2 SSD prior to installation in a 17-inch Unibody MacBook Pro

But I digress, this post is not about why I love Intel's SSD, but rather how using just one SSD was not fast enough. (It should be noted that the X25-M will not be top dog forever and will be getting stiff competition from OCZ and their "SandForce" controller that can compress data beforehand in the Vertex 2 Pro SSDs.) Getting to the point, I put two 80GB Intel X25-M G2 SSDs in my unibody 17-inch Apple MacBook Pro and then set them up with RAID 0 — striped data for better performance.

How this is possible? MacBook Pro laptops only support one hard drive/solid state drive. Well, I had to remove the optical drive. Not a big deal for me as I rarely used it and if I ever need it I can use it with an external USB enclosure.

What You Need

Tools - Philips and Torx
These two tools have helped me void many gadget warranties over the years.

Hardware Install

Unfortunately, swapping/adding hard drives in the 17-inch Unibody MacBook Pro (without user-removable battery) is a bit more involved than the simple procedure on the 15-inch Unibody MacBook Pro with removable battery. You will need to be comfortable taking out the entire back panel of the laptop.

Detailed instructions for taking apart your MacBook Pro can be found at ifixit.com

For my MacBook Pro there were ten Phillips screws in my way before I could take off the back panel.

17-inch Unibody MacBook Pro opened up
The opened up 17-inch Unibody Apple MacBook Pro

Since I had previously already installed an 80GB X25-M G2 SSD in place of the hard drive the laptop came with, my next objective was removing the SuperDrive.

Removing the optical drive from MacBook Pro
Removing the optical drive. Inset: disconnect bluetooth module first

The SuperDrive had a few more Phillips screws but there was also a display cable and Bluetooth module in the way. The Bluetooth module has a tiny cable that can be gently tugged and removed. Then you can remove the two screws holding the module in place. Push the display cable out of the way and remove the grounding pad near the hinge. Gently try to lift the optical drive up. When you have enough wiggle room disconnect the SATA cable from the SuperDrive.

Next, unbox the MCE Optibay and screw in the SSD into it.

MCE Optibay with SSD Installed
MCE Optibay with SSD installed

Then position the Optibay, connect the SATA cable, screw in the Optibay, put the grounding pad back and reattach the Bluetooth module. Here's the bad news — the screws for the Bluetooth module do not fit into the holes in the Optibay. The good news — the Bluetooth module is so tiny and lightweight that it's not the end of the world that it isn't screwed in. If you're really worried about it use some Polyimide/Kapton tape to keep it in place or find appropriate screws.

MCE Optibay - Bluetooth module screws don't fit
Bluetooth module doesn't screw into the Optibay using either the provided or original screws.

And finally, reassemble the laptop and put the ten back panel screws back. Boot the laptop to make sure all is well. Open Disk Utility to see if the new SSD is listed.

Place the SuperDrive you removed into the external USB 2.0 enclosure provided with the Optibay.

Install the latest SSD firmware

So the new SSD is seen by OS X and all is well. Great! If you haven't already burned the firmware updater tool provided by Intel (or whatever company makes your SSDs), do so now. Boot up to the burned disc by holding down C on boot when the gray screen is shown. Follow the on screen instructions and 5 minutes later both of your SSDs should be loaded up with the latest firmware.

Usual firmware updating precautions apply — make sure all of your data is backed up on the off-chance the SSD gets bricked.

Software Config

Now you have two working SSDs in your MacBook Pro. You are currently in either one of two situations:

  1. [My Situation] One of the SSDs has already been loaded up with OS X and the other is empty.
  2. Both SSDs are new and empty. There is no OS loaded on either.

If you are in situation #2, I am guessing (not tried it personally) that you need to:

However, I have heard of some issues where the computer will not see the RAID array when you are booted off of the OS X install disc. You might need to create the array while booted off of another external OS X install or on a working OS X install already present on one of the SSDs — that's why I recommend having an external hard drive lying around just in case. To clarify, it seems if you have the computer booted off of OS X on another drive, insert the install disc, run the initial setup from the inside-OS X installer that auto-reboots for you, that it should work.. if that makes sense. If not, leave a comment.

If you are in situation #1 like myself, then things are a bit trickier. In a nutshell, I cloned my OS X installation onto an external USB 2.0 hard drive, changed the startup disk to that external drive then booted from it, created the RAID array, cloned the external drive onto the new RAID array, changed the startup disk to the RAID array and rebooted.

While you can do the drive cloning back and forth like I describe below I always recommend doing a fresh OS X install whenever possible.

Alrighty, here we go. Download and install Carbon Copy Cloner (SuperDuper works too). Connect your external hard drive. I have had a cheap Western Digital My Book hard drive solely for Time Machine backups. I had plenty of extra space on the drive so I partitioned it so that I could maintain both Time Machine backups and a Carbon Copy Clone of my OS X install.

If you want to do the same and use your external drive for both Time Machine and a bootable OS X drive clone, connect the drive and open Disk Utility. Click the external hard drive on the left pane and then click the Partition tab on the right. Resize the current Time Machine partition to make room for a second partition. Apply changes and name the new partition.

Partition external drive for Time Machine and Carbon Copy Cloner/SuperDuper - OS X 10.6

Fire up Carbon Copy Cloner and select the internal SSD with OS X as the source drive and the new partition you just made on the external drive (if you did that) as the target drive. Make sure the drive will be bootable. It should say "This volume will be bootable." Click Clone.

Clone internal SSD to external drive using Carbon Copy Cloner

Somewhere around 30 minutes to a few hours later, drive cloning will be done.

Internal SSD to external drive cloning complete

Now we want to boot OS X off of that new external clone. Go to System Preferences » Startup Disk and select the external drive. Click Restart.

Select Startup Drive in OS X 10.6 - Boot off of external drive clone

After successfully booting into OS X on the external drive, open Disk Utility once again. You may opt to first erase both SSDs before proceeding. Select one of the SSDs in the left pane (the root device that says INTEL SSD..., not the partition disk1s..) and select the RAID tab on the right. Select Striped RAID Set for RAID Type, and keep Format as the default "Mac OS Extended (Journaled)." Drag each of the SSDs on the left into the open section on the bottom right.

Create RAID Array in Disk Utility OS X Snow Leopard
About to create the RAID array

Click Options. For RAID Block Size select 128K and then click OK. As for why I selected that value, I find it to be a great all around compromise for performance and versatility with files of all sizes. If the block size was smaller, it would perform slightly better with smaller files (versus just letting one SSD in the RAID 0 array receive the data of a file that is smaller than the block size) but it would not be as effective with larger files. If you're still curious about this, feel free to ask me for a more in-depth explanation in the comments.

Select RAID 0 Array Block Size in OS X
Selecting RAID array block size.

Click Create, then click Create again in the next window. Your new RAID 0 SSD array will be made momentarily.


Creating the RAID 0 SSD array

Sweet! The RAID 0 array is working and online.

RAID 0 Array online in OS X

There's still no OS on the RAID array so we'll need to fire up ye olde Carbon Copy Cloner again. This time select the external drive as the source disk and the new RAID array as the target disk. Make sure "Backup Everything" is selected. Again, check to see that CCC says "This volume will be bootable." Click Clone. If it gives you a warning about deleting files on the target volume, click Continue.

Select source and target disks to clone - Carbon Copy Cloner

Don't use the computer and go grab a bite to eat or get a quad-shot cappuccino or something. Or comment on this article saying how you're following along and all is going well and you're super excited about the new speeds your laptop is about to see.

Cloning OS X from external drive to new RAID 0 SSD array underway - Carbon Copy Cloner
Cloning OS X from external drive to new RAID 0 SSD array underway - Carbon Copy Cloner

After cloning finishes, open up the Startup Disk pane in System Preferences again. Select the new RAID array you made as the startup disk. Click Restart.

Select Startup Drive in OS X 10.6 - Boot off of internal SSD RAID 0 array
Boot off of your new RAID array

When the computer boots up into OS X again, this time from your new RAID array, eject and unplug the external drive. One last time, open up Disk Utility. Click on the RAID array, select the First Aid tab and click Repair Disk Permissions. After that is done click Verify Disk and then Repair Disk if deemed necessary.

OS X RAID Array First Aid in Disk Utility
RAID Array First Aid

Now, one last check to make sure everything is running a-okay. Select the RAID array in Finder and hit Command+I (Get Info). Expand the Sharing & Permissions section at the bottom. Click the little lock and type in your password to gain access. Make sure that both "system" and "admin" have Read & Write privileges set.

Performance

I'll let the numbers speak for themselves. You may click any of these screenshots for a larger version. Benchmarks were carried out by QuickBench after a fresh reboot and the numbers presented below were calculated as an average of 10 runs. Tests from 4KB all the way up to 100MB are shown below.


Without Cache Effects and Asynchronous I/O enabled, standard averages varied slightly from the test above: 206.885 MB/sec (seq reads), 106.755 MB/sec (seq writes), 162.901 MB/sec (rand reads), 72.378 MB/sec (rand writes).


Without Cache Effects and Asynchronous I/O enabled, max reads and writes were 520 MB/sec and 170 MB/sec, respectively.

If numbers aren't your thing, how about some typical day-to-day tasks:

However, bootup times are not remarkably fast as it seems to take a while for the RAID array to get recognized. Not the biggest deal if you only happen to reboot every 50 days or so like I do.

Verdict

This RAID 0 SSD setup in my 17-inch Unibody MacBook Pro is just the way I like my cars and computers: pricey, impractical but hellishly fast. I give the 2x80GB Intel X25-M RAID SSD setup in my MacBook Pro 9.0 out of 10 Stammys. It's not a 10 out of 10 because:

  1. the X25-M is already outdated by the new SandForce controller SSDs, as well as offerings with Samsung or Indilinx drive controllers with caching, currently emerging on the market
  2. the 160GB version of the X25-M has faster sustained reads and writes than the 80GB X25-M
  3. the X25-M is MLC. while more storage at the expense of performance made it acceptable for a single SSD, having a RAID setup makes it easier to get two 64GB SLC SSDs and have much greater speeds

Q: So is this hardware or software RAID? A: This MacBook Pro (or other Apple laptops for that matter) do not seem to have hardware RAID controllers, such as ICH10R and their ilk. As such, this RAID array is software. That just means that intense disk I/O is also accompanied with some increased CPU activity.

Q: OMG how do you live without an optical drive!!?!? A: Easily. The last time I used my optical drive for anything was to burn a music CD for the car and that was just because I was too lazy to sync and charge my iPod Nano. Optical media is slowly dying. Although I would like to see the next Core i5 Apple laptops come with the option of a Blu-ray drive.

Q: But you're running twice as many drives.. doesn't that suck a lot of power? A: I haven't noticed any changes in battery life. Most SSDs have better power consumption profiles compared to their mechanical counterparts in most scenarios. For example, SSDs easily outperform spinning disks under high load situations in terms of power consumption.

Q: What about TRIM? A: Well first off, TRIM isn't even supported by OS X as of Snow Leopard so it's not like that's a big deal. However, while you could boot into Windows 7 previously if you had a dual-boot system and run TRIM from there (edit: but even that is of limited utility as Windows 7 can't run TRIM on HFS+), that isn't possible with an SSD RAID array. It is not possible to TRIM a RAID array now for a few reasons. No RAID controller (and this array is software too, so there is not a physical RAID controller) currently supports TRIM on RAID and it is not possible to TRIM each SSD separately since the file system needs to be seen and the RAID layer on top of that kind of abstracts it. This does not mean that TRIM on SSD RAID arrays will not be possible in the future but it requires that the OS, RAID controller and SSDs all support TRIM, which will invariably take some time.

In short: not being able to run TRIM is only a substantial concern once the entire volume has been written to once. I am currently using less than half of the array's storage space so this is not a huge concern right now. Also this array will probably only exist on my computer for 9 months, then I'll upgrade it with something faster.

Now that you've read all of this, here's a bit of a warning: back up your stuff often. SSDs are kind of flaky in terms of lifetime. My first one died in under a year (I believe Intel claim 5 years of writing 100GB/day - correct me if I'm wrong - but still the controller can go out and random events), and it doesn't help that I am now running 2 of them in RAID 0 without any way to run TRIM.

Thoughts? Is this something you would do with your laptop or desktop? Do you currently use a Solid State Drive in your main computer? Do you have the need for (computer) speed?

Follow me and my nerd musings on Twitter and FriendFeed.

Like it? Tweet it.

"How To: Apple MacBook Pro RAID 0 Array with 2 Intel X25-M SSDs" by @Stammy