
Failover (ou tolerância a falhas com alternância automática) é o processo de transferência automática das operações para um computador servidor, sistema, componente de hardware ou rede redundante após a falha ou término anormal do sistema ou aplicativo anteriormente ativo. O failover e o switchover (alternância manual) são essencialmente a mesma operação; a diferença reside no fato de que o failover é automático e ocorre geralmente sem aviso prévio, enquanto o switchover exige intervenção humana.
O termo "failover", embora provavelmente já fosse utilizado por engenheiros antes disso, aparece em um relatório desclassificado da NASA de 1962. Já o termo "switchover" pode ser encontrado em publicações da década de 1950 para descrever sistemas de espera "ativos" e "passivos" (hot e cold standby). Na época, o conceito referia-se à alternância imediata para um sistema em execução (ativo) ou à alternância atrasada para um sistema que precisava ser inicializado (passivo). Adicionalmente, os anais de uma conferência de 1957 já descreviam sistemas computacionais com alternância de emergência (ou seja, failover) e failover agendado para manutenção.
Projetistas de sistemas geralmente implementam a capacidade de failover em ambientes que exigem alta disponibilidade e alto grau de engenharia de confiabilidade.
No nível do servidor, a automação do failover frequentemente utiliza um sinal de pulsação (heartbeat) transmitido entre dois ou mais servidores via rede ou conexão dedicada (como uma porta RS-232). No modelo mais tradicional, enquanto o heartbeat do servidor principal for detectado pelo servidor secundário, este permanece no modo de espera. Contudo, em arquiteturas ativas, todos os servidores processam cargas simultaneamente e redistribuem a demanda entre os nós remanescentes em caso de falha. Pode haver ainda um terceiro servidor de reserva (hot spare) pronto para assumir de forma instantânea e evitar o tempo de inatividade. O servidor secundário assume as operações do principal no momento em que detecta uma interrupção no sinal do heartbeat. Alguns sistemas também contam com mecanismos para enviar notificações automáticas de failover.[carece de fontes]
Há situações em que o failover não é configurado para ser 100% automático por motivos de segurança. Nesses cenários, chamados de "automação com aprovação manual", a alternância só é executada após a confirmação de um operador humano.[carece de fontes]
Failback é o processo inverso, no qual o serviço, componente ou sistema originalmente com falha é restaurado ao seu estado operacional. Com isso, o sistema de espera (standby) deixa o estado ativo e retorna ao modo de espera, enquanto a máquina primária reassume o processamento normal.
O avanço do software de virtualização tornou as práticas de failover menos dependentes de hardware físico por meio da migração de máquinas virtuais. Esse processo permite mover uma máquina virtual em execução de um hospedeiro (host) físico para outro com pouca ou nenhuma interrupção de serviço.
A tecnologia de failover e failback também é amplamente utilizada em bancos de dados como o Microsoft SQL Server, no qual a Instância de Cluster de Failover (FCI) é configurada sobre o Cluster de Failover do Windows Server (WSFC). Os grupos e recursos do SQL Server executados no WSFC podem sofrer failover manual (para manutenções planejadas no nó primário) ou automático (no caso de falhas inesperadas). Da mesma forma, a operação de failback é realizada para retornar os serviços ao nó principal após a resolução do problema ou conclusão da manutenção.
Embora seja impossível prevenir totalmente a perda de dados durante um failover de aplicativo, certas etapas podem [...] minimizá-la..