第44章 カーネル
HMM (heterogeneous memory management) 機能がテクノロジープレビューとして利用可能に
Red Hat Enterprise Linux 7.3 では、テクノロジープレビューとして heterogeneous memory management (HMM) 機能が導入されました。この機能は、プロセスアドレス空間を独自のメモリー管理ユニット (MMU) にミラーする必要のあるデバイスのヘルパーレイヤーとして、カーネルに追加されています。これにより、CPU 以外のデバイスプロセッサーは、統一システムアドレス空間を使用してシステムメモリーを読み取ることができます。この機能を有効にするには、
experimental_hmm=enable
をカーネルコマンドラインに追加します。(BZ#1230959)
criu がバージョン 3.5 にリベース
Red Hat Enterprise Linux 7.2 では、テクノロジープレビューとして
criu
ツールが導入されました。このツールは、実行中のアプリケーションをフリーズさせ、ファイルの集合としてこれを保存する Checkpoint/Restore in User-space (CRIU)
を実装します。アプリケーションは、後にフリーズ状態から復元できます。
criu
ツールは Protocol Buffers
に依存することに注意してください。これは、構造化データをシリアル化するための、言語とプラットフォームに中立的な拡張性のあるメカニズムです。依存パッケージを提供する protobuf パッケージと protobuf-c パッケージも、Red Hat Enterprise Linux 7.2 にテクノロジープレビューとして導入されています。
Red Hat Enterprise Linux 7.5 では、criu パッケージがアップストリームバージョン 3.5 にアップグレードされ、多くのバグ修正と機能拡張が提供されています。さらに、IBM Z および 64 ビット ARM アーキテクチャーのサポートが追加されました。(BZ#1400230, BZ#1464596)
kexec
がテクノロジープレビューとして利用可能に
kexec
システムコールはテクノロジープレビューとして提供されています。このシステムコールを使用すると現在実行中のカーネルから別のカーネルを読み込んだり、起動したりすることが可能で、カーネル内のブートローダーとして機能します。通常はシステム起動中に実行されるハードウェアの初期化が kexec
の起動中に行われないため、再起動にかかる時間が大幅に短縮されます。(BZ#1460849)
テクノロジープレビューとしての kexec fast reboot
テクノロジープレビューとして、今回の更新で
kexec fast reboot
機能が追加され、再起動の速度が大幅に速くなりました。この機能を使用するには、kexec カーネルを手動で読み込んでから、オペレーティングシステムを再起動する必要があります。kexec fast reboot
をデフォルトの再起動アクションにすることはできません。
特例は、
Anaconda
に kexec fast reboot
を使用する場合です。この場合でも、kexec fast reboot
をデフォルトにすることはできません。ただし、Anaconda
と併用すると、anaconda オプションを使用してカーネルを起動してインストールが完了したあと、オペレーティングシステムが自動的に kexec fast reboot
を使用します。kexec の再起動スケジュールを設定するには、カーネルコマンドラインの inst.kexec コマンドを使用するか、キックスタートファイルに reboot --kexec 行を追加します。(BZ#1464377)
名前空間への非特権アクセスは、テクノロジープレビューとして有効化できる
必要に応じて、
namespace.unpriv_enable
カーネルコマンドラインオプションをテクノロジープレビューとして設定できるようになりました。
デフォルト設定は off です。
1
に設定すると、非特権ユーザーとしてフラグ CLONE_NEWNS
を持つ clone() 関数の呼び出しを発行したときにエラーが返されなくなり、操作が可能になります。
ただし、名前空間への非特権アクセスを有効にするには、一部のユーザー名前空間で
CAP_SYS_ADMIN
フラグを設定して、マウント名前空間を作成する必要があります。(BZ#1350553)
qla2xxx
ドライバーでのテクノロジープレビューとしての SCSI-MQ
Red Hat Enterprise Linux 7.4 で更新された
qla2xxx&
ドライバーは、ql2xmqsupport=1
モジュールパラメーターで SCSI-MQ (multiqueue) を使用できるようになりました。デフォルトの値は 0
(無効) です。SCSI-MQ の機能は、qla2xxx
ドライバーで使用する際のテクノロジープレビューとして提供されます。
SCSI-MQ を使用してファイバーチャネルアダプター上での非同期 IO のパフォーマンステストを実施したところ、特定の条件下ではパフォーマンスが大幅に低下した点に注意してください。修正はテスト中で、Red Hat Enterprise Linux 7.4 の一般提供に間に合うように準備できませんでした。(BZ#1414957)
NVMe over Fibre Channel がテクノロジープレビューとして利用可能になりました
NVMe over Fibre Channel トランスポートタイプがテクノロジープレビューとして利用できるようになりました。Red Hat Enterprise Linux に同梱されていた RDMA (Remote Direct Memory Access) プロトコルに加えて、NVMe over Fibre Channel が、NVMe (Nonvolatile Memory Express) プロトコルのファブリックトランスポートタイプとして追加されました。
lpfc
ドライバーで NVMe over Fibre Channel を有効にするには、/etc/modprobe.d/lpfc.conf
ファイルを編集し、次のオプションの 1 つまたは両方を追加します。
- NVMe 動作モードを有効にするには、lpfc_enable_fc4_type=3 オプションを追加します。
- ターゲットモードを有効にするには、lpfc_enable_nvmet=<wwpn list> オプションを追加します。
<wwpn list>
は、0x
接頭辞が付いたワールドワイドポート名 (WWPN) 値のコンマ区切りのリストです。
NVMe ターゲットを設定するには、
nvmetcli
ユーティリティーを使用します。
NVMe over Fibre Channel は、既存の Fibre Channel インフラストラクチャー上で、より高性能で低遅延の I/O プロトコルを提供します。このことは、ソリッドステートストレージアレイで特に重要になります。NVMe ストレージのパフォーマンス上の利点を、別のプロトコル (SCSI) にカプセル化するのではなく、ファブリックトランスポートを通じて渡すことができるためです。
Red Hat Enterprise Linux 7.5 では、NVMe over Fibre Channel は、
lpfc
ドライバーを使用する Broadcom 32Gbit アダプターでのみ使用できます。(BZ#1387768, BZ#1454386)
perf cqm
が resctrl
に置き換え
Intel Cache Allocation Technology (CAT) が Red Hat Enterprise Linux 7.4 でテクノロジープレビューとして導入されました。ただし、perf インストラクチャーと CQM (Cache Quality of Service Monitoring) ハードウェアサポートの不整合により、
perf cqm
ツールが正常に機能しませんでした。したがって、perf cqm
の使用時にさまざまな問題が生じていました。
主な問題は以下のとおりです。
perf cqm
が、resctrl
を使用して割り当てたタスクのグループに対応しない- リサイクルに関するさまざまな問題により、
perf cqm
が不規則で不正確なデータを提供する - 異なるタイプのイベント (例: タスク、全システム、cgroup イベント) を同時に実行する場合に、
perf cqm
のサポートが不十分である - cgroup イベントに対して
perf cqm
は部分的なサポートしか提供しない - cgroup イベントが階層構造を持つ場合、または cgroup 内のタスクと cgroup を同時に監視する場合、cgroup イベントに対する部分的なサポートが機能しない
- ライフタイムの監視タスクにより
perf
オーバーヘッドが発生する perf cqm
がソケット全体のキャッシュ占有の集計値またはメモリー帯域幅を報告するが、多くのクラウドおよび VMM ベースのユースケースでは、ソケットごとの使用状況が求められる