えんでぃの技術ブログ

えんでぃの技術ブログ

ネットワークエンジニアの視点で、IT系のお役立ち情報を提供する技術ブログです。

Virtual Machine Manager GUI によるKVM操作

Virtual Machine Manager logo

前の記事

virsh, Cockpit によるVM操作環境のセットアップ手順を紹介しました。

endy-tech.hatenablog.jp

endy-tech.hatenablog.jp

お伝えしたいこと

Virtual Machine Manager (virt-manager) のインストールと、画面についてざっくり紹介します。

前提

本記事で紹介する手順は、以下の記事でKVM, libvirt の初期設定が完了していることが前提となります。

endy-tech.hatenablog.jp

また、Virtual Machine Managerの導入にはGUI環境 (※) が必須です。
GUI環境がない場合は、Cockpit の利用をご検討ください。
(※) デスクトップ環境、またはWindow Manager

参考までに、過去記事を2つ貼っておきます。

↓デスクトップ環境の一例として、Cinnamon Desktop のインストール手順です。
endy-tech.hatenablog.jp

↓Cockpit のインストール手順と画面紹介です。
endy-tech.hatenablog.jp

Virtual Machine Manager とは

デスクトップ環境、またはWindow Manager 上で動作する、libvirtベースのGUIツールです。
本記事ではQEMU+KVMGUIから操作する用途に焦点を当てて紹介します。

Virtual Machine Manager のインストール

インストールコマンドはFedoraを前提にしています。
別のディストリビューションをお使いの方は読み替えてください。

以下のコマンドで Virtual Machine Manager をインストールします。

sudo dnf install virt-manager

まだの方は、コンソールログインするために Virtual Machine Viewerもインストールしましょう。

sudo dnf install virt-viewer

Virtual Machine Manager の起動

GUIのメニューから Virtual Machine Managerで検索して実行するか、CLIから virt-manager を実行することで起動します。

URIの指定

初回起動時、Virtual Machine Manager はデフォルトで qemu:///system に接続します。
変更したい場合は、File > Add connectionから新しいコネクションとしてqemu:///sessionなどを追加します。
その後、必要に応じて下図の赤枠部分を右クリックして、既存のコネクションを削除します。

virt-manager1

過去の記事でお伝えしたとおり、私としてはqemu:///systemをおすすめします。

XML編集の有効化

Virtual Machine Manager では、VM や pool 構成のXML定義ファイルを確認できます (≒virsh edit)
デフォルトでは、XMLの中身を見るだけで編集はできません。

しかし、以下の設定を変更することでVirtual Machine Manager から XML を編集できるようになります。

Edit > Preferecnces > Generalタブ > Enable XML editingのチェックをいれる

VMの作成

基本的には、RedHat社のドキュメント通りの手順です。

access.redhat.com

ここではポイントのみ記載します。

  • VM作成を開始するには、以下の赤枠部分を選択します

virt-manager2

  • インストールメディアを選択します
  • ISOイメージファイルを選択します (virt-install --cdrom) OSに応じたハードウェアの最適化オプションを指定します (virt-install --os-variant)
    • 例えば、fedora33などを指定します
    • わからない場合はgenericでも動作しますが、性能が大幅に下がります
    • 指定可能なキーワードは、 osinfo-query os コマンドで確認できます
  • メモリサイズ、CPUコア数を指定します
  • ディスクサイズを指定します
    • この画面でManageを選択すると、pool の管理画面に遷移します
    • 本来の目的である「既存のディスクの選択」に加え、pool の作成/削除/起動/停止が可能です
    • virsh pool-*相当の操作が可能なイメージです
  • 最後にVMの名前と仮想ネットワークを決めます

VMへのコンソールログイン

Virtual Machine Manager自体にコンソール画面を出す機能がありますが、解像度に上限があります。

Virtual Machine Viewer (virt-viewer) であれば任意の解像度に拡大/縮小できて便利なので、代わりにこちらを使いましょう。

Virtual Machine Viewerを起動する方法は、こちらの過去記事を参照してください。

コンソールログイン後のマウスカーソルの開放

コンソール画面をクリックすると、マウスカーソルがVMの中に移動します。
Left Ctrl + Left Alt でマウスカーソルが開放され、ホストOS側の制御に戻ります。

VMのクローン

トップ画面でVMを右クリックしてクローンできます。

virt-manager5

スナップショットの管理

VMをダブルクリックして開いた後の画面で、スナップショットの作成・削除・ロールバックも可能です。

virt-manager6

(参考) ホストに挿したUSBのマウント

この操作はCockpitではまだ対応しておらず、Virtual Machine Manager や virt-xml コマンドで実施します。

virt-xmlコマンドについては未検証ですが、下記URLや、本セクションの末尾に貼ったXMLが参考になると思います。
ただこのやり方だとXMLファイルを作る必要があるようなので、正直GUIの方が楽だと思います。

外付けHDDをVMにマウントする手順を例に紹介します。
事前に、前のセクションで紹介したXML編集の有効化設定を実施しておく必要があります。
また、操作対象のVMは電源を落としておく必要があります。

まずは、接続したいホスト側デバイスの情報を確認します。
事前に外付けHDDが東芝製とわかっているので、マークをつけた行だとあたりがつきます。
Canvio Deskググると、これが外付けHDDの製品名だとわかりました。
このデバイスは、ベンダーIDが0x0480、製品IDが0xd011だとわかります。

$ lsusb

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0480:d011 Toshiba America Inc Canvio Desk  #★
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 8087:0026 Intel Corp. 
Bus 001 Device 006: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 005: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 004: ID 1ea7:0066 SHARKOON Technologies GmbH [Mediatrack Edge Mini Keyboard]
Bus 001 Device 002: ID 214b:7250 Huasheng Electronics USB2.0 HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

別の方法として、usb-devicesコマンドもあります。
出力が長いのが難点ですが、External USB 3.0という私にとっては見覚えのある表記が良いヒントになりました。
また、同じ製品を複数接続している場合はSerialNumberが参考になると思います。

$ usb-devices

# (省略)
T:  Bus=02 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  2 Spd=5000 MxCh= 0
D:  Ver= 3.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 9 #Cfgs=  1
P:  Vendor=0480 ProdID=d011 Rev=03.16
S:  Manufacturer=TOSHIBA
S:  Product=External USB 3.0
S:  SerialNumber=20180204010442
C:  #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=8mA
I:  If#=0x0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usbfs
# (省略)

さて、USB情報が確認できたところで、Virtual Machine Manager の操作に移ります。
トップ画面でVMを選択してからOpenボタンを選択し、VMの詳細画面を開きます (またはVM名をダブルクリック)。

virt-manager3

続いて、青いアイコンの「i」マークから、ハードウェアの詳細構成を表示します。
そして左下の「Add Hardware」を選択します。

virt-manager7

左のメニューからUSB Host Deviceを選択し、DetailsタブからVMに搭載したいUSBデバイスを選択します。

virt-manager8

XMLのタブに移動します。
ここでVendor IDとProduct ID が0x0000のままだと、設定確定の際にエラーになってしまいます。
また、デタラメな値を入れてもVM起動時にエラーになりました。
先ほどlsusbコマンドで調べた値をきちんと入力してから設定を確定します。

virt-manager9

設定を確定すると、以下の通りデバイスが追加されました。
USBデバイスは同じ画面の右下にあるRemoveボタンでも外せると思いますが、VM側で「USBの取り外し」ボタンを押すことでも登録解除されていました。

virt-manager10

virt-manager11

(参考) Virtual Machine Manager は必要か?

RHEL8においてはVirtual Machine Manager よりも Cockpit が推奨されているものの、Cockpitの機能はまだ十分ではありません。
Cockpit は使い勝手に優れており将来性もありますが、GUIでより多くの操作に対応するには、現状ではVirtual Machine Managerも必要です。

とはいえ、Virtual Machine Manager を導入するにはデスクトップ環境が必要となります。
デスクトップ環境がない場合には、Cockpit と virsh の併用が基本形となります。

繰り返しになりますが、できることの範囲はvirsh > Virtual Machine Manager > Cockpit になります。
使い勝手の良さは Cockpit > Virtual Machine Manager > virshだと思います。
もし試せる環境があるのであれば、全てのツールを触ってみてから、自分に合う組み合わせを探っていただくのが良いでしょう。

私は全部を使い分けています。
基本的にCockpit を使いますが、できないことが出てきたらVirtual Machine Manager, virsh の順番に試していくのが基本です。

まとめ

Virtual Machine Manager のインストール方法と、画面イメージを中心に紹介しました。
Cockpit の方がモダンな見た目ではあるものの、Virtual Machine Manager の方がサポートしている機能はまだ多い状況です。

私個人としては、Cockpit を中心としつつ足りない機能を CLI や Virtual Machine Manager で補うのが今のところ一番好みの使い方です。
皆さんのオススメの使い方があれば、是非コメントやTwitterで教えてください。

Linux PC 構築関連リンク集

endy-tech.hatenablog.jp

次の記事

VM作成/削除、CMROM挿入、起動順序設定などの基本操作のまとめは、以下の記事を参照ください。
CLI/GUIの両方についてまとめてあります。

endy-tech.hatenablog.jp