Udostępnij za pośrednictwem


Wskazówki dotyczące rozwiązywania problemów z uszkodzeniem danych i błędami dysku

Uszkodzenie danych i błędy dysku obejmują różne obszary, takie jak problemy z uzyskiwaniem dostępu do dysku, uszkodzeniem dysku i niską wydajnością.

Następujące identyfikatory zdarzeń wskazują, że występują uszkodzenia danych lub błąd dysku:

  • Identyfikator zdarzenia 153

    Operacja we/wy na adresie bloku logicznego 123456 dysku 2 została ponowiona.

  • Identyfikator zdarzenia 129

    Wydano polecenie Reset do urządzenia \Device\RaidPort1.

  • Identyfikator zdarzenia 157

    Dysk 2 został usunięty z zaskoczenia.

  • Identyfikator zdarzenia 55

    Struktura systemu plików na dysku jest uszkodzona i bezużyteczna. Uruchom narzędzie chkdsk na woluminie.

  • Identyfikator zdarzenia 98

    Wolumin C: (\Device\HarddiskVolume3) musi zostać przełączony w tryb offline, aby wykonać pełne zadanie Chkdsk. Uruchom polecenie "CHKDSK /F" lokalnie za pośrednictwem wiersza polecenia lub uruchom polecenie "REPAIR-VOLUME <drive:>" lokalnie lub zdalnie za pośrednictwem programu PowerShell.

Lista kontrolna rozwiązywania problemów

Uwaga 16.

W tym artykule opisano polecenia, które należy uruchomić w wierszu polecenia z podwyższonym poziomem uprawnień.

  • W dzienniku zdarzeń systemu wyszukaj ciąg New Technology File System (NTFS) i ostrzeżenia oraz błędy związane z dyskiem. Na przykład zdarzenie o identyfikatorze 55, 153 lub 98.

  • Uruchom polecenie chkdsk /scan i sprawdź wynik.

    Uwaga 16.

    Polecenie chkdsk /scan jest tylko do odczytu.

  • Wykonaj zapytanie dotyczące dysku dla informacji o woluminie specyficznym dla systemu plików NTFS, uruchamiając następujące polecenie:

    fsutil fsinfo ntfsinfo <rootpath>:

    Uwaga 16.

    Symbol zastępczy <rootpath> reprezentuje literę dysku głównego.

  • Uruchom polecenie fsutil dirty query <volumepath>:, aby sprawdzić, czy wolumin jest zanieczyszczony.

    Uwaga 16.

    Symbol zastępczy <volumepath> reprezentuje literę dysku.

    • W przypadku woluminu o systemie plików NTFS uruchom polecenie chkdsk /f /r, jeśli wolumin jest zanieczyszczony. Polecenie chkdsk /F /R wymaga przestoju, ponieważ dysk nie będzie dostępny.

    • W przypadku woluminu o systemie plików ReFS uszkodzenie dysku zostanie naprawione automatycznie.

  • Jeśli użycie narzędzia „chkdsk” nie powoduje naprawienia błędów dysku, wykonaj przywracanie z kopii zapasowej.

  • Uruchom walidację magazynu, aby sprawdzić, czy występują związane z nim błędy.

  • Usuń dyski z klastra i przeprowadź test na poziomie systemu operacyjnego.

  • Użyj polecenia chkdsk /f na wszystkich woluminach, dla których zarejestrowano zdarzenie.

  • Zaktualizuj sterowniki lub oprogramowanie układowe magazynu innych firm.

Jeśli problem występuje nadal, wypróbuj następujące metody:

  • Odinstaluj dowolne oprogramowanie do zarządzania dyskami innych firm (na przykład Diskeeper).

  • Usuń lub zaktualizuj sterowniki filtrów.

  • Skontaktuj się z dostawcą sprzętu i uruchom diagnostykę, aby upewnić się, że problemy nie dotyczą sprzętu.

  • Skontaktuj się z dostawcą magazynu, aby sprawdzić konfigurację wielościeżkową.

  • Zaktualizuj port SCSI lub sterowniki kontrolera RAID.

  • Przełączanie do różnych typów sterowników. Na przykład sterowników kontrolera RAID lub sterowników monolitycznych.

  • Zaktualizuj sterowniki adaptera HBA (Host Bud Adapter).

  • Zaktualizuj sterowniki wielościeżkowe modułów specyficznych dla urządzenia (DSM).

  • Zaktualizuj oprogramowanie układowe HBA.

Rozwiązywanie problemów ze zdarzeniem o identyfikatorze 153

Identyfikator zdarzenia 153 wskazuje, że występuje błąd podsystemu magazynowania. Identyfikator zdarzenia 153 jest podobny do identyfikatora zdarzenia 129. Różnica polega na tym, że identyfikator zdarzenia 129 jest rejestrowany, gdy sterownik Storport przekroczy limit czasu żądania do dysku, a identyfikator zdarzenia 153 dotyczy przekroczenia limitu czasu żądania sterownika miniportu Storport. Sterownik miniportu może być również określany jako sterownik adaptera lub sterownik HBA, który jest zwykle zapisywany przez dostawcę sprzętu.

Jeśli jest rejestrowany identyfikator zdarzenia 153 lub zdarzenie o identyfikatorze 129, limit czasu operacji we/wy dysku jest najczęstszą przyczyną, ponieważ kontroler magazynu nie może obsłużyć obciążenia. W takim przypadku upłynął limit czasu operacji we/wy, a sterownik miniportu (od dostawcy) wysyła komunikaty z powrotem do sterownika Storport (ostatni sterownik magazynu firmy Microsoft w stosie). Następnie sterownik Storport tłumaczy informacje i rejestruje zdarzenie w Podgląd zdarzeń.

Ponieważ sterownik miniportu ma wystarczającą wiedzę na temat środowiska wykonywania żądania, niektóre sterowniki miniportu czas żądania zamiast zezwalać sterownikowi Storport na obsługę chronometrażu żądań. Sterownik miniportu może przerwać pojedyncze żądanie i zwrócić błąd, podczas gdy sterownik Storport resetuje dysk po przekroczeniu limitu czasu. Zresetowanie dysku jest destrukcyjne dla podsystemu we/wy i może nie być konieczne, jeśli przekroczono limit czasu tylko jednego żądania. Sterownik miniportu zwraca błąd do sterownika klasy, który rejestruje zdarzenie o identyfikatorze 153 i ponawia próbę żądania.

Oto przykład zdarzenia o identyfikatorze 153:

Log Name: System
Source: disk
Event ID: 153
Level: Warning
Description: The IO operation at logical block address 123456 for Disk 2 was retried.

To zdarzenie wskazuje, że żądanie nie powiodło się i zostało ponowione przez sterownik klasy. W tej sytuacji nie zarejestrowano żadnego komunikatu o błędzie, ponieważ sterownik Storport nie upłynął limitu czasu żądania. Brak komunikatów spowodował zamieszanie podczas rozwiązywania problemów z błędami dysku, ponieważ nie było dowodów na błąd.

Na karcie Szczegóły dziennika zdarzeń szczegółowe informacje pokazują błąd, który spowodował ponowienie próby i czy żądanie było żądaniem odczytu lub zapisu. Na przykład:

0000: 0004010F 002C0003 00000000 80040099
0010: 00000000 00000000 00000000 00000000
0020: 00000000 00000000 28090000

in bytes

0000: 0F 01 04 00 03 00 2C 00 ......,.
0008: 00 00 00 00 99 00 04 80 ......
0010: 00 00 00 00 00 00 00 00 ........
0018: 00 00 00 00 00 00 00 00 ........
0020: 00 00 00 00 00 00 00 00 ........
0028: 00 00 09 28             ...*

W tym przykładzie przesunięcie 29 bajtu pokazuje stan SCSI, przesunięcie 30 bajtu pokazuje stan bloku żądań SCSI (SRB), który spowodował ponowienie próby, a przesunięcie 31 bajtu pokazuje polecenie SCSI, które jest ponawiane. W takim przypadku stan SCSI to (), stan SRB to 00 09 (SRB_STATUS_TIMEOUT), a polecenie SCSI to 28 (SCSIOP_READ).SCSISTAT_GOOD

Poniżej przedstawiono najbardziej typowe polecenia SCSI:

SCSIOP_READ - 0x28
SCSIOP_WRITE - 0x2A

Aby uzyskać listę operacji i stanów SCSI, zobacz scsi.h .

Poniżej przedstawiono najbardziej typowe stany SRB:

SRB_STATUS_TIMEOUT - 0x09
SRB_STATUS_BUS_RESET - 0x0E
SRB_STATUS_COMMAND_TIMEOUT - 0x0B

Zobacz srb.h , aby uzyskać listę stanów SRB.

Uwaga 16.

  • Błędy przekroczenia limitu czasu (SRB_STATUS_TIMEOUT lub SRB_STATUS_COMMAND_TIMEOUT) wskazują, że w adapterze przekroczono limit czasu żądania. Żądanie zostało wysłane do dysku i nie było odpowiedzi w okresie przekroczenia limitu czasu.

  • Błąd resetowania magistrali (SRB_STATUS_BUS_RESET) wskazuje, że urządzenie zostało zresetowane, a żądanie jest ponawiane z powodu resetowania, ponieważ wszystkie niekompletne żądania zostaną przerwane po odebraniu zresetowania dysku.

Administrator musi zweryfikować kondycję podsystemu dysków. Chociaż sporadyczne przekroczenie limitu czasu może być częścią normalnego działania systemu, częste żądania ponawiania wskazują na problem z wydajnością magazynu, który należy rozwiązać.

Więcej informacji

Ponieważ problem jest zwykle poza systemem operacyjnym, sprawdź następujące typowe przyczyny:

  • Skonfigurowano pewien typ ograniczania przepustowości, taki jak ograniczenia we/wy. Czasami kontrola we/wy magazynu w programie VMware powoduje ten problem.

  • Zbyt wiele dysków o dużym obciążeniu jest na tym samym kontrolerze magazynu. W związku z tym dyski muszą być podzielone między różne kontrolery.

  • Jeśli skonfigurowano wielościeżkowe we/wy (MPIO), pojedynczy lub uszkodzona karta sieciowa mogą powodować problemy z interfejsem iSCSI.

Rozwiązywanie problemów z zdarzeniem o identyfikatorze 129

Identyfikator zdarzenia 129 jest rejestrowany wraz z nazwą sterownika adaptera magazynu (HBA) jako źródła. Sterownik Storport (Storport.sys) rejestruje to zdarzenie po wykryciu przekroczenia limitu czasu żądania. Nazwa sterownika HBA jest używana w zdarzeniu, ponieważ jest to sterownik miniportu skojarzony z sterownikiem Storport.

Oto przykład zdarzenia o identyfikatorze 129:

Event Type:       Warning
Event Source:     <HBA_Name>
Event Category:   None
Event ID:         129
Computer:         <Computer_Name>
Description: Reset to device, \Device\RaidPort1, was issued.

Informacje o architekturze stosu we/wy systemu Windows

Operacja we/wy systemu Windows używa architektury warstwowej, w której sterowniki urządzeń znajdują się w stosie urządzeń. W modelu podstawowym na wierzchu stosu znajduje się system plików. Następnym jest menedżer woluminów, a następnie sterownik dysku. Sterowniki portów i miniportów znajdują się w dolnej części stosu urządzenia. Gdy żądanie We/Wy dociera do systemu plików, pobiera on numer bloku pliku i przeprowadza jego translację na przesunięcie w woluminie. Następnie menedżer woluminów tłumaczy przesunięcie woluminu na numer bloku na dysku i przekazuje żądanie do sterownika dysku. Gdy żądanie osiągnie sterownik dysku, utworzy blok deskryptora poleceń (CDB) i wyśle go do urządzenia SCSI. Sterownik dysku osadza sieć CDB w strukturze SCSI_REQUEST_BLOCK (SRB). Ten blok SRB jest wysyłany do sterownika portu w ramach pakietu żądania We/Wy (IRP).

Sterownik portu wykonuje większość pracy podczas przetwarzania żądania. Istnieją różne sterowniki portów w zależności od architektury. Na przykład sterownik portu usługi ATA (Ataport.sys) i sterownik portu SCSI (Storport.sys). Oto kilka obowiązków sterownika portu:

  • Zapewnianie usług chronometrażu dla żądań

  • Wymuszanie głębokości kolejki w celu upewnienia się, że urządzenie nie ma większej liczby żądań niż może obsłużyć

  • Kompilowanie tablic "punktowych" i "zbieraj" dla danych

Sterownik portu interfejsy z sterownikiem miniportu, a sterownik miniportu jest zaprojektowany przez dostawcę sprzętu do pracy z określoną kartą. Odpowiada za odbieranie żądań ze sterownika portu i wysyłanie ich do docelowego numeru jednostki logicznej (LUN). Sterownik portu wywołuje HwStorStartIo() funkcję w celu wysyłania żądań do sterownika miniportu, a sterownik miniportu wyśle żądania do sterownika KARTY HBA, aby można było wysłać je za pośrednictwem nośnika fizycznego (Fibre lub Ethernet) do jednostki LUN. Po zakończeniu żądania sterownik miniportu wywoła StorPortNotification() funkcję z NotificationType parametrem z wartością ustawioną na RequestComplete, wraz ze wskaźnikiem do ukończonego SRB.

Gdy żądanie zostanie wysłane do sterownika miniportu, sterownik Storport umieści żądanie w oczekującej kolejce i zostanie przekroczony limit czasu. Po zakończeniu żądania zostanie ono usunięte z tej kolejki.

Mechanizm chronometrażu jest prosty. Istnieje jeden czasomierz na jednostkę logiczną i jest inicjowany na -1. Gdy pierwsze żądanie jest wysyłane do sterownika miniportu, czasomierz jest ustawiony na wartość limitu czasu w SRB. Wartość limitu czasu dysku jest parametrem dostrajania znajdującym się pod następującym kluczem rejestru:

HKLM\System\CurrentControlSet\Services\Disk\TimeOutValue

Niektórzy dostawcy sprzętu dostosują tę wartość, aby najlepiej dopasować ich sprzęt. Nie zmieniaj tej wartości bez wskazówek od dostawcy magazynu.

Czasomierz jest zmniejszany raz na sekundę. Po zakończeniu żądania czasomierz jest odświeżany z wartością limitu czasu żądania głównego w oczekującej kolejce. W związku z tym czasomierz nigdy nie przejdzie do zera, o ile żądania zostaną ukończone. Jeśli czasomierz przejdzie do zera, oznacza to, że urządzenie przestało odpowiadać. Na przykład gdy sterownik Storport rejestruje zdarzenie o identyfikatorze 129, sterownik Storport musi podjąć działania naprawcze, próbując zresetować jednostkę. Po zresetowaniu lekcji wszystkie niekompletne żądania są wykonywane z błędem i są one ponawiane. Po wyczyszczonej kolejce oczekujące czasomierz jest ustawiony na -1wartość , która jest wartością początkową.

Każdy blok SRB ma ustawioną wartość czasomierza. Po zakończeniu żądań czasomierz kolejki jest odświeżany z wartością limitu czasu usługi SRB na początku listy.

Najczęstsze przyczyny zdarzenia o identyfikatorze 129 to nieodpowiadające lun lub porzucone żądanie. Porzucone żądania mogą być spowodowane przez uszkodzone routery lub inne problemy sprzętowe w sieci magazynowania (SAN).

Rozwiązywanie problemów ze zdarzeniem o identyfikatorze 157

To zdarzenie wskazuje, że sterownik Classpnp.sys otrzymał żądanie usunięcia niespodziewanego od menedżera plug and play (PNP) dla dysku wymiennego.

Ten problem występuje najczęściej, gdy coś zakłóca komunikację systemu z dyskiem, na przykład błąd sieci szkieletowej SIECI SAN lub problem z magistralą SCSI. Błędy mogą być również spowodowane przez dysk, który ulegnie awarii lub gdy użytkownik odłączy dysk podczas działania systemu. W takim przypadku administrator musi zweryfikować ciepło podsystemu dysków.

Rozwiązywanie problemów z identyfikatorem zdarzenia 55 i 98

Jeśli są rejestrowane zdarzenia NTFS, takie jak zdarzenie o identyfikatorze 55, 50, 140 i 98, należy uruchomić narzędzie "chkdsk".

Ponieważ system plików NTFS nie może zapisywać danych w dzienniku transakcji, może to mieć wpływ na zdolność NTFS do zatrzymywania lub wycofywania operacji, w których nie da się zapisać danych transakcji.

Oto przykład zdarzenia o identyfikatorze 55:

Event Type: Error
Event Source: NTFS
Event ID: 55
Description: The file system structure on the disk is corrupt and unusable. Please run the chkdsk utility on the volume.

Zazwyczaj zdarzenie o identyfikatorze 55 jest rejestrowane po wystąpieniu uszkodzenia systemu plików. Uszkodzenie systemu plików występuje, gdy wystąpi co najmniej jeden z następujących problemów:

  • Dysk ma złe sektory.

  • Żądania we/wy dostarczane przez system plików do podsystemu dysków nie są zakończone pomyślnie.

Większość problemów dotyczy sprzętu, a sprzęt może być nieoczekiwanie uszkodzony. Aby rozwiązać problemy, możesz wypróbować następujące metody:

  • Zaktualizuj port SCSI lub sterowniki kontrolera RAID.

  • Usuń lub zaktualizuj sterowniki filtrów.

  • Zaktualizuj sterowniki lub oprogramowanie układowe magazynu innych firm.

  • Przełączanie do różnych typów sterowników. Na przykład sterowników kontrolera RAID lub sterowników monolitycznych.

  • Zmień rozmieszczenie sprzętu na różne kombinacje.

Zastrzeżenie dotyczące innych firm

Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.