Diferença entre identificadores de arquivos duráveis, identificadores de arquivos resilientes e identificadores de arquivos persistentes

6

No protocolo CIFS / SMB, vejo que há três tipos de identificadores de arquivo: durável, resiliente e persistente. Qual é a diferença entre eles?

    
por Waveter 24.02.2016 / 04:03

2 respostas

8
  • 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:

link

e, embora isso tenha sido originalmente para o Samba3, ele tem mais detalhes:

link

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.

    
por 24.02.2016 / 08:32
4

Mais sobre alças persistentes ... Alças persistentes estão disponíveis em vários servidores do mesmo cluster. Quando um servidor fica inativo por algum motivo, o computador cliente pode continuar semitransparentemente usando esse identificador por meio de uma conexão com outro servidor. É por isso que a implementação de alças persistentes (ao contrário das alças duráveis e resilientes) está fora do escopo de uma SMB pura. Por exemplo, nosso armazenamento NQ espera que a semântica completa de identificadores persistentes seja implementada em um VFS personalizado, enquanto o mecanismo SMB é responsável pela respectiva sintaxe.

    
por 25.02.2016 / 06:21