シリアルコンソールから応答しなくなった仮想サーバーインスタンスのトラブルシューティングを行う際、 Linux SysRq キーをどのように使用すればよいですか?

Linux の仮想サーバーインスタンスが応答せず、SSHや直接アクセスを通じてアクセスすることができません。

Linux の仮想サーバーインスタンスが応答しなくなる原因は、システムのクラッシュ、デッドロック状態、カーネル関連の問題など、さまざまなものが考えられます。 仮想サーバーが応答しなくなった場合、SSHや直接アクセスといった標準的なトラブルシューティング手法では解決できない可能性があります。 このような場合、シリアルコンソールには引き続きアクセスできるため、管理者は「 Linux 」システムリクエスト( SysRq )キーを使用して、サーバーとやり取りを行うことができます。

システム障害、カーネルパニック、または応答しなくなったプロセスにより、 Linux サーバーが通常の処理を通じて利用できなくなる可能性があります。 これらの問題は、ソフトウェアのバグ、ハードウェアの不具合、あるいはシステムパラメータの設定ミスに起因する可能性があります。 SysRq キーを使用すると、 Linux カーネルへの低レベルアクセスが可能となり、フリーズしたり応答しなくなったりした上位レベルのプロセスをバイパスすることができます。 この仕組みは、 Linux カーネルにフェイルセーフ機能として組み込まれており、他の入力方法が利用できない場合でも、ユーザーがサーバーの再起動や診断情報のダンプといった重要なシステム操作を実行できるようにするためのものです。

シリアルコンソールから SysRq キーを使用してこの問題のトラブルシューティングと解決を行うには、以下の手順を実行してください

  1. シリアルコンソールに接続して、仮想サーバーインスタンスにアクセスします。 詳しくは、VNC またはシリアル・コンソールを使用した仮想サーバー・インスタンスへのアクセスを参照してください。

  2. SysRq コマンドを有効にします。 SysRq コマンドがすでに有効になっている場合は、この手順をスキップできます。 SysRq コマンドを有効にするには、 kernel.sysrq パラメータを設定してください。

    echo 1 > /proc/sys/kernel/sysrq
    
  3. シリアルコンソールから「 SysRq 」コマンドを送信します。 次の例は、カーネルのクラッシュダンプ(kdump)を開始するものです。

    クラッシュダンプを生成するには、 Linux の仮想サーバーインスタンスで crashkernel が設定されていることを確認してください。 手順については、「 カーネルのクラッシュダンプの仕組み 」を参照してください。

    1. Enter キーを押してください。

    2. ~ (チルダ)キーを押してください。

      AZERTYキーボードの場合: Alt Gr キーと 2 キーを同時に押すと、 ~ キーが入力されます。

    3. B (大文字のBキー)を押してください。

    4. c (小文字の c)を押すと、カーネルのクラッシュダンプ(kdump)が開始されます。

    SysRq コマンドを使用する際は、以下の点に注意してください:

    • 各キーを1つずつ押して、指を離してください。 どのキーも押し続けないでください。
    • 一連の操作を5秒以内に完了してください。そうしないと、シリアルコンソール上で SysRq コマンドが検出されません。
    • この文字列を入力しても、シリアルコンソールには文字が表示されません。 このシステムでは、それらをブレークシーケンス文字として扱います。 シーケンスが完了するか、タイムアウトになるか、または無効な文字が検出された場合、通常のコンソール入力に戻ります。
    • シーケンスがタイムアウトした場合(5秒以上かかった場合)、または無効なブレークシーケンス文字が押された場合は、手順1からプロセスをやり直してください。

    次に例を示します。

    ENTER + ~ + B + c
    
  4. 診断出力を分析してください。 以前の SysRq カーネルのクラッシュダンプには、分析可能な診断データが含まれています。 SysRq の関連コマンドを実行することで、トラブルシューティングやシステムの制御回復に役立つ貴重な診断データを収集することができます。

SysRq のコマンドキーの一覧を表示するには、 Enterキー を押した後、 ~Bh (チルダ、大文字のB、小文字のh)と入力してください。 詳細については、以下を参照してください。 Linux Magic Systemのキー操作に関するハック - 「コマンド」キーとは何ですか?