Simplified Server Management: A Beginner’s Guide to IPMI and BMC

 Jump to the section that interests you

Introduction

  • Intelligent Platform Management Interface (IPMI) is a hardware-based solution used for securing, controlling, and managing servers
  • IPMI also refers to a set of computer interface specifications used for out-of-band management
  • The IPMI specification will continue to improve server management and help reduce costs. IPMI helps lower the overall costs of server management by enabling customers to save time and maximize IT resources

Components of IPMI

IPMI and BMC

  • An IPMI sub-system consists of a main controller, called the Baseboard management controller (BMC), and other management controllers distributed among different systems modules that are referred to as satellite controllers.
  • The Intelligent Platform Management Bus (IPMB) is an I2C*-based bus that provides a standardized interconnection between different boards within a chassis. Eg. The satellite controllers within the same chassis connect to the BMC
  • An Intelligent Platform Management Controller (IPMC) bus or bridge can connect the BMC with another BMC in another chase.
  • A Field Replaceable Unit (FRU) repository holds the inventory, such as vendor ID and manufacturer, of potentially replaceable devices. We can access this data using IPMI commands.
  • A Sensor Data Record (SDR) repository provides the properties of the individual sensors present on the board.

Block Diagram of IPMI

Logic Fruit Technologies

IPMI Functionality

  • Power Control (status, power on/off, reset, etc.)
  • Monitoring (sensor values)
  • Logging (system event logs)
  • Recovery (when system failures occur, IPMI recovers operations to get them back on track)
  • Alert (it provides advanced warnings about possible system failures for eg. unexpected server failures leading to downtime)

Baseboard Management Controller (BMC)

  • The Baseboard Management Controller (BMC) is a microcontroller that provides remote management and monitoring capabilities for physical infrastructure in computer systems such as servers.
  • BMCs are integrated into server motherboards and communicate with other components through a dedicated management bus.
  • The BMC provides features such as out-of-band management, system health monitoring, power management, and remote console access. It also offers security features such as authentication, encryption, and access control.

BMC Functions

  • System Interface: The BMC provides the System Interface to the IPMI-based platform management subsystem.
  • Remote console access: The BMC provides a virtual console interface that allows administrators to access the server’s operating system and BIOS remotely as if they were physically present at the server.
  • Firmware updates: The BMC can be used to update the firmware of various components in the server, such as the BIOS, and network card, without having to physically access the system.

Implementation BMC (Part 1)

BMC Chip

  • The BMC chip is a separate microcontroller that is independent of the main CPU and operating system
  • It has its own dedicated memory and network interface and communicates with the main CPU and other system components through a dedicated management bus
  • The BMC chip typically includes a small amount of flash memory for firmware storage and a small amount of RAM for data storage.

Logic Fruit Technologies

In fig. Steps involved in implementing a BMC

Various ways to add BMC into a motherboard

Logic Fruit Technologies

1. Onboard BMC chip

  • The most common way to add BMC to a motherboard is to include an onboard BMC chip.
  • This involves designing the motherboard to accommodate the BMC chip, which is typically placed in a dedicated socket.

Eg. Advantech PCM-9310 (onboard AST2050 BMC chip)

  • Pros:
    • Easy to implement
    • Provides a dedicated management interface for remote management and monitoring
    • Can be integrated with other management tools and platforms
  • Cons:
    • May add to the cost of the motherboard
    • Limited flexibility for upgrading or changing the BMC chip

2. Add-in card

  • Another way to add BMC to a motherboard is to use an add-in card. This involves installing a separate card into a PCI Express or other expansion slot on the motherboard.

Eg. Supermicro AOC-SIM1U+, ASUS ASMB9-iKVM, and Dell iDRAC9 Enterprise

  • Pros:
    • Provides a dedicated management interface for remote management and monitoring
    • Can be easily upgraded or changed
  • Cons:
    • May add to the cost of the system
    • Requires an available expansion slot

Logic Fruit Technologies

In fig. The block diagrams for the Add-in card BMC

3. Integrated BMC

  • An integrated BMC is a specialized chip that combines the functionality of the BMC with other management and system components. This approach is often used in blade servers and other high-density systems.

Eg. Intel Xeon E5-2600 series processors

  • Pros:
    • Provides a dedicated management interface for remote management and monitoring
    • Can reduce system complexity and cost by integrating multiple components
    • Can be integrated with other management tools and platforms
  • Cons:
    • Limited flexibility for upgrading or changing the BMC chip
    • May add to the cost of the system

Logic Fruit Technologies

In fig. The block diagram for the Integrated BMC

4. FPGA-based BMC

  • An FPGA-based BMC is a BMC that is implemented on an FPGA (Field- Programmable Gate Array) chip. This approach is gaining popularity due to the flexibility and customization offered by FPGAs.
  • Pros:
  • Cons:
    • May require specialized expertise to program and implement
    • Can be more expensive than traditional BMC chips

Logic Fruit Technologies

In fig. The block diagrams for FPGA-based BMC

Difference between Buying a BMC chip and Developing our own BMC chip

Logic Fruit Technologies

Implementation BMC (Part 2)

Logic Fruit Technologies

BMC Firmware

  • The BMC firmware is the software that runs on the BMC hardware.
  • It provides the logic and functionality for BMC management tasks.
  • The BMC firmware provides the software interface for remote management and monitoring, as well as the drivers and APIs needed to communicate with the server hardware
  • The firmware is typically updated periodically to add new features or fix bugs

BMC Firmware Development

  • BMC firmware is typically developed by the motherboard or server manufacturer, or by a third-party vendor specializing in BMC firmware development.
  • The firmware is typically written in C or C++ and may be based on an existing firmware codebase or developed from scratch.
  • The firmware is compiled and stored on the BMC chip’s flash memory.
  • Some BMC implementations include vendor-specific features that provide additional functionality beyond the standard BMC features.

Implementation BMC (Part 3)

Protocols

  • BMC can be accessed through a variety of protocols, including IPMI (Intelligent Platform Management Interface), SNMP (Simple Network Management Protocol), and Redfish
  • IPMI is the most commonly used protocol for BMC, providing a standardized interface that can be used across different server vendors and hardware platforms.
  • The most commonly used network protocol for IPMI is the User Datagram Protocol (UDP), which provides low latency and real-time communication between the BMC and the management software.

Why UDP is used by IPMI

  • IPMI is a protocol that is designed to manage servers and other network devices remotely, and in many cases, the operations involved are time-sensitive and require a fast response.
  • UDP is a lightweight protocol that offers low overhead and fast transmission speeds, which makes it well-suited for time-sensitive applications.
  • Furthermore, IPMI commands are typically short and do not require the reliability and error-checking features provided by TCP. For example, an IPMI command to read a sensor value or retrieve the status of a component does not require the same level of reliability as a data transfer involving a large file.
  • Another factor that contributes to the use of UDP in IPMI is that the protocol is typically used in local area networks (LANs) or private networks where the transmission reliability and error-checking features of TCP may not be necessary.

Why SMS used by IPMI

  • SMS (Short Message Service) can be used as an out-of-band method for receiving alerts and notifications from the remote server.
  • This is because SMS messages are sent through the cellular network and are not dependent on the IP network that the server is connected to.
  • SMS can be used as a backup method to notify system administrators in case the IP network is down or there is a failure in the communication between the IPMI-enabled device and the management system.

Implementation BMC (Part 4)

Network interface

  • To access the BMC, administrators connect to the BMC network interface using a dedicated management port or through a shared network interface with VLANs or dedicated subnets
  • They can then access the BMC through a web-based user interface or command-line tools

Implementation BMC (Part 5)

Integrate with the system software

  • Incorporate the BMC into the system software stack.
  • This may involve integrating with the operating system, BIOS, or other system-level software.

Test and validate the BMC

  • Verify that the BMC meets your requirements and functions correctly.
  • This may involve testing the BMC’s ability to monitor system health, manage power consumption, and respond to remote management commands.

Implementing IPMI involves several steps (Part 1)

1. Determine hardware compatibility

  • To ensure that your hardware supports IPMI
  • Most modern server hardware comes with integrated BMCs that support IPMI.

2. Install BMC firmware (Server’s side)

3. Configure IPMI settings

  • Configure the IPMI settings for your server
  • Involves setting the IP address, subnet mask, default gateway, and other network settings for the BMC
  • You can configure these settings through the BMC’s web interface or command-line interface.

Implementing IPMI involves several steps (Part 2)

4. Configure security settings

  • IPMI provides various security features to protect against unauthorized access and potential vulnerabilities
  • Configure the security settings for your BMC, such as password protection, access control lists (ACLs), encryption, and authentication using digital certificates.

5. Test IPMI connectivity

  • You can use tools such as the IPMI tool or Open IPMI to test the connectivity and perform basic IPMI operations.

Creating IPMI tools (Part 1)

  1. Choose a programming language (Python, C/C++, Java, and PowerShell)
  2. Familiarize with the IPMI protocol
  3. Choose an IPMI library (ipmitool, pyghmi, OpenIPMI, and FreeIPMI)
  4. Develop the IPMI tool
  5. Test the IPMI tool

Types of IPMI tools

Logic Fruit Technologies

  • Command-Line Interface (CLI) tools: These are text-based tools that allow administrators to send IPMI commands and receive responses from the BMC using a command-line interface.
  • Graphical User Interface (GUI) tools: These are graphical tools that provide a user-friendly interface for managing and monitoring servers remotely. GUI tools often provide real-time information about the server’s health, such as sensor readings, and allow administrators to perform tasks such as power control and firmware updates.
  • Web-based tools: These are tools that are accessed through a web browser and provide a graphical interface for managing and monitoring servers remotely. Web-based tools are often used in data center environments where administrators need to manage multiple servers across multiple locations.
  • Mobile apps: These are apps that allow administrators to manage and monitor servers remotely from a mobile device, such as a smartphone or tablet.
  • Third-party tools: These are tools developed by third-party vendors that provide additional functionality or features beyond what is available in standard IPMI tools. Third-party tools often provide advanced monitoring and reporting capabilities and may integrate with other management systems or tools.

Popular IPMI tools in the market

  • OpenIPMI: This is an open-source IPMI tool that provides a CLI and GUI interface for managing and monitoring servers remotely. OpenIPMI is widely used in Linux-based environments and provides a robust set of features for server management.
  • IPMItool: This is a command-line IPMI tool that is available on most operating systems, including Linux, Windows, and macOS. IPMItool allows administrators to perform tasks such as sensor monitoring, power control, and firmware updates remotely.
  • Dell iDRAC: Integrated Dell Remote Access Controller (iDRAC) is a proprietary IPMI tool developed by Dell. iDRAC provides a web-based GUI for managing and monitoring Dell servers remotely and offers features such as remote console access, virtual media, and user management.
  • HP Integrated Lights-Out (iLO): HP iLO is a proprietary IPMI tool developed by HP. iLO provides a web-based GUI for managing and monitoring HP servers remotely and offers features such as remote console access, virtual media, and user management.
  • Supermicro IPMI: Supermicro IPMI is a proprietary IPMI tool developed by Supermicro. Supermicro IPMI provides a web-based GUI for managing and monitoring Supermicro servers remotely and offers features such as sensor monitoring, power control, and firmware updates.
  • IBM Remote Supervisor Adapter (RSA): IBM RSA is a proprietary IPMI tool developed by IBM. RSA provides a web-based GUI for managing and monitoring IBM servers remotely and offers features such as remote console access, virtual media, and user management.

IPMI tools commands

Sensor monitoring

  • ipmitool sdr list – View a list of all available sensors on the server
  • ipmitool sdr type temperature – View the current temperature readings of all temperature sensors
  • ipmitool sdr type voltage – View the current-voltage readings of all voltage sensors
  • ipmitool sdr type fan – View the current fan speed readings of all fan sensors

Power control

  • ipmitool power status – View the current power status of the server
  • ipmitool power on – Power on the server
  • ipmitool power off – Power off the server
  • ipmitool power reset – Reset the server
  • ipmitool chassis identify – Blink the LED on the server to help identify it

User management

  • ipmitool user list – View a list of all user accounts on the server
  • ipmitool user set password – Set the password for a user account
  • ipmitool user enable – Enable a user account
  • ipmitool user disable – Disable a user account

Event logging

  • ipmitool sel list – View the system event log on the server
  • ipmitool sel clear – Clear the system event log on the server

IPMItool commands examples

1. ipmitool sdr list (the command will show information about each sensor, such as its name, ID, current reading, and thresholds)

Logic Fruit Technologies

2. ipmitool power status (returns the current power status of the server)

Logic Fruit Technologies

IPMI Use Cases

  • Server management and monitoring
  • Data center infrastructure management
  • Cloud infrastructure management

Conclusion

Overall, IPMI is an important tool for IT administrators who need to manage and monitor hardware devices in a data center or cloud infrastructure environment. Its standardized interface and powerful features make it an essential component of modern IT infrastructure management.

Here are some potential trends and developments in the future of IPMI:

  • Increased automation
  • Integration with other management tools
  • Greater focus on security
  • Expansion of monitoring capabilities

Related Articles

Only the best of the blogs delivered to you monthly

By submitting this form, I hereby agree to receive marketing information and agree with Logic Fruit Privacy Policy.

Get a Quote Today

By submitting this form, I hereby agree to receive marketing information and agree with Logic Fruit Privacy Policy.

or just Call us on