第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に実装されています:
-
ローカル・デバイスのcgroup変更は、デバイスcgroup階層に伝播されるようになりました。
詳細は、git commit bd2953ebbb533aeda9b86c82a53d5197a9a38f1bを参照してください。
-
__DEVEL__sane_behavior
が導入され、cgroupコントローラをマウントできるようになりました。詳細は、git commit 873fe09ea5df6ccf6bb34811d8c9992aacb67598を参照してください。
-
memory.numa_stat
に、親memcg
に加え、子メモリーcgroups (memcgs
)の階層統計が含まれるようになりました。詳細は、git commit 071aee138410210e3764f3ae8d37ef46dc6d3b42を参照してください。
-
オプションの統一制御グループ階層が、導入されました。
詳細は、http://lwn.net/Articles/601840/を参照してください。
-
swappiness
およびoom_control
の階層制限が、memcgs
から取り除かれました。詳細は、git commit 3dae7fec5e884a4e72e5416db0894de66f586201を参照してください。
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_ssse3
、SHA-224
、sha512_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秒を超える値を設定すると、警告が表示されます。 -
再マウントでは、
acl
、barrier
、datasum
、datacow
、noautodefrag
、nodiscard
、noenospc_debug
、noflushoncommit
および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チェックサムの送信および受信のリンク構成。
-
パケットがカプセル化される、またはカプセル化を解除される際の、ネットワーク名前空間の切換え。
-
-
ソケットごとのネットワーク・ポーリングが、
bnx2x
、ixgbe
および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
フレームワークは、arptables
、ebtables
、iptables
およびip6tables
フレームワークにかわって、パケット・フィルタリングおよびパケット分類機能を提供します。 例については、https://lwn.net/Articles/564095/を参照してください。次の
nftables
機能が実装されています:-
iptables
が置き換えられ、上位互換性が提供されています。 -
IPv4およびIPv6のマスカレード
-
ルーティング前およびルーティング後のフィルタリング。
-
NFT_MSG_DELTABLE呼出しが拡張され、ルール・セットのフラッシュがサポートされています。
-
会計オブジェクトのスキップに対するフィルタ・サポートが追加されています。
-
ルール・セット生成IDのエクスポートに対するサポートが追加されています。
-
CPU番号に一致するパケットに対するCPU属性のサポートが追加されています。
-
リンク・レイヤー情報に基づいた
inet
、ip
および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/を参照してください。
-
送信キューのバッチは、送信ソケット・バッファのネットワーク・ドライバへのフラッシュを遅延させるため、送信キューを処理する全体的な費用を削減し、パケット送信率の効率を向上できます。
i40e
、igb
、ixgbe
、mlx4
および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
スケジューリング・クラス内のスケジューリング・プロセスにdeadline
、period
および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.txt、http://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-netback
とxen-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/zram
の圧縮アルゴリズムの切り替えのサポート。N
/comp_algorithm -
/sys/block/zram
内のzramデバイスでの使用可能メモリーの最大量の制限のサポート。 値の設定で、メモリー単位接尾辞を使用できます。たとえば、次のようにします:N
/mem_limit#
echo 1G > /sys/block/zram0/mem_limit
制限を無効にするには、値を0に設定します。
-
zramデバイスが
/sys/block/zram
で消費したメモリーの最大量の表示のサポート。 このファイルに0を書き込むと、カウンタがリセットされます。N
/mem_used_max
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 |
|
06.807.10.00-rc1 |
Avago MegaRAID SASドライバ |
Avago |
|
20.100.00.00 |
LSI MPT Fusion SAS 2.0デバイス・ドライバ |
Avago |
|
09.100.00.00 |
LSI MPT Fusion SAS 3.0デバイス・ドライバ |
Chelsio |
|
1.0.0 |
Chelsio FCoEドライバ(Oracle Linux 7のみ) |
Chelsio |
|
2.0.0-ko |
Chelsio T4ネットワーク・ドライバ |
Chelsio |
|
0.9.4 |
Chelsio T4 iSCSIドライバ |
Chelsio |
|
2.0.0-ko |
Chelsio T4/T5 Virtual Function (VF)ネットワーク・ドライバ |
Cisco |
|
2.3.0.12 |
Cisco VIC Ethernet NICドライバ |
Cisco |
|
1.6.0.22 |
Cisco FCoE HBAドライバ |
Cisco |
|
1.0.3 |
Cisco VIC (usNIC) Verbsドライバ |
Emulex |
|
10.6.0.1 |
Emulex OneConnect Open-iSCSIドライバ |
Emulex |
|
10.6.0.4 |
Emulex OneConnect 10Gbps NICドライバ |
Emulex |
|
11.0.0.3 |
Emulex LightPulseファイバ・チャネルSCSIドライバ(Lancer G6および複数キューのサポートを含む) |
Emulex |
|
10.6.0.0 |
Emulex OneConnect RoCEドライバ |
HP |
|
3.6.26 |
HP Smart Arrayコントローラ用のドライバ(Oracle Linux 6のみ) |
Intel |
|
3.2.6-k |
Intel PRO/1000ネットワーク・ドライバ |
Intel |
|
1.3.21-k |
Intel EthernetコントローラXL710ファミリ用のドライバ |
Intel |
|
1.3.13 |
Intel XL710 X710 Virtual Functionネットワーク・ドライバ |
Intel |
|
5.3.0-k |
Intel Gigabit Ethernetネットワーク・ドライバ |
Intel |
|
2.0.2-k |
Intel Gigabit Virtual Functionドライバ |
Intel |
|
1.5.0.1 |
NetEffect RNIC low-level iWARPドライバ |
Intel |
|
1.0.135-k2-NAPI |
Intel PRO/10GbEネットワーク・ドライバ |
Intel |
|
4.2.1-k |
Intel 10 Gigabit PCI Expressネットワーク・ドライバ |
Intel |
|
2.12.1-k |
Intel 82599 Virtual Functionドライバ |
Intel |
|
1.0 |
不揮発性メモリー(Fultondale)ドライバ |
Mellanox |
|
2.2-1 |
Mellanox ConnectX HCA下位レベルドライバ |
Mellanox |
|
2.2-1 |
Mellanox ConnectX HCA Ethernetドライバ |
Mellanox |
|
2.2-1 |
Mellanox ConnectX HCA InfiniBandドライバ |
Mellanox |
|
2.2-1 |
Mellanox Connect-IB HCA IBドライバ |
Oracle |
|
1.3.6 |
10 Gigabit Networkドライバ |
Oracle |
|
0.09302015 |
SXGE Ethernetドライバ |
Oracle |
|
0.09302015 |
SXGEVF Ethernetドライバ |
Oracle |
|
6.0.r8008 |
Coreサービス・ドライバ |
Oracle |
|
6.0.r8008 |
VHBAドライバ |
Oracle |
|
6.0.r8008 |
XSVNICネットワーク・ドライバ |
Oracle |
|
6.0.r8008 |
Virtual Ethernetドライバ |
QLogic |
|
3.2.23.0 |
Brocadeファイバ・チャネルHBAドライバfcpim (情報のみ、重要な更新はありません) |
QLogic |
|
3.2.25.1 |
QLogic BRシリーズ10G PCIe Ethernetドライバ(情報のみ、重要な更新はありません) |
QLogic |
|
2.2.6 |
QLogic BCM57xxドライバ |
QLogic |
|
2.9.6 |
QLogic BCM57712 FCoEドライバ(情報のみ、重要な更新はありません) |
QLogic |
|
2.7.10.1 |
QLogic BCM57xx/57xxx iSCSIドライバ |
QLogic |
|
1.712.30-0 |
QLogic 10G/20G Ethernetドライバ |
QLogic |
|
2.5.22 |
QLogic CNICドライバ |
QLogic |
|
1.11 |
QLogic IBドライバ |
QLogic |
|
4.0.82 |
QLogic/NetXen (1/10) GbE Intelligent Ethernetドライバ(情報のみ、重要な更新はありません) |
QLogic |
|
8.07.00.26.39.0-k |
QLogicファイバ・チャネルHBAドライバ(情報のみ、重要な更新はありません) |
QLogic |
|
5.04.00-k6 |
QLogic iSCSI HBAドライバ |
QLogic |
|
5.3.63 |
QLogic 1/10 GbE Converged/Intelligent Ethernetドライバ |
QLogic |
|
3.137 |
Broadcom Tigon3 Ethernetドライバ |
|
1.0.0 |
IP over InfiniBandドライバ |
|
|
1.6 |
iSER (iSCSI Extensions for RDMA)データムーバー |
|
|
1.0 |
メインライン・ターゲット・インフラストラクチャ用のiSERターゲット |
|
|
アップストリーム・パッチ |
Xen仮想ネットワーク・デバイス後置 |
|
|
アップストリーム・パッチ |
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を使用してシステムを再起動すると、systemd
はautofs4
および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をインストールする前に、アプリケーション・ベンダーとそのサポート状況を確認してください。