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.
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
- Laptop of your choice: that uses a SATA interface for its optical drive. If you're using a Unibody MacBook Pro you should be good to go.
- 2 Solid State Drives of your choice: For optimal results, ensure they are the exact same brand, model, capacity and generation.
- Intel has the 80GB (~289) and 160GB (~489) flavors of the X-25M. Make sure to spring for the G2 second generation (linked).
- Kingston has their SSDNow V-Series: 64GB (~149) or 128GB (~269)
- I mentioned the new OCZ Vertex 2 Pro earlier but at the time of this writing I could not find one for sale to link to.
- MCE Optibay (99): The Optibay is the special ingredient in this How To. It fits properly in the optical drive bay slot and lets you securely attach your second SSD to it. It is important to note that you need to buy the SATA version if you have the same Unibody 17-inch MacBook Pro as I do. Prior models used IDE for optical drives and the respective Optibays had onboard IDE » SATA converters that resulted in slower performance; definitely not what you want with a RAID setup. When I ordered my Optibay it came with a USB 2.0 enclosure for the SuperDrive I was taking out.
- Tools: The usual small (#00) Phillips head will do but there is also one screw that is very difficult to remove unless you remove a small T6 Torx screw in front of it. I have been quite happy with a small tool with changeable bits called the Teeny Turner.
These two tools have helped me void many gadget warranties over the years.
- No regard for Apple warranty: Unless you are have mastered the art of deception, if you ever take your MacBook Pro in for warranty repair they will likely notice that you have opened it up before. You can always claim the work was done by a Certified Apple Specialist but they might call your bluff. Or you could meticulously undo the RAID setup and put the optical drive back before walking in for an unrelated repair.
- Blank disc: You will want to make sure your SSDs have the latest firmware. Most SSD manufacturers require that you burn a disc and boot your computer into their software. [Intel SATA SSD Firmware Update Tool]
- External USB/FireWire hard drive: It's always a good idea to have an external hard drive drive dedicated to backing up your computer, not storing excess media files and documents. In this case of this guide, the external drive will be used to boot off of during a phase of setup. I use a cheap 500GB My Book I bought years ago, but anything large enough will work.
Hardware InstallUnfortunately, 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.
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.
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.
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.
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 firmwareSo 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 ConfigNow you have two working SSDs in your MacBook Pro. You are currently in either one of two situations:
- [My Situation] One of the SSDs has already been loaded up with OS X and the other is empty.
- 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:
- put your OS X disc into the SuperDrive you placed into the provided external enclosure and connect it to your MacBook Pro
- hold down C and boot into the installer
- close the installer window and go to the top menu to open up Disk Utility
- create the RAID array and proceed installing OS X onto it
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.
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.
Somewhere around 30 minutes to a few hours later, drive cloning will be done.
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.
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.
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.
Click Create, then click Create again in the next window. Your new RAID 0 SSD array will be made momentarily.
Sweet! The RAID 0 array is working and online.
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.
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
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.
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.
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.
PerformanceI'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:
- Photoshop CS4 loads in 2 seconds and only takes another 7 seconds to load 5 hi-res images (each around 5-8 MB)
- It takes 6.5 seconds to load Photoshop CS4, Illustrator CS4 and Fireworks CS4 simultaneously.
- What other daily tasks do you do? Let me know in the comments and I will update this post with the results.
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.
VerdictThis 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:
- 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
- the 160GB version of the X25-M has faster sustained reads and writes than the 80GB X25-M
- 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.