第5章 基本的な VM ゲスト の管理

目次

5.1. VM ゲスト の一覧表示
5.2. グラフィカルコンソールの表示
5.3. VM ゲスト の状態変更: 起動, 停止, 一時停止
5.4. VM ゲスト の保存と復元
5.5. VM ゲスト の削除

VM ゲスト の起動や停止など、基本的な管理作業は Virtual Machine Manager のようなグラフィカルな アプリケーションから行なうことができるほか、 virsh を利用して コマンドラインが行なうこともできます。 VNC を介したグラフィカルコンソールへの 接続は、お使いのマシンでグラフィカルユーザインターフェイスを利用している場合に のみ可能です。

5.1. VM ゲスト の一覧表示

VM ゲスト の一覧を表示するには、まず VM ホストサーバ に接続する必要があります。 VM ホストサーバ 自身で管理ツールを起動している場合は、既に接続が完了しています。 リモートから操作している場合は、 6.3項 「VM ホストサーバ への接続」 にある手順をお読みください。

5.1.1. Virtual Machine Manager を利用した VM ゲスト の一覧表示

Virtual Machine Manager のメインウインドウには、接続中の VM ホストサーバ で定義されているすべての VM ゲスト が表示されています。それぞれの VM ゲスト にはマシンの名前のほか、 その状態 (Running, Paused, または Shutoff) がアイコンとテキストの両方で表示され、 CPU の使用率の表示バーが併記されます。

5.1.2. virsh を利用した VM ゲスト の一覧表示

VM ゲスト の一覧を表示するには、 virsh list コマンドを実行します:

localhost 上で動作しているゲストの一覧
virsh -c qemu:///system list
TLS 接続を利用した、リモートの wilber で動作する実行中および停止中のゲスト一覧
virsh -c qemu+tls://wilber@mercury.example.com/system list --all
SSH トンネルを利用した、リモートの tux で動作する実行中および停止中のゲスト一覧
virsh -c qemu+ssh://tux@mercury.example.com/system list --inactive

5.2. グラフィカルコンソールの表示

VM ゲスト のグラフィカルコンソールを開くことで、実際のマシンと同様に VNC 経由で マシンに接続することができるようになります。認証が必要な VNC サーバにアクセス している場合は、ユーザ名 (設定されていれば) とパスワードをそれぞれ尋ねられます。

なお、 VNC コンソールのウインドウ内でマウスのボタンを押すと、マウスカーソルは 捕獲された 状態になり、コンソールの外側には移動できなくなります。 捕獲された状態を解除するには、 Alt+Ctrl を押してください。

[Tip]シームレスなカーソルの移動について

カーソルがキャプチャ (捕捉) されてしまうことを防ぎ、かつゲストとホストの 間でシームレスにカーソルを移動できるようにするには、 VM ゲスト にタブレット 入力デバイスを追加します。詳しくは 8.1項 「シームレスなカーソル移動とカーソル移動の同期」 をお読みください。

また、 Ctrl+Alt+Del などの特定のキー入力については ホストシステム側で解釈され、 VM ゲスト 側に渡すことはできません。

VM ゲスト に対してこのようなキー入力を渡したい場合は、 VNC ウインドウから Send Key メニューを開き、送信したいキー入力を選択して ください。 Send Key のメニューは、 Virtual Machine Manager と virt-viewer を使用した場合にのみ利用できます。

[Note]対応する VNC ビューア

一般的にはすべての VNC ビューアが VM ゲスト に接続できますが、 SASL 認証や TLS/SSL での接続を行なっている場合には選択肢が限られたものになります。 一般的な VNC ビューアとしては tightvnctigervnc などがありますが、いずれも SASL 認証や TLS/SSL 接続には対応していません。 Virtual Machine Manager と virt-viewer 以外で対応可能なものは、 vinagre だけしかありません。

5.2.1. Virtual Machine Manager を利用したグラフィカルコンソールの表示

  1. Virtual Machine Manager 内で VM ゲスト の項目を選択し、マウスの右ボタンを押します。

  2. ポップアップメニューから Open を選択します。

5.2.2. virt-viewer を利用したグラフィカルコンソールの表示

virt-viewer はシンプルな VNC ビューアで、 VM ゲスト の コンソールを表示するための追加機能が備わっています。たとえば本ソフトウエア では 待機 モードに対応していて、 VNC に接続する前に VM ゲスト が起動するのを待つことができます。また、 VM ゲスト が再起動した ような場合でも、自動的に再接続する機能が備わっています。

virt-viewer は VM ゲスト を名前で指定できるほか、 ID や UUID でも指定することができます。 virsh list --all と入力することで一覧を表示できます。

起動中や一時停止中のゲストに接続する場合は ID, UUID, 名前のいずれかを指定して 接続することができます。一方、シャットダウンされている VM ゲスト には ID が 付与されていないため、 UUID または名前で接続します。

ID 8 のゲストにローカル接続する
virt-viewer -c qemu:///system 8
現時点では動作していないゲスト sles11 に対して、ゲストが起動され次第接続する
virt-viewer -c qemu:///system --wait sles11

--wait オプションを指定すると、 VM ゲスト がその時点で 動作していなくても、その接続を行なうことができるようなるまで待機します。 ゲストが起動すると、ビューアが起動します。

ssh を利用したリモート接続
virt-viewer -c qemu+ssh://tux@mercury.example.com/system -w sles11

詳しくは virt-viewer --help で表示されるヘルプか、もしくは man 1 virt-viewer で表示されるマニュアルページをお読みください。

5.3. VM ゲスト の状態変更: 起動, 停止, 一時停止

VM ゲスト の起動/停止/一時停止は、 Virtual Machine Manager または virsh から行なうことができます。また、 VM ホストサーバ の起動時に自動的に VM ゲスト を起動 するように設定することもできます。

VM ゲスト をシャットダウンする場合、シャットダウン作業をグレースフル (graceful, "上品な" という意味) モードまたは強制モードで行なうことができます。 強制モードは通常のマシンで言うところの電源プラグを引き抜く行為と同じ意味で、他の シャットダウン方法が存在しない場合にのみ行なうべきものです。また、強制シャット ダウンはファイルシステムの破壊をもたらす場合があるほか、 VM ゲスト 上のデータを 失う可能性もあります。

[Tip]グレースフル (graceful) シャットダウン

グレースフルシャットダウンを実現できるようにするためには、 VM ゲスト 側を ACPI に対応させなければなりません。 vm-install や Virtual Machine Manager でゲストを 作成した場合には、 ACPI が利用できるようになっているはずです。 ACPI に対応できて いるかどうか、 Virtual Machine Manager から確認するには下記の手順を実施します:

まずは Virtual Machine Manager 内で確認を行ないたい VM ゲスト の項目を選び、ダブルクリックします。 あとはメニューから View+Details を選択し、 Overview+Machine Settings を選択します。表示された画面で、 ACPI がチェックされていれば対応済みです。

ゲスト側のオペレーティングシステムにもよりますが、 ACPI を有効にするだけでは 足りない場合があります。そのため、本番運用をはじめる前に、ゲスト側のシャット ダウンと再起動がそれぞれ正しく動作するかどうか、事前に確かめておくことを強く お勧めします。たとえば openSUSE や SUSE Linux Enterprise Desktop の場合は、シャットダウンや 再起動を行なうのに PolKit 認証が必要になる場合がありますが、このポリシーが 全ての VM ゲスト で無効化されていることをご確認ください。

また、 Windows XP/Server 2003 のゲストをインストールする際に ACPI が有効化されて いる場合、 VM ゲスト の設定だけの有効化では不十分です。詳しくは下記の記事を お読みください:

http://support.microsoft.com/kb/314088/
http://support.microsoft.com/?kbid=309283

グレースフルシャットダウンは、 VM ゲスト の設定だけでなく、もちろんゲスト側の オペレーティングシステムで有効化されていなければなりません。

5.3.1. Virtual Machine Manager を利用した VM ゲスト の状態変更

VM ゲスト の状態変更は、 Virtual Machine Manager のメインウインドウから行なうことができるほか、 VNC ウインドウからも変更することができます。

手順5.1 Virtual Machine Manager ウインドウからの状態変更

  1. VM ゲスト の項目を選び、マウスの右ボタンを押します。

  2. 表示されたポップアップウインドウから、 Run, Pause または Shutdown options 内にあるいずれかの項目を 選択します。

手順5.2 VNC ウインドウからの状態変更

  1. 5.2.1項 「Virtual Machine Manager を利用したグラフィカルコンソールの表示」 に書かれた手順に従い、 VNC ウインドウを開きます。

  2. ツールバー、もしくは Virtual Machine のメニューから、 Run, Pause または Shutdown options 内にあるいずれかの項目を選択します。

5.3.1.1. VM ゲスト の自動起動

VM ホストサーバ の起動時にゲスト側を自動的に起動するようにする設定は、既定では 有効になっていません。また、この機能はそれぞれの VM ゲスト で個別に有効化する 必要があります。一括で有効化する方法はありません。

  1. Virtual Machine Manager 内から設定したい VM ゲスト を選択し、ダブルクリックしてコンソールを 開きます。

  2. View+Details を選択し、 VM ゲスト の設定ウインドウを開きます。

  3. Boot Options を選択し、 Start virtual machine on host boot up にチェックを 入れます。

  4. あとは Apply を押せば、設定を保存することができます。

5.3.2. virsh を利用した VM ゲスト の状態変更

下記の例では、 sles11 という名前の VM ゲスト の状態を 変更しています。

起動
virsh -c qemu:///system start sles11
一時停止
virsh -c qemu:///system suspend sles11
再起動
virsh -c qemu:///system reboot sles11
グレースフルシャットダウン
virsh -c qemu:///system shutdown sles11
強制シャットダウン
virsh -c qemu:///system destroy sles11
自動起動の有効化
virsh -c qemu:///system autostart sles11
自動起動の無効化
virsh -c qemu:///system autostart --disable sles11

5.4. VM ゲスト の保存と復元

VM ゲスト を保存すると、ゲスト内のメモリ内にある情報を全て保存することができます。 実際のコンピュータに置き換えると、コンピュータの ハイバネーション と似たようなことを行なうことになります。保存された VM ゲスト は、その保存された 状態に素早く復元することができます。

いったん保存作業を行なうと VM ゲスト は一時停止状態になり、メモリ上に保持されて いた情報をディスクに書き込んでから停止状態に移行します。この操作では VM ゲスト の仮想ディスクのコピーは作成されません。また、仮想マシンを保存するのにかかる 時間は割り当てたメモリ量に依存して決まります。なお、 VM ゲスト の保存が完了する と、 VM ゲスト が確保していたメモリは VM ホストサーバ 側に返却されます。

一方、復元操作はメモリ状態を保存していたファイルを VM ゲスト に読み込んで起動する 動作を行ないます。ゲストは起動処理を行なうことはなく、保存された状態に戻ることに なります。実際のコンピュータに置き換えると、ハイバネーションからの復元処理と似た ようなことを行なうことになります。

VM ゲスト は、そのメモリ状態をファイルに保存するため、保存先のパーティションに 十分な領域が存在することをご確認ください。ゲスト側で下記のコマンドを実行すると、 どれだけの領域が必要になるのかを概算で見積もることができます:

free -m | awk '/^Mem:/ {print $3}'
[Warning]

保存処理が完了したあとは、保存した VM ゲスト を起動したり開始したりしては なりません。これを行なってしまうと、マシンの仮想ディスクと保存されたメモリ状態の 同期が取れなくなってしまい、ゲストの復元時に致命的なエラーが発生する結果に なります。

5.4.1. Virtual Machine Manager を利用した保存と復元

手順5.3 VM ゲスト の保存

  1. VM ゲスト に対する VNC 接続ウインドウを開きます。また、ゲストが動作している ことを確認します。

  2. Virtual Machine+Save を選択します。

  3. 保存先の場所とファイル名を選択します。

  4. Save を押します。ゲストの状態保存には、しばらく時間が 必要です。操作が完了した後は、 VM ゲスト は自動的にシャットダウン状態に なります。

手順5.4 VM ゲスト の復元

  1. Virtual Machine Manager を起動します。

  2. Alt+R を押すか、もしくは File+Restore Saved Machine を選択します。

  3. 復元したいファイルを選択し、 Open を押します。 ファイルが正しく読み込まれると、 VM ゲスト の動作が元に戻ります。

5.4.2. virsh を利用した保存と復元

起動中の VM ゲスト の保存は、 virsh save を実行することで行ないます。 このとき、保存先のファイル名を指定します。

opensuse11 という名前のゲストを保存する
virsh save opensuse11 /virtual/saves/opensuse11.vmsav
ID 37 のゲストを保存する
virsh save 37 /virtual/saves/opensuse11.vmsave

復元を行なうには、 virsh restore を実行します:

virsh restore /virtual/saves/opensuse11.vmsave

5.5. VM ゲスト の削除

VM ゲスト を削除すると、既定では XML 設定ファイルを削除します。接続されていた ストレージは既定では削除されないため、他の VM ゲスト を設定してそこから使用する ことができます。 Virtual Machine Manager を利用している場合は、ゲスト側のストレージファイルも 削除するようにすることができます。これにより、ゲストに対する全ての資材を削除する ことができます。

VM ゲスト を削除するには、まずシャットダウンを行ないます (手順については 5.3項 「VM ゲスト の状態変更: 起動, 停止, 一時停止」 をお読みください) 。 実行中のゲストを削除することはできません。

5.5.1. Virtual Machine Manager を利用した VM ゲスト の削除

  1. Virtual Machine Manager 内から、削除したい VM ゲスト の項目を選んでマウスの右ボタンを押します。

  2. 表示されたポップアップメニューから、 Delete を選択します。

  3. 確認ウインドウが表示されますので、さらに Delete を押すと VM ゲスト を恒久的に削除することができます。削除処理は取り消すことができない のでご注意ください。

    なお、ゲストの仮想ディスクについても同時に削除する場合は、 Delete Associated Storage Files にチェックを入れます。 この削除作業についても、取り消すことはできないのでご注意ください。

5.5.2. virsh を利用した VM ゲスト の削除

virsh を利用して VM ゲスト を削除するには、 virsh undefine VM 名 を実行します。ゲスト側の仮想ディスクを自動的に削除する機能は用意されていません。


openSUSE KVM を利用した仮想化 13.1