NOVOTS KMS 词汇表 Glossary    联系我们 Contact Us
查询 Search  
   
按类别浏览 Browse by Category
NOVOTS KMS .: 操作系统 .: Unix/Linux .: 故障排除 Linux操作系统死机处理方法2

故障排除 Linux操作系统死机处理方法2

  (二)客户端配置:

  (1).校验客户端是否已安装

  rpm -q netdump

  如果未安装,在光盘 RedFlag/RPMS/ 目录中找到 netdum 打头的软件包,执行命令:

  rpm -ivh netdump-x.x.x.rpm (x为版本号)

  安装.

  (2).编辑文件/etc/sysconfig/netdump,添加如下行:

  DEV=eth0

  NETDUMPADDR=172.16.81.182

  NETDUMPMACADDR=00:0C:29:79:F4:E0

  172.16.81.182指 netdump 服务器地址。

  (3).运行下面的命令,出现提示符时输入密码:

  service netdump propagate

  (4).打开客户端:

  chkconfig netdump on

  (5).运行客户端:

  service netdump start

  (6).测试

  为了测试netdump的配置是否正确,在netdump客户机上做下面操作:

  cp /usr/share/doc/netdump-xxxxxx/crash.c .

  gcc -DKERNEL -DMODULE -I/lib/modules/$(uname -r)/build/include -c crash.c

  insmod ./crash.o

  这会造成系统崩溃,你会在netdump服务器的/var/crash/<客户端IP>/目录下,看到一个核心转储。当客户机正在转储数据到服务器的时候,你会看到一个名叫“vmcore-incomplete"的文件。当转储结束后,该文件会改名成 "vmcore"。"vmcore"文件的大小会变化,可能达到几个GB.在一个内存是512M的系统上,上面的测试会产生大约510M的vmcore文件。

  怎么判断网卡是否支持netdump功能?

  内核调试工具netdump需要网卡驱动支持netpoll功能。netpoll的目的是让内核在网络和I/O子系统尚不能完整可用时,依然能发送和接收数据包。主要用于网络控制台(net console)和远程内核调试(KGDBoE)中。实现netpoll功能,主要是要实现kernel中的poll_controller函数,该函数定义:void (*poll_controller)(struct net_device *dev)。该函数的作用是在缺少设备中断的情况下,还能对控制器做出响应。几乎所有的poll_controller函数都定义成如下形式:

  void my_poll_controller(struct net_device *dev) {

  disable_device_interrupt(dev);

  call_interrupt_handler(dev->irq, dev);

  enable_device_interrupt(dev);

  }

  所以,poll_controller只是模拟了来自指定设备的中断。一个最简单的判断一个网卡驱动是否这次支持netpoll功能的方法是安装内核源代码,然后在代码树 /usr/src/kernel-<version>中搜索HAVE_POLL_CONTROLLER的定义, grep -r "HAVE_POLL_CONTROLLER" /usr/src/linux-<version>/drivers/net示例如下:

  # grep -r "HAVE_POLL_CONTROLLER" /usr/src/linux-2.4/drivers/net

  /usr/src/linux-2.4/drivers/net/3c59x.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/3c59x.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/e100/e100_main.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/e100/e100_main.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/e1000/e1000_main.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/e1000/e1000_main.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/e1000/e1000_main.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/eepro100.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/eepro100.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/pcnet32.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/pcnet32.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/tg3.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/tg3.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/tlan.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/tlan.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/tulip/tulip_core.c:#ifdef HAVE_POLL_CONTROLLER

  /usr/src/linux-2.4/drivers/net/tulip/tulip_core.c:#ifdef HAVE_POLL_CONTROLLER

  从输出可以看到,3c59x, e100, e1000, eepro100, pcnet32, tg3, tlan和tulip都支持netpoll。

  如果系统使用了这些网卡,那么系统应该支持netpoll,那么就支持netdump。

  如果希望进一步确认网卡是否是使用这些网卡,可以查看/etc/modules.conf:

  # cat /etc/modules.conf

  alias eth1 e100

  alias eth0 3c59x

  4.SysRq

  SysRq组合键是一组"魔术组合键",只要内核没有被完全锁住,键盘还能够使用,不管内核在做什么事情,使用这些组合键可以立即打印出内核的信息。

  使用sysrq组合键是了解系统目前运行情况的最好方式。如果系统出现挂起的情况或者在诊断一些和内核相关,比较怪异,比较难重现的问题的时候,使用sysrq键是一个比较好的方式。

  为了安全起见,默认SysRq组合键是关闭的。

  打开这个功能,运行:

  # echo 1 > /proc/sys/kernel/sysrq

  关闭这个功能:

  # echo 0 > /proc/sys/kernel/sysrq

  如果想让此功能一直生效,在/etc/sysctl.conf里面设置kernel.sysrq的值为1. 重新启动以后,此功能将会自动打开。

  kernel.sysrq = 1

  因为打开sysrq键的功能以后,有终端访问权限的用户将会拥有一些特殊的功能。因此,除非是要调试,解决问题,一般情况下,不要打开此功能。如果一定要打开,请确保您的终端访问的安全性。


这篇文章对你多有用?

相关文章

article 故障排除 Linux操作系统死机处理方法3
  如何触发一个sysrq事件?  有几种方式可以触...

(No rating)  8-13-2007    Views: 991   
article 故障排除 Linux操作系统死机处理方法1
  通常在出现系统崩溃后,大家会担心再次出现故...

(No rating)  8-13-2007    Views: 963   
article Win7系统常见故障排除技巧
Windows...

(No rating)  7-25-2013    Views: 837   

用户评语

添加评语
当前还没有评语.


.: .: .: .: .:
[ 登陆 ]
北京护航科技有限公司 2006

Novots Technologies Limited