Problema de compartilhamento de arquivos de rede mista 2003/2008

4

Um de nossos clientes tem um servidor de arquivos 2008R2 Datacenter Edition SP1 e executa nosso aplicativo em várias máquinas que acessam esses arquivos. Há uma situação específica quando um arquivo está presente (em uma pasta do servidor de arquivos) que cada máquina abre (para leitura e gravação) a cada 20 ou 30 segundos, decide que não pode processá-lo e imediatamente fecha novamente. Um mecanismo de intertravamento completamente separado impede que vários nós tentem abrir o arquivo simultaneamente.

Isso funciona bem quando todas as máquinas de acesso estão executando o Server 2008R2, mesmo que a lista de arquivos abertos do servidor mostre o arquivo permanentemente aberto. Mas quando uma máquina Windows 2003 inicia a execução do mesmo aplicativo e o mesmo intertravamento, ele sempre falha ao abrir o arquivo com uma violação de compartilhamento e esta máquina também não consegue excluir o arquivo. Fechar todos os acessores do 2008R2 faz com que o arquivo desapareça da lista de arquivos abertos do servidor de arquivos e permite que a máquina Windows 2003 consiga abrir o arquivo e excluí-lo. No entanto, o PROCMON não revela nenhum contato com o arquivo quando o acessador é fechado.

É como se houvesse um código privado que as máquinas e o servidor 2008R2 usam para manter o arquivo em um estado de pseudo-aberto e do qual o 2003 não está ciente, então ele acha que o arquivo está realmente aberto. Não pode estar permanentemente aberto porque os nós de 2008 estão abrindo-o regularmente. Se minha teoria está correta, como nosso cliente pode consertar isso?

    
por frogb 12.01.2012 / 00:35

2 respostas

3

Suspeito imediatamente que há alguma perda na interoperabilidade de clientes SMB e SMB2 que acessam o mesmo arquivo. Você poderia, pelo menos, tentar isolar o comportamento como sendo um problema de interoperabilidade do SMB / SMB2 desabilitando o SMB2 nos clientes do Windows Server 2008 R2. (É uma coisa ruim de se fazer, do ponto de vista do desempenho, mas pode isolar o problema o suficiente para determinar que a remoção dos clientes do Windows Server 2003 é a "solução".)

Você pode descrever como o protocolo "interlock" funciona?

    
por 12.01.2012 / 00:45
2

O conselho de Evan é sólido, então eu o seguiria primeiro. Se você não conseguir qualquer tração, há algo que você deve saber sobre o Windows Server 2003: ele tem um sério bug de condição / bloqueio de corrida em rdbss.sys ao executar alguns tipos de atividades em um compartilhamento de arquivos.

Os sintomas e as circunstâncias podem variar e podem até bloquear o servidor do Windows 2003 se a contenção do arquivo for pesada o suficiente. Eu não tenho certeza porque não se manifesta com mais freqüência, mas eu definitivamente bati duro fazendo algo semelhante. Também esteja ciente de que, mesmo com um mecanismo de bloqueio independente, pode haver outros processos acessando esses arquivos, como antivírus.

Aqui estão os artigos do kb. Não se distraia com os títulos irrelevantes.

link

link

Para ter uma ideia melhor do que realmente está ocorrendo, você precisará executar uma captura de pacote de rede no servidor 2003 quando isso ocorrer. Os analisadores NetMon para SMB são realmente muito bons e geralmente é possível identificar um problema de contenção de bloqueio.

    
por 12.01.2012 / 01:21