We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

lepsze radzenie sobie z badblockami?


victor
17-11-2013, 23:13
Na serwerach mam np. 2 dyski w md raid 1

Na jednym pojawiają sie back blocki - Current_Pending_Sector = 8

Dysk je realokuje dopiero gdy KIEDYŚ TAM nastąpi zapis do uszkodzonych bloków (albo i nie realokuje tylko się rozmyśli - tak przeważnie jest). Jeśli jednak w międzyczasie padnie drugi dysk to te dane utrace na zawsze.

Załóżmy ze ustaliłem adres popsutych bloków

hdparm /dev/sda –read-sector 1261069669

/dev/sda: Input/Output error

Mogłbym wymusić ich realokację przez

hdparm –write-sector 1261069669 /dev/sda

tyle że zapisuje to zera. Ja bym chciał zapisać to co jest na dysku sdb w raid1

Próbowałem to robić przez dd seek count ale nie wychodziło to mi nigdy - czasami dysk dostawał szału i Current_Pending_Sector rósł do setek albo i tysięcy

Teraz robie to tak że fail-uję sda w macierzy md raid 1 (partycje zawierającą popsute sektory), usuwam sda i dodaje go ponownie. Nie znalazłem nawet wymuszenia resynchronizacji md raid 1 ze wskazaniem źródła do odczytu (czytaj z sdb a nie sda!). Przy czymś takim trace kilka sekund działania w raid1 i powoduje nie potrzebne ogromną ilośc odczytów i zapisów gdy tak naprawdę chce zapisać jeden sektor (zwiększa zużycie dysków, ryzyko awarii, load io na wiele godzin)

Jak sobie radzić z tym lepiej?