Azure Linux çekirdeğini yönetme

Azure Linux, bildirilen en son uzun süreli destek (LTS) Linux çekirdeği olan sürüm 6.18 üzerine kurulmuştur. Bu çekirdek kararlılık, güvenlik ve modern donanım ile bulut desteğinin dengeli bir birleşimini sağlar ve her Azure Linux dağıtımı için temel görevi görür.

Bu makalede çalışan çekirdeği inceleme, çekirdek modülleriyle çalışma ve Azure Linux sisteminde çalışma zamanında çekirdek parametrelerini görüntüleme veya değiştirme işlemleri gösterilmektedir.

Note

Azure Linux 4.0 artık preview içindedir ve kesinlikle değerlendirme ve test amaçlarıyla sınırlıdır. Üretim kullanımı için uygun değildir.

Prerequisites

  • Kabuk erişimiyle kimlik doğrulaması yapabileceğiniz bir Azure Linux sistemi.
  • Çekirdek modüllerini yüklemek veya kaldırmak ve çekirdek parametrelerini değiştirmek için gereken ayrıcalıklara sahip sudo bir kullanıcı hesabı.

Çalışan çekirdeği inceleyin

Aşağıdaki bölümlerde çekirdek sürümü, önyükleme parametreleri, derleme yapılandırması ve yüklü çekirdek paketleri dahil olmak üzere Azure Linux sisteminizin şu anda çalıştırılan çekirdek hakkında nasıl bilgi toplandığı gösterilmektedir.

Çekirdek sürümünü görüntüleme

Komutunu kullanarak sisteminizin şu anda çalıştırmış olduğu çekirdeğin uname -r tam sürümünü belirleyin:

uname -r

Çıktı, ana kaynak sürümünü, Azure Linux derleme tanımlayıcısını ve mimariyi içeren çekirdek sürüm dizesini gösterir.

Çekirdek önyükleme parametrelerini görüntüleme

Sistem başlatıldığında çekirdeğe iletilen önyükleme parametrelerini cat /proc/cmdline komutunu kullanarak görüntüleyin:

cat /proc/cmdline

Çıkış, kök cihaz, konsol ayarları ve önyükleme yükleyicisi tarafından uygulanan önyükleme zamanı seçenekleri de dahil olmak üzere çekirdek komut satırını gösterir.

Çekirdek derleme yapılandırmasını görüntüleme

komutunu kullanarak cat /boot/config-$(uname -r) çalışan çekirdeği derlemek için kullanılan tüm derleme zamanı yapılandırma seçeneklerini gösterin:

cat /boot/config-$(uname -r)

Bu komut, çekirdeğin nasıl derlendiğini belirleyen etkin ve devre dışı özellikler (CONFIG_*), güvenlik ayarları, ağ seçenekleri ve dosya sistemi desteği dahil olmak üzere binlerce derleme zamanı seçeneğini listeler.

Aşağıdaki örnekte çıkışın küçük bir bölümü gösterilmektedir:

CONFIG_RUSTC_HAS_FILE_WITH_NUL=y
CONFIG_RUSTC_HAS_FILE_AS_C_STR=y
CONFIG_IRQ_WORK=y
CONFIG_TIME_KUNIT_TEST=m
CONFIG_BPF_PRELOAD_UMD=m
CONFIG_IKHEADERS=m
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_RT is not set
# CONFIG_PSI_DEFAULT_DISABLED is not set

Yapılandırma değeri anlamları

Her yapılandırma girdisi aşağıdaki değerlerden birini kullanır:

Value Meaning Description
=y Built-in Özellik statik olarak ana çekirdek görüntüsüne derlenmiş ve çekirdek önyüklemesi yapılır başlamaz belleğe yüklenir.
=m Module Bu özellik, çekirdekte modül desteğinin etkinleştirilmesi koşuluyla yüklenebilir bir çekirdek modülü olarak derlenmiş olur.
is not set Disabled Özellik hiç derlenmemiş. Bu durum genellikle # CONFIG_X is not set gibi bir yorum satırı olarak gösterilir.

Yüklü çekirdek paketlerini listeleme

Sisteminizde /boot/config-* öğesinin birden çok kopyası bulunabilir; her yüklü çekirdek için bir dosya olacak şekilde. Şu anda yüklü olan her çekirdek paketini aşağıdaki komutu kullanarak listeleyebilirsiniz:

rpm -qa | grep -i kernel

Çıktı, adında kernel içeren yüklü tüm paketleri içerir; buna çekirdek görüntüsü, çekirdek başlıkları ve çekirdekle ilgili araçlar da dahildir.

Çekirdek modülleriyle çalışma

Çekirdek modülleri, yeniden başlatma gerektirmeden cihaz sürücüleri ve dosya sistemi desteği gibi işlevleri eklemek veya kaldırmak için çekirdeğin isteğe bağlı olarak yükleyip kaldırabileceği kod parçalarıdır.

Diskte çekirdek modüllerini bulma

Çekirdek modülleri aşağıdaki dizinde depolanır:

/lib/modules

Yüklenen her çekirdek sürümünün içinde kendi alt dizini /lib/modulesvardır ve bu dizin, ilgili çekirdek için oluşturulmuş modülleri içerir.

Çalışan çekirdek için modüllere göz atın

Şu anda çalıştırdığınız çekirdeğin modüllerine aşağıdaki yolu kullanarak göz atın:

/lib/modules/$(uname -r)

Farklı bir çekirdek sürümü için modülleri inceleyin

altında /lib/moduleskullanılabilir dizinleri listeleyerek farklı bir yüklü çekirdek sürümünün modüllerini inceleyin:

ls /lib/modules

Çekirdek modülü dosyalarını bulma

Şu anda çalıştırdığınız çekirdek için her çekirdek modülü dosyasını (.ko) aşağıdaki komutu kullanarak bulun:

find /lib/modules/$(uname -r) -type f -name "*.ko*"

Modülleri yükleme, kaldırma ve listeleme

Bir çekirdek modülünü modprobe yüklemek veya kaldırmak için komutunu kullanın ve şu anda çekirdekte hangi modüllerin lsmod yüklendiğini görmek için komutunu kullanın.

Çekirdek modülü yükleme

Aşağıdaki komutu kullanarak bir modül yükleyin. <MODULE_NAME> öğesini, yüklemek istediğiniz modülün adıyla değiştirin:

sudo modprobe <MODULE_NAME>

Çekirdek modülünü bellekten çıkar

Aşağıdaki komutu kullanarak modülü kaldırın. <MODULE_NAME> yerine, kaldırmak istediğiniz modülün adını yazın:

sudo modprobe -r <MODULE_NAME>

Şu anda yüklü olan çekirdek modüllerini listeleme

Aşağıdaki komutu kullanarak çekirdekte yüklü olan modülleri listeleyin:

lsmod

Çıkışta yüklenen her modül, kullandığı bellek miktarı ve buna bağlı modüller veya alt sistemler listelenir.

Çalışma zamanında çekirdek parametrelerini görüntüleme ve değiştirme

sysctl Sistem çalışırken Linux çekirdek parametrelerini görüntülemek ve değiştirmek için aracını kullanın. Çekirdek parametreleri aşağıdaki gibi alanları kontrol eder:

  • Ağ davranışı.
  • Bellek ayırma.
  • Genel sistem davranışı.
  • Dosya sistemi ve G/Ç davranışı.
  • Çekirdek güvenlik özellikleri.

Tüm çekirdek parametrelerini görüntüleme

Aşağıdaki komutu kullanarak her çekirdek parametresini ve geçerli değerini görüntüleyin:

sudo sysctl -a

Aşağıdaki örnekte çıkışın küçük bir bölümü gösterilmektedir:

kernel.ftrace_dump_on_oops = 0
kernel.oops_all_cpu_backtrace = 0
kernel.oops_limit = 10000
kernel.panic_on_oops = 0

Tek bir çekirdek parametresini görüntüleme

Bir parametreyi görüntülemek için adını sysctl öğesine geçirin. Aşağıdaki örnek komut, değerinin nasıl görüntüleyebileceğinizi kernel.panic_on_oopsgösterir:

sysctl kernel.panic_on_oops

Geçici çekirdek parametresi ayarlama

Geçerli önyükleme için bir çekirdek parametresini yalnızca aşağıdaki komutu kullanarak değiştirin. <SYSCTL_PARAMETER> ve <VALUE> öğelerini sırasıyla parametre adı ve ayarlamak istediğiniz değerle değiştirin:

sudo sysctl -w <SYSCTL_PARAMETER>=<VALUE>

Değişiklik hemen geçerli olur ve bir sonraki yeniden başlatmaya kadar etkin kalır.

Kalıcı çekirdek parametresi ayarlama

  1. Bir çekirdek parametre değişikliğinin yeniden başlatmalar arasında kalıcı olmasını sağlayın, parametresini /etc/sysctl.d/99-example.conf aşağıdaki biçimde ekleyin:

    <SYSCTL_PARAMETER>=<VALUE>
    
  2. Aşağıdaki komutu kullanarak güncelleştirilmiş yapılandırmayı yeniden başlatmadan uygulayın:

    sudo sysctl --system
    

    Başarıyla çalıştırıldıktan sonra sudo sysctl --system , yeni değer çalışan çekirdeğine uygulanır ve sistem her başlatıldığında otomatik olarak yeniden uygulanır.

Kdump'ı etkinleştirme

Important

Kdump, kilitlenme dökümlerini depolamak için ayrılmış bir disk alanı gerektirir. Bir kilitlenme oluştuğunda alanın tükenmesini önlemek için, /var/crash öğesinin sistemin toplam fiziksel belleği kadar en az alana sahip bir diske bağlandığından emin olun.

  1. Aşağıdaki komutu kullanarak kdump-utils ve makedumpfile paketlerini yükleyin:

    sudo dnf install -y kdump-utils makedumpfile
    
  2. Aşağıdaki komutu kullanarak eklenecek önerilen çökme çekirdeği boyutunu belirleyin:

    sudo kdumpctl estimate
    

    Çıktıda Önerilen crashkernel değerine bakın. Örneğin, aşağıdaki çıktıda önerilen 256M crashkernel boyutu gösterilmektedir:

    kdump: Rebuilding /boot/initramfs-6.18.5-1.8.azl4~20260420.x86_64kdump.img
    Reserved crashkernel:    0M
    Recommended crashkernel: 256M 
    
    Kernel image size:   56M
    Kernel modules size: 11M
    Initramfs size:      35M
    Runtime reservation: 16M
    Large modules:
        mlx5_core: 2826240
        cfg80211: 1380352
        kvm: 1433600
        btrfs: 2097152
    WARNING: Current crashkernel size is lower than recommended size 256M.
    
  3. Aşağıdaki komutu kullanarak önerilen crashkernel değerini çekirdek önyükleme parametrelerine ekleyin:

    sudo grubby --args="crashkernel=256M" --update-kernel=ALL
    
  4. Aşağıdaki komutu kullanarak önyükleme işlemi sırasında kdump systemd hizmetini otomatik olarak başlatacak şekilde yapılandırın:

    sudo systemctl enable kdump.service
    

    Örnek çıkış:

    Created symlink '/etc/systemd/system/multi-user.target.wants/kdump.service' → '/usr/lib/systemd/system/kdump.service'.
    
  5. Değişikliğin etkili olması için sisteminizi yeniden başlatın.

  6. Yeniden başlatma işleminden sonra aşağıdaki komutu kullanarak kdump'un çalışır durumda olduğunu doğrulayabilirsiniz:

    sudo kdumpctl status
    

    Örnek çıkış:

    kdump: Kdump is operational
    kdump: Notice: No vmcore creation test performed!
    

Linux çekirdek parametreleri ve sysctl aracı hakkında daha fazla bilgi için aşağıdaki yukarı akış kaynaklarına bakın:

  • Çekirdek sysctl parametreleri: kernel.* altında sunulan her parametre için, izin verilen değerler ve varsayılan davranış dahil olmak üzere üst kaynak başvurusu.
  • sysctl(8) man sayfası: sysctl drop-in dosyalarından yapılandırmanın nasıl yükleneceği de dahil olmak üzere, /etc/sysctl.d/ aracının tam komut satırı başvurusu.