web-dev-qa-db-ja.com

応答しないKVMゲストを調査するにはどうすればよいですか?

KVMゲストが約2週間に1回フリーズする)を調査するには、どのような手順を実行できますか?「フリーズ」とは、「ssh」または「virsh」に接続しようとしても応答がないことを意味しますホストはUbuntu(natty、11.04)で、libvirtを使用してゲストを管理し、ゲストはUbuntu(natty、11.04)で、どちらのサーバーエディションにもウィンドウマネージャーがインストールされていません。

ゲストを強制的にリセットすると、もう1週間は正常に機能します。ゲストsyslogに最近のメッセージまたは関連するメッセージはありません(カーネルパニックなどを示すため)。私が知っている限りでは、仮想ネットワークとttyが壊れて、ゲストとの会話が妨げられている可能性があります。ホストは、一年中安定している他の3つのほぼ同一のゲストを実行します。ゲスト自体がクラッシュしている場合、syslogに何らかの兆候があるべきではありませんか?

ディスクはvirtioで構成されたlvm論理ボリュームです

% cat /etc/libvirt/qemu/vm-et.xml

    <domain type='kvm'>
      <name>vm-et</name>
      <uuid>8df572f1-e1dc-275a-4b9f-b7c322e2f5d3</uuid>
      <memory>2048576</memory>
      <currentMemory>2048576</currentMemory>
      <vcpu>1</vcpu>
      <os>
        <type Arch='x86_64' machine='pc-0.12'>hvm</type>
        <boot dev='hd'/>
      </os>
      <features>
        <acpi/>
      </features>
      <clock offset='utc'/>
      <on_poweroff>destroy</on_poweroff>
      <on_reboot>restart</on_reboot>
      <on_crash>destroy</on_crash>
      <devices>
        <emulator>/usr/bin/kvm</emulator>
        <!--<disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/>
          <source file='/usr/scratch/appliances/vm-et/ubuntu-kvm/tmpzwV0x3.qcow2'/>
          <target dev='hda' bus='ide'/>
          <address type='drive' controller='0' bus='0' unit='0'/>
        </disk>-->
        <controller type='ide' index='0'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
        </controller>
        <interface type='bridge'>
          <mac address='52:54:00:5a:1f:b4'/>
          <source bridge='br0'/>
          <model type='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
        </interface>
        <input type='mouse' bus='ps2'/>
        <graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1'/>
        <video>
          <model type='cirrus' vram='9216' heads='1'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
        </video>
        <memballoon model='virtio'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
       </memballoon>
        <disk type='file' device='disk'>
          <source file='/dev/vg1/lv-et'/>
          <target dev='vda' bus='virtio'/>
        </disk>

        <serial type="pty">
          <source path="/dev/pts/3"/>
          <target port="1"/>
        </serial>

      </devices>
    </domain>
6
echo85

セットアップのさまざまな機能を分離してテストする必要があるため、そこにある種類の問題を調査することは非常に困難です。これは、このような複雑なセットアップでは非常に困難であり、再現には2週間のプロセスが必要です。

最初に行うことは、ネットワークを介してリモートsyslogサービス(おそらくホストで実行されているサービス-syslogサーバーでリモート転送アクセスを有効にする必要があります)にログを送信するようにsyslogを構成して、ストレージの空き容量または同期の問題が原因でゲストログに記録されなかったエラーをキャッチします。

それでも有用な情報が得られない場合は、ゲストシリアルコンソールに接続して( 詳細はこちらを参照 )、そこで発生したすべてのことをホストのログファイルに記録してみてください。

1
Guss