連載
» 2009年04月15日 00時00分 公開

知って見るみるKVM(2):KVMの導入と基本的な使い方 (1/3)

アナウンス後わずか2カ月でLinux Kernelにマージされたことで一躍注目を浴びることになった仮想化技術「KVM」。しかし、その具体的な仕組みや使用方法となると、意外と知られていないのではないでしょうか。この連載ではそんなKVMについて紹介します(編集部)

[まえだこうへい,Debian JP Project]

 前回「Linux標準の仮想化技術『KVM』の仕組み」では、KVM(Kernel-based Virtual Machine)の概要について説明しました。今回はそれを踏まえて、基本的な使い方を説明します。KVMはGUIツールで操作することもできますが、今回は基本を押さえるため、すべてコマンドラインで行ってみましょう。

 実際にKVMを使う場合にはGUIツールを使うことが想定されますが、コマンドラインでの操作を押さえておけば、GUIツールの裏側で実際に何をやっているのかを理解できるかと思います。

 今回の話の流れは以下のとおりです。

  1. KVM用の環境構築
  2. ゲストOSの導入
  3. ゲストOSの起動
  4. 使い方に応じたネットワーク構成

KVM用の環境構築

●導入環境の前提条件

  • ハードウェア

 前回お話ししたとおり、Intel VTもしくは、AMD-Vをサポートしているx86/x86_64アーキテクチャのCPUを搭載したマシンが必要です(注1)。筆者は、今回HP ProLiant ML115(CPUはAMD Dual-Core Opteron Processor 1210)を使用しました。

注1:KVMはIBMのppcやs390xといったアーキテクチャもサポートしていますが、これらのマシンを個人で所有したり、あるいは仕事でも自由に使える環境にある人は少ないと思われるので、ここでは対象外とします。


  • ソフトウェア

 今回はホスト用のOSには、2月14日にリリースされたDebian GNU/Linux Lennyを用います。筆者の環境ではx86_64用の名刺型CDに書き込めるサイズのイメージファイルを利用しました。

●導入手順

 ホスト用OSのインストールは、通常のインストール手順のとおりです。Debianのインストール手順について分からない場合は、Debian JPのサイトなどを参考にしてください。

 今回、「ソフトウェアの選択とインストール」では、何も選択しない最小構成でインストールしました。インストール後、パッケージの導入を行います。X Window Systemは、今回は特に必要ありません。ただし、KVMをスタンドアロンで使うときや、ゲストOSのインストール時、また使用するゲストOSによっては必要になります(注2)。

注2:インストーラがVGA出力を必要としている場合(注3)や、ゲストOSとしてWindowsを使う場合など。

注3:今回、筆者の環境(ProLiant ML115)ではビデオカードのメモリが小さく、Xはデフォルトでは起動しません。Debian InstallerがVGA出力を必要としていたので、リモートの作業用環境をXサーバとし、SSH経由でqemuのウィンドウを転送、出力させました。


 使用している機器にCPUの仮想化支援機能があるかどうか分からない場合は、/proc/cpuinfoを見てみるとよいでしょう。Intel VTの場合はvmxが、AMD-Vの場合はsvmがあるか否かが1つの判断基準となります。

$ grep vmx /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
Intel VTの場合
$ grep svm /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy
AMD-Vの場合

●導入パッケージ

 今回追加で導入するパッケージは、「kvm」と「bridge-utils」のみです。

# apt-get install kvm bridge-utils

 インストール後、kvmを実行するユーザーをkvmグループのメンバーにします。

# adduser user kvm
# id user
uid=1000(user) gid=1000(user) 所属グループ=20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugdev),106(kvm),1000(user)

 kvmグループに所属させたユーザー(今回の場合はuser)でadduserを実行した場合、そのセッション中はkvmグループには所属しないため、ログインし直す必要があります。またkvmパッケージを導入した直後は、/dev/kvmファイルのグループはrootになっています。ホストOSを再起動すると、次回以降はkvmグループに変わるので、上記手順が終わった段階で、一度ホストOSを再起動します。

ゲストOSのインストール

 まずはゲストOSのインストール用の仮想ディスクイメージを用意します。これにはqcow2というフォーマットを使用します。qcow2および旧フォーマットのqcowは、割り当てるサイズではなく、実際に使用するサイズでディスクイメージファイルを作成するので、ディスクスペースを節約できます。

$ kvm-img create -f qcow2 sid.img 4GB
Formatting 'sid.img', fmt=qcow2, size=4194304 kB
$ ls -l sid.img
-rw------- 1 user user 28672 2009-03-22 11:05 sid.img

 今回は、4GBのディスクイメージで、sid.imgというファイル名で作成します。下記のとおり、容量4GBのファイルではなく、約29KBのサイズにしかならないことが分かります(注4)。

 次に、CD-ROMドライブにLennyのインストールCDを挿入し、

  • ハードディスクとして先ほど作成したsid.imgファイル(-hda sid.img
  • CD-ROMに/dev/cdromデバイスファイル(-cdrom /dev/cdrom
  • ゲストOSのメモリを384MB(-m 384
  • コンソールは標準出力(-monitor stdio)を指定し、
  • CD-ROMブートします(-boot d)(注4
$ kvm -hda sid.img -cdrom /dev/cdrom -boot d -m 384 -monitor stdio
QEMU 0.9.1 monitor - type 'help' for more information
(qemu)

 すると、画面1のようにDebian Installerの画面が表示されます。

画面1 Debianの起動画面 画面1 Debianの起動画面

 なお、実際にkvmが有効になっているかどうかを判断するには、まずホストOSでのカーネルモジュールがロードされているか、そしてQEMU Monitorでkvm supportが有効になっているかを見ます。

●カーネルモジュールの確認

$ lsmod | grep kvm
kvm_intel               35536  0
kvm                    123688  1 kvm_intel
Intel VTの場合
$ lsmod | grep kvm
kvm_amd                 29580  0
kvm                    127464  1 kvm_amd
AMD-Vの場合

 QEMU Monitorでの確認方法は、画面1のようにQEMUのコンソールが表示された状態で、Alt+2を押します。そうすると、"(qemu)"というプロンプトが表示されるので、info kvmと入力します。kvm support: enabledと表示されれば、kvmが有効になっていることが分かります。

(qemu) info kvm
kvm support: enabled

 今回はsidをインストールするので、画面1のDebian Installerの画面では“Advanced options”→“Expert install”を選択し、“インストーラミラーの選択”には“unstable(不安定版)”を選択します。

 それ以外は、通常の物理ハードウェアに直接インストールする方法と同じです。ですので、本手順については省略します。なお、筆者の環境では“ソフトウェアの選択”では何も選択せず、最小構成でインストールにしました。

注4:Debianの場合はkvm-img、kvmコマンドを使用しますが、qemu-img、qemu-kvmコマンドを使用するディストリビューションもあります。ほかの環境で行う場合は、適宜読み替えてください。


       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。