機械翻訳について

 注目すべき変更点

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

コンテナ

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

カーネルの基本機能

次の重要なカーネルの基本機能が、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クロック周波数を制御します。

    Oracleでは、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)マニュアル・ページを参照してください。

暗号化

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

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

  • LZ4暗号化API。

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

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

ファイル・システム

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

btrfs

  • skinnyメタデータ機能は、UEK R3と互換性がないため、デフォルトで有効化されません。 (バグID 22123918)

  • btrfs filesystem balanceコマンドでは、特定の状況でRAIDレベルを変更できるという警告はなく、操作を取り消す選択肢はありません。 (バグID 16472824)

  • duなどのコマンドでは、遅延割当て中のバイト数が変化している場合に、btrfsファイル・システム内のファイル・サイズの一貫性のない結果を表示できます。 (バグID 13096268)

  • btrfsがコピーオンライトであるということは、ファイル・システム上のすべての操作で、最初にディスク・スペースが必要になるということです。 スペースが残っていないディスクでは、すべての操作を実行できず、ファイルの削除もできない場合があります。 回避策は、操作を再試行する前にsyncを実行することです。 これが役に立たない場合は、-o nodatacowオプションを指定してファイルシステムを再マウントし、一部のファイルを削除して領域を解放します。 https://btrfs.wiki.kernel.org/index.php/ENOSPCを参照してください。

  • 空でないファイル・システムでbtrfs quota enableコマンドを実行した場合、既存のファイルは領域使用量にカウントされません。 これらのファイルを削除すると、使用レポートにマイナスの数字が表示される場合があり、ファイル・システムにアクセスできなくなります。 回避策として、ファイル・システムの作成直後にquotaを有効にします。 ファイル・システムにすでにデータを書き込んだ場合は、もうquotaを有効にできません。 (バグID 16569350)

  • btrfs quota rescanコマンドは、現在実装されていません。 このコマンドは再スキャンを実行せず、メッセージも表示せずに戻ります。 (バグID 16569350)

  • ファイルの途中でデータを上書きすると、上書きされた領域は、btrfs qgroup showによって表示される領域使用量の2倍にカウントされます。 (バグID 16609467)

  • ファイル・システムでbtrfsck --init-csum-treeを実行し、同じファイル・システムで単純なbtrfsckを実行すると、以前は存在していなかったBackref不一致エラーが表示されます。 (バグID 16972799)

  • Btrfsでは、btrfsファイル・システムを作成する対象デバイスをトラッキングします。 その後、これらのデバイスをbtrfs以外のファイル・システムで再利用すると、デバイス・スキャンの実行時またはRAID-1ファイル・システムの作成時に次のようなエラー・メッセージが表示される場合があります。

    ERROR: device scan failed '/dev/cciss/c0d0p1' - Invalid argument

    これらのエラーは無視しても問題ありません。 (バグID 17087097)

  • -sオプションを使用して、ページ・サイズとは異なるセクター・サイズをmkfs.btrfsに指定した場合、作成されたファイルシステムはマウントできません。 デフォルトでは、セクター・サイズは、ページ・サイズと同じになるように設定されます。 (バグID 17087232)

  • UEK R4で使用するbtrfs-progsbtrfs-progs-develパッケージは、ol6_x86_64_UEKR4ol7_x86_64_UEKR4 ULNチャネルとol6_UEKR4ol7_UEKR4 Oracle Linux yumサーバー・リポジトリで利用できます。 UEK R3では、これらのパッケージは、ol6_x86_64_latestおよびol7_x86_64_latest ULNチャネルとol6_latestおよびol7_latest Oracle Linux yumサーバー・リポジトリで利用可能になりました。

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

ext4

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

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

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

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

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

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

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

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

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

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

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

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

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

FUSE

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

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

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

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

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

NFS

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

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

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

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

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

XFS

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

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

  • 名前空間のサポート。

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

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

メモリー管理

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

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

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

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

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

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

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

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

ネットワーク

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

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

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

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

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

    • IPv6のサポート。

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

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

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

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

    詳細は、https://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ドライバが、この機能をサポートしています。

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

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単位の量。

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

  • numa_balancing sysctlパラメータを追加して、NUMAメモリーの自動バランシングを有効または無効にします。

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

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

リアル・タイム

次の重要なリアルタイム機能が、UEK R4に実装されています:
  • Dynamic Tickおよび完全なCPU時間課金インフラストラクチャ。

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

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

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

    詳細は、「gitのドキュメント712e5e34aef449ab680b35c0d9016f59b0a4494c」およびhttps://lwn.net/Articles/575497/を参照してください。

セキュリティ

次の重要なセキュリティ機能が、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メッセージに許容モードでレポートします。

ストレージ

次の重要なストレージ機能が、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.txthttps://bcache.evilpiepirate.org/およびhttps://lwn.net/Articles/497024/を参照してください。

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

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

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

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

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は必要ありません。

仮想化

次の重要な仮想化機能が、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)をサポートしています。

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に設定します。

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

Zswap

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

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