機械翻訳について

第1章 新機能と変更点

Unbreakable Enterprise Kernelリリース4 (UEK R4)は、x86-64アーキテクチャ上のOracle Linux 6更新7以上およびOracle Linux 7更新1以上向けにテストを重ね、最適化されたオペレーティング・システム・カーネルのオラクル社が提供する4番目のメジャー・リリースです。 これはメインラインのLinuxカーネル・バージョン4.1.12に基づいています。 これらのリリースでは、ドライバが更新され、バグやセキュリティの修正が含まれています。

オラクル社は、積極的に、アップストリーム・チェックインを監視し、クリティカルなバグおよびセキュリティの修正をUEK R4に適用しています。

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

1.1 注目すべき変更点

次の各項では、UEK R3と比較した、Unbreakable Enterprise Kernelリリース4 (UEK R4)の主要な新機能について説明します。

1.1.1 コンテナ

次の重要なコンテナ機能が、UEK R4に実装されています:

1.1.2 カーネルの基本機能

次の重要なカーネルの基本機能が、UEK R4に実装されています:

  • EPOLL_CTL_ADDおよびEPOLL_CTL_DEL操作で使用されるグローバルepmutexロックの競合が取り除かれたため、SPECjbbのパフォーマンスが、CPUが10以上あるシステムで向上しました。 たとえば、一般的な16ソケットの実行で、パフォーマンスが35k jOPSから125k jOPSへ増加します。 ベンチマークも、10ソケットから40ソケットを超える適切なスケーリングを表示します。

  • NUMAスケジューラで使用されるsysctl_numa_balancing_settle_countパラメータが削除されました。

  • 次のトレースポイントを使用して、NUMAスケジューラ・アクティビティを監視します:

    trace_sched_move_numa

    タスクがノードに移動した場合に、トリガーされます。

    trace_sched_stick_numa

    NUMA移行が失敗した場合に、トリガーされます。

    trace_sched_swap_numa

    タスクが他のタスクにスワップした場合に、トリガーされます。

  • 新しいSCHED_STACK_END_CHECKカーネル・デバッグ・オプションを使用して、NUMAシステム上のschedule()の呼出しでスタックの超過をチェックできます。 スタック終了位置が上書きされると、壊れた範囲のコンテンツが信頼されないため、システム・パニックが発生します。

  • スプリアス・アクティブNUMA移行を防ぐことで、Sysbenchパフォーマンスが向上しました。

  • CPUクロック周波数をスケーリングして、パフォーマンスを管理します。 /sys/devices/system/cpu/cpu*/cpufreq/scaling_governorで表示される可能性のあるガバナー設定は次のとおりです:

    ondemand

    CPUクロック周波数を、現在の使用量での要求に応じて、最小および最大の設定可能な周波数の間で設定します。 次のsysfsパラメータが、調整可能です:

    ignore_nice_load

    CPU使用量に対して、nice値で(0)をカウントする、または(1)をカウントせずに処理するかどうか。 デフォルト値は0です。

    powersave_bias

    1000の小数部ごとにターゲットCPU周波数を、どれだけ減少させるか。 0に設定すると、この機能は無効になります。

    sampling_down_factor

    CPUが最大のクロック周波数で稼働している場合、カーネルがsampling_rateに適用する乗数。 デフォルト値は1です。

    sampling_rate_min

    最小サンプル率。

    sampling_rate

    カーネルでクロック周波数の変更が必要かどうかを評価する間のミリ秒単位の間隔。

    up_threshold

    カーネルがクロック周波数を増加する率の平均的なCPU使用量のしきい値。

    tunedが構成されていない場合、ondemandがデフォルトのガバナー設定です。

    この設定は、pstateパワー・スケーリング・ドライバで相互作用できる最近のマイクロアーキテクチャCPU (たとえば、Haswell、Broadwellおよびそれ以降)のpowersaveと同等です。 旧式アーキテクチャCPU (たとえば、Ivy Bridge、Sandy Bridgeおよびそれ以前)では、ondemandは、CPUレイテンシを最小化するために、コアでパワーを高い状態に維持する必要があるため、performanceと同等です。

    performance

    CPUクロック周波数を、設定可能な最大周波数に設定します。

    ノート

    performanceは、tuned throughput-performanceプロファイルのデフォルトのガバナー設定です。

    performanceプロファイルは、リアルタイム・アプリケーションの一部で適切ですが、すべてのワークロードに適切ではない場合があります。 CPUを最大周波数で稼働すると、発熱エンベロープを超過する可能性があるターボ・モードが有効になるのを防げます。

    powersave

    CPUクロック周波数を、設定可能な最小周波数に設定します。

    userspace

    有効なrootユーザーとしてユーザー空間プログラムの実行を許可し、sysfs下のCPUデバイス・ディレクトリ内のscaling_setspeedという名前のファイルを作成および使用して、CPUクロック周波数を制御します。

    tuned-admを使用して、ハードウェアおよびソフトウェア構成に基づき、システムでtunedパフォーマンス・プロファイルを次の例のように選択することをお薦めします:

    • システムにXeonプロセッサまたは複数のディスクがある場合、クラウド・サーバーにlatency-performance、データベース・サーバーにthroughput-performance、または仮想ホスト・サーバーにvirtual-hostなどのプロファイルを選択します。

      ノート

      これらのプロファイルは、CPUガバナー設定をperformanceに設定しますが、すべてのワークロードに適切ではない場合があります。

    • 仮想マシン・ゲストでは、virtual-guestプロファイルを選択します。

    • ラップトップでは、laptop-ac-powersaveまたはlaptop-battery-powersaveなどの適切なラップトップ・プロファイルを選択します。

    • デスクトップ・マシンでは、desktopまたはbalancedプロファイルのいずれかを選択します。

    tuned-adm listコマンドを使用して、使用可能なプロファイルを表示できます。

    tunedが構成されていない場合、デフォルトCPUガバナー設定はondemandで、要求ヒステリシスのために、バーストが発生してCPU集中的なワークロードの実行が遅くなる場合があります。

    必要に応じ、/etc/tune-profilesディレクトリ階層で提供されるプロファイルに基づき、独自のパフォーマンス・プロファイルを作成することができます。

    異なるプロファイル下でのシステム・パフォーマンスを比較する場合、使用するサーバーの一般的なワークロードをシミュレートするベンチマークを使用します。

    詳細は、tunedパッケージで入手可能なtuned(8)およびtuned-adm(1)マニュアル・ページを参照してください。

1.1.3 暗号化

次の重要な暗号化機能が、UEK R4に実装されています:

  • PCLMULQDQ命令を使用した高速のCRC T10 DIF計算。

  • LZ4暗号化API。

  • sha256_ssse3SHA-224sha512_ssse3およびSHA-384がサポートされています。

  • AMD暗号化コプロセッサがサポートされ、AES、SHAおよびその他の暗号化操作の高速化またはオフロードで使用できます。

1.1.4 ファイル・システム

次の項では、UEK R4のファイル・システムに実装された最も重要な機能について説明します:

1.1.4.1 Btrfs

次のbtrfs機能が実装されています:

  • RAID 5およびRAID 6のサポート。

    ノート

    RAID 5およびRAID 6機能は、試験的で、クラッシュ・セーフではない可能性があります。

  • Skinnyエクステントは、新しいキー・タイプをメタデータのエクステント参照に使用するため、ディスク領域を効率的に使用し、エクステント参照で各ツリー・ブロックに必要とする空間を51バイトから33バイトに減少できます。 その結果、エクステント・ツリーのサイズは、30%から35%の間に低下し、コピー・オン・ライト操作が少ないためメタデータ操作の速度が上がり、より多くのエクステント・ツリーをメモリーに格納できます。 この機能は、以前のカーネルでサポートされていないため、UEK R4ではデフォルトで有効ではありません。 この機能を有効にするには、-xオプションを、ファイル・システムの作成時にmkfs.btrfsに指定する、または既存のファイル・システムにbtrfstuneを指定します。

  • スナップショット対応のデフラグメンテーションは、スナップショットによるデータ共有を解除しません。

  • オフライン・データ重複排除は、ファイル・システム内で繰り返されるデータのコピーを取り除きます。 この機能は、オペレーティング・システムまたはバックアップに類似するコピーを含む場合が多く、ストレージ要件の削減が重要であるVMを使用する際に役に立ちます。 ファイル・システムがマウントされ、稼働中の場合、dedupまたはduperemoveなどのコマンドを実行して、重複排除を実行できます。 データ書込みが処理されると自動的および透過的に発生するオンライン重複排除は、まだサポートされていません。

  • 新しいBTRFS_IOC_SET_LABELおよびBTRFS_IOC_SET_LABEL ioctlコマンドは、ファイル・システム・ラベルの読取りおよび書込みをサポートします。

  • commitマウント・オプションは、永久ストレージへの周期的同期の間隔を指定します。デフォルトは30秒です。 値を高く設定しすぎると、システムがクラッシュした場合に、データを喪失するまたは破壊される危険が高くなります。 300秒を超える値を設定すると、警告が表示されます。

  • 再マウントでは、aclbarrierdatasumdatacownoautodefragnodiscardnoenospc_debugnoflushoncommitおよびtreelogオプションをサポートします。

  • エクステント・ツリーの空間効率が高くなり、必要なメタデータのサイズが小さくなりました。

詳細は、https://btrfs.wiki.kernel.org/index.php/Changelogを参照してください。

1.1.4.2 efivarfs

Unified Extensible Firmware Interface (UEFI)変数ファイル・システム(efivarfs)が、UEFIをサポートするシステムで使用できます。 Oracle Linux 7の場合、systemdは自動的にefivarfsをマウントします。 Oracle Linux 6の場合、efivarfsはデフォルトでマウントされません。 必要に応じ、次のようにして、efivarfsをマウントできます:

# mount -t efivarfs efivarfs /sys/firmware/efi/efivars

1.1.4.3 ext4

次のext4機能が実装されています:

  • ファイル・システムを作成する際に、metadata_csumオプションを指定してメタデータ・チェックサムを有効にできます。

  • ファイル・システムを作成する際に、64bitオプションを指定して、64ビット・ファイル・システムのサポートを有効にできます。これにより、16TBより大きいファイル・システムの書式設定が可能です。

  • データベース・ワークロードの同期速度が向上しました。

  • nodelallocオプションを使用して遅延割当てが無効化されている、もしくはext2またはext3互換性モードが使用されている場合、ライトバック・パフォーマンスが向上しました。

  • エクステント・ツリー・メモリー・キャッシュが向上しました。

  • fallocate()を使用して、ホール・パンチングの安定化が向上しました。

  • lseek()を使用して、データおよびホール検索が向上しました。

次の機能は実験的であるとみなされ、サポートされていません:

  • fallocate()で現在、動作しないBig割当て(bigalloc)。

  • オンディスク・インノード・データ構造間で使用可能な空間内のスモール・ファイルのデータを格納するインライン・データ。

  • mke2fsを使用したディレクトリからのファイル・システム・イメージの作成。

  • pathnameマウント・オプションを使用した外部ジャーナルの指定。

1.1.4.4 FUSE

次のFUSE機能が実装されています:

  • 非同期I/Oのサポート。

  • 最適化されて短いダイレクト読取り。

  • writeagesコールバックにより、mmapを使用してメモリーでマップされた書出しが向上します。

キャッシュ済ライトバックのサポートは、Oracle Linux 6およびOracle Linux 7で提供されるユーザー空間アプリケーションでは、現在サポートされていません。

1.1.4.5 NFS

次のNFS機能が実装されています:

  • NFSv4.2のクライアント・サポート。

    詳細は、http://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-20を参照してください。

  • SELinux Labeled NFSを使用すると、多数の異なるラベルをNFS共有で使用でき、仮想化イメージ・ファイルおよびホーム・ディレクトリの保護に役立ちます。

1.1.4.6 Overlayfs

overlayfsファイル・システムは、複数のファイル・システムをマウント時に単一のファイル・システムとして表示する結合ファイル・システムの実装です。 overlayfsファイル・システムは、下位ファイル・システムおよび上位ファイル・システムからなり、これらは単一のファイル・システム名前空間を共有します。 overlayfsファイル・システムで1つのファイルを開くと、基礎にある下位または上位ファイル・システムに対してすべての操作が直接実行されるため、実装が簡素化し、他のファイル・システム実装に比べ本来のパフォーマンスが可能です。 読取り専用OSイメージを下位ファイル・システムとして使用し、書込み可能なRAM後置ファイル・システムを上位ファイル・システムとして使用するのが、一般的な使用方法です。 変更されたデータは、上位ファイル・システムのみに書き込まれ、OSイメージには書き込まれません。

上位および下位ファイル・システムはどちらも、同一のファイル・システム内で直接ツリーにすることができ、ファイル・システムのルートにする必要はありません。 下位ファイル・システムは、overlayfsファイル・システムを含むサポートされている任意のファイル・システムで、書込み可能である必要はありません。 上位ファイル・システムが書込み可能の場合(通常は書込み可能です)、ファイル・システムはtrusted.*拡張属性の作成をサポートし、有効なd_typeファイル・タイプをreaddir()で返されるdirect構造に指定する必要があります。 たとえば、NFSファイル・システムは上位ファイル・システムで使用できません。

overlayfsファイル・システムは、UEK R3では使用できません。

詳細は、https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txtを参照してください。

1.1.4.7 XFS

次のXFS機能が実装されています:

  • 新しいディレクトリ・エントリ・ファイル・タイプにより、ディスクからインノード・データにアクセスしないため、ディレクトリ反復のパフォーマンスが向上しました。

  • 名前空間のサポート。

  • 新しいCRCファイル・システム形式のデフラグメンテーションのサポート。

  • XFS v5ディスク形式は、メタデータCRC、オブジェクト後置参照、高度なクラッシュ・リカバリ、および向上したxfs_repairパフォーマンスを提供します。 メタデータCRC機能は試験的で、現在サポートされていません。

1.1.5 メモリー管理

次の重要なメモリー管理機能が、UEK R4に実装されています:

  • MAP_HUGETLBフラグが、mmapに実装され、hugetlbfsを使用したヒュージ・ページ・メモリー・マッピングをサポートしています。

  • 膨大なコピー操作中、またはメモリーが少ない場合に、kswapdおよびページ回収動作に問題が発見されています。

  • パージ表内のロック競合の削減により、スレッド化ヒュージ・パージ・ワークロードでのページ表アクセスのスケーラビリティが向上しました。

    詳細は、http://lwn.net/Articles/568076/を参照してください。

  • 同時実行ページ・フォルトの処理により、hugetlb内のページ・フォルト・スケーラビリティが向上しました。 以前は、カーネルが一度に処理できるのは、単一hugetlbページ・フォルトのみでした。 一般的に、約5000ページ表のフォルトを生成する10GBのOracleデータベースの起動時間は、37.5から25.7秒に削減されました。 将来のワークロードは、起動時間がより一層向上します。

  • 既存の起動時間割当てに加えて、実行時のhugetlbの巨大なページ割当てがサポートされています。

  • unqueued slab allocator (SLUB)が、カーネル・オブジェクトのデフォルトのメモリー・アロケータです。 SLUBは、以前は同一タイプのデータ・オブジェクトに割り当てられたメモリーを再利用することにより、メモリー割当ておよび割当ての取消しで発生するフラグメンテーションを除去します。

1.1.6 ネットワーク

次の重要なネットワーク機能が、UEK R4に実装されています:

  • 次のVXLAN機能が実装されています:

    • レイヤー3への切換えへのレイヤー2のリダイレクト。

    • ユニキャスト・アドレスへの宛先の設定。

    • UDPトンネルのセグメント化。

    • IPv6のサポート。

    • VXLANデバイスへの送信側VLANオフロード。

    • UDPv4チェックサムの送信、およびUDPv6チェックサムの送信および受信のリンク構成。

    • パケットがカプセル化される、またはカプセル化を解除される際の、ネットワーク名前空間の切換え。

  • ソケットごとのネットワーク・ポーリングが、bnx2xixgbeおよびmlx4ネットワーク・カード・ドライバでサポートされ、これにより、NAPIの周期的ポーリング・メソッド内のレイテンシ固有を削減します。

    詳細は、http://lwn.net/Articles/551284/および2012-lpc-Low-Latency-Sockets-slides-brandeburg.pdfを参照してください。

  • 新しいPIE (Proportional Integral controller Enhanced)ネットワーク・パケット・スケジューラにより、平均的なキューイング・レイテンシが制御され、様々な競合シナリオの元で、非常に少ないオーバーヘッドで、過剰なバッファを克服し、レイテンシを低く抑え、リンク使用率を高めることができます。

    詳細は、https://tools.ietf.org/html/draft-pan-tsvwg-pie-00を参照してください。

  • ipコマンドを使用した、最小および最大送信レートでのSR-IOV仮想関数(VF)の構成のサポート。

    詳細は、git commit ed616689a3d95eb6c9bdbb1ef74b0f50cbdf276aを参照してください。

  • ipコマンドを使用した、SR-IOV VFリンク状態の制御のサポート。 以前は、VFリンクは、物理的なリンク状態に関係なく常に有効で、物理関数(PF)リンク状態が接続されていない場合でも、同一の仮想EthernetブリッジのVMとの通信が可能でした。 ただし、VFがアクティブ/スタンバイ・モードに結合されている場合、VFで使用する物理リンクが切断されると、この構成はファイルオーバーができませんでした。 ip link setコマンドを使用して、VFリンクの動作を構成できるようになりました:

    # ip link set device vf number state { auto | enable | disable }

    可能な設定は、次のとおりです。

    auto

    VFリンク状態は、PFリンク状態で決定されます。 この設定は、アクティブ/スタンバイ・モードに結合されたVFで適しています。

    disable

    VFリンク状態は、永久に切断されています。

    enable

    VFリンク状態は、永久に接続されています。 これはデフォルトの設定です。

  • 次のOpen vSwitch (OvS)機能が実装されています:

    • Generic Routing Encapsulation (GRE)トンネル。

    • ユーザー空間トンネリング・インタフェース。

    • Stream Control Transmission Protocol (SCTP)のサポート。

    • VXLANトンネリングのサポート。

    • ワイルド・カード化フローの実装。

    • TCPビット単位フラグの一致。

      詳細は、git commit 5eb26b156e29eadcc21f73fb5d14497f0db24b86を参照してください

    • ユーザー空間で、アライメントされていないNetlinkメッセージを受け入れる能力を宣言することができます。

    • メモリーでマッピングされたNetlink I/Oの有効化。

    • Open vSwitchブリッジでトンネルのGeneric Segmentation Offloading (GSO)が有効化され、Open vSwitchは、下部にあるデバイスへのハードウェア・オフロードを使用できます。

    • recircおよびhashアクションが追加され、結合されたデバイスのポート間へのパケットの配布をサポートしています。

    • Generic Network Virtualization Encapsulation (Geneve)トンネリングに対するサポートが追加されました。

  • nftablesフレームワークは、arptablesebtablesiptablesおよびip6tablesフレームワークにかわって、パケット・フィルタリングおよびパケット分類機能を提供します。 例については、https://lwn.net/Articles/564095/を参照してください。

    次のnftables機能が実装されています:

    • iptablesが置き換えられ、上位互換性が提供されています。

    • IPv4およびIPv6のマスカレード

    • ルーティング前およびルーティング後のフィルタリング。

    • NFT_MSG_DELTABLE呼出しが拡張され、ルール・セットのフラッシュがサポートされています。

    • 会計オブジェクトのスキップに対するフィルタ・サポートが追加されています。

    • ルール・セット生成IDのエクスポートに対するサポートが追加されています。

    • CPU番号に一致するパケットに対するCPU属性のサポートが追加されています。

    • リンク・レイヤー情報に基づいたinetipおよびipv6表ファミリに一致するパケット・タイプに対するサポートが追加されています。 ループバック・トラフィックでは、パケット・タイプはネットワーク・レイヤー・ヘッダーから推測されます。

    • パケットの受信または送信インタフェースのデバイス・グループの一致に対するサポートが追加されています。

  • TCP Fast Open最適化は、この機能を使用するアプリケーションに対して、UEK R4でデフォルトで有効です。

  • Generic Network Virtualization Encapsulation (Geneve)は、レイヤー3ネットワーク上にレイヤー2ネットワークを確立するトンネリング・フレームワークを提供します。

    詳細は、http://tools.ietf.org/html/draft-gross- geneve-01およびhttp://blogs.vmware.com/cto/geneve-vxlan-network-virtualization-encapsulations/を参照してください。

  • 送信キューのバッチは、送信ソケット・バッファのネットワーク・ドライバへのフラッシュを遅延させるため、送信キューを処理する全体的な費用を削減し、パケット送信率の効率を向上できます。 i40eigbixgbemlx4およびvirtio_netドライバが、この機能をサポートしています。

    詳細は、http://lwn.net/Articles/615238/およびhttp://netoptimizer.blogspot.com/2014/10/unlocked-10gbps-tx-wirespeed-smallest.htmlを参照してください。

1.1.7 NUMA

多くの最新のマルチプロセッサは、Non-Uniform Memory Access (NUMA)メモリー設計があり、プロセスのパフォーマンスはアクセスされたメモリー範囲がローカルCPUまたはべつのCPUに添付されているかどうかに従い、決定されます。 メモリーのローカルの種類によりパフォーマンスが異なるため、メモリー・コントローラがアクセス対象のメモリーに接続されているオペレーティング・システムはプロセスがCPUで適切に実行されるようにスケジュールする必要があります。

次の重要なNUMA機能が、UEK R4に実装されています:

  • 未結合のワークキューに対するNUMAアフィニティがサポートされています。

  • 新しいNUMAサブシステムは、NUMAシステムに向上したパフォーマンスを提供します。 新しいNUMAポリシーは、メモリーの近くへのプロセスの配置、プロセス間でのページの共有、透過的なヒュージ・ページの処理を試みます。(3.8、3.13)

    次のsysctlパラメータを使用して、NUMAスケジュールを有効化、無効化およびチューニングできます:

    numa_balancing_scan_delay_ms

    初回の分岐でタスクを起動する場合に使用するミリ秒単位のスキャン遅延。

    numa_balancing_scan_period_max_ms

    タスクをスキャンする間隔のミリ秒単位の最大遅延。

    numa_balancing_scan_period_min_ms

    タスクをスキャンする間隔のミリ秒単位の最小遅延。

    numa_balancing_scan_period_reset

    スキャン遅延の間隔をリセットします。

    numa_balancing_scan_size_mb

    スキャンごとにスキャンされるページのMB単位の量。

    詳細は、http://lwn.net/Articles/568870/を参照してください。

  • 自動NUMAメモリー・バランシングを有効または無効にするnuma_balancing sysctlパラメータが追加されました。

  • NUMA移行のアルゴリズムが向上し、1つのNUMAノードに収まらないワークロードのパフォーマンスを最大化します。

  • デフォルトで、64ビットNUMAシステム上に、ページ・アロケータを使用して、ノード順にメモリー・ゾーンが割り当てられます。

1.1.8 リアル・タイム

次の重要なリアルタイム機能が、UEK R4に実装されています:

  • Dynamic Tickおよび完全なCPU時間課金インフラストラクチャ。

  • タイマーなしのマルチタスクのサポートにより、従来のマルチタスクの実装で使用したように、タイマーによる中断に追い立てられず、システムでプロセスを実行できます。(3.10, 3.12)

    詳細は、http://lwn.net/Articles/549580/およびhttp://lwn.net/Articles/558284/を参照してください。

  • デッドライン・スケジューリングは、SCHED_DEADLINEスケジューリング・クラス内のスケジューリング・プロセスにdeadlineperiodおよびruntimeパラメータを提供します。 これらのプロセスは、実行時間のruntimeミリ秒を受信するよう保証され、各periodミリ秒およびこれらのruntimeミリ秒は間隔の始まりからのdeadlineミリ秒内で入手可能です。 タスク・スケジューラは、最も低いdeadline値でプロセスを実行します。

    詳細は、git documentation 712e5e34aef449ab680b35c0d9016f59b0a4494cおよびhttp://lwn.net/Articles/575497/を参照してください。

1.1.9 セキュリティ

次の重要なセキュリティ機能が、UEK R4に実装されています:

  • カーネル・イメージの圧縮が復元される物理および仮想アドレスは、カーネル内部の場所の認識に基づくエクスプロイト試行を妨ぐためにランダム化されます。

  • Kexec機能により、クラッシュ後に迅速に再起動するまたは自動的に新しいカーネルを起動することができますが、現在、署名されたKexecカーネルのみでUEFIセキュア起動で使用を許可するサポートを取り入れています。

  • kexec_load_disabled sysctlパラメータを使用すると、Kexecを無効化して、権限昇格攻撃からシステムを保護することができます。

  • exeフィールドが追加され、コア・ダンプを生成する実行可能ファイルのパス名を記録するログを監査します。

  • audit_backlog_wait_time構成オプションが追加されて、サブシステムを監査するため、auditdが保持されない、またはブロックされた場合でも、呼出し元はブロックされません。

  • audit_backlog_limitパラメータの値がゼロに設定された場合、バックログ・キューの長さはシステム・メモリーの量のみに制限されます。

  • デフォルトで、AUDIT_NEVERルールのエラーがログ出力されるようになりました。

  • サブシステムの監査は、機能の状態が変更された場合にタスク情報をログ出力するようになりました。

  • netlinkマルチキャスト・ソケットが、systemdのような読取り専用のユーザー空間クライアントに追加され、監査ログへの読取り専用のアクセスが可能になりました。

  • getrandomシステム呼出しにより、ランダムな番号がセキュアに生成されます。 Linuxシステムは、従来、そのランダムな番号を/dev/[u]randomから取得していました。 このインタフェースは、攻撃者がすべての使用可能ファイル・ディスクリプタを消費するファイル・ディスクリプタ消耗攻撃に対して脆弱であり、また、コンテナでの使用が不便です。 getrandomシステム呼出しは、OpenBSD内のgetentropy呼出しと同様、これらの問題を解決します。

  • SELinuxは、avc: deniedメッセージに許容モードでレポートします。

1.1.10 ストレージ

次の重要なストレージ機能が、UEK R4に実装されています:

  • デバイス・マッパーdm-cacheターゲットにより、SSDなどの高速デバイスを、回転ディスクなど速度の遅いデバイスのキャッシュとして使用できます。 様々なポリシー・プラグインを使用して、レベル上げ、レベル下げ、ブロックの削除などのアクションを実行するアルゴリズムを変更できます。dm-cacheは、ライトバックおよびライトスルー・モードのいずれもサポートしています。 この機能は、まだ実験的な位置付けで、本番システムに適していない場合があります。

    dm-cacheへの更新では、キャッシュ・コンテンツが基礎にあるデバイス、キャッシュ・ブロック失効およびキャッシュ縮小と一貫性がない場合の、パススルー・モードのサポートが追加されています。

    詳細は、https://www.kernel.org/doc/Documentation/device-mapper/cache.txtを参照してください。

  • Bcacheは、ブロック・レイヤー・キャッシュで、SSDを使用して速度の低いブロック・デバイスをキャッシュできます。 Bcacheはライトバックおよびライトスルー・キャッシュのどちらも実行でき、ファイル・システム依存性を持たず、使用方法が簡単で、どのような設定でも構成を必要とせずに十分に動作します。

    詳細は、https://www.kernel.org/doc/Documentation/bcache.txthttp://bcache.evilpiepirate.org/およびhttp://lwn.net/Articles/497024/を参照してください。

  • 高パフォーマンスのSSDストレージをサポートする新しい、スケーラブルなマルチキュー・ブロック・レイヤー・サブシステム(blk-mq)は、CPUごとの送信キューを実装して、ハードウェア送信キューにダイレクト送信されるI/Oリクエストを受信します。 異なるCPUごとの送信およびハードウェア送信キューは、複数のCPUを介したI/Oワークロードのバランスを取り、レイテンシを低下させます。 設計上、従来のブロック・レイヤーのインタフェースおよび機能をサポートしていますが、NVM-ExpressまたはハイエンドPCI-Eデバイス、およびマルチコアCPUの機能を使用することで、毎秒数百のI/O操作もサポートできます。

    詳細は、http://lwn.net/Articles/552904/を参照してください。

  • デバイス・マッパーdm-eraターゲットの動作は、定義可能な時間間隔であるera内に書き込まれた任意のブロックの追跡に加え、linearターゲットと類似しています。 一般的な使用方法は、キャッシュ内容の部分的な無効化によりスナップショットをロールバックした後、バックアップ・ソフトウェア内の変更されたブロックを追跡する、およびキャッシュ整合性をリストアすることです。

    詳細は、https://www.kernel.org/doc/Documentation/device-mapper/era.txtを参照してください。

1.1.10.1 OFEDのサポート

OpenFabrics Enterprise Distribution (OFED) 2.0スタックがUEK R4に統合されました。これにより、x86-64アーキテクチャを含むシステムでは、OracleブランドのすべてのInfiniBand (IB)ハードウェアがサポートされます。 次のものが含まれます。

  • Sun InfiniBand Dual Port 4x QDR Host Channel Adapters M2

  • Oracle Dual Port QDR Infiniband Adapter M3

  • Oracle Dual Port QDR InfiniBand Adapter M4

  • Oracle Dual Port EDR InfiniBand Adapter

OFED 2.0では、次のプロトコルをUEK R4でサポートしています:

  • iSCSI Extensions for RDMA (iSER)は、iSCSIストレージ・デバイスへのアクセスを提供します。

  • Reliable Datagram Sockets (RDS)は、高パフォーマンス、低レイテンシ、信頼できるコネクションレスなデータグラム配信用のプロトコルです。

  • Sockets Direct Protocol (SDP)では、RDMAネットワーク・ファブリック用のストリーム・ソケットがサポートされます。

  • Ethernet over InfiniBand (EoIB)

  • Internet Protocol over InfiniBand (IPoIB)

ノート

Ethernet tunneling over IPoIB (eIPoIB)は、UEK R4ではサポートされていません。

OFED 2.0では、次のRDS機能をUEK R4でサポートします:

  • 非同期送信(AS)

  • サービス品質(QoS)

  • アクティブ結合(AB)

  • Netfilter (NF)

  • 共有リクエスト・キュー(SRQ)

ノート

自動パス移行(APM)は、UEK R4ではサポートされていません。

IB、OFEDおよびRDSのサポートはカーネルに統合されています。 OFEDのユーザー・スペースRPMは引き続き提供されますが、kernel-ibおよびofa-kernel RPMは必要ありません。

1.1.11 仮想化

次の重要な仮想化機能が、UEK R4に実装されています:

  • netpollに対するHyper-Vサポートにより、ネットワーク・コンソールを使用して、カーネルで発生する問題をデバッグできます。

  • 次のXen機能が実装されています:

    • インタフェースのMACアドレスを変更するxen-netbackのサポート

    • CPUおよび新しいメモリー・ホットプラグ・ドライバを含むメモリー・ホットプラグに対するACPIサポート。

    • ゼロコピー統計およびTX認可マッピングの収集に対するxen-netbackサポート。

    • Dom0内でのMSIメッセージ・グループに対するサポート。

    • xen-netbackxen-netfront間での複数キューのサポートの実装によるXen仮想ネットワーク・インタフェースのパフォーマンスの大幅な向上。

    • Dom0でのEFIサポート。

    • Dom0からXen PVまたはHVMゲストへのSCSIデバイスまたはLUNの高パフォーマンス・パススルーに対するXen PVSCSIバックエンドおよびフロントエンド・ドライバのサポート。

    • 非連続ページがDom0内で発生するのを防ぐために、一意マッピングに置き換える既存のMFNの再マッピング。

    • PVチケット・ロックが向上し、このメカニズムに依存するワークロードのゲストを効率的にロックできるようになりました。 短期間でしかスピン・ロックが使用できない場合、ロック・コードはスピンを停止して、ハイパーバイザを呼び出し、ロックが再び使用できるまで待機します。

    • NUMAトポロジおよびゲストへのI/Oのエクスポージャ。

    • PVHゲストは、準仮想化ハードウェア拡張(v3)をサポートしています。

1.1.12 Zram

Zramは、RAM内の指定されたブロック・デバイスに書き込まれたすべてを圧縮し、一般的に、スワップ・デバイスで使用すると、メモリー量が制限されたシステムの応答性が向上します。 次の例では、zramスワップ・デバイスの作成および有効化の方法について示します:

# mkswap /dev/zram0
# swapon /dev/zram0

次の例では、ファイル・システムをzramデバイス上に作成し、そのファイル・システムをマウントする方法を示します:

# mkfs.ext4 /dev/zram1
# mount /dev/zram1 /tmp

次の重要なzram機能が、UEK R4に実装されています:

  • zramは、drivers/block/zramへのステージングから除去されました。

  • LZOに加え、LZ4圧縮のサポート。

  • 複数の圧縮ストリームでの同時圧縮のパフォーマンスの向上。

  • /sys/block/zramN/comp_algorithmの圧縮アルゴリズムの切り替えのサポート。

  • /sys/block/zramN/mem_limit内のzramデバイスでの使用可能メモリーの最大量の制限のサポート。 値の設定で、メモリー単位接尾辞を使用できます。たとえば、次のようにします:

    # echo 1G > /sys/block/zram0/mem_limit

    制限を無効にするには、値を0に設定します。

  • zramデバイスが/sys/block/zramN/mem_used_maxで消費したメモリーの最大量の表示のサポート。 このファイルに0を書き込むと、カウンタがリセットされます。

1.1.13 Zswap

Zswapは、RAMにスワップされたページの圧縮を試みるスワップ・ページのための、軽量で、ライト・ビハインドで圧縮されたキャッシュ・メカニズムです。 圧縮が成功すると、スワップ・デバイスへのライトバックが遅延し、多くの場合はライトバックを防ぐため、I/Oが減少し、スワップされているシステムのパフォーマンスが向上します。

詳細は、http://lwn.net/Articles/537422/を参照してください。

1.2 ドライバの更新

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

次の表で、UEK R3四半期更新7以降に更新された一般に使用されるドライバについて説明します:

ベンダー

ドライバ

バージョン

説明

Avago

megaraid_sas

06.807.10.00-rc1

Avago MegaRAID SASドライバ

Avago

mpt2sas

20.100.00.00

LSI MPT Fusion SAS 2.0デバイス・ドライバ

Avago

mpt3sas

09.100.00.00

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

Chelsio

csiostor

1.0.0

Chelsio FCoEドライバ(Oracle Linux 7のみ)

Chelsio

cxgb4

2.0.0-ko

Chelsio T4ネットワーク・ドライバ

Chelsio

cxgb4i

0.9.4

Chelsio T4 iSCSIドライバ

Chelsio

cxgb4vf

2.0.0-ko

Chelsio T4/T5 Virtual Function (VF)ネットワーク・ドライバ

Cisco

enic

2.3.0.12

Cisco VIC Ethernet NICドライバ

Cisco

fnic

1.6.0.22

Cisco FCoE HBAドライバ

Cisco

usnic_verbs

1.0.3

Cisco VIC (usNIC) Verbsドライバ

Emulex

be2iscsi

10.6.0.1

Emulex OneConnect Open-iSCSIドライバ

Emulex

be2net

10.6.0.4

Emulex OneConnect 10Gbps NICドライバ

Emulex

lpfc

11.0.0.3

Emulex LightPulseファイバ・チャネルSCSIドライバ(Lancer G6および複数キューのサポートを含む)

Emulex

ocrdma

10.6.0.0

Emulex OneConnect RoCEドライバ

HP

cciss

3.6.26

HP Smart Arrayコントローラ用のドライバ(Oracle Linux 6のみ)

Intel

e1000e

3.2.6-k

Intel PRO/1000ネットワーク・ドライバ

Intel

i40e

1.3.21-k

Intel EthernetコントローラXL710ファミリ用のドライバ

Intel

i40evf

1.3.13

Intel XL710 X710 Virtual Functionネットワーク・ドライバ

Intel

igb

5.3.0-k

Intel Gigabit Ethernetネットワーク・ドライバ

Intel

igbvf

2.0.2-k

Intel Gigabit Virtual Functionドライバ

Intel

iw_nes

1.5.0.1

NetEffect RNIC low-level iWARPドライバ

Intel

ixgb

1.0.135-k2-NAPI

Intel PRO/10GbEネットワーク・ドライバ

Intel

ixgbe

4.2.1-k

Intel 10 Gigabit PCI Expressネットワーク・ドライバ

Intel

ixgbevf

2.12.1-k

Intel 82599 Virtual Functionドライバ

Intel

nvme

1.0

不揮発性メモリー(Fultondale)ドライバ

Mellanox

mlx4_core

2.2-1

Mellanox ConnectX HCA下位レベルドライバ

Mellanox

mlx4_en

2.2-1

Mellanox ConnectX HCA Ethernetドライバ

Mellanox

mlx4_ib

2.2-1

Mellanox ConnectX HCA InfiniBandドライバ

Mellanox

mlx5_ib

2.2-1

Mellanox Connect-IB HCA IBドライバ

Oracle

hxge

1.3.6

10 Gigabit Networkドライバ

Oracle

sxge

0.09302015

SXGE Ethernetドライバ

Oracle

sxgevf

0.09302015

SXGEVF Ethernetドライバ

Oracle

xscore

6.0.r8008

Coreサービス・ドライバ

Oracle

xsvhba

6.0.r8008

VHBAドライバ

Oracle

xsvnic

6.0.r8008

XSVNICネットワーク・ドライバ

Oracle

xve

6.0.r8008

Virtual Ethernetドライバ

QLogic

bfa

3.2.23.0

Brocadeファイバ・チャネルHBAドライバfcpim (情報のみ、重要な更新はありません)

QLogic

bna

3.2.25.1

QLogic BRシリーズ10G PCIe Ethernetドライバ(情報のみ、重要な更新はありません)

QLogic

bnx2

2.2.6

QLogic BCM57xxドライバ

QLogic

bnx2fc

2.9.6

QLogic BCM57712 FCoEドライバ(情報のみ、重要な更新はありません)

QLogic

bnx2i

2.7.10.1

QLogic BCM57xx/57xxx iSCSIドライバ

QLogic

bnx2x

1.712.30-0

QLogic 10G/20G Ethernetドライバ

QLogic

cnic

2.5.22

QLogic CNICドライバ

QLogic

ib_qib

1.11

QLogic IBドライバ

QLogic

netxen_nic

4.0.82

QLogic/NetXen (1/10) GbE Intelligent Ethernetドライバ(情報のみ、重要な更新はありません)

QLogic

qla2xxx

8.07.00.26.39.0-k

QLogicファイバ・チャネルHBAドライバ(情報のみ、重要な更新はありません)

QLogic

qla4xxx

5.04.00-k6

QLogic iSCSI HBAドライバ

QLogic

qlcnic

5.3.63

QLogic 1/10 GbE Converged/Intelligent Ethernetドライバ

QLogic

tg3

3.137

Broadcom Tigon3 Ethernetドライバ

ib_ipoib

1.0.0

IP over InfiniBandドライバ

ib_iser

1.6

iSER (iSCSI Extensions for RDMA)データムーバー

ib_isert

1.0

メインライン・ターゲット・インフラストラクチャ用のiSERターゲット

xen-netback

アップストリーム・パッチ

Xen仮想ネットワーク・デバイス後置

xen-netfront

アップストリーム・パッチ

Xen仮想ネットワーク・デバイス前置

1.3 iSERおよびiSCSI LIOのサポート

UEK R4では、iSERおよびiSCSI LIOターゲットおよびイニシエータがサポートされ、次のストレージ・ソリューション・コンポーネントで必要です:

  • Emulex Skyhawk OCe14XXX

  • FlashGrid

1.4 LSI Logic/Symbios Logic MegaRAID SAS

UEK R4は、LSI Logic/Symbios Logic MegaRAID SAS 1078コントローラをサポートしていません。

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

Unbreakable Enterprise Kernelリリース4で提供される新しく追加された機能をサポートするために、次の項でカーネルのリストを示し、ユーザー空間バイナリ・パッケージは、ベース・ディストリビューションに含まれないパッケージから追加または更新されます。 これらのパッケージが利用可能なULNチャネルおよびOracle Linux yumサーバー・リポジトリの詳細については、第3章、「インストールと可用性」を参照してください。

1.5.1 カーネル、ドライバおよびファームウェアの新規パッケージおよび更新パッケージ

  • crash (Oracle Linux 6のみ)

  • crash-devel (Oracle Linux 6のみ)

  • dtrace-modules

  • dtrace-modules-provider-headers

  • dtrace-modules-shared-headers

  • kernel-uek

  • kernel-uek-debug

  • kernel-uek-debug-devel

  • kernel-uek-devel

  • kernel-uek-doc

  • kernel-uek-firmware

  • libdtrace-ctf

  • libdtrace-ctf-devel

  • linux-firmware (Oracle Linux 6のみ)

1.5.2 ユーザー・スペースの新規パッケージおよび更新パッケージ

指定しなければ、次のパッケージがULNチャネルでのみ使用可能です。

  • acpid (Oracle Linux 6のみ)

  • btrfs-progs(Oracle Linux YumサーバーとULNから利用可能)

  • btrfs-progs-devel (Oracle Linux yumサーバーとULNから利用可能)

  • dtrace-utils

  • dtrace-utils-devel

  • ibutils

  • infiniband-diags

  • libibcm

  • libibmad

  • libibmad-devel

  • libibumad

  • libibumad-devel

  • libibverbs

  • libibverbs-devel

  • libibverbs-utils

  • libmlx4

  • librdmacm

  • librdmacm-devel

  • librdmacm-utils

  • libsdp

  • mstflint

  • ofed-docs

  • opensm-libs

  • oracle-ofed-release

  • perftest

  • qperf

  • rdma

  • rds-tools

1.6 UEK R4を使用したOracle Linux 7の問題の修正

UEK R4で起動したOracle Linux 7で修正された問題を次に示します:

1.6.1 ネットワークのチーミング

チーミングは、UEK R4でサポートされています。 チーミングは、UEK R3四半期更新7以上でも機能します。 (バグID 19151770)

1.6.2 autofs4およびipv6モジュールのロードでsystemdが失敗する

UEK R3を使用してシステムを再起動すると、systemdautofs4およびipv6モジュールのロードに失敗し、次のようなエラーのログが表示されます:

systemd[1]: Failed to insert module 'autofs4'
systemd[1]: Failed to insert module 'ipv6'

UEK R4を使用して再起動する場合、これらのモジュールはロードされます。 (バグID 18470449)

1.7 テクノロジ・プレビュー

Unbreakable Enterprise Kernelリリース4に含まれている次の機能は、まだ開発中ですが、テストと評価の目的で使用できます。

  • Ceph File SystemおよびObject Gateway Federation

    Cephは、複数の物理および論理コモディティ・ハードウェア・ストレージ・デバイスのクラスタからオブジェクト・ストレージおよびブロック・ストレージを同様に表示します。 Cephは、ストレージ・クラスタのストレージ・デバイス間でデータのレプリケートおよびストライプ化を行うことによって、フォルト・トレランスを提供し、I/Oパフォーマンスを強化できます。 Cephの監視および自己修復機能により、管理オーバーヘッドが最小限に抑えられます。 異なる製造元の同一でないハードウェア上で、ストレージ・クラスタを構成できます。

    Ceph File System (CephFS)およびCephのObject Gateway Federation機能は、テクノロジ・プレビューに記載されています。

  • DCTCP (Data Center TCP)

    DCTCPは、最新のネットワーク・スイッチであるExplicit Congestion Notification (ECN)機能を使用して、遅延制御を強化します。 DCTCPを使用すると、システムは、TCPを使用するよりも高度な処理能力で遅延に対応するため、バッファ占有が低減し、スループットが高くなります。

  • 分散複製型ブロック・デバイス(DRBD)

    非共有型の同時複製ブロック・デバイス(ネットワーク経由のRAID1)で、高可用性(HA)クラスタのビルディング・ブロックの役割を果たすように設計されています。 自動フェイルオーバーのためにはクラスタ・マネージャ(ペースメーカーなど)が必要です。

  • カーネル・モジュール署名機能

    暗号署名チェックをモジュール・ロード時にモジュールに適用し、カーネルにコンパイルされた公開キー・リングに対して署名をチェックします。 GPGは暗号化の作業を行うために使用され、署名およびキーのデータの書式を決定します。

  • NFS over RDMAとZFSおよびOracle Solarisとの相互運用

    NFS over RDMAは、ZFSおよびOracle Solarisと完全に相互運用されていません。 NFSバージョン3および4のNFS over RDMAは、Oracle InfiniBandスタックを使用してOracle Linuxシステムでサポートされ、NFSをTCP over IPoIBで使用するよりも効率的です。 現在、Mellanox ConnectX-2およびConnectX-3ホスト・チャネル・アダプタ(HCA)のみがConnectathon NFSテスト・スイートを通過し、サポートされています。

  • NFSサーバー・サイド・コピー・オフロード

    NFSサーバー・サイド・コピー・オフロードは、ネットワークを使用してクライアントでファイル・データをコピーするかわりに、コピー操作を1つ以上のNFSサーバーにオフロードすることにより、ネットワーク上のオーバーヘッドおよびクライアント・リソースを削減するNFS v4.2の機能です。

  • サーバー・サイド・パラレルNFS

    サーバー・サイド・パラレルNFS (pNFS)により、ファイル・メタデータおよびデータを個別のパスで使用できるようになり、NFSサーバーのスケーラビリティおよびパフォーマンスが向上します。

1.8 互換性

Oracle LinuxではRed Hat Enterprise Linuxとのユーザー空間の互換性が維持され、これはオペレーティング・システムの下で実行されているカーネルのバージョンとは無関係です。 ユーザー空間の既存のアプリケーションは、Unbreakable Enterprise Kernelリリース4で変更なしに引き続き実行され、RHEL認定アプリケーションには証明書の更新は不要です。

Oracle Linuxチームはリリース時の互換性に関する影響を最小限に抑えるため、カーネル・モジュールに対する依存性があるハードウェアおよびソフトウェアを提供するサード・パーティ・ベンダーと緊密に協力しています。 UEK R4のカーネルABIは、最初のリリースの後のすべての更新において変更されていません。 このリリースでは、システム上でサード・パーティのカーネル・モジュールの再コンパイルを必要とするUEK R3と比較してカーネルABIに対する変更点があります。 UEK R4をインストールする前に、アプリケーション・ベンダーとそのサポート状況を確認してください。