Similar to a lot of things in the IT world, there are a number of elements one must evaluate when answering this question: heading off impending hardware failures, maintaining acceptable levels of performance, and staying compatible with current versions of software.
Heading off Impending Failures
As far as SSD failures, there are a few things you can look out for including write endurance. SSDs are rated based on a number of writes over a rated warranty. Normally that’s five years. So, if someone buys a read intensive drive that’s set to write once a day for five years, and they use them roughly that much, then in five years it’s expected that drive will be reaching end of life.
Other factors to look out for include files that can’t be written or read, bad block errors, frequent crashes/slow machine boots, the drive becoming “read-only,” freezing or crashing of active applications, and the SSD running unreasonably slow. If you’re beginning to see any of these things, it’s time to take action and avoid any detrimental data loss.
HDDs are a bit different. Manufacturers’ drive specifications state that the MTBF of drives is typically 1,000,000 hours (or more), which equates to more than 100 years. That means our drive will last as long as we need it and will never die, correct? Well, not quite, because while it may be 1,000,000 hours, you must also consider the number of drives you have.
To exemplify this, our CTO Brent helps us understand by doing some simple scale up math:
First, how many hours are in a year? 365 days x 24 hours = 8760 hours (ignoring leap years).
That means that each drive runs for 8760 hours a year. So, if I have 10 drives that run, in a given year for 87,600 hours: 1,000,000 divided by 87,600 equals 11.4 years. That means that, according to MTBF alone, they will run for 11 years before one fails.
What if I have 100 drives? Now we’re up to 876,000 hours in a year, which means we would have a failure every 1.1 years, which means in a five-year life cycle, we would have to replace five and a half (six) drives. What if I have 1,000 drives? That adds up to 8,760,000 hours, which means I have a failure every .11 years, or 40 days, and over a five-year life cycle, I could have 44 drives fail.
The general principle is to upgrade hardware only when the expense of not upgrading outweighs the expense of upgrading. However, there is more to consider than just the expense.
Maintaining an Acceptable Level of Performance
New hardware should allow you to work more quickly and efficiently. Additionally, if you require hardware upgrades in order to run new software applications to increase productivity, the best option is to upgrade. Similar examples include a faulty PC that crashes frequently, or one that otherwise prevents you from accomplishing tasks and getting work done. Certainly, in each of these circumstances, delaying the upgrade will cost you more than proceeding with it.
Additionally, other signs that may be telling you it’s time to upgrade include frequent crashes, network slowdown/decreased server speed, servers are out of warranty, cooling and power costs are skyrocketing, and increased security issues/concerns. While this is not an all-inclusive list, if you’re beginning to see one or more of these issues come up, it’s time to start considering upgrades.
Staying Compatible with Supported Versions of Operating Systems, Hypervisors and Other Mission-Critical Software
A major reason we recommend upgrading old equipment aside from likelihood of failures is compatibility with new versions of software. Older servers may not be compatible with new, stable, and secure versions of Windows or a hypervisor or a database, etc. Windows 2012 R2 is going EOL next year, and many servers running it today may not be compatible with Server 2019 or higher. Additionally, as a general rule of thumb, when new program versions come out, they typically require more resources and performance, not less. That older server may have kept up with VMware vSphere 5, but the demands of vSphere 7 may be beyond its spec. It’s important to validate against hardware compatibility lists and make a refresh cycle a regular part of your budget to ensure you can run secure, supported versions of your mission critical applications and software.