前言

网络上很多人对服务器的第一印象就是声音很吵,配置和安装服务器都无从下手。PC和服务器有一个很大的区别就是服务器带有BMC和IPMI,通过本篇的学习,你可以轻松控制服务器的各种配置,快速查看服务器的状态,甚至将服务器的风扇调到相对安静的水平。

什么是BMC和IPMI

BMC(Baseboard Management Controller)基板管理控制器是独立于服务器系统之外的小型操作系统,是集成在服务器主板上的芯片,比服务器享有更大的权限,一般对外配有一个RJ45的网口,拥有独立的IP,可以用来实现服务器的远程管理、监控、安装、重启等。服务器一般要求进行7X24小时的不间断运作,如果中间系统出现故障导致无法开机,而BIOS代码又要交给CPU来执行,这时就需要有一个独立于服务器系统之外的控制系统来对服务器进行维护甚至是更改BIOS设置,而BMC就是这样的一个系统,它上电自启,不依赖与服务器的系统和网络,能通过IPMI协议对服务器进行控制。

IPMI(Intelligent Platform Management Interface)智能型平台管理接口是一组交互标准管理规范,由 Intel、HP、Dell 和 NEC 公司于1998年9月16日共同提出,定义了一系列命令和功能,用于远程管理服务器硬件。它规定了管理和监控系统所需的通信协议、命令和功能。

两者之间的关系在于IPMI是一种标准规范,BMC是实现这个标准规范的控制器硬件本体。BMC通过实现IPMI标准中定义的命令和功能,提供了远程管理服务器的能力。它可以监控硬件状态、记录系统事件、执行远程电源控制等功能,从而实现了IPMI所描述的远程管理功能。

在实际应用中,人们经常将IPMI和BMC这两个术语混用,因为它们通常在相同的上下文中出现,用于描述服务器远程管理和监控的功能和组件。

使用厂商开发的IPMI管理界面对服务器进行管理

服务器厂商会基于IPMI协议开发出适合自己硬件的BMC管理软件,比如AMI开发的BMC用于曙光浪潮联想和H3C等服务器。华为开发的IBMC只用于华为的服务器。DELL开的的IDRAC只用于Dell的服务器。

为了能在开机的时候正确进入BMC外带管理界面,在BIOS启动界面一般会显示外带管理界面的地址,也可以通过网络设备查看分配的地址。

将自己的电脑和服务器的IPMI口用网线连接在一起,并设置子网掩码网关和ip地址使电脑和服务器的IPMI地址在同一网络下。

使用web浏览器访问BMC界面,在所用的 Web 浏览器中输入BMC的IP地址,然后按下回车键。这将打开一个登录页面,要求提供账户和密码,在这里给出常用的BMC管理界面的默认账号密码。

服务器名称

默认账号

默认密码

曙光

admin

admin

DELL

root

calvin

华三

admin

Password@_

IBM

USERID

PASSWORD

华为

root

Huawei12#$

在进入BMC的管理界面之后,就可以通过web界面对服务器进行设置,如果账户密码错误,大部分服务器都可以通过进入bios来更改BMC管理界面的账号密码和ip地址。所以我推荐在拿到一台服务器之前,先开机进入bios进行相关设置的修改。

使用IPMITOOL对服务器进行管理

IPMITool是一个开源的命令行工具,用于管理基于IPMI的服务器硬件。它允许管理员通过远程连接到服务器,执行各种管理任务,如监控传感器状态、远程重启、设置系统参数等。IPMITool提供了丰富的功能和选项,使管理员能够轻松地与支持IPMI协议的服务器进行交互。

对于大部分人来说,登录到IPMI管理界面就可实现大部分的服务器远程运维工作。但如果为了实现更为复杂的物理服务器运维策略就需要IPMITOOL这个工具结合python和shell语言进行编程,这里我给出基本的IPMITOOL指令。

如果使用IPMITOOL的操作系统是建立在你需要控制的物理服务器之上的,需要在BIOS里或者厂商开发的IPMI管理界面里进行设置,允许IPMI直通操作系统,并选择通过网络直通。使你在操作系统里能够正常Ping通IPMI或者说BMC的IP地址。

首先进行工具在Ubuntu系统上的安装。

sudo apt install ipmitool

首先定义ipmi管理的ip地址、用户名、密码。

export IPMI_USER="你的用户名"
export IPMI_PASSWORD="你的密码"
export REMOTE_HOST="IPMI的IP"

列出传感器数据记录器(Sensor Data Records),提供有关系统的各种传感器(如温度、电压、风扇转速等)的信息。你可以结合grep 指令来筛选出你所需需要的传感器信息。

ipmitool -H $REMOTE_HOST -U $IPMI_USER -P $IPMI_PASSWORD sdr list

重启服务器系统

ipmitool -H $REMOTE_HOST -U $IPMI_USER -P $IPMI_PASSWORD power cycle

关闭服务器系统

ipmitool -H $REMOTE_HOST -U $IPMI_USER -P $IPMI_PASSWORD power off

打开服务器系统

ipmitool -H $REMOTE_HOST -U $IPMI_USER -P $IPMI_PASSWORD power on

获取事件日志

ipmitool sel list

查看系统信息

ipmitool -H $REMOTE_HOST -U $IPMI_USER -P $IPMI_PASSWORD chassis status

通过这些指令就可以结合shell和python来编写简易的物理服务器运维脚本。

通过IPMITOOL开发的工具对服务器进行风扇调速

事实已经有不少运维大佬通过IPMITOOL开发了非常方便的带有GUI界面的ipmi远程管理工具,由于IPMI协议对服务器来说是通过的,你可以在windows系统上通过这些工具非常方便的对绝大多数服务器进行运维。

对于家用PC来说系统风扇和CPU风扇的控制是集成在主板的BIOS里,我们可以通过开机时按Del键进入BIOS并对风扇进行调速。而服务器对风扇的控制则集成在了主板上的BMC芯片中,通过IPMI的信道去发送调整风扇转速的指令。

首先应当进入服务器的BIOS中或者ipmi管理界面中打开ipmi over lan 功能,这样就可以通过lan口来对服务器进行管理。

下载dell_fans_controller这款软件到windows系统上,这软件是基于IPMITOOL进行开发的。所以对支持IPMI协议的服务器来说都是通用的。

首先确保你能Ping通服务器的IPMI地址,然后在工具里面填入IP地址账户用户名和密码,就能使用这款工具来对服务器进行风扇的调速。