Kilka dni temu jeden z moich produkcyjnych serwerów odmówił posłuszeństwa. Właściwie to wypiął się na mnie całkowicie w tak paskudny sposób, że przestał działać nie informując właściwie dlaczego.
Objawy były takie "byle jakie". System działał, nie rzucał żadnymi błędami aż w pewnym momencie łapał kilkudziesięcio sekundowe zwiechy. Wydajność dysków przy zapisie spadała z ~80M/s do 0,5M/s lub mniej.
System FreeBSD 9.0-STABLE , 6GB RAM, 2 x 64GB SAS wpięte w Smart Array E200i. Pierwsze podejrzenia padły na pamięć RAM, niestety po przetestowaniu jej Memtestem okazało się że to nie ona. W drugiej kolejności na warsztat poszły dyski oraz kontroler. Przy okazji wyszło że używając ZFS'a dobrze jest zawsze zostawić troszkę zapasu wolnego miejsca**. W tym przypadku przestrzeń była wykorzystana w 97%, więc ZFS rył po napędach w poszukiwaniu wolnych sektorów, co było widoczne w ciągłej pracy dysków (gstat pokazywał ~100% użycie). Okazało się również że sam kontroler zwariował, prawdopodobnie przez wcześniejszą próbę uruchomienia na nim 4K sektorowych dysków które zostały spięte w MIRROR a potem wyciągnięte. Ale przynajmniej już wiem że Smart Array E200i nijak sobie nie radzi z takimi dyskami.Tak czy inaczej doszedłem do wniosku że bez wymiany kontrolera się nie obejdzie.
Ktoś na forum FreeBSD podrzucił mi listę kontrolerów SAS/SATA dla FreeBSD .
Po przeszukaniu portali aukcyjnych trafiłem na IBM ServerRAID M1015 na chipsecie LSI SAS2008 nie dość że był w dobrej cenie to dodatkowo sprzedawca był z Wrocławia, więc mogliśmy sprawę załatwić od ręki. Po przeflashowaniu kontrolera do "IT Firmware"*** zostałem posiadaczem 8 portowego kontrolera SAS/SATA nadającego się idealnie pod ZFS.
Ostatnią rzeczą jaka została to było przeniesienie całego działającego systemu ze Smart Array E200i+64SAS na LSI SAS2008+750SATA. Po wpięciu do drugiej maszyny LSI z dyskami i instalacji na nich FreeBSD 9.1-STABLE (odpada zabawa z zpool.cache i vfs.root.mountfrom) przyszedł czas na kopiowanie.
sprawę załatwiło :
Teraz już tylko trzeba było uruchomić to wszystko na produkcyjnym serwerze i mogłem iść spać...
Niestety, zapomniałem żeby "zawsze spodziewać się niespodziewanego", i tak było tym razem.
Dzięki wykorzystaniu ZFSowego Boot Environment wystarczyło :
Na koniec chciałem podziękować chłopakom z forum FreeBSD a w szczególności vermadenowi bez pomocy których, wylałbym chyba tą benzynę i znalazł zapałki...
** To trochę to przynajmniej 20% wolnego miejsca.
*** W razie otrzymania błędu "Failed to initialize PAL" trzeba zreflashować kartę na innej płycie głównej.
Objawy były takie "byle jakie". System działał, nie rzucał żadnymi błędami aż w pewnym momencie łapał kilkudziesięcio sekundowe zwiechy. Wydajność dysków przy zapisie spadała z ~80M/s do 0,5M/s lub mniej.
System FreeBSD 9.0-STABLE , 6GB RAM, 2 x 64GB SAS wpięte w Smart Array E200i. Pierwsze podejrzenia padły na pamięć RAM, niestety po przetestowaniu jej Memtestem okazało się że to nie ona. W drugiej kolejności na warsztat poszły dyski oraz kontroler. Przy okazji wyszło że używając ZFS'a dobrze jest zawsze zostawić troszkę zapasu wolnego miejsca**. W tym przypadku przestrzeń była wykorzystana w 97%, więc ZFS rył po napędach w poszukiwaniu wolnych sektorów, co było widoczne w ciągłej pracy dysków (gstat pokazywał ~100% użycie). Okazało się również że sam kontroler zwariował, prawdopodobnie przez wcześniejszą próbę uruchomienia na nim 4K sektorowych dysków które zostały spięte w MIRROR a potem wyciągnięte. Ale przynajmniej już wiem że Smart Array E200i nijak sobie nie radzi z takimi dyskami.Tak czy inaczej doszedłem do wniosku że bez wymiany kontrolera się nie obejdzie.
Ktoś na forum FreeBSD podrzucił mi listę kontrolerów SAS/SATA dla FreeBSD .
Po przeszukaniu portali aukcyjnych trafiłem na IBM ServerRAID M1015 na chipsecie LSI SAS2008 nie dość że był w dobrej cenie to dodatkowo sprzedawca był z Wrocławia, więc mogliśmy sprawę załatwić od ręki. Po przeflashowaniu kontrolera do "IT Firmware"*** zostałem posiadaczem 8 portowego kontrolera SAS/SATA nadającego się idealnie pod ZFS.
Ostatnią rzeczą jaka została to było przeniesienie całego działającego systemu ze Smart Array E200i+64SAS na LSI SAS2008+750SATA. Po wpięciu do drugiej maszyny LSI z dyskami i instalacji na nich FreeBSD 9.1-STABLE (odpada zabawa z zpool.cache i vfs.root.mountfrom) przyszedł czas na kopiowanie.
sprawę załatwiło :
zfs snapshot -r zroot@MOVE61G danych kopiował jakieś ~60 minut. Po wszystkim zostałem z nowym kontrolerem , nowymi dyskami i całkiem nowiutkim datasetem sys/ROOT/zroot ;)
zfs send -Rv zroot@MOVE | ssh root@LSI 'zfs recv -vF sys/ROOT/zroot'
Teraz już tylko trzeba było uruchomić to wszystko na produkcyjnym serwerze i mogłem iść spać...
Niestety, zapomniałem żeby "zawsze spodziewać się niespodziewanego", i tak było tym razem.
Dzięki wykorzystaniu ZFSowego Boot Environment wystarczyło :
zfs set mountpoint=legacy sys/ROOT/zrootRestart i...
zpool set bootfs=sys/ROOT/zroot sys
zfs set canmount=on sys/ROOT/zroot
mouting from zfs:sys/ROOT/zroot failed with error 2Po kilku wyrazach których nie powinienem tu przytaczać, zapytałam Pana Google co o tym sądzi. Okazało się że ma do coś do powiedzenia, i to nawet sporo. Przecież chciałem wystartować system który de facto nie był już 9.1-STABLE tylko 9.0 a więc zpool.cache oraz vfs.root.mounfrom były jednak wskazane. A więc kolejny szybki boot LiveCD i
zpool import -o cachefile=/tmp/zpool.cache -o altroot=/mnt sysRestart i...
mount -t zfs sys/ROOT/zroot /mnt
cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cach
mouting from zfs:sys/ROOT/zroot failed with error 2Pomyślałem... Ok, zanim pójdę po kanister i obleję benzyną ten cały złom i podpalę a klientom powiem że właśnie robię grilla na ich danych może jednak wszystko prześledzę jeszcze raz po kolei. Tak też zrobiłem, niestety po 20 minutach i kilku rebootach zakończonych "failed with error 2" uśmiechającym się do mnie z ekranu, zacząłem się na poważnie zastanawiać gdzie mam zapałki. Aż tu nagle, olśnienie. Wymagałem od systemu żeby zamontował file system z dysków których.... nie widział. Kolejny reboot do LiveCD, kolejny import, montowanie, edycja /boot/loader.conf z
mps_load="YES"Restart i ...
login : ....:D System wstał, wszystkie usługi wystartowały! Szybki test, zapis/odczyt dysków 130M/s, zero przycięć, wolna przestrzeń 660G. Czyli wszystko tak jak być powinno. Kontroler pracuje już kilka dni i na razie nie ma z nim żadnych problemów. Zostało jeszcze 6 wolnych portów, więc chyba pomyślę nad kolejną porcją dysków, w końcu "miejsca nigdy dość", prawda ?
Na koniec chciałem podziękować chłopakom z forum FreeBSD a w szczególności vermadenowi bez pomocy których, wylałbym chyba tą benzynę i znalazł zapałki...
** To trochę to przynajmniej 20% wolnego miejsca.
*** W razie otrzymania błędu "Failed to initialize PAL" trzeba zreflashować kartę na innej płycie głównej.
Brak komentarzy:
Prześlij komentarz