我有一个最近从早期的OpenSolaris转换到NexentaStor企业版的Sun x4540。 系统磁盘被擦除,磁盘被导出并重新导入。 我通过NFS和10GbE托pipe了大约30台虚拟机到VMWare vSphere,并连接到几台主机。
从那以后,这个系统几乎每两个星期就会崩溃。 碰撞会触发ILO的ASR,系统将在5-10分钟后自行重新启动。 我有这样的根目录中的核心文件:
-rw------- 1 root root 2237608178 Mar 14 21:06 core -rw------- 1 root root 81061304 Feb 8 01:23 core.mountd.1297149806 -rw------- 1 root root 69863784 Mar 6 16:34 core.mountd.1299450869 -rw------- 1 root root 36644272 Mar 6 16:39 core.mountd.1299451179
我怎样才能debugging这些与mdb了解发生了什么? 我在http://kristof.willen.be/node/1100上看到了一个与Nexenta网站链接的简短教程,但似乎并不直接适用。
你知道内核本身是否崩溃吗? 也可以启用内核转储。
查看下面的URL,了解如何分析核心文件以及如何启用内核崩溃转储。
http://developers.sun.com/solaris/articles/manage_core_dump.html
# mkdir -p /var/crash/`uname -n` # dumpadm -y -s /var/crash/`uname -n` # dumpadm Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash/$hostname Savecore enabled: yes # mkdir -p /var/core/`uname -n` # coreadm -g /var/core/`uname -n`/core.%n.%f.%p -G all -e log -e global # coreadm global core file pattern: /var/core/$hostname/core.%n.%f.%p global core file content: all init core file pattern: core init core file content: default global core dumps: enabled per-process core dumps: enabled global setid core dumps: disabled per-process setid core dumps: disabled global core dump logging: enabled
这里的关键是切换到/var/crash/myhost目录,并在崩溃转储文件上运行savecore -f vmdump.x命令。 该进程将创build一个可以由mdb -k unix.x vmcore.x命令使用的unix.x文件,其中“x”是核心转储编号。