- Wirtualizacja (1)
- Nowości (6)
- Bezpieczeństwo (3)
- Projekty (2)
- Ciekawostki (1)
- Sprzęt (1)
- Linux (1)
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ę !

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 :
Kolejnym krokiem jest uzyskanie informacji o aktualnym sterowniku z programu tw_cli:
* 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. :-)