機械翻訳について

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 R6は、最初に5.4.17-2011バージョンでカーネルのビルドでリリースされます。

UEK R6は、メインラインのLinuxカーネル・バージョンと同じバージョニング・モデルを使用します。 一部のアプリケーションでは、5.4.バージョニング・スキームが認識されない可能性があります。 ただし、通常のLinuxアプリケーションでは、通常はLinuxカーネルのバージョン番号は認識されず、それによる影響もありません。

UEK R6は、Red Hat互換カーネル(RHCK)との互換性を維持し、RHCKで有効化されている機能は無効化しません。 Oracleオペレーティング環境で使用するために、パフォーマンスを向上させ、カーネルを最適化するために、主要な機能要件およびパッチに対するサポートが提供されます。

カーネルのソース・コードは、パブリックGitソース・コード・リポジトリ(https://github.com/oracle/linux-uek)を介して使用できます。

主な特徴と変更

次の項では、UEK R5を基準に、Unbreakable Enterprise Kernelリリース6 (UEK R6)の主な新機能について説明します。 このリリースの主な機能のサマリー・リストは次のとおりです:

  • Linux 5.4安定したカーネル・ベース

    UEK R6のベース・カーネルとして使用される5.4メイン・ライン・カーネル・リリースには、以前のリリースやRHCKよりも多くのアップストリーム・カーネル機能と改善が含まれています。 以前のメジャー・リリースUEKとは対照的に、このカーネルで使用可能な主な機能および拡張機能のリストについては、「カーネル基本機能」を参照してください。

  • Armサポート

    このリリースの多くの機能および改善は、Arm (aarch64)プラットフォームのサポートの向上を目的としています。 注目すべき変更は、セキュリティの改善とArmでの仮想化サポートの改善などです。 詳細は、「Arm (aarch64)プラットフォーム」を参照してください。

  • Cgroup v2の機能拡張

    CPUコントローラ機能を有効にするには、まずUEK R5でCgroup v2機能が導入されました。 UEK R6には、すべてのCgroup v2機能と、「カーネル基本機能」で説明されているいくつかの機能改善が含まれています。

  • ktaskの拡張機能

    ktaskは、カーネルのCPU集中型作業を並列化するためのフレームワークです。 タスクがユーザー領域でシングル・スレッドである、大量の使用可能なCPU電力を備えたシステムで、大規模なタスクを高速化できます。ktaskには汎用APIが用意されており、これを使用すると、様々な種類のタスクに同時実行性を追加できます。同時に、複数スレッドの管理の複雑さを減らすことができます。また、構造体ページの初期化およびVFIO対応のKVMゲスト初期化の実行時に、起動時間を大幅に削減できます。

    /usr/share/doc/kernel-uek-doc-5.4/core-api/ktask.htmlには、ktaskのドキュメントが用意されていますが、インタフェースはまだ安定していません。

  • パラレル化されたkswapd

    ページ置換は、kswapdによってカーネルで非同期的に処理され、直接リクレイムによって同期的に処理されます。 ゾーンの空きリスト内の空きページが少ない場合、kswapdはページをスキャンして、新しいページ割当てのための領域を解放するために追い出される未使用のページがあるかどうかを判断します。 この最適化によって、リソース消費量が多く、時間がかかる可能性があるダイレクト再利用を回避することでパフォーマンスが向上します。

  • Kexecファームウェア署名

    カーネル・イメージ・シグネチャをチェックおよび検証するオプションは、UEK R6で有効です。 kexecを使用してUEK R6内からカーネルをロードする場合、システムがシグネチャおよび検証済のカーネル・イメージのみをロードするように、カーネル・イメージ・シグネチャ・チェックおよび検証を実装できます。

  • メモリー管理の改善

    いくつかのパフォーマンス強化がカーネル・メモリー管理コードに実装されており、ページやキャッシュをクリアする効率の向上と、障害管理やレポート作成の機能強化が実現されています。 詳細は、「メモリー管理」を参照してください。

  • NVDIMMの更新

    NVDIMM機能の更新が実装されているため、永続メモリーを従来のRAMとして使用でき、ゼロ・キー消去機能を標準化するのに役立つ更新も含まれています。 詳細は、「カーネル基本機能」を参照してください。

  • DTrace v2.0

    DTraceサポートはUEK R6で有効になっており、Linuxカーネルに統合されているBerkeleyパケット・フィルタ(BPF)を使用するように再実装されています。 現在のバージョンは、新しい実装に基づく最初のDtraceリリースで、まだUEK R5のDTraceで機能パリティを達成するのではなく、将来処理されます。 アップストリームのツール・チェーンが改善されたため、DTraceで使用可能なRPMのセットを簡素化するために追加されました。 詳細は、DTrace v 2.0を参照してください。

  • OCFS2

    OCFS2ファイル・システムのサポートは、UEK R6で有効です。 詳細については、OCFS2を参照してください。

  • Btrfsファイル・システムのサポート

    UEK R6がシステムにインストールされている場合、Oracle Linux 8システムではBtrfsファイル・システムのサポートが有効になります。 このリリースでは、Btrfにさらに拡張機能が加えられました。 詳細については、Btrfsを参照してください。

カーネルの基本機能

UEK R5のベース・カーネル・バージョンとして使用された4.14リリースから、UEK R6のベース・カーネル・バージョンとして使用される5.4カーネル・リリースまでに、アップストリーム・カーネルに複数の主要なカーネル機能が実装されています。 更新リリースでは一部の機能がUEK R5カーネルにバックポートされていますが、次の重要な新機能がUEK R6で使用可能です:

  • ロックダウン・モード(x86_64のみ)

    ロックダウン・モードは大幅に改善され、注目に値する実装の変更がいくつかあります。 このリリースでは、「整合性」モードと「機密性」モードが区別されます。 この機能の詳細は、「セキュリティ」を参照してください。

  • fs-verity

    fs-verityは、読み取り専用ファイルの完全性と信頼性保護のためにファイルシステムがフック・インできるカーネル機能です。 この機能を使用すると、システムで変更すべきでない、通常とは異なるファイルの破損や悪意のあるファイルの変更を検出できます。 この機能は現在、ext4およびf2fsファイル・システムでのみ動作します。

  • io_uringを使用した高パフォーマンスの非同期I/O

    この機能は、バッファリングされたI/OsとバッファリングされていないI/Osの両方に対して、高速でスケーラブルな非同期I/Oインタフェースを提供します。 非同期ポーリングI/Oもサポートしています。 ユーザー領域ライブラリliburingでは、ヘルパーを持つアプリケーションの基本的な機能を提供しており、アプリケーションはio_uringインスタンスを簡単に設定し、I/Oを発行および完了できます。

  • Cgroupの更新

    フルCgroup v2機能は、UEK R6に含まれています。 UEK R5の機能には、CPUコントローラなど、特定のタスク・グループのためにCPUリソースを設定できる機能が含まれています。 UEK R6にはこれらの機能が含まれており、次の注目すべき機能強化が加えられています:

    • ワークロードの整合性を維持するために、cgroupを単一のユニットとして強制終了させるのに使用できる、cgroup対応のOOM強制終了サービス。 この機能を有効にするには、cgroup v2メモリー・コントローラでmemory.oom.groupを設定します。 この設定により、cgroupは表示対象でないワークロードであると判断され、タスクはそれらの子孫とともに、OOM killerによって同時に(またはallではない)強制終了されます。

    • 固定コントローラがcgroupsv2に追加され、cgroupでワークロードを停止して一部のリソースを一時的に解放できるようになります。

    • このリリースでは、I/Oのコストベース・モデルの作業が適切なコントローラとして機能する、ぼかしが導入されています。 現在は、単純な線形コスト・モデルが組み込まれており、各I/Oは連続コストまたはランダム・コストに分類され、それに応じてベース・コストが付与されます。 その後、追加のサイズ調整原価が上部に追加されます。

  • NVDIMM

    パーシステント・メモリーを従来のRAMとして使用できるようになりました。 さらに、libnvdimm内のセキュリティ関連コマンドの周囲に修正を実装して、ペイロード・データがゼロ値で埋められたキーの使用を有効にして、ゼロ・キーが使用されている場合でもセキュアな操作を続行できるようにしました。 共通の実装は、すべてのコマンドが同じゼロ・キー・セマンティックを使用することを保証するため、またNVDIMMのデータの安全な消去を実行できるようにするために実施されました。この場合、ゼロ・キーを使用します。 一部のNVDIMMプラットフォームでは、オペレーティング・システムに初期キーを指定させるのではなく、デフォルトのゼロ・キーによるセキュリティを有効にし、セキュリティを有効にした場合の操作を妨げる可能性があるため、この変更は重要です。

Arm (aarch64)プラットフォーム

次の注目すべきARM機能がUEK R6に実装されています:

  • セキュリティの向上

    攻撃に対する緩和を改善するために、次のような様々な機能強化が行われました: syscallラッパー、ポインタ認証、KASLR (カーネル仮想アドレスのランダム化)サポート、およびPSTATE.SSBSビット・サポート(ARM v8.5コア)。

  • メモリー・ホット・プラグ

    ホット・プラグ・メモリーのコア・サポート。

  • KVMの改善

    Arm (aarch64)システムでのKVMゲストの改善には、ポインタ認証(ARM v8.3)およびScalable Vector Extension (SVE)のサポートが含まれます。

暗号化

次の注目すべき暗号機能は、UEK R6に実装されています:

  • キーの説明管理の簡素化

    キーとキーリングは、ネームスペース対応です。

  • Zstandard圧縮

    Zstandard圧縮(zstd)が暗号および圧縮に追加されます。 デフォルトのレベルのみが有効になっています。

DTrace v2.0

DTrace v2.0はDTraceの再実装で、eBPFのような既存のLinuxカーネル・トレース機能を利用します。このような機能は、DTraceがLinuxに最初にポートされたときには存在していません。 新しい実装では、特化されたカーネル・パッチに対するDTraceの依存性が削除されます。

DTrace v2.0はUEK R6でのみ使用可能です。 前のバージョンのUEKでは、元のDTrace実装が引き続き追加されます。

Oracle Linux 8上のDTrace V2.0は、ユーザー・スペース・アプリケーションとして再実装されました。 Oracle Linux 8で実行するためにlibdtrace-ctfライブラリは必要なくなりました。 このライブラリの機能は、Oracle Linux 8 GNUツール・チェーンに統合されています。 Oracle Linux 7では、libdtrace-ctfがまだ必要であることに注意してください。

使用可能になるとすぐに機能が配布されますが、限定された機能セット(主に、多数のユーザーに表示される機能を提供しないフレームワーク機能)からです。ただし、最終的には、前のサポートに向けて、その機能を超えます。

  • 重要な変更と改善

    次の重要な変更点および改善点が含まれています:

    • 基礎となるコアDTrace機能の大部分は、ユーザー空間で再実装されます(Dコンパイラ、プロバイダAPI、プローブ管理)。 この機能の多くは、以前にカーネルに存在していました。

    • 現在、DコンパイラがeBPFコードを生成することをターゲットにしています。このため、D言語の多くはコンパイラですでにサポートされています。

    • BPFベリファイア・レポート出力が有効化されます。 コンパイルされたDスクリプトがBPFプログラムとしてカーネルにロードされると、BPF検証では静的コード分析が実行され、プログラムの安全性が確保されます。 この分析が失敗すると、出力が生成され、DTraceによってこの出力がユーザーに報告されます。

    • カーネルが/proc/kallsyms (または/proc/kallmodsyms)でこの情報を提供している場合、関数の境界トレース(FBT)プローブは、モジュールによってグループ化された関数(モジュールがコンパイルされるかロード可能かにかかわらず)で有効になります。

    • Syscallエントリおよびreturn probes (systraceプロバイダ)は、型付きプローブ引数のサポートとともに有効になります。 現在は-lv出力でのみ使用可能です。

    • Linuxのトレース・ポイントに基づく静的定義トレース(SDT)プローブが有効で、型付きプローブ引数がサポートされています。 現在は-lv出力でのみ使用可能です。

  • 注目すべき制限

    ノートの制限は次のとおりです:

    • printf()関数はまだ実装されていません。trace()を使用してください。

    • 現在、trace()アクションは文字列ではなく数値のみに機能します。

    • exit()などのほとんどのアクションはまだ実装されていません。

    • 3つの変数のスコープのうち、Global ("x")thread-local ("self->x")はまだ実装されていません。

    • 多数のプロバイダ(dtraceまたはprofileなど) -- BEGINENDおよびprofile-1nのようなプローブを含む -- 機能していません

    • ワイルドカードを使用した複数のプローブと一致するプローブ記述(provider:module:function:name)は、まだサポートされていません。 たとえば、write:entrysyscall:vmlinux:write:entryのみと一致するため機能しますが、write:*syscall:vmlinux:write:entrysyscall:vmlinux:write:returnの両方と一致するため、一致しません。

使用例

次の例では、DTrace v2.0のUEK R6の現在の機能を説明します。 コマンドがルートとして実行され、/usr/sbinがPATHにあるとします。

  • DTraceバージョン情報を表示:

    # dtrace -V
    DTrace 2.0.0 [Pre-Release with limited functionality]
    dtrace: Oracle D 2.0
  • プローブのリスト:

    # dtrace -l
    DTrace 2.0.0 [Pre-Release with limited functionality]
    ID   PROVIDER    MODULE                     FUNCTION NAME
    1     dtrace                                        BEGIN
    2     dtrace                                        END
    3     dtrace                                        ERROR
    4        fbt   vmlinux     trace_initcall_finish_cb entry
    5        fbt   vmlinux     trace_initcall_finish_cb return
    6        fbt   vmlinux         initcall_blacklisted entry
    7        fbt   vmlinux         initcall_blacklisted return          

    この特定のシステム上で、次のものがありました:

    • 3 dtraceプローブ

    • 87890 fbtプローブ(kprobesに基づく)

    • 1262 sdtプローブ(Linuxトレース・ポイントに基づく)

    • 666 syscallプローブ

  • コンパイル済のDコードをeBPFプログラムとして出力し、その-eオプションを使用してコンパイル後に終了する-Sオプションを使用するスクリプトの例:

    # dtrace -Sen 'write:entry { trace(1) }'
    DTrace 2.0.0 [Pre-Release with limited functionality]
    
    Disassembly of ::write:entry
              
    DIFO 0x46af600 returns D type (integer) (size 8) [record 16 bytes]
    INS OFF  OPCODE                  INSTRUCTION
    000 000: 62 a 0 fef8 ffffffff    stw  [%fp-264], -1     ! = EPID
    001 008: 62 a 0 fefc 00000000    stw  [%fp-260], 0
    002 016: 7a a 0 ff00 00000000    stdw [%fp-256], 0
    003 024: 7a a 0 ff08 00000000    stdw [%fp-248], 0
    004 032: 7a a 0 ff10 00000000    stdw [%f
    [...]
  • スクリプト例:

    # dtrace -n '
    write:entry,
    write:return
    {
    this->x = 3;                /* clause-local variables */
    this->y = 8;
    trace(this->x * this->y);
    trace(&`max_pfn);
    }'

    各値の説明は次のとおりです。

    • write()システム・コール・エントリを調べて終了します(一度に複数のプローブ)。

    • カーネル識別子(max_pfn)やその他のデータ・アイテムのアドレスを記録するプローブ

    • プローブには、同じアクションを持つ名前(明示的にはワイルドカードなし)が付けられます。

    • 句ローカル変数が使用されます。

    • trace()アクションは、出力のレポートに使用されます。

ファイル・システム

UEK R6のファイル・システムに対して実装された最も注目すべき機能は次のとおりです:

Btrfs

BtrfはUEKで引き続きサポートされます。 この更新では、スワップ・ファイルのサポート、ZStandard圧縮、様々なパフォーマンス改善など、いくつかの改善とパッチが適用されています。 ルート・ファイル・システムのBtrfsのサポートについては、Oracle Linux 8.3を参照してください。

ext4

64ビットのタイムスタンプがスーパー・ブロックのフィールドに追加されました。

OCFS2

OCFS2は、UEKで引き続きサポートされます。 この更新では、'nowait' AIO機能のサポート、Armプラットフォームでのサポート、オンラインのジャーナル・スーパー・ブロックの読取りおよびオフライン操作のサポートなど、いくつかの改善とパッチが適用されています。

XFS

オンラインfsckが追加された後にメタデータの健全性ステータスを取得するための、新しいオンライン時健全性レポートのインフラストラクチャとユーザー領域ioctl。 また、このリリースでは、リアルタイム・デバイスのスワップ・ファイルとスワップ・ファイル、および部分的な再リンク・サポートを考慮することもできます。 様々なパフォーマンス改善も行われました。

NFS

RPC、NFSクライアントおよびサーバー・コンポーネントに対して、パフォーマンスの向上と拡張が行われました。 RDMAのNFSの大幅な改善が行われました。 機能強化には次が含まれます: 複数のTCP NFSv4.1+クライアント接続(サーバーごと)、ハードウェア並列性、ハード・インスタンス動作および診断の向上からのスループットを向上させます。

メモリー管理

次の注目すべきメモリー管理機能は、UEK R6に実装されています:

  • TLBフラッシュ

    TLBフラッシュ・コードは、不要なフラッシュを回避し、TLBシュート・ダウンを減らすために改善されます。

  • 大規模ページの消去

    メモリー管理は、膨大なページのクリアをより最適に活用してスループットを向上させます。

  • ページ・キャッシュの改善

    Xarrayデータ型を使用すると、ページ・キャッシュの効率が向上します。

  • 断片化の回避の改善

    断片化回避アルゴリズムが改善され、圧縮およびデフラグ時間が短縮されます。

  • THP障害処理の改善

    透明ヒュージ・ページ(THP)の障害を処理し、THPステータスに関するより優れたレポートを提供するために改善が実装されています。

ネットワーキング

次の注目すべきネットワーク機能がUnbreakable Enterprise Kernelリリース6で実装されています:

  • TCP Early Departure Time

    TCPスタックでは、できるだけ高速モデルではなく、パケットの送信にEarly Departure Timeモデルが使用されるようになりました。 この改善によって、元のTCP/IPフレームワークの制限が解決され、ハードウェア制限およびボトルネックを過剰にするためのスケジュールされたパケットのリリースが導入されるため、複数のパフォーマンスの向上が発生します。

  • 一般受信オフロード

    GROは、ユーザー・データグラム・プロトコル(UDP)に対して有効です。

  • TLS受信

    以前のUEKリリースでは、カーネルでTLSメッセージの送信が有効になりました。 このリリースでは、カーネルはTLSメッセージも受信できます。 TLS接続のカーネル処理の実装は、ユーザー領域に限定される実装を介して、大幅なパフォーマンスの向上を提供します。

  • ゼロ・コピーTCP受信

    以前のUEKリリースでは、ネットワークにパケットを送信するためのゼロ・コピーTCP機能が導入されました。 このリリースでは、TCPのゼロ・コピーが可能になります。

  • パケット・フィルタリング

    nftablesがファイアウォール・ルールのデフォルトのバックエンドになりました。 BPFベースのネットワーク・フィルタリング(bpfilter)もこのリリースに追加されます。

  • Expressデータ・パス(XDP)が追加されました

    XDPは、高速ネットワークのための柔軟で最小限のカーネル・ベースのパケット・トランスポートです。

RDMA

リモート・ダイレクト・メモリー・アクセス(RDMA)は、ネットワークによって接続された2つのシステム間でダイレクト・メモリー・アクセスを可能にする機能です。 RDMAにより、クラスタ内の高スループットおよび低レイテンシ・ネットワーキングが容易になります。

Unbreakable Enterprise Kernelリリース6には、アップストリーム・カーネルで提供されているRDMA機能が含まれており、KspliceおよびDTraceの機能が追加されています。

UEK R6は、UEK R5の機能パリティを保守し、次の注目すべきアップストリーム更新を含みます:

  • 動的統計インフラストラクチャ

    動的統計インフラストラクチャは、ネット・リンク・インタフェースからアクセス可能なカウンタにバインドすることによって、さまざまなオブジェクトのモニタリングを容易にするために実装されています。

  • 動詞フロー・カウンタ

    パッチが適用され、ユーザー空間アプリケーションが管理する動詞オブジェクトのリアルタイム・トラフィック・アクティビティおよびイベントをモニターできるAPIが提供されます。

  • RDMA ioctl()の改善

    RDMA ioctl()を改善するために、さまざまな更新が適用されています。 重要性は、新しいヘッダーが使用され、命名の整合性が高くなっています。 uverbs_ioctlヘッダーは、uverbs_attr_specdriver_idおよびコンパクト表現を含めるように拡張されています。

  • RDMAリソース・トラッキング

    RDMAリソース・トラッキングの一般的なインフラストラクチャが実装されています。 このインフラストラクチャは、詳細なキュー・ペア(QP)情報およびグローバル・リソース利用情報を提供するために使用されます。

  • CQモデレーションはユーザー・スペースに公開されます

    パッチは、完了キュー(CQ)をユーザー空間アプリケーションに公開して、イベントの作成に必要なCQEの数を制御します。 この変更により、パフォーマンス・チューニングを改善するためのユーザー・アプリケーションの制御が向上します。

  • ネームスペース機能の改善

    ネームスペース機能を改善するために、さまざまなパッチが適用されています。 コマンドを追加するためにRDMAデバイスのネット・ネームスペースを安全に変更できるパッチが適用されました。 複数のネット・ネームスペースでのデバイス共有が無効になり、init_net以外のネット・ネームスペースでnetlinkコマンドを実行できるようになりました。

セキュリティ

Unbreakable Enterprise Kernelリリース6では、次の注目すべきセキュリティ機能が実装されています:

  • x86_64システムのロックダウン・モード

    ロックダウン・モードが改善されました。 このリリースでは、整合性モードと機密性モードが区別されています。 Secure BootがUEK R6で有効になっている場合、ロックダウン整合性モードがデフォルトで適用されます。 機密保護モードは、カーネル・コマンド行上で、またはUEFI Secure Bootが有効になっている場合はsecurityfsを使用して有効化できます。 ロックダウン・モードは、Secure Bootを無効にするためにカーネル・コマンドライン・オプションが使用される場合も有効にできますが、Secure Bootが無効な場合にロックダウン強制はデフォルトで実行されません。

    整合性モードが有効になっている場合は、次の制限が適用されます:

    • カーネル・モジュール・シグネチャの施行

    • /dev/{mem,kmem,port}への読取り/書込みアクセスの制限

    • efivar_ssdt_loadの制限

    • kexec_loadシステム・コールを使用不可にします

    • ハイバネーションの無効化

    • PCI BARアクセスをユーザー領域から禁止

    • ユーザー領域からのX86 IOポートへのアクセスを禁止

    • MSRアクセスの制限

    • ACPI custom_methodへのアクセスを制限

    • acpi_rspdカーネル・パラメータを無視

    • 「ACPIの無効化」表の上書き

    • PCMCIA CISストレージの禁止

    • TIOCSSEARIALの禁止

    • 安全でないカーネル・モジュール・パラメータの禁止

    • testmmiotraceモジュールの禁止

    • デバッグによるアクセスを禁止

    機密保持モードが有効な場合、次の制限が適用されます:

    • トレースおよびperfパッドの禁止

    • Bpfの使用をカーネル・メモリーの読み取りに制限

    • Perfの安全でない使用を禁止

    • tracefsを禁止

    • /proc/kcoreへのアクセスを禁止

    カーネル・キーリング管理がUEK R6でも変更され、これにより、メインラインのアップストリーム・カーネルのコードが使用されて、プラットフォーム・キーリングが実装されることに注意してください。 UEFI Secure Boot DBキーとマシン所有者キー(MOK)はプラットフォーム・キーリングに格納されるようになり、カーネル・トラスト・キーリングと同等に扱われません。 kexecはプラットフォーム・キーリング内の鍵を信頼しますが、これらはIMA (整合性測定アーキテクチャ)のカーネルに新しいCAを追加するために使用できず、カーネル・モジュールを検証するために使用できません。

  • IBRS

    間接ブランチ制限仕様(IBRS)は、Spectre V2の投機的実行サイド・チャネル脆弱性の影響を受けるプロセッサでも引き続きサポートされ、他のソフトウェアまたはハードウェア技術では十分でないか、使用できない可能性があります。

  • 書き込み可能な世界ディレクトリでの保護を改善

    このカーネル・リリースでは、FIFOまたはユーザーが所有していない通常ファイルのオープン(/tmpなど)を禁止することによって、スプーフィング攻撃を妨げます。

  • Arm KASLR

    Armプラットフォームでは、カーネル仮想アドレスのランダム化がデフォルトで有効になっています。

  • aarch64ポインタ認証

    この機能により、Armプラットフォーム上の特定のクラスのメモリー・スタック破損攻撃を軽減するために使用できるプリミティブが追加されます。

ストレージ

次の注目すべき記憶域機能がUnbreakable Enterprise Kernelリリース6で実装されます:

  • NVMeの改善点

    NVMe over Fabrics TCPホストとターゲット・ドライバが追加されました。 マルチパス・サポートおよびパススルー・コマンド・サポートが追加されました。 NVMeネームスペースのサポートは、ネームスペース書込み保護および非同期ネームスペース・アクセスを含むように拡張されました。

仮想化

Unbreakable Enterprise Kernelリリース6では、次の注目すべき仮想化機能が実装されています:

  • VirtIOの改善点

    VirtIO PMEM機能は、VirtIOベースの非同期フラッシュ・メカニズムを追加し、永続メモリーをゲストにシミュレートして、ゲスト・ページ・キャッシュをバイパスできるようにします。 VirtIO-IOMMUでの仮想化ドライバで、ページ表をエミュレートせずにVirtIOトランスポートを処理することもできます。

  • Armプラットフォームの改善

    Arm (aarch64)プラットフォーム・システム上のゲストには、ポインタ認証(ARM v8.3)およびScalable Vector Extension (SVE)のサポートが含まれます。

ドライバの更新

Unbreakable Enterprise Kernelリリース6では、多数のハードウェアおよびデバイスがサポートされています。 ハードウェアおよびストレージ・ベンダーと協力し、Oracleでは、メインラインLinux 5.4のバージョンからデバイス・ドライバをいくつか更新しました。

UEK R6に含まれるドライバ・モジュールの完全なリストとバージョン情報は、付録の「Unbreakable Enterprise Kernelリリース6 (x86_64)のドライバ・モジュール」に記載されています。

注目のドライバ機能

次の新機能は、UEK R6に付属しているドライバに追加されています:

  • Broadcom BCM573xxネットワーク・ドライバ

    bnxt_enドライバのバージョンが1.10.1に更新されました。追加のパッチは、アップストリームの5.5カーネル・リリースからバック・ポートされ、Broadcom Thor Ethernetコントローラの機能を拡張および更新することに特有のパッチを提供しました。

    カーネル・バージョン5.4.17-20 11.6.2でUEK R6エラータ更新に組み込まれたこのドライバのアップストリーム変更により、このドライバを使用するBroadcomネットワーク・インタフェースの2番目のポートでデバイス名が変更されます。 たとえば、以前にeno3d1として識別されたデバイスは、eno3として識別されるようになりました。 この修正は、デバイス名の改善と、ネットワーク・デバイスが異なる機能に属する可能性がある状況など、デバイスのポート機能に関する前提にも適用されました。 その結果、この変更により、RHCKまたはUEK R5を使用するシステムからUEK R6にアップグレードする際にネットワーク・スクリプトで問題が発生する可能性があります。 以前のカーネル・バージョンからUEK R6以降の最新バージョンにアップグレードする場合は、ネットワーク・スクリプトの名前を変更し、適宜更新する必要があります。

  • Broadcom Emulex LightPulseファイバ・チャネルSCSIドライバ

    lpfcドライバが12.6.0.3に更新されました。 この更新には、アップストリーム5.4カーネルが使用可能になったためにドライバの変更に対処する多数のベンダーが関与したパッチと、アダプタ・ファームウェアの重要なバグ修正が含まれています。 このドライバの変更によって、ファイバ・チャネルを介したNVMeのコードなど、ほかのカーネル依存関係も更新されました。

  • QLogic BCM5706/5708/5709/5716ドライバ

    bnx2ドライバが更新され、バージョン番号は2.2.6に残りますが、ドライバにはベンダーから提供されたパッチとファームウェアの更新が含まれています。

  • QLogicファイバ・チャネルHBAドライバ

    qla2xxxドライバは、バージョン10.01.00.22.81.1-kに更新されます。 この更新バックアップ・ポートは、アップストリーム・カーネルを完了した後、パフォーマンスを改善し、元のドライバの一部のバグを修正するために特定のベンダーが提供したパッチを含みます。

  • Microsemi Smart Family Controllerドライバ

    smartpqiドライバはバージョン1.2.10-025に更新され、ベンダー・ガイダンスに基づく5.4カーネル・リリース以降にドライバに適用されたアップストリーム・パッチが含まれます。 これらの更新には、バグ修正およびパフォーマンスの改善がいくつか含まれます。

  • LSI MPT Fusion SAS 3.0デバイス・ドライバ

    mpt3sasドライバはバージョン33.100.00.00に更新され、ベンダーから提供されたパッチが含まれます。

 新規パッケージと更新パッケージ

UEK R6が提供する新しく追加された機能をサポートするために、複数のカーネルおよびユーザー領域のバイナリ・パッケージが、基本ディストリビューションに含まれているパッケージに追加または更新されています。 ULNチャネルおよびこれらのパッケージが使用可能なOracle Linux yumサーバー・リポジトリの詳細は、「インストールと可用性」を参照してください。

UEK R6用に追加および更新されたカーネル・スペース・パッケージには、プレフィクスkernel-uekのラベルが付いています。 linux-firmwareパッケージは最新のファームウェアでも更新されています。

ここにリストされるパッケージは、ユーザー領域機能に固有で、UEK R6で使用可能な機能を利用するよう更新されます。 これらのパッケージは、UEK R6を使用するための依存関係がありません。 これらのパッケージのいずれかを使用し、UEK R6も使用する場合は、UEK R6で使用可能なすべての機能との完全な互換性を確保するために、パッケージを最新バージョンに更新する必要があります。

パッケージ Oracle Linux 8バージョン番号 Oracle Linux 7バージョン番号

ndctl,ndctl-libs, ndctl-devel, daxctl, daxctl-libs, daxctl-devel

67 (x86_64)

67 (x86_64)

ipmctl, ipmctl-monitor, libipmctl, libipmctl-devel

01.00.00.3467 (x86_64)

01.00.00.3467 (x86_64)

libsafec, libsafec-check, libsafec-devel

3.3 (x86_64)

3.3 (x86_64)

btrfs-progs, btrfs-progs-devel

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

xfsprogs, xfsprogs-devel

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

ocfs2-tools

1.8.6 (x86_64, aarch64)

1.8.6 (x86_64, aarch64)

e2fs-progs, libss, libss-devel, libcom_err, libcom_err-devel

1.45.4 (x86_64, aarch64)

1.45.4 (x86_64, aarch64)

dtrace, dtrace-devel, dtrace-testsuite

2.0.0 (x86_64, aarch64)

2.0.0 (x86_64, aarch64)

libdtrace-ctf,libdtrace-ctf-devel

該当なし

1.1.0 (x86_64, aarch64)

bcache-tools

1.0.8 (x86_64, aarch64)

1.0.8 (x86_64, aarch64)

cloud-init

18.5 (x86_64, aarch64)

18.5 (x86_64, aarch64)

crash, crash-devel

7.2.7 (x86_64, aarch64)

7.2.7 (x86_64, aarch64)

iproute, iproute-devel, iproute-doc, iproute-tc

5.4.0 (x86_64, aarch64)

5.4.0 (x86_64, aarch64)

kexec-tools

2.0.19 (x86_64, aarch64)

2.0.15 (x86_64, aarch64)

libzstd, libzstd-devel

1.3.8 (x86_64, aarch64)

1.3.4 (x86_64, aarch64)

linux-firmware

20200124-999.4 (x86_64, aarch64)

20200124-999.4 (x86_64, aarch64)

nvme-cli

1.9 (x86_64, aarch64)

1.9 (x86_64, aarch64)

nvmetcli

0.7 (x86_64, aarch64)

0.7 (x86_64, aarch64)

nbd

3.20 (x86_64, aarch64)

3.20 (x86_64, aarch64)

drbd-utils

9.0.0 (x86_64, aarch64)

9.0.0 (x86_64, aarch64)

libdnf, python3-libdnf, python3-hawkey

0.35 (x86_64, aarch64)

該当なし

互換性

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を参照してください。