Updated on 03/08/2021
Due, in part, to the different views and opinions regarding the usage of hot spare disks in our previous post, we’ve decided to add an update for clarification.
The Problematic Aspects of Using a Hot Spare Disk
As is said in almost every theory, using a hot spare disk with ZFS, Solaris FMA or in any other data storage environment is a good solution as it will automatically react to damage in a Redundant Array of Independent Disks (RAID) array and a hot spare disk indeed helps to minimize the duration of a degraded array state.
That being said, our goal of creating a RAID is to continue operation and not lose data in the event of a disk failure. Anything that increases the risk of data loss could be a bad idea. Let’s have a look at some of these problematic aspects of hot spare disks.
Hot Spare Disks Add Stress to Vulnerable Systems
The main problem with hot spare disks is that they allow the rebuilding (resilvering) of a system that is still actively being used as a production server. This means that, while the resilvering process is taking place, the system will also still be occupied with the usual production data reads and writes.
Resilvering is a process that needs a lot of server resources so when it’s executed while the server is still in use, it has to compete with the production loads. Since it’s a low-priority task, it can make the entire process of resilvering take very long (even up to a few weeks). This results in the server working at maximum achievable throughput for weeks, which can have dire consequences for the disks (especially HDDs).
Having decades worth of experience, we’ve realized that the use of hot spare disks in complex enterprise systems increases the probability of additional disks failing as the resilvering process starts to put more and more stress on the existing disks and the system itself.
Problems in Overall Hot Spare Disk Design
The next flaw of a hot spare disk is that it degrades over time. From the moment it is connected to the system, it keeps on working. And when, eventually, it’s time for it to be used as a damaged disk’s replacement; the hot spare disk itself could simply not be in a good enough state to actually replace the damaged disk.
Another problematic aspect of hot spare disks is that they are used automatically once the disk failure is detected so the corrupted disk might still be connected to the system. It could still try to reconnect and start working again while the hot spare disk is trying to take over its role thus adding even more stress to the system. This is yet another factor that can affect the system’s overall performance and could potentially lead to data loss.
Hot Spare Disks Create a Single Point of Failure
If you’re looking to create a system with no single point of failure, a hot spare disk will not provide you with much confidence given that the process of automatically replacing a failed disk has been known to occasionally fail, either partially or fully, and result in data loss.
Having spent decades providing customers with data storage solutions, we’ve heard of a lot of examples where a hot spare disk was the reason for the entire server failure and even data loss occurring. Automation here is risky since it can start the domino effect, especially when the data storage infrastructure has been working for years and the hardware is worn out.
Our Solution
These problematic aspects of hot spare disks are why our advice would be to not rely on hot spare disks in complex data storage architectures and to use other business continuity solutions instead like High Availability (HA) clusters, backups and On- & Off-site Data Protection (ideally all of the aforementioned).
Using the ZFS file system, it’s much easier to monitor the system and create a proper backup, with that you have the ability to retrieve data from a damaged disk and write it onto a new one. In addition to that, when using a HA cluster, there is an option of manually switching the production from the affected node to a second one so that you could perform maintenance on the affected node.
We’d advise following this procedure once the array shows that a degraded state has occurred as a result of a disk failure:
- Move resources to the second node in your HA cluster if possible.
- Run a full data backup.
- Verify the backed-up data for consistency, and verify whether the data restore mechanism works.
- Identify the problem source, i.e., find the erroneous hard disk. If possible, shut down the server and make sure the serial number of the hard disk matches the one that’s reported by the event viewer or system logs..
- Replace the hard disk identified as bad with a new, unused one. If the replacement hard disk had already been used within another RAID array; make sure that any residual RAID metadata on it has been deleted via the original RAID controller.
- Start a rebuild of the system.
So, if using this approach, the rebuild would consist of 6 steps! Using a hot spare disk, your RAID will skip the first four significant steps and then automatically run steps 5, and 6. Thus the rebuild will be completed before you can do these other critical steps; steps that could be the difference between your data being safe and lost.
Anyway, it’s still completely up to you as to how to build a proper system. However, we’d suggest not relying on hot spare disks in a ZFS RAID array due to the potential data loss it can cause.
49 Comments
Mike Uchima /
13, 09 2018 12:26:55I tend to agree with those who are questioning the logic here.
Running a full backup is probably going to stress the remaining disks just as much (if not more) than doing a RAID rebuild. A RAID rebuild is going to involve sequentially reading all of the other disks to reconstruct the contents of the failed one. A file level backup — while it will only require reading the parts of the disks which contain valid data — is going to involve more random seeking, stressing the head actuator assemblies and causing the drives to heat up more.
Another thing I question is how this article implies you’re not keeping your backups current! You shouldn’t be waiting until you’ve got a degraded array to do a full backup; if anything, all you should need to do is an incremental backup of anything that has changed since the last full backup, which is (hopefully) not a large amount of data. Steps 1 and 2 (full backup and verify) on a large array could take many hours, possibly even days; that’s an unacceptably long period of time where your degraded array could turn into a failed array, exposing you to downtime and data loss.
I think a much better approach would be a sensible backup regime combined with a RAID-6 (or raidz2) array. The double redundancy of RAID-6/raidz2 protects you against a second failure during the rebuild. In this scheme, whether you use a cold spare vs. hot spare, and whether you run an incremental backup prior to the rebuild, are judgement calls that I’m not going to take a strong stance on.
The only reasons I can think of to avoid hot spares are that keeping the drive powered up is causing additional wear on the spare drive itself and consuming additional power. If your RAID controller/software keeps the spare drive in a low-power (spun down) state until it is needed, then even these justifications go away.
zman /
26, 04 2019 11:42:46This is actually pretty naive to think re-building an array will stress the disks. You know on a lot of servers disks run almost 24/7 for years w/o failing. So thinking that an enterprise grade will fail in a few hours is just silly. You should always already have a backup from couple of hours ago or even 15 minutes or so. You don’t run a back when a disk has failed. I have run backups on consumers grade external HDs for up to 48 hours non-stop and one has never failed.
Tristyn Russelo /
03, 08 2019 02:07:48This is flawed logic.
The procedure in this article tells you that rebuilding is hard on the remaining drives, true, but then tells you to back up all data, verify backups, then rebuild.
This procedure puts 3x the workload on the drives. the drives will be spun up and heads moving for 3x longer.
Backing up is just as hard on the drives as a rebuild. Verifying is another complete read of all data. Then rebuilding.
It will also be 3x longer before your system is back up to normal operating condition
Koe /
05, 11 2019 02:22:49I don’t get this. Sure a rebuild is stressing the controller and the harddrives.
If you make a backup from a degraded array this will stress your harddrives like the same, or not ?
So why not rebuilding it as fast as possible ?
A backup should exist befor a array is getting degraded.
Maybe you can explain a litte bit more about the logic behind.