Red Hat Training

A Red Hat training course is available for RHEL 8

第38章 SystemTap のクロスインストルメンテーション

SystemTap のクロスインストルメンテーションは、あるシステムで SystemTap スクリプトから SystemTap インストルメンテーションモジュールを作成し、SystemTap が完全にデプロイされていない別のシステムで使用します。

38.1. SystemTap のクロスインストルメンテーション

ユーザーが SystemTap スクリプトを実行すると、そのスクリプトからカーネルモジュールが構築されます。次に SystemTap はモジュールをカーネルに読み込みます。

通常、SystemTap スクリプトは SystemTap がデプロイされているシステムでのみ実行できます。SystemTap を 10 台のシステムで実行するには、このようなすべてのシステムに SystemTap をデプロイする必要があります。場合によっては、これは実現不可能または推奨されない場合があります。たとえば、企業のポリシーで、特定のマシンにコンパイラーやデバッグ情報を提供するパッケージのインストールが禁止されている場合には、SystemTap のデプロイメントができなくなります。

この状況を回避するために、クロスインストルメンテーション を使用します。クロスインストルメンテーションとは、あるコンピューターの SystemTap スクリプトから SystemTap インストルメンテーションモジュールを生成して、別のシステムで使用するプロセスです。このプロセスには、以下のような効果があります。

  • 各種マシンのカーネル情報パッケージを単一のホストマシにインストールできる。

    重要

    カーネルのパッケージ化にバグがあると、インストールが妨げられる場合があります。このような場合に ホストシステムターゲットシステムkernel-debuginfo および kernel-devel パッケージが同じでなければなりません。バグが発生した場合は、 https://bugzilla.redhat.com/ でバグを報告します。

  • 生成された SystemTap インストルメンテーションモジュール (systemtap-runtime) を使用するには、ターゲットマシン ごとインストールする必要があるパッケージは 1 つだけです。

    重要

    構築された インストルメンテーションモジュール が機能するには、ホストシステムターゲットシステム が同一アーキテクチャーで同じ Linux ディストリビューションを実行している必要があります。

用語
インストルメンテーションモジュール
SystemTap スクリプトから構築したカーネルモジュール。SystemTap モジュールは ホストシステム 上に構築され、ターゲットシステムターゲットカーネル に読み込まれます。
ホストシステム
ターゲットシステム に読み込めるように (SystemTap スクリプトから) インストルメンテーションモジュールをコンパイルするシステム。
ターゲットシステム
(SystemTap スクリプトから) インストルメンテーションモジュール を構築するシステム。
ターゲットカーネル
ターゲットシステム のカーネル。インストルメンテーションモジュール を読み込み、実行するカーネルです。