- As alças duráveis fazem parte do SMB 2.0
- As alças resilientes fazem parte do SMB 2.1
- As alças persistentes fazem parte do SMB 2.2, que agora é chamado de SMB3
Minhas principais referências para o seguinte são:
e, embora isso tenha sido originalmente para o Samba3, ele tem mais detalhes:
Handles de arquivo duráveis permitem que uma conexão com um servidor SMB sobreviva a uma interrupção de rede curta - as alças duráveis não são necessariamente limpas quando o processo de abertura é encerrado. Quando um cliente tenta se reconectar, se o bloqueio (/ lease) ainda estiver lá, ele se reconecta ao arquivo.
Mas se outro cliente tentar abrir o arquivo, o bloqueio / concessão será interrompido e o primeiro cliente não poderá se reconectar.
Os manipuladores de arquivo resilientes são preservados mesmo que o bloqueio / concessão seja interrompido, mas francamente não posso seguir todos os detalhes técnicos de como isso funciona. Uma das referências abaixo diz que a diferença entre Durable e Resilient é como as alças são criadas - Durável por uma chamada de contexto de criação e Resiliente por um IOCTL. (A principal coisa que não posso seguir é como o sequenciamento de bloqueio e o replay se encaixam nisso, mas não parece essa é uma diferença crítica entre durável e resiliente.)
Para os Handles persistentes, não consigo encontrar nada melhor do que este documento do Samba:
Persistent file handles are a like durable file handles with strong guarantees. They are requested with the durable v2 create request blob with the persistent flag set to true. The server only grants persistent handles on shares that are marked CA (continuously available).
Até onde eu sei, elas ainda não estão implementadas no Samba, mas o objetivo é suportar clustering e disponibilidade contínua, então está sendo trabalhado.