Dell PowerEdge 系列服务器的远程控制命令

Dell PowerEdge 服务器远程控制参考手册

本手册介绍 Dell PowerEdge 系列服务器的远程控制命令。

远程控制功能

本文所涉及的远程控制是指基于主板 Baseboard Management Controller (BMC) 或远程控制卡 Remote Access Controller (RAC)的操作办法,主要是指在主机加电、网络连通的前提下,远程开关机,切换启动媒介,查看主机硬件状态,远程查看控制台并安装操作系统。其中终端和 刷系统的功能需要安装企业版远程控制卡;开关机和查看硬件状态有 BMC 即可。

Dell PowerEdge 系列服务器都配有 BMC,也就是说中文网所有服务器都支持通过 IPMI LAN 接口远程开关机和查看硬件状态;所有 R610 机器都标配 iDRAC6 Express 卡,大部分 R610 机器配有 iDRAC6 Enterprise 卡。仅 Enterprise 卡有独立网口,且支持远程终端和刷系统。Enterprise 卡依赖于 Express 卡。

根据 Dell 参考资料,主机上若有 DRAC 卡,则 BMC 被屏蔽,DRAC 卡的 IPMI LAN 接口是默认关闭的,需要通过 DRAC 命令客户端 racadm 开启,或者直接用 racadm 代替通用 IPMI 命令客户端(如 ipmitool, freeipmi)实现其所有操作。

远程控制故障诊断

部分 PowerEdge 服务器如 R410、R510、R710 标配不含 Express 卡,若采购配置为 Enterprise 卡,那么渠道商方面可能擅自调换配件,在原标配基础上加个 Enterprise 卡,但这样的配置下,开机时会提示是 BMC(Baseboard Management Controller)而非 Enterprise 卡,这是因为没有 Express 卡则 Enterprise 卡无法工作。此时必须向戴尔销售或服务热线反馈,补发相应机型的 Express 卡配件(价格已包含在 Enterprise 卡中)。Express 卡的安装参考相应机型的 Hardware Owner‘s Manual,或者由戴尔工程师代为安装。

Express 卡只支持共享网口,而Enterprise 卡可以配为使用独立网口或者共享网口,有些 Enterprise 卡机器可能会发生配为独立网口但是无法连通的情况,此时可以到现场或者登陆主机系统恢复 DRAC 卡出厂设置,再启用独立网口。

iDRAC 卡支持简单的防火墙功能,但只能限定一个网段的访问,如果该功能启用但限定网段设置有误,那么无法使用远程控制通道。除了到现场重启机器进行配置外,可以 登陆主机系统,使用相应版本的本地 racadm 命令解除限定,或者在特定网络环境下欺骗一个该限定网段的地址,从而获得访问控制。注意该限定功能只影响 ssh 、远程 racadm 和 web 访问等功能,而 IPMI lan 是不受影响的,IPMI 目前也都不支持解除限定或恢复出厂设置等 DRAC 扩展功能。

远程控制命令客户端

远程控制命令行客户端有两种,一种是标准 IPMI 客户端,只支持远程开关机、切换启动媒介、查看主机硬件状态等有限的功能,另一种是戴尔 DRAC 客户端,支持更多功能。两种客户端都有本地(主机系统)和远程两种模式。

iDRAC 也支持 Web 访问,可以用 https://idrac_ip 访问。只有图形界面才支持介质映射。图形界面需要用 Internet Explorer 或 Firefox 访问,如果需要访问虚拟控制台功能,那么 Internet Explorer 需要安装 ActiveX 空间, Firefox 需要 Java Web Start 支持。详见“端口影射部分”。

标准 IPMI 客户端 ipmitool 的安装

# yum install OpenIPMI OpenIPMI-tools  # CentOS 5
# yum intall ipmitool                  # CentOS 6

注意,仅为标准发行版内核且使用 open 接口时才需要安装 OpenIPMI 包(便于加载内核模块);系统部编译的静态内核有 IPMI 支持,而系统部裁剪的系统预装了 Dell srvadmin 不识别静态内核,其 instsvcdrv 服务会在开机时删掉 /dev/ipmi0 ,造成 IPMI open 接口无法访问,创建该设备文件便可以恢复使用。

# mknod /dev/ipmi0 c `awk ‘/ipmidev/{print $1}‘ /proc/devices` 0

戴尔 DRAC 客户端的安装

戴尔 DRAC 客户端 DTK 由于厂商工具包演变,依赖关系很混乱,dns1:/export/PXE/dtk_3.0_519_Linux/tools/dell-toolkit.rpm 是一个比较干净的版本。

# # also installs compat-libstdc++-33 on CentOS 6
# yum --nogpgcheck localinstall dell-toolkit.rpm

命令文件是 /opt/dell/toolkit/bin/racadm{,3,4,5,6},不同型号的板卡使用不同的版本的工具,而且 racadm6 似乎只支持 Enterprise 卡,没有本地客户端支持 Express 卡。

此外,DRAC 客户端支持 ssh 访问,可以 ssh 登陆 DRAC 地址,然后在 SM-CLP 命令行下使用 racadm (注意 help 不显示该命令)。

命令参考

注,
racadm 子命令的支持与具体版本有关;
racadmX 统一使用 racadm 表示,不再区分具体客户端,不区分本地和远程,远程命令加上 -r DRAC_IP -u root [-p PASSWORD];
ipmitool 命令统一使用 open 接口表示,使用 lan 接口需加上 -I lan -H DRAC_IP -U root [-f PASSWORD_FILE] 等选项;
IPMI lan 地址和密码参见各地管理机 /etc/sel.passwd 文件,注意该文件权限为 0600

帮助

# man ipmitool
# racadm help
# racadm getconfig -h

主机信息

# ipmitool delloem sysinfo
# racadm getsvctag
# racadm getsysinfo
# syscfg --biosver

启用 DRAC 的 IPMI lan 功能

# racadm config -g cfgIpmiLan -o cfgIpmiLanEnable 1

主机电源状态/关机开机/冷重启/热重启/关机/开机

# ipmitool chassis power  status/cycle/reset/soft/off/on
# racadm serveraction powerstatus/powercycle/hardreset/?/powerdown/powerup

重启 DRAC 卡

# ipmitool mc reset cold/warm
# racadm reset

恢复 DRAC 卡出厂设置

# racadm racresetcfg

解除 IP 段限制

# racadm config -g cfgRacTuning -o cfgRacTuneIpRangeEnable 0

设置 lan 接口参数

root 用户编号是 2 ,默认密码是 calvin

# ipmitool user list 1
ID  Name         Callin  Link Auth    IPMI Msg   Channel Priv Limit
2   root             true    true       true       ADMINISTRATOR

>  racadm getconfig -u root
# cfgUserAdminIndex=2
cfgUserAdminUserName=root
# cfgUserAdminPassword=******** (Write-Only)
cfgUserAdminEnable=1
cfgUserAdminPrivilege=0x000001ff
cfgUserAdminIpmiLanPrivilege=4
cfgUserAdminIpmiSerialPrivilege=4
cfgUserAdminSolEnable=1

# ipmitool user set password 2 xxx
# ipmitool delloem lan set dedicated
# ipmitool lan set 1 ipaddr 172.24.0.x
# ipmitool lan set 1 netmask 255.255.255.0
# ipmitool lan set 1 defgw ipaddr 172.24.0.230
# ipmitool lan print

# racadm config -u root -g cfgUserAdmin -o cfgUserAdminPassword xxx
# racadm config -g cfgLanNetworking -o cfgNicEnable 1
# racadm config -g cfgLanNetworking -o cfgNicIPv4Enable 1
# racadm config -g cfgLanNetworking -o cfgNicSelection 2
# racadm config -g cfgLanNetworking -o cfgNicIpAddress x.x.x.x
# racadm config -g cfgLanNetworking -o cfgNicNetmask 255.255.255.0
# racadm config -g cfgLanNetworking -o cfgNicGateway x.x.x.x

设置下一次启动的引导媒介(似乎无法生效?)

# ipmitool chassis bootdev pxe
# racadm config -g cfgServerInfo -o cfgServerFirstBootDevice PXE

设置引导顺序和重试

# syscfg --bootseq  # 查看引导顺序
# syscfg --bootseq=hdd.emb.0,nic.emb.1
# syscfg --bootseqretry=enable

LCD 显示屏控制

# ipmitool delloem lcd status
# ipmitool delloem lcd set mode userdefined xxx

导出/比对 IPMI 配置

# yum install freeipmi
# bmc-config --checkout > bmc.conf
# bmc-config --diff --file bmc.conf
# ipmi-chassis-config --checkout > chassis.conf
# ipmi-chassis-config --diff --file chassis.conf

注,freeipmi 只支持 IPMI 规范,不支持厂商扩展特性,ipmitool 则有一些支持。

iDRAC 端口映射配置

悲剧的是,IPMI 没有防火墙功能,iDRAC https 只支持限制单网段的访问,虽然还支持密码试探的频率限制。我们的硬件检测走的是 IPMI(管理机走的是 open 接口)。出于安全考虑,中文网的 iDRAC 除了管理机 mgr1 和 mrg2 放在了内网。无论从公司出口还是其他可信公网出口,都无法直接访问 iDRAC 网络,也就是说,无法使用其虚拟控制台功能,除非做端口映射。

iDRAC 功能 端口 说明
iDRAC web tcp/443 https://idrac_ip
iDRAC virtual screen tcp/5900 在 iDRAC web 里点“虚拟控制台”时,Firefox 版会下载一个 jnlp 文件(包含会话信息,使用一次就会失效),java web start 根据该文件下载客户端,该客户端会连接 5900 端口打开虚拟控制台
iDRAC ssh tcp/22 ssh idrac_ip 登陆后可以使用 racadm 命令
IPMI udp/623 ipmitool -I lan -H idrac_ip

在 ssh 客户端上转发端口

ssh 客户端如 SecureCRT, Putty 和 X-Shell 都支持本地端口转发,即登陆到中转机时本机上建立 SOCKS5 代理端口,访问本机的该端口时相当于在中转机上访问目标资源(如内网的 iDRAC )。一个 ssh 连接可以同时启用多个 SOCKS5 代理。本地端口转发的的配置因客户端而异,以 ssh(1) 为例,是

ssh some_host -D 127.0.0.1:443 -D 127.0.0.1:5900

需要注意的是,SOCKS5 代理应该侦听 127.0.0.x 以避免安全问题。这样可以支持同时访问多个内网 iDRAC

ssh some_host -D 127.0.0.1:443 -D 127.0.0.1:5900 -D 127.0.0.2:443 -D 127.0.0.2:5900

在中转机上映射端口

如果 iDRAC 使用了内网,可能映射这些端口 ipmi udp/623 和 idrac tcp/{22,443,5900},以 gw50 为例:

# ip addr add 172.24.0.230 dev eth1          # 所有内网 iDRAC 的网关
# ip addr add 0.0.0.0 dev eth3        # 公网映射入口
# arping -I eth3 -c 3 -U 0.0.0.0      # 通知路由器
## net.ipv4.ip_forward=1                     # 启用网关功能

# iptables -t nat -L -nv   # 查看现有规则
# iptables -t filter -L -nv

# iptables -t nat -I PREROUTING -i eth3 -d 0.0.0.0 -p tcp --dport 443  -j DNAT --to 172.24.0.50   # 公网进来的 https 流量
# iptables -t nat -I PREROUTING -i eth3 -d 0.0.0.0 -p tcp --dport 5900 -j DNAT --to 172.24.0.50   # 公网进来的虚拟控制台流量
# iptables -t nat -I PREROUTING -i eth3 -d 0.0.0.0 -p udp --dport 623  -j DNAT --to 172.24.0.50   # 公网进来的 IPMI 流量(可选)
# iptables -t nat -I OUTPUT -d 0.0.0.0 -p tcp -m multiport --dports 22,443,5900 -j DNAT --to 172.24.0.50 # 网关产生的流量(可选)
# iptables -t nat -I OUTPUT -d 0.0.0.0 -p udp --dport 623 -j DNAT --to 172.24.0.50                # 网关产生的流量(可选)
# iptables -t nat -I PREROUTING -i eth3 -d 0.0.0.0 -p icmp --icmp-type 3 -j DNAT --to 172.24.0.50 # Path MTU
# iptables -t nat -I POSTROUTING -o eth3 -s 172.24.0.0/24 -j SNAT --to 0.0.0.0                    # 内网出去的流量
# iptables -t filter -I FORWARD -d 172.24.0.0/24 -j ACCEPT    # 转发流量过滤,可以加上具体的公网源 IP 限定

注,上述 0.0.0.0 同一时间只能映射到一个内网地址。从网关向公网入口IP发起请求需特别注意,确认 nat/OUTPUT 已设射规则,不然实际访问的就是网关主机而非iDRAC系统。

iDRAC web 的问题

注意:iDRAC 使用缺省证书可能导致证书冲突 sec_error_reused_issuer_and_serial ,此时需要删除所有 Dell iDRAC 相关的证书,包含 iDRAC 服务器证书和证书机构中的 Dell inc. iDRAC 根证书(iDrac 使用 self-signed 证书,故归入此类)

另外,较低版本的 iDRAC 会遇到两个问题:1)使用 IE 浏览器关闭 iDRAC 界面而不注销,可能造成无法再次登录;2)Fireforx 浏览器打不开虚拟控制台,表现为无法保存 jnlp 文件。

缺陷版本(武汉)
    设备类型     iDRAC6
    硬件版本     0.01
    固件版本     1.70 (Build 21)
    固件更新     Fri Apr 1 17:07:41 2011
修复版本(东莞)
    设备类型     iDRAC6
    硬件版本     0.01
    固件版本     1.80 (Build 17)
    固件更新     Tue Nov 8 14:49:22 2011

问题 1)暂无解决办法。

问题 2)可以绕过。这个问题可能是由于产生的 jnlp 文件里面有个中文编码,造成 firefox 无法保存该启动文件。

>>> decodeURIComponent("=idrac-FWKL33X%2C+PowerEdge+R610%2C+%u7528%u6237%uFF1Aroot")

URIError: malformed URI sequence
   decodeURIComponent("=idrac-FWKL33X%2C+PowerEdge+R610%2C+%u7528%u6237%uFF1Aroot"

实际上是 "title=idrac-FWKL33X,+PowerEdge+R610,+用户:root"

>>> decodeURIComponent("title=idrac-FWKL33X%2C+PowerEdge+R610%2C+User%3Aroot")

"title=idrac-FWKL33X,+PowerEdge+R610,+User:root"

通过 firebug 记录原始请求,再用 openssl 获取完整的 jnlp 内容,将其中的 %u7528%u6237%uFF1A 改为 User%3A 即可,然后双击 jnlp 文件激活 java webstart 来下载并启动虚拟控制台。注意,该 jnlp 包含的 token 使用一次就失效,使用失效的 jnlp 会提示“登录失败,可能是网络太慢,请重试”,必须在 https 界面点“启动”产生新的 jnlp 内容。

# openssl s_client -connect 0.0.0.0:443
...

GET /viewer.jnlp([email protected]@idrac-FWKL33X%2C+PowerEdge+R610%2C+%u7528%u6237%[email protected]) HTTP/1.1
Host: 0.0.0.0
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: https://0.0.0.0/sysSummaryData.html?cat=C00&tab=T00&id=P00
Cookie: _appwebSessionId_=8f5ec0e255d7552abb915fde55cc25f5; batteriesIcon=status_normal; fansIcon=status_normal; intrusionIcon=status_normal; powerSuppliesIcon=status_normal; removableFlashMediaIcon=status_normal; temperaturesIcon=status_normal; voltagesIcon=status_normal
Connection: keep-alive

HTTP/1.1 200 OK
Date: Mon, 28 Jan 2013 08:55:35 GMT
Server: Mbedthis-Appweb/2.4.2
Content-type: application/x-java-jnlp-file
Content-length: 3242
Connection: keep-alive
Keep-Alive: timeout=60, max=2000
Cache-control: max-age=604800
Last-Modified: Mon Jan 28 08:55:35 2013

<?xml version="1.0" encoding="UTF-8"?>
...

参考资料

http://support.dell.com/support/edocs/software/smdrac3/idrac/
http://support.dell.com/support/edocs/systems/
http://stuff.mit.edu/afs/athena/dept/cron/documentation/dell-server-admin/en/DRAC_5/racugc1j.htm

After updating Java version, my application stops working.
http://java.com/en/download/help/clearcache_upgrade.xml

Java Network Launch Protocol (JNLP) Support
http://www.oracle.com/technetwork/java/javase/index-142562.html

http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#TRAVERSINGOFTABLES

时间: 2024-10-28 10:19:25

Dell PowerEdge 系列服务器的远程控制命令的相关文章

dell PowerEdge R820机架式4路服务器

产品详情 硬件 1 PowerEdge R820 主板, 无-TPM, 英特尔至强 E5-46XX v2 处理器 1 2x 英特尔至强 E5-4607 v2 2.6GHz, 15M 缓存, 6.4GT/s QPI, 无 Turbo,6核, 95W, 最大内存 1333MHz 1 塑料导风槽,仅用于 2X 处理器, PowerEdge R820 1 R820 机箱 1 面板 1 1600 MHz RDIMMS 1 性能优化 2 8GB RDIMM, 1600MT/s, 低电压, 单列, x4 带宽

使用 ipmitool 实现远程管理Dell 系列服务器

IBM 文档:       http://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html ipmi命令收集: http://hi.baidu.com/guizishou/blog/item/d0c2a2440c10d58bb2b7dc29.html 先贴上网上一般的教程: 设置方法: 网线一定要插到1号口,因为只有插到1号口远程管理才管用,当时操作体统的ip地址也要设置在1号口上. 启动机器,然后机器开始自检,要特别注意屏幕上的提示,等

如何配置nagios监控SUN(富士通)MX000系列服务器的XSCF

配置环境说明 192.168.3.80-XSCF地址 192.168.2.80-solaris操作系统IP地址 (nagios客户端) 192.168.2.120-nagios服务器端 check_xscf.pl-检查xscf的执行脚本,放在nagios客户端上. check_xscf.cfg-检查xscf的配置文件,主要用于设置温度和电压的阈值,放在nagios客户端上. 脚本下载地址:http://exchange.nagios.org/directory/Plugins/Uncategor

[Perforce系列—] 1. 使用Perforce 命令 与常用命令

前言 常见使用 p4 的方式就是使用Client 端,但是有的时候遇到这样的状况: 1. Client 端的操作方式的局限, 有些操作无法实现 (一般这样的状况不多) 2. 使用P4 和其他一些工具进行整合, 比如p4 整合自动部署 3. 使用代码的方式来使用p4, 比如使用Perl语言来与P4 进行交互 .... 以上的状况, 直接使用P4 Client 的话, 就没办法达成我们的要求了.这个时候自然就要使用到P4的命令行. 关于环境变量设置 Perforce的环境变量配置 下载安装完P4 之

Linux服务器通过aws命令行上传文件至S3

目的Linux服务器通过AWS命令行上传文件至S3 配置打开你的AWS控制台: 连接你的Linux服务器,按照以下步骤操作: # 安装pip yum -y install python-pip   # 安装awscli pip install awscli   # 初始化配置 aws configure # 做这一步时系统会要求你输入"访问密钥ID"."私有访问密钥"."默认区域名称"."默认输出格式",前两个在创建IAM用户

Dell PowerEdge RAID Controller (PERC) | Dell

Dell PowerEdge RAID Controller (PERC) The Dell? PERC (PowerEdge? RAID Controller) family of enterprise-class controllers is designed for enhanced performance, increased reliability and fault tolerance, and simplified management - providing a powerful

TinyOS系列——服务器远程指令多跳实现过程中问题及解决方案

开发经验: 1.嵌入式程序,调试可能比较麻烦,一定要有耐心,戒骄戒躁 2.开发之前一定要理清自己的逻辑框架,不然只能越写越乱 3.代码开发与测试迭代进行,一步一步,如果代码量过大,很难跟踪找到问题出错的点 开发步骤: 模块开发必须理清自己的思路以及逻辑,学会分步进行: 1.测试节点C[i]是否能够正常接收.发送数据,全部需要测试一遍,确定节点能否正常使用,否则后续工作无法正常进行2.测试发送模块A向基站B广播消息后,基站B能否正常接收3.修改发送模块与节点程序,测试发送模块A->节点c[0]->

Dell PowerEdge VRTX 创建2012 R2 Hyper-V Cluster 无法添加集群共享存储

最近实施了一个项目,客户这边使用的Dell PowerEdge VRTX ,刀片和存储一体.要搭建Hyper-V 集群. Hyper-V 环境都部署完成,在VRTX上创建虚拟磁盘并分配给两刀片,刀片下2012 R2 磁盘管理器中都可以发现存储分配的磁盘,可以正常读写. 但创建集群,死活找不到共享存储如下图: 当时怀疑,存储配置问题,但VRTX 里面也没什么可配置的,让Dell 帮我查下,硬件是否支持 Hyepr-v集群存储,折腾了挺久也没找到原因,环境也铲了重新部署的,还是一样. 解决方法:在H

Java中通过jsch来连接远程服务器执行linux命令

有时候你可能需要通过代码来控制执行linux命令实现某些功能. 针对这类问题可以使用JSCH来实现,具体代码如下: public class CogradientImgFileManager{ private static final Logger log = LoggerFactory.getLogger(CogradientImgFileManager.class); private static ChannelExec channelExec; private static Session