Zfs
調試 Nexenta/OpenSolaris 核心文件?
我有一台 Sun x4540,它最近從早期的 OpenSolaris 轉換為 NexentaStor 企業版。系統磁碟被擦除,zpool 被導出和重新導入。我通過 NFS 將大約 30 台虛擬機託管到 VMWare vSphere,並將 10GbE 託管到多台主機。
從那時起,該系統幾乎每兩週就會崩潰一次。崩潰將觸發 ILOm 的 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
我如何調試這些
mdb
以了解正在發生的事情?我在http://kristof.willen.be/node/1100看到了一個連結到 Nexenta 網站的簡短教程,但它似乎並不直接適用。
這裡的關鍵是切換到
/var/crash/myhost
目錄並savecore -f vmdump.x
在故障轉儲文件上執行命令。該過程會創建一個unix.x
可由mdb -k unix.x vmcore.x
命令使用的文件,其中“x”是核心轉儲編號。
你知道核心本身是否崩潰了嗎?也可能值得啟用核心轉儲。
檢查下面的 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