Zfs

調試 Nexenta/OpenSolaris 核心文件?

  • November 17, 2011

我有一台 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

引用自:https://serverfault.com/questions/247614