XenServer

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

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

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

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

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

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

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

    • ホストでレガシーBIOSブートモードを使用している場合は、次のコマンドを実行します: more /boot/grub/grub.cfg
    • ホストでUEFIブートモードを使用している場合は、次のコマンドを実行します: more /boot/efi/EFI/xenserver/grub.cfg

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

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

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

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

    • ホストでレガシーBIOSブートモードを使用している場合は、次のコマンドを実行します: more /boot/grub/grub.cfg
    • ホストでUEFIブートモードを使用している場合は、次のコマンドを実行します: 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 eth0
      
    • DHCPがない場合は、IPアドレスを手動で設定します。

       ifconfig eth0 <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 ファイルを編集します。

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

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

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

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

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

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

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

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

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

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

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