ipmi 最新和MegaCli 监控磁盘和raid信息
集群监控之 —— ipmi操作指南
这两天,配置了一堆500来个节点的大型集群,被ipmi的问题困扰了一天半,到下午16:40,终于解决了。这里来总结一下:
智能平台管理界面(IPMI,Intelligent Platform Management Interface)是管理基于 Intel结构的企业级系统中所使用的外围设备采用的一种工业标准,用户能够利用IPMI监控服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。该标准由美国英特尔、惠普(Hewlett-Packard)、NEC、美国戴尔电脑和SuperMicro等公司定制。新的版本是 IPMI2.0(http://www.intel.com/design/servers/ipmi/)。
先谈谈使用 ipmi 的先决条件——想要实现对服务器的 ipmi 管理,必须在硬件、OS、管理工具等几个方面都满足:
1、服务器硬件本身提供对 ipmi 的支持
目前惠普、戴尔和 NEC 等大多数厂商的服务器都支持 IPMI 2.0,但并不是所有服务器都支持,所以应该先通过产品手册或在 BIOS 中确定服务器是否支持 ipmi,也就是说服务器在主板上要具有 BMC 等嵌入式的管理微控制器。
2、操作系统提供相应的 ipmi 驱动
通过操作系统监控服务器自身的 ipmi 信息时需要系统内核提供相应的支持,linux 系统通过内核对 OpenIPMI(ipmi 驱动)的支持来提供对 ipmi 的系统接口。在使用驱动之前,请先启动该驱动:
service ipmi start
或者启动模块:
modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_si
modprobe ipmi_poweroff
modprobe ipmi_watchdog
3、ipmi 管理工具
我们的集群选择的是 Linux 下的命令行方式的 ipmi 平台管理工具 ipmitool。没有的同志可以去“http://ipmitool.sourceforge.net/”下,开源滴......
ipmitool 命令需要通过相应的interface来访问BMC,在本地获取信息时候采用的是-I open,即为OpenIPMI接口,IPMItool命令包含的接口有open、lan、lanplus。
其中open是指的是OpenIPMI与 BMC通信,Lan是通过Ethernet LAN网用IPV4的udp协议与BMC通信。UDP的数据段包含了IPMI request/resoponse消息,消息具有一个IPMI session 头和RMCP 头。
IPMI使用Remote Management Control Protocol (RMCP) 版本1支持操作系统关闭(pre-OS和OS-absent),RMCP把把数据发送到UDP的623端口。象lan接口一样,lanplus同样使用 Ethernet LAN 的UDP协议与BMC通信,但是lanplus使用RMCP+协议(在IPMIV20中描述)来同新,RMCP+允许使用改经的认证方式和数据完整性检查。Open端口用于本地监控系统使用的;Lan/lanplus通过网络进行远程监控。
ipmitool本地监控使用命令:ipmitool -I open command,其中-I open表示使用OpenIPMI接口,command有以下项:
a) raw:发送一个原始的IPMI请求,并且打印回复信息。
b) lan:配置网络(lan)信道(channel)
c) chassis :查看底盘的状态和配置电源
d) event:向BMC发送一个已定义的事件(event),可用于测试配置的SNMP是否成功
e) mc: 查看MC(Management Contollor)状态和各种允许的项
f) sdr:打印传感器仓库中的任何监控项和从传感器读取到的值。
g) sensor:打印周详的传感器信息。
h) Fru:打印内建的Field Replaceable Unit (FRU)信息
i) sel: 打印 System Event Log (SEL)
j) pef: 配置 Platform Event Filtering (PEF),事件过滤平台用于在监控系统发现有event时候,用PEF中的策略进行事件过滤,然后看是否需要报警。
k) sol/isol:用于配置通过串口的Lan进行监控
l) user:配置BMC中用户的信息 。
m) channel:配置Management Controller信道。
ipmitool -I open sensor list命令能够获取传感器中的各种监测值和该值的监测阈值,包括(CPU温度,电压,风扇转速,电源调制模块温度,电源电压等信息)
[root@oss11 chenys]# ipmitool -I open sensor list
CPU1 Temp | 0.000 | unspecified | ok | 0.000 | na | 0.000 | 0.000 | na | na
CPU2 Temp | 0.000 | unspecified | ok | 0.000 | na | 0.000 | 0.000 | na | na
System Temp | 39.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 81.000 | 82.000 | 83.000
CPU1 Vcore | 1.048 | Volts | ok | 0.808 | 0.816 | 0.824 | 1.384 | 1.392 | 1.400
CPU2 Vcore | 1.048 | Volts | ok | 0.808 | 0.816 | 0.824 | 1.384 | 1.392 | 1.400
+5V | 5.040 | Volts | ok | 4.280 | 4.320 | 4.360 | 5.240 | 5.280 | 5.320
+12V | 11.904 | Volts | ok | 10.464 | 10.560 | 10.656 | 13.344 | 13.440 | 13.536
CPU1DIMM | 1.544 | Volts | ok | 1.320 | 1.328 | 1.336 | 1.656 | 1.664 | 1.672
CPU2DIMM | 1.544 | Volts | ok | 1.320 | 1.328 | 1.336 | 1.656 | 1.664 | 1.672
+1.5V | 1.512 | Volts | ok | 1.320 | 1.328 | 1.336 | 1.656 | 1.664 | 1.672
+3.3V | 3.240 | Volts | ok | 2.880 | 2.904 | 2.928 | 3.648 | 3.672 | 3.696
+3.3VSB | 3.336 | Volts | ok | 2.880 | 2.904 | 2.928 | 3.648 | 3.672 | 3.696
VBAT | 3.336 | Volts | ok | 2.880 | 2.904 | 2.928 | 3.648 | 3.672 | 3.696
Fan1 | 7072.000 | RPM | ok | 340.000 | 408.000 | 476.000 | 17204.000 | 17272.000 | 17340.000
Fan2 | 7072.000 | RPM | ok | 340.000 | 408.000 | 476.000 | 17204.000 | 17272.000 | 17340.000
Fan3 | na | RPM | na | 340.000 | 408.000 | 476.000 | 17204.000 | 17272.000 | 17340.000
Fan4 | na | RPM | na | 340.000 | 408.000 | 476.000 | 17204.000 | 17272.000 | 17340.000
PS Status | 0.000 | unspecified | ok | 0.000 | na | 0.000 | 0.000 | na | na
ipmitool -I open sensor get "CPU1 Temp" 能够获取ID为CPU1 Temp监测值,CPU1 Temp是sensor的ID,服务器不同,ID表示也不同。
[root@oss11 chenys]# ipmitool -I open sensor get "CPU1 Temp"
Locating sensor record...
Sensor ID : CPU1 Temp (0x1)
Entity ID : 7.1
Sensor Type (Analog) : Unknown (0xC0)
Sensor Reading : 0 (+/- 0) unspecified
Status : ok
Lower Non-Recoverable : 0.000
Lower Critical : na
Lower Non-Critical : 0.000
Upper Non-Critical : 0.000
Upper Critical : na
Upper Non-Recoverable : na
Assertion Events :
Assertions Enabled : lcr-
Deassertions Enabled : lcr-
具体的命令自己去查,这里只讲关键的:
ipmitool -I open sensor thresh 配置ID值等于id的监测项的各种限制值。
ipmitool -I open chassis status 查看主板状态,其中包括了主板电源信息,主板工作状态等
ipmitool -I open chassis restart_cause 查看上次系统重启的原因
ipmitool -I open chassis policy list 查看支持的底盘电源相关策略。
ipmitool -I open chassis power on 启动底盘,用此命令能够远程开机
ipmitool -I open chassis power off 关闭底盘,用此命令能够远程关机
ipmitool -I open chassis power reset实现硬重启,用此命令能够远程重启
ipmitool -I open mc reset 使BMC重新硬启动
ipmitool -I open mc info 查看BMC硬件信息
ipmitool -I open mc setenables =[on|off],配置bmc相应的允许/禁止选项。
ipmitool -I open mc getenables 列出BMC任何允许的选项
ipmitool -I open lan print 1 打印现咱channel 1的信息 。这个channel是太重要了,困扰我的问题也出在它身上,下面我们就来详细讲解:
远程获取服务器监控信息
远程获取服务器监控信息时,需要系统硬件支持ipmiV1.5和IPMIV2.0。获取信息时,不需要在服务器上安装其他软件,只需要在监控的客户端上安装ipmi工具软件——ipmitool,并需要在相应命令中加入远端服务器的名字或者地址。Ipmitool可以通过LAN远程监控系统,同时BMC中保存有一序列用户名和密码,通过LAN进行远端访问需要用户名和密码。
远程获取服务器监控信息时,需要加上远程服务器的地址。使用以下的命令格式:
ipmitool -H 10.6.77.249 -U root -P changeme -I lan command。
其中-H表示后面跟的是服务器的地址,-U表示后面跟着用户名,-P表示后面跟着用户密码,command和本地获取信息相同。
那么,怎么设置本地BMC的IP和用户名密码呢:
ipmitool -I open lan print 1 显示BMC通道的信息,如果不知道BMC使用的是哪个通道,请使用下面的命令确认:
ipmitool -I open channel info 1
ipmitool -I open lan set 1 ipsrc static 设置本地BMC地址为静态,才能设置IP
ipmitool -I open lan set 1 ipaddr 10.53.11.113 设置本地BMC的IP地址
ipmitool -I open lan set 1 netmask 255.255.255.0 子网掩码,别忘了设
ipmitool -I open lan set 1 defgw ipaddr 10.53.11.254 网关,可设可不设,不过一定要确保监控它的机器位于同一路由
ipmitool user list 1 查看BMC的用户列表
ipmitool user set name 1 username 对BMC的1号用户设置用户名username
ipmitool user set password 1 123456 对BMC的1号用户设置密码123456
下面讲讲我今天遇到的问题:
我在被监控端设置好了IPMI地址、子网掩码、用户名、密码等,但是,在监控端却死活连不上,返回下面的信息:
Error: Unable to establish LAN session
Get Device ID command failed
搞了半天,才在MAC地址上发现了破绽:
[root@localhost ~]# ipmitool -I open lan print 1
Set in Progress : Set Complete
Auth Type Support : NONE MD2 MD5 OEM
Auth Type Enable : Callback : NONE MD2 MD5 OEM
: User : NONE MD2 MD5 OEM
: Operator : NONE MD2 MD5 OEM
: Admin : NONE MD2 MD5 OEM
: OEM :
IP Address Source : DHCP Address
IP Address : 10.53.11.61
Subnet Mask : 255.255.255.0
MAC Address : 00:30:48:c9:61:60
SNMP Community String : AMI
IP Header : TTL=0x00 Flags=0x00 Precedence=0x00 TOS=0x00
BMC ARP Control : ARP Responses Enabled, Gratuitous ARP Disabled
Gratituous ARP Intrvl : 0.0 seconds
Default Gateway IP : 10.53.11.254
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 : 1,2,3,6,7,8,11,12,0
Cipher Suite Priv Max : aaaaXXaaaXXaaXX
: X=Cipher Suite Unused
: c=CALLBACK
: u=USER
: o=OPERATOR
: a=ADMIN
: O=OEM
所以,得在监控端加入这个MAC地址的arp解析:
arp -s 10.53.11.28 00:30:48:c9:61:60
ipmi 最新和MegaCli 监控磁盘和raid信息的更多相关文章
- RAID信息存放位置!
今天偶然的机会,客户打电话说有一台DELL T110的服务器换了主板电池RAID信息没了进不去系统了,问我怎么处理,T110的RAID是主板集成的S100的RAID卡(算是软RAID,通过BIOS配置 ...
- MegaCli 监控raid状态 限戴尔服务器
MegaCli 监控raid状态 MegaCli是一款管理维护硬件RAID软件,可以通过它来了解当前raid卡的所有信息,包括 raid卡的型号,raid的阵列类型,raid 上各磁盘状态,等等.通常 ...
- MegaCli 监控raid状态
MegaCli 监控raid状态 http://blog.chinaunix.net/uid-25135004-id-3139293.html 简介 MegaCli是一款管理维护硬件RAID软件,可以 ...
- Megacli查看Dell服务器Raid状态
通常我们使用的DELL/HP/IBM三家的机架式PC级服务器阵列卡是从LSI的卡OEM出来的,DELL和IBM两家的阵列卡原生程度较高,没有做太多封装,可以用原厂提供的阵列卡管理工具进行监控:而HP的 ...
- 使用MegaCli监控Linux硬盘
1.首先查看机器是否使用的是MegaRAID卡 dmesg | grep RAID [ 6.932741] scsi host0: Avago SAS based MegaRAID driver 2. ...
- 使用Megacli64对服务器物理磁盘做Raid并通过uuid方式挂载
需求说明:公司最近来了一批服务器,用于大数据业务部署.数据节点服务器由14块物理磁盘,其中有2块是900G的盘,12块是4T的盘.在服务器系统安装时,进入系统的BIOS界面:1)将2块900G的磁盘做 ...
- 查看磁盘型号和内存及raid信息
1.查看磁盘型号 工具:smartmontools #smartctl --help #smartctl --all /dev/sda -d megarid,1 (第一块磁盘的信息) #smartct ...
- Zabbix自动发现并监控磁盘IO、报警
本文转载自: https://www.93bok.com 引言 Zabbix并没有提供模板来监控磁盘的IO性能,所以我们需要自己来创建一个,由于一台服务器中磁盘众多,如果只有一两台可以手动添加,但服务 ...
- 使用 MegaCLI 检测磁盘状态并更换磁盘
专栏首页阿dai_linux使用 MegaCLI 检测磁盘状态并更换磁盘 原 10
随机推荐
- luogu 2509. 森林大礼包
2509. 森林大礼包 ★ 输入文件:three_squirrels.in 输出文件:three_squirrels.out 简单对比时间限制:1 s 内存限制:256 MB [题目描 ...
- Java多线程设计模式(1)
1 线程中的几个方法解释 Thread.sleep(long 毫秒) 在指定的时间内让当前线程休眠,将控制权交给其他线程,休眠的线程依旧拥有它所占用的锁, Thread.yield(); 暂停或者放弃 ...
- WPF程序中的弱事件模式
在C#中,得益于强大的GC机制,使得我们开发程序变得非常简单,很多时候我们只需要管使用,而并不需要关心什么时候释放资源.但是,GC有的时并不是按照我们所期望的方式工作. 例如,我想实现一个在窗口的标题 ...
- Python学习笔记——模块
使用模块 python中包的组织方式是模块,一个使用其它模块的例子如下: # Filename: using_sys.py import sys print 'The command line arg ...
- eclipse和maven创建WebApp项目
Eclipse+Maven创建webapp项目<一> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显 ...
- sed命令使用示例
sed -i '/mirrorlist/d' CentOS-Base-163.repo 把有mirrorlist的行删除sed -i '/\[addons\]/,/^$/d' CentOS-Base- ...
- JAVA之继承的必要性
//说明继承的必要性package com.test; public class test { /** * @param args */ public static void m ...
- Exception thrown in catch and finally clause
Based on reading your answer and seeing how you likely came up with it, I believe you think an " ...
- Storm文档详解
1.Storm基础概念 1.1.什么是storm? Apache Storm is a free and open source distributed realtime computation sy ...
- Android中IntentService详解
简单说,IntentService是继承于Service并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作,启动IntentService的方式和启动传统Service ...