主な特徴と変更
次の各項では、UEK R5の初期リリースと比較したUnbreakable Enterprise Kernelリリース5更新1 (UEK R5U1)の主要な新機能について説明します。
64-bit Arm (aarch64)アーキテクチャ
Unbreakable Enterprise Kernelリリース5更新1を使用して、Oracleは引き続きカーネル変更を配信し、64-bit Arm (aarch64)アーキテクチャのサポートを有効にします。 これらの変更は、既存のArmハードウェアに対して作成およびテストされ、arm用のOracle Linuxのサポートを提供します。 このドキュメントで説明される機能は、ハードウェアが機能をサポートできるのであれば、Armで使用できます。 Armの現在の開発作業の範囲を超えた制限事項とアイテムについては、「Armの使用不可または利用不可の機能」で詳しく説明しています。
Armアーキテクチャに特定の変更が加えられた場合、通常はこのドキュメントで説明します。 64-bit Arm (aarch64)アーキテクチャのサポートを含めるために、DTrace機能の更新および改善には特別な労力があります。詳細は、DTraceを参照してください。
カーネルの基本機能
次の重要なコア・カーネル機能がUEK R5U1に実装されています:
-
kABIをサポートするためにバック・ポートされたCgroup v2 CPUコントローラ
このリリースでは、
cgroup
v2 CPUコントローラがバック・ポートされています。 この変更は、カーネル・アプリケーション・バイナリ・インタフェース(kABI)に影響を与える可能性のある構造を事前移入するために行われました。 この更新には、cgroupリソース使用状況統計を処理するコードに対する変更が含まれ、アクティブでない多数のcgroupsを含む頻繁な読み取りを処理する場合にパフォーマンスが向上します。 -
スケジューラのスケーラビリティを改善して高速パスを実現
このリリースには、高速パスのスケジューラ拡張性の改善が含まれています。 さらに、
SIS_CORE
という新しいスケジューラ機能が導入され、Oracle database OLTP (オンライン・トランザクション処理)などの特定のワークロードのパフォーマンスが向上します。 OLTPのパフォーマンスを向上させるには、オプションでこの機能を無効にするには、NO_SIS_CORE
を/sys/kernel/debug/sched_features
で設定します。 ただし、SIS_CORE
機能を無効にすることをOLTPワークロード「のみ」にお薦めします。
DTrace
次の重要なDTrace機能および修正はUEK R5U1に実装されています:
-
[aarch64] ENDおよびENDPROCマーカーが追加されました
DTraceは、関連するアセンブリ・ファイルに
END
[ENDPROC]
マーカーを追加または移動することで、aarch64プラットフォームでの使用が拡張されています。 この変更により、DTraceではカーネル命令をシンボルにマップできる可能性が高くなります。 -
[aarch64] SDTプローブのDTraceサポートが追加されました
DTraceは、aarch64プラットフォームでのSDTプローブの使用のサポートを含むように拡張されました。
-
[aarch64] FBTエントリ・プローブのDTraceサポートが追加されました
DTraceは、aarch64プラットフォームでのFBTエントリ・プローブの使用をサポートするように拡張されています。
-
[aarch64] FBTリターン・プローブのDTraceサポートが追加されました
DTraceは、aarch64プラットフォームでのFBT戻りプローブの使用のサポートを含むように拡張されています。
-
[aarch64] ustack()実装
DTraceは、aarch64プラットフォームでの
ustack()
の実装を含めるように拡張されました。 -
18個の引数を正確にサポートするように更新されたSDTマクロ
カーネル・ソース・コードでSDTプローブを定義するためのDTrace実装は、18までの引数を正確に受け入れるように改善されました。 以前はすべての18引数がサポートされていましたが、8以外の引数はすべて切り捨てられました。 この拡張は、x86_64およびaarch64の両方のプラットフォームに適用されます。
-
新しい -x noresolveオプションが追加されました
DTraceは、-x noresolve実行時オプションを含めるように拡張されています。このオプションは、ユーザー領域シンボルの自動解決を防止し、非常に大規模で静的にリンクされたバイナリのシンボル解決を支援するために使用されます。この場合、シンボルは解決に時間がかかります。 このオプションを使用すると、DTraceが多数の記号を含む大規模アプリケーションのシンボル名にアドレスを解決するときに、オーバーヘッドを削減することもできます。 -x noresolveオプションは、Oracle Solaris 11.3リリースで以前に導入されました。
-
新しい -x ctfpathオプションが追加されました
DTraceは、ユーザーが提供する圧縮タイプ形式(CTF)アーカイブ・データを使用できるようにする新しい-x ctfpathオプションを含めるように拡張されました。
ctfpath
オプションを使用すると、実行中のカーネルに使用するCTFアーカイブを明示的に指定できるため、アーカイブを共有して非標準のロケーションに出荷できます。
ファイル・システム
次の各項では、UEK R5U1のファイル・システムに実装されたもっとも重要な機能について詳しく説明します:
Btrfs
次のBtrfsバグの修正および機能がこの更新で実装されました:
-
送信スナップショットでinodeのサイズが増加し、preallocエクステントのサイズが大きい場合に、増分送信操作により切捨て操作が欠落する可能性がある問題を修正します。
-
パッチが適用されて、Btrfsを使用したRAID6構成の同じ水平ストライプ内の2つのディスクでデータが破損した場合に、読み取りの失敗の原因となった問題が解決されました。
-
Btrfsを使用してraid構成からデバイスを削除した場合に、データraidプロファイルが失われた問題を解決するためにパッチが適用されました。
-
破棄された問題を解決するためにパッチが適用されました。この問題により、ファイル・システムは同期されたターゲットにハード・リンクされ、電源が停止した、失われた親ディレクトリを報告します。
-
2つのハード・リンクの名前が変更されたあとに電源が停止されたときに、EEXISTエラーでファイル・システムをマウントしない問題を解決するためにパッチが適用されました。
-
ファイルが繰り返し作成され、すべてのファイル記述子を開いたまま削除されたときに、ファイル・システムがENOSPCエラーを報告する問題を解決するために、パッチが適用されました。 問題は、破棄されるまで孤立したinodeアイテム用に予約された領域を保持していたコードの結果でした。
-
ファイルにオープン・ファイル記述子が存在し、サブボリュームまたはスナップショットがROモードに設定されている間にすべてのハード・リンクが削除されたことがある場合に、ENOENT送信エラーの原因となった問題を解決するためにパッチが適用されました。 この問題は、スナップショットの作成時に孤立クリーン・アップが原因では不可能な、inodeのリンク数がゼロになった送信操作から生じました。
-
パッチが適用されて、正しくないロギングを引き起こす問題を解決し、実行モードを有効にすると、ファイルはその中の穴にパンチ・インした後に同期化されます。 これにより、停電が発生するとファイル・システムの整合性が失われます。
-
セキュリティ関連の修正のいくつかは、CVE-2018-14611やCVE-2018-14610など認識されている脆弱性を解決するために適用されています。
ext4
次のext4バグの修正および機能がこの更新で実装されました:
-
ext4ファイル・システムを使用して非揮発二重インライン・メモリー・モジュール(NVDIMMs)での直接アクセス(DAX)ページ操作のサポートを導入するように更新されたコード。
-
i_disksize
を超えた直接書込みが拡張され、i_size
未満である場合に、破損したファイル・システムを引き起こす可能性のある問題を解決するためにバグが修正されました。
メモリー管理
次の重要なメモリー管理機能がUEK R5U1に実装されています:
-
複数の競合状態の問題を解決するためのhugetlbfsの更新
競合の問題を解決するために、いくつかの更新が
hugetlbfs
コードに適用されました。 これには、hugetlbfs
ファイルが切り捨てられたことが原因で、別のタスクがページ・フォルト・プロセスを実行中に発生した問題の修正が含まれます。 この問題によって、キャッシュされたページが削除される前に予約マップ・エントリが作成された場合に、予約ページが無期限にリークする可能性があります。 ファイルが切り捨てられている間にフォルトを発生させないようにコードが更新されました。
RDMA
リモート・ダイレクト・メモリー・アクセス(RDMA)は、ネットワークによって接続された2つのシステム間でダイレクト・メモリー・アクセスを可能にする機能です。 RDMAにより、クラスタ内の高スループットおよび低レイテンシ・ネットワーキングが容易になります。
Unbreakable Enterprise Kernelリリース5更新1には、KspliceやDTrace機能の追加により、およびOracle独自RDMA機能(RDSと共有PDのサポートを含む)が追加された、アップストリーム・カーネルで提供されたRDMA機能が含まれています。
Oracleでは、Oracleエンジニアド・システム内で提供される次のOracleブランドHCAのInfiniBand上のRDMAのサポートが提供されます:
-
Sun InfiniBand Dual Port 4x QDR Host Channel Adapters M2
-
Oracle Dual Port QDR InfiniBand Adapter M3
UEK R5U1にあるRDMA実装に対する重要な変更は、次のとおりです:
-
resilient_rdmaip
モジュールの修正と改善resilient_rdmaip
モジュールで使用されるアクティブ-アクティブ・ボンディング・コードは、インタフェースでIPv6アドレス指定が無効になっている場合にシステム・パニックを引き起こす可能性のある問題に対処するために更新されました。 記録およびモジュールの説明情報のその他の改善も適用されました。 フェイルオーバーを目的としていないポートを含んでいる、フェイルオーバー・グループ0のポート間のフェイルオーバーを回避するチェックを含むように、修正も適用されました。
セキュリティ
次の重要なセキュリティ機能は、Unbreakable Enterprise Kernelリリース5更新1に実装されています:
-
セキュアなブート更新
カーネルおよび
grub2
ブート・ローダーへの署名に使用され、shim
を使用して検証されたUEFI Secure Boot証明書が期限切れを避けるために更新されました。 関連するブート・コンポーネントがすべて同じ有効な拡張検証(EV)証明書を使用していない場合、この更新は継続的UEFI Secure boot機能に影響を与える可能性があります。 詳細については、「Oracle® Linux: UEFI Secure Boot Updateの通知」を参照してください。
ストレージ
次の重要なストレージ機能が、Unbreakable Enterprise Kernelリリース5更新1に実装されています:
-
PMEMおよびDAX用に更新された
libnvdimm
サブシステム非揮発性デュアル・インライン・メモリー・モジュール(NVDIMM)の検出、構成および管理を担当する
libnvdimm
カーネル・サブシステムは、UEK R5U1で更新され、多数のアップストリーム・パッチ、バグ修正およびバック・ポートを利用します。 特に、実際のPMEMページ・サイズを反映する/proc/smaps
への修正、およびアドレス範囲スクラブ(ARS)を改善するためのいくつかの作業が含まれます。 また、注目すべき改善策としても、fsスレッドがDMAの完了を待たずにfsメタデータの更新を始めるまで、新しいオン・メカニズムを備えた修正です。 -
NVMeの更新
この更新には、NVMeコードに対する一般的な変更が含まれています。 aarch64環境での同値化および互換性を保証するために、構築構成オプションが同期化されました。 パッチは、KVMゲストで使用されたときに、NVMeホットプラグニング/切断機能を使用して問題を解決するためにも適用されました。
仮想化
次の重要な仮想化機能が、Unbreakable Enterprise Kernelリリース5更新1に実装されています:
-
KVM、XenおよびHyper-Vのバック・ポート・バグ修正および機能
アップストリーム4.17、4.18、および4.19カーネルの多くのバグ修正および仮想化機能は、UEK R5U1にバックアップされます。 これらのパッチにより、安定性が向上し、KVM、Xen、Hyper-Vのバグおよびパフォーマンスの問題が解決できます。 修正には、64-bit ArmプラットフォームでのKVMのより適切な対応およびサポートのための特定の更新も含まれます。
-
net_failoverドライバ・モジュールを追加しました
この更新リリースに
net_failover
ドライバ・モジュールを追加すると、virtio_net
がパススルー・デバイスのスタンバイとして機能できるようになります。 これは、virtio-net
対応仮想マシンへの高速化データ・パスを実装するクラウド環境では、ゲスト・ユーザー領域の最小変更で可能である必要があります。 特に、net_failoverモジュールは、準仮想ドライバ用の自動フェイルオーバー・メカニズムを提供し、汎用フェイルオーバー・インフラストラクチャでネットワーク・デバイスを管理します。 -
透過ヒュージ・ページ(THP)が有効になっているシステムでKVMゲスト起動の問題が修正されました
透過型ヒュージ・ページ(THP)の使用時に起動または再起動時に大容量メモリーKVMゲストがハングする原因となった問題は、この更新で解決されました。 ローカル・ノードのメモリーが足りなくなったときから通過したメモリー・マッピングのヒューリスティックから問題が発生しました。
この問題が発生しないようにするには、カーネルに修正が適用されていない場合は、ゲストを起動する前に、ホスト・システムで次のコマンドを実行します:
# echo defer > /sys/kernel/mm/transparent_hugepage/defrag
この問題を修正すると、この更新リリースや、このカーネル・バージョン以降を使用するシステムに含まれます。回避策は必要ありません。