ECS インスタンス上の Linux カーネルをアップグレードすることで、クラッシュやメモリリークなどの安定性やパフォーマンスの問題を解決します。
カーネルのアップグレードには、不安定になったりハードウェアに互換性がなくなったりするリスクが伴います。作業を開始する前に、データをバックアップし、手順全体とその影響を十分に理解していることを確認してください。
前提条件
以下を確認してください。
カーネルのアップグレード
お使いの Linux ディストリビューションに応じた手順を選択してください。
Alibaba Cloud Linux および CentOS
-
現在のカーネルバージョンを確認します。
uname -r -
新しいカーネルを確認します。
-
[アップグレード可能なカーネルバージョンがない場合]は、Alibaba Cloud Linux 3 に切り替えてください。詳細については、「OS 移行」または「OS の交換 (システムディスク)」をご参照ください。
-
新しいカーネルバージョンが利用可能な場合は、手順 3 に進みます。
CentOS 6 は保守終了 (EOL) しました。
http://mirror.centos.org/centos-6/の公式リポジトリは削除されています。Alibaba Cloud 上のデフォルトの CentOS 6 リポジトリを使用している場合、コマンド実行時にエラーが返されます。先にリポジトリアドレスを変更してください。詳細については、「CentOS 6のリポジトリアドレスの変更」をご参照ください。sudo yum list kernel -
-
initrdまたはinitramfsファイルにvirtio-blkおよびxen-blkfrontドライバーが含まれているかどうかを確認します。sudo lsinitrd /boot/initramfs-`uname -r`.img | grep -E 'virtio|xen'出力に次のようなエントリが含まれている場合は、両方のドライバーが存在します。手順 4 に進んでください。
-rw-r--r-- 1 root root 24849 Jul 22 10:38 usr/lib/modules/4.19.91-27.5.al7.x86_64/kernel/drivers/block/virtio_blk.ko -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いずれかのドライバーが不足している場合は、アップグレード前に追加してください。
sudo sh -c 'echo 'add_drivers+="xen-blkfront virtio_blk"' >> /etc/dracut.conf.d/virt-drivers.conf' -
新しいカーネルをインストールします。
sudo yum install kernel -y -
起動時に新しいカーネルがロードされるように、GRUB 設定を更新します。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg -
インスタンスを再起動します。
sudo reboot -
新しいカーネルで実行されていることを確認します。
uname -r出力に新しいカーネルバージョンが表示されます。
Ubuntu および Debian
-
現在のカーネルバージョンを確認します。
uname -r -
パッケージリストを更新し、利用可能なカーネルパッケージを確認します。
-
アップグレード可能なカーネルバージョンがない場合は、OS を上位バージョンに交換してください。詳細については、「OS の交換 (システムディスク)」をご参照ください。
-
新しいカーネルバージョンが利用可能な場合は、手順 3 に進みます。
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 -
インスタンスを再起動し、ワークベンチページを更新します。
sudo reboot -
新しいカーネルで実行されていることを確認します。
uname -r出力に新しいカーネルバージョンが表示されます。
アップグレード失敗後のロールバック
アップグレード後のカーネルが起動失敗や不安定性を引き起こす場合は、次のいずれかの方法でサービスを復元してください:
-
スナップショットからの復元:アップグレード前に作成したスナップショットを使用して、システムディスクをロールバックします。
-
OS の交換:システムディスクをサポートされている OS イメージに交換します。詳細については、「OS の交換 (システムディスク)」をご参照ください。
よくある質問
カーネルのアップグレード後に再起動は必要ですか。
はい。新しいカーネルは再起動後にはじめて有効になります。それまでは、インスタンスは古いカーネルで実行されます。
アップグレードが成功したことを確認するにはどうすればよいですか。
再起動後に uname -r を実行してください。出力に新しいバージョンが表示されれば、アップグレードは成功です。
新しいカーネルがハードウェアやドライバーと互換性がない場合はどうすればよいですか。
アップグレード前に作成したスナップショットから復元するか、OS を交換してください。詳細については、「アップグレード失敗後のロールバック」をご参照ください。
お使いのディストリビューションで新しいカーネルが利用できない場合はどうすればよいですか。
Alibaba Cloud Linux および CentOS の場合は、「OS 移行」を使用して Alibaba Cloud Linux 3 に切り替えてください。Ubuntu および Debian の場合は、OS を上位バージョンに交換してください。詳細については、「OS の交換 (システムディスク)」をご参照ください。
次のステップ
-
将来のセキュリティ修正の適用に伴うダウンタイムを最小限に抑えるために、システムディスクの定期的なスナップショットスケジュールを設定してください。