springsoft.pl

10-10-2010

3ware 9650SE a dyski WD WD20EARS


Podczas konfiguracji serwera do backupu, instalowanego na serwerze linux CentOS 5.5, natknąłem się na pewien problem. Mianowicie niekompatybilność dysków Western Digital (WD) z klasy EARS , z kontrolerem 3ware ( LSI ) 9650SE (9650SE-8LPML). Wszystkie fora internetowe, oraz pomoc firmy LSI wskazywała na to iż faktycznie dysków tych nie da się uruchomić. Jednak po 3 dniach walki, udało się !

Kategoria:Linux Sprzęt Bezpieczeństwo 
Napisał: admin

Całość została zainstalowana na CentOS 5.5 64 bit na osobnych dyskach, z osobnym kontrolerem RAID1, macierz na 3ware miała być dużym zasobem na kopie bezpieczeństwa.

Domyślnie mój kontroler miał firmware FE9X 4.08.00.006 ( 9.5.2 ), a sterownik w systemie miał wersję 2.26.08.003-2.6.18RH. System widział kontroler, ale generalnie nie można było zainicjować macierzy. System się zawieszał, kontroler się resetował, całość nie działała. Ostatnią deską ratunku była aktualizacja do najnowszej wersji w nadziei że producent "coś" poprawił, bo w release notes, żadnych radykalnych zmian nie ma.

Pierwszym krokiem jaki zaleca support LSI jest wyłączenie kolejek na naszym unicie ( queuing ) w opcjach zarządzania raidu, oraz w właściwościach kontrolera zmiana portów na 1,5 Gbit. Ustawienie tego , w moim przypadku samo nie dało żadnego rezultatu, więc postanowiłem pójść dalej.

Postanowiłem zaktualizować firmware do najnowszej stabilnej wersji , czyli 4.10.00.007. Jest ona częścią pakietu sterowników ( codeset w wersji 9.5.3 ).Aby niczego nie zepsuć przeczytałem dość sporo informacji na temat całego upgrade firmware. Najważniejszym dokumentem jest 9.5.3_Release_Notes__Web.pdf . Zawiera on informacje o wymaganych wersjach pakietów potrzebnych aby uruchomić dany kontroler po aktualizacji firmware. Kluczowe dla nas to:

 

  • Firmware version: 4.10.00.007
  • CLI version: 2.01.09.004
  • Red Hat Enterprise Linux 5.4 (5.5) driver version: 2.26.08.006-2.6.18

 

Najpierw musimy zainstalować wyżej podaną wersję programu tw_cli tj. 2.01.09.004 z pakietu 9.5.3. Następnie musimy zweryfikować czy mamy odpowiednie wersje CLI oraz API. Uruchamiamy w tym celu nasz program cli :

 

[root@localhost ~]# /opt/3ware-cli/tw_cli
//localhost> show ver
CLI Version = 2.01.09.004
API Version = 2.06.01.006

Kolejnym krokiem jest uzyskanie informacji o aktualnym sterowniku z programu tw_cli:

 

//localhost> show
Ctl   Model        (V)Ports  Drives   Units   NotOpt  RRate   VRate  BBU
------------------------------------------------------------------------
c11   9650SE-8LPML 8         4        1       0       1       1      OK
//localhost> /c11 show driver
/c11 Driver Version = 2.26.08.003-2.6.18RH

 

* Dla wyjaśnienia /c11 , to jest mój kontroler, w innym systemie może mieć inny numer*

 

Zatem wersja sterownika jest zła, i należy zaktualizować. Ściągamy ze strony KB producenta  następujący pakiet: 3w-95xx-9650_9690_rh5.5_centos5.5-kernel2.6.18-194.el5-installdisk-x86_64-9.5.3.img. Zawiera on obraz dyskietki z nowym sterownikiem. Opis wyciągnięcia z pliku IMG odpowiedniego sterownika znajduje się pod KB producenta tutaj. Aby w ogóle móc dostać się do środka pliku użyłem:

 

mount 3w-95xx-9650_9690_rh5.5_centos5.5-kernel2.6.18-194.el5-installdisk-x86_64-9.5.3.img /mnt/driver -o loop


Kiedy rozpakujemy już zawartość musimy odnaleźć w strukturze katalogów /2.6.18-194.el5/x86_64/ plik o nazwie 3w-9xxx.ko . Jest to nasz sterownik, w nowej wersji.

Podmieniamy go z tym istniejącym w /lib/modules/2.6.18-194.17.1.el5/kernel/drivers/scsi/. Weryfikujemy czy w w pliku moprobe.conf mamy taki wpis:

 

alias scsi_hostadapter 3w-9xxx


Jeśli tak, to wykonujemy utworzenie nowego initrd:

 

cd /boot

mkinitrd -v -f initrd-2.6.18-194.17.1.el5.img 2.6.18-194.17.1.el5


Jeśli wszystko przebiegnie pomyślnie, resetujemy system, i po restarcie powinniśmy mieć już driver w nowej wersji. Sprawdzamy to jak wcześniej, narzędziem tw_cli. Powinno być :

 

Driver Version = 2.26.08.006-2.6.18


Kolejnym krokiem jest już tylko wgranie do systemu paczki z firmware z wersją dla naszego kontrolera, w moim przypadku była to wersja która znajduje się na stronie LSI. Plik nazywa się:

 

9.5.3-9650-Upgrade.zip


zawiera on plik : prom0006.img ( md5sum = 472bb788cfcd214aa24e79b2e2fa5588 )

 

Aby dokonać upgrade firmware należy narzędziem tw_cli wykonać polecenie:

 

//localhost> update fw=/opt/3ware-cli/fw-9.5.3-9650se/prom0006.img


Program wyświetli porównanie, oraz test zgodności firmware z kontrolerem, i zapyta o potwierdzenie aktualizacji z starszej na nowszą wersję. Jeżeli jesteśmy pewni że wszystko zrobiliśmy poprawnie, śmiało możemy aktualizować. :-)

 

Gdy aktualizacja przebiegła pomyślnie, po restarcie komputera możemy przyglądnąc się logom /var/log/messages , oraz dmesg  czy nie występują u nas jakieś błędy, u mnie nie wystąpiły, wszystko w porządku.

Aby utworzyć partycję, musimy na dysku  utworzyć tablicę partycji GPT ( ponieważ mamy więcej niż 2TB ). Do tego celu stosujemy narzędzie parted ( jak to zrobić tutaj ).

Żeby nasza partycja mogła być używana w systemie, musi posiadać system plików. Z dokumentacji ext3 oraz mkfs.ext3 dowiedziałem się iż maksymalny rozmiar bloku to 4096 bajtów. Pozwala on na utworzenie partycji o rozmiarze do 8TB, więc dla mojej 6TB jest wystarczający. Zatem wydajemy polecenie:

 

mkfs.ext3 -b 4096 /dev/sdc1


.. a my udajemy się na spacer, wracamy za 6 godzin, i nasza partycja powinna być gotowa. Pozostaje dopisanie jej do fstaba i tyle. :-)

 

 Dodaj komentarz  
pseudonim : tytuł : email :

powiadom o odpowiedźi