本家様 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 
/* [内訳]
   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 http://libvirt.org/sources/libvirt-3.7.0.tar.xz
 
[root@c src]# xz -cd libvirt-3.7.0.tar.xz | tar xf - && cd libvirt-3.7.0
 
[root@c libvirt-3.7.0]# export PATH=/sbin:/bin:/usr/sbin:/usr/bin
[root@c libvirt-3.7.0]# ./configure --localstatedir=/var --sysconfdir=/etc  \
                     --prefix=/opt/libvirt-3.7.0 --with-qemu-user=qemu --with-qemu-group=qemu \
                     --without-selinux --with-init-script=systemd
 
[root@c libvirt-3.7.0]# make && make check
[root@c libvirt-3.7.0]# make install
 
[root@c libvirt-3.7.0]#
[root@c libvirt-3.7.0]# (cd /opt && rm -f libvirt && ln -sv libvirt-3.7.0 libvirt)
`libvirt' -> `libvirt-3.7.0'
 
[root@c libvirt-3.7.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-3.7.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-3.7.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-3.7.0]# cp ./daemon/libvirtd.service        /etc/systemd/system/
[root@c libvirt-3.7.0]# cp ./tools/libvirt-guests.service   /etc/systemd/system/
[root@c libvirt-3.7.0]# cp ./src/virtlockd.service          /etc/systemd/system/
[root@c libvirt-3.7.0]# cp ./src/virtlogd.service           /etc/systemd/system/
 
[root@c libvirt-3.7.0]# cp ./src/virtlockd.socket           /etc/systemd/system/
[root@c libvirt-3.7.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は完成しました。

libvirt-glib

[root@c ~]# yum install gobject-introspection-devel
 
[root@c ~]# cd /opt/src/
[root@c src]# curl -O ftp://libvirt.org/libvirt/glib/libvirt-glib-1.0.0.tar.gz
[root@c src]# gzip -cd libvirt-glib-1.0.0.tar.gz | tar xf - && cd libvirt-glib-1.0.0
 
[root@c libvirt-glib-1.0.0]# export PATH=/sbin:/bin:/usr/sbin:/usr/bin
[root@c libvirt-glib-1.0.0]# export PKG_CONFIG_PATH=/opt/libvirt/lib/pkgconfig
[root@c libvirt-glib-1.0.0]# unset PYTHONPATH
 
[root@c libvirt-glib-1.0.0]# ./configure --prefix=/opt/local
[root@c libvirt-glib-1.0.0]# make && make cehck && make install

virt-managerのインストール

次にvirt-managerをインストールします。 本家https://virt-manager.org/
libvirtを管理して、仮想マシン向けのリソース管理や仮想マシンの作成を行います。
っで、インストールの前にlibvirt-pythonが必要なのでこれをインストールします。

[root@c ~]# cd /opt/src/
[root@c src]# curl -O ftp://libvirt.org/libvirt/python/libvirt-python-3.7.0.tar.gz
[root@c src]# gzip -cd libvirt-python-3.7.0.tar.gz | tar xf - && cd libvirt-python-3.7.0
[root@c libvirt-python-3.7.0]#
[root@c libvirt-python-3.7.0]# export PATH=/sbin:/bin:/usr/sbin:/usr/bin
[root@c libvirt-python-3.7.0]# export PKG_CONFIG_PATH=/opt/libvirt/lib/pkgconfig
[root@c libvirt-python-3.7.0]# python setup.py build
[root@c libvirt-python-3.7.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.4.2.tar.gz
[root@e src]# gzip -cd virt-manager-1.4.2.tar.gz | tar xf - && cd virt-manager-1.4.2
 
[root@c virt-manager-1.4.2]# export PATH=/sbin:/bin:/usr/sbin:/usr/bin
[root@c virt-manager-1.4.2]# python setup.py configure --prefix=/opt/local
[root@c virt-manager-1.4.2]# python setup.py build
[root@c virt-manager-1.4.2]# python setup.py install

*コンパイルオプションは、python setup.py --help-commandで確認可能

他、libvirt-python、virt-managerのコンパイルに関係なく起動時にOS提供のパッケージで下記が必要になります。

[root@c ~]# yum install python-ipaddr python-requests vte3

virt-managerを起動

インストールした virt-manager を起動してみる。
*最低限、ディスクトップ環境でOSができてることが必要です。参考CentOS/memo#tc521664

[root@c ~]# export PATH=/opt/local/bin:$PATH
[root@c ~]# export GI_TYPELIB_PATH=/opt/local/lib/girepository-1.0
[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

画面
2017y09m09d_195450928.png
*「/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-6.0.tar.gz
[root@c src]# gzip -cd virt-viewer-6.0.tar.gz | tar xf - && cd virt-viewer-6.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 #

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2017-09-09 (土) 19:55:27 (94d)