Alibaba Cloud Linux 4 (Alinux 4) は、Alibaba Cloud が OpenAnolis コミュニティの Anolis OS 23 リリースをベースに開発し、高度にカスタマイズした Linux サーバー OS ディストリビューションです。本トピックでは、Alinux 3 ユーザーがアップグレードの評価、互換性分析、移行計画を行う際の参考となるように、製品の位置付け、モジュール/コンポーネント、カーネル機能、ソフトウェアパッケージの観点から、Alinux 3 と比較した Alinux 4 の主な違いについて説明します。
製品の位置付けと推奨シナリオ
Alibaba Cloud Linux 4 は、もはや CentOS 互換の代替を追求するのではなく、まったく新しい 6.6 カーネルを採用し、そのコアツールチェーンのバージョンを再選定しています。その設計目標は、ヘテロジニアスコンピューティングパワーのサポート、AI コンピューティングパワーの最適化、AI 運用の可観測性、インテリジェントなシステムの進化といった方向性を目指しています。
製品世代の位置付けの比較
|
ディメンション |
Alibaba Cloud Linux 3 |
Alibaba Cloud Linux 4 |
|
リリース年 |
2021 |
2025 年 7 月 |
|
アップストリームベース |
Anolis OS 8 |
Anolis OS 23 |
|
CentOS 互換性 |
主要な目標 |
CentOS 互換の代替製品としての位置付けではありません。 |
|
主要な推進要因 |
CentOS の代替と Alibaba Cloud 第 8 世代インスタンスへの対応 |
AI 主導、ヘテロジニアスコンピューティングパワー、インテリジェントな進化 |
|
カーネルバージョン |
5.10 (ANCK) |
6.6 (ANCK) |
|
パッケージ管理 |
dnf (yum 互換) |
dnf (Alibaba Cloud Linux 3 と同じ、新世代のリポジトリ構造) |
|
代表的なコンポーネント名 |
al8 |
alnx4 |
推奨シナリオ
Alibaba Cloud Linux 4 は、以下のシナリオでの使用を推奨します。
エージェントワークロードのシナリオ:このシナリオにおいて、エージェントランタイムとして機能し、セキュリティ保護とトークン節約機能を提供します。また、Alibaba Cloud およびオープンソースの Sandbox フレームワークのランタイム環境のデプロイメントとチューニングを完全にサポートし、起動速度とワークロード密度において独自の強みを発揮します。
第 9 世代以降の汎用コンピューティングインスタンス:これらのインスタンス向けに、カーネルレベルでパフォーマンスを最適化し、機能を有効化します。
トレーニングと推論のシナリオ:このシナリオ向けに、トレーニングと推論のスイートを提供し、最適化と高速化を実現します。
国内インスタンスタイプ:これらのインスタンスタイプ向けに、セキュリティとコンプライアンスの要件を満たし、最大 13 年間のライフサイクルメンテナンスを提供します。
全コンポーネントの比較
Alinux 3 (バージョン 3.13 ベースライン) と Alinux 4 (バージョン 4.0.2 ベースライン) のコンポーネントを比較した結果、同一のコンポーネントが約 58% を占めています。全体的な差異の分布は次のとおりです。
|
コンポーネントの状態 |
コンポーネント数 |
説明 |
|
Alinux 4 に継承 |
1706 |
このうち、1666 個のコンポーネントは完全に同一で、残りの 40 個はコンポーネント名/プロバイダーが変更された同等機能のコンポーネントです。 |
|
Alinux 4 で提供終了 |
1191 |
主に多言語サポートとモジュールパッケージです。 |
|
Alinux 4 で新規追加 |
724 |
主に製品戦略とエコシステムカバレッジのためです。このうち、257 個が Perl 言語サポートパッケージ、427 個が Python 言語サポートパッケージ、40 個が OCaml サポートおよび GCC マルチバージョンサポート用です。 |
全コンポーネントの比較については、「付録: 全コンポーネント比較リスト」をご参照ください。
モジュール/コンポーネントのバージョンの違い
システム機能の変更
|
機能 |
Alibaba Cloud Linux 3 |
Alibaba Cloud Linux 4 |
相違点の説明 |
|
パッケージ管理 |
dnf-4.7.0 |
dnf-4.16.2 |
使用法に違いはありません。dnf と yum の両方が提供されます。上位バージョンでは、セキュリティ、署名検証、パフォーマンスが最適化されています。 |
|
ネットワーク設定 |
NetworkManager-1.40.16 |
NetworkManager-1.44.2 |
コンテナネットワーキング、WireGuard、DNS-over-TLS がデフォルトで強化されています。 |
|
ネットワークパケットフィルタリング |
nftables-1.0.4 |
nftables-1.0.8 |
iptables 互換レイヤーがさらに統合されています。 |
|
デフォルトのコンテナランタイム |
podman-4.9.4 |
moby-28.3.3 / containerd-1.7.29 |
デフォルトのコンテナランタイムが podman から moby に変更され、containerd も利用可能になります。 |
|
Java ディストリビューション |
OpenJDK 1.8/11/17/21 (コミュニティ版) |
Alibaba Dragonwell 1.8/11/17/21/25 |
JDK 25 が追加で提供され、デフォルトで Dragonwell を通じて OpenJDK が高速化されます。 |
|
デフォルトのPython |
python3.6 (3.11 の追加サポートあり) |
python3.11 |
3.11 では、特殊化適応的インタープリターやインラインキャッシュなど、注目すべきシステム最適化が導入されています。 |
|
OpenSSL |
OpenSSL 1.1.1 (レガシー ABI 互換) |
OpenSSL 3.0.12 (デフォルト) / OpenSSL 1.1.1q (提供あり) |
OpenSSL 3.0.12 では、FIPS 140-3、プロバイダーアーキテクチャー、TLS 1.3 優先度がサポートされます。 |
|
Cgroup |
デフォルトで Cgroup V1 が有効 |
デフォルトで Cgroup V2 が有効 |
cgroup v1 に依存するツールは対応が必要です。 |
注意: Alinux 4 では、
cgroup v2とOpenSSL 3.0がデフォルトで使用されます。レガシー OpenSSL ABI (libssl.so.1.1など) を使用するバイナリは、再コンパイルするか互換パッケージをインストールする必要があります。cgroup v1 パスに依存するコンテナオーケストレーションまたは監視ツールは、cgroup v2 の統一階層に対応させる必要があります。
コンポーネントのアップグレードの説明
|
コンポーネント |
カテゴリ |
Alibaba Cloud Linux 3 |
Alibaba Cloud Linux 4 |
主な変更点 |
|
カーネル |
カーネル |
5.10 |
6.6 |
ANCK 6.6 では、io_uring の強化、ext4 パフォーマンスの最適化、large folio、MGLRU、EEVDF/sched_ext、cgroup v2 cpuset など、多数のアップストリームの機能が導入されています。 |
|
glibc |
ベース |
2.32 |
2.38 |
Linux 5.8〜6.3 の新しいシステムコールのサポート、ARM64/RISC-V の最適化、malloc の強化、VDSO の高速化。 |
|
libc++ |
ベース |
15.0.7 |
17.0.6 |
C++20 の最適化と新しい C++23 機能。コンテナとフォーマットの最適化。 |
|
libstdc++ |
ベース |
10.2.1 |
12.3.0 |
C++20 の最適化と初期の C++23 サポート。スレッドセーフティの調整。 |
|
libvirt |
仮想化 |
8.0.0 |
9.10.0 |
仮想化スタック全体がアップグレードされ、新しい qemu と統合されます。 |
|
qemu |
仮想化 |
6.2.0 |
8.2.0 |
新しいハードウェアプラットフォームと virtio の強化をサポートし、パッケージ名が qemu-kvm から qemu に変更されました。 |
|
GCC |
コンパイラ |
8.5 |
12.3 |
C++20/23、静的アナライザー、新しい ISA 命令セットの改善。 |
|
systemd |
システム管理 |
239 |
254 |
統一された cgroup v2、Portable Services、認証情報、BPF、OOM ポリシーなど。 |
|
OpenSSL |
セキュリティ |
1.1.1 |
3.0.12 |
FIPS 140-3、プロバイダーアーキテクチャー、TLS 1.3 優先度。 |
|
containerd |
コンテナ |
提供なし |
1.7.29 |
スタンドアロンの containerd コンポーネントが追加されます。 |
|
moby |
コンテナ |
提供なし (podman のみ) |
28.3.3 |
moby (オープンソース Docker エンジン) が追加されます。 |
カーネルの主要な新機能
ストレージ
io_uring
5.10 と比較して、6.6 カーネルは io_uring 非同期 IO フレームワークを引き続き強化しています:
|
機能 |
説明 |
|
非同期バッファ書き込み |
fast path でのバッファ書き込みサポートを追加し、xfs テストでパフォーマンスを約 3 倍に向上させました。 |
|
タスクワークのロック競合 |
スピンロックをロックレスリストに変更し、マルチスレッドでの task_work_add のパフォーマンスを約 20% 向上させました。 |
|
マルチショット完了のバッチ処理 |
マルチショット完了イベントが IO_URING_F_COMPLETE_DEFER を再利用することで、RPS が 8.3 M/s から 19.3 M/s に向上しました (約 2.3 倍)。 |
|
SQ/CQ キャッシュの最適化 |
io_uring nop マイクロベンチマークのパフォーマンスが約 9% 向上しました。 |
|
新機能 |
multishot accept/recvmsg/timeout、ネットワークゼロコピー、パススルー、ユーザースペースのブロックドライバー ublk など。 |
ext4
ブロック割り当て、inode の事前割り当て、並行性とロック、スケーラビリティなど、複数の側面で改善が行われています:
|
機能 |
説明 |
|
delalloc バッファ書き込みパフォーマンスの向上 |
delalloc 書き込みパスから不要なジャーナル操作を削除し、UnixBench のパフォーマンスを約 73% 向上させました。 |
|
孤立ファイルの処理の高速化 |
オンディスクのリンクリストを置き換えるために孤立ファイルを導入し、128 スレッドのマイクロベンチマークで操作時間を約 40% 削減しました。 |
|
fast_commit パフォーマンスの向上 |
ext4_fc_commit_dentry_updates が O(n²) から O(n) に最適化され、fs_mark のマルチディレクトリ・小規模ファイルシナリオでパフォーマンスが約 171 倍に向上しました。 |
|
事前割り当てブロックに対応する DIO 共有 inode ロック |
事前割り当てブロックへの上書きが i_data_sem で保護されるよう変更され、4k マルチスレッド DIO 書き込みのパフォーマンスが約 4 倍に向上しました。 |
|
inode の事前割り当てリスト → rbtree |
検索の複雑さが O(n) から O(log n) に削減され、スパース書き込みが 1 倍から 2 倍に向上しました。 |
|
delalloc での追記の高速化 |
追記シナリオでは、i_disksize の更新が遅延されることで、32 スレッドでの同時追記のパフォーマンスが約 34% 向上しました。Kafka 2.6.2 で測定したスループットは 10% 向上しました。 |
|
通常ファイルでの Large folio の有効化 |
バッファヘッドに基づいて mballoc/write_begin/writeback の folio をリファクタリングし、バッファ付き IO の読み書きパフォーマンスを最大で約 1.2 倍に向上させました。 |
メモリ
メモリサブシステムでは、コスト最適化、大容量メモリ管理、ソフトウェアとハードウェアの連携などの領域に対応しています。
メモリのコスト最適化
|
機能 |
説明 |
|
HVO (HugeTLB vmemmap の最適化) |
hugetlb のヒュージページ内にある未使用の末尾ページ構造体を解放することで、1 TB サイズの 1 GB hugetlb の場合、16 GB のメモリを節約できます。 |
|
DAMON (Data Access Monitor) |
領域サンプリングと適応的な領域調整に基づいて、コールドメモリをプロアクティブに回収します。 |
|
MGLRU によるコールドメモリの回収 |
より軽量なメモリのエイジングと、能動的なコールドメモリ回収を実現するソリューションです。 |
|
tmpfs でのゼロページ充填 |
tmpfs のスパースファイルにゼロページを再利用することで、追加の物理メモリが占有されるのを防ぎます。 |
大容量メモリ管理 (Large folio + ロックのスケーラビリティ)
AI や仮想化の大容量メモリシナリオでは、6.6 カーネルはデフォルトで Large folio を有効にし、ARM の連続 PTE と AMD の THP をサポートして TLB ミスを削減します。さらに、5.10 カーネルでは回避策でしか対応できなかった mmap_lock のスケーラビリティ問題を完全に解決します。
メモリにおけるソフトウェアとハードウェア連携の最適化
|
機能 |
説明 |
|
メモリ階層化 |
CXL/PMEM などの異種メモリについて、ホット/コールドの自動階層化管理をサポートします。 |
|
マイグレーション時のバッチ TLB フラッシュ |
TLB IPI をバッチ処理することで、マイグレーションパスのパフォーマンスを最適化します。 |
|
NUMA バランシングのヒュージページ対応 |
Large folio も NUMA バランシングの対象となり、ローカルのヒュージページにアクセスすることでビジネスパフォーマンスを向上させます。 |
|
コードセグメントの複数レプリカ (duptext) |
リモートノードのコードセグメントをローカルノードにコピーし、クロス NUMA アクセスを回避します。 |
スケジューリング
|
機能 |
説明 |
|
EEVDF |
仮想デッドラインに基づくスケジューリングです。CFS と比較して、スループットを維持したまま、レイテンシーセンシティブなタスクに対してより高速な応答を可能にします。 |
|
sched_ext |
ext スケジューリングクラスを追加します。これにより、eBPF プログラムを通じてカスタムスケジューリングポリシーを実装し、さまざまなビジネスシナリオに最適なスケジューラを調整できます。 |
|
PSI の強化 |
cgroup ごとの PSI 統計スイッチ、irq/softirq 負荷統計、非特権ユーザーによる psi イベントのポーリングなどに対応します。 |
|
cgroup v2 cpuset の分離 |
分離モードが追加されました (cpuset 範囲内では負荷分散を行わず、DPDK などの排他的なシナリオに適しています)。 |
|
Group Identity 2.0 |
CFS/EEVDF に基づくきめ細かいスケジューリング最適化により、ハイパースレッディングの競合を簡単かつ効率的に回避します。 |
|
Group Balance 2.0 |
CPU 共有モードにおけるアフィニティドメインの問題と、キャッシュ/TLB 競合による干渉を解決する動的スケジューリングソリューションです。 |
差分コンポーネントの分類別分析
Alinux 4 で提供されなくなったコンポーネント
合計 1255 個のコンポーネントが該当し、その内訳は次のとおりです:
190 個の多言語フォーマットサポートパッケージ:Alinux 4 は中国語と英語のみをサポートしており、その他の言語はまだサポートされていません。
108 個のモジュールパッケージ (DNF Modular):Alinux 4 は現在、モジュールパッケージフォーマットをサポートしていません。
36 個のドライバーコンポーネント (kmod-*):Alinux 4 ではまだ提供されておらず、今後の計画は検討中です。
30 個の mingw コンパイルツールチェーン:Alinux 4 は mingw クロスコンパイル環境を提供していません。
42 個の gcc マルチバージョン:Alinux 3 で提供されていた
gcc-toolset-12/13などの古いマルチバージョンツールチェーンは提供されなくなりました。34 個の OCaml サポートパッケージ:Alinux 3 で提供されていた OCaml エコシステムは提供されなくなりました。
9 個の Red Hat 製品コンポーネント:Alinux 4 はプロプライエタリ製品であるため、これらを導入する必要はありません。
806 個のその他のアプリケーションコンポーネント:まだ明確に分類されておらず、アプリケーション側で一つずつ確認する必要があります。
アップグレードに関する推奨事項:移行前に
rpm -qaを使用して既存の Alinux 3 インスタンスのパッケージリストをエクスポートし、上記のカテゴリと比較してください。モジュールパッケージ、gcc マルチバージョンツールチェーン、mingw、OCaml、kmod-*、または Red Hat 製品コンポーネントに依存している場合は、事前に代替案を検討してください。
Alinux 4 で変更されたコンポーネント
Alinux 4 には、等価な機能を持ちながらパッケージ名やプロバイダーが異なるコンポーネントが合計 40 個あります。主な置き換えは次のとおりです:
|
元の Alinux 3 コンポーネント |
Alinux 4 の代替コンポーネント |
説明 |
|
SDL 1.2.15 |
sdl12-compat 1.2.68 |
SDL 1.2 → SDL 2 互換レイヤー |
|
device-mapper-multipath 0.8.4 |
multipath-tools 0.9.5 |
プロバイダーの変更 |
|
fipscheck 1.5.0 |
libkcapi-fipscheck 1.4.0 |
FIPS 検証が libkcapi に変更 |
|
glassfish-annotation-api / servlet-api |
jakarta-annotations / jakarta-servlet |
JavaEE → Jakarta EE 名前空間への移行 |
|
hardlink 1.3 |
util-linux-core 2.39.1 |
util-linux-core への統合 |
|
java-1.8.0/11/17-openjdk |
java-1.8.0/11/17-alibaba-dragonwell |
デフォルト OpenJDK の Dragonwell への置き換え |
|
python3.11-* シリーズ (17 個) |
対応する python3-* パッケージ |
パッケージ名の正規化 |
|
qemu-kvm 6.2.0 |
qemu 8.2.0 |
パッケージ名の変更 (qemu-kvm から qemu へ) |
|
shadow-utils 4.6 |
shadow 4.14.3 |
パッケージ名の調整 |
|
system-lsb 4.1 |
lsb-release 3.2 |
プロバイダーの変更 |
Alinux 4 固有のコンポーネント (1109 個)
Alinux 3 と比較して Alinux 4 で新たに追加されたコンポーネントは、主に次の分野に分類されます:
427 個の Python 言語エコシステムパッケージ:デフォルトの python 3.11 ランタイム向けに追加された python3-* モジュールです。
257 個の Perl 言語エコシステムパッケージ:perl 5.36 のアップグレードに伴い追加された CPAN モジュールパッケージです。
40 個の OCaml および gcc マルチバージョンサポートパッケージ:Alinux 3 とは異なる新しいバージョンがツールチェーンとして提供されます。
385 個のその他のエコシステム/製品戦略パッケージ:Anolis 23 / OpenAnolis コミュニティのエコシステム拡張によるものです。
互換性と移行に関する推奨事項
適用シナリオの評価
以下のシナリオでは、Alinux 4 へのアップグレードを優先的に評価することを推奨します。
|
ビジネスシナリオ |
アップグレードのメリット |
|
AI トレーニング/推論 (大規模モデル、vLLM、SGLang) |
6.6 large folio、アンキャッシュド IO、Cachefs、フルスタックプロファイリング、および分散推論の最適化。 |
|
異種混在/国産ハードウェア (Hygon、Zhaoxin、Kunpeng、Phytium、国産 GPU) |
Alinux 4 は、Alibaba Cloud の国産ルートにおける次世代のコア基盤であり、ネイティブに対応しています。 |
|
第 9 世代以降のインスタンス |
新しい命令セット、プラットフォームドライバー、およびスケジューリング最適化。 |
|
大規模コンテナ/コロケーション |
デフォルトでの cgroup v2、cgroup ごとの PSI、cpuset 分離、および Group Identity/Balance 2.0。 |
|
OpenSSL 3.0、Python 3.11、または GCC 12+ に対する強い要件 |
最新のインフラストラクチャをすぐに利用できます。 |
リスクの高い互換性項目
OpenSSL 3.0:従来の
libssl.so.1.1バイナリはデフォルトでは提供されなくなったため、再コンパイルするか、互換パッケージをインストールする必要があります。デフォルトでの cgroup v2:cgroup v1 パスに依存するコンテナオーケストレーションおよびモニタリングエージェントは、対応が必要です。
Java のデフォルトは Dragonwell:業務で OpenJDK の動作またはベンダー文字列に厳密に依存している場合は、OpenJDK と Dragonwell のどちらか一方を明示的に指定する必要があります。
Python のデフォルトは 3.11:Python 3.6 でコンパイルされた C 拡張機能や、distutils に依存するレガシースクリプトは、対応が必要です。
モジュールパッケージはサポート終了:DNF Modular を使用するデプロイメントスクリプトは、リファクタリングする必要があります。
kmod-* ドライバー:一部のハードウェアドライバー (ena、bnxt、hns3 など) は現在 Alinux 4 で提供されていないため、業務への影響を評価する必要があります。
パッケージ名の変更:
qemu-kvm → qemu、shadow-utils → shadow、system-lsb → lsb-release、python3.11-* → python3-*のようなパッケージ名の変更には、デプロイメントスクリプトの更新が必要です。
推奨される移行パス
インベントリ:Alinux 3 インスタンスで
rpm -qa > alinux3-pkglist.txtを実行し、このトピックで分類されている差分コンポーネントと比較分析を行います。置換:変更されたコンポーネントについては、デプロイメントスクリプトが Alinux 4 の同等のパッケージ名を使用するように調整します。
評価:「個別に確認が必要なコンポーネント」については、テスト環境でその必要性を検証します。
試験導入:AI、コロケーション、国産ハードウェアのシナリオでは、非コアビジネスにおいて Alinux 4 の試験導入を優先します。
本格展開:試験導入が安定した後、必要に応じてコンテナ化を移行手段として活用し、コアビジネスにおいてバッチで置き換えを行います。