Sự cố khi đăng nhập Kernel Panic để gỡ lỗi


8

Tôi đang chạy Ubuntu 12.04 trên AWS / EC2 và có một số lượng lớn máy chủ lưu trữ. Tôi đang cố gắng kích hoạt tính năng bán phá giá kernel, nhưng khi tôi mô phỏng kernel hoảng loạn, không có tệp .crash nào được ghi ở bất kỳ đâu trên hệ thống tệp.

Tôi đã làm theo hướng dẫn tại đây: https://wiki.ubfox.com/Kernel/CrashdumpRecipe

Và mọi thứ dường như được thiết lập chính xác:

# cat /proc/cmdline 
root=LABEL=cloudimg-rootfs ro console=hvc0  crashkernel=384M-2G:64M,2G-:128M

# dmesg |grep crash
[    0.000000] Command line: root=LABEL=cloudimg-rootfs ro console=hvc0  crashkernel=384M-2G:64M,2G-:128M
[    0.000000] Reserving 64MB of memory at 832MB for crashkernel (System RAM: 1708MB)
[    0.000000] Kernel command line: root=LABEL=cloudimg-rootfs ro console=hvc0  crashkernel=384M-2G:64M,2G-:128M

# cat /sys/kernel/kexec_crash_loaded
1

Nhưng khi tôi thực thi:

# echo c | sudo tee /proc/sysrq-trigger

Hệ thống khởi động lại như mong đợi, nhưng không có tệp 'sự cố' nào được tạo. Tôi có thể làm gì sai?


Bất cứ điều gì cần lưu ý trong /var/log/messages?
Banjer

Không có gì bất thường trong / var / log / syslog, kern.log, cũng không phải dmesg.
Stephan

Câu trả lời:


2

Hãy chắc chắn rằng initscript kdump được kích hoạt. Các gói kexec_crash dựa vào một bản inits để bỏ qua thói quen khởi động thông thường. Nó xác định xem liệu lệnh gọi hiện tại có phải initlà một sự cố được gọi bởi một sự cố hay không và sử dụng nó để xác định xem trạng thái chạy trước đó có cần được hủy hay không trước khi thực hiện khởi động lại thực sự.

Điều đó nói rằng, nếu hệ thống kiểm tra của bạn không đủ nhỏ để phù hợp với 64Mb mà bạn không nhận thấy rằng mọi sự cố khác đều làm giảm tổng bộ nhớ của bạn, thì đây có lẽ không phải là điều đang xảy ra.

Điều chính bạn cần tìm kiếm là liệu thứ hai initcó bắn hay không. Ngay sau khi bạn gặp sự cố hệ thống, bạn sẽ thấy các chuỗi khởi động initscript trên bàn điều khiển không có trước khi khởi động lại .

  • Nếu điều này không xảy ra, kernel crash của bạn hoàn toàn không bắn.
  • Nếu điều này đang xảy ra và bạn bị rơi xuống một dấu nhắc, bản inits của bạn không hoạt động. (không được kích hoạt hoặc không phát hiện trạng thái sau sự cố)
  • Nếu điều này xảy ra, lần thứ hai initsẽ khởi động, hệ thống khởi động lại, initbắt đầu lại và mặc dù tất cả những điều này bạn vẫn không có tệp ... bạn cần khắc phục sự cố đang xảy ra ngay trước khi bản in kdump phát hành khởi động lại. Trớ trêu thay, một trong những phương pháp tốt hơn là vô hiệu hóa initscript và chạy các lệnh bằng tay. (lưu ý: đảm bảo các dịch vụ của bạn có thể vừa với bộ nhớ của kernel crash trước khi thử điều này!)

1
Cảm ơn bạn rất nhiều vì những gợi ý! Tôi sẽ đào sâu vào nó bây giờ. Để làm nền tảng, chúng tôi đang điều tra các phiên bản AWS EC2 chỉ đơn giản là rơi vào tốc độ mà chúng tôi chưa từng có trước đây và Amazon tuyên bố rằng không có gì được báo cáo sai với phần cứng cơ bản; do đó cố gắng loại trừ sự hoảng loạn hạt nhân, v.v.
Stephan

@Stephan Có may mắn nào không? Câu hỏi vẫn còn bỏ ngỏ.
Andrew B
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.