Jakiś czas temu dostałem do “zabawy” (to podstawa, jeżeli praca jest interesująca to jest prawię jak zabawa, więc nie nudna ;]) serwer Dell PowerEdge 1950. Moduł DRAC (taki dellowski “prawdziwy” KVM over IP + pare innych cudów) miał przyjść później, ale że pracuje głównie z domu to pomyślałem że można by spróbować odpalić SOL (serial-over-lan), w końcu ma wbudowany moduł IPMI v2.0. Ale zacznijmy od początku

1.Co to jest IPMI ?

IPMI ;]. A tak w skrócie, jest to parę scalaków na płycie głównej które są stale pod zasilaniem (ofc. musisz mieć wtyczke podłączoną do zasilacza, ale serwer może być w stanie “off”) i pozwalają z jednej strony na monitorowanie stanu serwera (zarówno z poziomu kernela systemu zainstalowanego na serwerze jak i zdalnie) a z drugiej włączanie/wyłaczanie/restart serwera i (w wersjach >2.0, w wersji 1.5 parę “vendor-specific” rozwiązań) podłączenie się do konsoli szeregowej serwera.

O ile w m$ windzie to nie jest specjalnie przydatna funkcja, to w linuksie już jest bardzo użyteczna, chociażby w wypadku gdy “zapomi” się czegoś podczas konfiguracji kernela, nie trzeba wtedy “ręcznie” wybierać poprzedniego żeby serwer wstał. A że większośc nowych serwerów ma ją w standardzie, więc grzechem byłoby nie skorzystać ;].

2.Jak to działa?

Otóż jest to układ który jest po pierwsze  “piracko” wpięty we wbudowaną kartę sieciową serwera (ma własny IP), po drugie podczepiony do portu COM serwera (w tym akurat pod niewyprowadzony COM2/ttyS1), po trzecie podpięty pod różnego typu sensory na płycie, po czwarte podpięty pod sterowanie zasilania. Dzięki temu zdalnie mozesz zrobić wszystko co mógłbyś zrobić stojąc (siedząc/leżąc) fizycznie przed serwerem, oprócz podpięcia kabli i włożenia CDka ;].

3.Ok, jak ustawić to badziewie ?

Najpierw trzeba odpalic IPMI przez LAN, w Dellu wyglada to tak:

Przy starcie naciskamy Ctrl+E, potem:

Setup IPMI w Dellu PowerEdge

Setup IPMI w Dellu PowerEdge

Jak widać do ustawienia parametry sieci i hasło dostępu.Potem pingujemy czy działa, wszystko powinno być ok ;]. Teraz został BIOS i kernel linuksa.

Przekierowanie BIOSu na IPMI

Przekierowanie BIOSu na IPMI

Dlaczego COM2 i prędkość 57600 bps ? Tak domyślnie jest ustawiony kontroler IPMI i nie widziałem potrzeby żeby to zmieniać. Takie przekierowanie iest na tyle miłe że załatwi też przekierowanie bootloadera ale kernelowi trzeba już powiedzieć co gdzie przekierować.

Przekierowanie kernela: dodajemy do opcji startowych kernela (w lilo “append=” w grub “kernel”)

console=ttyS1,57600

oraz w /etc/inittab:

T1:23:respawn:/sbin/getty -L ttyS1 57600 vt100

I czas na instalację narzędzi:

aptitude install ipmitool

Tworzymy plik z hasłem (mozna też podawać hasło za pomocą zmiennej środowiskowej albo bezpośrednio) i wykonujemy:

xani@hydra:~$ ipmitool -I lanplus -H 1.2.3.4 -U admin -f ipmipasswd.file chassis status
System Power         : on
Power Overload       : false
Power Interlock      : inactive
Main Power Fault     : false
Power Control Fault  : false
Power Restore Policy : always-off
Last Power Event     : command
Chassis Intrusion    : inactive
Front-Panel Lockout  : inactive
Drive Fault          : false
Cooling/Fan Fault    : false
Sleep Button Disable : not allowed
Diag Button Disable  : allowed
Reset Button Disable : not allowed
Power Button Disable : allowed
Sleep Button Disabled: false
Diag Button Disabled : true
Reset Button Disabled: false
Power Button Disabled: false

Jeżeli to zadziała znaczy że IPMI działa i można się do niego zalogować. Z przydatniejszych komend “chassis on” “chassis off” “chassis cycle”, nazwy samowyjaśniające ;].
Teraz najważniejsze czyli nasz  Serial ovel LAN (SOL):

xani@hydra:~$ ipmitool -I lanplus -H 192.168.11.250 -U root -f ipmipasswd.file sol info
Info: SOL parameter 'Payload Channel (7)' not supported - defaulting to 0x0e
Set in progress                 : set-complete
Enabled                         : true
Force Encryption                : false
Force Authentication            : false
Privilege Level                 : ADMINISTRATOR
Character Accumulate Level (ms) : 50
Character Send Threshold        : 220
Retry Count                     : 7
Retry Interval (ms)             : 1000
Volatile Bit Rate (kbps)        : 57.6
Non-Volatile Bit Rate (kbps)    : 57.6
Payload Channel                 : 14 (0x0e)
Payload Port                    : 623

Z przydatniejszych informacji jest tu prędkość portu która należy ustawić we wszystkich innych rzeczach korzystających z SOL (czyli linux, BIOS, getty). Ale co to? Szyfrowanie wyłączone ? Trzeba to naprawić ;]

xani@hydra:~$ ipmitool -I lanplus -H 192.168.11.250 -U root -f ipmipasswd.file sol set force-encryption true
Info: SOL parameter 'Payload Channel (7)' not supported - defaulting to 0x0e
xani@hydra:~$ ipmitool -I lanplus -H 192.168.11.250 -U root -f ipmipasswd.file sol info
Info: SOL parameter 'Payload Channel (7)' not supported - defaulting to 0x0e
Set in progress                 : set-complete
Enabled                         : true
Force Encryption                : true
Force Authentication            : false
Privilege Level                 : ADMINISTRATOR
Character Accumulate Level (ms) : 50
Character Send Threshold        : 220
Retry Count                     : 7
Retry Interval (ms)             : 1000
Volatile Bit Rate (kbps)        : 57.6
Non-Volatile Bit Rate (kbps)    : 57.6
Payload Channel                 : 14 (0x0e)
Payload Port                    : 623

I w końcu, nasza konsola:

xani@hydra:~$ ipmitool -I lanplus -H 192.168.11.250 -U root -f ipmipasswd.file sol activate
[SOL Session operational.  Use ~? for help]

Debian GNU/Linux 5.0 appserv00-0 ttyS1

appserv00-0 login:

i BIOS:

BIOS przes SOL IPMI

BIOS przes SOL IPMI

Kilka uwag:

Zamiast Fx używamy ESC+x więc żeby np/ wejśc do BIOSu walimy ESC+2

I to tyle ;]. Mam nadzieję że komuś się to przyda ;]