O driver de disco normalmente esperará até que um tempo limite configurável seja excedido antes mesmo de relatar um erro para a operação solicitada.
Como você descobriu, isso é /sys/block/<devicename>/device/timeout
no Linux e o padrão é 60 30 segundos.
O Windows está armazenando essa configuração como configuração global TimeoutValue
(REG_DWORD) em HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk\
com um padrão de 60 segundos.
Contanto que nenhum erro seja relatado pelo usuário, você não verá nenhuma ação imediata (como uma remontagem do FS), mesmo depois que o tempo limite acabar, você normalmente verá mais ação do manipulador de erros (criação de log, redefinição do dispositivo, etc. .) antes de um erro ser passado de volta para a camada superior.
Mas esteja ciente de que haverá outras implicações que afetam a disponibilidade geral.
- aplicativos ou serviços do sistema podem implementar tempos de espera próprios e lançar exceções na expiração
- em servidores com uma alta taxa de pedidos, você verá o preenchimento de filas e a exaustão de memória à medida que novos clientes continuarem enviando novas solicitações com as solicitações antigas que ainda aguardam a resposta do armazenamento.
- se acontecer de você ter espaço de troca no dispositivo com falha, todas as solicitações de entrada / saída da página ficarão paralisadas, bloqueando efetivamente os processos que funcionam nessas páginas de memória.
Em geral, você desejará manter o tempo de failover o mais baixo possível enquanto ainda estiver operando sem failovers prematuros devido a picos ocasionais de carga ou falhas na rede. Determinar o valor correto para seu caso específico de uso é muito trabalho de tentativa e erro durante um período prolongado de operação. Para VMs de servidor de uso geral, eu teria como objetivo algo na magnitude de 10 segundos, se viável e suportado por sua infraestrutura.