Para gerenciar remotamente o estado da plataforma do servidor, os administradores e engenheiros de sistema usam a tecnologia IPMI, o que simplifica bastante sua vida útil. Agora você não precisa correr para o servidor todas as vezes para pressionar o botão de redefinição - você pode responder a problemas críticos em tempo hábil enquanto está sentado em casa em uma cadeira confortável. Este artigo abordará os componentes básicos do IPMI e os detalhes de como a tecnologia funciona.
O que é IPMI?
O acrônimo IPMI significa Intelligent Platform Management Interface. Através do IPMI, você pode conectar-se remotamente ao servidor e gerenciar sua operação:
- Monitore o estado físico do equipamento, por exemplo, verifique a temperatura dos componentes individuais do sistema, níveis de tensão, velocidade do ventilador
- Restaurar o servidor no modo automático ou manual (reinicialização remota do sistema, ligar / desligar, carregar imagens ISO e atualizar o software)
- Gerenciar periféricos
- Mantenha um log de eventos
- Armazene informações sobre o equipamento usado
Suponha que um engenheiro reconfigure a rede no servidor, cometa um erro de configuração e perca o acesso via SSH. Como "alcançar" o servidor agora? Você pode se conectar via IPMI e alterar as configurações.
IPMI é bom porque as funções acima estão disponíveis, independentemente do processador, BIOS ou sistema operacional (SO) da plataforma gerenciada. Por exemplo, você pode reiniciar o servidor remotamente se o SO congelar ou procurar o motivo da falha da CPU no log de eventos do sistema. Você pode até gerenciar um servidor desligado - basta que o servidor esteja conectado à rede elétrica.
Depois que o servidor é montado e conectado à rede, os engenheiros da Selectel configuram o BIOS e o IPMI. Em seguida, você pode sair da sala barulhenta do servidor e continuar a configurar o equipamento remotamente. Após a conclusão da instalação inicial, os clientes Selectel podem gerenciar
servidores de configuração dedicados e
arbitrários através do IPMI.
Antecedentes históricos
A primeira versão da especificação IPMI v1.0 foi desenvolvida em conjunto pela Intel, Dell, NEC e Hewlett-Packard em 1998. Na prática, foram descobertas vulnerabilidades e fraquezas corrigidas nas versões subseqüentes do IPMI v1.5 e v2.0.
A especificação IPMI padroniza a interface de comunicação, e não uma implementação específica no hardware; portanto, o IPMI não requer o uso de dispositivos patenteados especiais e certos microcontroladores. Os fabricantes, aderindo às especificações, desenvolvem seu próprio equipamento IPMI incorporado em plataformas de servidor:
As empresas estabelecem seus preços para a tecnologia fornecida. Se o custo da implementação do IPMI aumentar, o preço do aluguel do servidor aumentará, pois depende diretamente do custo dos consumíveis.
As soluções dos fabricantes diferem entre si:
- Visibilidade das informações de status do equipamento
- Um conjunto exclusivo de aplicativos para restaurar a integridade do servidor se algum componente falhar
- A capacidade de coletar estatísticas sobre todos os componentes do servidor, incluindo aqueles conectados via placas de expansão PCI, NVM, etc.
- Usando a tecnologia não apenas no hardware do servidor, mas também com computadores comuns através de placas de expansão PCI-Express
De fato, para um trabalho confortável com o console remoto e a notificação oportuna de problemas, a funcionalidade básica do IPMI é suficiente.
Embora os fabricantes forneçam um IPMI modificado e revisado, a implementação de sua arquitetura permanece semelhante. Vamos ver no que a tecnologia consiste, com base nas especificações oficiais da Intel.
Os componentes básicos de qualquer IPMI
Controladores
No centro da arquitetura está o "cérebro" do IPMI, o microcontrolador BMC (Baseboard Management Controller). Por meio dele, o controle do servidor remoto ocorre. De fato, o BMC é um computador separado com seu software e interface de rede, que é soldado à placa-mãe ou conectado como uma placa de expansão via barramento de gerenciamento PCI.
O BMC é alimentado pela tensão de espera da placa-mãe, ou seja, ela sempre funciona, independentemente do status do servidor.
Você pode conectar controladores de gerenciamento (MCs) adicionais ao BMC para expandir os recursos do gerenciamento básico. Por exemplo, enquanto o sistema principal é controlado pelas funções do BMC, os MCs são conectados para monitorar vários subsistemas: fontes de alimentação redundantes, unidades RAID, periféricos.
Os MCs vêm com placas independentes, separadas do BMC central, e é por isso que também são chamadas de Controladores de satélite. Pode haver vários controladores adicionais, mas o BMC central é um.
Os controladores são conectados ao BMC por meio da interface IPMB (Barramento de gerenciamento de plataforma inteligente - Barramento de gerenciamento de plataforma inteligente). O IPMB é um barramento baseado no I2C (circuito integrado), através do qual o BMC redireciona os comandos de controle para várias partes da arquitetura:
- Comunica-se com controladores adicionais (MCs)
- Lê dados do sensor (Sensores)
- Acessa armazenamento não volátil
A arquitetura IPMI é implementada para que o administrador remoto não tenha acesso direto aos componentes do sistema. Por exemplo, para receber dados dos sensores, o administrador remoto envia um comando para o BMC, e o BMC, por sua vez, refere-se aos sensores.
Além de enviar comandos para o BMC, você pode configurar a execução automática de ações pelo controlador usando os seguintes mecanismos:

Armazenamento não volátil
O armazenamento não volátil permanece disponível mesmo se a CPU do servidor falhar, por exemplo, através de uma rede local; consiste em três áreas:
- Registro de Eventos do Sistema (SEL) - Registro de Eventos do Sistema
- Repositório SDR (Sensor Data Record) - um repositório que armazena dados do sensor
- Informações sobre unidades substituíveis em campo (FRUs) - informações de inventário sobre os módulos do sistema
Os módulos do sistema geram (gerador de eventos) ou recebem (receptor de eventos) eventos. Os MCs atuam como geradores de eventos, e os BMCs em uma arquitetura podem desempenhar os dois papéis. O BMC recebe mensagens de eventos por meio da interface do sistema e do IPMB e as registra no SEL (Log de Eventos do Sistema).
Existem requisitos obrigatórios para a implementação do SEL:
- SEL armazena pelo menos 16 eventos na memória
- As informações armazenadas no SEL podem ser acessadas independentemente do acesso do BMC e do estado da plataforma gerenciada
Os comandos IPMI leem e excluem o SEL. Como a memória SEL é limitada, periodicamente o log precisa ser verificado e limpo para que novos eventos sejam registrados. Nas configurações do BMC, você pode configurar a limpeza automática do SEL. A limpeza automática em plataformas diferentes acontece de maneiras diferentes - apagando registros antigos para preencher novos ou limpando toda a história.
A mensagem do evento carrega informações das áreas Repositório SDR e Informações da FRU.
Registros SDR são dados sobre os tipos e número de sensores, sua capacidade de gerar eventos e tipos de leituras. Os SDRs também contêm registros do número e tipos de dispositivos conectados ao IPMB. Os registros SDR são armazenados em uma área de memória denominada Repositório SDR (Sensor Data Records Repository).
Os registros da FRU contêm informações sobre números de série e modelos de peças de vários módulos do sistema - processador, cartão de memória, cartão de E / S, controladores.
As informações da FRU podem ser fornecidas através do MC (comandos IPMI) ou através do acesso a chips de memória não voláteis SEEPROM (memória somente leitura programável apagável eletricamente em série) conectada através do barramento de gerenciamento privado. Os controladores se comunicam por esse barramento por meio de comandos I2C de baixo nível com dispositivos que não suportam comandos IPMI.
Aplicação prática
Suponha que um cliente se queixe de congelamentos no servidor, mas tudo esteja em ordem nos logs do sistema operacional. Observamos o SEL - vemos erros em um dos slots de RAM, indicando as informações sobre o slot em que está localizado. Mudança - o servidor começa a funcionar como um relógio.
Acima, examinamos os módulos básicos da arquitetura IPMI. Agora vamos ver a estrutura dos comandos transmitidos e ver quais interfaces são usadas para conexão remota.
Estrutura de comando IPMI
IPMI envia mensagens de solicitação-resposta. Pedidos são comandos. Os comandos iniciam ações e definem valores. O formato de solicitação-resposta possibilita a comunicação simultânea de vários controladores no mesmo barramento.
As mensagens IPMI contêm um conjunto básico de campos comuns a todos os comandos:
- A função de rede (NetFn) atribui ao comando o valor do cluster ao qual o comando pertence (comandos de chassi, eventos, armazenamento etc.)
- O campo Identificador de Solicitação / Resposta é necessário para distinguir entre solicitações e respostas
- ID do solicitante - informações sobre a origem da mensagem. Por exemplo, para o IPMB, essas informações contêm o LUN (número da unidade lógica) do dispositivo
- O ID do respondente endereça a solicitação ao respondente desejado
- Comando - exclusivo dentro da equipe de Função de Rede
- Dados - parâmetros adicionais (por exemplo, dados retornados na resposta)
Além disso, a resposta sempre passa o Código de conclusão, que relata o resultado do comando. Se ocorrer um erro durante a execução da solicitação, um código diferente de zero correspondente ao evento será enviado.
Os canais pelos quais as mensagens são transmitidas podem ser divididos em três categorias com as interfaces correspondentes:
- BMC - MCs, sensores, armazenamento (IPMB)
- BMC - Plataforma Gerenciada (Interface do Sistema)
- BMC - Administrador Remoto (LAN, Interface Serial)
Nesse modelo, o BMC pode ser visto como um comutador que interconecta as interfaces do sistema (na terminologia da especificação - Bridging):
- Serial ↔ IPMB
- Interface serial do sistema
- LAN ↔ IPMB
- Interface do sistema LAN
- Barramento de gerenciamento serial ↔ PCI
- Barramento de Gerenciamento LAN ↔ PCI
- Outras combinações, incluindo Serial ↔ LAN
Quando entregue através de várias interfaces de arquitetura, o conjunto básico de campos é complementado por números e quadros de canais. Por exemplo, o protocolo IPMB adiciona campos de endereço e campos para verificar a integridade dos dados transmitidos, e a LAN encapsula comandos IPMI em pacotes UDP / IP.
Interfaces de acesso remoto
Na versão inicial do IPMI, o console remoto foi conectado ao módulo BMC através de uma interface serial (Interface Serial). A especificação IPMI v2.0 é baseada no uso de uma interface de rede (LAN Interface).
A interface da LAN é fornecida através de uma porta de rede BMC dedicada com seu endereço IP. Ao transmitir mensagens IPMI via LAN, existem vários estágios de encapsulamento:
- As mensagens IPMI são geradas nos pacotes da sessão IPMI (mais adiante neste artigo, examinaremos mais de perto a formação da sessão IPMI)
- Pacotes de sessão IPMI são encapsulados usando RMCP (Remote Management Control Protocol)
- Pacotes RMCP são formados em datagramas UDP
- Quadros Ethernet são adicionados
A interface serial para conectar um console remoto ao BMC não é mais usada, mas é necessária para implementar duas funções:
- Compartilhamento de porta serial
- Serial-over-LAN (SoL)
O compartilhamento de porta serial é a capacidade de usar um conector serial comum entre BMCs seriais e um sistema gerenciado. Normalmente, o compartilhamento de porta serial é usado para implementar o redirecionamento do console do BIOS, ou seja, redirecionar o console do BIOS para o módulo BMC.
Serial-over-LAN é necessário para interagir com os componentes do sistema que entendem apenas uma interface de comunicação serial. Você também pode enviar comandos do console do servidor diretamente para os dispositivos do servidor (chips, cartões, discos e assim por diante). O SoL é implementado para funcionar em conjunto com o recurso Serial Port Sharing.
Sessão e autenticação
Para LAN e interface serial, o início da transmissão de mensagens IPMI é precedido pelo estabelecimento de uma sessão durante a qual os pacotes de dados da sessão IPMI são gerados.
O estabelecimento da sessão é a autenticação de um usuário específico. A sessão deve ser ativada antes de enviar mensagens IPMI de acordo com o seguinte algoritmo:

- O console remoto solicita dados de autenticação do BMC
- O BMC envia uma resposta sobre os tipos de autenticação suportados (nenhum, senha, algoritmos MD2 e MD5, etc.)
- O console remoto envia um comando sobre o tipo de autenticação selecionado e envia o login do usuário
- Se o usuário tiver privilégios de acesso ao canal, o BMC enviará uma resposta contendo o ID da sessão. Graças à atribuição do ID, várias sessões podem trabalhar simultaneamente em um canal (de acordo com os requisitos da especificação - pelo menos quatro sessões simultâneas)
- O console remoto envia uma solicitação de ativação da sessão. A solicitação contém um ID da sessão e informações de autenticação (nome de usuário, senha, chaves - depende do tipo de autenticação selecionado)
- O BMC verifica as informações do usuário, aprova o ID da sessão e envia uma resposta de ativação
As sessões são encerradas automaticamente se nenhuma ação for tomada durante o intervalo especificado ou se a conexão for desconectada.
O acesso ao BMC pode ser bloqueado enviando várias solicitações de ativação de sessão ao mesmo tempo; todos os recursos serão usados para rastrear as sessões que requerem ativação. Para evitar um possível ataque, é recomendável usar o algoritmo LRU (Last Used Used) na implementação do BMC. O algoritmo afirma um ID da sessão para a solicitação de ativação da sessão mais antiga. Por exemplo, um console remoto é iniciado por meio de um navegador em uma sessão noVNC. Se você abrir várias guias com sessões em execução, a entrada de texto estará disponível na guia aberta mais antiga.
Quando o IPMI se torna indisponível
O IPMI ajuda a restaurar a integridade do servidor se ele falhar. No entanto, pode acontecer que o sistema de controle remoto fique indisponível. O mau funcionamento do IPMI pode ser dividido em quatro categorias:
- No nível da rede. Portas quebradas, equipamento que não funciona, defeito no cabo, par trançado mal cravado
- No nível do software. Erro do sistema, bloqueio do módulo BMC, necessidade de atualização do firmware do módulo
- No nível do hardware. Superaquecimento, falha de componentes críticos (memória, processador), defeitos na arquitetura do sistema
- No nível nutricional. Problemas de falta de energia do BMC ou de alimentação do servidor
Esses fatores afetam a operação do IPMI e o próprio servidor. O módulo BMC é um chip independente do servidor e uma falha deste microcontrolador indica uma falha do servidor em 90% dos casos.
IPMI na prática
Você pode gerenciar o servidor via IPMI através de um navegador da web, utilitários fornecidos pelos fabricantes e utilitários de código aberto.
Cada implementação de IPMI possui uma interface da web, mas o princípio de acesso permanece o mesmo:
- Digite o endereço IP da porta BMC na barra de endereços
- Digite o nome de usuário e a senha. Às vezes, essas informações são indicadas diretamente no equipamento.
Na Selectel, trabalhamos com módulos IPMI da Intel, Asus e Supermicro. Como um exemplo, veja a interface da web Supermicro:
Os recursos da interface da web também são implementados no utilitário gráfico Supermicro IPMIView:
Para gerenciar o equipamento através do console do Linux, o utilitário correspondente é instalado (por exemplo,
Ipmitool para gerenciamento local e remoto ou
IPMICFG para local). Em seguida, usando comandos do console, um dispositivo IPMI é adicionado e o BMC é configurado.
Os clientes Selectel têm IPMI disponível para
configurações de servidor dedicadas e
personalizadas . O IPMI é implementado como um console KVM, que é executado em uma sessão noVNC através
do painel de controle . Para fazer isso, no cartão com informações sobre o servidor, clique no ícone do console no canto superior direito:
O console é aberto no navegador e ajusta-se ao tamanho da tela. Se desejar, o console pode ser usado mesmo através de um telefone ou tablet.
A sessão é interrompida se você sair do painel.
Conclusão
IPMI é um componente totalmente autônomo da plataforma do servidor, que não depende do sistema operacional, BIOS ou CPU do servidor.
Graças à IPMI, o custo de manutenção dos sistemas de servidor é reduzido e a vida dos administradores de sistema se torna mais simples. Não há necessidade de presença permanente perto do equipamento - seu trabalho é controlado remotamente pela rede.
Neste artigo, abordamos os componentes básicos do IPMI. No entanto, os detalhes da tecnologia são vastos. Desenvolvedores talentosos, confiando na especificação, podem criar seus equipamentos IPMI e ferramentas de código aberto, eliminando simultaneamente as deficiências da especificação atual e abrindo novas possibilidades para o controle remoto.
Materiais utilizados no artigo:
Especificação IPMI v2.0Supermicro white papers