High availability (HA) is a characteristic of a system which aims to ensure an agreed level of operational performance, usually uptime, for a higher than normal period.
Modernization has resulted in an increased reliance on these systems. For example, hospitals and data centers require high availability of their systems to perform routine daily activities. Availability refers to the ability of the user community to obtain a service or good, access the system, whether to submit new work, update or alter existing work, or collect the results of previous work. If a user cannot access the system, it is – from the user's point of view – unavailable. Generally, the term downtime is used to refer to periods when a system is unavailable.
Further information: Design for availability
There are three principles of systems design in reliability engineering which can help achieve high availability.
A distinction can be made between scheduled and unscheduled downtime. Typically, scheduled downtime is a result of maintenance that is disruptive to system operation and usually cannot be avoided with a currently installed system design. Scheduled downtime events might include patches to system software that require a reboot or system configuration changes that only take effect upon a reboot. In general, scheduled downtime is usually the result of some logical, management-initiated event. Unscheduled downtime events typically arise from some physical event, such as a hardware or software failure or environmental anomaly. Examples of unscheduled downtime events include power outages, failed CPU or RAM components (or possibly other failed hardware components), an over-temperature related shutdown, logically or physically severed network connections, security breaches, or various application, middleware, and operating system failures.
If users can be warned away from scheduled downtimes, then the distinction is useful. But if the requirement is for true high availability, then downtime is downtime whether or not it is scheduled.
Many computing sites exclude scheduled downtime from availability calculations, assuming that it has little or no impact upon the computing user community. By doing this, they can claim to have phenomenally high availability, which might give the illusion of continuous availability. Systems that exhibit truly continuous availability are comparatively rare and higher priced, and most have carefully implemented specialty designs that eliminate any single point of failure and allow online hardware, network, operating system, middleware, and application upgrades, patches, and replacements. For certain systems, scheduled downtime does not matter, for example system downtime at an office building after everybody has gone home for the night.
Availability is usually expressed as a percentage of uptime in a given year. The following table shows the downtime that will be allowed for a particular percentage of availability, presuming that the system is required to operate continuously. Service level agreements often refer to monthly downtime or availability in order to calculate service credits to match monthly billing cycles. The following table shows the translation from a given availability percentage to the corresponding amount of time a system would be unavailable.
|Availability %||Downtime per year[note 1]||Downtime per quarter||Downtime per month||Downtime per week||Downtime per day (24 hours)|
|90% ("one nine")||36.53 days||9.13 days||73.05 hours||16.80 hours||2.40 hours|
|95% ("one and a half nines")||18.26 days||4.56 days||36.53 hours||8.40 hours||1.20 hours|
|97% ("one and three quarters nines")||10.96 days||2.74 days||21.92 hours||5.04 hours||43.20 minutes|
|98% ("one and seven eights nines")||7.31 days||43.86 hours||14.61 hours||3.36 hours||28.80 minutes|
|99% ("two nines")||3.65 days||21.9 hours||7.31 hours||1.68 hours||14.40 minutes|
|99.5% ("two and a half nines")||1.83 days||10.98 hours||3.65 hours||50.40 minutes||7.20 minutes|
|99.8% ("two and seven eighths nines")||17.53 hours||4.38 hours||87.66 minutes||20.16 minutes||2.88 minutes|
|99.9% ("three nines")||8.77 hours||2.19 hours||43.83 minutes||10.08 minutes||1.44 minutes|
|99.95% ("three and a half nines")||4.38 hours||65.7 minutes||21.92 minutes||5.04 minutes||43.20 seconds|
|99.99% ("four nines")||52.60 minutes||13.15 minutes||4.38 minutes||1.01 minutes||8.64 seconds|
|99.995% ("four and a half nines")||26.30 minutes||6.57 minutes||2.19 minutes||30.24 seconds||4.32 seconds|
|99.999% ("five nines")||5.26 minutes||1.31 minutes||26.30 seconds||6.05 seconds||864.00 milliseconds|
|99.9999% ("six nines")||31.56 seconds||7.89 seconds||2.63 seconds||604.80 milliseconds||86.40 milliseconds|
|99.99999% ("seven nines")||3.16 seconds||0.79 seconds||262.98 milliseconds||60.48 milliseconds||8.64 milliseconds|
|99.999999% ("eight nines")||315.58 milliseconds||78.89 milliseconds||26.30 milliseconds||6.05 milliseconds||864.00 microseconds|
|99.9999999% ("nine nines")||31.56 milliseconds||7.89 milliseconds||2.63 milliseconds||604.80 microseconds||86.40 microseconds|
The terms uptime and availability are often used interchangeably, but do not always refer to the same thing. For example, a system can be "up" with its services not "available" in the case of a network outage. Or a system undergoing software maintenance can be "available" to be worked on by a system administrator, but its services do not appear "up" to the end user or customer. The subject of the terms is thus important here: whether the focus of a discussion is the server hardware, server OS, functional service, software service/process, or similar, it is only if there is a single, consistent subject of the discussion that the words uptime and availability can be used synonymously.
A simple mnemonic rule implies remembering only that "5 nines" allow approximately 5 minutes of downtime per year. Calculation can be based by multiplying or dividing by 10: 4 nines is 50 minutes and 3 nines is 500 minutes. In the opposite direction, 6 nines is 0.5 minutes (30 sec) and 7 nines is 3 seconds.
Another memory trick is to calculate , for , where is the number of desired nines. More concisely seconds/day of downtime.
90% ("one nine") is , so and therefore seconds/day.
99% ("two nines") is , so and therefore seconds/day.
99.9% ("three nines") is , so and therefore seconds/day.
99.99% ("four nines") is , so and therefore seconds/day.
99.999% ("five nines") is , so and therefore seconds/day.
99.9999% ("six nines") is , so and therefore seconds/day.
99.99999% ("seven nines") is , so and therefore seconds/day.
99.999999% ("eight nines") is , so and therefore seconds/day.
99.9999999% ("nine nines") is , so and therefore seconds/day.
Main article: Nine (purity)
Percentages of a particular order of magnitude are sometimes referred to by the number of nines or "class of nines" in the digits. For example, electricity that is delivered without interruptions (blackouts, brownouts or surges) 99.999% of the time would have 5 nines reliability, or class five. In particular, the term is used in connection with mainframes or enterprise computing, often as part of a service-level agreement.
Similarly, percentages ending in a 5 have conventional names, traditionally the number of nines, then "five", so 99.95% is "three nines five", abbreviated 3N5. This is casually referred to as "three and a half nines", but this is incorrect: a 5 is only a factor of 2, while a 9 is a factor of 10, so a 5 is 0.3 nines (per below formula: ):[note 2] 99.95% availability is 3.3 nines, not 3.5 nines. More simply, going from 99.9% availability to 99.95% availability is a factor of 2 (0.1% to 0.05% unavailability), but going from 99.95% to 99.99% availability is a factor of 5 (0.05% to 0.01% unavailability), over twice as much.[note 3]
A formulation of the class of 9s based on a system's unavailability would be
(cf. Floor and ceiling functions).
A similar measurement is sometimes used to describe the purity of substances.
In general, the number of nines is not often used by a network engineer when modeling and measuring availability because it is hard to apply in formula. More often, the unavailability expressed as a probability (like 0.00001), or a downtime per year is quoted. Availability specified as a number of nines is often seen in marketing documents. The use of the "nines" has been called into question, since it does not appropriately reflect that the impact of unavailability varies with its time of occurrence. For large amounts of 9s, the "unavailability" index (measure of downtime rather than uptime) is easier to handle. For example, this is why an "unavailability" rather than availability metric is used in hard disk or data link bit error rates.
Sometimes the humorous term "nine fives" (55.5555555%) is used to contrast with "five nines" (99.999%), though this is not an actual goal, but rather a sarcastic reference to something totally failing to meet any reasonable target.
Availability measurement is subject to some degree of interpretation. A system that has been up for 365 days in a non-leap year might have been eclipsed by a network failure that lasted for 9 hours during a peak usage period; the user community will see the system as unavailable, whereas the system administrator will claim 100% uptime. However, given the true definition of availability, the system will be approximately 99.9% available, or three nines (8751 hours of available time out of 8760 hours per non-leap year). Also, systems experiencing performance problems are often deemed partially or entirely unavailable by users, even when the systems are continuing to function. Similarly, unavailability of select application functions might go unnoticed by administrators yet be devastating to users – a true availability measure is holistic.
Availability must be measured to be determined, ideally with comprehensive monitoring tools ("instrumentation") that are themselves highly available. If there is a lack of instrumentation, systems supporting high volume transaction processing throughout the day and night, such as credit card processing systems or telephone switches, are often inherently better monitored, at least by the users themselves, than systems which experience periodic lulls in demand.
An alternative metric is mean time between failures (MTBF).
High availability is one of the primary requirements of the control systems in unmanned vehicles and autonomous maritime vessels. If the controlling system becomes unavailable, the Ground Combat Vehicle (GCV) or ASW Continuous Trail Unmanned Vessel (ACTUV) would be lost.
Adding more components to an overall system design can undermine efforts to achieve high availability because complex systems inherently have more potential failure points and are more difficult to implement correctly. While some analysts would put forth the theory that the most highly available systems adhere to a simple architecture (a single, high quality, multi-purpose physical system with comprehensive internal hardware redundancy), this architecture suffers from the requirement that the entire system must be brought down for patching and operating system upgrades. More advanced system designs allow for systems to be patched and upgraded without compromising service availability (see load balancing and failover).
High availability requires less human intervention to restore operation in complex systems; the reason for this being that the most common cause for outages is human error.
Redundancy is used to create systems with high levels of availability (e.g. aircraft flight computers). In this case it is required to have high levels of failure detectability and avoidance of common cause failures. Two kinds of redundancy are passive redundancy and active redundancy.
Passive redundancy is used to achieve high availability by including enough excess capacity in the design to accommodate a performance decline. The simplest example is a boat with two separate engines driving two separate propellers. The boat continues toward its destination despite failure of a single engine or propeller. A more complex example is multiple redundant power generation facilities within a large system involving electric power transmission. Malfunction of single components is not considered to be a failure unless the resulting performance decline exceeds the specification limits for the entire system.
Active redundancy is used in complex systems to achieve high availability with no performance decline. Multiple items of the same kind are incorporated into a design that includes a method to detect failure and automatically reconfigure the system to bypass failed items using a voting scheme. This is used with complex computing systems that are linked. Internet routing is derived from early work by Birman and Joseph in this area. Active redundancy may introduce more complex failure modes into a system, such as continuous system reconfiguration due to faulty voting logic.
Zero downtime system design means that modeling and simulation indicates mean time between failures significantly exceeds the period of time between planned maintenance, upgrade events, or system lifetime. Zero downtime involves massive redundancy, which is needed for some types of aircraft and for most kinds of communications satellites. Global Positioning System is an example of a zero downtime system.
Fault instrumentation can be used in systems with limited redundancy to achieve high availability. Maintenance actions occur during brief periods of down-time only after a fault indicator activates. Failure is only significant if this occurs during a mission critical period.
Modeling and simulation is used to evaluate the theoretical reliability for large systems. The outcome of this kind of model is used to evaluate different design options. A model of the entire system is created, and the model is stressed by removing components. Redundancy simulation involves the N-x criteria. N represents the total number of components in the system. x is the number of components used to stress the system. N-1 means the model is stressed by evaluating performance with all possible combinations where one component is faulted. N-2 means the model is stressed by evaluating performance with all possible combinations where two component are faulted simultaneously.
leading to crashes and uptime numbers closer to nine fives than to five nines.
and five nines (not nine fives) of reliability
but it seems to me we are moving closer to 9-5s (55.5555555%) in network reliability rather than 5-9s