Situation:
L'étrange problème suivant s'est produit sur un serveur de fichiers unique exécutant OmniOS r151018 (95eaa7e) servant des fichiers via SMB aux invités Windows et OS X.
L'enregistrement de certains fichiers (.docx, .xlsx, certaines images) via la fenêtre de dialogue "Enregistrer sous ..." sur un partage SMB entraîne un décalage d'environ 3 à 5 secondes, où l'application ne répond pas du tout, après quoi le le fichier est enregistré normalement.
Le problème s'est produit "pendant la nuit", sans rien faire pour le serveur, mais il est difficile de déterminer la date exacte, car les plaintes des utilisateurs ne sont arrivées que quelque temps après la première occurrence. Après un redémarrage du serveur, un vdev du pool racine en miroir n'était pas disponible, mais une inspection plus approfondie n'a trouvé aucun défaut sur le périphérique et il a été réattaché au pool. Le problème persiste toujours.
Quelques observations:
- Cela se produit sur tous les clients Windows 7
- Cela arrive pour toutes les tailles de fichiers
- Cela se produit sur tous les partages de cette machine, quelles que soient les autorisations
- Cela se produit pour un stockage plus rapide importé sur l'hôte via iSCSI à partir d'un autre serveur
- La vitesse de copie normale est de 110 Mo / s sur GBit Ethernet
- Les données et le pool racine semblent bien
- Cela ne se produit pas sur d'autres serveurs de fichiers
- Cela ne se produit pas lorsque le fichier est enregistré localement, puis copié via l'explorateur
- Cela ne se produit pas sur OS X (ne pouvait le tester qu'avec OpenOffice)
dmesg
montre plusieurs chefs d'accusationNOTICE: bge0: interrupt: flags 0x0 - not updated?
avec différentes valeurs, mais c'était également le cas auparavant et n'a fait aucun mal
Autres idées / plans:
Comme il n'y a pas de message d'erreur clair à trouver, je devrais peut-être faire des essais et des erreurs pour rechercher la cause. Certaines choses que je considérerai (les résultats sont en italique ):
- Remplacer la carte réseau Broadcom par une carte Intel => n'a pas fait de différence
- Remplacez le pool racine par des SSD SATA (actuellement des clés USB à mémoire SLC qui ont bien fonctionné pendant plus de 3 ans) => n'a pas fait de différence
- Vérifiez le réseau entre les deux (matériel, par connexion directe au serveur)
- Capture de trafic avec WireShark: difficile si vous ne savez pas exactement ce que vous recherchez
- Revenir à un environnement / version de démarrage OmniOS précédent pour exclure les conflits logiciels => n'a pas fait de différence
- Annulez les mises à jour Windows / Office pour éliminer les bogues
Supprimer les fichiers avec
:
(deux points) dans les noms de fichiers des instantanés, la suggestion de txgsync sur le fil reddit créé par ewwhite => n'a pas fait de différenceJ'ai vu quelque chose de similaire à cela lorsque la fonctionnalité "versions précédentes" de Windows est activée avec des instantanés automatiques qui incluent un caractère ":". Il suffit de tirer au vent avec cela, mais cela vaut peut-être le coup d'œil, car le caractère ":" n'est pas autorisé dans les noms de fichiers Windows.
Surveillance de l'accès aux fichiers: comme suggéré par shodanshok, j'ai utilisé
DTrace
et ce script pour surveiller l'accès aux fichiers. Je l'ai utilisé lors de l'enregistrement du fichier ouvert déjà lu, supprimé la sortie non liée et les informations personnelles, et le résultat s'articule autour de trois fichiers:CPU ID FUNCTION:NAME 1 18753 fop_open:entry Open: Workbook 0 18181 fop_create:return Create: temp_1 0 18753 fop_open:entry Open: temp_1 0 18753 fop_open:entry Open: Workbook 0 18753 fop_open:entry Open: Workbook 0 18753 fop_open:entry Open: temp_1 0 18888 fop_rename:entry Rename: Workbook -> temp_2 0 18888 fop_rename:entry Rename: temp_1 -> Workbook 0 18753 fop_open:entry Open: Workbook 0 18753 fop_open:entry Open: temp_2 0 18892 fop_remove:entry Remove: temp_2 0 18753 fop_open:entry Open: Workbook 0 18753 fop_open:entry Open: Workbook
La même procédure sur un autre serveur où le problème ne se produit pas donne un résultat similaire:
CPU ID FUNCTION:NAME 1 25182 fop_create:return Create: temp_1 1 25750 fop_open:entry Open: temp_1 1 25750 fop_open:entry Open: Workbook 1 25750 fop_open:entry Open: temp_1 1 25750 fop_open:entry Open: Workbook 1 25750 fop_open:entry Open: temp_1 1 25889 fop_rename:entry Rename: Workbook -> temp_2 1 25889 fop_rename:entry Rename: temp_1 -> Workbook 1 25750 fop_open:entry Open: Workbook 1 25750 fop_open:entry Open: temp_2 1 25893 fop_remove:entry Remove: temp_2 1 25750 fop_open:entry Open: Workbook 1 25750 fop_open:entry Open: Workbook 1 25750 fop_open:entry Open: Workbook
J'ai également ajouté des horodatages (
walltimestamp
) au script, mais dans les deux cas, toutes les opérations sur les fichiers ont lieu à la même seconde. => n'a pas fait de différence- Importez des disques sur un autre hôte pour vérifier si la fragmentation du pool ou les disques sont défectueux => n'a pas fait de différence
- Déplacez les données et le pool racine sur une machine identique pour exclure le câblage, la carte mère, etc. => le problème persiste, il doit donc s'agir du pool racine (logiciel) ou d'un matériel spécifique incompatible avec le logiciel (ou soudainement devenu incompatible. ..)
Pourriez-vous suggérer autre chose qui pourrait être à l'origine de ce comportement? Ou avez-vous vécu quelque chose de similaire? parce que je n'ai rien trouvé d'utile en ligne, je soupçonne qu'il s'agit d'un étrange problème matériel (car il est limité à une seule machine) ou d'un problème avec Windows / Office.