※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

以下の環境に新たな仮想化環境としてKVMをインストールしてみた。
GUIの洗練さとかでは、やはりVMWareやVirtualBoxが先に進んでいる気がする。

環境

ホストOS : Ubuntu10.04 Lucid (x86_64)
インストール済み仮想化環境 :
      VMWare Player 3.1.1 build-282343
      VirtualBox 3.2.8 r64453

KVNインストール方法

$ egrep -c '(vmx|svm)' /proc/cpuinfo  <-- 1以上ならハードウェア仮想化対応
4
$ sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils  <-- KVMインストール
 ※Ubuntu10.0でkvmパッケージはqemu-kvmに変更されました。
  経過措置で、kvmを指定してもqemu-kvmがインストールされます。
$ sudo adduser `id -un` kvm           <-- 自分のIDをグループ `kvm' に追加
$ sudo adduser `id -un` libvirtd      <-- 自分のIDをグループ `libvirtd' に追加
$ sudo apt-get install virt-manager  <--仮想マシン管理ツールのインストール


仮想マシンマネージャ(Virtual Machine Manager)でのディスクイメージ作成先の変更

 KVMインストール後、仮想マシンマネージャ(Virtual Machine Manager 0.8.2, virt-manager)でゲストOSをインストールしようとしたら、ゲストOSのディスクイメージ作成先が以下で固定になっていた。
 /var/lib/libvirt/images
 ディスク容量不足のため、他の場所に作る必要があるが、仮想マシンマネージャでゲストOSのインストールの延長でディスクイメージを作成する場合の作成場所変更方法が分からなかった。
 仮想マシンマネージャのメニューで「編集」->「ホストの詳細」を選択し、「ストレージ」タブを選択すると、空のディスクイメージを作成する機能がある。デフォルトの作成先は上記と同じところだが、以下のXMLファイルの<path>タグを書き換えることで、作成先を変更できることがわかり、以下のように変更した。
$ sudo vi /etc/libvirt/storage/default.xml
 <!--    <path>/var/lib/libvirt/images</path> -->
     <path>/mnt/work/kvm</path>
 最初に「ホストの詳細」の「ストレージ」タブで、必要なサイズの空のディスクイメージを作成したのち、ゲストOSの新規作成のウィザードを実行する。ディスクイメージの作成画面にきたら「管理しているストレージか、他の既存のストレージを選択する」を選んで、作成しておいたディスクイメージを指定すればよい。

ゲストOSインストール時の注意

  • 画面解像度の変更
仮想マシンマネージャを使ってインストールすると、ディスプレイドライバが”cirrus”となり、そのままでは800x600までの解像度しか選択できない。ドライバに”vmware”を使うともっと大きな解像度が選択できる。仮想マシンマネージャで新規仮想マシンを作成すると、勝手にゲストOSがブートしてインストールを開始するが、ゲストOSを強制的に電源断して、ゲストOSのコンソールで、「表示」->「詳細」を選択する。するとゲストOS用のハードウェア詳細が見れるので、「ビデオ」を選択し、モデルに"vmware"を指定する。その後ゲストOSをインストールして、/etc/X11/xorg.confを以下のようにしたら、解像度が選択できるようになった。
Section "Monitor"
 ### Comment all HorizSync and VertSync values to use DDC:
        Identifier   "Monitor0"
        ModelName    "Monitor 1024x768"
 ### Comment all HorizSync and VertSync values to use DDC:
        HorizSync    31.5 - 61.0
        VertRefresh  50.0 - 75.0
        Option      "dpms"
EndSection

Section "Device"
        Identifier  "Videocard0"
        Driver      "vmware"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        Monitor    "Monitor0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes    "1152x864" "1152x768" "1024x768" "800x600" "640x480"
        EndSubSection
EndSection

2010/09/12追記
その後再度ゲストOSとしてCentOSをインストールすることになり、その時はvmwareを選んでインストールし、「システム」->「管理」->「ディスプレイ」で、モニタをCRTの1024x768にし再ログオンしたら解像度の選択が可能になった。

  • '_'が入力できない
仮想マシンマネージャを使ってインストールしたら、ゲストOSで'_'が入力できなかった(もちろん日本語キーボードは指定していて、その他のキーは入力可能)。
その場合は、/etc/libvirt/qemu配下にある、ゲストOSの設定ファイル(.xml)の<graphics>タブに、keymap属性で'ja'を指定するとよい。
<graphics type='vnc' port='-1' autoport='yes' keymap='ja'/>
なお、この変更のためではないと思うが、色々いじっていたら、途中でUSキーボードになっていたため、xorg.confで以下のように設定を直した。
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "jp106"
        Option      "XkbLayout" "jp"
EndSection


VittualBoxとの共存

 KVMインストール後、VMWare Playerは利用可能(ゲストOSが利用可能)だったが、VirtualBoxは以下のエラーメッセージが出て、ゲストOSが起動できなかった。
AMD-V is being used by another hypervisor. (VERR_SVM_IN_USE).
VirtualBox can't enable the AMD-V extension. Please disable the KVM kernel extension, 
recompile your kernel and reboot (VERR_SVM_IN_USE).
 解決には、以下のようにKVMのサービスを止めればよいとのこと。確かにこれで起動できた。
$ sudo service qemu-kvm stop
 KVMを使う場合は(VirtualBoxは使えなくなるが)、以下でサービスを起動すればよい。
$ sudo service qemu-kvm start

仮想ディスクのshrink(サイズ縮小)

 KVMで利用可能な仮想ディスクのフォーマットはいくつかあるが、「 qcow2 」だとサイズを縮小できるらしい。
 縮小する専用のコマンドはなく、qcow2のフォーマットでコンバートしなおすと、その際に縮小される。
  • 縮小元がqcow2フォーマットの場合
 同じフォーマット同士なのだが、以下のようにするとコンバートできる。
# qemu-img convert -O qcow2 old_image.qcow2 new_image.qcow2
  • 縮小元がrawフォーマットの場合
 異なるフォーマットの場合は、"-f"の後に縮小元フォーマットとイメージ名を指定して、以下でコンバートする。
# qemu-img convert -f raw old_image.qcow2 -O qcow2 new_image.qcow2
イメージの名前が変わってしまうので、virt-managerを使うなら、あらたにゲストOSを作成し、コンバートしたイメージファイルを指定する必要がある。

名前:
コメント: