エンジニアなら知っておきたい仮想マシンのしくみ

第3回 Debian GNU/Linux 6.0で試すKVM

この記事を読むのに必要な時間:およそ 7 分

前回は,Linux KVMがどのような仮想マシン技術であるか,またLinux KVMを構成するソフトウェアとしてKVMカーネルモジュールとqemu-kvmがどのような関係かについて解説しました。今回は,リリースされたてホヤホヤのDebian GNU/Linux 6.0(Squeeze)を用いて,実際にLinux KVMで仮想マシンを動かす方法について解説します。

Debian GNU/Linux 6.0がリリースされました

本記事をご覧になっている方ならご存じの方も多いかと思いますが,老舗LinuxディストリビューションDebian GNU/Linuxの最新バージョン6.0がリリースされました。

Debian GNU/Linux 6.0はコアなユーザが多いLinuxディストリビューションです。特に安定性が重視されており,サーバ用途などでは安心して運用できる反面,開発が活発なオープンソースソフトウェアの場合,標準でパッケージ化されているソフトウェアのベースバージョンが多少古いということもあります。

例としてLinux KVMのバージョンを他のディストリビューションと比べてみると,2010年11月にリリースされたFedora 14にはQEMU 0.13相当が含まれているところで,今年に入ってからリリースされたDebian GNU/Linux 6.0のQEMUは0.12.5がベースとなっています。もちろん⁠普通に仮想マシンを実行する⁠だけであれば,大して気にならない程度の違いですが……。

もちろんDebian GNU/Linux 6.0が悪いと言うわけではありません。仮想化サポートの観点で言えば,Fedora 14やRed Hat Enterprise Linux 6ではXenのサポートが縮小されているのに対し,Debian GNU/Linux 6.0ではXen 4.0.0が標準でパッケージングされており,気楽にXen 4.0の世界にチャレンジできる数少ないディストリビューションとなっています。ほかにも,OpenVZなどの仮想化技術も標準でサポートされているなど,魅力的な面が多数あります。ディストリビューションも,自身の要求や特性を見極めて使い分けていくとよいでしょう。

図1 Debian GNU/Linux 6.0

図1 Debian GNU/Linux 6.0

Debian GNU/Linuxの情報や入手方法については,下記のサイトを参照してください。

Debian -- ユニバーサルオペレーティングシステム
URL:http://www.debian.org/
HTTP/FTPを使ってDebian CD/DVDイメージをダウンロードする
URL:http://www.debian.org/CD/http-ftp/index.ja.html

Linux KVMをインストールするコンピュータの構成例

今回,本記事を執筆するにあたりHewlett Packard社製Proliant ML115 G1を使用しました。主なスペックは下記の通りです。

表1 今回の使用マシン

ベースシステムHewlett Packard Proliant ML115 G1
CPUDual-Core AMD Opteron(tm) Processor 1210
メモリ4GB
ハードディスク160GB(Serial ATA接続)

これからLinux KVMにチャレンジしようとされている方の中には,新たにコンピュータを準備したり,お手持ちのコンピュータをLinux KVMの勉強用に整備したりされる方もいらっしゃるかと思います。そのような方のために,コンピュータの選定の目安について紹介しましょう。

中古で新たに勉強用のノートパソコンを調達する場合は,ThinkPad X60シリーズ(Core2 Duoモデル)などがお手軽で良いかと思います。これまでKVMやXenの動作実績が多数ありますので,安心して使えるモデルです。その他のコンピュータを選ばれる場合は,下記のような点に注意し選定すると良いでしょう。

プロセッサ

Linux KVM用のコンピュータとして,最も選定に注意が必要なコンポーネントはCPUです。

Intelのプロセッサの場合は,Core i以降,もしくはCore2 Duo/Quadを選択するとよいでしょう。これらのモデルであればIntel VTが利用可能です。現段階で新品として販売されているものでも,廉価なモデルにはIntel VTが付いていないものがありますので注意してください(Celeron,Pentiumラインなど)⁠

AMDのプロセッサの場合,Athlon 64X2以降のプロセッサであればAMD-Vが搭載されていると考えてよいでしょう。また,Intel VTやAMD-Vを搭載プロセッサでも,新しい世代のほうが仮想マシンの実行が高速化されています。長く使うつもりであれば,できるだけ新しいプロセッサを選ぶようにしましょう。

CPUが仮想化対応かどうか確認する方法

お手持ちのプロセッサがIntel VT/AMD-Vに対応しているかは,Linuxのコマンドラインから下記のコマンドを実行することでも確認できます。

cat /proc/cpuinfo | grep flags

仮想化に対応したプロセッサで上記コマンドを実行すると,プロセッサの種類に応じてフラグが表示されるはずです。

  • vmx … Intel VTをサポートしたIntelプロセッサの場合
  • svm … AMD-VをサポートしたAMDプロセッサの場合

Intel製プロセッサの場合の例

$ cat /proc/cpuinfo | grep flags
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx smx est tm2 cx16 xtpr lahf_lm
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx smx est tm2 cx16 xtpr lahf_lm
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx smx est tm2 cx16 xtpr lahf_lm
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx smx est tm2 cx16 xtpr lahf_lm

AMD製プロセッサの場合の例

$ cat /proc/cpuinfo | grep flags
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 extd_apicid pni cx16 lahf_lm cmp_legacy smv extapic cr8_legacy
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 extd_apicid pni cx16 lahf_lm cmp_legacy smv extapic cr8_legacy

ただし,プロセッサが仮想化支援技術に対応しているにもかかわらず,BIOSやOSに問題があると,必要なフラグが表示されない場合もあります。仮想化対応かもしれないプロセッサ上で試した結果,フラグが表示されなかった場合でも,すぐには諦めず,後述するBIOSの設定確認やアップデート,場合によっては違うLinuxのLive CD等からブートし,試してみてください。

マザーボード

現在,新品として流通しているマザーボードのほとんどが仮想化支援機能に対応していると思われますが,残念ながら,どのマザーボードがに対応しているかを簡単に判別する方法はありません。マザーボードを新たに選択する場合は,Linux KVMの動作実績があるか,BIOSのアップデート内容などに仮想化支援機能の対応について記述があるか,などを確認の上選定するとよいでしょう。

また,仮想化支援機能に対応しているマザーボードでも,最新BIOSのアップグレードが必要だったり,BIOSの設定画面上で仮想化支援機能を「無効」から「有効」に設定変更しなければならない場合があります。

メモリ

仮想マシンを使用する場合は,ホストOSとゲストOSを同時実行させることになりますので,最低1GB程度は搭載しておきましょう。最近はメモリの価格が安くなっていますので,4~8GB程度搭載しておくと,個人ユーザであれば十分に仮想マシンを実行できるでしょう。

ハードディスク

仮想マシンを利用する場合は,複数のコンピュータのディスクイメージをハードディスク上に保存することになります。このため,できるだけ大容量のハードディスクのご利用をお勧めします。

最近は4096バイトセクタのディスクも存在しますが,仮想マシンの実行時にはランダムアクセスが多くなりがちですので,従来の512バイトセクタ製品を選ぶほうが無難です。予算に都合がつくのであれば,ランダムアクセスに強いSSDも検討してみてはいかがでしょうか。

そのほかの注意点

また,製品によっては仮想化支援機能が利用できない場合がありますので注意してください。以下のようなパターンがありがちです。

たとえば,ソニーの過去のVAIOシリーズでは,Core2プロセッサ搭載機でもIntel VTが無効化されているものがありました。同シリーズはBIOSアップデートにより有効化できるようになりましたが,新たにコンピュータを用意する場合は,できるだけ事前にLinux KVMの動作実績を確認した上で選ぶとよいでしょう。

著者プロフィール

長谷川猛(はせがわたけし)

(株)SRAで7年間のシステム構築&提案を経験したのち,Fusion-ioのセールスエンジニアを経て,フリーランスエンジニアとして活動中。『LDAP Super Expert』(技術評論社)に寄稿したほか,『Xen 徹底入門』(翔泳社)および『萌え萌えうにっくす!UNIX ネットワーク管理ガイド』(毎日コミュニケーションズ)の共著者のひとりである。

スノーボード,ごまラーメン,飼い犬のミニチュアシュナウザー「ラピス君」が大好き。

コメント

コメントの記入