Mam następujący problem z partycją RAID1 z oprogramowaniem RAID1 w moim systemie Ubuntu (10.04 LTS, 2.6.32-24-serwer, jeśli ma to znaczenie).
Jeden z moich dysków (sdb5) zgłosił błędy we / wy i dlatego został oznaczony jako uszkodzony w tablicy. Tablica została następnie zdegradowana za pomocą jednego aktywnego urządzenia. Dlatego wymieniłem twardy dysk, sklonowałem tabelę partycji i dodałem wszystkie nowe partycje do moich tablic rajdowych. Po zsynchronizowaniu wszystkie partycje skończyły się dobrze, mając 2 aktywne urządzenia - z wyjątkiem jednego z nich. Partycja, która wcześniej zgłosiła wadliwy dysk, nie zawierała jednak nowej partycji jako aktywnego urządzenia, ale jako dysk zapasowy:
md3 : active raid1 sdb5[2] sda5[1]
4881344 blocks [2/1] [_U]
Szczegółowy wygląd ujawnia:
root@server:~# mdadm --detail /dev/md3
[...]
Number Major Minor RaidDevice State
2 8 21 0 spare rebuilding /dev/sdb5
1 8 5 1 active sync /dev/sda5
Oto pytanie: jak powiedzieć mojemu nalotowi, aby zmienił zapasowy dysk w aktywny? I dlaczego został dodany jako urządzenie zapasowe? Odtworzenie lub ponowne złożenie tablicy nie jest opcją, ponieważ jest to moja partycja root. I nie mogę znaleźć żadnych wskazówek na ten temat w Software Raid HOWTO.
Każda pomoc będzie mile widziana.
Aktualne rozwiązanie
Znalazłem rozwiązanie mojego problemu, ale nie jestem pewien, czy tak właśnie jest. Po bliższym przyjrzeniu się mojemu nalotowi odkryłem, że sdb5 zawsze był wymieniony jako urządzenie zapasowe:
mdadm --examine /dev/sdb5
[...]
Number Major Minor RaidDevice State
this 2 8 21 2 spare /dev/sdb5
0 0 0 0 0 removed
1 1 8 5 1 active sync /dev/sda5
2 2 8 21 2 spare /dev/sdb5
więc odczytywanie urządzenia sdb5 do tablicy md3 zawsze kończyło się dodaniem urządzenia jako zapasowego.
W końcu właśnie odtworzyłem tablicę
mdadm --create /dev/md3 --level=1 -n2 -x0 /dev/sda5 /dev/sdb5
który zadziałał.
Pytanie pozostaje jednak otwarte: czy istnieje lepszy sposób na manipulowanie podsumowaniami w superbloku i nakazanie tablicy zamiany sdb5 z dysku zapasowego na dysk aktywny? Nadal jestem ciekawa odpowiedzi.
Odpowiedzi:
Daniel: Na początku dwukrotnie sprawdź, czy część zapasowa jest zintegrowana z tablicą, wykonując:
który powinien zgłosić, czy trwa proces kompilacji i jak długo oczekiwać.
Jeśli nie ma budynku, spróbuj wykonać następujące czynności
I zgłoś, jak to działa dla Ciebie. Więcej informacji można znaleźć na stronie http://linux.die.net/man/8/mdadm .
źródło
Całkiem późno, ale zrobienie tego po prostu uruchomiłoby zapasowy dysk:
Jak mówi strona podręcznika:
źródło
Z tego, co pamiętam, kiedy miałem ten problem (z innego powodu) musiałem użyć opcji --grow, aby ponownie dodać dysk zapasowy „poprawnie” (również usuwając błąd).
Coś takiego (sprawdź w dokumentacji!):
mdadm --grow --level = wadliwy --layout = flush / dev / sdb5
Następnie możesz dodać urządzenie i powinno zostać rozpoznane.
Problem polega na tym, że sterownik md zapisuje status każdej partycji w danych rozruchowych dysków. Więc nawet po ponownym uruchomieniu zna status i unika partycji oznaczonych jako wadliwe.
źródło