Aracılığıyla paylaş


Azure Linux VM'lerinde çekirdek paniği

Şunlar için geçerlidir: ✔️ Linux VM'leri

Bu makalede çekirdek paniğine neden olabilecek birden çok koşul ele alınmaktadır ve sorun giderme yönergeleri sağlanmaktadır.

Genel olarak çekirdek paniği, çekirdeğin düzgün yüklenemediğini ve bu nedenle sistemin önyüklemesinin başarısız olduğu bir durumdur. Çekirdek, nasıl işleneceğini bilmediği bir durumla karşılaştığında başka bir çekirdek paniği oluşur ve durarak kendini korur.

Önkoşullar

Seri konsolun Linux VM'de etkinleştirildiğinden ve işlevsel olduğundan emin olun.

Çekirdek paniği nasıl tespit edilsin?

Vm'nin seri konsol günlüğü çıkışını önyükleme tanılama dikey penceresinde, seri konsol dikey penceresinde veya belirli çekirdek panik dizesini tanımlamak için AZ CLI'da görüntülemek için Azure portalını kullanın.

Çekirdek paniği aşağıdaki çıkışa benzer ve seri konsol günlüğünün sonunda görünür:

Probing EDD (edd=off to disable)... ok
Memory KASLR using RDRAND RDTSC...
[  300.206297] Kernel panic - xxxxxxxx
[  300.207216] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G               ------------ T 3.xxx.x86_64 #1

En yaygın çekirdek paniği olaylarından bazıları:

Panik mesajı Nedeni
Oops: 0000 [#1] SMP " (ayrıntılar için günlüğü denetleyin) Sistem, hatalı bir adres başvurusunda bulunduktan sonra panikledi.
SysRq: Kilitlenme işlemini tetikleme Çekirdek dökümü sysrq-c ile veya c'yi /proc/sysrq-trigger içine yankılayarak kullanıcı tarafından başlatıldı.
<pathname/filename>:<line number>! Bu biçim, başarısız bir HATA denetimi için standarttır (aynı ASSERT gibi, ancak mantık tersine çevrilmiş). Dosya adı ve satır numarası hangi HATA denetiminin başarısız olduğunu gösterir.
Çekirdek paniği - eşitlenmiyor: softlockup: asılı görevler Geçici kilitleme algılayıcısı, izleme görevini geçici kilitleme eşiği içinde zamanlamayan bir CPU buldu.
Çekirdek paniği - eşitlenmiyor: Watchdog cpu 0'da sabit LOCKUP algıladı Sabit kilitleme algılayıcısı, sabit kilitleme eşiği içinde herhangi bir hrtimer kesintisi almamış bir CPU buldu.
Çekirdek paniği - eşitlenmiyor: hung_task: engellenen görevler Kilitlenen görev izlemesi, engellenen görev zaman aşımı değerinden daha fazla kesintisiz durumda olan en az bir görev algılandı.
Çekirdek paniği - eşitlenmiyor: bellek yetersiz. panic_on_oom seçildi Sistemin belleği ve değişimi tükendi ve belleği boşaltmak için işlemleri öldürmeye başlamak zorunda kaldı (varsayılan davranış değil).
Çekirdek paniği - eşitlenmiyor: Bellek yetersiz ve öldürilebilir işlem yok... Sistemin belleği ve değişimi tükendi ve belleği boşaltmak için işlemleri öldürüyor ama sonlandırmak için işlemler tükendi.
Çekirdek paniği - eşitlenmiyor: NMI oluştu, ayrıntılar için Tümleşik Yönetim Günlüğü'ne bakın. Watchdog bir NMI'yi (maskelenemeyen kesme) yakaladı.
Çekirdek paniği - eşitlenmiyor: NMI IOCK hatası: Devam edilmiyor Sistem donanımdan bir GÇ denetimi NMI aldı (bellek eşlik hatası değil) ve kernel.panic_on_io_nmi ayarlandı (varsayılan değil).
Çekirdek paniği - eşitlenmiyor: NMI: Devam edilmiyor Sistem bir NMI (donanım veya bellek eşlik hatası) aldı ve kernel.panic_on_unrecovered_nmi ayarlandı (varsayılan değil).
Çekirdek paniği - eşitlenmiyor: nmi watchdog Sistem bir NMI aldı ve kernel.panic_on_timeout veya kernel.panic_on_oops ayarlandı (varsayılan değerler değil).
Çekirdek paniği - eşitlenmiyor: Önemli Makine denetimi Önemli bir durum için makine denetimi özel durumu olayı tetiklendi.
Çekirdek paniği - eşitlenmiyor: Init'i öldürmeye çalıştı! başlatma işlemi, başlatılacak ilk işlemdir ve hiçbir zaman çıkmamalıdır.
Çekirdek paniği - eşitlenmiyor: VFS: Bilinmeyen blokta kök fs bağlanamıyor (0,0) Çekirdeğin rootfs'yi bağlamak için bir initramfs kullanacağı varsayılır. Bu hata, çekirdekte initramfs olmadığında oluşur.

Senaryo 1: Çekirdek paniği önyükleme zamanında oluşuyor

Önyükleme zamanında çekirdek paniği, VM'nin işletim sistemi başlatma işlemini tamamlamasını engeller. Sanal makine her başlatıldığında gerçekleşir ve oturum açma işlemine izin vermez.

Bu tür bir olay genellikle ilişkilidir ancak bunlarla sınırlı değildir:

Senaryo 1 için çözüm

Bu tür çekirdek paniğiyle başa çıkmak için aşağıdaki yaklaşımlar kullanılabilir:

Yöntem 1: Azure seri konsolunu kullanma

Önyükleme işlemini kesmek ve varsa önceki bir çekirdek sürümünü seçmek için Azure seri konsolunu kullanın. Bu şekilde, VM yeniden önyüklenebilir, ardından önyükleme yapmayan çekirdekle ilgili sorunu düzeltmek için aşağıdaki yöntemlerden birini kullanabilirsiniz:

Yöntem 2: Kurtarma VM'si kullanarak çevrimdışı onarım

Azure seri konsolunun kullanılabilir olmaması veya daha önce kullanılabilir çekirdek olmaması durumunda çevrimdışı onarım yapmak için kurtarma/onarım VM'sine ihtiyacınız vardır.

Hedef VM'nin işletim sistemi diskinin bir kopyasının eklendiği bir onarım VM'sini oluşturmak için VM'yi Onar komutunu kullanın. Ardından chroot'u kullanarak onarım VM'sindeki işletim sistemi dosya sistemlerinin kopyasını bağlayın. Bundan sonra, çekirdek sorunlarını düzeltmek için aşağıdaki yöntemleri deneyin:

Senaryo 2: Çalışma zamanında çekirdek paniği

Bu tür bir çekirdek paniği genellikle İşletim Sistemi başlatma işlemi tamamlandıktan sonra tahmin edilemeyen zamanlarda tetiklenir ve VM'nin yanıt vermemeye başlamasına neden olur ve oturum açmasını engeller. Yaygın olarak ilişkilidir ancak bunlarla sınırlı değildir:

Senaryo 2 için çözüm

Bu tür çekirdek paniğiyle başa çıkmak için aşağıdaki yaklaşımlar kullanılabilir:

  • Kaynak kullanımını ve genel sistem performansını gözden geçirin. Çekirdek paniği, VM'nin yeniden boyutlandırılmasıyla sonuçlanabilecek olası kaynak sıkıntısı ile ilgili olabilir.
  • Mümkünse, ilgili Linux dağıtım depolarında bulunan en son güncelleştirmeleri yükleyin. Çekirdek paniği, çekirdekteki veya diğer yazılımdaki bilinen hatalara bağlı olabilir.
  • Çekirdek paniğinin son çekirdek değişikliğiyle ilgili olma olasılığı vardır. Bu durumda, senaryo 1 için Çözüm bölümünde açıklandığı gibi önceki bir çekirdek sürümü üzerinden önyükleme yapılması da önerilir.
  • Yukarıdaki seçenekler geçerli değilse, kdump'yi yapılandırmak ve daha fazla analiz desteğiyle paylaşmak üzere bir çekirdek dökümü oluşturmak gerekebilir.

Daha belirgin çekirdek paniği senaryoları

Belirli sorun giderme/kurtarma yönergeleriyle yaygın çekirdek paniği senaryoları:

Belge Senaryo
3.10 tabanlı çekirdekte Azure Linux sanal makinesinde bir konak düğümü yükseltmesi sonrasında panik durumu ortaya çıkar Bu makalede, 3.10 tabanlı çekirdeği çalıştıran bir Azure Linux VM'sinin Azure'da bir konak düğümü yükseltmesi sonrasında kilitlenmesi durumunda oluşan bir sorun ele alınmaktadır.
Azure Linux sanal makinesini çekirdekle ilgili önyükleme sorunlarından kurtarma Bu makalede, çekirdek değişiklikleri uygulandıktan sonra bir Linux sanal makinesinin (VM) yeniden başlatılamama sorununa yönelik çözümler sağlanır.

Yardım için bize ulaşın

Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.