There is a new feature in Windows Server from Microsoft, called Soft Restart. The idea itself is perfect, because its goal is to minimize downtime during reboot process. While it is possible to reduce software starting sequence time, when starting the hardware there are physical time limits. These limits made it impossible to reduce reboot time, before Microsoft thought about the “soft restart”. It is claimed to perform standard reboot without restarting the devices, basically resetting only software and reducing the required time dramatically. StarWind engineers decided to check if Soft Restart works fine in two use cases – with a simple physical setup and with virtualized infrastructure. As it always goes with our practical approach, the fool experiment complete with screenshots is in the post.
Soft Restart is a grand feature and it’s a good thing that Microsoft came up with it. The idea itself is a solution for quite a serious problem, which may arise in some cases. You know how a minor, but unplanned issue can cause a chain reaction and crash everything? It happens, so why don’t we make such cases extremely rare? This is a test of Soft Restart in both virtual and physical environments.
Problem
A server takes a lot of time to restart and at that time it doesn’t process any data. The problem is in the ever-growing amount of data – it takes 15 to 30 minutes just to rescan 1 Tb of memory. Whatever you may have there, a SQL Server, Exchange or File Server, the result will be the same: server down, no mail or file access. In case this one server is a part of a cluster, all the workload it had will be distributed between the other nodes while its down. A properly engineered cluster would handle this problem – one server’s restart inside maintenance window time is not a big deal. However, in the worst-case scenario it may coincide with other servers’ unplanned downtime, resulting in double or even multiple fault. Such an occurrence, though rare, may cause a “domino effect” and crash the whole cluster. In any case, it is only logical to bring downtime to a possible minimum.
As the server starts, it goes through two phases:
- hardware initialization;
- software loading.
The second phase has been shortened by different means – faster CPUs, flash memory utilization, etc. That’s why even though the applications get more complex, software loading phase still gets shorter. At the same time, hardware initialization could never get past the physical barrier – the time а whole bunch of storage and network controllers, external storage cabinets with HDDs and other hardware to start functioning. That’s still a lot of downtime.
Content
In order to work around the hardware phase, Microsoft introduced the new feature, called Soft Restart. Basically, it skips hardware initialization by resetting software only and right now we’ll check how it really works.
Microsoft doesn’t say much about the feature. All we have is exactly this:
“SoftRestart enables the system to be restarted without undergoing firmware reset delays.”
To start, we need to enable Soft Restart in the features.
Now we’ll restart the server.
Let’s check the proper functioning, for example, by writing something like this into the command line:
- C:\> shutdown /soft /r /t 0
The /soft parameter means the soft restart, not the normal one.
For Powershell fans it would look like this:
- PS C:\> Restart-Computer -Soft
The –Soft goes for the needed mode.
The feature was checked on physical machines with Intel S3420GPLC and Gigabyte P55-UD3L motherboards. Did not work. Waiting for new builds with fixes.
Conclusion
Well, the idea itself is a great one – completely skipping the time needed for hardware to initialize would turn minutes of downtime into mere seconds. It’s the alpha version at the moment and unfortunately, the tests showed that it doesn’t really work in both physical and virtualized environments. As you can understand, it’s almost impossible to capture a screenshot of the precise moment when it fails (it’s basically a microsecond or so, even capturing a video doesn’t help), so you’ll just have to trust us on this one. In any case, we’re sure that Microsoft guys will totally fix everything and we’ll be able to restart servers in a blink of an eye.