ヘッダーをスキップ
Oracle VM Serverユーザーズ・ガイド
リリース2.2
B57076-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

E トラブルシューティング

この付録では、Oracle VM Serverのトラブルシューティングについて説明します。 内容は次のとおりです。

E.1 デバッグ・ツール

ドメインの作成に失敗した場合、Oracle VM Serverのログ・ファイルを確認し、コマンドライン・ツールを使用して問題の原因を特定してください。 Oracle VM Serverの問題をトラブルシューティングする際に使用する多くの便利なコマンドライン・ツールや、確認する必要のある重要なディレクトリおよびログ・ファイルがあります。 この項では次を説明します。

E.1.1 Oracle VM Serverのディレクトリ

表E-1「Oracle VM Serverのディレクトリ」に、Oracle VM Serverの問題をトラブルシューティングする際に確認する必要がある重要なOracle VM Serverのディレクトリを示します。

表E-1 Oracle VM Serverのディレクトリ

ディレクトリ 目的

/etc/xen

Oracle VM Serverデーモンと仮想化ゲストのOracle VM Server構成ファイルを含みます。

/etc/xen/scripts

ネットワーク関連スクリプトを含みます。

/var/log/xen

Oracle VM Serverのログ・ファイルを含みます。


E.1.2 Oracle VM Serverのログ・ファイル

表E-2「Oracle VM Serverのログ・ファイル」に、Oracle VM Serverの問題をトラブルシューティングする際に確認する必要があるOracle VM Serverのログ・ファイルを示します。

表E-2 Oracle VM Serverのログ・ファイル

ログ・ファイル 目的

xend.log

Oracle VM Serverデーモンのすべてのアクションのログを含みます。 アクションは、通常の条件またはエラー条件です。 このログには、xm logコマンドによる出力と同じ情報が含まれます。

xend-debug.log

Oracle VM Serverデーモンのアクションの詳細ログを含みます。

xen-hotplug.log

ホットプラグ・イベントのログを含みます。 デバイスまたはネットワーク・スクリプトが起動しない、または使用できない場合、ホットプラグ・イベントがログに記録されます。

qemu-dm.pid.log

各ハードウェア仮想化ゲストのログを含みます。 このログは、quemu-dmプロセスによって作成されます。 psコマンドを使用してpid(プロセス識別子)を検索し、これをファイル名に置き換えます。


E.1.3 Oracle VM Serverのコマンドライン・ツール

表E-3「Oracle VM Serverのコマンドライン・ツール」に、Oracle VM Serverの問題をトラブルシューティングする際に使用する必要があるOracle VM Serverのコマンドライン・ツールを示します。

表E-3 Oracle VM Serverのコマンドライン・ツール

コマンドライン・ツール 目的

xen top

Oracle VM Serverおよびドメインのリアルタイム情報を表示します。

xm dmesg

ハイパーバイザのログ情報を表示します。

xm log

Oracle VM Serverデーモンのログ情報を表示します。


E.2 DHCPの使用

Oracle VM Serverは、静的IPアドレスのコンピュータにインストールすることをお薦めします。 コンピュータでDHCPを使用する場合は、DHCPサーバーを構成して静的DHCPアドレスを割り当てる必要があります。 これによって、ホストは常に同じIPアドレスを受信できます。 DHCPのリース期間によってIPアドレスが変わる可能性のある環境で使用すると、Oracle VM Serverホストの動作が不確定になります。

E.3 ゲスト・コンソール・アクセス

Oracle VM Managerを使用してゲストのコンソールに接続できます。 Oracle VM Managerにアクセスできない場合、VNC(仮想ネットワーク・コンピューティング)を使用して、ゲストのコンソールへのアクセスを構成できます。 ゲストのVNCアクセスは、ゲスト構成ファイルのvm.cfgでVNCアクセスを有効にする必要があります。リスニング・アドレスやパスワードなどの一部のVNCパラメータは、次の場所で構成できます。

ハードウェア仮想化ゲストは、ゲスト構成ファイルでvnc=1パラメータを使用します。次に例を示します。

vnc=1
vnclisten '0.0.0.0'

準仮想化ゲストは、次のようにゲスト構成ファイルのVNC仮想フレーム・バッファを使用します。

vfb = ['type=vnc,vncunused=1,vnclisten=0.0.0.0,vncpasswd=mypassword']

ゲスト構成ファイルで定義されるVNC設定は、Oracle VM Server構成ファイルの設定より優先されます。 たとえば、ハードウェア仮想化ゲストの構成ファイルに次が指定される場合、

vnc=1
vnclisten '0.0.0.0'
vncpassword 'mypassword'

Oracle VM Server構成で設定された値ではなく、ゲスト構成ファイルに設定された値がVNCアクセスに使用されます。


注意:

vnclisten0.0.0.0に設定すると、コンピュータへのアクセスを許可するVNCが設定されます。 これによって、ホスト・コンピュータのセキュリティが低下する場合があります。

ハードウェア仮想化ゲストの構成ファイルに次が指定される場合、

vnc=1

ゲストのVNCが有効になります。vnclistenパラメータは、Oracle VM Server構成ファイルから使用されます。 vnclistenがOracle VM Server構成ファイルで指定されない場合、デフォルト値である127.0.0.1が使用されます。 ハードウェア仮想化ゲストの構成ファイルに次が指定される場合、

vnc=0

ゲストのVNCアクセスが無効になります。

Oracle VM Server構成ファイルのVNCアクセス用のデフォルト構成オプションを設定すると、すべてのゲストのアクセスを構成してから、ゲスト構成ファイルのVNCパラメータを設定することでVNCアクセスを個別に変更できます。

準仮想化ゲストの構成ファイルにおけるVNC構成エントリの例は、次のとおりです。

vfb = ['type=vnc,vncunused=1,vnclisten=0.0.0.0,vncpasswd=mypassword']

ハードウェア仮想化ゲストの構成ファイルにおけるVNC構成エントリの例は、次のとおりです。

vnc = 1                   # vnc=1 enabled, 0=disabled
vncconsole = 1            # vncconsole=1 enables spawning VNC viewer for domain's
                          # console. Default=0
vnclisten = 0.0.0.0       # Address that should be listened on for the VNC server
                          # if VNC is set. Default (if vnc=0) is to use
                          # 'vnc-listen' setting from /etc/xen/xend-config.sxp
vncpasswd = 'mypassword'  # VNC password
vncunused = 1             # vncunused=1 - find an unused port for the VNC server
                          # to listen on. Default=1

この例では、ゲストが作成されてVNCポート番号がゲストに割り当てられるたびに、vncunused=1パラメータが新しいVNCポート番号を割り当てます。 ポート番号は、デフォルトのVNCポート番号の5900から割り当てられます。このため、dom1にはポート5900、dom2にはポート5901、dom3にはポート5902のように割り当てられます。

コマンドを使用して、ホスト・コンピュータのゲストに接続します。

# vncviewer -Shared ipaddress:port

-Sharedパラメータを使用すると、VNC接続を共有できます。 このパラメータを設定しない場合、別のユーザーが同時に接続して、VNCセッションを破棄することがあります。 接続文字列を使用してVNC Viewerでリモート・コンピュータから接続します。

ipaddress:port

いずれの例でも、ipaddressはOracle VM ServerのIPアドレスまたはホスト名で、portはゲストのVNCポート番号です。

E.4 ゲストの作成時にグラフィカル・インストーラを表示できない

virt-installコマンドライン・ツールを使用してゲストを作成する際にグラフィカル・インストーラが起動しない場合、X11構成を確認する必要があります。 ssh(セキュア・シェル)接続でコンソールを使用している場合、コンソールに接続して、次のようにDISPLAY環境変数を設定します。

# ssh root@example
# export DISPLAY=example:0.0

また、コンソール接続を有効にし、次のようなssh -Xコマンドによるssh転送を有効にできます。

# ssh -X root@example

Puttyを使用してコンソールに接続する場合、X11対応のオペレーティング・システムから接続する必要があります。

E.5 ハードウェア仮想化ゲスト・コンソールが表示されない

ハードウェア仮想化ゲストを作成した後にコンソールが表示されない場合、ディスク・デバイスの指定が正しくない可能性があります。 ハードウェア仮想化ゲストを作成する場合、VNCコンソール設定を指定する必要があります。 これは、準仮想化ゲストには必要ありません。

E.6 ゲストのクロックの設定

準仮想化ゲストは、NTPD(ネットワーク・タイム・プロトコル・デーモン)などを使用して、固有のシステム・クロック管理を実行できます。ハイパーバイザは、すべてのゲストのシステム・クロック管理を実行します。

/etc/sysctl.confファイルのxen.independent_wallclockパラメータを1に設定すると、固有のシステム・クロックを管理するために準仮想化ゲストを設定できます。 次に例を示します。

"xen.independent_wallclock = 1"

ハイパーバイザを設定して準仮想化ゲストのシステム・クロックを管理する場合、xen.independent_wallclock0に設定します。 ゲストの時間の設定または変更の処理は失敗します。

/procファイルの設定を一時的に変更できます。 次に例を示します。

"echo 1 > /proc/sys/xen/independent_wallclock"

注意:

この設定は、ハードウェア仮想化ゲストに適用されません。

E.7 wallclock時刻のずれの問題

Oracle VMリリース2.1.1では、ハードウェア仮想化ゲストのtimer_modeパラメータを使用できます。 このパラメータを正しく適用すると、ほとんどのハードウェア仮想化ゲストのwallclock時刻のずれの問題を軽減または排除できます。 wallclock時刻のずれの問題は、準仮想化ゲストでは発生しません。

timer_modeパラメータの正しい値の適用を決定するのが困難なため、os-typeおよびos-variantコマンドライン・スイッチをvirt-installに渡し、ゲスト・オペレーティング・システム用の最適なtimer_mode値を選択できます。 これらのvirt-installパラメータを使用すると、正しいtimer_mode値がゲスト構成ファイルに自動的に追加されます。 たとえば、64ビットのOracle Enterprise Linux 5ゲストを作成する場合、次のコマンドをvirt-installコマンドラインに追加します。

# virt-install --hvm ... --os-type=linux --os-variant=el5_64 ...

最適な結果を取得するには、ゲストのインストール後に特定のオペレーティング・システム・バリアントのブート・ローダー(grub.conf)構成ファイルに追加のパラメータが必要になる場合があります。 特に、最適かつ正確なクロックには、Linuxゲスト・ブート・パラメータを指定して、pitクロック・ソースを使用する必要があります。 ほとんどのゲストにclock=pit nohpet nopmtimerを追加することで、ゲストのクロック・ソースとしてpitが選択されます。 Oracle VM用に公開されているテンプレートには、これらの追加パラメータが含まれます。

仮想時間を正確に保守することは困難です。 様々なパラメータが仮想時間の管理と補完のチューニングを行います。ただし、ゲスト内で実行されるntp時間サービスの代わりにはなりません。 ntpdサービスが実行され、/etc/ntpd.conf構成ファイルが有効な時間サーバーを示していることを確認してください。

E.8 マウス・ポインタ追跡の問題

マウス・ポインタがハードウェア仮想化ゲストのVNC Viewerセッションのカーソルを追跡しない場合、次を/etc/xen/xend-config.sxpのOracle VM Server構成ファイルに追加して、デバイス・モデルで絶対(タブレット)座標が使用されるようにします。

usbdevice='tablet'

変更を有効にするには、Oracle VM Serverを再起動します。

E.9 ハードウェア仮想化ゲストの停止

ハードウェア仮想化ゲストを実行すると、QEMUプロセス(qemu-dm)のメモリー使用量が特に負荷の高いI/Oで大幅に増加する可能性があります。 このため、メモリーが不足してハードウェア仮想化ゲストが停止する場合があります。 ゲストが停止した場合は、dom0のメモリーの割当てを(たとえば、512MBから768MBに)増加します。

E.10 ハードウェア仮想化ゲスト・デバイスが正常に動作しない

サウンド・カードなどの一部のデバイスがハードウェア仮想化ゲストで正常に動作しない場合があります。 ハードウェア仮想化ゲストで、物理メモリー・アドレスを必要とするデバイスは、仮想化されたメモリー・アドレスを使用します。このため、正しくないメモリー位置の値が設定される可能性があります。 これは、ハードウェア仮想化ゲストのDMA(ダイレクト・メモリー・アクセス)が仮想化されるためです。

ハードウェア仮想化ゲストのオペレーティング・システムは、アドレス0以上のメモリーにロードされます。 これは、最初にロードされるハードウェア仮想化ゲストに対してのみ実行されます。 Oracle VM Serverは、メモリー・アドレス0を割り当てられたメモリーのサイズに仮想化します。ただし、ゲスト・オペレーティング・システムは、実際には別のメモリー位置にロードされます。 違いがシャドウ・ページ・テーブルで修正されますが、オペレーティング・システムはこれを認識しません。

たとえば、100MBのアドレスでWindowsを実行しているハードウェア仮想化ゲストのメモリーに音声がロードされると、目的の音声ではなく、サウンド・カードによってガベージが生成されることがあります。 これは、実際の音声が100MB+256MBの位置でロードされるためです。 サウンド・カードは100MBのアドレスを受け取りますが、実際は256MBの位置です。

コンピュータのメモリー管理単位のIOMMU(I/Oメモリー管理ユニット)では、仮想アドレスと物理アドレスをマッピングし、ハードウェア仮想化ゲストからハードウェアに直接アクセスできるようになるため、この問題はなくなります。

E.11 CD-ROMイメージが見つからない

構成ファイルを使用して準仮想化ゲストまたはハードウェア仮想化ゲストを作成し、インストール中にCD-ROMイメージが見つからない場合、不正な順番でIDEデバイスを使用している可能性があります。 正しくIDEデバイスを配置すると、この問題は解決します。 disk = [ ... ]パラメータがhdc:cdromとして定義され、hdaに設定されていることを確認してください。そうではない場合、通常のboot='dc'構成ではCD-ROMイメージを検出できません。

E.12 ファイアウォールでのNFSアクセスのブロック

Oracle VM Serverは、デフォルトで外部コンピュータ(またはゲスト)からのNFSアクセスをブロックします。 このため、NFS接続を使用してゲストを作成する場合に問題が発生することがあります。 これを解決するには、次のコマンドでファイアウォールを無効にします。

# service iptables stop

E.13 ドメインの移行

同等ではないハードウェアを使用すると、コンピュータのドメインを移行できません。 ドメインを移行するには、同じ型および同じモデルのハードウェアを使用する必要があります。 同じOracle VM Serverリリースを使用する必要もあります。

E.14 Grubブート・ローダーでのコンソール接続

xm consoleコマンドでコンソールに接続できない可能性があるので、ハードウェア仮想化ゲストの起動の問題を追跡することが困難な場合があります。 この問題を回避するには、ゲストのGrubブート・ローダーにコンソールを設定し、ブート中にコンソールに接続します。

Grubブート・ローダーにコンソールを設定するには、/etc/grub.confファイルの最初の"title ..."行の前に次の行を追加します。

serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console