« virt-manager 超入門! in 2018(その2) | トップページ | Debian で Debian の「インストールUSB」を作る »

2018年8月18日 (土)

virt-manager 超入門! in 2018

最近は右も左も「仮想化」な時代になった感じですね。
8年前、コマンド打ちながらやっとこさ動作させていたのが、いつのまにかボタンひとつで操作するのが当たり前のようになっていて、時代を感じる今日この頃です。
 
さて、今回扱う仮想化ソフトは「virt-manager」です。
 
064__1

非常に使いやすい仮想化ソフトの一種なんですが、この「virt-manager」とセットでよくでてくる基本的なキーワードがあるので、まずそこの確認から。
 
 
01_qemu_3

★ 仮想化の大黒柱「QEMU」  
ハードのエミュレータです。
PS/2 マウスやキーボード、HDD、CD-ROM、FDD、VGA、サウンドカードなどの周辺機器、NICやシリアルポート、PCI、USB等をエミュレート(模倣)します。
 
もちろん、CPUのエミュレートもサポートされています・・・が、ソフトのみでCPUをエミュレートしようとすると、どうしても遅くなってしまうんですね。
 
で、実行速度を少しでも上げるためにkqemuっていうカーネルモジュールが開発されていたんですが、KVMなるものが現れて、「kqemuよりもこっちの方がいいよね」ってことで、kqemuは途中で終了し、ここらへんの部分はKVMへ移行しました。
 
 
02_kvm_2

★ 高速化のキモ「KVM」  
アナウンス後、わずか2ヶ月で Linux のカーネルにマージされたと噂されるハイパーバイザ。立ち位置的に、Xenと近い模様。
 
実CPUの仮想化支援機能である Intel VT(vmx)AMD-V(svm) を利用する、というか、これが無いと使用できない。
 
ようは、CPU等の仮想化をソフトだけでやるんでは無くて、実のCPUの力(仮想化支援機能)も借りて、実行速度をあげましょう、というシロモノ。
 
QEMU単体でやるのと、KVMとセットでやるのでは実行速度が全然違います。
セットで使うようなもんなので、よく「QEMU / KVM」みたいな感じで表記されているのだと思います。
 
ということで、KVMは高速化のキモとなるんですが、何度も言うとおりCPUの「仮想化支援機能」が必須です。これが無いCPUでは利用できません。
 
10年前以上のCPUであれば、利用はまず無理でしょう。CPUに仮想化支援機能が入ってません。
まぁ、それくらい昔のPCであれば、全体的なスペックから考えて仮想化は厳しいとは思いますが。
 
 
 
03_virtm_3

★ 仮想化を身近な存在に〜「virt-manager」  
ようは「QEMU/KVM」のフロントエンドです。
素で「QEMU/KVM」を使う場合、扱いにくいんですが、「virt-manager」はGUIで直感的に管理・運用ができるようなってます。
 
051__2

(素でQEMUを使ってみた場合の図:コマンド打ちで大変だった・・・)
 
 
さて、当然のことながら「virt-manager」単体では何もできません。
「QEMU」や「KVM」などの仮想化ソフトの存在があって、初めて機能します。
 
 
  
04_libvirt

★「KVM」と「virt-manager」の橋渡し〜「libvirt」 
libvirtは、仮想化管理用の共通APIを提供するもの。
 
元々はXenを制御するために作られたライブラリらしいのですが、それが発展してKVMやVMwareなども制御できるようになったとのこと。
 
で、「KVM」と「virt-manager」の間を橋渡ししています。
 
Wikipedia にある図がそれを端的に示していると思います。
(出典:https://ja.wikipedia.org/wiki/Libvirt)
 
05_libvirt_support_2

仮想マシンソフトごとに異なる制御プロトコルを使った場合、それぞれのソフトの流用性は低くなりますが、libvirtが抽象化された制御方法を提供することで、それぞれの機能追加を容易に行うことができるようになったりします。
 
かつて Debian 7 で virt-manager がうまく動かなかったとき、libvirt のバージョンが古すぎたのが原因だったようで、libvirt の重要性を意識するようになりました。
 
大げさかもしれませんが、libvirt の存在のおかげで、virt-managerが成り立っているようなものかもしれません。
 
 
おまけ
★ コマンドで操作するで〜「virsh」 
virsh は仮想マシンソフトを扱う上で利用することの出来る対話型のシェルプログラム。「virt-manager」はGUIで仮想マシンを管理・運用するのに対し、「virsh」はCUIで操作します。
さらなるレベルアップを考えているなら、「virsh」にも手を付けてよいかと思います。
 
 
 
【〜実践準備編〜】 
 
さて、話が長くなりましたが、とりあえず実践準備編です。
 
virt-manager(QEMU/KVM)を使用するにあたって、いろいろと条件があるので、まずそこの確認をば。
要件、というか、必要なもの一覧です。

・virt-manager を利用するためのOS(ホストOS)
  解説では「Debian9 KDE」を使ってます。
仮想化支援機能をサポートするCPU 
マザーボード上でCPUの仮想化支援機能有効化されていること

繰り返しになりますが、ハード的な制約として仮想化支援機能をサポートしないCPUは不可です。
仮想化支援機能の名称は、
Intel系のCPUの場合は、「Intel VT(vmx)」、
AMD系のCPUの場合は、「AMD-V(svm)」になるかと思います。
調べ方としては、CPUの型番でネットで検索して、調べる、もしくはLinuxが動いている場合は、「/proc/cpuinfo」を調べればわかります。
  

$ cat /proc/cpuinfo

001_1_3

この中に「vmx」または「svm」のキーワードがあればOK。
ただ、素で探すのはウォーリーを探せな感じで大変なので、grep使って楽に探しましょう。
 
Intel系のCPUなら、

$ cat /proc/cpuinfo | grep vmx --color=auto

AMD系のCPUなら、

$ cat /proc/cpuinfo | grep svm --color=auto

どっちかわからん。めんどくせぇから両方で検索! な人なら、

$ cat /proc/cpuinfo | grep -E "(vmx|svm)" --color=auto

と打つと良いです。
002_1_2

対応していれば、色付きで「vmx」または「svm」が含まれる行が出てきます。
もし未対応ならば、何の行も出力されません。
 
さて、CPUはこれに対応しているとして、今度はマザーボードです。
マザーボードによってはこれが無効化されている場合があるので、「Bios/UEFI」上でこれを確認します。
 
011

(上記はAMD系:svm のケース)
 
「無効(Disabled)」になっている場合は、「有効(Enabled)」にすれば良いです。
 

「Bios/UEFI」って何やねん、という方は
Linux のインストール(その3)」の
そもそも「Bios/UEFI」って何やねん? 
を参考に。

この条件が揃って、やっとvirt-manager(QEMU/KVM)を利用できます。
 

※ カーネルのKVMモジュールが有効になっているかの確認も必要なケースがあるようですが、近年のデストリではそんなに心配しなくても良さげです。

 

さて、上記の条件が揃ったと仮定して、話を続けます。

では、virt-managerのインストールに進みましょう。
 
 
 
【実践編:仮想化ソフトの導入】  
  ★ virt-manager のインストール 

作業環境は「Debian9 KDE」になります。

コンソールの場合は、

# apt install virt-manager

で終了。

001_1

Apper でのインストールは下図。
(Apper って何な方は「KDE パッケージ管理ソフト Apper」をどうぞ。)

003_1

以上で終了です。

Debian9 KDE の場合、これで QEMU、KVM、libvirt 等、必要なパッケージがすべて入ります。

ちなみに、このインストールが終わったら、一度PCを再起動させた方が良いです。

再起動せずに、Virt-manager を使おうとすると、使用中に次のようなエラーに出くわすかと思います。

006_e_

ということで、再起動を忘れずに。
 
以上、インストール編でした。
なんか、あっけないですね。
 
次は virt-manager の仮想マシン作成・ゲストOSのインストールの準備編です。 
 
virt-manager 超入門! in 2018(その2)」に続きます。
 
 
 
 
 
 
【外部サイト】
 ・(FreeBSD) KQEMUは終了ってことらしい 
 ・第4のハイパーバイザー「KVM」開発者が語る、Xenとの大きな違い 
 ・エンジニアなら知っておきたい仮想マシンのしくみ  
 ・Linux標準の仮想化技術「KVM」の仕組み (1/2)  
 ・スクリプトで仮想化管理・Virsh 
 ・libvirt探訪(基礎編) 
 ・libvirtを忘れずに 
 ・今知っておきたい仮想化時代のCPU技術  
 
 ・Kernel Virtual Machine(kvm)のセットアップ 
 ・Arch Linux:KVM カーネルのサポート  
 
 ・QEMUのなかみ(QEMU internals) part1 
 ・KVMのなかみ(KVM internals) 
  ・カーネルエクスプロイト入門 - Linuxカーネル解析の基礎 -  
 
 ・virtioによる準仮想化デバイス その1「virtioの概要とVirtio PCI」 
 ・Virtioについてのまとめ 



 
 
 

« virt-manager 超入門! in 2018(その2) | トップページ | Debian で Debian の「インストールUSB」を作る »

virt-manager」カテゴリの記事

2021年5月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
無料ブログはココログ