Linux Elastic Compute Service (ECS) インスタンスのオペレーティングシステムカーネルで、システムクラッシュ、スタッタリング、メモリリークなどの安定性またはパフォーマンスの問題が発生した場合は、ECS インスタンスのオペレーティングシステムカーネルをアップグレードして問題を解決できます。 また、新しいカーネル機能を取得するために、ECS インスタンスのオペレーティングシステムカーネルをアップグレードすることもできます。
注意事項
カーネルのアップグレード操作は、システムの不安定性や非互換性の問題につながる可能性のある、複雑でリスクの高い操作です。 カーネルをアップグレードする前に、重要なデータをバックアップすることをお勧めします。 アップグレード手順とアップグレード操作の影響を十分に理解していることを確認してください。 慎重に行ってください。
手順
このセクションでは、ECS インスタンスのオペレーティングシステムカーネルをアップグレードする方法について説明します。 この例では、Alibaba Cloud Linux、CentOS、Ubuntu、Debian のいずれかのオペレーティングシステムを実行している ECS インスタンスを使用します。
Alibaba Cloud Linux と CentOS
(オプション) データをバックアップするために、ECS インスタンスに接続されているディスクのスナップショットを作成します。 詳細については、「スナップショットの作成」をご参照ください。
ECS インスタンスに接続します。 詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
インスタンスの現在のオペレーティングシステムカーネルバージョンを表示します
uname -r
アップグレード可能なカーネルバージョンがあるかどうかを確認します。
sudo yum list kernel
CentOS 6 はサポート終了 (EOL) に達しました。 Linux コミュニティのルールに従い、すべてのコンテンツが次の CentOS 6 リポジトリアドレスから削除されました: http://mirror.centos.org/centos-6/。 Alibaba Cloud でデフォルトの CentOS 6 リポジトリを引き続き使用すると、エラーが報告されます。 CentOS 6 の特定のインストールパッケージを使用するには、CentOS 6 リポジトリアドレスを変更します。 詳細については、「CentOS 6 リポジトリアドレスを変更するにはどうすればよいですか?」をご参照ください。
アップグレード可能なカーネルバージョンがない場合は、オペレーティングシステムを 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 install kernel -y
起動時に新しいカーネルバージョンがロードされるように、インスタンスの GRand Unified Bootloader (GRUB) 構成ファイルを更新します。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
インスタンスを再起動します。
sudo reboot
新しいカーネルバージョンがインストールされているかどうかを確認します。
uname -r
新しいカーネルバージョンが返された場合、カーネルのアップグレードは成功です。
Ubuntu と Debian
(オプション) データをバックアップするために、ECS インスタンスに接続されているディスクのスナップショットを作成します。 詳細については、「スナップショットの作成」をご参照ください。
ECS インスタンスに接続します。 詳細については、「Workbench を使用して SSH 経由で 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
新しいカーネルバージョンが返された場合、カーネルのアップグレードは成功です。