問題タブ [kvm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3008 参照

zlib - Qemu configure が zlib、pthread、および kvm missing エラーをスローする

新しいマシンで qemu バージョンを実行しようとしています。zlib1g-dev、zlib-bin などをインストールしました。whereis zlib を実行すると、

ソースからzlibもコンパイルしてインストールしようとしましたが、同じ問題がありました。

私が得る正確なエラーは

さらに、これにより出口をコメントアウトすると、

kvm モジュールが有効になっており、マシンがハードウェア仮想化をサポートしています。kvm-ok を使用して確認しました。lsmod は、kvm および kvm_intel モジュールを表示します。

私はこれらのエラーについて本当に困惑しています。どんな助けや指針も大歓迎です。

0 投票する
2 に答える
114 参照

virtualization - ゲストOSプロセスはいつでもVCPUを占有しますか?

最近、ハードウェアがサポートする仮想化について調べています。

ホスト cpu の 3 つの状態について読みました。したがって、最も一般的なユーザー空間、カーネル空間、および新しいゲスト状態です。ps コマンドからわかるように、開始した vm のプロセスと、いくつかの「サブ」スレッドがあります。仮想マシンが所有する各CPU。また、vmがio関連のプログラムを実行すると、ホスト上にさらにスレッドが作成されることに気付きました。これは、ハードウェアエミュレーションのqemuの応答である可能性があります。

だからここに私の質問があります:特定の時間(他の2つではなくゲスト状態の時間)、vcpuスレッドは実行中のゲストOSプロセスを表しますか(「占有」と「排他的」を意味します)?物理CPUとまったく同じです、ユーザー空間内の任意の時間、ユーザープロセスが実行されています。これは少しばかげているように聞こえるかもしれませんが、さらなる研究のためにそれを理解したいだけです。

この質問を簡単にするために: ホスト マシンで実行される vcpu スレッドは、常に何らかのゲスト OS プロセスに関連付けられていますか?

さらに単純化すると、ゲスト OS プロセスが実際にホスト CPU 上で直接実行され、通常のホスト プロセスとしてスケジュールされていると言うのは正しいでしょうか?2 種類のプロセスの違いは、仮想化と呼ばれるものですか?

ゲスト OS プロセスの切り替えに関するいくつかの質問を解決するために、別のスレッドが必要になるかもしれませんが、その前に、皆さんがこのスレッドで私を助けてくれることを願っています。

よろしくお願いします

0 投票する
1 に答える
359 参照

linux-kernel - native_apic_mem_write と native_apic_msr_write の違いは?

私は Linux カーネルを初めて使用し、それについてあまり知りません。何らかの理由で、Linux ホスト カーネルと kvm ゲスト カーネルのレイテンシの問題も追跡する必要があります。ここで、native_apic_msr_write (これはLinux ホスト カーネルで使用されます) とnaitve_apic_mem_write ( kvm guset カーネルで使用されます) を比較する必要があります。

私の限られた知識に基づいて、これら 2 つの関数呼び出しのソース コードを読み取ろうとしましたが、native_apic_msr_write が msr レジスタに値を書き込むために使用されていると思います (これが正しいことを願っています)。私の問題は、native_apic_mem_write が ALTERNATIVE と呼ばれるインライン アセンブリを呼び出すため、何をするのか理解できないことです。

以下にコードを添付しました。内部で何が起こっているのか説明できる人はいますか?非常に詳細である必要はありません。どんな情報でも役に立ちます、ありがとう。

0 投票する
1 に答える
410 参照

kvm - veewee で KVM を作成するには?

veeweeでKVMを作成する方法に関する短いチュートリアルを探しています。veeweeを使用して、アプリケーションのニーズに合った OS を構築したい

0 投票する
1 に答える
1340 参照

memory - qemu メモリ操作

Qemu を使用して、x86 ゲスト オペレーティング システムの実行用のメモリ トレースを生成するつもりです。

tcg wiki ページによると、Qemu はいくつかのヘルパーを使用して、ターゲット (ゲスト) メモリへのロード/ストアを生成します。この命令のリストはtcg_gen_qemu_ld8s/u、、、、tcg_gen_qemu_ld16s/uです。(店舗案内用に同様のセットをご用意しております)。上記の関数へのすべての呼び出しをtarget-i386/translate.cファイルにトラップしていますtcg_gen_qemu_ld32s/utcg_gen_qemu_ld64

ただし、次のような特定の命令のロード/ストアがまだありません

質問:

  1. 誰かが私が見逃している他のロード/ストアポイント(直接または間接)を指摘できますか??
  2. qemu はguest_read()、ゲストメモリからのすべてのロードをトレースするためにインストルメント化できる、ゲストメモリへのアクセス用の単一のエントリポイント機能 ( など) を提供しますか???
  3. qemuがゲストメモリの状態を維持する方法を理解できる優れたドキュメントを誰かが指摘できますか??

前回のメールで誤解を招くような指示をしてしまい申し訳ありません。

上記のすべての指示がtcg_gen_ld/stヘルパーでカバーされているようです。

しかし今、私は別の問題に出くわしました:
私は当初、ゲスト メモリとのやり取りはすべて、translate.c ファイルのヘルパー命令によって行われると考えていました。cmpxcgh8bただし、一部の命令のヘルパー関数cmpxchg16bは、実際にゲスト メモリにアクセスしていることがわかりました。

では、ゲスト メモリを読み取るためのエントリ ポイントが複数あるということですか。ゲストメモリにアクセスするために ldq および stq 命令がどのように変換されるのか説明してください。

0 投票する
2 に答える
8023 参照

ssh - KVM/ブリッジ: ホストへのルートがありません

KVM を使用して Fedora 17 に VM をセットアップし、KVM 用のブリッジ ネットワークを構成しました。ホストと VM の両方が手動 IP 構成を使用し、ホストの IP は 192.168.0.2、VM の IP は 192.168.0.10 です。VM から問題なくホストに接続できますが、ホストから KVM に ping を実行できますが、ホストから VM に SSH 接続できません。ssh しようとすると、「ホストへのルートがありません」という結果が得られます。

ああ、私は iptables を無効にしているので、これはファイアウォールの問題ではないと思います。

0 投票する
2 に答える
6010 参照

qemu - Kvm/Qemuの最大VMカウント制限

研究プロジェクトでは、Ubuntuサーバー12.04のKVMで、python libvirtバインディングを使用して、できるだけ多くのVMを起動しようとしています。すべてのVMは、起動後にアイドル状態に設定され、最小量のメモリを使用します。せいぜい1000個のVMを単一のホストで起動できました。その時点で、CPUとメモリの両方の使用量が制限(48コアAMD、128GBメモリ)に近づいていない場合でも、カーネル(Linux 3x)が応答しなくなりました。これにより、数百のVMが実行された後、起動プロセスが連続的に遅くなりました。

Linuxカーネル自体はこのいくつかのプロセスを問題なく処理できるはずなので、これはKVM/Qemuドライバーに関連している必要があると思います。ただし、Qemuドライバーがマルチスレッドになったことを読みました。この遅さの原因が何であるか、または少なくともどこから探し始めるべきかについてのアイデアはありますか?

0 投票する
4 に答える
10524 参照

python - 仮想マシンを起動するための KVM API

Pythonスクリプトから簡単なコマンドを使用してKVM仮想マシンを起動できるKVM APIがあるかどうか疑問に思っていました.

私の Python スクリプトは一連のチェックを実行して、特定の VM を起動する必要があるかどうかを確認します。必要に応じて VM を起動したいと考えています。

今必要なのは API 呼び出しを見つけることだけですが、libvirt Web サイト内でそれらを開始するための単純な呼び出しが見つかりません。これが可能かどうか誰にもわかりますか?

0 投票する
1 に答える
87 参照

c - コードの流れを追跡し、保存する

プログラム(自分のプログラム、またはオープンソースプログラム)をコンパイルする方法があるのだろうかと思っていました。それを実行すると、そのプログラムの流れをたどることができます。理想的には、プログラムの実行時に実行される特定のメソッドを出力したいと思います。特定のメソッドを呼び出すたびに、それが実行されたことを出力したいので、後で分析するためにファイルに保存したいと思います。

たとえば、KVM(オープンソースハイパーバイザー)内のフローをよりよく理解しようとしていますが、明らかにコード行が多く、おそらく数週間かけてコードがどこにあるのかを知ることは不可能です。

私が見ているコードは主にCで書かれていますが、他の言語も使用しています。何かアイデアはありますか?

0 投票する
1 に答える
996 参照

linux-kernel - システムコール fork で kvm vm のクローンを作成します

qemu-kvm プロセスとして提示される KVM VM。場合によっては、VM のクローンを作成したい場合、fork を使用しないのはなぜですか? 私が見ているように、少なくとも2つの利点があります。

  1. サブ VM はコピー オン ライトでメモリを共有し、メモリ消費を削減します。
  2. コピー オン ライトを使用してオンザフライで VM を複製する

もちろん、解決すべき問題がいくつかあります。

  1. メイン VM イメージ ファイルを共有するディスク コピー オン ライトを設計します。
  2. サブ VM IO をリダイレクトします。