Ipmitool

ipmitool

목차

서론

먼저 ipmitool이 무엇인지 이해하기 위해서는 IPMI를, IPMI를 이해하기 위해서는 BMC를 이해하고, 해당 기술들이 도입된 이유에 대해 이해할 필요가 있습니다.

원격 서버 관리

일반적으로 서버를 관리하기 위해 PC에 부팅된 하나의 운영체제 위에 SSH와 같은 원격 접속 프로그램을 사용합니다. 하지만, 많은 경우에 원격 접속 프로그램의 문제, 네트워크 문제, 운영체제의 문제 (커널 패닉)등으로 원격 접속이 불가능한 경우가 있습니다. 이와 같은 경우를 위해 IPMI와 BMC가 도입되었습니다.

IPMI란?

IPMI란 Intelligent Platform Management Interface의 줄임말로, 국문으로 번역하면 지능형 플랫폼 관리 인터페이스 정도가 됩니다. IPMI는 호스트 시스템의 CPU, 펌웨어 (BIOS나 UEFI), 운영체제 등에 대한 관리와 모니터링을 독립적으로 가능하도록 만드는 자주적인 컴퓨터 서브 시스템의 컴퓨터 인터페이스 사양 중 하나입니다. IPMI는 시스템 관리자가 컴퓨터 시스템의 ㄹOut-of-band 관리(OOB Management) 및 동작 모니터링을 위해 사용하는 인터페이스 집합을 정의하게 됩니다. 예를 들면 운영체제나 로그인 쉘, 하드웨어에 대한 네트워크 연결을 사용하여 전원이 꺼져 있거나 응답이 없는 컴퓨터를 관리할 수 있는 방법을 제공합니다.

표준화된 인터페이스와 프로토콜을 통해 IPMI를 기반으로 하는 시스템 관리 소프트웨어가 여러 대의 서로 다른 서버들을 관리할 수도 있습니다. 메시지 기반의 하드웨어 수준 인터페이스 사양인 IPMI는 운영체제와 독립적으로 동작하기 때문에, 운영체제와 시스템 관리 소프트웨어가 없는 경우에도 관리자가 원격으로 시스템을 관리할 수 있게 됩니다.

따라서, 운영체제가 부팅되기 이전이나, 시스템 전원이 내려간 상황, OS 또는 시스템 장애가 발생한 상황에서 유용하게 사용할 수 있습니다.

시스템 관리자는 IPMI 메시징을 사용해서 플랫폼 상태 (시스템 온도, 전압, 팬, PSU, Chassis 침입 등)를 모니터링하고 비정상 상태의 하드웨어 로그를 검토하고, 원격 콘솔에서 시스템 전원 차단 및 재부팅, watchdog 타이머 설정 등을 수행할 수 있습니다. 운영체제가 동작할 때에도 IPMI는 작동할 수 있습니다.

IPMI는 서버의 독립된 이더넷 포트(Management Port-관리포트-라고 불립니다.) 위에서 동작하는 네트워크 서비스로 구현되는 것이 일반적입니다.

IPMI 구성요소

450px-IPMI-Block-Diagram

IPMI 서브시스템은 위에서 설명한 BMC가 가장 메인 컨트롤러로, 그리고 다양한 관리 컨트롤러들이 다른 시스템 모듈들에 분산해서 Satellite (위성) 컨트롤러로 구성되고 있습니다. 동일한 섀시 내의 위성 컨트롤러는 I2C의 향상된 구현체인 IPMB (Intelligent Platform Management Bus/Bridge)를 통해 BMC에 연결됩니다. 다른 섀시의 다른 BMC나 위성 컨트롤러에 연결된 BMC는 IPMC (Intelligent Platform Management Controller) Bus나 브릿지를 통해 연결됩니다. 이는 RMCP (Remote Management Control Protocol)에 의해서 관리되며, 이는 해당 사양에 의해 정의된 특화된 유선 프로토콜입니다.

BMC란?

BMC란 Baseboard Management Controller의 약어로, IPMI 동작의 핵심이고 컴퓨터(특히 메인보드 등)에 심어져서 서버 자원들의 접근 및 제어를 수행합니다. 원격 관리 기능을 포함하여 관리 효율성을 높여주지만, 해킹 당할 수 있는 위험이 있어 보안적으로 유의해야 할 필요가 있습니다. BMC에는 전용 펌웨어와 RAM이 있습니다.

BMC는 센서를 사용하여 시스템의 실제 상태를 모니터링하기 위해 제작된 서비스 프로세서이고, 일반적으로 부트로더와 이동식 장치에 연결하기 위한 인터페이스로 구성됩니다. BMC의 센서들은 다음과 같은 물리적인 요소들을 측정할 수 있습니다.

  • Power Supply Voltage
  • 팬의 속도
  • 운영체제의 기능
  • 습도
  • 온도

각 요소들의 임계값을 벗어나는 경우 알림을 전송하며, 시스템 관리자가 이에 대해 적절한 조치를 수행할 필요가 있습니다.

모니터링 외에도, BMC는 다음과 같은 작업을 수행할 수 있습니다.

  • LED 가이드 진단
  • 오류 분석을 위한 이벤트 로깅
  • 센서 모니터링
  • 전원 관리
  • 원격 관리 기능 제공
    • 로깅
    • 전원 제어
    • 콘솔 리디렉션

BMC에는 특수한 웹 인터페이스로 액세스할 수 있는 자체적인 IP 주소가 있고, 해당 컨트롤러를 사용하여 대규모 네트워크나 서버들을 모니터링을 보다 용이하게 수행할 수 있으며 신뢰성 제공에 간접적인 도움이 되기도 합니다. 원격 관리 기능을 사용해서 시스템 관리자가 물리적으로 시스템이 위치한 곳에 방문하여 작업을 수행하지 않고 다양한 모니터링이나 작업들을-특히 BIOS 설치, Firmware 업데이트, fan 속도 확인, 온도 확인 같은 것들- 수행할 수가 있습니다.

IPMItool

기본 설명

ipmitool 명령어는 IPMI가 사용 가능한 장치를 위한 도구들의 집합입니다. 해당 프로그램은 커널 장치 드라이버, 원격 시스템을 IPMI 사양을 통해서 로컬 시스템의 IPMI 기능들을 관리할 수 있도록 해줍니다. 이러한 기능들은 위에서 설명한 FRU (Field Replacable Unit, 교체 가능한 파트 등) 정보들의 출력, LAN 설정, 센서 값 확인, 원격 섀시 전원 제어등을 포함합니다.

로컬 시스템의 IPMI 관리에는 설치되고, 설정 되기 위한 호환 가능한 IPMI 커널 드라이버가 필요합니다. 리눅스에서 해당 드라이버는 OpenIPMI라고 불리며, 이는 표준 배포판들에 포함되어 있습니다. 원격 스테이션의 관리를 위해서는 IPMI-over-LAN 인터페이스가 필요합니다. 각 시스템의 특정한 요구 조건에 따라서 ipmitool을 시스템 인터페이스 위에서 LAN 인터페이스로 활성화하는 것이 가능할 수 있습니다.

사용법

기본적인 사용 시놉시스와 가용한 옵션 목록들은 아래와 같습니다.

자세한 내용은 ipmitoolman 페이지를 참고하시기 바랍니다.

$ ipmitool [-c|-h|-d N|-v|-V] -I open <command>

$ ipmitool [-c|-h|-v|-V] -I lan -H <hostname> [-p <port>]

$ ipmitool [-c|-h|-v|-V] -I lanplus -H <hostname> [-p <port>]
# ipmitool help
Commands:
	raw           Send a RAW IPMI request and print response
	i2c           Send an I2C Master Write-Read command and print response
	spd           Print SPD info from remote I2C device
	lan           Configure LAN Channels
	chassis       Get chassis status and set power state
	power         Shortcut to chassis power commands
	event         Send pre-defined events to MC
	mc            Management Controller status and global enables
	sdr           Print Sensor Data Repository entries and readings
	sensor        Print detailed sensor information
	fru           Print built-in FRU and scan SDR for FRU locators
	gendev        Read/Write Device associated with Generic Device locators sdr
	sel           Print System Event Log (SEL)
	pef           Configure Platform Event Filtering (PEF)
	sol           Configure and connect IPMIv2.0 Serial-over-LAN
	tsol          Configure and connect with Tyan IPMIv1.5 Serial-over-LAN
	isol          Configure IPMIv1.5 Serial-over-LAN
	user          Configure Management Controller users
	channel       Configure Management Controller channels
	session       Print session information
	dcmi          Data Center Management Interface
	nm            Node Manager Interface
	sunoem        OEM Commands for Sun servers
	kontronoem    OEM Commands for Kontron devices
	picmg         Run a PICMG/ATCA extended cmd
	fwum          Update IPMC using Kontron OEM Firmware Update Manager
	firewall      Configure Firmware Firewall
	delloem       OEM Commands for Dell systems
	shell         Launch interactive IPMI shell
	exec          Run list of commands from file
	set           Set runtime variable for shell and exec
	hpm           Update HPM components using PICMG HPM.1 file
	ekanalyzer    run FRU-Ekeying analyzer using FRU files
	ime           Update Intel Manageability Engine Firmware
	vita          Run a VITA 46.11 extended cmd
	lan6          Configure IPv6 LAN Channels

자주 사용되는 예시

IPMI LAN

$ ipmitool lan print # ipmitool 정보 확인
Set in Progress         : Set Complete
Auth Type Support       : NONE MD2 MD5 PASSWORD
Auth Type Enable        : Callback : MD2 MD5 PASSWORD
                        : User     : MD2 MD5 PASSWORD
                        : Operator : MD2 MD5 PASSWORD
                        : Admin    : MD2 MD5 PASSWORD
                        : OEM      : MD2 MD5 PASSWORD
IP Address Source       : Static Address
IP Address              : xxx.xxx.xxx.xxx
Subnet Mask             : xxx.xxx.xxx.xxx
MAC Address             : xx:xx:xx:xx:xx:xx
SNMP Community String   : public
IP Header               : TTL=0x00 Flags=0x00 Precedence=0x00 TOS=0x00
BMC ARP Control         : ARP Responses Enabled, Gratuitous ARP Disabled
Default Gateway IP      : xxx.xxx.xxx.xxx
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
802.1q VLAN ID          : Disabled
802.1q VLAN Priority    : 0
RMCP+ Cipher Suites     : 1,2,3,6,7,8,11,12
Cipher Suite Priv Max   : XaaaXXaaaXXaaXX
                        :     X=Cipher Suite Unused
                        :     c=CALLBACK
                        :     u=USER
                        :     o=OPERATOR
                        :     a=ADMIN
                        :     O=OEM
Bad Password Threshold  : Not Available

IPMI Chassis

$ ipmitool chassis status # 파워 상태 확인
$ ipmitool chassis power status
$ ipmitool chassis power on/off # 전원 제어

IPMI System Event Log

$ ipmitool sel # SEL 정보 출력
SEL Information
Version          : 1.5 (v1.5, v2 compliant)
Entries          : 6
Free Space       : 10120 bytes
Percent Used     : 0%
Last Add Time    : 11/14/2022 10:32:48
Last Del Time    : Not Available
Overflow         : false
Supported Cmds   : 'Reserve' 'Get Alloc Info'
# of Alloc Units : 512
Alloc Unit Size  : 20
# Free Units     : 506
Largest Free Blk : 506
Max Record Size  : 20

$ ipmitool sel list # SEL 목록 출력
   1 | 01/24/2022 | 10:32:45 | OS Boot | Installation started () | Asserted
   2 | 01/24/2022 | 10:43:26 | OS Boot | Installation completed () | Asserted
   3 | 10/15/2022 | 15:39:06 | Unknown #0xff |  | Asserted
   4 | 10/15/2022 | 16:06:11 | Unknown #0xff |  | Asserted
   5 | 10/19/2022 | 03:14:30 | Unknown #0xff |  | Asserted
   6 | 11/14/2022 | 10:32:48 | Unknown #0xff |  | Asserted

IPMI Sensor

$ ipmitool sensor list # Sensor와 임계치 값 확인

IPMI Sensor Data Repository

$ ipmitool sdr list # SDR 목록 출력

IPMI MC

$ ipmitool mc reset warm # BMC reboot 수행하지 않음
$ ipmitool mc reset cold # BMC reboot 수행

IPMI 원격 콘솔 (SOL: Serial Over LAN)

$ ipmitool sol activate -I lanplus -H <hostname> -P <password>
Written on April 2, 2023