IPMI i zdalna konsola szeregowa, czyli “prawie KVM over IP”
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:
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.
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:
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 ;]