本家様 http://libvirt.org/
仮想マシン制御インターフェイスといっていいのか、QEMU、VMwareGSX/ESXiらの仮想化エンジンにアクセスして各種の制御が可能。
インストール †
まずは、制御インターフェイスのバックグランドプロセス(デーモン)を稼働させるユーザを追加します。
[root@c ~]# groupadd -r qemu
[root@c ~]# useradd -M -d /opt/qemu -l -s /sbin/nologin -r -g qemu -c QEMU qemu
次に、コンパイルに必要なライブラリ、追加ソフトウエアをインストールして、libvirtを作ります。
留意 CentOS7などの起動スクリプトが systemd を使用するなら configure の際に --with-init-script=systemd を追加する
[root@c ~]# yum install libxml2-devel device-mapper-devel libpciaccess-devel python-devel libnl-devel libxml2-python \
readline-devel ebtables dnsmasq dmidecode pm-utils libxslt xhtml1-dtds yajl-devel libssh2-devel libgcrypt-devel gnutls-devel
/* [内訳]
readline-devel virshのコマンド補完向け
ebtables bridge向け
dnsmasq forwardとdhcp向け
dmidecode BIOS情報の提供?
pm-utils 電源管理。仮想マシンの電源管理?
+hal,dbus haldaemon[hal],messagebus[dbus]デーモン追加
libxslt warning: failed to load external entity "404.html.tmp"と表示されるので
*/
[root@c ~]# cd /opt/src/
[root@c src]# curl -O https://libvirt.org/sources/libvirt-5.4.0.tar.xz
[root@c src]# xz -cd libvirt-5.4.0.tar.xz | tar xf - && cd libvirt-5.4.0
[root@c libvirt-5.4.0]# export PATH=/sbin:/bin:/usr/sbin:/usr/bin
[root@c libvirt-5.4.0]# ./configure --localstatedir=/var --sysconfdir=/etc \
--prefix=/opt/libvirt-5.4.0 --with-qemu-user=qemu --with-qemu-group=qemu \
--with-init-script=systemd
[root@c libvirt-5.4.0]# make && make check
[root@c libvirt-5.4.0]# make install
[root@c libvirt-5.4.0]#
[root@c libvirt-5.4.0]# (cd /opt && rm -f libvirt && ln -sv libvirt-5.4.0 libvirt)
`libvirt' -> `libvirt-5.4.0'
[root@c libvirt-5.4.0]# (cd /usr/bin; ln -sv /opt/libvirt/bin/* .)
`./virsh' -> `/opt/libvirt/bin/virsh'
`./virt-admin' -> `/opt/libvirt/bin/virt-admin'
`./virt-host-validate' -> `/opt/libvirt/bin/virt-host-validate'
`./virt-login-shell' -> `/opt/libvirt/bin/virt-login-shell'
`./virt-pki-validate' -> `/opt/libvirt/bin/virt-pki-validate'
`./virt-xml-validate' -> `/opt/libvirt/bin/virt-xml-validat
[root@c libvirt-5.4.0]# (cd /usr/sbin; ln -sv /opt/libvirt/sbin/* .)
`./libvirtd' -> `/opt/libvirt/sbin/libvirtd'
`./virtlockd' -> `/opt/libvirt/sbin/virtlockd'
`./virtlogd' -> `/opt/libvirt/sbin/virtlogd'
[root@c libvirt-5.4.0]# (cd /usr/libexec; ln -sv /opt/libvirt/libexec/* .)
`./libvirt-guests.sh' -> `/opt/libvirt/libexec/libvirt-guests.sh'
`./libvirt_iohelper' -> `/opt/libvirt/libexec/libvirt_iohelper'
`./libvirt_leaseshelper' -> `/opt/libvirt/libexec/libvirt_leaseshelper'
`./libvirt_lxc' -> `/opt/libvirt/libexec/libvirt_lxc'
`./libvirt_parthelper' -> `/opt/libvirt/libexec/libvirt_parthelper'
残念ながら自動起動スクリプト(libvirtd.service)はインストールしてくれないみたい。
なので手動でコピーします。コピー場所は「/etc/systemd/system」とする。
[root@c libvirt-5.4.0]# cp ./src/libvirtd.service /etc/systemd/system/
[root@c libvirt-5.4.0]# cp ./tools/libvirt-guests.service /etc/systemd/system/
[root@c libvirt-5.4.0]# cp ./src/virtlockd.service /etc/systemd/system/
[root@c libvirt-5.4.0]# cp ./src/virtlogd.service /etc/systemd/system/
[root@c libvirt-5.4.0]# cp ./src/virtlockd.socket /etc/systemd/system/
[root@c libvirt-5.4.0]# cp ./src/virtlogd.socket /etc/systemd/system/
その後にlibvirtを稼動させます。
[root@c ~]# systemctl daemon-reload
[root@c ~]# systemctl enable libvirtd.service virtlockd.socket virtlogd.socket
[root@c ~]# systemctl start libvirtd.service
これでlibvirtは完成しました。
virt-managerのインストール †
次にvirt-managerをインストールします。 本家https://virt-manager.org/
libvirtを管理して、仮想マシン向けのリソース管理や仮想マシンの作成を行います。
っで、インストールの前にlibvirt-pythonが必要なのでこれをインストールします。
[root@c ~]# cd /opt/src/
[root@c src]# curl -O https://libvirt.org/sources/python/libvirt-python-5.4.0.tar.gz
[root@c src]# gzip -cd libvirt-python-5.4.0.tar.gz | tar xf - && cd libvirt-python-5.4.0
[root@c libvirt-python-5.4.0]#
[root@c libvirt-python-5.4.0]# export PATH=/sbin:/bin:/usr/sbin:/usr/bin
[root@c libvirt-python-5.4.0]# export PKG_CONFIG_PATH=/opt/libvirt/lib/pkgconfig
[root@c libvirt-python-5.4.0]# python setup.py build
[root@c libvirt-python-5.4.0]# python setup.py install --prefix=/opt/local
*コンパイルオプションは、python setup.py --help-commandで確認可能
これで「/opt/local/lib64/python2.7/site-packages」にlibvirt.pyらがインストールされる。
既存のpython関係と連携するためにも
export PYTHONPATH=/usr/lib64/python2.7/site-packages:/opt/local/lib64/python2.7/site-packages
としたほうがいいかも。
次に、virt-manager本体をインストールします
[root@e ~]# cd /opt/src/
[root@c src]# curl -O https://releases.pagure.org/virt-manager/virt-manager-1.5.1.tar.gz
[root@e src]# gzip -cd virt-manager-1.5.1.tar.gz | tar xf - && cd virt-manager-1.5.1
[root@c virt-manager-1.5.1]# export PATH=/sbin:/bin:/usr/sbin:/usr/bin
[root@c virt-manager-1.5.1]# python setup.py configure --prefix=/opt/local
[root@c virt-manager-1.5.1]# python setup.py build
[root@c virt-manager-1.5.1]# python setup.py install
*コンパイルオプションは、python setup.py --help-commandで確認可能
他、libvirt-python、virt-managerのコンパイルに関係なく起動時にOS提供のパッケージで下記が必要になります。
[root@c ~]# yum install python-ipaddr python-requests vte3 libvirt-glib
virt-managerを起動 †
インストールした virt-manager を起動してみる。
*最低限、ディスクトップ環境でOSができてることが必要です。参考CentOS/memo#tc521664
[root@c ~]# export PATH=/opt/local/bin:$PATH
[root@c ~]# export PYTHONPATH=/opt/local/lib64/python2.7/site-packages
[root@c ~]# export LD_LIBRARY_PATH=/opt/libvirt/lib:/opt/local/lib
[root@c ~]# virt-manager
画面

*「/opt/libvirt/lib」と「/opt/local/lib」は「/etc/ld.so.conf.d/libvirt.conf」に入れてldconfigでいいのかも
あと、PYTHONPATHは既存を合わせて、「export PYTHONPATH=/usr/lib64/python2.7/site-packages:/opt/local/lib64/python2.7/site-packages」として .bashrcとかに加えたほうがいいかも
virt-viewer †
[root@c ~]# cd /opt/src/
[root@c src]# yum install gtk-vnc2-devel gtk3-devel
[root@c src]# curl -O https://releases.pagure.org/virt-viewer/virt-viewer-8.0.tar.gz
[root@c src]# gzip -cd virt-viewer-8.0.tar.gz | tar xf - && cd virt-viewer-8.0
[root@c virt-viewer-6.0]#
[root@c virt-viewer-6.0]# export PKG_CONFIG_PATH=/usr/lib64:/opt/libvirt/lib
[root@c virt-viewer-6.0]# ./configure --prefix=/opt/local
[root@c virt-viewer-6.0]# make && make install
ネットワーク †
libvirtデーモンを起動すると自動的にNATを利用したプライベートネットワークが用意されてしまう。
それを防ぐために
[root@c ~]# virsh net-destroy default
[root@c ~]# virsh net-autostart default --disable
コマンドで確認 †
ちょいと動作テスト
[root@c ~]# virsh
virsh # version
コンパイル時に使用したライブラリ: libvirt 3.7.0
使用中のライブラリ: libvirt 3.7.0
使用中の API: QEMU 3.7.0
実行中のハイパーバイザー: QEMU 2.10.0
virsh #
virsh # cpu-models x86_64
486
pentium
pentium2
(略)
virsh # nodeinfo
CPU モデル: x86_64
CPU: 4
CPU 周波数: 480 MHz
CPU ソケット数: 1
ソケットあたりのコア数: 4
コアあたりのスレッド数: 1
NUMA セル数: 1
メモリー容量: 8094196 KiB
virsh #