一、简介
iDRAC卡相当于附加在服务器上的一台小电脑,通过与服务器主板上的管理芯片BMC进行通信,远程监控与管理服务器的硬件状态信息。当前可用的官网详细介绍请参考:http://zh.community.dell.com/techcenter/w/techcenter_wiki/189.idrac-7
这些工作原本由IPMI实现,当前版本为2.0。DELL的iDRAC封装了IPMI的功能,它提供的图形化界面简化了IPMI的配置工作。
二、启用iDRAC
2.1 插网线
观察到R730背板左侧有一个网口,标有iDRAC字样,使用网线将该网口和192.168.1.0/24网段所在的交换机连接起来。
由于经常做完配置后发现连不上iDRAC,才发现最关键的一部竟然没做,特此列出。
2.2 网络配置
重启计算机,依照屏幕显示按F2进入SystemSetup。选择iDRACsettings – Network,需要改动的如下(现在已经不再使用DHCP):
将DNS DRAC Name设定为与主机名对应。由于该主机为tian63,于是名字设为idrac-63.
禁用DHCP,设置主机192.168.1.61-76对应的iDRAC静态IP地址为192.168.1.101-116,设置staticgateway为192.168.1.254,保持子网掩码为255.255.255.0。本例中设定的iDRACIP地址为192.168.1.103.
接下来启用IPMI,如下图所示。
以上步骤事实上以图形界面的方式为IPMI做了配置。我注意到iDRAC的IP与IPMI的IP是一致的。对应的IPMI命令有:
ipmitool -I open channel info 1 (-I 表示interface,open是指OpenIPMI与BMC通信,适用于查看设定本地主机的iDRAC)
ipmitool lan set 1 ipaddr 192.168.1.103
ipmitool lan set 1 netmask 255.255.255.0
ipmitool lan set 1 defgw ipaddr 192.168.1.254(机房路由器IP
2.3 用户名配置
事实上这一步并不需要手动完成,使用iDRAC的默认配置即可。但为了清晰表明iDRAC自动为IPMI做的封装,特此列出。
选择iDRAC settings – UserConfiguration,可以看到默认配好了一个root用户,他的默认密码是calvin,我们将在第一次使用浏览器远程登录iDRAC时修改这个密码。
对应的ipmi命令为:
ipmitool user set name 2 root //创建用户
ipmitool user set password 2 calvin //创建密码
ipmitool channel setaccess 1 2 callin=on ipi=on link=on privilege=4 //开权限
ipmitool user list 1 // 查看chanenel1的用户信息
在被控制的主机上执行最后一条命令,可以发现root用户已经创建好了:
2.4 开始使用
使用浏览器访问刚才配好的IP(运行浏览器的主机需在同一局域网内):
注意会有证书错误,推荐使用IE浏览器。打开的界面如下:
以用户名root和密码calvin登录,首次登录将提示我们修改默认密码,此后便可以Web页面的方式远程浏览、配置服务器。
三、服务器串口重定向
按照夏老师的需求,要把被控服务器的串口输出重定向到控制服务器上显示,以便内核调试。接下来以tian61为被控服务器,tian62为控制服务器做展示。
3.1 设置BIOS串口重定向
重启计算机,依照屏幕显示按F2进入SystemSetup。选择System BIOS – Serial Communication,配置成下图所示:关于各项配置的帮助,可以按F1分别查看。通过帮助可知COM2才能使用SerialOn LAN (SOL)。注意这里的波特率115200以及终端类型VT100,将在后来的配置中用到。
3.2 设置iDRAC串行与LAN上串行
访问tian61的iDRAC,http://192.168.1.101启用IPMI串行,并设好波特率。接下来设置LAN上串行:
3.3 修改grub文件
调整/boot/grub/grub.cfg的权限使其可修改,再编辑(共2处):
增加红框所示的内容。COM1对应ttyS0,COM2对应ttyS1,故这里使用ttyS1.
3.4 修改securetty文件
编辑/etc/securetty,需要增加一行ttyS1,注意到Ubuntu14.04 Server版默认已经配好了,故无需修改。
3.5 设置/etc/inittab
尽管现在的Ubuntu发行版已经没有这个文件了,但通过/etc/init/rc-sysinit.conf可以发现还会读这个文件,因此我们可以手动创建它。并添加如下一行:
S1表示ttyS1,12345表示在这些run level启用,/sbin/agetty表示启动的应用程序。注意把波特率、终端等参数设对。
############################################
根据夏老师的提示,这里的设置并不重要。它是为了让我们使用串口线远程登录机器,和我们需求无关。当我们使用3.6节的控制服务器sol activate命令之后,在被控服务器上输入:
agetty -h -L 115200 ttyS1 vt100
此时控制服务器将输出:
输入用户名密码即可登录。我玩了一会儿,重启被控服务器时,控制服务器仍然一直有输出,直到登录前一刻卡住。我猜想,如果开启服务器自动登录,估计还能继续玩下去。
夏老师说agetty -h -L 115200 ttyS1vt100还可以放到/etc/init.d/rc.local中,而不是自创/etc/inittab,我尚未实验,原理上自然是对的。
3.6 开始使用
使用控制服务器tian62,启用SSH连接到被控服务器tian61的iDRAC:
输入DELL服务器专用命令console com2,将会临时显示下图界面(表明退出方法是CTRL+\):
此时在tian61上使用串口通信
服务器tian62将出现输出:
此外,控制服务器tian62还有另一种使用IPMI的方法:
用这条命令的好处在于可以双向重定向到文件中:在刚才的命令末尾增加 | tee log.txt
但我遇到一个问题,夏老师在Mac上也遇到了:出现上图所示的内容后,得先按一下回车才能收到远端的串口信息。
3.7 常见使用问题
1. 执行ipmitool-I lanplus -H 192.168.1.101 -U root -P Tiana517 sol activate后报错:
Info: SOL payload already activeon another session
解决方法:ipmitool -I lanplus -H192.168.1.101 -U root -P Tiana517 sol deactivate
附注
完成服务器串口重定向后,重启计算机,依照屏幕显示按F2进入SystemSetup,会发现DELL的图形界面变成了字符界面: