一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Ubuntu - 在Ubuntu系統上安裝Kdump來處理系統崩潰

在Ubuntu系統上安裝Kdump來處理系統崩潰

2019-06-14 11:43China_OS服務器之家 Ubuntu

這篇文章主要介紹了在Ubuntu系統上安裝Kdump來處理系統崩潰的方法,Kdump基于kexec的內核崩潰轉儲機制,需要的朋友可以參考下

什么是Kdump?

Kdump 是一種的新的crash dump捕獲機制,用來捕獲kernel crash時候產生的crash dump。Kdump需要配置兩個不同目的的kernel,其中一個我們在這里稱作standard(production) kernel;另外一個稱之為Crash(capture)kernel。

standard(production)kernel,是指我正在使用的kernel,當standard kernel在使用的過程中出現crash的時候, kdump會切換到crash kernel, 簡單來說,standard kernel會正運行時發生crash,而crash(capture) Kernel 會被用來捕獲production kernel crash時候產生的crash dump。

捕獲crash dump是在新的crash(capture) kernel 的上下文中來捕獲的,而不是在standard kernel上下文進行。

具體是當standard kernel方式crash的時候,kdump通過kexec(后面介紹)自動啟動進入到crash kernel當中。如果啟動了kdump服務,standard kernel會預留一部分內存, 這部分內存用來啟動crash kernel。

kdump機制主要包括兩個組件:kdump和kexec

    kexec是一個快速啟動機制,允許通過已經運行的內核的上下文啟動一個Linux內核,不需要經過BIOS。BIOS可能會消耗很多時間,特別是帶有眾多數量的外設的大型服務器。這種辦法可以為經常啟動機器的開發者節省很多時間。Kexec是實現kdump機制的關鍵,它包括2個組成部分:一是內核空間的系統調用kexec_load,負責在生產內核(production kernel 或 first kernel)啟動時將捕獲內核(capture kernel或sencond kernel)加載到指定地址。二是用戶空間的工具kexec-tools,他將捕獲內核的地址傳遞給生產內核,從而在系統崩潰的時候能夠找到捕獲內核的地址并運行。沒有kexec就沒有kdump。先有kexec實現了在一個內核中可以啟動另一個內核,才讓kdump有了用武之地。

    kdump是一種先進的基于kexec的內核崩潰轉儲機制。當系統崩潰時,kdump使用kexec 啟動到第二個內核。第二個內核通常叫做捕獲內核,以很小內存啟動以捕獲轉儲鏡像。第一個內核保留了內存的一部分給第二內核啟動用。由于kdump利用kexec啟動捕獲內核,繞過了 BIOS,所以第一個內核的內存得以保留。這是內核崩潰轉儲的本質。kdump需要兩個不同目的的內核,生產內核和捕獲內核。生產內核是捕獲內核服務的對像。捕獲內核會在生產內核崩潰時啟動起來,與相應的ramdisk一起組建一個微環境,用以對生產內核下的內存進行收集和轉存。注意,在啟動時,kdump保留了一定數量的重要的內存,為了計算系統需要的真正最小內存,加上kdump使用的內存數量,以決定真正的最小內存的需求。

kexec和kdump的設計區別:

在Ubuntu系統上安裝Kdump來處理系統崩潰

Kexec的設計是用新內核去覆蓋原內核位置;而KDUMP是預留一塊內存來加載第二個內核(和相關數據),Crash后第二個內核在原位置運行(不然就達不到相關目的了),收集第一個內核的相關內存信息。

下面開始試驗kdump特性:

  操作系統:ubuntu 12.10(3.5.0-17-generic)

安裝kdump工具
 

復制代碼
代碼如下:

apt-get install kexec-tools crash

  發現安裝過程中修改了grub,在引導內核配置上(/boot/grub/grub.cfg)多了如下參數

復制代碼
代碼如下:

crashker nel=384M-2G:64M,2G-:128M

  crashkernel用來指定保留內存的大小,我們可以知道crashkernel幫我們設定的保留區域的大小是:如果內存小于384M,不保留內存;如果內存大于等于384M但小于2G,保留64M;如果內存大于2G,保留128M。 
修改kdump配置文件(/etc/default/kdump-tools)

復制代碼
代碼如下:

USE_KDUMP=1

下載dbgsym文件,改文件是用來吊事內核信息的文件

復制代碼
代碼如下:

wagt 'http://ddebs.ubuntu.com/pool/main/l/linux/linux-image-3.5.0-17-generic-dbgsym_3.5.0-17.28_amd64.ddeb'

dpkg -i linux-image-3.5.0-17-generic-dbgsym_3.5.0-17.28_amd64.ddeb

  重啟機器使配置生效。
啟動kdump-tools

復制代碼
代碼如下:

/etc/init.d/kdump-tools start
Starting kdump-tools: setup_linux_vesafb: 1280x1024x32 @ d9800000 +500000
* loaded kdump kernel

kdump-tools配置(kdump-config show):

復制代碼
代碼如下:

USE_KDUMP: 1
KDUMP_SYSCTL: kernel.panic_on_oops=1
KDUMP_COREDIR: /var/crash
crashkernel addr: 0x2e000000
current state: ready to kdump

kernel link: 
/usr/lib/debug/boot/vmlinux-3.5.0-17-generic

kexec command:
/sbin/kexec -p --command-line="BOOT_IMAGE=/boot/vmlinuz-3.5.0-17-generic root=UUID=9386113e-a6db-4a1c-9565-8c8c1de4a55a ro irqpoll maxcpus=1 nousb" --initrd=/boot/initrd.img-3.5.0-17-generic /boot/vmlinuz-3.5.0-17-generic

可以通過sysrq強制系統崩潰。 

復制代碼
代碼如下:

echo ‘c’ > /proc/sysrq-trigger

    這造成內核崩潰,如配置有效,系統將重啟進入kdump內核,當系統進程進入到啟動 kdump服務的點時,(dump.時間戳文件)將會拷貝到你在kdump配置文件中設置的位置。ubuntu的缺省目錄是:/var/crash/時間戳文件夾。然后系統重啟進入到正常的內核。一旦回復到正常的內核,就可以在上述的目錄下發現dump文件,即內存轉儲文件。可以使用之前安裝的crash工具來進行分析。

 

生成dump文件后/var/crash的目錄結構:

├── 201305061817
│   ├── config_link -> /boot/config-3.5.0-17-generic
│   ├── dump.201305061817
│   ├── kernel_link -> /usr/lib/debug/boot/vmlinux-3.5.0-17-generic
│   └── system.map_link -> /boot/System.map-3.5.0-17-generic
├── config_link -> /boot/config-3.5.0-17-generic
├── kernel_link -> /usr/lib/debug/boot/vmlinux-3.5.0-17-generic
├── kexec_cmd
└── system.map_link -> /boot/System.map-3.5.0-17-generic
  ump.201305061817就是生成的dump文件,后面的一串數字誒當時的時間戳。 
接下來用crash進行分析
 

復制代碼
代碼如下:

crash /usr/lib/debug/boot/vmlinux-3.5.0-17-generic dump.201305061817

出現如下錯誤提示: crash: cannot resolve: "xtime",此時crash的版本為5.1.6,版本太低,調試不了3.5的內核,需要升級crash,可以手動安裝crash。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 毛片大全高清免费 | 高跟丝袜人妖sissy露出调教 | 亚洲视频在线观看免费视频 | 紧缚束缚调教丨vk | 久久re热在线视频精69 | 99久久精品国产综合一区 | 精品视频日本 | 奇米影视7777 | 92精品国产成人观看免费 | 国产精品久久久久这里只有精品 | 午夜毛片在线观看 | 女同志 videos | 岛国a香蕉片不卡在线观看 荡女淫春2古装 | 俄罗斯烧性春三级k8播放 | caopren免费视频国产 | 色噜噜 男人的天堂在线观看 | 欧美人妖草草xxoo | 日本妇人成熟免费观看18 | 日本厕所spy2wc| 精品久久久久久午夜 | 欧美日韩一区二区三区在线观看 | 青青草人人 | 天堂在线免费观看 | 97影院网| 日韩欧美亚洲一区二区综合 | 热久久最新视频 | 欧美日韩在线观看一区二区 | 香蕉精品高清在线观看视频 | 国产在线乱子伦一区二区 | 亚洲精品一区二区久久久久 | 91免费精品国自产拍在线不卡 | 欧美香蕉| 四虎影院观看 | www.福利| 香蕉久久ac一区二区三区 | 午夜看片a福利在线观看 | 男人看的网址 | 青春草视频免费观看 | xxxxx性bbbbb欧美 | 麻豆网站在线免费观看 | 欧美国产在线观看 |