Rozwiązywanie problemów z usługą ClientOtherErrors w Azure Files

W tym artykule wymieniono elementy ClientOtherErrors, które mogą wystąpić podczas korzystania z udziałów plików platformy Azure SMB. Ogólnie rzecz biorąc, ClientOtherErrors są w większości nieszkodliwe i oczekiwane błędy. Żądania nie powiodły się, ale system nadal zachowuje się zgodnie z oczekiwaniami. To normalne, że zarejestrowano znaczną ilość tych błędów.

Informacje zawarte w tym artykule dotyczą

Typ udziału plików SMB NFS
Standardowe udziały plików (GPv2), LRS/ZRS
Standardowe udziały plików (GPv2), GRS/GZRS
Udziały plików Premium (FileStorage), LRS/ZRS

Co to są ClientOtherErrors?

ClientOtherError zwykle oznacza oczekiwane błędy po stronie klienta, takie jak "nie znaleziono" i "zasób już istnieje". W plikach dziennika magazynu po stronie serwera te operacje są rejestrowane ze stanem transakcji ClientOtherErrors.

Na przykład klient SMB systemu Windows, który współdziała ze zdalnymi systemami plików, nie zawsze zna możliwości zdalnego systemu plików. Może to być system Windows Server, Azure Files lub inna implementacja serwera SMB. W związku z tym klient SMB będzie wykonywać wywołania zdalnego serwera plików przy użyciu niektórych interfejsów API. Jeśli te interfejsy API nie powiodą się, wróci do używania innego interfejsu API, a nawet po prostu zignoruje te błędy. W zależności od protokołu żądania/odpowiedzi protokołu SMB oczekuje się, że duża liczba żądań zakończy się niepowodzeniem, mimo że system działał poprawnie. Może to być spowodowane błędami autoryzacji, próbami utworzenia pliku o już istniejącej nazwie lub próbą otwarcia nieistniejącego pliku.

Rejestrowanie i raportowanie

Aby rozwiązać problemy z usługą ClientOtherErrors, możesz utworzyć ustawienie diagnostyczne i użyć usługi Azure Monitor do raportowania. Można również analizować dzienniki , aby wyświetlić żądania zakończone niepowodzeniem, w tym ClientOtherErrors, lub użyć zapytań Kusto.

Możesz również zebrać ślad ProcMon od klienta, który jest zgodny z adresem IP wyświetlanym w dziennikach. Dodaj filtr, aby wyświetlić tylko ruch do Azure Files.

Common ClientOtherErrors

W poniższej tabeli wymieniono typowe elementy ClientOtherErrors wraz z wyjaśnieniem każdego błędu.

Operacja Stan Wyjaśnienie błędu
QueryFullEaInformation STATUS_NOT_IMPLEMENTED Ten błąd jest zwracany, ponieważ Azure Files nie implementuje tego interfejsu API. Azure Files obecnie nie obsługuje atrybutów rozszerzonych.
UnknownFileClass=48 STATUS_NOT_SUPPORTED Jest to wywołanie interfejsu FileNormalizedNameInformation API. Jest to nowa obsługa systemu Windows Server i obecnie Azure Files nie obsługuje tego interfejsu API.
Fileopen 492 STATUS_ACCESS_DENIED Obiekt wywołujący nie ma wymaganych uprawnień do otwierania pliku. W przypadku dostępu protokołu Kerberos lista ACL nie zezwala na dostęp obiektu wywołującego.
Fileopen 257 STATUS_OBJECT_NAME_INVALID Ścieżka otwartego żądania jest nieprawidłowa (na przykład ścieżka jest zbyt długa lub zbyt głęboka).
Fileopen 12 STATUS_FILE_IS_ADIRECTORY Obiekt wywołujący otwiera katalog bez używania prawidłowych CreateFile parametrów (na przykład intencji kopii zapasowej).
Fileopen 8 STATUS_SHARING_VIOLATION Obiekt wywołujący otwiera plik, który został już otwarty z ograniczeniami (na przykład wyłączność lub inne mogą tylko czytać).
Fileopen 6 STATUS_OBJECT_NAME_NOT_FOUND Obiekt wywołujący otwiera plik, który nie istnieje.
FSCTL_QUERY_NETWORK_INTERFACE_INFO (IOCTL) STATUS_INVALID_DEVICE_REQUEST Jest to używane tylko w przypadku Azure Files, gdy klienci włączyli funkcję wielokanałową. W innych przypadkach nie jest to konieczne i zwracamy nieprawidłowe żądanie urządzenia w przypadku zapytania od klienta.
QueryStreamInformation STATUS_NOT_IMPLEMENTED Niektóre systemy plików mają koncepcję alternatywnych strumieni danych lub innych strumieni, takich jak strumień punktów ponownej analizy. Azure Files nie ma tego pojęcia, więc nie obsługujemy interfejsu API.
Nieoczekiwane (IOCTL) STATUS_INVALID_DEVICE_REQUEST FSCTL_QUERY_FILE_REGIONSJest to koncepcja regionu, która jest specyficzna dla systemu plików NTFS/refs i nie ma sensu w odniesieniu do Azure Files. Dlatego nie implementujemy tego kodu FSCTL.
ChangeNotify STATUS_CANCELLED Aplikacje takie jak Eksplorator usługi Windows Shell subskrybują powiadomienia o zmianach plików. W ten sposób po zmianie właściwości pliku Eksplorator usługi Windows Shell automatycznie aktualizuje w widoku. Klient może anulować tę subskrypcję (na przykład jeśli użytkownik zmienił widoki w Eksploratorze i nie jest już potrzebny). W takim przypadku wysyłamy STATUS_CANCELLED z powrotem do klienta, aby potwierdzić, że subskrypcja została anulowana.
FSCTL_DFS_GET_REFERRALS (IOCTL) STATUS_FS_DRIVER_REQUIRED Jest to żądanie skierowania systemu plików DFS. Azure Files nie obsługuje systemu plików DFS i jest to prawidłowy stan do zwrócenia, gdy system nie obsługuje systemu plików DFS.
FileSupersede STATUS_ACCESS_DENIED Zastępowanie pliku to operacja, w której istniejący plik jest usuwany i nowy plik jest umieszczany na jego miejscu. Jeśli obiekt wywołujący nie ma uprawnień do usunięcia istniejącego pliku, wywołanie zakończy się niepowodzeniem.
FileCreate 7 STATUS_OBJECT_NAME_INVALID Dzieje się tak, gdy żądanie utworzenia nowego pliku ma nieprawidłową żądaną nazwę (na przykład przy użyciu nieobsługiwanych znaków).
FileCreate 3 STATUS_OBJECT_NAME_COLLISION Dzieje się tak, gdy żądanie utworzenia nowego pliku ma żądaną nazwę zgodną z istniejącym plikiem.
Odczyt STATUS_ACCESS_DENIED Dzieje się tak, gdy żądanie odczytu jest wykonywane w pliku z uchwytem, który nie ma przyznanego dostępu do odczytu (na przykład plik został otwarty z żądanym dostępem do zapisu).
TreeConnect STATUS_ACCESS_DENIED W kontekście uwierzytelniania Kerberos obiekt wywołujący nie ma uprawnień na poziomie udziału przypisanych za pośrednictwem kontroli dostępu opartej na rolach ani funkcji "Domyślne uprawnienia udziału". Jeśli nie ustawiono funkcji "Domyślne uprawnienia udostępniania", osoby wywołujące będące tożsamościami komputerów będą stale uzyskiwać ten błąd dostępu w udziale.

Zobacz też

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.