新しいLinuxカーネル(5.4) を Amazon Linux 2 にインストールしてみた
AWSチームのすずきです。
Amazon Linux 2 の 拡張リポジトリ で提供されている、 AWS 向けの最適化が施された Linux カーネルパッケージ (kernel-ng) を利用して、 最新LTSカーネル(5.4)を試す機会がありましたので紹介します。
Amazon Linux 2 Extras で、新しい Linux カーネルの AWS 最適化バージョンの提供開始
新しいカーネルには、A1 インスタンスでのパフォーマンスの向上、スモールインスタンスタイプでの帯域幅の拡大とレイテンシーの軽減などの機能強化が加えられています
環境
2020年5月にリリースされた、ARM ベースの AWS Graviton2 を搭載、 最新世代のインスタンス「m6g」を利用しました。
- AMI ID: amzn2-ami-hvm-2.0.20200406.0-arm64-gp2
- インスタンスタイプ: m6g.medium
※「x86_64」 用のパッケージ も提供されています。
インストール
拡張リポジトリ(拡張ライブラリ)を有効化し、新しいカーネル「kernel-ng」をインストールしました。
sudo amazon-linux-extras install kernel-ng
ログ抜粋
$ sudo amazon-linux-extras install kernel-ng -y ... Installing kernel ... amzn2-core | 2.4 kB 00:00:00 amzn2extra-docker | 1.8 kB 00:00:00 amzn2extra-kernel-ng | 1.8 kB 00:00:00 (1/7): amzn2-core/2/aarch64/updateinfo | 208 kB 00:00:00 (2/7): amzn2-core/2/aarch64/group_gz | 2.5 kB 00:00:00 (3/7): amzn2extra-docker/2/aarch64/updateinfo | 69 B 00:00:00 (4/7): amzn2extra-kernel-ng/2/aarch64/updateinfo | 69 B 00:00:00 (5/7): amzn2extra-docker/2/aarch64/primary_db | 46 kB 00:00:00 (6/7): amzn2extra-kernel-ng/2/aarch64/primary_db | 4.7 MB 00:00:00 (7/7): amzn2-core/2/aarch64/primary_db | 25 MB 00:00:00 ... Dependencies Resolved ======================================================================================================== Package Arch Version Repository Size ======================================================================================================== Installing: kernel aarch64 5.4.38-17.76.amzn2 amzn2extra-kernel-ng 25 M ... Transaction Summary ======================================================================================================== Install 1 Package ... Running transaction Installing : kernel-5.4.38-17.76.amzn2.aarch64 1/1 Verifying : kernel-5.4.38-17.76.amzn2.aarch64 1/1 ... Installed: kernel.aarch64 0:5.4.38-17.76.amzn2 ... Complete! 0 ansible2 available [ =2.4.6 =2.8 =stable ] 1 httpd_modules available [ =1.0 =stable ] 2 memcached1.5 available \ [ =1.5.1 =1.5.16 =1.5.17 ] 4 postgresql9.6 available [ =9.6.8 =stable ] 5 postgresql10 available [ =10 =stable ] 6 redis4.0 available [ =4.0.10 =stable ] 7 R3.4 available [ =3.4.3 =stable ] 10 ruby2.4 available \ [ =2.4.4 =2.4.7 =stable ] 11 php7.2 available \ [ =7.2.13 =7.2.14 =7.2.16 =7.2.17 =7.2.19 =7.2.21 =7.2.22 =7.2.23 =7.2.24 =7.2.26 =stable ] 13 lamp-mariadb10.2-php7.2 available \ [ =10.2.10_7.2.11 =10.2.10_7.2.14 =10.2.10_7.2.16 =10.2.10_7.2.17 =10.2.10_7.2.19 =10.2.10_7.2.22 =10.2.10_7.2.23 =10.2.10_7.2.24 =stable ] 14 libreoffice available [ =5.3.6.1 =stable ] 16 docker=latest enabled \ [ =18.06.1 =18.09.9 =stable ] 18 GraphicsMagick1.3 available \ [ =1.3.29 =1.3.32 =1.3.34 =stable ] 19 tomcat8.5 available \ [ =8.5.32 =8.5.38 =8.5.40 =8.5.42 =8.5.50 =stable ] 20 epel available [ =7.11 =stable ] 21 testing available [ =1.0 =stable ] 22 ecs available [ =stable ] 23 corretto8 available \ [ =1.8.0_202 =1.8.0_212 =1.8.0_222 =1.8.0_232 =1.8.0_242 =stable ] 24 golang1.11 available \ [ =1.11.3 =1.11.11 =1.11.13 =stable ] 25 squid4 available [ =4 =stable ] 26 php7.3 available \ [ =7.3.2 =7.3.3 =7.3.4 =7.3.6 =7.3.8 =7.3.9 =7.3.10 =7.3.11 =7.3.13 =stable ] 27 java-openjdk11 available [ =11 =stable ] 28 lynis available [ =stable ] 29 kernel-ng=latest enabled [ =stable ] 30 BCC available [ =0.x =stable ] 31 nginx1 available [ =stable ] 32 ruby2.6 available [ =2.6 =stable ] 33 mock available [ =stable ] 34 postgresql11 available [ =11 =stable ] 35 php7.4 available [ =stable ]
過去バージョン
2019年11月 にリリースされた Linux 5.4、2020年2月にAmazonLinux2用のパッケージが利用可能となっていました。
aarch64
$ yum --showduplicates list | grep -e "^kernel.aarch64.* amzn2extra" kernel.aarch64 4.19.58-21.57.amzn2 amzn2extra-kernel-ng kernel.aarch64 4.19.58-21.64.amzn2 amzn2extra-kernel-ng kernel.aarch64 4.19.66-22.57.amzn2 amzn2extra-kernel-ng kernel.aarch64 4.19.72-25.58.amzn2 amzn2extra-kernel-ng kernel.aarch64 4.19.75-27.58.amzn2 amzn2extra-kernel-ng kernel.aarch64 4.19.75-28.73.amzn2 amzn2extra-kernel-ng kernel.aarch64 4.19.82-30.69.amzn2 amzn2extra-kernel-ng kernel.aarch64 4.19.84-33.70.amzn2 amzn2extra-kernel-ng kernel.aarch64 5.4.20-12.75.amzn2 amzn2extra-kernel-ng kernel.aarch64 5.4.38-17.76.amzn2 amzn2extra-kernel-ng
x86_64
$ yum --showduplicates list | grep -e "^kernel.x86.* amzn2extra" kernel.x86_64 4.19.58-21.57.amzn2 amzn2extra-kernel-ng kernel.x86_64 4.19.58-21.64.amzn2 amzn2extra-kernel-ng kernel.x86_64 4.19.66-22.57.amzn2 amzn2extra-kernel-ng kernel.x86_64 4.19.72-25.58.amzn2 amzn2extra-kernel-ng kernel.x86_64 4.19.75-27.58.amzn2 amzn2extra-kernel-ng kernel.x86_64 4.19.75-28.73.amzn2 amzn2extra-kernel-ng kernel.x86_64 4.19.82-30.69.amzn2 amzn2extra-kernel-ng kernel.x86_64 4.19.84-33.70.amzn2 amzn2extra-kernel-ng kernel.x86_64 5.4.20-12.75.amzn2 amzn2extra-kernel-ng kernel.x86_64 5.4.38-17.76.amzn2 amzn2extra-kernel-ng
確認
EC2インスタンスを再起動後、5.4 の カーネルが利用されている事を確認できました。
再起動前
$ uname -a Linux ip-172-xx-x-xxx.ap-northeast-1.compute.internal 4.14.173-137.229.amzn2.aarch64 #1 SMP Wed Apr 1 18:09:02 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
再起動後
$ uname -a Linux ip-172-xx-x-xxx.ap-northeast-1.compute.internal 5.4.38-17.76.amzn2.aarch64 #1 SMP Thu May 7 17:31:08 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
まとめ
Amazon Linux2の拡張リポジトリを利用する事で、最新 LTSカーネル を導入することが出来ました。 標準カーネル(4.17)との機能差などについては、追って報告させて頂きたいと思います。
尚、拡張リポジトリ で提供されるパッケージは Amazon Linux 2 の LTS サポート の対象外となる点には注意してご利用ください。