仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

その他の Xen トラブルシューティング

ご使用の環境で Xen を試行およびテストする際に発生する可能性がある、いくつかの一般的な Xen の問題に関する 1 つのチュートリアルがありました。ヒントとコツの最初のバッチは、ディスプレイ、Python のバージョンとモジュール、ラッパー スクリプトの変更と明示的なコマンドの実行、およびトラブルシューティング サービスに関する問題に焦点を当てていました。

今日、私たちはさらに深く掘り下げ、あなたが遭遇したかもしれないし遭遇しなかったかもしれないいくつかの問題を理解し、修正し、回避しようとします.いくつかの解決策はその場しのぎである可能性があることを認めなければならないので、私の言葉を鵜呑みにする必要はありませんが、全体的にうまく機能すると信じています。とはいえ、この記事を読んだ後、Xen の経験がより充実したものになることを願っています。

ヒント 1:ハイパーバイザー ホストへの VNC 接続が拒否または切断された

Virtual Machine Manager (virt-manager) を起動すると、VNC を使用して仮想マシンの内容を表示するオプションが表示されます。これにより、関連するドメインのコンソールの内容が表示されます。ときどき、コンソールが空白になり、上記のタイトルに記載されているエラーがスローされることがあります。質問、あなたは今何をしていますか?

私の経験では、これはゲスト OS が再起動またはシャットダウンされるたびに発生します。もう一度電源を入れると、非常に不便なことに、コンソールを再度開いて内容を表示する必要があります。 virt-viewer を使用する場合も同様です:

virt-viewer <ドメイン>

ドメインが再起動、リセット、または電源オフされると、接続が失われます。現時点での簡単な解決策は、virt-manager または virt-viewer を使用してコンソール ウィンドウを再度開くことです。

または、接続を確立するには:

virsh vncdisplay <ドメイン>
vncviewer

ヒント 2:ゲストの実行中に vif が消え、ネットワークがなくなる

仮想マシンの実行中に、通常は vifX.X というラベルの付いた仮想ネットワーク インターフェイスが ifconfig リストから消えて、ゲストが役に立たないレンガになってしまうことがあります。

この問題は、仮想マシン内の関連するネットワーク インターフェイスの MAC アドレスがすべてゼロになることにも現れます。また、ホスト (dom0) では、/var/log/messages に次の種類のエントリが表示される場合があります:

カーネル:[ 109.743854] br0:ポート 2 (vif1.0) が学習状態に入ります
カーネル:[ 109.811880] br0:ポート 3(tap1.0) が学習状態に入っています
カーネル:[ 117.369189] br0:ポート 3(tap1.0) が無効状態に入っています
カーネル:[ 117.398076] デバイス tap1.0 は無差別モードを終了しました
カーネル:[ 117.398083] br0:ポート 3 (tap1.0) が無効状態に入っています
カーネル:[ 117.815006] br0:ポート 2 (vif1.0) が無効状態になっています
カーネル:[ 117.850075] br0:ポート 2 (vif1.0) が無効状態に入ります

では、このようなものを修正するにはどうすればよいでしょうか。いくつかのオプションがあります。 1 つは、不思議なことに問題を解決する可能性のあるカーネルのアップグレードです。不思議なことではなく、Xen ネットワーク スタックの競合状態を修正するようなものです。

2 番目のオプションは、/etc/xen/xend-config.sxp の下にある Xen 構成ファイルのネットワーク設定を微調整することです。このファイルには、ブリッジと仮想ネットワーク インターフェイスのセットアップ方法を含む、あらゆる種類のディレクティブが含まれています。多くの人は、ネットワークに多少バグがあり、独自のスクリプトを手動で構成する必要があると主張しています。

特に、次のディレクティブを変更してください:

(ネットワーク スクリプト ネットワーク ブリッジ) から (ネットワーク スクリプト)

さらに、ブリッジを手動で構成する必要があります。テスト中は、brctl コマンドと ifconfig コマンドを使用する必要があります。変更が確実に行われたことを確認したら、それらをネットワーク スクリプトに永続的にコミットする必要があります。 RedHat および SUSE システムでは、これは ifcfg-br を作成し、/etc/sysconfig/network の下にあるネットワーク カードの既存のネットワーク スクリプトを変更することを意味します。Debian ベースのシステムでは、/etc/interfaces 構成を編集します。ファイル。言うまでもなく、バックアップは必須です。

手動ブリッジ構成の例を次に示します:

brctl addbr br0
brctl setfd br0 0
ifconfig br0 10.0.0.128 アップ ネットマスク 255.255.255.0
brctl addif br0 eth0
ルート追加 -net デフォルト gw 1​​0.0.0.254 br0
ifconfig eth0 0.0.0.0 アップ

メニューの次に、ネットループの数を増減します。これは、仮想デバイスのペアをいくつ作成できるかを意味します。上限に達した場合は、数を増やすことができます。これは、/etc/modprobe.d の下に netloop というファイルを作成し、内部に次のように記述することによって行われます:

option netloop nloopbacks=<大きな数値。 16, 32>

または、このオプションを /etc/modprobe.conf に追加するだけです。

このトピックに関するかなりの読み物:

Xen ネットワーキング

Xen ネットワーク ブリッジの説明とトラブルシューティング

Xen での SLES ネットワーク、トラブルシューティングと推奨事項

手間のかからない Xen ネットワーキング

Linuxネットワーキングは最悪です。 XENネットワーキングは最悪です。

追加の Xen 仮想ネットワーク ブリッジの作成

これが発生したときにカーネル クラッシュが発生した場合は、次の 2 つのリンクも興味深いものになる可能性があります。

mm/vmalloc.c:2165 でのカーネルのバグ

[パッチ] mm:vmalloc アドレス空間ページ テーブルを alloc_vm_area() で同期する

この問題は、ネットループの数をゼロに減らすことで実際に解決される場合があります。

ヒント 3:従来の HTTP アクセスを有効にする

libvirt は、dom0 への接続と、ローカルとリモートの両方での管理に関して、HTTP を冗長にします。ただし、特に HTTP/HTTPS を使用して接続する OpenXenManager などのツールを使用する場合は、このオプションに興味を持つ人もいるでしょう。 Web から Xen にアクセスできるようにするには、xend-config.sxp 構成ファイル内のいくつかのディレクティブを編集する必要があります:

(xend-http-server はい)
(xend ポート 8000)
(xend アドレス '')

xend-http-server の no を yes に変更し、正しいポートを指定します。xend-address は、Xend がリッスンするネットワーク インターフェイスの IP アドレスを指定します。デフォルトの空の引用符をそのままにしておくと、使用可能なすべてのインターフェイスでリッスンします。次に、構成ファイルをリロードします:

/etc/init.d/xend リロード

次に、Web アクセスをテストできます:

ヒント 4:エラー:「localhost:8000」に接続できません:接続が拒否されました

上記のヒントの結果として、virt-manager を使用して dom0 に接続しようとすると、醜い接続拒否エラーが発生する可能性があります。 Python は冗長であることで有名なので、見苦しさを覚悟してください。

この問題を解決するには、HTTP アクセスを有効にする必要がある場合があります。または、そもそもなぜこれが起こるのかを自問する必要があります。最も可能性の高い理由は、Xen サービスの 1 つが実行されていないことです。これにより、virt-manager はレガシー アクセスに強制的にフォールバックされます。 HTTP プロトコルを使用したくない場合は、システムが関連するすべての Xen サービス、特に libvirtd と xend で起動することを確認してください。

ヒント 5:domU 起動エラー

xm create または xm start を使用してドメインの電源を入れようとすると、怒りや混乱を招く可能性のあるエラー メッセージがいくつか表示されることがあります。これらのいくつかを分析して、問題が何であるかを理解してみましょう。

#xm 開始テスト 1
エラー:ドメインの一時停止を解除できません:整数が必要です
使用法:xm start <ドメイン名>

同等のグラフィック:

これは通常、ネットワーク カードやサウンド カードなど、存在しないかサポートされていないハードウェア コンポーネントを指定したことを意味します。通常は /etc/xen/vm に保存されているドメイン構成ファイルにエラーがないか確認してください。 /var/log/messages や Xen エラー ログ (/var/log/xen/xend.log) も参照してください。

さて、ここに別のものがあります:

#xm create test1
設定ファイル「./test1」を使用。
エラー:(2、「無効なカーネル」、「elf_xen_note_check:エラー:Xen-ELF イメージではありません:ELF ノートまたは '__xen_guest' セクションが見つかりません。\n")

これは、ドメイン構成ファイルの HVM カーネル設定を使用して準仮想化ゲストの電源を入れようとした場合に発生する可能性があります。デバッグと解決はかなり簡単です。

#xm create test1
設定ファイル「./test1」を使用。
エラー:デバイス 768 (vbd) を接続できませんでした。
ファイル /tmp/disk.raw は、/dev/loop1 を介してループバック マウントされます。
ゲストドメインにマウントされ、
そのため、現在マウントできません。

別の仮想マシンですでに使用されているハードディスク ファイルを再利用しようとすると、この問題が発生することがあります。または、内部を検査するために、ループバック デバイスとしてどこかにマウントした可能性があります。

vbd エラーといえば、もう 1 つ:

#xm create test1
設定ファイル「./test1」を使用。
エラー:デバイス 5632 (vbd) を接続できませんでした。デバイスが見つかりません。

xend.log に表示されるこの種のメッセージのバリエーション:

DEBUG (DevController:139) デバイス vscsi を待機しています。
DEBUG (DevController:139) デバイス vbd を待機しています。
DEBUG (DevController:144) 768 を待っています。
WARNING (XendDomain:1076) Failed to setup devices for :デバイス 768 (vbd) を接続できませんでした。デバイスが見つかりません。

ここでの理由は、不適切に指定されたハード ディスク ファイルであるか、おそらくスペル ミスが原因であるデバイスの不適切な使用である可能性があります。これは、上記の最初のエラーに似ています。

ここで、vbd がどのようなデバイスであるかを知るにはどうすればよいかという疑問が生じる可能性があります。最も簡単な回避策として、起動した Xen domU のいずれかでこれを確認できます。すべてのデバイスは /sys/devices/xen/ の下にあります。例:

#cat /sys/devices/xen/vbd-768/block/hda/hda1/dev
3:1

ここで、vbd-768 はメジャー番号 3 のブロック デバイスであることがわかります。したがって、hda1 は 3:1 に対応し、論理を表します。この命名法については後ほど詳しく説明します。

特定の仮想マシンの完全なリスト:

#ll
合計 0
drwxr-xr-x 2 root root 0 Dec 18 12:07 power
-rw-r--r-- 1 ルート ルート 4096 12 月 18 日 12:07 uevent
drwxr-xr-x 4 ルート ルート 0 Dec 18 12:05 vbd-5632
drwxr-xr-x 4 ルート ルート 0 Dec 18 12:05 vbd-768
drwxr-xr-x 3 ルート ルート 0 Dec 18 12:05 vfb-0
drwxr-xr-x 4 root root 0 Dec 18 12:05 vif-0

より複雑な方法は、数値を 16 進数に変換し、下位 2 ビットをマイナー番号に使用し、残りの上位ビットをメジャー番号として使用し、オンラインまたは /usr/src/ の下の devices.txt リストを参照することです。 linux/Documentation を参照して、正確なデバイス タイプを解読してください。たとえば、10 進数の 768 は 16 進数の x0300 であり、メジャー番号 3、マイナー番号 0 を意味します。これは、最初 (ゼロ) の IDE デバイスまたは hda に変換されます。同様に、5632 は x1600 に変換されます。これはメジャー、マイナー 16,00 の組み合わせを意味し、ブロック デバイスの場合は CD-ROM です。ジョリーまあ、いいえ?この古い Xen メーリング リスト スレッドも興味深いかもしれません。

ヒント 6:詳細設定

最後に、軽いもの。ゲストを起動するときに、いくつかの詳細設定を微調整したい場合があります。たとえば、PAE や OpenGL に関心があるとします。仮想マシン ウィザードで正しいオプションをマークする必要があります。または、コマンド ラインと仮想マシン ファイルに精通している場合は、そこに正しい文字列を追加するだけです。

最後の非公開のヒントは、GRUB2 を使用してマルチブート システムをセットアップすることです。目新しいことは何もありません。これについては紹介記事で説明しましたので、そこに飛び乗って見てください。

そして、今日はここで終わります。

結論

Python で記述されたツールは、管理者を意地悪し、苛立たせるために、可能な限り多くのエラーを冗長に設計されていると思います。 Xen はこのカテゴリに分類され、Xen が直面している問題についてかなり多量で洗練されていないメッセージが表示されます。控えめに言っても、些細なことではありません。

それでも、このチュートリアルがお役に立てば幸いです。ここにはかなりの誤差があることを認めなければなりません。これらの提案を適用しようとしても、怒りと失望を感じて惨めに失敗するかもしれません。これは、実際に何百もの異なるシナリオがあり、それぞれがわずかに異なるためです.とにかく、いくつかのヒントは役に立つはずです。 VNC の切断を回避する方法、ネットワークの問題を調査する方法、さまざまなエラーや構成の問題など。さて、それですべてです、また会いましょう。

乾杯。


  1. Windows 11 でエクスプローラーの応答性を高める方法

    2022 年に、主力のデスクトップ オペレーティング システム製品のファイル マネージャーの速度低下の問題を修正する方法を説明する記事を書いている人がいるのに、おかしくて悲劇的です。たまたま、Windows 11 を実行するテスト システムがありますが、エクスプローラー ウィンドウを開くのに時間がかかり、さまざまなドライブやフォルダーの内容を表示するのにさらに時間がかかります。 NVMe ディスクを搭載した最新のマシンです。 このような問題は、アップグレード前の Windows 10 には影響しませんでした。私が使用している他の Windows 10 マシンにも、前述の IdeaPad 3

  2. Karens Replicator - Windows 10 で再び動作

    Windows でお気に入りのデータ バックアップおよびレプリケーション ツールは、Karens Replicator と呼ばれるシンプルで控えめで非常に効果的なプログラムで、Windows 7 マシンでとても喜んで使用しています。 Windows 8.1 ボックスでもしばらく使用していましたが、システム アップデート後にファイル システムが変更されて動作しなくなったため、停止しなければなりませんでした。レプリケーターの元の開発者は悲しいことに数年前に亡くなっていたので、プログラムの更新はもうないだろうと思っていました. しかし、家族の友人の 1 人が手袋を手に取り、プログラムに取り組み続け