Cześć!
Witam wszystkich jako nowy użytkownik, to mój pierwszy post.
Oczywiście trafiłem tutaj poprzez niedawną awarię jednego z dysków w macierzy.
Mam kompa opartego na Fedorze 9, który pełni rolę routera.
Są w nim 3 dyski działające w programowym RAID1 stworzonym w mdadm (ja nie budowałem niestety tego systemu, więc podchodzę ostrożnie na każdym kroku).
Niedawno jeden z dysków padł. Powoli przygotowuję się do jego wymiany.
Czy ta (http://www.kernelhardware.org/replacing-failed-raid-drive) instrukcja znajdzie zastosowanie w moim przypadku?
Wynik z mdstat:
Personalities : [raid1] [raid6] [raid5] [raid4]
md2 : active raid1 sdb4[0] sda3[2] sdc4[1]
8289472 blocks [3/3] [UUU]
md0 : active raid1 sdb1[0] sda1[2] sdc1[1]
497856 blocks [3/3] [UUU]
md1 : active raid1 sdb2[0] sda2[2] sdc2[1](F)
9775488 blocks [3/2] [U_U]
unused devices:
Macie może jakieś porady w kwestii tej wymiany dla początkującego linuksowca? Jak maksymalnie zredukować ryzyko niepowodzenia, a co gorsza unieruchomienia całego routera? Jak zrobić obraz całego systemu, aby mieć w razie czego możliwość powrotu do działającej konfiguracji?
Pozdrawiam!
Generalnie przepis jest OK.
Wklej wynik takich poleceń:
# fdisk -l /dev/sd[a-c]
# mount
# mdadm -D /dev/md1
i na razie się zatrzymaj.
Potem będzie tak:
W tej chwili nie wiem, czy [U_U] oznacza, że padł drugi dysk z listy (czyli sda2) czy też (F) oznacza, że padł trzeci dysk z listy (czyli sdc2). Ale mdadm -D z listy powyżej powinno powiedzieć szczegółowo, co i jak.
Jak już się ustali (nazwijmy go sdX), to:
* Póki dysk jeszcze dycha, zrzuć z niego tablicę partycji na pendrive: sfdisk -d /dev/sdX > /mnt/pendrive/partycjaX.bak
* Po kolei w każdym md0-md2 zaznacz partycję z dysku uszkodzonego jako faulty (co wstawić z X, Y i N wyniknie z mdadm -D /dev/md1): mdadm --manage /dev/mdY --fail /dev/sdXN
* Po kolei z każdego md0-md2 odłącz uszkodzoną partycję: mdadm --manage /dev/mdY --remove /dev/sdXN
W tym momencie mdstat powinien wykazać wszystkie dyski jako [UU], czyli RAID1 z 2 dysków.
Jeżeli GRUB i /boot są prawidłowo zrobione, to komputer w tym stanie powinien dać się wyłączyć i włączyć (ALE niepokoi mnie to, że na sda jest inny układ partycji, niż na sdb i sdc. Dlatego proszę o wynik fdiska i mounta)
* Po wyłączeniu komputera wywalasz dysk uszkodzony i w to miejsce wkładasz nowy
* Weryfikujesz fdisk -l /dev/sd[a-c], że litery dysków się nie poprzestawiały
* Odtwarzasz tablicę partycji z pendrive: sfdisk /dev/sdX < /mnt/pendrive/partycjaX.bak
* Podłączasz partycje z nowego dysku z powrotem do kolejnych macierzy md0-md2: mdadm --manage /dev/mdY --add /dev/sdXN
* Jak zrobisz watch cat /proc/mdstat, powinieneś zobaczyć pasek postępu odbudowy macierzy.
A co do zrobienia obrazu systemu: ciężko zrobić poprawny zrzut działającego systemu z poziomu samego siebie. Możesz ewentualnie zrobić tak:
* W katalogu /mnt zrób katalogi src i dst.
* Zamontuj odpowiednio duży dysk wymienny w katalogu /mnt/dst
* Do katalogu /mnt/src zamontuj po kolei każdy filesystem, który chcesz zarchiwizować (przez mount --bind _ŚCIEŻKA_DO_FILESYSTEMU_ /mnt/src -o ro, zarchiwizuj go TAR-em na dysk wymienny, np tar -czvf /mnt/dst/FILESYSTEM.tar.gz -C /mnt/src . i odmontuj umount /mnt/src. Trik z --bind powoduje, że w /mnt/src będzie "goły" filesystem, bez zamontowanych w nim podystemów. Czyli jak tak zamontujesz główny katalog /, to w /mnt/src będzie "goły" główny system, z oryginalnym /dev (pustym albo ze statycznymi urządzeniami), pustym /proc i /sys itd. W ten sposób zrzucisz system w postaci takiej, że później np z systemrescuecd będziesz mógł go w pełni odtworzyć. Które systemy musisz tak pozrzucać wynika z wyniku polecenia mount z pierwszego punktu.
pkraszewski, bardzo dziękuję za zainteresowanie i obszerną odpowiedź!
Poniżej wklejam poszczególnie wyniki komend, które mi zaproponowałeś.
fdisk -l /dev/sd[a-c]
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x5b0844f0
Device Boot Start End Blocks Id System
/dev/sda1 1 62 497983+ 83 Linux
/dev/sda2 63 1279 9775552+ 83 Linux
/dev/sda3 1280 2311 8289540 83 Linux
Disk /dev/sdb: 20.0 GB, 20020396032 bytes
255 heads, 63 sectors/track, 2434 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x1c477b71
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
/dev/sdb2 63 1279 9775552+ 83 Linux
/dev/sdb3 1280 1402 987997+ 82 Linux swap / Solaris
/dev/sdb4 1403 2434 8289540 83 Linux
Disk /dev/sdc: 20.4 GB, 20416757760 bytes
255 heads, 63 sectors/track, 2482 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xb89bb89b
Device Boot Start End Blocks Id System
/dev/sdc1 1 62 497983+ 83 Linux
/dev/sdc2 63 1279 9775552+ 83 Linux
/dev/sdc3 1280 1402 987997+ 82 Linux swap / Solaris
/dev/sdc4 1403 2434 8289540 83 Linux
mount
/dev/md1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/md2 on /home type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
mdadm -D /dev/md1
/dev/md1:
Version : 0.90
Creation Time : Thu Mar 1 14:22:22 2012
Raid Level : raid1
Array Size : 9775488 (9.32 GiB 10.01 GB)
Used Dev Size : 9775488 (9.32 GiB 10.01 GB)
Raid Devices : 3
Total Devices : 2
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Thu Jan 8 10:23:29 2015
State : clean, degraded
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
UUID : 1b209232:d9818580:b58f738b:7d38242c
Events : 0.2185222
Number Major Minor RaidDevice State
0 8 18 0 active sync /dev/sdb2
1 0 0 1 removed
2 8 2 2 active sync /dev/sda2
Mam nadzieję, że da to lepszy obraz sytuacji.
Pozdrawiam!
Dobra, czyli padł SDC, /boot wygląda na to, że jest na /dev/md0 i nie jest zamontowany.
UWAGA! - czy jesteś pewien uszkodzenia tego dysku? On jest "removed" a nie "failed". Może wystarczy go na nowo podłączyć przez mdadm --manage /dev/md1 --add /dev/sdc2?
Jeżeli jesteś pewien uszkodzenia, to jedziemy dalej:
Jak masz już nowy dysk, to go na wszelki wypadek wyczyść (w każdym razie pierwszy cylinder), żeby nie było fuckupu przy odtwarzaniu.
1. Na pozostałych elementach macierzy "zbrickuj" i odłącz pozostałe partycje sdc:
mdadm --manage /dev/md0 --fail /dev/sdc1
mdadm --manage /dev/md0 --remove /dev/sdc1
mdadm --manage /dev/md2 --fail /dev/sdc4
mdadm --manage /dev/md2 --remove /dev/sdc4
swapoff /dev/sdc3
(ostatnie może się nie udać - w zależności od tego czy swap na sdc3 był aktywny - nie przejmuj się tym)
Następnie wyłącz maszynę i podmień SDC na nowy i włącz maszynę. Powinna się podnieść plusminus marudzenie, że nie ma drugiego swapa.
Następnie zrób fdisk -l. Upewnij się, że na sda i sdb są partycje a sdc jest pusty (dlatego prosiłem o skasowanie MBRa nowego dysku sdc przez założeniem).
Następnie skopiuj początek sdb na sdc (odtworzy to tablicę partycji i GRUB-a na sdc) i każ kernelowi zaczytać nowy układ:
dd if=/dev/sdb of=/dev/sdc count=63
echo w | fdisk /dev/sdc
Następnie podłącz partycje do macierzy i odtwórz SWAP-a:
mdadm --manage /dev/md0 --add /dev/sdc1
mdadm --manage /dev/md1 --add /dev/sdc2
mdadm --manage /dev/md2 --add /dev/sdc4
mkswap /dev/sdc3
Na koniec sprawdź, czy/jak się odtwarza:
Polecam zrobienie wszystkiego powyższego z poziomu dystrybucji LiveCD o nazwie SysRescCD (http://www.sysresccd.org/SystemRescueCd_Homepage). Będzie bezpieczniej, ale musisz sprawdzić, czy nie pozmieniały się przypisania /dev/mdXX - to czasami zależy od kernela. U mnie w systemie np macierz to /dev/md0 ale już w RescCD to /dev/md127... Wystarczy sprawdzić w /proc/mdstat jak to wygląda z poziomu LiveCD.
Dzięki, zrobię w jakiś piątek wieczorem.
Mam pytanie dotyczące podanej przez Ciebie komendy [mdadm --manage /dev/md1 --add /dev/sdc2]
Jak rozumiem dodaje ona partycję sdc2?
Kiedy dysk zaczął padać dostałem 3 maile od procesu mdadm w odstępie kilku dni.
Pozwolę sobie przekleić ich treść:
This is an automatically generated mail message from mdadm
running on ruter
A Fail event had been detected on md device /dev/md1.
It could be related to component device /dev/sdc2.
Faithfully yours, etc.
P.S. The /proc/mdstat file currently contains the following:
Personalities : [raid1] [raid6] [raid5] [raid4]
md2 : active raid1 sdb4[0] sda3[2] sdc4[1]
8289472 blocks [3/3] [UUU]
md0 : active raid1 sdb1[0] sda1[2] sdc1[1]
497856 blocks [3/3] [UUU]
md1 : active raid1 sdb2[0] sda2[2] sdc2[1](F)
9775488 blocks [3/2] [U_U]
unused devices:
This is an automatically generated mail message from mdadm
running on ruter
A Fail event had been detected on md device /dev/md2.
It could be related to component device /dev/sdc4.
Faithfully yours, etc.
P.S. The /proc/mdstat file currently contains the following:
Personalities : [raid1] [raid6] [raid5] [raid4]
md2 : active raid1 sdb4[0] sda3[2] sdc4[1](F)
8289472 blocks [3/2] [U_U]
md0 : active raid1 sdb1[0] sda1[2] sdc1[1]
497856 blocks [3/3] [UUU]
md1 : active raid1 sdb2[0] sda2[2] sdc2[3](F)
9775488 blocks [3/2] [U_U]
unused devices:
This is an automatically generated mail message from mdadm
running on ruter
A Fail event had been detected on md device /dev/md0.
It could be related to component device /dev/sdc1.
Faithfully yours, etc.
P.S. The /proc/mdstat file currently contains the following:
Personalities : [raid1] [raid6] [raid5] [raid4]
md2 : active raid1 sdb4[0] sda3[2] sdc4[3](F)
8289472 blocks [3/2] [U_U]
md0 : active raid1 sdb1[0] sda1[2] sdc1[3](F)
497856 blocks [3/2] [U_U]
md1 : active raid1 sdb2[0] sda2[2] sdc2[3](F)
9775488 blocks [3/2] [U_U]
unused devices:
Czy nie powinienem wykonać polecenia również dla sdc1 i sdc4?
Przy okazji, kiedy już wymienię/podłączę na nowo felerny dysk, to mogę do tej macierzy dołożyć jeszcze jeden dysk?
Dziękuję i pozdrawiam!
Witam po niemal roku przerwy, najlepsze życzenia na Nowy Rok dla wszystkich!
Powracam w kwestii rozpoczętego wątku.
W końcu pomiędzy Świętami, a Sylwestrem postanowiłem wziąć się za wymianę dysku, który sprawiał problemy.
Przed rozpoczęciem jakichkolwiek działań postanowiłem zrobić obraz jednego z dysków macierzy RAID1, aby mieć w razie czego jakieś zabezpieczenie.
Użyłem do tego Clonezilli z parametrem "nodmraid", który pozwala na użycie programu z programowym raidem.
Wybrałem jeden z dysków, obraz się utworzył i później nastąpiło coś, co wprawiło mnie w nie lada zdziwienie.
Wyciągnąłem płytkę Clonezilli, komputer się zrestartował, chciałem wejść do BIOSU, żeby przywrócić układ w zakładce BOOT i coś poszło nie tak, może KVM się zwiesił i nie wychwycił DEL na klawiaturze, w każdym razie system wystartował z układem, że pierwszą czyta płytę, a że płyty nie było już w napędzie, to wystartował z drugiej pozycji, na której był HDD2. [wcześniej jako "1st boot device" był HDD1].
Wystąpiło sprawdzanie systemu plików, system ruszył, wszystko działa, ale okazało się, że w systemie wszystko jest jak ze stanu z października 2014 czyli z czasu, kiedy niby padł ten dysk. Teraz system wczytał się właśnie z niego i jest on jedynym widocznym dyskiem w macierzy. Pozostałe dwa dyski widać na liście dysków.
Jak w takiej sytuacji podejść do mojego nowego/starego problemu? Zacznę od podania wpisów, o które na początku prosił pkraszewski, ale oczywiście w nowym układzie.
cat /proc/mdstat
[root@ruter etc]# cat /proc/mdstat
Personalities : [raid1] [raid6] [raid5] [raid4]
md2 : active raid1 sdc4[1]
8289472 blocks [3/1] [_U_]
md0 : active raid1 sdc1[1]
497856 blocks [3/1] [_U_]
md1 : active raid1 sdc2[1]
9775488 blocks [3/1] [_U_]
unused devices: <none>
fdisk -l /dev/sd[a-c]
[root@ruter etc]# fdisk -l /dev/sd[a-c]
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x5b0844f0
Device Boot Start End Blocks Id System
/dev/sda1 1 62 497983+ 83 Linux
/dev/sda2 63 1279 9775552+ 83 Linux
/dev/sda3 1280 2311 8289540 83 Linux
Disk /dev/sdb: 20.0 GB, 20020396032 bytes
255 heads, 63 sectors/track, 2434 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x1c477b71
Device Boot Start End Blocks Id System
/dev/sdb1 1 62 497983+ 83 Linux
/dev/sdb2 63 1279 9775552+ 83 Linux
/dev/sdb3 1280 1402 987997+ 82 Linux swap / Solaris
/dev/sdb4 1403 2434 8289540 83 Linux
Disk /dev/sdc: 20.4 GB, 20416757760 bytes
255 heads, 63 sectors/track, 2482 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xb89bb89b
Device Boot Start End Blocks Id System
/dev/sdc1 1 62 497983+ 83 Linux
/dev/sdc2 63 1279 9775552+ 83 Linux
/dev/sdc3 1280 1402 987997+ 82 Linux swap / Solaris
/dev/sdc4 1403 2434 8289540 83 Linux
mount
[root@ruter etc]# mount
/dev/md1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/md2 on /home type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
mdadm -D /dev/md0, mdadm -D /dev/md1, mdadm -D /dev/md2
[root@ruter etc]# mdadm -D /dev/md1
/dev/md1:
Version : 0.90
Creation Time : Thu Mar 1 14:22:22 2012
Raid Level : raid1
Array Size : 9775488 (9.32 GiB 10.01 GB)
Used Dev Size : 9775488 (9.32 GiB 10.01 GB)
Raid Devices : 3
Total Devices : 1
Preferred Minor : 1
Persistence : Superblock is persistent
Update Time : Fri Jan 8 09:53:14 2016
State : active, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
UUID : 1b209232:d9818580:b58f738b:7d38242c
Events : 0.292549
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 34 1 active sync /dev/sdc2
2 0 0 2 removed
[root@ruter etc]# mdadm -D /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Thu Mar 1 14:22:11 2012
Raid Level : raid1
Array Size : 497856 (486.27 MiB 509.80 MB)
Used Dev Size : 497856 (486.27 MiB 509.80 MB)
Raid Devices : 3
Total Devices : 1
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Jan 7 22:18:36 2016
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
UUID : 691d02f7:44652e56:0dc50361:190f246a
Events : 0.176
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 33 1 active sync /dev/sdc1
2 0 0 2 removed
[root@ruter etc]# mdadm -D /dev/md2
/dev/md2:
Version : 0.90
Creation Time : Thu Mar 1 14:22:57 2012
Raid Level : raid1
Array Size : 8289472 (7.91 GiB 8.49 GB)
Used Dev Size : 8289472 (7.91 GiB 8.49 GB)
Raid Devices : 3
Total Devices : 1
Preferred Minor : 2
Persistence : Superblock is persistent
Update Time : Thu Jan 7 22:18:33 2016
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
UUID : 46317c8f:05f7e6c7:179206a4:266004e5
Events : 0.274
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 36 1 active sync /dev/sdc4
2 0 0 2 removed
Mam nadzieję, że da to pogląd na nową sytuację, która mnie spotkała. Oczywiście udzielę dodatkowych informacji, jeżeli takie będą potrzebne. Dziękuję za zainteresowanie tematem.
Przy okazji zapytam o odtworzenie obrazu z Clonezilli. Testowo próbuję odtworzyć na jednym dysku, ale system nie startuje. Czy trzeba odtworzyć to na 3 dyskach, tak jak było w macierzy?
Pozdrawiam!