web-dev-qa-db-fra.com

Pause longue lors de l'accès à l'espace de noms DFS

Nous avons récemment migré notre réseau Windows pour utiliser DFS pour les fichiers partagés. DFS fonctionne bien, à l'exception d'un problème ennuyeux: les utilisateurs connaissent un retard important lorsqu'ils tentent d'accéder à un espace de noms DFS auquel ils n'ont pas accédé depuis un certain temps. J'ai essayé de résoudre le problème, mais je n'ai pas réussi jusqu'à présent, et j'espérais que quelqu'un ici pourrait avoir des conseils pour aider à résoudre le problème.

Tout d'abord, quelques informations sur notre réseau:

Le réseau utilise un domaine Active Directory de niveau fonctionnel Windows 2008 avec deux contrôleurs de domaine Windows 2008 et deux serveurs DNS (un sur chacun des contrôleurs de domaine). Le réseau est uniquement DNS - pas de WINS. Tous les ordinateurs sont situés sur le même site et connectés par Gigabit Ethernet. Nous avons environ 20 espaces de noms DFS basés sur le domaine en mode Windows 2008, et chaque espace de noms DFS possède deux serveurs d'espaces de noms Windows 2008 DFS (les deux mêmes serveurs pour tous les espaces de noms). Tous les serveurs d'espace de noms sont en mode FQDN et toutes les cibles de dossier sont spécifiées à l'aide de leur FQDN. Tous les ordinateurs sont à jour avec les Service Packs et les correctifs.

Les cibles réelles des dossiers (c'est-à-dire les SMB partages vers lesquels nos dossiers DFS pointent) sont dispersées sur plusieurs serveurs de fichiers et d'applications, tous exécutant Windows 2008 à l'exception de deux serveurs d'applications qui exécutent Windows 2003 R2, sans réplication configuration du tout (par exemple, tous les dossiers DFS n'ont actuellement qu'une seule cible de dossier).

Quelques détails supplémentaires sur le problème:

Le délai d'accès à l'espace de noms est généralement de 1 à 10 secondes et semble se produire lorsqu'un ordinateur particulier n'a pas accédé à l'espace de noms demandé pendant environ cinq minutes ou plus.

Par exemple, si l'utilisateur n'a pas accédé à \\ domain.name\namespace1\pendant plus de cinq minutes et tente d'accéder à \\ domain.name\namespace1\via l'Explorateur Windows, la fenêtre de l'Explorateur se fige pendant 1 à 10 secondes avant de finalement reprendre et afficher les dossiers qui existent dans \\ domain.name\namespace1. S'ils ferment alors la fenêtre de l'Explorateur et tentent d'accéder à nouveau à \\ domain.name\namespace1\dans les cinq minutes, le contenu sera affiché presque instantanément - s'ils attendent plus de cinq minutes, la pause de 1 à 10 secondes recommencera.

Une fois que "l'intérieur" de l'espace de noms est tout Nice et accrocheur, c'est juste la connexion initiale à l'espace de noms qui est lente.

Les retards de navigation semblent affecter toutes les variantes de Windows que nous utilisons (Windows 2008 x64 SP2, Windows 2003 R2 x86 SP2, Windows XP Pro x86 SP3) - c'est peut-être un peu pire dans Windows = XP/2003 que dans Windows 2008, mais je ne sais pas si la différence n'est pas seulement psychologique.

L'accès direct aux cibles de dossier sous-jacentes ne présente aucun délai - c'est-à-dire que si les partages SMB pointés par DFS sont directement accessibles (en contournant DFS), il n'y a pas de pause.

Lors du dépannage, j'ai remarqué que la "durée du cache" pour toutes nos racines DFS est définie sur 300 secondes - 5 minutes. Étant donné qu'il s'agit du même temps nécessaire pour déclencher la pause, je suppose que cette mise en cache est en quelque sorte liée, bien que je ne sois pas exactement ce qui est mis en cache sur le client et donc ce qui doit être recherché à nouveau après que 5 minutes se soient écoulées.

En essayant de résoudre le problème, j'ai déjà essayé/vérifié les éléments suivants (sans succès):

  • Exécutez dcdiag sur les deux contrôleurs de domaine - aucun problème trouvé
  • Fait quelques vérifications de base du serveur DNS sans trouver de problèmes - je ne sais pas comment vérifier les serveurs DNS en détail, mais j'ajouterais que le réseau ne présente aucun autre comportement étrange qui pourrait indiquer un problème DNS
  • Anti-virus désactivé sur les clients et les serveurs
  • Suppression d'un des serveurs d'espaces de noms de quelques espaces de noms - aucune différence

C'est donc là que j'en suis - et je suis à court d'idées. Quelqu'un peut-il suggérer la cause des retards et/ou ce que je devrais essayer ensuite?

22
Matt

Eh bien, nous enfin semblons avoir résolu ce problème dans notre environnement. Pour le bénéfice des autres, voici ce que nous avons découvert et comment nous avons résolu le problème:

Pour essayer de mieux comprendre ce qui se passait avant/pendant/après les retards, nous avons utilisé Wireshark sur une machine cliente pour capturer/analyser le trafic réseau pendant que ce client tentait d'accéder à un partage DFS.

Ces captures montraient quelque chose d'étrange: chaque fois que le retard se produisait, entre la demande DFS envoyée du client à un contrôleur de domaine et la référence à un serveur racine DFS revenant du DC au client , le DC envoyait plusieurs recherches de nom de diffusion au réseau.

Tout d'abord, le DC diffuserait une recherche NetBIOS pour DOMAIN (où DOMAIN est notre nom de domaine Active Directory antérieur à Windows 2000). Quelques secondes plus tard, il diffuserait un LLMNR recherche DOMAIN. Ceci serait suivi par une autre recherche NetBios de diffusion DOMAIN. Une fois ces trois recherches diffusées (et je suppose que le délai a expiré), la DC répondrait finalement au client avec une référence (correcte) à un serveur racine DFS.

Ces recherches de nom de diffusion pour DOMAIN n'étaient envoyées que lorsque le long délai d'ouverture d'un partage DFS s'est produit, et nous avons pu clairement voir à partir de la capture Wireshark que le DC ne renvoyait pas une référence à un DFS serveur racine jusqu'à ce que les trois recherches aient été envoyées (et environ 7 secondes se sont écoulées). Donc, ces recherches de nom de diffusion ont été à l'évidence la cause de nos retards.

Maintenant que nous savions quel était le problème, nous avons commencé à essayer de comprendre pourquoi ces recherches de nom de diffusion se produisaient. Après un peu plus de recherches sur Google et quelques essais et erreurs, nous avons trouvé notre réponse: nous n'avions pas défini la clé de registre DfsDnsConfig sur nos contrôleurs de domaine sur 1, comme cela est requis lors de l'utilisation de DFS dans un environnement DNS uniquement.

Lorsque nous avons initialement configuré DFS dans notre environnement, nous avons lu les différents articles sur la façon de configurer DFS pour un environnement DNS uniquement (par exemple Microsoft KB24438 et d'autres) et connaissaient cette clé de registre, mais avaient mal interprété les instructions sur le moment/la façon de l'utiliser.

KB244380 dit:

La clé de Registre DFSDnsConfig doit être ajoutée à chaque serveur qui participera à l'espace de noms DFS pour que tous les ordinateurs comprennent les noms pleinement qualifiés.

Nous pensions que cela signifiait que la clé de registre devait être définie uniquement sur les serveurs d'espace de noms DFS , sans se rendre compte qu'elle était également requise sur les contrôleurs de domaine. Après avoir défini DfsDnsConfig à 1 sur nos contrôleurs de domaine (et redémarré le service "DFS Namespace"), le problème a disparu.

De toute évidence, nous sommes satisfaits de ce résultat, mais j'ajouterais que je ne suis toujours pas convaincu à 100% que c'est notre seul problème - je me demande si l'ajout de DfsDnsConfig = 1 à nos contrôleurs de domaine a seulement contourné le problème, plutôt que de le résoudre . Je ne peux pas comprendre pourquoi les contrôleurs de domaine essaieraient de rechercher DOMAIN (le nom de domaine lui-même, plutôt qu'un serveur dans le domaine) pendant le processus de référence DFS, même dans un environnement non DNS uniquement, et je sais également que je n'ont pas défini DfsDnsConfig = 1 sur les contrôleurs de domaine dans d'autres environnements DNS (certes beaucoup plus petits/plus simples) et n'ont pas eu le même problème. Pourtant, nous avons résolu notre problème, nous sommes donc heureux.

J'espère que cela sera utile aux autres qui connaissent un problème similaire - et merci encore à ceux qui ont fait des suggestions en cours de route.

28
Matt

Cela peut être dû à la commande du masque de réseau du serveur DNS. Nous l'avons rencontré récemment dans Server 2003. Cela dépend de votre sous-réseau actuel.

Exemple.

Site 1: sous-réseau IP 10.0.0.0/24 Site 2: sous-réseau IP 10.0.1.0/24

Le client du site 2 effectue une requête DNS pour votre espace de noms basé sur le domaine et recevra par défaut le serveur DFS du site 1 car le serveur DNS n'a pas connaissance des limites IP du site. Vous devez indiquer à vos serveurs DNS quel masque de sous-réseau utiliser pour identifier les adresses IP auxquelles répondre.

Voir http://support.Microsoft.com/kb/842197

3
Chris

Le blog de l'équipe Active Directory contient un article en trois parties sur les délais DFS.

http://blogs.technet.com/b/askds/archive/2009/09/29/o-dfs-shares-where-art-thou-part-1-3.aspx

Il couvre les bases du processus de référence, puis montre comment utiliser divers outils, notamment dfsUtil et dfsDiag pour découvrir la cause réelle des retards.

Cela m'a aidé à trouver mon problème. Ce qui s'est avéré être aucune autorisation de lecture sur le répertoire de partage pour les utilisateurs du domaine.

HTH, Daniel

3
Daniel B

Ça sent comme un problème DNS mais tout se passe. J'ai beaucoup préféré l'ancien FRS car les outils de diagnostic comme Ultrasound étaient si utiles: 7

Obtenez-vous quelque chose dans le journal des événements de réplication DFS sur les cibles? (le rapport d'intégrité DFS tirera ses avertissements du journal des événements)

Fonctionner sans WINS est un objectif agréable et admirable, bien que je sois à peu près contre s'il y a des systèmes Windows antérieurs à Vista/2008 car les choses ne fonctionnent pas toujours comme prévu ou aussi rapidement sans WINS selon mon expérience - bien que cela ne devrait vraiment pas avoir d'importance.

2
Oskar Duveborn

J'ai donc utilisé cet article dans ma recherche. J'ai tout installé et j'ai toujours eu des problèmes. Après avoir passé plusieurs jours à étudier le problème et à exclure tout "Microsoft", j'ai deviné que c'était lié au réseau. Il s'avère que notre WAN Accelerator était le problème. J'ai demandé à nos gars de réseautage de désactiver l'accélération pour nos contrôleurs de domaine et tout s'est amélioré.

1
David Jenkins

dfsutil/spcflush et dfsutil/pktflush peuvent également être une solution dans un réseau multisite. Assurez-vous que le lien DFS du site d'accueil provient du serveur local et non du cache.

1
Parag DJ

Nous avons eu un problème similaire, où les utilisateurs subiraient des retards (jusqu'à une minute) entre cliquer sur un lecteur mappé sur un partage DFS et pouvoir voir et parcourir les dossiers dans le partage.

Les utilisateurs avaient également des disques personnels mappés sur un partage DFS différent sur le même volume et n'avaient aucun délai lors de l'accès aux dossiers.

La différence entre les deux est l'énumération basée sur l'accès (ABE) - le partage de problèmes a cette fonction activée (c'est un lecteur commun pour les utilisateurs, avec des milliers de dossiers - ABE signifie que les utilisateurs ne voient que les dossiers auxquels ils ont des autorisations).

La désactivation d'ABE a entièrement supprimé le problème. Évidemment, ce n'est pas une solution car les utilisateurs voient alors tous les dossiers, les confondant. J'ai répliqué le partage DFS sur un serveur avec un disque de rechange comme mesure temporaire, et même avec ABE activé sur cette nouvelle cible, le retard a disparu.

Le serveur à problème est 2k3R2 et a un temps de disponibilité de plus de 150 jours (!), Donc il va être redémarré et CHKDSK fonctionnera sur le volume incriminé. Je reviendrai ici si cela fait une différence dans le problème. La nouvelle cible est sur un serveur 2k8.

1
slag

Avait beaucoup de contrôleurs, tout comme un script (dnsdfs.cmd servername):

dfsutil server registry dfsdnsconfig set %1
sc \\%1 stop dfs
sc \\%1 start dfs
1
i3laze

Le client met en cache une référence DFS, c'est-à-dire que lorsque vous entrez\domain.name\namespace, il mettra en cache le serveur auquel domain.name fait référence. Une fois la référence expirée du cache, le client doit fondamentalement "découvrir" à nouveau votre topologie DFS, d'où le retard.

Jetez un œil ici: http://technet.Microsoft.com/en-us/library/cc758234 (WS.10) .aspx et ici http: //blogs.technet. com/filecab/archive/2006/01/20/417832.aspx pour plus d'informations sur la façon dont cela fonctionne.

Solutions possibles? Une façon bizarre de s'y prendre pourrait être d'écrire un petit programme qui fait un "maintien en vie" toutes les quelques minutes; par exemple. un programme C qui ouvre le premier fichier qu'il trouve et le ferme immédiatement. Je n'ai pas essayé ou testé cela, et vous auriez certainement besoin de réfléchir attentivement si vous vouliez le faire.

1
Maximus Minimus

Je sais que l'affiche originale n'utilisait pas WINS, mais je poste pour le bénéfice des autres car nous avons le plus utilisé ce message pour aider à résoudre un problème très similaire. Pour nous, cela a fini par être une personne qui a décidé de nommer son poste de travail avec le même nom que le domaine. Ainsi, chaque fois que le DC effectuait une recherche sur le nom de domaine pour la référence DFS, il voulait se résoudre à ce poste de travail et causerait un retard considérable de plusieurs dizaines de secondes. Un 20 statique L'entrée a été placée dans le WINS pointant sur un DC et cela a résolu le problème. Si vous n'aviez pas de WINS, vous pouvez essayer de placer le nom de domaine comme un nom de machine dans le fichier LMHOSTS pointé vers un DC pour obtenir la recherche 20, et définir la priorité pour que LMHOSTS soit le premier endroit à rechercher pour résoudre les noms de netbios.

1
newguy

http://technet.Microsoft.com/en-us/library/cc780950 (v = ws.10) .aspx Cette page mentionne en fait les contrôleurs de domaine et DFSN, si cela vous aide.

Contrôleur de domaine DFS et entrées de registre du serveur racine

Les entrées de registre suivantes se trouvent sous

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dfs 

sur les serveurs racine et les contrôleurs de domaine. Toutes les entrées sont REG_DWORD.

1
Amy

Vous mentionnez que vous avez 20 serveurs DFS mais que vous ne parlez pas si tous les serveurs sont dans la même installation.

Si ces serveurs ne se trouvent pas dans la même installation et que chaque autre site possède son propre domaine, vous pouvez vous assurer que la restauration automatique du client est activée.

0
Ishmael

Pour ceux qui se retrouvent ici grâce à une recherche Google et qui ont le même problème ...

Vérifiez d'abord que tous les liens de votre espace de noms sont disponibles et corrects. C'est ce qui s'est produit dans mon cas, il y avait toujours un lien dans l'espace de noms vers un serveur qui était en panne, donc la longue pause lors de l'ouverture du DNS était parce qu'il cherchait ce serveur et échouait. Une fois que j'ai désactivé ce lien dans DFS, la longue pause a disparu.

0
Bryan