XenServer

高度なトラブルシューティング

この記事では、テクニカルサポートチームのガイダンスに基づいて実行できる高度なトラブルシューティングアクションを一覧表示します。

Xen® コマンドラインのオプションを変更する

XenServer® はオープンソースの Xen ハイパーバイザーをベースにしています。問題の診断または回避策の一環として、Xen コマンドラインにパラメーターを追加するよう求められる場合があります。

Xen コマンドラインは、テクニカルサポートのガイダンスの下でのみ変更することを強くお勧めします。XenServer 製品ドキュメントに記載されていない、またはテクニカルサポートから提供されていないオプションを設定または変更することはサポートされていません。これらの Xen コマンドライン引数の変更は、環境をサポート対象外にするだけでなく、ホストを起動不能にしたり、セキュリティ上の脅威に対して脆弱にしたりする可能性があります。

ホストの Xen コマンドラインにオプションを追加するには、次の手順を実行します。

  1. SSH を使用するか、XenCenter の [コンソール] タブを使用して、XenServer ホストコンソールにログインします。
  2. テクニカルサポートが推奨するパラメーターと値を使用して、次のコマンドを実行します: /opt/xensource/libexec/xen-cmdline --set-xen <parameter>=<value>
  3. コマンドはサイレントに実行されますが、次のコマンドを実行してパラメーターが設定されていることを確認できます: more /boot/efi/EFI/xenserver/grub.cfg

    指定したパラメーターは、ファイルの XenServer および XenServer (Serial) セクションに表示されます。

  4. 変更を有効にするには、XenServer ホストを再起動します。

ホストの Xen コマンドラインからオプションを削除するには、次の手順を実行します。

  1. SSH を使用するか、XenCenter の [コンソール] タブを使用して、XenServer ホストコンソールにログインします。
  2. テクニカルサポートが推奨するパラメーターと値を使用して、次のコマンドを実行します: /opt/xensource/libexec/xen-cmdline --remove-xen <parameter>
  3. コマンドはサイレントに実行されますが、次のコマンドを実行してパラメーターが削除されていることを確認できます: more /boot/efi/EFI/xenserver/grub.cfg

  4. 変更を有効にするには、XenServer ホストを再起動します。

XenServer の起動に失敗した場合のログ収集

XenServer ホストが正常に起動しない場合でも、インストール ISO から起動を試みることでログを収集できます。

  1. https://xenserver.com/downloads からインストール ISO をダウンロードします。
  2. インストール ISO から XenServer ホストを起動します。ISO からの起動方法については、「XenServer ホストのインストール」のステップ 2 を参照してください。
  3. 最初のダイアログが画面に表示されたら、Alt+F2 を押します。インストールプロセスにより、シェルコンソールに切り替わります。
  4. インストール ISO がローカルディスクまたはリモートディスクを認識できるか確認します。次のコマンドを実行します。

    fdisk –l
    

    ローカルディスクとリモートディスクが認識できる場合、このコマンドは認識できるパーティションを一覧表示します。これらのパーティションは通常、/dev/sdaX の形式の名前を持ちます。

  5. ローカルディスク上のルートパーティションを特定します。ルートパーティションは通常 /dev/sda1 ですが、ハードウェアによっては異なる場合があります。
  6. ローカルディスクにアクセスするために、ルートパーティションを一時マウントポイント /mnt にマウントします。

    mkdir /mnt
    mount /dev/sda1 /mnt
    ls /mnt
    
  7. 一時ルートファイルシステムをディスク上のファイルシステムに変更します。

    chroot /mnt
    
  8. 次のコマンドを実行して、サーバーの状態レポートを作成します。

    mount –t sysfs none /sys
    xenserver-status-report --yestoall
    

    このコマンドは、サーバーの状態レポートを含む tarball の場所を出力します。

  9. 一時ルートファイルシステム内のファイルへのパスを取得するには、前のステップで示されたパスの前に /mnt を付加します。例: /mnt/var/opt/xen/bug-report/bug-report-xxxx.tar.bz2
  10. サーバーの状態レポートをネットワーク経由でデスクトップにコピーするための一時 IP アドレスを設定します。

    • ネットワークでDHCPが実行されている場合は、次のコマンドを実行します。

       dhclient <network-interface>
      
    • DHCPがない場合は、IPアドレスを手動で構成します。

       ifconfig <network-interface> <x.x.x.x> netmask <x.x.x.x> up
       route add default <x.x.x.x>
      
  11. SCPクライアントを使用して、以前に構成したIPアドレスに接続し、ステータスレポートをローカルデスクトップにコピーします。

シリアルコンソールアクセスを構成する

XenServerホストへのシリアルコンソールアクセスは、デバッグ目的で役立ちます。HyperTerminal(または同様のアプリケーション)でシリアル接続を使用して、XenServerログを収集できます。

物理ポートを使用してホストに接続できます。この方法を使用する場合は、次のものが必要です。

  • 9ピンシリアルヌルモデムケーブル。
  • シリアルポートに接続するためのソフトウェア(例:Microsoft HyperTerminal)が実行されているシステムのシリアルCOMポート。
  • XenServerホストのシリアルCOMポート。

ホストに物理シリアルポートがない場合、または適切な物理インフラストラクチャが利用できない場合は、ハードウェアに組み込み管理デバイスを構成できるかどうかを調査してください。この方法はSerial over LANとも呼ばれます。この方法を使用する場合は、次のものが必要です。

  • Dell iDRACやHP iLOなどのベースボード管理コントローラーによって提供される仮想シリアルポート。
  • 仮想シリアルポートに接続するための適切なソフトウェアが搭載されたコンピューター(例:ipmitool)。

注:

デフォルトでは、XenServerはシリアルボーレートを115200と想定しています。異なるボーレートが必要な場合は、grub.cfgファイル内の<speed>の値を調整してください。必要に応じて、テクニカルサポートチームのガイダンスを求めてください。

シリアル接続を設定するには、次の手順を完了します。

  1. サーバーでCOM1を使用していない場合は、grub.cfgファイルを編集してください。

    grub.cfgファイルは/boot/efi/EFI/xenserverディレクトリにあります。

  2. 次の行を見つけてください: serial --unit=0 --speed=<speed>
  3. --unitの値をn-1に編集してください。ここで、<n>はCOMポート番号を表します。

    例えば、COM2を使用するには、–unitの値を1に設定します。

    serial --unit=1 --speed=<speed>
    
  4. menuentry 'XenServer (Serial)'セクションで、次のテキストが表示されている行を見つけてください: com1=<speed>,8n1 console=com1,vga

  5. com1com<n>に置き換えてください。ここで、<n>はCOMポート番号を表します。

  6. XenServerホストを起動または再起動します。

  7. grubメニューから、XenServer (Serial)を選択します。

  8. XenServerはシリアルコンソールサポート付きで起動します。

これで、選択した方法でシリアルコンソールに接続できます。

シリアルコンソールからクラッシュダンプを生成する

XenServerホストがクラッシュした場合、実行中のカーネルはkexec機能に基づいた特別なメモリ領域に移行できます。これにより、サーバーを再起動することなく特別なカーネルがロードされます。この新しいカーネルは、クラッシュに関する可能な限り多くの詳細(メモリダンプ、プロセスリスト)を収集し、/var/crashディレクトリに保存しようとします。

XenServerがクラッシュ後にハングアップし、再起動しないことがあります。このような状況が発生すると、サーバーは応答しなくなりますが、まだ実行されており、サーバーの再起動のみが問題を解決できます。さらに、サーバー上にクラッシュダンプが利用できない場合があります。つまり、/var/crashディレクトリにダンプがなく、xe host-crashdump-listにはクラッシュに関する情報が含まれていません。

この状況では、クラッシュに関する情報を保存するクラッシュダンプを強制的に生成し、それを分析することができます。

シリアルコンソールに切り替えた後、次の手順を実行します。

  1. XenServerが応答しなくなるまで待ちます。
  2. Xenハイパーバイザーメニューに切り替えるには、Ctrl+Aを3回押します。シリアルコンソールに次のメッセージが表示されます: *** Serial input to Xen (type 'CTRL-a' three times to switch input)
  3. 利用可能なすべての操作を表示するには、hを押します。
  4. クラッシュダンプをトリガーするには、Shift+Cを押します。
  5. XenServerホストが再起動するまで待ち、すべてのデータをローカルファイルシステムに保存します。
  6. サーバーの/var/crashディレクトリで新しいクラッシュダンプを確認します。

デバッグハイパーバイザーに切り替える

状況によっては、ホストをデバッグハイパーバイザーの使用に切り替えて、問題を再現しようとすることが役立つ場合があります。デバッグハイパーバイザーは、より多くの組み込みチェックを実行し、その出力はより詳細です。

ホストでデバッグハイパーバイザーを有効にするには、次の手順を実行します。

  1. SSHを使用するか、XenCenterのコンソールタブを使用して、XenServerホストコンソールにログインします。
  2. /bootディレクトリに移動します: cd /boot
  3. デバッグモジュール xen-debug.efi ファイルが利用可能であることを確認します: ls -l xen*

    このコマンドは、利用可能なハイパーバイザーのバージョンと、ホストの起動時に使用されるシンボリックリンクを表示します。通常の操作では、xen-release.efiはリリースハイパーバイザーファイルxen-<version>.efiにリンクし、xen-debug.efiはデバッグハイパーバイザーファイルxen-<version>-d.efiにリンクします。デバッグハイパーバイザーはリリースハイパーバイザーと同じバージョンですが、ファイル名に追加の-dが含まれています。

    通常動作時のハイパーバイザーのシンボリックリンク

  4. xen.efi リンクをデバッグハイパーバイザーを指すように変更します: ln -sf /boot/xen-debug.efi /boot/xen.efi
  5. ホストを再起動します。

テクニカルサポートが推奨するアクションを実行し、より多くの診断情報を収集するためにデバッグハイパーバイザーを使用した後は、通常の操作に戻る前にハイパーバイザーをリリースハイパーバイザーに戻してください。

ホストでリリースハイパーバイザーの使用に戻るには、次の手順を完了します。

  1. SSH を使用するか、XenCenter の Console タブを使用して、XenServer ホストコンソールにログインします。
  2. /boot ディレクトリに移動します: cd /boot
  3. xen.efi リンクをリリースハイパーバイザーを指すように変更します: ln -sf /boot/xen-release.efi /boot/xen.efi
  4. ホストを再起動します。
高度なトラブルシューティング