トップページ -> 実践知識 -> クラウドコンピューティング -> Ubuntu で QEMU+KVM の仮想マシンを libvirt を使って管理する
[サイトマップへ]  

Ubuntu で QEMU+KVM の仮想マシンを libvirt を使って管理する

サイト構成 連絡先,業績など 実践知識 データの扱い コンピュータ 教材 サポートページ

◆ この Web ページで行うこと:


Ubuntu でのインストール

前準備

更新可能な全パッケージを更新する操作を行っておく.

■ Ubuntu の場合の操作手順(例)

sudo apt-get update
sudo apt-get upgrade

Ubuntu で Oracle VM VirtualBox のインストール

◆ 以下、 Ubuntu 12.04 で、パッケージを使ってインストールしたいときの手順を示します

  1. ソースと公開鍵に関する設定

    precise のところは読み替えてください

    echo "deb http://download.virtualbox.org/virtualbox/debian precise contrib" | sudo tee -a /etc/apt/sources.list 
        wget http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
    

  2. パッケージを用いたインストール
    sudo apt-get -yV install dkms
    sudo apt-get -yV install virtualbox
    sudo apt-get -yV install virtualbox-source
    sudo apt-get -yV install vde2
    sudo apt-get -yV install virtualbox-guest-additions-iso
    sudo apt-get -yV install virtualbox-guest-x11
    sudo apt-get -yV install virtualbox-guest-utils
    sudo apt-get -yV install virtualbox-guest-dkms
    

  3. VirtualBox カーネル・モジュールの確認

    「bash /etc/init.d/virtualbox status」を実行して、 VirtualBox カーネル・モジュールを確認する。

    bash /etc/init.d/virtualbox status
    

    ◆ Ubuntu での実行結果例

  4. (オプション)拡張パックに関する操作

    http://www.virtualbox.org/wiki/Downloads

    ライセンス条項を各自で確認の上、納得できる場合のみ次の操作を行う

    ◆ Ubuntu での実行手順例

    cd /tmp
    wget http://download.virtualbox.org/virtualbox/4.1.8/Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack
    sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.8-75467.vbox-extpack
    sudo adduser --system vboxusers
    

Ubuntu で仮想マシン管理ソフトウエア libvirt のインストール

libvirt に VirtualBox の機能を組み込みたいので、 次の手順を踏む.

◆ Ubuntu での実行手順例

cd /tmp

apt-get source libvirt
sudo apt-get build-dep libvirt
cd libvirt-*
rm -f /tmp/*.deb
cat debian/rules | sed 's/without-vbox/with-vbox/g' > /tmp/rules.$$
cp /tmp/rules.$$ debian/rules 
dpkg-buildpackage -uc -us -rfakeroot 
cd ..
sudo dpkg -i *.deb 

その後「virsh -V」を使って確認.「ハイバーバイザー」の行に 「VirtualBox」が含まれていたらOK

以上の操作で,vmware2libvirt, virt-viewer, virsh, virt-install などのコマンドが使えるようになります また /etc/libvirt 下にいくつかの設定ファイルができます


仮想マシン管理ソフトウエア libvirt を使って、ドメインの新規作成を行ってみる

ドメインの一覧

virsh list --all 

◆ 実行結果の例

ここでの実行結果では、ドメインがない(まだドメインを作成していないので)

ドメインの新規作成(Domain Creation)

ここでの設定内容(例)

設定項目 データ型 本 Web ページでの設定値
ゲスト OS の種類 文字列 precise (Ubuntu 12.04)
接続に使用するドライバ 文字列 vbox:///session
仮想マシン識別名(libvirtでは「ドメイン名」ともいう) 文字列 ubuntu1204i386 または ubuntu1204amd64
仮想マシン・イメージファイルのディレクトリ 文字列 /home
仮想マシン・イメージファイルのファイル名 文字列 /home/ubuntu1204i386.qcow2 または /home/ubuntu1204amd64.qcow2
仮想マシン・イメージファイルのフォーマット 文字列 qcow2
仮想マシン・イメージファイルの最大サイズ 数値 80 (GB)
仮想マシンに割り当てるメインメモリのサイズ 数値 2048 (MB)
仮想マシンに割り当てるCPU数 数値 1
仮想マシンの起動に使う ISO イメージファイル名 文字列 /home/www/linux/ubuntu-12.04-desktop-i386.iso または /home/www/linux/ubuntu-12.04-desktop-amd64.iso

※ 参考 Web ページ: http://libvirt.org/formatdomain.html#elementsGraphics

操作手順の例 (グラフィックスとして vnc を指定する場合)

ホストが 64 ビット Linux ならゲストも 64 ビット Linux, ホストが 32 ビット Linux ならゲストも 32 ビット Linuxとしている。 

virsh list --all 
 
if [ `arch` = 'i686' ]; then
    export QEMU_ISOFILE=/home/www/linux/ubuntu-12.04-desktop-i386.iso
    export QEMU_FILE_PATH=/home/ubuntu1204i386.qcow2
    export QEMU_MACHINE_NAME=ubuntu1204i386
elif [ `arch` = 'x86_64' ]; then
    export QEMU_ISOFILE=/home/www/linux/ubuntu-12.04-desktop-amd64.iso
    export QEMU_FILE_PATH=/home/ubuntu1204amd64.qcow2
    export QEMU_MACHINE_NAME=ubuntu1204amd64
fi

/usr/bin/qemu-img create -f qcow2 ${QEMU_FILE_PATH} 80G .
sudo virt-install --connect=vbox:///session --name=${QEMU_MACHINE_NAME} --hvm --accelerate --disk path=${QEMU_FILE_PATH},size=80,device=disk,bus=virtio,format=qcow2 --ram=2048 --vcpus=1 --cdrom ${QEMU_ISOFILE} --network network=default,model=virtio --vnc --os-type=linux --os-variant=ubuntuprecise --livecd --noacpi 

実行結果の例 (グラフィックスとして vnc を指定する場合)

このとき、ドメインはすでに起動した状態になっている.ドメインの状態は virsh list --all で確認できる.

XML ファイルができている

  • ドメインの定義解除

    ドメインの定義解除は「virsh undefine」で行う.定義解除の前に「virsh destroy」で強制停止する.

      sudo virsh destroy ubuntu1204
      sudo virsh undefine ubuntu1204
    

  • ドメイン起動と停止 (Start Domain)

    停止しているドメインを起動し、VNC を用いて接続する操作

    sudo virsh start ubuntu1204
    sudo virsh list --all
    sudo virsh vncdisplay ubuntu1204
    vncdisplay :0 
    

    ※ リモートから接続したいときは、ファイヤウオールの設定、/etc/libvirt/qemu.confの設定を確認すること

    停止しているドメインを起動し、コンソールを起動する操作

    virsh start ubuntu1204
    virsh list --all
    virsh console ubuntu1204
    

    ドメインの停止 (Stop Domain)

    まず、仮想マシン(ゲスト)の方でシャットダウン操作を行った後に、 ホストの方で、次のコマンドを実行する

      sudo virsh shutdown ubuntu1204