ECS ベアメタルインスタンス上の OS にバンドルされている Kdump サービスは、インスタンスタイプと OS の非互換性が原因で、クラッシュダンプファイルの生成に失敗することがあります。
問題点
以下のインスタンスでは、デバイスのホットスワップ後にクラッシュダンプファイルを生成できません。
-
第 6 世代の ECS ベアメタルインスタンスファミリー (ebmg6、ebmc6、ebmr6 を含む) で、以下のイメージを使用している場合:
-
CentOS 8.3 以前のイメージ
-
Ubuntu 16/18 イメージ
-
Debian 10 イメージ
-
カーネルバージョンが 4.19.91-24.al7 より前の Alibaba Cloud Linux 2 イメージ
-
-
第 7 世代の ECS ベアメタルインスタンスファミリー (ebmg7、ebmc7、ebmr7 を含む) で、Debian 10 イメージを使用している場合。
原因
ECS インスタンスの crashkernel 位相中に、Kdump が pci_resource を vda ブロックデバイスに割り当てられないため、クラッシュダンプの生成が失敗します。根本的な原因は、インスタンスタイプとオペレーティングシステムの間の非互換性です。
Gave up waiting for root file system device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait long enough?)
- Missing modules (cat /proc/modules; ls /dev)
ALERT! UUID=33ead8c1-41b6-4f85-84ec-xxx does not exist. Dropping to a shell!
ソリューション
この問題を解決するには、以下のいずれかの方法を使用します。
-
OS カーネルをバージョン 5.10 にアップグレードします。
-
以下のパッチを OS に追加し、カーネルを再構築します。
Benjamin Herrenschmidt (1): PCI: Don't auto-realloc if we're preserving firmware config Kelsey Skunberg (1): PCI: Make pci_hotplug_io_size, mem_size, and bus_size private Logan Gunthorpe (1): PCI: Don't disable bridge BARs when assigning bus resources Nicholas Johnson (2): PCI: Add "pci=hpmmiosize" and "pci=hpmmioprefsize" parameters PCI: Avoid double hpmemsize MMIO window assignment説明一部のカーネルバージョンには、これらのパッチの一部がすでに含まれています。不足しているパッチのみを追加してください。例えば、Debian 10 のカーネル 4.19 には、1 番目と 3 番目のパッチが含まれています。Kdump を機能させるには、2 番目、4 番目、5 番目のパッチを追加する必要があります。
以下の点にご注意ください。
Debian または Ubuntu カーネルの場合、crashkernel パラメーターを変更して、Kdump 用に予約されるメモリを調整します。推奨設定は次のとおりです。
crashkernel=0M-2G:0M,2G-8G:192M,8G-:256M
Debian 10 などの一部の OS イメージでは、予約メモリを 384 MB または 512 MB に増やす必要があります。そうしないと、crashkernel 位相中に OOM 例外が発生し、クラッシュダンプファイルを生成できません。
システムの合計メモリが 384 MB を超える場合に 256 MB のメモリを予約するには、次のように crashkernel パラメーターを調整します。
-
/kdump-tools.cfg ファイルを開きます。
vim /etc/default/grub.d/kdump-tools.cfg -
I キーを押して挿入モードに入り、crashkernel パラメーターを次のように変更します。
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT crashkernel=384M-:256M"Esc キーを押し、
:wqと入力して Enter キーを押し、ファイルを保存して閉じます。 -
GRUB 設定を更新します。
update-grub -
ECS インスタンスを再起動して、設定を有効にします。
ビジネスへの影響を最小限に抑えるため、オフピーク時間帯に ECS インスタンスを再起動してください。詳細については、「インスタンスの再起動」をご参照ください。