Erinevus lehekülje "IPMI" redaktsioonide vahel

Allikas: Kuutõrvaja
(Seadistus käsureal)
 
(ei näidata 4 kasutaja 52 vahepealset redaktsiooni)
1. rida: 1. rida:
 
===Sissejuhatus===
 
===Sissejuhatus===
  
Ipmi on lühend sõnast Intelligent Platform Management Interface
+
IPMI on lühend fraasist Intelligent Platform Management Interface.
Kujutab ta endast kasutajaliidese standartit mida kasutatakse
+
Kujutab ta endast operatsioonisüsteemist sõltumatut arvutisüsteemide haldamise liidest, mille spetsifikatsiooni on loonud Intel, HP, Dell ja NEC.[http://www.intel.com/design/servers/ipmi/spec.htm] IPMI kasutamist toetab enamik serveritootjaid.
management kaartidel/süsteemidel mida toodavad serverite tarbeks firmad nagu IBM, Dell, HP, Intel ja NEC.
+
IPMI võimaldab üle tavalise TCP/IP võrgu servereid sisse-välja lülitada, vaadelda riistvara seisundit ning erinevate andurite näite (temperatuur, ventilaatorite pöörlemiskiirused jms), ''serial over LAN'' (SOL) abil suhelda serveri konsooliga, jne. Lisaks defineerib IPMI võimaluse teavitada administraatorit riistvara vigadest SNMP protokolli abil. Paljudel serveritel on IPMI vaikimisi integreeritud, osadel juhtudel on võimalik IPMI kasutamine vastava lisakaardi abil.
IMPI võimaldab üle tcp/ip saada ette serveri konsooli, lülitada seda sisse ja välja, haakida
 
külge virtuaalseid meediafaile ja vaadata andurite näite. IPMI on realiseeritud
 
tavaliselt serveri lisakaardi abil, tarvilik on ka vastav emaplaat millel on ipmi toetus olemas.
 
  
Üks tavaline halduskaart mis ipmi toega näeb välja selline
+
IPMI eelisteks on see,et ta on üsnagi hästi standardiseeritud ja töötab põhimõtteliselt kõigil tootjatel ühtemoodi. Konsool (mis IPMI puhul on serial-over-lan) võib eri IPMI versioonides olla erinevalt lahendatud, aga siiani on nad kõik siiski tööle saanud. Linuxis tuleb siis muidugi ka konsool serialporti suunata. IPMI tugev külg on eelkõige see, et häda korral saab üle SSH konsooli ja ipmitooli abil kätte nt rebooti vajava serveri suvalisest kohast ja ei pea mingite tootjaspetsiifiliste javajunnidega mässama.
 +
 
 +
Üks tavaline IPMI toega halduskaart näeb välja selline
  
 
[[Pilt:Supermicro aoc-ipmi20-e.jpg]]
 
[[Pilt:Supermicro aoc-ipmi20-e.jpg]]
  
Asjad mida IPMI 2.0 võimaldab on näiteks Virtual Media Over LAN, Dedicated LAN, KVM-Over-LAN
+
IPMI kontrolleriga suhtlemiseks on olemas mitmeid vabavaralisi vahendeid, nagu ipmitool[http://ipmitool.sourceforge.net/], ipmiutil[http://ipmiutil.sourceforge.net/] ja openipmi[http://openipmi.sourceforge.net/].
 +
Järgnevalt vaatame põgusalt IPMI kasutamist FreeBSD/Linux süsteemil ipmitool-i näitel.
 +
 
 +
===Paigaldus FreeBSD7 süsteemis===
 +
 
 +
# cd /usr/ports/sysutils/ipmitool
 +
# make install clean
 +
 
 +
Seejärel võib anda käsu
 +
 
 +
# kldload ipmi
  
IPMI 2.0 with Virtual Media Over LAN, Dedicated LAN, KVM-Over-LAN
+
Ipmi mooduli püsivaks laadimiseks rida faili /boot/loader.conf
  
Ipmi võimaldab ligipääsu nii http,https kui ssh ja telneti vahendusel.
+
ipmi_load="YES"
Ipmi kontrolleri seadistuseks on olemas käsurea vahend nimega ipmitool
 
järgnevalt vaatame põgusalt lähemalt selle paigaldust FreeBSD/Linux süsteemile
 
ja mõningaid enimkasutatavaid käske.
 
  
===Install FreeBSD7 süsteemis===
+
===Paigaldus Linuxile===
  
/usr/ports/sysutils/ipmitool
+
Enamike distributsioonide kernelis on juba IPMI tugi olemas, kui see mingil põhjusel puudub siis tuleb tuuma kompileerimisel menuconfigus defineerida järgnev
make install clean
 
  
Seejärel võib anda käsu
+
Device Drivers  --->
 +
  Character devices  --->
 +
  <M> IPMI top-level message handler  --->
 +
    --- IPMI top-level message handler                                             
 +
    [ ]  Generate a panic event to all BMCs on a panic                                                       
 +
    <M>  Device interface for IPMI                                                                       
 +
    <M>  IPMI System Interface handler                                                                   
 +
    <M>  IPMI Watchdog Timer
 +
    <M>  IPMI Poweroff 
  
kldload ipmi
+
Ja loome ning paigaldame uued moodulid
  
===Gentoo===
+
make && make modules_install         
  
Kernelisse tuleb kompileerida ipmi tugi ja seejärel laadida järgnevad moodulid
+
IPMI kasutamiseks laadida moodulid
  
  modprobe ipmi_si,ipmi_devintf,ipmi_msghandler.
+
modprobe ipmi_msghandler
 +
  modprobe ipmi_si
 +
modprobe ipmi_devintf  
  
Messages failis peaks nägema järgnevaid teateid
+
Kerneli teadete hulka peaksid ilmuma järgnevad read
  
 
  ipmi message handler version 39.2
 
  ipmi message handler version 39.2
44. rida: 59. rida:
 
  IPMI kcs interface initialized
 
  IPMI kcs interface initialized
  
Automaatseks laadimiseks tuleks nimetada moodulid failis
+
Moodulite automaatseks laadimiseks tuleb need lisada vastavasse faili.
  
/etc/modules.autoload.d/kernel-2.6
+
Gentoo:
  
Ipmitooli installiks piisab käsust
+
/etc/modules.autoload.d/kernel-2.6
  
  emerge ipmitool
+
Debian:
 +
  /etc/modules
  
===Debian===
+
Ipmitooli paigaldamine.
  
Vaikimisi kernelis on impi moodulid loodud
+
Gentoo:
piisab kui anda käsud
 
  
  modprobe ipmi_msghandler
+
  # emerge ipmitool
modprobe ipmi_devintf
 
modprobe ipmi_si
 
  
Ja seejärel installida ipmitool
+
Debian:
  
 
  # apt-get install ipmitool
 
  # apt-get install ipmitool
 +
 +
Versiooni ja nime näeme
 +
 +
# ipmitool mc info
 +
Device ID                : 32
 +
Device Revision          : 1
 +
Firmware Revision        : 0.62
 +
IPMI Version              : 2.0
 +
Manufacturer ID          : 343
 +
Manufacturer Name        : Intel Corporation
 +
Product ID                : 41 (0x0029)
 +
Product Name              : S5000PSL
 +
Device Available          : yes
 +
Provides Device SDRs      : no
 +
Additional Device Support :
 +
    Sensor Device
 +
    SDR Repository Device
 +
    SEL Device
 +
    FRU Inventory Device
 +
    IPMB Event Receiver
 +
    Chassis Device
 +
Aux Firmware Rev Info    :
 +
    0x00
 +
    0x42
 +
    0x00
 +
    0x03
  
 
===Seadistus käsureal===
 
===Seadistus käsureal===
  
Esimesena tuleks muuta vaikimisi olev
+
Esimesena tuleks muuta vaikimisi olev administraatori parool. Antud näites on administraatori kasutajanimeks Operator ja parooliks password.
administraatori kasutajanimi ning parool
 
Sageli on see näiteks Operator ja passord
 
  
 
Vaatame kasutajate nimekirja
 
Vaatame kasutajate nimekirja
78. rida: 115. rida:
 
  2  Operator        true    false      true      ADMINISTRATOR
 
  2  Operator        true    false      true      ADMINISTRATOR
  
Muudame kasutaja Operator konto parooli kes on administraatoriks
+
Muudame kasutaja Operator konto parooli
  
 
  # ipmitool user set password 2
 
  # ipmitool user set password 2
84. rida: 121. rida:
 
  Password for user 2:
 
  Password for user 2:
  
Seejärel on enamasti vajalik seadistada ipmitoolile mingi ip aadress
+
Vahel on abiks kasutaja sisse lülitada
vaikimisi küsib ta seda dhcp abil. Olemasolevaid seadistusi saab vaadata käsuga  ipmitool lan print
 
  
Seadistame ipmi ip aadressi, netmaski ning gateway
+
# ipmitool user enable 2
  
# ipmitool lan set 1 ipaddr 192.168.1.19
+
Kiire admin kasutaja loomine (kanalisse 2 (esimene kaks viimasel real) luua kasutaja 2 (teine kaks viimasel real) privileegiga 4(admin) )
Setting LAN IP Address to 192.168.1.19
+
 
# ipmitool lan set 1 netmask 255.255.255.0
+
  # ipmitool user set name 2 admin
Setting LAN Subnet Mask to 255.255.255.0
+
  # ipmitool user enable 2
  # ipmitool lan set 1 arp respond on
+
  # ipmitool user set password 2
Enabling BMC-generated ARP responses
+
  # ipmitool channel setaccess 2 2 link=on ipmi=on callin=on privilege=4
  # ipmitool lan set 1 arp generate on
 
Enabling BMC-generated Gratuitous ARPs
 
  # ipmitool lan set 1 arp interval 5
 
BMC-generated Gratuitous ARP interval:  5.0 seconds
 
  # ipmitool lan set 1 defgw ipaddr 192.168.1.1
 
Setting LAN Default Gateway IP to 192.168.1.1
 
  
Võrguseadete nägemiseks
+
Enamasti hangib IPMI kontroller endale võrguaadressi DHCP abil. Olemasolevate võrguseadete vaatamine:
  
 
  # ipmitool lan print
 
  # ipmitool lan print
133. rida: 163. rida:
 
                         :    O=OEM  
 
                         :    O=OEM  
  
Vaatame kontrolliks seadme hetkeseisu, st kas töötab ja vool küljes
+
Kui ei soovita DHCP kasutamist, siis tuleb kõigepealt muuta IP aadressi konfiguratsioon staatiliseks:
 +
 
 +
# ipmitool lan set 1 ipsrc static
 +
 
 +
Seejärel võib asuda võrguparameetrite seadmisele:
 +
 
 +
# ipmitool lan set 1 ipaddr 192.168.1.19
 +
# ipmitool lan set 1 netmask 255.255.255.0
 +
# ipmitool lan set 1 defgw ipaddr 192.168.1.1
 +
 
 +
Lubame haldusmoodulil ka ARP päringutele vastamise:
 +
 
 +
# ipmitool lan set 1 arp respond on
 +
# ipmitool lan set 1 arp generate on
 +
# ipmitool lan set 1 arp interval 5
 +
 
 +
Vaatame kontrolliks serveri hetkeseisu:
 +
 
 +
# ipmitool 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    :
 +
Chassis Intrusion    : inactive
 +
Front-Panel Lockout  : inactive
 +
Drive Fault          : false
 +
Cooling/Fan Fault    : false
 +
Front Panel Control  : none
 +
 
 +
Tutvume sensorite infoga:
 +
 
 +
# ipmitool sdr
 +
CPU 0 Temp      | 36 degrees C      | ok
 +
CPU 1 Temp      | 39 degrees C      | ok
 +
Ambient Temp0    | 29 degrees C      | ok
 +
Ambient Temp1    | 35 degrees C      | ok
 +
Vcc 12V          | 12.40 Volts      | ok
 +
DDRP0 1.8V      | 1.83 Volts        | ok
 +
DDRP1 1.8V      | 1.83 Volts        | ok
 +
Vcc 3.3V        | 3.30 Volts        | ok
 +
Vcc 5V          | 5.08 Volts        | ok
 +
Vcc 3.3V STB    | 3.25 Volts        | ok
 +
Blower Fan 0    | 4194.40 RPM      | ok
 +
Blower Fan 1    | 4429.60 RPM      | ok
 +
Axial Fan 0      | 10579 RPM        | ok
 +
Axial Fan 1      | 10579 RPM        | ok
 +
Processor 0      | 0x00              | ok
 +
Processor 1      | 0x00              | ok
 +
 
 +
IPMI seadmega suhtlemisel saab kasutada erinevaid Cipher Suite'isid. Seadme juures on IPMI seadistustega määratud, millise šifrit kasutamist ühe või teise privieegiga kasutaja pöördumisel eeldatakse, tavaliselt vaikimisi nii
 +
 
 +
RMCP+ Cipher Suites    : 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
 +
Cipher Suite Priv Max  : Xaaaaaaaaaaaaaa
 +
                        :    X=Cipher Suite Unused
 +
                        :    c=CALLBACK
 +
                        :    u=USER
 +
                        :    o=OPERATOR
 +
                        :    a=ADMIN
 +
                        :    O=OEM
 +
 
 +
kus
 +
 
 +
* 0,1,2 ... - šifrite nimekiri (0 - ilma krüptot, 1 - Auth-HMAC-SHA1; Int = None; Conf = None), .... vt man bmc-config
  
  # ipmitool chassis power status
+
  0 - Authentication Algorithm = None; Integrity Algorithm = None; Confidentiality Algorithm = None
  Chassis Power is on
+
  1 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = None; Confidentiality Algorithm = None
 +
2 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = HMAC-SHA1-96; Confidentiality Algorithm = None
 +
3 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = HMAC-SHA1-96; Confidentiality Algorithm = AES-CBC-128
 +
...
  
edasi saab juba oma lemmik brauseriga pöörduda juba seadistatud ip suunas ning logida sisse
+
* Xaaaaaaaaaaaaaa - šifri ja kasutaja privileegi vastavus (antud juhul ilma krüpota pöördumine on keelatud, kõigi muudega saab administaator ja temast madalama privileegiga kasutajad pöörduda)
Kasutajaga Operator ja parooliga mis määrasite
 
  
===Ipmitooli abil kaughaudls===
+
===Kaughaldus ipmitooli abil===
  
 
Toimub käsuga
 
Toimub käsuga
  
  ipmitool -I lan -H HOST_IP_ADDRESS -U USERNAME -a channel info
+
  ipmitool -I lan -H HOST_IP_ADDRESS -U USERNAME -a IPMI_COMMAND
  
 
Näiteks
 
Näiteks
  
  ipmitool -I lan -H 192.168.1.19 -U Operator -a channel info
+
  ipmitool -I lan -H 192.168.1.19 -U Operator -a chassis status
 +
 
 +
Restardi tegemiseks sobib käsk
 +
 
 +
ipmitool -I lan -H 10.40.4.14 -U admin -a power reset
 +
 
 +
Konsooli pilti näeb järgneva käsuga
 +
 
 +
ipmitool -I lanplus -H 192.168.1.19 -U Operator sol activate
 +
 
 +
Vähemalt ILO100 puhul näeb vaid bios'i ning loaderist
 +
edasise pildi vaatamiseks tuleb näiteks FreeBSD'd seadistada serialkonsool manualis juhendatud viisil
 +
http://www.freebsd.org/doc/en/books/handbook/serialconsole-setup.html või Gentoos http://www.gentoo-wiki.info/HOWTO_Linux_serial_console
 +
 
 +
Kui käsu peale teatatakse
 +
 
 +
IPMI v1.5 Serial Over Lan (ISOL) not supported!
 +
 
 +
Tuleb vastav featuur BIOSis lubada.
 +
 
 +
===Kaughaldus freeipmi abil===
 +
 
 +
iDrac seadistuste küsimiseks
 +
 
 +
# bmc-config -D LAN_2_0 -v -u root -p parool -h 10.1.200.50 --checkout | less
 +
 
 +
kus
 +
 
 +
* -D - protokoll
 +
 
 +
===Probleemid===
 +
 
 +
Probleemide korral võib proovida kontrollerile teha kas külm
 +
 
 +
# ipmitool mc reset cold
 +
Sent cold reset command to MC
 +
 
 +
Või kuumtaaskäivitust:
 +
 
 +
# ipmitool mc reset warm
 +
Sent warm reset command to MC
 +
 
 +
Kanaleid võib üritada otsida skriptiga
 +
 
 +
  # Channel
 +
  for i in $(seq 0 10); do
 +
    response=$(ipmitool lan print ${i} 2>/dev/null|grep "IP Address Source")
 +
    if [ "$response" ]; then echo "IPMI is on channel ${i}"; channel=$i; break; fi
 +
  done
 +
 
 +
FreeBSD's tuleb '''seq''' asemel kasutada '''jot 0 10'''
 +
 
 +
===IPMI Watchdog===
 +
 
 +
TODO
 +
 
 +
Valvekoera ülesanne seisneb teha masinale reboot kui see peaks kokku jooksma või muid rumalusi tegema.
 +
 
 +
Põhimõtteliselt on seadistatud IPMI kaardile teatud ajaga mahalugemine (countdown) nt 300 sekundit, mille
 +
möödudes masin teeb reboodi. Kuni aga deemon masinas töötab siis lükkab see näiteks iga 5 sekundi tagant
 +
mahalugemist taas nulli ehk tagasi 300 peale. Kui nüüd juhtub masin kinni jooksma ei saa deemon enam rebooti edasi lükatata, lugemine jookseb lõpuni ja serverile tehakse restart.
 +
 
 +
Linuxi kernelisse peab olema kompileeritud eelnevalt '''IPMI Watchdog Timer''' (vaata ülespoole kerneli seadistust).
 +
 
 +
Selleks, et vaadata watchdogi infot (antud juhul ei ole watchdog sisse lülitatud)
 +
 
 +
# ipmitool mc watchdog get
 +
Watchdog Timer Use:    Reserved (0x00)
 +
Watchdog Timer Is:      Stopped
 +
Watchdog Timer Actions: No action (0x00)
 +
Pre-timeout interval:  0 seconds
 +
Timer Expiration Flags: 0x00
 +
Initial Countdown:      0 sec
 +
Present Countdown:      0 sec
 +
 
 +
Sisselülitamiseks
 +
 
 +
# ipmitool mc watchdog on
 +
 
 +
Linuxis on deemoniks watchdogd
 +
 
 +
# watchdogd
 +
 
 +
Deemon ja IPMI suhtlevad omavahel  /dev/watchdog seadme kaudu.
 +
 
 +
FreeBSDs kasutamiseks tuleb paigaldada freeipmi pakett. Freeipmi paketist tuleb kaasa utiliit bmc-watchdog nimeline utiliit.
 +
 
 +
Setup a bmc-watchdog daemon that resets the machine after 15 minutes (900 seconds) if the OS has crashed (see default bmc-watchdog rc script /etc/init.d/bmc-watchdog for a more complete example):
 +
 
 +
# bmc-watchdog -d -u 4 -p 0 -a 1 -i 900
 +
 
 +
*-d, Run bmc-watchdog as a daemon.
 +
*-u INT, Set timer use. The timer use value can be set to one of the following: 1 = BIOS FRB2, 2 = BIOS POST, 3 = OS_LOAD, 4 = SMS OS, 5 = OEM.
 +
*-p INT, Set pre-timeout interrupt. The pre timeout interrupt can be set to one of the following: 0 = None, 1 = SMI, 2 = NMI, 3 = Messaging Interrupt.
 +
*-a INT, Set timeout action. The timeout action can be set to one of the following: 0 = No action, 1 = Hard Reset, 2 = Power Down, 3 = Power Cycle.
 +
*-i SECONDS, Set initial countdown in seconds.
 +
 
 +
Lingid:
 +
 
 +
*http://blog.bofh.it/id_125
 +
 
 +
*http://www.zomers.eu/knowledge/pfSense/Pages/Configure-pfSense-2.0-RC1-to-use-Watchdog-functionality.aspx
 +
 
 +
===FreeIPMI kasutamine===
 +
 
 +
FreeIPMI http://www.gnu.org/software/freeipmi/ tarkvara võimaldab sooritada praktiliselt samu tegevusi nagu IPMItool. Tarkvara paigaldamiseks sobib öelda nt
 +
 
 +
# apt-get install freeipmi-tools
 +
 
 +
Kõigi seadistuste salvestamiseks sobib öelda
 +
 
 +
# bmc-config --checkout > bmc-config.output.txt
 +
 
 +
Sektsioonide nimekirja küsimiseks
 +
 
 +
# bmc-config -L
 +
User1
 +
...
 +
User16
 +
Lan_Channel
 +
Lan_Conf
 +
Lan_Conf_Auth
 +
Lan_Conf_Security_Keys
 +
Lan_Conf_User_Security
 +
Lan_Conf_Misc
 +
Rmcpplus_Conf_Privilege
 +
Serial_Channel
 +
Serial_Conf
 +
SOL_Conf
 +
 
 +
Konkreetse sektsiooni seadistuste küsimiseks
 +
 
 +
# bmc-config -S Lan_Conf -o
 +
#
 +
# Section Lan_Conf Comments
 +
#
 +
# In the Lan_Conf section, typical networking configuration is setup. Most users
 +
# will choose to set "Static" for the "IP_Address_Source" and set the
 +
# appropriate "IP_Address", "MAC_Address", "Subnet_Mask", etc. for the machine.
 +
#
 +
Section Lan_Conf
 +
        ## Possible values: Unspecified/Static/Use_DHCP/Use_BIOS/Use_Others
 +
        IP_Address_Source                            Static
 +
        ## Give valid IP address
 +
        IP_Address                                    10.1.1.130
 +
        ## Give valid MAC address
 +
        MAC_Address                                  00:30:05:FC:9F:80
 +
        ## Give valid Subnet Mask
 +
        Subnet_Mask                                  255.255.255.0
 +
        ## Give valid IP address
 +
        Default_Gateway_IP_Address                    10.1.1.4
 +
EndSection
 +
 
 +
Parameetri väärtuse salvestamiseks, nt
 +
 
 +
# bmc-config --commit --key-pair="lan_conf:Subnet_Mask=255.255.255.0"
  
===Lingid===
+
Tundub, et FreeIPMI puhul on selles mõttes mõnus seadistusi muuta, et saab küsida mõne sektsiooni kohta olemasoleva seadistuse, teha tekstis vajalikud muudatused ja laadida nad sisse
  
http://sources.redhat.com/cluster/wiki/IPMI_FencingConfig
+
TODO
  
http://dpw.threerings.net/projects/ipmi-kmod/
+
===Kasulikud lisamaterjalid===
  
http://gfs.wikidev.net/IPMI_Fencing
+
* http://www.intel.com/design/servers/ipmi/
 +
* http://sources.redhat.com/cluster/wiki/IPMI_FencingConfig
 +
* http://dpw.threerings.net/projects/ipmi-kmod/
 +
* http://gfs.wikidev.net/IPMI_Fencing
 +
* http://wiki.adamsweet.org/doku.php?id=ipmi_on_linux
 +
* http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaai/ipmi/BPipmi.pdf
 +
* http://en.wikipedia.org/wiki/Out-of-band_management
 +
* http://securfox.wordpress.com/2009/10/01/howto-setup-ipmi-under-linux-rhel-centos-5/
 +
* http://openipmi.sourceforge.net/

Viimane redaktsioon: 19. jaanuar 2018, kell 04:25

Sissejuhatus

IPMI on lühend fraasist Intelligent Platform Management Interface. Kujutab ta endast operatsioonisüsteemist sõltumatut arvutisüsteemide haldamise liidest, mille spetsifikatsiooni on loonud Intel, HP, Dell ja NEC.[1] IPMI kasutamist toetab enamik serveritootjaid. IPMI võimaldab üle tavalise TCP/IP võrgu servereid sisse-välja lülitada, vaadelda riistvara seisundit ning erinevate andurite näite (temperatuur, ventilaatorite pöörlemiskiirused jms), serial over LAN (SOL) abil suhelda serveri konsooliga, jne. Lisaks defineerib IPMI võimaluse teavitada administraatorit riistvara vigadest SNMP protokolli abil. Paljudel serveritel on IPMI vaikimisi integreeritud, osadel juhtudel on võimalik IPMI kasutamine vastava lisakaardi abil.

IPMI eelisteks on see,et ta on üsnagi hästi standardiseeritud ja töötab põhimõtteliselt kõigil tootjatel ühtemoodi. Konsool (mis IPMI puhul on serial-over-lan) võib eri IPMI versioonides olla erinevalt lahendatud, aga siiani on nad kõik siiski tööle saanud. Linuxis tuleb siis muidugi ka konsool serialporti suunata. IPMI tugev külg on eelkõige see, et häda korral saab üle SSH konsooli ja ipmitooli abil kätte nt rebooti vajava serveri suvalisest kohast ja ei pea mingite tootjaspetsiifiliste javajunnidega mässama.

Üks tavaline IPMI toega halduskaart näeb välja selline

Supermicro aoc-ipmi20-e.jpg

IPMI kontrolleriga suhtlemiseks on olemas mitmeid vabavaralisi vahendeid, nagu ipmitool[2], ipmiutil[3] ja openipmi[4]. Järgnevalt vaatame põgusalt IPMI kasutamist FreeBSD/Linux süsteemil ipmitool-i näitel.

Paigaldus FreeBSD7 süsteemis

# cd /usr/ports/sysutils/ipmitool
# make install clean

Seejärel võib anda käsu

# kldload ipmi

Ipmi mooduli püsivaks laadimiseks rida faili /boot/loader.conf

ipmi_load="YES"

Paigaldus Linuxile

Enamike distributsioonide kernelis on juba IPMI tugi olemas, kui see mingil põhjusel puudub siis tuleb tuuma kompileerimisel menuconfigus defineerida järgnev

Device Drivers  --->
 Character devices  --->
  <M> IPMI top-level message handler  ---> 
   --- IPMI top-level message handler                                              
   [ ]   Generate a panic event to all BMCs on a panic                                                         
   <M>   Device interface for IPMI                                                                        
   <M>   IPMI System Interface handler                                                                     
   <M>   IPMI Watchdog Timer
   <M>   IPMI Poweroff   

Ja loome ning paigaldame uued moodulid

make && make modules_install          

IPMI kasutamiseks laadida moodulid

modprobe ipmi_msghandler
modprobe ipmi_si
modprobe ipmi_devintf 

Kerneli teadete hulka peaksid ilmuma järgnevad read

ipmi message handler version 39.2
IPMI System Interface driver.
ipmi_si: Trying SMBIOS-specified kcs state machine at i/o address 0xca2, slave address 0x20, irq 0
ipmi: Found new BMC (man_id: 0x000157,  prod_id: 0x0029, dev_id: 0x20)
IPMI kcs interface initialized

Moodulite automaatseks laadimiseks tuleb need lisada vastavasse faili.

Gentoo:

/etc/modules.autoload.d/kernel-2.6

Debian:

/etc/modules

Ipmitooli paigaldamine.

Gentoo:

# emerge ipmitool

Debian:

# apt-get install ipmitool

Versiooni ja nime näeme

# ipmitool mc info
Device ID                 : 32
Device Revision           : 1
Firmware Revision         : 0.62
IPMI Version              : 2.0
Manufacturer ID           : 343
Manufacturer Name         : Intel Corporation
Product ID                : 41 (0x0029)
Product Name              : S5000PSL
Device Available          : yes
Provides Device SDRs      : no
Additional Device Support :
    Sensor Device
    SDR Repository Device
    SEL Device
    FRU Inventory Device
    IPMB Event Receiver
    Chassis Device
Aux Firmware Rev Info     : 
    0x00
    0x42
    0x00
    0x03

Seadistus käsureal

Esimesena tuleks muuta vaikimisi olev administraatori parool. Antud näites on administraatori kasutajanimeks Operator ja parooliks password.

Vaatame kasutajate nimekirja

# ipmitool user list
ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
1                    true    false      true       NO ACCESS
2   Operator         true    false      true       ADMINISTRATOR

Muudame kasutaja Operator konto parooli

# ipmitool user set password 2
Password for user 2:
Password for user 2:

Vahel on abiks kasutaja sisse lülitada

# ipmitool user enable 2

Kiire admin kasutaja loomine (kanalisse 2 (esimene kaks viimasel real) luua kasutaja 2 (teine kaks viimasel real) privileegiga 4(admin) )

# ipmitool user set name 2 admin
# ipmitool user enable 2
# ipmitool user set password 2
# ipmitool channel setaccess 2 2 link=on ipmi=on callin=on privilege=4

Enamasti hangib IPMI kontroller endale võrguaadressi DHCP abil. Olemasolevate võrguseadete vaatamine:

# ipmitool lan print
Set in Progress         : Set Complete
Auth Type Support       : NONE MD2 MD5 PASSWORD
Auth Type Enable        : Callback : NONE MD2 MD5 PASSWORD
                        : User     : NONE MD2 MD5 PASSWORD
                        : Operator : NONE MD2 MD5 PASSWORD
                        : Admin    : NONE MD2 MD5 PASSWORD
                        : OEM      : NONE MD2 MD5 PASSWORD
IP Address Source       : DHCP Address
IP Address              : 192.168.1.19
Subnet Mask             : 255.255.255.0
MAC Address             : 00:e0:81:b0:9c:e3
SNMP Community String   : public
IP Header               : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
BMC ARP Control         : ARP Responses Enabled, Gratuitous ARP Disabled
Gratituous ARP Intrvl   : 2.0 seconds
Default Gateway IP      : 192.168.1.1
Default Gateway MAC     : 00:00:00:00:00:00
Backup Gateway IP       : 0.0.0.0
Backup Gateway MAC      : 00:00:00:00:00:00
RMCP+ Cipher Suites     : 0,1,2,3,6,7,8,11,12
Cipher Suite Priv Max   : aaaaaaaaaaaaaaa
                        :     X=Cipher Suite Unused
                        :     c=CALLBACK
                        :     u=USER
                        :     o=OPERATOR
                        :     a=ADMIN
                        :     O=OEM 

Kui ei soovita DHCP kasutamist, siis tuleb kõigepealt muuta IP aadressi konfiguratsioon staatiliseks:

# ipmitool lan set 1 ipsrc static

Seejärel võib asuda võrguparameetrite seadmisele:

# ipmitool lan set 1 ipaddr 192.168.1.19
# ipmitool lan set 1 netmask 255.255.255.0
# ipmitool lan set 1 defgw ipaddr 192.168.1.1

Lubame haldusmoodulil ka ARP päringutele vastamise:

# ipmitool lan set 1 arp respond on
# ipmitool lan set 1 arp generate on
# ipmitool lan set 1 arp interval 5

Vaatame kontrolliks serveri hetkeseisu:

# ipmitool 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     : 
Chassis Intrusion    : inactive
Front-Panel Lockout  : inactive
Drive Fault          : false
Cooling/Fan Fault    : false
Front Panel Control  : none

Tutvume sensorite infoga:

# ipmitool sdr
CPU 0 Temp       | 36 degrees C      | ok
CPU 1 Temp       | 39 degrees C      | ok
Ambient Temp0    | 29 degrees C      | ok
Ambient Temp1    | 35 degrees C      | ok
Vcc 12V          | 12.40 Volts       | ok
DDRP0 1.8V       | 1.83 Volts        | ok
DDRP1 1.8V       | 1.83 Volts        | ok
Vcc 3.3V         | 3.30 Volts        | ok
Vcc 5V           | 5.08 Volts        | ok
Vcc 3.3V STB     | 3.25 Volts        | ok
Blower Fan 0     | 4194.40 RPM       | ok
Blower Fan 1     | 4429.60 RPM       | ok
Axial Fan 0      | 10579 RPM         | ok
Axial Fan 1      | 10579 RPM         | ok
Processor 0      | 0x00              | ok
Processor 1      | 0x00              | ok

IPMI seadmega suhtlemisel saab kasutada erinevaid Cipher Suite'isid. Seadme juures on IPMI seadistustega määratud, millise šifrit kasutamist ühe või teise privieegiga kasutaja pöördumisel eeldatakse, tavaliselt vaikimisi nii

RMCP+ Cipher Suites     : 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
Cipher Suite Priv Max   : Xaaaaaaaaaaaaaa
                        :     X=Cipher Suite Unused
                        :     c=CALLBACK
                        :     u=USER
                        :     o=OPERATOR
                        :     a=ADMIN
                        :     O=OEM

kus

  • 0,1,2 ... - šifrite nimekiri (0 - ilma krüptot, 1 - Auth-HMAC-SHA1; Int = None; Conf = None), .... vt man bmc-config
0 - Authentication Algorithm = None; Integrity Algorithm = None; Confidentiality Algorithm = None
1 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = None; Confidentiality Algorithm = None
2 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = HMAC-SHA1-96; Confidentiality Algorithm = None
3 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm = HMAC-SHA1-96; Confidentiality Algorithm = AES-CBC-128
...
  • Xaaaaaaaaaaaaaa - šifri ja kasutaja privileegi vastavus (antud juhul ilma krüpota pöördumine on keelatud, kõigi muudega saab administaator ja temast madalama privileegiga kasutajad pöörduda)

Kaughaldus ipmitooli abil

Toimub käsuga

ipmitool -I lan -H HOST_IP_ADDRESS -U USERNAME -a IPMI_COMMAND

Näiteks

ipmitool -I lan -H 192.168.1.19 -U Operator -a chassis status

Restardi tegemiseks sobib käsk

ipmitool -I lan -H 10.40.4.14 -U admin -a power reset

Konsooli pilti näeb järgneva käsuga

ipmitool -I lanplus -H 192.168.1.19 -U Operator sol activate

Vähemalt ILO100 puhul näeb vaid bios'i ning loaderist edasise pildi vaatamiseks tuleb näiteks FreeBSD'd seadistada serialkonsool manualis juhendatud viisil http://www.freebsd.org/doc/en/books/handbook/serialconsole-setup.html või Gentoos http://www.gentoo-wiki.info/HOWTO_Linux_serial_console

Kui käsu peale teatatakse

IPMI v1.5 Serial Over Lan (ISOL) not supported!

Tuleb vastav featuur BIOSis lubada.

Kaughaldus freeipmi abil

iDrac seadistuste küsimiseks

# bmc-config -D LAN_2_0 -v -u root -p parool -h 10.1.200.50 --checkout | less

kus

  • -D - protokoll

Probleemid

Probleemide korral võib proovida kontrollerile teha kas külm

# ipmitool mc reset cold
Sent cold reset command to MC

Või kuumtaaskäivitust:

# ipmitool mc reset warm
Sent warm reset command to MC

Kanaleid võib üritada otsida skriptiga

 # Channel
 for i in $(seq 0 10); do
   response=$(ipmitool lan print ${i} 2>/dev/null|grep "IP Address Source")
    if [ "$response" ]; then echo "IPMI is on channel ${i}"; channel=$i; break; fi
 done

FreeBSD's tuleb seq asemel kasutada jot 0 10

IPMI Watchdog

TODO

Valvekoera ülesanne seisneb teha masinale reboot kui see peaks kokku jooksma või muid rumalusi tegema.

Põhimõtteliselt on seadistatud IPMI kaardile teatud ajaga mahalugemine (countdown) nt 300 sekundit, mille möödudes masin teeb reboodi. Kuni aga deemon masinas töötab siis lükkab see näiteks iga 5 sekundi tagant mahalugemist taas nulli ehk tagasi 300 peale. Kui nüüd juhtub masin kinni jooksma ei saa deemon enam rebooti edasi lükatata, lugemine jookseb lõpuni ja serverile tehakse restart.

Linuxi kernelisse peab olema kompileeritud eelnevalt IPMI Watchdog Timer (vaata ülespoole kerneli seadistust).

Selleks, et vaadata watchdogi infot (antud juhul ei ole watchdog sisse lülitatud)

# ipmitool mc watchdog get
Watchdog Timer Use:     Reserved (0x00)
Watchdog Timer Is:      Stopped
Watchdog Timer Actions: No action (0x00)
Pre-timeout interval:   0 seconds
Timer Expiration Flags: 0x00
Initial Countdown:      0 sec
Present Countdown:      0 sec

Sisselülitamiseks

# ipmitool mc watchdog on

Linuxis on deemoniks watchdogd

# watchdogd

Deemon ja IPMI suhtlevad omavahel /dev/watchdog seadme kaudu.

FreeBSDs kasutamiseks tuleb paigaldada freeipmi pakett. Freeipmi paketist tuleb kaasa utiliit bmc-watchdog nimeline utiliit.

Setup a bmc-watchdog daemon that resets the machine after 15 minutes (900 seconds) if the OS has crashed (see default bmc-watchdog rc script /etc/init.d/bmc-watchdog for a more complete example):

# bmc-watchdog -d -u 4 -p 0 -a 1 -i 900
  • -d, Run bmc-watchdog as a daemon.
  • -u INT, Set timer use. The timer use value can be set to one of the following: 1 = BIOS FRB2, 2 = BIOS POST, 3 = OS_LOAD, 4 = SMS OS, 5 = OEM.
  • -p INT, Set pre-timeout interrupt. The pre timeout interrupt can be set to one of the following: 0 = None, 1 = SMI, 2 = NMI, 3 = Messaging Interrupt.
  • -a INT, Set timeout action. The timeout action can be set to one of the following: 0 = No action, 1 = Hard Reset, 2 = Power Down, 3 = Power Cycle.
  • -i SECONDS, Set initial countdown in seconds.

Lingid:

FreeIPMI kasutamine

FreeIPMI http://www.gnu.org/software/freeipmi/ tarkvara võimaldab sooritada praktiliselt samu tegevusi nagu IPMItool. Tarkvara paigaldamiseks sobib öelda nt

# apt-get install freeipmi-tools

Kõigi seadistuste salvestamiseks sobib öelda

# bmc-config --checkout > bmc-config.output.txt

Sektsioonide nimekirja küsimiseks

# bmc-config -L
User1
...
User16
Lan_Channel
Lan_Conf
Lan_Conf_Auth
Lan_Conf_Security_Keys
Lan_Conf_User_Security
Lan_Conf_Misc
Rmcpplus_Conf_Privilege
Serial_Channel
Serial_Conf
SOL_Conf

Konkreetse sektsiooni seadistuste küsimiseks

# bmc-config -S Lan_Conf -o
#
# Section Lan_Conf Comments 
#
# In the Lan_Conf section, typical networking configuration is setup. Most users 
# will choose to set "Static" for the "IP_Address_Source" and set the 
# appropriate "IP_Address", "MAC_Address", "Subnet_Mask", etc. for the machine. 
#
Section Lan_Conf
       ## Possible values: Unspecified/Static/Use_DHCP/Use_BIOS/Use_Others
       IP_Address_Source                             Static
       ## Give valid IP address
       IP_Address                                    10.1.1.130
       ## Give valid MAC address
       MAC_Address                                   00:30:05:FC:9F:80
       ## Give valid Subnet Mask
       Subnet_Mask                                   255.255.255.0
       ## Give valid IP address
       Default_Gateway_IP_Address                    10.1.1.4
EndSection

Parameetri väärtuse salvestamiseks, nt

# bmc-config --commit --key-pair="lan_conf:Subnet_Mask=255.255.255.0"

Tundub, et FreeIPMI puhul on selles mõttes mõnus seadistusi muuta, et saab küsida mõne sektsiooni kohta olemasoleva seadistuse, teha tekstis vajalikud muudatused ja laadida nad sisse

TODO

Kasulikud lisamaterjalid