第44章 カーネル
HMM (heterogeneous memory management) 機能がテクノロジープレビューとして利用可能に
Red Hat Enterprise Linux 7.3 では、テクノロジープレビューとして heterogeneous memory management (HMM) 機能が導入されました。この機能は、プロセスアドレス空間を独自のメモリー管理ユニット (MMU) にミラーする必要のあるデバイスのヘルパーレイヤーとして、カーネルに追加されています。これにより、CPU 以外のデバイスプロセッサーは、統一システムアドレス空間を使用してシステムメモリーを読み取ることができます。この機能を有効にするには、
experimental_hmm=enable
をカーネルコマンドラインに追加します。(BZ#1230959)
criu がバージョン 2.12 にリベース
Red Hat Enterprise Linux 7.2 では、テクノロジープレビューとして
criu
ツールが導入されました。このツールは、CRIU (Checkpoint/Restore in User-space)
を実装します。これを使用して、実行中のアプリケーションをフリーズし、ファイルのコレクションとして保存できます。アプリケーションは、後にフリーズ状態から復元できます。
criu
ツールは Protocol Buffers
に依存することに注意してください。これは、構造化データをシリアル化するための、言語に依存しない、プラットフォームに依存しない拡張可能なメカニズムです。依存パッケージを提供する protobuf パッケージと protobuf-c パッケージも、Red Hat Enterprise Linux 7.2 にテクノロジープレビューとして導入されています。
Red Hat Enterprise Linux 7.4 では、criu パッケージがアップストリームバージョン 2.12 にアップグレードされ、以前のバージョンに比べて多くのバグ修正と機能拡張が提供されています。(BZ#1400230)
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)
テクノロジープレビューとしての KASLR
Kernel Adress Space Layout Randomization (KASLR) がテクノロジープレビューとして利用できるようになりました。KASLR は、カーネルテキスト KASLR と
mm
KASLR の 2 つの部分を含むカーネル機能です。この 2 つの部分は相互に作用し、Linux カーネルのセキュリティーを強化します。
カーネルテキストの物理アドレスと仮想アドレスの場所が、個別にランダム化されます。カーネルの物理アドレスは 64 TB の任意の場所に配置できますが、カーネルの仮想アドレスは、[0xffffffff80000000, 0xffffffffc0000000] の間の 1 GB 領域に制限されます。
3 つの
mm
セクション(直接マッピング、vmalloc
、および vmemmap
セクション)の開始アドレスは、特定のエリアでランダム化されます。以前は、このセクションの開始アドレスが固定値になっていました。
したがって、悪意のコードが、カーネルアドレス領域にその記号が置かれていることを知る必要がある場合に、KASLR は悪意のコードにカーネルの実行を挿入またはリダイレクトしないようにすることができます。
KASLR コードは、Linux カーネルでコンパイルされましたが、デフォルトでは無効になっていることに注意してください。これを使用する場合は、カーネルコマンドラインに
kaslr
カーネルオプションを追加して、明示的に有効にします。(BZ#1449762)
柔軟なファイルレイアウトで NFSv4
pNFS クライアントを更新
NFSv4
クライアントでの柔軟なファイルレイアウトは、最初に Red Hat Enterprise Linux 7.2 でテクノロジープレビューとして導入されました。Red Hat Enterprise Linux 7.4 は、この機能に更新を追加していますが、これは引き続きテクノロジープレビューとして提供されています。
NFSv4
の柔軟なファイルレイアウトにより、ノンストップファイルモビリティーやクライアント側のミラーリングなどの高度な機能を利用できます。これにより、データベース、ビッグデータ、仮想化などの領域での使いやすさが向上します。NFS
フレキシブルファイルレイアウトの詳細は、https://datatracker.ietf.org/doc/draft-ietf-nfsv4-flex-files/ を参照してください。(BZ#1349668)
CUIR 拡張スコープ検出
Linux による Control Unit Initiated Reconfiguration (CUIR) のサポートにより、ダウンタイムが発生しないか、最小限に抑えられた同時ストレージサービスが可能になります。論理パーティション (LPAR) モードで実行している Linux インスタンスのサポートに加えて、IBM z/VM システムでの Linux インスタンスのサポートがテクノロジープレビューとして追加されました。(BZ#1274456)
qla2xxx
ドライバーでテクノロジープレビューとしての SCSI-MQ
Red Hat Enterprise Linux 7.4 で更新された
qla2xxx&
amp; ドライバーは、ql2xmqsupport=1
モジュールパラメーターで SCSI-MQ (multiqueue)を使用できるようになりました。デフォルト値は 0
(無効)です。SCSI-MQ の機能は、qla2xxx
ドライバーで使用すると、テクノロジープレビューとして提供されます。
SCSI-MQ を使用してファイバーチャネルアダプター上での非同期 IO のパフォーマンステストを実施したところ、特定の条件下ではパフォーマンスが大幅に低下した点に注意してください。修正はテスト中で、Red Hat Enterprise Linux 7.4 の一般提供に間に合うように準備できませんでした。(BZ#1414957)
テクノロジープレビューとしての Intel Cache Allocation Technology
今回の更新で、テクノロジープレビューとして Intel Cache Allocation Technology (CAT) が追加されました。このテクノロジーにより、ソフトウェアはキャッシュ割り当てを定義されたキャッシュのサブセットに制限できます。定義されたサブセットは、他のサブセットと重複する可能性があります。(BZ#1288964)