C.4. Recuperação de Falhas e Sub Árvores Independentes
Na maioria dos ambientes corporativos, o curso normal de ação para recuperação de falha de um serviço é reiniciar o serviço inteiro se qualquer componente no serviço falhar. Por exemplo, no Exemplo C.6, “Recuperação de Falha Normal do Serviço foo”, se qualquer dos scripts definidos neste serviço falhar, o curso normal de ação é reiniciar (ou realocar ou desabilitar, de acordo com a política de recuperação do serviço) o serviço. Entretanto, em algumas circunstâncias certas partes de um serviço podem ser consideradas não críticas; podendo ser necessário reiniciar somente parte do serviço em questão antes de tentar uma recuperação normal. Para fazer isso, você pode usar o atributo
__independent_subtree
. Por exemplo, no Exemplo C.7, “A Recuperação de Falha do Serviço foo com o Atributo __independent_subtree
.”, o atributo __independent_subtree
é usado para fazer as seguintes ações:
- Se o script:script_one falhar, reinicie script:script_one, script:script_two, e script:script_three.
- Se o script:script_two falhar, reinicie apenas o script:script_two.
- Se o script:script_three falhar, reinicie o script:script_one, script:script_two, e script:script_three.
- Se o script:script_four falhar, reinicie o serviço inteiro.
Exemplo C.6. Recuperação de Falha Normal do Serviço foo
<service name="foo"> <script name="script_one" ...> <script name="script_two" .../> </script> <script name="script_three" .../> </service>
Exemplo C.7. A Recuperação de Falha do Serviço foo com o Atributo __independent_subtree
.
<service name="foo"> <script name="script_one" __independent_subtree="1" ...> <script name="script_two" __independent_subtree="1" .../> <script name="script_three" .../> </script> <script name="script_four" .../> </service>
Em algumas circunstâncias, se um componente de um serviço falhar você pode querer desabilitar somente esse componente sem desabilitar o serviço inteiro, para evitar que afete outros serviços que usam outros componentes deste serviço. A partir do lançamento do Red Hat Enterprise Linux 6.1, você pode fazer isso usando o atributo
__independent_subtree="2"
, que designa a subárvore independente como não crítica.
Nota
Você pode usar somente a bandeira não crítica em recursos isoladamente referenciados. A bandeira não crítica trabalha com todos os recursos em todos os níveis da árvore de recursos mas não deve ser usada no nível superior quando definir serviços ou máquinas virtuais.
A partir do lançamento do Red Hat Enterprise Linux 6.1, você pode definir reinicializações máximas e expirações de reinicializações em uma base por nó na árvore de recursos para subárvores independentes. Para definir estes limites, você pode usar os seguintes atributos:
- O
__max_restarts
configura o número máximo de reinicializações toleradas antes de desistir. __restart_expire_time
configura o período de tempo, em segundos, depois que uma reinicialização não é mais tentada.