分类: LINUX
2009-03-18 14:49:45
ASR(Automatic Server Recovery)是一个硬件部件,它能检查一些严重的服务器关键事件和一些重要零部件是否异常(如内存错误、磁盘故障、温度过高、电源掉电、风扇故障、网卡异常等);HP asm驱动与操作系统相关,它负责检测软故障(如系统挂起,程序hang等),ASR和ASM时时保持联系,缺少任何一方那么ASR和ASM都失效。ASR和ASM类似于服务器的维护人员,一个负责硬件层,一个负责软件层,同时他们之间时时保持联系,当出现问题时,共同协商采取某种动作,如重启机器等。见下图所示:
ASR机制可以通过BIOS 设置成开或关,在开启状态下,如果ASR没有检测到软件层的ASM驱动,那么ASR临时“自残”(相当于关闭自己)。ASR是HP公司发明的一个先进的硬件故障检测部件,目前已经集成在HP DL 380 及以上版本的机器中,HP官方强烈建议用户开启该功能并相应装上ASM驱动(采用smartstart部署系统或安装PSP包会自动安装该驱动),否则机器可能在故障存在的情况下继续跑应用,这时数据安全难以保障。从上图中还可以看出ASM是“集成”在软件层的,它在用户空间安插一个探针hpasmd,hpasmd一个主要功能就是对ASR中计数器周期性地赋一个正数值,ASR则周期性地递减这个计数器,如果该计数器大于0表明hpasmd还“活着”,hpasmd活着又意味着软件层还活着,如果该计数器在10分钟内(默认值)保值非正,那么ASR就直接给CPU发reset信号,因为此时ASR认为操作系统被挂起了!我们可以做这个实验:把hpasmd进程直接杀掉,一会儿机器就直接重启了。
ASM在用户空间安插hpasmd这个探针的机制,有点类似于我们最近提出的基于应用层面的监控方法,用户空间的进程全部hang住了,就算操作系统内核还“活着”又有什么用呢?所以就直接reset系统算了。因此hpasmd进程的稳健性就显得非常重要,因为它就是整个系统“命悬一线”中的那根“线”。
ASR默认情况下是开启的,如果用户没有在操作系统中安装相应的ASM驱动,那么ASR机制就失效。