Condivisione Windows: il nome di rete specificato non è più disponibile


8

Abbiamo una scatola SAN EMC NX4 che serve una condivisione CIFS a numerosi server di app Windows Server 2008 R2. I server delle app utilizzano la condivisione CIFS per servire molti file di immagine (~ 2500 operazioni al secondo sulla condivisione), tuttavia né la SAN né i server delle app mostrano evidenti segni di stress.

Di tanto in tanto un server delle app, apparentemente all'improvviso, interromperà la connessione alla SAN. Qualsiasi codice .NET che tenta di servire un file dalla SAN non riesce con:

System.IO.IOException: The specified network name is no longer available

Se eseguo il RDP sul server delle app e provo ad accedere a "\ san-name" tramite explorer, visualizzo lo stesso errore. Tutti gli altri server di app possono accedervi perfettamente. Posso anche accedere perfettamente a "\ ip-of-san", anche il ping funziona.

Un riavvio del server delle app risolve il problema, ma questa è una misura un po 'drastica per il problema, dato che sembra che la SAN funzioni correttamente e che il computer possa accedervi - sembra proprio che l'accesso "\ san-name" abbia incrinato.

Questo è successo a due diversi server di app durante l'ultima settimana, quindi non sospetto che la causa sia un singolo server di app. Ignorando la causa per ora - come potrei ripristinare la connessione "\ san-name" senza riavviare la macchina? E posso in qualche modo interrogare cosa è andato storto?

I registri eventi non mostrano nulla (oltre agli errori ASP.NET correlati causati dal problema), né sui server delle app né sulla SAN.

Aggiornamento: in
base ai suggerimenti, la prossima volta proverò a riavviare il servizio Workstation e vedrò se questo risolve il problema. Sicuramente non è una soluzione, ma molto più veloce da fare che riavviare l'intera macchina come ho fatto attualmente. Qualche modo per interrogare lo stato delle connessioni gestite dal servizio Workstation?

Aggiornamento 2:
confermato che il riavvio del servizio Workstation "risolve" il problema. Il prossimo passo è provare la modifica del reg per aumentare il valore MaxCmds. Non riuscirò a confermare se si tratta del problema, posso solo supporre che venga eseguito per un lungo periodo senza problemi.


Ci sono indicazioni nei registri eventi sui server delle app, in particolare nel registro di sistema, che indicano un errore temporaneo o l'attivazione di qualche altro meccanismo (ad es. Protezione DOS in LanManagerService come descritto qui blog.mreza.info/archive/ 2007/09/26 /… ). Inoltre, che cos'è l'installazione AV e come si integra Celerra.
Helvick,

@Helvick Nessuna voce rilevante nei registri eventi, né app né sistema. Non eseguiamo AV né sui server né su Celerra. Ho cercato anche nel registro eventi l'evento di protezione DOS LanManagerService, ma è tornato vuoto.
Mark S. Rasmussen,

Risposte:


7

Sembra che siano finiti i MaxCmds. Ecco due buoni articoli a riguardo: qui e qui .

Ecco ora per cambiarlo. Creare un file chiamato update.reg e inserirvi quanto segue:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters] 
"MaxCmds"=dword:00000800 

Salvare, quindi fare doppio clic e accettare il prompt. È richiesto un riavvio.


Poiché la ricompensa sta per scadere, la assegnerò alla tua risposta in quanto è la migliore scommessa imho, anche se dovrò provarla prima di accettare. In precedenza ho modificato la modalità FCN per registrare la directory bin solo perché avevo errori "Limite comando bios raggiunto" su alcune app ospitate su un'altra condivisione UNC. Ma suppongo che l'impostazione FCNMode non influenzi le directory al di fuori della directory dell'applicazione.
Mark S. Rasmussen,

Anche FCNMode può essere d'aiuto, ma una struttura del disco di grandi dimensioni su UNC può farli entrare in gioco entrambi. Credo che FCN sia contro l'intero albero di directory per .NET 2.0 e versioni successive.
Scott Forsyth - MVP il

Inoltre: ho visto i MaxCmds esaurirsi con più nodi front-end e più utenti utilizzati per cartelle diverse. MaxCmds è un'impostazione che applico a tutti i miei webfarm UNC. Non ho mai visto uno svantaggio di quel cambiamento. C'è anche un'impostazione del server se la destinazione della condivisione CIFS è un server Windows, ma ciò non si applica a te.
Scott Forsyth - MVP,

Solo per chiarire il mio commento, le attuali applicazioni .NET sono memorizzate sul disco locale. Lo scopo principale delle app è quello di servire i dati delle immagini, che sono memorizzati su condivisioni UNC. L'impostazione FCNMode, a quanto ho capito, si applica solo alla directory dell'applicazione, quindi non ha alcun impatto nel mio caso. MaxCmds è comunque un possibile colpevole. Tutte le app sono in esecuzione con lo stesso account, ma con oltre 500 app Web su ciascun server, è probabile che io stia finendo.
Mark S. Rasmussen,

Il comportamento predefinito in ASP.NET per FCN è quello di attraversare l'intera struttura della directory. La chiave di registro di HKLM \ Software \ Microsoft \ ASP.NET \ FCNMode può essere 0, 1 o 2. 0 è l'impostazione predefinita che ha un oggetto FCN per ogni cartella. Se lo cambi in 2, utilizzerà un oggetto per la radice e tutte le sottodirectory. L'impostazione su 1 lo spegne completamente. support.microsoft.com/kb/911272 . Puoi trovare utile anche questo post sul blog e la discussione: weblogs.asp.net/owscott/archive/2006/02/21/ASP.NET-v2.0- 2D00 -AppDomain-recycles_2C00_-more-common-than-before.aspx .
Scott Forsyth - MVP,

1

forse riavviare il servizio workstation sul server app!


se sta davvero perdendo la risoluzione dei nomi, puoi provare come esperimento usando un file hosts per mettere in corto circuito il processo di risoluzione dei nomi.
tony roth,

Ho provato a riavviare il servizio, non ha funzionato, ma poi ho riavviato il server e sembra funzionare dopo.
Cerchia Hsiao il

0

Ho avuto casi come questo prima, anche se non con un back-end EMC. Per le applicazioni userland, la chiusura forzata della connessione al server remoto e la riapertura lo riporterà, anche se potrebbe essere necessario provare un paio di volte prima che si comporti. Per le applicazioni serverland, il riciclaggio del pool di applicazioni per quel servizio funziona. In caso contrario, il riciclaggio del servizio Workstation può evitare un riavvio, ma è altrettanto drastico.


0

Sulla fonte:

Potresti fornire maggiori dettagli sul software installato sul server delle app? In rete troverai che di solito è un problema con un AV ma dal momento che non esegui ... forse un'altra app in modalità kernel come un software di backup?

Il firewall è attivo? Hai controllato i log degli eventi sul controller di dominio per l'app server difettoso?

Dovresti anche annusare il traffico di rete CIFS quando sorge il problema per vedere cosa succede.

Le uniche volte in cui mi sono imbattuto in questo errore sono stati quando il server / workstation in qualche modo "ha perso" il suo collegamento con il dominio. Il re-forzamento dell'appartenenza al dominio ha fatto il trucco (netdom / resetpwd). È possibile accedere ad altre condivisioni di rete (dalla sessione RDP al server delle app) quando si presenta il problema?


L'unico software in esecuzione sul server è IIS che esegue un'applicazione Web .NET. Il firewall non è attivo in quanto è dietro la nostra DMZ. Proverò a controllare i registri AD la prossima volta che accadrà. Un buon consiglio per quanto riguarda CIFS: la prossima volta proverò ad aggiungere un LUN ISCSI per vedere se è correlato solo a CIFS o se è un problema di connettività generale che utilizza il nome host. Posso accedere a tutte le altre macchine e condivisioni utilizzando CIFS mentre si verifica questo errore.
Mark S. Rasmussen l'

0

Questo può essere un problema con la risoluzione dei nomi. Puoi verificare con il tuo server DNS? Se ciò non consente di risolvere il nome e dopo aver riavviato il server delle applicazioni, consentirebbe l'accesso.

Ho avuto lo stesso problema quando alcuni utenti di workstation si sono lamentati del fatto che non erano in grado di accedere all'applicazione memorizzata in un altro server, abbiamo fatto lo stesso provando ad accedere con server-ip che avrebbe funzionato ma non con il nome, quindi abbiamo controllato DNS. Abbiamo apportato modifiche nell'applicazione per accedere a un altro server per utilizzare l'indirizzo IP poiché disponiamo di una rete IP statica.

Fammi sapere se il mio suggerimento funziona per te.


Mentre ricevo il messaggio di errore, posso eseguire un nslookup bene, restituendo l'IP corretto dal nostro DNS locale AD. Posso anche eseguire il ping utilizzando sia il nome host che l'indirizzo IP.
Mark S. Rasmussen l'

0

Ho riscontrato un problema simile. Non sono stato in grado di mappare una condivisione su Windows Server 2012 da un server Windows 2003.

Il gruppo di rete aveva implementato un criterio AD che aveva isolato le versioni inferiori di Windows in un contenitore AD che non consentiva la versione inferiore di TLS di connettersi ai server che eseguono versioni superiori di TLS. Lo spostamento del server indietro o la disabilitazione del criterio per connettersi con la versione precedente di TLS ha corretto questo problema.

Ecco alcuni errori che ho riscontrato nel registro di sistema:

Il certificato ricevuto dal server remoto è stato emesso da un'autorità di certificazione non attendibile. Per questo motivo, nessuno dei dati contenuti nel certificato può essere convalidato. La richiesta di connessione SSL non è riuscita. I dati allegati contengono il certificato del server.

È stato generato un avviso irreversibile che è stato inviato all'endpoint remoto. Ciò può comportare la chiusura della connessione. Il codice di errore irreversibile definito dal protocollo TLS è 48. Lo stato di errore di Windows SChannel è 552.

Spero che ti aiuti a risolvere il tuo problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.