최근 저는 기존에 다뤄본 적 없는 슈퍼마이크로(SuperMicro) 서버를 사용할 기회가 있었습니다. 슈퍼마이크로 서버는 IPMI 인터페이스를 통해 원격으로 관리할 수 있습니다. 이 글에서는 IPMI 설정의 기본 단계를 소개하고, IPMI를 활용한 슈퍼마이크로 서버의 원격 관리 및 모니터링에 유용한 도구, 명령어, 방법들을 자세히 설명하겠습니다.
IPMI(Intelligent Platform Management Interface)는 서버 하드웨어와 펌웨어에 직접 통합된 자율적인 모니터링 및 관리 인터페이스입니다. IPMI는 운영체제, BIOS, CPU와 독립적으로 동작하는 별도의 하드웨어 컨트롤러로 구현되며, 물리적 하드웨어 수준의 원격 관리를 가능하게 해줍니다.
BIOS와 웹 인터페이스를 통한 슈퍼마이크로 IPMI 설정
IPMI 설정은 인터페이스의 IP 주소 지정부터 시작하며, 이 주소는 BIOS에서 지정해야 합니다. 서버가 사내(on-premise)에 설치된 경우에는 내부(사설) IP 주소를 사용하면 되고, 공용 데이터센터에 위치한 서버라면 고정 공인(public) IP 주소를 사용하는 것이 일반적입니다.
슈퍼마이크로 서버에서는 부팅 중 DEL 키를 눌러 BIOS에 진입할 수 있습니다. 별도로 어려운 점은 없으니 바로 슈퍼마이크로 BIOS 화면으로 넘어가겠습니다.

위 스크린샷에서 보시는 것처럼 IPMI 메뉴로 이동한 뒤, IPMI 인터페이스의 LAN 설정을 활성화했습니다(Update IPMI Lan Configuration = Yes, Configuration Address Source = Static). 그다음 IP 주소, 서브넷 마스크, 게이트웨이 IP 주소를 입력했습니다.
F4 키를 누르면 설정이 저장되고 서버가 재시작됩니다.
설정을 올바르게 마쳤다면, 브라우저에서 IPMI LAN 인터페이스에 지정한 IP 주소로 접속했을 때 아래와 같은 인증 창이 나타나는 것을 확인할 수 있습니다.

이제 슈퍼마이크로 서버에서 제공하는 IPMI의 주요 기능들을 살펴보겠습니다.
새 슈퍼마이크로 서버를 구매하면 IPMI 설정에 기본적으로 사용자 이름 ADMIN, 비밀번호 ADMIN인 계정이 생성되어 있으며, 이 자격 증명으로 IPMI 웹 인터페이스에 로그인할 수 있습니다. 하지만 보안을 위해 항상 새 사용자 계정을 만들고 기본 계정은 삭제하거나 비밀번호를 변경할 것을 권장합니다. 초기 자격 증명을 그대로 두는 것은 매우 위험합니다. 새 사용자 생성이나 기존 사용자의 비밀번호/권한 변경은 Configuration → Users 메뉴에서 할 수 있습니다.

IPMI 카드는 Maintenance → Unit Reset 메뉴에서 재시작할 수 있습니다.
서버에 운영체제를 설치하기 위한 ISO 이미지는 Virtual Media → CD-ROM Image 메뉴에서 마운트할 수 있습니다.
필자의 경우 ISO 이미지들을 IPMI 서버 인터페이스와 같은 서브넷에 있는 Samba 서버에 보관하고 있습니다. Samba 서버 주소와 마운트할 ISO 파일 경로를 지정한 후 ISO를 마운트하면, 곧바로 운영체제 설치를 진행할 수 있습니다.
서버의 원격 그래픽 콘솔(KVM-over-IP)은 Remote Control → Console Redirection 메뉴에서 열 수 있습니다.
전반적으로 IPMI 원격 콘솔(Java iKVM Viewer)은 매우 편리하지만, 필자는 운영체제 설치 후에는 대부분 SSH로 서버에 접속해 작업합니다. 다만 서버의 LAN 인터페이스가 잘못 설정되었거나 비활성화된 경우 등 SSH 접속이 불가능한 상황에서는 원격 콘솔이 큰 도움이 됩니다.

원격 콘솔에서는 별도로 설정할 것이 없습니다. 참고로 Virtual Media → Virtual Keyboard 메뉴에서 접근할 수 있는 통합 가상 키보드도 포함되어 있습니다.

팁: 슈퍼마이크로 서버를 오랫동안 운영하면서 발견한 성가신 버그 하나를 소개합니다. CentOS 7과 KVM 하이퍼바이저를 설치한 후에는 원격 콘솔에 접속할 수 없게 됩니다. 서버 부팅 중에는 콘솔이 정상 반응하여 BIOS에 진입하거나 OS 커널 부팅 메시지를 볼 수 있지만, 운영체제가 시작된 후에는 콘솔 화면이 사라집니다. 여러 차례 실험 끝에 이 문제를 해결했는데, 방법은 Linux 커널 부팅 옵션에 nomodeset을 추가하는 것입니다. OS 설치 후 아래 명령어를 실행하면 됩니다.grubby --args "nomodeset" --update-kernel /boot/vmlinuz-`uname -r`
이후에는 원격 콘솔이 정상적으로 동작합니다.
IPMICFG 도구를 활용한 슈퍼마이크로 서버 관리
IPMI를 통해 서버를 관리하기 위해 슈퍼마이크로는 자체 도구인 IPMICFG를 개발했습니다.
ipmicfg는 아래 명령어로 다운로드할 수 있습니다.
wget ftp://ftp.supermicro.com/utility/IPMICFG/IPMICFG_1.30.0_build.190710.zip
글 작성 시점 기준 파일명은 위와 같지만, 최신 버전을 받으시려면 슈퍼마이크로 저장소(ftp://ftp.supermicro.com/utility/IPMICFG/)를 직접 방문해 실제 파일 버전의 URL을 확인하시기 바랍니다.
다운로드한 압축 파일을 현재 디렉터리에 압축 해제합니다.
unzip IPMI*.zip
그런 다음 도구를 더 쉽게 실행할 수 있도록 심볼릭 링크를 생성합니다.
ln -s /root/IPMI*/Linux/64bit/IPMICFG-Linux.x86_64 /usr/local/sbin/ipmicfg
이제 ipmicfg 명령어(심볼릭 링크)로 도구를 실행할 수 있습니다. ipmicfg의 기본 기능들을 살펴보겠습니다.
ipmicfg -help 명령어를 실행하면 사용 가능한 모든 스위치 목록을 확인할 수 있습니다.

가장 유용한 ipmicfg 명령어들은 다음과 같습니다.
ipmicfg -help– 도움말 확인ipmicfg -m– IPMI LAN 인터페이스의 현재 IP 및 MAC 주소 표시ipmicfg -k– 서브넷 마스크 표시ipmicfg -g– 게이트웨이 IP 주소 표시ipmicfg -fd– IPMI를 공장 초기값으로 리셋ipmicfg -user list– 생성된 사용자와 권한 표시
IPMI LAN 인터페이스의 IP 주소, 서브넷 마스크, 게이트웨이는 아래 명령어로 변경할 수 있습니다.
ipmicfg -m 192.168.0.120ipmicfg -k 255.255.255.0ipmicfg -g 192.168.0.1
새 IPMI 사용자를 생성하고 비밀번호를 설정하려면 다음 명령어를 사용합니다.
ipmicfg -user add <user id> <name> <password> <privilege>
예시:
ipmicfg -user add 6 ipmiusr P@ssw0_d 4
이렇게 하면 관리자 권한을 가진 사용자 ipmiusr(비밀번호 P@ssw0_d)가 생성됩니다.
IPMI 사용자 목록과 권한은 아래 명령어로 확인할 수 있습니다.
ipmicfg -user listipmicfg -user help

IPMI 사용자의 비밀번호를 변경(재설정)하려면 다음 명령어를 사용합니다.
ipmicfg -user setpwd
ipmicfg 도구의 추가 활용 예시입니다.
ipmicfg -hostname [value]— IPMI LAN 인터페이스의 호스트명 설정ipmicfg -r— IPMI 카드 재시작
IPMI와 IPMICFG를 활용한 슈퍼마이크로 서버 하드웨어 모니터링
IPMI를 이용한 슈퍼마이크로 서버 모니터링
IPMI를 사용하면 슈퍼마이크로 서버의 하드웨어 상태를 손쉽게 모니터링할 수 있습니다. 서버 하드웨어에 대한 전체 정보는 System → Hardware Information에서 확인할 수 있습니다.

CPU, 메모리, 팬 상태는 Server Health → Sensor Readings에서 조회할 수 있습니다.

편의를 위해 센서 카테고리를 변경할 수도 있습니다. 예를 들어 온도 센서만 선택해서 볼 수 있습니다.

또는 전압 센서만 선택할 수도 있습니다.

현재 서버에 하드웨어 문제가 없기 때문에 모든 센서(온도, 전력 등)가 녹색 영역에 있습니다. 온도가 상승하거나 전압 문제가 발생하면 녹색 사각형이 빨간색으로 바뀌며 서버 점검이 필요하다는 경고를 표시합니다.
IPMICFG를 이용한 슈퍼마이크로 서버 하드웨어 점검
전원 공급 장치(PSU) 상태를 확인하려면 다음 명령어를 사용합니다.
# ipmicfg -pminfo
[SlaveAddress = 78h] [Module 1] Item | Value ---- | ----- Status | [STATUS OK] (00h) Input Voltage | 217.5 V Input Current | 1.06 A Main Output Voltage | 12.28 V Main Output Current | 17.93 A Temperature 1 | 22C/73F Temperature 2 | 23C/70F Fan 1 | 2064 RPM Fan 2 | 2032 RPM Main Output Power | 220 W Input Power | 228 W PMBus Revision | 0x22 PWS Serial Number | P2K4FBA022T01321 PWS Module Number | PWS-2K04F-1R PWS Revision | REV1.0 Current Sharing Control | PEC error [SlaveAddress = 7Ah] [Module 2] Item | Value ---- | ----- Status | [STATUS OK] (00h) Input Voltage | 217.5 V Input Current | 1.09 A Main Output Voltage | 12.30 V Main Output Current | 18.09 A Temperature 1 | 24C/75F Temperature 2 | 22C/72F Fan 1 | 2064 RPM Fan 2 | 2064 RPM Main Output Power | 223 W Input Power | 234 W PMBus Revision | 0x22 PWS Serial Number | P2K4FBA022T01323 PWS Module Number | PWS-2K04F-1R PWS Revision | REV1.0 Current Sharing Control | PEC error

CPU 온도를 확인하려면 다음 명령어를 사용합니다.
# ipmicfg -nm oemgettemp

팬 동작 모드도 확인할 수 있으며, 필요에 따라 변경할 수도 있습니다. 팬의 상태와 설정을 확인하려면 다음 명령어를 실행합니다.
# ipmicfg -fan
Current Fan Speed Mode is [ PUE2 Optimal Mode ] Supported Fan modes: 0:Standard 1:Full 3:PUE2 Optimal 4:Heavy IO

팬 동작 모드를 변경하려면 ipmicfg -fan <mode> 명령어를 사용합니다.
예시: ipmicfg -fan 3
IPMI 버전과 펌웨어 정보를 확인하려면 다음 명령어를 사용합니다.
# ipmicfg -nm deviceid
Device ID = 50h Firmware Version = 4.1.4.54 IPMI Version = 2.000000 Manufacturer ID = 57 01 00 Product ID Minor Ver = Greenlow platform Implemented DCMI version = DCMI not implemented/enabled Firmware implemented version = NM Revision 4.0 Image Flag = operational image 1 raw = 50 01 13 24 02 21 57 12 00 19 0b 34 05 40 01

모든 센서 정보를 한 번에 확인하려면 ipmicfg -sdr 명령어를 사용합니다.

여기서는 센서의 상한값과 하한값(limits) 정보를 보여주는 추가 열들도 함께 표시됩니다.
이 외에도 Nagios, Zabbix 등 다양한 모니터링 도구를 활용해 IPMI 모니터링 프로세스를 자동화할 수 있습니다. 이 글에서는 IPMI의 핵심 기능에 집중하기 위해 해당 내용은 다루지 않았지만, IPMI 모니터링에 관심이 있다면 댓글로 의견을 남겨주세요. 추후 이 주제를 다룰 예정입니다.