"Teoricamente, o ZFS poderia contornar esse problema mantendo o controle de mutações que ocorrem durante um estado degradado e gravando-as novamente em D quando estiver limpo. Por alguma razão, suspeito que não é o que acontece, no entanto."
Na verdade, isso é quase exatamente o que pode ser feito nessa situação. Veja, toda vez que o disco em um pool do ZFS é gravado, o id da transação do pool global atual é gravado no disco. Por exemplo, digamos que você tenha o cenário explicado e o tempo total entre a perda de conexão e a recuperação seja menor que 127 * txg_timeout (e isso está fazendo muitas suposições brutas sobre a carga no pool e algumas outras coisas , mas diga metade disso por segurança típica, então se txg_timeout é de 10 segundos, então 600 segundos ou 10 minutos é um tempo razoável para esperar que isso continue funcionando).
No momento antes da desconexão, o pool conseguiu gravar com êxito gravações relacionadas ao ID de transação 20192. O tempo passa e o disco volta. No momento em que o disco está novamente disponível, o pool já passou por vários grupos de transações e está no ID de transação 20209. Nesse ponto, ainda há todas as possibilidades de o ZFS poder fazer o que é chamado de 'resilver rápido', onde ele resilversa o disco, mas SOMENTE para o ID de transação de 20193 até 20209, em oposição a um resilver completo da unidade. Isso rapidamente e eficientemente recupera o disco em especificação com o restante do pool.
No entanto, o método para iniciar essa atividade não é 'zpool clear'. Se tudo funcionasse como deveria, o resilver deveria ter sido chutado automaticamente no momento em que o disco voltasse a ficar saudável. Na verdade, pode ter sido tão rápido que você nunca viu. Nesse caso, 'zpool clear' seria a atividade adequada para limpar a contagem de erros ainda visíveis que teria aparecido quando o dispositivo desapareceu em primeiro lugar. Dependendo da versão do zfs que você está usando, em que sistema operacional ele está, de que maneira o dispositivo está sendo listado pelo zfs no momento e há quanto tempo ele está nesse estado, a maneira "correta" de corrigir isso varia. Na verdade, pode ser 'zpool clear' (limpando os erros, e o próximo acesso da unidade deve notar a falta de sincronização txg id e kick no resilver) ou você pode precisar usar 'zpool online' ou 'zpool replace' .
O que estou acostumado a ver, quando tudo isso funciona corretamente, o disco está desaparecendo e a unidade entra em um estado de OFFLINE ou DEGRADED ou FAULTED ou UNAVAIL ou REMOVED. Então, quando a unidade se torna acessível novamente em um nível do sistema operacional, FMA e outros mecanismos do sistema operacional entram em ação e o ZFS percebe que o disco retornou, e há um resilver rápido e o dispositivo aparece no status zpool como ONLINE novamente, mas ainda pode ter um contagem de erros associada a ele. A chave é que está no status ONLINE, o que indica o sucesso do reparo automático (resilver). Você pode testá-lo em qualquer unidade, puxando-o para fora, aguardando alguns segundos e verificando 'zpool status' e, em seguida, conectando o disco novamente e verificando 'zpool status' novamente e vendo o que acontece. O ZFS não é a única peça móvel aqui - o ZFS na verdade depende em grande parte de outras mecânicas do sistema operacional para informá-lo do status do disco, e se essas mecânicas falharem você terá sintomas diferentes do que se eles obtiverem sucesso.
Em qualquer evento, o resilver rápido pode ser executado e bem-sucedido, ou não é possível ou falha. Se o último, o disco terá para completar um resilver completo antes de retornar ao serviço, então seus dois problemas listados na parte inferior do seu post normalmente não devem ser possíveis, a menos que a substituição administrativa tenha permitido um disco com um txgid incompatível para reentrar em um pool sem qualquer forma de correção para essa disparidade (geralmente não deve ser possível). Se isso acontecesse, eu suspeitaria que o próximo acesso ao drive resultaria em um resilver rápido (e ter sucesso, ou falhar e derrubar o disco para um resilver completo) ou acabaria chutando o disco para fora - - ou possivelmente entrar em pânico, devido à disparidade txgid. Em qualquer um desses eventos, o que não aconteceria seria a perda de dados ou o retorno de dados incorretos para uma solicitação.