Linux Elastic Compute Service (ECS) インスタンスのオペレーティングシステムカーネルでシステムクラッシュ、吃音、メモリリークなどの安定性やパフォーマンスの問題が発生した場合、ECSインスタンスのオペレーティングシステムカーネルをアップグレードして問題を解決できます。 ECSインスタンスのオペレーティングシステムカーネルをアップグレードして、新しいカーネル機能を取得することもできます。
注意事項
カーネルのアップグレード操作は、システムの不安定性や非互換性の問題を引き起こす可能性のある複雑でリスクの高い操作です。 カーネルをアップグレードする前に、重要なデータをバックアップすることを推奨します。 アップグレード手順とアップグレード操作の影響を完全に理解していることを確認してください。 作業は慎重に行ってください。
手順
ここでは、ECSインスタンスのオペレーティングシステムカーネルをアップグレードする方法について説明します。 この例では、Alibaba Cloud Linux、CentOS、Ubuntu、Debianのいずれかのオペレーティングシステムを実行するECSインスタンスが使用されています。
Alibaba Cloud LinuxおよびCentOS
(オプション) データをバックアップするためにECSインスタンスにアタッチされているディスクのスナップショットを作成します。 詳細については「スナップショットの作成」をご参照ください。
ECS インスタンスに接続します。 詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
インスタンスの現在のオペレーティングシステムのカーネルバージョンを表示する
uname -r
カーネルバージョンがアップグレード可能かどうかを確認します。
sudo yum list kernel
アップグレード可能なカーネルバージョンがない場合は、オペレーティングシステムをAlibaba Cloud Linux 3に変更することを推奨します。 詳細については、「ECSインスタンスのオペレーティングシステムの移行とアップグレード」または「インスタンスのオペレーティングシステム (システムディスク) の交換」をご参照ください。
カーネルバージョンがアップグレード可能な場合は、次の手順を実行してカーネルをアップグレードします。
次のコマンドを実行して、システム内の
initrd
またはinitramfs
ファイルにvirtio-blkおよびxen-blkfrontドライバが含まれているかどうかを確認します。sudo lsinitrd /boot/initramfs-`uname -r`.img | grep -E 'virtio|xen'
次のようなコマンド出力が返された場合、ファイルにはvirtio-blkおよびxen-blkfrontドライバが含まれます。 それ以外の場合、ファイルにはvirtio-blkまたはxen-blkfrontドライバが含まれません。
-rw-r--r-- 1 root root 83312 Jul 22 10:38 usr/lib/modules/4.19.91-27.5.al7.x86_64/kernel/drivers/block/xen-blkfront.ko -rw-r--r-- 1 root root 68016 Jul 22 10:38 usr/lib/modules/4.19.91-27.5.al7.x86_64/kernel/drivers/net/xen-netfront.ko
ファイルに
virtio-blk
またはxen-blkfront
ドライバが含まれていない場合は、次のコマンドを実行してドライバをシステムに追加します。 ファイルにドライバが含まれている場合は、この手順をスキップします。sudo sh -c 'echo 'add_drivers+="xen-blkfront virtio_blk"' >> /etc/dracut.conf.d/virt-drivers.conf'
オペレーティングシステムカーネルをアップグレードします。
sudo yum update -y
インスタンスのGRand Unified Bootloader (GRUB) の設定ファイルを更新して、起動時に新しいカーネルバージョンをロードします。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
インスタンスを再起動します。
sudo reboot
新しいカーネルバージョンがインストールされているかどうかを確認します。
uname -r
新しいカーネルバージョンが返された場合、カーネルのアップグレードは成功です。
UbuntuとDebian
(オプション) データをバックアップするためにECSインスタンスにアタッチされているディスクのスナップショットを作成します。 詳細については「スナップショットの作成」をご参照ください。
ECS インスタンスに接続します。 詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
インスタンスの現在のオペレーティングシステムのカーネルバージョンを確認して、アップグレードが必要かどうかを確認します。
uname -r
システムソフトウェアパッケージリストを更新し、カーネルバージョンがアップグレード可能かどうかを確認します。
sudo apt update apt-cache search linux-image
アップグレードに使用できるカーネルバージョンがない場合は、オペレーティングシステムをより高いバージョンに変更することを推奨します。 詳細については、「インスタンスのオペレーティングシステム (システムディスク) の交換」をご参照ください。
カーネルバージョンがアップグレード可能な場合:
次のコマンドを実行して、カーネルをアップグレードします。
sudo apt-get install linux-image-<Kernel package name>
(オプション) Ubuntuを使用している場合は、オペレーティングシステム用に追加のカーネルモジュールをアップグレードする必要があります。
sudo apt-get install linux-modules-extra-<Kernel package name>
Ubuntu 20.04を例にとると、次のコマンドを実行して、カーネルバージョンを5.15.0にアップグレードし、追加のカーネルモジュールをアップグレードします。
sudo apt update apt-cache search linux-image | grep '5.15' | grep generic sudo apt-get install linux-image-5.15.0-122-generic sudo apt-get install linux-modules-extra-5.15.0-122-generic
インスタンスのGRUB設定ファイルを更新して、起動時に新しいカーネルバージョンをロードします。
sudo update-grub
インスタンスを再起動し、Workbenchページを更新します。
sudo reboot
新しいカーネルバージョンがインストールされているかどうかを確認します。
uname -r
新しいカーネルバージョンが返された場合、カーネルのアップグレードは成功です。