1 新機能および変更点
Unbreakable Enterprise Kernelリリース6 (UEK R6)は、Oracle Linux 7.7以上およびOracle Linux 8.1以上用にテストおよび最適化されたオペレーティング・システム・カーネルです。 カーネルは、Arm (aarch64) Intel x86およびAMD x86 (x86_64)プラットフォームで開発、構築およびテストされています。 これはメインラインのLinuxカーネル・バージョン5.4に基づいています。 これらのリリースでは、ドライバが更新され、バグやセキュリティの修正が含まれています。
Oracleはアップストリームのチェックインをアクティブに監視し、クリティカルなバグおよびセキュリティの修正をUEK R6に適用します。
UEK R6U1は、UEK R6カーネルの5.4.17-2036バージョンとビルドを使用します。これには、セキュリティとバグの修正、およびドライバの更新が含まれます。
UEK R6は、メインラインのLinuxカーネル・バージョンと同じバージョニング・モデルを使用します。 一部のアプリケーションでは、5.4.バージョニング・スキームが認識されない可能性があります。 ただし、通常のLinuxアプリケーションでは、通常はLinuxカーネルのバージョン番号は認識されず、それによる影響もありません。
UEK R6は、Red Hat互換カーネル(RHCK)との互換性を維持し、RHCKで有効化されている機能は無効化しません。 Oracleオペレーティング環境で使用するために、パフォーマンスを向上させ、カーネルを最適化するために、主要な機能要件およびパッチに対するサポートが提供されます。
カーネルのソース・コードは、パブリックGitソース・コード・リポジトリ(https://github.com/oracle/linux-uek)を介して使用できます。
主な特徴と変更
Unbreakable Enterprise Kernelリリース6更新1 (UEK R6U1)の主な新機能は次のとおりです。
カーネルの基本機能
UEK R6U1では、UEK R6と同等のコア・カーネル機能が提供され、同じアップストリームのメインライン・カーネル・リリースおよびアップストリームLTSバグ修正が使用され、既存の機能を強化し、わずかなバグ修正およびセキュリティ改善が提供されます。 主な変更は、Oracle Databaseおよびその他のOracleソフトウェアに必要な機能に固有です。
ktaskの代わりにPadata
Padataは、カーネルでCPU集中型の作業をパラレル化するためのフレームワークです。 UEK R6では、OracleはCPU集中型のカーネル作業をマルチスレッド化するためのktaskフレームワークをリリースしましたが、アップストリーム・カーネルでのpadata実装の収束および継続的な開発に貢献しました。 UEKでは、アップストリームに合わせてpadataでR6U1 ktaskが同等の機能に置き換えられています。 変更はユーザーには表示されず、起動時間を短縮するために構造体ページの初期化およびVFIO対応KVMゲストの初期化が引き続きマルチスレッド化されます。
padataのドキュメントは、/usr/share/doc/kernel-uek-doc-5.4/core-api/padata.rst
で提供されています。
ファイル・システム
UEK R6U1には、次の重要なファイル・システムの変更が実装されています:
-
Btrfs
セキュリティ強化およびバグ修正のためのアップストリーム・パッチが適用されました。 これには、CVE-2019-19448の修正が含まれます。
-
CIFS
一般的なアップストリーム・バグ修正パッチが適用されました。
-
Ext4
アップストリームのバグ修正が適用されました。これには、望ましくない動作またはシステム・ハングの原因となった競合状況に対するいくつかの修正が含まれます。
-
NFS
バグ修正とパフォーマンス強化がNFSに適用されました。 コマンドの発行時にディレクトリが変更された場合、ls -lrtコマンドを停止したNFSv3クライアントの問題には、かなりの修正が含まれています。
-
OCFS2
5.7アップストリーム・カーネルからのOCFS2のアップストリーム変更は、このカーネル・リリースにバック・ポートされます。 NFSサーバーがOCFS2ファイル・システムでホストされたときに一般的な保護障害をトリガーした問題を解決するためのバグ修正も適用されました。
-
XFS
いくつかのバグ修正およびパフォーマンス強化が適用されました。 パフォーマンスを向上させ、競合状態による望ましくない動作の可能性を最小限に抑えるために、マルチスレッドinodeフラッシュが大幅に改善されます。 また、凍結ロックのロック解除が失敗し、ファイル・システムがハングする原因となるバグの修正も含まれています。 CVE-2020-12655の修正を含むセキュリティ拡張機能も適用されています。
テクニカル・プレビュー機能
UEK R6内でのリリースのために、いくつかの機能が調査中であり、開発が進行中です。 UEK R6U1では、次の機能をテクニカル・プレビューとして使用できます。
コア・スケジューリング
コア・スケジューリングは、データ漏洩やその他の関連する脆弱性を引き起こす可能性のある特定のカテゴリのコア共有キャッシュ・プロセッサのバグに対する軽減に役立つように、コンピュート・リソースを共有するCPUコアで同時に実行される信頼できるタスクを制限するためにカーネルで有効になる機能です。
この機能はcgroupの形式で実装され、コア・スケジュールが有効なcgroupのタスクは一意のグループcookieを持ちます。 これらのタスクは、異なるcookieを持つタスクまたは有効なコア・スケジュールcgroupにないタスクとコアを共有できません。
コア・スケジューリングは、同時マルチスレッドが有効になっているシステムで動作するように設計されています。 ただし、コア・スケジューリングでは、システムで必要となる可能性のあるほかのプロセッサ・セキュリティ軽減は必要ありません。 この機能を使用するには、SMT=on
が構成されていることを確認してから、rootユーザーとして次の操作を実行します:
-
通常のバージョン1のCPUコント・ロー・ラグ・ループを作成します。 たとえば、
cpu_sched_0
というグループを作成するには、次のようにします:# mkdir /sys/fs/cgroup/cpu/cpu_sched_0
-
cgroupにタスクを追加します。 タスクを追加するには、タスクのプロセスID (PID)をグループ内の
tasks
ファイルに書き込みます:# echo PID > /sys/fs/cgroup/cpu/core_sched_0/tasks
-
cpuコント・ロー・ラグ・ループのコア・スケジューリングを有効にするには、値1を
cpu.tag
ファイルに書き込みます:# echo 1 > /sys/fs/cgroup/cpu/core_sched_0/cpu.tag
cpu.tag
ファイルが更新されると、cgroup内のタスクが別のcgroupのタスクまたはcgroupに割り当てられていないタスクとコアを共有することはありません。
この機能はテクニカル・プレビューとして有効になっており、開発中です。 インタフェースは変更されることがあります。 コア・スケジューリングcgroupを備えたシステムのCPUのホット・プラグは推奨されません。 AMDプロセッサでコア・スケジューリングを使用すると、パフォーマンスの変動が大きくなる可能性があるため、推奨されません。
WireGuard
WireGuardは、IPsecおよびOpenVPNに代わる、より高速で安全性の高い製品です。 新しいネットワークは、IPsecやOpenVPNなどのレガシー・テクノロジではなく、WireGuardの最新の暗号化を使用して構築されています。 WireGuardはUEK R6U1でテクニカル・プレビューとして有効化され、バージョン1.0.20200712のwireguard
カーネル・モジュールが導入されています。
WireGuardを構成するには、サポートされていないol7_developer_UEKR6
リポジトリのwireguard-tools
パッケージが必要です。 このyumリポジトリにアクセスするには、オペレーティング環境に適したoraclelinux-developer-release-el7
またはoraclelinux-developer-release-el8
パッケージをインストールする必要があります。 インストール後、リリース前のUEK更新を誤ってインストールしないように、wireguard-tools
パッケージのリポジトリの使用を制限します。
Oracle Linux 7にwireguard-tools
パッケージをインストールするには、次のコマンドを実行します:
# yum install oraclelinux-developer-release-el7 # yum-config-manager --disable ol7_developer # yum-config-manager --enable ol7_developer_UEKR6 # yum-config-manager --save --setopt=ol7_developer_UEKR6.includepkgs='wireguard-tools*' # yum install wireguard-tools
このパッケージをOracle Linux 8にインストールするには、次のコマンドを実行します:
# dnf install oraclelinux-developer-release-el8 # dnf config-manager --disable ol8_developer # dnf config-manager --enable ol8_developer_UEKR6 # dnf config-manager --save --setopt=ol8_developer_UEKR6.includepkgs='wireguard-tools*' # dnf install wireguard-tools
NFS v4.2サーバー側コピー
NFS v4.2サーバー側コピー機能はアップストリーム・カーネルからバック・ポートされ、UEK R6U1でテクニカル・プレビューとして使用できます。 サーバー側のコピー機能は、NFSクライアントがNFSクライアントを介してネットワーク上で送受信されるデータを使用せずに、サーバー上または2つのサーバー間でファイル・データをコピーできるメカニズムを提供します。 イン・トラ・サーバー機能は有効になっていますが、インター・サーバー機能はデフォルトで無効になっています。 この機能を有効にするには、nfsd
モジュールのinter_copy_offload_enable
パラメータを設定し、NFSサービスを再起動します。 これを一時的に行うには、次のコマンドを実行します:
# echo y > /sys/module/nfsd/parameters/inter_copy_offload_enable
または、この変更を永続的にするには、/etc/modprobe.d/nfsd.conf
を編集して次の行を追加します:
options nfsd inter_copy_offload_enable=Y
サーバー側のコピーを実行できるかどうかは、サーバー・ファイル・システムの機能に大きく依存することに注意してください。 たとえば、ファイルの効率的なイン・トラ・サーバー・コピーを実行するには、基礎となるターゲット・ファイル・システムに個々のファイルのスナップショットまたはクローン機能が必要です。
初期テストでは、この機能にいくつかの問題があることが示されており、このリリースでは主に実験的とみなされています。
ドライバの更新
Unbreakable Enterprise Kernelリリース6では、多数のハードウェアおよびデバイスがサポートされています。 ハードウェアおよびストレージ・ベンダーと協力し、Oracleでは、メインラインLinux 5.4のバージョンからデバイス・ドライバをいくつか更新しました。
UEK R6に含まれるドライバ・モジュールの完全なリストとバージョン情報は、付録の「Unbreakable Enterprise Kernelリリース6 (x86_64)のドライバ・モジュール」に記載されています。
注目に値するドライバの機能と更新
UEK R6U1に同梱されているドライバには、次の新機能があります:
-
AMD-TEEドライバ
AMD-TEEドライバ
amdtee
およびtee
は、このリリースの新しい追加機能であり、AMDミラノCPUファミリのメイン・ライン・カーネルの更新を含めるためのより広範なイニシアチブの一環として、バージョン1.0に含まれています。 -
Atheros 802.11n HTCワイヤレスLANカード・ドライバ
Atheros 802.11n HTCワイヤレスLANカード・ドライバ(
ath9k_htc
)には、CVE-2019-19073を含むセキュリティ修正のパッチが適用され、更新されます。 -
Broadcom BCM573xxネットワーク・ドライバ
Broadcom BCM573xxネットワーク・ドライバ
bnxt_en
は、バージョン1.10.1で入手でき、ベンダーが提供するパッチと更新プログラムが含まれています。 ベンダーからのリクエストには、古いファームウェアの統計収集をより適切に処理するためのパッチも含まれています。 リセット間のネットワーク・カウンタのメンテナンスも大幅に改善され、irq_re_init
パラメータが設定されている場合にのみリセット中のカウンタの累積が発生するようになりました。 アップストリームが変更されると、このドライバを使用するBroadcomネットワーク・インタフェースのデバイス名が変更されることに注意してください。 たとえば、以前にeno3d1として識別されたデバイスは、eno3として識別されるようになりました。 この変更の結果、ネットワーク・デバイス上のポートが異なる機能に属している可能性があり、デバイス上のポート機能に関する前提をなくすことでデバイスの命名を改善するために修正が適用されているためです。 -
Intel Ethernet接続E800シリーズ・ドライバ
Intel Ethernet接続E800シリーズLinuxドライバ
ice
は、「コロンビアーヴィル」コード名を使用して、新しいIntel 800シリーズEthernetコントローラおよびPCIeカードのサポートを有効にするために、ベンダー提供のパッチおよび更新を含むバージョン0.8.2-kに完全に更新されます。 -
Broadcom Emulex LightPulseファイバ・チャネルSCSIドライバ
Broadcom Emulex LightPulseファイバ・チャネルSCSIドライバ
lpfc
は、ベンダー提供のパッチおよびバグ修正でバージョン12.8.0.3に更新されます。 -
Broadcom MegaRAID SASドライバ
Broadcom MegaRAID SASドライバ
megaraid_sas
がバージョン07.714.04.00-rc1に更新されます。 この更新には、アップストリーム・カーネルのリリースと並行してドライバのバージョンを提供するベンダー提供のパッチが含まれます。 -
LSI MPT Fusion SAS 3.0デバイス・ドライバ
LSI MPT Fusion SAS 3.0デバイス・ドライバ
mpt3sas
がバージョン34.100.00.00に更新され、ドライバ・バージョンをアップストリーム・カーネル・リリースと並行して提供するパッチが含まれます。 -
QLogicファイバ・チャネルHBAドライバ
QLogicファイバ・チャネルHBAドライバ
qla2xxx
はバージョン10.01.00.25-kに更新され、ドライバ・バージョンをアップストリーム・カーネル・リリースに合せて提供するための多数のベンダー提供パッチが含まれています。 -
Realtek RTL8152/RTL8153ベースのUSBイーサネット・アダプタ・ドライバ
Realtek RTL8152/RTL8153ベースのUSBイーサネット・アダプタ・ドライバ(
r8152
)は、アップストリーム・カーネル・パッチでバージョン1.10.11に更新されます。 -
Intelボリューム管理デバイス・ドライバ
Intel VMD (Volume Management Device)ドライバ
vmd
、バージョン0.6がこのカーネル・リリースに追加され、Intel Xeonプロセッサによって提供されるハードウェア・ロジックを利用し、NVMeデバイスの保守性を実現します。 このドライバはNVMe PCIe SSDを集約し、SATAおよびSAS用のHBAと同様に動作します。
互換性
Oracle Linuxは、オペレーティング・システムの下で実行されているカーネル・バージョンに依存しない、Red Hat Enterprise Linux (RHEL)との完全なユーザー空間の互換性を維持します。 ユーザー空間の既存のアプリケーションは、Unbreakable Enterprise Kernelリリース6で変更なしに引き続き実行され、RHEL認定アプリケーションには再認定は必要ありません。
Oracle Linuxチームはリリース時の互換性に関する影響を最小限に抑えるため、カーネル・モジュールに対する依存性があるハードウェアおよびソフトウェアを提供するサード・パーティ・ベンダーと緊密に協力しています。 UEK R6のカーネルABIは、初期リリースへの後続のすべての更新で変更されません。 このリリースでは、システムのサード・パーティのカーネル・モジュールの再コンパイルを必要とする、UEK R5を基準とするカーネルABIに変更が加えられています。 UEK R6をインストールする前に、アプリケーションのベンダーにサポート・ステータスを確認してください。
カーネル・ヘッダーでの重要な変更
カーネル・ヘッダーへの変更をアップストリームすると、ソース・コードを変更することなく、サード・パーティのモジュールが異なるカーネル・バージョン間でコンパイルすることを意味する場合があります。 memcg_cache_params
構造がinclude/linux/slab.h
からmm/slab.h
に移動されたことが顕著です。 つまり、カーネル・バージョン間でコンパイルする場合は、コードを考慮に入れて変更を考慮する必要があります。
この問題を解決するには、コードがUEK R5とUEK R6の両方でコンパイルできるように、ソース・コードでヘッダー要件を変更します。 たとえば、次の例のような明細を、2番目の例のように変更します:
#ifdef CONFIG_SLUB #include <linux/slub_def.h> #endif
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0) ) #ifdef CONFIG_SLUB #include <linux/slub_def.h> #endif #endif
Oracle製品に対するUEK R6の認証
UEK R6での様々なOracle製品の動作保証は、UEK R6リリースの時点ですぐには利用できない場合があります。 使用している製品が、カーネルのアップグレードやインストール前にUEK R6で使用されていることを確認する必要があります。 https://support.oracle.com/epmos/faces/CertifyHomeで認証を確認してください。
各種カーネル・バージョンのOracle Automatic Storage Managementクラスタ・ファイル・システム(Oracle ACFS)の動作保証は、https://support.oracle.com/epmos/faces/DocumentDisplay?id=1369107.1で入手できるドキュメントID 1369107.1で説明されています。
異なるカーネル・バージョンのOracle Automatic Storage Managementフィルタ・ドライバ(Oracle ASMFD)の動作保証については、https://support.oracle.com/epmos/faces/DocumentDisplay?id=2034681.1で入手できるDocument ID 2034681.1を参照してください。