Last Updated on 2014-02-24.
You use a simple / thin virtual disk (JBOD-like) created with the Windows Storage Spaces feature. There are e.g. 10 physical hard drives included in the storage pool. Suddenly, one of them shows a bad S.M.A.R.T. status and should be replaced as soon as possible.
Most users (like me) assume that the Server Manager includes a feature like “evict disk” (as it was possible in earlier Windows Home Server). It should be possible to mark a disk to be ejected, and the OS should rescue all data as soon as possible to other disks which have free space available – or even better, it should do this automatically if the system encounters errors on a drive.
BUT – it is not possible this way, even in current releases like Windows Server 2012 R2.
In Server Manager, note the name of the disk which should be replaced, like “PhysicalDisk2”.
Open Windows Powershell.
Use the following command to set the disk to state “retired”:
Set-PhysicalDisk -FriendlyName PhysicalDisk2 -Usage Retired
The system actually does nothing directly after this command, but it will not write any more data to this disk in the future.
In the existing storage pool, create a new virtual harddisk. If you have much free space available, you can choose the parity option, otherwise create a simple / thin disk like the one you already have. You can also add a new hard drive to the pool before to get enough space.
Create a volume on it.
Move all files to your new virtual harddisk. The data is basically moved to the same physical disks where it was placed before, except to the drive you marked as retired.
After this process is finished, your retired disk should be empty and you can remove it from your pool.
If you haven’t already added the new replacement drive, add it to the pool now.