ゲスト vm Libvirt でコマンドを実行します。

ゲスト vm Libvirt でコマンドを実行します。

libvirtまたはvirshを使用してゲスト仮想マシン内でiostatなどのコマンドを実行できますか?ゲスト仮想マシンのIOPSを確認したいのですが、libvirt java apiを使用すると仮想マシンのIOPSを取得できないため、別の方法はゲスト仮想マシン内でiostatなどのコマンドを実行して記録することです。読み取り値。

答え1

  1. 仮想マシンに仮想シリアルコンソールが設定されている場合は、このvirsh consoleコマンドを使用して接続できます。

    スクリプトを使用してexpectユーザー名とパスワードでログインし、コマンドを実行し、出力を抽出してログアウトする必要があります。

    expectただし、これは単一目的の言語であり、私の考えにはまだわからない場合は、学習/使用する意味がないことに注意してください。それを学ぶのにかかる時間、perlまたは同じ共通言語を学ぶのに投資する方が良いでしょうpython

    これはあなたがしたいことになるという追加の利点がありますたくさんperlExpect.pmorモジュールpythonの使用はpexpectそれ自体を使用するよりも簡単ですexpectexpectセッションからデータを抽出する機能は、何ができるかと比較して非常に制限的でプリミティブですperlpython

    ところで、あなたはJava APIについて言及しました。クイックGoogle検索を使用すると、同様のJavaライブラリの実装がlibvirt少なくとも2つ以上あることがわかります。expectさらにあるかもしれません。

    https://github.com/ronniedong/Expect-for-Java

    https://github.com/Alexey1Gavrilov/ExpectIt

    私はJavaプログラマーではなく、そのうちのどれも使ったことがなく、どんな利点があるのか​​わからず、他のものよりもお勧めできません。

  2. または、仮想マシンにIPアドレスを持つネットワークインターフェイスがあり、それがインストールされてsshdいる場合(またはインストール可能な場合)、ssh他のホストと同様に仮想マシンに入ることができます。これはあなたが望むことを達成する最も簡単で最善の方法です。

関連情報