第12章 カーネル
RHEL 7.4 のカーネルバージョン
Red Hat Enterprise Linux 7.4 には、カーネルバージョン 3.10.0-693 が同梱されています。(BZ#1801759)
NVMe ドライバーがカーネルバージョン 4.10 にリベース
NVM-Express カーネルドライバーが、アップストリームカーネルバージョン 4.10 に更新され、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。最も注目すべき変更は、既存の RDMA NIC (Infiniband、RoCE、iWARP) および既存の NVMe SSD を使用する初期の NVMe-over-Fabrics トランスポート実装がドライバーに追加されましたが、DIF/DIX およびマルチパスへのサポートが含まれていない点です。(BZ#1383834)
crash がバージョン 7.1.9 にリベース
今回の更新で、crash パッケージがアップストリームバージョン 7.1.9 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。(BZ#1393534)
crash
が IBM Power ISA 3.0 の vmcore ダンプを分析するようになりました。
crash
ユーティリティーが、IBM Power ISA バージョン 3.0 アーキテクチャーに関連するカーネルページテーブルの変更に対応するように更新されました。その結果、crash
ユーティリティーは、IBM Power ISA 3.0 システムのカーネルの vmcore ダンプを分析できるようになりました。(BZ#1368711)
IBM Power および IBM Power のリトルエンディアンバリアント向けに更新された crash
crash パッケージが、IBM Power Systems および IBM Power Systems のリトルエンディアンバリアンをサポートするように更新されました。このパッケージでは、コア分析スイートを利用できます。このツールは独立したもので、ライブシステムや、kexec-tools パッケージまたは Red Hat Enterprise Linux カーネルが作成したカーネルコアダンプを調べるために使用できます。(BZ#1384944)
memkind
がバージョン 1.3.0 に更新されました。
memkind
ライブラリーがバージョン 1.3.0 に更新され、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。
以下は、主な変更点です。
- ロギングメカニズムが導入されました。
- ハードウェアローカリティー(hwloc)が統合され、--with-hwloc オプションを使用してオンにできます。
- libmemkind.so が公開しているシンボルは削除されました。たとえば、
libnuma
とjemalloc
は公開されなくなりました。 - autohbw ファイルは
/memkind/autohbw/
ディレクトリーに移動し、コードがリファクタリングされ、テストが適切なシナリオに追加されました。 memkind
に、セキュリティーを改善するフラグが追加されました。フラグは、--disable-secure
設定時間オプションを使用してオフにできます。jemalloc
の設定が変更され、未使用の機能をオフにするようになりました。- いくつかのシンボルが非推奨になりました。詳細は、非推奨の機能のセクションを参照してください。(BZ#1384549)
カーネルに追加された jitter エントロピー RNG
今回の更新で、Linux カーネルへの CPU タイミングの相違を介してエントロピーを収集する Jitter Entropy Random Number Generator (RNG) が追加されました。この RNG は、デフォルトで
algif_rng
インターフェイスから利用できます。生成された数字は、/dev/random
ファイルを介してカーネルに戻すことができます。これにより、他の /dev/random
ユーザーが利用できるようになります。その結果、オペレーティングシステムではより多くのエントロピーソースが利用できるようになりました。(BZ#1270982)
/dev/random
が、urandom プールの初期化に関する通知と警告を表示するようになりました。
この更新により、ランダムドライバー (/dev/random) が変更され、非ブロッキングプール (/dev/urandom が使用) が初期化されたときに、メッセージが出力されるようになりました。(BZ#1298643)
fjes
がバージョン 1.2 に更新されました。
fjes
ドライバーがバージョン 1.2 に更新され、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。(BZ#1388716)
ユーザー名空間の完全なサポート
Red Hat Enterprise Linux 7.2 でテクノロジープレビューとして導入されたユーザーネームスペース (userns) が完全にサポートされるようになりました。この機能は、ホストとコンテナー間の分離を改善することにより、Linux コンテナーを実行しているサーバーに追加のセキュリティーを提供します。コンテナーの管理者は、ホスト上で管理操作を実行できなくなり、セキュリティーが向上します。
user.max_user_namespaces
のデフォルト値は 0
です。この値をゼロ以外の値に設定すると、誤動作するアプリケーションを停止できます。user.max_usernamespaces
は、15000
などの大きな値に設定することが推奨されます。これにより、通常の操作では値に再度アクセスする必要はありません。(BZ#1340238)
makedumpfile がバージョン 1.6.1 に更新される
makedumpfile パッケージは、kexec-tools 2.0.14 rpm の一部としてアップストリームバージョン 1.6.1 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。(BZ#1384945)
QAT が
最新のアップストリームバージョンに更新された
qat
ドライバーが最新のアップストリームバージョンに更新され、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。
バグ修正および機能強化
- Diffie-Hellman (DH) ソフトウェアのサポートが追加されました。
- Elliptic Curve Diffie–Hellman (ECDH) ソフトウェアのサポートが追加されました。
- 曲線 P-192 および P-256 の誤り訂正符号 (ECC) ソフトウェアのサポートが追加されました。(BZ#1382849)
intel-cmt-cat パッケージの追加
このパッケージで提供される
pqos
ユーティリティーを使用すると、管理者は L3 キャッシュを監視および操作して、ユーティリティーおよびパフォーマンスを向上させることができます。
ツールはカーネル API をバイパスし、ハードウェア上で直接動作します。これには、使用する前に CPU ピンがターゲットプロセスで使用されている必要があります。(BZ#1315489)
i40e
が信頼できる VF と信頼できない VF をサポート
今回の更新で、信頼できる仮想機能と信頼できない仮想機能の両方のサポートが
i40e
NIC ドライバーに追加されました。(BZ#1384456)
OVS 802.1ad (QinQ) のカーネルサポート
今回の更新で、カーネル内の 802.1ad (QinQ) ネットワーク標準を有効にすることで、Open vSwitch (OVS) で 2 つの VLAN タグを使用できるようになりました。今回の更新で使用するユーザー空間は、openvswitch により提供されることに留意してください。(BZ#1155732)
共有メモリーと hugetlbfs
のコピー後のライブマイグレーションサポート
今回の更新で、カーネルが強化され、コピー後のライブマイグレーションが可能になり、共有メモリーと
hugetlbfs
ファイルシステムがサポートされるようになりました。この機能を利用するには、以下のようにします。
- ホストで 2MiB の Huge Page を設定する
- 2MiB の Huge Page があるゲスト仮想マシンを作成する
- ゲスト仮想マシンと stress-test アプリケーションを実行してメモリーをテストする
- ポストコピーでゲスト仮想マシンをライブマイグレーションする(BZ#1373606)
新規パッケージ: dbxtool
dbxtool パッケージは、UEFI セキュアブート DBX 更新を適用するためのコマンドラインユーティリティーとワンショット
systemd
サービスを提供します。(BZ#1078990)
mlx5
が SRIOV で信頼される VF をサポート
この更新により、Single Root I/O Virtualization (SRIOV)で信頼される仮想機能(VF)のサポートが
mlx5
ドライバーに追加されました。(BZ#1383280)
バックポートされた 4.9 カーネルからの rwsem
パフォーマンス更新
今回の更新で、Linux カーネルバージョン 4.9 までのほとんどのアップストリーム R/W semaphores (
rwsem
)パフォーマンス関連の変更が、カーネルアプリケーションバイナリーインターフェイス(kABI)を維持している一方で、Linux カーネルにバックポートされました。
以下は、主な変更点です。
- ライターに最適なスピニング。ロックの待ち時間を短縮し、ロックのパフォーマンスを向上させる。
- 内部のスピンロックを保持しないロックなしのウェイターのウェイクアップ。(BZ#1416924)
Linux カーネルに追加された getrandom
今回の更新で、
getrandom
システムコールが Linux カーネルに追加されました。その結果、ユーザースペースは /dev/urandom で使用されるものと同じ非ブロッキングエントロピープールからランダム性を要求できるようになり、ユーザースペースは少なくとも 128 ビットのエントロピーがそのプールに蓄積されるまでブロックできます。(BZ#1432218)
新しいステータス行 Umask が /proc/<PID>/status に
含まれます。
以前は、変更せずにプロセス umask を読み取ることはできませんでした。この変更を行わないと、特にメインプログラムがマルチスレッド化されている場合に、ライブラリーが umask を安全に読み取ることができません。proc ファイルシステム(procfs)が、
/proc/<PID>/status ファイルの umask を公開する
ようになりました。形式は Umask: OOOO
です。OOOO はタスクの umask の 8 進数表現です。(BZ#1391413)
Intel® Omni-Path Architecture (OPA) ホストソフトウェア
Intel®Omni-Path Architecture (OPA) ホストソフトウェアは、Red Hat Enterprise Linux 7.3 以降、完全にサポートされています。Intel® OPA は、クラスター環境のコンピュートと I/O ノード間の高性能データ転送 (高帯域幅、高メッセージレート、低レイテンシー) のために、初期化とセットアップを行う Host Fabric Interface (HFI) ハードウェアを提供します。
Intel® Omni-Path Architecture のドキュメントを取得する方法については、https://access.redhat.com/articles/2039623 を参照してください。(BZ#1459948)
XTS-AES の鍵認証が FIPS 140-2 の要件を満たす
この更新により、Red Hat Enterprise Linux を FIPS モードで実行し、カーネルの XTS-AES キー検証を使用すると、AES キーが強制的に tweak キーと異なるものになります。これにより、FIPS 140-2 IG A.9 の要件が満たされていることが保証されます。また、ciphertext stealing (XTS) テストベクトルを使用した XEX ベースの調整コードブックモードはスキップするようにマークできるようになりました。(BZ#1314179)
IBM z Systems で mlx5
に対応
Mellanox
mlx5
デバイスドライバーは、IBM z Systems 上の Linux でもサポートされ、イーサネット TCP/IP ネットワークに使用できるようになりました。(BZ#1394197)
perf
ツールがプロセッサーのキャッシュライン競合検出に対応
perf
ツールは、Shared Data Cache-to-Cache (C2C)分析用の c2c サブコマンドを提供するようになりました。これにより、キャッシュラインの競合を検証し、true 共有と false 共有の両方を検出できます。
競合は、対称型マルチプロセッシング (SMP) システムのプロセッサーコアが、他のプロセッサーによって使用されている同じキャッシュラインにあるデータオブジェクトを修正すると発生します。次に、このキャッシュラインを使用する他のすべてのプロセッサーは、コピーを無効にして更新されたものを要求する必要があります。これにより、パフォーマンスが低下する可能性があります。
新しい c2c サブコマンドは、競合が検出されたキャッシュ行、データの読み取りおよび書き込みのプロセス、競合の原因となる命令、および関連する Non-Uniform Memory Access (NUMA)ノードに関する詳細情報を提供します。(BZ#1391243)
lpfc
ドライバーでの SCSI-MQ のサポート
Red Hat Enterprise Linux 7.4 で更新された
lpfc
ドライバーは、lpfc_use_blk_mq=1 モジュールパラメーターで SCSI-MQ (multiqueue)を使用
できるようになりました。デフォルト値は 0
(無効)です。
SCSI-MQ を使用してファイバーチャネルアダプター上での非同期 IO のパフォーマンステストを実施したところ、特定の条件下ではパフォーマンスが大幅に低下した点に注意してください。修正はテスト中で、Red Hat Enterprise Linux 7.4 の一般提供に間に合うように準備できませんでした。(BZ#1382101)