My Storage Spaces Disaster
I wanted to share an experience I had last night with the new "Storage Spaces" option in Windows Server 2012/Windows 8, as a way of warning people.
I decided to set up Server 2012 Essentials to take over for my old Windows Home Server. Missing the old Drive Extender from the original WHS, I figured that I'd use Storage Spaces and set up Parity there.
This is running on an old Gen 1 i7, with 13 GB of RAM, and the onboard SATA ports on an MSI MS-7522 motherboard. Now, this motherboard has the Intel Controller, which drives most of the SATA ports. However, the eSATA built in, as well as two additional SATA ports onboard, run off of a JMicron JMB36x controller.
I discovered some time ago that the JMicron uses Generic drivers by default in Windows 7, and Windows Server 2012 did the same. This works, usually, but there is one problem; if you don't install the "real" drivers for it, only one of the two onboard ports works. It will detect the eSATA and the first onboard SATA port, but not the second.
This computer would be running with 8 different HDs installed. I have a SSD for the OS, an old 512 GB laptop HD for a secondary drive for OS stuff, one eSATA drive for server backups, and everything else going into the pool.
So, I got the OS installed, and things working generally. Since creating a pool deletes the drive, I consolidated all my data onto 2 of my drives, and added others to the pool. I slowly copied data off one of the drives to the pool; once it was emptied, I moved the drive into the pool as well. To make sure I had the room, I had to initally use the eSATA drive as part of the pool. I was planning on pulling it back out once all the data was transitioned.
3/4 of the way through this process, when there was one drive left not in the pool, I realized that I had never installed the driver for the JMicron JMB36x controller. It was running on default Windows drivers. Two of the 4 HDs in my pool were connected to this.
I figured "No biggie, I'll just update the driver". I did so. I rebooted. And promptly found that updating the driver caused my two drives to "fail" as far as the pool was concerned. Now, this was 2/4 drives, gone, from a "Parity" pool space; which if you're familair with RAID, you will know what it means. It means that the pool was now non-functional, since it had lost more than 1 drive.
Realizing what I had done, I immediately uninstalled the driver and rebooted.
Too late. Even though the drives came back, Windows was unable to repair the pool. Whatever it had tried to do while the drives were offline had broken it. And all the data on it was gone. (This was several TB of movies/music/documents/personal home movies/etc).
Thankfully, this is all backed up online.
After further experimentation, I found that any drives on the JMicron controller will not correctly connect to Storage Spaces, with the driver installed. If you try to create a new space with them, they fail to add, even though they function just fine independently.
Ultimately, I started over, and moved the backup drive and secondary OS drive onto the JMicron controller, while making sure everything I wanted in the pool was connected to the Intel slots. Now I'm restoring everything into the pool. It will take a couple of weeks to re-download all of my data from my online backup, but at least I'll get it back.
Moral of the story: install all your drivers for all your controllers before adding anything to Storage Spaces, and be very careful updating drivers for controllers after it's working. My short experience has already taught me that Storage Spaces is VERY picky about what drivers it will work with. In my initial experiments, I found that the Intel controller doesn't work either, if it's in RAID mode rather than SATA mode, even if you pass the disks in as JBOD.
Secondary Moral: Backups save lives. Because my wife would have killed me if I didn't have that one online.
Last edited by Geofram; 11-05-2012 at 10:25 AM.
Reason: Fixed spelling error