简介
在维护过程中,服务器难免会死机,此时如果服务器远在“天边”,“千里奔波”只是为了按一下电钮,不仅“劳命伤财”,也不符合SA“决胜千里之外”的风格。
此时,我们希望做到:
?一条命令重启(启动/关闭)服务器
?一条命令检查服务器状态
?(远程)终端诊断启动问题,解决ssh服务无法访问的问题
解决的方案是采用IPMI(Intel公司推出的远程管理解决方案),也称为Baseboard Management Cards (BMCs) ,可以在服务器通电(没有启动操作系统)情况下对服务器进行远程管理。
Dell的 Baseboard Management Controller (BMC) 是IPMI的一个实现。该BMC 可以通过主板集成的第一块网卡实现网络管理。并且这个BMC管理IP是独立的IP地址(需要单独占用)。
在设置 IPMI时,建议先在主机前设置,因为多数IPMI命令关闭主机时也会杀掉BMC,这样需要手工按电源开关启动服务器,只有确实完成了所有设置,则不再需要现场操作。为实现管理,需要一个Linux主机安装IPMI命令包来发出IPMI指令,在其他操作系统平台,也有类似IPMI软件包。
Dell服务器实现:
?Dell服务器在1850/2850系列中,实现了IPMI v1.5规范,也就是能够通过ipmi指令来关闭和重启服务器,但是不能ipmi控制台登录。
?Dell服务器在1950/2950之后,实现了IPMI v2.0规范,不仅能够远程重启服务器,并且能够通过ipmi控制台,远程维护服务器(即使操作系
统死机,ssh网络无法登录),控制台重定向到ipmi控制台(这样可以
远程连接服务器,就像连接了键盘和显示器),对于我们故障抢修有很大帮助。
唯一要求的是,在系统实施的时候,要提前设置:
?BIOS中设置好串口控制台重定向(如果这一步不设置,则启动时BIOS信息不能查看,但仍然可以使用IPMI远程管理)服务器启动时设置Remote Access IP和帐号密码用于IPMI管理
?这个步骤也可以在操作系统中通过命令来实现。也就是说,即使一些服务器已经安装部署了,不方便再出差去调整配置,只要我们能够远程ssh
登录到操作系统,仍然可以通过软件的方式来开启IPMI管理。
?建议在实施的时候,提前设置好IPMI配置,并验证使用。毕竟远程设置存在一些风险。另外,在设置前,先在本地做好详尽测试,确保设置无误。
配置IPMI(BMC)远程工作
有两种方式配置IPMI,一种是启动服务器时进入Remote Access
Setup系统(BIOS 启动自检),可以激活IPMI远程访问;另一种方式是安装了Linux操作系统,在Linux操作系统中使用ipmitool来设置(前提是已经加载了一些ipmi内核模块)。
BIOS启动时设置
在BIOS启动最后阶段,按下ctrl-e进入Remote Access
Setup管理界面,并激活IPMI远程访问
?激活IPMI Over LAN
激活时会提示BMC Management traffic will not function properly if the LAN on Motherboad (LOM) is teamed with any network adapter add-in-cards,这表明如果主板上网卡和附加网卡 bonding时,IPMI功能将失效。
?NIC Seclection设置默认是Shared状态,另外两种状态是
Shared-Failover和Dedicated where applicable
o LAN Parameters设置
?IP Address Source默认是Static静态分配方式,另一种
模式为DHCP模式。通常IPMI为了能够管理,设置静态地址
较好。
?Etnernet IP Address设置为192.168.8.213
?Subnet Mask设置为255.255.255.0
?Default Gateway根据情况设置。要保证设置了默认网关
后,能够通过IPMI方式访问服务器的管理主机的访问是有
限制的和安全的,否则会存在安全隐患。
?VLAN Enable默认没有激活,或许适合在复杂的VLAN网络
中使用。
o LAN User Configuration是重要设置,保障IPMI访问安全
?Account Access默认激活
?Account Privilege默认权限是Admin
?Account User Name默认用户名是root
?设置访问密码
操作系统上使用ipmitool命令设置IPMI
2 /usr/bin/ipmitool -I open lan set 1 netmask 255.255.255.0
3 /usr/bin/ipmitool -I open lan set 1 access on
如果需要设置网关,则输入以下命令
?加强BMC安全,这样非授权用户才不会重启服务器。为做到这点,首先是需要修改默认的SNMP通讯串,null用户密码,以及root用户密码。
?设置null用户的密码
?设置root用户密码
?检查配置(在服务器上本地执行)
操作系统准备
?安装 IPMItool 和启动脚本
在Redhat Enterprise服务器需要安装 OpenIPMI OpenIPMI-tools
OpenIPMI-libs 和 OpenIPMI-devel 软件包。安装完成后可以实现所有功能。
?安装OpenIPMI
?安装 OpenIPMI-tools
?启动服务
2 /sbin/service ipmi start
?安装freeipmi,该软件包包含 ipmiconsole
Gentoo平台安装IPMI软件包
https://www.doczj.com/doc/967500879.html,/wiki/Dell_PowerEdge_2950_III提供了有关在Dell PowerEdge 2950 III安装gentoo的资料,也提供了IPMI安装介绍
?内核要求(注意客户机和服务器都需要支持)。不过,客户端不需要启动ipmievd服务,因为缺少设备/dev/ipmi0 /dev/ipmi/0 /dev/ipmidev/0
Device Drivers --->
Character devices --->
[*] Generate a panic event to all BMCs on a panic
[*] Generate OEM events containing the panic string
?安装IPMI软件包
2 rc-update add ipmievd default;
启动ipmievd报错信息表明系统没有支持ipmi功能模块(不过客户机不需要启动此服务)
ipmievd: using pidfile /var/run/ipmievd.pid0
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory
Unable to open interface
* start-stop-daemon: failed to start `/usr/sbin/ipmievd' [ !! ]
* ERROR: ipmievd failed to start
ipmitool
检查当前配置
[root@ws02 ~]# ipmitool -I open lan print 1
Set in Progress : Set Complete
Auth Type Support : NONE MD2 MD5 PASSWORD
Auth Type Enable : Callback : MD2 MD5
: User : MD2 MD5
: Operator : MD2 MD5
: Admin : MD2 MD5
: OEM : MD2 MD5
IP Address Source : Static Address
IP Address : 192.168.8.213
Subnet Mask : 255.255.255.0
MAC Address : 00:1e:4f:36:ef:9f
SNMP Community String : public
IP Header : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
Default Gateway IP : 0.0.0.0
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 : 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
Cipher Suite Priv Max : aaaaaaaaaaaaaaa
: X=Cipher Suite Unused
: c=CALLBACK
: u=USER
: o=OPERATOR
: a=ADMIN
: O=OEM
?客户端远程检查服务器状态
使用ipmitool
?可以设置一个环境变量 IPMI_PASSWORD ,该环境变量就是你使用的密码。
1 e xport IPMI_PASSWORD="PASSWORD"
然后在使用时,只要使用参数-a就可以使用以上密码。
?以下命令检查目标服务器是否启动
则可能获取到如下信息
Chassis Power is on
如果没有收到任何信息,则检查BMC是否设置正确,是否使用正确密码,以及
IP地址。特别检查 Ctrl-E 启动菜单。
?关闭目标服务器电源
?重启目标服务器
?显示目标服务器的系统日志(sel, system event log)
ipmi端口镜像
BIOS串口重定向
参考https://www.doczj.com/doc/967500879.html,/13317.html
要让控制台能够从IPMI网络输出,需要同时配置 BIOS, GRUB 和 ttyS1 以从IPMI网络输出。注意:COM2/ttyS1是逻辑的(mandatory),可能并不适合使用COM1/ttyS0。
重新启动服务器,按F2访问BIOS,在Serial Communication菜单设置:?设置 Serial Communication 为 On with Console Redirection via COM2 ?设置 External Serial Connector 为 COM2
?设置 Failsafe Baud Rate 为 115200(这个设置似乎不影响)
?设置 Remote Terminal Type 为 VT100/VT220
设置 Set Redirection After Boot 为 Enabled
以上设置完成后,一旦服务器重启,就可以使用以下命令
访问服务器。
服务器启动的BIOS自检信息将在终端中输出。并且,可以使用IPMI方式,在远程终端中查看和设置BIOS信息(虚拟 kvm)
不过,启动到操作系统级别后,控制台输出将不走IPMI。因为,尚没有设置grub 的串口输出(见下配置)。
Grub串口重定向
参考:https://www.doczj.com/doc/967500879.html,/archive/index.php/t-439550.html 一些服务器可以实现将原来串口输出的内容镜像到IPMI接口上。
在启动的grub.conf中添加
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 timeout=10
#for IPMI Setup serial (COM2) ,不过不要设置以下串口配置!!!(仅作参考) # 按照参考文档,在这里需要设置串口的速率。但是我在实践中发现,一旦设置了串口配置, # 启动时就必须在GRUB 提示"Press any key to continue"时在主机前的键盘或者远程ipmi 控制台按一下回车键。 # 如果没有按回车键,系统就会挂在那里。等到超时以后,不论主机键盘或ipmi 控制台都没有响应,只能reset 电源重启,非常麻烦。 # serial --unit=1 --speed=57600 --word=8 --parity=no --stop=1 # terminal --timeout=5 serial console #splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-164.11.1.el5PAE) root (hd0,0) kernel /boot/vmlinuz-2.6.18-164.11.1.el5PAE ro root=LABEL=/1 console=tty0 console=ttyS1,57600n8
initrd /boot/initrd-2.6.18-164.11.1.el5PAE.img
并且在/etc/inittab 中的6个mingetty 行下添加
注意:控制台重定向的bit 率要设置为57600!
已经测试,设置为115200/9600会导致一旦grub 开始输出控制台,则ipmitool 中输出的都是乱字符。如果设置为19200,启动到中途会挂起,即不继续 启动,也没有输出。
控制台连接
联机服务器
或者使用
1 i pmitool -I lanplus -H 10.0.99.x -U login -P password sol activate 参考
?Running IPMI on Linux详细的IPMI部署文档
?How to Configure IPMI on a Dell PowerEdge running Red Hat Enterprise Linux这个文档介绍了IPMI软件在dell服务器redhat linux上的安装,以及基本的服务器重启方法,但没有详细介绍控制台重定向,所以需要参考下一个文档。
?Remote Console Access with IPMI on Dell 2950这个文档比较清晰明了,特别介绍了在BIOS中启用IPMI和通过操作系统软件启用IPMI方法,重点参考。另外,远程终端访问功能特别重要,需要仔细学习。
?Howto setup IPMI under Linux (RHEL/CentOS 5) on the HP BL460c (Intel(R) Xeon(R) E5430)在RHEL上部署IPMI
?IPMI Sensor Data on Dell 1850s and 2850s via SNMP and Cacti使用snmp结合cacti查看Dell服务器的ipmi输出
?https://www.doczj.com/doc/967500879.html,/support/edocs/software/smdrac3/index .htm Dell网站在线提供有关DRAC手册
o Integrated Del l? Remote Access Controller 6 (iDRAC6) Enterprise for Blade Servers Version 2.2 用户指南提供最新
iDRAC使用指南,适合最新R710服务器远程管理(2950的升级换
代产品)